| ofs | hex dump | ascii |
|---|
| 0000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8.5/.................. |
| 0020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0060 | 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000755.0000000.0000000.0000 |
| 0080 | 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 31 34 34 35 00 20 35 00 00 00 | 0000000.00000000000.011445..5... |
| 00a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 00e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0100 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0120 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 01e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0200 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 52 45 41 44 4d 45 2e 6f 72 67 00 00 00 00 00 00 00 00 | gptel-0.9.8.5/README.org........ |
| 0220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 0280 | 30 32 34 32 33 32 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 31 37 00 20 30 00 00 00 | 0242321.00000000000.013117..0... |
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0400 | 23 2b 74 69 74 6c 65 3a 20 67 70 74 65 6c 3a 20 41 20 73 69 6d 70 6c 65 20 4c 4c 4d 20 63 6c 69 | #+title:.gptel:.A.simple.LLM.cli |
| 0420 | 65 6e 74 20 66 6f 72 20 45 6d 61 63 73 0a 0a 5b 5b 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f | ent.for.Emacs..[[https://elpa.no |
| 0440 | 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f 67 70 74 65 6c 2e 68 74 6d 6c 5d 5b 66 69 6c 65 | ngnu.org/nongnu/gptel.html][file |
| 0460 | 3a 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f | :https://elpa.nongnu.org/nongnu/ |
| 0480 | 67 70 74 65 6c 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e | gptel.svg]].[[https://elpa.nongn |
| 04a0 | 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2d 64 65 76 65 6c 2f 67 70 74 65 6c 2e 68 74 6d 6c 5d 5b 66 | u.org/nongnu-devel/gptel.html][f |
| 04c0 | 69 6c 65 3a 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 | ile:https://elpa.nongnu.org/nong |
| 04e0 | 6e 75 2d 64 65 76 65 6c 2f 67 70 74 65 6c 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 73 | nu-devel/gptel.svg]].[[https://s |
| 0500 | 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 67 70 74 65 6c 5d 5b 66 69 6c 65 3a 68 74 | table.melpa.org/#/gptel][file:ht |
| 0520 | 74 70 73 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f | tps://stable.melpa.org/packages/ |
| 0540 | 67 70 74 65 6c 2d 62 61 64 67 65 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 | gptel-badge.svg]].[[https://melp |
| 0560 | 61 2e 6f 72 67 2f 23 2f 67 70 74 65 6c 5d 5b 66 69 6c 65 3a 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 | a.org/#/gptel][file:https://melp |
| 0580 | 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 67 70 74 65 6c 2d 62 61 64 67 65 2e 73 76 67 5d 5d | a.org/packages/gptel-badge.svg]] |
| 05a0 | 0a 0a 67 70 74 65 6c 20 69 73 20 61 20 73 69 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 | ..gptel.is.a.simple.Large.Langua |
| 05c0 | 67 65 20 4d 6f 64 65 6c 20 63 68 61 74 20 63 6c 69 65 6e 74 20 66 6f 72 20 45 6d 61 63 73 2c 20 | ge.Model.chat.client.for.Emacs,. |
| 05e0 | 77 69 74 68 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 6d 6f 64 65 6c 73 | with.support.for.multiple.models |
| 0600 | 20 61 6e 64 20 62 61 63 6b 65 6e 64 73 2e 20 20 49 74 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 | .and.backends...It.works.in.the. |
| 0620 | 73 70 69 72 69 74 20 6f 66 20 45 6d 61 63 73 2c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 61 6e | spirit.of.Emacs,.available.at.an |
| 0640 | 79 20 74 69 6d 65 20 61 6e 64 20 75 6e 69 66 6f 72 6d 6c 79 20 69 6e 20 61 6e 79 20 62 75 66 66 | y.time.and.uniformly.in.any.buff |
| 0660 | 65 72 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 69 76 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 | er...#+html:.<div.align="center" |
| 0680 | 3e 0a 7c 20 4c 4c 4d 20 42 61 63 6b 65 6e 64 20 20 20 20 20 20 20 20 20 20 7c 20 53 75 70 70 6f | >.|.LLM.Backend..........|.Suppo |
| 06a0 | 72 74 73 20 7c 20 52 65 71 75 69 72 65 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rts.|.Requires.................. |
| 06c0 | 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d | .|.|----------------------+----- |
| 06e0 | 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -----+-------------------------- |
| 0700 | 2d 2d 7c 0a 7c 20 43 68 61 74 47 50 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 | --|.|.ChatGPT..............|.... |
| 0720 | 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 | ........|.[[https://platform.ope |
| 0740 | 6e 61 69 2e 63 6f 6d 2f 61 63 63 6f 75 6e 74 2f 61 70 69 2d 6b 65 79 73 5d 5b 41 50 49 20 6b 65 | nai.com/account/api-keys][API.ke |
| 0760 | 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 6e 74 68 72 | y]]....................|.|.Anthr |
| 0780 | 6f 70 69 63 20 28 43 6c 61 75 64 65 29 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b | opic.(Claude)...|............|.[ |
| 07a0 | 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 2f 61 70 69 5d 5b | [https://www.anthropic.com/api][ |
| 07c0 | 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c | API.key]]....................|.| |
| 07e0 | 20 47 65 6d 69 6e 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 | .Gemini...............|......... |
| 0800 | 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6d 61 6b 65 72 73 75 69 74 65 2e 67 6f 6f 67 6c 65 | ...|.[[https://makersuite.google |
| 0820 | 2e 63 6f 6d 2f 61 70 70 2f 61 70 69 6b 65 79 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 | .com/app/apikey][API.key]]...... |
| 0840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4f 6c 6c 61 6d 61 20 20 20 20 20 20 20 20 | ..............|.|.Ollama........ |
| 0860 | 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f | .......|............|.[[https:// |
| 0880 | 6f 6c 6c 61 6d 61 2e 61 69 2f 5d 5b 4f 6c 6c 61 6d 61 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c | ollama.ai/][Ollama.running.local |
| 08a0 | 6c 79 5d 5d 20 20 20 20 20 7c 0a 7c 20 4c 6c 61 6d 61 2e 63 70 70 20 20 20 20 20 20 20 20 20 20 | ly]].....|.|.Llama.cpp.......... |
| 08c0 | 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 | ..|............|.[[https://githu |
| 08e0 | 62 2e 63 6f 6d 2f 67 67 6d 6c 2d 6f 72 67 2f 6c 6c 61 6d 61 2e 63 70 70 2f 74 72 65 65 2f 6d 61 | b.com/ggml-org/llama.cpp/tree/ma |
| 0900 | 73 74 65 72 2f 74 6f 6f 6c 73 2f 73 65 72 76 65 72 23 71 75 69 63 6b 2d 73 74 61 72 74 5d 5b 4c | ster/tools/server#quick-start][L |
| 0920 | 6c 61 6d 61 2e 63 70 70 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 20 7c 0a 7c 20 | lama.cpp.running.locally]]..|.|. |
| 0940 | 4c 6c 61 6d 61 66 69 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 | Llamafile............|.......... |
| 0960 | 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 4d 6f 7a 69 6c 6c 61 | ..|.[[https://github.com/Mozilla |
| 0980 | 2d 4f 63 68 6f 2f 6c 6c 61 6d 61 66 69 6c 65 23 71 75 69 63 6b 73 74 61 72 74 5d 5b 4c 6f 63 61 | -Ocho/llamafile#quickstart][Loca |
| 09a0 | 6c 20 4c 6c 61 6d 61 66 69 6c 65 20 73 65 72 76 65 72 5d 5d 20 20 20 20 20 7c 0a 7c 20 47 50 54 | l.Llamafile.server]].....|.|.GPT |
| 09c0 | 34 41 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c | 4All..............|............| |
| 09e0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 70 74 34 61 6c 6c 2e 69 6f 2f 69 6e 64 65 78 2e 68 74 6d 6c | .[[https://gpt4all.io/index.html |
| 0a00 | 5d 5b 47 50 54 34 41 6c 6c 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 20 20 20 7c | ][GPT4All.running.locally]]....| |
| 0a20 | 0a 7c 20 4b 61 67 69 20 46 61 73 74 47 50 54 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 | .|.Kagi.FastGPT.........|....... |
| 0a40 | 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6b 61 67 69 2e 63 6f 6d 2f 73 65 74 74 69 6e | .....|.[[https://kagi.com/settin |
| 0a60 | 67 73 3f 70 3d 61 70 69 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 | gs?p=api][API.key]]............. |
| 0a80 | 20 20 20 20 20 20 20 7c 0a 7c 20 4b 61 67 69 20 53 75 6d 6d 61 72 69 7a 65 72 20 20 20 20 20 20 | .......|.|.Kagi.Summarizer...... |
| 0aa0 | 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6b 61 67 69 2e 63 6f | |............|.[[https://kagi.co |
| 0ac0 | 6d 2f 73 65 74 74 69 6e 67 73 3f 70 3d 61 70 69 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 | m/settings?p=api][API.key]]..... |
| 0ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 7a 75 72 65 20 20 20 20 20 20 20 20 | ...............|.|.Azure........ |
| 0b00 | 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 44 65 70 6c 6f 79 6d 65 6e | ........|............|.Deploymen |
| 0b20 | 74 20 61 6e 64 20 41 50 49 20 6b 65 79 20 20 20 20 20 7c 0a 7c 20 47 72 6f 71 20 20 20 20 20 20 | t.and.API.key.....|.|.Groq...... |
| 0b40 | 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 | ...........|............|.[[http |
| 0b60 | 73 3a 2f 2f 63 6f 6e 73 6f 6c 65 2e 67 72 6f 71 2e 63 6f 6d 2f 6b 65 79 73 5d 5b 41 50 49 20 6b | s://console.groq.com/keys][API.k |
| 0b80 | 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4d 69 73 74 | ey]]....................|.|.Mist |
| 0ba0 | 72 61 6c 20 4c 65 20 43 68 61 74 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 | ral.Le.Chat......|............|. |
| 0bc0 | 5b 5b 68 74 74 70 73 3a 2f 2f 63 6f 6e 73 6f 6c 65 2e 6d 69 73 74 72 61 6c 2e 61 69 2f 61 70 69 | [[https://console.mistral.ai/api |
| 0be0 | 2d 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -keys][API.key]]................ |
| 0c00 | 20 20 20 20 7c 0a 7c 20 50 65 72 70 6c 65 78 69 74 79 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 | ....|.|.Perplexity...........|.. |
| 0c20 | 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 65 72 70 6c | ..........|.[[https://docs.perpl |
| 0c40 | 65 78 69 74 79 2e 61 69 2f 64 6f 63 73 2f 67 65 74 74 69 6e 67 2d 73 74 61 72 74 65 64 5d 5b 41 | exity.ai/docs/getting-started][A |
| 0c60 | 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 | PI.key]]....................|.|. |
| 0c80 | 4f 70 65 6e 52 6f 75 74 65 72 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 | OpenRouter...........|.......... |
| 0ca0 | 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6f 70 65 6e 72 6f 75 74 65 72 2e 61 69 2f 6b 65 79 73 | ..|.[[https://openrouter.ai/keys |
| 0cc0 | 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | ][API.key]]....................| |
| 0ce0 | 0a 7c 20 74 6f 67 65 74 68 65 72 2e 61 69 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 | .|.together.ai..........|....... |
| 0d00 | 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 61 70 69 2e 74 6f 67 65 74 68 65 72 2e 78 79 | .....|.[[https://api.together.xy |
| 0d20 | 7a 2f 73 65 74 74 69 6e 67 73 2f 61 70 69 2d 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 | z/settings/api-keys][API.key]].. |
| 0d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 6e 79 73 63 61 6c 65 20 20 | ..................|.|.Anyscale.. |
| 0d60 | 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 | ...........|............|.[[http |
| 0d80 | 73 3a 2f 2f 64 6f 63 73 2e 65 6e 64 70 6f 69 6e 74 73 2e 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 2f | s://docs.endpoints.anyscale.com/ |
| 0da0 | 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | ][API.key]]....................| |
| 0dc0 | 0a 7c 20 50 72 69 76 61 74 65 47 50 54 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 | .|.PrivateGPT...........|....... |
| 0de0 | 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 7a 79 6c 6f | .....|.[[https://github.com/zylo |
| 0e00 | 6e 2d 61 69 2f 70 72 69 76 61 74 65 2d 67 70 74 23 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 5d | n-ai/private-gpt#-documentation] |
| 0e20 | 5b 50 72 69 76 61 74 65 47 50 54 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 7c 0a | [PrivateGPT.running.locally]].|. |
| 0e40 | 7c 20 44 65 65 70 53 65 65 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 | |.DeepSeek.............|........ |
| 0e60 | 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 64 65 65 70 73 65 65 | ....|.[[https://platform.deepsee |
| 0e80 | 6b 2e 63 6f 6d 2f 61 70 69 5f 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 | k.com/api_keys][API.key]]....... |
| 0ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 53 61 6d 62 61 6e 6f 76 61 20 28 44 65 65 70 | .............|.|.Sambanova.(Deep |
| 0ec0 | 73 65 65 6b 29 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 63 | seek).|............|.[[https://c |
| 0ee0 | 6c 6f 75 64 2e 73 61 6d 62 61 6e 6f 76 61 2e 61 69 2f 61 70 69 73 5d 5b 41 50 49 20 6b 65 79 5d | loud.sambanova.ai/apis][API.key] |
| 0f00 | 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 43 65 72 65 62 72 61 | ]....................|.|.Cerebra |
| 0f20 | 73 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 | s.............|............|.[[h |
| 0f40 | 74 74 70 73 3a 2f 2f 63 6c 6f 75 64 2e 63 65 72 65 62 72 61 73 2e 61 69 2f 5d 5b 41 50 49 20 6b | ttps://cloud.cerebras.ai/][API.k |
| 0f60 | 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 47 69 74 68 | ey]]....................|.|.Gith |
| 0f80 | 75 62 20 4d 6f 64 65 6c 73 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 | ub.Models........|............|. |
| 0fa0 | 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 74 6f | [[https://github.com/settings/to |
| 0fc0 | 6b 65 6e 73 5d 5b 54 6f 6b 65 6e 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | kens][Token]]................... |
| 0fe0 | 20 20 20 7c 0a 7c 20 4e 6f 76 69 74 61 20 41 49 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c | ...|.|.Novita.AI............|... |
| 1000 | 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6e 6f 76 69 74 61 2e 61 69 2f 6d | .........|.[[https://novita.ai/m |
| 1020 | 6f 64 65 6c 2d 61 70 69 2f 70 72 6f 64 75 63 74 2f 6c 6c 6d 2d 61 70 69 3f 75 74 6d 5f 73 6f 75 | odel-api/product/llm-api?utm_sou |
| 1040 | 72 63 65 3d 67 69 74 68 75 62 5f 67 70 74 65 6c 26 75 74 6d 5f 6d 65 64 69 75 6d 3d 67 69 74 68 | rce=github_gptel&utm_medium=gith |
| 1060 | 75 62 5f 72 65 61 64 6d 65 26 75 74 6d 5f 63 61 6d 70 61 69 67 6e 3d 6c 69 6e 6b 5d 5b 54 6f 6b | ub_readme&utm_campaign=link][Tok |
| 1080 | 65 6e 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 78 41 | en]]......................|.|.xA |
| 10a0 | 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 | I..................|............ |
| 10c0 | 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 63 6f 6e 73 6f 6c 65 2e 78 2e 61 69 3f 75 74 6d 5f 73 6f 75 | |.[[https://console.x.ai?utm_sou |
| 10e0 | 72 63 65 3d 67 69 74 68 75 62 5f 67 70 74 65 6c 26 75 74 6d 5f 6d 65 64 69 75 6d 3d 67 69 74 68 | rce=github_gptel&utm_medium=gith |
| 1100 | 75 62 5f 72 65 61 64 6d 65 26 75 74 6d 5f 63 61 6d 70 61 69 67 6e 3d 6c 69 6e 6b 5d 5b 41 50 49 | ub_readme&utm_campaign=link][API |
| 1120 | 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 47 69 | .key]]....................|.|.Gi |
| 1140 | 74 68 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 | thub.CopilotChat...|............ |
| 1160 | 7c 20 47 69 74 68 75 62 20 61 63 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c | |.Github.account.............|.| |
| 1180 | 20 42 65 64 72 6f 63 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 | .Bedrock..............|......... |
| 11a0 | 20 20 20 7c 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 20 20 20 20 20 20 20 20 20 20 20 | ...|.AWS.credentials............ |
| 11c0 | 7c 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 69 76 3e 0a 0a 2a 47 65 6e 65 72 61 6c 20 75 73 61 67 65 | |.#+html:.</div>..*General.usage |
| 11e0 | 2a 3a 20 28 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 79 6f 75 74 75 62 65 2e 63 6f 6d 2f 77 61 | *:.([[https://www.youtube.com/wa |
| 1200 | 74 63 68 3f 76 3d 62 73 52 6e 68 5f 62 72 67 67 4d 5d 5b 59 6f 75 54 75 62 65 20 44 65 6d 6f 5d | tch?v=bsRnh_brggM][YouTube.Demo] |
| 1220 | 5d 29 0a 0a 68 74 74 70 73 3a 2f 2f 75 73 65 72 2d 69 6d 61 67 65 73 2e 67 69 74 68 75 62 75 73 | ])..https://user-images.githubus |
| 1240 | 65 72 63 6f 6e 74 65 6e 74 2e 63 6f 6d 2f 38 36 30 37 35 33 32 2f 32 33 30 35 31 36 38 31 32 2d | ercontent.com/8607532/230516812- |
| 1260 | 38 36 35 31 30 61 30 39 2d 61 32 66 62 2d 34 63 62 64 2d 62 35 33 66 2d 63 63 32 35 32 32 64 30 | 86510a09-a2fb-4cbd-b53f-cc2522d0 |
| 1280 | 35 61 31 33 2e 6d 70 34 0a 0a 68 74 74 70 73 3a 2f 2f 75 73 65 72 2d 69 6d 61 67 65 73 2e 67 69 | 5a13.mp4..https://user-images.gi |
| 12a0 | 74 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f 6d 2f 38 36 30 37 35 33 32 2f 32 33 30 35 | thubusercontent.com/8607532/2305 |
| 12c0 | 31 36 38 31 36 2d 61 65 34 61 36 31 33 61 2d 34 64 30 31 2d 34 30 37 33 2d 61 64 33 66 2d 62 36 | 16816-ae4a613a-4d01-4073-ad3f-b6 |
| 12e0 | 36 66 61 37 33 63 36 65 34 35 2e 6d 70 34 0a 0a 2a 49 6e 2d 70 6c 61 63 65 20 75 73 61 67 65 2a | 6fa73c6e45.mp4..*In-place.usage* |
| 1300 | 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 68 74 74 | ..#+html:.<p.align="center">.htt |
| 1320 | 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 | ps://github.com/user-attachments |
| 1340 | 2f 61 73 73 65 74 73 2f 63 65 63 31 31 61 65 63 2d 35 32 66 36 2d 34 31 32 65 2d 39 65 37 61 2d | /assets/cec11aec-52f6-412e-9e7a- |
| 1360 | 39 33 35 38 65 38 62 39 62 31 62 66 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 2a 54 6f 6f 6c | 9358e8b9b1bf.#+html:.</p>..*Tool |
| 1380 | 20 75 73 65 2a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 | .use*..#+html:.<p.align="center" |
| 13a0 | 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 | >.https://github.com/user-attach |
| 13c0 | 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 35 66 39 39 33 36 35 39 2d 34 63 66 64 2d 34 39 66 61 2d | ments/assets/5f993659-4cfd-49fa- |
| 13e0 | 62 35 63 64 2d 31 39 63 35 35 37 36 36 62 39 62 32 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a | b5cd-19c55766b9b2.#+html:.</p>.. |
| 1400 | 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 68 74 74 70 73 | #+html:.<p.align="center">.https |
| 1420 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 | ://github.com/user-attachments/a |
| 1440 | 73 73 65 74 73 2f 38 66 35 37 63 32 30 62 2d 65 31 62 30 2d 34 64 38 36 2d 62 39 37 32 2d 66 34 | ssets/8f57c20b-e1b0-4d86-b972-f4 |
| 1460 | 36 66 62 39 30 61 65 31 65 37 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 53 65 65 20 61 6c 73 | 6fb90ae1e7.#+html:.</p>..See.als |
| 1480 | 6f 20 5b 5b 68 74 74 70 73 3a 2f 2f 79 6f 75 74 75 2e 62 65 2f 67 31 56 4d 47 68 43 35 67 52 55 | o.[[https://youtu.be/g1VMGhC5gRU |
| 14a0 | 5d 5b 74 68 69 73 20 79 6f 75 74 75 62 65 20 64 65 6d 6f 20 28 32 20 6d 69 6e 75 74 65 73 29 5d | ][this.youtube.demo.(2.minutes)] |
| 14c0 | 5d 20 62 79 20 41 72 6d 69 6e 20 44 61 72 76 69 73 68 2e 0a 0a 23 20 2a 4d 65 64 69 61 20 73 75 | ].by.Armin.Darvish...#.*Media.su |
| 14e0 | 70 70 6f 72 74 2a 0a 0a 23 20 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 | pport*..#.#+html:.<p.align="cent |
| 1500 | 65 72 22 3e 0a 23 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 | er">.#.https://github.com/user-a |
| 1520 | 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 31 66 64 39 34 37 65 31 2d 32 32 36 62 2d | ttachments/assets/1fd947e1-226b- |
| 1540 | 34 62 65 32 2d 62 63 36 38 2d 37 62 32 32 62 32 65 33 32 31 35 66 0a 23 20 23 2b 68 74 6d 6c 3a | 4be2-bc68-7b22b2e3215f.#.#+html: |
| 1560 | 20 3c 2f 70 3e 0a 0a 23 20 2a 4d 75 6c 74 69 2d 4c 4c 4d 20 73 75 70 70 6f 72 74 20 64 65 6d 6f | .</p>..#.*Multi-LLM.support.demo |
| 1580 | 2a 3a 0a 0a 23 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2d 70 72 6f 64 75 63 74 69 6f 6e 2d | *:..#.https://github-production- |
| 15a0 | 75 73 65 72 2d 61 73 73 65 74 2d 36 32 31 30 64 66 2e 73 33 2e 61 6d 61 7a 6f 6e 61 77 73 2e 63 | user-asset-6210df.s3.amazonaws.c |
| 15c0 | 6f 6d 2f 38 36 30 37 35 33 32 2f 32 37 38 38 35 34 30 32 34 2d 61 65 31 33 33 36 63 34 2d 35 62 | om/8607532/278854024-ae1336c4-5b |
| 15e0 | 38 37 2d 34 31 66 32 2d 38 33 65 39 2d 65 34 31 35 33 34 39 64 36 61 34 33 2e 6d 70 34 0a 0a 2d | 87-41f2-83e9-e415349d6a43.mp4..- |
| 1600 | 2d 2d 2d 2d 2d 0a 0a 2d 20 67 70 74 65 6c 20 69 73 20 61 73 79 6e 63 20 61 6e 64 20 66 61 73 74 | -----..-.gptel.is.async.and.fast |
| 1620 | 2c 20 73 74 72 65 61 6d 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 2d 20 49 6e 74 65 72 61 63 74 20 | ,.streams.responses..-.Interact. |
| 1640 | 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 | with.LLMs.from.anywhere.in.Emacs |
| 1660 | 20 28 61 6e 79 20 62 75 66 66 65 72 2c 20 73 68 65 6c 6c 2c 20 6d 69 6e 69 62 75 66 66 65 72 2c | .(any.buffer,.shell,.minibuffer, |
| 1680 | 20 77 68 65 72 65 76 65 72 29 2e 0a 2d 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 61 72 65 20 | .wherever)..-.LLM.responses.are. |
| 16a0 | 69 6e 20 4d 61 72 6b 64 6f 77 6e 20 6f 72 20 4f 72 67 20 6d 61 72 6b 75 70 2e 0a 2d 20 53 75 70 | in.Markdown.or.Org.markup..-.Sup |
| 16c0 | 70 6f 72 74 73 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 6f 6e 76 65 | ports.multiple.independent.conve |
| 16e0 | 72 73 61 74 69 6f 6e 73 20 61 6e 64 20 6f 6e 65 2d 6f 66 66 20 61 64 20 68 6f 63 20 69 6e 74 65 | rsations.and.one-off.ad.hoc.inte |
| 1700 | 72 61 63 74 69 6f 6e 73 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 74 6f 6f 6c 2d 75 73 65 20 74 6f | ractions..-.Supports.tool-use.to |
| 1720 | 20 65 71 75 69 70 20 4c 4c 4d 73 20 77 69 74 68 20 61 67 65 6e 74 69 63 20 63 61 70 61 62 69 6c | .equip.LLMs.with.agentic.capabil |
| 1740 | 69 74 69 65 73 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 | ities..-.Supports.Model.Context. |
| 1760 | 50 72 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 75 73 69 6e 67 | Protocol.(MCP).integration.using |
| 1780 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 69 7a 71 77 65 72 73 63 6f | .[[https://github.com/lizqwersco |
| 17a0 | 74 74 2f 6d 63 70 2e 65 6c 5d 5b 6d 63 70 2e 65 6c 5d 5d 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 | tt/mcp.el][mcp.el]]..-.Supports. |
| 17c0 | 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 69 6e 70 75 74 20 28 69 6e 63 6c 75 64 65 20 69 6d 61 67 65 | multi-modal.input.(include.image |
| 17e0 | 73 2c 20 64 6f 63 75 6d 65 6e 74 73 29 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 22 72 65 61 73 6f | s,.documents)..-.Supports."reaso |
| 1800 | 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 20 69 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a | ning".content.in.LLM.responses.. |
| 1820 | 2d 20 53 61 76 65 20 63 68 61 74 73 20 61 73 20 72 65 67 75 6c 61 72 20 4d 61 72 6b 64 6f 77 6e | -.Save.chats.as.regular.Markdown |
| 1840 | 2f 4f 72 67 2f 54 65 78 74 20 66 69 6c 65 73 20 61 6e 64 20 72 65 73 75 6d 65 20 74 68 65 6d 20 | /Org/Text.files.and.resume.them. |
| 1860 | 6c 61 74 65 72 2e 0a 2d 20 45 64 69 74 20 79 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d | later..-.Edit.your.previous.prom |
| 1880 | 70 74 73 20 6f 72 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 77 68 65 6e 20 63 6f 6e 74 69 6e | pts.or.LLM.responses.when.contin |
| 18a0 | 75 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 20 54 68 65 73 65 20 77 69 6c 6c 20 | uing.a.conversation..These.will. |
| 18c0 | 62 65 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 2d 20 53 75 70 70 | be.fed.back.to.the.model..-.Supp |
| 18e0 | 6f 72 74 73 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 2c 20 73 6f 20 79 6f 75 20 63 61 6e 20 73 | orts.introspection,.so.you.can.s |
| 1900 | 65 65 20 2f 65 78 61 63 74 6c 79 2f 20 77 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 2e 20 | ee./exactly/.what.will.be.sent.. |
| 1920 | 20 49 6e 73 70 65 63 74 20 61 6e 64 20 6d 6f 64 69 66 79 20 71 75 65 72 69 65 73 20 62 65 66 6f | .Inspect.and.modify.queries.befo |
| 1940 | 72 65 20 73 65 6e 64 69 6e 67 20 74 68 65 6d 2e 0a 2d 20 50 61 75 73 65 20 6d 75 6c 74 69 2d 73 | re.sending.them..-.Pause.multi-s |
| 1960 | 74 61 67 65 20 72 65 71 75 65 73 74 73 20 61 74 20 61 6e 20 69 6e 74 65 72 6d 65 64 69 61 74 65 | tage.requests.at.an.intermediate |
| 1980 | 20 73 74 61 67 65 20 61 6e 64 20 72 65 73 75 6d 65 20 74 68 65 6d 20 6c 61 74 65 72 2e 0a 2d 20 | .stage.and.resume.them.later..-. |
| 19a0 | 44 6f 6e 27 74 20 6c 69 6b 65 20 67 70 74 65 6c 27 73 20 77 6f 72 6b 66 6c 6f 77 3f 20 55 73 65 | Don't.like.gptel's.workflow?.Use |
| 19c0 | 20 69 74 20 74 6f 20 63 72 65 61 74 65 20 79 6f 75 72 20 6f 77 6e 20 66 6f 72 20 61 6e 79 20 73 | .it.to.create.your.own.for.any.s |
| 19e0 | 75 70 70 6f 72 74 65 64 20 6d 6f 64 65 6c 2f 62 61 63 6b 65 6e 64 20 77 69 74 68 20 61 20 5b 5b | upported.model/backend.with.a.[[ |
| 1a00 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 | https://github.com/karthink/gpte |
| 1a20 | 6c 2f 77 69 6b 69 2f 44 65 66 69 6e 69 6e 67 2d 63 75 73 74 6f 6d 2d 67 70 74 65 6c 2d 63 6f 6d | l/wiki/Defining-custom-gptel-com |
| 1a40 | 6d 61 6e 64 73 5d 5b 73 69 6d 70 6c 65 20 41 50 49 5d 5d 2e 0a 0a 67 70 74 65 6c 20 75 73 65 73 | mands][simple.API]]...gptel.uses |
| 1a60 | 20 43 75 72 6c 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2c 20 62 75 74 20 66 61 6c 6c 73 20 62 61 | .Curl.if.available,.but.falls.ba |
| 1a80 | 63 6b 20 74 6f 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 75 72 6c 2d 72 65 74 72 69 65 76 65 20 | ck.to.the.built-in.url-retrieve. |
| 1aa0 | 74 6f 20 77 6f 72 6b 20 77 69 74 68 6f 75 74 20 65 78 74 65 72 6e 61 6c 20 64 65 70 65 6e 64 65 | to.work.without.external.depende |
| 1ac0 | 6e 63 69 65 73 2e 0a 0a 2a 2a 20 43 6f 6e 74 65 6e 74 73 20 3a 74 6f 63 3a 0a 20 20 2d 20 5b 5b | ncies...**.Contents.:toc:...-.[[ |
| 1ae0 | 23 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 5d 5b 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 5d 5d 0a 20 20 | #installation][Installation]]... |
| 1b00 | 20 20 20 20 2d 20 5b 5b 23 73 74 72 61 69 67 68 74 5d 5b 53 74 72 61 69 67 68 74 5d 5d 0a 20 20 | ....-.[[#straight][Straight]]... |
| 1b20 | 20 20 20 20 2d 20 5b 5b 23 6d 61 6e 75 61 6c 5d 5b 4d 61 6e 75 61 6c 5d 5d 0a 20 20 20 20 20 20 | ....-.[[#manual][Manual]]....... |
| 1b40 | 2d 20 5b 5b 23 64 6f 6f 6d 2d 65 6d 61 63 73 5d 5b 44 6f 6f 6d 20 45 6d 61 63 73 5d 5d 0a 20 20 | -.[[#doom-emacs][Doom.Emacs]]... |
| 1b60 | 20 20 20 20 2d 20 5b 5b 23 73 70 61 63 65 6d 61 63 73 5d 5b 53 70 61 63 65 6d 61 63 73 5d 5d 0a | ....-.[[#spacemacs][Spacemacs]]. |
| 1b80 | 20 20 2d 20 5b 5b 23 73 65 74 75 70 5d 5b 53 65 74 75 70 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 63 | ..-.[[#setup][Setup]].....-.[[#c |
| 1ba0 | 68 61 74 67 70 74 5d 5b 43 68 61 74 47 50 54 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6f 74 68 65 72 | hatgpt][ChatGPT]].....-.[[#other |
| 1bc0 | 2d 6c 6c 6d 2d 62 61 63 6b 65 6e 64 73 5d 5b 4f 74 68 65 72 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 | -llm-backends][Other.LLM.backend |
| 1be0 | 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 7a 75 72 65 5d 5b 41 7a 75 72 65 5d 5d 0a 20 20 | s]].......-.[[#azure][Azure]]... |
| 1c00 | 20 20 20 20 2d 20 5b 5b 23 67 70 74 34 61 6c 6c 5d 5b 47 50 54 34 41 6c 6c 5d 5d 0a 20 20 20 20 | ....-.[[#gpt4all][GPT4All]]..... |
| 1c20 | 20 20 2d 20 5b 5b 23 6f 6c 6c 61 6d 61 5d 5b 4f 6c 6c 61 6d 61 5d 5d 0a 20 20 20 20 20 20 2d 20 | ..-.[[#ollama][Ollama]].......-. |
| 1c40 | 5b 5b 23 67 65 6d 69 6e 69 5d 5b 47 65 6d 69 6e 69 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6c | [[#gemini][Gemini]].......-.[[#l |
| 1c60 | 6c 61 6d 61 63 70 70 2d 6f 72 2d 6c 6c 61 6d 61 66 69 6c 65 5d 5b 4c 6c 61 6d 61 2e 63 70 70 20 | lamacpp-or-llamafile][Llama.cpp. |
| 1c80 | 6f 72 20 4c 6c 61 6d 61 66 69 6c 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6b 61 67 69 2d 66 | or.Llamafile]].......-.[[#kagi-f |
| 1ca0 | 61 73 74 67 70 74 2d 2d 73 75 6d 6d 61 72 69 7a 65 72 5d 5b 4b 61 67 69 20 28 46 61 73 74 47 50 | astgpt--summarizer][Kagi.(FastGP |
| 1cc0 | 54 20 26 20 53 75 6d 6d 61 72 69 7a 65 72 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 74 6f 67 | T.&.Summarizer)]].......-.[[#tog |
| 1ce0 | 65 74 68 65 72 61 69 5d 5b 74 6f 67 65 74 68 65 72 2e 61 69 5d 5d 0a 20 20 20 20 20 20 2d 20 5b | etherai][together.ai]].......-.[ |
| 1d00 | 5b 23 61 6e 79 73 63 61 6c 65 5d 5b 41 6e 79 73 63 61 6c 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b | [#anyscale][Anyscale]].......-.[ |
| 1d20 | 5b 23 70 65 72 70 6c 65 78 69 74 79 5d 5b 50 65 72 70 6c 65 78 69 74 79 5d 5d 0a 20 20 20 20 20 | [#perplexity][Perplexity]]...... |
| 1d40 | 20 2d 20 5b 5b 23 61 6e 74 68 72 6f 70 69 63 2d 63 6c 61 75 64 65 5d 5b 41 6e 74 68 72 6f 70 69 | .-.[[#anthropic-claude][Anthropi |
| 1d60 | 63 20 28 43 6c 61 75 64 65 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 72 6f 71 5d 5b 47 72 | c.(Claude)]].......-.[[#groq][Gr |
| 1d80 | 6f 71 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6d 69 73 74 72 61 6c 2d 6c 65 2d 63 68 61 74 5d | oq]].......-.[[#mistral-le-chat] |
| 1da0 | 5b 4d 69 73 74 72 61 6c 20 4c 65 20 43 68 61 74 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6f 70 | [Mistral.Le.Chat]].......-.[[#op |
| 1dc0 | 65 6e 72 6f 75 74 65 72 5d 5b 4f 70 65 6e 52 6f 75 74 65 72 5d 5d 0a 20 20 20 20 20 20 2d 20 5b | enrouter][OpenRouter]].......-.[ |
| 1de0 | 5b 23 70 72 69 76 61 74 65 67 70 74 5d 5b 50 72 69 76 61 74 65 47 50 54 5d 5d 0a 20 20 20 20 20 | [#privategpt][PrivateGPT]]...... |
| 1e00 | 20 2d 20 5b 5b 23 64 65 65 70 73 65 65 6b 5d 5b 44 65 65 70 53 65 65 6b 5d 5d 0a 20 20 20 20 20 | .-.[[#deepseek][DeepSeek]]...... |
| 1e20 | 20 2d 20 5b 5b 23 73 61 6d 62 61 6e 6f 76 61 2d 64 65 65 70 73 65 65 6b 5d 5b 53 61 6d 62 61 6e | .-.[[#sambanova-deepseek][Samban |
| 1e40 | 6f 76 61 20 28 44 65 65 70 73 65 65 6b 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 63 65 72 65 | ova.(Deepseek)]].......-.[[#cere |
| 1e60 | 62 72 61 73 5d 5b 43 65 72 65 62 72 61 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 69 74 68 | bras][Cerebras]].......-.[[#gith |
| 1e80 | 75 62 2d 6d 6f 64 65 6c 73 5d 5b 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 5d 5d 0a 20 20 20 20 20 | ub-models][Github.Models]]...... |
| 1ea0 | 20 2d 20 5b 5b 23 6e 6f 76 69 74 61 2d 61 69 5d 5b 4e 6f 76 69 74 61 20 41 49 5d 5d 0a 20 20 20 | .-.[[#novita-ai][Novita.AI]].... |
| 1ec0 | 20 20 20 2d 20 5b 5b 23 78 61 69 5d 5b 78 41 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 69 | ...-.[[#xai][xAI]].......-.[[#gi |
| 1ee0 | 74 68 75 62 2d 63 6f 70 69 6c 6f 74 63 68 61 74 5d 5b 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 | thub-copilotchat][Github.Copilot |
| 1f00 | 43 68 61 74 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 77 73 2d 62 65 64 72 6f 63 6b 5d 5b 41 | Chat]].......-.[[#aws-bedrock][A |
| 1f20 | 57 53 20 42 65 64 72 6f 63 6b 5d 5d 0a 20 20 2d 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 | WS.Bedrock]]...-.[[#usage][Usage |
| 1f40 | 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 69 6e 2d 61 6e 79 2d 62 75 66 66 65 72 5d 5b 49 6e 20 61 6e | ]].....-.[[#in-any-buffer][In.an |
| 1f60 | 79 20 62 75 66 66 65 72 3a 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 69 6e 2d 61 2d 64 65 64 69 63 61 | y.buffer:]].....-.[[#in-a-dedica |
| 1f80 | 74 65 64 2d 63 68 61 74 2d 62 75 66 66 65 72 5d 5b 49 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 | ted-chat-buffer][In.a.dedicated. |
| 1fa0 | 63 68 61 74 20 62 75 66 66 65 72 3a 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 6e 63 6c 75 64 | chat.buffer:]].......-.[[#includ |
| 1fc0 | 69 6e 67 2d 6d 65 64 69 61 2d 69 6d 61 67 65 73 2d 64 6f 63 75 6d 65 6e 74 73 2d 6f 72 2d 70 6c | ing-media-images-documents-or-pl |
| 1fe0 | 61 69 6e 2d 74 65 78 74 2d 66 69 6c 65 73 2d 77 69 74 68 2d 72 65 71 75 65 73 74 73 5d 5b 49 6e | ain-text-files-with-requests][In |
| 2000 | 63 6c 75 64 69 6e 67 20 6d 65 64 69 61 20 28 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 | cluding.media.(images,.documents |
| 2020 | 20 6f 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 29 20 77 69 74 68 20 72 65 71 75 65 | .or.plain-text.files).with.reque |
| 2040 | 73 74 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 73 61 76 65 2d 61 6e 64 2d 72 65 73 74 6f 72 | sts]].......-.[[#save-and-restor |
| 2060 | 65 2d 79 6f 75 72 2d 63 68 61 74 2d 73 65 73 73 69 6f 6e 73 5d 5b 53 61 76 65 20 61 6e 64 20 72 | e-your-chat-sessions][Save.and.r |
| 2080 | 65 73 74 6f 72 65 20 79 6f 75 72 20 63 68 61 74 20 73 65 73 73 69 6f 6e 73 5d 5d 0a 20 20 20 20 | estore.your.chat.sessions]]..... |
| 20a0 | 2d 20 5b 5b 23 73 65 74 74 69 6e 67 2d 6f 70 74 69 6f 6e 73 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 | -.[[#setting-options-backend-mod |
| 20c0 | 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 65 74 65 72 73 2d 73 79 73 74 65 6d 2d 70 72 6f | el-request-parameters-system-pro |
| 20e0 | 6d 70 74 73 2d 61 6e 64 2d 6d 6f 72 65 5d 5b 53 65 74 74 69 6e 67 20 6f 70 74 69 6f 6e 73 20 28 | mpts-and-more][Setting.options.( |
| 2100 | 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 2c 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 65 74 65 | backend,.model,.request.paramete |
| 2120 | 72 73 2c 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 6d 6f 72 65 29 5d 5d 0a 20 | rs,.system.prompts.and.more)]].. |
| 2140 | 20 20 20 2d 20 5b 5b 23 69 6e 63 6c 75 64 65 2d 6d 6f 72 65 2d 63 6f 6e 74 65 78 74 2d 77 69 74 | ...-.[[#include-more-context-wit |
| 2160 | 68 2d 72 65 71 75 65 73 74 73 5d 5b 49 6e 63 6c 75 64 65 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 | h-requests][Include.more.context |
| 2180 | 20 77 69 74 68 20 72 65 71 75 65 73 74 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 68 61 6e 64 6c 65 | .with.requests]].....-.[[#handle |
| 21a0 | 2d 72 65 61 73 6f 6e 69 6e 67 2d 63 6f 6e 74 65 6e 74 5d 5b 48 61 6e 64 6c 65 20 22 72 65 61 73 | -reasoning-content][Handle."reas |
| 21c0 | 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 74 6f 6f 6c 2d 75 | oning".content]].....-.[[#tool-u |
| 21e0 | 73 65 5d 5b 54 6f 6f 6c 20 75 73 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 64 65 66 69 6e 69 | se][Tool.use]].......-.[[#defini |
| 2200 | 6e 67 2d 67 70 74 65 6c 2d 74 6f 6f 6c 73 5d 5b 44 65 66 69 6e 69 6e 67 20 67 70 74 65 6c 20 74 | ng-gptel-tools][Defining.gptel.t |
| 2220 | 6f 6f 6c 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 73 65 6c 65 63 74 69 6e 67 2d 74 6f 6f 6c | ools]].......-.[[#selecting-tool |
| 2240 | 73 5d 5b 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 | s][Selecting.tools]].......-.[[# |
| 2260 | 6d 6f 64 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 72 6f 74 6f 63 6f 6c 2d 6d 63 70 2d 69 6e 74 65 67 | model-context-protocol-mcp-integ |
| 2280 | 72 61 74 69 6f 6e 5d 5b 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 6f 74 6f 63 6f 6c 20 28 | ration][Model.Context.Protocol.( |
| 22a0 | 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 72 65 77 72 | MCP).integration]].....-.[[#rewr |
| 22c0 | 69 74 65 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 66 69 6c 6c 2d 69 6e 2d 61 2d 72 65 67 69 6f 6e | ite-refactor-or-fill-in-a-region |
| 22e0 | 5d 5b 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 20 66 69 6c 6c 20 69 6e 20 61 | ][Rewrite,.refactor.or.fill.in.a |
| 2300 | 20 72 65 67 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 65 78 74 72 61 2d 6f 72 67 2d 6d 6f 64 | .region]].....-.[[#extra-org-mod |
| 2320 | 65 2d 63 6f 6e 76 65 6e 69 65 6e 63 65 73 5d 5b 45 78 74 72 61 20 4f 72 67 20 6d 6f 64 65 20 63 | e-conveniences][Extra.Org.mode.c |
| 2340 | 6f 6e 76 65 6e 69 65 6e 63 65 73 5d 5d 0a 20 20 2d 20 5b 5b 23 66 61 71 5d 5b 46 41 51 5d 5d 0a | onveniences]]...-.[[#faq][FAQ]]. |
| 2360 | 20 20 20 20 2d 20 5b 5b 23 63 68 61 74 2d 62 75 66 66 65 72 2d 75 69 5d 5b 43 68 61 74 20 62 75 | ....-.[[#chat-buffer-ui][Chat.bu |
| 2380 | 66 66 65 72 20 55 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 68 65 2d | ffer.UI]].......-.[[#i-want-the- |
| 23a0 | 77 69 6e 64 6f 77 2d 74 6f 2d 73 63 72 6f 6c 6c 2d 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2d 61 | window-to-scroll-automatically-a |
| 23c0 | 73 2d 74 68 65 2d 72 65 73 70 6f 6e 73 65 2d 69 73 2d 69 6e 73 65 72 74 65 64 5d 5b 49 20 77 61 | s-the-response-is-inserted][I.wa |
| 23e0 | 6e 74 20 74 68 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 63 72 6f 6c 6c 20 61 75 74 6f 6d 61 74 69 | nt.the.window.to.scroll.automati |
| 2400 | 63 61 6c 6c 79 20 61 73 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 | cally.as.the.response.is.inserte |
| 2420 | 64 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 68 65 2d 63 75 72 73 6f 72 | d]].......-.[[#i-want-the-cursor |
| 2440 | 2d 74 6f 2d 6d 6f 76 65 2d 74 6f 2d 74 68 65 2d 6e 65 78 74 2d 70 72 6f 6d 70 74 2d 61 66 74 65 | -to-move-to-the-next-prompt-afte |
| 2460 | 72 2d 74 68 65 2d 72 65 73 70 6f 6e 73 65 2d 69 73 2d 69 6e 73 65 72 74 65 64 5d 5b 49 20 77 61 | r-the-response-is-inserted][I.wa |
| 2480 | 6e 74 20 74 68 65 20 63 75 72 73 6f 72 20 74 6f 20 6d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 | nt.the.cursor.to.move.to.the.nex |
| 24a0 | 74 20 70 72 6f 6d 70 74 20 61 66 74 65 72 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 | t.prompt.after.the.response.is.i |
| 24c0 | 6e 73 65 72 74 65 64 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 6f 2d 63 | nserted]].......-.[[#i-want-to-c |
| 24e0 | 68 61 6e 67 65 2d 74 68 65 2d 66 6f 72 6d 61 74 74 69 6e 67 2d 6f 66 2d 74 68 65 2d 70 72 6f 6d | hange-the-formatting-of-the-prom |
| 2500 | 70 74 2d 61 6e 64 2d 6c 6c 6d 2d 72 65 73 70 6f 6e 73 65 5d 5b 49 20 77 61 6e 74 20 74 6f 20 63 | pt-and-llm-response][I.want.to.c |
| 2520 | 68 61 6e 67 65 20 74 68 65 20 66 6f 72 6d 61 74 74 69 6e 67 20 6f 66 20 74 68 65 20 70 72 6f 6d | hange.the.formatting.of.the.prom |
| 2540 | 70 74 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b | pt.and.LLM.response]].......-.[[ |
| 2560 | 23 68 6f 77 2d 64 6f 65 73 2d 67 70 74 65 6c 2d 64 69 73 74 69 6e 67 75 69 73 68 2d 62 65 74 77 | #how-does-gptel-distinguish-betw |
| 2580 | 65 65 6e 2d 75 73 65 72 2d 70 72 6f 6d 70 74 73 2d 61 6e 64 2d 6c 6c 6d 2d 72 65 73 70 6f 6e 73 | een-user-prompts-and-llm-respons |
| 25a0 | 65 73 5d 5b 48 6f 77 20 64 6f 65 73 20 67 70 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 20 62 | es][How.does.gptel.distinguish.b |
| 25c0 | 65 74 77 65 65 6e 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 | etween.user.prompts.and.LLM.resp |
| 25e0 | 6f 6e 73 65 73 3f 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 74 72 61 6e 73 69 65 6e 74 2d 6d 65 6e 75 | onses?]].....-.[[#transient-menu |
| 2600 | 2d 62 65 68 61 76 69 6f 72 5d 5b 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 62 65 68 61 76 69 | -behavior][Transient.menu.behavi |
| 2620 | 6f 72 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 6f 2d 73 65 74 2d 67 70 | or]].......-.[[#i-want-to-set-gp |
| 2640 | 74 65 6c 2d 6f 70 74 69 6f 6e 73 2d 62 75 74 2d 6f 6e 6c 79 2d 66 6f 72 2d 74 68 69 73 2d 62 75 | tel-options-but-only-for-this-bu |
| 2660 | 66 66 65 72 5d 5b 49 20 77 61 6e 74 20 74 6f 20 73 65 74 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e | ffer][I.want.to.set.gptel.option |
| 2680 | 73 2c 20 62 75 74 20 6f 6e 6c 79 20 66 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 5d 5d 0a 20 20 | s,.but.only.for.this.buffer]]... |
| 26a0 | 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 68 65 2d 74 72 61 6e 73 69 65 6e 74 2d 6d 65 | ....-.[[#i-want-the-transient-me |
| 26c0 | 6e 75 2d 6f 70 74 69 6f 6e 73 2d 74 6f 2d 62 65 2d 73 61 76 65 64 2d 73 6f 2d 69 2d 6f 6e 6c 79 | nu-options-to-be-saved-so-i-only |
| 26e0 | 2d 6e 65 65 64 2d 74 6f 2d 73 65 74 2d 74 68 65 6d 2d 6f 6e 63 65 5d 5b 49 20 77 61 6e 74 20 74 | -need-to-set-them-once][I.want.t |
| 2700 | 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 | he.transient.menu.options.to.be. |
| 2720 | 73 61 76 65 64 20 73 6f 20 49 20 6f 6e 6c 79 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 65 6d | saved.so.I.only.need.to.set.them |
| 2740 | 20 6f 6e 63 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 75 73 69 6e 67 2d 74 68 65 2d 74 72 61 | .once]].......-.[[#using-the-tra |
| 2760 | 6e 73 69 65 6e 74 2d 6d 65 6e 75 2d 6c 65 61 76 65 73 2d 62 65 68 69 6e 64 2d 65 78 74 72 61 2d | nsient-menu-leaves-behind-extra- |
| 2780 | 77 69 6e 64 6f 77 73 5d 5b 55 73 69 6e 67 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e | windows][Using.the.transient.men |
| 27a0 | 75 20 6c 65 61 76 65 73 20 62 65 68 69 6e 64 20 65 78 74 72 61 20 77 69 6e 64 6f 77 73 5d 5d 0a | u.leaves.behind.extra.windows]]. |
| 27c0 | 20 20 20 20 20 20 2d 20 5b 5b 23 63 61 6e 2d 69 2d 63 68 61 6e 67 65 2d 74 68 65 2d 74 72 61 6e | ......-.[[#can-i-change-the-tran |
| 27e0 | 73 69 65 6e 74 2d 6d 65 6e 75 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 73 5d 5b 43 61 6e 20 49 20 63 | sient-menu-key-bindings][Can.I.c |
| 2800 | 68 61 6e 67 65 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 6b 65 79 20 62 69 6e | hange.the.transient.menu.key.bin |
| 2820 | 64 69 6e 67 73 3f 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 64 6f 6f 6d 2d 65 6d 61 63 73 2d 73 | dings?]].......-.[[#doom-emacs-s |
| 2840 | 65 6e 64 69 6e 67 2d 61 2d 71 75 65 72 79 2d 66 72 6f 6d 2d 74 68 65 2d 67 70 74 65 6c 2d 6d 65 | ending-a-query-from-the-gptel-me |
| 2860 | 6e 75 2d 66 61 69 6c 73 2d 62 65 63 61 75 73 65 2d 6f 66 2d 61 2d 6b 65 79 2d 63 6f 6e 66 6c 69 | nu-fails-because-of-a-key-confli |
| 2880 | 63 74 2d 77 69 74 68 2d 6f 72 67 2d 6d 6f 64 65 5d 5b 28 44 6f 6f 6d 20 45 6d 61 63 73 29 20 53 | ct-with-org-mode][(Doom.Emacs).S |
| 28a0 | 65 6e 64 69 6e 67 20 61 20 71 75 65 72 79 20 66 72 6f 6d 20 74 68 65 20 67 70 74 65 6c 20 6d 65 | ending.a.query.from.the.gptel.me |
| 28c0 | 6e 75 20 66 61 69 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 6b 65 79 20 63 6f 6e 66 6c 69 | nu.fails.because.of.a.key.confli |
| 28e0 | 63 74 20 77 69 74 68 20 4f 72 67 20 6d 6f 64 65 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6d 69 73 63 | ct.with.Org.mode]].....-.[[#misc |
| 2900 | 65 6c 6c 61 6e 65 6f 75 73 5d 5b 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 5d 5d 0a 20 20 20 20 20 | ellaneous][Miscellaneous]]...... |
| 2920 | 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 6f 2d 75 73 65 2d 67 70 74 65 6c 2d 69 6e 2d 61 2d 77 | .-.[[#i-want-to-use-gptel-in-a-w |
| 2940 | 61 79 2d 74 68 61 74 73 2d 6e 6f 74 2d 73 75 70 70 6f 72 74 65 64 2d 62 79 2d 67 70 74 65 6c 2d | ay-thats-not-supported-by-gptel- |
| 2960 | 73 65 6e 64 2d 6f 72 2d 74 68 65 2d 6f 70 74 69 6f 6e 73 2d 6d 65 6e 75 5d 5b 49 20 77 61 6e 74 | send-or-the-options-menu][I.want |
| 2980 | 20 74 6f 20 75 73 65 20 67 70 74 65 6c 20 69 6e 20 61 20 77 61 79 20 74 68 61 74 27 73 20 6e 6f | .to.use.gptel.in.a.way.that's.no |
| 29a0 | 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 6f 72 20 74 | t.supported.by.=gptel-send=.or.t |
| 29c0 | 68 65 20 6f 70 74 69 6f 6e 73 20 6d 65 6e 75 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 63 68 61 | he.options.menu]].......-.[[#cha |
| 29e0 | 74 67 70 74 2d 69 2d 67 65 74 2d 74 68 65 2d 65 72 72 6f 72 2d 68 74 74 70 32 2d 34 32 39 2d 79 | tgpt-i-get-the-error-http2-429-y |
| 2a00 | 6f 75 2d 65 78 63 65 65 64 65 64 2d 79 6f 75 72 2d 63 75 72 72 65 6e 74 2d 71 75 6f 74 61 5d 5b | ou-exceeded-your-current-quota][ |
| 2a20 | 28 43 68 61 74 47 50 54 29 20 49 20 67 65 74 20 74 68 65 20 65 72 72 6f 72 20 22 28 48 54 54 50 | (ChatGPT).I.get.the.error."(HTTP |
| 2a40 | 2f 32 20 34 32 39 29 20 59 6f 75 20 65 78 63 65 65 64 65 64 20 79 6f 75 72 20 63 75 72 72 65 6e | /2.429).You.exceeded.your.curren |
| 2a60 | 74 20 71 75 6f 74 61 22 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 77 68 79 2d 61 6e 6f 74 68 65 | t.quota"]].......-.[[#why-anothe |
| 2a80 | 72 2d 6c 6c 6d 2d 63 6c 69 65 6e 74 5d 5b 57 68 79 20 61 6e 6f 74 68 65 72 20 4c 4c 4d 20 63 6c | r-llm-client][Why.another.LLM.cl |
| 2aa0 | 69 65 6e 74 3f 5d 5d 0a 20 20 2d 20 5b 5b 23 61 64 64 69 74 69 6f 6e 61 6c 2d 63 6f 6e 66 69 67 | ient?]]...-.[[#additional-config |
| 2ac0 | 75 72 61 74 69 6f 6e 5d 5b 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6e 66 69 67 75 72 61 74 69 6f | uration][Additional.Configuratio |
| 2ae0 | 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6f 70 74 69 6f 6e 2d 70 72 65 73 65 74 73 5d 5b 4f 70 74 | n]].....-.[[#option-presets][Opt |
| 2b00 | 69 6f 6e 20 70 72 65 73 65 74 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 70 70 6c 79 69 6e | ion.presets]].......-.[[#applyin |
| 2b20 | 67 2d 70 72 65 73 65 74 73 2d 74 6f 2d 72 65 71 75 65 73 74 73 2d 61 75 74 6f 6d 61 74 69 63 61 | g-presets-to-requests-automatica |
| 2b40 | 6c 6c 79 5d 5b 41 70 70 6c 79 69 6e 67 20 70 72 65 73 65 74 73 20 74 6f 20 72 65 71 75 65 73 74 | lly][Applying.presets.to.request |
| 2b60 | 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 5d 5d 0a 20 20 2d 20 5b 5b 23 61 6c 74 65 72 6e 61 | s.automatically]]...-.[[#alterna |
| 2b80 | 74 69 76 65 73 5d 5b 41 6c 74 65 72 6e 61 74 69 76 65 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 70 | tives][Alternatives]].....-.[[#p |
| 2ba0 | 61 63 6b 61 67 65 73 2d 75 73 69 6e 67 2d 67 70 74 65 6c 5d 5b 50 61 63 6b 61 67 65 73 20 75 73 | ackages-using-gptel][Packages.us |
| 2bc0 | 69 6e 67 20 67 70 74 65 6c 5d 5d 0a 20 20 2d 20 5b 5b 23 61 63 6b 6e 6f 77 6c 65 64 67 6d 65 6e | ing.gptel]]...-.[[#acknowledgmen |
| 2be0 | 74 73 5d 5b 41 63 6b 6e 6f 77 6c 65 64 67 6d 65 6e 74 73 5d 5d 0a 0a 2a 2a 20 43 4f 4d 4d 45 4e | ts][Acknowledgments]]..**.COMMEN |
| 2c00 | 54 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 21 0a 0a 2d 20 3d 67 70 74 65 6c 2d 6d 6f | T.Breaking.changes!..-.=gptel-mo |
| 2c20 | 64 65 6c 3d 20 69 73 20 6e 6f 77 20 65 78 70 65 63 74 65 64 20 74 6f 20 62 65 20 61 20 73 79 6d | del=.is.now.expected.to.be.a.sym |
| 2c40 | 62 6f 6c 2c 20 6e 6f 74 20 61 20 73 74 72 69 6e 67 2e 20 20 50 6c 65 61 73 65 20 75 70 64 61 74 | bol,.not.a.string...Please.updat |
| 2c60 | 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 0a 2a 2a 20 49 6e 73 74 61 6c | e.your.configuration...**.Instal |
| 2c80 | 6c 61 74 69 6f 6e 0a 0a 2d 20 2a 52 65 6c 65 61 73 65 20 76 65 72 73 69 6f 6e 2a 3a 20 3d 4d 2d | lation..-.*Release.version*:.=M- |
| 2ca0 | 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 3d 20 e2 8f 8e 20 3d 67 70 74 65 6c 3d 20 69 | x.package-install=.....=gptel=.i |
| 2cc0 | 6e 20 45 6d 61 63 73 2e 0a 2d 20 2a 44 65 76 65 6c 6f 70 6d 65 6e 74 20 73 6e 61 70 73 68 6f 74 | n.Emacs..-.*Development.snapshot |
| 2ce0 | 2a 3a 20 41 64 64 20 4d 45 4c 50 41 20 6f 72 20 4e 6f 6e 47 4e 55 2d 64 65 76 65 6c 20 45 4c 50 | *:.Add.MELPA.or.NonGNU-devel.ELP |
| 2d00 | 41 20 74 6f 20 79 6f 75 72 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 | A.to.your.list.of.package.source |
| 2d20 | 73 2c 20 74 68 65 6e 20 69 6e 73 74 61 6c 6c 20 77 69 74 68 20 3d 4d 2d 78 20 70 61 63 6b 61 67 | s,.then.install.with.=M-x.packag |
| 2d40 | 65 2d 69 6e 73 74 61 6c 6c 3d 20 e2 8f 8e 20 3d 67 70 74 65 6c 3d 2e 0a 2d 20 2a 4f 70 74 69 6f | e-install=.....=gptel=..-.*Optio |
| 2d60 | 6e 61 6c 3a 2a 20 49 6e 73 74 61 6c 6c 20 3d 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 3d 2e 0a 0a | nal:*.Install.=markdown-mode=... |
| 2d80 | 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 | #+html:.<details><summary>.****. |
| 2da0 | 53 74 72 61 69 67 68 74 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 23 2b 62 65 | Straight.#+html:.</summary>.#+be |
| 2dc0 | 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 28 73 74 72 61 69 67 68 74 2d 75 | gin_src.emacs-lisp...(straight-u |
| 2de0 | 73 65 2d 70 61 63 6b 61 67 65 20 27 67 70 74 65 6c 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 | se-package.'gptel).#+end_src.#+h |
| 2e00 | 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 | tml:.</details>.#+html:.<details |
| 2e20 | 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 4d 61 6e 75 61 6c 0a 23 2b 68 74 6d 6c 3a 20 3c | ><summary>.****.Manual.#+html:.< |
| 2e40 | 2f 73 75 6d 6d 61 72 79 3e 0a 43 6c 6f 6e 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 69 73 | /summary>.Clone.or.download.this |
| 2e60 | 20 72 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 72 75 6e 20 3d 4d 2d 78 20 70 61 63 6b 61 67 65 | .repository.and.run.=M-x.package |
| 2e80 | 2d 69 6e 73 74 61 6c 6c 2d 66 69 6c 65 e2 8f 8e 3d 20 6f 6e 20 74 68 65 20 72 65 70 6f 73 69 74 | -install-file...=.on.the.reposit |
| 2ea0 | 6f 72 79 20 64 69 72 65 63 74 6f 72 79 2e 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 | ory.directory..#+html:.</details |
| 2ec0 | 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a | >.#+html:.<details><summary>.*** |
| 2ee0 | 2a 20 44 6f 6f 6d 20 45 6d 61 63 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a | *.Doom.Emacs.#+html:.</summary>. |
| 2f00 | 49 6e 20 3d 70 61 63 6b 61 67 65 73 2e 65 6c 3d 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | In.=packages.el=.#+begin_src.ema |
| 2f20 | 63 73 2d 6c 69 73 70 0a 28 70 61 63 6b 61 67 65 21 20 67 70 74 65 6c 20 3a 72 65 63 69 70 65 20 | cs-lisp.(package!.gptel.:recipe. |
| 2f40 | 28 3a 6e 6f 6e 72 65 63 75 72 73 69 76 65 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 49 6e | (:nonrecursive.t)).#+end_src..In |
| 2f60 | 20 3d 63 6f 6e 66 69 67 2e 65 6c 3d 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c | .=config.el=.#+begin_src.emacs-l |
| 2f80 | 69 73 70 0a 28 75 73 65 2d 70 61 63 6b 61 67 65 21 20 67 70 74 65 6c 0a 20 3a 63 6f 6e 66 69 67 | isp.(use-package!.gptel..:config |
| 2fa0 | 0a 20 28 73 65 74 71 21 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 20 22 79 6f 75 72 20 6b 65 79 | ..(setq!.gptel-api-key."your.key |
| 2fc0 | 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 22 79 6f 75 72 20 6b 65 79 22 20 63 61 6e 20 62 65 20 | ")).#+end_src."your.key".can.be. |
| 2fe0 | 74 68 65 20 41 50 49 20 6b 65 79 20 69 74 73 65 6c 66 2c 20 6f 72 20 28 73 61 66 65 72 29 20 61 | the.API.key.itself,.or.(safer).a |
| 3000 | 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 | .function.that.returns.the.key.. |
| 3020 | 20 53 65 74 74 69 6e 67 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 69 73 20 6f 70 74 69 | .Setting.=gptel-api-key=.is.opti |
| 3040 | 6f 6e 61 6c 2c 20 79 6f 75 20 77 69 6c 6c 20 62 65 20 61 73 6b 65 64 20 66 6f 72 20 61 20 6b 65 | onal,.you.will.be.asked.for.a.ke |
| 3060 | 79 20 69 66 20 69 74 27 73 20 6e 6f 74 20 66 6f 75 6e 64 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f | y.if.it's.not.found...#+html:.</ |
| 3080 | 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 | details>.#+html:.<details><summa |
| 30a0 | 72 79 3e 0a 2a 2a 2a 2a 20 53 70 61 63 65 6d 61 63 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d | ry>.****.Spacemacs.#+html:.</sum |
| 30c0 | 6d 61 72 79 3e 0a 49 6e 20 79 6f 75 72 20 3d 2e 73 70 61 63 65 6d 61 63 73 3d 20 66 69 6c 65 2c | mary>.In.your.=.spacemacs=.file, |
| 30e0 | 20 61 64 64 20 3d 6c 6c 6d 2d 63 6c 69 65 6e 74 3d 20 74 6f 20 3d 64 6f 74 73 70 61 63 65 6d 61 | .add.=llm-client=.to.=dotspacema |
| 3100 | 63 73 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 6c 61 79 65 72 73 3d 2e 0a 23 2b 62 65 67 69 | cs-configuration-layers=..#+begi |
| 3120 | 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 6c 6c 6d 2d 63 6c 69 65 6e 74 20 3a 76 61 | n_src.emacs-lisp.(llm-client.:va |
| 3140 | 72 69 61 62 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 6d 2d 63 6c 69 65 6e 74 2d 65 | riables.............llm-client-e |
| 3160 | 6e 61 62 6c 65 2d 67 70 74 65 6c 20 74 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 74 6d 6c 3a | nable-gptel.t).#+end_src.#+html: |
| 3180 | 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 20 53 65 74 75 70 0a 2a 2a 2a 20 43 68 61 74 47 50 54 | .</details>.**.Setup.***.ChatGPT |
| 31a0 | 0a 50 72 6f 63 75 72 65 20 61 6e 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f | .Procure.an.[[https://platform.o |
| 31c0 | 70 65 6e 61 69 2e 63 6f 6d 2f 61 63 63 6f 75 6e 74 2f 61 70 69 2d 6b 65 79 73 5d 5b 4f 70 65 6e | penai.com/account/api-keys][Open |
| 31e0 | 41 49 20 41 50 49 20 6b 65 79 5d 5d 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 3a 20 53 65 74 20 3d 67 70 | AI.API.key]]...Optional:.Set.=gp |
| 3200 | 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 74 6f 20 74 68 65 20 6b 65 79 2e 20 41 6c 74 65 72 6e 61 | tel-api-key=.to.the.key..Alterna |
| 3220 | 74 69 76 65 6c 79 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 20 6d 6f 72 65 20 73 65 | tively,.you.may.choose.a.more.se |
| 3240 | 63 75 72 65 20 6d 65 74 68 6f 64 20 73 75 63 68 20 61 73 3a 0a 0a 2d 20 53 65 74 74 69 6e 67 20 | cure.method.such.as:..-.Setting. |
| 3260 | 69 74 20 74 6f 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 | it.to.a.custom.function.that.ret |
| 3280 | 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 2d 20 4c 65 61 76 69 6e 67 20 69 74 20 73 65 74 20 74 | urns.the.key..-.Leaving.it.set.t |
| 32a0 | 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f | o.the.default.=gptel-api-key-fro |
| 32c0 | 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 3d 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 72 65 | m-auth-source=.function.which.re |
| 32e0 | 61 64 73 20 6b 65 79 73 20 66 72 6f 6d 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d 2e 20 28 53 65 | ads.keys.from.=~/.authinfo=..(Se |
| 3300 | 65 20 5b 5b 23 6f 70 74 69 6f 6e 61 6c 2d 73 65 63 75 72 69 6e 67 2d 61 70 69 2d 6b 65 79 73 2d | e.[[#optional-securing-api-keys- |
| 3320 | 77 69 74 68 2d 61 75 74 68 69 6e 66 6f 5d 5b 61 75 74 68 69 6e 66 6f 20 64 65 74 61 69 6c 73 5d | with-authinfo][authinfo.details] |
| 3340 | 5d 29 0a 0a 2a 2a 2a 20 4f 74 68 65 72 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 0a 0a 43 68 61 74 | ])..***.Other.LLM.backends..Chat |
| 3360 | 47 50 54 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 | GPT.is.configured.out.of.the.box |
| 3380 | 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 6f 74 68 65 72 20 4c 4c 4d 20 | ...If.you.want.to.use.other.LLM. |
| 33a0 | 62 61 63 6b 65 6e 64 73 20 28 6c 69 6b 65 20 4f 6c 6c 61 6d 61 2c 20 43 6c 61 75 64 65 2f 41 6e | backends.(like.Ollama,.Claude/An |
| 33c0 | 74 68 72 6f 70 69 63 20 6f 72 20 47 65 6d 69 6e 69 29 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 72 | thropic.or.Gemini).you.need.to.r |
| 33e0 | 65 67 69 73 74 65 72 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 6d 20 66 69 72 73 74 | egister.and.configure.them.first |
| 3400 | 2e 0a 0a 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 72 65 67 69 73 74 65 72 69 6e 67 20 61 20 | ...As.an.example,.registering.a. |
| 3420 | 62 61 63 6b 65 6e 64 20 74 79 70 69 63 61 6c 6c 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 65 | backend.typically.looks.like.the |
| 3440 | 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | .following:.#+begin_src.emacs-li |
| 3460 | 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 64 65 | sp.(gptel-make-anthropic."Claude |
| 3480 | 22 20 3a 73 74 72 65 61 6d 20 74 20 3a 6b 65 79 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 29 0a | ".:stream.t.:key.gptel-api-key). |
| 34a0 | 23 2b 65 6e 64 5f 73 72 63 0a 4f 6e 63 65 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 69 73 20 72 | #+end_src.Once.this.backend.is.r |
| 34c0 | 65 67 69 73 74 65 72 65 64 2c 20 79 6f 75 27 6c 6c 20 73 65 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 | egistered,.you'll.see.model.name |
| 34e0 | 73 20 70 72 65 66 69 78 65 64 20 62 79 20 22 43 6c 61 75 64 65 3a 22 20 61 70 70 65 61 72 20 69 | s.prefixed.by."Claude:".appear.i |
| 3500 | 6e 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2e 0a 0a 53 65 65 20 62 65 6c 6f 77 20 66 6f 72 20 64 | n.gptel's.menu...See.below.for.d |
| 3520 | 65 74 61 69 6c 73 20 6f 6e 20 79 6f 75 72 20 70 72 65 66 65 72 72 65 64 20 4c 4c 4d 20 70 72 6f | etails.on.your.preferred.LLM.pro |
| 3540 | 76 69 64 65 72 2c 20 69 6e 63 6c 75 64 69 6e 67 20 6c 6f 63 61 6c 20 4c 4c 4d 73 2e 0a 0a 23 2b | vider,.including.local.LLMs...#+ |
| 3560 | 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 2a 20 28 | html:.<details><summary>.*****.( |
| 3580 | 4f 70 74 69 6f 6e 61 6c 29 20 53 65 63 75 72 69 6e 67 20 41 50 49 20 6b 65 79 73 20 77 69 74 68 | Optional).Securing.API.keys.with |
| 35a0 | 20 3d 61 75 74 68 69 6e 66 6f 3d 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a | .=authinfo=.#+html:.</summary>.. |
| 35c0 | 59 6f 75 20 63 61 6e 20 75 73 65 20 45 6d 61 63 73 27 20 62 75 69 6c 74 2d 69 6e 20 73 75 70 70 | You.can.use.Emacs'.built-in.supp |
| 35e0 | 6f 72 74 20 66 6f 72 20 3d 61 75 74 68 69 6e 66 6f 3d 20 74 6f 20 73 74 6f 72 65 20 41 50 49 20 | ort.for.=authinfo=.to.store.API. |
| 3600 | 6b 65 79 73 20 72 65 71 75 69 72 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 41 64 64 20 79 6f 75 | keys.required.by.gptel...Add.you |
| 3620 | 72 20 41 50 49 20 6b 65 79 73 20 74 6f 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d 2c 20 61 6e 64 | r.API.keys.to.=~/.authinfo=,.and |
| 3640 | 20 6c 65 61 76 65 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 73 65 74 20 74 6f 20 69 74 | .leave.=gptel-api-key=.set.to.it |
| 3660 | 73 20 64 65 66 61 75 6c 74 2e 20 20 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 41 50 49 20 | s.default...By.default,.the.API. |
| 3680 | 65 6e 64 70 6f 69 6e 74 20 44 4e 53 20 6e 61 6d 65 20 28 65 2e 67 2e 20 22 61 70 69 2e 6f 70 65 | endpoint.DNS.name.(e.g.."api.ope |
| 36a0 | 6e 61 69 2e 63 6f 6d 22 29 20 69 73 20 75 73 65 64 20 61 73 20 48 4f 53 54 20 61 6e 64 20 22 61 | nai.com").is.used.as.HOST.and."a |
| 36c0 | 70 69 6b 65 79 22 20 61 73 20 55 53 45 52 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 61 75 74 68 | pikey".as.USER..#+begin_src.auth |
| 36e0 | 69 6e 66 6f 0a 6d 61 63 68 69 6e 65 20 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 20 6c 6f 67 69 | info.machine.api.openai.com.logi |
| 3700 | 6e 20 61 70 69 6b 65 79 20 70 61 73 73 77 6f 72 64 20 73 6b 2d 73 65 63 72 65 74 2d 6f 70 65 6e | n.apikey.password.sk-secret-open |
| 3720 | 61 69 2d 61 70 69 2d 6b 65 79 2d 67 6f 65 73 2d 68 65 72 65 0a 6d 61 63 68 69 6e 65 20 61 70 69 | ai-api-key-goes-here.machine.api |
| 3740 | 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 20 6c 6f 67 69 6e 20 61 70 69 6b 65 79 20 70 61 73 73 | .anthropic.com.login.apikey.pass |
| 3760 | 77 6f 72 64 20 73 6b 2d 73 65 63 72 65 74 2d 61 6e 74 68 72 6f 70 69 63 2d 61 70 69 2d 6b 65 79 | word.sk-secret-anthropic-api-key |
| 3780 | 2d 67 6f 65 73 2d 68 65 72 65 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f | -goes-here.#+end_src..#+html:.</ |
| 37a0 | 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 | details>.#+html:.<details><summa |
| 37c0 | 72 79 3e 0a 2a 2a 2a 2a 20 41 7a 75 72 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 | ry>.****.Azure.#+html:.</summary |
| 37e0 | 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 | >..Register.a.backend.with.#+beg |
| 3800 | 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a | in_src.emacs-lisp.(gptel-make-az |
| 3820 | 75 72 65 20 22 41 7a 75 72 65 2d 31 22 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4e 61 6d 65 2c | ure."Azure-1".............;Name, |
| 3840 | 20 77 68 61 74 65 76 65 72 20 79 6f 75 27 64 20 6c 69 6b 65 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c | .whatever.you'd.like...:protocol |
| 3860 | 20 22 68 74 74 70 73 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4f 70 | ."https".....................;Op |
| 3880 | 74 69 6f 6e 61 6c 20 2d 2d 20 68 74 74 70 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 0a 20 | tional.--.https.is.the.default.. |
| 38a0 | 20 3a 68 6f 73 74 20 22 59 4f 55 52 5f 52 45 53 4f 55 52 43 45 5f 4e 41 4d 45 2e 6f 70 65 6e 61 | .:host."YOUR_RESOURCE_NAME.opena |
| 38c0 | 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 | i.azure.com"...:endpoint."/opena |
| 38e0 | 69 2f 64 65 70 6c 6f 79 6d 65 6e 74 73 2f 59 4f 55 52 5f 44 45 50 4c 4f 59 4d 45 4e 54 5f 4e 41 | i/deployments/YOUR_DEPLOYMENT_NA |
| 3900 | 4d 45 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e 3d | ME/chat/completions?api-version= |
| 3920 | 32 30 32 33 2d 30 35 2d 31 35 22 20 3b 6f 72 20 65 71 75 69 76 61 6c 65 6e 74 0a 20 20 3a 73 74 | 2023-05-15".;or.equivalent...:st |
| 3940 | 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ream.t.......................... |
| 3960 | 20 20 20 3b 45 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 | ...;Enable.streaming.responses.. |
| 3980 | 20 3a 6b 65 79 20 23 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 | .:key.#'gptel-api-key...:models. |
| 39a0 | 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 67 70 74 2d 34 29 29 0a 23 2b 65 6e 64 5f 73 72 | '(gpt-3.5-turbo.gpt-4)).#+end_sr |
| 39c0 | 63 0a 52 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 | c.Refer.to.the.documentation.of. |
| 39e0 | 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 3d 20 74 6f 20 73 65 74 20 6d 6f 72 65 20 70 | =gptel-make-azure=.to.set.more.p |
| 3a00 | 61 72 61 6d 65 74 65 72 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 | arameters...You.can.pick.this.ba |
| 3a20 | 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 | ckend.from.the.menu.when.using.g |
| 3a40 | 70 74 65 6c 2e 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a | ptel..(see.[[#usage][Usage]])... |
| 3a60 | 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 | *****.(Optional).Set.as.the.defa |
| 3a80 | 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 | ult.gptel.backend..The.above.cod |
| 3aa0 | 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f | e.makes.the.backend.available.to |
| 3ac0 | 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 | .select...If.you.want.it.to.be.t |
| 3ae0 | 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f | he.default.backend.for.gptel,.yo |
| 3b00 | 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d | u.can.set.this.as.the.value.of.= |
| 3b20 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 | gptel-backend=...Use.this.instea |
| 3b40 | 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 | d.of.the.above..#+begin_src.emac |
| 3b60 | 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e | s-lisp.;;.OPTIONAL.configuration |
| 3b80 | 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 70 74 2d 33 2e 35 2d 74 75 72 | .(setq..gptel-model.'gpt-3.5-tur |
| 3ba0 | 62 6f 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a | bo..gptel-backend.(gptel-make-az |
| 3bc0 | 75 72 65 20 22 41 7a 75 72 65 2d 31 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ure."Azure-1"..................: |
| 3be0 | 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol."https"................ |
| 3c00 | 20 20 3a 68 6f 73 74 20 22 59 4f 55 52 5f 52 45 53 4f 55 52 43 45 5f 4e 41 4d 45 2e 6f 70 65 6e | ..:host."YOUR_RESOURCE_NAME.open |
| 3c20 | 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ai.azure.com"..................: |
| 3c40 | 65 6e 64 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 69 2f 64 65 70 6c 6f 79 6d 65 6e 74 73 2f 59 4f | endpoint."/openai/deployments/YO |
| 3c60 | 55 52 5f 44 45 50 4c 4f 59 4d 45 4e 54 5f 4e 41 4d 45 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 | UR_DEPLOYMENT_NAME/chat/completi |
| 3c80 | 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e 3d 32 30 32 33 2d 30 35 2d 31 35 22 0a 20 20 20 20 | ons?api-version=2023-05-15"..... |
| 3ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 | .............:stream.t.......... |
| 3cc0 | 20 20 20 20 20 20 20 20 3a 6b 65 79 20 23 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 | ........:key.#'gptel-api-key.... |
| 3ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 67 70 74 2d 33 2e 35 2d | ..............:models.'(gpt-3.5- |
| 3d00 | 74 75 72 62 6f 20 67 70 74 2d 34 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 74 6d 6c 3a | turbo.gpt-4))).#+end_src.#+html: |
| 3d20 | 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | .</details>..#+html:.<details><s |
| 3d40 | 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 50 54 34 41 6c 6c 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 | ummary>.****.GPT4All.#+html:.</s |
| 3d60 | 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | ummary>..Register.a.backend.with |
| 3d80 | 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d | .#+begin_src.emacs-lisp.(gptel-m |
| 3da0 | 61 6b 65 2d 67 70 74 34 61 6c 6c 20 22 47 50 54 34 41 6c 6c 22 20 20 20 20 20 20 20 20 20 20 20 | ake-gpt4all."GPT4All"........... |
| 3dc0 | 3b 4e 61 6d 65 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 0a 20 3a 70 72 6f 74 6f 63 6f | ;Name.of.your.choosing..:protoco |
| 3de0 | 6c 20 22 68 74 74 70 22 0a 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 34 38 39 31 22 | l."http"..:host."localhost:4891" |
| 3e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 57 68 65 72 65 20 69 74 27 73 20 72 75 6e | .................;Where.it's.run |
| 3e20 | 6e 69 6e 67 0a 20 3a 6d 6f 64 65 6c 73 20 27 28 6d 69 73 74 72 61 6c 2d 37 62 2d 6f 70 65 6e 6f | ning..:models.'(mistral-7b-openo |
| 3e40 | 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 29 29 20 3b 41 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c | rca.Q4_0.gguf)).;Available.model |
| 3e60 | 73 0a 23 2b 65 6e 64 5f 73 72 63 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 | s.#+end_src.These.are.the.requir |
| 3e80 | 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 | ed.parameters,.refer.to.the.docu |
| 3ea0 | 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c | mentation.of.=gptel-make-gpt4all |
| 3ec0 | 3d 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 | =.for.more...You.can.pick.this.b |
| 3ee0 | 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 | ackend.from.the.menu.when.using. |
| 3f00 | 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a | gptel.(see.[[#usage][Usage]])... |
| 3f20 | 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 | *****.(Optional).Set.as.the.defa |
| 3f40 | 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 | ult.gptel.backend..The.above.cod |
| 3f60 | 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f | e.makes.the.backend.available.to |
| 3f80 | 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 | .select...If.you.want.it.to.be.t |
| 3fa0 | 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f | he.default.backend.for.gptel,.yo |
| 3fc0 | 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d | u.can.set.this.as.the.value.of.= |
| 3fe0 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 | gptel-backend=...Use.this.instea |
| 4000 | 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20 79 6f | d.of.the.above...Additionally.yo |
| 4020 | 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 72 65 73 70 6f | u.may.want.to.increase.the.respo |
| 4040 | 6e 73 65 20 74 6f 6b 65 6e 20 73 69 7a 65 20 73 69 6e 63 65 20 47 50 54 34 41 6c 6c 20 75 73 65 | nse.token.size.since.GPT4All.use |
| 4060 | 73 20 76 65 72 79 20 73 68 6f 72 74 20 28 6f 66 74 65 6e 20 74 72 75 6e 63 61 74 65 64 29 20 72 | s.very.short.(often.truncated).r |
| 4080 | 65 73 70 6f 6e 73 65 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | esponses.by.default..#+begin_src |
| 40a0 | 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 | .emacs-lisp.;;.OPTIONAL.configur |
| 40c0 | 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 35 30 | ation.(setq..gptel-max-tokens.50 |
| 40e0 | 30 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 6d 69 73 74 72 61 6c 2d 37 62 2d 6f 70 65 6e 6f | 0..gptel-model.'mistral-7b-openo |
| 4100 | 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 | rca.Q4_0.gguf..gptel-backend.(gp |
| 4120 | 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 20 22 47 50 54 34 41 6c 6c 22 0a 20 20 20 20 20 | tel-make-gpt4all."GPT4All"...... |
| 4140 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 20 | ............:protocol."http".... |
| 4160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 34 | ..............:host."localhost:4 |
| 4180 | 38 39 31 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 | 891"..................:models.'( |
| 41a0 | 6d 69 73 74 72 61 6c 2d 37 62 2d 6f 70 65 6e 6f 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 29 29 29 | mistral-7b-openorca.Q4_0.gguf))) |
| 41c0 | 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a | .#+end_src..#+html:.</details>.. |
| 41e0 | 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 | #+html:.<details><summary>.****. |
| 4200 | 4f 6c 6c 61 6d 61 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 | Ollama.#+html:.</summary>..Regis |
| 4220 | 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 | ter.a.backend.with.#+begin_src.e |
| 4240 | 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 20 22 4f 6c | macs-lisp.(gptel-make-ollama."Ol |
| 4260 | 6c 61 6d 61 22 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 6f 66 20 79 | lama".............;Any.name.of.y |
| 4280 | 6f 75 72 20 63 68 6f 6f 73 69 6e 67 0a 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a | our.choosing...:host."localhost: |
| 42a0 | 31 31 34 33 34 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 57 68 65 72 65 20 69 74 27 73 | 11434"...............;Where.it's |
| 42c0 | 20 72 75 6e 6e 69 6e 67 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 | .running...:stream.t............ |
| 42e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 74 72 65 61 6d 20 72 65 73 70 6f 6e 73 | .................;Stream.respons |
| 4300 | 65 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 29 29 20 | es...:models.'(mistral:latest)). |
| 4320 | 20 20 20 20 20 20 20 20 20 3b 4c 69 73 74 20 6f 66 20 6d 6f 64 65 6c 73 0a 23 2b 65 6e 64 5f 73 | .........;List.of.models.#+end_s |
| 4340 | 72 63 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6d 65 | rc.These.are.the.required.parame |
| 4360 | 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e | ters,.refer.to.the.documentation |
| 4380 | 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 3d 20 66 6f 72 20 6d 6f 72 65 | .of.=gptel-make-ollama=.for.more |
| 43a0 | 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f | ...You.can.pick.this.backend.fro |
| 43c0 | 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 | m.the.menu.when.using.gptel.(see |
| 43e0 | 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 | .[[#usage][Usage]])..*****.(Opti |
| 4400 | 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 | onal).Set.as.the.default.gptel.b |
| 4420 | 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 | ackend..The.above.code.makes.the |
| 4440 | 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 | .backend.available.to.select...I |
| 4460 | 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 | f.you.want.it.to.be.the.default. |
| 4480 | 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 | backend.for.gptel,.you.can.set.t |
| 44a0 | 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 | his.as.the.value.of.=gptel-backe |
| 44c0 | 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 | nd=...Use.this.instead.of.the.ab |
| 44e0 | 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f | ove..#+begin_src.emacs-lisp.;;.O |
| 4500 | 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 | PTIONAL.configuration.(setq..gpt |
| 4520 | 65 6c 2d 6d 6f 64 65 6c 20 27 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 0a 20 67 70 74 65 6c 2d | el-model.'mistral:latest..gptel- |
| 4540 | 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 20 22 4f 6c 6c 61 | backend.(gptel-make-ollama."Olla |
| 4560 | 6d 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 | ma"..................:host."loca |
| 4580 | 6c 68 6f 73 74 3a 31 31 34 33 34 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 | lhost:11434"..................:s |
| 45a0 | 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 | tream.t..................:models |
| 45c0 | 20 27 28 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | .'(mistral:latest))).#+end_src.. |
| 45e0 | 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 | #+html:.</details>..#+html:.<det |
| 4600 | 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 65 6d 69 6e 69 0a 23 2b 68 74 6d | ails><summary>.****.Gemini.#+htm |
| 4620 | 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e | l:.</summary>..Register.a.backen |
| 4640 | 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b | d.with.#+begin_src.emacs-lisp.;; |
| 4660 | 20 3a 6b 65 79 20 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 | .:key.can.be.a.function.that.ret |
| 4680 | 75 72 6e 73 20 74 68 65 20 41 50 49 20 6b 65 79 2e 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 | urns.the.API.key..(gptel-make-ge |
| 46a0 | 6d 69 6e 69 20 22 47 65 6d 69 6e 69 22 20 3a 6b 65 79 20 22 59 4f 55 52 5f 47 45 4d 49 4e 49 5f | mini."Gemini".:key."YOUR_GEMINI_ |
| 46c0 | 41 50 49 5f 4b 45 59 22 20 3a 73 74 72 65 61 6d 20 74 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 54 68 | API_KEY".:stream.t).#+end_src.Th |
| 46e0 | 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c | ese.are.the.required.parameters, |
| 4700 | 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d | .refer.to.the.documentation.of.= |
| 4720 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 3d 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f | gptel-make-gemini=.for.more...Yo |
| 4740 | 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 | u.can.pick.this.backend.from.the |
| 4760 | 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 | .menu.when.using.gptel.(see.[[#u |
| 4780 | 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 | sage][Usage]])..*****.(Optional) |
| 47a0 | 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e | .Set.as.the.default.gptel.backen |
| 47c0 | 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b | d..The.above.code.makes.the.back |
| 47e0 | 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 | end.available.to.select...If.you |
| 4800 | 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 | .want.it.to.be.the.default.backe |
| 4820 | 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 | nd.for.gptel,.you.can.set.this.a |
| 4840 | 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 | s.the.value.of.=gptel-backend=.. |
| 4860 | 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a | .Use.this.instead.of.the.above.. |
| 4880 | 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e | #+begin_src.emacs-lisp.;;.OPTION |
| 48a0 | 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f | AL.configuration.(setq..gptel-mo |
| 48c0 | 64 65 6c 20 27 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 65 78 70 2d 30 33 2d 32 35 0a 20 67 | del.'gemini-2.5-pro-exp-03-25..g |
| 48e0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 20 | ptel-backend.(gptel-make-gemini. |
| 4900 | 22 47 65 6d 69 6e 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 | "Gemini"..................:key." |
| 4920 | 59 4f 55 52 5f 47 45 4d 49 4e 49 5f 41 50 49 5f 4b 45 59 22 0a 20 20 20 20 20 20 20 20 20 20 20 | YOUR_GEMINI_API_KEY"............ |
| 4940 | 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 | ......:stream.t)).#+end_src..#+h |
| 4960 | 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c | tml:.</details>..#+html:.<detail |
| 4980 | 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 4c 6c 61 6d 61 2e | s>.#+html:.<summary>.****.Llama. |
| 49a0 | 63 70 70 20 6f 72 20 4c 6c 61 6d 61 66 69 6c 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | cpp.or.Llamafile.#+html:.</summa |
| 49c0 | 72 79 3e 0a 0a 28 49 66 20 75 73 69 6e 67 20 61 20 6c 6c 61 6d 61 66 69 6c 65 2c 20 72 75 6e 20 | ry>..(If.using.a.llamafile,.run. |
| 49e0 | 61 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 4d 6f 7a 69 6c 6c 61 2d 4f | a.[[https://github.com/Mozilla-O |
| 4a00 | 63 68 6f 2f 6c 6c 61 6d 61 66 69 6c 65 23 6f 74 68 65 72 2d 65 78 61 6d 70 6c 65 2d 6c 6c 61 6d | cho/llamafile#other-example-llam |
| 4a20 | 61 66 69 6c 65 73 5d 5b 73 65 72 76 65 72 20 6c 6c 61 6d 61 66 69 6c 65 5d 5d 20 69 6e 73 74 65 | afiles][server.llamafile]].inste |
| 4a40 | 61 64 20 6f 66 20 61 20 22 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 6c 6c 61 6d 61 66 69 6c 65 22 | ad.of.a."command-line.llamafile" |
| 4a60 | 2c 20 61 6e 64 20 61 20 6d 6f 64 65 6c 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 20 74 65 78 74 | ,.and.a.model.that.supports.text |
| 4a80 | 20 67 65 6e 65 72 61 74 69 6f 6e 2e 29 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e | .generation.)..Register.a.backen |
| 4aa0 | 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b | d.with.#+begin_src.emacs-lisp.;; |
| 4ac0 | 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 | .Llama.cpp.offers.an.OpenAI.comp |
| 4ae0 | 61 74 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 6c | atible.API.(gptel-make-openai."l |
| 4b00 | 6c 61 6d 61 2d 63 70 70 22 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 0a 20 20 3a | lama-cpp"..........;Any.name...: |
| 4b20 | 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | stream.t........................ |
| 4b40 | 20 20 20 20 20 3b 53 74 72 65 61 6d 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 70 72 6f 74 6f 63 | .....;Stream.responses...:protoc |
| 4b60 | 6f 6c 20 22 68 74 74 70 22 0a 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 | ol."http"...:host."localhost:800 |
| 4b80 | 30 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4c 6c 61 6d 61 2e 63 70 70 20 73 65 72 | 0"................;Llama.cpp.ser |
| 4ba0 | 76 65 72 20 6c 6f 63 61 74 69 6f 6e 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 74 65 73 74 29 29 20 | ver.location...:models.'(test)). |
| 4bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 73 2c 20 64 | ...................;Any.names,.d |
| 4be0 | 6f 65 73 6e 27 74 20 6d 61 74 74 65 72 20 66 6f 72 20 4c 6c 61 6d 61 0a 23 2b 65 6e 64 5f 73 72 | oesn't.matter.for.Llama.#+end_sr |
| 4c00 | 63 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6d 65 74 | c.These.are.the.required.paramet |
| 4c20 | 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 | ers,.refer.to.the.documentation. |
| 4c40 | 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 3d 20 66 6f 72 20 6d 6f 72 65 2e | of.=gptel-make-openai=.for.more. |
| 4c60 | 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d | ..You.can.pick.this.backend.from |
| 4c80 | 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 | .the.menu.when.using.gptel.(see. |
| 4ca0 | 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f | [[#usage][Usage]])..*****.(Optio |
| 4cc0 | 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 | nal).Set.as.the.default.gptel.ba |
| 4ce0 | 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 | ckend..The.above.code.makes.the. |
| 4d00 | 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 | backend.available.to.select...If |
| 4d20 | 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 | .you.want.it.to.be.the.default.b |
| 4d40 | 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 | ackend.for.gptel,.you.can.set.th |
| 4d60 | 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e | is.as.the.value.of.=gptel-backen |
| 4d80 | 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f | d=...Use.this.instead.of.the.abo |
| 4da0 | 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 | ve..#+begin_src.emacs-lisp.;;.OP |
| 4dc0 | 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 | TIONAL.configuration.(setq..gpte |
| 4de0 | 6c 2d 6d 6f 64 65 6c 20 20 20 27 74 65 73 74 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | l-model...'test..gptel-backend.( |
| 4e00 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 6c 6c 61 6d 61 2d 63 70 70 22 0a 20 20 | gptel-make-openai."llama-cpp"... |
| 4e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 | ...............:stream.t........ |
| 4e40 | 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 20 20 20 | ..........:protocol."http"...... |
| 4e60 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 | ............:host."localhost:800 |
| 4e80 | 30 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 74 65 | 0"..................:models.'(te |
| 4ea0 | 73 74 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | st))).#+end_src..#+html:.</detai |
| 4ec0 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a | ls>.#+html:.<details><summary>.* |
| 4ee0 | 2a 2a 2a 20 4b 61 67 69 20 28 46 61 73 74 47 50 54 20 26 20 53 75 6d 6d 61 72 69 7a 65 72 29 0a | ***.Kagi.(FastGPT.&.Summarizer). |
| 4f00 | 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 4b 61 67 69 27 73 20 46 61 73 74 47 | #+html:.</summary>..Kagi's.FastG |
| 4f20 | 50 54 20 6d 6f 64 65 6c 20 61 6e 64 20 74 68 65 20 55 6e 69 76 65 72 73 61 6c 20 53 75 6d 6d 61 | PT.model.and.the.Universal.Summa |
| 4f40 | 72 69 7a 65 72 20 61 72 65 20 62 6f 74 68 20 73 75 70 70 6f 72 74 65 64 2e 20 20 41 20 63 6f 75 | rizer.are.both.supported...A.cou |
| 4f60 | 70 6c 65 20 6f 66 20 6e 6f 74 65 73 3a 0a 0a 31 2e 20 55 6e 69 76 65 72 73 61 6c 20 53 75 6d 6d | ple.of.notes:..1..Universal.Summ |
| 4f80 | 61 72 69 7a 65 72 3a 20 49 66 20 74 68 65 72 65 20 69 73 20 61 20 55 52 4c 20 61 74 20 70 6f 69 | arizer:.If.there.is.a.URL.at.poi |
| 4fa0 | 6e 74 2c 20 74 68 65 20 73 75 6d 6d 61 72 69 7a 65 72 20 77 69 6c 6c 20 73 75 6d 6d 61 72 69 7a | nt,.the.summarizer.will.summariz |
| 4fc0 | 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 55 52 4c 2e 20 20 4f 74 68 65 | e.the.contents.of.the.URL...Othe |
| 4fe0 | 72 77 69 73 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 65 6e 74 20 74 6f 20 74 68 65 20 6d 6f | rwise.the.context.sent.to.the.mo |
| 5000 | 64 65 6c 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 61 6c 77 61 79 73 3a 20 74 68 65 20 62 | del.is.the.same.as.always:.the.b |
| 5020 | 75 66 66 65 72 20 74 65 78 74 20 75 70 74 6f 20 70 6f 69 6e 74 2c 20 6f 72 20 74 68 65 20 63 6f | uffer.text.upto.point,.or.the.co |
| 5040 | 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 66 20 74 68 65 20 72 65 67 69 | ntents.of.the.region.if.the.regi |
| 5060 | 6f 6e 20 69 73 20 61 63 74 69 76 65 2e 0a 0a 32 2e 20 4b 61 67 69 20 6d 6f 64 65 6c 73 20 64 6f | on.is.active...2..Kagi.models.do |
| 5080 | 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 6d 75 6c 74 69 2d 74 75 72 6e 20 63 6f 6e 76 65 72 73 61 | .not.support.multi-turn.conversa |
| 50a0 | 74 69 6f 6e 73 2c 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 20 61 72 65 20 22 6f 6e 65 2d 73 68 6f | tions,.interactions.are."one-sho |
| 50c0 | 74 22 2e 20 20 54 68 65 79 20 61 6c 73 6f 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 74 | t"...They.also.do.not.support.st |
| 50e0 | 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 | reaming.responses...Register.a.b |
| 5100 | 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | ackend.with.#+begin_src.emacs-li |
| 5120 | 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 22 4b 61 67 69 22 20 20 20 20 20 20 | sp.(gptel-make-kagi."Kagi"...... |
| 5140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 61 6e 79 20 6e 61 6d 65 0a 20 20 3a 6b 65 79 20 22 | ..............;any.name...:key." |
| 5160 | 59 4f 55 52 5f 4b 41 47 49 5f 41 50 49 5f 4b 45 59 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 | YOUR_KAGI_API_KEY")............. |
| 5180 | 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 | ...;can.be.a.function.that.retur |
| 51a0 | 6e 73 20 74 68 65 20 6b 65 79 0a 23 2b 65 6e 64 5f 73 72 63 0a 54 68 65 73 65 20 61 72 65 20 74 | ns.the.key.#+end_src.These.are.t |
| 51c0 | 68 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f | he.required.parameters,.refer.to |
| 51e0 | 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b | .the.documentation.of.=gptel-mak |
| 5200 | 65 2d 6b 61 67 69 3d 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 | e-kagi=.for.more...You.can.pick. |
| 5220 | 74 68 69 73 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 28 66 61 73 74 | this.backend.and.the.model.(fast |
| 5240 | 67 70 74 2f 73 75 6d 6d 61 72 69 7a 65 72 29 20 66 72 6f 6d 20 74 68 65 20 74 72 61 6e 73 69 65 | gpt/summarizer).from.the.transie |
| 5260 | 6e 74 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 0a 2a 2a 2a 2a 2a | nt.menu.when.using.gptel...***** |
| 5280 | 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 | .(Optional).Set.as.the.default.g |
| 52a0 | 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b | ptel.backend..The.above.code.mak |
| 52c0 | 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 | es.the.backend.available.to.sele |
| 52e0 | 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 | ct...If.you.want.it.to.be.the.de |
| 5300 | 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e | fault.backend.for.gptel,.you.can |
| 5320 | 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c | .set.this.as.the.value.of.=gptel |
| 5340 | 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 | -backend=...Use.this.instead.of. |
| 5360 | 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 | the.above..#+begin_src.emacs-lis |
| 5380 | 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 | p.;;.OPTIONAL.configuration.(set |
| 53a0 | 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 66 61 73 74 67 70 74 0a 20 67 70 74 65 6c 2d 62 | q..gptel-model.'fastgpt..gptel-b |
| 53c0 | 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 22 4b 61 67 69 22 0a 20 | ackend.(gptel-make-kagi."Kagi".. |
| 53e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 59 4f 55 52 5f 4b 41 47 49 5f | ................:key."YOUR_KAGI_ |
| 5400 | 41 50 49 5f 4b 45 59 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 61 6c 74 65 72 6e | API_KEY")).#+end_src..The.altern |
| 5420 | 61 74 69 76 65 73 20 74 6f 20 3d 66 61 73 74 67 70 74 3d 20 69 6e 63 6c 75 64 65 20 3d 73 75 6d | atives.to.=fastgpt=.include.=sum |
| 5440 | 6d 61 72 69 7a 65 3a 63 65 63 69 6c 3d 2c 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 61 67 6e 65 73 3d | marize:cecil=,.=summarize:agnes= |
| 5460 | 2c 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 64 61 70 68 6e 65 3d 20 61 6e 64 20 3d 73 75 6d 6d 61 72 | ,.=summarize:daphne=.and.=summar |
| 5480 | 69 7a 65 3a 6d 75 72 69 65 6c 3d 2e 20 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 | ize:muriel=...The.difference.bet |
| 54a0 | 77 65 65 6e 20 74 68 65 20 73 75 6d 6d 61 72 69 7a 65 72 20 65 6e 67 69 6e 65 73 20 69 73 20 5b | ween.the.summarizer.engines.is.[ |
| 54c0 | 5b 68 74 74 70 73 3a 2f 2f 68 65 6c 70 2e 6b 61 67 69 2e 63 6f 6d 2f 6b 61 67 69 2f 61 70 69 2f | [https://help.kagi.com/kagi/api/ |
| 54e0 | 73 75 6d 6d 61 72 69 7a 65 72 2e 68 74 6d 6c 23 73 75 6d 6d 61 72 69 7a 61 74 69 6f 6e 2d 65 6e | summarizer.html#summarization-en |
| 5500 | 67 69 6e 65 73 5d 5b 64 6f 63 75 6d 65 6e 74 65 64 20 68 65 72 65 5d 5d 2e 0a 0a 23 2b 68 74 6d | gines][documented.here]]...#+htm |
| 5520 | 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c | l:.</details>.#+html:.<details>< |
| 5540 | 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 74 6f 67 65 74 68 65 72 2e 61 69 0a 23 2b 68 74 6d 6c | summary>.****.together.ai.#+html |
| 5560 | 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 | :.</summary>..Register.a.backend |
| 5580 | 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 | .with.#+begin_src.emacs-lisp.;;. |
| 55a0 | 54 6f 67 65 74 68 65 72 2e 61 69 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d | Together.ai.offers.an.OpenAI.com |
| 55c0 | 70 61 74 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 | patible.API.(gptel-make-openai." |
| 55e0 | 54 6f 67 65 74 68 65 72 41 49 22 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f | TogetherAI".........;Any.name.yo |
| 5600 | 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 74 6f 67 65 74 68 65 72 2e 78 79 7a | u.want...:host."api.together.xyz |
| 5620 | 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 | "...:key."your-api-key"......... |
| 5640 | 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 | ..........;can.be.a.function.tha |
| 5660 | 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 | t.returns.the.key...:stream.t... |
| 5680 | 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 | :models.'(;;.has.many.more,.chec |
| 56a0 | 6b 20 74 6f 67 65 74 68 65 72 2e 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 | k.together.ai.............mistra |
| 56c0 | 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 0a 20 | lai/Mixtral-8x7B-Instruct-v0.1.. |
| 56e0 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 31 | ...........codellama/CodeLlama-1 |
| 5700 | 33 62 2d 49 6e 73 74 72 75 63 74 2d 68 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c | 3b-Instruct-hf.............codel |
| 5720 | 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 33 34 62 2d 49 6e 73 74 72 75 63 74 2d 68 66 29 29 | lama/CodeLlama-34b-Instruct-hf)) |
| 5740 | 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 | .#+end_src..You.can.pick.this.ba |
| 5760 | 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 | ckend.from.the.menu.when.using.g |
| 5780 | 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a | ptel.(see.[[#usage][Usage]])..** |
| 57a0 | 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c | ***.(Optional).Set.as.the.defaul |
| 57c0 | 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 | t.gptel.backend..The.above.code. |
| 57e0 | 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 | makes.the.backend.available.to.s |
| 5800 | 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 | elect...If.you.want.it.to.be.the |
| 5820 | 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 | .default.backend.for.gptel,.you. |
| 5840 | 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 | can.set.this.as.the.value.of.=gp |
| 5860 | 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 | tel-backend=...Use.this.instead. |
| 5880 | 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | of.the.above..#+begin_src.emacs- |
| 58a0 | 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 | lisp.;;.OPTIONAL.configuration.( |
| 58c0 | 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 6d 69 73 74 72 61 6c 61 69 2f 4d | setq..gptel-model...'mistralai/M |
| 58e0 | 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 0a 20 67 70 74 65 6c | ixtral-8x7B-Instruct-v0.1..gptel |
| 5900 | 2d 62 61 63 6b 65 6e 64 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 54 6f | -backend..(gptel-make-openai."To |
| 5920 | 67 65 74 68 65 72 41 49 22 20 20 20 20 20 20 20 20 20 0a 20 20 20 3a 68 6f 73 74 20 22 61 70 69 | getherAI".............:host."api |
| 5940 | 2e 74 6f 67 65 74 68 65 72 2e 78 79 7a 22 0a 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 | .together.xyz"....:key."your-api |
| 5960 | 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 3a 73 74 72 | -key".......................:str |
| 5980 | 65 61 6d 20 74 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d | eam.t....:models.'(;;.has.many.m |
| 59a0 | 6f 72 65 2c 20 63 68 65 63 6b 20 74 6f 67 65 74 68 65 72 2e 61 69 0a 20 20 20 20 20 20 20 20 20 | ore,.check.together.ai.......... |
| 59c0 | 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 | ....mistralai/Mixtral-8x7B-Instr |
| 59e0 | 75 63 74 2d 76 30 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f | uct-v0.1..............codellama/ |
| 5a00 | 43 6f 64 65 4c 6c 61 6d 61 2d 31 33 62 2d 49 6e 73 74 72 75 63 74 2d 68 66 0a 20 20 20 20 20 20 | CodeLlama-13b-Instruct-hf....... |
| 5a20 | 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 33 34 62 2d 49 | .......codellama/CodeLlama-34b-I |
| 5a40 | 6e 73 74 72 75 63 74 2d 68 66 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a | nstruct-hf))).#+end_src..#+html: |
| 5a60 | 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 | .</details>.#+html:.<details><su |
| 5a80 | 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 6e 79 73 63 61 6c 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 | mmary>.****.Anyscale.#+html:.</s |
| 5aa0 | 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | ummary>..Register.a.backend.with |
| 5ac0 | 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 41 6e 79 73 63 | .#+begin_src.emacs-lisp.;;.Anysc |
| 5ae0 | 61 6c 65 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 | ale.offers.an.OpenAI.compatible. |
| 5b00 | 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 41 6e 79 73 63 61 6c 65 | API.(gptel-make-openai."Anyscale |
| 5b20 | 22 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 | "...........;Any.name.you.want.. |
| 5b40 | 20 3a 68 6f 73 74 20 22 61 70 69 2e 65 6e 64 70 6f 69 6e 74 73 2e 61 6e 79 73 63 61 6c 65 2e 63 | .:host."api.endpoints.anyscale.c |
| 5b60 | 6f 6d 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 | om"...:key."your-api-key"....... |
| 5b80 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 | ............;can.be.a.function.t |
| 5ba0 | 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 | hat.returns.the.key...:models.'( |
| 5bc0 | 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 6b 20 61 6e 79 73 63 61 6c 65 | ;;.has.many.more,.check.anyscale |
| 5be0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 | .............mistralai/Mixtral-8 |
| 5c00 | 78 37 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 | x7B-Instruct-v0.1)).#+end_src..Y |
| 5c20 | 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 | ou.can.pick.this.backend.from.th |
| 5c40 | 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 | e.menu.when.using.gptel.(see.[[# |
| 5c60 | 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c | usage][Usage]])..*****.(Optional |
| 5c80 | 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 | ).Set.as.the.default.gptel.backe |
| 5ca0 | 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 | nd..The.above.code.makes.the.bac |
| 5cc0 | 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f | kend.available.to.select...If.yo |
| 5ce0 | 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b | u.want.it.to.be.the.default.back |
| 5d00 | 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 | end.for.gptel,.you.can.set.this. |
| 5d20 | 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e | as.the.value.of.=gptel-backend=. |
| 5d40 | 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e | ..Use.this.instead.of.the.above. |
| 5d60 | 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f | .#+begin_src.emacs-lisp.;;.OPTIO |
| 5d80 | 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d | NAL.configuration.(setq..gptel-m |
| 5da0 | 6f 64 65 6c 20 20 20 27 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 | odel...'mistralai/Mixtral-8x7B-I |
| 5dc0 | 6e 73 74 72 75 63 74 2d 76 30 2e 31 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 28 67 70 | nstruct-v0.1..gptel-backend..(gp |
| 5de0 | 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 41 6e 79 73 63 61 6c 65 22 0a 20 20 20 20 20 | tel-make-openai."Anyscale"...... |
| 5e00 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 65 6e 64 70 6f 69 6e 74 73 | ............:host."api.endpoints |
| 5e20 | 2e 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .anyscale.com".................. |
| 5e40 | 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | :key."your-api-key"............. |
| 5e60 | 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c | .....:models.'(;;.has.many.more, |
| 5e80 | 20 63 68 65 63 6b 20 61 6e 79 73 63 61 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .check.anyscale................. |
| 5ea0 | 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 | ...........mistralai/Mixtral-8x7 |
| 5ec0 | 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b | B-Instruct-v0.1))).#+end_src..#+ |
| 5ee0 | 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c | html:.</details>.#+html:.<detail |
| 5f00 | 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 50 65 72 70 6c 65 78 69 74 79 0a 23 2b 68 74 | s><summary>.****.Perplexity.#+ht |
| 5f20 | 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 | ml:.</summary>..Register.a.backe |
| 5f40 | 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 | nd.with.#+begin_src.emacs-lisp.( |
| 5f60 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 20 22 50 65 72 70 6c 65 78 69 74 | gptel-make-perplexity."Perplexit |
| 5f80 | 79 22 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 6b 65 79 | y".....;Any.name.you.want...:key |
| 5fa0 | 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."your-api-key"................. |
| 5fc0 | 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e | ..;can.be.a.function.that.return |
| 5fe0 | 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 73 74 72 65 61 6d 20 74 29 20 20 20 20 20 20 20 20 20 20 | s.the.key...:stream.t).......... |
| 6000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 49 66 20 79 6f 75 20 77 61 6e 74 20 72 | ..................;If.you.want.r |
| 6020 | 65 73 70 6f 6e 73 65 73 20 74 6f 20 62 65 20 73 74 72 65 61 6d 65 64 0a 23 2b 65 6e 64 5f 73 72 | esponses.to.be.streamed.#+end_sr |
| 6040 | 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f | c..You.can.pick.this.backend.fro |
| 6060 | 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 | m.the.menu.when.using.gptel.(see |
| 6080 | 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 | .[[#usage][Usage]])..*****.(Opti |
| 60a0 | 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 | onal).Set.as.the.default.gptel.b |
| 60c0 | 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 | ackend..The.above.code.makes.the |
| 60e0 | 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 | .backend.available.to.select...I |
| 6100 | 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 | f.you.want.it.to.be.the.default. |
| 6120 | 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 | backend.for.gptel,.you.can.set.t |
| 6140 | 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 | his.as.the.value.of.=gptel-backe |
| 6160 | 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 | nd=...Use.this.instead.of.the.ab |
| 6180 | 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f | ove..#+begin_src.emacs-lisp.;;.O |
| 61a0 | 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 | PTIONAL.configuration.(setq..gpt |
| 61c0 | 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 73 6f 6e 61 72 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | el-model...'sonar..gptel-backend |
| 61e0 | 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 20 22 50 65 72 70 6c 65 78 | .(gptel-make-perplexity."Perplex |
| 6200 | 69 74 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 | ity"..................:key."your |
| 6220 | 2d 61 70 69 2d 6b 65 79 22 20 3a 73 74 72 65 61 6d 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a | -api-key".:stream.t)).#+end_src. |
| 6240 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 | .#+html:.</details>.#+html:.<det |
| 6260 | 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 6e 74 68 72 6f 70 69 63 20 28 43 | ails><summary>.****.Anthropic.(C |
| 6280 | 6c 61 75 64 65 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 52 65 67 69 73 74 | laude).#+html:.</summary>.Regist |
| 62a0 | 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d | er.a.backend.with.#+begin_src.em |
| 62c0 | 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 | acs-lisp.(gptel-make-anthropic." |
| 62e0 | 43 6c 61 75 64 65 22 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 | Claude"..........;Any.name.you.w |
| 6300 | 61 6e 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ant...:stream.t................. |
| 6320 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 | ............;Streaming.responses |
| 6340 | 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 0a 23 2b 65 6e 64 5f 73 72 | ...:key."your-api-key").#+end_sr |
| 6360 | 63 0a 54 68 65 20 3d 3a 6b 65 79 3d 20 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 | c.The.=:key=.can.be.a.function.t |
| 6380 | 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 20 28 6d 6f 72 65 20 73 65 63 75 72 65 | hat.returns.the.key.(more.secure |
| 63a0 | 29 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 | )...You.can.pick.this.backend.fr |
| 63c0 | 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 | om.the.menu.when.using.gptel.(se |
| 63e0 | 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 | e.[[#usage][Usage]])...*****.(Op |
| 6400 | 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c | tional).Set.as.the.default.gptel |
| 6420 | 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 | .backend..The.above.code.makes.t |
| 6440 | 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 | he.backend.available.to.select.. |
| 6460 | 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c | .If.you.want.it.to.be.the.defaul |
| 6480 | 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 | t.backend.for.gptel,.you.can.set |
| 64a0 | 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 | .this.as.the.value.of.=gptel-bac |
| 64c0 | 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 | kend=...Use.this.instead.of.the. |
| 64e0 | 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b | above..#+begin_src.emacs-lisp.;; |
| 6500 | 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 | .OPTIONAL.configuration.(setq..g |
| 6520 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 | ptel-model.'claude-3-sonnet-2024 |
| 6540 | 30 32 32 39 20 3b 20 20 22 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 22 | 0229.;.."claude-3-opus-20240229" |
| 6560 | 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | .also.available..gptel-backend.( |
| 6580 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 64 65 22 0a 20 20 | gptel-make-anthropic."Claude"... |
| 65a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 20 3a 6b 65 79 20 22 79 | ...............:stream.t.:key."y |
| 65c0 | 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2a 2a 2a 2a 2a 20 | our-api-key")).#+end_src..*****. |
| 65e0 | 28 4f 70 74 69 6f 6e 61 6c 29 20 49 6e 74 65 72 69 6d 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 | (Optional).Interim.support.for.C |
| 6600 | 6c 61 75 64 65 20 33 2e 37 20 53 6f 6e 6e 65 74 0a 0a 54 6f 20 75 73 65 20 43 6c 61 75 64 65 20 | laude.3.7.Sonnet..To.use.Claude. |
| 6620 | 33 2e 37 20 53 6f 6e 6e 65 74 20 6d 6f 64 65 6c 20 69 6e 20 69 74 73 20 22 74 68 69 6e 6b 69 6e | 3.7.Sonnet.model.in.its."thinkin |
| 6640 | 67 22 20 6d 6f 64 65 2c 20 79 6f 75 20 63 61 6e 20 64 65 66 69 6e 65 20 61 20 73 65 63 6f 6e 64 | g".mode,.you.can.define.a.second |
| 6660 | 20 43 6c 61 75 64 65 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 73 65 6c 65 63 74 20 69 74 20 76 69 | .Claude.backend.and.select.it.vi |
| 6680 | 61 20 74 68 65 20 55 49 20 6f 72 20 65 6c 69 73 70 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 | a.the.UI.or.elisp:..#+begin_src. |
| 66a0 | 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 | emacs-lisp.(gptel-make-anthropic |
| 66c0 | 20 22 43 6c 61 75 64 65 2d 74 68 69 6e 6b 69 6e 67 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 | ."Claude-thinking".;Any.name.you |
| 66e0 | 20 77 61 6e 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 41 50 49 2d 6b 65 79 22 0a 20 20 3a 73 | .want...:key."your-API-key"...:s |
| 6700 | 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 63 6c 61 75 64 65 2d 33 2d 37 2d 73 | tream.t...:models.'(claude-3-7-s |
| 6720 | 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 29 0a 20 20 3a 68 65 61 64 65 72 20 28 6c 61 6d 62 64 | onnet-20250219)...:header.(lambd |
| 6740 | 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 | a.().(when-let*.((key.(gptel--ge |
| 6760 | 74 2d 61 70 69 2d 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 | t-api-key)))...................` |
| 6780 | 28 28 22 78 2d 61 70 69 2d 6b 65 79 22 20 2e 20 2c 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 | (("x-api-key"...,key)........... |
| 67a0 | 20 20 20 20 20 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 76 65 72 73 69 6f 6e 22 20 2e | ..........("anthropic-version".. |
| 67c0 | 20 22 32 30 32 33 2d 30 36 2d 30 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."2023-06-01").................. |
| 67e0 | 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 70 64 66 73 2d 32 30 32 | ...("anthropic-beta"..."pdfs-202 |
| 6800 | 34 2d 30 39 2d 32 35 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 | 4-09-25").....................(" |
| 6820 | 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 6f 75 74 70 75 74 2d 31 32 38 6b 2d 32 | anthropic-beta"..."output-128k-2 |
| 6840 | 30 32 35 2d 30 32 2d 31 39 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 025-02-19")..................... |
| 6860 | 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 70 72 6f 6d 70 74 2d 63 61 63 68 | ("anthropic-beta"..."prompt-cach |
| 6880 | 69 6e 67 2d 32 30 32 34 2d 30 37 2d 33 31 22 29 29 29 29 0a 20 20 3a 72 65 71 75 65 73 74 2d 70 | ing-2024-07-31"))))...:request-p |
| 68a0 | 61 72 61 6d 73 20 27 28 3a 74 68 69 6e 6b 69 6e 67 20 28 3a 74 79 70 65 20 22 65 6e 61 62 6c 65 | arams.'(:thinking.(:type."enable |
| 68c0 | 64 22 20 3a 62 75 64 67 65 74 5f 74 6f 6b 65 6e 73 20 32 30 34 38 29 0a 20 20 20 20 20 20 20 20 | d".:budget_tokens.2048)......... |
| 68e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 20 34 30 39 36 29 29 0a 23 | ............:max_tokens.4096)).# |
| 6900 | 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 20 72 65 61 73 6f 6e | +end_src..You.can.set.the.reason |
| 6920 | 69 6e 67 20 62 75 64 67 65 74 20 74 6f 6b 65 6e 73 20 61 6e 64 20 6d 61 78 20 74 6f 6b 65 6e 73 | ing.budget.tokens.and.max.tokens |
| 6940 | 20 66 6f 72 20 74 68 69 73 20 75 73 61 67 65 20 76 69 61 20 74 68 65 20 3d 3a 62 75 64 67 65 74 | .for.this.usage.via.the.=:budget |
| 6960 | 5f 74 6f 6b 65 6e 73 3d 20 61 6e 64 20 3d 3a 6d 61 78 5f 74 6f 6b 65 6e 73 3d 20 6b 65 79 73 20 | _tokens=.and.=:max_tokens=.keys. |
| 6980 | 68 65 72 65 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 6f 6e | here,.respectively...You.can.con |
| 69a0 | 74 72 6f 6c 20 77 68 65 74 68 65 72 2f 68 6f 77 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 6f | trol.whether/how.the.reasoning.o |
| 69c0 | 75 74 70 75 74 20 69 73 20 73 68 6f 77 6e 20 76 69 61 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 | utput.is.shown.via.gptel's.menu. |
| 69e0 | 6f 72 20 3d 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 3d 2c 20 73 65 | or.=gptel-include-reasoning=,.se |
| 6a00 | 65 20 5b 5b 23 68 61 6e 64 6c 65 2d 72 65 61 73 6f 6e 69 6e 67 2d 63 6f 6e 74 65 6e 74 5d 5b 68 | e.[[#handle-reasoning-content][h |
| 6a20 | 61 6e 64 6c 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 5d 5d 2e 20 0a 0a 23 | andling.reasoning.content]]....# |
| 6a40 | 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 | +html:.</details>.#+html:.<detai |
| 6a60 | 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 72 6f 71 0a 23 2b 68 74 6d 6c 3a 20 3c | ls><summary>.****.Groq.#+html:.< |
| 6a80 | 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 | /summary>..Register.a.backend.wi |
| 6aa0 | 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 47 72 6f | th.#+begin_src.emacs-lisp.;;.Gro |
| 6ac0 | 71 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 | q.offers.an.OpenAI.compatible.AP |
| 6ae0 | 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 47 72 6f 71 22 20 20 20 20 20 | I.(gptel-make-openai."Groq"..... |
| 6b00 | 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a | ..........;Any.name.you.want...: |
| 6b20 | 68 6f 73 74 20 22 61 70 69 2e 67 72 6f 71 2e 63 6f 6d 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 | host."api.groq.com"...:endpoint. |
| 6b40 | 22 2f 6f 70 65 6e 61 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 | "/openai/v1/chat/completions"... |
| 6b60 | 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 | :stream.t...:key."your-api-key". |
| 6b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 | ..................;can.be.a.func |
| 6ba0 | 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 6d 6f 64 | tion.that.returns.the.key...:mod |
| 6bc0 | 65 6c 73 20 27 28 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 76 65 72 73 61 74 69 6c 65 0a 20 20 | els.'(llama-3.1-70b-versatile... |
| 6be0 | 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 2d 33 2e 31 2d 38 62 2d 69 6e 73 74 61 6e 74 0a 20 | ..........llama-3.1-8b-instant.. |
| 6c00 | 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 37 30 62 2d 38 31 39 32 0a 20 20 20 20 20 | ...........llama3-70b-8192...... |
| 6c20 | 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 38 62 2d 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 | .......llama3-8b-8192........... |
| 6c40 | 20 20 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 20 20 20 20 20 | ..mixtral-8x7b-32768............ |
| 6c60 | 20 67 65 6d 6d 61 2d 37 62 2d 69 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 | .gemma-7b-it)).#+end_src..You.ca |
| 6c80 | 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e | n.pick.this.backend.from.the.men |
| 6ca0 | 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 | u.when.using.gptel.(see.[[#usage |
| 6cc0 | 5d 5b 55 73 61 67 65 5d 5d 29 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 47 72 6f 71 20 69 73 20 66 | ][Usage]])...Note.that.Groq.is.f |
| 6ce0 | 61 73 74 20 65 6e 6f 75 67 68 20 74 68 61 74 20 79 6f 75 20 63 6f 75 6c 64 20 65 61 73 69 6c 79 | ast.enough.that.you.could.easily |
| 6d00 | 20 73 65 74 20 3d 3a 73 74 72 65 61 6d 20 6e 69 6c 3d 20 61 6e 64 20 73 74 69 6c 6c 20 67 65 74 | .set.=:stream.nil=.and.still.get |
| 6d20 | 20 6e 65 61 72 2d 69 6e 73 74 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 2a 2a 2a 2a 2a 20 | .near-instant.responses...*****. |
| 6d40 | 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 | (Optional).Set.as.the.default.gp |
| 6d60 | 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 | tel.backend..The.above.code.make |
| 6d80 | 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 | s.the.backend.available.to.selec |
| 6da0 | 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 | t...If.you.want.it.to.be.the.def |
| 6dc0 | 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 | ault.backend.for.gptel,.you.can. |
| 6de0 | 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d | set.this.as.the.value.of.=gptel- |
| 6e00 | 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 | backend=...Use.this.instead.of.t |
| 6e20 | 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 | he.above..#+begin_src.emacs-lisp |
| 6e40 | 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 | .;;.OPTIONAL.configuration.(setq |
| 6e60 | 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 | .gptel-model...'mixtral-8x7b-327 |
| 6e80 | 36 38 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 | 68.......gptel-backend.......(gp |
| 6ea0 | 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 47 72 6f 71 22 0a 20 20 20 20 20 20 20 20 3a | tel-make-openai."Groq".........: |
| 6ec0 | 68 6f 73 74 20 22 61 70 69 2e 67 72 6f 71 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 | host."api.groq.com".........:end |
| 6ee0 | 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f | point."/openai/v1/chat/completio |
| 6f00 | 6e 73 22 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b | ns".........:stream.t.........:k |
| 6f20 | 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c | ey."your-api-key".........:model |
| 6f40 | 73 20 27 28 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 76 65 72 73 61 74 69 6c 65 0a 20 20 20 20 | s.'(llama-3.1-70b-versatile..... |
| 6f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 2d 33 2e 31 2d 38 62 2d 69 6e 73 74 61 | ..............llama-3.1-8b-insta |
| 6f80 | 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 37 30 62 2d | nt...................llama3-70b- |
| 6fa0 | 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 38 62 | 8192...................llama3-8b |
| 6fc0 | 2d 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 78 74 72 61 6c 2d | -8192...................mixtral- |
| 6fe0 | 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6d | 8x7b-32768...................gem |
| 7000 | 6d 61 2d 37 62 2d 69 74 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c | ma-7b-it))).#+end_src..#+html:.< |
| 7020 | 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d | /details>..#+html:.<details><sum |
| 7040 | 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 4d 69 73 74 72 61 6c 20 4c 65 20 43 68 61 74 0a 23 2b 68 74 6d | mary>.****.Mistral.Le.Chat.#+htm |
| 7060 | 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e | l:.</summary>..Register.a.backen |
| 7080 | 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b | d.with.#+begin_src.emacs-lisp.;; |
| 70a0 | 20 4d 69 73 74 72 61 6c 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 | .Mistral.offers.an.OpenAI.compat |
| 70c0 | 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4d 69 73 | ible.API.(gptel-make-openai."Mis |
| 70e0 | 74 72 61 6c 4c 65 43 68 61 74 22 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a | tralLeChat"..;Any.name.you.want. |
| 7100 | 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6d 69 73 74 72 61 6c 2e 61 69 22 0a 20 20 3a 65 6e 64 70 | ..:host."api.mistral.ai"...:endp |
| 7120 | 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 70 | oint."/v1/chat/completions"...:p |
| 7140 | 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 | rotocol."https"...:key."your-api |
| 7160 | 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 | -key"...............;can.be.a.fu |
| 7180 | 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 6d | nction.that.returns.the.key...:m |
| 71a0 | 6f 64 65 6c 73 20 27 28 22 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 22 29 29 0a 23 2b 65 6e 64 5f | odels.'("mistral-small")).#+end_ |
| 71c0 | 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 | src..You.can.pick.this.backend.f |
| 71e0 | 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 | rom.the.menu.when.using.gptel.(s |
| 7200 | 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f | ee.[[#usage][Usage]])...*****.(O |
| 7220 | 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 | ptional).Set.as.the.default.gpte |
| 7240 | 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 | l.backend..The.above.code.makes. |
| 7260 | 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e | the.backend.available.to.select. |
| 7280 | 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 | ..If.you.want.it.to.be.the.defau |
| 72a0 | 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 | lt.backend.for.gptel,.you.can.se |
| 72c0 | 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 | t.this.as.the.value.of.=gptel-ba |
| 72e0 | 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 | ckend=...Use.this.instead.of.the |
| 7300 | 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b | .above..#+begin_src.emacs-lisp.; |
| 7320 | 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 | ;.OPTIONAL.configuration.(setq.g |
| 7340 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 0a 20 20 20 20 | ptel-model...'mistral-small..... |
| 7360 | 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b | ..gptel-backend.......(gptel-mak |
| 7380 | 65 2d 6f 70 65 6e 61 69 20 22 4d 69 73 74 72 61 6c 4c 65 43 68 61 74 22 20 20 3b 41 6e 79 20 6e | e-openai."MistralLeChat"..;Any.n |
| 73a0 | 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e | ame.you.want.........:host."api. |
| 73c0 | 6d 69 73 74 72 61 6c 2e 61 69 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f | mistral.ai".........:endpoint."/ |
| 73e0 | 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 20 20 20 20 20 20 3a 70 72 | v1/chat/completions".........:pr |
| 7400 | 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 | otocol."https".........:key."you |
| 7420 | 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 | r-api-key"...............;can.be |
| 7440 | 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 | .a.function.that.returns.the.key |
| 7460 | 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 6d 69 73 74 72 61 6c 2d 73 6d 61 6c | .........:models.'("mistral-smal |
| 7480 | 6c 22 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | l"))).#+end_src..#+html:.</detai |
| 74a0 | 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a | ls>..#+html:.<details><summary>. |
| 74c0 | 0a 2a 2a 2a 2a 20 4f 70 65 6e 52 6f 75 74 65 72 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | .****.OpenRouter.#+html:.</summa |
| 74e0 | 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 | ry>..Register.a.backend.with.#+b |
| 7500 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 70 65 6e 52 6f 75 74 65 | egin_src.emacs-lisp.;;.OpenRoute |
| 7520 | 72 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 | r.offers.an.OpenAI.compatible.AP |
| 7540 | 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4f 70 65 6e 52 6f 75 74 65 72 | I.(gptel-make-openai."OpenRouter |
| 7560 | 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 | "...............;Any.name.you.wa |
| 7580 | 6e 74 0a 20 20 3a 68 6f 73 74 20 22 6f 70 65 6e 72 6f 75 74 65 72 2e 61 69 22 0a 20 20 3a 65 6e | nt...:host."openrouter.ai"...:en |
| 75a0 | 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 | dpoint."/api/v1/chat/completions |
| 75c0 | 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b | "...:stream.t...:key."your-api-k |
| 75e0 | 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 | ey"...................;can.be.a. |
| 7600 | 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 | function.that.returns.the.key... |
| 7620 | 3a 6d 6f 64 65 6c 73 20 27 28 6f 70 65 6e 61 69 2f 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 0a 20 | :models.'(openai/gpt-3.5-turbo.. |
| 7640 | 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 6d 69 78 74 72 61 6c 2d 38 78 37 | ...........mistralai/mixtral-8x7 |
| 7660 | 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d | b-instruct.............meta-llam |
| 7680 | 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 33 34 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 | a/codellama-34b-instruct........ |
| 76a0 | 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 37 30 62 2d 69 6e 73 | .....codellama/codellama-70b-ins |
| 76c0 | 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 6f 67 6c 65 2f 70 61 6c 6d 2d 32 2d | truct.............google/palm-2- |
| 76e0 | 63 6f 64 65 63 68 61 74 2d 62 69 73 6f 6e 2d 33 32 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 | codechat-bison-32k.............g |
| 7700 | 6f 6f 67 6c 65 2f 67 65 6d 69 6e 69 2d 70 72 6f 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 | oogle/gemini-pro))..#+end_src..Y |
| 7720 | 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 | ou.can.pick.this.backend.from.th |
| 7740 | 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 | e.menu.when.using.gptel.(see.[[# |
| 7760 | 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 | usage][Usage]])...*****.(Optiona |
| 7780 | 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b | l).Set.as.the.default.gptel.back |
| 77a0 | 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 | end..The.above.code.makes.the.ba |
| 77c0 | 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 | ckend.available.to.select...If.y |
| 77e0 | 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 | ou.want.it.to.be.the.default.bac |
| 7800 | 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 | kend.for.gptel,.you.can.set.this |
| 7820 | 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d | .as.the.value.of.=gptel-backend= |
| 7840 | 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 | ...Use.this.instead.of.the.above |
| 7860 | 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 | ..#+begin_src.emacs-lisp.;;.OPTI |
| 7880 | 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d | ONAL.configuration.(setq.gptel-m |
| 78a0 | 6f 64 65 6c 20 20 20 27 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 | odel...'mixtral-8x7b-32768...... |
| 78c0 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 | .gptel-backend.......(gptel-make |
| 78e0 | 2d 6f 70 65 6e 61 69 20 22 4f 70 65 6e 52 6f 75 74 65 72 22 20 20 20 20 20 20 20 20 20 20 20 20 | -openai."OpenRouter"............ |
| 7900 | 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 68 | ...;Any.name.you.want.........:h |
| 7920 | 6f 73 74 20 22 6f 70 65 6e 72 6f 75 74 65 72 2e 61 69 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 | ost."openrouter.ai".........:end |
| 7940 | 70 6f 69 6e 74 20 22 2f 61 70 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 | point."/api/v1/chat/completions" |
| 7960 | 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 | .........:stream.t.........:key. |
| 7980 | 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "your-api-key".................. |
| 79a0 | 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 | .;can.be.a.function.that.returns |
| 79c0 | 20 74 68 65 20 6b 65 79 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6f 70 65 6e 61 | .the.key.........:models.'(opena |
| 79e0 | 69 2f 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i/gpt-3.5-turbo................. |
| 7a00 | 20 20 6d 69 73 74 72 61 6c 61 69 2f 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 69 6e 73 74 72 75 63 | ..mistralai/mixtral-8x7b-instruc |
| 7a20 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 63 | t...................meta-llama/c |
| 7a40 | 6f 64 65 6c 6c 61 6d 61 2d 33 34 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 | odellama-34b-instruct........... |
| 7a60 | 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 37 30 62 2d | ........codellama/codellama-70b- |
| 7a80 | 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 6f 67 6c | instruct...................googl |
| 7aa0 | 65 2f 70 61 6c 6d 2d 32 2d 63 6f 64 65 63 68 61 74 2d 62 69 73 6f 6e 2d 33 32 6b 0a 20 20 20 20 | e/palm-2-codechat-bison-32k..... |
| 7ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 6f 67 6c 65 2f 67 65 6d 69 6e 69 2d 70 72 6f 29 | ..............google/gemini-pro) |
| 7ae0 | 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 | ))..#+end_src..#+html:.</details |
| 7b00 | 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a | >.#+html:.<details><summary>.*** |
| 7b20 | 2a 20 50 72 69 76 61 74 65 47 50 54 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a | *.PrivateGPT.#+html:.</summary>. |
| 7b40 | 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e | .Register.a.backend.with.#+begin |
| 7b60 | 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 | _src.emacs-lisp.(gptel-make-priv |
| 7b80 | 61 74 65 67 70 74 20 22 70 72 69 76 61 74 65 47 50 54 22 20 20 20 20 20 20 20 20 20 20 20 20 20 | ategpt."privateGPT"............. |
| 7ba0 | 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c | ..;Any.name.you.want...:protocol |
| 7bc0 | 20 22 68 74 74 70 22 0a 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 | ."http"...:host."localhost:8001" |
| 7be0 | 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 63 6f 6e 74 65 78 74 20 74 20 20 20 20 20 20 20 | ...:stream.t...:context.t....... |
| 7c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 55 73 65 20 63 6f 6e 74 65 78 | .....................;Use.contex |
| 7c20 | 74 20 70 72 6f 76 69 64 65 64 20 62 79 20 65 6d 62 65 64 64 69 6e 67 73 0a 20 20 3a 73 6f 75 72 | t.provided.by.embeddings...:sour |
| 7c40 | 63 65 73 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ces.t........................... |
| 7c60 | 20 3b 52 65 74 75 72 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 73 6f 75 72 63 | .;Return.information.about.sourc |
| 7c80 | 65 20 64 6f 63 75 6d 65 6e 74 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d | e.documents...:models.'(private- |
| 7ca0 | 67 70 74 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 | gpt))..#+end_src..You.can.pick.t |
| 7cc0 | 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 | his.backend.from.the.menu.when.u |
| 7ce0 | 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d | sing.gptel.(see.[[#usage][Usage] |
| 7d00 | 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 | ])...*****.(Optional).Set.as.the |
| 7d20 | 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 | .default.gptel.backend..The.abov |
| 7d40 | 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 | e.code.makes.the.backend.availab |
| 7d60 | 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f | le.to.select...If.you.want.it.to |
| 7d80 | 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 | .be.the.default.backend.for.gpte |
| 7da0 | 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 | l,.you.can.set.this.as.the.value |
| 7dc0 | 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 | .of.=gptel-backend=...Use.this.i |
| 7de0 | 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | nstead.of.the.above..#+begin_src |
| 7e00 | 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 | .emacs-lisp.;;.OPTIONAL.configur |
| 7e20 | 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 70 72 69 76 61 | ation.(setq.gptel-model...'priva |
| 7e40 | 74 65 2d 67 70 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 | te-gpt.......gptel-backend...... |
| 7e60 | 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 20 22 70 72 69 76 61 74 65 | .(gptel-make-privategpt."private |
| 7e80 | 47 50 54 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 | GPT"...............;Any.name.you |
| 7ea0 | 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 | .want.........:protocol."http".. |
| 7ec0 | 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 0a 20 20 | .......:host."localhost:8001"... |
| 7ee0 | 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 | ......:stream.t.........:context |
| 7f00 | 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 55 | .t............................;U |
| 7f20 | 73 65 20 63 6f 6e 74 65 78 74 20 70 72 6f 76 69 64 65 64 20 62 79 20 65 6d 62 65 64 64 69 6e 67 | se.context.provided.by.embedding |
| 7f40 | 73 0a 20 20 20 20 20 20 20 20 3a 73 6f 75 72 63 65 73 20 74 20 20 20 20 20 20 20 20 20 20 20 20 | s.........:sources.t............ |
| 7f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 52 65 74 75 72 6e 20 69 6e 66 6f 72 6d 61 74 | ................;Return.informat |
| 7f80 | 69 6f 6e 20 61 62 6f 75 74 20 73 6f 75 72 63 65 20 64 6f 63 75 6d 65 6e 74 73 0a 20 20 20 20 20 | ion.about.source.documents...... |
| 7fa0 | 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 29 0a 0a 23 2b 65 | ...:models.'(private-gpt)))..#+e |
| 7fc0 | 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d | nd_src..#+html:.</details>.#+htm |
| 7fe0 | 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 65 65 70 53 | l:.<details><summary>.****.DeepS |
| 8000 | 65 65 6b 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 | eek.#+html:.</summary>..Register |
| 8020 | 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 | .a.backend.with.#+begin_src.emac |
| 8040 | 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 | s-lisp.(gptel-make-deepseek."Dee |
| 8060 | 70 53 65 65 6b 22 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a | pSeek".......;Any.name.you.want. |
| 8080 | 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:stream.t..................... |
| 80a0 | 20 20 20 20 20 20 3b 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 | ......;for.streaming.responses.. |
| 80c0 | 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 20 20 20 20 20 20 20 20 20 20 20 | .:key."your-api-key")........... |
| 80e0 | 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 | ....;can.be.a.function.that.retu |
| 8100 | 72 6e 73 20 74 68 65 20 6b 65 79 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 | rns.the.key.#+end_src..You.can.p |
| 8120 | 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 | ick.this.backend.from.the.menu.w |
| 8140 | 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 | hen.using.gptel.(see.[[#usage][U |
| 8160 | 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 | sage]])...*****.(Optional).Set.a |
| 8180 | 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 | s.the.default.gptel.backend..The |
| 81a0 | 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 | .above.code.makes.the.backend.av |
| 81c0 | 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 | ailable.to.select...If.you.want. |
| 81e0 | 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 | it.to.be.the.default.backend.for |
| 8200 | 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 | .gptel,.you.can.set.this.as.the. |
| 8220 | 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 | value.of.=gptel-backend=...Use.t |
| 8240 | 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 | his.instead.of.the.above..#+begi |
| 8260 | 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e | n_src.emacs-lisp.;;.OPTIONAL.con |
| 8280 | 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 | figuration.(setq.gptel-model...' |
| 82a0 | 64 65 65 70 73 65 65 6b 2d 72 65 61 73 6f 6e 65 72 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 | deepseek-reasoner.......gptel-ba |
| 82c0 | 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 70 | ckend.(gptel-make-deepseek."Deep |
| 82e0 | 53 65 65 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 | Seek".......................:str |
| 8300 | 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 | eam.t.......................:key |
| 8320 | 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 | ."your-api-key")).#+end_src..#+h |
| 8340 | 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 | tml:.</details>.#+html:.<details |
| 8360 | 3e 3c 73 75 6d 6d 61 72 79 3e 0a 0a 2a 2a 2a 2a 20 53 61 6d 62 61 6e 6f 76 61 20 28 44 65 65 70 | ><summary>..****.Sambanova.(Deep |
| 8380 | 73 65 65 6b 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 53 61 6d 62 61 6e 6f | seek).#+html:.</summary>.Sambano |
| 83a0 | 76 61 20 6f 66 66 65 72 73 20 76 61 72 69 6f 75 73 20 4c 4c 4d 73 20 74 68 72 6f 75 67 68 20 74 | va.offers.various.LLMs.through.t |
| 83c0 | 68 65 69 72 20 53 61 6d 62 61 20 4e 6f 76 61 20 43 6c 6f 75 64 20 6f 66 66 65 72 69 6e 67 2c 20 | heir.Samba.Nova.Cloud.offering,. |
| 83e0 | 77 69 74 68 20 44 65 65 70 73 65 65 6b 2d 52 31 20 62 65 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 | with.Deepseek-R1.being.one.of.th |
| 8400 | 65 6d 2e 20 54 68 65 20 74 6f 6b 65 6e 20 73 70 65 65 64 20 66 6f 72 20 44 65 65 70 73 65 65 6b | em..The.token.speed.for.Deepseek |
| 8420 | 20 52 31 20 76 69 61 20 53 61 6d 62 61 6e 6f 76 61 20 69 73 20 61 62 6f 75 74 20 36 20 74 69 6d | .R1.via.Sambanova.is.about.6.tim |
| 8440 | 65 73 20 66 61 73 74 65 72 20 74 68 61 6e 20 77 68 65 6e 20 61 63 63 65 73 73 65 64 20 74 68 72 | es.faster.than.when.accessed.thr |
| 8460 | 6f 75 67 68 20 64 65 65 70 73 65 65 6b 2e 63 6f 6d 20 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 | ough.deepseek.com...Register.a.b |
| 8480 | 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | ackend.with.#+begin_src.emacs-li |
| 84a0 | 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 53 61 6d 62 61 6e 6f 76 61 | sp.(gptel-make-openai."Sambanova |
| 84c0 | 22 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 | "........;Any.name.you.want...:h |
| 84e0 | 6f 73 74 20 22 61 70 69 2e 73 61 6d 62 61 6e 6f 76 61 2e 61 69 22 0a 20 20 3a 65 6e 64 70 6f 69 | ost."api.sambanova.ai"...:endpoi |
| 8500 | 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 73 74 72 | nt."/v1/chat/completions"...:str |
| 8520 | 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | eam.t..........................; |
| 8540 | 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 6b 65 79 20 22 | for.streaming.responses...:key." |
| 8560 | 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e | your-api-key"...............;can |
| 8580 | 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 | .be.a.function.that.returns.the. |
| 85a0 | 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 44 65 65 70 53 65 65 6b 2d 52 31 29 29 0a 23 2b | key...:models.'(DeepSeek-R1)).#+ |
| 85c0 | 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 | end_src..You.can.pick.this.backe |
| 85e0 | 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 | nd.from.the.menu.when.using.gpte |
| 8600 | 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a | l.(see.[[#usage][Usage]])...**** |
| 8620 | 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 | *.(Optional).Set.as.the.default. |
| 8640 | 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 54 68 65 20 63 6f 64 65 20 61 62 6f 76 65 73 20 6d 61 | gptel.backend.The.code.aboves.ma |
| 8660 | 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 65 | kes.the.backend.available.for.se |
| 8680 | 6c 65 63 74 69 6f 6e 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 | lection...If.you.want.it.to.be.t |
| 86a0 | 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f | he.default.backend.for.gptel,.yo |
| 86c0 | 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d | u.can.set.this.as.the.value.of.= |
| 86e0 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 41 64 64 20 74 68 65 73 65 20 74 77 6f 20 6c | gptel-backend=...Add.these.two.l |
| 8700 | 69 6e 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 20 0a 23 2b 62 | ines.to.your.configuration:..#+b |
| 8720 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 | egin_src.emacs-lisp.;;.OPTIONAL. |
| 8740 | 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 | configuration...(setq.gptel-mode |
| 8760 | 6c 20 27 44 65 65 70 53 65 65 6b 2d 52 31 29 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 62 61 | l.'DeepSeek-R1)...(setq.gptel-ba |
| 8780 | 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 22 53 61 6d 62 61 6e | ckend.(gptel-get-backend."Samban |
| 87a0 | 6f 76 61 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | ova")).#+end_src.#+html:.</detai |
| 87c0 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 0a | ls>.#+html:.<details><summary>.. |
| 87e0 | 2a 2a 2a 2a 20 43 65 72 65 62 72 61 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e | ****.Cerebras.#+html:.</summary> |
| 8800 | 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 | ..Register.a.backend.with.#+begi |
| 8820 | 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 43 65 72 65 62 72 61 73 20 6f 66 66 | n_src.emacs-lisp.;;.Cerebras.off |
| 8840 | 65 72 73 20 61 6e 20 69 6e 73 74 61 6e 74 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 | ers.an.instant.OpenAI.compatible |
| 8860 | 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 43 65 72 65 62 72 61 | .API.(gptel-make-openai."Cerebra |
| 8880 | 73 22 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 63 65 72 65 62 72 61 73 2e 61 69 22 0a 20 20 3a | s"...:host."api.cerebras.ai"...: |
| 88a0 | 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a | endpoint."/v1/chat/completions". |
| 88c0 | 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:stream.t..................... |
| 88e0 | 20 20 20 20 20 20 20 20 3b 6f 70 74 69 6f 6e 61 6c 6c 79 20 6e 69 6c 20 61 73 20 43 65 72 65 62 | ........;optionally.nil.as.Cereb |
| 8900 | 72 61 73 20 69 73 20 69 6e 73 74 61 6e 74 20 41 49 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 | ras.is.instant.AI...:key."your-a |
| 8920 | 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 | pi-key"...................;can.b |
| 8940 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 | e.a.function.that.returns.the.ke |
| 8960 | 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 33 2e 31 2d 37 30 62 0a 20 20 20 20 20 | y...:models.'(llama3.1-70b...... |
| 8980 | 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2e 31 2d 38 62 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | .......llama3.1-8b)).#+end_src.. |
| 89a0 | 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 | You.can.pick.this.backend.from.t |
| 89c0 | 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b | he.menu.when.using.gptel.(see.[[ |
| 89e0 | 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e | #usage][Usage]])...*****.(Option |
| 8a00 | 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 | al).Set.as.the.default.gptel.bac |
| 8a20 | 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 | kend..The.above.code.makes.the.b |
| 8a40 | 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 | ackend.available.to.select...If. |
| 8a60 | 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 | you.want.it.to.be.the.default.ba |
| 8a80 | 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 | ckend.for.gptel,.you.can.set.thi |
| 8aa0 | 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | s.as.the.value.of.=gptel-backend |
| 8ac0 | 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 | =...Use.this.instead.of.the.abov |
| 8ae0 | 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 | e..#+begin_src.emacs-lisp.;;.OPT |
| 8b00 | 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d | IONAL.configuration.(setq.gptel- |
| 8b20 | 6d 6f 64 65 6c 20 20 20 27 6c 6c 61 6d 61 33 2e 31 2d 38 62 0a 20 20 20 20 20 20 67 70 74 65 6c | model...'llama3.1-8b.......gptel |
| 8b40 | 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 | -backend.......(gptel-make-opena |
| 8b60 | 69 20 22 43 65 72 65 62 72 61 73 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e | i."Cerebras".........:host."api. |
| 8b80 | 63 65 72 65 62 72 61 73 2e 61 69 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 | cerebras.ai".........:endpoint." |
| 8ba0 | 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 20 20 20 20 20 20 3a 73 | /v1/chat/completions".........:s |
| 8bc0 | 74 72 65 61 6d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 | tream.nil.........:key."your-api |
| 8be0 | 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 33 2e 31 | -key".........:models.'(llama3.1 |
| 8c00 | 2d 37 30 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2e 31 2d | -70b...................llama3.1- |
| 8c20 | 38 62 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | 8b))).#+end_src..#+html:.</detai |
| 8c40 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a | ls>.#+html:.<details><summary>.* |
| 8c60 | 2a 2a 2a 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d | ***.Github.Models.#+html:.</summ |
| 8c80 | 61 72 79 3e 0a 0a 4e 4f 54 45 3a 20 20 5b 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 67 69 74 68 | ary>..NOTE:..[[https://docs.gith |
| 8ca0 | 75 62 2e 63 6f 6d 2f 65 6e 2f 67 69 74 68 75 62 2d 6d 6f 64 65 6c 73 2f 61 62 6f 75 74 2d 67 69 | ub.com/en/github-models/about-gi |
| 8cc0 | 74 68 75 62 2d 6d 6f 64 65 6c 73 5d 5b 47 69 74 48 75 62 20 4d 6f 64 65 6c 73 5d 5d 20 69 73 20 | thub-models][GitHub.Models]].is. |
| 8ce0 | 2f 6e 6f 74 2f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 21 20 20 49 66 20 79 6f 75 20 77 61 | /not/.GitHub.Copilot!..If.you.wa |
| 8d00 | 6e 74 20 74 6f 20 75 73 65 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 63 68 61 74 20 76 69 | nt.to.use.GitHub.Copilot.chat.vi |
| 8d20 | 61 20 67 70 74 65 6c 2c 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 6f 6e | a.gptel,.look.at.the.instruction |
| 8d40 | 73 20 66 6f 72 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 20 62 65 6c 6f 77 20 69 | s.for.GitHub.CopilotChat.below.i |
| 8d60 | 6e 73 74 65 61 64 2e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | nstead...Register.a.backend.with |
| 8d80 | 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 3b 3b 20 47 69 74 | .#+begin_src.emacs-lisp...;;.Git |
| 8da0 | 68 75 62 20 4d 6f 64 65 6c 73 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 | hub.Models.offers.an.OpenAI.comp |
| 8dc0 | 61 74 69 62 6c 65 20 41 50 49 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 | atible.API...(gptel-make-openai. |
| 8de0 | 22 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 | "Github.Models".;Any.name.you.wa |
| 8e00 | 6e 74 0a 20 20 20 20 3a 68 6f 73 74 20 22 6d 6f 64 65 6c 73 2e 69 6e 66 65 72 65 6e 63 65 2e 61 | nt.....:host."models.inference.a |
| 8e20 | 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 63 68 61 | i.azure.com".....:endpoint."/cha |
| 8e40 | 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e 3d 32 30 32 34 2d 30 | t/completions?api-version=2024-0 |
| 8e60 | 35 2d 30 31 2d 70 72 65 76 69 65 77 22 0a 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 | 5-01-preview".....:stream.t..... |
| 8e80 | 3a 6b 65 79 20 22 79 6f 75 72 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 3a 6d 6f | :key."your-github-token".....:mo |
| 8ea0 | 64 65 6c 73 20 27 28 67 70 74 2d 34 6f 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 77 | dels.'(gpt-4o)).#+end_src..You.w |
| 8ec0 | 69 6c 6c 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 67 69 74 68 75 62 20 5b 5b 68 74 | ill.need.to.create.a.github.[[ht |
| 8ee0 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 70 65 72 73 6f 6e | tps://github.com/settings/person |
| 8f00 | 61 6c 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e 73 5d 5b 74 6f 6b 65 6e 5d 5d 2e 0a 0a 46 6f 72 20 | al-access-tokens][token]]...For. |
| 8f20 | 61 6c 6c 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 73 2c 20 63 68 65 63 6b 20 | all.the.available.models,.check. |
| 8f40 | 74 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 72 6b 65 74 70 | the.[[https://github.com/marketp |
| 8f60 | 6c 61 63 65 2f 6d 6f 64 65 6c 73 5d 5b 6d 61 72 6b 65 74 70 6c 61 63 65 5d 5d 2e 0a 0a 59 6f 75 | lace/models][marketplace]]...You |
| 8f80 | 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 | .can.pick.this.backend.from.the. |
| 8fa0 | 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 | menu.when.using.(see.[[#usage][U |
| 8fc0 | 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 | sage]])...*****.(Optional).Set.a |
| 8fe0 | 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 | s.the.default.gptel.backend..The |
| 9000 | 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 | .above.code.makes.the.backend.av |
| 9020 | 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 | ailable.to.select...If.you.want. |
| 9040 | 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 | it.to.be.the.default.backend.for |
| 9060 | 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 | .gptel,.you.can.set.this.as.the. |
| 9080 | 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 | value.of.=gptel-backend=...Use.t |
| 90a0 | 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 | his.instead.of.the.above..#+begi |
| 90c0 | 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 | n_src.emacs-lisp...;;.OPTIONAL.c |
| 90e0 | 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c | onfiguration...(setq.gptel-model |
| 9100 | 20 20 27 67 70 74 2d 34 6f 0a 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a | ..'gpt-4o.........gptel-backend. |
| 9120 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 47 69 74 68 | ........(gptel-make-openai."Gith |
| 9140 | 75 62 20 4d 6f 64 65 6c 73 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 | ub.Models".;Any.name.you.want... |
| 9160 | 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6d 6f 64 65 6c 73 2e 69 6e 66 65 72 65 6e 63 65 2e | ........:host."models.inference. |
| 9180 | 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e | ai.azure.com"...........:endpoin |
| 91a0 | 74 20 22 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e | t."/chat/completions?api-version |
| 91c0 | 3d 32 30 32 34 2d 30 35 2d 30 31 2d 70 72 65 76 69 65 77 22 0a 20 20 20 20 20 20 20 20 20 20 3a | =2024-05-01-preview"...........: |
| 91e0 | 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 67 69 | stream.t...........:key."your-gi |
| 9200 | 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 | thub-token"...........:models.'( |
| 9220 | 67 70 74 2d 34 6f 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 | gpt-4o)).#+end_src..#+html:.</de |
| 9240 | 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 | tails>.#+html:.<details><summary |
| 9260 | 3e 0a 2a 2a 2a 2a 20 4e 6f 76 69 74 61 20 41 49 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | >.****.Novita.AI.#+html:.</summa |
| 9280 | 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 | ry>..Register.a.backend.with.#+b |
| 92a0 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4e 6f 76 69 74 61 20 41 49 | egin_src.emacs-lisp.;;.Novita.AI |
| 92c0 | 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 | .offers.an.OpenAI.compatible.API |
| 92e0 | 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4e 6f 76 69 74 61 41 49 22 20 20 | .(gptel-make-openai."NovitaAI".. |
| 9300 | 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 | .......;Any.name.you.want...:hos |
| 9320 | 74 20 22 61 70 69 2e 6e 6f 76 69 74 61 2e 61 69 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f | t."api.novita.ai"...:endpoint."/ |
| 9340 | 76 33 2f 6f 70 65 6e 61 69 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 | v3/openai"...:key."your-api-key" |
| 9360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e | ...................;can.be.a.fun |
| 9380 | 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 73 74 | ction.that.returns.the.key...:st |
| 93a0 | 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d | ream.t...:models.'(;;.has.many.m |
| 93c0 | 6f 72 65 2c 20 63 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 6e 6f 76 69 74 61 2e 61 69 2f 6c 6c 6d | ore,.check.https://novita.ai/llm |
| 93e0 | 2d 61 70 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 72 79 70 68 65 2f 6d 79 74 68 6f 6d 61 78 | -api.............gryphe/mythomax |
| 9400 | 2d 6c 32 2d 31 33 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c | -l2-13b.............meta-llama/l |
| 9420 | 6c 61 6d 61 2d 33 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | lama-3-70b-instruct............. |
| 9440 | 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 69 6e 73 74 72 75 63 | meta-llama/llama-3.1-70b-instruc |
| 9460 | 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 | t)).#+end_src..You.can.pick.this |
| 9480 | 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e | .backend.from.the.menu.when.usin |
| 94a0 | 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a | g.gptel.(see.[[#usage][Usage]]). |
| 94c0 | 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 | .*****.(Optional).Set.as.the.def |
| 94e0 | 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f | ault.gptel.backend..The.above.co |
| 9500 | 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 | de.makes.the.backend.available.t |
| 9520 | 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 | o.select...If.you.want.it.to.be. |
| 9540 | 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 | the.default.backend.for.gptel,.y |
| 9560 | 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 | ou.can.set.this.as.the.value.of. |
| 9580 | 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 | =gptel-backend=...Use.this.inste |
| 95a0 | 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | ad.of.the.above..#+begin_src.ema |
| 95c0 | 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f | cs-lisp.;;.OPTIONAL.configuratio |
| 95e0 | 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 67 72 79 70 68 65 2f 6d | n.(setq..gptel-model...'gryphe/m |
| 9600 | 79 74 68 6f 6d 61 78 2d 6c 32 2d 31 33 62 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 28 | ythomax-l2-13b..gptel-backend..( |
| 9620 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4e 6f 76 69 74 61 41 49 22 20 20 20 20 | gptel-make-openai."NovitaAI".... |
| 9640 | 20 20 20 20 20 0a 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6e 6f 76 69 74 61 2e 61 69 22 0a 20 | .........:host."api.novita.ai".. |
| 9660 | 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 33 2f 6f 70 65 6e 61 69 22 0a 20 20 20 3a 6b 65 79 | ..:endpoint."/v3/openai"....:key |
| 9680 | 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."your-api-key"................. |
| 96a0 | 20 20 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 | ......:stream.t....:models.'(;;. |
| 96c0 | 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 6e 6f 76 | has.many.more,.check.https://nov |
| 96e0 | 69 74 61 2e 61 69 2f 6c 6c 6d 2d 61 70 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 | ita.ai/llm-api..............mist |
| 9700 | 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 | ralai/Mixtral-8x7B-Instruct-v0.1 |
| 9720 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c 6c 61 6d 61 2d 33 | ..............meta-llama/llama-3 |
| 9740 | 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d | -70b-instruct..............meta- |
| 9760 | 6c 6c 61 6d 61 2f 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 29 29 29 0a | llama/llama-3.1-70b-instruct))). |
| 9780 | 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 | #+end_src..#+html:.</details>..# |
| 97a0 | 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 78 | +html:.<details><summary>.****.x |
| 97c0 | 41 49 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 | AI.#+html:.</summary>..Register. |
| 97e0 | 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 | a.backend.with.#+begin_src.emacs |
| 9800 | 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 20 22 78 41 49 22 20 20 20 20 20 | -lisp.(gptel-make-xai."xAI"..... |
| 9820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e | ..............;.Any.name.you.wan |
| 9840 | 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b | t...:stream.t...:key."your-api-k |
| 9860 | 65 79 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 61 6e 20 62 65 20 61 | ey")..................;.can.be.a |
| 9880 | 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 23 | .function.that.returns.the.key.# |
| 98a0 | 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b | +end_src..You.can.pick.this.back |
| 98c0 | 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 | end.from.the.menu.when.using.gpt |
| 98e0 | 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a | el.(see.[[#usage][Usage]])..**** |
| 9900 | 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 | *.(Optional).Set.as.the.default. |
| 9920 | 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 | gptel.backend..The.above.code.ma |
| 9940 | 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c | kes.the.backend.available.to.sel |
| 9960 | 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 | ect...If.you.want.it.to.be.the.d |
| 9980 | 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 | efault.backend.for.gptel,.you.ca |
| 99a0 | 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 | n.set.this.as.the.value.of.=gpte |
| 99c0 | 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 | l-backend=...Use.this.instead.of |
| 99e0 | 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | .the.above..#+begin_src.emacs-li |
| 9a00 | 73 70 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 72 6f 6b 2d 33 2d 6c 61 74 | sp.(setq.gptel-model.'grok-3-lat |
| 9a20 | 65 73 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 | est.......gptel-backend.......(g |
| 9a40 | 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 20 22 78 41 49 22 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-make-xai."xAI"............. |
| 9a60 | 20 20 3b 20 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 6b | ..;.Any.name.you.want.........:k |
| 9a80 | 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 3b 20 63 61 6e 20 62 65 20 61 20 66 75 6e | ey."your-api-key".;.can.be.a.fun |
| 9aa0 | 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 20 20 20 | ction.that.returns.the.key...... |
| 9ac0 | 20 20 20 3a 73 74 72 65 61 6d 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c | ...:stream.t)).#+end_src..#+html |
| 9ae0 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c | :.</details>..#+html:.<details>< |
| 9b00 | 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 | summary>.****.Github.CopilotChat |
| 9b20 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 | .#+html:.</summary>..Register.a. |
| 9b40 | 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c | backend.with.#+begin_src.emacs-l |
| 9b60 | 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 20 22 43 6f 70 69 | isp.(gptel-make-gh-copilot."Copi |
| 9b80 | 6c 6f 74 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 77 69 6c 6c 20 62 65 20 69 6e 66 | lot").#+end_src..You.will.be.inf |
| 9ba0 | 6f 72 6d 65 64 20 74 6f 20 6c 6f 67 69 6e 20 69 6e 74 6f 20 3d 47 69 74 68 75 62 3d 20 61 73 20 | ormed.to.login.into.=Github=.as. |
| 9bc0 | 72 65 71 75 69 72 65 64 2e 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b | required..You.can.pick.this.back |
| 9be0 | 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 | end.from.the.menu.when.using.gpt |
| 9c00 | 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a | el.(see.[[#usage][Usage]])...*** |
| 9c20 | 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 | **.(Optional).Set.as.the.default |
| 9c40 | 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d | .gptel.backend..The.above.code.m |
| 9c60 | 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 | akes.the.backend.available.to.se |
| 9c80 | 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 | lect...If.you.want.it.to.be.the. |
| 9ca0 | 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 | default.backend.for.gptel,.you.c |
| 9cc0 | 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 | an.set.this.as.the.value.of.=gpt |
| 9ce0 | 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f | el-backend=...Use.this.instead.o |
| 9d00 | 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c | f.the.above..#+begin_src.emacs-l |
| 9d20 | 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 | isp.;;.OPTIONAL.configuration.(s |
| 9d40 | 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 63 6c 61 75 64 65 2d 33 2e 37 2d 73 6f 6e 6e | etq.gptel-model.'claude-3.7-sonn |
| 9d60 | 65 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 | et.......gptel-backend.(gptel-ma |
| 9d80 | 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 20 22 43 6f 70 69 6c 6f 74 22 29 29 0a 23 2b 65 6e 64 5f | ke-gh-copilot."Copilot")).#+end_ |
| 9da0 | 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 23 2b 68 74 6d 6c 3a | src..#+html:.</details>..#+html: |
| 9dc0 | 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 57 53 20 42 65 64 | .<details><summary>.****.AWS.Bed |
| 9de0 | 72 6f 63 6b 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 | rock.#+html:.</summary>..Registe |
| 9e00 | 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | r.a.backend.with.#+begin_src.ema |
| 9e20 | 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 20 22 41 57 53 | cs-lisp.(gptel-make-bedrock."AWS |
| 9e40 | 22 0a 20 20 3a 72 65 67 69 6f 6e 20 22 61 70 2d 6e 6f 72 74 68 65 61 73 74 2d 31 22 0a 20 20 3b | "...:region."ap-northeast-1"...; |
| 9e60 | 3b 20 73 75 62 73 65 74 20 6f 66 20 67 70 74 65 6c 2d 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c | ;.subset.of.gptel--bedrock-model |
| 9e80 | 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d | s...:models.'(claude-3-5-sonnet- |
| 9ea0 | 32 30 32 34 31 30 32 32 29 0a 20 20 3b 3b 20 6f 70 74 69 6f 6e 61 6c 20 66 6f 72 20 70 72 6f 76 | 20241022)...;;.optional.for.prov |
| 9ec0 | 69 73 69 6f 6e 65 64 20 61 63 63 65 73 73 0a 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 27 | isioned.access...:model-region.' |
| 9ee0 | 61 70 61 63 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 42 65 64 72 6f 63 6b 20 62 61 63 | apac).#+end_src..The.Bedrock.bac |
| 9f00 | 6b 65 6e 64 20 67 65 74 73 20 79 6f 75 72 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 | kend.gets.your.AWS.credentials.f |
| 9f20 | 72 6f 6d 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 2e 20 49 | rom.the.environment.variables..I |
| 9f40 | 74 20 65 78 70 65 63 74 73 20 74 6f 20 66 69 6e 64 20 65 69 74 68 65 72 0a 7e 41 57 53 5f 41 43 | t.expects.to.find.either.~AWS_AC |
| 9f60 | 43 45 53 53 5f 4b 45 59 5f 49 44 7e 2c 20 7e 41 57 53 5f 53 45 43 52 45 54 5f 41 43 43 45 53 53 | CESS_KEY_ID~,.~AWS_SECRET_ACCESS |
| 9f80 | 5f 4b 45 59 7e 2c 20 7e 41 57 53 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e 7e 20 28 6f 70 74 69 | _KEY~,.~AWS_SESSION_TOKEN~.(opti |
| 9fa0 | 6f 6e 61 6c 29 2c 20 6f 72 20 69 66 20 70 72 65 73 65 6e 74 2c 20 63 61 6e 20 75 73 65 20 7e 41 | onal),.or.if.present,.can.use.~A |
| 9fc0 | 57 53 5f 50 52 4f 46 49 4c 45 7e 20 74 6f 20 67 65 74 20 74 68 65 73 65 20 64 69 72 65 63 74 6c | WS_PROFILE~.to.get.these.directl |
| 9fe0 | 79 20 66 72 6f 6d 20 74 68 65 20 7e 61 77 73 7e 20 63 6c 69 2e 0a 0a 4e 4f 54 45 3a 20 54 68 65 | y.from.the.~aws~.cli...NOTE:.The |
| a000 | 20 42 65 64 72 6f 63 6b 20 62 61 63 6b 65 6e 64 20 6e 65 65 64 73 20 63 75 72 6c 20 3e 3d 20 38 | .Bedrock.backend.needs.curl.>=.8 |
| a020 | 2e 35 20 69 6e 20 6f 72 64 65 72 20 66 6f 72 20 74 68 65 20 73 69 67 76 34 20 73 69 67 6e 69 6e | .5.in.order.for.the.sigv4.signin |
| a040 | 67 20 74 6f 20 77 6f 72 6b 20 70 72 6f 70 65 72 6c 79 2c 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 | g.to.work.properly,.https://gith |
| a060 | 75 62 2e 63 6f 6d 2f 63 75 72 6c 2f 63 75 72 6c 2f 69 73 73 75 65 73 2f 31 31 37 39 34 0a 0a 41 | ub.com/curl/curl/issues/11794..A |
| a080 | 6e 20 65 72 72 6f 72 20 77 69 6c 6c 20 62 65 20 73 69 67 6e 61 6c 6c 65 64 20 69 66 20 7e 67 70 | n.error.will.be.signalled.if.~gp |
| a0a0 | 74 65 6c 2d 63 75 72 6c 7e 20 69 73 20 7e 4e 49 4c 7e 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 | tel-curl~.is.~NIL~...You.can.pic |
| a0c0 | 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 | k.this.backend.from.the.menu.whe |
| a0e0 | 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 | n.using.gptel.(see.[[#usage][Usa |
| a100 | 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 | ge]])...*****.(Optional).Set.as. |
| a120 | 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 | the.default.gptel.backend..The.a |
| a140 | 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 | bove.code.makes.the.backend.avai |
| a160 | 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 | lable.to.select...If.you.want.it |
| a180 | 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 | .to.be.the.default.backend.for.g |
| a1a0 | 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 | ptel,.you.can.set.this.as.the.va |
| a1c0 | 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 | lue.of.=gptel-backend=...Use.thi |
| a1e0 | 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 23 2b 62 65 67 69 6e 5f | s.instead.of.the.above..#+begin_ |
| a200 | 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 | src.emacs-lisp.;;.OPTIONAL.confi |
| a220 | 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 63 6c | guration.(setq.gptel-model...'cl |
| a240 | 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 31 30 32 32 0a 20 20 20 20 20 20 67 | aude-3-5-sonnet-20241022.......g |
| a260 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 | ptel-backend.......(gptel-make-b |
| a280 | 65 64 72 6f 63 6b 20 22 41 57 53 22 0a 20 20 09 3a 72 65 67 69 6f 6e 20 22 61 70 2d 6e 6f 72 74 | edrock."AWS"....:region."ap-nort |
| a2a0 | 68 65 61 73 74 2d 31 22 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 75 62 73 65 74 20 6f 66 20 | heast-1"...........;;.subset.of. |
| a2c0 | 67 70 74 65 6c 2d 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 | gptel--bedrock-models........... |
| a2e0 | 3a 6d 6f 64 65 6c 73 20 27 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 | :models.'(claude-3-5-sonnet-2024 |
| a300 | 31 30 32 32 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 74 69 6f 6e 61 6c 0a 20 20 20 20 | 1022)...........;;.optional..... |
| a320 | 20 20 20 20 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 27 61 70 61 63 29 29 0a 23 2b 65 6e | ......:model-region.'apac)).#+en |
| a340 | 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 2a 2a 20 55 73 | d_src..#+html:.</details>..**.Us |
| a360 | 61 67 65 0a 0a 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 61 20 66 65 77 20 70 6f 77 65 72 66 | age..gptel.provides.a.few.powerf |
| a380 | 75 6c 2c 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 61 6e 64 20 66 6c 65 78 69 62 6c 65 | ul,.general.purpose.and.flexible |
| a3a0 | 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 59 6f 75 20 63 61 6e 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 | .commands...You.can.dynamically. |
| a3c0 | 74 77 65 61 6b 20 74 68 65 69 72 20 62 65 68 61 76 69 6f 72 20 74 6f 20 74 68 65 20 6e 65 65 64 | tweak.their.behavior.to.the.need |
| a3e0 | 73 20 6f 66 20 79 6f 75 72 20 74 61 73 6b 20 77 69 74 68 20 2f 64 69 72 65 63 74 69 76 65 73 2f | s.of.your.task.with./directives/ |
| a400 | 2c 20 72 65 64 69 72 65 63 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 6d 6f 72 65 2e 20 | ,.redirection.options.and.more.. |
| a420 | 20 54 68 65 72 65 20 69 73 20 61 20 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 79 6f 75 74 75 62 | .There.is.a.[[https://www.youtub |
| a440 | 65 2e 63 6f 6d 2f 77 61 74 63 68 3f 76 3d 62 73 52 6e 68 5f 62 72 67 67 4d 5d 5b 76 69 64 65 6f | e.com/watch?v=bsRnh_brggM][video |
| a460 | 20 64 65 6d 6f 5d 5d 20 73 68 6f 77 69 6e 67 20 76 61 72 69 6f 75 73 20 75 73 65 73 20 6f 66 20 | .demo]].showing.various.uses.of. |
| a480 | 67 70 74 65 6c 20 2d 2d 20 62 75 74 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 6d 69 67 68 74 20 | gptel.--.but.=gptel-send=.might. |
| a4a0 | 62 65 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 2e 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | be.all.you.need...|------------- |
| a4c0 | 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------+------------------------- |
| a4e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a520 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 54 6f 20 73 65 6e 64 20 71 75 65 72 69 65 73 2a 20 | ----------|.|.*To.send.queries*. |
| a540 | 7c 20 44 65 73 63 72 69 70 74 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |.Description................... |
| a560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a5a0 | 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d | ....|.|-------------------+----- |
| a5c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a5e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a600 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a | ------------------------------|. |
| a620 | 7c 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 20 20 20 20 20 7c 20 53 65 6e 64 20 61 6c 6c 20 74 | |.=gptel-send=......|.Send.all.t |
| a640 | 65 78 74 20 75 70 20 74 6f 20 3d 28 70 6f 69 6e 74 29 3d 2c 20 6f 72 20 74 68 65 20 73 65 6c 65 | ext.up.to.=(point)=,.or.the.sele |
| a660 | 63 74 69 6f 6e 20 69 66 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2e 20 20 57 6f 72 6b | ction.if.region.is.active...Work |
| a680 | 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 2e 20 20 20 20 7c 0a 7c 20 3d 67 70 74 | s.anywhere.in.Emacs.....|.|.=gpt |
| a6a0 | 65 6c 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 64 65 64 | el=...........|.Create.a.new.ded |
| a6c0 | 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 4e 6f 74 20 72 65 71 75 69 72 65 | icated.chat.buffer...Not.require |
| a6e0 | 64 20 74 6f 20 75 73 65 20 67 70 74 65 6c 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.to.use.gptel.................. |
| a700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 72 65 77 | ..................|.|.=gptel-rew |
| a720 | 72 69 74 65 3d 20 20 20 7c 20 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 20 63 | rite=...|.Rewrite,.refactor.or.c |
| a740 | 68 61 6e 67 65 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2e 20 20 43 61 6e 20 | hange.the.selected.region...Can. |
| a760 | 64 69 66 66 2f 65 64 69 66 66 20 63 68 61 6e 67 65 73 20 62 65 66 6f 72 65 20 6d 65 72 67 69 6e | diff/ediff.changes.before.mergin |
| a780 | 67 2f 61 70 70 6c 79 69 6e 67 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | g/applying..|.|----------------- |
| a7a0 | 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --+----------------------------- |
| a7c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a7e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a800 | 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b | ------|..|---------------------+ |
| a820 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a840 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c | -------------------------------| |
| a860 | 0a 7c 20 2a 54 6f 20 74 77 65 61 6b 20 62 65 68 61 76 69 6f 72 2a 20 7c 20 20 20 20 20 20 20 20 | .|.*To.tweak.behavior*.|........ |
| a880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d | .......................|.|------ |
| a8c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------------+---------------- |
| a8e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| a900 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 43 2d 75 3d 20 3d 67 70 74 65 6c 2d | ---------------|.|.=C-u=.=gptel- |
| a920 | 73 65 6e 64 3d 20 20 7c 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 70 72 65 66 | send=..|.Transient.menu.for.pref |
| a940 | 65 72 65 6e 63 65 73 2c 20 69 6e 70 75 74 2f 6f 75 74 70 75 74 20 72 65 64 69 72 65 63 74 69 6f | erences,.input/output.redirectio |
| a960 | 6e 20 65 74 63 2e 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 3d 20 20 20 20 20 20 20 20 7c | n.etc..|.|.=gptel-menu=........| |
| a980 | 20 2f 28 53 61 6d 65 29 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ./(Same)/....................... |
| a9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | ...............................| |
| a9c0 | 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d | .|---------------------+-------- |
| a9e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| aa00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d | -----------------------|..|----- |
| aa20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------+------------------ |
| aa40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| aa60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| aa80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 54 6f 20 61 64 | ----------------------|.|.*To.ad |
| aaa0 | 64 20 63 6f 6e 74 65 78 74 2a 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.context*.|.................... |
| aac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| aae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ab00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d | ....................|.|--------- |
| ab20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------+---------------------- |
| ab40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ab60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ab80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 64 64 | ------------------|.|.=gptel-add |
| aba0 | 3d 20 20 20 20 20 20 7c 20 41 64 64 2f 72 65 6d 6f 76 65 20 61 20 72 65 67 69 6f 6e 20 6f 72 20 | =......|.Add/remove.a.region.or. |
| abc0 | 62 75 66 66 65 72 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 49 6e 20 44 | buffer.to.gptel's.context...In.D |
| abe0 | 69 72 65 64 2c 20 61 64 64 2f 72 65 6d 6f 76 65 20 6d 61 72 6b 65 64 20 66 69 6c 65 73 2e 20 20 | ired,.add/remove.marked.files... |
| ac00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 64 64 2d 66 | ................|.|.=gptel-add-f |
| ac20 | 69 6c 65 3d 20 7c 20 41 64 64 20 61 20 66 69 6c 65 20 28 74 65 78 74 20 6f 72 20 73 75 70 70 6f | ile=.|.Add.a.file.(text.or.suppo |
| ac40 | 72 74 65 64 20 6d 65 64 69 61 20 74 79 70 65 29 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 | rted.media.type).to.gptel's.cont |
| ac60 | 65 78 74 2e 20 20 41 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 74 72 | ext...Also.available.from.the.tr |
| ac80 | 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ansient.menu..|.|--------------- |
| aca0 | 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---+---------------------------- |
| acc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ace0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ad00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------------|..|---------------- |
| ad20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------------+------------------- |
| ad40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ad60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ad80 | 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 4f 72 67 20 6d 6f 64 65 20 62 6f 6e 75 73 65 73 2a 20 20 20 20 | ------|.|.*Org.mode.bonuses*.... |
| ada0 | 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....|.......................... |
| adc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ade0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c | ...............................| |
| ae00 | 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d | .|----------------------------+- |
| ae20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ae40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ae60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 | ------------------------|.|.=gpt |
| ae80 | 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 3d 20 20 20 20 20 20 7c 20 4c 69 6d 69 74 20 63 | el-org-set-topic=......|.Limit.c |
| aea0 | 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f 6e 74 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 | onversation.context.to.an.Org.he |
| aec0 | 61 64 69 6e 67 2e 20 20 28 46 6f 72 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 | ading...(For.branching.conversat |
| aee0 | 69 6f 6e 73 20 73 65 65 20 62 65 6c 6f 77 2e 29 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 67 2d | ions.see.below.).|.|.=gptel-org- |
| af00 | 73 65 74 2d 70 72 6f 70 65 72 74 69 65 73 3d 20 7c 20 57 72 69 74 65 20 67 70 74 65 6c 20 63 6f | set-properties=.|.Write.gptel.co |
| af20 | 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 2c 20 66 | nfiguration.as.Org.properties,.f |
| af40 | 6f 72 20 70 65 72 2d 68 65 61 64 69 6e 67 20 63 68 61 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f | or.per-heading.chat.configuratio |
| af60 | 6e 2e 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | n.........|.|------------------- |
| af80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------+---------------------- |
| afa0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| afc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| afe0 | 2d 2d 2d 7c 0a 0a 2a 2a 2a 20 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 0a 0a 31 2e 20 43 61 6c | ---|..***.In.any.buffer:..1..Cal |
| b000 | 6c 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 3d 20 74 6f 20 73 65 6e 64 20 74 68 65 20 74 | l.=M-x.gptel-send=.to.send.the.t |
| b020 | 65 78 74 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 54 68 65 20 72 65 73 70 6f 6e | ext.up.to.the.cursor..The.respon |
| b040 | 73 65 20 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 62 65 6c 6f 77 2e 20 20 43 6f 6e 74 | se.will.be.inserted.below...Cont |
| b060 | 69 6e 75 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 | inue.the.conversation.by.typing. |
| b080 | 62 65 6c 6f 77 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 32 2e 20 49 66 20 61 20 72 65 67 | below.the.response...2..If.a.reg |
| b0a0 | 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f | ion.is.selected,.the.conversatio |
| b0c0 | 6e 20 77 69 6c 6c 20 62 65 20 6c 69 6d 69 74 65 64 20 74 6f 20 69 74 73 20 63 6f 6e 74 65 6e 74 | n.will.be.limited.to.its.content |
| b0e0 | 73 2e 0a 0a 33 2e 20 43 61 6c 6c 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 3d 20 77 69 74 | s...3..Call.=M-x.gptel-send=.wit |
| b100 | 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 28 7e 43 2d 75 7e 29 0a 20 20 20 2d | h.a.prefix.argument.(~C-u~)....- |
| b120 | 20 74 6f 20 73 65 74 20 63 68 61 74 20 70 61 72 61 6d 65 74 65 72 73 20 28 6d 6f 64 65 6c 2c 20 | .to.set.chat.parameters.(model,. |
| b140 | 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 65 74 63 29 20 66 6f 72 | backend,.system.message.etc).for |
| b160 | 20 74 68 69 73 20 62 75 66 66 65 72 2c 0a 20 20 20 2d 20 69 6e 63 6c 75 64 65 20 71 75 69 63 6b | .this.buffer,....-.include.quick |
| b180 | 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 65 | .instructions.for.the.next.reque |
| b1a0 | 73 74 20 6f 6e 6c 79 2c 0a 20 20 20 2d 20 74 6f 20 61 64 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 | st.only,....-.to.add.additional. |
| b1c0 | 63 6f 6e 74 65 78 74 20 2d 2d 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 20 6f 72 20 66 | context.--.regions,.buffers.or.f |
| b1e0 | 69 6c 65 73 20 2d 2d 20 74 6f 20 67 70 74 65 6c 2c 0a 20 20 20 2d 20 74 6f 20 72 65 61 64 20 74 | iles.--.to.gptel,....-.to.read.t |
| b200 | 68 65 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 6f 72 20 72 65 64 69 72 65 63 74 20 74 68 65 20 72 | he.prompt.from.or.redirect.the.r |
| b220 | 65 73 70 6f 6e 73 65 20 65 6c 73 65 77 68 65 72 65 2c 0a 20 20 20 2d 20 6f 72 20 74 6f 20 72 65 | esponse.elsewhere,....-.or.to.re |
| b240 | 70 6c 61 63 65 20 74 68 65 20 70 72 6f 6d 70 74 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e | place.the.prompt.with.the.respon |
| b260 | 73 65 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 | se...#+html:.<img.src="https://g |
| b280 | 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f | ithub.com/karthink/gptel/assets/ |
| b2a0 | 38 36 30 37 35 33 32 2f 33 35 36 32 61 36 65 32 2d 37 61 35 63 2d 34 66 37 65 2d 38 65 35 37 2d | 8607532/3562a6e2-7a5c-4f7e-8e57- |
| b2c0 | 62 66 33 63 31 31 35 38 39 63 37 33 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c 74 | bf3c11589c73".align="center".alt |
| b2e0 | 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 77 69 74 | ="Image.showing.gptel's.menu.wit |
| b300 | 68 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 71 75 65 72 79 20 6f 70 | h.some.of.the.available.query.op |
| b320 | 74 69 6f 6e 73 2e 22 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 65 66 69 6e 65 20 61 20 | tions.">..You.can.also.define.a. |
| b340 | 22 70 72 65 73 65 74 22 20 62 75 6e 64 6c 65 20 6f 66 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 | "preset".bundle.of.options.that. |
| b360 | 61 72 65 20 61 70 70 6c 69 65 64 20 74 6f 67 65 74 68 65 72 2c 20 73 65 65 20 5b 5b 23 6f 70 74 | are.applied.together,.see.[[#opt |
| b380 | 69 6f 6e 2d 70 72 65 73 65 74 73 5d 5b 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 5d 5d 20 62 65 | ion-presets][Option.presets]].be |
| b3a0 | 6c 6f 77 2e 0a 0a 2a 2a 2a 20 49 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 | low...***.In.a.dedicated.chat.bu |
| b3c0 | 66 66 65 72 3a 0a 0a 2a 4e 6f 74 65 2a 3a 20 67 70 74 65 6c 20 77 6f 72 6b 73 20 61 6e 79 77 68 | ffer:..*Note*:.gptel.works.anywh |
| b3e0 | 65 72 65 20 69 6e 20 45 6d 61 63 73 2e 20 20 54 68 65 20 64 65 64 69 63 61 74 65 64 20 63 68 61 | ere.in.Emacs...The.dedicated.cha |
| b400 | 74 20 62 75 66 66 65 72 20 6f 6e 6c 79 20 61 64 64 73 20 73 6f 6d 65 20 63 6f 6e 76 65 6e 69 65 | t.buffer.only.adds.some.convenie |
| b420 | 6e 63 65 73 2e 0a 0a 31 2e 20 52 75 6e 20 3d 4d 2d 78 20 67 70 74 65 6c 3d 20 74 6f 20 73 74 61 | nces...1..Run.=M-x.gptel=.to.sta |
| b440 | 72 74 20 6f 72 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 63 68 61 74 20 62 75 66 66 65 72 2e | rt.or.switch.to.the.chat.buffer. |
| b460 | 20 49 74 20 77 69 6c 6c 20 61 73 6b 20 79 6f 75 20 66 6f 72 20 74 68 65 20 6b 65 79 20 69 66 20 | .It.will.ask.you.for.the.key.if. |
| b480 | 79 6f 75 20 73 6b 69 70 70 65 64 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 74 65 70 2e 20 52 | you.skipped.the.previous.step..R |
| b4a0 | 75 6e 20 69 74 20 77 69 74 68 20 61 20 70 72 65 66 69 78 2d 61 72 67 20 28 3d 43 2d 75 20 4d 2d | un.it.with.a.prefix-arg.(=C-u.M- |
| b4c0 | 78 20 67 70 74 65 6c 3d 29 20 74 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 73 65 73 73 69 6f 6e | x.gptel=).to.start.a.new.session |
| b4e0 | 2e 0a 0a 32 2e 20 49 6e 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2c 20 73 65 6e 64 20 | ...2..In.the.gptel.buffer,.send. |
| b500 | 79 6f 75 72 20 70 72 6f 6d 70 74 20 77 69 74 68 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 | your.prompt.with.=M-x.gptel-send |
| b520 | 3d 2c 20 62 6f 75 6e 64 20 74 6f 20 3d 43 2d 63 20 52 45 54 3d 2e 0a 0a 33 2e 20 53 65 74 20 63 | =,.bound.to.=C-c.RET=...3..Set.c |
| b540 | 68 61 74 20 70 61 72 61 6d 65 74 65 72 73 20 28 4c 4c 4d 20 70 72 6f 76 69 64 65 72 2c 20 6d 6f | hat.parameters.(LLM.provider,.mo |
| b560 | 64 65 6c 2c 20 64 69 72 65 63 74 69 76 65 73 20 65 74 63 29 20 66 6f 72 20 74 68 65 20 73 65 73 | del,.directives.etc).for.the.ses |
| b580 | 73 69 6f 6e 20 62 79 20 63 61 6c 6c 69 6e 67 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 77 69 74 | sion.by.calling.=gptel-send=.wit |
| b5a0 | 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 28 3d 43 2d 75 20 43 2d 63 20 52 45 | h.a.prefix.argument.(=C-u.C-c.RE |
| b5c0 | 54 3d 29 3a 0a 20 20 20 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 | T=):.....#+html:.<img.src="https |
| b5e0 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 | ://github.com/karthink/gptel/ass |
| b600 | 65 74 73 2f 38 36 30 37 35 33 32 2f 65 62 34 38 36 37 65 35 2d 33 30 61 63 2d 34 35 35 66 2d 39 | ets/8607532/eb4867e5-30ac-455f-9 |
| b620 | 39 39 66 2d 65 31 37 31 32 33 61 66 62 38 31 30 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 | 99f-e17123afb810".align="center" |
| b640 | 20 61 6c 74 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 | .alt="Image.showing.gptel's.menu |
| b660 | 20 77 69 74 68 20 73 6f 6d 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 71 75 65 72 | .with.some.of.the.available.quer |
| b680 | 79 20 6f 70 74 69 6f 6e 73 2e 22 3e 0a 0a 54 68 61 74 27 73 20 69 74 2e 20 59 6f 75 20 63 61 6e | y.options.">..That's.it..You.can |
| b6a0 | 20 67 6f 20 62 61 63 6b 20 61 6e 64 20 65 64 69 74 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 | .go.back.and.edit.previous.promp |
| b6c0 | 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 69 66 20 79 6f 75 20 77 61 6e 74 2e 0a 0a 54 | ts.and.responses.if.you.want...T |
| b6e0 | 68 65 20 64 65 66 61 75 6c 74 20 6d 6f 64 65 20 69 73 20 3d 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 | he.default.mode.is.=markdown-mod |
| b700 | 65 3d 20 69 66 20 61 76 61 69 6c 61 62 6c 65 2c 20 65 6c 73 65 20 3d 74 65 78 74 2d 6d 6f 64 65 | e=.if.available,.else.=text-mode |
| b720 | 3d 2e 20 20 59 6f 75 20 63 61 6e 20 73 65 74 20 3d 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d | =...You.can.set.=gptel-default-m |
| b740 | 6f 64 65 3d 20 74 6f 20 3d 6f 72 67 2d 6d 6f 64 65 3d 20 69 66 20 64 65 73 69 72 65 64 2e 0a 0a | ode=.to.=org-mode=.if.desired... |
| b760 | 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 65 66 69 6e 65 20 61 20 22 70 72 65 73 65 74 22 20 62 | You.can.also.define.a."preset".b |
| b780 | 75 6e 64 6c 65 20 6f 66 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 70 70 6c 69 65 | undle.of.options.that.are.applie |
| b7a0 | 64 20 74 6f 67 65 74 68 65 72 2c 20 73 65 65 20 5b 5b 23 6f 70 74 69 6f 6e 2d 70 72 65 73 65 74 | d.together,.see.[[#option-preset |
| b7c0 | 73 5d 5b 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 5d 5d 20 62 65 6c 6f 77 2e 0a 0a 23 2b 68 74 | s][Option.presets]].below...#+ht |
| b7e0 | 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 6e 63 6c | ml:.<details><summary>.****.Incl |
| b800 | 75 64 69 6e 67 20 6d 65 64 69 61 20 28 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 20 6f | uding.media.(images,.documents.o |
| b820 | 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 29 20 77 69 74 68 20 72 65 71 75 65 73 74 | r.plain-text.files).with.request |
| b840 | 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 67 70 74 65 6c 20 73 75 70 70 | s.#+html:.</summary>..gptel.supp |
| b860 | 6f 72 74 73 20 73 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 69 6e 20 4d 61 72 6b 64 6f 77 6e 20 61 | orts.sending.media.in.Markdown.a |
| b880 | 6e 64 20 4f 72 67 20 63 68 61 74 20 62 75 66 66 65 72 73 2c 20 62 75 74 20 74 68 69 73 20 66 65 | nd.Org.chat.buffers,.but.this.fe |
| b8a0 | 61 74 75 72 65 20 69 73 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 2d | ature.is.disabled.by.default...- |
| b8c0 | 20 59 6f 75 20 63 61 6e 20 65 6e 61 62 6c 65 20 69 74 20 67 6c 6f 62 61 6c 6c 79 2c 20 66 6f 72 | .You.can.enable.it.globally,.for |
| b8e0 | 20 61 6c 6c 20 6d 6f 64 65 6c 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 20 69 74 2c 20 62 79 20 | .all.models.that.support.it,.by. |
| b900 | 73 65 74 74 69 6e 67 20 3d 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 3d 2e 20 20 0a 2d | setting.=gptel-track-media=....- |
| b920 | 20 4f 72 20 79 6f 75 20 63 61 6e 20 73 65 74 20 69 74 20 6c 6f 63 61 6c 6c 79 2c 20 6a 75 73 74 | .Or.you.can.set.it.locally,.just |
| b940 | 20 66 6f 72 20 74 68 65 20 63 68 61 74 20 62 75 66 66 65 72 2c 20 76 69 61 20 74 68 65 20 68 65 | .for.the.chat.buffer,.via.the.he |
| b960 | 61 64 65 72 20 6c 69 6e 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 | ader.line:..#+html:.<img.src="ht |
| b980 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 | tps://github.com/user-attachment |
| b9a0 | 73 2f 61 73 73 65 74 73 2f 39 31 66 36 61 61 61 62 2d 32 65 61 34 2d 34 38 30 36 2d 39 63 63 39 | s/assets/91f6aaab-2ea4-4806-9cc9 |
| b9c0 | 2d 33 39 62 34 62 34 36 61 38 65 36 63 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c | -39b4b46a8e6c".align="center".al |
| b9e0 | 74 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 61 20 67 70 74 65 6c 20 63 68 61 74 20 62 75 | t="Image.showing.a.gptel.chat.bu |
| ba00 | 66 66 65 72 27 73 20 68 65 61 64 65 72 20 6c 69 6e 65 20 77 69 74 68 20 74 68 65 20 62 75 74 74 | ffer's.header.line.with.the.butt |
| ba20 | 6f 6e 20 74 6f 20 74 6f 67 67 6c 65 20 6d 65 64 69 61 20 73 75 70 70 6f 72 74 22 3e 0a 0a 2d 2d | on.to.toggle.media.support">..-- |
| ba40 | 2d 2d 2d 0a 0a 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 77 61 79 73 20 74 6f 20 69 6e 63 6c 75 | ---..There.are.two.ways.to.inclu |
| ba60 | 64 65 20 6d 65 64 69 61 20 6f 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 20 77 69 74 | de.media.or.plain-text.files.wit |
| ba80 | 68 20 72 65 71 75 65 73 74 73 3a 0a 0a 31 2e 20 41 64 64 69 6e 67 20 6d 65 64 69 61 20 66 69 6c | h.requests:..1..Adding.media.fil |
| baa0 | 65 73 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 3d 67 70 74 65 6c 2d 61 64 | es.to.the.context.with.=gptel-ad |
| bac0 | 64 2d 66 69 6c 65 3d 2c 20 64 65 73 63 72 69 62 65 64 20 66 75 72 74 68 65 72 20 62 65 6c 6f 77 | d-file=,.described.further.below |
| bae0 | 2e 0a 32 2e 20 49 6e 63 6c 75 64 69 6e 67 20 6c 69 6e 6b 73 20 74 6f 20 6d 65 64 69 61 20 69 6e | ..2..Including.links.to.media.in |
| bb00 | 20 63 68 61 74 20 62 75 66 66 65 72 73 2c 20 64 65 73 63 72 69 62 65 64 20 68 65 72 65 3a 0a 0a | .chat.buffers,.described.here:.. |
| bb20 | 54 6f 20 69 6e 63 6c 75 64 65 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 2c 20 69 6d 61 | To.include.plain-text.files,.ima |
| bb40 | 67 65 73 20 6f 72 20 6f 74 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 64 6f 63 75 6d 65 6e 74 20 | ges.or.other.supported.document. |
| bb60 | 74 79 70 65 73 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 | types.with.requests.in.chat.buff |
| bb80 | 65 72 73 2c 20 79 6f 75 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 6c 69 6e 6b 73 20 74 6f 20 74 68 | ers,.you.can.include.links.to.th |
| bba0 | 65 6d 20 69 6e 20 74 68 65 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 53 75 63 68 20 61 20 6c | em.in.the.chat.buffer...Such.a.l |
| bbc0 | 69 6e 6b 20 6d 75 73 74 20 62 65 20 22 73 74 61 6e 64 61 6c 6f 6e 65 22 2c 20 69 2e 65 2e 20 6f | ink.must.be."standalone",.i.e..o |
| bbe0 | 6e 20 61 20 6c 69 6e 65 20 62 79 20 69 74 73 65 6c 66 20 73 75 72 72 6f 75 6e 64 65 64 20 62 79 | n.a.line.by.itself.surrounded.by |
| bc00 | 20 77 68 69 74 65 73 70 61 63 65 2e 0a 0a 49 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 66 6f 72 20 65 | .whitespace...In.Org.mode,.for.e |
| bc20 | 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 65 20 61 6c 6c 20 2a 76 | xample,.the.following.are.all.*v |
| bc40 | 61 6c 69 64 2a 20 77 61 79 73 20 6f 66 20 69 6e 63 6c 75 64 69 6e 67 20 61 6e 20 69 6d 61 67 65 | alid*.ways.of.including.an.image |
| bc60 | 20 77 69 74 68 20 74 68 65 20 72 65 71 75 65 73 74 3a 0a 0a 2d 20 22 53 74 61 6e 64 61 6c 6f 6e | .with.the.request:..-."Standalon |
| bc80 | 65 22 20 66 69 6c 65 20 6c 69 6e 6b 73 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 49 6e 20 74 | e".file.links:.#+begin_src..In.t |
| bca0 | 68 69 73 20 79 61 6d 6c 20 66 69 6c 65 2c 20 49 20 68 61 76 65 20 73 6f 6d 65 20 6b 65 79 2d 72 | his.yaml.file,.I.have.some.key-r |
| bcc0 | 65 6d 61 70 70 69 6e 67 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 0a 0a 5b 5b 66 69 6c 65 3a | emapping.configuration:..[[file: |
| bce0 | 2f 70 61 74 68 2f 74 6f 2f 72 65 6d 61 70 2e 79 61 6d 6c 5d 5d 0a 0a 43 6f 75 6c 64 20 79 6f 75 | /path/to/remap.yaml]]..Could.you |
| bd00 | 20 65 78 70 6c 61 69 6e 20 77 68 61 74 20 69 74 20 64 6f 65 73 2c 20 61 6e 64 20 77 68 69 63 68 | .explain.what.it.does,.and.which |
| bd20 | 20 70 72 6f 67 72 61 6d 20 6d 69 67 68 74 20 62 65 20 75 73 69 6e 67 20 69 74 3f 0a 23 2b 65 6e | .program.might.be.using.it?.#+en |
| bd40 | 64 5f 73 72 63 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 | d_src..#+begin_src.Describe.this |
| bd60 | 20 70 69 63 74 75 72 65 0a 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e | .picture..[[file:/path/to/screen |
| bd80 | 73 68 6f 74 2e 70 6e 67 5d 5d 0a 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f | shot.png]]..Focus.specifically.o |
| bda0 | 6e 20 74 68 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d | n.the.text.content..#+end_src..- |
| bdc0 | 20 22 53 74 61 6e 64 61 6c 6f 6e 65 22 20 66 69 6c 65 20 6c 69 6e 6b 20 77 69 74 68 20 64 65 73 | ."Standalone".file.link.with.des |
| bde0 | 63 72 69 70 74 69 6f 6e 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 | cription:.#+begin_src..Describe. |
| be00 | 74 68 69 73 20 70 69 63 74 75 72 65 0a 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 | this.picture..[[file:/path/to/sc |
| be20 | 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5b 73 6f 6d 65 20 70 69 63 74 75 72 65 5d 5d 0a 0a 46 6f | reenshot.png][some.picture]]..Fo |
| be40 | 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e 20 74 68 65 20 74 65 78 74 20 63 6f 6e | cus.specifically.on.the.text.con |
| be60 | 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d 20 22 53 74 61 6e 64 61 6c 6f 6e 65 22 2c | tent..#+end_src..-."Standalone", |
| be80 | 20 61 6e 67 6c 65 20 66 69 6c 65 20 6c 69 6e 6b 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 | .angle.file.link:.#+begin_src..D |
| bea0 | 65 73 63 72 69 62 65 20 74 68 69 73 20 70 69 63 74 75 72 65 0a 0a 3c 66 69 6c 65 3a 2f 70 61 74 | escribe.this.picture..<file:/pat |
| bec0 | 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 3e 0a 0a 46 6f 63 75 73 20 73 70 65 63 | h/to/screenshot.png>..Focus.spec |
| bee0 | 69 66 69 63 61 6c 6c 79 20 6f 6e 20 74 68 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2e 0a 23 2b | ifically.on.the.text.content..#+ |
| bf00 | 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 6b 73 20 61 72 65 | end_src..The.following.links.are |
| bf20 | 20 2a 6e 6f 74 20 76 61 6c 69 64 2a 2c 20 61 6e 64 20 74 68 65 20 74 65 78 74 20 6f 66 20 74 68 | .*not.valid*,.and.the.text.of.th |
| bf40 | 65 20 6c 69 6e 6b 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 69 6e 73 74 65 61 64 20 6f 66 20 74 | e.link.will.be.sent.instead.of.t |
| bf60 | 68 65 20 66 69 6c 65 20 63 6f 6e 74 65 6e 74 73 3a 0a 0a 2d 20 49 6e 6c 69 6e 65 20 6c 69 6e 6b | he.file.contents:..-.Inline.link |
| bf80 | 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 20 5b 5b 66 | :.#+begin_src..Describe.this.[[f |
| bfa0 | 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5b 70 69 63 | ile:/path/to/screenshot.png][pic |
| bfc0 | 74 75 72 65 5d 5d 2e 0a 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e 20 74 | ture]]...Focus.specifically.on.t |
| bfe0 | 68 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d 20 4c 69 | he.text.content..#+end_src..-.Li |
| c000 | 6e 6b 20 6e 6f 74 20 22 73 74 61 6e 64 61 6c 6f 6e 65 22 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | nk.not."standalone":.#+begin_src |
| c020 | 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 20 70 69 63 74 75 72 65 3a 20 0a 5b 5b 66 69 6c 65 3a | .Describe.this.picture:..[[file: |
| c040 | 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5d 0a 46 6f 63 75 73 20 | /path/to/screenshot.png]].Focus. |
| c060 | 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e 20 74 68 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 | specifically.on.the.text.content |
| c080 | 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d 20 4e 6f 74 20 61 20 76 61 6c 69 64 20 4f 72 67 20 6c | ..#+end_src..-.Not.a.valid.Org.l |
| c0a0 | 69 6e 6b 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 65 20 70 | ink:.#+begin_src..Describe.the.p |
| c0c0 | 69 63 74 75 72 65 0a 0a 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 | icture..file:/path/to/screenshot |
| c0e0 | 2e 70 6e 67 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 53 69 6d 69 6c 61 72 20 63 72 69 74 65 72 69 61 | .png.#+end_src..Similar.criteria |
| c100 | 20 61 70 70 6c 79 20 74 6f 20 4d 61 72 6b 64 6f 77 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e | .apply.to.Markdown.chat.buffers. |
| c120 | 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 | ..#+html:.</details>.#+html:.<de |
| c140 | 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 53 61 76 65 20 61 6e 64 20 72 65 | tails><summary>.****.Save.and.re |
| c160 | 73 74 6f 72 65 20 79 6f 75 72 20 63 68 61 74 20 73 65 73 73 69 6f 6e 73 0a 23 2b 68 74 6d 6c 3a | store.your.chat.sessions.#+html: |
| c180 | 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 53 61 76 69 6e 67 20 74 68 65 20 66 69 6c 65 20 77 69 6c | .</summary>..Saving.the.file.wil |
| c1a0 | 6c 20 73 61 76 65 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e 76 65 72 73 61 | l.save.the.state.of.the.conversa |
| c1c0 | 74 69 6f 6e 20 61 73 20 77 65 6c 6c 2e 20 20 54 6f 20 72 65 73 75 6d 65 20 74 68 65 20 63 68 61 | tion.as.well...To.resume.the.cha |
| c1e0 | 74 2c 20 6f 70 65 6e 20 74 68 65 20 66 69 6c 65 20 61 6e 64 20 74 75 72 6e 20 6f 6e 20 3d 67 70 | t,.open.the.file.and.turn.on.=gp |
| c200 | 74 65 6c 2d 6d 6f 64 65 3d 20 62 65 66 6f 72 65 20 65 64 69 74 69 6e 67 20 74 68 65 20 62 75 66 | tel-mode=.before.editing.the.buf |
| c220 | 66 65 72 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 2a 20 53 65 74 | fer...#+html:.</details>.***.Set |
| c240 | 74 69 6e 67 20 6f 70 74 69 6f 6e 73 20 28 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 2c 20 72 65 | ting.options.(backend,.model,.re |
| c260 | 71 75 65 73 74 20 70 61 72 61 6d 65 74 65 72 73 2c 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 | quest.parameters,.system.prompts |
| c280 | 20 61 6e 64 20 6d 6f 72 65 29 0a 0a 4d 6f 73 74 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 63 | .and.more)..Most.gptel.options.c |
| c2a0 | 61 6e 20 62 65 20 73 65 74 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 | an.be.set.from.gptel's.transient |
| c2c0 | 20 6d 65 6e 75 2c 20 61 76 61 69 6c 61 62 6c 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 3d 67 70 74 | .menu,.available.by.calling.=gpt |
| c2e0 | 65 6c 2d 73 65 6e 64 3d 20 77 69 74 68 20 61 20 70 72 65 66 69 78 2d 61 72 67 75 6d 65 6e 74 2c | el-send=.with.a.prefix-argument, |
| c300 | 20 6f 72 20 76 69 61 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 3d 2e 20 20 54 6f 20 63 68 61 6e 67 65 | .or.via.=gptel-menu=...To.change |
| c320 | 20 74 68 65 69 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 69 6e 20 79 6f 75 72 20 63 6f | .their.default.values.in.your.co |
| c340 | 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 73 65 65 20 5b 5b 23 61 64 64 69 74 69 6f 6e 61 6c 2d 63 | nfiguration,.see.[[#additional-c |
| c360 | 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5b 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6e 66 69 67 75 | onfiguration][Additional.Configu |
| c380 | 72 61 74 69 6f 6e 5d 5d 2e 20 20 43 68 61 74 20 62 75 66 66 65 72 2d 73 70 65 63 69 66 69 63 20 | ration]]...Chat.buffer-specific. |
| c3a0 | 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 74 | options.are.also.available.via.t |
| c3c0 | 68 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a | he.header-line.in.chat.buffers.. |
| c3e0 | 0a 23 20 54 4f 44 4f 20 52 65 6d 6f 76 65 20 74 68 69 73 20 77 68 65 6e 20 77 72 69 74 69 6e 67 | .#.TODO.Remove.this.when.writing |
| c400 | 20 74 68 65 20 6d 61 6e 75 61 6c 2e 0a 53 65 6c 65 63 74 69 6e 67 20 61 20 6d 6f 64 65 6c 20 61 | .the.manual..Selecting.a.model.a |
| c420 | 6e 64 20 62 61 63 6b 65 6e 64 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 69 6e 74 65 72 61 63 74 69 | nd.backend.can.be.done.interacti |
| c440 | 76 65 6c 79 20 76 69 61 20 74 68 65 20 3d 2d 6d 3d 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 3d 67 70 | vely.via.the.=-m=.command.of.=gp |
| c460 | 74 65 6c 2d 6d 65 6e 75 3d 2e 20 20 41 76 61 69 6c 61 62 6c 65 20 72 65 67 69 73 74 65 72 65 64 | tel-menu=...Available.registered |
| c480 | 20 6d 6f 64 65 6c 73 20 61 72 65 20 70 72 65 66 69 78 65 64 20 62 79 20 74 68 65 20 6e 61 6d 65 | .models.are.prefixed.by.the.name |
| c4a0 | 20 6f 66 20 74 68 65 69 72 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 61 20 73 74 72 69 6e 67 20 | .of.their.backend.with.a.string. |
| c4c0 | 6c 69 6b 65 20 3d 43 68 61 74 47 50 54 3a 67 70 74 2d 34 6f 2d 6d 69 6e 69 3d 2c 20 77 68 65 72 | like.=ChatGPT:gpt-4o-mini=,.wher |
| c4e0 | 65 20 3d 43 68 61 74 47 50 54 3d 20 69 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 6e 61 6d 65 20 | e.=ChatGPT=.is.the.backend.name. |
| c500 | 79 6f 75 20 75 73 65 64 20 74 6f 20 72 65 67 69 73 74 65 72 20 69 74 20 61 6e 64 20 3d 67 70 74 | you.used.to.register.it.and.=gpt |
| c520 | 2d 34 6f 2d 6d 69 6e 69 3d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 | -4o-mini=.is.the.name.of.the.mod |
| c540 | 65 6c 2e 0a 0a 2a 2a 2a 20 49 6e 63 6c 75 64 65 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 20 77 69 | el...***.Include.more.context.wi |
| c560 | 74 68 20 72 65 71 75 65 73 74 73 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 67 70 74 65 6c 20 77 | th.requests..By.default,.gptel.w |
| c580 | 69 6c 6c 20 71 75 65 72 79 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 74 68 65 20 61 63 74 69 76 | ill.query.the.LLM.with.the.activ |
| c5a0 | 65 20 72 65 67 69 6f 6e 20 6f 72 20 74 68 65 20 62 75 66 66 65 72 20 63 6f 6e 74 65 6e 74 73 20 | e.region.or.the.buffer.contents. |
| c5c0 | 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 4f 66 74 65 6e 20 69 74 20 63 61 6e 20 | up.to.the.cursor...Often.it.can. |
| c5e0 | 62 65 20 68 65 6c 70 66 75 6c 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 | be.helpful.to.provide.the.LLM.wi |
| c600 | 74 68 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 6f 75 74 73 69 | th.additional.context.from.outsi |
| c620 | 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 20 46 6f 72 20 65 78 61 6d 70 | de.the.current.buffer..For.examp |
| c640 | 6c 65 2c 20 77 68 65 6e 20 79 6f 75 27 72 65 20 69 6e 20 61 20 63 68 61 74 20 62 75 66 66 65 72 | le,.when.you're.in.a.chat.buffer |
| c660 | 20 62 75 74 20 77 61 6e 74 20 74 6f 20 61 73 6b 20 71 75 65 73 74 69 6f 6e 73 20 61 62 6f 75 74 | .but.want.to.ask.questions.about |
| c680 | 20 61 20 28 70 6f 73 73 69 62 6c 79 20 63 68 61 6e 67 69 6e 67 29 20 63 6f 64 65 20 62 75 66 66 | .a.(possibly.changing).code.buff |
| c6a0 | 65 72 20 61 6e 64 20 61 75 78 69 6c 69 61 72 79 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 2e 0a | er.and.auxiliary.project.files.. |
| c6c0 | 0a 59 6f 75 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 78 74 | .You.can.include.additional.text |
| c6e0 | 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 77 69 74 68 20 | .regions,.buffers.or.files.with. |
| c700 | 67 70 74 65 6c 27 73 20 71 75 65 72 69 65 73 20 69 6e 20 74 77 6f 20 77 61 79 73 2e 20 20 54 68 | gptel's.queries.in.two.ways...Th |
| c720 | 65 20 66 69 72 73 74 20 69 73 20 76 69 61 20 6c 69 6e 6b 73 20 69 6e 20 63 68 61 74 20 62 75 66 | e.first.is.via.links.in.chat.buf |
| c740 | 66 65 72 73 2c 20 61 73 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 65 20 28 73 65 65 20 22 49 | fers,.as.described.above.(see."I |
| c760 | 6e 63 6c 75 64 69 6e 67 20 6d 65 64 69 61 20 77 69 74 68 20 72 65 71 75 65 73 74 73 22 29 2e 0a | ncluding.media.with.requests").. |
| c780 | 0a 54 68 65 20 73 65 63 6f 6e 64 20 69 73 20 67 6c 6f 62 61 6c 6c 79 20 76 69 61 20 64 65 64 69 | .The.second.is.globally.via.dedi |
| c7a0 | 63 61 74 65 64 20 63 6f 6e 74 65 78 74 20 63 6f 6d 6d 61 6e 64 73 3a 20 79 6f 75 20 63 61 6e 20 | cated.context.commands:.you.can. |
| c7c0 | 61 64 64 20 61 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2c 20 62 75 66 66 65 72 20 6f 72 | add.a.selected.region,.buffer.or |
| c7e0 | 20 66 69 6c 65 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 74 68 | .file.to.gptel's.context.from.th |
| c800 | 65 20 6d 65 6e 75 2c 20 6f 72 20 63 61 6c 6c 20 3d 67 70 74 65 6c 2d 61 64 64 3d 2e 20 20 54 6f | e.menu,.or.call.=gptel-add=...To |
| c820 | 20 61 64 64 20 61 20 66 69 6c 65 20 75 73 65 20 3d 67 70 74 65 6c 2d 61 64 64 3d 20 69 6e 20 44 | .add.a.file.use.=gptel-add=.in.D |
| c840 | 69 72 65 64 2c 20 6f 72 20 75 73 65 20 74 68 65 20 64 65 64 69 63 61 74 65 64 20 3d 67 70 74 65 | ired,.or.use.the.dedicated.=gpte |
| c860 | 6c 2d 61 64 64 2d 66 69 6c 65 3d 20 63 6f 6d 6d 61 6e 64 2e 20 20 44 69 72 65 63 74 6f 72 69 65 | l-add-file=.command...Directorie |
| c880 | 73 20 77 69 6c 6c 20 68 61 76 65 20 74 68 65 69 72 20 66 69 6c 65 73 20 61 64 64 65 64 20 72 65 | s.will.have.their.files.added.re |
| c8a0 | 63 75 72 73 69 76 65 6c 79 20 61 66 74 65 72 20 70 72 6f 6d 70 74 69 6e 67 20 66 6f 72 20 63 6f | cursively.after.prompting.for.co |
| c8c0 | 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e | nfirmation...This.additional.con |
| c8e0 | 74 65 78 74 20 69 73 20 22 6c 69 76 65 22 20 61 6e 64 20 6e 6f 74 20 61 20 73 6e 61 70 73 68 6f | text.is."live".and.not.a.snapsho |
| c900 | 74 2e 20 20 4f 6e 63 65 20 61 64 64 65 64 2c 20 74 68 65 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 | t...Once.added,.the.regions,.buf |
| c920 | 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 61 72 65 20 73 63 61 6e 6e 65 64 20 61 6e 64 20 69 6e | fers.or.files.are.scanned.and.in |
| c940 | 63 6c 75 64 65 64 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 65 61 63 68 20 71 75 65 72 79 | cluded.at.the.time.of.each.query |
| c960 | 2e 20 20 57 68 65 6e 20 75 73 69 6e 67 20 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 6d 6f 64 65 6c 73 | ...When.using.multi-modal.models |
| c980 | 2c 20 61 64 64 65 64 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 6f 66 20 61 6e 79 20 73 75 70 70 | ,.added.files.can.be.of.any.supp |
| c9a0 | 6f 72 74 65 64 20 74 79 70 65 20 2d 2d 20 74 79 70 69 63 61 6c 6c 79 20 69 6d 61 67 65 73 2e 0a | orted.type.--.typically.images.. |
| c9c0 | 0a 59 6f 75 20 63 61 6e 20 65 78 61 6d 69 6e 65 20 74 68 65 20 61 63 74 69 76 65 20 63 6f 6e 74 | .You.can.examine.the.active.cont |
| c9e0 | 65 78 74 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 3a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 | ext.from.the.menu:.#+html:.<img. |
| ca00 | 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b | src="https://github.com/karthink |
| ca20 | 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 37 35 33 32 2f 36 33 63 64 37 66 63 38 2d 36 | /gptel/assets/8607532/63cd7fc8-6 |
| ca40 | 62 33 65 2d 34 32 61 65 2d 62 36 63 61 2d 30 36 66 66 39 33 35 62 61 65 39 63 22 20 61 6c 69 67 | b3e-42ae-b6ca-06ff935bae9c".alig |
| ca60 | 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c 74 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 67 70 | n="center".alt="Image.showing.gp |
| ca80 | 74 65 6c 27 73 20 6d 65 6e 75 20 77 69 74 68 20 74 68 65 20 22 69 6e 73 70 65 63 74 20 63 6f 6e | tel's.menu.with.the."inspect.con |
| caa0 | 74 65 78 74 22 20 63 6f 6d 6d 61 6e 64 2e 22 3e 0a 0a 41 6e 64 20 74 68 65 6e 20 62 72 6f 77 73 | text".command.">..And.then.brows |
| cac0 | 65 20 74 68 72 6f 75 67 68 20 6f 72 20 72 65 6d 6f 76 65 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d | e.through.or.remove.context.from |
| cae0 | 20 74 68 65 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 3a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d | .the.context.buffer:.#+html:.<im |
| cb00 | 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 | g.src="https://github.com/karthi |
| cb20 | 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 37 35 33 32 2f 37 39 61 35 66 66 65 38 | nk/gptel/assets/8607532/79a5ffe8 |
| cb40 | 2d 33 64 36 33 2d 34 62 66 37 2d 39 62 66 36 2d 30 34 35 37 61 62 36 31 62 66 32 61 22 20 61 6c | -3d63-4bf7-9bf6-0457ab61bf2a".al |
| cb60 | 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c 74 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 | ign="center".alt="Image.showing. |
| cb80 | 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 2e 22 3e 0a 0a 2a 2a 2a 20 48 | gptel's.context.buffer.">..***.H |
| cba0 | 61 6e 64 6c 65 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 0a 0a 53 6f 6d 65 20 | andle."reasoning".content..Some. |
| cbc0 | 4c 4c 4d 73 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 20 61 | LLMs.include.in.their.response.a |
| cbe0 | 20 22 74 68 69 6e 6b 69 6e 67 22 20 6f 72 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 62 6c 6f 63 6b | ."thinking".or."reasoning".block |
| cc00 | 2e 20 20 54 68 69 73 20 74 65 78 74 20 69 6d 70 72 6f 76 65 73 20 74 68 65 20 71 75 61 6c 69 74 | ...This.text.improves.the.qualit |
| cc20 | 79 20 6f 66 20 74 68 65 20 4c 4c 4d e2 80 99 73 20 66 69 6e 61 6c 20 6f 75 74 70 75 74 2c 20 62 | y.of.the.LLM...s.final.output,.b |
| cc40 | 75 74 20 6d 61 79 20 6e 6f 74 20 62 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 6f 20 79 6f 75 | ut.may.not.be.interesting.to.you |
| cc60 | 20 62 79 20 69 74 73 65 6c 66 2e 20 20 59 6f 75 20 63 61 6e 20 64 65 63 69 64 65 20 68 6f 77 20 | .by.itself...You.can.decide.how. |
| cc80 | 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 68 69 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 | you.would.like.this."reasoning". |
| cca0 | 63 6f 6e 74 65 6e 74 20 74 6f 20 62 65 20 68 61 6e 64 6c 65 64 20 62 79 20 67 70 74 65 6c 20 62 | content.to.be.handled.by.gptel.b |
| ccc0 | 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 3d 67 70 74 65 6c | y.setting.the.user.option.=gptel |
| cce0 | 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 3d 2e 20 20 59 6f 75 20 63 61 6e 20 69 6e | -include-reasoning=...You.can.in |
| cd00 | 63 6c 75 64 65 20 69 74 20 69 6e 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 28 74 68 | clude.it.in.the.LLM.response.(th |
| cd20 | 65 20 64 65 66 61 75 6c 74 29 2c 20 6f 6d 69 74 20 69 74 20 65 6e 74 69 72 65 6c 79 2c 20 69 6e | e.default),.omit.it.entirely,.in |
| cd40 | 63 6c 75 64 65 20 69 74 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 62 75 74 20 69 67 6e 6f 72 | clude.it.in.the.buffer.but.ignor |
| cd60 | 65 20 69 74 20 6f 6e 20 73 75 62 73 65 71 75 65 6e 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 | e.it.on.subsequent.conversation. |
| cd80 | 74 75 72 6e 73 2c 20 6f 72 20 72 65 64 69 72 65 63 74 20 69 74 20 74 6f 20 61 6e 6f 74 68 65 72 | turns,.or.redirect.it.to.another |
| cda0 | 20 62 75 66 66 65 72 2e 20 20 41 73 20 77 69 74 68 20 6d 6f 73 74 20 6f 70 74 69 6f 6e 73 2c 20 | .buffer...As.with.most.options,. |
| cdc0 | 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 74 68 69 73 20 62 65 68 76 61 69 6f 72 20 66 72 | you.can.specify.this.behvaior.fr |
| cde0 | 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 67 6c 6f 62 61 6c | om.gptel's.transient.menu.global |
| ce00 | 6c 79 2c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 | ly,.buffer-locally.or.for.the.ne |
| ce20 | 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 2e 0a 0a 57 68 65 6e 20 69 6e 63 6c 75 64 65 64 20 | xt.request.only...When.included. |
| ce40 | 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 20 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e | with.the.response,.reasoning.con |
| ce60 | 74 65 6e 74 20 77 69 6c 6c 20 62 65 20 64 65 6c 69 6d 69 74 65 64 20 62 79 20 4f 72 67 20 62 6c | tent.will.be.delimited.by.Org.bl |
| ce80 | 6f 63 6b 73 20 6f 72 20 6d 61 72 6b 64 6f 77 6e 20 62 61 63 6b 74 69 63 6b 73 2e 0a 0a 2a 2a 2a | ocks.or.markdown.backticks...*** |
| cea0 | 20 54 6f 6f 6c 20 75 73 65 0a 0a 67 70 74 65 6c 20 63 61 6e 20 70 72 6f 76 69 64 65 20 74 68 65 | .Tool.use..gptel.can.provide.the |
| cec0 | 20 4c 4c 4d 20 77 69 74 68 20 63 6c 69 65 6e 74 2d 73 69 64 65 20 65 6c 69 73 70 20 22 74 6f 6f | .LLM.with.client-side.elisp."too |
| cee0 | 6c 73 22 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2c | ls",.or.function.specifications, |
| cf00 | 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 49 66 20 74 68 65 | .along.with.the.request...If.the |
| cf20 | 20 4c 4c 4d 20 64 65 63 69 64 65 73 20 74 6f 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 69 74 | .LLM.decides.to.run.the.tool,.it |
| cf40 | 20 73 75 70 70 6c 69 65 73 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 | .supplies.the.tool.call.argument |
| cf60 | 73 2c 20 77 68 69 63 68 20 67 70 74 65 6c 20 75 73 65 73 20 74 6f 20 72 75 6e 20 74 68 65 20 74 | s,.which.gptel.uses.to.run.the.t |
| cf80 | 6f 6f 6c 20 69 6e 20 79 6f 75 72 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 2e 20 20 54 68 65 20 | ool.in.your.Emacs.session...The. |
| cfa0 | 72 65 73 75 6c 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 72 65 74 75 72 6e 65 64 20 74 6f | result.is.optionally.returned.to |
| cfc0 | 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 74 61 73 6b 2e 0a 0a | .the.LLM.to.complete.the.task... |
| cfe0 | 54 68 69 73 20 65 78 63 68 61 6e 67 65 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 65 71 75 | This.exchange.can.be.used.to.equ |
| d000 | 69 70 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 72 20 | ip.the.LLM.with.capabilities.or. |
| d020 | 6b 6e 6f 77 6c 65 64 67 65 20 62 65 79 6f 6e 64 20 77 68 61 74 20 69 73 20 61 76 61 69 6c 61 62 | knowledge.beyond.what.is.availab |
| d040 | 6c 65 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 20 2d 2d 20 66 6f 72 20 69 6e 73 74 61 6e 63 | le.out.of.the.box.--.for.instanc |
| d060 | 65 2c 20 79 6f 75 20 63 61 6e 20 67 65 74 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 6f 6e 74 72 6f | e,.you.can.get.the.LLM.to.contro |
| d080 | 6c 20 79 6f 75 72 20 45 6d 61 63 73 20 66 72 61 6d 65 2c 20 63 72 65 61 74 65 20 6f 72 20 6d 6f | l.your.Emacs.frame,.create.or.mo |
| d0a0 | 64 69 66 79 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 6f 72 20 6c | dify.files.and.directories,.or.l |
| d0c0 | 6f 6f 6b 20 75 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 6e 74 20 74 6f 20 79 | ook.up.information.relevant.to.y |
| d0e0 | 6f 75 72 20 72 65 71 75 65 73 74 20 76 69 61 20 77 65 62 20 73 65 61 72 63 68 20 6f 72 20 69 6e | our.request.via.web.search.or.in |
| d100 | 20 61 20 6c 6f 63 61 6c 20 64 61 74 61 62 61 73 65 2e 20 20 48 65 72 65 20 69 73 20 61 20 76 65 | .a.local.database...Here.is.a.ve |
| d120 | 72 79 20 73 69 6d 70 6c 65 20 65 78 61 6d 70 6c 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 | ry.simple.example:..#+html:.<p.a |
| d140 | 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | lign="center">.https://github.co |
| d160 | 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 64 31 66 38 65 32 | m/user-attachments/assets/d1f8e2 |
| d180 | 61 63 2d 36 32 62 62 2d 34 39 62 63 2d 38 35 30 64 2d 30 61 36 37 61 61 30 63 64 34 63 33 0a 23 | ac-62bb-49bc-850d-0a67aa0cd4c3.# |
| d1a0 | 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 54 6f 20 75 73 65 20 74 6f 6f 6c 73 20 69 6e 20 67 70 74 | +html:.</p>..To.use.tools.in.gpt |
| d1c0 | 65 6c 2c 20 79 6f 75 20 6e 65 65 64 0a 2d 20 61 20 6d 6f 64 65 6c 20 74 68 61 74 20 73 75 70 70 | el,.you.need.-.a.model.that.supp |
| d1e0 | 6f 72 74 73 20 74 68 69 73 20 75 73 61 67 65 2e 20 20 41 6c 6c 20 74 68 65 20 66 6c 61 67 73 68 | orts.this.usage...All.the.flagsh |
| d200 | 69 70 20 6d 6f 64 65 6c 73 20 73 75 70 70 6f 72 74 20 74 6f 6f 6c 20 75 73 65 2c 20 61 73 20 64 | ip.models.support.tool.use,.as.d |
| d220 | 6f 20 6d 61 6e 79 20 6f 66 20 74 68 65 20 73 6d 61 6c 6c 65 72 20 6f 70 65 6e 20 6d 6f 64 65 6c | o.many.of.the.smaller.open.model |
| d240 | 73 2e 0a 2d 20 54 6f 6f 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 74 68 61 74 20 67 70 | s..-.Tool.specifications.that.gp |
| d260 | 74 65 6c 20 75 6e 64 65 72 73 74 61 6e 64 73 2e 20 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 | tel.understands...gptel.does.not |
| d280 | 20 63 75 72 72 65 6e 74 6c 79 20 69 6e 63 6c 75 64 65 20 61 6e 79 20 74 6f 6f 6c 73 20 6f 75 74 | .currently.include.any.tools.out |
| d2a0 | 20 6f 66 20 74 68 65 20 62 6f 78 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c | .of.the.box...#+html:.<details>< |
| d2c0 | 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 65 66 69 6e 69 6e 67 20 67 70 74 65 6c 20 74 6f 6f | summary>.****.Defining.gptel.too |
| d2e0 | 6c 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 44 65 66 69 6e 69 6e 67 20 | ls.#+html:.</summary>..Defining. |
| d300 | 61 20 67 70 74 65 6c 20 74 6f 6f 6c 20 72 65 71 75 69 72 65 73 20 61 6e 20 65 6c 69 73 70 20 66 | a.gptel.tool.requires.an.elisp.f |
| d320 | 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 6d 65 74 61 64 61 74 61 2e | unction.and.associated.metadata. |
| d340 | 20 20 48 65 72 65 20 61 72 65 20 74 77 6f 20 73 69 6d 70 6c 65 20 74 6f 6f 6c 20 64 65 66 69 6e | ..Here.are.two.simple.tool.defin |
| d360 | 69 74 69 6f 6e 73 3a 0a 0a 2a 54 6f 20 72 65 61 64 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f | itions:..*To.read.the.contents.o |
| d380 | 66 20 61 6e 20 45 6d 61 63 73 20 62 75 66 66 65 72 2a 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | f.an.Emacs.buffer*:..#+begin_src |
| d3a0 | 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 0a 20 3a 6e | .emacs-lisp.(gptel-make-tool..:n |
| d3c0 | 61 6d 65 20 22 72 65 61 64 5f 62 75 66 66 65 72 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ame."read_buffer"............... |
| d3e0 | 20 20 20 20 20 3b 20 6a 61 76 61 73 63 72 69 70 74 2d 73 74 79 6c 65 20 73 6e 61 6b 65 5f 63 61 | .....;.javascript-style.snake_ca |
| d400 | 73 65 20 6e 61 6d 65 0a 20 3a 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 62 75 66 66 | se.name..:function.(lambda.(buff |
| d420 | 65 72 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 68 65 20 66 75 6e 63 74 | er)..................;.the.funct |
| d440 | 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ion.that.will.run..............( |
| d460 | 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 | unless.(buffer-live-p.(get-buffe |
| d480 | 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 | r.buffer))................(error |
| d4a0 | 20 22 65 72 72 6f 72 3a 20 62 75 66 66 65 72 20 25 73 20 69 73 20 6e 6f 74 20 6c 69 76 65 2e 22 | ."error:.buffer.%s.is.not.live." |
| d4c0 | 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 | .buffer))..............(with-cur |
| d4e0 | 72 65 6e 74 2d 62 75 66 66 65 72 20 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | rent-buffer..buffer............. |
| d500 | 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | ...(buffer-substring-no-properti |
| d520 | 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 3a | es.(point-min).(point-max))))..: |
| d540 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 72 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 | description."return.the.contents |
| d560 | 20 6f 66 20 61 6e 20 65 6d 61 63 73 20 62 75 66 66 65 72 22 0a 20 3a 61 72 67 73 20 28 6c 69 73 | .of.an.emacs.buffer"..:args.(lis |
| d580 | 74 20 27 28 3a 6e 61 6d 65 20 22 62 75 66 66 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.'(:name."buffer".............. |
| d5a0 | 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 3a 74 79 70 | ..:type.string............;.:typ |
| d5c0 | 65 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 0a 20 20 20 20 20 20 20 | e.value.must.be.a.symbol........ |
| d5e0 | 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 74 68 65 20 6e 61 6d 65 20 6f | ........:description."the.name.o |
| d600 | 66 20 74 68 65 20 62 75 66 66 65 72 20 77 68 6f 73 65 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 | f.the.buffer.whose.contents.are. |
| d620 | 74 6f 20 62 65 20 72 65 74 72 69 65 76 65 64 22 29 29 0a 20 3a 63 61 74 65 67 6f 72 79 20 22 65 | to.be.retrieved"))..:category."e |
| d640 | 6d 61 63 73 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 6e 20 | macs").....................;.An. |
| d660 | 61 72 62 69 74 72 61 72 79 20 6c 61 62 65 6c 20 66 6f 72 20 67 72 6f 75 70 69 6e 67 0a 23 2b 65 | arbitrary.label.for.grouping.#+e |
| d680 | 6e 64 5f 73 72 63 0a 0a 42 65 73 69 64 65 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 74 73 | nd_src..Besides.the.function.its |
| d6a0 | 65 6c 66 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 6e 61 6d 65 64 20 6f 72 20 61 6e 6f 6e 79 | elf,.which.can.be.named.or.anony |
| d6c0 | 6d 6f 75 73 20 28 61 73 20 61 62 6f 76 65 29 2c 20 74 68 65 20 74 6f 6f 6c 20 73 70 65 63 69 66 | mous.(as.above),.the.tool.specif |
| d6e0 | 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 20 3d 3a 6e 61 6d 65 3d 2c 20 3d 3a 64 65 | ication.requires.a.=:name=,.=:de |
| d700 | 73 63 72 69 70 74 69 6f 6e 3d 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e | scription=.and.a.list.of.argumen |
| d720 | 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 69 6e 20 3d 3a 61 72 67 73 3d 2e 20 20 45 61 | t.specifications.in.=:args=...Ea |
| d740 | 63 68 20 61 72 67 75 6d 65 6e 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 69 73 20 61 20 70 | ch.argument.specification.is.a.p |
| d760 | 6c 69 73 74 20 77 69 74 68 20 61 74 6c 65 61 73 74 20 74 68 65 20 6b 65 79 73 20 3d 3a 6e 61 6d | list.with.atleast.the.keys.=:nam |
| d780 | 65 3d 2c 20 3d 3a 74 79 70 65 3d 20 61 6e 64 20 3d 3a 64 65 73 63 72 69 70 74 69 6f 6e 3d 2e 0a | e=,.=:type=.and.=:description=.. |
| d7a0 | 0a 2a 54 6f 20 63 72 65 61 74 65 20 61 20 74 65 78 74 20 66 69 6c 65 2a 3a 0a 0a 23 2b 62 65 67 | .*To.create.a.text.file*:..#+beg |
| d7c0 | 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f | in_src.emacs-lisp.(gptel-make-to |
| d7e0 | 6f 6c 0a 20 3a 6e 61 6d 65 20 22 63 72 65 61 74 65 5f 66 69 6c 65 22 20 20 20 20 20 20 20 20 20 | ol..:name."create_file"......... |
| d800 | 20 20 20 20 20 20 20 20 20 20 20 3b 20 6a 61 76 61 73 63 72 69 70 74 2d 73 74 79 6c 65 20 20 73 | ...........;.javascript-style..s |
| d820 | 6e 61 6b 65 5f 63 61 73 65 20 6e 61 6d 65 0a 20 3a 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 | nake_case.name..:function.(lambd |
| d840 | 61 20 28 70 61 74 68 20 66 69 6c 65 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 20 20 20 3b 20 74 68 | a.(path.filename.content)...;.th |
| d860 | 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 75 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 | e.function.that.runs............ |
| d880 | 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 61 74 68 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d | ..(let.((full-path.(expand-file- |
| d8a0 | 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | name.filename.path)))........... |
| d8c0 | 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 | .....(with-temp-buffer.......... |
| d8e0 | 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20 20 20 | ........(insert.content)........ |
| d900 | 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 66 69 6c 65 20 66 75 6c 6c 2d 70 61 74 68 29 | ..........(write-file.full-path) |
| d920 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 72 65 61 74 65 | )................(format."Create |
| d940 | 64 20 66 69 6c 65 20 25 73 20 69 6e 20 25 73 22 20 66 69 6c 65 6e 61 6d 65 20 70 61 74 68 29 29 | d.file.%s.in.%s".filename.path)) |
| d960 | 29 0a 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 72 65 61 74 65 20 61 20 6e 65 77 20 66 69 | )..:description."Create.a.new.fi |
| d980 | 6c 65 20 77 69 74 68 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e 74 65 6e 74 22 0a 20 | le.with.the.specified.content".. |
| d9a0 | 3a 61 72 67 73 20 28 6c 69 73 74 20 27 28 3a 6e 61 6d 65 20 22 70 61 74 68 22 20 20 20 20 20 20 | :args.(list.'(:name."path"...... |
| d9c0 | 20 20 20 20 20 20 20 3b 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 20 73 70 65 63 | .......;.a.list.of.argument.spec |
| d9e0 | 69 66 69 63 61 74 69 6f 6e 73 0a 09 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 0a | ifications.........:type.string. |
| da00 | 09 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 68 65 20 64 69 72 65 63 74 | ........:description."The.direct |
| da20 | 6f 72 79 20 77 68 65 72 65 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 66 69 6c 65 22 29 0a 20 | ory.where.to.create.the.file").. |
| da40 | 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 6e 61 6d 65 20 22 66 69 6c 65 6e 61 6d 65 22 0a 09 | ............'(:name."filename".. |
| da60 | 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 0a 09 20 20 20 20 20 20 20 3a 64 65 73 | .......:type.string.........:des |
| da80 | 63 72 69 70 74 69 6f 6e 20 22 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 69 6c 65 20 74 | cription."The.name.of.the.file.t |
| daa0 | 6f 20 63 72 65 61 74 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 6e 61 6d 65 20 | o.create")..............'(:name. |
| dac0 | 22 63 6f 6e 74 65 6e 74 22 0a 09 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 0a 09 | "content".........:type.string.. |
| dae0 | 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 68 65 20 63 6f 6e 74 65 6e 74 | .......:description."The.content |
| db00 | 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 66 69 6c 65 22 29 29 0a 20 3a 63 61 74 65 67 | .to.write.to.the.file"))..:categ |
| db20 | 6f 72 79 20 22 66 69 6c 65 73 79 73 74 65 6d 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ory."filesystem")............... |
| db40 | 20 3b 20 41 6e 20 61 72 62 69 74 72 61 72 79 20 6c 61 62 65 6c 20 66 6f 72 20 67 72 6f 75 70 69 | .;.An.arbitrary.label.for.groupi |
| db60 | 6e 67 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 57 69 74 68 20 73 6f 6d 65 20 70 72 6f 6d 70 74 69 6e | ng.#+end_src..With.some.promptin |
| db80 | 67 2c 20 79 6f 75 20 63 61 6e 20 67 65 74 20 61 6e 20 4c 4c 4d 20 74 6f 20 77 72 69 74 65 20 74 | g,.you.can.get.an.LLM.to.write.t |
| dba0 | 68 65 73 65 20 74 6f 6f 6c 73 20 66 6f 72 20 79 6f 75 2e 0a 0a 54 6f 6f 6c 73 20 63 61 6e 20 61 | hese.tools.for.you...Tools.can.a |
| dbc0 | 6c 73 6f 20 62 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 75 73 65 20 6f 70 74 69 6f 6e 61 | lso.be.asynchronous,.use.optiona |
| dbe0 | 6c 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 77 69 74 68 20 6d | l.arguments.and.arguments.with.m |
| dc00 | 6f 72 65 20 73 74 72 75 63 74 75 72 65 20 28 65 6e 75 6d 73 2c 20 61 72 72 61 79 73 2c 20 6f 62 | ore.structure.(enums,.arrays,.ob |
| dc20 | 6a 65 63 74 73 20 65 74 63 29 2e 20 20 53 65 65 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f | jects.etc)...See.=gptel-make-too |
| dc40 | 6c 3d 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | l=.for.details...#+html:.</detai |
| dc60 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a | ls>.#+html:.<details><summary>.* |
| dc80 | 2a 2a 2a 20 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 | ***.Selecting.tools.#+html:.</su |
| dca0 | 6d 6d 61 72 79 3e 0a 4f 6e 63 65 20 64 65 66 69 6e 65 64 2c 20 74 6f 6f 6c 73 20 63 61 6e 20 62 | mmary>.Once.defined,.tools.can.b |
| dcc0 | 65 20 73 65 6c 65 63 74 65 64 20 28 67 6c 6f 62 61 6c 6c 79 2c 20 62 75 66 66 65 72 2d 6c 6f 63 | e.selected.(globally,.buffer-loc |
| dce0 | 61 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c | ally.or.for.the.next.request.onl |
| dd00 | 79 29 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 3a 0a | y).from.gptel's.transient.menu:. |
| dd20 | 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 | .#+html:.<img.src="https://githu |
| dd40 | 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 64 | b.com/user-attachments/assets/fd |
| dd60 | 38 37 38 35 39 36 2d 62 33 31 33 2d 34 33 38 35 2d 62 36 37 35 2d 33 64 36 35 34 36 39 30 39 64 | 878596-b313-4385-b675-3d6546909d |
| dd80 | 38 62 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c 74 3d 22 49 6d 61 67 65 20 73 68 | 8b".align="center".alt="Image.sh |
| dda0 | 6f 77 69 6e 67 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e | owing.gptel's.tool.selection.men |
| ddc0 | 75 2e 22 3e 0a 0a 46 72 6f 6d 20 68 65 72 65 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 65 71 | u.">..From.here.you.can.also.req |
| dde0 | 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 6f 72 20 61 6c 6c 20 74 6f 6f 6c 20 63 | uire.confirmation.for.all.tool.c |
| de00 | 61 6c 6c 73 2c 20 61 6e 64 20 64 65 63 69 64 65 20 69 66 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 | alls,.and.decide.if.tool.call.re |
| de20 | 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 | sults.should.be.included.in.the. |
| de40 | 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2e 20 20 53 65 65 20 5b 5b 23 61 64 64 69 74 69 6f 6e 61 6c | LLM.response...See.[[#additional |
| de60 | 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5b 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6e 66 69 | -configuration][Additional.Confi |
| de80 | 67 75 72 61 74 69 6f 6e 5d 5d 20 66 6f 72 20 64 6f 69 6e 67 20 74 68 65 73 65 20 74 68 69 6e 67 | guration]].for.doing.these.thing |
| dea0 | 73 20 76 69 61 20 65 6c 69 73 70 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e | s.via.elisp...#+html:.</details> |
| dec0 | 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a | .#+html:.<details><summary>.**** |
| dee0 | 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 69 6e | .Model.Context.Protocol.(MCP).in |
| df00 | 74 65 67 72 61 74 69 6f 6e 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 54 68 | tegration.#+html:.</summary>..Th |
| df20 | 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 6d 6f 64 65 6c 63 6f 6e 74 65 78 74 70 72 6f 74 6f 63 6f 6c | e.[[https://modelcontextprotocol |
| df40 | 2e 69 6f 2f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 5d 5b 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 | .io/introduction][Model.Context. |
| df60 | 50 72 6f 74 6f 63 6f 6c 5d 5d 20 28 4d 43 50 29 20 69 73 20 61 20 70 72 6f 74 6f 63 6f 6c 20 66 | Protocol]].(MCP).is.a.protocol.f |
| df80 | 6f 72 20 70 72 6f 76 69 64 69 6e 67 20 72 65 73 6f 75 72 63 65 73 20 61 6e 64 20 74 6f 6f 6c 73 | or.providing.resources.and.tools |
| dfa0 | 20 74 6f 20 4c 4c 4d 73 2c 20 61 6e 64 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | .to.LLMs,.and.[[https://github.c |
| dfc0 | 6f 6d 2f 61 70 70 63 79 70 68 65 72 2f 61 77 65 73 6f 6d 65 2d 6d 63 70 2d 73 65 72 76 65 72 73 | om/appcypher/awesome-mcp-servers |
| dfe0 | 5d 5b 6d 61 6e 79 20 4d 43 50 20 73 65 72 76 65 72 73 20 65 78 69 73 74 5d 5d 20 74 68 61 74 20 | ][many.MCP.servers.exist]].that. |
| e000 | 70 72 6f 76 69 64 65 20 4c 4c 4d 20 74 6f 6f 6c 73 20 66 6f 72 20 66 69 6c 65 20 61 63 63 65 73 | provide.LLM.tools.for.file.acces |
| e020 | 73 2c 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 2c 20 41 50 49 20 69 6e 74 | s,.database.connections,.API.int |
| e040 | 65 67 72 61 74 69 6f 6e 73 20 65 74 63 2e 20 20 54 68 65 20 5b 5b 6d 63 70 2e 65 6c 5d 5d 20 70 | egrations.etc...The.[[mcp.el]].p |
| e060 | 61 63 6b 61 67 65 20 66 6f 72 20 45 6d 61 63 73 20 63 61 6e 20 61 63 74 20 61 73 20 61 6e 20 4d | ackage.for.Emacs.can.act.as.an.M |
| e080 | 43 50 20 63 6c 69 65 6e 74 20 61 6e 64 20 6d 61 6e 61 67 65 20 74 68 65 73 65 20 74 6f 6f 6c 20 | CP.client.and.manage.these.tool. |
| e0a0 | 63 61 6c 6c 73 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 6f 20 75 73 65 20 4d 43 50 20 73 65 72 | calls.for.gptel...To.use.MCP.ser |
| e0c0 | 76 65 72 73 20 77 69 74 68 20 67 70 74 65 6c 2c 20 79 6f 75 20 74 68 75 73 20 6e 65 65 64 20 74 | vers.with.gptel,.you.thus.need.t |
| e0e0 | 68 72 65 65 20 70 69 65 63 65 73 3a 0a 0a 31 2e 20 54 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 | hree.pieces:..1..The.[[https://g |
| e100 | 69 74 68 75 62 2e 63 6f 6d 2f 6c 69 7a 71 77 65 72 73 63 6f 74 74 2f 6d 63 70 2e 65 6c 5d 5b 6d | ithub.com/lizqwerscott/mcp.el][m |
| e120 | 63 70 2e 65 6c 5d 5d 20 70 61 63 6b 61 67 65 20 66 6f 72 20 45 6d 61 63 73 2c 20 5b 5b 68 74 74 | cp.el]].package.for.Emacs,.[[htt |
| e140 | 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 6d 63 70 5d 5b 61 76 61 69 6c 61 62 6c 65 20 | ps://melpa.org/#/mcp][available. |
| e160 | 6f 6e 20 4d 45 4c 50 41 5d 5d 2e 0a 32 2e 20 4d 43 50 20 73 65 72 76 65 72 73 20 63 6f 6e 66 69 | on.MELPA]]..2..MCP.servers.confi |
| e180 | 67 75 72 65 64 20 66 6f 72 20 61 6e 64 20 72 75 6e 6e 69 6e 67 20 76 69 61 20 6d 63 70 2e 65 6c | gured.for.and.running.via.mcp.el |
| e1a0 | 2e 0a 33 2e 20 67 70 74 65 6c 20 61 6e 64 20 61 63 63 65 73 73 20 74 6f 20 61 6e 20 4c 4c 4d 0a | ..3..gptel.and.access.to.an.LLM. |
| e1c0 | 0a 67 70 74 65 6c 20 69 6e 63 6c 75 64 65 73 20 3d 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 | .gptel.includes.=gptel-integrati |
| e1e0 | 6f 6e 73 3d 2c 20 61 20 73 6d 61 6c 6c 20 6c 69 62 72 61 72 79 20 74 6f 20 6d 61 6b 65 20 74 68 | ons=,.a.small.library.to.make.th |
| e200 | 69 73 20 6d 6f 72 65 20 63 6f 6e 76 65 6e 69 65 6e 74 2e 20 20 54 68 69 73 20 6c 69 62 72 61 72 | is.more.convenient...This.librar |
| e220 | 79 20 69 73 20 6e 6f 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 6f 61 64 65 64 20 62 79 | y.is.not.automatically.loaded.by |
| e240 | 20 67 70 74 65 6c 2c 20 73 6f 20 69 66 20 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20 74 6f 20 | .gptel,.so.if.you.would.like.to. |
| e260 | 75 73 65 20 69 74 20 79 6f 75 20 68 61 76 65 20 74 6f 20 72 65 71 75 69 72 65 20 69 74 3a 0a 0a | use.it.you.have.to.require.it:.. |
| e280 | 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 72 65 71 75 69 72 65 20 | #+begin_src.emacs-lisp.(require. |
| e2a0 | 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | 'gptel-integrations).#+end_src.. |
| e2c0 | 4f 6e 63 65 20 6c 6f 61 64 65 64 2c 20 79 6f 75 20 63 61 6e 20 72 75 6e 20 74 68 65 20 3d 67 70 | Once.loaded,.you.can.run.the.=gp |
| e2e0 | 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 6d 63 70 2d | tel-mcp-connect=.and.=gptel-mcp- |
| e300 | 64 69 73 63 6f 6e 6e 65 63 74 3d 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 72 65 67 69 73 74 65 72 | disconnect=.commands.to.register |
| e320 | 20 61 6e 64 20 75 6e 72 65 67 69 73 74 65 72 20 4d 43 50 2d 70 72 6f 76 69 64 65 64 20 74 6f 6f | .and.unregister.MCP-provided.too |
| e340 | 6c 73 20 69 6e 20 67 70 74 65 6c 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 61 6c 73 6f 20 73 68 | ls.in.gptel...These.will.also.sh |
| e360 | 6f 77 20 75 70 20 69 6e 20 74 68 65 20 74 6f 6f 6c 73 20 6d 65 6e 75 20 69 6e 20 67 70 74 65 6c | ow.up.in.the.tools.menu.in.gptel |
| e380 | 2c 20 61 63 63 65 73 73 65 64 20 76 69 61 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 6d 65 6e 75 3d 20 | ,.accessed.via.=M-x.gptel-menu=. |
| e3a0 | 6f 72 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 3d 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c | or.=M-x.gptel-tools=:..#+html:.< |
| e3c0 | 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 | img.src="https://github.com/user |
| e3e0 | 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 32 63 62 62 66 38 61 30 2d 34 39 63 | -attachments/assets/2cbbf8a0-49c |
| e400 | 37 2d 34 39 61 35 2d 62 61 32 34 2d 35 31 34 61 64 37 65 30 38 37 39 39 22 20 61 6c 69 67 6e 3d | 7-49a5-ba24-514ad7e08799".align= |
| e420 | 22 63 65 6e 74 65 72 22 20 61 6c 74 3d 22 49 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 4d 43 50 20 | "center".alt="Image.showing.MCP. |
| e440 | 74 6f 6f 6c 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 67 70 | tool.registration.commands.in.gp |
| e460 | 74 65 6c 27 73 20 74 6f 6f 6c 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 2e 22 3e 0a 0a 4d 43 | tel's.tool.selection.menu.">..MC |
| e480 | 50 2d 70 72 6f 76 69 64 65 64 20 74 6f 6f 6c 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 61 73 20 | P-provided.tools.can.be.used.as. |
| e4a0 | 6e 6f 72 6d 61 6c 20 77 69 74 68 20 67 70 74 65 6c 2e 20 20 48 65 72 65 20 69 73 20 61 20 73 63 | normal.with.gptel...Here.is.a.sc |
| e4c0 | 72 65 65 6e 63 61 73 74 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 2e 20 20 28 49 6e 20 74 68 | reencast.of.the.process...(In.th |
| e4e0 | 69 73 20 65 78 61 6d 70 6c 65 20 74 68 65 20 22 67 69 74 68 75 62 22 20 4d 43 50 20 73 65 72 76 | is.example.the."github".MCP.serv |
| e500 | 65 72 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 73 65 70 61 72 61 74 65 6c 79 20 75 73 69 6e 67 | er.is.installed.separately.using |
| e520 | 20 6e 70 6d 2e 29 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 | .npm.)..#+html:.<p.align="center |
| e540 | 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 | ">.https://github.com/user-attac |
| e560 | 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 33 65 61 37 61 63 30 2d 61 33 32 32 2d 34 61 35 39 | hments/assets/f3ea7ac0-a322-4a59 |
| e580 | 2d 62 35 62 32 2d 62 33 66 35 39 32 35 35 34 66 38 61 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a | -b5b2-b3f592554f8a.#+html:.</p>. |
| e5a0 | 0a 48 65 72 65 27 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 6e 67 20 74 68 65 73 | .Here's.an.example.of.using.thes |
| e5c0 | 65 20 74 6f 6f 6c 73 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 | e.tools:..#+html:.<p.align="cent |
| e5e0 | 65 72 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 | er">.https://github.com/user-att |
| e600 | 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 62 34 38 61 36 61 32 34 2d 61 31 33 30 2d 34 64 | achments/assets/b48a6a24-a130-4d |
| e620 | 61 37 2d 61 32 65 65 2d 36 65 61 35 36 38 65 31 30 63 38 35 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 | a7-a2ee-6ea568e10c85.#+html:.</p |
| e640 | 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 0a 2a 2a 2a 20 52 65 77 72 | >..#+html:.</details>...***.Rewr |
| e660 | 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 20 66 69 6c 6c 20 69 6e 20 61 20 72 65 67 69 6f | ite,.refactor.or.fill.in.a.regio |
| e680 | 6e 0a 0a 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 20 77 69 74 68 20 61 20 72 65 67 69 6f 6e 20 | n..In.any.buffer:.with.a.region. |
| e6a0 | 73 65 6c 65 63 74 65 64 2c 20 79 6f 75 20 63 61 6e 20 6d 6f 64 69 66 79 20 74 65 78 74 2c 20 72 | selected,.you.can.modify.text,.r |
| e6c0 | 65 77 72 69 74 65 20 70 72 6f 73 65 20 6f 72 20 72 65 66 61 63 74 6f 72 20 63 6f 64 65 20 77 69 | ewrite.prose.or.refactor.code.wi |
| e6e0 | 74 68 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 3d 2e 20 20 45 78 61 6d 70 6c 65 20 77 69 74 | th.=gptel-rewrite=...Example.wit |
| e700 | 68 20 70 72 6f 73 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 | h.prose:..#+html:.<p.align="cent |
| e720 | 65 72 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 | er">.https://github.com/user-att |
| e740 | 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 65 33 62 34 33 36 62 33 2d 39 62 64 65 2d 34 63 | achments/assets/e3b436b3-9bde-4c |
| e760 | 31 66 2d 62 32 63 65 2d 33 66 37 64 66 31 39 38 34 39 33 33 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 | 1f-b2ce-3f7df1984933.#+html:.</p |
| e780 | 3e 0a 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 70 72 65 76 69 65 77 65 64 20 6f 76 65 72 20 | >..The.result.is.previewed.over. |
| e7a0 | 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 2e 20 20 42 79 20 64 65 66 61 75 6c 74 2c 20 | the.original.text...By.default,. |
| e7c0 | 74 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 6f 74 20 6d 6f 64 69 66 69 65 64 2e 0a 0a 50 72 65 | the.buffer.is.not.modified...Pre |
| e7e0 | 73 73 69 6e 67 20 3d 52 45 54 3d 20 6f 72 20 63 6c 69 63 6b 69 6e 67 20 69 6e 20 74 68 65 20 72 | ssing.=RET=.or.clicking.in.the.r |
| e800 | 65 77 72 69 74 74 65 6e 20 72 65 67 69 6f 6e 20 73 68 6f 75 6c 64 20 67 69 76 65 20 79 6f 75 20 | ewritten.region.should.give.you. |
| e820 | 61 20 6c 69 73 74 20 6f 66 20 6f 70 74 69 6f 6e 73 3a 20 79 6f 75 20 63 61 6e 20 2a 69 74 65 72 | a.list.of.options:.you.can.*iter |
| e840 | 61 74 65 2a 20 6f 6e 2c 20 2a 64 69 66 66 2a 2c 20 2a 65 64 69 66 66 2a 2c 20 2a 6d 65 72 67 65 | ate*.on,.*diff*,.*ediff*,.*merge |
| e860 | 2a 20 6f 72 20 2a 61 63 63 65 70 74 2a 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 2e 20 20 | *.or.*accept*.the.replacement... |
| e880 | 45 78 61 6d 70 6c 65 20 77 69 74 68 20 63 6f 64 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 | Example.with.code:..#+html:.<p.a |
| e8a0 | 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | lign="center">.https://github.co |
| e8c0 | 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 34 30 36 37 66 64 | m/user-attachments/assets/4067fd |
| e8e0 | 62 38 2d 38 35 64 33 2d 34 32 36 34 2d 39 62 36 34 2d 64 37 32 37 33 35 33 66 36 38 66 39 0a 23 | b8-85d3-4264-9b64-d727353f68f9.# |
| e900 | 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 2a 41 63 74 69 6e 67 20 6f 6e 20 74 68 65 20 4c 4c 4d 20 | +html:.</p>..*Acting.on.the.LLM. |
| e920 | 72 65 73 70 6f 6e 73 65 2a 3a 0a 0a 49 66 20 79 6f 75 20 77 6f 75 6c 64 20 6c 69 6b 65 20 6f 6e | response*:..If.you.would.like.on |
| e940 | 65 20 6f 66 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 74 6f 20 68 61 70 70 65 6e 20 61 75 74 6f | e.of.these.things.to.happen.auto |
| e960 | 6d 61 74 69 63 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 63 75 73 74 6f 6d 69 7a 65 20 3d 67 70 | matically,.you.can.customize.=gp |
| e980 | 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 3d 2e 0a 0a 54 68 | tel-rewrite-default-action=...Th |
| e9a0 | 65 73 65 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 66 | ese.options.are.also.available.f |
| e9c0 | 72 6f 6d 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 3d 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 | rom.=gptel-rewrite=:..#+html:.<i |
| e9e0 | 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d | mg.src="https://github.com/user- |
| ea00 | 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 35 38 39 37 38 35 62 39 2d 61 61 33 66 | attachments/assets/589785b9-aa3f |
| ea20 | 2d 34 31 34 61 2d 39 38 64 64 2d 64 32 36 62 37 35 30 39 64 65 30 38 22 20 61 6c 69 67 6e 3d 22 | -414a-98dd-d26b7509de08".align=" |
| ea40 | 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 41 6e 64 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 74 68 65 | center"./>..And.you.can.call.the |
| ea60 | 6d 20 64 69 72 65 63 74 6c 79 20 77 68 65 6e 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 69 6e | m.directly.when.the.cursor.is.in |
| ea80 | 20 74 68 65 20 72 65 77 72 69 74 74 65 6e 20 72 65 67 69 6f 6e 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 | .the.rewritten.region:..#+html:. |
| eaa0 | 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 | <img.src="https://github.com/use |
| eac0 | 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 35 62 33 63 61 34 37 2d 65 31 | r-attachments/assets/f5b3ca47-e1 |
| eae0 | 34 36 2d 34 35 66 65 2d 38 35 38 34 2d 66 31 31 30 33 35 66 61 34 64 62 63 22 20 61 6c 69 67 6e | 46-45fe-8584-f11035fa4dbc".align |
| eb00 | 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 2a 2a 2a 20 45 78 74 72 61 20 4f 72 67 20 6d 6f 64 65 | ="center"./>..***.Extra.Org.mode |
| eb20 | 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 0a 0a 67 70 74 65 6c 20 6f 66 66 65 72 73 20 61 20 66 65 | .conveniences..gptel.offers.a.fe |
| eb40 | 77 20 65 78 74 72 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 | w.extra.conveniences.in.Org.mode |
| eb60 | 2e 0a 0a 2a 2a 2a 2a 2a 20 4c 69 6d 69 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f 6e 74 | ...*****.Limit.conversation.cont |
| eb80 | 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 0a 0a 59 6f 75 20 63 61 6e 20 6c | ext.to.an.Org.heading..You.can.l |
| eba0 | 69 6d 69 74 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f 6e 74 65 78 74 20 74 6f | imit.the.conversation.context.to |
| ebc0 | 20 61 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 20 77 69 74 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 | .an.Org.heading.with.the.command |
| ebe0 | 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 3d 2e 0a 0a 28 54 68 69 73 20 73 | .=gptel-org-set-topic=...(This.s |
| ec00 | 65 74 73 20 61 6e 20 4f 72 67 20 70 72 6f 70 65 72 74 79 20 28 3d 47 50 54 45 4c 5f 54 4f 50 49 | ets.an.Org.property.(=GPTEL_TOPI |
| ec20 | 43 3d 29 20 75 6e 64 65 72 20 74 68 65 20 68 65 61 64 69 6e 67 2e 20 20 59 6f 75 20 63 61 6e 20 | C=).under.the.heading...You.can. |
| ec40 | 61 6c 73 6f 20 61 64 64 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 6d 61 6e 75 61 6c 6c 79 20 | also.add.this.property.manually. |
| ec60 | 69 6e 73 74 65 61 64 2e 29 0a 20 20 0a 2a 2a 2a 2a 2a 20 55 73 65 20 62 72 61 6e 63 68 69 6e 67 | instead.)....*****.Use.branching |
| ec80 | 20 63 6f 6e 74 65 78 74 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 28 74 72 65 65 20 6f 66 20 63 6f | .context.in.Org.mode.(tree.of.co |
| eca0 | 6e 76 65 72 73 61 74 69 6f 6e 73 29 0a 0a 59 6f 75 20 63 61 6e 20 68 61 76 65 20 62 72 61 6e 63 | nversations)..You.can.have.branc |
| ecc0 | 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 | hing.conversations.in.Org.mode,. |
| ece0 | 77 68 65 72 65 20 65 61 63 68 20 68 69 65 72 61 72 63 68 69 63 61 6c 20 6f 75 74 6c 69 6e 65 20 | where.each.hierarchical.outline. |
| ed00 | 70 61 74 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 61 20 73 | path.through.the.document.is.a.s |
| ed20 | 65 70 61 72 61 74 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 72 61 6e 63 68 2e 20 20 54 68 | eparate.conversation.branch...Th |
| ed40 | 69 73 20 69 73 20 61 6c 73 6f 20 75 73 65 66 75 6c 20 66 6f 72 20 6c 69 6d 69 74 69 6e 67 20 74 | is.is.also.useful.for.limiting.t |
| ed60 | 68 65 20 63 6f 6e 74 65 78 74 20 73 69 7a 65 20 6f 66 20 65 61 63 68 20 71 75 65 72 79 2e 20 20 | he.context.size.of.each.query... |
| ed80 | 53 65 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e | See.the.variable.=gptel-org-bran |
| eda0 | 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 2e 0a 0a 49 66 20 74 68 69 73 20 76 61 72 69 61 62 6c | ching-context=...If.this.variabl |
| edc0 | 65 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 72 6f 62 61 62 6c | e.is.non-nil,.you.should.probabl |
| ede0 | 79 20 65 64 69 74 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 | y.edit.=gptel-prompt-prefix-alis |
| ee00 | 74 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c | t=.and.=gptel-response-prefix-al |
| ee20 | 69 73 74 3d 20 73 6f 20 74 68 61 74 20 74 68 65 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 73 20 | ist=.so.that.the.prefix.strings. |
| ee40 | 66 6f 72 20 6f 72 67 2d 6d 6f 64 65 20 61 72 65 20 6e 6f 74 20 4f 72 67 20 68 65 61 64 69 6e 67 | for.org-mode.are.not.Org.heading |
| ee60 | 73 2c 20 65 2e 67 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a | s,.e.g...#+begin_src.emacs-lisp. |
| ee80 | 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6f 72 67 2d 6d 6f 64 65 20 67 70 74 | ..(setf.(alist-get.'org-mode.gpt |
| eea0 | 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 40 75 73 65 72 5c 6e | el-prompt-prefix-alist)."@user\n |
| eec0 | 22 29 0a 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6f 72 67 2d 6d 6f 64 65 20 | ")...(setf.(alist-get.'org-mode. |
| eee0 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 40 61 | gptel-response-prefix-alist)."@a |
| ef00 | 73 73 69 73 74 61 6e 74 5c 6e 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 4f 74 68 65 72 77 69 73 | ssistant\n").#+end_src..Otherwis |
| ef20 | 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 72 6f 6d 70 74 20 70 72 65 66 69 78 20 77 69 6c | e,.the.default.prompt.prefix.wil |
| ef40 | 6c 20 6d 61 6b 65 20 73 75 63 63 65 73 73 69 76 65 20 70 72 6f 6d 70 74 73 20 73 69 62 6c 69 6e | l.make.successive.prompts.siblin |
| ef60 | 67 20 68 65 61 64 69 6e 67 73 2c 20 61 6e 64 20 74 68 65 72 65 66 6f 72 65 20 6f 6e 20 64 69 66 | g.headings,.and.therefore.on.dif |
| ef80 | 66 65 72 65 6e 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 72 61 6e 63 68 65 73 2c 20 77 68 | ferent.conversation.branches,.wh |
| efa0 | 69 63 68 20 70 72 6f 62 61 62 6c 79 20 69 73 6e 27 74 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 | ich.probably.isn't.what.you.want |
| efc0 | 2e 0a 0a 4e 6f 74 65 3a 20 75 73 69 6e 67 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 | ...Note:.using.this.option.requi |
| efe0 | 72 65 73 20 4f 72 67 20 39 2e 37 20 6f 72 20 68 69 67 68 65 72 20 74 6f 20 62 65 20 61 76 61 69 | res.Org.9.7.or.higher.to.be.avai |
| f000 | 6c 61 62 6c 65 2e 20 20 54 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | lable...The.[[https://github.com |
| f020 | 2f 75 6c 74 72 6f 6e 6f 7a 6d 2f 61 69 2d 6f 72 67 2d 63 68 61 74 2e 65 6c 5d 5b 61 69 2d 6f 72 | /ultronozm/ai-org-chat.el][ai-or |
| f040 | 67 2d 63 68 61 74 5d 5d 20 70 61 63 6b 61 67 65 20 75 73 65 73 20 67 70 74 65 6c 20 74 6f 20 70 | g-chat]].package.uses.gptel.to.p |
| f060 | 72 6f 76 69 64 65 20 74 68 69 73 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 | rovide.this.branching.conversati |
| f080 | 6f 6e 20 62 65 68 61 76 69 6f 72 20 66 6f 72 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 20 6f | on.behavior.for.older.versions.o |
| f0a0 | 66 20 4f 72 67 2e 0a 20 20 0a 2a 2a 2a 2a 2a 20 53 61 76 65 20 67 70 74 65 6c 20 70 61 72 61 6d | f.Org.....*****.Save.gptel.param |
| f0c0 | 65 74 65 72 73 20 74 6f 20 4f 72 67 20 68 65 61 64 69 6e 67 73 20 28 72 65 70 72 6f 64 75 63 69 | eters.to.Org.headings.(reproduci |
| f0e0 | 62 6c 65 20 63 68 61 74 73 29 0a 0a 59 6f 75 20 63 61 6e 20 64 65 63 6c 61 72 65 20 74 68 65 20 | ble.chats)..You.can.declare.the. |
| f100 | 67 70 74 65 6c 20 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 74 65 6d 70 65 72 61 74 75 72 | gptel.model,.backend,.temperatur |
| f120 | 65 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 61 | e,.system.message.and.other.para |
| f140 | 6d 65 74 65 72 73 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 20 77 69 74 68 20 74 68 | meters.as.Org.properties.with.th |
| f160 | 65 20 63 6f 6d 6d 61 6e 64 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 | e.command.=gptel-org-set-propert |
| f180 | 69 65 73 3d 2e 20 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 20 75 6e 64 65 72 20 74 68 65 20 63 | ies=...gptel.queries.under.the.c |
| f1a0 | 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 68 65 61 64 69 6e 67 20 77 69 6c 6c 20 61 6c 77 61 79 73 | orresponding.heading.will.always |
| f1c0 | 20 75 73 65 20 74 68 65 73 65 20 73 65 74 74 69 6e 67 73 2c 20 61 6c 6c 6f 77 69 6e 67 20 79 6f | .use.these.settings,.allowing.yo |
| f1e0 | 75 20 74 6f 20 63 72 65 61 74 65 20 6d 6f 73 74 6c 79 20 72 65 70 72 6f 64 75 63 69 62 6c 65 20 | u.to.create.mostly.reproducible. |
| f200 | 4c 4c 4d 20 63 68 61 74 20 6e 6f 74 65 62 6f 6f 6b 73 2c 20 61 6e 64 20 74 6f 20 68 61 76 65 20 | LLM.chat.notebooks,.and.to.have. |
| f220 | 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 63 68 61 74 73 20 77 69 74 68 20 64 69 66 66 65 72 65 6e | simultaneous.chats.with.differen |
| f240 | 74 20 6d 6f 64 65 6c 73 2c 20 6d 6f 64 65 6c 20 73 65 74 74 69 6e 67 73 20 61 6e 64 20 64 69 72 | t.models,.model.settings.and.dir |
| f260 | 65 63 74 69 76 65 73 20 75 6e 64 65 72 20 64 69 66 66 65 72 65 6e 74 20 4f 72 67 20 68 65 61 64 | ectives.under.different.Org.head |
| f280 | 69 6e 67 73 2e 0a 0a 2a 2a 20 46 41 51 0a 2a 2a 2a 20 43 68 61 74 20 62 75 66 66 65 72 20 55 49 | ings...**.FAQ.***.Chat.buffer.UI |
| f2a0 | 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a | .#+html:.<details><summary>.**** |
| f2c0 | 20 49 20 77 61 6e 74 20 74 68 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 63 72 6f 6c 6c 20 61 75 74 | .I.want.the.window.to.scroll.aut |
| f2e0 | 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e | omatically.as.the.response.is.in |
| f300 | 73 65 72 74 65 64 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 54 6f 20 62 65 | serted.#+html:.</summary>..To.be |
| f320 | 20 6d 69 6e 69 6d 61 6c 6c 79 20 61 6e 6e 6f 79 69 6e 67 2c 20 67 70 74 65 6c 20 64 6f 65 73 20 | .minimally.annoying,.gptel.does. |
| f340 | 6e 6f 74 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 20 62 79 20 64 65 66 61 75 6c 74 2e 20 | not.move.the.cursor.by.default.. |
| f360 | 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 | .Add.the.following.to.your.confi |
| f380 | 67 75 72 61 74 69 6f 6e 20 74 6f 20 65 6e 61 62 6c 65 20 61 75 74 6f 2d 73 63 72 6f 6c 6c 69 6e | guration.to.enable.auto-scrollin |
| f3a0 | 67 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 61 64 64 2d | g...#+begin_src.emacs-lisp.(add- |
| f3c0 | 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 20 27 67 70 | hook.'gptel-post-stream-hook.'gp |
| f3e0 | 74 65 6c 2d 61 75 74 6f 2d 73 63 72 6f 6c 6c 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 | tel-auto-scroll).#+end_src..#+ht |
| f400 | 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e | ml:.</details>.#+html:.<details> |
| f420 | 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 68 65 20 63 75 72 73 6f 72 | <summary>.****.I.want.the.cursor |
| f440 | 20 74 6f 20 6d 6f 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 70 72 6f 6d 70 74 20 61 66 74 65 | .to.move.to.the.next.prompt.afte |
| f460 | 72 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 0a 23 2b 68 74 6d | r.the.response.is.inserted.#+htm |
| f480 | 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 54 6f 20 62 65 20 6d 69 6e 69 6d 61 6c 6c 79 20 61 | l:.</summary>..To.be.minimally.a |
| f4a0 | 6e 6e 6f 79 69 6e 67 2c 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 6d 6f 76 65 20 74 68 65 | nnoying,.gptel.does.not.move.the |
| f4c0 | 20 63 75 72 73 6f 72 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 41 64 64 20 74 68 65 20 66 6f 6c | .cursor.by.default...Add.the.fol |
| f4e0 | 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 | lowing.to.your.configuration.to. |
| f500 | 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d | move.the.cursor:..#+begin_src.em |
| f520 | 61 63 73 2d 6c 69 73 70 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 | acs-lisp.(add-hook.'gptel-post-r |
| f540 | 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 27 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d | esponse-functions.'gptel-end-of- |
| f560 | 72 65 73 70 6f 6e 73 65 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 | response).#+end_src..You.can.als |
| f580 | 6f 20 63 61 6c 6c 20 3d 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 3d 20 61 | o.call.=gptel-end-of-response=.a |
| f5a0 | 73 20 61 20 63 6f 6d 6d 61 6e 64 20 61 74 20 61 6e 79 20 74 69 6d 65 2e 0a 0a 23 2b 68 74 6d 6c | s.a.command.at.any.time...#+html |
| f5c0 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | :.</details>.#+html:.<details><s |
| f5e0 | 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 6f 20 63 68 61 6e 67 65 20 74 68 | ummary>.****.I.want.to.change.th |
| f600 | 65 20 66 6f 72 6d 61 74 74 69 6e 67 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 61 6e 64 20 4c | e.formatting.of.the.prompt.and.L |
| f620 | 4c 4d 20 72 65 73 70 6f 6e 73 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a | LM.response.#+html:.</summary>.. |
| f640 | 46 6f 72 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 73 3a 20 63 75 73 74 | For.dedicated.chat.buffers:.cust |
| f660 | 6f 6d 69 7a 65 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 | omize.=gptel-prompt-prefix-alist |
| f680 | 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 | =.and.=gptel-response-prefix-ali |
| f6a0 | 73 74 3d 2e 20 20 59 6f 75 20 63 61 6e 20 73 65 74 20 61 20 64 69 66 66 65 72 65 6e 74 20 70 61 | st=...You.can.set.a.different.pa |
| f6c0 | 69 72 20 66 6f 72 20 65 61 63 68 20 6d 61 6a 6f 72 2d 6d 6f 64 65 2e 0a 0a 41 6e 79 77 68 65 72 | ir.for.each.major-mode...Anywher |
| f6e0 | 65 20 69 6e 20 45 6d 61 63 73 3a 20 55 73 65 20 3d 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f | e.in.Emacs:.Use.=gptel-pre-respo |
| f700 | 6e 73 65 2d 68 6f 6f 6b 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e | nse-hook=.and.=gptel-post-respon |
| f720 | 73 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 23 2b 68 74 6d | se-functions=,.which.see...#+htm |
| f740 | 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c | l:.</details>.#+html:.<details>< |
| f760 | 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 48 6f 77 20 64 6f 65 73 20 67 70 74 65 6c 20 64 69 73 | summary>.****.How.does.gptel.dis |
| f780 | 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e | tinguish.between.user.prompts.an |
| f7a0 | 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 3f 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | d.LLM.responses?.#+html:.</summa |
| f7c0 | 72 79 3e 0a 0a 67 70 74 65 6c 20 75 73 65 73 20 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e | ry>..gptel.uses.[[https://www.gn |
| f7e0 | 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d 61 63 73 2f 6d 61 6e 75 61 6c 2f 68 74 6d 6c | u.org/software/emacs/manual/html |
| f800 | 5f 6e 6f 64 65 2f 65 6c 69 73 70 2f 54 65 78 74 2d 50 72 6f 70 65 72 74 69 65 73 2e 68 74 6d 6c | _node/elisp/Text-Properties.html |
| f820 | 5d 5b 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 5d 5d 20 74 6f 20 77 61 74 65 72 6d 61 72 6b | ][text-properties]].to.watermark |
| f840 | 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 75 73 20 74 68 69 73 20 74 65 78 74 20 | .LLM.responses...Thus.this.text. |
| f860 | 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 72 65 73 70 6f 6e 73 65 20 65 76 65 | is.interpreted.as.a.response.eve |
| f880 | 6e 20 69 66 20 79 6f 75 20 63 6f 70 79 20 69 74 20 69 6e 74 6f 20 61 6e 6f 74 68 65 72 20 62 75 | n.if.you.copy.it.into.another.bu |
| f8a0 | 66 66 65 72 2e 20 20 49 6e 20 72 65 67 75 6c 61 72 20 62 75 66 66 65 72 73 20 28 62 75 66 66 65 | ffer...In.regular.buffers.(buffe |
| f8c0 | 72 73 20 77 69 74 68 6f 75 74 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 3d 20 65 6e 61 62 6c 65 64 29 | rs.without.=gptel-mode=.enabled) |
| f8e0 | 2c 20 79 6f 75 20 63 61 6e 20 74 75 72 6e 20 6f 66 66 20 74 68 69 73 20 74 72 61 63 6b 69 6e 67 | ,.you.can.turn.off.this.tracking |
| f900 | 20 62 79 20 75 6e 73 65 74 74 69 6e 67 20 3d 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f | .by.unsetting.=gptel-track-respo |
| f920 | 6e 73 65 3d 2e 0a 0a 57 68 65 6e 20 72 65 73 74 6f 72 69 6e 67 20 61 20 63 68 61 74 20 73 74 61 | nse=...When.restoring.a.chat.sta |
| f940 | 74 65 20 66 72 6f 6d 20 61 20 66 69 6c 65 20 6f 6e 20 64 69 73 6b 2c 20 67 70 74 65 6c 20 77 69 | te.from.a.file.on.disk,.gptel.wi |
| f960 | 6c 6c 20 61 70 70 6c 79 20 74 68 65 73 65 20 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 20 73 | ll.apply.these.properties.from.s |
| f980 | 61 76 65 64 20 6d 65 74 61 64 61 74 61 20 69 6e 20 74 68 65 20 66 69 6c 65 20 77 68 65 6e 20 79 | aved.metadata.in.the.file.when.y |
| f9a0 | 6f 75 20 74 75 72 6e 20 6f 6e 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 3d 2e 0a 0a 67 70 74 65 6c 20 | ou.turn.on.=gptel-mode=...gptel. |
| f9c0 | 64 6f 65 73 20 2f 6e 6f 74 2f 20 75 73 65 20 61 6e 79 20 70 72 65 66 69 78 20 6f 72 20 73 65 6d | does./not/.use.any.prefix.or.sem |
| f9e0 | 61 6e 74 69 63 2f 73 79 6e 74 61 78 20 65 6c 65 6d 65 6e 74 20 69 6e 20 74 68 65 20 62 75 66 66 | antic/syntax.element.in.the.buff |
| fa00 | 65 72 20 28 73 75 63 68 20 61 73 20 68 65 61 64 69 6e 67 73 29 20 74 6f 20 73 65 70 61 72 61 74 | er.(such.as.headings).to.separat |
| fa20 | 65 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 65 20 72 65 | e.prompts.and.responses...The.re |
| fa40 | 61 73 6f 6e 20 66 6f 72 20 74 68 69 73 20 69 73 20 74 68 61 74 20 67 70 74 65 6c 20 61 69 6d 73 | ason.for.this.is.that.gptel.aims |
| fa60 | 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 61 73 20 73 65 61 6d 6c 65 73 73 6c 79 20 61 73 20 70 | .to.integrate.as.seamlessly.as.p |
| fa80 | 6f 73 73 69 62 6c 65 20 69 6e 74 6f 20 79 6f 75 72 20 72 65 67 75 6c 61 72 20 45 6d 61 63 73 20 | ossible.into.your.regular.Emacs. |
| faa0 | 75 73 61 67 65 3a 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 74 68 | usage:.LLM.interaction.is.not.th |
| fac0 | 65 20 6f 62 6a 65 63 74 69 76 65 2c 20 69 74 27 73 20 6a 75 73 74 20 61 6e 6f 74 68 65 72 20 74 | e.objective,.it's.just.another.t |
| fae0 | 6f 6f 6c 20 61 74 20 79 6f 75 72 20 64 69 73 70 6f 73 61 6c 2e 20 20 53 6f 20 72 65 71 75 69 72 | ool.at.your.disposal...So.requir |
| fb00 | 69 6e 67 20 61 20 62 75 6e 63 68 20 6f 66 20 22 75 73 65 72 22 20 61 6e 64 20 22 61 73 73 69 73 | ing.a.bunch.of."user".and."assis |
| fb20 | 74 61 6e 74 22 20 74 61 67 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 6f 69 73 | tant".tags.in.the.buffer.is.nois |
| fb40 | 79 20 61 6e 64 20 72 65 73 74 72 69 63 74 69 76 65 2e 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 | y.and.restrictive..If.you.want.t |
| fb60 | 68 65 73 65 20 64 65 6d 61 72 63 61 74 69 6f 6e 73 2c 20 79 6f 75 20 63 61 6e 20 63 75 73 74 6f | hese.demarcations,.you.can.custo |
| fb80 | 6d 69 7a 65 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 3d | mize.=gptel-prompt-prefix-alist= |
| fba0 | 20 61 6e 64 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 | .and.=gptel-response-prefix-alis |
| fbc0 | 74 3d 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 20 70 72 65 66 69 78 65 73 20 61 72 | t=...Note.that.these.prefixes.ar |
| fbe0 | 65 20 66 6f 72 20 79 6f 75 72 20 72 65 61 64 61 62 69 6c 69 74 79 20 6f 6e 6c 79 20 61 6e 64 20 | e.for.your.readability.only.and. |
| fc00 | 70 75 72 65 6c 79 20 63 6f 73 6d 65 74 69 63 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 | purely.cosmetic...#+html:.</deta |
| fc20 | 69 6c 73 3e 0a 2a 2a 2a 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 62 65 68 61 76 69 6f 72 | ils>.***.Transient.menu.behavior |
| fc40 | 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a | .#+html:.<details><summary>.**** |
| fc60 | 20 49 20 77 61 6e 74 20 74 6f 20 73 65 74 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 2c 20 62 75 | .I.want.to.set.gptel.options,.bu |
| fc80 | 74 20 6f 6e 6c 79 20 66 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 0a 3a 50 52 4f 50 45 52 54 49 | t.only.for.this.buffer.:PROPERTI |
| fca0 | 45 53 3a 0a 3a 49 44 3a 20 20 20 20 20 20 20 37 34 38 63 62 63 30 30 2d 30 63 39 32 2d 34 37 30 | ES:.:ID:.......748cbc00-0c92-470 |
| fcc0 | 35 2d 38 38 33 39 2d 36 31 39 62 32 63 38 30 65 35 36 36 0a 3a 45 4e 44 3a 0a 23 2b 68 74 6d 6c | 5-8839-619b2c80e566.:END:.#+html |
| fce0 | 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 49 6e 20 65 76 65 72 79 20 6d 65 6e 75 20 75 73 65 64 | :.</summary>..In.every.menu.used |
| fd00 | 20 74 6f 20 73 65 74 20 6f 70 74 69 6f 6e 73 2c 20 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 | .to.set.options,.gptel.provides. |
| fd20 | 61 20 22 73 63 6f 70 65 22 20 6f 70 74 69 6f 6e 2c 20 62 6f 75 6e 64 20 74 6f 20 74 68 65 20 7e | a."scope".option,.bound.to.the.~ |
| fd40 | 3d 7e 20 6b 65 79 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 | =~.key:..#+html:.<img.src="https |
| fd60 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 | ://github.com/user-attachments/a |
| fd80 | 73 73 65 74 73 2f 66 39 39 30 34 31 33 34 2d 32 39 30 35 2d 34 62 31 64 2d 61 64 33 37 2d 62 36 | ssets/f9904134-2905-4b1d-ad37-b6 |
| fda0 | 34 63 37 37 37 61 66 38 61 63 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 23 | 4c777af8ac".align="center"./>..# |
| fdc0 | 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | +html:.<img.src="https://github. |
| fde0 | 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 63 30 39 35 | com/user-attachments/assets/c095 |
| fe00 | 30 30 33 35 2d 62 66 36 35 2d 34 33 61 65 2d 62 36 34 39 2d 38 65 33 62 36 35 31 63 65 33 66 31 | 0035-bf65-43ae-b649-8e3b651ce3f1 |
| fe20 | 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d | ".align="center"./>..#+html:.<im |
| fe40 | 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 | g.src="https://github.com/user-a |
| fe60 | 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 61 33 62 31 32 34 36 2d 65 30 30 66 2d | ttachments/assets/fa3b1246-e00f- |
| fe80 | 34 63 35 65 2d 38 38 63 37 2d 34 36 35 35 37 62 33 35 30 37 65 66 22 20 61 6c 69 67 6e 3d 22 63 | 4c5e-88c7-46557b3507ef".align="c |
| fea0 | 65 6e 74 65 72 22 20 2f 3e 0a 0a 59 6f 75 20 63 61 6e 20 66 6c 69 70 20 74 68 69 73 20 73 77 69 | enter"./>..You.can.flip.this.swi |
| fec0 | 74 63 68 20 62 65 66 6f 72 65 20 73 65 74 74 69 6e 67 20 74 68 65 20 6f 70 74 69 6f 6e 20 74 6f | tch.before.setting.the.option.to |
| fee0 | 20 3d 62 75 66 66 65 72 3d 20 6f 72 20 3d 6f 6e 65 73 68 6f 74 3d 2e 20 20 59 6f 75 20 6f 6e 6c | .=buffer=.or.=oneshot=...You.onl |
| ff00 | 79 20 6e 65 65 64 20 74 6f 20 66 6c 69 70 20 74 68 69 73 20 73 77 69 74 63 68 20 6f 6e 63 65 2c | y.need.to.flip.this.switch.once, |
| ff20 | 20 69 74 27 73 20 61 20 70 65 72 73 69 73 74 65 6e 74 20 73 65 74 74 69 6e 67 2e 20 20 3d 62 75 | .it's.a.persistent.setting...=bu |
| ff40 | 66 66 65 72 3d 20 73 65 74 73 20 74 68 65 20 6f 70 74 69 6f 6e 20 62 75 66 66 65 72 2d 6c 6f 63 | ffer=.sets.the.option.buffer-loc |
| ff60 | 61 6c 6c 79 2c 20 3d 6f 6e 65 73 68 6f 74 3d 20 77 69 6c 6c 20 73 65 74 20 69 74 20 66 6f 72 20 | ally,.=oneshot=.will.set.it.for. |
| ff80 | 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 2e 20 20 54 68 | the.next.gptel.request.only...Th |
| ffa0 | 65 20 64 65 66 61 75 6c 74 20 73 63 6f 70 65 20 69 73 20 67 6c 6f 62 61 6c 2e 0a 0a 23 2b 68 74 | e.default.scope.is.global...#+ht |
| ffc0 | 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e | ml:.</details>.#+html:.<details> |
| ffe0 | 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 68 65 20 74 72 61 6e 73 69 | <summary>.****.I.want.the.transi |
| 10000 | 65 6e 74 20 6d 65 6e 75 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 73 61 76 65 64 20 73 6f 20 | ent.menu.options.to.be.saved.so. |
| 10020 | 49 20 6f 6e 6c 79 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 65 6d 20 6f 6e 63 65 0a 23 2b 68 | I.only.need.to.set.them.once.#+h |
| 10040 | 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 41 6e 79 20 6d 6f 64 65 6c 20 6f 70 74 69 6f | tml:.</summary>..Any.model.optio |
| 10060 | 6e 73 20 79 6f 75 20 73 65 74 20 61 72 65 20 73 61 76 65 64 20 61 63 63 6f 72 64 69 6e 67 20 74 | ns.you.set.are.saved.according.t |
| 10080 | 6f 20 74 68 65 20 73 63 6f 70 65 20 28 73 65 65 20 70 72 65 76 69 6f 75 73 20 71 75 65 73 74 69 | o.the.scope.(see.previous.questi |
| 100a0 | 6f 6e 29 2e 20 20 42 75 74 20 74 68 65 20 72 65 64 69 72 65 63 74 69 6f 6e 20 6f 70 74 69 6f 6e | on)...But.the.redirection.option |
| 100c0 | 73 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 61 72 65 20 73 65 74 20 66 6f 72 20 74 68 65 20 6e 65 | s.in.the.menu.are.set.for.the.ne |
| 100e0 | 78 74 20 71 75 65 72 79 20 6f 6e 6c 79 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 | xt.query.only:..#+html:.<img.src |
| 10100 | 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 | ="https://github.com/karthink/gp |
| 10120 | 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 37 35 33 32 2f 32 65 63 63 36 62 65 39 2d 61 61 35 32 | tel/assets/8607532/2ecc6be9-aa52 |
| 10140 | 2d 34 32 38 37 2d 61 37 33 39 2d 62 61 30 36 65 31 33 36 39 65 63 32 22 20 61 6c 74 3d 22 68 74 | -4287-a739-ba06e1369ec2".alt="ht |
| 10160 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f | tps://github.com/karthink/gptel/ |
| 10180 | 61 73 73 65 74 73 2f 38 36 30 37 35 33 32 2f 32 65 63 63 36 62 65 39 2d 61 61 35 32 2d 34 32 38 | assets/8607532/2ecc6be9-aa52-428 |
| 101a0 | 37 2d 61 37 33 39 2d 62 61 30 36 65 31 33 36 39 65 63 32 22 3e 0a 0a 59 6f 75 20 63 61 6e 20 6d | 7-a739-ba06e1369ec2">..You.can.m |
| 101c0 | 61 6b 65 20 74 68 65 6d 20 70 65 72 73 69 73 74 65 6e 74 20 61 63 72 6f 73 73 20 74 68 69 73 20 | ake.them.persistent.across.this. |
| 101e0 | 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 20 62 79 20 70 72 65 73 73 69 6e 67 20 7e 43 2d 78 20 43 | Emacs.session.by.pressing.~C-x.C |
| 10200 | 2d 73 7e 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f | -s~:..#+html:.<img.src="https:// |
| 10220 | 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 | github.com/karthink/gptel/assets |
| 10240 | 2f 38 36 30 37 35 33 32 2f 62 38 62 63 62 36 61 64 2d 63 39 37 34 2d 34 31 65 31 2d 39 33 33 36 | /8607532/b8bcb6ad-c974-41e1-9336 |
| 10260 | 2d 66 64 62 61 30 30 39 38 61 32 66 65 22 20 61 6c 74 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 | -fdba0098a2fe".alt="https://gith |
| 10280 | 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 | ub.com/karthink/gptel/assets/860 |
| 102a0 | 37 35 33 32 2f 62 38 62 63 62 36 61 64 2d 63 39 37 34 2d 34 31 65 31 2d 39 33 33 36 2d 66 64 62 | 7532/b8bcb6ad-c974-41e1-9336-fdb |
| 102c0 | 61 30 30 39 38 61 32 66 65 22 3e 0a 0a 28 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 79 63 6c 65 | a0098a2fe">..(You.can.also.cycle |
| 102e0 | 20 74 68 72 6f 75 67 68 20 70 72 65 73 65 74 73 20 79 6f 75 27 76 65 20 73 61 76 65 64 20 77 69 | .through.presets.you've.saved.wi |
| 10300 | 74 68 20 7e 43 2d 78 20 70 7e 20 61 6e 64 20 7e 43 2d 78 20 6e 7e 2e 29 0a 0a 4e 6f 77 20 74 68 | th.~C-x.p~.and.~C-x.n~.)..Now.th |
| 10320 | 65 73 65 20 77 69 6c 6c 20 62 65 20 65 6e 61 62 6c 65 64 20 77 68 65 6e 65 76 65 72 20 79 6f 75 | ese.will.be.enabled.whenever.you |
| 10340 | 20 73 65 6e 64 20 61 20 71 75 65 72 79 20 66 72 6f 6d 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 | .send.a.query.from.the.transient |
| 10360 | 20 6d 65 6e 75 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 73 65 | .menu...If.you.want.to.use.these |
| 10380 | 20 73 61 76 65 64 20 6f 70 74 69 6f 6e 73 20 77 69 74 68 6f 75 74 20 69 6e 76 6f 6b 69 6e 67 20 | .saved.options.without.invoking. |
| 103a0 | 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2c 20 79 6f 75 20 63 61 6e 20 75 73 65 20 | the.transient.menu,.you.can.use. |
| 103c0 | 61 20 6b 65 79 62 6f 61 72 64 20 6d 61 63 72 6f 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 | a.keyboard.macro:..#+begin_src.e |
| 103e0 | 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 52 65 70 6c 61 63 65 20 77 69 74 68 20 79 6f 75 72 20 6b | macs-lisp.;;.Replace.with.your.k |
| 10400 | 65 79 20 74 6f 20 69 6e 76 6f 6b 65 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 3a | ey.to.invoke.the.transient.menu: |
| 10420 | 0a 28 6b 65 79 6d 61 70 2d 67 6c 6f 62 61 6c 2d 73 65 74 20 22 3c 66 36 3e 22 20 22 43 2d 75 20 | .(keymap-global-set."<f6>"."C-u. |
| 10440 | 43 2d 63 20 3c 72 65 74 75 72 6e 3e 20 3c 72 65 74 75 72 6e 3e 22 29 0a 23 2b 65 6e 64 5f 73 72 | C-c.<return>.<return>").#+end_sr |
| 10460 | 63 0a 0a 4f 72 20 73 65 65 20 74 68 69 73 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | c..Or.see.this.[[https://github. |
| 10480 | 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 77 69 6b 69 2f 43 6f 6d 6d 6f 6e 6c 79 | com/karthink/gptel/wiki/Commonly |
| 104a0 | 2d 72 65 71 75 65 73 74 65 64 2d 66 65 61 74 75 72 65 73 23 73 61 76 65 2d 74 72 61 6e 73 69 65 | -requested-features#save-transie |
| 104c0 | 6e 74 2d 66 6c 61 67 73 5d 5b 77 69 6b 69 20 65 6e 74 72 79 5d 5d 2e 0a 0a 23 2b 68 74 6d 6c 3a | nt-flags][wiki.entry]]...#+html: |
| 104e0 | 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 | .</details>.#+html:.<details><su |
| 10500 | 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 55 73 69 6e 67 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 | mmary>.****.Using.the.transient. |
| 10520 | 6d 65 6e 75 20 6c 65 61 76 65 73 20 62 65 68 69 6e 64 20 65 78 74 72 61 20 77 69 6e 64 6f 77 73 | menu.leaves.behind.extra.windows |
| 10540 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 49 66 20 75 73 69 6e 67 20 67 70 | .#+html:.</summary>..If.using.gp |
| 10560 | 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 20 63 61 75 73 65 73 20 6e 65 77 | tel's.transient.menus.causes.new |
| 10580 | 2f 65 78 74 72 61 20 77 69 6e 64 6f 77 20 73 70 6c 69 74 73 20 74 6f 20 62 65 20 63 72 65 61 74 | /extra.window.splits.to.be.creat |
| 105a0 | 65 64 2c 20 63 68 65 63 6b 20 79 6f 75 72 20 76 61 6c 75 65 20 6f 66 20 3d 74 72 61 6e 73 69 65 | ed,.check.your.value.of.=transie |
| 105c0 | 6e 74 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 3d 2e 20 20 5b 5b 68 74 | nt-display-buffer-action=...[[ht |
| 105e0 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 74 72 61 6e 73 69 65 6e 74 | tps://github.com/magit/transient |
| 10600 | 2f 64 69 73 63 75 73 73 69 6f 6e 73 2f 33 35 38 5d 5b 53 65 65 20 74 68 69 73 20 64 69 73 63 75 | /discussions/358][See.this.discu |
| 10620 | 73 73 69 6f 6e 5d 5d 20 66 6f 72 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 66 20 79 6f | ssion]].for.more.context...If.yo |
| 10640 | 75 20 61 72 65 20 75 73 69 6e 67 20 48 65 6c 6d 2c 20 73 65 65 20 5b 5b 68 74 74 70 73 3a 2f 2f | u.are.using.Helm,.see.[[https:// |
| 10660 | 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 74 72 61 6e 73 69 65 6e 74 2f 64 69 73 63 75 | github.com/magit/transient/discu |
| 10680 | 73 73 69 6f 6e 73 2f 33 36 31 5d 5b 54 72 61 6e 73 69 65 6e 74 23 33 36 31 5d 5d 2e 0a 0a 49 6e | ssions/361][Transient#361]]...In |
| 106a0 | 20 67 65 6e 65 72 61 6c 2c 20 64 6f 20 6e 6f 74 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 69 73 20 | .general,.do.not.customize.this. |
| 106c0 | 54 72 61 6e 73 69 65 6e 74 20 6f 70 74 69 6f 6e 20 75 6e 6c 65 73 73 20 79 6f 75 20 6b 6e 6f 77 | Transient.option.unless.you.know |
| 106e0 | 20 77 68 61 74 20 79 6f 75 27 72 65 20 64 6f 69 6e 67 21 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 | .what.you're.doing!..#+html:.</d |
| 10700 | 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 | etails>.#+html:.<details><summar |
| 10720 | 79 3e 0a 2a 2a 2a 2a 20 43 61 6e 20 49 20 63 68 61 6e 67 65 20 74 68 65 20 74 72 61 6e 73 69 65 | y>.****.Can.I.change.the.transie |
| 10740 | 6e 74 20 6d 65 6e 75 20 6b 65 79 20 62 69 6e 64 69 6e 67 73 3f 0a 23 2b 68 74 6d 6c 3a 20 3c 2f | nt.menu.key.bindings?.#+html:.</ |
| 10760 | 73 75 6d 6d 61 72 79 3e 0a 0a 59 65 73 2c 20 73 65 65 20 3d 74 72 61 6e 73 69 65 6e 74 2d 73 75 | summary>..Yes,.see.=transient-su |
| 10780 | 66 66 69 78 2d 70 75 74 3d 2e 20 20 54 68 69 73 20 63 68 61 6e 67 65 73 20 74 68 65 20 6b 65 79 | ffix-put=...This.changes.the.key |
| 107a0 | 20 74 6f 20 73 65 6c 65 63 74 20 61 20 62 61 63 6b 65 6e 64 2f 6d 6f 64 65 6c 20 66 72 6f 6d 20 | .to.select.a.backend/model.from. |
| 107c0 | 22 2d 6d 22 20 74 6f 20 22 4d 22 20 69 6e 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 3a 0a 23 2b 62 | "-m".to."M".in.gptel's.menu:.#+b |
| 107e0 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 74 72 61 6e 73 69 65 6e 74 2d 73 | egin_src.emacs-lisp.(transient-s |
| 10800 | 75 66 66 69 78 2d 70 75 74 20 27 67 70 74 65 6c 2d 6d 65 6e 75 20 28 6b 62 64 20 22 2d 6d 22 29 | uffix-put.'gptel-menu.(kbd."-m") |
| 10820 | 20 3a 6b 65 79 20 22 4d 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f | .:key."M").#+end_src..#+html:.</ |
| 10840 | 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 | details>.#+html:.<details><summa |
| 10860 | 72 79 3e 0a 2a 2a 2a 2a 20 28 44 6f 6f 6d 20 45 6d 61 63 73 29 20 53 65 6e 64 69 6e 67 20 61 20 | ry>.****.(Doom.Emacs).Sending.a. |
| 10880 | 71 75 65 72 79 20 66 72 6f 6d 20 74 68 65 20 67 70 74 65 6c 20 6d 65 6e 75 20 66 61 69 6c 73 20 | query.from.the.gptel.menu.fails. |
| 108a0 | 62 65 63 61 75 73 65 20 6f 66 20 61 20 6b 65 79 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 4f | because.of.a.key.conflict.with.O |
| 108c0 | 72 67 20 6d 6f 64 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 44 6f 6f 6d | rg.mode.#+html:.</summary>..Doom |
| 108e0 | 20 62 69 6e 64 73 20 7e 52 45 54 7e 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 74 6f 20 3d 2b 6f 72 | .binds.~RET~.in.Org.mode.to.=+or |
| 10900 | 67 2f 64 77 69 6d 2d 61 74 2d 70 6f 69 6e 74 3d 2c 20 77 68 69 63 68 20 61 70 70 65 61 72 73 20 | g/dwim-at-point=,.which.appears. |
| 10920 | 74 6f 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 | to.conflict.with.gptel's.transie |
| 10940 | 6e 74 20 6d 65 6e 75 20 62 69 6e 64 69 6e 67 73 20 66 6f 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e | nt.menu.bindings.for.some.reason |
| 10960 | 2e 0a 0a 54 77 6f 20 73 6f 6c 75 74 69 6f 6e 73 3a 0a 2d 20 50 72 65 73 73 20 7e 43 2d 6d 7e 20 | ...Two.solutions:.-.Press.~C-m~. |
| 10980 | 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 72 65 74 75 72 6e 20 6b 65 79 2e 0a 2d 20 43 68 61 | instead.of.the.return.key..-.Cha |
| 109a0 | 6e 67 65 20 74 68 65 20 73 65 6e 64 20 6b 65 79 20 66 72 6f 6d 20 72 65 74 75 72 6e 20 74 6f 20 | nge.the.send.key.from.return.to. |
| 109c0 | 61 20 6b 65 79 20 6f 66 20 79 6f 75 72 20 63 68 6f 69 63 65 3a 0a 20 20 23 2b 62 65 67 69 6e 5f | a.key.of.your.choice:...#+begin_ |
| 109e0 | 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 75 66 66 | src.emacs-lisp...(transient-suff |
| 10a00 | 69 78 2d 70 75 74 20 27 67 70 74 65 6c 2d 6d 65 6e 75 20 28 6b 62 64 20 22 52 45 54 22 29 20 3a | ix-put.'gptel-menu.(kbd."RET").: |
| 10a20 | 6b 65 79 20 22 3c 66 38 3e 22 29 0a 20 20 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a | key."<f8>")...#+end_src..#+html: |
| 10a40 | 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 2a 20 4d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 0a 23 2b | .</details>.***.Miscellaneous.#+ |
| 10a60 | 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 | html:.<details><summary>.****.I. |
| 10a80 | 77 61 6e 74 20 74 6f 20 75 73 65 20 67 70 74 65 6c 20 69 6e 20 61 20 77 61 79 20 74 68 61 74 27 | want.to.use.gptel.in.a.way.that' |
| 10aa0 | 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 | s.not.supported.by.=gptel-send=. |
| 10ac0 | 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 6d 65 6e 75 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 | or.the.options.menu.#+html:.</su |
| 10ae0 | 6d 6d 61 72 79 3e 0a 0a 67 70 74 65 6c 27 73 20 64 65 66 61 75 6c 74 20 75 73 61 67 65 20 70 61 | mmary>..gptel's.default.usage.pa |
| 10b00 | 74 74 65 72 6e 20 69 73 20 73 69 6d 70 6c 65 2c 20 61 6e 64 20 77 69 6c 6c 20 73 74 61 79 20 74 | ttern.is.simple,.and.will.stay.t |
| 10b20 | 68 69 73 20 77 61 79 3a 20 52 65 61 64 20 69 6e 70 75 74 20 69 6e 20 61 6e 79 20 62 75 66 66 65 | his.way:.Read.input.in.any.buffe |
| 10b40 | 72 20 61 6e 64 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 62 65 6c 6f 77 20 | r.and.insert.the.response.below. |
| 10b60 | 69 74 2e 20 20 53 6f 6d 65 20 63 75 73 74 6f 6d 20 62 65 68 61 76 69 6f 72 20 69 73 20 70 6f 73 | it...Some.custom.behavior.is.pos |
| 10b80 | 73 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 28 3d | sible.with.the.transient.menu.(= |
| 10ba0 | 43 2d 75 20 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 3d 29 2e 0a 0a 46 6f 72 20 6d 6f 72 65 20 | C-u.M-x.gptel-send=)...For.more. |
| 10bc0 | 70 72 6f 67 72 61 6d 6d 61 62 6c 65 20 75 73 61 67 65 2c 20 67 70 74 65 6c 20 70 72 6f 76 69 64 | programmable.usage,.gptel.provid |
| 10be0 | 65 73 20 61 20 67 65 6e 65 72 61 6c 20 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 3d 20 66 75 6e | es.a.general.=gptel-request=.fun |
| 10c00 | 63 74 69 6f 6e 20 74 68 61 74 20 61 63 63 65 70 74 73 20 61 20 63 75 73 74 6f 6d 20 70 72 6f 6d | ction.that.accepts.a.custom.prom |
| 10c20 | 70 74 20 61 6e 64 20 61 20 63 61 6c 6c 62 61 63 6b 20 74 6f 20 61 63 74 20 6f 6e 20 74 68 65 20 | pt.and.a.callback.to.act.on.the. |
| 10c40 | 72 65 73 70 6f 6e 73 65 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 74 6f 20 62 75 | response..You.can.use.this.to.bu |
| 10c60 | 69 6c 64 20 63 75 73 74 6f 6d 20 77 6f 72 6b 66 6c 6f 77 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 | ild.custom.workflows.not.support |
| 10c80 | 65 64 20 62 79 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 | ed.by.=gptel-send=...See.the.doc |
| 10ca0 | 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 3d 2c 20 61 | umentation.of.=gptel-request=,.a |
| 10cc0 | 6e 64 20 74 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 | nd.the.[[https://github.com/kart |
| 10ce0 | 68 69 6e 6b 2f 67 70 74 65 6c 2f 77 69 6b 69 2f 44 65 66 69 6e 69 6e 67 2d 63 75 73 74 6f 6d 2d | hink/gptel/wiki/Defining-custom- |
| 10d00 | 67 70 74 65 6c 2d 63 6f 6d 6d 61 6e 64 73 5d 5b 77 69 6b 69 5d 5d 20 66 6f 72 20 65 78 61 6d 70 | gptel-commands][wiki]].for.examp |
| 10d20 | 6c 65 73 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a | les...#+html:.</details>.#+html: |
| 10d40 | 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 28 43 68 61 74 47 50 | .<details><summary>.****.(ChatGP |
| 10d60 | 54 29 20 49 20 67 65 74 20 74 68 65 20 65 72 72 6f 72 20 22 28 48 54 54 50 2f 32 20 34 32 39 29 | T).I.get.the.error."(HTTP/2.429) |
| 10d80 | 20 59 6f 75 20 65 78 63 65 65 64 65 64 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 71 75 6f 74 61 | .You.exceeded.your.current.quota |
| 10da0 | 22 0a 23 2b 68 74 6d 6c 3a 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 23 2b 62 65 67 69 6e 5f 71 75 6f | ".#+html:</summary>..#+begin_quo |
| 10dc0 | 74 65 0a 28 48 54 54 50 2f 32 20 34 32 39 29 20 59 6f 75 20 65 78 63 65 65 64 65 64 20 79 6f 75 | te.(HTTP/2.429).You.exceeded.you |
| 10de0 | 72 20 63 75 72 72 65 6e 74 20 71 75 6f 74 61 2c 20 70 6c 65 61 73 65 20 63 68 65 63 6b 20 79 6f | r.current.quota,.please.check.yo |
| 10e00 | 75 72 20 70 6c 61 6e 20 61 6e 64 20 62 69 6c 6c 69 6e 67 20 64 65 74 61 69 6c 73 2e 0a 23 2b 65 | ur.plan.and.billing.details..#+e |
| 10e20 | 6e 64 5f 71 75 6f 74 65 0a 0a 55 73 69 6e 67 20 74 68 65 20 43 68 61 74 47 50 54 20 28 6f 72 20 | nd_quote..Using.the.ChatGPT.(or. |
| 10e40 | 61 6e 79 20 4f 70 65 6e 41 49 29 20 41 50 49 20 72 65 71 75 69 72 65 73 20 5b 5b 68 74 74 70 73 | any.OpenAI).API.requires.[[https |
| 10e60 | 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f 61 63 63 6f 75 6e 74 2f 62 | ://platform.openai.com/account/b |
| 10e80 | 69 6c 6c 69 6e 67 2f 6f 76 65 72 76 69 65 77 5d 5b 61 64 64 69 6e 67 20 63 72 65 64 69 74 20 74 | illing/overview][adding.credit.t |
| 10ea0 | 6f 20 79 6f 75 72 20 61 63 63 6f 75 6e 74 5d 5d 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 | o.your.account]]...#+html:.</det |
| 10ec0 | 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e | ails>.#+html:.<details><summary> |
| 10ee0 | 0a 2a 2a 2a 2a 20 57 68 79 20 61 6e 6f 74 68 65 72 20 4c 4c 4d 20 63 6c 69 65 6e 74 3f 0a 23 2b | .****.Why.another.LLM.client?.#+ |
| 10f00 | 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 4f 74 68 65 72 20 45 6d 61 63 73 20 63 6c | html:.</summary>..Other.Emacs.cl |
| 10f20 | 69 65 6e 74 73 20 66 6f 72 20 4c 4c 4d 73 20 70 72 65 73 63 72 69 62 65 20 74 68 65 20 66 6f 72 | ients.for.LLMs.prescribe.the.for |
| 10f40 | 6d 61 74 20 6f 66 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 28 61 20 63 6f 6d 69 6e 74 | mat.of.the.interaction.(a.comint |
| 10f60 | 20 73 68 65 6c 6c 2c 20 6f 72 67 2d 62 61 62 65 6c 20 62 6c 6f 63 6b 73 2c 20 65 74 63 29 2e 20 | .shell,.org-babel.blocks,.etc).. |
| 10f80 | 20 49 20 77 61 6e 74 65 64 3a 0a 0a 31 2e 20 53 6f 6d 65 74 68 69 6e 67 20 74 68 61 74 20 69 73 | .I.wanted:..1..Something.that.is |
| 10fa0 | 20 61 73 20 66 72 65 65 2d 66 6f 72 6d 20 61 73 20 70 6f 73 73 69 62 6c 65 3a 20 71 75 65 72 79 | .as.free-form.as.possible:.query |
| 10fc0 | 20 74 68 65 20 6d 6f 64 65 6c 20 75 73 69 6e 67 20 61 6e 79 20 74 65 78 74 20 69 6e 20 61 6e 79 | .the.model.using.any.text.in.any |
| 10fe0 | 20 62 75 66 66 65 72 2c 20 61 6e 64 20 72 65 64 69 72 65 63 74 20 74 68 65 20 72 65 73 70 6f 6e | .buffer,.and.redirect.the.respon |
| 11000 | 73 65 20 61 73 20 72 65 71 75 69 72 65 64 2e 20 20 55 73 69 6e 67 20 61 20 64 65 64 69 63 61 74 | se.as.required...Using.a.dedicat |
| 11020 | 65 64 20 3d 67 70 74 65 6c 3d 20 62 75 66 66 65 72 20 6a 75 73 74 20 61 64 64 73 20 73 6f 6d 65 | ed.=gptel=.buffer.just.adds.some |
| 11040 | 20 76 69 73 75 61 6c 20 66 6c 61 69 72 20 74 6f 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 6f 6e | .visual.flair.to.the.interaction |
| 11060 | 2e 0a 32 2e 20 49 6e 74 65 67 72 61 74 69 6f 6e 20 77 69 74 68 20 6f 72 67 2d 6d 6f 64 65 2c 20 | ..2..Integration.with.org-mode,. |
| 11080 | 6e 6f 74 20 75 73 69 6e 67 20 61 20 77 61 6c 6c 65 64 2d 6f 66 66 20 6f 72 67 2d 62 61 62 65 6c | not.using.a.walled-off.org-babel |
| 110a0 | 20 62 6c 6f 63 6b 2c 20 62 75 74 20 61 73 20 72 65 67 75 6c 61 72 20 74 65 78 74 2e 20 20 54 68 | .block,.but.as.regular.text...Th |
| 110c0 | 69 73 20 77 61 79 20 74 68 65 20 6d 6f 64 65 6c 20 63 61 6e 20 67 65 6e 65 72 61 74 65 20 63 6f | is.way.the.model.can.generate.co |
| 110e0 | 64 65 20 62 6c 6f 63 6b 73 20 74 68 61 74 20 49 20 63 61 6e 20 72 75 6e 2e 0a 0a 23 2b 68 74 6d | de.blocks.that.I.can.run...#+htm |
| 11100 | 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 2a 2a 20 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6e | l:.</details>..**.Additional.Con |
| 11120 | 66 69 67 75 72 61 74 69 6f 6e 0a 3a 50 52 4f 50 45 52 54 49 45 53 3a 0a 3a 49 44 3a 20 20 20 20 | figuration.:PROPERTIES:.:ID:.... |
| 11140 | 20 20 20 66 38 38 35 61 64 61 63 2d 35 38 61 33 2d 34 65 62 61 2d 61 36 62 37 2d 39 31 65 39 65 | ...f885adac-58a3-4eba-a6b7-91e9e |
| 11160 | 37 61 31 37 38 32 39 0a 3a 45 4e 44 3a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e | 7a17829.:END:.#+html:.</summary> |
| 11180 | 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 20 3a 65 78 70 6f 72 74 | ..#+begin_src.emacs-lisp.:export |
| 111a0 | 73 20 6e 6f 6e 65 20 3a 72 65 73 75 6c 74 73 20 6c 69 73 74 0a 28 6c 65 74 20 28 28 61 6c 6c 29 | s.none.:results.list.(let.((all) |
| 111c0 | 29 0a 20 20 28 6d 61 70 61 74 6f 6d 73 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 29 0a 20 20 20 20 | )...(mapatoms.(lambda.(sym)..... |
| 111e0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 | ..........(when.(and.(string-mat |
| 11200 | 63 68 2d 70 20 22 5e 67 70 74 65 6c 2d 5b 5e 2d 5d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 | ch-p."^gptel-[^-]".(symbol-name. |
| 11220 | 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | sym))..........................( |
| 11240 | 67 65 74 20 73 79 6d 20 27 76 61 72 69 61 62 6c 65 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 29 | get.sym.'variable-documentation) |
| 11260 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 79 6d 20 61 6c 6c 29 | ).................(push.sym.all) |
| 11280 | 29 29 29 0a 20 20 61 6c 6c 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d | )))...all).#+end_src..|--------- |
| 112a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------+------------------ |
| 112c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 112e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 43 6f 6e 6e 65 63 74 69 6f | ------------------|.|.*Connectio |
| 11300 | 6e 20 6f 70 74 69 6f 6e 73 2a 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.options*.|.................... |
| 11320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 11340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ................|.|------------- |
| 11360 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------+---------------------- |
| 11380 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 113a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 | --------------|.|.=gptel-use-cur |
| 113c0 | 6c 3d 20 20 20 20 20 7c 20 55 73 65 20 43 75 72 6c 20 28 64 65 66 61 75 6c 74 29 2c 20 66 61 6c | l=.....|.Use.Curl.(default),.fal |
| 113e0 | 6c 62 61 63 6b 20 74 6f 20 45 6d 61 63 73 27 20 62 75 69 6c 74 2d 69 6e 20 3d 75 72 6c 3d 2e 20 | lback.to.Emacs'.built-in.=url=.. |
| 11400 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 6f 78 79 3d 20 20 20 | ............|.|.=gptel-proxy=... |
| 11420 | 20 20 20 20 20 7c 20 50 72 6f 78 79 20 73 65 72 76 65 72 20 66 6f 72 20 72 65 71 75 65 73 74 73 | .....|.Proxy.server.for.requests |
| 11440 | 2c 20 70 61 73 73 65 64 20 74 6f 20 63 75 72 6c 20 76 69 61 20 3d 2d 2d 70 72 6f 78 79 3d 2e 20 | ,.passed.to.curl.via.=--proxy=.. |
| 11460 | 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 20 20 | ..........|.|.=gptel-api-key=... |
| 11480 | 20 20 20 7c 20 56 61 72 69 61 62 6c 65 2f 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 | ...|.Variable/function.that.retu |
| 114a0 | 72 6e 73 20 74 68 65 20 41 50 49 20 6b 65 79 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 | rns.the.API.key.for.the.active.b |
| 114c0 | 61 63 6b 65 6e 64 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ackend..|.|--------------------- |
| 114e0 | 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -+------------------------------ |
| 11500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11520 | 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------|..|---------------------- |
| 11540 | 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -+------------------------------ |
| 11560 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a | ---------------------------|.|.* |
| 11580 | 4c 4c 4d 20 72 65 71 75 65 73 74 20 6f 70 74 69 6f 6e 73 2a 20 7c 20 2f 28 4e 6f 74 65 3a 20 6e | LLM.request.options*.|./(Note:.n |
| 115a0 | 6f 74 20 73 75 70 70 6f 72 74 65 64 20 75 6e 69 66 6f 72 6d 6c 79 20 61 63 72 6f 73 73 20 4c 4c | ot.supported.uniformly.across.LL |
| 115c0 | 4d 73 29 2f 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | Ms)/...........|.|-------------- |
| 115e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------+---------------------- |
| 11600 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11620 | 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 20 20 20 20 20 20 20 7c 20 44 | ---|.|.=gptel-backend=.......|.D |
| 11640 | 65 66 61 75 6c 74 20 4c 4c 4d 20 42 61 63 6b 65 6e 64 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 | efault.LLM.Backend.............. |
| 11660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | .......................|.|.=gpte |
| 11680 | 6c 2d 6d 6f 64 65 6c 3d 20 20 20 20 20 20 20 20 20 7c 20 44 65 66 61 75 6c 74 20 6d 6f 64 65 6c | l-model=.........|.Default.model |
| 116a0 | 20 74 6f 20 75 73 65 2c 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 62 61 63 6b 65 6e 64 2e | .to.use,.depends.on.the.backend. |
| 116c0 | 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 73 74 72 65 61 6d 3d 20 20 20 | ...........|.|.=gptel-stream=... |
| 116e0 | 20 20 20 20 20 7c 20 45 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 | .....|.Enable.streaming.response |
| 11700 | 73 2c 20 69 66 20 74 68 65 20 62 61 63 6b 65 6e 64 20 73 75 70 70 6f 72 74 73 20 69 74 2e 20 7c | s,.if.the.backend.supports.it..| |
| 11720 | 0a 7c 20 3d 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 3d 20 20 20 20 7c 20 41 6c 69 73 74 | .|.=gptel-directives=....|.Alist |
| 11740 | 20 6f 66 20 73 79 73 74 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 63 61 6e 20 73 77 69 74 63 | .of.system.directives,.can.switc |
| 11760 | 68 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6d 61 | h.on.the.fly.......|.|.=gptel-ma |
| 11780 | 78 2d 74 6f 6b 65 6e 73 3d 20 20 20 20 7c 20 4d 61 78 69 6d 75 6d 20 74 6f 6b 65 6e 20 63 6f 75 | x-tokens=....|.Maximum.token.cou |
| 117a0 | 6e 74 20 28 69 6e 20 71 75 65 72 79 20 2b 20 72 65 73 70 6f 6e 73 65 29 2e 20 20 20 20 20 20 20 | nt.(in.query.+.response)........ |
| 117c0 | 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 3d 20 20 | .......|.|.=gptel-temperature=.. |
| 117e0 | 20 7c 20 52 61 6e 64 6f 6d 6e 65 73 73 20 69 6e 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 2c 20 | .|.Randomness.in.response.text,. |
| 11800 | 30 20 74 6f 20 32 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d | 0.to.2.....................|.|.= |
| 11820 | 67 70 74 65 6c 2d 63 61 63 68 65 3d 20 20 20 20 20 20 20 20 20 7c 20 43 61 63 68 65 20 70 72 6f | gptel-cache=.........|.Cache.pro |
| 11840 | 6d 70 74 73 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 74 6f 6f 6c 73 20 28 41 | mpts,.system.message.or.tools.(A |
| 11860 | 6e 74 68 72 6f 70 69 63 20 6f 6e 6c 79 29 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 6f | nthropic.only).|.|.=gptel-use-co |
| 11880 | 6e 74 65 78 74 3d 20 20 20 7c 20 48 6f 77 2f 77 68 65 74 68 65 72 20 74 6f 20 69 6e 63 6c 75 64 | ntext=...|.How/whether.to.includ |
| 118a0 | 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 | e.additional.context............ |
| 118c0 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 3d 20 20 20 20 20 7c 20 44 | ...|.|.=gptel-use-tools=.....|.D |
| 118e0 | 69 73 61 62 6c 65 2c 20 61 6c 6c 6f 77 20 6f 72 20 66 6f 72 63 65 20 4c 4c 4d 20 74 6f 6f 6c 2d | isable,.allow.or.force.LLM.tool- |
| 11900 | 75 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | use....................|.|.=gpte |
| 11920 | 6c 2d 74 6f 6f 6c 73 3d 20 20 20 20 20 20 20 20 20 7c 20 4c 69 73 74 20 6f 66 20 74 6f 6f 6c 73 | l-tools=.........|.List.of.tools |
| 11940 | 20 74 6f 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 20 20 20 20 20 20 | .to.include.with.requests....... |
| 11960 | 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...........|.|------------------ |
| 11980 | 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -----+-------------------------- |
| 119a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c | -------------------------------| |
| 119c0 | 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ..|----------------------------- |
| 119e0 | 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --+----------------------------- |
| 11a00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11a20 | 2d 2d 2d 7c 0a 7c 20 2a 43 68 61 74 20 55 49 20 6f 70 74 69 6f 6e 73 2a 20 20 20 20 20 20 20 20 | ---|.|.*Chat.UI.options*........ |
| 11a40 | 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....|.......................... |
| 11a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 11a80 | 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ......|.|----------------------- |
| 11aa0 | 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --------+----------------------- |
| 11ac0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11ae0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 | ---------|.|.=gptel-default-mode |
| 11b00 | 3d 20 20 20 20 20 20 20 20 20 20 7c 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 65 64 69 | =..........|.Major.mode.for.dedi |
| 11b20 | 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 | cated.chat.buffers.............. |
| 11b40 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 | ............|.|.=gptel-prompt-pr |
| 11b60 | 65 66 69 78 2d 61 6c 69 73 74 3d 20 20 20 7c 20 54 65 78 74 20 69 6e 73 65 72 74 65 64 20 62 65 | efix-alist=...|.Text.inserted.be |
| 11b80 | 66 6f 72 65 20 71 75 65 72 69 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fore.queries.................... |
| 11ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e | ...............|.|.=gptel-respon |
| 11bc0 | 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 3d 20 7c 20 54 65 78 74 20 69 6e 73 65 72 74 65 64 | se-prefix-alist=.|.Text.inserted |
| 11be0 | 20 62 65 66 6f 72 65 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .before.responses............... |
| 11c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 74 72 61 | ..................|.|.=gptel-tra |
| 11c20 | 63 6b 2d 72 65 73 70 6f 6e 73 65 3d 20 20 20 20 20 20 20 20 7c 20 44 69 73 74 69 6e 67 75 69 73 | ck-response=........|.Distinguis |
| 11c40 | 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 6e 64 20 4c 4c 4d 20 | h.between.user.messages.and.LLM. |
| 11c60 | 72 65 73 70 6f 6e 73 65 73 3f 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d | responses?...........|.|.=gptel- |
| 11c80 | 74 72 61 63 6b 2d 6d 65 64 69 61 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 53 65 6e 64 20 74 65 | track-media=...........|.Send.te |
| 11ca0 | 78 74 2c 20 69 6d 61 67 65 73 20 6f 72 20 6f 74 68 65 72 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c | xt,.images.or.other.media.from.l |
| 11cc0 | 69 6e 6b 73 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 | inks?...................|.|.=gpt |
| 11ce0 | 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 3d 20 20 20 20 7c 20 43 6f 6e 66 | el-confirm-tool-calls=....|.Conf |
| 11d00 | 69 72 6d 20 61 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 | irm.all.tool.calls?............. |
| 11d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d | ...........................|.|.= |
| 11d40 | 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 3d 20 20 7c 20 49 | gptel-include-tool-results=..|.I |
| 11d60 | 6e 63 6c 75 64 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 74 68 65 20 4c 4c 4d 20 72 | nclude.tool.results.in.the.LLM.r |
| 11d80 | 65 73 70 6f 6e 73 65 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a | esponse?......................|. |
| 11da0 | 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 3d 20 20 20 20 20 20 20 | |.=gptel-use-header-line=....... |
| 11dc0 | 7c 20 44 69 73 70 6c 61 79 20 73 74 61 74 75 73 20 6d 65 73 73 61 67 65 73 20 69 6e 20 68 65 61 | |.Display.status.messages.in.hea |
| 11de0 | 64 65 72 2d 6c 69 6e 65 20 28 64 65 66 61 75 6c 74 29 20 6f 72 20 6d 69 6e 69 62 75 66 66 65 72 | der-line.(default).or.minibuffer |
| 11e00 | 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f | .|.|.=gptel-display-buffer-actio |
| 11e20 | 6e 3d 20 7c 20 50 6c 61 63 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 67 70 74 65 6c 20 63 68 61 74 | n=.|.Placement.of.the.gptel.chat |
| 11e40 | 20 62 75 66 66 65 72 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .buffer......................... |
| 11e60 | 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ....|.|------------------------- |
| 11e80 | 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------+------------------------- |
| 11ea0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11ec0 | 2d 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------|..|--------------------- |
| 11ee0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----------+--------------------- |
| 11f00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11f20 | 2d 2d 7c 0a 7c 20 2a 4f 72 67 20 6d 6f 64 65 20 55 49 20 6f 70 74 69 6f 6e 73 2a 20 20 20 20 20 | --|.|.*Org.mode.UI.options*..... |
| 11f40 | 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....|........................... |
| 11f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d | ............................|.|- |
| 11f80 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d | ------------------------------+- |
| 11fa0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 11fc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c | ----------------------|.|.=gptel |
| 11fe0 | 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 20 7c 20 4d 61 6b 65 20 65 | -org-branching-context=.|.Make.e |
| 12000 | 61 63 68 20 6f 75 74 6c 69 6e 65 20 70 61 74 68 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 76 | ach.outline.path.a.separate.conv |
| 12020 | 65 72 73 61 74 69 6f 6e 20 62 72 61 6e 63 68 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 69 | ersation.branch.|.|.=gptel-org-i |
| 12040 | 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 3d 20 20 20 7c 20 49 67 6e 6f 72 65 20 70 61 72 74 73 | gnore-elements=...|.Ignore.parts |
| 12060 | 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 61 20 71 75 | .of.the.buffer.when.sending.a.qu |
| 12080 | 65 72 79 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ery.......|.|------------------- |
| 120a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------------+------------------- |
| 120c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 120e0 | 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----|..|------------------------ |
| 12100 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------------+------------------- |
| 12120 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 12140 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 48 6f 6f 6b 73 20 66 6f 72 20 63 75 73 74 6f 6d 69 | ----------|.|.*Hooks.for.customi |
| 12160 | 7a 61 74 69 6f 6e 2a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | zation*..........|.............. |
| 12180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 121a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...............|.|-------------- |
| 121c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----------------------+--------- |
| 121e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 12200 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 73 | --------------------|.|.=gptel-s |
| 12220 | 61 76 65 2d 73 74 61 74 65 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e | ave-state-hook=............|.Run |
| 12240 | 73 20 62 65 66 6f 72 65 20 73 61 76 69 6e 67 20 74 68 65 20 63 68 61 74 20 73 74 61 74 65 20 74 | s.before.saving.the.chat.state.t |
| 12260 | 6f 20 61 20 66 69 6c 65 20 6f 6e 20 64 69 73 6b 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 | o.a.file.on.disk.........|.|.=gp |
| 12280 | 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 | tel-prompt-transform-functions=. |
| 122a0 | 7c 20 52 75 6e 73 20 69 6e 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 74 6f 20 74 72 61 6e 73 | |.Runs.in.a.temp.buffer.to.trans |
| 122c0 | 66 6f 72 6d 20 74 65 78 74 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 20 20 20 20 20 7c 0a | form.text.before.sending......|. |
| 122e0 | 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 3d 20 20 20 20 20 | |.=gptel-post-request-hook=..... |
| 12300 | 20 20 20 20 20 7c 20 52 75 6e 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 64 69 | .....|.Runs.immediately.after.di |
| 12320 | 73 70 61 74 63 68 69 6e 67 20 61 20 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 3d 2e 20 20 20 20 | spatching.a.=gptel-request=..... |
| 12340 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d | ...|.|.=gptel-pre-response-hook= |
| 12360 | 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 62 65 66 6f 72 65 20 69 6e 73 65 72 74 69 6e | ..........|.Runs.before.insertin |
| 12380 | 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 62 75 66 66 | g.the.LLM.response.into.the.buff |
| 123a0 | 65 72 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 | er......|.|.=gptel-post-response |
| 123c0 | 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 20 69 6e 73 65 | -functions=....|.Runs.after.inse |
| 123e0 | 72 74 69 6e 67 20 74 68 65 20 66 75 6c 6c 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f | rting.the.full.LLM.response.into |
| 12400 | 20 74 68 65 20 62 75 66 66 65 72 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 | .the.buffer..|.|.=gptel-post-str |
| 12420 | 65 61 6d 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 | eam-hook=...........|.Runs.after |
| 12440 | 20 65 61 63 68 20 73 74 72 65 61 6d 69 6e 67 20 69 6e 73 65 72 74 69 6f 6e 20 20 20 20 20 20 20 | .each.streaming.insertion....... |
| 12460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 63 6f 6e | ..................|.|.=gptel-con |
| 12480 | 74 65 78 74 2d 77 72 61 70 2d 66 75 6e 63 74 69 6f 6e 3d 20 20 20 20 20 20 7c 20 54 6f 20 69 6e | text-wrap-function=......|.To.in |
| 124a0 | 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 66 6f 72 6d 61 74 74 | clude.additional.context.formatt |
| 124c0 | 65 64 20 79 6f 75 72 20 77 61 79 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | ed.your.way............|.|.=gpte |
| 124e0 | 6c 2d 72 65 77 72 69 74 65 2d 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 3d 20 20 20 20 20 7c 20 | l-rewrite-default-action=.....|. |
| 12500 | 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69 66 66 2c 20 65 64 69 66 66 2c 20 6d 65 72 67 65 | Automatically.diff,.ediff,.merge |
| 12520 | 20 6f 72 20 72 65 70 6c 61 63 65 20 72 65 66 61 63 74 6f 72 65 64 20 74 65 78 74 20 7c 0a 7c 20 | .or.replace.refactored.text.|.|. |
| 12540 | 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 77 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 20 | =gptel-post-rewrite-functions=.. |
| 12560 | 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 20 61 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | ...|.Runs.after.a.=gptel-rewrite |
| 12580 | 3d 20 72 65 71 75 65 73 74 20 73 75 63 63 65 65 64 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =.request.succeeds.............. |
| 125a0 | 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .|.|---------------------------- |
| 125c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --------+----------------------- |
| 125e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 12600 | 2d 2d 2d 2d 2d 2d 7c 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 2a 2a 2a | ------|..#+html:.</details>..*** |
| 12620 | 20 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 0a 0a 49 66 20 79 6f 75 20 75 73 65 20 73 65 76 65 | .Option.presets..If.you.use.seve |
| 12640 | 72 61 6c 20 4c 4c 4d 73 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 74 61 73 6b 73 20 77 69 74 | ral.LLMs.for.different.tasks.wit |
| 12660 | 68 20 61 63 63 6f 6d 70 61 6e 79 69 6e 67 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 28 69 | h.accompanying.system.prompts.(i |
| 12680 | 6e 73 74 72 75 63 74 69 6f 6e 73 29 20 61 6e 64 20 74 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 61 74 | nstructions).and.tool.configurat |
| 126a0 | 69 6f 6e 73 2c 20 6d 61 6e 75 61 6c 6c 79 20 61 64 6a 75 73 74 69 6e 67 20 3d 67 70 74 65 6c 3d | ions,.manually.adjusting.=gptel= |
| 126c0 | 20 73 65 74 74 69 6e 67 73 20 65 61 63 68 20 74 69 6d 65 20 63 61 6e 20 62 65 63 6f 6d 65 20 74 | .settings.each.time.can.become.t |
| 126e0 | 65 64 69 6f 75 73 2e 20 20 50 72 65 73 65 74 73 20 61 72 65 20 61 20 62 75 6e 64 6c 65 20 6f 66 | edious...Presets.are.a.bundle.of |
| 12700 | 20 67 70 74 65 6c 20 73 65 74 74 69 6e 67 73 20 2d 2d 20 73 75 63 68 20 61 73 20 74 68 65 20 6d | .gptel.settings.--.such.as.the.m |
| 12720 | 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 61 | odel,.backend,.system.message,.a |
| 12740 | 6e 64 20 65 6e 61 62 6c 65 64 20 74 6f 6f 6c 73 20 2d 2d 20 74 68 61 74 20 79 6f 75 20 63 61 6e | nd.enabled.tools.--.that.you.can |
| 12760 | 20 73 77 69 74 63 68 20 74 6f 20 61 74 20 6f 6e 63 65 2e 0a 0a 4f 6e 63 65 20 64 65 66 69 6e 65 | .switch.to.at.once...Once.define |
| 12780 | 64 2c 20 70 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 66 72 6f 6d 20 67 | d,.presets.can.be.applied.from.g |
| 127a0 | 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 | ptel's.transient.menu:..#+html:. |
| 127c0 | 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 | <img.src="https://github.com/use |
| 127e0 | 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 65 30 63 66 36 61 33 32 2d 64 39 | r-attachments/assets/e0cf6a32-d9 |
| 12800 | 39 39 2d 34 31 33 38 2d 38 33 36 39 2d 32 33 35 31 32 66 35 65 39 33 31 31 22 20 61 6c 69 67 6e | 99-4138-8369-23512f5e9311".align |
| 12820 | 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 62 72 3e 0a 0a 54 6f 20 64 65 | ="center"./>.#+html:.<br>..To.de |
| 12840 | 66 69 6e 65 20 61 20 70 72 65 73 65 74 2c 20 75 73 65 20 74 68 65 20 3d 67 70 74 65 6c 2d 6d 61 | fine.a.preset,.use.the.=gptel-ma |
| 12860 | 6b 65 2d 70 72 65 73 65 74 3d 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 74 61 6b 65 73 | ke-preset=.function,.which.takes |
| 12880 | 20 61 20 6e 61 6d 65 20 61 6e 64 20 6b 65 79 77 6f 72 64 2d 76 61 6c 75 65 20 70 61 69 72 73 20 | .a.name.and.keyword-value.pairs. |
| 128a0 | 6f 66 20 73 65 74 74 69 6e 67 73 2e 0a 0a 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 75 73 65 | of.settings...Presets.can.be.use |
| 128c0 | 64 20 74 6f 20 73 65 74 20 69 6e 64 69 76 69 64 75 61 6c 20 6f 70 74 69 6f 6e 73 2e 20 20 48 65 | d.to.set.individual.options...He |
| 128e0 | 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 70 72 65 73 65 74 20 74 6f 20 | re.is.an.example.of.a.preset.to. |
| 12900 | 73 65 74 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 61 6e 64 20 64 6f 20 6e | set.the.system.message.(and.do.n |
| 12920 | 6f 74 68 69 6e 67 20 65 6c 73 65 29 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | othing.else):.#+begin_src.emacs- |
| 12940 | 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 65 78 70 6c 61 69 6e | lisp.(gptel-make-preset.'explain |
| 12960 | 0a 20 20 3a 73 79 73 74 65 6d 20 22 45 78 70 6c 61 69 6e 20 77 68 61 74 20 74 68 69 73 20 63 6f | ...:system."Explain.what.this.co |
| 12980 | 64 65 20 64 6f 65 73 20 74 6f 20 61 20 6e 6f 76 69 63 65 20 70 72 6f 67 72 61 6d 6d 65 72 2e 22 | de.does.to.a.novice.programmer." |
| 129a0 | 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 4d 6f 72 65 20 67 65 6e 65 72 61 6c 6c 79 2c 20 79 6f 75 | ).#+end_src..More.generally,.you |
| 129c0 | 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 20 62 75 6e 64 6c 65 20 6f 66 20 6f 70 74 69 6f 6e 73 | .can.specify.a.bundle.of.options |
| 129e0 | 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d | :.#+begin_src.emacs-lisp.(gptel- |
| 12a00 | 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 67 70 74 34 63 6f 64 69 6e 67 20 20 20 20 20 20 20 20 20 | make-preset.'gpt4coding......... |
| 12a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 72 65 73 65 74 20 6e 61 6d 65 2c 20 61 20 73 79 | ..............;preset.name,.a.sy |
| 12a40 | 6d 62 6f 6c 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 20 70 72 65 73 65 74 20 6f 70 | mbol...:description."A.preset.op |
| 12a60 | 74 69 6d 69 7a 65 64 20 66 6f 72 20 63 6f 64 69 6e 67 20 74 61 73 6b 73 22 20 3b 66 6f 72 20 79 | timized.for.coding.tasks".;for.y |
| 12a80 | 6f 75 72 20 72 65 66 65 72 65 6e 63 65 0a 20 20 3a 62 61 63 6b 65 6e 64 20 22 43 6c 61 75 64 65 | our.reference...:backend."Claude |
| 12aa0 | 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 67 70 74 65 6c 20 62 61 63 | ".....................;gptel.bac |
| 12ac0 | 6b 65 6e 64 20 6f 72 20 62 61 63 6b 65 6e 64 20 6e 61 6d 65 0a 20 20 3a 6d 6f 64 65 6c 20 27 63 | kend.or.backend.name...:model.'c |
| 12ae0 | 6c 61 75 64 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 2e 31 0a 20 20 3a 73 | laude-3-7-sonnet-20250219.1...:s |
| 12b00 | 79 73 74 65 6d 20 22 59 6f 75 20 61 72 65 20 61 6e 20 65 78 70 65 72 74 20 63 6f 64 69 6e 67 20 | ystem."You.are.an.expert.coding. |
| 12b20 | 61 73 73 69 73 74 61 6e 74 2e 20 59 6f 75 72 20 72 6f 6c 65 20 69 73 20 74 6f 20 70 72 6f 76 69 | assistant..Your.role.is.to.provi |
| 12b40 | 64 65 20 68 69 67 68 2d 71 75 61 6c 69 74 79 20 63 6f 64 65 20 73 6f 6c 75 74 69 6f 6e 73 2c 20 | de.high-quality.code.solutions,. |
| 12b60 | 72 65 66 61 63 74 6f 72 69 6e 67 73 2c 20 61 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 2e 22 | refactorings,.and.explanations." |
| 12b80 | 0a 20 20 3a 74 6f 6f 6c 73 20 27 28 22 72 65 61 64 5f 62 75 66 66 65 72 22 20 22 6d 6f 64 69 66 | ...:tools.'("read_buffer"."modif |
| 12ba0 | 79 5f 62 75 66 66 65 72 22 29 29 20 3b 67 70 74 65 6c 20 74 6f 6f 6c 73 20 6f 72 20 74 6f 6f 6c | y_buffer")).;gptel.tools.or.tool |
| 12bc0 | 20 6e 61 6d 65 73 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 42 65 73 69 64 65 73 20 61 20 63 6f 75 70 | .names.#+end_src..Besides.a.coup |
| 12be0 | 6c 65 20 6f 66 20 73 70 65 63 69 61 6c 20 6b 65 79 73 20 28 3d 3a 64 65 73 63 72 69 70 74 69 6f | le.of.special.keys.(=:descriptio |
| 12c00 | 6e 3d 2c 20 3d 3a 70 61 72 65 6e 74 73 3d 20 74 6f 20 69 6e 68 65 72 69 74 20 6f 74 68 65 72 20 | n=,.=:parents=.to.inherit.other. |
| 12c20 | 70 72 65 73 65 74 73 29 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70 72 65 64 65 66 69 6e 65 64 | presets),.there.is.no.predefined |
| 12c40 | 20 6c 69 73 74 20 6f 66 20 6b 65 79 73 2e 20 20 49 6e 73 74 65 61 64 2c 20 74 68 65 20 6b 65 79 | .list.of.keys...Instead,.the.key |
| 12c60 | 20 3d 3a 66 6f 6f 3d 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 73 65 74 74 69 6e 67 20 3d | .=:foo=.corresponds.to.setting.= |
| 12c80 | 67 70 74 65 6c 2d 66 6f 6f 3d 20 28 70 72 65 66 65 72 72 65 64 29 20 6f 72 20 3d 67 70 74 65 6c | gptel-foo=.(preferred).or.=gptel |
| 12ca0 | 2d 2d 66 6f 6f 3d 2e 20 20 53 6f 20 74 68 65 20 70 72 65 73 65 74 20 63 61 6e 20 69 6e 63 6c 75 | --foo=...So.the.preset.can.inclu |
| 12cc0 | 64 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 6e 79 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e | de.the.value.of.any.gptel.option |
| 12ce0 | 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 | ...For.example,.the.following.pr |
| 12d00 | 65 73 65 74 20 73 65 74 73 20 3d 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 3d 20 61 6e | eset.sets.=gptel-temperature=.an |
| 12d20 | 64 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 3d 3a 0a 0a 23 2b 62 65 67 69 6e 5f | d.=gptel-use-context=:..#+begin_ |
| 12d40 | 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 | src.emacs-lisp.(gptel-make-prese |
| 12d60 | 74 20 27 70 72 6f 6f 66 72 65 61 64 65 72 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 | t.'proofreader...:description."P |
| 12d80 | 72 65 73 65 74 20 66 6f 72 20 70 72 6f 6f 66 72 65 61 64 69 6e 67 20 74 61 73 6b 73 22 0a 20 20 | reset.for.proofreading.tasks"... |
| 12da0 | 3a 62 61 63 6b 65 6e 64 20 22 43 68 61 74 47 50 54 22 0a 20 20 3a 6d 6f 64 65 6c 20 27 67 70 74 | :backend."ChatGPT"...:model.'gpt |
| 12dc0 | 2d 34 2e 31 2d 6d 69 6e 69 0a 20 20 3a 74 6f 6f 6c 73 20 27 28 22 72 65 61 64 5f 62 75 66 66 65 | -4.1-mini...:tools.'("read_buffe |
| 12de0 | 72 22 20 22 73 70 65 6c 6c 5f 63 68 65 63 6b 22 20 22 67 72 61 6d 6d 61 72 5f 63 68 65 63 6b 22 | r"."spell_check"."grammar_check" |
| 12e00 | 29 0a 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 30 2e 37 20 20 20 20 20 20 20 20 20 20 20 20 | )...:temperature.0.7............ |
| 12e20 | 20 20 20 20 20 20 20 20 20 20 3b 73 65 74 73 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 | ..........;sets.gptel-temperatur |
| 12e40 | 65 0a 20 20 3a 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 73 79 73 74 65 6d 29 20 20 20 20 20 20 20 | e...:use-context.'system)....... |
| 12e60 | 20 20 20 20 20 20 20 20 20 20 3b 73 65 74 73 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 | ..........;sets.gptel-use-contex |
| 12e80 | 74 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 53 77 69 74 63 68 69 6e 67 20 74 6f 20 61 20 70 72 65 73 | t.#+end_src..Switching.to.a.pres |
| 12ea0 | 65 74 20 61 70 70 6c 69 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 65 74 74 69 6e 67 | et.applies.the.specified.setting |
| 12ec0 | 73 20 77 69 74 68 6f 75 74 20 61 66 66 65 63 74 69 6e 67 20 6f 74 68 65 72 20 73 65 74 74 69 6e | s.without.affecting.other.settin |
| 12ee0 | 67 73 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 63 6f 70 65 20 6f 70 74 69 | gs...Depending.on.the.scope.opti |
| 12f00 | 6f 6e 20 28 7e 3d 7e 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e | on.(~=~.in.gptel's.transient.men |
| 12f20 | 75 29 2c 20 70 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 67 6c 6f 62 61 | u),.presets.can.be.applied.globa |
| 12f40 | 6c 6c 79 2c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e | lly,.buffer-locally.or.for.the.n |
| 12f60 | 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 2e 0a 0a 2a 2a 2a 2a 20 41 70 70 6c 79 69 6e 67 | ext.request.only...****.Applying |
| 12f80 | 20 70 72 65 73 65 74 73 20 74 6f 20 72 65 71 75 65 73 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c | .presets.to.requests.automatical |
| 12fa0 | 6c 79 0a 0a 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 61 20 70 72 65 73 65 74 20 74 6f 20 61 20 | ly..You.can.apply.a.preset.to.a. |
| 12fc0 | 2f 73 69 6e 67 6c 65 2f 20 71 75 65 72 79 20 62 79 20 69 6e 63 6c 75 64 69 6e 67 20 3d 40 70 72 | /single/.query.by.including.=@pr |
| 12fe0 | 65 73 65 74 2d 6e 61 6d 65 3d 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 77 68 65 72 65 20 | eset-name=.in.the.prompt,.where. |
| 13000 | 3d 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 | =preset-name=.is.the.name.of.the |
| 13020 | 20 70 72 65 73 65 74 2e 20 20 28 54 68 65 20 3d 6f 6e 65 73 68 6f 74 3d 20 73 63 6f 70 65 20 6f | .preset...(The.=oneshot=.scope.o |
| 13040 | 70 74 69 6f 6e 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 | ption.in.gptel's.transient.menus |
| 13060 | 20 69 73 20 61 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 73 2c 20 5b 5b 69 64 | .is.another.way.to.do.this,.[[id |
| 13080 | 3a 37 34 38 63 62 63 30 30 2d 30 63 39 32 2d 34 37 30 35 2d 38 38 33 39 2d 36 31 39 62 32 63 38 | :748cbc00-0c92-4705-8839-619b2c8 |
| 130a0 | 30 65 35 36 36 5d 5b 73 65 65 20 74 68 65 20 46 41 51 2e 5d 5d 29 0a 0a 46 6f 72 20 65 78 61 6d | 0e566][see.the.FAQ.]])..For.exam |
| 130c0 | 70 6c 65 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 20 70 72 65 73 65 74 20 6e 61 6d 65 64 20 | ple,.if.you.have.a.preset.named. |
| 130e0 | 3d 77 65 62 73 65 61 72 63 68 3d 20 64 65 66 69 6e 65 64 20 77 68 69 63 68 20 69 6e 63 6c 75 64 | =websearch=.defined.which.includ |
| 13100 | 65 73 20 74 6f 6f 6c 73 20 66 6f 72 20 77 65 62 20 61 63 63 65 73 73 20 61 6e 64 20 73 65 61 72 | es.tools.for.web.access.and.sear |
| 13120 | 63 68 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 | ch:.#+begin_src.emacs-lisp.(gpte |
| 13140 | 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 77 65 62 73 65 61 72 63 68 0a 20 20 3a 64 65 73 63 | l-make-preset.'websearch...:desc |
| 13160 | 72 69 70 74 69 6f 6e 20 20 22 48 61 69 6b 75 20 77 69 74 68 20 62 61 73 69 63 20 77 65 62 20 73 | ription.."Haiku.with.basic.web.s |
| 13180 | 65 61 72 63 68 20 63 61 70 61 62 69 6c 69 74 79 2e 22 0a 20 20 3a 62 61 63 6b 65 6e 64 20 20 20 | earch.capability."...:backend... |
| 131a0 | 20 20 20 22 43 6c 61 75 64 65 22 0a 20 20 3a 6d 6f 64 65 6c 20 20 20 20 20 20 20 20 27 63 6c 61 | ..."Claude"...:model........'cla |
| 131c0 | 75 64 65 2d 33 2d 35 2d 68 61 69 6b 75 2d 32 30 32 34 31 30 32 32 0a 20 20 3a 74 6f 6f 6c 73 20 | ude-3-5-haiku-20241022...:tools. |
| 131e0 | 20 20 20 20 20 20 20 27 28 22 73 65 61 72 63 68 5f 77 65 62 22 20 22 72 65 61 64 5f 75 72 6c 22 | .......'("search_web"."read_url" |
| 13200 | 20 22 67 65 74 5f 79 6f 75 74 75 62 65 5f 6d 65 74 61 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a | ."get_youtube_meta")).#+end_src. |
| 13220 | 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 71 75 65 72 79 20 69 73 20 73 65 6e 74 20 77 69 74 | .The.following.query.is.sent.wit |
| 13240 | 68 20 74 68 69 73 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 3a 0a 0a 23 2b 62 65 67 69 6e 5f | h.this.preset.applied:..#+begin_ |
| 13260 | 71 75 6f 74 65 0a 40 77 65 62 73 65 61 72 63 68 20 41 72 65 20 74 68 65 72 65 20 61 6e 79 20 31 | quote.@websearch.Are.there.any.1 |
| 13280 | 33 22 20 65 2d 69 6e 6b 20 6d 6f 6e 69 74 6f 72 73 20 6f 6e 20 74 68 65 20 6d 61 72 6b 65 74 3f | 3".e-ink.monitors.on.the.market? |
| 132a0 | 20 20 43 72 65 61 74 65 20 61 0a 74 61 62 6c 65 20 63 6f 6d 70 61 72 69 6e 67 20 74 68 65 6d 2c | ..Create.a.table.comparing.them, |
| 132c0 | 20 73 6f 75 72 63 69 6e 67 20 73 70 65 63 73 20 61 6e 64 20 72 65 76 69 65 77 73 20 66 72 6f 6d | .sourcing.specs.and.reviews.from |
| 132e0 | 20 6f 6e 6c 69 6e 65 20 73 6f 75 72 63 65 73 2e 0a 41 6c 73 6f 20 64 6f 20 74 68 65 20 73 61 6d | .online.sources..Also.do.the.sam |
| 13300 | 65 20 66 6f 72 20 22 74 72 61 6e 73 72 65 66 6c 65 63 74 69 76 65 2d 4c 43 44 22 20 64 69 73 70 | e.for."transreflective-LCD".disp |
| 13320 | 6c 61 79 73 20 2d 2d 20 49 27 6d 20 6e 6f 74 20 73 75 72 65 0a 77 68 61 74 20 65 78 61 63 74 6c | lays.--.I'm.not.sure.what.exactl |
| 13340 | 79 20 74 68 65 79 27 72 65 20 63 61 6c 6c 65 64 20 62 75 74 20 74 68 65 79 27 72 65 20 63 6f 6d | y.they're.called.but.they're.com |
| 13360 | 70 61 72 61 62 6c 65 20 74 6f 20 65 2d 69 6e 6b 2e 0a 23 2b 65 6e 64 5f 71 75 6f 74 65 0a 0a 54 | parable.to.e-ink..#+end_quote..T |
| 13380 | 68 69 73 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 63 6f 6f 6b 69 65 20 6f 6e 6c 79 20 61 | his.=@preset-name=.cookie.only.a |
| 133a0 | 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 66 69 6e 61 6c 20 75 73 65 72 20 74 75 72 6e 20 6f 66 | pplies.to.the.final.user.turn.of |
| 133c0 | 20 74 68 65 20 63 6f 76 65 72 73 61 74 69 6f 6e 20 74 68 61 74 20 69 73 20 73 65 6e 74 2e 20 20 | .the.coversation.that.is.sent... |
| 133e0 | 53 6f 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 63 6f 6f 6b 69 65 20 69 6e | So.the.presence.of.the.cookie.in |
| 13400 | 20 70 61 73 74 20 6d 65 73 73 61 67 65 73 2f 74 75 72 6e 73 20 69 73 20 6e 6f 74 20 73 69 67 6e | .past.messages/turns.is.not.sign |
| 13420 | 69 66 69 63 61 6e 74 2e 20 0a 0a 54 68 65 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 63 6f | ificant....The.=@preset-name=.co |
| 13440 | 6f 6b 69 65 20 63 61 6e 20 62 65 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65 20 70 72 6f 6d | okie.can.be.anywhere.in.the.prom |
| 13460 | 70 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 23 2b 62 65 67 69 6e 5f 71 75 6f 74 65 0a | pt...For.example:.#+begin_quote. |
| 13480 | 3c 6c 6f 6e 67 20 70 69 65 63 65 20 6f 66 20 74 65 78 74 3e 0a 0a 57 68 61 74 20 64 6f 20 79 6f | <long.piece.of.text>..What.do.yo |
| 134a0 | 75 20 6d 61 6b 65 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2c | u.make.of.the.above.description, |
| 134c0 | 20 40 70 72 6f 6f 66 72 65 61 64 65 72 3f 0a 23 2b 65 6e 64 5f 71 75 6f 74 65 0a 0a 49 6e 20 63 | .@proofreader?.#+end_quote..In.c |
| 134e0 | 68 61 74 20 62 75 66 66 65 72 73 20 74 68 69 73 20 70 72 65 66 69 78 20 77 69 6c 6c 20 62 65 20 | hat.buffers.this.prefix.will.be. |
| 13500 | 6f 66 66 65 72 65 64 20 61 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 61 6e 64 20 66 6f 6e 74 | offered.as.a.completion.and.font |
| 13520 | 69 66 69 65 64 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f 20 75 73 65 20 61 6e 64 | ified,.making.it.easy.to.use.and |
| 13540 | 20 73 70 6f 74 2e 0a 0a 2a 2a 20 41 6c 74 65 72 6e 61 74 69 76 65 73 0a 0a 4f 74 68 65 72 20 45 | .spot...**.Alternatives..Other.E |
| 13560 | 6d 61 63 73 20 63 6c 69 65 6e 74 73 20 66 6f 72 20 4c 4c 4d 73 20 69 6e 63 6c 75 64 65 0a 0a 2d | macs.clients.for.LLMs.include..- |
| 13580 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 68 79 61 74 74 2f 6c 6c 6d | .[[https://github.com/ahyatt/llm |
| 135a0 | 5d 5b 6c 6c 6d 5d 5d 3a 20 6c 6c 6d 20 70 72 6f 76 69 64 65 73 20 61 20 75 6e 69 66 6f 72 6d 20 | ][llm]]:.llm.provides.a.uniform. |
| 135c0 | 41 50 49 20 61 63 72 6f 73 73 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 70 72 6f 76 69 64 | API.across.language.model.provid |
| 135e0 | 65 72 73 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 20 4c 4c 4d 20 63 6c 69 65 6e 74 73 20 69 6e 20 | ers.for.building.LLM.clients.in. |
| 13600 | 45 6d 61 63 73 2c 20 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20 61 73 20 61 20 6c 69 62 72 | Emacs,.and.is.intended.as.a.libr |
| 13620 | 61 72 79 20 66 6f 72 20 75 73 65 20 62 79 20 70 61 63 6b 61 67 65 20 61 75 74 68 6f 72 73 2e 20 | ary.for.use.by.package.authors.. |
| 13640 | 20 46 6f 72 20 73 69 6d 69 6c 61 72 20 73 63 72 69 70 74 69 6e 67 20 70 75 72 70 6f 73 65 73 2c | .For.similar.scripting.purposes, |
| 13660 | 20 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 3d 67 70 74 | .gptel.provides.the.command.=gpt |
| 13680 | 65 6c 2d 72 65 71 75 65 73 74 3d 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 2d 20 5b 5b 68 74 74 70 | el-request=,.which.see..-.[[http |
| 136a0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 2d 6b 6f 73 74 79 61 65 76 2f 65 6c 6c 61 6d 61 | s://github.com/s-kostyaev/ellama |
| 136c0 | 5d 5b 45 6c 6c 61 6d 61 5d 5d 3a 20 41 20 66 75 6c 6c 2d 66 6c 65 64 67 65 64 20 4c 4c 4d 20 63 | ][Ellama]]:.A.full-fledged.LLM.c |
| 136e0 | 6c 69 65 6e 74 20 62 75 69 6c 74 20 6f 6e 20 6c 6c 6d 2c 20 74 68 61 74 20 73 75 70 70 6f 72 74 | lient.built.on.llm,.that.support |
| 13700 | 73 20 6d 61 6e 79 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 20 28 4f 6c 6c 61 6d 61 2c 20 4f 70 | s.many.LLM.providers.(Ollama,.Op |
| 13720 | 65 6e 20 41 49 2c 20 56 65 72 74 65 78 2c 20 47 50 54 34 41 6c 6c 20 61 6e 64 20 6d 6f 72 65 29 | en.AI,.Vertex,.GPT4All.and.more) |
| 13740 | 2e 20 20 49 74 73 20 75 73 61 67 65 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 20 | ...Its.usage.differs.from.gptel. |
| 13760 | 69 6e 20 74 68 61 74 20 69 74 20 70 72 6f 76 69 64 65 73 20 73 65 70 61 72 61 74 65 20 63 6f 6d | in.that.it.provides.separate.com |
| 13780 | 6d 61 6e 64 73 20 66 6f 72 20 64 6f 7a 65 6e 73 20 6f 66 20 63 6f 6d 6d 6f 6e 20 74 61 73 6b 73 | mands.for.dozens.of.common.tasks |
| 137a0 | 2c 20 6c 69 6b 65 20 67 65 6e 65 72 61 6c 20 63 68 61 74 2c 20 73 75 6d 6d 61 72 69 7a 69 6e 67 | ,.like.general.chat,.summarizing |
| 137c0 | 20 63 6f 64 65 2f 74 65 78 74 2c 20 72 65 66 61 63 74 6f 72 69 6e 67 20 63 6f 64 65 2c 20 69 6d | .code/text,.refactoring.code,.im |
| 137e0 | 70 72 6f 76 69 6e 67 20 67 72 61 6d 6d 61 72 2c 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 61 6e 64 | proving.grammar,.translation.and |
| 13800 | 20 73 6f 20 6f 6e 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 | .so.on..-.[[https://github.com/x |
| 13820 | 65 6e 6f 64 69 75 6d 2f 63 68 61 74 67 70 74 2d 73 68 65 6c 6c 5d 5b 63 68 61 74 67 70 74 2d 73 | enodium/chatgpt-shell][chatgpt-s |
| 13840 | 68 65 6c 6c 5d 5d 3a 20 63 6f 6d 69 6e 74 2d 73 68 65 6c 6c 20 62 61 73 65 64 20 69 6e 74 65 72 | hell]]:.comint-shell.based.inter |
| 13860 | 61 63 74 69 6f 6e 20 77 69 74 68 20 43 68 61 74 47 50 54 2e 20 20 41 6c 73 6f 20 73 75 70 70 6f | action.with.ChatGPT...Also.suppo |
| 13880 | 72 74 73 20 44 41 4c 4c 2d 45 2c 20 65 78 65 63 75 74 61 62 6c 65 20 63 6f 64 65 20 62 6c 6f 63 | rts.DALL-E,.executable.code.bloc |
| 138a0 | 6b 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 73 2c 20 61 6e 64 20 6d 6f 72 65 2e 0a 2d | ks.in.the.responses,.and.more..- |
| 138c0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 6b 73 6d 2f 6f 72 67 2d 61 | .[[https://github.com/rksm/org-a |
| 138e0 | 69 5d 5b 6f 72 67 2d 61 69 5d 5d 3a 20 49 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 | i][org-ai]]:.Interaction.through |
| 13900 | 20 73 70 65 63 69 61 6c 20 3d 23 2b 62 65 67 69 6e 5f 61 69 20 2e 2e 2e 20 23 2b 65 6e 64 5f 61 | .special.=#+begin_ai.....#+end_a |
| 13920 | 69 3d 20 4f 72 67 2d 6d 6f 64 65 20 62 6c 6f 63 6b 73 2e 20 20 41 6c 73 6f 20 73 75 70 70 6f 72 | i=.Org-mode.blocks...Also.suppor |
| 13940 | 74 73 20 44 41 4c 4c 2d 45 2c 20 71 75 65 72 79 69 6e 67 20 43 68 61 74 47 50 54 20 77 69 74 68 | ts.DALL-E,.querying.ChatGPT.with |
| 13960 | 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 2c 20 | .the.contents.of.project.files,. |
| 13980 | 61 6e 64 20 6d 6f 72 65 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | and.more..-.[[https://github.com |
| 139a0 | 2f 6d 69 6c 61 6e 67 6c 61 63 69 65 72 2f 6d 69 6e 75 65 74 2d 61 69 2e 65 6c 5d 5b 4d 69 6e 75 | /milanglacier/minuet-ai.el][Minu |
| 139c0 | 65 74 5d 5d 3a 20 43 6f 64 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20 75 73 69 6e 67 20 4c 4c 4d 2e | et]]:.Code-completion.using.LLM. |
| 139e0 | 20 53 75 70 70 6f 72 74 73 20 66 69 6c 6c 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c 65 20 28 46 49 | .Supports.fill-in-the-middle.(FI |
| 13a00 | 4d 29 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 6c 65 20 6d 6f 64 | M).completion.for.compatible.mod |
| 13a20 | 65 6c 73 20 73 75 63 68 20 61 73 20 44 65 65 70 53 65 65 6b 20 61 6e 64 20 43 6f 64 65 73 74 72 | els.such.as.DeepSeek.and.Codestr |
| 13a40 | 61 6c 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 73 65 76 65 72 61 6c 20 6d 6f 72 65 3a 20 5b 5b 68 | al...There.are.several.more:.[[h |
| 13a60 | 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 69 77 61 68 62 65 2f 63 68 61 74 2e 65 6c | ttps://github.com/iwahbe/chat.el |
| 13a80 | 5d 5b 63 68 61 74 2e 65 6c 5d 5d 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | ][chat.el]],.[[https://github.co |
| 13aa0 | 6d 2f 73 74 75 68 6c 6d 75 65 6c 6c 65 72 2f 67 70 74 2e 65 6c 5d 5b 67 70 74 2e 65 6c 5d 5d 2c | m/stuhlmueller/gpt.el][gpt.el]], |
| 13ac0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 41 6e 73 65 6c 6d 43 2f 6c 65 | .[[https://github.com/AnselmC/le |
| 13ae0 | 2d 67 70 74 2e 65 6c 5d 5b 6c 65 2d 67 70 74 5d 5d 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 | -gpt.el][le-gpt]],.[[https://git |
| 13b00 | 68 75 62 2e 63 6f 6d 2f 73 74 65 76 65 6d 6f 6c 69 74 6f 72 2f 72 6f 62 62 79 5d 5b 72 6f 62 62 | hub.com/stevemolitor/robby][robb |
| 13b20 | 79 5d 5d 2e 0a 0a 2a 2a 2a 20 50 61 63 6b 61 67 65 73 20 75 73 69 6e 67 20 67 70 74 65 6c 0a 0a | y]]...***.Packages.using.gptel.. |
| 13b40 | 67 70 74 65 6c 20 69 73 20 61 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 70 61 63 6b 61 | gptel.is.a.general-purpose.packa |
| 13b60 | 67 65 20 66 6f 72 20 63 68 61 74 20 61 6e 64 20 61 64 2d 68 6f 63 20 4c 4c 4d 20 69 6e 74 65 72 | ge.for.chat.and.ad-hoc.LLM.inter |
| 13b80 | 61 63 74 69 6f 6e 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 | action...The.following.packages. |
| 13ba0 | 75 73 65 20 67 70 74 65 6c 20 74 6f 20 70 72 6f 76 69 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 | use.gptel.to.provide.additional. |
| 13bc0 | 6f 72 20 73 70 65 63 69 61 6c 69 7a 65 64 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 3a 0a 0a 2d | or.specialized.functionality:..- |
| 13be0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 | .[[https://github.com/karthink/g |
| 13c00 | 70 74 65 6c 2d 71 75 69 63 6b 5d 5b 67 70 74 65 6c 2d 71 75 69 63 6b 5d 5d 3a 20 51 75 69 63 6b | ptel-quick][gptel-quick]]:.Quick |
| 13c20 | 6c 79 20 6c 6f 6f 6b 20 75 70 20 74 68 65 20 72 65 67 69 6f 6e 20 6f 72 20 74 65 78 74 20 61 74 | ly.look.up.the.region.or.text.at |
| 13c40 | 20 70 6f 69 6e 74 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 | .point..-.[[https://github.com/d |
| 13c60 | 61 65 64 73 69 64 6f 67 2f 65 76 65 64 65 6c 5d 5b 45 76 65 64 65 6c 5d 5d 3a 20 49 6e 73 74 72 | aedsidog/evedel][Evedel]]:.Instr |
| 13c80 | 75 63 74 65 64 20 4c 4c 4d 20 50 72 6f 67 72 61 6d 6d 65 72 2f 41 73 73 69 73 74 61 6e 74 2e 0a | ucted.LLM.Programmer/Assistant.. |
| 13ca0 | 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 61 6e 63 65 62 65 72 67 | -.[[https://github.com/lanceberg |
| 13cc0 | 65 2f 65 6c 79 73 69 75 6d 5d 5b 45 6c 79 73 69 75 6d 5d 5d 3a 20 41 75 74 6f 6d 61 74 69 63 61 | e/elysium][Elysium]]:.Automatica |
| 13ce0 | 6c 6c 79 20 61 70 70 6c 79 20 41 49 2d 67 65 6e 65 72 61 74 65 64 20 63 68 61 6e 67 65 73 20 61 | lly.apply.AI-generated.changes.a |
| 13d00 | 73 20 79 6f 75 20 63 6f 64 65 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | s.you.code..-.[[https://github.c |
| 13d20 | 6f 6d 2f 6b 61 6d 75 73 68 61 64 65 6e 65 73 2f 61 69 2d 62 6c 6f 67 2e 65 6c 5d 5b 61 69 2d 62 | om/kamushadenes/ai-blog.el][ai-b |
| 13d40 | 6c 6f 67 2e 65 6c 5d 5d 3a 20 53 74 72 65 61 6d 6c 69 6e 65 20 67 65 6e 65 72 61 74 69 6f 6e 20 | log.el]]:.Streamline.generation. |
| 13d60 | 6f 66 20 62 6c 6f 67 20 70 6f 73 74 73 20 69 6e 20 48 75 67 6f 2e 0a 2d 20 5b 5b 68 74 74 70 73 | of.blog.posts.in.Hugo..-.[[https |
| 13d80 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 6f 2f 6d 61 67 69 74 2d 67 70 74 63 6f 6d 6d | ://github.com/douo/magit-gptcomm |
| 13da0 | 69 74 5d 5b 6d 61 67 69 74 2d 67 70 74 63 6f 6d 6d 69 74 5d 5d 3a 20 47 65 6e 65 72 61 74 65 20 | it][magit-gptcommit]]:.Generate. |
| 13dc0 | 43 6f 6d 6d 69 74 20 4d 65 73 73 61 67 65 73 20 77 69 74 68 69 6e 20 6d 61 67 69 74 2d 73 74 61 | Commit.Messages.within.magit-sta |
| 13de0 | 74 75 73 20 42 75 66 66 65 72 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 2d 20 5b 5b 68 74 74 70 | tus.Buffer.using.gptel..-.[[http |
| 13e00 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 72 6d 69 6e 64 61 72 76 69 73 68 2f 63 6f 6e 73 | s://github.com/armindarvish/cons |
| 13e20 | 75 6c 74 2d 6f 6d 6e 69 5d 5b 63 6f 6e 73 75 6c 74 2d 6f 6d 6e 69 5d 5d 3a 20 56 65 72 73 61 74 | ult-omni][consult-omni]]:.Versat |
| 13e40 | 69 6c 65 20 6d 75 6c 74 69 2d 73 6f 75 72 63 65 20 73 65 61 72 63 68 20 70 61 63 6b 61 67 65 2e | ile.multi-source.search.package. |
| 13e60 | 20 20 49 74 20 69 6e 63 6c 75 64 65 73 20 67 70 74 65 6c 20 61 73 20 6f 6e 65 20 6f 66 20 69 74 | ..It.includes.gptel.as.one.of.it |
| 13e80 | 73 20 6d 61 6e 79 20 73 6f 75 72 63 65 73 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 | s.many.sources..-.[[https://gith |
| 13ea0 | 75 62 2e 63 6f 6d 2f 75 6c 74 72 6f 6e 6f 7a 6d 2f 61 69 2d 6f 72 67 2d 63 68 61 74 2e 65 6c 5d | ub.com/ultronozm/ai-org-chat.el] |
| 13ec0 | 5b 61 69 2d 6f 72 67 2d 63 68 61 74 5d 5d 3a 20 50 72 6f 76 69 64 65 73 20 62 72 61 6e 63 68 69 | [ai-org-chat]]:.Provides.branchi |
| 13ee0 | 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 69 6e 20 4f 72 67 20 62 75 66 66 65 72 73 20 | ng.conversations.in.Org.buffers. |
| 13f00 | 75 73 69 6e 67 20 67 70 74 65 6c 2e 20 20 28 4e 6f 74 65 20 74 68 61 74 20 67 70 74 65 6c 20 69 | using.gptel...(Note.that.gptel.i |
| 13f20 | 6e 63 6c 75 64 65 73 20 74 68 69 73 20 66 65 61 74 75 72 65 20 61 73 20 77 65 6c 6c 20 28 73 65 | ncludes.this.feature.as.well.(se |
| 13f40 | 65 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 29 | e.=gptel-org-branching-context=) |
| 13f60 | 2c 20 62 75 74 20 72 65 71 75 69 72 65 73 20 61 20 72 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 20 | ,.but.requires.a.recent.version. |
| 13f80 | 6f 66 20 4f 72 67 20 6d 6f 64 65 20 39 2e 37 20 6f 72 20 6c 61 74 65 72 20 74 6f 20 62 65 20 69 | of.Org.mode.9.7.or.later.to.be.i |
| 13fa0 | 6e 73 74 61 6c 6c 65 64 2e 29 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | nstalled.).-.[[https://github.co |
| 13fc0 | 6d 2f 72 6f 62 31 33 37 2f 43 6f 72 73 61 69 72 5d 5b 43 6f 72 73 61 69 72 5d 5d 3a 20 48 65 6c | m/rob137/Corsair][Corsair]]:.Hel |
| 13fe0 | 70 73 20 67 61 74 68 65 72 20 74 65 78 74 20 74 6f 20 70 6f 70 75 6c 61 74 65 20 4c 4c 4d 20 70 | ps.gather.text.to.populate.LLM.p |
| 14000 | 72 6f 6d 70 74 73 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 2a 2a 20 43 4f 4d 4d 45 4e 54 20 4f 6c | rompts.for.gptel...**.COMMENT.Ol |
| 14020 | 64 65 72 20 42 72 65 61 6b 69 6e 67 20 43 68 61 6e 67 65 73 0a 0a 2d 20 3d 67 70 74 65 6c 2d 70 | der.Breaking.Changes..-.=gptel-p |
| 14040 | 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d 20 68 61 73 20 62 65 65 6e 20 72 65 6e 61 | ost-response-hook=.has.been.rena |
| 14060 | 6d 65 64 20 74 6f 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 | med.to.=gptel-post-response-func |
| 14080 | 74 69 6f 6e 73 3d 2c 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 69 6e 20 74 68 69 73 20 68 6f | tions=,.and.functions.in.this.ho |
| 140a0 | 6f 6b 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d | ok.are.now.called.with.two.argum |
| 140c0 | 65 6e 74 73 3a 20 74 68 65 20 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 62 75 66 66 65 72 20 70 | ents:.the.start.and.end.buffer.p |
| 140e0 | 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 20 20 54 68 69 73 20 | ositions.of.the.response...This. |
| 14100 | 73 68 6f 75 6c 64 20 6d 61 6b 65 20 69 74 20 65 61 73 79 20 74 6f 20 61 63 74 20 6f 6e 20 74 68 | should.make.it.easy.to.act.on.th |
| 14120 | 65 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 77 69 74 68 6f 75 74 20 68 61 76 69 6e 67 20 74 | e.response.text.without.having.t |
| 14140 | 6f 20 6c 6f 63 61 74 65 20 69 74 20 66 69 72 73 74 2e 0a 0a 2d 20 50 6f 73 73 69 62 6c 65 20 62 | o.locate.it.first...-.Possible.b |
| 14160 | 72 65 61 6b 61 67 65 2c 20 73 65 65 20 23 31 32 30 3a 20 49 66 20 73 74 72 65 61 6d 69 6e 67 20 | reakage,.see.#120:.If.streaming. |
| 14180 | 72 65 73 70 6f 6e 73 65 73 20 73 74 6f 70 20 77 6f 72 6b 69 6e 67 20 66 6f 72 20 79 6f 75 20 61 | responses.stop.working.for.you.a |
| 141a0 | 66 74 65 72 20 75 70 67 72 61 64 69 6e 67 20 74 6f 20 76 30 2e 35 2c 20 74 72 79 20 72 65 69 6e | fter.upgrading.to.v0.5,.try.rein |
| 141c0 | 73 74 61 6c 6c 69 6e 67 20 67 70 74 65 6c 20 61 6e 64 20 64 65 6c 65 74 69 6e 67 20 69 74 73 20 | stalling.gptel.and.deleting.its. |
| 141e0 | 6e 61 74 69 76 65 20 63 6f 6d 70 20 65 6c 6e 20 63 61 63 68 65 20 69 6e 20 3d 6e 61 74 69 76 65 | native.comp.eln.cache.in.=native |
| 14200 | 2d 63 6f 6d 70 2d 65 6c 6e 2d 6c 6f 61 64 2d 70 61 74 68 3d 2e 0a 0a 2d 20 54 68 65 20 75 73 65 | -comp-eln-load-path=...-.The.use |
| 14220 | 72 20 6f 70 74 69 6f 6e 20 3d 67 70 74 65 6c 2d 68 6f 73 74 3d 20 69 73 20 64 65 70 72 65 63 61 | r.option.=gptel-host=.is.depreca |
| 14240 | 74 65 64 2e 20 20 49 66 20 74 68 65 20 64 65 66 61 75 6c 74 73 20 64 6f 6e 27 74 20 77 6f 72 6b | ted...If.the.defaults.don't.work |
| 14260 | 20 66 6f 72 20 79 6f 75 2c 20 75 73 65 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 | .for.you,.use.=gptel-make-openai |
| 14280 | 3d 20 28 77 68 69 63 68 20 73 65 65 29 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 73 65 72 76 65 | =.(which.see).to.customize.serve |
| 142a0 | 72 20 73 65 74 74 69 6e 67 73 2e 0a 0a 2d 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 | r.settings...-.=gptel-api-key-fr |
| 142c0 | 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 3d 20 6e 6f 77 20 73 65 61 72 63 68 65 73 20 66 6f 72 | om-auth-source=.now.searches.for |
| 142e0 | 20 74 68 65 20 41 50 49 20 6b 65 79 20 75 73 69 6e 67 20 74 68 65 20 68 6f 73 74 20 61 64 64 72 | .the.API.key.using.the.host.addr |
| 14300 | 65 73 73 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 2c 20 | ess.for.the.active.LLM.backend,. |
| 14320 | 2f 69 2e 65 2e 2f 20 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 22 20 77 68 65 6e 20 75 73 69 | /i.e./."api.openai.com".when.usi |
| 14340 | 6e 67 20 43 68 61 74 47 50 54 2e 20 20 59 6f 75 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 75 70 64 | ng.ChatGPT...You.may.need.to.upd |
| 14360 | 61 74 65 20 79 6f 75 72 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d 2e 0a 0a 2a 2a 20 41 63 6b 6e | ate.your.=~/.authinfo=...**.Ackn |
| 14380 | 6f 77 6c 65 64 67 6d 65 6e 74 73 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | owledgments..-.[[https://github. |
| 143a0 | 63 6f 6d 2f 66 65 6c 69 70 65 6f 63 68 6f 61 5d 5b 46 65 6c 69 70 65 20 4f 63 68 6f 61 5d 5d 20 | com/felipeochoa][Felipe.Ochoa]]. |
| 143c0 | 61 6e 64 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 6b 73 73 72 69 5d | and.[[https://github.com/akssri] |
| 143e0 | 5b 61 6b 73 73 72 69 5d 5d 20 66 6f 72 20 61 64 64 69 6e 67 20 41 57 53 20 42 65 64 72 6f 63 6b | [akssri]].for.adding.AWS.Bedrock |
| 14400 | 20 73 75 70 70 6f 72 74 20 74 6f 20 67 70 74 65 6c 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 | .support.to.gptel..-.[[https://g |
| 14420 | 69 74 68 75 62 2e 63 6f 6d 2f 6a 77 69 65 67 6c 65 79 5d 5b 4a 6f 68 6e 20 57 69 65 67 6c 65 79 | ithub.com/jwiegley][John.Wiegley |
| 14440 | 5d 5d 20 66 6f 72 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66 20 67 70 74 65 6c 27 73 20 70 72 65 | ]].for.the.design.of.gptel's.pre |
| 14460 | 73 65 74 73 20 61 6e 64 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 73 20 61 73 79 6e 63 20 70 | sets.and.gptel-request's.async.p |
| 14480 | 69 70 65 6c 69 6e 65 2c 20 62 75 74 20 61 6c 73 6f 20 66 6f 72 20 6c 6f 61 64 73 20 6f 66 20 67 | ipeline,.but.also.for.loads.of.g |
| 144a0 | 65 6e 65 72 61 6c 20 66 65 65 64 62 61 63 6b 20 61 6e 64 20 61 64 76 69 63 65 2e 0a 2d 20 5b 5b | eneral.feedback.and.advice..-.[[ |
| 144c0 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 61 62 6c 30 5d 5b 48 65 6e 72 69 6b | https://github.com/pabl0][Henrik |
| 144e0 | 20 41 68 6c 67 72 65 6e 5d 5d 20 66 6f 72 20 61 20 6b 65 65 6e 20 65 79 65 20 74 6f 20 64 65 74 | .Ahlgren]].for.a.keen.eye.to.det |
| 14500 | 61 69 6c 20 61 6e 64 20 70 6f 6c 69 73 68 20 61 70 70 6c 69 65 64 20 74 6f 20 67 70 74 65 6c 27 | ail.and.polish.applied.to.gptel' |
| 14520 | 73 20 55 49 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 73 69 | s.UI..-.[[https://github.com/psi |
| 14540 | 6f 6e 69 63 2d 6b 5d 5b 70 73 69 6f 6e 69 63 2d 6b 5d 5d 20 66 6f 72 20 65 78 74 65 6e 73 69 76 | onic-k][psionic-k]].for.extensiv |
| 14560 | 65 20 74 65 73 74 69 6e 67 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 75 73 65 20 66 65 61 74 75 72 | e.testing.of.the.tool.use.featur |
| 14580 | 65 20 61 6e 64 20 74 68 65 20 64 65 73 69 67 6e 20 6f 66 20 67 70 74 65 6c 27 73 20 69 6e 2d 62 | e.and.the.design.of.gptel's.in-b |
| 145a0 | 75 66 66 65 72 20 74 6f 6f 6c 20 75 73 65 20 72 65 63 6f 72 64 73 2e 0a 2d 20 5b 5b 68 74 74 70 | uffer.tool.use.records..-.[[http |
| 145c0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6a 64 74 73 6d 69 74 68 5d 5b 4a 44 20 53 6d 69 74 | s://github.com/jdtsmith][JD.Smit |
| 145e0 | 68 5d 5d 20 66 6f 72 20 66 65 65 64 62 61 63 6b 20 61 6e 64 20 63 6f 64 65 20 61 73 73 69 73 74 | h]].for.feedback.and.code.assist |
| 14600 | 61 6e 63 65 20 77 69 74 68 20 67 70 74 65 6c 2d 6d 65 6e 75 27 73 20 72 65 64 65 73 69 67 6e 0a | ance.with.gptel-menu's.redesign. |
| 14620 | 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 65 61 69 6e 5d 5b 41 62 | -.[[https://github.com/meain][Ab |
| 14640 | 69 6e 20 53 69 6d 6f 6e 5d 5d 20 66 6f 72 20 65 78 74 65 6e 73 69 76 65 20 66 65 65 64 62 61 63 | in.Simon]].for.extensive.feedbac |
| 14660 | 6b 20 6f 6e 20 69 6d 70 72 6f 76 69 6e 67 20 67 70 74 65 6c 27 73 20 64 69 72 65 63 74 69 76 65 | k.on.improving.gptel's.directive |
| 14680 | 73 20 61 6e 64 20 55 49 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | s.and.UI..-.[[https://github.com |
| 146a0 | 2f 61 6c 67 61 6c 5d 5b 41 6c 65 78 69 73 20 47 61 6c 6c 61 67 68 65 72 5d 5d 20 61 6e 64 20 5b | /algal][Alexis.Gallagher]].and.[ |
| 146c0 | 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 31 65 67 6f 61 7a 5d 5b 44 69 65 | [https://github.com/d1egoaz][Die |
| 146e0 | 67 6f 20 41 6c 76 61 72 65 7a 5d 5d 20 66 6f 72 20 66 69 78 69 6e 67 20 61 20 6e 61 73 74 79 20 | go.Alvarez]].for.fixing.a.nasty. |
| 14700 | 6d 75 6c 74 69 2d 62 79 74 65 20 62 75 67 20 77 69 74 68 20 3d 75 72 6c 2d 72 65 74 72 69 65 76 | multi-byte.bug.with.=url-retriev |
| 14720 | 65 3d 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 61 72 73 69 | e=..-.[[https://github.com/tarsi |
| 14740 | 75 73 5d 5b 4a 6f 6e 61 73 20 42 65 72 6e 6f 75 6c 6c 69 5d 5d 20 66 6f 72 20 74 68 65 20 54 72 | us][Jonas.Bernoulli]].for.the.Tr |
| 14760 | 61 6e 73 69 65 6e 74 20 6c 69 62 72 61 72 79 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 | ansient.library..-.[[https://git |
| 14780 | 68 75 62 2e 63 6f 6d 2f 64 61 65 64 73 69 64 6f 67 5d 5b 64 61 65 64 73 69 64 6f 67 5d 5d 20 66 | hub.com/daedsidog][daedsidog]].f |
| 147a0 | 6f 72 20 61 64 64 69 6e 67 20 63 6f 6e 74 65 78 74 20 73 75 70 70 6f 72 74 20 74 6f 20 67 70 74 | or.adding.context.support.to.gpt |
| 147c0 | 65 6c 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 41 71 75 61 6e | el..-.[[https://github.com/Aquan |
| 147e0 | 31 34 31 32 5d 5b 41 71 75 61 6e 31 34 31 32 5d 5d 20 66 6f 72 20 61 64 64 69 6e 67 20 50 72 69 | 1412][Aquan1412]].for.adding.Pri |
| 14800 | 76 61 74 65 47 50 54 20 73 75 70 70 6f 72 74 20 74 6f 20 67 70 74 65 6c 2e 0a 2d 20 5b 5b 68 74 | vateGPT.support.to.gptel..-.[[ht |
| 14820 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 30 6d 61 6e 5d 5b 72 30 6d 61 6e 5d 5d 20 | tps://github.com/r0man][r0man]]. |
| 14840 | 66 6f 72 20 69 6d 70 72 6f 76 69 6e 67 20 67 70 74 65 6c 27 73 20 43 75 72 6c 20 69 6e 74 65 67 | for.improving.gptel's.Curl.integ |
| 14860 | 72 61 74 69 6f 6e 2e 0a 0a 23 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 23 20 74 6f | ration...#.Local.Variables:.#.to |
| 14880 | 63 2d 6f 72 67 2d 6d 61 78 2d 64 65 70 74 68 3a 20 34 0a 23 20 65 76 61 6c 3a 20 28 61 6e 64 20 | c-org-max-depth:.4.#.eval:.(and. |
| 148a0 | 28 66 62 6f 75 6e 64 70 20 27 74 6f 63 2d 6f 72 67 2d 6d 6f 64 65 29 20 28 74 6f 63 2d 6f 72 67 | (fboundp.'toc-org-mode).(toc-org |
| 148c0 | 2d 6d 6f 64 65 20 31 29 29 0a 23 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | -mode.1)).#.End:................ |
| 148e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 149a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 149c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 149e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14a00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 00 00 00 00 00 | gptel-0.9.8.5/gptel-kagi.el..... |
| 14a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14a60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 14a80 | 30 30 31 37 33 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 31 34 00 20 30 00 00 00 | 0017300.00000000000.014014..0... |
| 14aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14b00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 14b20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 14b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 14c00 | 3b 3b 3b 20 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 20 2d 2d 2d 20 4b 61 67 69 20 73 75 70 70 6f | ;;;.gptel-kagi.el.---.Kagi.suppo |
| 14c20 | 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e | rt.for.gptel.....-*-.lexical-bin |
| 14c40 | 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 | ding:.t;.-*-..;;.Copyright.(C).2 |
| 14c60 | 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b | 023-2025..Karthik.Chikmagalur..; |
| 14c80 | 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b | ;.Author:.Karthik.Chikmagalur.<k |
| 14ca0 | 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 | arthikchikmagalur@gmail.com>.;;. |
| 14cc0 | 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 70 72 | Keywords:.hypermedia..;;.This.pr |
| 14ce0 | 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 | ogram.is.free.software;.you.can. |
| 14d00 | 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b | redistribute.it.and/or.modify.;; |
| 14d20 | 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 | .it.under.the.terms.of.the.GNU.G |
| 14d40 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 | eneral.Public.License.as.publish |
| 14d60 | 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 | ed.by.;;.the.Free.Software.Found |
| 14d80 | 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c | ation,.either.version.3.of.the.L |
| 14da0 | 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 | icense,.or.;;.(at.your.option).a |
| 14dc0 | 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 | ny.later.version...;;.This.progr |
| 14de0 | 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 | am.is.distributed.in.the.hope.th |
| 14e00 | 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 | at.it.will.be.useful,.;;.but.WIT |
| 14e20 | 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 | HOUT.ANY.WARRANTY;.without.even. |
| 14e40 | 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 | the.implied.warranty.of.;;.MERCH |
| 14e60 | 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 | ANTABILITY.or.FITNESS.FOR.A.PART |
| 14e80 | 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 | ICULAR.PURPOSE...See.the.;;.GNU. |
| 14ea0 | 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 | General.Public.License.for.more. |
| 14ec0 | 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 | details...;;.You.should.have.rec |
| 14ee0 | 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 | eived.a.copy.of.the.GNU.General. |
| 14f00 | 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 | Public.License.;;.along.with.thi |
| 14f20 | 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f | s.program...If.not,.see.<https:/ |
| 14f40 | 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f | /www.gnu.org/licenses/>...;;;.Co |
| 14f60 | 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 | mmentary:..;;.This.file.adds.sup |
| 14f80 | 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4b 61 67 69 20 46 61 73 74 47 50 54 20 4c 4c 4d 20 41 50 | port.for.the.Kagi.FastGPT.LLM.AP |
| 14fa0 | 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 | I.to.gptel..;;;.Code:.(require.' |
| 14fc0 | 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 | gptel).(require.'cl-generic).(ev |
| 14fe0 | 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c | al-when-compile...(require.'cl-l |
| 15000 | 69 62 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f | ib))..(declare-function.gptel-co |
| 15020 | 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 3b 3b | ntext--wrap."gptel-context")..;; |
| 15040 | 3b 20 4b 61 67 69 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6b 61 67 69 | ;.Kagi.(cl-defstruct.(gptel-kagi |
| 15060 | 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6b 61 67 69 29 | .(:constructor.gptel--make-kagi) |
| 15080 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 | .............................(:c |
| 150a0 | 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | opier.nil)...................... |
| 150c0 | 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 | .......(:include.gptel-backend)) |
| 150e0 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 | )..(cl-defmethod.gptel--parse-re |
| 15100 | 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 29 20 72 65 | sponse.((_backend.gptel-kagi).re |
| 15120 | 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 | sponse.info)...(let*.((data.(pli |
| 15140 | 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 | st-get.response.:data))......... |
| 15160 | 20 28 6f 75 74 70 75 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6f 75 74 70 75 74 | .(output.(plist-get.data.:output |
| 15180 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 66 65 72 65 6e 63 65 73 20 28 70 6c 69 73 74 2d 67 | ))..........(references.(plist-g |
| 151a0 | 65 74 20 64 61 74 61 20 3a 72 65 66 65 72 65 6e 63 65 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 | et.data.:references))).....(if.( |
| 151c0 | 65 71 20 72 65 66 65 72 65 6e 63 65 73 20 3a 6e 75 6c 6c 29 20 28 73 65 74 71 20 72 65 66 65 72 | eq.references.:null).(setq.refer |
| 151e0 | 65 6e 63 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 6f 75 74 70 75 74 20 3a | ences.nil)).....(if.(eq.output.: |
| 15200 | 6e 75 6c 6c 29 20 28 73 65 74 71 20 6f 75 74 70 75 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 | null).(setq.output.nil)).....(wh |
| 15220 | 65 6e 20 72 65 66 65 72 65 6e 63 65 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 66 65 72 65 | en.references.......(setq.refere |
| 15240 | 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6c | nces.............(cl-loop.with.l |
| 15260 | 69 6e 6b 65 72 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 | inker.=......................(pc |
| 15280 | 61 73 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d | ase.(buffer-local-value.'major-m |
| 152a0 | 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ode............................. |
| 152c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | ....................(plist-get.i |
| 152e0 | 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nfo.:buffer))................... |
| 15300 | 20 20 20 20 20 28 27 6f 72 67 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....('org-mode................. |
| 15320 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 | ........(lambda.(text.url)...... |
| 15340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5b | .....................(format."[[ |
| 15360 | 25 73 5d 5b 25 73 5d 5d 22 20 75 72 6c 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | %s][%s]]".url.text)))........... |
| 15380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 0a 20 20 20 | .............('markdown-mode.... |
| 153a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 65 | .....................(lambda.(te |
| 153c0 | 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt.url)......................... |
| 153e0 | 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 73 5d 28 25 73 29 22 20 74 65 78 74 20 75 72 6c 29 29 29 | ..(format."[%s](%s)".text.url))) |
| 15400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 6c 61 6d 62 | ........................(_.(lamb |
| 15420 | 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | da.(text.url)................... |
| 15440 | 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........(buttonize............ |
| 15460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 20 28 6c 61 6d 62 64 61 20 28 | ..................text.(lambda.( |
| 15480 | 64 61 74 61 29 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 | data).(browse-url.data))........ |
| 154a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 29 29 29 29 0a 20 20 | ......................url))))... |
| 154c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 65 66 20 61 63 72 6f 73 | ...................for.ref.acros |
| 154e0 | 73 20 72 65 66 65 72 65 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.references.................... |
| 15500 | 20 20 66 6f 72 20 74 69 74 6c 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 74 69 | ..for.title.=.(plist-get.ref.:ti |
| 15520 | 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 6e | tle)......................for.sn |
| 15540 | 69 70 70 65 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 73 6e 69 70 70 65 74 29 | ippet.=.(plist-get.ref.:snippet) |
| 15560 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 75 72 6c 20 3d 20 | ......................for.url.=. |
| 15580 | 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (plist-get.ref.:url)............ |
| 155a0 | 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 20 20 20 20 | ..........for.n.upfrom.1........ |
| 155c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 | ..............collect........... |
| 155e0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 6f 72 6d 61 74 20 22 5b 25 64 5d | ...........(concat.(format."[%d] |
| 15600 | 20 22 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .".n)........................... |
| 15620 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 69 6e 6b 65 72 20 74 69 74 6c 65 20 75 72 6c 29 20 22 3a | ...(funcall.linker.title.url).": |
| 15640 | 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .".............................. |
| 15660 | 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 | (replace-regexp-in-string....... |
| 15680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 2f 3f 62 3e 22 20 | ........................"</?b>". |
| 156a0 | 22 2a 22 20 73 6e 69 70 70 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "*".snippet))................... |
| 156c0 | 20 20 20 69 6e 74 6f 20 72 65 66 2d 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...into.ref-strings............. |
| 156e0 | 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 | .........finally.return......... |
| 15700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 22 20 28 6d 61 70 | .............(concat."\n\n".(map |
| 15720 | 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 72 65 66 2d 73 74 72 69 6e 67 73 20 22 5c | concat.#'identity.ref-strings."\ |
| 15740 | 6e 22 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 6f 75 74 70 75 74 20 72 65 66 65 72 | n"))))).....(concat.output.refer |
| 15760 | 65 6e 63 65 73 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 6d 6f 64 65 6c 20 61 6e 64 | ences)))..;;.TODO:.Add.model.and |
| 15780 | 20 62 61 63 6b 65 6e 64 2d 73 70 65 63 69 66 69 63 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 | .backend-specific.request-params |
| 157a0 | 20 73 75 70 70 6f 72 74 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 | .support.(cl-defmethod.gptel--re |
| 157c0 | 71 75 65 73 74 2d 64 61 74 61 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 | quest-data.((_backend.gptel-kagi |
| 157e0 | 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 | ).prompts)..."JSON.encode.PROMPT |
| 15800 | 53 20 66 6f 72 20 4b 61 67 69 2e 22 0a 20 20 28 70 63 61 73 65 2d 65 78 68 61 75 73 74 69 76 65 | S.for.Kagi."...(pcase-exhaustive |
| 15820 | 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 | .(gptel--model-name.gptel-model) |
| 15840 | 0a 20 20 20 20 28 22 66 61 73 74 67 70 74 22 0a 20 20 20 20 20 60 28 2c 40 70 72 6f 6d 70 74 73 | .....("fastgpt"......`(,@prompts |
| 15860 | 20 3a 77 65 62 5f 73 65 61 72 63 68 20 74 20 3a 63 61 63 68 65 20 74 29 29 0a 20 20 20 20 28 28 | .:web_search.t.:cache.t)).....(( |
| 15880 | 61 6e 64 20 6d 6f 64 65 6c 20 28 67 75 61 72 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d | and.model.(guard.(string-prefix- |
| 158a0 | 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 60 28 2c 40 | p."summarize".model)))......`(,@ |
| 158c0 | 70 72 6f 6d 70 74 73 20 3a 65 6e 67 69 6e 65 20 2c 28 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 | prompts.:engine.,(substring.mode |
| 158e0 | 6c 20 31 30 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d | l.10)))))..(cl-defmethod.gptel-- |
| 15900 | 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 | parse-buffer.((_backend.gptel-ka |
| 15920 | 67 69 29 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c | gi).&optional._max-entries)...(l |
| 15940 | 65 74 20 28 28 75 72 6c 20 28 6f 72 20 28 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 75 72 | et.((url.(or.(thing-at-point.'ur |
| 15960 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 | l)..................(get-text-pr |
| 15980 | 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 73 68 72 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 | operty.(point).'shr-url)........ |
| 159a0 | 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f | ..........(get-text-property.(po |
| 159c0 | 69 6e 74 29 20 27 69 6d 61 67 65 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 66 | int).'image-url))).........;;.(f |
| 159e0 | 69 6c 65 6e 61 6d 65 20 28 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 65 78 69 73 74 69 6e | ilename.(thing-at-point.'existin |
| 15a00 | 67 2d 66 69 6c 65 6e 61 6d 65 29 29 20 3b 6e 6f 20 66 69 6c 65 20 75 70 6c 6f 61 64 20 73 75 70 | g-filename)).;no.file.upload.sup |
| 15a20 | 70 6f 72 74 20 79 65 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 20 28 74 65 78 74 2d 70 72 6f | port.yet.........(prop.(text-pro |
| 15a40 | 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 | perty-search-backward........... |
| 15a60 | 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | .....'gptel.'response........... |
| 15a80 | 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d | .....(when.(get-char-property.(m |
| 15aa0 | 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | ax.(point-min).(1-.(point))).... |
| 15ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 15ae0 | 20 20 20 20 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 | .....'gptel)..................t) |
| 15b00 | 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 75 72 6c 20 28 73 74 72 69 6e 67 2d 70 72 65 | ))).....(if.(and.url.(string-pre |
| 15b20 | 66 69 78 2d 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | fix-p."summarize".(gptel--model- |
| 15b40 | 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 | name.gptel-model))).........(lis |
| 15b60 | 74 20 3a 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 67 | t.:url.url).......(if.(and.(or.g |
| 15b80 | 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a | ptel-mode.gptel-track-response). |
| 15ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f | ...............(prop-match-p.pro |
| 15bc0 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 | p)................(prop-match-va |
| 15be0 | 6c 75 65 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 | lue.prop))...........(user-error |
| 15c00 | 20 22 4e 6f 20 75 73 65 72 20 70 72 6f 6d 70 74 20 66 6f 75 6e 64 21 22 29 0a 20 20 20 20 20 20 | ."No.user.prompt.found!")....... |
| 15c20 | 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(let.((prompts................ |
| 15c40 | 28 69 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 | (if.(or.gptel-mode.gptel-track-r |
| 15c60 | 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 | esponse)....................(or. |
| 15c80 | 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 | (gptel--trim-prefixes........... |
| 15ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d | ..............(buffer-substring- |
| 15cc0 | 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 65 67 69 6e 6e | no-properties.(prop-match-beginn |
| 15ce0 | 69 6e 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing.prop)....................... |
| 15d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 15d20 | 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 29 0a 20 20 20 20 20 20 | ..(prop-match-end.prop)))....... |
| 15d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ................."")............ |
| 15d60 | 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 | ......(string-trim.(buffer-subst |
| 15d80 | 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 | ring-no-properties.(point-min).( |
| 15da0 | 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 | point-max))))))...........(pcase |
| 15dc0 | 2d 65 78 68 61 75 73 74 69 76 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 | -exhaustive.(gptel--model-name.g |
| 15de0 | 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 66 61 73 74 67 70 | ptel-model).............("fastgp |
| 15e00 | 74 22 20 28 73 65 74 71 20 70 72 6f 6d 70 74 73 20 28 6c 69 73 74 20 3a 71 75 65 72 79 20 28 69 | t".(setq.prompts.(list.:query.(i |
| 15e20 | 66 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f 70 29 20 70 72 6f 6d 70 74 73 20 22 22 | f.(prop-match-p.prop).prompts."" |
| 15e40 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6d 6f 64 65 6c 20 28 67 75 | )))).............((and.model.(gu |
| 15e60 | 61 72 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 | ard.(string-prefix-p."summarize" |
| 15e80 | 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 | .model)))..............;;.If.the |
| 15ea0 | 20 65 6e 74 69 72 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 6c | .entire.contents.of.the.prompt.l |
| 15ec0 | 6f 6f 6b 73 20 6c 69 6b 65 20 61 20 75 72 6c 2c 20 73 65 6e 64 20 74 68 65 20 75 72 6c 0a 20 20 | ooks.like.a.url,.send.the.url... |
| 15ee0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 73 65 6e 64 20 74 68 65 20 74 65 78 74 | ...........;;.Else.send.the.text |
| 15f00 | 20 6f 66 20 74 68 65 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | .of.the.region..............(set |
| 15f20 | 71 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | q.prompts....................(if |
| 15f40 | 2d 6c 65 74 2a 20 28 28 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f 70 29 29 0a 20 20 20 | -let*.(((prop-match-p.prop)).... |
| 15f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 67 69 6e | ..........................(engin |
| 15f80 | 65 20 28 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 6c 20 31 30 29 29 29 0a 20 20 20 20 20 20 20 | e.(substring.model.10)))........ |
| 15fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 74 27 73 20 61 20 72 65 67 69 6f 6e | ................;;.It's.a.region |
| 15fc0 | 20 6f 66 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .of.text........................ |
| 15fe0 | 28 6c 69 73 74 20 3a 74 65 78 74 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (list.:text.prompts)............ |
| 16000 | 20 20 20 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 | ..........""))))...........promp |
| 16020 | 74 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 | ts)))))..(cl-defmethod.gptel--wr |
| 16040 | 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | ap-user-prompt.((_backend.gptel- |
| 16060 | 6b 61 67 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 70 6c 69 73 | kagi).prompts)...(cond....((plis |
| 16080 | 74 2d 67 65 74 20 70 72 6f 6d 70 74 73 20 3a 75 72 6c 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 | t-get.prompts.:url).....(message |
| 160a0 | 20 22 49 67 6e 6f 72 69 6e 67 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 66 6f 72 20 55 52 4c | ."Ignoring.gptel.context.for.URL |
| 160c0 | 20 73 75 6d 6d 61 72 79 20 72 65 71 75 65 73 74 2e 22 29 29 0a 20 20 20 28 28 70 6c 69 73 74 2d | .summary.request."))....((plist- |
| 160e0 | 67 65 74 20 70 72 6f 6d 70 74 73 20 3a 71 75 65 72 79 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c | get.prompts.:query).....(cl-call |
| 16100 | 66 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 70 6c 69 73 74 2d 67 65 74 | f.gptel-context--wrap.(plist-get |
| 16120 | 20 70 72 6f 6d 70 74 73 20 3a 71 75 65 72 79 29 29 29 0a 20 20 20 28 28 70 6c 69 73 74 2d 67 65 | .prompts.:query)))....((plist-ge |
| 16140 | 74 20 70 72 6f 6d 70 74 73 20 3a 74 65 78 74 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 | t.prompts.:text).....(cl-callf.g |
| 16160 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 | ptel-context--wrap.(plist-get.pr |
| 16180 | 6f 6d 70 74 73 20 3a 74 65 78 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | ompts.:text)))))..;;;###autoload |
| 161a0 | 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 28 | .(cl-defun.gptel-make-kagi.....( |
| 161c0 | 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 0a 20 | name.&key.curl-args.stream.key.. |
| 161e0 | 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6b 61 67 69 2e 63 6f 6d 22 29 0a 20 20 20 20 20 | .........(host."kagi.com")...... |
| 16200 | 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 20 60 28 28 22 41 75 74 68 | .....(header.(lambda.().`(("Auth |
| 16220 | 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 6f 74 20 22 20 28 67 70 | orization"...,(concat."Bot.".(gp |
| 16240 | 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | tel--get-api-key)))))).......... |
| 16260 | 20 28 6d 6f 64 65 6c 73 20 27 28 28 66 61 73 74 67 70 74 20 3a 63 61 70 61 62 69 6c 69 74 69 65 | .(models.'((fastgpt.:capabilitie |
| 16280 | 73 20 28 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.(nosystem))................... |
| 162a0 | 20 20 28 73 75 6d 6d 61 72 69 7a 65 3a 63 65 63 69 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | ..(summarize:cecil.:capabilities |
| 162c0 | 20 28 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(nosystem)).................... |
| 162e0 | 20 28 73 75 6d 6d 61 72 69 7a 65 3a 61 67 6e 65 73 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 | .(summarize:agnes.:capabilities. |
| 16300 | 28 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (nosystem))..................... |
| 16320 | 28 73 75 6d 6d 61 72 69 7a 65 3a 64 61 70 68 6e 65 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 | (summarize:daphne.:capabilities. |
| 16340 | 28 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (nosystem))..................... |
| 16360 | 28 73 75 6d 6d 61 72 69 7a 65 3a 6d 75 72 69 65 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 | (summarize:muriel.:capabilities. |
| 16380 | 28 6e 6f 73 79 73 74 65 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f | (nosystem))))...........(protoco |
| 163a0 | 6c 20 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 | l."https")...........(endpoint." |
| 163c0 | 2f 61 70 69 2f 76 30 2f 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 4b 61 67 69 20 46 | /api/v0/"))..."Register.a.Kagi.F |
| 163e0 | 61 73 74 47 50 54 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 | astGPT.backend.for.gptel.with.NA |
| 16400 | 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 | ME...Keyword.arguments:..CURL-AR |
| 16420 | 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 | GS.(optional).is.a.list.of.addit |
| 16440 | 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 74 | ional.Curl.arguments...HOST.is.t |
| 16460 | 68 65 20 4b 61 67 69 20 68 6f 73 74 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c | he.Kagi.host.(with.port),.defaul |
| 16480 | 74 73 20 74 6f 20 5c 22 6b 61 67 69 2e 63 6f 6d 5c 22 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 | ts.to.\"kagi.com\"...MODELS.is.a |
| 164a0 | 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 4b 61 67 69 20 6d 6f 64 65 6c 73 3a 20 | .list.of.available.Kagi.models:. |
| 164c0 | 6f 6e 6c 79 20 66 61 73 74 67 70 74 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0a 0a 53 54 52 45 | only.fastgpt.is.supported...STRE |
| 164e0 | 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d | AM.is.a.boolean.to.toggle.stream |
| 16500 | 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 | ing.responses,.defaults.to.false |
| 16520 | 2e 20 20 4b 61 67 69 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 61 20 73 74 72 65 61 | ...Kagi.does.not.support.a.strea |
| 16540 | 6d 69 6e 67 20 41 50 49 20 79 65 74 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 | ming.API.yet...PROTOCOL.(optiona |
| 16560 | 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 73 | l).specifies.the.protocol,.https |
| 16580 | 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e 61 6c | .by.default...ENDPOINT.(optional |
| 165a0 | 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 | ).is.the.API.endpoint.for.comple |
| 165c0 | 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 76 30 2f 66 61 73 | tions,.defaults.to.\"/api/v0/fas |
| 165e0 | 74 67 70 74 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f | tgpt\"...HEADER.(optional).is.fo |
| 16600 | 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 | r.additional.headers.to.send.wit |
| 16620 | 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e | h.each.request...It.should.be.an |
| 16640 | 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 | .alist.or.a.function.that.retuns |
| 16660 | 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 | .an.alist,.like:..((\"Content-Ty |
| 16680 | 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b | pe\"...\"application/json\"))..K |
| 166a0 | 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 | EY.(optional).is.a.variable.whos |
| 166c0 | 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 | e.value.is.the.API.key,.or.funct |
| 166e0 | 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 45 78 61 6d 70 | ion.that.returns.the.key...Examp |
| 16700 | 6c 65 3a 0a 2d 2d 2d 2d 2d 2d 2d 0a 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 5c | le:.-------...(gptel-make-kagi.\ |
| 16720 | 22 4b 61 67 69 5c 22 20 3a 6b 65 79 20 6d 79 2d 6b 61 67 69 2d 6b 65 79 29 22 0a 20 20 28 64 65 | "Kagi\".:key.my-kagi-key)"...(de |
| 16740 | 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 73 74 72 65 61 6d 20 20 20 20 20 20 | clare.(indent.1))...stream...... |
| 16760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6c 65 6e | ..........................;Silen |
| 16780 | 63 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e | ce.byte-compiler...(let.((backen |
| 167a0 | 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 | d.(gptel--make-kagi............. |
| 167c0 | 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 | ......:curl-args.curl-args...... |
| 167e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 | .............:name.name......... |
| 16800 | 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........:host.host............ |
| 16820 | 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 | .......:header.header........... |
| 16840 | 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:key.key................ |
| 16860 | 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c | ...:models.(gptel--process-model |
| 16880 | 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f | s.models)...................:pro |
| 168a0 | 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tocol.protocol.................. |
| 168c0 | 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:endpoint.endpoint............. |
| 168e0 | 20 20 20 20 20 20 3a 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | ......:url...................(la |
| 16900 | 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | mbda.().....................(con |
| 16920 | 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 | cat.protocol."://".host.endpoint |
| 16940 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | .............................(if |
| 16960 | 20 28 65 71 75 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 66 61 73 74 67 70 74 29 0a 20 20 | .(equal.gptel-model.'fastgpt)... |
| 16980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 | .............................."f |
| 169a0 | 61 73 74 67 70 74 22 20 22 73 75 6d 6d 61 72 69 7a 65 22 29 29 29 29 29 29 0a 20 20 20 20 28 70 | astgpt"."summarize")))))).....(p |
| 169c0 | 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d | rog1.backend.......(setf.(alist- |
| 169e0 | 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 | get.name.gptel--known-backends.. |
| 16a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 | ......................nil.nil.#' |
| 16a20 | 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 | equal)...................backend |
| 16a40 | 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6b 61 67 69 29 0a 3b 3b 3b 20 | ))))..(provide.'gptel-kagi).;;;. |
| 16a60 | 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 | gptel-kagi.el.ends.here..;;.Loca |
| 16a80 | 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 | l.Variables:.;;.byte-compile-war |
| 16aa0 | 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a | nings:.(not.docstrings).;;.End:. |
| 16ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16c00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 00 00 | gptel-0.9.8.5/gptel-bedrock.el.. |
| 16c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 16c80 | 30 30 37 35 33 37 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 32 37 00 20 30 00 00 00 | 0075372.00000000000.014527..0... |
| 16ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 16d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 16d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16e00 | 3b 3b 3b 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 20 2d 2d 2d 20 41 57 53 20 42 65 64 | ;;;.gptel-bedrock.el.---.AWS.Bed |
| 16e20 | 72 6f 63 6b 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 | rock.support.for.gptel..-*-.lexi |
| 16e40 | 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 | cal-binding:.t;.-*-..;;.Copyrigh |
| 16e60 | 74 20 28 43 29 20 32 30 32 35 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a | t.(C).2025.Karthik.Chikmagalur.. |
| 16e80 | 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6d 6d 2c 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a | ;;.Keywords:.comm,.convenience.. |
| 16ea0 | 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 | ;;.This.program.is.free.software |
| 16ec0 | 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 | ;.you.can.redistribute.it.and/or |
| 16ee0 | 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 | .modify.;;.it.under.the.terms.of |
| 16f00 | 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 | .the.GNU.General.Public.License. |
| 16f20 | 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 | as.published.by.;;.the.Free.Soft |
| 16f40 | 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 | ware.Foundation,.either.version. |
| 16f60 | 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 | 3.of.the.License,.or.;;.(at.your |
| 16f80 | 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 | .option).any.later.version...;;. |
| 16fa0 | 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 | This.program.is.distributed.in.t |
| 16fc0 | 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a | he.hope.that.it.will.be.useful,. |
| 16fe0 | 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 | ;;.but.WITHOUT.ANY.WARRANTY;.wit |
| 17000 | 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f | hout.even.the.implied.warranty.o |
| 17020 | 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 | f.;;.MERCHANTABILITY.or.FITNESS. |
| 17040 | 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 | FOR.A.PARTICULAR.PURPOSE...See.t |
| 17060 | 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | he.;;.GNU.General.Public.License |
| 17080 | 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c | .for.more.details...;;.You.shoul |
| 170a0 | 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e | d.have.received.a.copy.of.the.GN |
| 170c0 | 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e | U.General.Public.License.;;.alon |
| 170e0 | 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 | g.with.this.program...If.not,.se |
| 17100 | 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f | e.<https://www.gnu.org/licenses/ |
| 17120 | 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c | >...;;;.Commentary:..;;.This.fil |
| 17140 | 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 57 53 20 42 65 64 72 6f 63 6b 20 74 | e.adds.support.for.AWS.Bedrock.t |
| 17160 | 6f 20 67 70 74 65 6c 2e 20 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 | o.gptel...Documentation.for.the. |
| 17180 | 72 65 71 75 65 73 74 20 64 61 74 61 20 61 6e 64 20 74 68 65 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 | request.data.and.the.;;.response |
| 171a0 | 20 70 61 79 6c 6f 61 64 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 20 74 68 65 73 65 20 | .payloads.can.be.found.at.these. |
| 171c0 | 74 77 6f 20 6c 69 6e 6b 73 3a 0a 3b 3b 20 2a 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 | two.links:.;;.*.https://docs.aws |
| 171e0 | 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 52 65 | .amazon.com/bedrock/latest/APIRe |
| 17200 | 66 65 72 65 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f 43 6f 6e 76 65 72 73 65 2e 68 74 6d | ference/API_runtime_Converse.htm |
| 17220 | 6c 0a 3b 3b 20 2a 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 7a 6f 6e 2e 63 | l.;;.*.https://docs.aws.amazon.c |
| 17240 | 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 52 65 66 65 72 65 6e 63 65 2f 41 | om/bedrock/latest/APIReference/A |
| 17260 | 50 49 5f 72 75 6e 74 69 6d 65 5f 43 6f 6e 76 65 72 73 65 53 74 72 65 61 6d 2e 68 74 6d 6c 0a 0a | PI_runtime_ConverseStream.html.. |
| 17280 | 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 | ;;;.Code:.(require.'cl-lib).(req |
| 172a0 | 75 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 | uire.'map).(require.'gptel).(req |
| 172c0 | 75 69 72 65 20 27 6d 61 69 6c 2d 70 61 72 73 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | uire.'mail-parse)..(declare-func |
| 172e0 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 | tion.gptel-context--collect-medi |
| 17300 | 61 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | a."gptel-context").(declare-func |
| 17320 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d | tion.gptel-context--wrap."gptel- |
| 17340 | 63 6f 6e 74 65 78 74 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d | context")..(cl-defstruct.(gptel- |
| 17360 | 62 65 64 72 6f 63 6b 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b | bedrock.(:constructor.gptel--mak |
| 17380 | 65 2d 62 65 64 72 6f 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-bedrock)...................... |
| 173a0 | 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | ........(:copier.nil)........... |
| 173c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 | ...................(:include.gpt |
| 173e0 | 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 29 0a 0a 28 64 | el-backend))...model-region)..(d |
| 17400 | 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 72 6f 6d 70 74 2d 74 79 | efconst.gptel-bedrock--prompt-ty |
| 17420 | 70 65 0a 20 20 3b 3b 20 46 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 70 75 72 70 6f 73 | pe...;;.For.documentation.purpos |
| 17440 | 65 73 20 6f 6e 6c 79 20 2d 2d 20 74 68 69 73 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 74 79 | es.only.--.this.describes.the.ty |
| 17460 | 70 65 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 20 74 68 61 74 20 67 65 74 20 70 61 | pe.of.prompt.objects.that.get.pa |
| 17480 | 73 73 65 64 0a 20 20 3b 3b 20 61 72 6f 75 6e 64 2e 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 | ssed...;;.around..https://docs.a |
| 174a0 | 77 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 | ws.amazon.com/bedrock/latest/API |
| 174c0 | 52 65 66 65 72 65 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f 4d 65 73 73 61 67 65 2e 68 74 | Reference/API_runtime_Message.ht |
| 174e0 | 6d 6c 0a 20 20 27 28 70 6c 69 73 74 0a 20 20 20 20 3a 72 6f 6c 65 20 28 6d 65 6d 62 65 72 20 22 | ml...'(plist.....:role.(member." |
| 17500 | 75 73 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 0a 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 | user"."assistant").....:content. |
| 17520 | 28 61 72 72 61 79 20 28 6f 72 20 28 70 6c 69 73 74 20 3a 74 65 78 74 20 73 74 72 69 6e 67 29 0a | (array.(or.(plist.:text.string). |
| 17540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a | ........................(plist.: |
| 17560 | 69 6d 61 67 65 20 28 3a 66 6f 72 6d 61 74 20 28 6d 65 6d 62 65 72 20 22 70 6e 67 22 20 22 6a 70 | image.(:format.(member."png"."jp |
| 17580 | 65 67 22 20 22 67 69 66 22 20 22 77 65 62 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eg"."gif"."webp")............... |
| 175a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 6f 75 72 63 65 | .........................:source |
| 175c0 | 20 28 70 6c 69 73 74 20 3a 62 79 74 65 73 20 73 74 72 69 6e 67 29 29 29 20 3b 20 62 79 74 65 73 | .(plist.:bytes.string))).;.bytes |
| 175e0 | 20 69 73 20 62 36 34 20 65 6e 63 6f 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .is.b64.encoded................. |
| 17600 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 64 6f 63 75 6d 65 6e 74 20 28 3a 66 6f 72 6d 61 | ........(plist.:document.(:forma |
| 17620 | 74 20 28 6d 65 6d 62 65 72 20 22 70 64 66 22 20 22 63 73 76 22 20 22 64 6f 63 22 20 22 64 6f 63 | t.(member."pdf"."csv"."doc"."doc |
| 17640 | 78 22 20 22 78 6c 73 22 20 22 78 6c 73 78 22 20 22 68 74 6d 6c 22 20 22 74 78 74 22 20 22 6d 64 | x"."xls"."xlsx"."html"."txt"."md |
| 17660 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ").............................. |
| 17680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 | .............:name.string....... |
| 176a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 176c0 | 20 20 20 20 3a 73 6f 75 72 63 65 20 28 70 6c 69 73 74 20 3a 62 79 74 65 73 20 73 74 72 69 6e 67 | ....:source.(plist.:bytes.string |
| 176e0 | 29 29 29 20 3b 20 62 79 74 65 73 20 69 73 20 62 36 34 20 65 6e 63 6f 64 65 64 0a 20 20 20 20 20 | ))).;.bytes.is.b64.encoded...... |
| 17700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 74 6f 6f 6c 55 | ...................(plist.:toolU |
| 17720 | 73 65 20 28 70 6c 69 73 74 20 3a 69 6e 70 75 74 20 61 6e 79 20 3a 6e 61 6d 65 20 73 74 72 69 6e | se.(plist.:input.any.:name.strin |
| 17740 | 67 20 3a 74 6f 6f 6c 55 73 65 49 64 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | g.:toolUseId.string))........... |
| 17760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 74 6f 6f 6c 52 65 73 75 6c 74 | ..............(plist.:toolResult |
| 17780 | 20 28 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(plist......................... |
| 177a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 55 73 65 49 64 20 73 | ....................:toolUseId.s |
| 177c0 | 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tring........................... |
| 177e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 61 74 75 73 20 28 6d 65 6d 62 65 | ..................:status.(membe |
| 17800 | 72 20 22 73 75 63 63 65 73 73 22 20 22 65 72 72 6f 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | r."success"."error")............ |
| 17820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 17840 | 20 3b 3b 20 41 57 53 20 61 6c 6c 6f 77 73 20 6d 6f 72 65 20 72 65 73 75 6c 74 20 74 79 70 65 73 | .;;.AWS.allows.more.result.types |
| 17860 | 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .in............................. |
| 17880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 6f 6f 6c 52 65 73 75 6c 74 43 6f 6e | ................;;.ToolResultCon |
| 178a0 | 74 65 6e 74 42 6c 6f 63 6b 2c 20 62 75 74 20 77 65 20 6f 6e 6c 79 20 73 65 6e 64 20 74 65 78 74 | tentBlock,.but.we.only.send.text |
| 178c0 | 20 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .results........................ |
| 178e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 61 | .....................:content.(a |
| 17900 | 72 72 61 79 20 28 70 6c 69 73 74 20 3a 74 65 78 74 20 73 74 72 69 6e 67 29 29 29 29 29 29 29 29 | rray.(plist.:text.string)))))))) |
| 17920 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 | ..(cl-defmethod.gptel--request-d |
| 17940 | 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 70 72 6f | ata.((backend.gptel-bedrock).pro |
| 17960 | 6d 70 74 73 29 0a 20 20 22 50 72 65 70 61 72 65 20 72 65 71 75 65 73 74 20 64 61 74 61 20 66 6f | mpts)..."Prepare.request.data.fo |
| 17980 | 72 20 41 57 53 20 42 65 64 72 6f 63 6b 20 42 41 43 4b 45 4e 44 20 66 72 6f 6d 20 50 52 4f 4d 50 | r.AWS.Bedrock.BACKEND.from.PROMP |
| 179a0 | 54 53 2e 22 0a 20 20 28 6e 63 6f 6e 63 0a 20 20 20 60 28 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 | TS."...(nconc....`(:messages.[,@ |
| 179c0 | 70 72 6f 6d 70 74 73 5d 20 3a 69 6e 66 65 72 65 6e 63 65 43 6f 6e 66 69 67 20 28 3a 6d 61 78 54 | prompts].:inferenceConfig.(:maxT |
| 179e0 | 6f 6b 65 6e 73 20 2c 28 6f 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 35 30 30 29 | okens.,(or.gptel-max-tokens.500) |
| 17a00 | 29 29 0a 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 | ))....(when.gptel--system-messag |
| 17a20 | 65 20 60 28 3a 73 79 73 74 65 6d 20 5b 28 3a 74 65 78 74 20 2c 67 70 74 65 6c 2d 2d 73 79 73 74 | e.`(:system.[(:text.,gptel--syst |
| 17a40 | 65 6d 2d 6d 65 73 73 61 67 65 29 5d 29 29 0a 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 65 | em-message)]))....(when.gptel-te |
| 17a60 | 6d 70 65 72 61 74 75 72 65 20 60 28 3a 74 65 6d 70 65 72 61 74 75 72 65 20 2c 67 70 74 65 6c 2d | mperature.`(:temperature.,gptel- |
| 17a80 | 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 | temperature))....(when.(and.gpte |
| 17aa0 | 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 60 28 | l-use-tools.gptel-tools)......`( |
| 17ac0 | 3a 74 6f 6f 6c 43 6f 6e 66 69 67 20 28 3a 74 6f 6f 6c 43 68 6f 69 63 65 20 2c 28 69 66 20 28 65 | :toolConfig.(:toolChoice.,(if.(e |
| 17ae0 | 71 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 27 66 6f 72 63 65 29 20 27 28 3a 61 6e 79 | q.gptel-use-tools.'force).'(:any |
| 17b00 | 20 27 28 29 29 20 27 28 3a 61 75 74 6f 20 27 28 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .'()).'(:auto.'()))............. |
| 17b20 | 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 73 20 2c 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f | ........:tools.,(gptel--parse-to |
| 17b40 | 6f 6c 73 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 29 29 29 0a 0a 28 | ols.backend.gptel-tools))))))..( |
| 17b60 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 | cl-defmethod.gptel--parse-tools. |
| 17b80 | 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 74 6f 6f 6c 73 29 | ((_backend.gptel-bedrock).tools) |
| 17ba0 | 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 | ..."Parse.TOOLS.and.return.a.lis |
| 17bc0 | 74 20 6f 66 20 54 6f 6f 6c 53 70 65 63 69 66 69 63 61 74 69 6f 6e 20 6f 62 6a 65 63 74 73 2e 0a | t.of.ToolSpecification.objects.. |
| 17be0 | 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 | .TOOLS.is.a.list.of.`gptel-tool' |
| 17c00 | 20 73 74 72 75 63 74 73 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 20 3b 3b 20 68 74 74 70 | .structs,.which.see."....;;.http |
| 17c20 | 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f | s://docs.aws.amazon.com/bedrock/ |
| 17c40 | 6c 61 74 65 73 74 2f 41 50 49 52 65 66 65 72 65 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f | latest/APIReference/API_runtime_ |
| 17c60 | 54 6f 6f 6c 53 70 65 63 69 66 69 63 61 74 69 6f 6e 2e 68 74 6d 6c 0a 20 20 20 28 6c 65 74 20 28 | ToolSpecification.html....(let.( |
| 17c80 | 28 64 65 66 61 75 6c 74 2d 6f 75 74 70 75 74 73 20 28 63 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d | (default-outputs.(cl-call-next-m |
| 17ca0 | 65 74 68 6f 64 29 29 29 20 3b 3b 20 75 73 65 20 6f 70 65 6e 61 69 20 74 6f 6f 6c 2d 70 61 72 73 | ethod))).;;.use.openai.tool-pars |
| 17cc0 | 65 0a 20 20 20 20 20 28 63 6c 2d 6d 61 70 20 27 76 65 63 74 6f 72 0a 20 20 20 20 20 20 28 6c 61 | e......(cl-map.'vector.......(la |
| 17ce0 | 6d 62 64 61 20 28 74 6f 6f 6c 20 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a | mbda.(tool.spec).........(list.: |
| 17d00 | 74 6f 6f 6c 53 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 | toolSpec...............(list.... |
| 17d20 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 | ............:name.(gptel-tool-na |
| 17d40 | 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 | me.tool)................:descrip |
| 17d60 | 74 69 6f 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 6f 6f | tion.(gptel-tool-description.too |
| 17d80 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 53 63 68 65 6d 61 20 28 | l)................:inputSchema.( |
| 17da0 | 6c 69 73 74 20 3a 6a 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 28 70 6c 69 73 74 2d 67 65 74 | list.:json.(plist-get.(plist-get |
| 17dc0 | 20 73 70 65 63 20 3a 66 75 6e 63 74 69 6f 6e 29 20 3a 70 61 72 61 6d 65 74 65 72 73 29 29 29 29 | .spec.:function).:parameters)))) |
| 17de0 | 29 0a 20 20 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 74 6f 6f 6c 73 29 20 64 65 66 61 | ).......(ensure-list.tools).defa |
| 17e00 | 75 6c 74 2d 6f 75 74 70 75 74 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 | ult-outputs)))..(cl-defmethod.gp |
| 17e20 | 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 | tel--parse-response.((_backend.g |
| 17e40 | 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 | ptel-bedrock).response.info)..." |
| 17e60 | 50 61 72 73 65 20 61 20 42 65 64 72 6f 63 6b 20 28 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e 67 29 20 | Parse.a.Bedrock.(non-streaming). |
| 17e80 | 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 75 72 6e 20 72 65 73 70 6f 6e 73 65 20 74 65 78 | RESPONSE.and.return.response.tex |
| 17ea0 | 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 77 69 74 68 20 72 65 73 70 6f | t...Mutate.state.INFO.with.respo |
| 17ec0 | 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | nse.metadata."...(plist-put.info |
| 17ee0 | 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 | .:stop-reason.(plist-get.respons |
| 17f00 | 65 20 3a 73 74 6f 70 52 65 61 73 6f 6e 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | e.:stopReason))...(plist-put.inf |
| 17f20 | 6f 20 3a 69 6e 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 | o.:input-tokens..............(ma |
| 17f40 | 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a | p-nested-elt.response.'(:usage.: |
| 17f60 | 69 6e 70 75 74 54 6f 6b 65 6e 73 29 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | inputTokens)))...(plist-put.info |
| 17f80 | 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 | .:output-tokens..............(ma |
| 17fa0 | 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a | p-nested-elt.response.'(:usage.: |
| 17fc0 | 6f 75 74 70 75 74 54 6f 6b 65 6e 73 29 29 29 0a 0a 20 20 28 6c 65 74 2a 20 28 28 6d 65 73 73 61 | outputTokens)))....(let*.((messa |
| 17fe0 | 67 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 6f | ge.(map-nested-elt.response.'(:o |
| 18000 | 75 74 70 75 74 20 3a 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 | utput.:message)))..........(cont |
| 18020 | 65 6e 74 2d 73 74 72 73 20 28 74 68 72 65 61 64 2d 6c 61 73 74 20 28 70 6c 69 73 74 2d 67 65 74 | ent-strs.(thread-last.(plist-get |
| 18040 | 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .message.:content).............. |
| 18060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 | .......................(mapcar.( |
| 18080 | 6c 61 6d 62 64 61 20 28 63 62 6c 6f 63 6b 29 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 | lambda.(cblock).(plist-get.cbloc |
| 180a0 | 6b 20 3a 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | k.:text)))...................... |
| 180c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 29 29 29 29 0a 20 20 20 | ...............(delq.nil)))).... |
| 180e0 | 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 72 65 63 6f 72 64 2d 74 6f 6f 6c 2d 75 73 65 | .(gptel-bedrock--record-tool-use |
| 18100 | 20 6d 65 73 73 61 67 65 20 69 6e 66 6f 29 0a 20 20 20 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 2d | .message.info).....(and.content- |
| 18120 | 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 | strs.(apply.#'concat.content-str |
| 18140 | 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 72 65 63 | s))))..(defun.gptel-bedrock--rec |
| 18160 | 6f 72 64 2d 74 6f 6f 6c 2d 75 73 65 20 28 6d 65 73 73 61 67 65 20 69 6e 66 6f 29 0a 20 20 22 49 | ord-tool-use.(message.info)..."I |
| 18180 | 66 20 4d 45 53 53 41 47 45 20 68 61 73 20 74 6f 6f 6c 20 75 73 65 20 72 65 71 75 65 73 74 73 2c | f.MESSAGE.has.tool.use.requests, |
| 181a0 | 20 73 61 76 65 20 74 68 6f 73 65 20 74 6f 20 49 4e 46 4f 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 | .save.those.to.INFO."...(let*.(( |
| 181c0 | 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 | content.(plist-get.message.:cont |
| 181e0 | 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 75 73 65 2d 62 6c 6f 63 6b 73 20 | ent))..........(tool-use-blocks. |
| 18200 | 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cl-remove-if-not............... |
| 18220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 62 6c 6f 63 6b 29 20 28 70 | .............(lambda.(cblock).(p |
| 18240 | 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 6f 6f 6c 55 73 65 29 29 0a 20 20 20 20 20 | list-get.cblock.:toolUse))...... |
| 18260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 29 29 29 | ......................content))) |
| 18280 | 0a 20 20 20 20 28 77 68 65 6e 20 74 6f 6f 6c 2d 75 73 65 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20 | .....(when.tool-use-blocks...... |
| 182a0 | 20 28 63 6c 2d 63 61 6c 6c 66 20 76 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 70 | .(cl-callf.vconcat.(plist-get.(p |
| 182c0 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 20 3a 6d 65 73 73 61 67 65 73 29 20 | list-get.info.:data).:messages). |
| 182e0 | 28 6c 69 73 74 20 6d 65 73 73 61 67 65 29 29 0a 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | (list.message))........(plist-pu |
| 18300 | 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:tool-use................ |
| 18320 | 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 62 6c 6f 63 6b 29 0a 20 20 20 20 20 20 | ..(mapcar.(lambda.(block)....... |
| 18340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f 6c | .....................(let.((tool |
| 18360 | 2d 75 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 62 6c 6f 63 6b 20 3a 74 6f 6f 6c 55 73 65 29 29 | -use.(plist-get.block.:toolUse)) |
| 18380 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )..............................( |
| 183a0 | 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list............................ |
| 183c0 | 20 20 20 3a 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 6e 61 | ...:name.(plist-get.tool-use.:na |
| 183e0 | 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me)............................. |
| 18400 | 20 20 3a 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 69 6e 70 | ..:args.(plist-get.tool-use.:inp |
| 18420 | 75 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ut)............................. |
| 18440 | 20 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 74 6f 6f 6c 55 | ..:id.(plist-get.tool-use.:toolU |
| 18460 | 73 65 49 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | seId))))........................ |
| 18480 | 20 20 74 6f 6f 6c 2d 75 73 65 2d 62 6c 6f 63 6b 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | ..tool-use-blocks)))))..(cl-defm |
| 184a0 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 28 28 5f 62 61 63 6b 65 | ethod.gptel--parse-list.((_backe |
| 184c0 | 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 73 | nd.gptel-bedrock).prompt-strings |
| 184e0 | 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a | )..."Create.a.list.of.prompt.obj |
| 18500 | 65 63 74 73 20 66 72 6f 6d 20 50 52 4f 4d 50 54 2d 53 54 52 49 4e 47 53 2e 0a 0a 41 73 73 75 6d | ects.from.PROMPT-STRINGS...Assum |
| 18520 | 65 73 20 74 68 69 73 20 69 73 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 | es.this.is.a.conversation.with.a |
| 18540 | 6c 74 65 72 6e 61 74 69 6e 67 20 72 6f 6c 65 73 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f | lternating.roles."...(cl-loop.fo |
| 18560 | 72 20 74 65 78 74 20 69 6e 20 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 | r.text.in.prompt-strings........ |
| 18580 | 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 29 | ....for.role.=.t.then.(not.role) |
| 185a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 | ............if.text.collect..... |
| 185c0 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 | .......(list.:role.(if.role."use |
| 185e0 | 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r"."assistant")................. |
| 18600 | 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 3a 74 65 78 74 20 2c 74 65 78 74 29 5d 29 29 29 0a 0a 28 | .:content.`[(:text.,text)])))..( |
| 18620 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 | cl-defmethod.gptel--wrap-user-pr |
| 18640 | 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 70 | ompt.((_backend.gptel-bedrock).p |
| 18660 | 72 6f 6d 70 74 73 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 | rompts.&optional.inject-media).. |
| 18680 | 20 22 49 6e 6a 65 63 74 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 61 20 63 6f 6e 76 65 72 73 61 | ."Inject.context.into.a.conversa |
| 186a0 | 74 69 6f 6e 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 73 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 | tion...PROMPTS.is.list.of.prompt |
| 186c0 | 20 6f 62 6a 65 63 74 73 2e 20 20 49 66 20 49 4e 4a 45 43 54 2d 4d 45 44 49 41 20 69 73 20 6e 6f | .objects...If.INJECT-MEDIA.is.no |
| 186e0 | 6e 2d 6e 69 6c 0a 69 6e 6a 65 63 74 20 74 68 65 20 6d 65 64 69 61 20 66 69 6c 65 73 20 66 72 6f | n-nil.inject.the.media.files.fro |
| 18700 | 6d 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 | m.context.into.the.beginning.of. |
| 18720 | 74 68 65 0a 63 6f 6e 76 65 72 73 61 74 69 6f 6e 3b 20 6f 74 68 65 72 77 69 73 65 20 69 6e 6a 65 | the.conversation;.otherwise.inje |
| 18740 | 63 74 20 74 68 65 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 74 68 65 20 6c 61 73 74 20 70 72 6f | ct.the.context.into.the.last.pro |
| 18760 | 6d 70 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 28 | mpt."...(if.inject-media.......( |
| 18780 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6e 6a 65 63 74 2d 6d 65 64 69 61 2d 63 6f 6e 74 | gptel-bedrock--inject-media-cont |
| 187a0 | 65 78 74 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d | ext.prompts).....(gptel-bedrock- |
| 187c0 | 2d 69 6e 6a 65 63 74 2d 74 65 78 74 2d 63 6f 6e 74 65 78 74 20 70 72 6f 6d 70 74 73 29 29 29 0a | -inject-text-context.prompts))). |
| 187e0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6e 6a 65 63 74 2d 6d 65 | .(defun.gptel-bedrock--inject-me |
| 18800 | 64 69 61 2d 63 6f 6e 74 65 78 74 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 49 6e 6a 65 63 74 20 | dia-context.(prompts)..."Inject. |
| 18820 | 6d 65 64 69 61 20 66 69 6c 65 73 20 66 72 6f 6d 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 61 20 | media.files.from.context.into.a. |
| 18840 | 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 4d 65 64 69 61 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 | conversation..Media.files.will.b |
| 18860 | 65 20 61 64 64 65 64 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 | e.added.at.the.beginning.of.the. |
| 18880 | 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 50 52 4f 4d 50 54 53 20 73 68 6f 75 6c 64 20 62 65 20 | conversation..PROMPTS.should.be. |
| 188a0 | 61 20 6e 6f 6e 2d 65 6d 70 74 79 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 | a.non-empty.list.of.prompt.objec |
| 188c0 | 74 73 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 20 28 | ts."...(when-let*.((media-list.( |
| 188e0 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 29 0a | gptel-context--collect-media))). |
| 18900 | 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 32 20 76 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 65 | ....(cl-callf2.vconcat.(gptel-be |
| 18920 | 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 6d 65 64 69 61 2d 6c 69 73 | drock--parse-multipart.media-lis |
| 18940 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 | t)................(plist-get.(ca |
| 18960 | 72 20 70 72 6f 6d 70 74 73 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | r.prompts).:content))))..(defun. |
| 18980 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6e 6a 65 63 74 2d 74 65 78 74 2d 63 6f 6e 74 65 | gptel-bedrock--inject-text-conte |
| 189a0 | 78 74 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 49 6e 6a 65 63 74 20 74 65 78 74 20 63 6f 6e 74 | xt.(prompts)..."Inject.text.cont |
| 189c0 | 65 78 74 20 69 6e 74 6f 20 74 68 65 20 6c 61 73 74 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 | ext.into.the.last.prompt.object. |
| 189e0 | 66 72 6f 6d 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 50 52 4f 4d 50 54 53 20 73 68 6f | from.a.conversation..PROMPTS.sho |
| 18a00 | 75 6c 64 20 62 65 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 | uld.be.a.non-empty.list.of.promp |
| 18a20 | 74 20 6f 62 6a 65 63 74 73 2e 22 0a 20 20 28 63 6c 2d 61 73 73 65 72 74 20 70 72 6f 6d 70 74 73 | t.objects."...(cl-assert.prompts |
| 18a40 | 20 6e 69 6c 20 22 45 78 70 65 63 74 65 64 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 20 6c 69 73 74 20 | .nil."Expected.a.non-empty.list. |
| 18a60 | 6f 66 20 70 72 6f 6d 70 74 73 22 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 77 72 61 70 | of.prompts")...(when-let*.((wrap |
| 18a80 | 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a | ped.(gptel-context--wrap.nil))). |
| 18aa0 | 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 32 20 76 63 6f 6e 63 61 74 20 60 5b 28 3a 74 65 78 74 20 | ....(cl-callf2.vconcat.`[(:text. |
| 18ac0 | 2c 77 72 61 70 70 65 64 29 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ,wrapped)]................(plist |
| 18ae0 | 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 | -get.(car.(last.prompts)).:conte |
| 18b00 | 6e 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 65 64 72 | nt))))..(defvar-local.gptel-bedr |
| 18b20 | 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 20 6e 69 6c 0a 20 20 22 4d 61 72 6b 65 72 | ock--stream-cursor.nil..."Marker |
| 18b40 | 20 74 6f 20 69 6e 64 69 63 61 74 65 20 6c 61 73 74 20 70 6f 69 6e 74 20 70 61 72 73 65 64 2e 22 | .to.indicate.last.point.parsed." |
| 18b60 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 | )..(cl-defmethod.gptel-curl--par |
| 18b80 | 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f | se-stream.((_backend.gptel-bedro |
| 18ba0 | 63 6b 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 41 57 53 20 42 65 64 72 6f 63 | ck).info)..."Parse.an.AWS.Bedroc |
| 18bc0 | 6b 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 43 6f | k.streaming.response.from.the.Co |
| 18be0 | 6e 76 65 72 73 65 53 74 72 65 61 6d 20 41 50 49 2e 0a 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 | nverseStream.API..INFO.is.a.plis |
| 18c00 | 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74 65 78 74 | t.containing.the.request.context |
| 18c20 | 2e 22 0a 20 20 28 63 6c 2d 62 6c 6f 63 6b 20 66 6e 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 | ."...(cl-block.fn.....(save-excu |
| 18c40 | 72 73 69 6f 6e 0a 20 20 20 20 20 20 3b 3b 20 45 61 63 68 20 73 74 72 65 61 6d 69 6e 67 20 72 65 | rsion.......;;.Each.streaming.re |
| 18c60 | 71 75 65 73 74 20 75 73 65 73 20 61 20 66 72 65 73 68 20 62 75 66 66 65 72 2c 20 73 6f 20 74 68 | quest.uses.a.fresh.buffer,.so.th |
| 18c80 | 65 20 63 75 72 73 6f 72 20 73 74 61 72 74 73 20 6f 75 74 20 6e 75 6c 6c 2e 20 57 65 20 6b 65 65 | e.cursor.starts.out.null..We.kee |
| 18ca0 | 70 20 69 74 20 75 6e 73 65 74 0a 20 20 20 20 20 20 3b 3b 20 75 6e 74 69 6c 20 77 65 20 68 61 76 | p.it.unset.......;;.until.we.hav |
| 18cc0 | 65 20 72 65 63 65 69 76 65 64 20 61 6c 6c 20 74 68 65 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 | e.received.all.the.headers...... |
| 18ce0 | 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 | .(when.(null.gptel-bedrock--stre |
| 18d00 | 61 6d 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 | am-cursor).........(goto-char.(p |
| 18d20 | 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 65 61 72 | oint-min)).........(unless.(sear |
| 18d40 | 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 72 5c 6e 5c 72 5c 6e 22 20 6e 69 6c 20 74 29 20 28 63 6c | ch-forward."\r\n\r\n".nil.t).(cl |
| 18d60 | 2d 72 65 74 75 72 6e 2d 66 72 6f 6d 20 66 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | -return-from.fn)).........(save- |
| 18d80 | 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f | restriction...........(narrow-to |
| 18da0 | 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 29 20 3b 20 52 | -region.(point-min).(point)).;.R |
| 18dc0 | 65 71 75 69 72 65 64 20 62 79 20 6d 61 69 6c 2d 66 65 74 63 68 2d 66 69 65 6c 64 0a 20 20 20 20 | equired.by.mail-fetch-field..... |
| 18de0 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 6e 74 2d 74 79 70 65 20 28 6d 61 69 6c 2d | ......(let.((content-type.(mail- |
| 18e00 | 68 65 61 64 65 72 2d 70 61 72 73 65 2d 63 6f 6e 74 65 6e 74 2d 74 79 70 65 0a 20 20 20 20 20 20 | header-parse-content-type....... |
| 18e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 69 6c 2d 66 | .........................(mail-f |
| 18e40 | 65 74 63 68 2d 66 69 65 6c 64 20 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 29 29 29 29 0a 20 20 | etch-field."Content-Type"))))... |
| 18e60 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 63 6f 6e 74 65 6e 74 2d 74 79 70 | ..........(cl-assert.content-typ |
| 18e80 | 65 20 6e 69 6c 20 22 4e 6f 20 43 6f 6e 74 65 6e 74 2d 54 79 70 65 20 68 65 61 64 65 72 20 66 6f | e.nil."No.Content-Type.header.fo |
| 18ea0 | 75 6e 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 73 74 | und").............(cl-assert.(st |
| 18ec0 | 72 69 6e 67 2d 65 71 75 61 6c 20 28 63 61 72 20 63 6f 6e 74 65 6e 74 2d 74 79 70 65 29 20 22 61 | ring-equal.(car.content-type)."a |
| 18ee0 | 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 61 6d 61 7a 6f 6e 2e 65 76 65 6e 74 73 74 72 65 61 | pplication/vnd.amazon.eventstrea |
| 18f00 | 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 20 22 55 6e | m")........................t."Un |
| 18f20 | 65 78 70 65 63 74 65 64 20 43 6f 6e 74 65 6e 74 2d 54 79 70 65 20 25 53 2c 20 65 78 70 65 63 74 | expected.Content-Type.%S,.expect |
| 18f40 | 65 64 20 25 53 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 62 65 | ed.%S"))).........(setq.gptel-be |
| 18f60 | 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 20 28 70 6f 69 6e 74 2d 6d 61 72 6b | drock--stream-cursor.(point-mark |
| 18f80 | 65 72 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 3a 61 63 63 75 6d 75 6c 61 74 65 64 2d 65 76 | er))..........;;.:accumulated-ev |
| 18fa0 | 65 6e 74 73 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 65 76 65 6e 74 73 20 66 72 6f 6d 20 61 6e | ents.contains.the.events.from.an |
| 18fc0 | 20 69 6e 2d 70 72 6f 67 72 65 73 73 20 6d 65 73 73 61 67 65 2c 20 66 72 6f 6d 20 74 68 65 0a 20 | .in-progress.message,.from.the.. |
| 18fe0 | 20 20 20 20 20 20 20 3b 3b 20 6d 65 73 73 61 67 65 53 74 61 72 74 20 6f 6e 77 61 72 64 73 2e 20 | .......;;.messageStart.onwards.. |
| 19000 | 57 69 74 68 20 65 61 63 68 20 6d 65 73 73 61 67 65 53 74 6f 70 20 69 74 20 67 65 74 73 20 63 6c | With.each.messageStop.it.gets.cl |
| 19020 | 65 61 72 65 64 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 61 | eared.........(plist-put.info.:a |
| 19040 | 63 63 75 6d 75 6c 61 74 65 64 2d 65 76 65 6e 74 73 20 6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 3b | ccumulated-events.nil))........; |
| 19060 | 3b 20 53 74 61 72 74 20 6f 66 20 6d 61 69 6e 20 72 6f 75 74 69 6e 65 0a 20 20 20 20 20 20 28 6c | ;.Start.of.main.routine.......(l |
| 19080 | 65 74 20 28 28 61 63 63 2d 63 65 6c 6c 20 28 63 64 72 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 | et.((acc-cell.(cdr.(plist-member |
| 190a0 | 20 69 6e 66 6f 20 3a 61 63 63 75 6d 75 6c 61 74 65 64 2d 65 76 65 6e 74 73 29 29 29 20 73 74 72 | .info.:accumulated-events))).str |
| 190c0 | 69 6e 67 73 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | ings.prompts).........(goto-char |
| 190e0 | 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 29 0a 20 | .gptel-bedrock--stream-cursor).. |
| 19100 | 20 20 20 20 20 20 20 28 77 68 69 6c 65 2d 6c 65 74 20 28 28 65 76 65 6e 74 20 28 67 70 74 65 6c | .......(while-let.((event.(gptel |
| 19120 | 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 29 29 | -bedrock--parse-stream-message)) |
| 19140 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 76 65 6e 74 2d 74 79 70 65 20 28 61 | )...........(let.((event-type.(a |
| 19160 | 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 22 3a 65 76 65 6e 74 2d 74 79 70 65 22 20 28 70 6c 69 73 | ssoc-default.":event-type".(plis |
| 19180 | 74 2d 67 65 74 20 65 76 65 6e 74 20 3a 68 65 61 64 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 | t-get.event.:headers))))........ |
| 191a0 | 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 65 76 65 6e 74 2d 74 79 70 65 20 27 28 | .....(when.(member.event-type.'( |
| 191c0 | 22 6d 65 73 73 61 67 65 53 74 61 72 74 22 20 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 61 72 | "messageStart"."contentBlockStar |
| 191e0 | 74 22 20 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 65 6c 74 61 22 0a 20 20 20 20 20 20 20 20 20 | t"."contentBlockDelta".......... |
| 19200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 | .............................."c |
| 19220 | 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 6f 70 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontentBlockStop")).............. |
| 19240 | 20 28 70 75 73 68 20 65 76 65 6e 74 20 28 63 61 72 20 61 63 63 2d 63 65 6c 6c 29 29 29 0a 20 20 | .(push.event.(car.acc-cell)))... |
| 19260 | 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 65 76 65 6e 74 2d 74 79 70 65 0a 20 20 20 20 | ..........(pcase.event-type..... |
| 19280 | 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 74 61 64 61 74 61 22 0a 20 20 20 20 20 20 20 20 20 20 | ..........("metadata"........... |
| 192a0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 69 6e 70 75 74 2d 74 6f 6b 65 | .....(plist-put.info.:input-toke |
| 192c0 | 6e 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 65 6e 74 20 27 28 3a 70 61 79 6c | ns.(map-nested-elt.event.'(:payl |
| 192e0 | 6f 61 64 20 3a 75 73 61 67 65 20 3a 69 6e 70 75 74 54 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 20 | oad.:usage.:inputTokens)))...... |
| 19300 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 | ..........(plist-put.info.:outpu |
| 19320 | 74 2d 74 6f 6b 65 6e 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 65 6e 74 20 27 | t-tokens.(map-nested-elt.event.' |
| 19340 | 28 3a 70 61 79 6c 6f 61 64 20 3a 75 73 61 67 65 20 3a 6f 75 74 70 75 74 54 6f 6b 65 6e 73 29 29 | (:payload.:usage.:outputTokens)) |
| 19360 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 | ))...............("contentBlockD |
| 19380 | 65 6c 74 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 | elta"................(when-let.( |
| 193a0 | 28 64 65 6c 74 61 2d 74 65 78 74 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 65 6e | (delta-text.(map-nested-elt.even |
| 193c0 | 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 64 65 6c 74 61 20 3a 74 65 78 74 29 29 29 29 0a 20 20 | t.'(:payload.:delta.:text))))... |
| 193e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 64 65 6c 74 61 2d 74 65 78 74 20 | ...............(push.delta-text. |
| 19400 | 73 74 72 69 6e 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 73 73 61 | strings)))...............("messa |
| 19420 | 67 65 53 74 6f 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 | geStop"................(push.(gp |
| 19440 | 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 73 73 65 6d 62 6c 65 2d 63 6f 6e 74 65 6e 74 2d 62 6c | tel-bedrock--assemble-content-bl |
| 19460 | 6f 63 6b 73 20 28 6e 72 65 76 65 72 73 65 20 28 63 61 72 20 61 63 63 2d 63 65 6c 6c 29 29 29 20 | ocks.(nreverse.(car.acc-cell))). |
| 19480 | 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 | prompts)................(setf.(c |
| 194a0 | 61 72 20 61 63 63 2d 63 65 6c 6c 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.acc-cell).nil)............... |
| 194c0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 6d | .(plist-put.info.:stop-reason.(m |
| 194e0 | 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 65 6e 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a | ap-nested-elt.event.'(:payload.: |
| 19500 | 73 74 6f 70 52 65 61 73 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | stopReason)))................(pl |
| 19520 | 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6d 65 73 73 61 67 65 2d 63 6f 6d 70 6c 65 74 65 20 74 | ist-put.info.:message-complete.t |
| 19540 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 67 70 74 65 6c | ))))).........(move-marker.gptel |
| 19560 | 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 20 28 70 6f 69 6e 74 29 29 | -bedrock--stream-cursor.(point)) |
| 19580 | 0a 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6d 65 73 73 61 67 65 20 70 72 6f 6d 70 | ..........(dolist.(message.promp |
| 195a0 | 74 73 29 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 72 65 63 6f 72 64 2d 74 6f 6f 6c 2d | ts).(gptel-bedrock--record-tool- |
| 195c0 | 75 73 65 20 6d 65 73 73 61 67 65 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c | use.message.info)).........(appl |
| 195e0 | 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 73 74 72 69 6e 67 73 29 29 29 29 | y.#'concat.(nreverse.strings)))) |
| 19600 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d | ))..(defun.gptel-bedrock--parse- |
| 19620 | 73 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 20 28 29 0a 20 20 22 50 61 72 73 65 20 41 57 53 20 42 | stream-message.()..."Parse.AWS.B |
| 19640 | 65 64 72 6f 63 6b 20 65 76 65 6e 74 2d 73 74 72 65 61 6d 20 6d 65 73 73 61 67 65 20 73 74 61 72 | edrock.event-stream.message.star |
| 19660 | 74 69 6e 67 20 61 74 20 63 75 72 72 65 6e 74 20 70 6f 73 69 74 69 6f 6e 2e 0a 50 6f 69 6e 74 20 | ting.at.current.position..Point. |
| 19680 | 73 68 6f 75 6c 64 20 62 65 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e | should.be.at.the.beginning.of.an |
| 196a0 | 20 65 76 65 6e 74 20 69 6e 20 74 68 65 20 60 76 6e 64 2e 61 6d 61 7a 6f 6e 2e 65 76 65 6e 74 2d | .event.in.the.`vnd.amazon.event- |
| 196c0 | 73 74 72 65 61 6d 27 0a 66 6f 72 6d 61 74 2e 20 20 52 65 74 75 72 6e 73 20 70 6c 69 73 74 20 77 | stream'.format...Returns.plist.w |
| 196e0 | 69 74 68 20 3a 68 65 61 64 65 72 73 20 61 6e 64 20 3a 70 61 79 6c 6f 61 64 20 6b 65 79 73 20 69 | ith.:headers.and.:payload.keys.i |
| 19700 | 66 20 73 75 63 63 65 73 73 66 75 6c 2c 20 6e 69 6c 20 69 66 0a 69 6e 63 6f 6d 70 6c 65 74 65 2e | f.successful,.nil.if.incomplete. |
| 19720 | 22 0a 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 77 73 6c 61 62 | "...;;.https://github.com/awslab |
| 19740 | 73 2f 61 77 73 2d 63 2d 65 76 65 6e 74 2d 73 74 72 65 61 6d 20 68 61 73 20 64 6f 63 75 6d 65 6e | s/aws-c-event-stream.has.documen |
| 19760 | 74 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 66 6f 72 6d 61 74 0a 20 20 3b 3b 20 54 68 65 20 66 | tation.of.this.format...;;.The.f |
| 19780 | 6f 72 6d 61 74 20 63 6f 6e 73 69 73 74 73 20 6f 66 20 74 68 72 65 65 20 6d 61 69 6e 20 73 65 63 | ormat.consists.of.three.main.sec |
| 197a0 | 74 69 6f 6e 73 3a 20 50 72 65 6c 75 64 65 2c 20 44 61 74 61 2c 20 61 6e 64 20 4d 65 73 73 61 67 | tions:.Prelude,.Data,.and.Messag |
| 197c0 | 65 20 43 52 43 2e 0a 20 20 3b 3b 20 31 2e 20 50 72 65 6c 75 64 65 20 28 31 32 20 62 79 74 65 73 | e.CRC....;;.1..Prelude.(12.bytes |
| 197e0 | 29 0a 20 20 3b 3b 20 20 20 20 61 2e 20 54 6f 74 61 6c 20 42 79 74 65 20 4c 65 6e 67 74 68 20 28 | )...;;....a..Total.Byte.Length.( |
| 19800 | 34 20 62 79 74 65 73 29 3a 20 53 70 65 63 69 66 69 65 73 20 74 68 65 20 74 6f 74 61 6c 20 6c 65 | 4.bytes):.Specifies.the.total.le |
| 19820 | 6e 67 74 68 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 65 2e 0a 20 20 3b 3b 20 20 20 20 62 2e 20 | ngth.of.the.message....;;....b.. |
| 19840 | 48 65 61 64 65 72 73 20 42 79 74 65 20 4c 65 6e 67 74 68 20 28 34 20 62 79 74 65 73 29 3a 20 49 | Headers.Byte.Length.(4.bytes):.I |
| 19860 | 6e 64 69 63 61 74 65 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 68 65 61 64 65 | ndicates.the.length.of.the.heade |
| 19880 | 72 73 20 73 65 63 74 69 6f 6e 2e 0a 20 20 3b 3b 20 20 20 20 63 2e 20 50 72 65 6c 75 64 65 20 43 | rs.section....;;....c..Prelude.C |
| 198a0 | 52 43 20 28 34 20 62 79 74 65 73 29 3a 20 41 20 43 52 43 20 76 61 6c 75 65 20 66 6f 72 20 76 61 | RC.(4.bytes):.A.CRC.value.for.va |
| 198c0 | 6c 69 64 61 74 69 6e 67 20 74 68 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66 20 74 68 65 20 70 72 | lidating.the.integrity.of.the.pr |
| 198e0 | 65 6c 75 64 65 2e 0a 20 20 3b 3b 20 32 2e 20 44 61 74 61 20 28 76 61 72 69 61 62 6c 65 20 6c 65 | elude....;;.2..Data.(variable.le |
| 19900 | 6e 67 74 68 29 0a 20 20 3b 3b 20 20 20 20 61 2e 20 48 65 61 64 65 72 73 3a 20 41 6e 20 61 72 72 | ngth)...;;....a..Headers:.An.arr |
| 19920 | 61 79 20 6f 66 20 70 61 63 6b 65 64 20 68 65 61 64 65 72 73 2e 20 45 61 63 68 20 68 65 61 64 65 | ay.of.packed.headers..Each.heade |
| 19940 | 72 20 68 61 73 20 61 20 73 70 65 63 69 66 69 63 20 66 6f 72 6d 61 74 20 64 6f 63 75 6d 65 6e 74 | r.has.a.specific.format.document |
| 19960 | 65 64 20 69 6e 0a 20 20 3b 3b 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d | ed.in...;;.......gptel-bedrock-- |
| 19980 | 70 61 72 73 65 2d 68 65 61 64 65 72 73 0a 20 20 3b 3b 20 20 20 20 62 2e 20 50 61 79 6c 6f 61 64 | parse-headers...;;....b..Payload |
| 199a0 | 3a 20 54 68 65 20 6d 61 69 6e 20 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 6e 74 2c 20 61 6c 73 6f | :.The.main.message.content,.also |
| 199c0 | 20 6f 66 20 76 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 2e 20 4c 65 6e 67 74 68 20 63 61 6e 20 | .of.variable.length..Length.can. |
| 199e0 | 62 65 20 63 6f 6d 70 75 74 65 64 20 66 72 6f 6d 0a 20 20 3b 3b 20 20 20 20 20 20 20 74 68 65 20 | be.computed.from...;;.......the. |
| 19a00 | 70 72 65 6c 75 64 65 20 66 69 65 6c 64 73 20 62 79 20 73 75 62 74 72 61 63 74 69 6e 67 20 74 68 | prelude.fields.by.subtracting.th |
| 19a20 | 65 20 70 72 65 6c 75 64 65 20 6c 65 6e 67 74 68 2c 20 68 65 61 64 65 72 73 20 6c 65 6e 67 74 68 | e.prelude.length,.headers.length |
| 19a40 | 2c 20 61 6e 64 20 6d 65 73 73 61 67 65 20 43 52 43 0a 20 20 3b 3b 20 20 20 20 20 20 20 6c 65 6e | ,.and.message.CRC...;;.......len |
| 19a60 | 67 74 68 20 66 72 6f 6d 20 74 68 65 20 74 6f 74 61 6c 2e 0a 20 20 3b 3b 20 33 2e 20 4d 65 73 73 | gth.from.the.total....;;.3..Mess |
| 19a80 | 61 67 65 20 43 52 43 20 28 34 20 62 79 74 65 73 29 3a 20 41 20 34 2d 62 79 74 65 20 43 52 43 20 | age.CRC.(4.bytes):.A.4-byte.CRC. |
| 19aa0 | 74 6f 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 69 6e 74 65 67 72 69 74 79 20 6f 66 20 74 68 65 | to.validate.the.integrity.of.the |
| 19ac0 | 20 65 6e 74 69 72 65 20 6d 65 73 73 61 67 65 2e 0a 0a 20 20 3b 3b 20 28 70 6f 69 6e 74 2d 6d 61 | .entire.message.....;;.(point-ma |
| 19ae0 | 78 29 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 | x).is.the.position.after.the.las |
| 19b00 | 74 20 63 68 61 72 61 63 74 65 72 2c 20 68 65 6e 63 65 20 74 68 65 20 75 73 65 20 6f 66 20 3e 3d | t.character,.hence.the.use.of.>= |
| 19b20 | 20 61 6e 64 20 6e 6f 74 20 3e 20 62 65 6c 6f 77 0a 20 20 28 77 68 65 6e 20 28 3e 3d 20 28 2d 20 | .and.not.>.below...(when.(>=.(-. |
| 19b40 | 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 29 29 20 31 32 29 0a 20 20 20 20 28 6c 65 | (point-max).(point)).12).....(le |
| 19b60 | 74 2a 20 28 28 70 72 65 6c 75 64 65 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 | t*.((prelude-start.(point))..... |
| 19b80 | 20 20 20 20 20 20 20 28 70 72 65 6c 75 64 65 2d 6c 65 6e 67 74 68 20 31 32 29 0a 20 20 20 20 20 | .......(prelude-length.12)...... |
| 19ba0 | 20 20 20 20 20 20 28 70 72 65 6c 75 64 65 2d 65 6e 64 20 28 2b 20 70 72 65 6c 75 64 65 2d 73 74 | ......(prelude-end.(+.prelude-st |
| 19bc0 | 61 72 74 20 70 72 65 6c 75 64 65 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | art.prelude-length))............ |
| 19be0 | 28 70 72 65 6c 75 64 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 | (prelude.(buffer-substring-no-pr |
| 19c00 | 6f 70 65 72 74 69 65 73 20 70 72 65 6c 75 64 65 2d 73 74 61 72 74 20 70 72 65 6c 75 64 65 2d 65 | operties.prelude-start.prelude-e |
| 19c20 | 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 20 28 67 | nd))............(total-length.(g |
| 19c40 | 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 73 75 | ptel-bedrock--bytes-to-int32.(su |
| 19c60 | 62 73 74 72 69 6e 67 20 70 72 65 6c 75 64 65 20 30 20 34 29 29 29 0a 20 20 20 20 20 20 20 20 20 | bstring.prelude.0.4))).......... |
| 19c80 | 20 20 28 68 65 61 64 65 72 73 2d 6c 65 6e 67 74 68 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b | ..(headers-length.(gptel-bedrock |
| 19ca0 | 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 73 75 62 73 74 72 69 6e 67 20 70 72 65 6c | --bytes-to-int32.(substring.prel |
| 19cc0 | 75 64 65 20 34 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 2d 73 | ude.4.8)))............(headers-s |
| 19ce0 | 74 61 72 74 20 70 72 65 6c 75 64 65 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 | tart.prelude-end)............(he |
| 19d00 | 61 64 65 72 73 2d 65 6e 64 20 28 2b 20 68 65 61 64 65 72 73 2d 73 74 61 72 74 20 68 65 61 64 65 | aders-end.(+.headers-start.heade |
| 19d20 | 72 73 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 73 20 70 | rs-length))............headers.p |
| 19d40 | 61 79 6c 6f 61 64 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 64 6f 6e 27 74 20 76 61 6c 69 64 61 | ayload).......;;.We.don't.valida |
| 19d60 | 74 65 20 65 69 74 68 65 72 20 43 52 43 20 62 65 63 61 75 73 65 20 69 73 6e 27 74 20 74 68 61 74 | te.either.CRC.because.isn't.that |
| 19d80 | 20 77 68 61 74 20 74 68 65 20 6e 65 74 77 6f 72 6b 69 6e 67 20 73 74 61 63 6b 20 69 73 20 66 6f | .what.the.networking.stack.is.fo |
| 19da0 | 72 3f 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 | r?........(when.(>=.(point-max). |
| 19dc0 | 28 2b 20 70 72 65 6c 75 64 65 2d 73 74 61 72 74 20 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 29 29 0a | (+.prelude-start.total-length)). |
| 19de0 | 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 72 73 2d 73 74 61 72 74 | ........(goto-char.headers-start |
| 19e00 | 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 73 20 28 67 70 74 65 6c 2d 62 | ).........(setq.headers.(gptel-b |
| 19e20 | 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 68 65 61 64 65 72 73 20 28 62 75 66 66 65 72 2d 73 75 | edrock--parse-headers.(buffer-su |
| 19e40 | 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 68 65 61 64 65 72 73 2d 65 6e 64 29 29 29 0a 20 | bstring.(point).headers-end))).. |
| 19e60 | 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 65 71 75 61 6c 20 28 61 73 73 6f 63 2d | .......(cl-assert.(equal.(assoc- |
| 19e80 | 64 65 66 61 75 6c 74 20 22 3a 6d 65 73 73 61 67 65 2d 74 79 70 65 22 20 68 65 61 64 65 72 73 29 | default.":message-type".headers) |
| 19ea0 | 20 22 65 76 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 20 22 | ."event")....................t." |
| 19ec0 | 55 6e 6b 6e 6f 77 6e 20 6d 65 73 73 61 67 65 20 74 79 70 65 20 25 53 3b 20 65 78 70 65 63 74 65 | Unknown.message.type.%S;.expecte |
| 19ee0 | 64 20 25 53 22 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 65 71 75 61 6c | d.%S").........(cl-assert.(equal |
| 19f00 | 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 22 3a 63 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 | .(assoc-default.":content-type". |
| 19f20 | 68 65 61 64 65 72 73 29 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 20 20 | headers)."application/json").... |
| 19f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 20 22 55 6e 65 78 70 65 63 74 65 64 20 63 6f | ................t."Unexpected.co |
| 19f60 | 6e 74 65 6e 74 2d 74 79 70 65 20 25 53 20 69 73 20 6e 6f 74 20 25 53 22 29 0a 0a 20 20 20 20 20 | ntent-type.%S.is.not.%S")....... |
| 19f80 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 72 73 2d 65 6e 64 29 0a 20 20 20 20 20 | ...(goto-char.headers-end)...... |
| 19fa0 | 20 20 20 28 73 65 74 71 20 70 61 79 6c 6f 61 64 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 | ...(setq.payload.(gptel--json-re |
| 19fc0 | 61 64 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 65 73 73 61 67 65 2d 63 72 63 | ad)).........(let*.((message-crc |
| 19fe0 | 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 2d 6c 65 6e 67 | .4)................(payload-leng |
| 1a000 | 74 68 20 28 2d 20 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 20 68 65 61 64 65 72 73 2d 6c 65 6e 67 74 | th.(-.total-length.headers-lengt |
| 1a020 | 68 20 70 72 65 6c 75 64 65 2d 6c 65 6e 67 74 68 20 6d 65 73 73 61 67 65 2d 63 72 63 29 29 29 0a | h.prelude-length.message-crc))). |
| 1a040 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 3d 20 28 2d 20 28 70 6f 69 6e | ..........(cl-assert.(=.(-.(poin |
| 1a060 | 74 29 20 68 65 61 64 65 72 73 2d 65 6e 64 29 20 70 61 79 6c 6f 61 64 2d 6c 65 6e 67 74 68 29 0a | t).headers-end).payload-length). |
| 1a080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 20 22 55 6e 65 78 70 65 63 74 | .....................t."Unexpect |
| 1a0a0 | 65 64 20 70 61 79 6c 6f 61 64 20 6c 65 6e 67 74 68 20 25 64 3b 20 65 78 70 65 63 74 65 64 20 25 | ed.payload.length.%d;.expected.% |
| 1a0c0 | 64 2e 22 29 29 0a 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 70 72 65 | d."))..........(goto-char.(+.pre |
| 1a0e0 | 6c 75 64 65 2d 73 74 61 72 74 20 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 | lude-start.total-length))....... |
| 1a100 | 20 20 60 28 3a 68 65 61 64 65 72 73 20 2c 68 65 61 64 65 72 73 20 3a 70 61 79 6c 6f 61 64 20 2c | ..`(:headers.,headers.:payload., |
| 1a120 | 70 61 79 6c 6f 61 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f | payload)))))..(defun.gptel-bedro |
| 1a140 | 63 6b 2d 2d 70 61 72 73 65 2d 68 65 61 64 65 72 73 20 28 68 65 61 64 65 72 73 2d 64 61 74 61 29 | ck--parse-headers.(headers-data) |
| 1a160 | 0a 20 20 22 50 61 72 73 65 20 48 45 41 44 45 52 53 2d 44 41 54 41 20 69 6e 74 6f 20 61 6c 69 73 | ..."Parse.HEADERS-DATA.into.alis |
| 1a180 | 74 20 6f 66 20 28 4e 41 4d 45 20 2e 20 56 41 4c 55 45 29 2e 0a 4b 65 79 73 20 61 72 65 20 73 74 | t.of.(NAME...VALUE)..Keys.are.st |
| 1a1a0 | 72 69 6e 67 2d 76 61 6c 75 65 64 2c 20 6c 6f 77 65 72 2d 63 61 73 65 64 20 6e 61 6d 65 73 2e 22 | ring-valued,.lower-cased.names." |
| 1a1c0 | 0a 20 20 3b 3b 20 48 65 61 64 65 72 20 77 69 72 65 20 66 6f 72 6d 61 74 3a 0a 20 20 3b 3b 20 20 | ...;;.Header.wire.format:...;;.. |
| 1a1e0 | 20 31 2e 20 48 65 61 64 65 72 20 4e 61 6d 65 20 42 79 74 65 20 4c 65 6e 67 74 68 20 28 31 20 62 | .1..Header.Name.Byte.Length.(1.b |
| 1a200 | 79 74 65 29 3a 20 53 70 65 63 69 66 69 65 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 | yte):.Specifies.the.length.of.th |
| 1a220 | 65 20 68 65 61 64 65 72 20 6e 61 6d 65 2e 0a 20 20 3b 3b 20 20 20 32 2e 20 48 65 61 64 65 72 20 | e.header.name....;;...2..Header. |
| 1a240 | 4e 61 6d 65 20 28 53 74 72 69 6e 67 29 20 28 56 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 29 3a | Name.(String).(Variable.length): |
| 1a260 | 20 43 6f 6e 74 61 69 6e 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 | .Contains.the.name.of.the.header |
| 1a280 | 2e 0a 20 20 3b 3b 20 20 20 33 2e 20 48 65 61 64 65 72 20 56 61 6c 75 65 20 54 79 70 65 20 28 31 | ....;;...3..Header.Value.Type.(1 |
| 1a2a0 | 20 62 79 74 65 29 3a 20 49 64 65 6e 74 69 66 69 65 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 | .byte):.Identifies.the.type.of.t |
| 1a2c0 | 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 2e 0a 20 20 3b 3b 20 20 20 34 2e 20 56 61 6c 75 65 | he.header.value....;;...4..Value |
| 1a2e0 | 20 53 74 72 69 6e 67 20 42 79 74 65 20 4c 65 6e 67 74 68 20 28 32 20 62 79 74 65 73 29 3a 20 49 | .String.Byte.Length.(2.bytes):.I |
| 1a300 | 6e 64 69 63 61 74 65 73 20 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 76 61 6c 75 65 | ndicates.the.length.of.the.value |
| 1a320 | 20 73 74 72 69 6e 67 2e 0a 20 20 3b 3b 20 20 20 35 2e 20 56 61 6c 75 65 20 28 56 61 72 69 61 62 | .string....;;...5..Value.(Variab |
| 1a340 | 6c 65 20 6c 65 6e 67 74 68 29 3a 20 48 6f 6c 64 73 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c | le.length):.Holds.the.actual.val |
| 1a360 | 75 65 20 62 79 74 65 73 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 30 29 20 28 6d 61 78 20 28 6c | ue.bytes...(let.((pos.0).(max.(l |
| 1a380 | 65 6e 67 74 68 20 68 65 61 64 65 72 73 2d 64 61 74 61 29 29 20 68 65 61 64 65 72 73 29 0a 20 20 | ength.headers-data)).headers)... |
| 1a3a0 | 20 20 28 63 6c 2d 66 6c 65 74 20 28 28 70 6f 73 2b 2b 20 28 29 20 28 70 72 6f 67 31 20 70 6f 73 | ..(cl-flet.((pos++.().(prog1.pos |
| 1a3c0 | 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(cl-incf.pos)))...............( |
| 1a3e0 | 2b 2b 70 6f 73 20 28 6e 29 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 20 6e 29 29 0a 20 20 20 20 20 | ++pos.(n).(cl-incf.pos.n))...... |
| 1a400 | 20 20 20 20 20 20 20 20 20 28 75 74 66 38 20 28 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 29 20 | .........(utf8.(unibyte-string). |
| 1a420 | 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 75 6e 69 62 79 74 65 2d 73 74 | (decode-coding-string.unibyte-st |
| 1a440 | 72 69 6e 67 20 27 75 74 66 2d 38 20 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c | ring.'utf-8.t))).......(while.(< |
| 1a460 | 20 70 6f 73 20 6d 61 78 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 2d 6c | .pos.max).........(let*.((name-l |
| 1a480 | 65 6e 20 28 61 72 65 66 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 28 70 6f 73 2b 2b 29 29 29 0a | en.(aref.headers-data.(pos++))). |
| 1a4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 73 75 62 73 74 72 69 6e 67 20 | ...............(name.(substring. |
| 1a4c0 | 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 6e 61 6d 65 2d 6c 65 6e | headers-data.pos.(++pos.name-len |
| 1a4e0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 61 72 65 66 20 68 | )))................(type.(aref.h |
| 1a500 | 65 61 64 65 72 73 2d 64 61 74 61 20 28 70 6f 73 2b 2b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | eaders-data.(pos++)))........... |
| 1a520 | 20 20 20 20 20 28 76 61 6c 75 65 2d 6c 65 6e 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d | .....(value-len.(gptel-bedrock-- |
| 1a540 | 62 79 74 65 73 2d 74 6f 2d 69 6e 74 31 36 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 | bytes-to-int16.(substring.header |
| 1a560 | 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 | s-data.pos.(++pos.2))))......... |
| 1a580 | 20 20 20 20 20 20 20 28 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | .......(value.................(p |
| 1a5a0 | 63 61 73 65 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 | case.type...................;;.H |
| 1a5c0 | 65 61 64 65 72 20 74 79 70 65 73 20 66 72 6f 6d 20 68 74 74 70 73 3a 2f 2f 61 77 73 6c 61 62 73 | eader.types.from.https://awslabs |
| 1a5e0 | 2e 67 69 74 68 75 62 2e 69 6f 2f 61 77 73 2d 63 72 74 2d 70 79 74 68 6f 6e 2f 61 70 69 2f 65 76 | .github.io/aws-crt-python/api/ev |
| 1a600 | 65 6e 74 73 74 72 65 61 6d 2e 68 74 6d 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | entstream.html.................. |
| 1a620 | 20 28 30 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 20 3a 6a 73 6f | .(0.t)...................(1.:jso |
| 1a640 | 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 32 20 28 6c | n-false)...................(2.(l |
| 1a660 | 65 74 20 28 28 72 65 73 20 28 61 72 65 66 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 28 70 6f 73 | et.((res.(aref.headers-data.(pos |
| 1a680 | 2b 2b 29 29 29 29 20 3b 20 69 6e 74 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ++)))).;.int8................... |
| 1a6a0 | 20 20 20 20 20 28 69 66 20 28 3e 20 72 65 73 20 31 32 37 29 20 28 2d 20 72 65 73 20 32 35 36 29 | .....(if.(>.res.127).(-.res.256) |
| 1a6c0 | 20 72 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 33 20 28 67 70 | .res)))...................(3.(gp |
| 1a6e0 | 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 31 36 20 28 73 75 62 | tel-bedrock--bytes-to-int16.(sub |
| 1a700 | 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 32 | string.headers-data.pos.(++pos.2 |
| 1a720 | 29 29 29 29 20 3b 20 69 6e 74 31 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )))).;.int16...................( |
| 1a740 | 34 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 | 4.(gptel-bedrock--bytes-to-int32 |
| 1a760 | 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b | .(substring.headers-data.pos.(++ |
| 1a780 | 70 6f 73 20 34 29 29 29 29 20 3b 20 69 6e 74 33 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pos.4)))).;.int32............... |
| 1a7a0 | 20 20 20 20 28 35 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d | ....(5.(gptel-bedrock--bytes-to- |
| 1a7c0 | 69 6e 74 36 34 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f | int64.(substring.headers-data.po |
| 1a7e0 | 73 20 28 2b 2b 70 6f 73 20 38 29 29 29 29 20 3b 20 69 6e 74 36 34 0a 20 20 20 20 20 20 20 20 20 | s.(++pos.8)))).;.int64.......... |
| 1a800 | 20 20 20 20 20 20 20 20 20 28 36 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 | .........(6.(substring.headers-d |
| 1a820 | 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 76 61 6c 75 65 2d 6c 65 6e 29 29 29 20 20 20 20 20 | ata.pos.(++pos.value-len)))..... |
| 1a840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 61 77 20 62 79 74 65 73 0a | ....................;.raw.bytes. |
| 1a860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 37 20 28 75 74 66 38 20 28 73 75 62 73 | ..................(7.(utf8.(subs |
| 1a880 | 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 76 61 | tring.headers-data.pos.(++pos.va |
| 1a8a0 | 6c 75 65 2d 6c 65 6e 29 29 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 | lue-len))))..................;.u |
| 1a8c0 | 74 66 38 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 38 20 | tf8.string...................(8. |
| 1a8e0 | 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 20 20 20 20 20 20 3b 20 36 34 20 62 69 74 20 69 6e 74 20 | (decode-time.......;.64.bit.int. |
| 1a900 | 77 69 74 68 20 73 65 63 6f 6e 64 73 20 73 69 6e 63 65 20 74 68 65 20 55 6e 69 78 20 65 70 6f 63 | with.seconds.since.the.Unix.epoc |
| 1a920 | 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 | h.......................(gptel-b |
| 1a940 | 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 36 34 20 28 73 75 62 73 74 72 69 6e | edrock--bytes-to-int64.(substrin |
| 1a960 | 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 38 29 29 29 20 74 | g.headers-data.pos.(++pos.8))).t |
| 1a980 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 39 20 28 67 70 74 65 6c 2d 62 | ))...................(9.(gptel-b |
| 1a9a0 | 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 75 75 69 64 20 3b 20 31 36 20 62 79 74 65 20 | edrock--bytes-to-uuid.;.16.byte. |
| 1a9c0 | 55 55 49 44 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 | UUID.......................(subs |
| 1a9e0 | 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 31 36 | tring.headers-data.pos.(++pos.16 |
| 1aa00 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 65 72 72 6f 72 | ))))...................(_.(error |
| 1aa20 | 20 22 55 6e 6b 6e 6f 77 6e 20 68 65 61 64 65 72 20 74 79 70 65 3a 20 25 64 22 20 74 79 70 65 29 | ."Unknown.header.type:.%d".type) |
| 1aa40 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 64 6f 77 6e | ))))...........(push.(cons.(down |
| 1aa60 | 63 61 73 65 20 28 75 74 66 38 20 6e 61 6d 65 29 29 20 76 61 6c 75 65 29 20 68 65 61 64 65 72 73 | case.(utf8.name)).value).headers |
| 1aa80 | 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 3d 20 70 6f 73 20 6d 61 78 29 | ))).......(cl-assert.(=.pos.max) |
| 1aaa0 | 20 74 20 22 48 65 61 64 65 72 73 20 64 69 64 20 6e 6f 74 20 70 61 72 73 65 20 63 6c 65 61 6e 6c | .t."Headers.did.not.parse.cleanl |
| 1aac0 | 79 2e 20 70 6f 73 3d 25 64 20 20 68 65 61 64 65 72 2d 6c 65 6e 3d 25 64 22 29 0a 20 20 20 20 20 | y..pos=%d..header-len=%d")...... |
| 1aae0 | 20 68 65 61 64 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 | .headers)))..(defun.gptel-bedroc |
| 1ab00 | 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 31 36 20 28 62 79 74 65 73 29 0a 20 20 22 43 6f 6e | k--bytes-to-int16.(bytes)..."Con |
| 1ab20 | 76 65 72 74 20 32 2d 62 79 74 65 20 73 74 72 69 6e 67 20 42 59 54 45 53 20 74 6f 20 62 69 67 2d | vert.2-byte.string.BYTES.to.big- |
| 1ab40 | 65 6e 64 69 61 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 | endian.signed.integer."...(let.( |
| 1ab60 | 28 62 30 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 30 29 20 32 35 35 29 29 | (b0.(logand.(aref.bytes.0).255)) |
| 1ab80 | 0a 20 20 20 20 20 20 20 20 28 62 31 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 | .........(b1.(logand.(aref.bytes |
| 1aba0 | 20 31 29 20 32 35 35 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 2b 20 | .1).255))).....(let.((result.(+. |
| 1abc0 | 28 61 73 68 20 62 30 20 38 29 20 62 31 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 62 | (ash.b0.8).b1))).......(if.(>=.b |
| 1abe0 | 30 20 23 78 38 30 29 20 28 2d 20 72 65 73 75 6c 74 20 28 61 73 68 20 31 20 31 36 29 29 20 72 65 | 0.#x80).(-.result.(ash.1.16)).re |
| 1ac00 | 73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d | sult))))..(defun.gptel-bedrock-- |
| 1ac20 | 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 62 79 74 65 73 29 0a 20 20 22 43 6f 6e 76 65 72 | bytes-to-int32.(bytes)..."Conver |
| 1ac40 | 74 20 34 2d 62 79 74 65 20 73 74 72 69 6e 67 20 42 59 54 45 53 20 74 6f 20 62 69 67 2d 65 6e 64 | t.4-byte.string.BYTES.to.big-end |
| 1ac60 | 69 61 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 30 | ian.signed.integer."...(let.((b0 |
| 1ac80 | 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 30 29 20 32 35 35 29 29 0a 20 20 | .(logand.(aref.bytes.0).255))... |
| 1aca0 | 20 20 20 20 20 20 28 62 31 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 31 29 | ......(b1.(logand.(aref.bytes.1) |
| 1acc0 | 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 32 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 | .255)).........(b2.(logand.(aref |
| 1ace0 | 20 62 79 74 65 73 20 32 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 33 20 28 6c 6f 67 | .bytes.2).255)).........(b3.(log |
| 1ad00 | 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 33 29 20 32 35 35 29 29 29 0a 20 20 20 20 28 6c | and.(aref.bytes.3).255))).....(l |
| 1ad20 | 65 74 20 28 28 72 65 73 75 6c 74 20 28 2b 20 28 61 73 68 20 62 30 20 32 34 29 20 28 61 73 68 20 | et.((result.(+.(ash.b0.24).(ash. |
| 1ad40 | 62 31 20 31 36 29 20 28 61 73 68 20 62 32 20 38 29 20 62 33 29 29 29 0a 20 20 20 20 20 20 28 69 | b1.16).(ash.b2.8).b3))).......(i |
| 1ad60 | 66 20 28 3e 3d 20 62 30 20 23 78 38 30 29 20 28 2d 20 72 65 73 75 6c 74 20 28 61 73 68 20 31 20 | f.(>=.b0.#x80).(-.result.(ash.1. |
| 1ad80 | 33 32 29 29 20 72 65 73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 | 32)).result))))..(defun.gptel-be |
| 1ada0 | 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 36 34 20 28 62 79 74 65 73 29 0a 20 20 | drock--bytes-to-int64.(bytes)... |
| 1adc0 | 22 43 6f 6e 76 65 72 74 20 38 2d 62 79 74 65 20 73 74 72 69 6e 67 20 42 59 54 45 53 20 74 6f 20 | "Convert.8-byte.string.BYTES.to. |
| 1ade0 | 62 69 67 2d 65 6e 64 69 61 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 6c | big-endian.signed.integer."...(l |
| 1ae00 | 65 74 20 28 28 62 30 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 30 29 20 32 | et.((b0.(logand.(aref.bytes.0).2 |
| 1ae20 | 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 31 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 | 55)).........(b1.(logand.(aref.b |
| 1ae40 | 79 74 65 73 20 31 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 32 20 28 6c 6f 67 61 6e | ytes.1).255)).........(b2.(logan |
| 1ae60 | 64 20 28 61 72 65 66 20 62 79 74 65 73 20 32 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 | d.(aref.bytes.2).255)).........( |
| 1ae80 | 62 33 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 33 29 20 32 35 35 29 29 0a | b3.(logand.(aref.bytes.3).255)). |
| 1aea0 | 20 20 20 20 20 20 20 20 28 62 34 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 | ........(b4.(logand.(aref.bytes. |
| 1aec0 | 34 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 35 20 28 6c 6f 67 61 6e 64 20 28 61 72 | 4).255)).........(b5.(logand.(ar |
| 1aee0 | 65 66 20 62 79 74 65 73 20 35 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 36 20 28 6c | ef.bytes.5).255)).........(b6.(l |
| 1af00 | 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 36 29 20 32 35 35 29 29 0a 20 20 20 20 20 | ogand.(aref.bytes.6).255))...... |
| 1af20 | 20 20 20 28 62 37 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 37 29 20 32 35 | ...(b7.(logand.(aref.bytes.7).25 |
| 1af40 | 35 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 2d 75 36 33 20 28 2b 20 28 61 | 5))).....(let.((result-u63.(+.(a |
| 1af60 | 73 68 20 28 6c 6f 67 61 6e 64 20 62 30 20 23 78 37 66 29 20 35 36 29 20 28 61 73 68 20 62 31 20 | sh.(logand.b0.#x7f).56).(ash.b1. |
| 1af80 | 34 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 | 48)..........................(as |
| 1afa0 | 68 20 62 32 20 34 30 29 20 28 61 73 68 20 62 33 20 33 32 29 20 28 61 73 68 20 62 34 20 32 34 29 | h.b2.40).(ash.b3.32).(ash.b4.24) |
| 1afc0 | 20 28 61 73 68 20 62 35 20 31 36 29 20 28 61 73 68 20 62 36 20 38 29 20 62 37 29 29 29 0a 20 20 | .(ash.b5.16).(ash.b6.8).b7)))... |
| 1afe0 | 20 20 20 20 28 69 66 20 28 3e 3d 20 62 30 20 23 78 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ....(if.(>=.b0.#x80)...........( |
| 1b000 | 2d 20 72 65 73 75 6c 74 2d 75 36 33 20 28 61 73 68 20 31 20 36 33 29 29 0a 20 20 20 20 20 20 20 | -.result-u63.(ash.1.63))........ |
| 1b020 | 20 72 65 73 75 6c 74 2d 75 36 33 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 | .result-u63))))..(defun.gptel-be |
| 1b040 | 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 75 75 69 64 20 28 62 79 74 65 73 29 0a 20 20 22 | drock--bytes-to-uuid.(bytes)..." |
| 1b060 | 43 6f 6e 76 65 72 74 20 61 20 31 36 2d 62 79 74 65 20 75 6e 69 62 79 74 65 20 42 59 54 45 53 20 | Convert.a.16-byte.unibyte.BYTES. |
| 1b080 | 74 6f 20 61 20 33 36 20 63 68 61 72 61 63 74 65 72 20 55 55 49 44 20 73 74 72 69 6e 67 2e 22 0a | to.a.36.character.UUID.string.". |
| 1b0a0 | 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 62 79 74 65 73 29 20 28 | ..(unless.(and.(stringp.bytes).( |
| 1b0c0 | 3d 20 28 6c 65 6e 67 74 68 20 62 79 74 65 73 29 20 31 36 29 29 0a 20 20 20 20 28 65 72 72 6f 72 | =.(length.bytes).16)).....(error |
| 1b0e0 | 20 22 49 6e 70 75 74 20 6d 75 73 74 20 62 65 20 61 20 31 36 2d 62 79 74 65 20 75 6e 69 62 79 74 | ."Input.must.be.a.16-byte.unibyt |
| 1b100 | 65 20 73 74 72 69 6e 67 22 29 29 0a 20 20 28 6c 65 74 20 28 28 68 65 78 20 28 6d 61 70 63 6f 6e | e.string"))...(let.((hex.(mapcon |
| 1b120 | 63 61 74 20 28 6c 61 6d 62 64 61 20 28 69 29 20 28 66 6f 72 6d 61 74 20 22 25 30 32 78 22 20 28 | cat.(lambda.(i).(format."%02x".( |
| 1b140 | 61 72 65 66 20 62 79 74 65 73 20 69 29 29 29 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 | aref.bytes.i))).(number-sequence |
| 1b160 | 20 30 20 31 35 29 20 22 22 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 2d | .0.15).""))).....(format."%s-%s- |
| 1b180 | 25 73 2d 25 73 2d 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 | %s-%s-%s".............(substring |
| 1b1a0 | 20 68 65 78 20 30 20 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 | .hex.0.8).............(substring |
| 1b1c0 | 20 68 65 78 20 38 20 31 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e | .hex.8.12).............(substrin |
| 1b1e0 | 67 20 68 65 78 20 31 32 20 31 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 | g.hex.12.16).............(substr |
| 1b200 | 69 6e 67 20 68 65 78 20 31 36 20 32 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 | ing.hex.16.20).............(subs |
| 1b220 | 74 72 69 6e 67 20 68 65 78 20 32 30 20 33 32 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | tring.hex.20.32))))..(defun.gpte |
| 1b240 | 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 73 73 65 6d 62 6c 65 2d 63 6f 6e 74 65 6e 74 2d 62 6c 6f 63 | l-bedrock--assemble-content-bloc |
| 1b260 | 6b 73 20 28 65 76 65 6e 74 73 29 0a 20 20 22 42 75 69 6c 64 20 61 20 63 6f 6d 70 6c 65 74 65 64 | ks.(events)..."Build.a.completed |
| 1b280 | 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 63 6f 6e 74 61 69 6e 65 64 20 66 72 6f 6d 20 45 56 | .prompt.object.contained.from.EV |
| 1b2a0 | 45 4e 54 53 2e 0a 45 56 45 4e 54 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 | ENTS..EVENTS.should.be.a.list.of |
| 1b2c0 | 20 6d 65 73 73 61 67 65 53 74 61 72 74 2c 20 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 61 72 74 | .messageStart,.contentBlockStart |
| 1b2e0 | 2c 0a 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 65 6c 74 61 2c 20 61 6e 64 20 63 6f 6e 74 65 6e 74 | ,.contentBlockDelta,.and.content |
| 1b300 | 42 6c 6f 63 6b 53 74 6f 70 20 73 74 72 65 61 6d 20 6d 65 73 73 61 67 65 73 20 61 73 0a 72 65 74 | BlockStop.stream.messages.as.ret |
| 1b320 | 75 72 6e 65 64 20 62 79 20 60 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 73 | urned.by.`gptel-bedrock--parse-s |
| 1b340 | 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 27 2c 20 69 6e 20 74 68 65 20 6f 72 64 65 72 0a 72 65 63 | tream-message',.in.the.order.rec |
| 1b360 | 65 69 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 6c 6f 63 6b 73 20 28 6d 61 6b 65 2d 68 61 | eived."...(let.((blocks.(make-ha |
| 1b380 | 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 6c 29 29 0a 20 20 20 20 20 20 20 20 72 | sh-table.:test.#'eql)).........r |
| 1b3a0 | 6f 6c 65 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 76 65 6e 74 | ole.contents).....(dolist.(event |
| 1b3c0 | 20 65 76 65 6e 74 73 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 68 65 61 64 65 72 73 20 28 | .events).......(let*.((headers.( |
| 1b3e0 | 70 6c 69 73 74 2d 67 65 74 20 65 76 65 6e 74 20 3a 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 | plist-get.event.:headers))...... |
| 1b400 | 20 20 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 20 28 70 6c 69 73 74 2d 67 65 74 20 65 76 65 6e | ........(payload.(plist-get.even |
| 1b420 | 74 20 3a 70 61 79 6c 6f 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 76 65 6e 74 | t.:payload))..............(event |
| 1b440 | 2d 74 79 70 65 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 22 3a 65 76 65 6e 74 2d 74 79 70 | -type.(assoc-default.":event-typ |
| 1b460 | 65 22 20 68 65 61 64 65 72 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 65 76 65 | e".headers))).........(pcase.eve |
| 1b480 | 6e 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 73 73 61 67 65 53 74 61 72 74 | nt-type...........("messageStart |
| 1b4a0 | 22 20 28 73 65 74 71 20 72 6f 6c 65 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 | ".(setq.role.(plist-get.payload. |
| 1b4c0 | 3a 72 6f 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 | :role)))...........("contentBloc |
| 1b4e0 | 6b 53 74 61 72 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 28 70 6c 69 | kStart"............(puthash.(pli |
| 1b500 | 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 3a 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 49 6e 64 65 | st-get.payload.:contentBlockInde |
| 1b520 | 78 29 20 28 6c 69 73 74 20 65 76 65 6e 74 29 20 62 6c 6f 63 6b 73 29 29 0a 20 20 20 20 20 20 20 | x).(list.event).blocks))........ |
| 1b540 | 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 65 6c 74 61 22 0a 20 20 20 20 20 20 20 20 | ...("contentBlockDelta"......... |
| 1b560 | 20 20 20 28 70 75 73 68 20 65 76 65 6e 74 20 28 67 65 74 68 61 73 68 20 28 70 6c 69 73 74 2d 67 | ...(push.event.(gethash.(plist-g |
| 1b580 | 65 74 20 70 61 79 6c 6f 61 64 20 3a 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 49 6e 64 65 78 29 20 62 | et.payload.:contentBlockIndex).b |
| 1b5a0 | 6c 6f 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 | locks)))...........("contentBloc |
| 1b5c0 | 6b 53 74 6f 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 6c 6f 63 6b 2d | kStop"............(let*.((block- |
| 1b5e0 | 69 6e 64 65 78 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 3a 63 6f 6e 74 65 6e | index.(plist-get.payload.:conten |
| 1b600 | 74 42 6c 6f 63 6b 49 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tBlockIndex))................... |
| 1b620 | 28 62 6c 6f 63 6b 2d 65 76 65 6e 74 73 20 28 6e 72 65 76 65 72 73 65 20 28 67 65 74 68 61 73 68 | (block-events.(nreverse.(gethash |
| 1b640 | 20 62 6c 6f 63 6b 2d 69 6e 64 65 78 20 62 6c 6f 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 | .block-index.blocks))).......... |
| 1b660 | 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 20 28 63 61 72 20 62 6c 6f 63 6b 2d 65 76 65 6e 74 | .........(start.(car.block-event |
| 1b680 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 74 61 73 20 28 63 | s))...................(deltas.(c |
| 1b6a0 | 64 72 20 62 6c 6f 63 6b 2d 65 76 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | dr.block-events))).............. |
| 1b6c0 | 28 77 68 65 6e 2d 6c 65 74 20 28 28 74 6f 6f 6c 2d 75 73 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 | (when-let.((tool-use.(map-nested |
| 1b6e0 | 2d 65 6c 74 20 73 74 61 72 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 73 74 61 72 74 20 3a 74 6f | -elt.start.'(:payload.:start.:to |
| 1b700 | 6f 6c 55 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | olUse))))................(let.(( |
| 1b720 | 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 74 6f 6f 6c 55 73 65 49 | id.(plist-get.tool-use.:toolUseI |
| 1b740 | 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 | d))......................(name.( |
| 1b760 | 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 | plist-get.tool-use.:name))...... |
| 1b780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 70 75 74 20 28 67 70 74 65 6c 2d 2d 6a | ................(input.(gptel--j |
| 1b7a0 | 73 6f 6e 2d 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | son-read-string................. |
| 1b7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 | .............(mapconcat......... |
| 1b7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 | ......................(lambda.(d |
| 1b800 | 65 6c 74 61 29 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 64 65 6c 74 61 20 27 28 3a 70 | elta).(map-nested-elt.delta.'(:p |
| 1b820 | 61 79 6c 6f 61 64 20 3a 64 65 6c 74 61 20 3a 74 6f 6f 6c 55 73 65 20 3a 69 6e 70 75 74 29 29 29 | ayload.:delta.:toolUse.:input))) |
| 1b840 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 | ...............................d |
| 1b860 | 65 6c 74 61 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 | eltas))))..................(push |
| 1b880 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 6f 6f 6c 55 73 | ...................(list.:toolUs |
| 1b8a0 | 65 20 28 6c 69 73 74 20 3a 69 6e 70 75 74 20 69 6e 70 75 74 20 3a 6e 61 6d 65 20 6e 61 6d 65 20 | e.(list.:input.input.:name.name. |
| 1b8c0 | 3a 74 6f 6f 6c 55 73 65 49 64 20 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :toolUseId.id))................. |
| 1b8e0 | 20 20 63 6f 6e 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | ..contents)))..............(when |
| 1b900 | 2d 6c 65 74 20 28 28 74 65 78 74 73 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 20 28 | -let.((texts.(delq.nil.(mapcar.( |
| 1b920 | 6c 61 6d 62 64 61 20 28 64 29 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 64 20 27 28 3a | lambda.(d).(map-nested-elt.d.'(: |
| 1b940 | 70 61 79 6c 6f 61 64 20 3a 64 65 6c 74 61 20 3a 74 65 78 74 29 29 29 20 64 65 6c 74 61 73 29 29 | payload.:delta.:text))).deltas)) |
| 1b960 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 | ))................(push.(list.:t |
| 1b980 | 65 78 74 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 74 65 78 74 73 29 29 20 63 6f 6e 74 | ext.(apply.#'concat.texts)).cont |
| 1b9a0 | 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 75 72 72 65 6e 74 6c 79 | ents))..............;;.Currently |
| 1b9c0 | 20 77 65 20 64 69 73 63 61 72 64 20 61 6e 79 20 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e | .we.discard.any.reasoning.conten |
| 1b9e0 | 74 20 62 75 74 20 74 68 69 73 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 73 70 6f 74 20 74 6f 20 | t.but.this.would.be.the.spot.to. |
| 1ba00 | 68 61 6e 64 6c 65 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 29 29 0a 20 20 20 20 20 20 | handle.it..............))....... |
| 1ba20 | 20 20 20 20 28 5f 20 28 65 72 72 6f 72 20 22 55 6e 65 78 70 65 63 74 65 64 20 65 76 65 6e 74 2d | ....(_.(error."Unexpected.event- |
| 1ba40 | 74 79 70 65 20 25 53 22 20 65 76 65 6e 74 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 28 6c 69 | type.%S".event-type))))).....(li |
| 1ba60 | 73 74 20 3a 72 6f 6c 65 20 72 6f 6c 65 20 3a 63 6f 6e 74 65 6e 74 20 28 76 63 6f 6e 63 61 74 20 | st.:role.role.:content.(vconcat. |
| 1ba80 | 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | (nreverse.contents)))))..(cl-def |
| 1baa0 | 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 | method.gptel--parse-buffer.((_ba |
| 1bac0 | 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d | ckend.gptel-bedrock).&optional.m |
| 1bae0 | 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 | ax-entries)..."Parse.current.buf |
| 1bb00 | 66 65 72 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 | fer.and.return.a.list.of.prompt. |
| 1bb20 | 6f 62 6a 65 63 74 73 20 66 6f 72 20 42 65 64 72 6f 63 6b 2e 0a 0a 4d 41 58 2d 45 4e 54 52 49 45 | objects.for.Bedrock...MAX-ENTRIE |
| 1bb40 | 53 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 6d 70 | S.is.the.maximum.number.of.promp |
| 1bb60 | 74 73 20 74 6f 20 69 6e 63 6c 75 64 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 6d 61 78 2d 65 6e | ts.to.include."...(unless.max-en |
| 1bb80 | 74 72 69 65 73 20 28 73 65 74 71 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 6d 6f 73 74 2d 70 6f 73 | tries.(setq.max-entries.most-pos |
| 1bba0 | 69 74 69 76 65 2d 66 69 78 6e 75 6d 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 | itive-fixnum))...(let.((prompts. |
| 1bbc0 | 6e 69 6c 29 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 | nil).(prev-pt.(point)).........( |
| 1bbe0 | 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d | include-media.(and.gptel-track-m |
| 1bc00 | 65 64 69 61 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 | edia.(gptel--model-capable-p.'me |
| 1bc20 | 64 69 61 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 66 6c 65 74 20 28 28 63 61 70 74 75 72 65 2d 70 | dia)))).....(cl-flet.((capture-p |
| 1bc40 | 72 6f 6d 70 74 20 28 72 6f 6c 65 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | rompt.(role.beg.end)............ |
| 1bc60 | 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 69 66 20 69 6e 63 6c 75 64 65 | .....(let*.((content.(if.include |
| 1bc80 | 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -media.......................... |
| 1bca0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 6d 75 | ........(gptel-bedrock--parse-mu |
| 1bcc0 | 6c 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ltipart......................... |
| 1bce0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 | ..........(gptel--parse-media-li |
| 1bd00 | 6e 6b 73 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 65 67 20 65 6e 64 29 29 0a 20 20 20 20 20 20 20 | nks.major-mode.beg.end))........ |
| 1bd20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 5b 28 3a 74 65 | ..........................`[(:te |
| 1bd40 | 78 74 20 2c 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 | xt.,(gptel--trim-prefixes....... |
| 1bd60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1bd80 | 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 | .....(buffer-substring-no-proper |
| 1bda0 | 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ties.beg.end)))])).............. |
| 1bdc0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 72 6f | ..........(prompt.(list.:role.ro |
| 1bde0 | 6c 65 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 | le.:content.content))).......... |
| 1be00 | 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 73 29 29 29 | .........(push.prompt.prompts))) |
| 1be20 | 29 0a 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 | )........(if.(or.gptel-mode.gpte |
| 1be40 | 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 | l-track-response)...........(whi |
| 1be60 | 6c 65 20 28 61 6e 64 20 28 3e 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 29 0a 20 20 20 20 20 20 | le.(and.(>.max-entries.0)....... |
| 1be80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 70 72 65 76 2d 70 74 20 28 70 6f 69 | ................(/=.prev-pt.(poi |
| 1bea0 | 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | nt-min)).......................( |
| 1bec0 | 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 | goto-char.(previous-single-prope |
| 1bee0 | 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rty-change...................... |
| 1bf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 | .............(point).'gptel.nil. |
| 1bf20 | 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 70 74 | (point-min)))).............(capt |
| 1bf40 | 75 72 65 2d 70 72 6f 6d 70 74 20 28 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 | ure-prompt.(pcase.(get-char-prop |
| 1bf60 | 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | erty.(point).'gptel)............ |
| 1bf80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 72 65 73 70 6f 6e 73 65 20 22 61 | ...................('response."a |
| 1bfa0 | 73 73 69 73 74 61 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ssistant")...................... |
| 1bfc0 | 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 20 22 75 73 65 72 22 29 29 0a 20 20 20 20 20 20 20 20 | .........('nil."user"))......... |
| 1bfe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 | ....................(point).prev |
| 1c000 | 2d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 70 74 20 28 | -pt).............(setq.prev-pt.( |
| 1c020 | 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 | point)).............(cl-decf.max |
| 1c040 | 2d 65 6e 74 72 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 2d 70 72 6f 6d | -entries)).........(capture-prom |
| 1c060 | 70 74 20 22 75 73 65 72 22 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 | pt."user".(point-min).(point-max |
| 1c080 | 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 | ))).......prompts)))..(defconst. |
| 1c0a0 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6d 61 67 65 2d 66 6f 72 6d 61 74 73 0a 20 20 27 | gptel-bedrock--image-formats...' |
| 1c0c0 | 28 28 22 69 6d 61 67 65 2f 6a 70 67 22 20 2e 20 22 6a 70 65 67 22 29 0a 20 20 20 20 28 22 69 6d | (("image/jpg"..."jpeg").....("im |
| 1c0e0 | 61 67 65 2f 6a 70 65 67 22 20 2e 20 22 6a 70 65 67 22 29 0a 20 20 20 20 28 22 69 6d 61 67 65 2f | age/jpeg"..."jpeg").....("image/ |
| 1c100 | 70 6e 67 22 20 2e 20 22 70 6e 67 22 29 0a 20 20 20 20 28 22 69 6d 61 67 65 2f 67 69 66 22 20 2e | png"..."png").....("image/gif".. |
| 1c120 | 20 22 67 69 66 22 29 0a 20 20 20 20 28 22 69 6d 61 67 65 2f 77 65 62 70 22 20 2e 20 22 77 65 62 | ."gif").....("image/webp"..."web |
| 1c140 | 70 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d 69 6d 65 20 74 79 70 65 20 74 6f 20 69 6d 61 67 | p"))..."Map.of.mime.type.to.imag |
| 1c160 | 65 20 66 6f 72 6d 61 74 73 20 61 73 20 75 73 65 64 20 69 6e 20 41 57 53 27 73 20 49 6d 61 67 65 | e.formats.as.used.in.AWS's.Image |
| 1c180 | 42 6c 6f 63 6b 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 | Block.")..(defconst.gptel-bedroc |
| 1c1a0 | 6b 2d 2d 64 6f 63 2d 66 6f 72 6d 61 74 73 0a 20 20 27 28 28 22 61 70 70 6c 69 63 61 74 69 6f 6e | k--doc-formats...'(("application |
| 1c1c0 | 2f 70 64 66 22 20 2e 20 22 70 64 66 22 29 0a 20 20 20 20 28 22 74 65 78 74 2f 63 73 76 22 20 2e | /pdf"..."pdf").....("text/csv".. |
| 1c1e0 | 20 22 63 73 76 22 29 0a 20 20 20 20 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6d 73 77 6f 72 64 | ."csv").....("application/msword |
| 1c200 | 22 20 2e 20 22 64 6f 63 22 29 0a 20 20 20 20 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 | "..."doc").....("application/vnd |
| 1c220 | 2e 6f 70 65 6e 78 6d 6c 66 6f 72 6d 61 74 73 2d 6f 66 66 69 63 65 64 6f 63 75 6d 65 6e 74 2e 77 | .openxmlformats-officedocument.w |
| 1c240 | 6f 72 64 70 72 6f 63 65 73 73 69 6e 67 6d 6c 2e 64 6f 63 75 6d 65 6e 74 22 20 2e 20 22 64 6f 63 | ordprocessingml.document"..."doc |
| 1c260 | 78 22 29 0a 20 20 20 20 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 6d 73 2d 65 78 63 | x").....("application/vnd.ms-exc |
| 1c280 | 65 6c 22 20 2e 20 22 78 6c 73 22 29 0a 20 20 20 20 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 | el"..."xls").....("application/v |
| 1c2a0 | 6e 64 2e 6f 70 65 6e 78 6d 6c 66 6f 72 6d 61 74 73 2d 6f 66 66 69 63 65 64 6f 63 75 6d 65 6e 74 | nd.openxmlformats-officedocument |
| 1c2c0 | 2e 73 70 72 65 61 64 73 68 65 65 74 6d 6c 2e 73 68 65 65 74 22 20 2e 20 22 78 6c 73 78 22 29 0a | .spreadsheetml.sheet"..."xlsx"). |
| 1c2e0 | 20 20 20 20 28 22 74 65 78 74 2f 68 74 6d 6c 22 20 2e 20 22 68 74 6d 6c 22 29 0a 20 20 20 20 28 | ....("text/html"..."html").....( |
| 1c300 | 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 2e 20 22 74 78 74 22 29 0a 20 20 20 20 28 22 74 65 78 74 | "text/plain"..."txt").....("text |
| 1c320 | 2f 6d 61 72 6b 64 6f 77 6e 22 20 2e 20 22 6d 64 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d 69 | /markdown"..."md"))..."Map.of.mi |
| 1c340 | 6d 65 20 74 79 70 65 20 74 6f 20 64 6f 63 75 6d 65 6e 74 20 66 6f 72 6d 61 74 73 20 61 73 20 75 | me.type.to.document.formats.as.u |
| 1c360 | 73 65 64 20 69 6e 20 41 57 53 27 73 20 44 6f 63 75 6d 65 6e 74 42 6c 6f 63 6b 2e 22 29 0a 0a 28 | sed.in.AWS's.DocumentBlock.")..( |
| 1c380 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 6d 75 6c 74 69 | defun.gptel-bedrock--parse-multi |
| 1c3a0 | 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 6d 75 6c 74 69 70 | part.(parts)..."Convert.a.multip |
| 1c3c0 | 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 74 68 65 20 41 57 53 20 42 65 64 72 | art.prompt.PARTS.to.the.AWS.Bedr |
| 1c3e0 | 6f 63 6b 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 65 20 69 6e 70 75 74 20 69 73 20 61 20 | ock.API.format...The.input.is.a. |
| 1c400 | 6c 69 73 74 20 6f 66 20 74 65 78 74 20 61 6e 64 20 6d 65 64 69 61 20 70 6c 69 73 74 73 20 6f 66 | list.of.text.and.media.plists.of |
| 1c420 | 20 74 68 65 20 66 6f 72 6d 3a 0a 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c | .the.form:..((:text.\"some.text\ |
| 1c440 | 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e | ")...(:media.\"/path/to/media.pn |
| 1c460 | 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 | g\".:mime.\"image/png\")...(:tex |
| 1c480 | 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 | t.\"More.text\"))...The.output.i |
| 1c4a0 | 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 42 65 64 72 6f 63 6b | s.a.vector.of.entries.in.Bedrock |
| 1c4c0 | 20 41 50 49 20 66 6f 72 6d 61 74 2e 22 0a 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 20 70 61 72 | .API.format."...(thread-last.par |
| 1c4e0 | 74 73 0a 20 20 20 20 28 63 6c 2d 6d 61 70 6c 69 73 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 | ts.....(cl-maplist......(lambda. |
| 1c500 | 28 74 61 69 6c 29 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 61 72 74 20 28 63 61 72 20 | (tail)........(let*.((part.(car. |
| 1c520 | 74 61 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 70 6c 69 73 | tail))...............(text.(plis |
| 1c540 | 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.part.:text)).............. |
| 1c560 | 20 28 6d 69 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 29 0a 20 | .(mime.(plist-get.part.:mime)).. |
| 1c580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 64 69 61 20 28 70 6c 69 73 74 2d 67 65 74 20 70 | .............(media.(plist-get.p |
| 1c5a0 | 61 72 74 20 3a 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 | art.:media))...............(text |
| 1c5c0 | 66 69 6c 65 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 | file.(plist-get.part.:textfile)) |
| 1c5e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 | ...............format).......... |
| 1c600 | 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 77 68 65 6e 20 28 6f 72 20 | (cond...........(text.(when.(or. |
| 1c620 | 28 65 71 20 70 61 72 74 20 28 63 61 72 20 70 61 72 74 73 29 29 20 28 6e 75 6c 6c 20 28 63 64 72 | (eq.part.(car.parts)).(null.(cdr |
| 1c640 | 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | .tail)))...................(setq |
| 1c660 | 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 | .text.(gptel--trim-prefixes.text |
| 1c680 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 | ))).................(unless.(str |
| 1c6a0 | 69 6e 67 2d 65 6d 70 74 79 2d 70 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-empty-p.text)............... |
| 1c6c0 | 20 20 20 20 60 28 3a 74 65 78 74 20 2c 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ....`(:text.,text)))...........( |
| 1c6e0 | 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 | media............(cond.......... |
| 1c700 | 20 20 20 28 28 73 65 74 71 20 66 6f 72 6d 61 74 20 28 61 73 73 6f 63 20 6d 69 6d 65 20 67 70 74 | ...((setq.format.(assoc.mime.gpt |
| 1c720 | 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6d 61 67 65 2d 66 6f 72 6d 61 74 73 29 29 0a 20 20 20 20 | el-bedrock--image-formats))..... |
| 1c740 | 20 20 20 20 20 20 20 20 20 60 28 3a 69 6d 61 67 65 20 28 3a 66 6f 72 6d 61 74 20 2c 28 63 64 72 | .........`(:image.(:format.,(cdr |
| 1c760 | 20 66 6f 72 6d 61 74 29 20 3a 73 6f 75 72 63 65 20 28 3a 62 79 74 65 73 20 2c 28 67 70 74 65 6c | .format).:source.(:bytes.,(gptel |
| 1c780 | 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 29 29 29 0a 20 20 20 20 20 | --base64-encode.media)))))...... |
| 1c7a0 | 20 20 20 20 20 20 20 28 28 73 65 74 71 20 66 6f 72 6d 61 74 20 28 61 73 73 6f 63 20 6d 69 6d 65 | .......((setq.format.(assoc.mime |
| 1c7c0 | 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 64 6f 63 2d 66 6f 72 6d 61 74 73 29 29 0a 20 20 | .gptel-bedrock--doc-formats))... |
| 1c7e0 | 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 64 6f 63 75 6d 65 6e 74 20 28 3a 66 6f 72 6d 61 74 20 | ...........`(:document.(:format. |
| 1c800 | 2c 28 63 64 72 20 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,(cdr.format)................... |
| 1c820 | 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 2c 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 | ........:name.,(file-name-nondir |
| 1c840 | 65 63 74 6f 72 79 20 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ectory.media)................... |
| 1c860 | 20 20 20 20 20 20 20 20 3a 73 6f 75 72 63 65 20 28 3a 62 79 74 65 73 20 2c 28 67 70 74 65 6c 2d | ........:source.(:bytes.,(gptel- |
| 1c880 | 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 29 29 29 0a 20 20 20 20 20 20 | -base64-encode.media)))))....... |
| 1c8a0 | 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 55 6e 73 75 70 70 6f 72 74 65 64 20 4d 49 4d | ......(t.(error."Unsupported.MIM |
| 1c8c0 | 45 20 74 79 70 65 20 25 73 20 66 6f 72 20 41 57 53 20 42 65 64 72 6f 63 6b 22 20 6d 69 6d 65 29 | E.type.%s.for.AWS.Bedrock".mime) |
| 1c8e0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 66 69 6c 65 20 60 28 3a 74 65 78 74 20 | )))...........(textfile.`(:text. |
| 1c900 | 2c 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,(with-temp-buffer.............. |
| 1c920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 | ..................(gptel--insert |
| 1c940 | 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 74 65 78 74 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 | -file-string.textfile).......... |
| 1c960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 | ......................(buffer-st |
| 1c980 | 72 69 6e 67 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 29 0a 20 20 20 20 | ring)))))))).....(delq.nil)..... |
| 1c9a0 | 28 76 63 6f 6e 63 61 74 29 29 29 0a 0a 3b 3b 20 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 | (vconcat)))..;;.gptel--inject-pr |
| 1c9c0 | 6f 6d 70 74 20 6e 6f 74 20 6e 65 65 64 65 64 20 73 69 6e 63 65 20 74 68 65 20 64 65 66 61 75 6c | ompt.not.needed.since.the.defaul |
| 1c9e0 | 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 77 6f 72 6b 73 20 68 65 72 65 0a 0a 28 63 6c | t.implementation.works.here..(cl |
| 1ca00 | 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 | -defmethod.gptel--parse-tool-res |
| 1ca20 | 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 74 | ults.((_backend.gptel-bedrock).t |
| 1ca40 | 6f 6f 6c 2d 75 73 65 2d 72 65 71 75 65 73 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 61 | ool-use-requests)..."Return.a.ba |
| 1ca60 | 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e | ckend-appropriate.prompt.contain |
| 1ca80 | 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 2e 0a 0a 54 4f 4f 4c 2d 55 53 45 | ing.tool.call.results...TOOL-USE |
| 1caa0 | 2d 52 45 51 55 45 53 54 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 72 65 71 75 65 73 74 20 70 | -REQUESTS.is.a.list.of.request.p |
| 1cac0 | 6c 69 73 74 73 20 74 68 61 74 20 68 61 76 65 20 62 65 65 6e 0a 63 6f 6d 70 6c 65 74 65 64 2e 20 | lists.that.have.been.completed.. |
| 1cae0 | 20 52 65 74 75 72 6e 73 20 61 20 73 69 6e 67 6c 65 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 | .Returns.a.single.prompt.object. |
| 1cb00 | 74 6f 20 69 6e 6a 65 63 74 20 69 6e 74 6f 20 74 68 65 0a 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e | to.inject.into.the.conversation. |
| 1cb20 | 22 0a 20 20 28 6c 69 73 74 0a 20 20 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 20 3a 63 6f | "...(list....:role."user"....:co |
| 1cb40 | 6e 74 65 6e 74 0a 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 | ntent....(vconcat.....(mapcar... |
| 1cb60 | 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 60 28 | ...(lambda.(tool-call)........`( |
| 1cb80 | 3a 74 6f 6f 6c 52 65 73 75 6c 74 20 28 3a 74 6f 6f 6c 55 73 65 49 64 20 2c 28 70 6c 69 73 74 2d | :toolResult.(:toolUseId.,(plist- |
| 1cba0 | 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | get.tool-call.:id).............. |
| 1cbc0 | 20 20 20 20 20 20 20 20 20 3a 73 74 61 74 75 73 20 22 73 75 63 63 65 73 73 22 0a 20 20 20 20 20 | .........:status."success"...... |
| 1cbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 5b 28 3a 74 65 78 | .................:content.[(:tex |
| 1cc00 | 74 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 | t.,(plist-get.tool-call.:result) |
| 1cc20 | 29 5d 29 29 29 0a 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 2d 72 65 71 75 65 73 74 73 29 29 29 29 | )])))......tool-use-requests)))) |
| 1cc40 | 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 77 73 2d 70 72 6f | ..(defvar.gptel-bedrock--aws-pro |
| 1cc60 | 66 69 6c 65 2d 63 61 63 68 65 20 6e 69 6c 0a 20 20 22 43 61 63 68 65 20 66 6f 72 20 41 57 53 20 | file-cache.nil..."Cache.for.AWS. |
| 1cc80 | 70 72 6f 66 69 6c 65 20 63 72 65 64 65 6e 74 69 61 6c 73 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 | profile.credentials.in.the.form. |
| 1cca0 | 6f 66 20 28 50 52 4f 46 49 4c 45 20 2e 20 43 52 45 44 53 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 | of.(PROFILE...CREDS).")..(defun. |
| 1ccc0 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 66 65 74 63 68 2d 61 77 73 2d 70 72 6f 66 69 6c 65 | gptel-bedrock--fetch-aws-profile |
| 1cce0 | 2d 63 72 65 64 65 6e 74 69 61 6c 73 20 28 70 72 6f 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 | -credentials.(profile.&optional. |
| 1cd00 | 63 6c 65 61 72 2d 63 61 63 68 65 29 0a 20 20 22 46 65 74 63 68 20 26 20 63 61 63 68 65 20 41 57 | clear-cache)..."Fetch.&.cache.AW |
| 1cd20 | 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 6f 72 20 50 52 4f 46 49 4c 45 20 75 73 69 6e 67 20 | S.credentials.for.PROFILE.using. |
| 1cd40 | 61 77 73 2d 63 6c 69 2e 0a 0a 4e 6f 6e 2d 6e 69 6c 20 43 4c 45 41 52 2d 43 41 43 48 45 20 77 69 | aws-cli...Non-nil.CLEAR-CACHE.wi |
| 1cd60 | 6c 6c 20 72 65 66 72 65 73 68 20 63 72 65 64 65 6e 74 69 61 6c 73 2e 22 0a 20 20 28 6c 65 74 2a | ll.refresh.credentials."...(let* |
| 1cd80 | 20 28 28 63 72 65 64 73 2d 6a 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | .((creds-json............(let.(( |
| 1cda0 | 63 65 6c 6c 20 28 6f 72 20 28 61 73 73 6f 63 20 70 72 6f 66 69 6c 65 20 67 70 74 65 6c 2d 62 65 | cell.(or.(assoc.profile.gptel-be |
| 1cdc0 | 64 72 6f 63 6b 2d 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 61 63 68 65 20 23 27 73 74 72 69 6e | drock--aws-profile-cache.#'strin |
| 1cde0 | 67 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | g=)............................( |
| 1ce00 | 63 61 72 20 28 70 75 73 68 20 28 63 6f 6e 73 20 70 72 6f 66 69 6c 65 20 6e 69 6c 29 20 67 70 74 | car.(push.(cons.profile.nil).gpt |
| 1ce20 | 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 61 63 68 65 29 29 29 | el-bedrock--aws-profile-cache))) |
| 1ce40 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 63 6c | ))..............(or.(and.(not.cl |
| 1ce60 | 65 61 72 2d 63 61 63 68 65 29 20 28 63 64 72 20 63 65 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 | ear-cache).(cdr.cell)).......... |
| 1ce80 | 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 64 72 20 63 65 6c 6c 29 0a 20 20 20 20 20 20 20 | ........(setf.(cdr.cell)........ |
| 1cea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 | ................(with-temp-buffe |
| 1cec0 | 72 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 28 63 | r..............(unless.(zerop.(c |
| 1cee0 | 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 77 73 22 20 6e 69 6c 20 74 20 6e 69 6c 20 22 63 6f 6e | all-process."aws".nil.t.nil."con |
| 1cf00 | 66 69 67 75 72 65 22 20 22 65 78 70 6f 72 74 2d 63 72 65 64 65 6e 74 69 61 6c 73 22 0a 09 09 09 | figure"."export-credentials".... |
| 1cf20 | 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2d 2d 70 72 6f | ..................(format."--pro |
| 1cf40 | 66 69 6c 65 3d 25 73 22 20 70 72 6f 66 69 6c 65 29 29 29 0a 09 09 20 20 20 20 20 20 20 20 20 20 | file=%s".profile)))............. |
| 1cf60 | 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 41 57 | ...(user-error."Failed.to.get.AW |
| 1cf80 | 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 72 6f 6d 20 70 72 6f 66 69 6c 65 22 29 29 0a 09 09 | S.credentials.from.profile"))... |
| 1cfa0 | 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 70 61 72 73 65 2d 73 74 72 69 6e 67 20 28 62 75 66 | .........(json-parse-string.(buf |
| 1cfc0 | 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 29 29 0a 09 20 28 65 78 70 69 72 61 74 69 6f 6e 20 | fer-string)))))))...(expiration. |
| 1cfe0 | 28 69 66 2d 6c 65 74 20 28 65 78 70 20 28 67 65 74 68 61 73 68 20 22 45 78 70 69 72 61 74 69 6f | (if-let.(exp.(gethash."Expiratio |
| 1d000 | 6e 22 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 0a 09 09 09 20 20 20 20 20 28 64 61 74 65 2d 74 6f | n".creds-json)).........(date-to |
| 1d020 | 2d 74 69 6d 65 20 65 78 70 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 | -time.exp)))).....(cond.......(( |
| 1d040 | 74 69 6d 65 2d 6c 65 73 73 2d 70 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 65 78 70 69 72 | time-less-p.(current-time).expir |
| 1d060 | 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 65 73 73 2d 6b 65 79 20 | ation)........(let.((access-key. |
| 1d080 | 28 67 65 74 68 61 73 68 20 22 41 63 63 65 73 73 4b 65 79 49 64 22 20 63 72 65 64 73 2d 6a 73 6f | (gethash."AccessKeyId".creds-jso |
| 1d0a0 | 6e 29 29 0a 09 20 20 20 20 20 28 73 65 63 72 65 74 2d 6b 65 79 20 28 67 65 74 68 61 73 68 20 22 | n)).......(secret-key.(gethash." |
| 1d0c0 | 53 65 63 72 65 74 41 63 63 65 73 73 4b 65 79 22 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 0a 09 20 | SecretAccessKey".creds-json))... |
| 1d0e0 | 20 20 20 20 28 73 65 73 73 69 6f 6e 2d 74 6f 6b 65 6e 20 28 67 65 74 68 61 73 68 20 22 53 65 73 | ....(session-token.(gethash."Ses |
| 1d100 | 73 69 6f 6e 54 6f 6b 65 6e 22 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 29 0a 09 20 28 63 6c 2d 76 | sionToken".creds-json)))...(cl-v |
| 1d120 | 61 6c 75 65 73 20 61 63 63 65 73 73 2d 6b 65 79 20 73 65 63 72 65 74 2d 6b 65 79 20 73 65 73 73 | alues.access-key.secret-key.sess |
| 1d140 | 69 6f 6e 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 28 28 6e 6f 74 20 63 6c 65 61 72 2d 63 | ion-token))).......((not.clear-c |
| 1d160 | 61 63 68 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 66 65 74 | ache)........(gptel-bedrock--fet |
| 1d180 | 63 68 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 66 69 | ch-aws-profile-credentials.profi |
| 1d1a0 | 6c 65 20 74 29 29 0a 20 20 20 20 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 41 57 53 | le.t)).......(t.(user-error."AWS |
| 1d1c0 | 20 63 72 65 64 65 6e 74 69 61 6c 73 20 65 78 70 69 72 65 64 20 66 6f 72 20 70 72 6f 66 69 6c 65 | .credentials.expired.for.profile |
| 1d1e0 | 3a 20 25 73 22 20 70 72 6f 66 69 6c 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | :.%s".profile)))))..(defun.gptel |
| 1d200 | 2d 62 65 64 72 6f 63 6b 2d 2d 67 65 74 2d 63 72 65 64 65 6e 74 69 61 6c 73 20 28 29 0a 20 20 22 | -bedrock--get-credentials.()..." |
| 1d220 | 52 65 74 75 72 6e 20 74 68 65 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 75 73 | Return.the.AWS.credentials.to.us |
| 1d240 | 65 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 | e.for.the.request...Returns.a.li |
| 1d260 | 73 74 20 6f 66 20 32 2d 33 20 65 6c 65 6d 65 6e 74 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e | st.of.2-3.elements,.depending.on |
| 1d280 | 20 77 68 65 74 68 65 72 20 61 20 73 65 73 73 69 6f 6e 0a 74 6f 6b 65 6e 20 69 73 20 6e 65 65 64 | .whether.a.session.token.is.need |
| 1d2a0 | 65 64 2c 20 77 69 74 68 20 74 68 69 73 20 66 6f 72 6d 3a 20 28 41 57 53 5f 41 43 43 45 53 53 5f | ed,.with.this.form:.(AWS_ACCESS_ |
| 1d2c0 | 4b 45 59 5f 49 44 20 41 57 53 5f 53 45 43 52 45 54 5f 41 43 43 45 53 53 5f 4b 45 59 0a 41 57 53 | KEY_ID.AWS_SECRET_ACCESS_KEY.AWS |
| 1d2e0 | 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e 29 2e 0a 0a 43 6f 6e 76 65 6e 69 65 6e 74 20 74 6f 20 | _SESSION_TOKEN)...Convenient.to. |
| 1d300 | 75 73 65 20 77 69 74 68 20 60 63 6c 2d 6d 75 6c 74 69 70 6c 65 2d 76 61 6c 75 65 2d 62 69 6e 64 | use.with.`cl-multiple-value-bind |
| 1d320 | 27 22 0a 20 20 28 6c 65 74 20 28 28 6b 65 79 2d 69 64 20 28 67 65 74 65 6e 76 20 22 41 57 53 5f | '"...(let.((key-id.(getenv."AWS_ |
| 1d340 | 41 43 43 45 53 53 5f 4b 45 59 5f 49 44 22 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 63 72 65 74 | ACCESS_KEY_ID")).........(secret |
| 1d360 | 2d 6b 65 79 20 28 67 65 74 65 6e 76 20 22 41 57 53 5f 53 45 43 52 45 54 5f 41 43 43 45 53 53 5f | -key.(getenv."AWS_SECRET_ACCESS_ |
| 1d380 | 4b 45 59 22 29 29 0a 20 20 20 20 20 20 20 20 28 74 6f 6b 65 6e 20 28 67 65 74 65 6e 76 20 22 41 | KEY")).........(token.(getenv."A |
| 1d3a0 | 57 53 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e 22 29 29 0a 09 28 70 72 6f 66 69 6c 65 20 28 67 | WS_SESSION_TOKEN"))..(profile.(g |
| 1d3c0 | 65 74 65 6e 76 20 22 41 57 53 5f 50 52 4f 46 49 4c 45 22 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 | etenv."AWS_PROFILE"))).....(cond |
| 1d3e0 | 0a 20 20 20 20 20 20 28 28 61 6e 64 20 6b 65 79 2d 69 64 20 73 65 63 72 65 74 2d 6b 65 79 29 20 | .......((and.key-id.secret-key). |
| 1d400 | 28 63 6c 2d 76 61 6c 75 65 73 20 6b 65 79 2d 69 64 20 73 65 63 72 65 74 2d 6b 65 79 20 74 6f 6b | (cl-values.key-id.secret-key.tok |
| 1d420 | 65 6e 29 29 0a 20 20 20 20 20 20 28 28 61 6e 64 20 70 72 6f 66 69 6c 65 29 20 28 67 70 74 65 6c | en)).......((and.profile).(gptel |
| 1d440 | 2d 62 65 64 72 6f 63 6b 2d 2d 66 65 74 63 68 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 72 65 64 | -bedrock--fetch-aws-profile-cred |
| 1d460 | 65 6e 74 69 61 6c 73 20 70 72 6f 66 69 6c 65 29 29 0a 20 20 20 20 20 20 28 74 20 28 75 73 65 72 | entials.profile)).......(t.(user |
| 1d480 | 2d 65 72 72 6f 72 20 22 4d 69 73 73 69 6e 67 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 3b | -error."Missing.AWS.credentials; |
| 1d4a0 | 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 | .currently.only.environment.vari |
| 1d4c0 | 61 62 6c 65 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 64 22 29 29 29 29 29 0a 0a 28 64 65 66 76 | ables.are.supported")))))..(defv |
| 1d4e0 | 61 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 0a 20 20 3b 3b | ar.gptel-bedrock--model-ids...;; |
| 1d500 | 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 | .https://docs.aws.amazon.com/bed |
| 1d520 | 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 75 73 65 72 67 75 69 64 65 2f 6d 6f 64 65 6c 73 2d 73 75 70 | rock/latest/userguide/models-sup |
| 1d540 | 70 6f 72 74 65 64 2e 68 74 6d 6c 0a 20 20 27 28 28 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 | ported.html...'((claude-sonnet-4 |
| 1d560 | 2d 32 30 32 35 30 35 31 34 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 | -20250514......"anthropic.claude |
| 1d580 | 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 | -sonnet-4-20250514-v1:0").....(c |
| 1d5a0 | 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 20 20 20 20 20 20 2e 20 22 61 6e | laude-opus-4-20250514........"an |
| 1d5c0 | 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 2d 76 | thropic.claude-opus-4-20250514-v |
| 1d5e0 | 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 | 1:0").....(claude-3-7-sonnet-202 |
| 1d600 | 35 30 32 31 39 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 37 2d 73 | 50219...."anthropic.claude-3-7-s |
| 1d620 | 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 | onnet-20250219-v1:0").....(claud |
| 1d640 | 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 31 30 32 32 20 20 2e 20 22 61 6e 74 68 72 6f | e-3-5-sonnet-20241022...."anthro |
| 1d660 | 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 31 30 32 32 2d 76 | pic.claude-3-5-sonnet-20241022-v |
| 1d680 | 32 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 | 2:0").....(claude-3-5-sonnet-202 |
| 1d6a0 | 34 30 36 32 30 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 73 | 40620...."anthropic.claude-3-5-s |
| 1d6c0 | 6f 6e 6e 65 74 2d 32 30 32 34 30 36 32 30 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 | onnet-20240620-v1:0").....(claud |
| 1d6e0 | 65 2d 33 2d 35 2d 68 61 69 6b 75 2d 32 30 32 34 31 30 32 32 20 20 20 2e 20 22 61 6e 74 68 72 6f | e-3-5-haiku-20241022....."anthro |
| 1d700 | 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 68 61 69 6b 75 2d 32 30 32 34 31 30 32 32 2d 76 31 | pic.claude-3-5-haiku-20241022-v1 |
| 1d720 | 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 | :0").....(claude-3-opus-20240229 |
| 1d740 | 20 20 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 | ........"anthropic.claude-3-opus |
| 1d760 | 2d 32 30 32 34 30 32 32 39 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 73 | -20240229-v1:0").....(claude-3-s |
| 1d780 | 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 | onnet-20240229......"anthropic.c |
| 1d7a0 | 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 2d 76 31 3a 30 22 29 0a 20 | laude-3-sonnet-20240229-v1:0").. |
| 1d7c0 | 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 30 33 30 37 20 20 20 20 20 | ...(claude-3-haiku-20240307..... |
| 1d7e0 | 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 | .."anthropic.claude-3-haiku-2024 |
| 1d800 | 30 33 30 37 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 37 62 20 20 20 20 20 | 0307-v1:0").....(mistral-7b..... |
| 1d820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d | ..............."mistral.mistral- |
| 1d840 | 37 62 2d 69 6e 73 74 72 75 63 74 2d 76 30 3a 32 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d | 7b-instruct-v0:2").....(mistral- |
| 1d860 | 38 78 37 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d | 8x7b.................."mistral.m |
| 1d880 | 69 78 74 72 61 6c 2d 38 78 37 62 2d 69 6e 73 74 72 75 63 74 2d 76 30 3a 31 22 29 0a 20 20 20 20 | ixtral-8x7b-instruct-v0:1")..... |
| 1d8a0 | 28 6d 69 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 34 30 32 20 20 20 20 20 20 20 20 20 20 2e 20 22 | (mistral-large-2402............" |
| 1d8c0 | 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 34 30 32 2d 76 31 3a 30 22 | mistral.mistral-large-2402-v1:0" |
| 1d8e0 | 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 34 30 37 20 20 20 20 20 20 20 | ).....(mistral-large-2407....... |
| 1d900 | 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 34 30 37 | ....."mistral.mistral-large-2407 |
| 1d920 | 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 2d 32 34 30 32 20 | -v1:0").....(mistral-small-2402. |
| 1d940 | 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d 73 6d 61 6c | ..........."mistral.mistral-smal |
| 1d960 | 6c 2d 32 34 30 32 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 38 62 20 20 20 | l-2402-v1:0").....(llama-3-8b... |
| 1d980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 38 62 | ................."meta.llama3-8b |
| 1d9a0 | 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 37 30 | -instruct-v1:0").....(llama-3-70 |
| 1d9c0 | 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 | b..................."meta.llama3 |
| 1d9e0 | 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d | -70b-instruct-v1:0").....(llama- |
| 1da00 | 33 2d 31 2d 38 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c | 3-1-8b.................."meta.ll |
| 1da20 | 61 6d 61 33 2d 31 2d 38 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c | ama3-1-8b-instruct-v1:0").....(l |
| 1da40 | 6c 61 6d 61 2d 33 2d 31 2d 37 30 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 | lama-3-1-70b................."me |
| 1da60 | 74 61 2e 6c 6c 61 6d 61 33 2d 31 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a | ta.llama3-1-70b-instruct-v1:0"). |
| 1da80 | 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 31 2d 34 30 35 62 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(llama-3-1-405b............. |
| 1daa0 | 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 31 2d 34 30 35 62 2d 69 6e 73 74 72 75 63 74 2d | ..."meta.llama3-1-405b-instruct- |
| 1dac0 | 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 32 2d 31 62 20 20 20 20 20 20 20 20 | v1:0").....(llama-3-2-1b........ |
| 1dae0 | 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 32 2d 31 62 2d 69 6e 73 74 | .........."meta.llama3-2-1b-inst |
| 1db00 | 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 32 2d 33 62 20 20 20 | ruct-v1:0").....(llama-3-2-3b... |
| 1db20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 32 2d 33 62 | ..............."meta.llama3-2-3b |
| 1db40 | 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 32 2d | -instruct-v1:0").....(llama-3-2- |
| 1db60 | 31 31 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 | 11b................."meta.llama3 |
| 1db80 | 2d 32 2d 31 31 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d | -2-11b-instruct-v1:0").....(llam |
| 1dba0 | 61 2d 33 2d 32 2d 39 30 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e | a-3-2-90b................."meta. |
| 1dbc0 | 6c 6c 61 6d 61 33 2d 32 2d 39 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 | llama3-2-90b-instruct-v1:0").... |
| 1dbe0 | 20 28 6c 6c 61 6d 61 2d 33 2d 33 2d 37 30 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 | .(llama-3-3-70b................. |
| 1dc00 | 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 33 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 | "meta.llama3-3-70b-instruct-v1:0 |
| 1dc20 | 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d 6f 64 65 6c 20 6e 61 6d 65 20 74 6f 20 62 65 64 72 | "))..."Map.of.model.name.to.bedr |
| 1dc40 | 6f 63 6b 20 69 64 2e 0a 0a 49 44 73 20 63 61 6e 20 62 65 20 61 64 64 65 64 20 6f 72 20 72 65 70 | ock.id...IDs.can.be.added.or.rep |
| 1dc60 | 6c 61 63 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 0a 5c 28 70 75 73 68 20 28 6d 6f 64 65 6c 2d 6e | laced.by.calling.\(push.(model-n |
| 1dc80 | 61 6d 65 20 2e 20 5c 22 6d 6f 64 65 6c 2d 69 64 5c 22 29 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 | ame...\"model-id\").gptel-bedroc |
| 1dca0 | 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | k--model-ids).")..(defvar.gptel- |
| 1dcc0 | 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 0a 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 | -bedrock-models...(mapcar.#'car. |
| 1dce0 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 29 0a 20 20 22 4c 69 73 | gptel-bedrock--model-ids)..."Lis |
| 1dd00 | 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 41 57 53 20 42 65 64 72 6f 63 6b 20 6d 6f 64 65 6c | t.of.available.AWS.Bedrock.model |
| 1dd20 | 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 70 72 6f 70 65 72 74 69 65 73 2e 22 29 0a 0a | s.and.associated.properties.").. |
| 1dd40 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 67 65 74 2d 6d 6f 64 65 6c 2d | (defun.gptel-bedrock--get-model- |
| 1dd60 | 69 64 20 28 6d 6f 64 65 6c 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 67 69 6f 6e 29 0a 20 20 22 52 | id.(model.&optional.region)..."R |
| 1dd80 | 65 74 75 72 6e 20 74 68 65 20 42 65 64 72 6f 63 6b 20 6d 6f 64 65 6c 20 49 44 20 66 6f 72 20 4d | eturn.the.Bedrock.model.ID.for.M |
| 1dda0 | 4f 44 45 4c 2e 0a 0a 52 45 47 49 4f 4e 20 69 73 20 6f 6e 65 20 6f 66 20 61 70 61 63 2c 20 65 75 | ODEL...REGION.is.one.of.apac,.eu |
| 1ddc0 | 20 6f 72 20 75 73 2e 22 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 28 77 68 65 6e 20 72 65 67 69 | .or.us."...(concat....(when.regi |
| 1dde0 | 6f 6e 0a 20 20 20 20 20 28 6f 72 20 28 6d 65 6d 62 65 72 20 72 65 67 69 6f 6e 20 27 28 61 70 61 | on......(or.(member.region.'(apa |
| 1de00 | 63 20 65 75 20 75 73 29 29 0a 09 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 42 65 64 72 | c.eu.us))...(error."Unknown.Bedr |
| 1de20 | 6f 63 6b 20 72 65 67 69 6f 6e 20 25 73 22 20 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 28 63 6f | ock.region.%s".region))......(co |
| 1de40 | 6e 63 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 72 65 67 69 6f 6e 29 20 22 2e 22 29 29 0a | ncat.(symbol-name.region).".")). |
| 1de60 | 20 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 62 65 | ...(or.(alist-get.model.gptel-be |
| 1de80 | 64 72 6f 63 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 29 0a 20 | drock--model-ids.nil.nil.#'eq).. |
| 1dea0 | 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 42 65 64 72 6f 63 6b 20 6d 6f | ......(error."Unknown.Bedrock.mo |
| 1dec0 | 64 65 6c 3a 20 25 73 22 20 6d 6f 64 65 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | del:.%s".model))))..(defun.gptel |
| 1dee0 | 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 61 72 67 73 20 28 72 65 67 69 6f 6e 29 0a 20 20 22 | -bedrock--curl-args.(region)..." |
| 1df00 | 47 65 6e 65 72 61 74 65 20 74 68 65 20 63 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 67 | Generate.the.curl.arguments.to.g |
| 1df20 | 65 74 20 61 20 62 65 64 72 6f 63 6b 20 72 65 71 75 65 73 74 20 73 69 67 6e 65 64 20 66 6f 72 20 | et.a.bedrock.request.signed.for. |
| 1df40 | 75 73 65 20 69 6e 20 52 45 47 49 4f 4e 2e 22 0a 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 63 75 72 | use.in.REGION."...;;.https://cur |
| 1df60 | 6c 2e 73 65 2f 64 6f 63 73 2f 6d 61 6e 70 61 67 65 2e 68 74 6d 6c 23 2d 2d 61 77 73 2d 73 69 67 | l.se/docs/manpage.html#--aws-sig |
| 1df80 | 76 34 0a 20 20 28 63 6c 2d 6d 75 6c 74 69 70 6c 65 2d 76 61 6c 75 65 2d 62 69 6e 64 20 28 6b 65 | v4...(cl-multiple-value-bind.(ke |
| 1dfa0 | 79 2d 69 64 20 73 65 63 72 65 74 20 74 6f 6b 65 6e 29 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 | y-id.secret.token).(gptel-bedroc |
| 1dfc0 | 6b 2d 2d 67 65 74 2d 63 72 65 64 65 6e 74 69 61 6c 73 29 0a 20 20 20 20 28 6e 63 6f 6e 63 0a 20 | k--get-credentials).....(nconc.. |
| 1dfe0 | 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 22 2d 2d 75 73 65 72 22 20 28 66 6f 72 6d 61 74 | ....(list......."--user".(format |
| 1e000 | 20 22 25 73 3a 25 73 22 20 6b 65 79 2d 69 64 20 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 22 2d | ."%s:%s".key-id.secret)......."- |
| 1e020 | 2d 61 77 73 2d 73 69 67 76 34 22 20 28 66 6f 72 6d 61 74 20 22 61 77 73 3a 61 6d 7a 3a 25 73 3a | -aws-sigv4".(format."aws:amz:%s: |
| 1e040 | 62 65 64 72 6f 63 6b 22 20 72 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 | bedrock".region))......(unless.( |
| 1e060 | 6d 65 6d 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 27 28 77 69 6e 64 6f 77 73 2d 6e 74 20 6d 73 | memq.system-type.'(windows-nt.ms |
| 1e080 | 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 57 69 74 68 6f 75 74 20 74 68 69 73 20 63 75 | -dos))........;;.Without.this.cu |
| 1e0a0 | 72 6c 20 73 77 61 6c 6c 6f 77 73 20 74 68 65 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 28 6c | rl.swallows.the.output........(l |
| 1e0c0 | 69 73 74 20 22 2d 2d 6f 75 74 70 75 74 22 20 22 2f 64 65 76 2f 73 74 64 6f 75 74 22 29 29 0a 20 | ist."--output"."/dev/stdout")).. |
| 1e0e0 | 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f | ....(when.token........(list.(fo |
| 1e100 | 72 6d 61 74 20 22 2d 48 78 2d 61 6d 7a 2d 73 65 63 75 72 69 74 79 2d 74 6f 6b 65 6e 3a 20 25 73 | rmat."-Hx-amz-security-token:.%s |
| 1e120 | 22 20 74 6f 6b 65 6e 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 | ".token))))))..(defun.gptel-bedr |
| 1e140 | 6f 63 6b 2d 2d 63 75 72 6c 2d 76 65 72 73 69 6f 6e 20 28 29 0a 20 20 22 43 68 65 63 6b 20 43 75 | ock--curl-version.()..."Check.Cu |
| 1e160 | 72 6c 20 76 65 72 73 69 6f 6e 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 62 65 | rl.version.required.for.gptel-be |
| 1e180 | 64 72 6f 63 6b 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f 75 74 70 75 74 20 28 73 68 65 6c 6c 2d | drock."...(let*.((output.(shell- |
| 1e1a0 | 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e 67 20 22 63 75 72 6c 20 2d 2d 76 65 72 73 69 6f | command-to-string."curl.--versio |
| 1e1c0 | 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 76 65 72 73 69 6f 6e 20 28 61 6e 64 20 28 73 74 72 | n"))..........(version.(and.(str |
| 1e1e0 | 69 6e 67 2d 6d 61 74 63 68 20 22 5e 63 75 72 6c 20 5c 5c 28 5b 30 2d 39 2e 5d 2b 5c 5c 29 22 20 | ing-match."^curl.\\([0-9.]+\\)". |
| 1e200 | 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | output)........................( |
| 1e220 | 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 6f 75 74 70 75 74 29 29 29 29 0a 20 20 20 20 76 65 | match-string.1.output)))).....ve |
| 1e240 | 72 73 69 6f 6e 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 | rsion))..;;;###autoload.(cl-defu |
| 1e260 | 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 0a 20 20 20 20 28 6e 61 6d 65 20 26 | n.gptel-make-bedrock.....(name.& |
| 1e280 | 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 | key...........region...........( |
| 1e2a0 | 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 29 0a 09 20 | models.gptel--bedrock-models)... |
| 1e2c0 | 20 28 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 | .(model-region.nil)...........(s |
| 1e2e0 | 74 72 65 61 6d 20 6e 69 6c 29 0a 09 20 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 | tream.nil)....curl-args......... |
| 1e300 | 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 | ..(protocol."https"))..."Registe |
| 1e320 | 72 20 61 6e 20 41 57 53 20 42 65 64 72 6f 63 6b 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 | r.an.AWS.Bedrock.backend.for.gpt |
| 1e340 | 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 | el.with.NAME...Keyword.arguments |
| 1e360 | 3a 0a 0a 52 45 47 49 4f 4e 20 2d 20 41 57 53 20 72 65 67 69 6f 6e 20 6e 61 6d 65 20 28 65 2e 67 | :..REGION.-.AWS.region.name.(e.g |
| 1e380 | 2e 20 5c 22 75 73 2d 65 61 73 74 2d 31 5c 22 29 0a 4d 4f 44 45 4c 53 20 2d 20 54 68 65 20 6c 69 | ..\"us-east-1\").MODELS.-.The.li |
| 1e3a0 | 73 74 20 6f 66 20 6d 6f 64 65 6c 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 62 | st.of.models.supported.by.this.b |
| 1e3c0 | 61 63 6b 65 6e 64 0a 4d 4f 44 45 4c 2d 52 45 47 49 4f 4e 20 2d 20 6f 6e 65 20 6f 66 20 61 70 61 | ackend.MODEL-REGION.-.one.of.apa |
| 1e3e0 | 63 2c 20 65 75 2c 20 75 73 20 6f 72 20 6e 69 6c 0a 43 55 52 4c 2d 41 52 47 53 20 2d 20 61 64 64 | c,.eu,.us.or.nil.CURL-ARGS.-.add |
| 1e400 | 69 74 69 6f 6e 61 6c 20 63 75 72 6c 20 61 72 67 73 0a 53 54 52 45 41 4d 20 2d 20 57 68 65 74 68 | itional.curl.args.STREAM.-.Wheth |
| 1e420 | 65 72 20 74 6f 20 75 73 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 6f 72 | er.to.use.streaming.responses.or |
| 1e440 | 20 6e 6f 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 | .not."...(declare.(indent.1))... |
| 1e460 | 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 28 76 65 72 | (unless.(and.gptel-use-curl.(ver |
| 1e480 | 73 69 6f 6e 3c 3d 20 22 38 2e 35 22 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 | sion<=."8.5".(gptel-bedrock--cur |
| 1e4a0 | 6c 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 42 65 64 72 6f 63 6b | l-version))).....(error."Bedrock |
| 1e4c0 | 2d 62 61 63 6b 65 6e 64 20 72 65 71 75 69 72 65 73 20 63 75 72 6c 20 3e 3d 20 38 2e 35 2c 20 62 | -backend.requires.curl.>=.8.5,.b |
| 1e4e0 | 75 74 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 3a 3d 20 25 73 2c 20 63 75 72 6c 2d 76 65 | ut.gptel-use-curl.:=.%s,.curl-ve |
| 1e500 | 72 73 69 6f 6e 20 3a 3d 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 75 73 | rsion.:=.%s"............gptel-us |
| 1e520 | 65 2d 63 75 72 6c 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 76 65 72 73 | e-curl.(gptel-bedrock--curl-vers |
| 1e540 | 69 6f 6e 29 29 29 0a 20 20 28 6c 65 74 20 28 28 68 6f 73 74 20 28 66 6f 72 6d 61 74 20 22 62 65 | ion)))...(let.((host.(format."be |
| 1e560 | 64 72 6f 63 6b 2d 72 75 6e 74 69 6d 65 2e 25 73 2e 61 6d 61 7a 6f 6e 61 77 73 2e 63 6f 6d 22 20 | drock-runtime.%s.amazonaws.com". |
| 1e580 | 72 65 67 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e | region))).....(setf.(alist-get.n |
| 1e5a0 | 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 | ame.gptel--known-backends.nil.ni |
| 1e5c0 | 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 61 6b | l.#'equal)...........(gptel--mak |
| 1e5e0 | 65 2d 62 65 64 72 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a | e-bedrock............:name.name. |
| 1e600 | 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 | ...........:host.host........... |
| 1e620 | 20 3a 68 65 61 64 65 72 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 3b 20 78 2d 61 6d 7a 2d 73 | .:header.nil...........;.x-amz-s |
| 1e640 | 65 63 75 72 69 74 79 2d 74 6f 6b 65 6e 20 69 73 20 73 65 74 20 69 6e 20 63 75 72 6c 2d 61 72 67 | ecurity-token.is.set.in.curl-arg |
| 1e660 | 73 20 69 66 20 6e 65 65 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 | s.if.needed............:models.( |
| 1e680 | 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 09 20 | gptel--process-models.models)... |
| 1e6a0 | 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 0a 20 20 20 | ..:model-region.model-region.... |
| 1e6c0 | 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 | ........:protocol.protocol...... |
| 1e6e0 | 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 22 20 3b 20 55 72 6c 20 69 73 20 64 79 6e 61 | ......:endpoint."".;.Url.is.dyna |
| 1e700 | 6d 69 63 61 6c 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 61 73 65 64 20 6f 6e 20 6f 74 68 | mically.constructed.based.on.oth |
| 1e720 | 65 72 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 | er.args............:stream.strea |
| 1e740 | 6d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 28 61 6e 64 | m............:coding-system.(and |
| 1e760 | 20 73 74 72 65 61 6d 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 | .stream.'binary)............:cur |
| 1e780 | 6c 2d 61 72 67 73 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 70 70 65 6e 64 20 63 75 72 6c 2d 61 | l-args.(lambda.().(append.curl-a |
| 1e7a0 | 72 67 73 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 61 72 67 73 20 72 65 | rgs.(gptel-bedrock--curl-args.re |
| 1e7c0 | 67 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 0a 20 20 20 20 20 20 20 20 | gion)))............:url......... |
| 1e7e0 | 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 | ...(lambda.()..............(conc |
| 1e800 | 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 | at.protocol."://".host.......... |
| 1e820 | 20 20 20 20 20 20 20 20 20 20 20 20 22 2f 6d 6f 64 65 6c 2f 22 20 28 67 70 74 65 6c 2d 62 65 64 | ............"/model/".(gptel-bed |
| 1e840 | 72 6f 63 6b 2d 2d 67 65 74 2d 6d 6f 64 65 6c 2d 69 64 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d | rock--get-model-id.gptel-model.m |
| 1e860 | 6f 64 65 6c 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | odel-region).................... |
| 1e880 | 20 20 22 2f 22 20 28 69 66 20 73 74 72 65 61 6d 20 22 63 6f 6e 76 65 72 73 65 2d 73 74 72 65 61 | .."/".(if.stream."converse-strea |
| 1e8a0 | 6d 22 20 22 63 6f 6e 76 65 72 73 65 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 29 29 29 29 | m"."converse")))............)))) |
| 1e8c0 | 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 0a 3b 3b 3b 20 67 | ..(provide.'gptel-bedrock).;;;.g |
| 1e8e0 | 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 | ptel-bedrock.el.ends.here....... |
| 1e900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ea00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 00 00 00 | gptel-0.9.8.5/gptel-ollama.el... |
| 1ea20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ea40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ea60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 1ea80 | 30 30 33 33 37 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 32 00 20 30 00 00 00 | 0033702.00000000000.014352..0... |
| 1eaa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eb00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 1eb20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 1eb40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eb60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eb80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1eba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ebc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ebe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ec00 | 3b 3b 3b 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 20 2d 2d 2d 20 4f 6c 6c 61 6d 61 20 73 | ;;;.gptel-ollama.el.---.Ollama.s |
| 1ec20 | 75 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | upport.for.gptel.....-*-.lexical |
| 1ec40 | 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | -binding:.t;.-*-..;;.Copyright.( |
| 1ec60 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 1ec80 | 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | r..;;.Author:.Karthik.Chikmagalu |
| 1eca0 | 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e | r.<karthikchikmagalur@gmail.com> |
| 1ecc0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 | .;;.Keywords:.hypermedia..;;.Thi |
| 1ece0 | 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 | s.program.is.free.software;.you. |
| 1ed00 | 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 | can.redistribute.it.and/or.modif |
| 1ed20 | 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 | y.;;.it.under.the.terms.of.the.G |
| 1ed40 | 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 | NU.General.Public.License.as.pub |
| 1ed60 | 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 | lished.by.;;.the.Free.Software.F |
| 1ed80 | 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 | oundation,.either.version.3.of.t |
| 1eda0 | 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f | he.License,.or.;;.(at.your.optio |
| 1edc0 | 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 | n).any.later.version...;;.This.p |
| 1ede0 | 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 | rogram.is.distributed.in.the.hop |
| 1ee00 | 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 | e.that.it.will.be.useful,.;;.but |
| 1ee20 | 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 | .WITHOUT.ANY.WARRANTY;.without.e |
| 1ee40 | 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d | ven.the.implied.warranty.of.;;.M |
| 1ee60 | 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 | ERCHANTABILITY.or.FITNESS.FOR.A. |
| 1ee80 | 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 | PARTICULAR.PURPOSE...See.the.;;. |
| 1eea0 | 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d | GNU.General.Public.License.for.m |
| 1eec0 | 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 | ore.details...;;.You.should.have |
| 1eee0 | 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 | .received.a.copy.of.the.GNU.Gene |
| 1ef00 | 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 | ral.Public.License.;;.along.with |
| 1ef20 | 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 | .this.program...If.not,.see.<htt |
| 1ef40 | 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b | ps://www.gnu.org/licenses/>...;; |
| 1ef60 | 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 | ;.Commentary:..;;.This.file.adds |
| 1ef80 | 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 6c 6c 61 6d 61 20 4c 4c 4d 20 41 50 49 20 | .support.for.the.Ollama.LLM.API. |
| 1efa0 | 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 | to.gptel..;;;.Code:.(require.'gp |
| 1efc0 | 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 0a 28 64 65 63 | tel).(require.'cl-generic)..(dec |
| 1efe0 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 | lare-function.json-read."json".( |
| 1f000 | 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | )).(declare-function.gptel-conte |
| 1f020 | 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 | xt--wrap."gptel-context").(decla |
| 1f040 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 | re-function.gptel-context--colle |
| 1f060 | 63 74 2d 6d 65 64 69 61 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 66 76 61 | ct-media."gptel-context").(defva |
| 1f080 | 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 3b 3b 3b 20 4f 6c 6c 61 6d 61 0a | r.json-object-type)..;;;.Ollama. |
| 1f0a0 | 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 20 28 3a 63 6f | (cl-defstruct.(gptel-ollama.(:co |
| 1f0c0 | 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 29 0a 20 20 | nstructor.gptel--make-ollama)... |
| 1f0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 | ..........................(:copi |
| 1f100 | 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er.nil)......................... |
| 1f120 | 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a | ....(:include.gptel-backend))).. |
| 1f140 | 3b 3b 20 46 49 58 4d 45 28 66 73 6d 29 20 52 65 6d 6f 76 65 20 74 68 69 73 20 76 61 72 69 61 62 | ;;.FIXME(fsm).Remove.this.variab |
| 1f160 | 6c 65 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 74 | le.(defvar-local.gptel--ollama-t |
| 1f180 | 6f 6b 65 6e 2d 63 6f 75 6e 74 20 30 0a 20 20 22 54 6f 6b 65 6e 20 63 6f 75 6e 74 20 66 6f 72 20 | oken-count.0..."Token.count.for. |
| 1f1a0 | 6f 6c 6c 61 6d 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 | ollama.conversations...This.vari |
| 1f1c0 | 61 62 6c 65 20 68 6f 6c 64 73 20 74 68 65 20 74 6f 74 61 6c 20 74 6f 6b 65 6e 20 63 6f 75 6e 74 | able.holds.the.total.token.count |
| 1f1e0 | 20 66 6f 72 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 77 69 74 68 0a 4f 6c 6c 61 6d 61 20 6d | .for.conversations.with.Ollama.m |
| 1f200 | 6f 64 65 6c 73 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 | odels...Intended.for.internal.us |
| 1f220 | 65 20 6f 6e 6c 79 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 | e.only.")..(cl-defmethod.gptel-c |
| 1f240 | 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 | url--parse-stream.((_backend.gpt |
| 1f260 | 65 6c 2d 6f 6c 6c 61 6d 61 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 72 65 73 70 6f 6e | el-ollama).info)..."Parse.respon |
| 1f280 | 73 65 20 73 74 72 65 61 6d 20 66 6f 72 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 2e 22 0a 20 | se.stream.for.the.Ollama.API.".. |
| 1f2a0 | 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 6f 62 70 29 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f | .(when.(and.(bobp).(re-search-fo |
| 1f2c0 | 72 77 61 72 64 20 22 5e 7b 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d | rward."^{".nil.t)).....(forward- |
| 1f2e0 | 6c 69 6e 65 20 30 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 | line.0))...(let*.((content-strs) |
| 1f300 | 20 28 63 6f 6e 74 65 6e 74 29 20 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f | .(content).(pt.(point))).....(co |
| 1f320 | 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 | ndition-case.nil.........(while. |
| 1f340 | 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 | (setq.content.(gptel--json-read) |
| 1f360 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 | )...........(setq.pt.(point))... |
| 1f380 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 6f 6e 65 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e | ........(let.((done.(map-elt.con |
| 1f3a0 | 74 65 6e 74 20 3a 64 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | tent.:done)).................(re |
| 1f3c0 | 73 70 6f 6e 73 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 27 | sponse.(map-nested-elt.content.' |
| 1f3e0 | 28 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | (:message.:content)))).......... |
| 1f400 | 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72 65 73 70 6f 6e 73 65 20 28 6e 6f 74 20 28 65 71 20 | ...(when.(and.response.(not.(eq. |
| 1f420 | 72 65 73 70 6f 6e 73 65 20 3a 6e 75 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | response.:null)))............... |
| 1f440 | 28 70 75 73 68 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 | (push.response.content-strs))... |
| 1f460 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 64 6f 6e 65 20 3a 6a 73 6f 6e | ..........(unless.(eq.done.:json |
| 1f480 | 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 | -false)...............(with-curr |
| 1f4a0 | 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 | ent-buffer.(plist-get.info.:buff |
| 1f4c0 | 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 67 70 74 | er).................(cl-incf.gpt |
| 1f4e0 | 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 74 6f 6b 65 6e 2d 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 | el--ollama-token-count.......... |
| 1f500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6f 72 20 28 6d 61 70 2d 65 6c 74 20 | ................(+.(or.(map-elt. |
| 1f520 | 63 6f 6e 74 65 6e 74 20 3a 70 72 6f 6d 70 74 5f 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 0a 20 | content.:prompt_eval_count).0).. |
| 1f540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | ...........................(or.( |
| 1f560 | 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 29 | map-elt.content.:eval_count).0)) |
| 1f580 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 | ))...............(goto-char.(poi |
| 1f5a0 | 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 | nt-max))))).......(error.(goto-c |
| 1f5c0 | 68 61 72 20 70 74 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e | har.pt))).....(apply.#'concat.(n |
| 1f5e0 | 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 | reverse.content-strs))))..(cl-de |
| 1f600 | 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 | fmethod.gptel--parse-response.(( |
| 1f620 | 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 72 65 73 70 6f 6e 73 65 20 | _backend.gptel-ollama).response. |
| 1f640 | 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 20 6f 6e 65 2d 73 68 6f 74 20 52 45 53 50 4f 4e | info)..."Parse.a.one-shot.RESPON |
| 1f660 | 53 45 20 66 72 6f 6d 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 20 61 6e 64 20 72 65 74 75 72 | SE.from.the.Ollama.API.and.retur |
| 1f680 | 6e 20 74 65 78 74 2e 0a 0a 53 74 6f 72 65 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 | n.text...Store.response.metadata |
| 1f6a0 | 20 69 6e 20 73 74 61 74 65 20 49 4e 46 4f 2e 22 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e | .in.state.INFO."...(plist-put.in |
| 1f6c0 | 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f | fo.:stop-reason.(plist-get.respo |
| 1f6e0 | 6e 73 65 20 3a 64 6f 6e 65 5f 72 65 61 73 6f 6e 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | nse.:done_reason))...(plist-put. |
| 1f700 | 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 20 28 70 6c 69 73 74 2d 67 65 74 20 72 | info.:output-tokens.(plist-get.r |
| 1f720 | 65 73 70 6f 6e 73 65 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 | esponse.:eval_count))...(let*.(( |
| 1f740 | 6d 65 73 73 61 67 65 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 6d 65 73 | message.(plist-get.response.:mes |
| 1f760 | 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d | sage))..........(content.(plist- |
| 1f780 | 67 65 74 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 | get.message.:content))).....(if. |
| 1f7a0 | 28 61 6e 64 20 63 6f 6e 74 65 6e 74 20 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 6f 6e 74 65 6e | (and.content.(not.(or.(eq.conten |
| 1f7c0 | 74 20 3a 6e 75 6c 6c 29 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 63 6f 6e 74 65 6e 74 | t.:null).(string-empty-p.content |
| 1f7e0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 28 70 72 6f 67 | )))).........content.......(prog |
| 1f800 | 31 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 4c | 1.nil........................;.L |
| 1f820 | 6f 6f 6b 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6f 6e 6c 79 20 69 66 20 6e 6f 20 63 6f | ook.for.tool.calls.only.if.no.co |
| 1f840 | 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d | ntent.........(when-let*.((tool- |
| 1f860 | 63 61 6c 6c 73 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 74 6f 6f 6c 5f 63 | calls.(plist-get.message.:tool_c |
| 1f880 | 61 6c 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 69 72 73 74 20 61 64 64 20 74 | alls)))...........;;.First.add.t |
| 1f8a0 | 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 | he.tool.call.to.the.prompts.list |
| 1f8c0 | 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 | ...........(let*.((data.(plist-g |
| 1f8e0 | 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.info.:data))................. |
| 1f900 | 20 28 70 72 6f 6d 70 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6d 65 73 73 61 | .(prompts.(plist-get.data.:messa |
| 1f920 | 67 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 | ges))).............(plist-put.da |
| 1f940 | 74 61 20 3a 6d 65 73 73 61 67 65 73 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 60 28 | ta.:messages.(vconcat.prompts.`( |
| 1f960 | 2c 6d 65 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 6e 20 63 | ,message))))...........;;.Then.c |
| 1f980 | 61 70 74 75 72 65 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 | apture.the.tool.call.data.for.ru |
| 1f9a0 | 6e 6e 69 6e 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f | nning.the.tool...........(cl-loo |
| 1f9c0 | 70 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 63 61 6c 6c 20 61 63 72 6f 73 | p............for.tool-call.acros |
| 1f9e0 | 73 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 3b 72 65 70 6c 61 63 65 20 22 3a 61 72 67 75 6d 65 6e 74 | s.tool-calls.;replace.":argument |
| 1fa00 | 73 22 20 77 69 74 68 20 22 3a 61 72 67 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 | s".with.":args"............for.c |
| 1fa20 | 61 6c 6c 2d 73 70 65 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6c 69 73 74 | all-spec.=.(copy-sequence.(plist |
| 1fa40 | 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 | -get.tool-call.:function))...... |
| 1fa60 | 20 20 20 20 20 20 64 6f 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 61 | ......do.(plist-put.call-spec.:a |
| 1fa80 | 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | rgs..........................(pl |
| 1faa0 | 69 73 74 2d 67 65 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 29 0a 20 | ist-get.call-spec.:arguments)).. |
| 1fac0 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a | ..........(plist-put.call-spec.: |
| 1fae0 | 61 72 67 75 6d 65 6e 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 | arguments.nil)............collec |
| 1fb00 | 74 20 63 61 6c 6c 2d 73 70 65 63 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 | t.call-spec.into.tool-use....... |
| 1fb20 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f | .....finally.(plist-put.info.:to |
| 1fb40 | 6f 6c 2d 75 73 65 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | ol-use.tool-use)))))))..(cl-defm |
| 1fb60 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b | ethod.gptel--request-data.((back |
| 1fb80 | 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 | end.gptel-ollama).prompts)..."JS |
| 1fba0 | 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f | ON.encode.PROMPTS.for.sending.to |
| 1fbc0 | 20 4f 6c 6c 61 6d 61 2e 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d | .Ollama."...(when.gptel--system- |
| 1fbe0 | 6d 65 73 73 61 67 65 0a 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 73 | message.....(push.(list.:role."s |
| 1fc00 | 79 73 74 65 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 | ystem".................:content. |
| 1fc20 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 | gptel--system-message).......... |
| 1fc40 | 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 | .prompts))...(let*.((prompts-pli |
| 1fc60 | 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 | st...........(gptel--merge-plist |
| 1fc80 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d | s............`(:model.,(gptel--m |
| 1fca0 | 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 | odel-name.gptel-model).......... |
| 1fcc0 | 20 20 20 20 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 | ....:messages.[,@prompts]....... |
| 1fce0 | 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 70 74 65 6c 2d 73 74 72 65 61 6d | .......:stream.,(or.gptel-stream |
| 1fd00 | 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | .:json-false))............(gptel |
| 1fd20 | 2d 62 61 63 6b 65 6e 64 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 | -backend-request-params.gptel-ba |
| 1fd40 | 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | ckend)............(gptel--model- |
| 1fd60 | 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 0a 20 | request-params..gptel-model))).. |
| 1fd80 | 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 69 6e 69 74 69 61 6c 20 6f 70 74 69 6f 6e 73 20 28 | ........;;.the.initial.options.( |
| 1fda0 | 69 66 20 61 6e 79 29 20 66 72 6f 6d 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 0a 20 20 20 20 | if.any).from.request.params..... |
| 1fdc0 | 20 20 20 20 20 28 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 70 | .....(options-plist.(plist-get.p |
| 1fde0 | 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 6f 70 74 69 6f 6e 73 29 29 29 0a 0a 20 20 20 20 28 77 | rompts-plist.:options)))......(w |
| 1fe00 | 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 | hen.(and.gptel-use-tools.gptel-t |
| 1fe20 | 6f 6f 6c 73 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 3a 20 46 69 6e 64 20 | ools).......;;.TODO(tool):.Find. |
| 1fe40 | 6f 75 74 20 68 6f 77 20 74 6f 20 66 6f 72 63 65 20 74 6f 6f 6c 20 75 73 65 20 66 6f 72 20 4f 6c | out.how.to.force.tool.use.for.Ol |
| 1fe60 | 6c 61 6d 61 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c | lama.......(plist-put.prompts-pl |
| 1fe80 | 69 73 74 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | ist.:tools..................(gpt |
| 1fea0 | 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 74 6f | el--parse-tools.backend.gptel-to |
| 1fec0 | 6f 6c 73 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 | ols)).......(plist-put.prompts-p |
| 1fee0 | 6c 69 73 74 20 3a 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 3b | list.:stream.:json-false)).....; |
| 1ff00 | 3b 20 69 66 20 74 68 65 20 74 65 6d 70 65 72 61 74 75 72 65 20 61 6e 64 20 6d 61 78 2d 74 6f 6b | ;.if.the.temperature.and.max-tok |
| 1ff20 | 65 6e 73 20 61 72 65 6e 27 74 20 73 65 74 20 61 73 0a 20 20 20 20 3b 3b 20 62 61 63 6b 65 6e 64 | ens.aren't.set.as.....;;.backend |
| 1ff40 | 2f 6d 6f 64 65 6c 2d 73 70 65 63 69 66 69 63 2c 20 75 73 65 20 74 68 65 20 67 6c 6f 62 61 6c 20 | /model-specific,.use.the.global. |
| 1ff60 | 73 65 74 74 69 6e 67 73 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 65 | settings.....(when.(and.gptel-te |
| 1ff80 | 6d 70 65 72 61 74 75 72 65 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 70 74 69 6f 6e | mperature.(not.(plist-get.option |
| 1ffa0 | 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 20 20 20 20 28 73 | s-plist.:temperature))).......(s |
| 1ffc0 | 65 74 71 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | etq.options-plist.............(p |
| 1ffe0 | 6c 69 73 74 2d 70 75 74 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 | list-put.options-plist.:temperat |
| 20000 | 75 72 65 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 20 20 28 77 68 | ure.gptel-temperature))).....(wh |
| 20020 | 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 28 6e 6f 74 20 28 70 | en.(and.gptel-max-tokens.(not.(p |
| 20040 | 6c 69 73 74 2d 67 65 74 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 20 3a 6e 75 6d 5f 70 72 65 64 | list-get.options-plist.:num_pred |
| 20060 | 69 63 74 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 | ict))).......(setq.options-plist |
| 20080 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 6f 70 74 69 6f 6e 73 2d | .............(plist-put.options- |
| 200a0 | 70 6c 69 73 74 20 3a 6e 75 6d 5f 70 72 65 64 69 63 74 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b | plist.:num_predict.gptel-max-tok |
| 200c0 | 65 6e 73 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c | ens))).....(plist-put.prompts-pl |
| 200e0 | 69 73 74 20 3a 6f 70 74 69 6f 6e 73 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 29 29 29 0a 0a 3b | ist.:options.options-plist)))..; |
| 20100 | 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 27 20 | ;.NOTE:.No.`gptel--parse-tools'. |
| 20120 | 6d 65 74 68 6f 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 | method.required.for.gptel-ollama |
| 20140 | 2c 20 73 69 6e 63 65 20 74 68 69 73 20 69 73 0a 3b 3b 20 68 61 6e 64 6c 65 64 20 62 79 20 69 74 | ,.since.this.is.;;.handled.by.it |
| 20160 | 73 20 64 65 66 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 63 6c | s.defgeneric.implementation..(cl |
| 20180 | 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 | -defmethod.gptel--parse-tool-res |
| 201a0 | 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 74 6f | ults.((_backend.gptel-ollama).to |
| 201c0 | 6f 6c 2d 75 73 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 | ol-use)..."Return.a.prompt.conta |
| 201e0 | 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 54 4f 4f 4c 2d | ining.tool.call.results.in.TOOL- |
| 20200 | 55 53 45 2e 22 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 | USE."...(mapcar.(lambda.(tool-ca |
| 20220 | 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 74 6f 6f | ll).............(list.:role."too |
| 20240 | 6c 22 20 3a 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c | l".:content.(plist-get.tool-call |
| 20260 | 20 3a 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 | .:result)))...........tool-use)) |
| 20280 | 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f | ..;;.NOTE:.No.`gptel--inject-pro |
| 202a0 | 6d 70 74 27 20 6d 65 74 68 6f 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 6f | mpt'.method.required.for.gptel-o |
| 202c0 | 6c 6c 61 6d 61 2c 20 73 69 6e 63 65 20 74 68 69 73 20 69 73 0a 3b 3b 20 68 61 6e 64 6c 65 64 20 | llama,.since.this.is.;;.handled. |
| 202e0 | 62 79 20 69 74 73 20 64 65 66 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e | by.its.defgeneric.implementation |
| 20300 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 | ..(cl-defmethod.gptel--parse-lis |
| 20320 | 74 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 70 72 6f 6d 70 74 | t.((backend.gptel-ollama).prompt |
| 20340 | 2d 6c 69 73 74 29 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d | -list)...(if.(consp.(car.prompt- |
| 20360 | 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 | list)).......(let.((full-prompt) |
| 20380 | 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 | )..............;.Advanced.format |
| 203a0 | 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 | ,.list.of.lists.........(dolist. |
| 203c0 | 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 | (entry.prompt-list)...........(p |
| 203e0 | 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 | case.entry.............(`(prompt |
| 20400 | 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 | ...,msg)..............(push.(lis |
| 20420 | 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 28 6f 72 20 28 63 61 72 | t.:role."user".:content.(or.(car |
| 20440 | 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -safe.msg).msg))................ |
| 20460 | 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 | ....full-prompt)).............(` |
| 20480 | 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | (response...,msg)..............( |
| 204a0 | 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f | push.(list.:role."assistant".:co |
| 204c0 | 6e 74 65 6e 74 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 0a 20 | ntent.(or.(car-safe.msg).msg)).. |
| 204e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a | ..................full-prompt)). |
| 20500 | 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 | ............(`(tool...,call).... |
| 20520 | 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 | ..........(push.(list.:role."ass |
| 20540 | 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | istant"......................... |
| 20560 | 20 3a 63 6f 6e 74 65 6e 74 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:content."".................... |
| 20580 | 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 60 5b 28 3a 66 75 6e 63 74 69 6f 6e 20 28 | ......:tool_calls.`[(:function.( |
| 205a0 | 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 | :name.,(plist-get.call.:name)... |
| 205c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 205e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 28 70 6c | .................:arguments.,(pl |
| 20600 | 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 5d 29 0a 20 20 20 20 20 20 20 20 | ist-get.call.:args)))])......... |
| 20620 | 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 | ...........full-prompt)......... |
| 20640 | 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f | .....(push.(car.(gptel--parse-to |
| 20660 | 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 28 63 64 72 20 65 6e | ol-results.backend.(list.(cdr.en |
| 20680 | 74 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d | try))))....................full- |
| 206a0 | 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 75 6c | prompt)))).........(nreverse.ful |
| 206c0 | 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 | l-prompt)).....(cl-loop.for.text |
| 206e0 | 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d | .in.prompt-list....;.Simple.form |
| 20700 | 61 74 2c 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | at,.list.of.strings............. |
| 20720 | 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 29 0a 20 20 | .for.role.=.t.then.(not.role)... |
| 20740 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 | ...........if.text.collect...... |
| 20760 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 | ........(list.:role.(if.role."us |
| 20780 | 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 20 3a 63 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 | er"."assistant").:content.text)) |
| 207a0 | 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 | ))..(cl-defmethod.gptel--parse-b |
| 207c0 | 75 66 66 65 72 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 26 6f | uffer.((backend.gptel-ollama).&o |
| 207e0 | 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 | ptional.max-entries)...(let.((pr |
| 20800 | 6f 6d 70 74 73 29 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 | ompts).(prev-pt.(point))).....(i |
| 20820 | 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 | f.(or.gptel-mode.gptel-track-res |
| 20840 | 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6f 72 20 28 | ponse).........(while.(and.(or.( |
| 20860 | 6e 6f 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 | not.max-entries).(>=.max-entries |
| 20880 | 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 | .0)).....................(goto-c |
| 208a0 | 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 | har.(previous-single-property-ch |
| 208c0 | 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ange............................ |
| 208e0 | 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d | .....(point).'gptel.nil.(point-m |
| 20900 | 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 | in))).....................(not.( |
| 20920 | 3d 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | =.(point).prev-pt)))...........( |
| 20940 | 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 | pcase.(get-char-property.(point) |
| 20960 | 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 72 65 73 70 6f 6e 73 65 0a | .'gptel).............('response. |
| 20980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e | .............(when-let*.((conten |
| 209a0 | 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 | t.(gptel--trim-prefixes......... |
| 209c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 | ...........................(buff |
| 209e0 | 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e | er-substring-no-properties.(poin |
| 20a00 | 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | t).prev-pt))))................(p |
| 20a20 | 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e | ush.(list.:role."assistant".:con |
| 20a40 | 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 | tent.content).prompts)))........ |
| 20a60 | 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 5f 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(`(tool...,_id)............ |
| 20a80 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(save-excursion............... |
| 20aa0 | 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | .(condition-case.nil............ |
| 20ac0 | 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 63 61 6c 6c 20 28 72 65 61 64 20 | ........(let*.((tool-call.(read. |
| 20ae0 | 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (current-buffer))).............. |
| 20b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f | .............(name.(plist-get.to |
| 20b20 | 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol-call.:name))................. |
| 20b40 | 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 | ..........(arguments.(plist-get. |
| 20b60 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-call.:args))).............. |
| 20b80 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 | ........(plist-put.tool-call.:re |
| 20ba0 | 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sult............................ |
| 20bc0 | 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | .....(string-trim.(buffer-substr |
| 20be0 | 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-no-properties............... |
| 20c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 20c20 | 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (point).prev-pt))).............. |
| 20c40 | 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 | ........(push.(car.(gptel--parse |
| 20c60 | 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 74 6f 6f 6c | -tool-results.backend.(list.tool |
| 20c80 | 2d 63 61 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -call)))........................ |
| 20ca0 | 20 20 20 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....prompts).................... |
| 20cc0 | 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a | ..(push.(list.:role."assistant". |
| 20ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 20d00 | 20 3a 63 6f 6e 74 65 6e 74 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:content."".................... |
| 20d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 60 5b 28 3a 66 75 | ..............:tool_calls.`[(:fu |
| 20d40 | 6e 63 74 69 6f 6e 20 28 3a 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c | nction.(:name.,name.:arguments., |
| 20d60 | 61 72 67 75 6d 65 6e 74 73 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arguments))])................... |
| 20d80 | 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........prompts)).............. |
| 20da0 | 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 61 64 2d 73 | ....((end-of-file.invalid-read-s |
| 20dc0 | 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | yntax)...................(messag |
| 20de0 | 65 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 6f 6f 6c 2d | e.(format."Could.not.parse.tool- |
| 20e00 | 63 61 6c 6c 20 6f 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | call.on.line.%s"................ |
| 20e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 | ....................(line-number |
| 20e40 | 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | -at-pos.(point)))))))).......... |
| 20e60 | 20 20 20 28 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 0a 20 | ...('ignore).............('nil.. |
| 20e80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 | ............(if.gptel-track-medi |
| 20ea0 | 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | a..................(when-let*.(( |
| 20ec0 | 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c | content.(gptel--ollama-parse-mul |
| 20ee0 | 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tipart.......................... |
| 20f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 | ..............(gptel--parse-medi |
| 20f20 | 61 2d 6c 69 6e 6b 73 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d | a-links.major-mode.(point).prev- |
| 20f40 | 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | pt))))....................(when. |
| 20f60 | 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 | (>.(length.content).0).......... |
| 20f80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 61 70 70 65 6e 64 20 27 28 3a 72 6f 6c | ............(push.(append.'(:rol |
| 20fa0 | 65 20 22 75 73 65 72 22 29 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 | e."user").content).prompts)))... |
| 20fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e | .............(when-let*.((conten |
| 20fe0 | 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 28 62 75 66 66 65 72 2d | t.(gptel--trim-prefixes.(buffer- |
| 21000 | 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 | substring-no-properties......... |
| 21020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 21040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d | ...................(point).prev- |
| 21060 | 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c | pt))))..................(push.(l |
| 21080 | 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e | ist.:role."user".:content.conten |
| 210a0 | 74 29 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | t).prompts)))))...........(setq. |
| 210c0 | 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 | prev-pt.(point))...........(and. |
| 210e0 | 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 | max-entries.(cl-decf.max-entries |
| 21100 | 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e 67 | ))).......(let.((content.(string |
| 21120 | 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 | -trim.(buffer-substring-no-prope |
| 21140 | 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rties........................... |
| 21160 | 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | .........(point-min).(point-max) |
| 21180 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 | )))).........(push.(list.:role." |
| 211a0 | 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 | user".:content.content).prompts) |
| 211c0 | 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | )).....prompts))..(defun.gptel-- |
| 211e0 | 6f 6c 6c 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 | ollama-parse-multipart.(parts).. |
| 21200 | 20 22 43 6f 6e 76 65 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 | ."Convert.a.multipart.prompt.PAR |
| 21220 | 54 53 20 74 6f 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 | TS.to.the.Ollama.API.format...Th |
| 21240 | 65 20 69 6e 70 75 74 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a | e.input.is.an.alist.of.the.form. |
| 21260 | 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 | .((:text.\"some.text\")...(:medi |
| 21280 | 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c | a.\"/path/to/media.png\".:mime.\ |
| 212a0 | 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 | "image/png\")...(:text.\"More.te |
| 212c0 | 78 74 5c 22 29 29 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 | xt\"))...The.output.is.a.vector. |
| 212e0 | 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 | of.entries.in.a.backend-appropri |
| 21300 | 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 | ate.format."...(cl-loop....for.p |
| 21320 | 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 | art.in.parts....for.n.upfrom.1.. |
| 21340 | 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 74 73 29 0a 20 20 20 | ..with.last.=.(length.parts).... |
| 21360 | 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 | for.text.=.(plist-get.part.:text |
| 21380 | 29 0a 20 20 20 66 6f 72 20 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 | )....for.media.=.(plist-get.part |
| 213a0 | 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 | .:media)....if.text.do....(and.( |
| 213c0 | 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 | or.(=.n.1).(=.n.last)).(setq.tex |
| 213e0 | 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 20 | t.(gptel--trim-prefixes.text))). |
| 21400 | 61 6e 64 0a 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 74 65 78 74 20 69 | and....if.text....collect.text.i |
| 21420 | 6e 74 6f 20 74 65 78 74 2d 61 72 72 61 79 20 65 6e 64 0a 20 20 20 65 6c 73 65 20 69 66 20 6d 65 | nto.text-array.end....else.if.me |
| 21440 | 64 69 61 0a 20 20 20 63 6f 6c 6c 65 63 74 20 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e | dia....collect.(gptel--base64-en |
| 21460 | 63 6f 64 65 20 6d 65 64 69 61 29 20 69 6e 74 6f 20 6d 65 64 69 61 2d 61 72 72 61 79 0a 20 20 20 | code.media).into.media-array.... |
| 21480 | 65 6c 73 65 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c | else.if.(plist-get.part.:textfil |
| 214a0 | 65 29 0a 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 | e)....collect....(with-temp-buff |
| 214c0 | 65 72 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 | er......(gptel--insert-file-stri |
| 214e0 | 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 | ng.(plist-get.part.:textfile)).. |
| 21500 | 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 69 6e 74 6f 20 74 65 78 | ....(buffer-string))....into.tex |
| 21520 | 74 2d 61 72 72 61 79 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 60 28 2c | t-array....finally.return....`(, |
| 21540 | 40 28 61 6e 64 20 74 65 78 74 2d 61 72 72 61 79 20 20 28 6c 69 73 74 20 3a 63 6f 6e 74 65 6e 74 | @(and.text-array..(list.:content |
| 21560 | 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 74 65 78 74 2d 61 72 72 61 | .(mapconcat.#'identity.text-arra |
| 21580 | 79 20 22 20 22 29 29 29 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 6d 65 64 69 61 2d 61 72 72 61 79 | y.".")))......,@(and.media-array |
| 215a0 | 20 28 6c 69 73 74 20 3a 69 6d 61 67 65 73 20 20 28 76 63 6f 6e 63 61 74 20 6d 65 64 69 61 2d 61 | .(list.:images..(vconcat.media-a |
| 215c0 | 72 72 61 79 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d | rray))))))..(cl-defmethod.gptel- |
| 215e0 | 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 | -wrap-user-prompt.((_backend.gpt |
| 21600 | 65 6c 2d 6f 6c 6c 61 6d 61 29 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-ollama).prompts.............. |
| 21620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f | ..........................&optio |
| 21640 | 6e 61 6c 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c 61 | nal.inject-media)..."Wrap.the.la |
| 21660 | 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 74 | st.user.prompt.in.PROMPTS.with.t |
| 21680 | 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 2e 0a 0a 49 66 20 49 4e 4a 45 43 54 2d 4d 45 | he.context.string...If.INJECT-ME |
| 216a0 | 44 49 41 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 77 72 61 70 20 69 74 20 77 69 74 68 20 62 61 73 65 | DIA.is.non-nil.wrap.it.with.base |
| 216c0 | 36 34 2d 65 6e 63 6f 64 65 64 20 6d 65 64 69 61 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 6f | 64-encoded.media.files.in.the.co |
| 216e0 | 6e 74 65 78 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 20 | ntext."...(if.inject-media...... |
| 21700 | 20 3b 3b 20 57 72 61 70 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 77 | .;;.Wrap.the.first.user.prompt.w |
| 21720 | 69 74 68 20 69 6e 63 6c 75 64 65 64 20 6d 65 64 69 61 20 66 69 6c 65 73 2f 63 6f 6e 74 65 78 74 | ith.included.media.files/context |
| 21740 | 73 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 20 | s.......(when-let*.((media-list. |
| 21760 | 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 0a | (gptel-context--collect-media)). |
| 21780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 64 69 61 2d 70 72 6f 63 65 73 73 | ..................(media-process |
| 217a0 | 65 64 20 28 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 | ed.(gptel--ollama-parse-multipar |
| 217c0 | 74 20 6d 65 64 69 61 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c | t.media-list))).........(cl-call |
| 217e0 | 66 20 28 6c 61 6d 62 64 61 20 28 69 6d 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | f.(lambda.(images).............. |
| 21800 | 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 64 69 61 | .......(vconcat.(plist-get.media |
| 21820 | 2d 70 72 6f 63 65 73 73 65 64 20 3a 69 6d 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -processed.:images)............. |
| 21840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6d 61 67 65 73 29 29 0a 20 20 20 20 20 20 | .................images))....... |
| 21860 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 20 3a | ......(plist-get.(car.prompts).: |
| 21880 | 69 6d 61 67 65 73 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 75 | images))).....;;.Wrap.the.last.u |
| 218a0 | 73 65 72 20 70 72 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 74 65 78 74 20 63 6f | ser.prompt.with.included.text.co |
| 218c0 | 6e 74 65 78 74 73 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | ntexts.....(cl-callf.gptel-conte |
| 218e0 | 78 74 2d 2d 77 72 61 70 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 | xt--wrap.(plist-get.(car.(last.p |
| 21900 | 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 | rompts)).:content))))..;;;###aut |
| 21920 | 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d | oload.(cl-defun.gptel-make-ollam |
| 21940 | 61 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 68 65 61 64 65 | a.....(name.&key.curl-args.heade |
| 21960 | 72 20 6b 65 79 20 6d 6f 64 65 6c 73 20 73 74 72 65 61 6d 20 72 65 71 75 65 73 74 2d 70 61 72 61 | r.key.models.stream.request-para |
| 21980 | 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 | ms...........(host."localhost:11 |
| 219a0 | 34 33 34 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 | 434")...........(protocol."http" |
| 219c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f 63 68 61 74 | )...........(endpoint."/api/chat |
| 219e0 | 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 4f 6c 6c 61 6d 61 20 62 61 63 6b 65 6e | "))..."Register.an.Ollama.backen |
| 21a00 | 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 | d.for.gptel.with.NAME...Keyword. |
| 21a20 | 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 | arguments:..CURL-ARGS.(optional) |
| 21a40 | 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 | .is.a.list.of.additional.Curl.ar |
| 21a60 | 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 77 68 65 72 65 20 4f 6c 6c 61 6d 61 20 72 | guments...HOST.is.where.Ollama.r |
| 21a80 | 75 6e 73 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 6f 63 | uns.(with.port),.defaults.to.loc |
| 21aa0 | 61 6c 68 6f 73 74 3a 31 31 34 33 34 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f | alhost:11434..MODELS.is.a.list.o |
| 21ac0 | 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 | f.available.model.names,.as.symb |
| 21ae0 | 6f 6c 73 2e 0a 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 | ols..Additionally,.you.can.speci |
| 21b00 | 66 79 20 73 75 70 70 6f 72 74 65 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 | fy.supported.LLM.capabilities.li |
| 21b20 | 6b 65 0a 76 69 73 69 6f 6e 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 | ke.vision.or.tool-use.by.appendi |
| 21b40 | 6e 67 20 61 20 70 6c 69 73 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 | ng.a.plist.to.the.model.with.mor |
| 21b60 | 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f | e.information,.in.the.form...(mo |
| 21b80 | 64 65 6c 2d 6e 61 6d 65 20 2e 20 70 6c 69 73 74 29 0a 0a 43 75 72 72 65 6e 74 6c 79 20 72 65 63 | del-name...plist)..Currently.rec |
| 21ba0 | 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 20 61 72 65 20 3a 64 65 73 63 72 69 70 74 | ognized.plist.keys.are.:descript |
| 21bc0 | 69 6f 6e 2c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 0a 61 6e 64 20 3a 6d 69 6d 65 2d 74 79 70 | ion,.:capabilities.and.:mime-typ |
| 21be0 | 65 73 2e 20 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 69 | es...An.example.of.a.model.speci |
| 21c00 | 66 69 63 61 74 69 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 0a 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 | fication.including.both.kinds.of |
| 21c20 | 20 73 70 65 63 73 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c 5c 3d 27 28 6d 69 73 74 72 61 6c 3a 6c 61 | .specs:..:models.\\='(mistral:la |
| 21c40 | 74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d | test........................;Sim |
| 21c60 | 70 6c 65 20 73 70 65 63 73 0a 20 20 6f 70 65 6e 68 65 72 6d 65 73 3a 6c 61 74 65 73 74 0a 20 20 | ple.specs...openhermes:latest... |
| 21c80 | 28 6c 6c 61 76 61 3a 31 33 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (llava:13b...................... |
| 21ca0 | 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e | ......;Full.spec....:description |
| 21cc0 | 0a 20 20 20 5c 22 4c 6c 61 76 61 20 31 2e 36 3a 20 4c 61 72 67 65 20 4c 61 6e 75 61 67 65 20 61 | ....\"Llava.1.6:.Large.Lanuage.a |
| 21ce0 | 6e 64 20 56 69 73 69 6f 6e 20 41 73 73 69 73 74 61 6e 74 5c 22 0a 20 20 20 3a 63 61 70 61 62 69 | nd.Vision.Assistant\"....:capabi |
| 21d00 | 6c 69 74 69 65 73 20 28 6d 65 64 69 61 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 5c | lities.(media)....:mime-types.(\ |
| 21d20 | 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 29 29 0a 0a | "image/jpeg\".\"image/png\"))).. |
| 21d40 | 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 | .STREAM.is.a.boolean.to.toggle.s |
| 21d60 | 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a | treaming.responses,.defaults.to. |
| 21d80 | 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 | false...PROTOCOL.(optional).spec |
| 21da0 | 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 20 62 79 20 64 65 66 61 | ifies.the.protocol,.http.by.defa |
| 21dc0 | 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 | ult...ENDPOINT.(optional).is.the |
| 21de0 | 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 | .API.endpoint.for.completions,.d |
| 21e00 | 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 67 65 6e 65 72 61 74 65 5c 22 2e 0a 0a 48 | efaults.to.\"/api/generate\"...H |
| 21e20 | 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e | EADER.(optional).is.for.addition |
| 21e40 | 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 | al.headers.to.send.with.each.req |
| 21e60 | 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 | uest...It.should.be.an.alist.or. |
| 21e80 | 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c | a.function.that.retuns.an.alist, |
| 21ea0 | 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 | .like:..((\"Content-Type\"...\"a |
| 21ec0 | 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e | pplication/json\"))..KEY.(option |
| 21ee0 | 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 | al).is.a.variable.whose.value.is |
| 21f00 | 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 | .the.API.key,.or.function.that.r |
| 21f20 | 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c | eturns.the.key...This.is.typical |
| 21f40 | 6c 79 20 6e 6f 74 20 72 65 71 75 69 72 65 64 0a 66 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 | ly.not.required.for.local.models |
| 21f60 | 20 6c 69 6b 65 20 4f 6c 6c 61 6d 61 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f | .like.Ollama...REQUEST-PARAMS.(o |
| 21f80 | 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 | ptional).is.a.plist.of.additiona |
| 21fa0 | 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 65 72 73 20 28 61 73 20 70 6c | l.HTTP.request.parameters.(as.pl |
| 21fc0 | 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 | ist.keys).and.values.supported.b |
| 21fe0 | 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 74 6f 20 73 65 74 20 70 61 72 | y.the.API...Use.these.to.set.par |
| 22000 | 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 | ameters.that.gptel.does.not.prov |
| 22020 | 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a | ide.user.options.for...Example:. |
| 22040 | 2d 2d 2d 2d 2d 2d 2d 0a 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 | -------...(gptel-make-ollama.... |
| 22060 | 5c 22 4f 6c 6c 61 6d 61 5c 22 0a 20 20 20 3a 68 6f 73 74 20 5c 22 6c 6f 63 61 6c 68 6f 73 74 3a | \"Ollama\"....:host.\"localhost: |
| 22080 | 31 31 34 33 34 5c 22 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 6d 69 73 74 72 61 6c 3a | 11434\"....:models.\\='(mistral: |
| 220a0 | 6c 61 74 65 73 74 29 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 29 22 0a 20 20 28 64 65 63 6c 61 72 | latest)....:stream.t)"...(declar |
| 220c0 | 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 | e.(indent.1))...(let.((backend.( |
| 220e0 | 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--make-ollama.............. |
| 22100 | 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 | .....:curl-args.curl-args....... |
| 22120 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 | ............:name.name.......... |
| 22140 | 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .........:host.host............. |
| 22160 | 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | ......:header.header............ |
| 22180 | 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......:key.key................. |
| 221a0 | 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 | ..:models.(gptel--process-models |
| 221c0 | 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 | .models)...................:prot |
| 221e0 | 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocol.protocol................... |
| 22200 | 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :endpoint.endpoint.............. |
| 22220 | 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....:stream.stream............. |
| 22240 | 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 | ......:request-params.request-pa |
| 22260 | 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 | rams...................:url.(if. |
| 22280 | 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol........................ |
| 222a0 | 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 | ....(concat.protocol."://".host. |
| 222c0 | 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | endpoint)....................... |
| 222e0 | 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 | ...(concat.host.endpoint)))))... |
| 22300 | 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c | ..(prog1.backend.......(setf.(al |
| 22320 | 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e | ist-get.name.gptel--known-backen |
| 22340 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 | ds........................nil.ni |
| 22360 | 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 | l.#'equal)...................bac |
| 22380 | 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 | kend))))..(provide.'gptel-ollama |
| 223a0 | 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a | ).;;;.gptel-ollama.el.ends.here. |
| 223c0 | 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 223e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22400 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 00 00 00 00 00 | gptel-0.9.8.5/gptel-curl.el..... |
| 22420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22460 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 22480 | 30 30 35 33 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 35 35 00 20 30 00 00 00 | 0053361.00000000000.014055..0... |
| 224a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 224c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 224e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22500 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 22520 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 22540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 225a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 225c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 225e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22600 | 3b 3b 3b 20 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 20 2d 2d 2d 20 43 75 72 6c 20 73 75 70 70 6f | ;;;.gptel-curl.el.---.Curl.suppo |
| 22620 | 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | rt.for.gptel.........-*-.lexical |
| 22640 | 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | -binding:.t;.-*-..;;.Copyright.( |
| 22660 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 22680 | 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | r..;;.Author:.Karthik.Chikmagalu |
| 226a0 | 72 3b 3b 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f | r;;.<karthikchikmagalur@gmail.co |
| 226c0 | 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 | m>.;;.Keywords:.convenience..;;. |
| 226e0 | 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 | SPDX-License-Identifier:.GPL-3.0 |
| 22700 | 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 | -or-later..;;.This.program.is.fr |
| 22720 | 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 | ee.software;.you.can.redistribut |
| 22740 | 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 | e.it.and/or.modify.;;.it.under.t |
| 22760 | 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | he.terms.of.the.GNU.General.Publ |
| 22780 | 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 | ic.License.as.published.by.;;.th |
| 227a0 | 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 | e.Free.Software.Foundation,.eith |
| 227c0 | 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a | er.version.3.of.the.License,.or. |
| 227e0 | 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 | ;;.(at.your.option).any.later.ve |
| 22800 | 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 | rsion...;;.This.program.is.distr |
| 22820 | 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 | ibuted.in.the.hope.that.it.will. |
| 22840 | 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 | be.useful,.;;.but.WITHOUT.ANY.WA |
| 22860 | 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 | RRANTY;.without.even.the.implied |
| 22880 | 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 | .warranty.of.;;.MERCHANTABILITY. |
| 228a0 | 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 | or.FITNESS.FOR.A.PARTICULAR.PURP |
| 228c0 | 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 | OSE...See.the.;;.GNU.General.Pub |
| 228e0 | 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b | lic.License.for.more.details...; |
| 22900 | 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 | ;.You.should.have.received.a.cop |
| 22920 | 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 | y.of.the.GNU.General.Public.Lice |
| 22940 | 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 | nse.;;.along.with.this.program.. |
| 22960 | 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 | .If.not,.see.<https://www.gnu.or |
| 22980 | 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a | g/licenses/>...;;;.Commentary:.. |
| 229a0 | 3b 3b 20 43 75 72 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 2e 20 20 55 74 69 6c | ;;.Curl.support.for.gptel...Util |
| 229c0 | 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 | ity.functions...;;;.Code:..(requ |
| 229e0 | 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a | ire.'gptel)..(eval-when-compile. |
| 22a00 | 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 | ..(require.'cl-lib)...(require.' |
| 22a20 | 73 75 62 72 2d 78 29 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 0a 0a 28 64 65 63 6c 61 72 | subr-x)).(require.'map)..(declar |
| 22a40 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a | e-function.json-read."json".()). |
| 22a60 | 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c | (defvar.json-object-type)..(decl |
| 22a80 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 | are-function.gptel--stream-conve |
| 22aa0 | 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 0a 28 | rt-markdown->org."gptel-org")..( |
| 22ac0 | 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 72 67 73 20 | defcustom.gptel-curl-extra-args. |
| 22ae0 | 6e 69 6c 0a 20 20 22 45 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 | nil..."Extra.arguments.to.pass.t |
| 22b00 | 6f 20 43 75 72 6c 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 71 75 65 72 69 65 73 2e 0a 0a 54 68 | o.Curl.when.sending.queries...Th |
| 22b20 | 69 73 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 20 | is.should.be.a.list.of.strings,. |
| 22b40 | 65 61 63 68 20 6f 6e 65 20 61 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 61 72 67 | each.one.a.Curl.command.line.arg |
| 22b60 | 75 6d 65 6e 74 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 20 73 68 6f 75 6c 64 20 6e | ument...Note.that.these.should.n |
| 22b80 | 6f 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 68 65 20 6f 70 74 69 6f 6e 73 0a 69 6e 20 | ot.conflict.with.the.options.in. |
| 22ba0 | 60 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 27 2c 20 77 68 69 63 68 | `gptel-curl--common-args',.which |
| 22bc0 | 20 67 70 74 65 6c 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 63 6f 72 72 65 63 74 0a 66 75 6e 63 | .gptel.requires.for.correct.func |
| 22be0 | 74 69 6f 6e 69 6e 67 2e 0a 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 70 65 63 69 66 79 | tioning...If.you.want.to.specify |
| 22c00 | 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 6f 6e 6c 79 20 77 68 65 6e 20 75 73 69 6e 67 | .extra.arguments.only.when.using |
| 22c20 | 20 61 20 73 70 65 63 69 66 69 63 0a 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 2c 20 75 73 65 20 74 | .a.specific.gptel.backend,.use.t |
| 22c40 | 68 65 20 60 3a 63 75 72 6c 2d 61 72 67 73 27 20 73 6c 6f 74 20 6f 66 20 74 68 65 20 62 61 63 6b | he.`:curl-args'.slot.of.the.back |
| 22c60 | 65 6e 64 20 69 6e 73 74 65 61 64 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 | end.instead..See.`gptel-backend' |
| 22c80 | 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 | ."...:group.'gptel...:type.'(rep |
| 22ca0 | 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 63 75 | eat.string))..(defconst.gptel-cu |
| 22cc0 | 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 73 79 73 74 | rl--common-args...(if.(memq.syst |
| 22ce0 | 65 6d 2d 74 79 70 65 20 27 28 77 69 6e 64 6f 77 73 2d 6e 74 20 6d 73 2d 64 6f 73 29 29 0a 20 20 | em-type.'(windows-nt.ms-dos))... |
| 22d00 | 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c 65 22 20 22 2d 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 | ....'("--disable"."--location"." |
| 22d20 | 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 58 50 4f 53 54 22 0a 20 20 20 20 20 20 20 20 22 2d 79 37 32 | --silent"."-XPOST"........."-y72 |
| 22d40 | 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 0a 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c | 00"."-Y1"."-D-").....'("--disabl |
| 22d60 | 65 22 20 22 2d 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 2d 63 6f | e"."--location"."--silent"."--co |
| 22d80 | 6d 70 72 65 73 73 65 64 22 0a 20 20 20 20 20 20 22 2d 58 50 4f 53 54 22 20 22 2d 79 37 32 30 30 | mpressed"......."-XPOST"."-y7200 |
| 22da0 | 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 29 0a 20 20 22 41 72 67 75 6d 65 6e 74 73 20 61 6c 77 | "."-Y1"."-D-"))..."Arguments.alw |
| 22dc0 | 61 79 73 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 66 6f 72 20 67 70 74 65 6c 20 71 75 65 | ays.passed.to.Curl.for.gptel.que |
| 22de0 | 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d | ries.")..(defun.gptel-curl--get- |
| 22e00 | 61 72 67 73 20 28 69 6e 66 6f 20 74 6f 6b 65 6e 29 0a 20 20 22 50 72 6f 64 75 63 65 20 6c 69 73 | args.(info.token)..."Produce.lis |
| 22e20 | 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 63 61 6c 6c 69 6e 67 20 43 75 72 6c 2e | t.of.arguments.for.calling.Curl. |
| 22e40 | 0a 0a 52 45 51 55 45 53 54 2d 44 41 54 41 20 69 73 20 74 68 65 20 64 61 74 61 20 74 6f 20 73 65 | ..REQUEST-DATA.is.the.data.to.se |
| 22e60 | 6e 64 2c 20 54 4f 4b 45 4e 20 69 73 20 61 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 | nd,.TOKEN.is.a.unique.identifier |
| 22e80 | 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | ."...(let*.((data.(plist-get.inf |
| 22ea0 | 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 76 65 20 74 6f | o.:data))..........;;.We.have.to |
| 22ec0 | 20 6c 65 74 2d 62 69 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 76 61 72 69 | .let-bind.the.following.two.vari |
| 22ee0 | 61 62 6c 65 73 20 73 69 6e 63 65 20 74 68 65 69 72 20 64 79 6e 61 6d 69 63 0a 20 20 20 20 20 20 | ables.since.their.dynamic....... |
| 22f00 | 20 20 20 3b 3b 20 76 61 6c 75 65 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 6b 65 79 20 6c 6f | ...;;.values.are.used.for.key.lo |
| 22f20 | 6f 6b 75 70 20 61 6e 64 20 75 72 6c 20 72 65 73 6f 6c 6f 75 74 69 6f 6e 0a 20 20 20 20 20 20 20 | okup.and.url.resoloution........ |
| 22f40 | 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | ..(gptel-backend.(plist-get.info |
| 22f60 | 20 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 73 74 72 65 | .:backend))..........(gptel-stre |
| 22f80 | 61 6d 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 | am.(plist-get.info.:stream)).... |
| 22fa0 | 20 20 20 20 20 20 28 75 72 6c 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 2d 75 72 6c 20 28 67 | ......(url.(let.((backend-url.(g |
| 22fc0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 75 72 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 | ptel-backend-url.gptel-backend)) |
| 22fe0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 | ).................(if.(functionp |
| 23000 | 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .backend-url)................... |
| 23020 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 | ..(with-current-buffer.(plist-ge |
| 23040 | 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:buffer)................. |
| 23060 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 | ......(funcall.backend-url)).... |
| 23080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 29 0a 20 20 | ...............backend-url)))... |
| 230a0 | 20 20 20 20 20 20 20 28 64 61 74 61 2d 6a 73 6f 6e 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 | .......(data-json.(encode-coding |
| 230c0 | 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 64 61 74 61 | -string.(gptel--json-encode.data |
| 230e0 | 29 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 0a 20 20 20 | ).'utf-8))..........(headers.... |
| 23100 | 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 27 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 | .......(append.'(("Content-Type" |
| 23120 | 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 | ..."application/json"))......... |
| 23140 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 68 65 61 64 65 72 20 28 67 | ..........(when-let*.((header.(g |
| 23160 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 68 65 61 64 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | ptel-backend-header.gptel-backen |
| 23180 | 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 | d))).....................(if.(fu |
| 231a0 | 6e 63 74 69 6f 6e 70 20 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nctionp.header)................. |
| 231c0 | 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 61 64 65 72 29 20 68 65 61 64 65 72 29 | ........(funcall.header).header) |
| 231e0 | 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 0a 20 | )))).....(when.gptel-log-level.. |
| 23200 | 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 | .....(when.(eq.gptel-log-level.' |
| 23220 | 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 | debug).........(gptel--log.(gpte |
| 23240 | 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--json-encode.................. |
| 23260 | 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 | ....(mapcar.(lambda.(pair).(cons |
| 23280 | 20 28 69 6e 74 65 72 6e 20 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 | .(intern.(car.pair)).(cdr.pair)) |
| 232a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 | )..............................h |
| 232c0 | 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 | eaders))....................."re |
| 232e0 | 71 75 65 73 74 20 68 65 61 64 65 72 73 22 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c | quest.headers")).......(gptel--l |
| 23300 | 6f 67 20 64 61 74 61 2d 6a 73 6f 6e 20 22 72 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 | og.data-json."request.body"))... |
| 23320 | 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f | ..(append......gptel-curl--commo |
| 23340 | 6e 2d 61 72 67 73 0a 20 20 20 20 20 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 72 67 | n-args......gptel-curl-extra-arg |
| 23360 | 73 0a 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 63 75 72 6c 2d 61 72 67 73 20 28 67 70 | s......(and-let*.((curl-args.(gp |
| 23380 | 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 63 75 72 6c 2d 61 72 67 73 20 67 70 74 65 6c 2d 62 61 63 6b | tel-backend-curl-args.gptel-back |
| 233a0 | 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 75 72 | end)))........(if.(functionp.cur |
| 233c0 | 6c 2d 61 72 67 73 29 20 28 66 75 6e 63 61 6c 6c 20 63 75 72 6c 2d 61 72 67 73 29 20 63 75 72 6c | l-args).(funcall.curl-args).curl |
| 233e0 | 2d 61 72 67 73 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 77 28 25 | -args))......(list.(format."-w(% |
| 23400 | 73 20 2e 20 25 25 7b 73 69 7a 65 5f 68 65 61 64 65 72 7d 29 22 20 74 6f 6b 65 6e 29 29 0a 20 20 | s...%%{size_header})".token))... |
| 23420 | 20 20 20 28 69 66 20 28 6c 65 6e 67 74 68 3c 20 64 61 74 61 2d 6a 73 6f 6e 20 67 70 74 65 6c 2d | ...(if.(length<.data-json.gptel- |
| 23440 | 63 75 72 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f 6c 64 29 0a 20 20 20 20 20 20 | curl-file-size-threshold)....... |
| 23460 | 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 64 25 73 22 20 64 61 74 61 2d 6a 73 6f | ...(list.(format."-d%s".data-jso |
| 23480 | 6e 29 29 0a 20 20 20 20 20 20 20 28 6c 65 74 72 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 | n))........(letrec............(( |
| 234a0 | 74 65 6d 70 2d 66 69 6c 65 6e 61 6d 65 20 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 67 | temp-filename.(make-temp-file."g |
| 234c0 | 70 74 65 6c 2d 63 75 72 6c 2d 64 61 74 61 22 20 6e 69 6c 20 22 2e 6a 73 6f 6e 22 20 64 61 74 61 | ptel-curl-data".nil.".json".data |
| 234e0 | 2d 6a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 20 | -json)).............(cleanup-fn. |
| 23500 | 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (lambda.(&rest._)............... |
| 23520 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 | ............(when.(file-exists-p |
| 23540 | 20 74 65 6d 70 2d 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .temp-filename)................. |
| 23560 | 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 74 65 6d 70 2d 66 69 | ............(delete-file.temp-fi |
| 23580 | 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lename)......................... |
| 235a0 | 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 | ....(remove-hook.'gptel-post-res |
| 235c0 | 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 29 29 29 29 0a | ponse-functions.cleanup-fn))))). |
| 235e0 | 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 | .........(add-hook.'gptel-post-r |
| 23600 | 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 0a 20 20 | esponse-functions.cleanup-fn)... |
| 23620 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 61 2d 62 69 6e 61 72 79 22 0a 20 20 20 | .......(list."--data-binary".... |
| 23640 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 40 25 73 22 20 74 65 6d 70 2d 66 | ............(format."@%s".temp-f |
| 23660 | 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 | ilename))))......(when.(not.(str |
| 23680 | 69 6e 67 2d 65 6d 70 74 79 2d 70 20 67 70 74 65 6c 2d 70 72 6f 78 79 29 29 0a 20 20 20 20 20 20 | ing-empty-p.gptel-proxy))....... |
| 236a0 | 20 28 6c 69 73 74 20 22 2d 2d 70 72 6f 78 79 22 20 67 70 74 65 6c 2d 70 72 6f 78 79 0a 20 20 20 | .(list."--proxy".gptel-proxy.... |
| 236c0 | 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 6e 65 67 6f 74 69 61 74 65 22 0a 20 20 | .........."--proxy-negotiate"... |
| 236e0 | 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 75 73 65 72 22 20 22 3a 22 29 29 0a | ..........."--proxy-user".":")). |
| 23700 | 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 2e 20 76 61 6c 29 20 69 6e | .....(cl-loop.for.(key...val).in |
| 23720 | 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 | .headers...............collect.( |
| 23740 | 66 6f 72 6d 61 74 20 22 2d 48 25 73 3a 20 25 73 22 20 6b 65 79 20 76 61 6c 29 29 0a 20 20 20 20 | format."-H%s:.%s".key.val))..... |
| 23760 | 20 28 6c 69 73 74 20 75 72 6c 29 29 29 29 0a 0a 3b 3b 54 4f 44 4f 3a 20 54 68 65 20 3a 74 72 61 | .(list.url))))..;;TODO:.The.:tra |
| 23780 | 6e 73 66 6f 72 6d 65 72 20 61 72 67 75 6d 65 6e 74 20 68 65 72 65 20 69 73 20 61 6e 20 61 6c 74 | nsformer.argument.here.is.an.alt |
| 237a0 | 65 72 6e 61 74 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 0a 3b 3b 60 67 70 74 65 | ernate.implementation.of.;;`gpte |
| 237c0 | 6c 2d 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 20 54 68 | l-response-filter-functions'..Th |
| 237e0 | 65 20 74 77 6f 20 6e 65 65 64 20 74 6f 20 62 65 20 75 6e 69 66 69 65 64 2e 0a 3b 3b 3b 23 23 23 | e.two.need.to.be.unified..;;;### |
| 23800 | 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 | autoload.(defun.gptel-curl-get-r |
| 23820 | 65 73 70 6f 6e 73 65 20 28 66 73 6d 29 0a 20 20 22 46 65 74 63 68 20 72 65 73 70 6f 6e 73 65 20 | esponse.(fsm)..."Fetch.response. |
| 23840 | 74 6f 20 70 72 6f 6d 70 74 20 69 6e 20 73 74 61 74 65 20 46 53 4d 20 66 72 6f 6d 20 74 68 65 20 | to.prompt.in.state.FSM.from.the. |
| 23860 | 4c 4c 4d 20 75 73 69 6e 67 20 43 75 72 6c 2e 0a 0a 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 | LLM.using.Curl...FSM.is.the.stat |
| 23880 | 65 20 6d 61 63 68 69 6e 65 20 64 72 69 76 69 6e 67 20 74 68 69 73 20 72 65 71 75 65 73 74 2e 0a | e.machine.driving.this.request.. |
| 238a0 | 0a 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 64 72 69 76 69 6e | .FSM.is.the.state.machine.drivin |
| 238c0 | 67 20 74 68 69 73 20 72 65 71 75 65 73 74 2e 20 20 49 74 73 20 49 4e 46 4f 20 73 6c 6f 74 0a 63 | g.this.request...Its.INFO.slot.c |
| 238e0 | 6f 6e 74 61 69 6e 73 20 74 68 65 20 64 61 74 61 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 73 65 | ontains.the.data.required.for.se |
| 23900 | 74 74 69 6e 67 20 75 70 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 49 4e 46 4f 20 69 73 20 61 | tting.up.the.request...INFO.is.a |
| 23920 | 0a 70 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 2c 20 | .plist.with.the.following.keys,. |
| 23940 | 61 6d 6f 6e 67 20 6f 74 68 65 72 73 3a 0a 2d 20 3a 64 61 74 61 20 20 20 20 20 28 74 68 65 20 64 | among.others:.-.:data.....(the.d |
| 23960 | 61 74 61 20 62 65 69 6e 67 20 73 65 6e 74 29 0a 2d 20 3a 62 75 66 66 65 72 20 20 20 28 74 68 65 | ata.being.sent).-.:buffer...(the |
| 23980 | 20 67 70 74 65 6c 20 62 75 66 66 65 72 29 0a 2d 20 3a 70 6f 73 69 74 69 6f 6e 20 28 6d 61 72 6b | .gptel.buffer).-.:position.(mark |
| 239a0 | 65 72 20 61 74 20 77 68 69 63 68 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 70 6f 6e | er.at.which.to.insert.the.respon |
| 239c0 | 73 65 29 2e 0a 2d 20 3a 63 61 6c 6c 62 61 63 6b 20 28 6f 70 74 69 6f 6e 61 6c 2c 20 74 68 65 20 | se)..-.:callback.(optional,.the. |
| 239e0 | 72 65 71 75 65 73 74 20 63 61 6c 6c 62 61 63 6b 29 0a 0a 43 61 6c 6c 20 43 41 4c 4c 42 41 43 4b | request.callback)..Call.CALLBACK |
| 23a00 | 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 61 6e 64 20 49 4e 46 4f 20 61 66 74 65 | .with.the.response.and.INFO.afte |
| 23a20 | 72 77 61 72 64 73 2e 20 20 49 66 20 6f 6d 69 74 74 65 64 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 | rwards...If.omitted.the.response |
| 23a40 | 20 69 73 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 | .is.inserted.into.the.current.bu |
| 23a60 | 66 66 65 72 20 61 66 74 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 6f 6b | ffer.after.point."...(let*.((tok |
| 23a80 | 65 6e 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 25 73 25 73 22 0a 20 20 20 20 20 | en.(md5.(format."%s%s%s%s"...... |
| 23aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 29 | ........................(random) |
| 23ac0 | 20 28 65 6d 61 63 73 2d 70 69 64 29 20 28 75 73 65 72 2d 66 75 6c 6c 2d 6e 61 6d 65 29 0a 20 20 | .(emacs-pid).(user-full-name)... |
| 23ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 65 | ...........................(rece |
| 23b00 | 6e 74 2d 6b 65 79 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 | nt-keys))))..........(info.(gpte |
| 23b20 | 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 | l-fsm-info.fsm))..........(backe |
| 23b40 | 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 | nd.(plist-get.info.:backend))... |
| 23b60 | 20 20 20 20 20 20 20 28 61 72 67 73 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 61 72 | .......(args.(gptel-curl--get-ar |
| 23b80 | 67 73 20 69 6e 66 6f 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d | gs.info.token))..........(stream |
| 23ba0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 | .(plist-get.info.:stream))...... |
| 23bc0 | 20 20 20 20 28 70 72 6f 63 65 73 73 20 28 61 70 70 6c 79 20 23 27 73 74 61 72 74 2d 70 72 6f 63 | ....(process.(apply.#'start-proc |
| 23be0 | 65 73 73 20 22 67 70 74 65 6c 2d 63 75 72 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ess."gptel-curl"................ |
| 23c00 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 | ..........(gptel--temp-buffer.". |
| 23c20 | 2a 67 70 74 65 6c 2d 63 75 72 6c 2a 22 29 20 28 67 70 74 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 | *gptel-curl*").(gptel--curl-path |
| 23c40 | 29 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f | ).args))).....(when.(eq.gptel-lo |
| 23c60 | 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f | g-level.'debug).......(gptel--lo |
| 23c80 | 67 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d | g.(mapconcat.#'shell-quote-argum |
| 23ca0 | 65 6e 74 20 28 63 6f 6e 73 20 28 67 70 74 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 29 20 61 72 67 | ent.(cons.(gptel--curl-path).arg |
| 23cc0 | 73 29 20 22 20 5c 5c 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 | s).".\\\n")..................."r |
| 23ce0 | 65 71 75 65 73 74 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 22 20 27 6e 6f 2d 6a 73 6f 6e 29 29 0a | equest.Curl.command".'no-json)). |
| 23d00 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 | ....(with-current-buffer.(proces |
| 23d20 | 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 | s-buffer.process).......(cond... |
| 23d40 | 20 20 20 20 20 28 28 65 71 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 63 6f 64 69 6e 67 2d | .....((eq.(gptel-backend-coding- |
| 23d60 | 73 79 73 74 65 6d 20 62 61 63 6b 65 6e 64 29 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 20 20 20 | system.backend).'binary)........ |
| 23d80 | 20 3b 3b 20 73 65 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 | .;;.set-buffer-file-coding-syste |
| 23da0 | 6d 20 69 73 20 6e 6f 74 20 6e 65 65 64 65 64 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 73 | m.is.not.needed.since.we.don't.s |
| 23dc0 | 61 76 65 20 74 68 69 73 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 | ave.this.buffer.........(set-buf |
| 23de0 | 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d | fer-multibyte.nil).........(set- |
| 23e00 | 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 70 72 6f 63 65 73 73 20 27 62 | process-coding-system.process.'b |
| 23e20 | 69 6e 61 72 79 20 27 62 69 6e 61 72 79 29 29 0a 20 20 20 20 20 20 20 28 74 0a 09 3b 3b 20 44 6f | inary.'binary))........(t..;;.Do |
| 23e40 | 6e 27 74 20 74 72 79 20 74 6f 20 63 6f 6e 76 65 72 74 20 63 72 2d 6c 66 20 74 6f 20 63 72 20 6f | n't.try.to.convert.cr-lf.to.cr.o |
| 23e60 | 6e 20 57 69 6e 64 6f 77 73 20 73 6f 20 74 68 61 74 20 63 75 72 6c 27 73 20 22 68 65 61 64 65 72 | n.Windows.so.that.curl's."header |
| 23e80 | 20 73 69 7a 65 0a 09 3b 3b 20 69 6e 20 62 79 74 65 73 22 20 73 74 61 79 73 20 63 6f 72 72 65 63 | .size..;;.in.bytes".stays.correc |
| 23ea0 | 74 2e 20 45 78 70 6c 69 63 69 74 6c 79 20 73 65 74 20 75 74 66 2d 38 20 66 6f 72 20 6e 6f 6e 2d | t..Explicitly.set.utf-8.for.non- |
| 23ec0 | 77 69 6e 20 73 79 73 74 65 6d 73 20 74 6f 6f 2c 0a 09 3b 3b 20 66 6f 72 20 63 61 73 65 73 20 77 | win.systems.too,..;;.for.cases.w |
| 23ee0 | 68 65 6e 20 62 75 66 66 65 72 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 69 73 20 6e 6f 74 20 | hen.buffer.coding.system.is.not. |
| 23f00 | 73 65 74 20 74 6f 20 75 74 66 2d 38 2e 0a 09 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 69 | set.to.utf-8...(set-process-codi |
| 23f20 | 6e 67 2d 73 79 73 74 65 6d 20 70 72 6f 63 65 73 73 20 27 75 74 66 2d 38 2d 75 6e 69 78 20 27 75 | ng-system.process.'utf-8-unix.'u |
| 23f40 | 74 66 2d 38 2d 75 6e 69 78 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d | tf-8-unix))).......(set-process- |
| 23f60 | 71 75 65 72 79 2d 6f 6e 2d 65 78 69 74 2d 66 6c 61 67 20 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a | query-on-exit-flag.process.nil). |
| 23f80 | 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e | ......(if.(plist-get.info.:token |
| 23fa0 | 29 20 20 20 20 20 20 20 3b 6e 6f 74 20 74 68 65 20 66 69 72 73 74 20 72 75 6e 2c 20 73 65 74 20 | ).......;not.the.first.run,.set. |
| 23fc0 | 6f 6e 6c 79 20 74 68 65 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | only.the.token...........(plist- |
| 23fe0 | 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 | put.info.:token.token).........( |
| 24000 | 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 20 20 20 20 20 3b | setf.(gptel-fsm-info.fsm)......; |
| 24020 | 66 69 73 74 20 72 75 6e 2c 20 73 65 74 20 61 6c 6c 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 | fist.run,.set.all.process.parame |
| 24040 | 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 | ters...............(nconc.(list. |
| 24060 | 3a 74 6f 6b 65 6e 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :token.token.................... |
| 24080 | 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | ........:transformer............ |
| 240a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 77 69 74 68 2d 63 75 72 72 | ................(when.(with-curr |
| 240c0 | 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 | ent-buffer.(plist-get.info.:buff |
| 240e0 | 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er)............................. |
| 24100 | 20 20 20 20 20 20 20 28 61 6e 64 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 | .......(and.(derived-mode-p.'org |
| 24120 | 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -mode).......................... |
| 24140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 | ...............gptel-org-convert |
| 24160 | 2d 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -response))..................... |
| 24180 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d | .........(gptel--stream-convert- |
| 241a0 | 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | markdown->org................... |
| 241c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 | ............(plist-get.info.:pos |
| 241e0 | 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ition))))......................( |
| 24200 | 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b | unless.(plist-get.info.:callback |
| 24220 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a | )........................(list.: |
| 24240 | 63 61 6c 6c 62 61 63 6b 20 28 69 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | callback.(if.stream............. |
| 24260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 | ...............................# |
| 24280 | 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f | 'gptel-curl--stream-insert-respo |
| 242a0 | 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nse............................. |
| 242c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 | .............#'gptel--insert-res |
| 242e0 | 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | ponse)))......................in |
| 24300 | 66 6f 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 | fo))).......(if.stream.......... |
| 24320 | 20 28 70 72 6f 67 6e 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 | .(progn.(set-process-sentinel.pr |
| 24340 | 6f 63 65 73 73 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 63 6c 65 61 6e | ocess.#'gptel-curl--stream-clean |
| 24360 | 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 | up)..................(set-proces |
| 24380 | 73 2d 66 69 6c 74 65 72 20 70 72 6f 63 65 73 73 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 | s-filter.process.#'gptel-curl--s |
| 243a0 | 74 72 65 61 6d 2d 66 69 6c 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 | tream-filter)).........(set-proc |
| 243c0 | 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 73 73 20 23 27 67 70 74 65 6c 2d 63 75 72 | ess-sentinel.process.#'gptel-cur |
| 243e0 | 6c 2d 2d 73 65 6e 74 69 6e 65 6c 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 | l--sentinel)).......(setf.(alist |
| 24400 | 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 | -get.process.gptel--request-alis |
| 24420 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 66 73 6d 0a 20 20 20 20 20 20 20 | t).............(cons.fsm........ |
| 24440 | 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 | ...........#'(lambda.()......... |
| 24460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 20 75 70 20 43 75 72 6c 20 70 | ..............;;.Clean.up.Curl.p |
| 24480 | 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | rocess.......................(se |
| 244a0 | 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 73 73 20 23 27 69 67 6e | t-process-sentinel.process.#'ign |
| 244c0 | 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 | ore).......................(dele |
| 244e0 | 74 65 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | te-process.process)............. |
| 24500 | 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d | ..........(kill-buffer.(process- |
| 24520 | 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 3b 3b 20 41 68 | buffer.process))))))))..;;.;;.Ah |
| 24540 | 65 61 64 2d 4f 66 2d 54 69 6d 65 20 64 69 73 70 61 74 63 68 20 63 6f 64 65 20 66 6f 72 20 74 68 | ead-Of-Time.dispatch.code.for.th |
| 24560 | 65 20 70 61 72 73 65 72 73 0a 3b 3b 20 3a 70 61 72 73 65 72 20 3b 20 46 49 58 4d 45 20 60 63 6c | e.parsers.;;.:parser.;.FIXME.`cl |
| 24580 | 2d 2d 67 65 6e 65 72 69 63 2d 2a 27 20 61 72 65 20 69 6e 74 65 72 6e 61 6c 20 66 75 6e 63 74 69 | --generic-*'.are.internal.functi |
| 245a0 | 6f 6e 73 0a 3b 3b 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 74 68 6f 64 2d 66 75 6e 63 74 | ons.;;.(cl--generic-method-funct |
| 245c0 | 69 6f 6e 0a 3b 3b 20 20 28 69 66 20 73 74 72 65 61 6d 0a 3b 3b 20 20 20 20 20 20 28 63 6c 2d 6c | ion.;;..(if.stream.;;......(cl-l |
| 245e0 | 6f 6f 70 0a 3b 3b 20 20 20 20 20 20 20 66 6f 72 20 74 79 70 65 20 69 6e 0a 3b 3b 20 20 20 20 20 | oop.;;.......for.type.in.;;..... |
| 24600 | 20 20 28 63 6c 2d 2d 63 6c 61 73 73 2d 61 6c 6c 70 61 72 65 6e 74 73 20 28 67 65 74 20 28 74 79 | ..(cl--class-allparents.(get.(ty |
| 24620 | 70 65 2d 6f 66 20 62 61 63 6b 65 6e 64 29 20 27 63 6c 2d 2d 63 6c 61 73 73 29 29 0a 3b 3b 20 20 | pe-of.backend).'cl--class)).;;.. |
| 24640 | 20 20 20 20 20 77 69 74 68 20 6d 65 74 68 6f 64 73 20 3d 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 | .....with.methods.=.(cl--generic |
| 24660 | 2d 6d 65 74 68 6f 64 2d 74 61 62 6c 65 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -method-table.;;................ |
| 24680 | 20 20 20 20 20 20 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 20 27 67 70 74 65 6c 2d 63 75 72 6c 2d | .......(cl--generic.'gptel-curl- |
| 246a0 | 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 29 29 0a 3b 3b 20 20 20 20 20 20 20 77 68 65 6e 20 28 63 | -parse-stream)).;;.......when.(c |
| 246c0 | 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 6d 62 65 72 2d 6d 65 74 68 6f 64 20 60 28 2c 74 79 70 65 | l--generic-member-method.`(,type |
| 246e0 | 20 74 29 20 6e 69 6c 20 6d 65 74 68 6f 64 73 29 0a 3b 3b 20 20 20 20 20 20 20 72 65 74 75 72 6e | .t).nil.methods).;;.......return |
| 24700 | 20 28 63 61 72 20 69 74 29 29 0a 3b 3b 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 3b 3b 20 20 20 20 | .(car.it)).;;....(cl-loop.;;.... |
| 24720 | 20 66 6f 72 20 74 79 70 65 20 69 6e 0a 3b 3b 20 20 20 20 20 28 63 6c 2d 2d 63 6c 61 73 73 2d 61 | .for.type.in.;;.....(cl--class-a |
| 24740 | 6c 6c 70 61 72 65 6e 74 73 20 28 67 65 74 20 28 74 79 70 65 2d 6f 66 20 62 61 63 6b 65 6e 64 29 | llparents.(get.(type-of.backend) |
| 24760 | 20 27 63 6c 2d 2d 63 6c 61 73 73 29 29 0a 3b 3b 20 20 20 20 20 77 69 74 68 20 6d 65 74 68 6f 64 | .'cl--class)).;;.....with.method |
| 24780 | 73 20 3d 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 74 68 6f 64 2d 74 61 62 6c 65 0a 3b 3b | s.=.(cl--generic-method-table.;; |
| 247a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 2d 67 65 6e 65 72 69 | .....................(cl--generi |
| 247c0 | 63 20 27 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 29 29 0a 3b 3b 20 20 20 | c.'gptel--parse-response)).;;... |
| 247e0 | 20 20 77 68 65 6e 20 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 6d 62 65 72 2d 6d 65 74 68 6f | ..when.(cl--generic-member-metho |
| 24800 | 64 20 60 28 2c 74 79 70 65 20 74 20 74 29 20 6e 69 6c 20 6d 65 74 68 6f 64 73 29 0a 3b 3b 20 20 | d.`(,type.t.t).nil.methods).;;.. |
| 24820 | 20 20 20 72 65 74 75 72 6e 20 28 63 61 72 20 69 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ...return.(car.it))))..(defun.gp |
| 24840 | 74 65 6c 2d 63 75 72 6c 2d 2d 6c 6f 67 2d 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 63 2d 62 75 66 | tel-curl--log-response.(proc-buf |
| 24860 | 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 72 65 73 70 6f 6e 73 65 20 62 75 | .proc-info)..."Parse.response.bu |
| 24880 | 66 66 65 72 20 50 52 4f 43 2d 42 55 46 20 61 6e 64 20 6c 6f 67 20 72 65 73 70 6f 6e 73 65 2e 0a | ffer.PROC-BUF.and.log.response.. |
| 248a0 | 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 74 68 65 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 | .PROC-INFO.is.the.plist.containi |
| 248c0 | 6e 67 20 70 72 6f 63 65 73 73 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 | ng.process.metadata."...(with-cu |
| 248e0 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 0a 20 20 20 20 28 73 61 76 65 2d | rrent-buffer.proc-buf.....(save- |
| 24900 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e | excursion.......(goto-char.(poin |
| 24920 | 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 | t-min)).......(when.(re-search-f |
| 24940 | 6f 72 77 61 72 64 20 22 0d 3f 5c 6e 0d 3f 5c 6e 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 | orward.".?\n.?\n".nil.t)........ |
| 24960 | 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 | .(when.(eq.gptel-log-level.'debu |
| 24980 | 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d | g)...........(gptel--log.(gptel- |
| 249a0 | 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -json-encode.................... |
| 249c0 | 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 | ....(buffer-substring-no-propert |
| 249e0 | 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 | ies.........................(poi |
| 24a00 | 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | nt-min).(1-.(point)))).......... |
| 24a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 68 65 61 64 65 72 73 22 29 | ............."response.headers") |
| 24a40 | 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | ).........(let.((p.(point))).... |
| 24a60 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 70 6c | .......(when.(search-forward.(pl |
| 24a80 | 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 20 6e 69 6c 20 74 29 | ist-get.proc-info.:token).nil.t) |
| 24aa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 31 2d 20 28 6d 61 74 | .............(goto-char.(1-.(mat |
| 24ac0 | 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ch-beginning.0))).............(g |
| 24ae0 | 70 74 65 6c 2d 2d 6c 6f 67 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 | ptel--log.(buffer-substring-no-p |
| 24b00 | 72 6f 70 65 72 74 69 65 73 20 70 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | roperties.p.(point))............ |
| 24b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 62 6f 64 79 22 29 29 29 29 | ............."response.body")))) |
| 24b40 | 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 53 65 70 61 72 61 74 65 20 75 73 65 72 2d 6d 65 73 73 | )))..;;.TODO:.Separate.user-mess |
| 24b60 | 61 67 69 6e 67 20 66 72 6f 6d 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 28 64 65 66 75 6e 20 | aging.from.this.function.(defun. |
| 24b80 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 63 6c 65 61 6e 75 70 20 28 70 72 6f 63 | gptel-curl--stream-cleanup.(proc |
| 24ba0 | 65 73 73 20 5f 73 74 61 74 75 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 65 6e 74 69 6e 65 6c | ess._status)..."Process.sentinel |
| 24bc0 | 20 66 6f 72 20 67 70 74 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 50 52 4f 43 45 | .for.gptel.curl.requests...PROCE |
| 24be0 | 53 53 20 61 6e 64 20 5f 53 54 41 54 55 53 20 61 72 65 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d | SS.and._STATUS.are.process.param |
| 24c00 | 65 74 65 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 70 72 6f 63 65 | eters."...(let.((proc-buf.(proce |
| 24c20 | 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 | ss-buffer.process))).....(let*.( |
| 24c40 | 28 66 73 6d 20 28 63 61 72 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 | (fsm.(car.(alist-get.process.gpt |
| 24c60 | 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | el--request-alist)))............ |
| 24c80 | 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 | (info.(gptel-fsm-info.fsm))..... |
| 24ca0 | 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 61 74 75 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | .......(http-status.(plist-get.i |
| 24cc0 | 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 | nfo.:http-status))).......(when. |
| 24ce0 | 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 6c 6f 67 | gptel-log-level.(gptel-curl--log |
| 24d00 | 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 62 75 66 20 69 6e 66 6f 29 29 20 3b 6c 6f 67 67 69 | -response.proc-buf.info)).;loggi |
| 24d20 | 6e 67 0a 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 | ng.......(if.(member.http-status |
| 24d40 | 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 20 3b 46 69 6e 69 73 68 20 68 61 6e 64 6c 69 6e | .'("200"."100")).;Finish.handlin |
| 24d60 | 67 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 74 68 65 20 | g.response...........;;.Run.the. |
| 24d80 | 63 61 6c 6c 62 61 63 6b 20 6f 6e 65 20 6c 61 73 74 20 74 69 6d 65 20 74 6f 20 73 69 67 6e 61 6c | callback.one.last.time.to.signal |
| 24da0 | 20 74 68 61 74 20 74 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 65 6e 64 65 64 0a 20 20 20 20 | .that.the.process.has.ended..... |
| 24dc0 | 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 | ......(with-demoted-errors."gpte |
| 24de0 | 6c 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 | l.callback.error:.%S"........... |
| 24e00 | 20 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c | ..(funcall.(plist-get.info.:call |
| 24e20 | 62 61 63 6b 29 20 74 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 | back).t.info)).........(with-cur |
| 24e40 | 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 20 20 20 3b 20 4f 72 20 43 61 70 74 | rent-buffer.proc-buf...;.Or.Capt |
| 24e60 | 75 72 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 | ure.error.message...........(got |
| 24e80 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 | o-char.(point-max))...........(s |
| 24ea0 | 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | earch-backward.(plist-get.info.: |
| 24ec0 | 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 | token))...........(backward-char |
| 24ee0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e | )...........(pcase-let*.((`(,_.. |
| 24f00 | 20 2c 68 65 61 64 65 72 2d 73 69 7a 65 29 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 | .,header-size).(read.(current-bu |
| 24f20 | 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ffer)))........................( |
| 24f40 | 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 | response.(progn.(goto-char.heade |
| 24f60 | 72 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-size)......................... |
| 24f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 | ................(condition-case. |
| 24fa0 | 6e 69 6c 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 | nil.(gptel--json-read).......... |
| 24fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 24fe0 | 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 29 29 29 0a 20 20 20 | .(error.'json-read-error)))).... |
| 25000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 64 61 74 61 20 | ....................(error-data. |
| 25020 | 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 29 29 0a 20 20 | (plist-get.response.:error)))... |
| 25040 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 | ..........(cond..............(er |
| 25060 | 72 6f 72 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | ror-data...............(plist-pu |
| 25080 | 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 20 65 72 72 6f 72 2d 64 61 74 61 29 29 0a 20 20 20 20 20 | t.info.:error.error-data))...... |
| 250a0 | 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 61 64 | ........((eq.response.'json-read |
| 250c0 | 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | -error)...............(plist-put |
| 250e0 | 20 69 6e 66 6f 20 3a 65 72 72 6f 72 20 22 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 | .info.:error."Malformed.JSON.in. |
| 25100 | 72 65 73 70 6f 6e 73 65 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 70 6c | response."))..............(t.(pl |
| 25120 | 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 | ist-put.info.:error."Could.not.p |
| 25140 | 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 | arse.HTTP.response.")))))....... |
| 25160 | 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 6c 20 63 61 | ..(with-demoted-errors."gptel.ca |
| 25180 | 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e | llback.error:.%S"...........(fun |
| 251a0 | 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 20 | call.(plist-get.info.:callback). |
| 251c0 | 6e 69 6c 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 | nil.info))).......(gptel--fsm-tr |
| 251e0 | 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 29 20 20 20 20 20 20 3b 20 4d 6f 76 65 20 74 6f 20 6e 65 | ansition.fsm))......;.Move.to.ne |
| 25200 | 78 74 20 73 74 61 74 65 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 | xt.state.....(setf.(alist-get.pr |
| 25220 | 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 20 6e 69 6c 20 27 | ocess.gptel--request-alist.nil.' |
| 25240 | 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 | remove).nil).....(kill-buffer.pr |
| 25260 | 6f 63 2d 62 75 66 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 | oc-buf)))..(defun.gptel-curl--st |
| 25280 | 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 28 72 65 73 70 6f 6e 73 65 20 69 | ream-insert-response.(response.i |
| 252a0 | 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 72 61 77 29 0a 20 20 22 49 6e 73 65 72 74 20 73 74 72 | nfo.&optional.raw)..."Insert.str |
| 252c0 | 65 61 6d 69 6e 67 20 52 45 53 50 4f 4e 53 45 20 66 72 6f 6d 20 61 6e 20 4c 4c 4d 20 69 6e 74 6f | eaming.RESPONSE.from.an.LLM.into |
| 252e0 | 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2e 0a 0a 49 4e 46 4f 20 69 73 20 61 20 6d 75 | .the.gptel.buffer...INFO.is.a.mu |
| 25300 | 74 61 62 6c 65 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 | table.plist.containing.informati |
| 25320 | 6f 6e 20 72 65 6c 65 76 61 6e 74 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 53 65 65 20 | on.relevant.to.this.buffer..See. |
| 25340 | 60 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 64 65 | `gptel--url-get-response'.for.de |
| 25360 | 74 61 69 6c 73 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 20 52 41 57 20 64 69 73 61 62 6c 65 73 20 74 65 | tails...Optional.RAW.disables.te |
| 25380 | 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e | xt.properties.and.transformation |
| 253a0 | 2e 22 0a 20 20 28 70 63 61 73 65 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 28 28 70 72 65 64 20 | ."...(pcase.response.....((pred. |
| 253c0 | 73 74 72 69 6e 67 70 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 | stringp)......(let.((start-marke |
| 253e0 | 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 | r.(plist-get.info.:position))... |
| 25400 | 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 | .........(tracking-marker.(plist |
| 25420 | 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 | -get.info.:tracking-marker)).... |
| 25440 | 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 66 6f 72 6d 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........(transformer.(plist-get. |
| 25460 | 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d 65 72 29 29 29 0a 20 20 20 20 20 20 20 28 77 69 74 | info.:transformer)))........(wit |
| 25480 | 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 | h-current-buffer.(marker-buffer. |
| 254a0 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 | start-marker)..........(save-exc |
| 254c0 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 69 | ursion............(unless.tracki |
| 254e0 | 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | ng-marker..............(goto-cha |
| 25500 | 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e | r.start-marker)..............(un |
| 25520 | 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | less.(or.(bobp).(plist-get.info. |
| 25540 | 3a 69 6e 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 | :in-place))................(inse |
| 25560 | 72 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 | rt.gptel-response-separator).... |
| 25580 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 | ............(when.gptel-mode.... |
| 255a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 75 74 20 70 72 65 66 69 78 20 62 65 66 6f | ..............;;.Put.prefix.befo |
| 255c0 | 72 65 20 41 49 20 72 65 73 70 6f 6e 73 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | re.AI.response.................. |
| 255e0 | 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d | .(insert.(gptel-response-prefix- |
| 25600 | 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d | string)))................(move-m |
| 25620 | 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | arker.start-marker.(point))).... |
| 25640 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 | ..........(setq.tracking-marker. |
| 25660 | 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 28 70 6f 69 6e 74 | (set-marker.(make-marker).(point |
| 25680 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 2d 69 6e 73 | )))..............(set-marker-ins |
| 256a0 | 65 72 74 69 6f 6e 2d 74 79 70 65 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 29 0a 20 | ertion-type.tracking-marker.t).. |
| 256c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 | ............(plist-put.info.:tra |
| 256e0 | 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 | cking-marker.tracking-marker)).. |
| 25700 | 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 | ..........(goto-char.tracking-ma |
| 25720 | 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 61 77 0a 20 20 20 | rker)............(unless.raw.... |
| 25740 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 61 6e 73 66 6f 72 6d 65 72 0a 20 20 20 20 | ..........(when.transformer..... |
| 25760 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 66 75 6e 63 61 | ...........(setq.response.(funca |
| 25780 | 6c 6c 20 74 72 61 6e 73 66 6f 72 6d 65 72 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 | ll.transformer.response)))...... |
| 257a0 | 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 | ........(add-text-properties.... |
| 257c0 | 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 72 65 73 70 6f 6e 73 65 29 20 27 | ...........0.(length.response).' |
| 257e0 | 28 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 | (gptel.response.front-sticky.(gp |
| 25800 | 74 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 | tel))...............response)).. |
| 25820 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 | ..........;;.(run-hooks.'gptel-p |
| 25840 | 72 65 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 | re-stream-hook)............(inse |
| 25860 | 72 74 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f | rt.response)............(run-hoo |
| 25880 | 6b 73 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 29 29 29 29 29 0a | ks.'gptel-post-stream-hook))))). |
| 258a0 | 20 20 20 20 28 60 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 2c 74 65 78 74 29 0a 20 20 20 20 20 28 | ....(`(reasoning...,text)......( |
| 258c0 | 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 72 65 61 73 6f 6e 69 6e 67 2d 73 74 72 65 61 6d 20 | gptel--display-reasoning-stream. |
| 258e0 | 74 65 78 74 20 69 6e 66 6f 29 29 0a 20 20 20 20 28 60 28 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 2c | text.info)).....(`(tool-call..., |
| 25900 | 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 | tool-calls)......(gptel--display |
| 25920 | 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 29 29 0a 20 20 | -tool-calls.tool-calls.info))... |
| 25940 | 20 20 28 60 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 2c 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 | ..(`(tool-result...,tool-results |
| 25960 | 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 73 75 | )......(gptel--display-tool-resu |
| 25980 | 6c 74 73 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 29 29 29 0a 0a 28 64 65 66 75 | lts.tool-results.info))))..(defu |
| 259a0 | 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 66 69 6c 74 65 72 20 28 70 72 6f | n.gptel-curl--stream-filter.(pro |
| 259c0 | 63 65 73 73 20 6f 75 74 70 75 74 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 73 6d 20 28 63 61 72 20 | cess.output)...(let*.((fsm.(car. |
| 259e0 | 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 | (alist-get.process.gptel--reques |
| 25a00 | 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 2d 69 6e 66 6f 20 28 | t-alist)))..........(proc-info.( |
| 25a20 | 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 | gptel-fsm-info.fsm))..........(c |
| 25a40 | 61 6c 6c 62 61 63 6b 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f | allback.(or.(plist-get.proc-info |
| 25a60 | 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:callback)..................... |
| 25a80 | 20 20 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 | ...#'gptel-curl--stream-insert-r |
| 25aa0 | 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | esponse))).....(with-current-buf |
| 25ac0 | 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 0a 20 20 20 | fer.(process-buffer.process).... |
| 25ae0 | 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 28 73 61 76 65 2d | ...;;.Insert.output.......(save- |
| 25b00 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 | excursion.........(goto-char.(pr |
| 25b20 | 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e | ocess-mark.process)).........(in |
| 25b40 | 73 65 72 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 | sert.output).........(set-marker |
| 25b60 | 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 65 73 73 29 20 28 70 6f 69 6e 74 29 29 | .(process-mark.process).(point)) |
| 25b80 | 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 48 54 54 50 20 73 74 61 74 | )..............;;.Find.HTTP.stat |
| 25ba0 | 75 73 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 | us.......(unless.(plist-get.proc |
| 25bc0 | 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 | -info.:http-status).........(sav |
| 25be0 | 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | e-excursion...........(goto-char |
| 25c00 | 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 | .(point-min))...........(when-le |
| 25c20 | 74 2a 20 28 28 28 6e 6f 74 20 28 3d 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 | t*.(((not.(=.(line-end-position) |
| 25c40 | 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(point-max))))................. |
| 25c60 | 20 20 20 20 20 20 28 68 74 74 70 2d 6d 73 67 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e | ......(http-msg.(buffer-substrin |
| 25c80 | 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 | g.(line-beginning-position)..... |
| 25ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 25cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e | ..............(line-end-position |
| 25ce0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d | ))).......................(http- |
| 25d00 | 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | status........................(s |
| 25d20 | 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ave-match-data.................. |
| 25d40 | 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 48 54 54 50 | ........(and.(string-match."HTTP |
| 25d60 | 2f 5b 2e 30 2d 39 5d 2b 20 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 68 74 74 70 2d 6d 73 67 | /[.0-9]+.+\\([0-9]+\\)".http-msg |
| 25d80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 25da0 | 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 68 74 74 70 2d 6d 73 67 29 29 29 29 29 0a 20 20 | (match-string.1.http-msg)))))... |
| 25dc0 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a | ..........(plist-put.proc-info.: |
| 25de0 | 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 | http-status.http-status)........ |
| 25e00 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 | .....(plist-put.proc-info.:statu |
| 25e20 | 73 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 | s.(string-trim.http-msg))....... |
| 25e40 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d | ......(gptel--fsm-transition.fsm |
| 25e60 | 29 29 29 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 68 | ))))..............(when-let*.((h |
| 25e80 | 74 74 70 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 | ttp-msg.(plist-get.proc-info.:st |
| 25ea0 | 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 | atus))...................(http-s |
| 25ec0 | 74 61 74 75 73 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 | tatus.(plist-get.proc-info.:http |
| 25ee0 | 2d 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 46 69 6e 64 20 64 61 74 61 20 | -status))).........;;.Find.data. |
| 25f00 | 63 68 75 6e 6b 28 73 29 20 61 6e 64 20 72 75 6e 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 | chunk(s).and.run.callback....... |
| 25f20 | 20 20 3b 3b 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 | ..;;.FIXME.Handle.the.case.where |
| 25f40 | 20 48 54 54 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e | .HTTP.100.is.followed.by.HTTP.(n |
| 25f60 | 6f 74 20 32 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | ot.200).BUG.#194.........(when.( |
| 25f80 | 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 | member.http-status.'("200"."100" |
| 25fa0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 | ))...........(let.((response.(gp |
| 25fc0 | 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 | tel-curl--parse-stream.......... |
| 25fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f | ..................(plist-get.pro |
| 26000 | 63 2d 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 20 20 | c-info.:backend).proc-info)).... |
| 26020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 28 70 | .............(reasoning-block.(p |
| 26040 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c | list-get.proc-info.:reasoning-bl |
| 26060 | 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 70 65 6e 64 69 6e 67 20 | ock))).............;;.Depending. |
| 26080 | 6f 6e 20 74 68 65 20 41 50 49 2c 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 6d 6f 64 65 73 20 | on.the.API,.there.are.two.modes. |
| 260a0 | 74 68 61 74 20 72 65 61 73 6f 6e 69 6e 67 20 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | that.reasoning.or.............;; |
| 260c0 | 20 63 68 61 69 6e 2d 6f 66 2d 74 68 6f 75 67 68 74 20 63 6f 6e 74 65 6e 74 20 61 70 70 65 61 72 | .chain-of-thought.content.appear |
| 260e0 | 73 3a 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 6d 61 69 6e 20 72 65 73 70 6f 6e 73 65 0a | s:.as.part.of.the.main.response. |
| 26100 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 74 20 73 75 72 72 6f 75 6e 64 65 64 20 62 79 | ............;;.but.surrounded.by |
| 26120 | 20 3c 74 68 69 6e 6b 3e 2e 2e 2e 3c 2f 74 68 69 6e 6b 3e 20 74 61 67 73 2c 20 6f 72 20 61 73 20 | .<think>...</think>.tags,.or.as. |
| 26140 | 61 20 73 65 70 61 72 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4a 53 4f 4e 20 66 | a.separate.............;;.JSON.f |
| 26160 | 69 65 6c 64 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 73 74 72 65 61 6d 2e 0a 20 20 20 | ield.in.the.response.stream..... |
| 26180 | 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 73 65 | .........;;.............;;.These |
| 261a0 | 20 63 61 73 65 73 20 61 72 65 20 68 61 6e 64 6c 65 64 20 75 73 69 6e 67 20 74 77 6f 20 50 52 4f | .cases.are.handled.using.two.PRO |
| 261c0 | 43 2d 49 4e 46 4f 20 6b 65 79 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 | C-INFO.keys:.............;;..... |
| 261e0 | 20 20 20 20 20 20 20 20 3b 3b 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 69 73 20 6e | ........;;.:reasoning-block.is.n |
| 26200 | 69 6c 20 62 65 66 6f 72 65 20 63 68 65 63 6b 69 6e 67 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 | il.before.checking.for.reasoning |
| 26220 | 2c 20 27 69 6e 20 77 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 20 61 20 72 | ,.'in.when.............;;.in.a.r |
| 26240 | 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 2c 20 74 20 77 68 65 6e 20 77 65 20 72 65 61 63 68 20 | easoning.block,.t.when.we.reach. |
| 26260 | 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 6c 6f 63 6b 2c 20 61 6e 64 0a 20 20 20 20 20 20 | the.end.of.the.block,.and....... |
| 26280 | 20 20 20 20 20 20 3b 3b 20 27 64 6f 6e 65 20 61 66 74 65 72 77 61 72 64 73 20 6f 72 20 69 66 20 | ......;;.'done.afterwards.or.if. |
| 262a0 | 6e 6f 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 69 73 20 66 6f 75 6e 64 2e 20 20 54 68 | no.reasoning.block.is.found...Th |
| 262c0 | 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 70 70 6c 69 65 73 20 74 6f 20 62 6f 74 | is.............;;.applies.to.bot |
| 262e0 | 68 20 74 68 65 20 6d 6f 64 65 73 20 61 62 6f 76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b | h.the.modes.above..............; |
| 26300 | 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 3a 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 | ;.............;;.:reasoning.cont |
| 26320 | 61 69 6e 73 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 74 65 78 74 20 70 61 72 73 65 64 20 66 | ains.the.reasoning.text.parsed.f |
| 26340 | 72 6f 6d 20 74 68 65 20 73 65 70 61 72 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | rom.the.separate.............;;. |
| 26360 | 4a 53 4f 4e 20 66 69 65 6c 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 | JSON.field..............;;...... |
| 26380 | 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 57 65 20 61 73 73 75 6d 65 20 68 65 72 65 20 74 | .......;;.NOTE:.We.assume.here.t |
| 263a0 | 68 61 74 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 61 6c 77 61 79 73 0a 20 | hat.the.reasoning.block.always.. |
| 263c0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 65 63 65 64 65 73 20 74 68 65 20 6d 61 69 6e 20 | ...........;;.precedes.the.main. |
| 263e0 | 72 65 73 70 6f 6e 73 65 20 62 6c 6f 63 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c | response.block..............(unl |
| 26400 | 65 73 73 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 0a 20 | ess.(eq.reasoning-block.'done).. |
| 26420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 | .............(let.((reasoning.(p |
| 26440 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 29 | list-get.proc-info.:reasoning))) |
| 26460 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 | .................(cond.......... |
| 26480 | 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 | ........((stringp.reasoning).... |
| 264a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 | ...............;;.Obtained.from. |
| 264c0 | 73 65 70 61 72 61 74 65 20 4a 53 4f 4e 20 66 69 65 6c 64 20 69 6e 20 72 65 73 70 6f 6e 73 65 0a | separate.JSON.field.in.response. |
| 264e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 | ..................(funcall.callb |
| 26500 | 61 63 6b 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 20 | ack.(cons.'reasoning.reasoning). |
| 26520 | 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e | proc-info)...................(un |
| 26540 | 6c 65 73 73 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 3b 52 65 63 6f 72 64 20 74 68 61 | less.reasoning-block.;Record.tha |
| 26560 | 74 20 77 65 27 72 65 20 69 6e 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 28 23 37 | t.we're.in.a.reasoning.block.(#7 |
| 26580 | 30 39 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 | 09).....................(plist-p |
| 265a0 | 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 69 | ut.proc-info.:reasoning-block.'i |
| 265c0 | 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | n))...................(plist-put |
| 265e0 | 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 6e 69 6c 29 29 20 3b 52 65 73 | .proc-info.:reasoning.nil)).;Res |
| 26600 | 65 74 20 66 6f 72 20 6e 65 78 74 20 70 61 72 73 69 6e 67 20 72 6f 75 6e 64 0a 20 20 20 20 20 20 | et.for.next.parsing.round....... |
| 26620 | 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 61 73 6f 6e 69 6e 67 | ...........((and.(null.reasoning |
| 26640 | 2d 62 6c 6f 63 6b 29 20 28 6c 65 6e 67 74 68 3e 20 72 65 73 70 6f 6e 73 65 20 30 29 29 0a 20 20 | -block).(length>.response.0))... |
| 26660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 | ................(if.(string-matc |
| 26680 | 68 2d 70 20 22 5e 20 2a 3c 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 | h-p."^.*<think>".response)...... |
| 266a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 62 74 61 69 6e 65 64 20 66 72 6f | .................;;.Obtained.fro |
| 266c0 | 6d 20 6d 61 69 6e 20 72 65 73 70 6f 6e 73 65 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 | m.main.response.stream.......... |
| 266e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 72 65 73 70 6f 6e | .............(progn.(setq.respon |
| 26700 | 73 65 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 | se.(cons.'reasoning.response)).. |
| 26720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | ............................(pli |
| 26740 | 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 | st-put.proc-info.:reasoning-bloc |
| 26760 | 6b 20 27 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | k.'in)).....................(pli |
| 26780 | 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 | st-put.proc-info.:reasoning-bloc |
| 267a0 | 6b 20 27 64 6f 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 | k.'done)))..................((le |
| 267c0 | 6e 67 74 68 3e 20 72 65 73 70 6f 6e 73 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ngth>.response.0)............... |
| 267e0 | 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 | ....(if-let*.((idx.(string-match |
| 26800 | 2d 70 20 22 3c 2f 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 | -p."</think>".response)))....... |
| 26820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 | ................(progn.......... |
| 26840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b | ...............(funcall.callback |
| 26860 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 26880 | 20 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 3b 6c 61 73 74 20 72 65 61 73 6f 6e 69 | ..(cons.'reasoning.;last.reasoni |
| 268a0 | 6e 67 20 63 68 75 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng.chunk........................ |
| 268c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 6c 65 66 | ................(string-trim-lef |
| 268e0 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t............................... |
| 26900 | 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 6e 69 | ..........(substring.response.ni |
| 26920 | 6c 20 28 2b 20 69 64 78 20 38 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.(+.idx.8)))).................. |
| 26940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 | ................proc-info)...... |
| 26960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 69 67 6e 61 6c 20 65 6e 64 | ...................;;.Signal.end |
| 26980 | 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 | .of.reasoning.stream............ |
| 269a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 27 | .............(funcall.callback.' |
| 269c0 | 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 29 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 | (reasoning...t).proc-info)...... |
| 269e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 | ...................(setq.respons |
| 26a00 | 65 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 | e.(substring.response.(+.idx.8)) |
| 26a20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ).........................(plist |
| 26a40 | 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 | -put.proc-info.:reasoning-block. |
| 26a60 | 27 64 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | 'done)).....................(set |
| 26a80 | 71 20 72 65 73 70 6f 6e 73 65 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 73 70 | q.response.(cons.'reasoning.resp |
| 26aa0 | 6f 6e 73 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | onse))))).................(when. |
| 26ac0 | 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 20 3b 45 6e 64 20 6f 66 20 72 | (eq.reasoning-block.t).;End.of.r |
| 26ae0 | 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | easoning.block.................. |
| 26b00 | 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 27 28 72 65 61 73 6f 6e 69 6e 67 20 2e | .(funcall.callback.'(reasoning.. |
| 26b20 | 20 74 29 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .t).proc-info).................. |
| 26b40 | 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 | .(plist-put.proc-info.:reasoning |
| 26b60 | 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e | -block.'done)))).............(un |
| 26b80 | 6c 65 73 73 20 28 65 71 75 61 6c 20 72 65 73 70 6f 6e 73 65 20 22 22 29 20 3b 52 65 73 70 6f 6e | less.(equal.response."").;Respon |
| 26ba0 | 73 65 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 | se.callback...............(funca |
| 26bc0 | 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 | ll.callback.response.proc-info)) |
| 26be0 | 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 63 75 72 | ))))))..(cl-defgeneric.gptel-cur |
| 26c00 | 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 63 2d 69 6e | l--parse-stream.(backend.proc-in |
| 26c20 | 66 6f 29 0a 20 20 22 53 74 72 65 61 6d 20 70 61 72 73 65 72 20 66 6f 72 20 67 70 74 65 6c 2d 63 | fo)..."Stream.parser.for.gptel-c |
| 26c40 | 75 72 6c 2e 0a 0a 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 66 75 | url...Implementations.of.this.fu |
| 26c60 | 6e 63 74 69 6f 6e 20 72 75 6e 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 | nction.run.as.part.of.the.proces |
| 26c80 | 73 0a 66 69 6c 74 65 72 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 71 75 65 72 79 2c 20 61 | s.filter.for.the.active.query,.a |
| 26ca0 | 6e 64 20 72 65 74 75 72 6e 20 70 61 72 74 69 61 6c 20 72 65 73 70 6f 6e 73 65 73 20 66 72 6f 6d | nd.return.partial.responses.from |
| 26cc0 | 0a 74 68 65 20 4c 4c 4d 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 | .the.LLM...BACKEND.is.the.LLM.ba |
| 26ce0 | 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 61 20 70 6c | ckend.in.use...PROC-INFO.is.a.pl |
| 26d00 | 69 73 74 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 | ist.with.process.information.and |
| 26d20 | 20 6f 74 68 65 72 20 63 6f 6e 74 65 78 74 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 63 75 72 6c 2d | .other.context..See.`gptel-curl- |
| 26d40 | 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 2e | -get-response'.for.its.contents. |
| 26d60 | 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 65 6e 74 69 6e 65 6c 20 | ")..(defun.gptel-curl--sentinel. |
| 26d80 | 28 70 72 6f 63 65 73 73 20 5f 73 74 61 74 75 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 65 6e | (process._status)..."Process.sen |
| 26da0 | 74 69 6e 65 6c 20 66 6f 72 20 67 70 74 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a | tinel.for.gptel.curl.requests... |
| 26dc0 | 50 52 4f 43 45 53 53 20 61 6e 64 20 5f 53 54 41 54 55 53 20 61 72 65 20 70 72 6f 63 65 73 73 20 | PROCESS.and._STATUS.are.process. |
| 26de0 | 70 61 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 | parameters."...(let.((proc-buf.( |
| 26e00 | 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 77 | process-buffer.process))).....(w |
| 26e20 | 68 65 6e 2d 6c 65 74 2a 20 28 28 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 | hen-let*.(((eq.(process-status.p |
| 26e40 | 72 6f 63 65 73 73 29 20 27 65 78 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rocess).'exit))................. |
| 26e60 | 28 66 73 6d 20 28 63 61 72 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 | (fsm.(car.(alist-get.process.gpt |
| 26e80 | 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | el--request-alist)))............ |
| 26ea0 | 20 20 20 20 20 28 70 72 6f 63 2d 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 | .....(proc-info.(gptel-fsm-info. |
| 26ec0 | 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 2d 63 61 6c 6c | fsm)).................(proc-call |
| 26ee0 | 62 61 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 63 61 6c 6c 62 | back.(plist-get.proc-info.:callb |
| 26f00 | 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 | ack))).......(when.gptel-log-lev |
| 26f20 | 65 6c 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 6c 6f 67 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f | el.(gptel-curl--log-response.pro |
| 26f40 | 63 2d 62 75 66 20 70 72 6f 63 2d 69 6e 66 6f 29 29 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 | c-buf.proc-info)).;logging...... |
| 26f60 | 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d | .(pcase-let.((`(,response.,http- |
| 26f80 | 73 74 61 74 75 73 20 2c 68 74 74 70 2d 6d 73 67 20 2c 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 | status.,http-msg.,error)........ |
| 26fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | ............(with-current-buffer |
| 26fc0 | 20 70 72 6f 63 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .proc-buf......................( |
| 26fe0 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d | gptel-curl--parse-response.proc- |
| 27000 | 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 | info)))).........(plist-put.proc |
| 27020 | 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 73 74 61 74 75 73 29 0a | -info.:http-status.http-status). |
| 27040 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 | ........(plist-put.proc-info.:st |
| 27060 | 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 | atus.http-msg).........(gptel--f |
| 27080 | 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 20 20 20 20 3b 57 41 49 54 20 2d 3e 20 | sm-transition.fsm).....;WAIT.->. |
| 270a0 | 54 59 50 45 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d | TYPE.........(when.error.(plist- |
| 270c0 | 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 65 72 72 6f 72 20 65 72 72 6f 72 29 29 0a 20 20 20 | put.proc-info.:error.error)).... |
| 270e0 | 20 20 20 20 20 28 77 68 65 6e 20 72 65 73 70 6f 6e 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(when.response............. |
| 27100 | 20 20 20 20 20 3b 4c 6f 6f 6b 20 66 6f 72 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b | .....;Look.for.a.reasoning.block |
| 27120 | 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 | ...........(if.(string-match-p." |
| 27140 | 5e 20 2a 3c 74 68 69 6e 6b 3e 5c 6e 22 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 | ^.*<think>\n".response)......... |
| 27160 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 73 | ......(when-let*.((idx.(string-s |
| 27180 | 65 61 72 63 68 20 22 3c 2f 74 68 69 6e 6b 3e 5c 6e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 | earch."</think>\n".response))).. |
| 271a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 | ...............(with-demoted-err |
| 271c0 | 6f 72 73 20 22 67 70 74 65 6c 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 | ors."gptel.callback.error:.%S".. |
| 271e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 | .................(funcall.proc-c |
| 27200 | 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | allback......................... |
| 27220 | 20 20 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 28 73 75 62 73 74 72 69 6e 67 20 72 | ...(cons.'reasoning.(substring.r |
| 27240 | 65 73 70 6f 6e 73 65 20 6e 69 6c 20 28 2b 20 69 64 78 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 | esponse.nil.(+.idx.8)))......... |
| 27260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 | ...................proc-info)).. |
| 27280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 0a 20 20 | ...............(setq.response... |
| 272a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d | ....................(string-trim |
| 272c0 | 2d 6c 65 66 74 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 | -left.(substring.response.(+.idx |
| 272e0 | 20 38 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | .8))))).............(when-let*.( |
| 27300 | 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 | (reasoning.(plist-get.proc-info. |
| 27320 | 3a 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :reasoning)).................... |
| 27340 | 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 | .....((stringp.reasoning)))..... |
| 27360 | 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b | ..........(funcall.proc-callback |
| 27380 | 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 20 70 72 6f | .(cons.'reasoning.reasoning).pro |
| 273a0 | 63 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 73 | c-info)))).........(when.(or.res |
| 273c0 | 70 6f 6e 73 65 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 | ponse.(not.(member.http-status.' |
| 273e0 | 28 22 32 30 30 22 20 22 31 30 30 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 | ("200"."100"))))...........(with |
| 27400 | 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 6c 20 63 61 6c 6c 62 61 63 6b 20 | -demoted-errors."gptel.callback. |
| 27420 | 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 | error:.%S".............(funcall. |
| 27440 | 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f | proc-callback.response.proc-info |
| 27460 | 29 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f | )))).......(gptel--fsm-transitio |
| 27480 | 6e 20 66 73 6d 29 29 20 20 20 20 20 20 3b 54 59 50 45 20 2d 3e 20 6e 65 78 74 0a 20 20 20 20 28 | n.fsm))......;TYPE.->.next.....( |
| 274a0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 | setf.(alist-get.process.gptel--r |
| 274c0 | 65 71 75 65 73 74 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 | equest-alist.nil.'remove).nil).. |
| 274e0 | 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 29 29 29 0a 0a 28 64 65 | ...(kill-buffer.proc-buf)))..(de |
| 27500 | 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 | fun.gptel-curl--parse-response.( |
| 27520 | 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 62 75 66 66 65 72 20 42 | proc-info)..."Parse.the.buffer.B |
| 27540 | 55 46 20 77 69 74 68 20 63 75 72 6c 27 73 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 50 52 4f 43 2d 49 | UF.with.curl's.response...PROC-I |
| 27560 | 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 63 6f 6e 74 65 78 74 75 61 6c 20 69 | NFO.is.a.plist.with.contextual.i |
| 27580 | 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 70 6c 69 | nformation."...(let.((token.(pli |
| 275a0 | 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 | st-get.proc-info.:token))).....( |
| 275c0 | 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 73 65 61 72 | goto-char.(point-max)).....(sear |
| 275e0 | 63 68 2d 62 61 63 6b 77 61 72 64 20 74 6f 6b 65 6e 29 0a 20 20 20 20 28 62 61 63 6b 77 61 72 64 | ch-backward.token).....(backward |
| 27600 | 2d 63 68 61 72 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e 20 | -char).....(pcase-let*.((`(,_... |
| 27620 | 2c 68 65 61 64 65 72 2d 73 69 7a 65 29 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | ,header-size).(read.(current-buf |
| 27640 | 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d | fer)))).......(goto-char.(point- |
| 27660 | 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 68 74 74 70 2d 6d 73 67 | min))........(if-let*.((http-msg |
| 27680 | 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(string-trim................... |
| 276a0 | 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 | .........(buffer-substring.(line |
| 276c0 | 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -beginning-position)............ |
| 276e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 27700 | 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 | ..(line-end-position))))........ |
| 27720 | 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 | .........(http-status........... |
| 27740 | 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 | .......(save-match-data......... |
| 27760 | 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 48 | ...........(and.(string-match."H |
| 27780 | 54 54 50 2f 5b 2e 30 2d 39 5d 2b 20 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 68 74 74 70 2d | TTP/[.0-9]+.+\\([0-9]+\\)".http- |
| 277a0 | 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 | msg).........................(ma |
| 277c0 | 74 63 68 2d 73 74 72 69 6e 67 20 31 20 68 74 74 70 2d 6d 73 67 29 29 29 29 0a 20 20 20 20 20 20 | tch-string.1.http-msg))))....... |
| 277e0 | 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f | ..........(response.(progn.(goto |
| 27800 | 2d 63 68 61 72 20 68 65 61 64 65 72 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -char.header-size).............. |
| 27820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 | ....................(condition-c |
| 27840 | 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ase.nil......................... |
| 27860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 0a | .............(gptel--json-read). |
| 27880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 278a0 | 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 29 29 29 29 0a | ...(error.'json-read-error))))). |
| 278c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 | ..........(cond............;;.FI |
| 278e0 | 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 | XME.Handle.the.case.where.HTTP.1 |
| 27900 | 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 | 00.is.followed.by.HTTP.(not.200) |
| 27920 | 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 68 74 | .BUG.#194............((member.ht |
| 27940 | 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 20 20 20 | tp-status.'("200"."100"))....... |
| 27960 | 20 20 20 20 20 20 28 6c 69 73 74 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 72 65 73 70 20 28 67 70 | ......(list.(and-let*.((resp.(gp |
| 27980 | 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel--parse-response............. |
| 279a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 | ........................(plist-g |
| 279c0 | 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 72 65 73 70 6f 6e 73 65 20 | et.proc-info.:backend).response. |
| 279e0 | 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | proc-info))..................... |
| 27a00 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 72 | .........((not.(string-blank-p.r |
| 27a20 | 65 73 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 | esp)))).....................(str |
| 27a40 | 69 6e 67 2d 74 72 69 6d 20 72 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-trim.resp))................. |
| 27a60 | 20 20 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 | ..http-status.http-msg))........ |
| 27a80 | 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 | ....((plist-get.response.:error) |
| 27aa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 | .............(list.nil.http-stat |
| 27ac0 | 75 73 20 68 74 74 70 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 | us.http-msg.(plist-get.response. |
| 27ae0 | 3a 65 72 72 6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e | :error)))............((eq.respon |
| 27b00 | 73 65 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | se.'json-read-error)............ |
| 27b20 | 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 28 63 6f 6e 63 61 74 20 22 | .(list.nil.http-status.(concat." |
| 27b40 | 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e | (".http-msg.").Malformed.JSON.in |
| 27b60 | 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | .response.")..................." |
| 27b80 | 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 | Malformed.JSON.in.response"))... |
| 27ba0 | 20 20 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 | .........(t.(list.nil.http-statu |
| 27bc0 | 73 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 | s.(concat."(".http-msg.").Could. |
| 27be0 | 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 | not.parse.HTTP.response.")...... |
| 27c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 | ..............."Could.not.parse. |
| 27c20 | 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 | HTTP.response."))).........(list |
| 27c40 | 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 | .nil.http-status.(concat."(".htt |
| 27c60 | 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 | p-msg.").Could.not.parse.HTTP.re |
| 27c80 | 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e | sponse.")..............."Could.n |
| 27ca0 | 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 29 29 0a 0a 28 | ot.parse.HTTP.response.")))))..( |
| 27cc0 | 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 63 75 72 6c 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 63 | provide.'gptel-curl).;;;.gptel-c |
| 27ce0 | 75 72 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | url.el.ends.here................ |
| 27d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27e00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 67 68 2e 65 6c 00 00 00 00 00 00 00 | gptel-0.9.8.5/gptel-gh.el....... |
| 27e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27e60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 27e80 | 30 30 33 33 30 32 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 37 37 00 20 30 00 00 00 | 0033023.00000000000.013477..0... |
| 27ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27f00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 27f20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 27f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 27fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28000 | 3b 3b 3b 20 67 70 74 65 6c 2d 67 68 2e 65 6c 20 2d 2d 2d 20 20 47 69 74 68 75 62 20 43 6f 70 69 | ;;;.gptel-gh.el.---..Github.Copi |
| 28020 | 6c 6f 74 20 41 49 20 73 75 70 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c | lot.AI.suppport.for.gptel..-*-.l |
| 28040 | 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 20 | exical-binding:.t;.-*-..;;.This. |
| 28060 | 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 | program.is.free.software;.you.ca |
| 28080 | 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a | n.redistribute.it.and/or.modify. |
| 280a0 | 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 | ;;.it.under.the.terms.of.the.GNU |
| 280c0 | 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 | .General.Public.License.as.publi |
| 280e0 | 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 | shed.by.;;.the.Free.Software.Fou |
| 28100 | 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 | ndation,.either.version.3.of.the |
| 28120 | 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 | .License,.or.;;.(at.your.option) |
| 28140 | 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f | .any.later.version...;;.This.pro |
| 28160 | 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 | gram.is.distributed.in.the.hope. |
| 28180 | 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 | that.it.will.be.useful,.;;.but.W |
| 281a0 | 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 | ITHOUT.ANY.WARRANTY;.without.eve |
| 281c0 | 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 | n.the.implied.warranty.of.;;.MER |
| 281e0 | 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 | CHANTABILITY.or.FITNESS.FOR.A.PA |
| 28200 | 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e | RTICULAR.PURPOSE...See.the.;;.GN |
| 28220 | 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 | U.General.Public.License.for.mor |
| 28240 | 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 | e.details...;;.You.should.have.r |
| 28260 | 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 | eceived.a.copy.of.the.GNU.Genera |
| 28280 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 | l.Public.License.;;.along.with.t |
| 282a0 | 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 | his.program...If.not,.see.<https |
| 282c0 | 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 | ://www.gnu.org/licenses/>...;;;. |
| 282e0 | 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 | Commentary:..;;.This.file.adds.s |
| 28300 | 75 70 70 6f 72 74 20 66 6f 72 20 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 20 41 50 49 20 74 6f | upport.for.Github.Copilot.API.to |
| 28320 | 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f | .gptel..;;;.Code:..(eval-when-co |
| 28340 | 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 | mpile...(require.'cl-lib)).(requ |
| 28360 | 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 | ire.'map).(require.'gptel).(requ |
| 28380 | 69 72 65 20 27 62 72 6f 77 73 65 2d 75 72 6c 29 0a 0a 3b 3b 3b 20 47 69 74 68 75 62 20 43 6f 70 | ire.'browse-url)..;;;.Github.Cop |
| 283a0 | 69 6c 6f 74 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 68 2d 6d 6f 64 65 6c 73 0a | ilot.(defconst.gptel--gh-models. |
| 283c0 | 20 20 27 28 28 67 70 74 2d 34 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 | ..'((gpt-4o......:description... |
| 283e0 | 20 20 20 22 41 64 76 61 6e 63 65 64 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 | ..."Advanced.model.for.complex.t |
| 28400 | 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 66 61 73 74 65 72 20 74 68 61 6e 20 47 50 54 2d | asks;.cheaper.&.faster.than.GPT- |
| 28420 | 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 | Turbo"......:capabilities.(media |
| 28440 | 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 | .tool-use.json.url)......:mime-t |
| 28460 | 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 | ypes.("image/jpeg"."image/png"." |
| 28480 | 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 | image/gif"."image/webp")......:c |
| 284a0 | 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e | ontext-window.128.:input-cost.2. |
| 284c0 | 35 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | 5.:output-cost.10.:cutoff-date." |
| 284e0 | 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 6f 2d 63 6f 70 69 6c 6f 74 0a 20 20 | 2023-10").....(gpt-4o-copilot... |
| 28500 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 68 65 61 70 20 6d 6f 64 65 6c 20 66 6f 72 | ...:description."Cheap.model.for |
| 28520 | 20 66 61 73 74 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 6d 6f 72 65 20 63 61 70 61 | .fast.tasks;.cheaper.&.more.capa |
| 28540 | 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 33 2e 35 20 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 6f | ble.than.GPT-3.5.Turbo"......:co |
| 28560 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 | ntext-window.128......:input-cos |
| 28580 | 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 0a 20 20 | t.0.15......:output-cost.0.60... |
| 285a0 | 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 | ...:cutoff-date."2023-10").....( |
| 285c0 | 67 70 74 2d 34 2e 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 6c 61 67 73 | gpt-4.1......:description."Flags |
| 285e0 | 68 69 70 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 73 6b 73 22 0a 20 20 20 | hip.model.for.complex.tasks".... |
| 28600 | 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 | ..:capabilities.(media.tool-use. |
| 28620 | 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 | json.url)......:mime-types.("ima |
| 28640 | 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 | ge/jpeg"."image/png"."image/gif" |
| 28660 | 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | ."image/webp")......:context-win |
| 28680 | 64 6f 77 20 31 30 32 34 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 30 0a 20 20 | dow.1024......:input-cost.2.0... |
| 286a0 | 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 38 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 | ...:output-cost.8.0......:cutoff |
| 286c0 | 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 35 2d 70 72 | -date."2024-05").....(gpt-4.5-pr |
| 286e0 | 65 76 69 65 77 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4c 61 72 67 65 73 74 | eview......:description."Largest |
| 28700 | 20 61 6e 64 20 6d 6f 73 74 20 63 61 70 61 62 6c 65 20 47 50 54 20 6d 6f 64 65 6c 20 74 6f 20 64 | .and.most.capable.GPT.model.to.d |
| 28720 | 61 74 65 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 75 72 6c 29 0a 20 20 | ate"......:capabilities.(url)... |
| 28740 | 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 | ...:context-window.128......:inp |
| 28760 | 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 30 | ut-cost.75......:output-cost.150 |
| 28780 | 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 | ......:cutoff-date."2023-10")... |
| 287a0 | 20 20 28 6f 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 61 73 6f 6e 69 | ..(o1......:description."Reasoni |
| 287c0 | 6e 67 20 6d 6f 64 65 6c 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 6f 6c 76 65 20 68 61 72 64 20 | ng.model.designed.to.solve.hard. |
| 287e0 | 70 72 6f 62 6c 65 6d 73 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 20 20 20 3a 63 | problems.across.domains"......:c |
| 28800 | 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 74 6f 6f 6c 2d 75 73 65 29 | apabilities.(reasoning.tool-use) |
| 28820 | 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a | ......:context-window.200......: |
| 28840 | 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 | input-cost.15......:output-cost. |
| 28860 | 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 0a 20 | 60......:cutoff-date."2023-10".. |
| 28880 | 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 28 3a 73 74 72 65 61 6d 20 3a 6a 73 | ....:request-params.(:stream.:js |
| 288a0 | 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 28 6f 33 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 | on-false)).....(o3......:descrip |
| 288c0 | 74 69 6f 6e 20 22 57 65 6c 6c 2d 72 6f 75 6e 64 65 64 20 61 6e 64 20 70 6f 77 65 72 66 75 6c 20 | tion."Well-rounded.and.powerful. |
| 288e0 | 6d 6f 64 65 6c 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 20 20 20 3a 63 61 70 61 | model.across.domains"......:capa |
| 28900 | 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 | bilities.(reasoning.media.tool-u |
| 28920 | 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 | se.json.url)......:mime-types.(" |
| 28940 | 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 | image/jpeg"."image/png"."image/g |
| 28960 | 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d | if"."image/webp")......:context- |
| 28980 | 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 | window.200......:input-cost.10.. |
| 289a0 | 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 | ....:output-cost.40......:cutoff |
| 289c0 | 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 6f 33 2d 6d 69 6e 69 0a 20 20 | -date."2024-05").....(o3-mini... |
| 289e0 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 20 69 6e 74 65 6c 6c 69 67 65 6e | ...:description."High.intelligen |
| 28a00 | 63 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 63 6f 73 74 20 61 6e 64 20 6c 61 74 65 6e 63 79 20 | ce.at.the.same.cost.and.latency. |
| 28a20 | 74 61 72 67 65 74 73 20 6f 66 20 6f 31 2d 6d 69 6e 69 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 | targets.of.o1-mini"......:capabi |
| 28a40 | 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 | lities.(reasoning.tool-use)..... |
| 28a60 | 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 | .:context-window.200......:input |
| 28a80 | 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 32 0a 20 20 20 | -cost.3......:output-cost.12.... |
| 28aa0 | 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 6f | ..:cutoff-date."2023-10").....(o |
| 28ac0 | 34 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 2c 20 | 4-mini......:description."Fast,. |
| 28ae0 | 65 66 66 65 63 74 69 76 65 20 72 65 61 73 6f 6e 69 6e 67 20 77 69 74 68 20 65 66 66 69 63 69 65 | effective.reasoning.with.efficie |
| 28b00 | 6e 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e 20 63 6f 64 69 6e 67 20 61 6e 64 20 76 69 73 | nt.performance.in.coding.and.vis |
| 28b20 | 75 61 6c 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 | ual.tasks"......:capabilities.(r |
| 28b40 | 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c | easoning.media.tool-use.json.url |
| 28b60 | 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 | )......:mime-types.("image/jpeg" |
| 28b80 | 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f | ."image/png"."image/gif"."image/ |
| 28ba0 | 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a | webp")......:context-window.200. |
| 28bc0 | 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 | .....:input-cost.1.10......:outp |
| 28be0 | 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | ut-cost.4.40......:cutoff-date." |
| 28c00 | 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2e 35 2d 73 6f 6e 6e 65 74 | 2024-05").....(claude-3.5-sonnet |
| 28c20 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 65 73 74 20 6c 65 76 65 | ......:description."Highest.leve |
| 28c40 | 6c 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 63 61 70 61 62 69 6c 69 74 79 | l.of.intelligence.and.capability |
| 28c60 | 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c | "......:capabilities.(media.tool |
| 28c80 | 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 | -use.cache)......:mime-types.("i |
| 28ca0 | 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 | mage/jpeg"."image/png"."image/gi |
| 28cc0 | 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 | f"."image/webp"."application/pdf |
| 28ce0 | 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 | ")......:context-window.200..... |
| 28d00 | 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | .:input-cost.3......:output-cost |
| 28d20 | 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 34 22 29 | .15......:cutoff-date."2024-04") |
| 28d40 | 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2e 37 2d 73 6f 6e 6e 65 74 0a 20 20 20 20 20 3a 64 65 | .....(claude-3.7-sonnet......:de |
| 28d60 | 73 63 72 69 70 74 69 6f 6e 20 22 48 79 62 72 69 64 20 6d 6f 64 65 6c 20 63 61 70 61 62 6c 65 20 | scription."Hybrid.model.capable. |
| 28d80 | 6f 66 20 73 74 61 6e 64 61 72 64 20 74 68 69 6e 6b 69 6e 67 20 61 6e 64 20 65 78 74 65 6e 64 65 | of.standard.thinking.and.extende |
| 28da0 | 64 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | d.thinking.modes"......:capabili |
| 28dc0 | 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 | ties.(media.tool-use.cache)..... |
| 28de0 | 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 | .:mime-types.("image/jpeg"."imag |
| 28e00 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 | e/png"."image/gif"."image/webp". |
| 28e20 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 | "application/pdf")......:context |
| 28e40 | 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 | -window.200......:input-cost.3.. |
| 28e60 | 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 | ....:output-cost.15......:cutoff |
| 28e80 | 2d 64 61 74 65 20 22 32 30 32 35 2d 30 32 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2e 37 | -date."2025-02").....(claude-3.7 |
| 28ea0 | 2d 73 6f 6e 6e 65 74 2d 74 68 6f 75 67 68 74 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f | -sonnet-thought......:descriptio |
| 28ec0 | 6e 20 22 43 6c 61 75 64 65 20 33 2e 37 20 53 6f 6e 6e 65 74 20 54 68 69 6e 6b 69 6e 67 22 0a 20 | n."Claude.3.7.Sonnet.Thinking".. |
| 28ee0 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 63 61 63 68 65 29 0a | ....:capabilities.(media.cache). |
| 28f00 | 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 | .....:mime-types.("image/jpeg"." |
| 28f20 | 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 | image/png"."image/gif"."image/we |
| 28f40 | 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e | bp"."application/pdf")......:con |
| 28f60 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 | text-window.200......:input-cost |
| 28f80 | 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 | .3......:output-cost.15......:cu |
| 28fa0 | 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 32 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 | toff-date."2025-02").....(claude |
| 28fc0 | 2d 73 6f 6e 6e 65 74 2d 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 | -sonnet-4......:description."Hig |
| 28fe0 | 68 2d 70 65 72 66 6f 72 6d 61 6e 63 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 65 78 63 65 70 74 69 | h-performance.model.with.excepti |
| 29000 | 6f 6e 61 6c 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 65 66 66 69 63 69 65 6e 63 79 22 0a 20 | onal.reasoning.and.efficiency".. |
| 29020 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 | ....:capabilities.(media.tool-us |
| 29040 | 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | e.cache)......:mime-types.("imag |
| 29060 | 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 | e/jpeg"."image/png"."image/gif". |
| 29080 | 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a | "image/webp"."application/pdf"). |
| 290a0 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 | .....:context-window.200......:i |
| 290c0 | 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 | nput-cost.3......:output-cost.15 |
| 290e0 | 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 | ......:cutoff-date."2025-03")... |
| 29100 | 20 20 28 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 | ..(claude-opus-4......:descripti |
| 29120 | 6f 6e 20 22 4d 6f 73 74 20 63 61 70 61 62 6c 65 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c | on."Most.capable.model.for.compl |
| 29140 | 65 78 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 61 64 76 61 6e 63 65 64 20 63 6f 64 69 6e 67 | ex.reasoning.and.advanced.coding |
| 29160 | 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c | "......:capabilities.(media.tool |
| 29180 | 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 | -use.cache)......:mime-types.("i |
| 291a0 | 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 | mage/jpeg"."image/png"."image/gi |
| 291c0 | 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 | f"."image/webp"."application/pdf |
| 291e0 | 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 | ")......:context-window.200..... |
| 29200 | 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 | .:input-cost.15......:output-cos |
| 29220 | 74 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 | t.75......:cutoff-date."2025-03" |
| 29240 | 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 30 30 31 0a 20 20 20 20 | ).....(gemini-2.0-flash-001..... |
| 29260 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 67 65 6e 2c 20 68 69 67 68 20 73 70 | .:description."Next.gen,.high.sp |
| 29280 | 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 6f 72 20 61 20 64 69 76 65 72 73 65 20 76 61 | eed,.multimodal.for.a.diverse.va |
| 292a0 | 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 | riety.of.tasks"......:capabiliti |
| 292c0 | 65 73 20 28 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 | es.(json.media)......:mime-types |
| 292e0 | 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 | .("image/png"."image/jpeg"."imag |
| 29300 | 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 | e/webp"."image/heic"."image/heif |
| 29320 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e | "..................."application |
| 29340 | 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 | /pdf"."text/plain"."text/csv"."t |
| 29360 | 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 | ext/html")......:context-window. |
| 29380 | 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 20 20 20 | 1000......:input-cost.0.10...... |
| 293a0 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 | :output-cost.0.40......:cutoff-d |
| 293c0 | 61 74 65 20 22 32 30 32 34 2d 30 38 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 | ate."2024-08").....(gemini-2.5-p |
| 293e0 | 72 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 67 65 6e 2c 20 | ro......:description."Next.gen,. |
| 29400 | 68 69 67 68 20 73 70 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 6f 72 20 61 20 64 69 76 | high.speed,.multimodal.for.a.div |
| 29420 | 65 72 73 65 20 76 61 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 | erse.variety.of.tasks"......:cap |
| 29440 | 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a | abilities.(tool-use.json.media). |
| 29460 | 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 | .....:mime-types.("image/png"."i |
| 29480 | 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 | mage/jpeg"."image/webp"."image/h |
| 294a0 | 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eic"."image/heif"............... |
| 294c0 | 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 | ...."application/pdf"."text/plai |
| 294e0 | 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 | n"."text/csv"."text/html")...... |
| 29500 | 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 | :context-window.1000......:input |
| 29520 | 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 | -cost.0.10......:output-cost.0.4 |
| 29540 | 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 22 29 29 29 | 0......:cutoff-date."2024-08"))) |
| 29560 | 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 2d 67 68 20 28 3a 69 6e 63 | ..(cl-defstruct.(gptel--gh.(:inc |
| 29580 | 6c 75 64 65 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | lude.gptel-openai).............. |
| 295a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 | ............(:copier.nil)....... |
| 295c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 | ...................(:constructor |
| 295e0 | 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 68 29 29 0a 20 20 74 6f 6b 65 6e 20 67 69 74 68 75 62 | .gptel--make-gh))...token.github |
| 29600 | 2d 74 6f 6b 65 6e 20 73 65 73 73 69 6f 6e 69 64 20 6d 61 63 68 69 6e 65 69 64 29 0a 0a 28 64 65 | -token.sessionid.machineid)..(de |
| 29620 | 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 2d 66 69 | fcustom.gptel-gh-github-token-fi |
| 29640 | 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 63 61 63 68 65 2f 63 6f 70 | le.(expand-file-name.".cache/cop |
| 29660 | 69 6c 6f 74 2d 63 68 61 74 2f 67 69 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 | ilot-chat/github-token"......... |
| 29680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 296a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 | ................user-emacs-direc |
| 296c0 | 74 6f 72 79 29 0a 20 20 22 46 69 6c 65 20 77 68 65 72 65 20 74 68 65 20 47 69 74 48 75 62 20 74 | tory)..."File.where.the.GitHub.t |
| 296e0 | 6f 6b 65 6e 20 69 73 20 73 74 6f 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 | oken.is.stored."...:type.'string |
| 29700 | 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 | ...:group.'gptel)..(defcustom.gp |
| 29720 | 74 65 6c 2d 67 68 2d 74 6f 6b 65 6e 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e | tel-gh-token-file.(expand-file-n |
| 29740 | 61 6d 65 20 22 2e 63 61 63 68 65 2f 63 6f 70 69 6c 6f 74 2d 63 68 61 74 2f 74 6f 6b 65 6e 22 0a | ame.".cache/copilot-chat/token". |
| 29760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 | .................user-emacs-dire |
| 297a0 | 63 74 6f 72 79 29 0a 20 20 22 46 69 6c 65 20 77 68 65 72 65 20 74 68 65 20 63 68 61 74 20 74 6f | ctory)..."File.where.the.chat.to |
| 297c0 | 6b 65 6e 20 69 73 20 63 61 63 68 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a | ken.is.cached."...:type.'string. |
| 297e0 | 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 | ..:group.'gptel)..(defconst.gpte |
| 29800 | 6c 2d 2d 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 0a 20 20 60 28 28 22 | l--gh-auth-common-headers...`((" |
| 29820 | 65 64 69 74 6f 72 2d 70 6c 75 67 69 6e 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 67 70 74 65 6c 2f | editor-plugin-version"..."gptel/ |
| 29840 | 2a 22 29 0a 20 20 20 20 28 22 65 64 69 74 6f 72 2d 76 65 72 73 69 6f 6e 22 20 2e 20 2c 28 63 6f | *").....("editor-version"...,(co |
| 29860 | 6e 63 61 74 20 22 65 6d 61 63 73 2f 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 29 0a | ncat."emacs/".emacs-version)))). |
| 29880 | 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 68 2d 63 6c 69 65 6e 74 2d 69 64 20 22 | .(defconst.gptel--gh-client-id." |
| 298a0 | 49 76 31 2e 62 35 30 37 61 30 38 63 38 37 65 63 66 65 39 38 22 29 0a 0a 3b 3b 20 68 74 74 70 73 | Iv1.b507a08c87ecfe98")..;;.https |
| 298c0 | 3a 2f 2f 65 6e 2e 77 69 6b 69 70 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 55 6e 69 76 65 72 73 | ://en.wikipedia.org/wiki/Univers |
| 298e0 | 61 6c 6c 79 5f 75 6e 69 71 75 65 5f 69 64 65 6e 74 69 66 69 65 72 23 56 65 72 73 69 6f 6e 5f 34 | ally_unique_identifier#Version_4 |
| 29900 | 5f 28 72 61 6e 64 6f 6d 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 75 75 69 64 20 | _(random).(defun.gptel--gh-uuid. |
| 29920 | 28 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 55 55 49 44 20 76 34 2d 31 2e 22 0a 20 20 28 | ()..."Generate.a.UUID.v4-1."...( |
| 29940 | 66 6f 72 6d 61 74 20 22 25 30 34 78 25 30 34 78 2d 25 30 34 78 2d 34 25 30 33 78 2d 38 25 30 33 | format."%04x%04x-%04x-4%03x-8%03 |
| 29960 | 78 2d 25 30 34 78 25 30 34 78 25 30 34 78 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f | x-%04x%04x%04x"...........(rando |
| 29980 | 6d 20 23 78 31 30 30 30 30 29 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 0a 20 20 20 20 | m.#x10000).(random.#x10000)..... |
| 299a0 | 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 | ......(random.#x10000).......... |
| 299c0 | 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 | .(random.#x1000)...........(rand |
| 299e0 | 6f 6d 20 23 78 31 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 31 | om.#x1000)...........(random.#x1 |
| 29a00 | 30 30 30 30 29 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 20 28 72 61 6e 64 6f 6d 20 23 | 0000).(random.#x10000).(random.# |
| 29a20 | 78 31 30 30 30 30 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 6d 61 63 68 | x10000)))..(defun.gptel--gh-mach |
| 29a40 | 69 6e 65 2d 69 64 20 28 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 6d 61 63 68 69 6e 65 20 | ine-id.()..."Generate.a.machine. |
| 29a60 | 49 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 65 78 2d 63 68 61 72 73 20 22 30 31 32 33 34 35 36 | ID."...(let.((hex-chars."0123456 |
| 29a80 | 37 38 39 61 62 63 64 65 66 22 29 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 36 35 29 0a | 789abcdef").........(length.65). |
| 29aa0 | 20 20 20 20 20 20 20 20 68 65 78 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 6c 65 6e | ........hex).....(dotimes.(_.len |
| 29ac0 | 67 74 68 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 78 20 28 6e 63 6f 6e 63 20 68 65 78 20 | gth).......(setq.hex.(nconc.hex. |
| 29ae0 | 28 6c 69 73 74 20 28 61 72 65 66 20 68 65 78 2d 63 68 61 72 73 20 28 72 61 6e 64 6f 6d 20 31 36 | (list.(aref.hex-chars.(random.16 |
| 29b00 | 29 29 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 73 74 72 69 6e 67 20 68 65 78 29 29 | )))))).....(apply.#'string.hex)) |
| 29b20 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 72 65 73 74 6f 72 65 20 28 66 69 6c | )..(defun.gptel--gh-restore.(fil |
| 29b40 | 65 29 0a 20 20 22 52 65 73 74 6f 72 65 20 73 61 76 65 64 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 | e)..."Restore.saved.object.from. |
| 29b60 | 46 49 4c 45 2e 22 0a 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 | FILE."...(when.(file-exists-p.fi |
| 29b80 | 6c 65 29 0a 20 20 20 20 3b 3b 20 57 65 20 73 65 74 20 74 68 65 20 63 6f 64 69 6e 67 20 73 79 73 | le).....;;.We.set.the.coding.sys |
| 29ba0 | 74 65 6d 20 74 6f 20 60 75 74 66 2d 38 2d 61 75 74 6f 2d 64 6f 73 27 20 77 68 65 6e 20 72 65 61 | tem.to.`utf-8-auto-dos'.when.rea |
| 29bc0 | 64 69 6e 67 20 73 6f 20 74 68 61 74 0a 20 20 20 20 3b 3b 20 66 69 6c 65 73 20 77 69 74 68 20 43 | ding.so.that.....;;.files.with.C |
| 29be0 | 52 20 45 4f 4c 20 63 61 6e 20 73 74 69 6c 6c 20 62 65 20 72 65 61 64 20 70 72 6f 70 65 72 6c 79 | R.EOL.can.still.be.read.properly |
| 29c00 | 0a 20 20 20 20 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 | .....(let.((coding-system-for-re |
| 29c20 | 61 64 20 27 75 74 66 2d 38 2d 61 75 74 6f 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 | ad.'utf-8-auto-dos)).......(with |
| 29c40 | 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 | -temp-buffer.........(set-buffer |
| 29c60 | 2d 6d 75 6c 74 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d | -multibyte.nil).........(insert- |
| 29c80 | 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 29 0a 20 20 | file-contents-literally.file)... |
| 29ca0 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 | ......(goto-char.(point-min))... |
| 29cc0 | 20 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 | ......(read.(current-buffer))))) |
| 29ce0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 73 61 76 65 20 28 66 69 6c 65 20 6f | )..(defun.gptel--gh-save.(file.o |
| 29d00 | 62 6a 29 0a 20 20 22 53 61 76 65 20 4f 42 4a 20 74 6f 20 46 49 4c 45 2e 22 0a 20 20 28 6c 65 74 | bj)..."Save.OBJ.to.FILE."...(let |
| 29d20 | 20 28 28 70 72 69 6e 74 2d 6c 65 6e 67 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 70 72 | .((print-length.nil).........(pr |
| 29d40 | 69 6e 74 2d 6c 65 76 65 6c 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 63 6f 64 69 6e 67 2d 73 | int-level.nil).........(coding-s |
| 29d60 | 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 75 74 66 2d 38 2d 75 6e 69 78 29 29 0a 20 20 | ystem-for-write.'utf-8-unix))... |
| 29d80 | 20 20 28 6d 61 6b 65 2d 64 69 72 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 | ..(make-directory.(file-name-dir |
| 29da0 | 65 63 74 6f 72 79 20 66 69 6c 65 29 20 74 29 0a 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f | ectory.file).t).....(write-regio |
| 29dc0 | 6e 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 6f 62 6a 29 20 6e 69 6c 20 66 69 6c 65 | n.(prin1-to-string.obj).nil.file |
| 29de0 | 20 6e 69 6c 20 3a 73 69 6c 65 6e 74 29 0a 20 20 20 20 6f 62 6a 29 29 0a 0a 28 64 65 66 75 6e 20 | .nil.:silent).....obj))..(defun. |
| 29e00 | 67 70 74 65 6c 2d 2d 67 68 2d 6c 6f 67 69 6e 28 29 0a 20 20 22 4d 61 6e 61 67 65 20 67 69 74 68 | gptel--gh-login()..."Manage.gith |
| 29e20 | 75 62 20 6c 6f 67 69 6e 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 28 6d 61 70 20 3a | ub.login."...(pcase-let.(((map.: |
| 29e40 | 64 65 76 69 63 65 5f 63 6f 64 65 20 3a 75 73 65 72 5f 63 6f 64 65 20 3a 76 65 72 69 66 69 63 61 | device_code.:user_code.:verifica |
| 29e60 | 74 69 6f 6e 5f 75 72 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | tion_uri)................(gptel- |
| 29e80 | 2d 75 72 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 | -url-retrieve................."h |
| 29ea0 | 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 6f 67 69 6e 2f 64 65 76 69 63 65 2f 63 | ttps://github.com/login/device/c |
| 29ec0 | 6f 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 74 68 6f 64 20 27 70 6f | ode".................:method.'po |
| 29ee0 | 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 73 20 67 70 74 65 | st.................:headers.gpte |
| 29f00 | 6c 2d 2d 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 | l--gh-auth-common-headers....... |
| 29f20 | 20 20 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 60 28 20 3a 63 6c 69 65 6e 74 5f 69 64 20 2c 67 | ..........:data.`(.:client_id.,g |
| 29f40 | 70 74 65 6c 2d 2d 67 68 2d 63 6c 69 65 6e 74 2d 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--gh-client-id.............. |
| 29f60 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 63 6f 70 65 20 22 72 65 61 64 3a 75 73 65 72 22 29 29 | ............:scope."read:user")) |
| 29f80 | 29 29 0a 20 20 20 20 28 67 75 69 2d 73 65 74 2d 73 65 6c 65 63 74 69 6f 6e 20 27 43 4c 49 50 42 | )).....(gui-set-selection.'CLIPB |
| 29fa0 | 4f 41 52 44 20 75 73 65 72 5f 63 6f 64 65 29 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d | OARD.user_code).....(read-from-m |
| 29fc0 | 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f 75 72 20 6f 6e 65 | inibuffer......(format."Your.one |
| 29fe0 | 2d 74 69 6d 65 20 63 6f 64 65 20 25 73 20 69 73 20 63 6f 70 69 65 64 2e 20 5c 0a 50 72 65 73 73 | -time.code.%s.is.copied..\.Press |
| 2a000 | 20 45 4e 54 45 52 20 74 6f 20 6f 70 65 6e 20 47 69 74 48 75 62 20 69 6e 20 79 6f 75 72 20 62 72 | .ENTER.to.open.GitHub.in.your.br |
| 2a020 | 6f 77 73 65 72 2e 20 5c 0a 49 66 20 79 6f 75 72 20 62 72 6f 77 73 65 72 20 64 6f 65 73 20 6e 6f | owser..\.If.your.browser.does.no |
| 2a040 | 74 20 6f 70 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 62 72 6f 77 73 65 20 74 6f 20 | t.open.automatically,.browse.to. |
| 2a060 | 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 5f 63 6f 64 65 20 76 65 72 69 | %s."..............user_code.veri |
| 2a080 | 66 69 63 61 74 69 6f 6e 5f 75 72 69 29 29 0a 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 76 | fication_uri)).....(browse-url.v |
| 2a0a0 | 65 72 69 66 69 63 61 74 69 6f 6e 5f 75 72 69 29 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d | erification_uri).....(read-from- |
| 2a0c0 | 6d 69 6e 69 62 75 66 66 65 72 20 22 50 72 65 73 73 20 45 4e 54 45 52 20 61 66 74 65 72 20 61 75 | minibuffer."Press.ENTER.after.au |
| 2a0e0 | 74 68 6f 72 69 7a 69 6e 67 2e 22 29 0a 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 | thorizing.").....(thread-last... |
| 2a100 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 | ....(plist-get........(gptel--ur |
| 2a120 | 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 20 20 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 | l-retrieve........."https://gith |
| 2a140 | 75 62 2e 63 6f 6d 2f 6c 6f 67 69 6e 2f 6f 61 75 74 68 2f 61 63 63 65 73 73 5f 74 6f 6b 65 6e 22 | ub.com/login/oauth/access_token" |
| 2a160 | 0a 20 20 20 20 20 20 20 20 3a 6d 65 74 68 6f 64 20 27 70 6f 73 74 0a 20 20 20 20 20 20 20 20 3a | .........:method.'post.........: |
| 2a180 | 68 65 61 64 65 72 73 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 | headers.gptel--gh-auth-common-he |
| 2a1a0 | 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 60 28 20 3a 63 6c 69 65 6e 74 5f 69 | aders.........:data.`(.:client_i |
| 2a1c0 | 64 20 2c 67 70 74 65 6c 2d 2d 67 68 2d 63 6c 69 65 6e 74 2d 69 64 0a 20 20 20 20 20 20 20 20 20 | d.,gptel--gh-client-id.......... |
| 2a1e0 | 20 20 20 20 20 20 20 20 3a 64 65 76 69 63 65 5f 63 6f 64 65 20 2c 64 65 76 69 63 65 5f 63 6f 64 | ........:device_code.,device_cod |
| 2a200 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 67 72 61 6e 74 5f 74 79 70 65 20 22 | e..................:grant_type." |
| 2a220 | 75 72 6e 3a 69 65 74 66 3a 70 61 72 61 6d 73 3a 6f 61 75 74 68 3a 67 72 61 6e 74 2d 74 79 70 65 | urn:ietf:params:oauth:grant-type |
| 2a240 | 3a 64 65 76 69 63 65 5f 63 6f 64 65 22 29 29 0a 20 20 20 20 20 20 20 3a 61 63 63 65 73 73 5f 74 | :device_code"))........:access_t |
| 2a260 | 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 73 61 76 65 20 67 70 74 65 | oken).......(gptel--gh-save.gpte |
| 2a280 | 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 73 | l-gh-github-token-file).......(s |
| 2a2a0 | 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 | etf.(gptel--gh-github-token.gpte |
| 2a2c0 | 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 | l-backend)))))..(defun.gptel--gh |
| 2a2e0 | 2d 72 65 6e 65 77 2d 74 6f 6b 65 6e 20 28 29 0a 20 20 22 52 65 6e 65 77 20 73 65 73 73 69 6f 6e | -renew-token.()..."Renew.session |
| 2a300 | 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 | .token."...(let.((token......... |
| 2a320 | 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 20 20 20 20 20 | .(gptel--url-retrieve........... |
| 2a340 | 20 20 20 22 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 70 69 6c | ..."https://api.github.com/copil |
| 2a360 | 6f 74 5f 69 6e 74 65 72 6e 61 6c 2f 76 32 2f 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 | ot_internal/v2/token"........... |
| 2a380 | 20 3a 6d 65 74 68 6f 64 20 27 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 | .:method.'get............:header |
| 2a3a0 | 73 20 60 28 28 22 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 | s.`(("authorization"............ |
| 2a3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 2c 28 66 6f 72 6d 61 74 20 22 74 6f 6b 65 6e 20 25 73 | ..............,(format."token.%s |
| 2a3e0 | 22 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d | ".(gptel--gh-github-token.gptel- |
| 2a400 | 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backend)))...................... |
| 2a420 | 20 2c 40 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 | .,@gptel--gh-auth-common-headers |
| 2a440 | 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6b | )))).....(if.(not.(plist-get.tok |
| 2a460 | 65 6e 20 3a 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 | en.:token)).........(progn...... |
| 2a480 | 20 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b | .....(setf.(gptel--gh-github-tok |
| 2a4a0 | 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 | en.gptel-backend).nil).......... |
| 2a4c0 | 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 45 72 72 6f 72 3a 20 59 6f 75 20 6d 69 67 68 74 20 6e | .(user-error."Error:.You.might.n |
| 2a4e0 | 6f 74 20 68 61 76 65 20 61 63 63 65 73 73 20 74 6f 20 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 | ot.have.access.to.Github.Copilot |
| 2a500 | 20 43 68 61 74 21 22 29 29 0a 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 20 | .Chat!")).......(thread-last.... |
| 2a520 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 73 61 76 65 20 67 70 74 65 6c 2d 67 68 2d 74 6f | .....(gptel--gh-save.gptel-gh-to |
| 2a540 | 6b 65 6e 2d 66 69 6c 65 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 67 | ken-file.token).........(setf.(g |
| 2a560 | 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 | ptel--gh-token.gptel-backend)))) |
| 2a580 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 20 28 29 0a 20 20 22 | ))..(defun.gptel--gh-auth.()..." |
| 2a5a0 | 41 75 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 68 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 | Authenticate.with.GitHub.Copilot |
| 2a5c0 | 20 41 50 49 2e 0a 0a 57 65 20 66 69 72 73 74 20 6e 65 65 64 20 67 69 74 68 75 62 20 61 75 74 68 | .API...We.first.need.github.auth |
| 2a5e0 | 6f 72 69 7a 61 74 69 6f 6e 20 28 67 69 74 68 75 62 20 74 6f 6b 65 6e 29 2e 0a 54 68 65 6e 20 77 | orization.(github.token)..Then.w |
| 2a600 | 65 20 6e 65 65 64 20 61 20 73 65 73 73 69 6f 6e 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 75 6e 6c 65 | e.need.a.session.token."...(unle |
| 2a620 | 73 73 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c | ss.(gptel--gh-github-token.gptel |
| 2a640 | 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 67 70 74 65 | -backend).....(let.((token.(gpte |
| 2a660 | 6c 2d 2d 67 68 2d 72 65 73 74 6f 72 65 20 67 70 74 65 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f | l--gh-restore.gptel-gh-github-to |
| 2a680 | 6b 65 6e 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 74 6f 6b 65 6e 0a 20 20 20 20 | ken-file))).......(if.token..... |
| 2a6a0 | 20 20 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f | ......(setf.(gptel--gh-github-to |
| 2a6c0 | 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 | ken.gptel-backend).token)....... |
| 2a6e0 | 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 6c 6f 67 69 6e 29 29 29 29 0a 0a 20 20 28 77 68 65 6e 20 | ..(gptel--gh-login))))....(when. |
| 2a700 | 28 6e 75 6c 6c 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 | (null.(gptel--gh-token.gptel-bac |
| 2a720 | 6b 65 6e 64 29 29 0a 20 20 20 20 3b 3b 20 74 72 79 20 74 6f 20 6c 6f 61 64 20 74 6f 6b 65 6e 20 | kend)).....;;.try.to.load.token. |
| 2a740 | 66 72 6f 6d 20 60 67 70 74 65 6c 2d 67 68 2d 74 6f 6b 65 6e 2d 66 69 6c 65 27 0a 20 20 20 20 28 | from.`gptel-gh-token-file'.....( |
| 2a760 | 73 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b | setf.(gptel--gh-token.gptel-back |
| 2a780 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 72 65 73 74 6f 72 | end)...........(gptel--gh-restor |
| 2a7a0 | 65 20 67 70 74 65 6c 2d 67 68 2d 74 6f 6b 65 6e 2d 66 69 6c 65 29 29 29 0a 0a 20 20 28 70 63 61 | e.gptel-gh-token-file)))....(pca |
| 2a7c0 | 73 65 2d 6c 65 74 20 28 28 28 6d 61 70 20 3a 74 6f 6b 65 6e 20 3a 65 78 70 69 72 65 73 5f 61 74 | se-let.(((map.:token.:expires_at |
| 2a7e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 | )................(gptel--gh-toke |
| 2a800 | 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 | n.gptel-backend))).....(when.(or |
| 2a820 | 20 28 6e 75 6c 6c 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 | .(null.token)...............(and |
| 2a840 | 20 65 78 70 69 72 65 73 5f 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .expires_at....................( |
| 2a860 | 3e 20 28 72 6f 75 6e 64 20 28 66 6c 6f 61 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 | >.(round.(float-time.(current-ti |
| 2a880 | 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 69 | me))).......................expi |
| 2a8a0 | 72 65 73 5f 61 74 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 72 65 6e 65 77 | res_at))).......(gptel--gh-renew |
| 2a8c0 | 2d 74 6f 6b 65 6e 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 | -token))))..;;;###autoload.(cl-d |
| 2a8e0 | 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 0a 20 20 20 20 28 | efun.gptel-make-gh-copilot.....( |
| 2a900 | 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 | name.&key.curl-args.request-para |
| 2a920 | 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 0a | ms...........(header.(lambda.(). |
| 2a940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 61 | ....................(gptel--gh-a |
| 2a960 | 75 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 6f 70 65 | uth).....................`(("ope |
| 2a980 | 6e 61 69 2d 69 6e 74 65 6e 74 22 20 2e 20 22 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2d 70 61 6e 65 | nai-intent"..."conversation-pane |
| 2a9a0 | 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 75 74 68 | l").......................("auth |
| 2a9c0 | 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 0a | orization"...,(concat."Bearer.". |
| 2a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2aa00 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 2d 67 68 | ...........(plist-get.(gptel--gh |
| 2aa20 | 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 3a 74 6f 6b 65 6e 29 29 29 0a | -token.gptel-backend).:token))). |
| 2aa40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 78 2d 72 65 71 75 65 73 | ......................("x-reques |
| 2aa60 | 74 2d 69 64 22 20 2e 20 2c 28 67 70 74 65 6c 2d 2d 67 68 2d 75 75 69 64 29 29 0a 20 20 20 20 20 | t-id"...,(gptel--gh-uuid))...... |
| 2aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 76 73 63 6f 64 65 2d 73 65 73 73 69 6f | .................("vscode-sessio |
| 2aaa0 | 6e 69 64 22 20 2e 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 2d 67 68 2d 73 65 73 73 69 6f 6e 69 64 | nid"...,(or.(gptel--gh-sessionid |
| 2aac0 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .gptel-backend).""))............ |
| 2aae0 | 20 20 20 20 20 20 20 20 20 20 20 28 22 76 73 63 6f 64 65 2d 6d 61 63 68 69 6e 65 69 64 22 20 2e | ...........("vscode-machineid".. |
| 2ab00 | 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 2d 67 68 2d 6d 61 63 68 69 6e 65 69 64 20 67 70 74 65 6c | .,(or.(gptel--gh-machineid.gptel |
| 2ab20 | 2d 62 61 63 6b 65 6e 64 29 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -backend)."")).................. |
| 2ab40 | 20 20 20 20 20 2c 40 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 | .....,@(when.(and.gptel-track-me |
| 2ab60 | 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | dia............................. |
| 2ab80 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 | .......(gptel--model-capable-p.' |
| 2aba0 | 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | media))......................... |
| 2abc0 | 20 20 60 28 28 22 63 6f 70 69 6c 6f 74 2d 76 69 73 69 6f 6e 2d 72 65 71 75 65 73 74 22 20 2e 20 | ..`(("copilot-vision-request"... |
| 2abe0 | 22 74 72 75 65 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "true")))....................... |
| 2ac00 | 28 22 63 6f 70 69 6c 6f 74 2d 69 6e 74 65 67 72 61 74 69 6f 6e 2d 69 64 22 20 2e 20 22 76 73 63 | ("copilot-integration-id"..."vsc |
| 2ac20 | 6f 64 65 2d 63 68 61 74 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 | ode-chat"))))...........(host."a |
| 2ac40 | 70 69 2e 67 69 74 68 75 62 63 6f 70 69 6c 6f 74 2e 63 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 20 | pi.githubcopilot.com").......... |
| 2ac60 | 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 | .(protocol."https")...........(e |
| 2ac80 | 6e 64 70 6f 69 6e 74 20 22 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 0a 20 20 20 | ndpoint."/chat/completions").... |
| 2aca0 | 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 | .......(stream.t)...........(mod |
| 2acc0 | 65 6c 73 20 67 70 74 65 6c 2d 2d 67 68 2d 6d 6f 64 65 6c 73 29 29 0a 20 20 22 52 65 67 69 73 74 | els.gptel--gh-models))..."Regist |
| 2ace0 | 65 72 20 61 20 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 20 63 68 61 74 20 62 61 63 6b 65 6e 64 | er.a.Github.Copilot.chat.backend |
| 2ad00 | 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 | .for.gptel.with.NAME...Keyword.a |
| 2ad20 | 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 | rguments:..CURL-ARGS.(optional). |
| 2ad40 | 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 | is.a.list.of.additional.Curl.arg |
| 2ad60 | 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 | uments...HOST.(optional).is.the. |
| 2ad80 | 41 50 49 20 68 6f 73 74 2c 20 74 79 70 69 63 61 6c 6c 79 20 5c 22 61 70 69 2e 67 69 74 68 75 62 | API.host,.typically.\"api.github |
| 2ada0 | 63 6f 70 69 6c 6f 74 2e 63 6f 6d 5c 22 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 | copilot.com\"...MODELS.is.a.list |
| 2adc0 | 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 | .of.available.model.names,.as.sy |
| 2ade0 | 6d 62 6f 6c 73 2e 0a 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 | mbols..Additionally,.you.can.spe |
| 2ae00 | 63 69 66 79 20 73 75 70 70 6f 72 74 65 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 | cify.supported.LLM.capabilities. |
| 2ae20 | 6c 69 6b 65 0a 76 69 73 69 6f 6e 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e | like.vision.or.tool-use.by.appen |
| 2ae40 | 64 69 6e 67 20 61 20 70 6c 69 73 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d | ding.a.plist.to.the.model.with.m |
| 2ae60 | 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 | ore.information,.in.the.form...( |
| 2ae80 | 6d 6f 64 65 6c 2d 6e 61 6d 65 20 2e 20 70 6c 69 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 | model-name...plist)..For.a.list. |
| 2aea0 | 6f 66 20 63 75 72 72 65 6e 74 6c 79 20 72 65 63 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 | of.currently.recognized.plist.ke |
| 2aec0 | 79 73 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 27 2e 20 | ys,.see.`gptel--openai-models'.. |
| 2aee0 | 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 69 66 69 63 61 | .An.example.of.a.model.specifica |
| 2af00 | 74 69 6f 6e 0a 69 6e 63 6c 75 64 69 6e 67 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 | tion.including.both.kinds.of.spe |
| 2af20 | 63 73 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c 5c 3d 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 | cs:..:models.\\='(gpt-3.5-turbo. |
| 2af40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d 70 6c 65 20 | ........................;Simple. |
| 2af60 | 73 70 65 63 73 0a 20 20 67 70 74 2d 34 2d 74 75 72 62 6f 0a 20 20 28 67 70 74 2d 34 6f 2d 6d 69 | specs...gpt-4-turbo...(gpt-4o-mi |
| 2af80 | 6e 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c | ni..........................;Ful |
| 2afa0 | 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 5c 22 41 66 66 6f | l.spec....:description....\"Affo |
| 2afc0 | 72 64 61 62 6c 65 20 61 6e 64 20 69 6e 74 65 6c 6c 69 67 65 6e 74 20 73 6d 61 6c 6c 20 6d 6f 64 | rdable.and.intelligent.small.mod |
| 2afe0 | 65 6c 20 66 6f 72 20 6c 69 67 68 74 77 65 69 67 68 74 20 74 61 73 6b 73 5c 22 0a 20 20 20 3a 63 | el.for.lightweight.tasks\"....:c |
| 2b000 | 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 20 6a 73 6f 6e 20 75 72 6c | apabilities.(media.tool.json.url |
| 2b020 | 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 0a 20 20 20 28 5c 22 69 6d 61 67 65 2f 6a 70 65 | )....:mime-types....(\"image/jpe |
| 2b040 | 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 20 5c 22 69 6d 61 67 65 2f 67 69 66 5c 22 20 | g\".\"image/png\".\"image/gif\". |
| 2b060 | 5c 22 69 6d 61 67 65 2f 77 65 62 70 5c 22 29 29 29 0a 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 61 | \"image/webp\")))..Defaults.to.a |
| 2b080 | 20 6c 69 73 74 20 6f 66 20 6d 6f 64 65 6c 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 47 69 74 | .list.of.models.supported.by.Git |
| 2b0a0 | 48 75 62 20 43 6f 70 69 6c 6f 74 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 | Hub.Copilot...STREAM.is.a.boolea |
| 2b0c0 | 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c | n.to.toggle.streaming.responses, |
| 2b0e0 | 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f | .defaults.to.false...PROTOCOL.(o |
| 2b100 | 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c | ptional).specifies.the.protocol, |
| 2b120 | 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 | .https.by.default...ENDPOINT.(op |
| 2b140 | 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 | tional).is.the.API.endpoint.for. |
| 2b160 | 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 63 68 61 74 | completions,.defaults.to.\"/chat |
| 2b180 | 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 | /completions\"...HEADER.(optiona |
| 2b1a0 | 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 | l).is.for.additional.headers.to. |
| 2b1c0 | 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 | send.with.each.request...It.shou |
| 2b1e0 | 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 | ld.be.an.alist.or.a.function.tha |
| 2b200 | 74 20 72 65 74 75 72 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 | t.returns.an.alist,.like:..((\"C |
| 2b220 | 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 | ontent-Type\"...\"application/js |
| 2b240 | 6f 6e 5c 22 29 29 0a 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 68 65 61 64 65 72 73 20 72 65 71 75 | on\"))..Defaults.to.headers.requ |
| 2b260 | 69 72 65 64 20 62 79 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 2e 0a 0a 52 45 51 55 45 53 54 | ired.by.GitHub.Copilot...REQUEST |
| 2b280 | 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 | -PARAMS.(optional).is.a.plist.of |
| 2b2a0 | 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 | .additional.HTTP.request.paramet |
| 2b2c0 | 65 72 73 20 28 61 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 | ers.(as.plist.keys).and.values.s |
| 2b2e0 | 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 | upported.by.the.API...Use.these. |
| 2b300 | 74 6f 20 73 65 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 | to.set.parameters.that.gptel.doe |
| 2b320 | 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 22 | s.not.provide.user.options.for." |
| 2b340 | 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 | ...(declare.(indent.1))...(let.( |
| 2b360 | 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 68 0a 20 20 20 20 20 20 20 | (backend.(gptel--make-gh........ |
| 2b380 | 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 | ...........:name.name........... |
| 2b3a0 | 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:host.host.............. |
| 2b3c0 | 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....:header.header............. |
| 2b3e0 | 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f | ......:models.(gptel--process-mo |
| 2b400 | 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | dels.models)...................: |
| 2b420 | 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol.protocol............... |
| 2b440 | 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 | ....:endpoint.endpoint.......... |
| 2b460 | 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 | .........:stream.stream......... |
| 2b480 | 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 | ..........:request-params.reques |
| 2b4a0 | 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c | t-params...................:curl |
| 2b4c0 | 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -args.curl-args................. |
| 2b4e0 | 20 20 3a 75 72 6c 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f | ..:url.(concat.protocol."://".ho |
| 2b500 | 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | st.endpoint)...................: |
| 2b520 | 6d 61 63 68 69 6e 65 69 64 20 28 67 70 74 65 6c 2d 2d 67 68 2d 6d 61 63 68 69 6e 65 2d 69 64 29 | machineid.(gptel--gh-machine-id) |
| 2b540 | 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 | ))).....(setf.(alist-get.name.gp |
| 2b560 | 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 | tel--known-backends.nil.nil.#'eq |
| 2b580 | 75 61 6c 29 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 0a 28 70 72 | ual).backend).....backend))..(pr |
| 2b5a0 | 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 67 68 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 67 68 2e 65 6c | ovide.'gptel-gh).;;;.gptel-gh.el |
| 2b5c0 | 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a | .ends.here..;;.Local.Variables:. |
| 2b5e0 | 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 | ;;.byte-compile-warnings:.(not.d |
| 2b600 | 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | ocstrings).;;.End:.............. |
| 2b620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b800 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 | gptel-0.9.8.5/gptel-integrations |
| 2b820 | 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .el............................. |
| 2b840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 2b880 | 30 30 33 31 31 30 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 30 35 00 20 30 00 00 00 | 0031104.00000000000.015605..0... |
| 2b8a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b8c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b8e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b900 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 2b920 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 2b940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2b9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ba00 | 3b 3b 3b 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 20 2d 2d 2d 20 49 6e 74 65 67 | ;;;.gptel-transient.el.---.Integ |
| 2ba20 | 72 61 74 69 6f 6e 73 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 | rations.for.gptel..-*-.lexical-b |
| 2ba40 | 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 | inding:.t;.-*-..;;.Copyright.(C) |
| 2ba60 | 20 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 | .2025..Karthik.Chikmagalur..;;.A |
| 2ba80 | 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 | uthor:.Karthik.Chikmagalur.<kart |
| 2baa0 | 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 | hikchikmagalur@gmail.com>.;;.Key |
| 2bac0 | 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 | words:.convenience..;;.SPDX-Lice |
| 2bae0 | 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 | nse-Identifier:.GPL-3.0-or-later |
| 2bb00 | 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 | ..;;.This.program.is.free.softwa |
| 2bb20 | 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f | re;.you.can.redistribute.it.and/ |
| 2bb40 | 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 | or.modify.;;.it.under.the.terms. |
| 2bb60 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 2bb80 | 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f | e.as.published.by.;;.the.Free.So |
| 2bba0 | 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f | ftware.Foundation,.either.versio |
| 2bbc0 | 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f | n.3.of.the.License,.or.;;.(at.yo |
| 2bbe0 | 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b | ur.option).any.later.version...; |
| 2bc00 | 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ;.This.program.is.distributed.in |
| 2bc20 | 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c | .the.hope.that.it.will.be.useful |
| 2bc40 | 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 | ,.;;.but.WITHOUT.ANY.WARRANTY;.w |
| 2bc60 | 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 | ithout.even.the.implied.warranty |
| 2bc80 | 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 | .of.;;.MERCHANTABILITY.or.FITNES |
| 2bca0 | 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 | S.FOR.A.PARTICULAR.PURPOSE...See |
| 2bcc0 | 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .the.;;.GNU.General.Public.Licen |
| 2bce0 | 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f | se.for.more.details...;;.You.sho |
| 2bd00 | 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 | uld.have.received.a.copy.of.the. |
| 2bd20 | 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c | GNU.General.Public.License.;;.al |
| 2bd40 | 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 | ong.with.this.program...If.not,. |
| 2bd60 | 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 | see.<https://www.gnu.org/license |
| 2bd80 | 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 49 6e 74 65 67 72 | s/>...;;;.Commentary:..;;.Integr |
| 2bda0 | 61 74 69 6f 6e 73 20 77 69 74 68 20 72 65 6c 61 74 65 64 20 70 61 63 6b 61 67 65 73 20 66 6f 72 | ations.with.related.packages.for |
| 2bdc0 | 20 67 70 74 65 6c 2e 20 20 54 6f 20 75 73 65 20 74 68 65 73 65 2c 20 72 75 6e 0a 3b 3b 0a 3b 3b | .gptel...To.use.these,.run.;;.;; |
| 2bde0 | 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 29 0a 3b | .(require.'gptel-integrations).; |
| 2be00 | 3b 0a 3b 3b 20 46 6f 72 20 4d 43 50 20 69 6e 74 65 67 72 61 74 69 6f 6e 3a 0a 3b 3b 20 2d 20 52 | ;.;;.For.MCP.integration:.;;.-.R |
| 2be20 | 75 6e 20 4d 2d 78 20 60 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 27 20 61 6e 64 20 4d | un.M-x.`gptel-mcp-connect'.and.M |
| 2be40 | 2d 78 20 60 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 27 2c 20 4f 52 0a 3b 3b | -x.`gptel-mcp-disconnect',.OR.;; |
| 2be60 | 20 2d 20 55 73 65 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 73 20 6d 65 6e 75 2c 20 4d 2d 78 20 60 | .-.Use.gptel's.tools.menu,.M-x.` |
| 2be80 | 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2c 20 4f 52 0a 3b 3b 20 2d 20 41 63 63 65 73 73 20 74 6f 6f | gptel-tools',.OR.;;.-.Access.too |
| 2bea0 | 6c 73 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a | ls.from.`gptel-menu'..;;;.Code:. |
| 2bec0 | 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 | (require.'gptel).(require.'cl-li |
| 2bee0 | 62 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 | b).(eval-when-compile.(require.' |
| 2bf00 | 74 72 61 6e 73 69 65 6e 74 29 29 0a 0a 3b 3b 3b 3b 20 4d 43 50 20 69 6e 74 65 67 72 61 74 69 6f | transient))..;;;;.MCP.integratio |
| 2bf20 | 6e 20 2d 20 72 65 71 75 69 72 65 73 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 65 0a 28 64 65 | n.-.requires.the.mcp.package.(de |
| 2bf40 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 2d 67 65 74 2d 61 6c 6c 2d 74 | clare-function.mcp-hub-get-all-t |
| 2bf60 | 6f 6f 6c 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ool."mcp-hub").(declare-function |
| 2bf80 | 20 6d 63 70 2d 68 75 62 2d 67 65 74 2d 73 65 72 76 65 72 73 20 22 6d 63 70 2d 68 75 62 22 29 0a | .mcp-hub-get-servers."mcp-hub"). |
| 2bfa0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 2d 73 74 61 72 74 2d | (declare-function.mcp-hub-start- |
| 2bfc0 | 61 6c 6c 2d 73 65 72 76 65 72 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 | all-server."mcp-hub").(declare-f |
| 2bfe0 | 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 22 6d 63 70 22 29 0a 28 | unction.mcp-stop-server."mcp").( |
| 2c000 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 20 22 6d 63 70 2d 68 75 | declare-function.mcp-hub."mcp-hu |
| 2c020 | 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 2d 73 74 61 74 75 | b").(declare-function.mcp--statu |
| 2c040 | 73 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d | s."mcp-hub").(declare-function.m |
| 2c060 | 63 70 2d 2d 74 6f 6f 6c 73 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 | cp--tools."mcp-hub").(declare-fu |
| 2c080 | 6e 63 74 69 6f 6e 20 6d 63 70 2d 6d 61 6b 65 2d 74 65 78 74 2d 74 6f 6f 6c 20 22 6d 63 70 2d 68 | nction.mcp-make-text-tool."mcp-h |
| 2c0a0 | 75 62 22 29 0a 28 64 65 66 76 61 72 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 0a 28 64 | ub").(defvar.mcp-hub-servers).(d |
| 2c0c0 | 65 66 76 61 72 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 0a 0a 28 | efvar.mcp-server-connections)..( |
| 2c0e0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 20 28 26 6f 70 74 69 6f 6e | defun.gptel-mcp-connect.(&option |
| 2c100 | 61 6c 20 73 65 72 76 65 72 73 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 20 69 6e 74 65 72 | al.servers.server-callback.inter |
| 2c120 | 61 63 74 69 76 65 29 0a 20 20 22 41 64 64 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 | active)..."Add.gptel.tools.from. |
| 2c140 | 4d 43 50 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 | MCP.servers.using.the.mcp.packag |
| 2c160 | 65 2e 0a 0a 4d 43 50 20 73 65 72 76 65 72 73 20 61 72 65 20 73 74 61 72 74 65 64 20 69 66 20 72 | e...MCP.servers.are.started.if.r |
| 2c180 | 65 71 75 69 72 65 64 2e 20 20 53 45 52 56 45 52 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 | equired...SERVERS.is.a.list.of.s |
| 2c1a0 | 65 72 76 65 72 0a 6e 61 6d 65 73 20 28 73 74 72 69 6e 67 73 29 20 74 6f 20 63 6f 6e 6e 65 63 74 | erver.names.(strings).to.connect |
| 2c1c0 | 20 74 6f 2e 20 20 49 66 20 6e 69 6c 2c 20 61 6c 6c 20 6b 6e 6f 77 6e 20 73 65 72 76 65 72 73 20 | .to...If.nil,.all.known.servers. |
| 2c1e0 | 61 72 65 0a 63 6f 6e 73 69 64 65 72 65 64 2e 0a 0a 49 66 20 49 4e 54 45 52 41 43 54 49 56 45 20 | are.considered...If.INTERACTIVE. |
| 2c200 | 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 6f 72 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 | is.non-nil.(or.called.interactiv |
| 2c220 | 65 6c 79 29 2c 20 67 75 69 64 65 20 74 68 65 20 75 73 65 72 0a 74 68 72 6f 75 67 68 20 73 65 74 | ely),.guide.the.user.through.set |
| 2c240 | 74 69 6e 67 20 75 70 20 6d 63 70 2c 20 61 6e 64 20 71 75 65 72 79 20 66 6f 72 20 73 65 72 76 65 | ting.up.mcp,.and.query.for.serve |
| 2c260 | 72 73 20 74 6f 20 72 65 74 72 69 65 76 65 20 74 6f 6f 6c 73 20 66 72 6f 6d 2e 0a 0a 43 61 6c 6c | rs.to.retrieve.tools.from...Call |
| 2c280 | 20 53 45 52 56 45 52 2d 43 41 4c 4c 42 41 43 4b 20 61 66 74 65 72 20 73 74 61 72 74 69 6e 67 20 | .SERVER-CALLBACK.after.starting. |
| 2c2a0 | 4d 43 50 20 73 65 72 76 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 | MCP.servers."...(interactive.(li |
| 2c2c0 | 73 74 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 28 69 66 20 28 6c 6f 63 61 74 65 2d 6c 69 62 | st.nil.nil.t))...(if.(locate-lib |
| 2c2e0 | 72 61 72 79 20 22 6d 63 70 2d 68 75 62 22 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 72 | rary."mcp-hub").......(unless.(r |
| 2c300 | 65 71 75 69 72 65 20 27 6d 63 70 2d 68 75 62 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 | equire.'mcp-hub.nil.t).........( |
| 2c320 | 75 73 65 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 60 6d 63 70 2d | user-error."Could.not.load.`mcp- |
| 2c340 | 68 75 62 27 21 20 20 50 6c 65 61 73 65 20 69 6e 73 74 61 6c 6c 5c 0a 20 6f 72 20 63 6f 6e 66 69 | hub'!..Please.install\..or.confi |
| 2c360 | 67 75 72 65 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 65 22 29 29 0a 20 20 20 20 28 75 73 65 | gure.the.mcp.package")).....(use |
| 2c380 | 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 6d 63 70 21 20 20 50 6c | r-error."Could.not.find.mcp!..Pl |
| 2c3a0 | 65 61 73 65 20 69 6e 73 74 61 6c 6c 20 6f 72 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 20 6d 63 | ease.install.or.configure.the.mc |
| 2c3c0 | 70 20 70 61 63 6b 61 67 65 22 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6d 63 70 2d 68 75 62 | p.package"))...(if.(null.mcp-hub |
| 2c3e0 | 2d 73 65 72 76 65 72 73 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 | -servers).......(user-error."No. |
| 2c400 | 4d 43 50 20 73 65 72 76 65 72 73 20 61 76 61 69 6c 61 62 6c 65 21 20 20 50 6c 65 61 73 65 20 63 | MCP.servers.available!..Please.c |
| 2c420 | 6f 6e 66 69 67 75 72 65 20 60 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 27 22 29 0a 20 20 20 | onfigure.`mcp-hub-servers'").... |
| 2c440 | 20 28 73 65 74 71 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 65 72 | .(setq.servers...........(if.ser |
| 2c460 | 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 | vers...............(mapcar.(lamb |
| 2c480 | 64 61 20 28 73 29 20 28 61 73 73 6f 63 20 73 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 | da.(s).(assoc.s.mcp-hub-servers) |
| 2c4a0 | 29 20 73 65 72 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 63 70 2d 68 75 62 2d 73 | ).servers).............mcp-hub-s |
| 2c4c0 | 65 72 76 65 72 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 75 6e 72 65 67 69 73 74 65 72 65 64 | ervers)).....(let.((unregistered |
| 2c4e0 | 2d 73 65 72 76 65 72 73 20 3b 41 76 61 69 6c 61 62 6c 65 20 73 65 72 76 65 72 73 20 6d 69 6e 75 | -servers.;Available.servers.minu |
| 2c500 | 73 20 73 65 72 76 65 72 73 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 | s.servers.already.registered.wit |
| 2c520 | 68 20 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 | h.gptel............(cl-loop.for. |
| 2c540 | 73 65 72 76 65 72 20 69 6e 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | server.in.servers............... |
| 2c560 | 20 20 20 20 20 20 77 69 74 68 20 72 65 67 69 73 74 65 72 65 64 2d 6e 61 6d 65 73 20 3d 0a 20 20 | ......with.registered-names.=... |
| 2c580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 | ..................(cl-loop.for.( |
| 2c5a0 | 63 61 74 20 2e 20 5f 74 6f 6f 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f | cat..._tools).in.gptel--known-to |
| 2c5c0 | 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols............................. |
| 2c5e0 | 20 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 6d 63 70 2d 22 20 63 61 74 29 | .if.(string-prefix-p."mcp-".cat) |
| 2c600 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f | ..............................co |
| 2c620 | 6c 6c 65 63 74 20 28 73 75 62 73 74 72 69 6e 67 20 63 61 74 20 34 29 29 0a 20 20 20 20 20 20 20 | llect.(substring.cat.4))........ |
| 2c640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 28 63 61 72 | .............unless.(member.(car |
| 2c660 | 20 73 65 72 76 65 72 29 20 72 65 67 69 73 74 65 72 65 64 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 | .server).registered-names)...... |
| 2c680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 73 65 72 76 65 72 29 29 29 | ...............collect.server))) |
| 2c6a0 | 0a 20 20 20 20 20 20 28 69 66 20 75 6e 72 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 0a | .......(if.unregistered-servers. |
| 2c6c0 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 | ..........(let*.((servers....... |
| 2c6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 | ............(if.interactive..... |
| 2c700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 69 63 6b 73 0a 20 | ..................(let.((picks.. |
| 2c720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d | ............................(com |
| 2c740 | 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | pleting-read-multiple........... |
| 2c760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 41 64 64 20 74 6f 6f 6c 73 20 66 | ...................."Add.tools.f |
| 2c780 | 72 6f 6d 20 4d 43 50 20 73 65 72 76 65 72 73 20 28 73 65 70 61 72 61 74 65 20 77 69 74 68 20 5c | rom.MCP.servers.(separate.with.\ |
| 2c7a0 | 22 2c 5c 22 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ",\"):."........................ |
| 2c7c0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 28 22 41 4c 4c 22 29 20 75 6e 72 65 67 69 73 74 65 72 | .......(cons.'("ALL").unregister |
| 2c7e0 | 65 64 2d 73 65 72 76 65 72 73 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ed-servers).nil.t)))............ |
| 2c800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 22 41 4c 4c 22 20 70 | .............(if.(member."ALL".p |
| 2c820 | 69 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | icks)........................... |
| 2c840 | 20 20 75 6e 72 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 | ..unregistered-servers.......... |
| 2c860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 | .................(mapcar.(lambda |
| 2c880 | 20 28 73 29 20 28 61 73 73 6f 63 20 73 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 20 | .(s).(assoc.s.mcp-hub-servers)). |
| 2c8a0 | 70 69 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 72 | picks))).....................unr |
| 2c8c0 | 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | egistered-servers))............. |
| 2c8e0 | 20 20 20 20 20 28 73 65 72 76 65 72 2d 61 63 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 | .....(server-active-p........... |
| 2c900 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 65 72 76 65 72 29 20 28 67 65 74 68 61 73 | ........(lambda.(server).(gethas |
| 2c920 | 68 20 28 63 61 72 20 73 65 72 76 65 72 29 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 | h.(car.server).mcp-server-connec |
| 2c940 | 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 61 63 74 | tions)))..................(inact |
| 2c960 | 69 76 65 2d 73 65 72 76 65 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 73 65 72 76 65 72 | ive-servers.(cl-remove-if.server |
| 2c980 | 2d 61 63 74 69 76 65 2d 70 20 73 65 72 76 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -active-p.servers))............. |
| 2c9a0 | 20 20 20 20 20 28 61 64 64 2d 61 6c 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....(add-all-tools............. |
| 2c9c0 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 65 72 76 65 72 2d | ......(lambda.(&optional.server- |
| 2c9e0 | 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 67 69 | names)....................."Regi |
| 2ca00 | 73 74 65 72 20 61 6e 64 20 61 64 64 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 73 65 72 76 65 72 73 2e | ster.and.add.tools.from.servers. |
| 2ca20 | 20 20 52 65 70 6f 72 74 20 66 61 69 6c 75 72 65 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..Report.failures."............. |
| 2ca40 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f 6c 73 20 28 67 70 74 65 6c 2d 6d 63 70 2d | ........(let.((tools.(gptel-mcp- |
| 2ca60 | 2d 67 65 74 2d 74 6f 6f 6c 73 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 | -get-tools.server-names))....... |
| 2ca80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 77 2d 61 63 74 69 76 65 20 | ....................(now-active. |
| 2caa0 | 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 73 65 72 76 65 72 2d 61 63 74 69 76 65 2d | (cl-remove-if-not.server-active- |
| 2cac0 | 70 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | p.mcp-hub-servers)))............ |
| 2cae0 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 20 | ...........(mapc.(lambda.(tool). |
| 2cb00 | 28 61 70 70 6c 79 20 23 27 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 74 6f 6f 6c 29 29 20 | (apply.#'gptel-make-tool.tool)). |
| 2cb20 | 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | tools).......................(gp |
| 2cb40 | 74 65 6c 2d 6d 63 70 2d 2d 61 63 74 69 76 61 74 65 2d 74 6f 6f 6c 73 20 74 6f 6f 6c 73 29 0a 20 | tel-mcp--activate-tools.tools).. |
| 2cb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 | .....................(if-let*.(( |
| 2cb80 | 66 61 69 6c 65 64 20 28 63 6c 2d 73 65 74 2d 64 69 66 66 65 72 65 6e 63 65 20 69 6e 61 63 74 69 | failed.(cl-set-difference.inacti |
| 2cba0 | 76 65 2d 73 65 72 76 65 72 73 20 6e 6f 77 2d 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 | ve-servers.now-active........... |
| 2cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2cbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 29 | .................:test.#'equal)) |
| 2cc00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | )...........................(pro |
| 2cc20 | 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | gn.............................( |
| 2cc40 | 6d 65 73 73 61 67 65 20 22 49 6e 61 63 74 69 76 65 2d 62 65 66 6f 72 65 3a 20 25 53 2c 20 4e 6f | message."Inactive-before:.%S,.No |
| 2cc60 | 77 2d 41 63 74 69 76 65 3a 20 25 53 22 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 20 6e | w-Active:.%S".inactive-servers.n |
| 2cc80 | 6f 77 2d 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ow-active)...................... |
| 2cca0 | 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d | .......(message.(substitute-comm |
| 2ccc0 | 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | and-keys........................ |
| 2cce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 25 64 2f 25 64 20 73 65 72 76 65 72 25 73 20 66 | ..............."%d/%d.server%s.f |
| 2cd00 | 61 69 6c 65 64 20 74 6f 20 73 74 61 72 74 3a 20 25 73 2e 20 20 52 75 6e 20 5c 5c 5b 6d 63 70 2d | ailed.to.start:.%s...Run.\\[mcp- |
| 2cd20 | 68 75 62 5d 20 74 6f 20 69 6e 76 65 73 74 69 67 61 74 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 | hub].to.investigate.").......... |
| 2cd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e | ............................(len |
| 2cd60 | 67 74 68 20 66 61 69 6c 65 64 29 20 28 6c 65 6e 67 74 68 20 69 6e 61 63 74 69 76 65 2d 73 65 72 | gth.failed).(length.inactive-ser |
| 2cd80 | 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | vers)........................... |
| 2cda0 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 66 61 69 6c 65 64 | ...........(if.(=.(length.failed |
| 2cdc0 | 29 20 31 29 20 22 22 20 22 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).1).""."s").................... |
| 2cde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 63 | ..................(mapconcat.#'c |
| 2ce00 | 61 72 20 66 61 69 6c 65 64 20 22 2c 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.failed.",.")))............... |
| 2ce20 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 64 64 65 64 20 28 6f 72 20 73 65 72 76 65 | ..........(let.((added.(or.serve |
| 2ce40 | 72 2d 6e 61 6d 65 73 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 6e 6f 77 2d 61 63 74 69 76 65 | r-names.(mapcar.#'car.now-active |
| 2ce60 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ))))...........................( |
| 2ce80 | 6d 65 73 73 61 67 65 20 22 41 64 64 65 64 20 25 64 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 25 64 20 | message."Added.%d.tools.from.%d. |
| 2cea0 | 4d 43 50 20 73 65 72 76 65 72 25 73 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | MCP.server%s:.%s"............... |
| 2cec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 74 6f 6f | .....................(length.too |
| 2cee0 | 6c 73 29 20 28 6c 65 6e 67 74 68 20 61 64 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ls).(length.added).............. |
| 2cf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 | ......................(if.(=.(le |
| 2cf20 | 6e 67 74 68 20 61 64 64 65 64 29 20 31 29 20 22 22 20 22 73 22 29 0a 20 20 20 20 20 20 20 20 20 | ngth.added).1).""."s").......... |
| 2cf40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f | ..........................(mapco |
| 2cf60 | 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 61 64 64 65 64 20 22 2c 20 22 29 29 29 29 0a 20 | ncat.#'identity.added.",.")))).. |
| 2cf80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 | .....................(when.(func |
| 2cfa0 | 74 69 6f 6e 70 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 29 20 28 66 75 6e 63 61 6c 6c 20 | tionp.server-callback).(funcall. |
| 2cfc0 | 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 29 29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 | server-callback))))))........... |
| 2cfe0 | 20 20 20 28 69 66 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 20 20 20 20 20 20 20 20 3b | ...(if.inactive-servers........; |
| 2d000 | 73 74 61 72 74 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d | start.servers.................(m |
| 2d020 | 63 70 2d 68 75 62 2d 73 74 61 72 74 2d 61 6c 6c 2d 73 65 72 76 65 72 0a 20 20 20 20 20 20 20 20 | cp-hub-start-all-server......... |
| 2d040 | 20 20 20 20 20 20 20 20 20 61 64 64 2d 61 6c 6c 2d 74 6f 6f 6c 73 20 28 6d 61 70 63 61 72 20 23 | .........add-all-tools.(mapcar.# |
| 2d060 | 27 63 61 72 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 | 'car.inactive-servers))......... |
| 2d080 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 64 64 2d 61 6c 6c 2d 74 6f 6f 6c 73 20 28 6d 61 | ......(funcall.add-all-tools.(ma |
| 2d0a0 | 70 63 61 72 20 23 27 63 61 72 20 73 65 72 76 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 | pcar.#'car.servers)))).........( |
| 2d0c0 | 6d 65 73 73 61 67 65 20 22 41 6c 6c 20 4d 43 50 20 74 6f 6f 6c 73 20 61 72 65 20 61 6c 72 65 61 | message."All.MCP.tools.are.alrea |
| 2d0e0 | 64 79 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 67 70 74 65 6c 21 22 29 0a 20 20 20 20 20 20 20 | dy.available.to.gptel!")........ |
| 2d100 | 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 | .(when.(functionp.server-callbac |
| 2d120 | 6b 29 20 28 66 75 6e 63 61 6c 6c 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 29 29 29 29 29 | k).(funcall.server-callback))))) |
| 2d140 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 20 28 | )..(defun.gptel-mcp-disconnect.( |
| 2d160 | 26 6f 70 74 69 6f 6e 61 6c 20 73 65 72 76 65 72 73 20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 | &optional.servers.interactive).. |
| 2d180 | 20 22 55 6e 72 65 67 69 73 74 65 72 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 70 72 6f 76 69 64 65 | ."Unregister.gptel.tools.provide |
| 2d1a0 | 64 20 62 79 20 4d 43 50 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 74 68 65 20 6d 63 70 20 70 | d.by.MCP.servers.using.the.mcp.p |
| 2d1c0 | 61 63 6b 61 67 65 2e 0a 0a 53 45 52 56 45 52 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 65 | ackage...SERVERS.is.a.list.of.se |
| 2d1e0 | 72 76 65 72 20 6e 61 6d 65 73 20 28 73 74 72 69 6e 67 73 29 20 74 6f 20 64 69 73 63 6f 6e 6e 65 | rver.names.(strings).to.disconne |
| 2d200 | 63 74 20 66 72 6f 6d 2e 0a 0a 49 66 20 49 4e 54 45 52 41 43 54 49 56 45 20 69 73 20 6e 6f 6e 2d | ct.from...If.INTERACTIVE.is.non- |
| 2d220 | 6e 69 6c 2c 20 71 75 65 72 79 20 74 68 65 20 75 73 65 72 20 61 62 6f 75 74 20 77 68 69 63 68 20 | nil,.query.the.user.about.which. |
| 2d240 | 74 6f 6f 6c 73 20 74 6f 20 72 65 6d 6f 76 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 | tools.to.remove."...(interactive |
| 2d260 | 20 28 6c 69 73 74 20 6e 69 6c 20 74 29 29 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 6e 61 6d 65 | .(list.nil.t))...(if-let*.((name |
| 2d280 | 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 | s-alist..............(cl-loop... |
| 2d2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 63 61 74 65 67 6f 72 79 20 2e 20 5f 74 6f 6f | ............for.(category..._too |
| 2d2c0 | 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 | ls).in.gptel--known-tools....... |
| 2d2e0 | 20 20 20 20 20 20 20 20 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e | ........if.(and.(string-match."^ |
| 2d300 | 6d 63 70 2d 5c 5c 28 2e 2a 5c 5c 29 22 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 | mcp-\\(.*\\)".category)......... |
| 2d320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 75 6c 6c 20 73 65 72 76 65 72 73 29 | ..............(or.(null.servers) |
| 2d340 | 20 3b 43 6f 6e 73 69 64 65 72 20 61 6c 6c 20 69 66 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 | .;Consider.all.if.nil........... |
| 2d360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 | ................(member.(match-s |
| 2d380 | 74 72 69 6e 67 20 31 20 63 61 74 65 67 6f 72 79 29 20 73 65 72 76 65 72 73 29 29 29 0a 20 20 20 | tring.1.category).servers))).... |
| 2d3a0 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 6e 73 20 28 6d 61 74 63 68 2d | ...........collect.(cons.(match- |
| 2d3c0 | 73 74 72 69 6e 67 20 31 20 63 61 74 65 67 6f 72 79 29 20 63 61 74 65 67 6f 72 79 29 29 29 29 0a | string.1.category).category)))). |
| 2d3e0 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 6d 6f 76 65 2d 66 6e 20 28 6c 61 6d 62 64 61 20 28 | ......(let.((remove-fn.(lambda.( |
| 2d400 | 63 61 74 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cat-names)...................... |
| 2d420 | 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 3b 52 65 6d 6f 76 65 20 66 72 | ....(setq.gptel-tools.;Remove.fr |
| 2d440 | 6f 6d 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | om.gptel-tools.................. |
| 2d460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 20 28 6c 61 6d | ..............(cl-delete-if.(lam |
| 2d480 | 62 64 61 20 28 74 6f 6f 6c 29 20 28 6d 65 6d 62 65 72 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 | bda.(tool).(member.(gptel-tool-c |
| 2d4a0 | 61 74 65 67 6f 72 79 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ategory.tool)................... |
| 2d4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2d4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 | .............cat-names))........ |
| 2d500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2d520 | 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......gptel-tools))............. |
| 2d540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 63 61 74 65 | .............(mapc.(lambda.(cate |
| 2d560 | 67 6f 72 79 29 20 3b 52 65 6d 6f 76 65 20 66 72 6f 6d 20 72 65 67 69 73 74 72 79 0a 20 20 20 20 | gory).;Remove.from.registry..... |
| 2d580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | .............................(se |
| 2d5a0 | 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e | tf.(alist-get.category.gptel--kn |
| 2d5c0 | 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | own-tools....................... |
| 2d5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 | ............................nil. |
| 2d600 | 74 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.#'equal)...................... |
| 2d620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 | ..................nil))......... |
| 2d640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 2d 6e 61 6d 65 73 | .......................cat-names |
| 2d660 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 | )))).........(if.interactive.... |
| 2d680 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 73 65 72 76 65 72 2d 6e 61 6d | .........(when-let*.((server-nam |
| 2d6a0 | 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d | es..........................(com |
| 2d6c0 | 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | pleting-read-multiple........... |
| 2d6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 4d 43 50 20 73 65 72 76 | ................"Remove.MCP.serv |
| 2d700 | 65 72 20 74 6f 6f 6c 73 20 66 6f 72 20 28 73 65 70 61 72 61 74 65 20 77 69 74 68 20 5c 22 2c 5c | er.tools.for.(separate.with.\",\ |
| 2d720 | 22 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "):."........................... |
| 2d740 | 28 63 6f 6e 73 20 27 28 22 41 4c 4c 22 20 2e 20 6e 69 6c 29 20 6e 61 6d 65 73 2d 61 6c 69 73 74 | (cons.'("ALL"...nil).names-alist |
| 2d760 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 | )...........................nil. |
| 2d780 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 | t)))...............(when.(member |
| 2d7a0 | 20 22 41 4c 4c 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ."ALL".server-names)............ |
| 2d7c0 | 20 20 20 20 20 28 73 65 74 71 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 20 28 6d 61 70 63 61 72 20 | .....(setq.server-names.(mapcar. |
| 2d7e0 | 23 27 63 61 72 20 6e 61 6d 65 73 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | #'car.names-alist)))............ |
| 2d800 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 65 6d 6f 76 65 2d 66 6e 20 20 20 20 20 20 20 20 3b 72 65 | ...(funcall.remove-fn........;re |
| 2d820 | 6d 6f 76 65 20 73 65 6c 65 63 74 65 64 20 74 6f 6f 6c 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 | move.selected.tool.categories... |
| 2d840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 | .....................(mapcar.(la |
| 2d860 | 6d 62 64 61 20 28 73 29 20 28 63 64 72 20 28 61 73 73 6f 63 20 73 20 6e 61 6d 65 73 2d 61 6c 69 | mbda.(s).(cdr.(assoc.s.names-ali |
| 2d880 | 73 74 29 29 29 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | st))).server-names))............ |
| 2d8a0 | 20 20 20 28 69 66 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(if.(y-or-n-p................ |
| 2d8c0 | 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 6d 6f 76 65 64 20 4d 43 50 20 74 6f 6f 6c 73 20 66 | ....(format."Removed.MCP.tools.f |
| 2d8e0 | 72 6f 6d 20 25 64 20 73 65 72 76 65 72 25 73 2e 20 20 41 6c 73 6f 20 73 68 75 74 20 64 6f 77 6e | rom.%d.server%s...Also.shut.down |
| 2d900 | 20 4d 43 50 20 73 65 72 76 65 72 73 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .MCP.servers?".................. |
| 2d920 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 0a | ..........(length.server-names). |
| 2d940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | ...........................(if.( |
| 2d960 | 3d 20 28 6c 65 6e 67 74 68 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 20 31 29 20 22 22 20 22 73 | =.(length.server-names).1).""."s |
| 2d980 | 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6d | ")))...................(progn.(m |
| 2d9a0 | 61 70 63 20 23 27 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 73 65 72 76 65 72 2d 6e 61 6d | apc.#'mcp-stop-server.server-nam |
| 2d9c0 | 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 | es)..........................(me |
| 2d9e0 | 73 73 61 67 65 20 22 53 68 75 74 20 64 6f 77 6e 20 4d 43 50 20 73 65 72 76 65 72 73 3a 20 25 53 | ssage."Shut.down.MCP.servers:.%S |
| 2da00 | 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ".server-names))................ |
| 2da20 | 20 28 6d 65 73 73 61 67 65 20 22 52 65 6d 6f 76 65 64 20 4d 43 50 20 74 6f 6f 6c 73 20 66 6f 72 | .(message."Removed.MCP.tools.for |
| 2da40 | 3a 20 25 53 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | :.%S".server-names)))........... |
| 2da60 | 28 66 75 6e 63 61 6c 6c 20 72 65 6d 6f 76 65 2d 66 6e 20 28 6d 61 70 63 61 72 20 23 27 63 64 72 | (funcall.remove-fn.(mapcar.#'cdr |
| 2da80 | 20 6e 61 6d 65 73 2d 61 6c 69 73 74 29 29 29 29 0a 20 20 20 20 3b 3b 20 4e 6f 20 4d 43 50 20 74 | .names-alist)))).....;;.No.MCP.t |
| 2daa0 | 6f 6f 6c 73 2c 20 61 73 6b 20 74 6f 20 73 68 75 74 20 64 6f 77 6e 20 73 65 72 76 65 72 73 0a 20 | ools,.ask.to.shut.down.servers.. |
| 2dac0 | 20 20 20 28 69 66 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 76 20 62 | ...(if.(cl-loop..........for.v.b |
| 2dae0 | 65 69 6e 67 20 74 68 65 20 68 61 73 68 2d 76 61 6c 75 65 73 20 6f 66 20 6d 63 70 2d 73 65 72 76 | eing.the.hash-values.of.mcp-serv |
| 2db00 | 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 6e 65 76 65 72 20 76 29 | er-connections..........never.v) |
| 2db20 | 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 28 6d 65 73 73 | .........(when.interactive.(mess |
| 2db40 | 61 67 65 20 22 4e 6f 20 4d 43 50 20 73 65 72 76 65 72 73 20 61 63 74 69 76 65 21 22 29 29 0a 20 | age."No.MCP.servers.active!")).. |
| 2db60 | 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 69 6e 74 65 72 61 63 74 69 76 65 29 | .....(when.(or.(not.interactive) |
| 2db80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 4e 6f 20 4d | .................(y-or-n-p."No.M |
| 2dba0 | 43 50 20 74 6f 6f 6c 73 20 69 6e 20 67 70 74 65 6c 21 20 20 53 68 75 74 20 64 6f 77 6e 20 61 6c | CP.tools.in.gptel!..Shut.down.al |
| 2dbc0 | 6c 20 4d 43 50 20 73 65 72 76 65 72 73 3f 20 22 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 | l.MCP.servers?.")).........(doli |
| 2dbe0 | 73 74 20 28 73 65 72 76 65 72 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 0a 20 20 20 20 | st.(server.mcp-hub-servers)..... |
| 2dc00 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 68 61 73 68 20 28 63 61 72 20 73 65 72 76 65 72 | ......(when.(gethash.(car.server |
| 2dc20 | 29 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 | ).mcp-server-connections)....... |
| 2dc40 | 20 20 20 20 20 20 28 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 28 63 61 72 20 73 65 72 76 | ......(mcp-stop-server.(car.serv |
| 2dc60 | 65 72 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 2d 67 65 | er))))))))..(defun.gptel-mcp--ge |
| 2dc80 | 74 2d 74 6f 6f 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 | t-tools.(&optional.server-names) |
| 2dca0 | 0a 20 20 22 52 65 74 75 72 6e 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 4d 43 | ..."Return.tools.from.running.MC |
| 2dcc0 | 50 20 73 65 72 76 65 72 73 2e 0a 0a 53 45 52 56 45 52 2d 4e 41 4d 45 53 20 69 73 20 61 20 6c 69 | P.servers...SERVER-NAMES.is.a.li |
| 2dce0 | 73 74 20 6f 66 20 73 65 72 76 65 72 20 6e 61 6d 65 73 20 74 6f 20 61 64 64 20 74 6f 6f 6c 73 20 | st.of.server.names.to.add.tools. |
| 2dd00 | 66 72 6f 6d 2e 20 20 41 64 64 20 74 6f 6f 6c 73 0a 66 72 6f 6d 20 61 6c 6c 20 63 6f 6e 6e 65 63 | from...Add.tools.from.all.connec |
| 2dd20 | 74 65 64 20 73 65 72 76 65 72 73 20 69 66 20 69 74 20 69 73 20 6e 69 6c 2e 22 0a 20 20 28 75 6e | ted.servers.if.it.is.nil."...(un |
| 2dd40 | 6c 65 73 73 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 0a 20 20 20 20 28 73 65 74 71 20 73 65 72 76 | less.server-names.....(setq.serv |
| 2dd60 | 65 72 2d 6e 61 6d 65 73 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 79 73 20 6d 63 70 2d 73 65 | er-names.(hash-table-keys.mcp-se |
| 2dd80 | 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 65 72 | rver-connections)))...(let.((ser |
| 2dda0 | 76 65 72 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e 29 20 28 67 65 74 68 61 73 | vers.(mapcar.(lambda.(n).(gethas |
| 2ddc0 | 68 20 6e 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 29 0a 20 20 20 | h.n.mcp-server-connections)).... |
| 2dde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 72 76 65 72 2d 6e 61 6d | ......................server-nam |
| 2de00 | 65 73 29 29 29 0a 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 20 20 20 28 6c 61 6d 62 64 | es))).....(cl-mapcan......(lambd |
| 2de20 | 61 20 28 6e 61 6d 65 20 73 65 72 76 65 72 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e | a.(name.server)........(when.(an |
| 2de40 | 64 20 73 65 72 76 65 72 20 28 65 71 75 61 6c 20 28 6d 63 70 2d 2d 73 74 61 74 75 73 20 73 65 72 | d.server.(equal.(mcp--status.ser |
| 2de60 | 76 65 72 29 20 27 63 6f 6e 6e 65 63 74 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | ver).'connected))..........(when |
| 2de80 | 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 73 20 28 6d 63 70 2d 2d 74 6f 6f 6c 73 20 73 65 72 76 65 72 | -let*.((tools.(mcp--tools.server |
| 2dea0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 6e 61 | ))......................(tool-na |
| 2dec0 | 6d 65 73 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 20 28 70 6c | mes.(mapcar.#'(lambda.(tool).(pl |
| 2dee0 | 69 73 74 2d 67 65 74 20 74 6f 6f 6c 20 3a 6e 61 6d 65 29 29 20 74 6f 6f 6c 73 29 29 29 0a 20 20 | ist-get.tool.:name)).tools)))... |
| 2df00 | 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 6e | .........(mapcar.(lambda.(tool-n |
| 2df20 | 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ame)......................(plist |
| 2df40 | 2d 70 75 74 20 28 6d 63 70 2d 6d 61 6b 65 2d 74 65 78 74 2d 74 6f 6f 6c 20 6e 61 6d 65 20 74 6f | -put.(mcp-make-text-tool.name.to |
| 2df60 | 6f 6c 2d 6e 61 6d 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol-name.t)...................... |
| 2df80 | 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 28 66 6f 72 6d 61 74 20 22 6d 63 | ...........:category.(format."mc |
| 2dfa0 | 70 2d 25 73 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p-%s".name)))................... |
| 2dfc0 | 20 74 6f 6f 6c 2d 6e 61 6d 65 73 29 29 29 29 0a 20 20 20 20 20 73 65 72 76 65 72 2d 6e 61 6d 65 | .tool-names))))......server-name |
| 2dfe0 | 73 20 73 65 72 76 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 2d | s.servers)))..(defun.gptel-mcp-- |
| 2e000 | 61 63 74 69 76 61 74 65 2d 74 6f 6f 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 6f 6c 73 29 | activate-tools.(&optional.tools) |
| 2e020 | 0a 20 20 22 41 63 74 69 76 61 74 65 20 54 4f 4f 4c 53 20 6f 72 20 61 6c 6c 20 4d 43 50 20 74 6f | ..."Activate.TOOLS.or.all.MCP.to |
| 2e040 | 6f 6c 73 20 69 6e 20 63 75 72 72 65 6e 74 20 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 2e 22 0a 20 | ols.in.current.gptel.session.".. |
| 2e060 | 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 73 20 28 73 65 74 71 20 74 6f 6f 6c 73 20 28 67 70 74 65 | .(unless.tools.(setq.tools.(gpte |
| 2e080 | 6c 2d 6d 63 70 2d 2d 67 65 74 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 74 | l-mcp--get-tools)))...(dolist.(t |
| 2e0a0 | 6f 6f 6c 20 74 6f 6f 6c 73 29 0a 20 20 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 67 70 74 65 | ool.tools).....(cl-pushnew.(gpte |
| 2e0c0 | 6c 2d 67 65 74 2d 74 6f 6f 6c 20 28 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c | l-get-tool.(list.(plist-get.tool |
| 2e0e0 | 20 3a 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:category)..................... |
| 2e100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f | ..................(plist-get.too |
| 2e120 | 6c 20 3a 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c | l.:name))).................gptel |
| 2e140 | 2d 74 6f 6f 6c 73 29 29 29 0a 0a 28 77 69 74 68 2d 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 | -tools)))..(with-eval-after-load |
| 2e160 | 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 64 | .'gptel-transient...(transient-d |
| 2e180 | 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 6d 63 70 2d 63 | efine-suffix.gptel--suffix-mcp-c |
| 2e1a0 | 6f 6e 6e 65 63 74 20 28 29 0a 20 20 20 20 22 52 65 67 69 73 74 65 72 20 74 6f 6f 6c 73 20 70 72 | onnect.()....."Register.tools.pr |
| 2e1c0 | 6f 76 69 64 65 64 20 62 79 20 4d 43 50 20 73 65 72 76 65 72 73 2e 22 0a 20 20 20 20 3a 6b 65 79 | ovided.by.MCP.servers.".....:key |
| 2e1e0 | 20 22 4d 2b 22 0a 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 4d 43 50 20 | ."M+".....:description."Add.MCP. |
| 2e200 | 73 65 72 76 65 72 20 74 6f 6f 6c 73 22 0a 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 0a 20 | server.tools".....:transient.t.. |
| 2e220 | 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 3b 3b 20 67 70 74 65 6c 2d 74 6f | ...(interactive).....;;.gptel-to |
| 2e240 | 6f 6c 73 20 73 74 6f 72 65 73 20 69 74 73 20 73 74 61 74 65 20 69 6e 20 69 74 73 20 73 63 6f 70 | ols.stores.its.state.in.its.scop |
| 2e260 | 65 20 73 6c 6f 74 2e 20 20 52 65 74 61 69 6e 20 74 68 65 20 73 63 6f 70 65 20 62 75 74 0a 20 20 | e.slot...Retain.the.scope.but... |
| 2e280 | 20 20 3b 3b 20 75 70 64 61 74 65 20 69 74 20 77 69 74 68 20 74 68 65 20 6e 65 77 6c 79 20 73 65 | ..;;.update.it.with.the.newly.se |
| 2e2a0 | 6c 65 63 74 65 64 20 74 6f 6f 6c 73 2e 20 20 54 68 65 6e 20 73 65 74 20 75 70 20 67 70 74 65 6c | lected.tools...Then.set.up.gptel |
| 2e2c0 | 2d 74 6f 6f 6c 73 2e 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 0a | -tools......(condition-case.err. |
| 2e2e0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 0a 20 20 20 20 20 | ........(gptel-mcp-connect...... |
| 2e300 | 20 20 20 20 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | ....nil.(lambda.().(when-let*.(( |
| 2e320 | 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | transient--prefix).............. |
| 2e340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 28 6f 72 65 66 20 74 72 61 | ..................((eq.(oref.tra |
| 2e360 | 6e 73 69 65 6e 74 2d 2d 70 72 65 66 69 78 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 | nsient--prefix.command)......... |
| 2e380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 | ............................'gpt |
| 2e3a0 | 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-tools)))..................... |
| 2e3c0 | 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 20 27 | .(let.((state.(transient-scope.' |
| 2e3e0 | 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-tools))).................. |
| 2e400 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 0a 20 20 | ......(plist-put.state.:tools... |
| 2e420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e440 | 28 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (delete-dups.................... |
| 2e460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6d 61 70 63 61 72 20 28 | ................(nconc.(mapcar.( |
| 2e480 | 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.(tool)................... |
| 2e4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e4c0 | 20 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 20 74 6f 6f | ..(list.(gptel-tool-category.too |
| 2e4e0 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l).............................. |
| 2e500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | .............................(gp |
| 2e520 | 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | tel-tool-name.tool)))........... |
| 2e540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e560 | 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ........gptel-tools)............ |
| 2e580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 2e5a0 | 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 29 29 29 0a 20 20 20 20 20 | plist-get.state.:tools))))...... |
| 2e5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 | ..................(transient-set |
| 2e5e0 | 75 70 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c 20 3a 73 63 6f 70 65 20 73 | up.'gptel-tools.nil.nil.:scope.s |
| 2e600 | 74 61 74 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 28 75 73 65 72 | tate))))..........t).......(user |
| 2e620 | 2d 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 28 63 61 64 72 20 65 72 72 29 29 | -error.(message."%s".(cadr.err)) |
| 2e640 | 29 29 29 0a 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 | )))....(transient-define-suffix. |
| 2e660 | 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 20 28 29 0a | gptel--suffix-mcp-disconnect.(). |
| 2e680 | 20 20 20 20 22 52 65 6d 6f 76 65 20 74 6f 6f 6c 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 4d 43 | ...."Remove.tools.provided.by.MC |
| 2e6a0 | 50 20 73 65 72 76 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 2e 22 0a 20 20 20 20 3a 6b 65 79 20 | P.servers.from.gptel.".....:key. |
| 2e6c0 | 22 4d 2d 22 0a 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 | "M-".....:description.(lambda.() |
| 2e6e0 | 20 28 69 66 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 63 61 74 29 20 28 73 74 72 | .(if.(cl-some.(lambda.(cat).(str |
| 2e700 | 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 6d 63 70 2d 22 20 63 61 74 29 29 0a 20 20 20 20 20 20 | ing-match-p."^mcp-".cat))....... |
| 2e720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d | ..............................(m |
| 2e740 | 61 70 2d 6b 65 79 73 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 | ap-keys.gptel--known-tools)).... |
| 2e760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 | ........................"Remove. |
| 2e780 | 4d 43 50 20 73 65 72 76 65 72 20 74 6f 6f 6c 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | MCP.server.tools"............... |
| 2e7a0 | 20 20 20 20 20 20 20 20 20 20 20 22 53 68 75 74 20 64 6f 77 6e 20 4d 43 50 20 73 65 72 76 65 72 | ..........."Shut.down.MCP.server |
| 2e7c0 | 73 22 29 29 0a 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 0a 20 20 20 20 3a 69 6e 61 70 74 | s")).....:transient.t.....:inapt |
| 2e7e0 | 2d 69 66 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 6e 6f 74 20 28 62 6f 75 | -if.....(lambda.().(or.(not.(bou |
| 2e800 | 6e 64 70 20 27 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 | ndp.'mcp-hub-servers)).......... |
| 2e820 | 20 20 20 20 20 28 6e 75 6c 6c 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 0a 20 20 20 20 | .....(null.mcp-hub-servers)..... |
| 2e840 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(cl-loop.............. |
| 2e860 | 20 20 66 6f 72 20 76 20 62 65 69 6e 67 20 74 68 65 20 68 61 73 68 2d 76 61 6c 75 65 73 20 6f 66 | ..for.v.being.the.hash-values.of |
| 2e880 | 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 | .mcp-server-connections......... |
| 2e8a0 | 20 20 20 20 20 20 20 6e 65 76 65 72 20 76 29 29 29 0a 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 | .......never.v))).....(interacti |
| 2e8c0 | 76 65 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 | ve).....(call-interactively.#'gp |
| 2e8e0 | 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 29 0a 20 20 20 20 3b 3b 20 67 70 74 65 6c | tel-mcp-disconnect).....;;.gptel |
| 2e900 | 2d 74 6f 6f 6c 73 20 73 74 6f 72 65 73 20 69 74 73 20 73 74 61 74 65 20 69 6e 20 69 74 73 20 73 | -tools.stores.its.state.in.its.s |
| 2e920 | 63 6f 70 65 20 73 6c 6f 74 2e 20 20 52 65 74 61 69 6e 20 74 68 65 20 73 63 6f 70 65 20 62 75 74 | cope.slot...Retain.the.scope.but |
| 2e940 | 0a 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 69 74 20 74 68 61 | .....;;.remove.tools.from.it.tha |
| 2e960 | 74 20 6e 6f 20 6c 6f 6e 67 65 72 20 65 78 69 73 74 2c 20 74 68 65 6e 20 73 65 74 20 75 70 20 67 | t.no.longer.exist,.then.set.up.g |
| 2e980 | 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 73 74 61 | ptel-tools.....(cl-loop.with.sta |
| 2e9a0 | 74 65 20 3d 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 74 6f 6f | te.=.(transient-scope.'gptel-too |
| 2e9c0 | 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 6f 6f 6c 73 20 3d 20 28 70 | ls)..............with.tools.=.(p |
| 2e9e0 | 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 | list-get.state.:tools).......... |
| 2ea00 | 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 73 70 65 63 20 69 6e 20 74 6f 6f 6c 73 0a 20 20 20 20 20 | ....for.tool-spec.in.tools...... |
| 2ea20 | 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 67 70 74 65 6c | ........if.(map-nested-elt.gptel |
| 2ea40 | 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 74 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 | --known-tools.tool-spec)........ |
| 2ea60 | 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 2d 73 70 65 63 20 69 6e 74 6f 20 76 61 6c | ......collect.tool-spec.into.val |
| 2ea80 | 69 64 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f | id-tools..............finally.do |
| 2eaa0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 20 76 61 6c 69 64 2d 74 | .(plist-put.state.:tools.valid-t |
| 2eac0 | 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 | ools)..............(transient-se |
| 2eae0 | 74 75 70 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c 20 3a 73 63 6f 70 65 20 | tup.'gptel-tools.nil.nil.:scope. |
| 2eb00 | 73 74 61 74 65 29 29 29 0a 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 72 65 6d 6f 76 65 2d 73 75 | state)))....(transient-remove-su |
| 2eb20 | 66 66 69 78 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 27 28 30 20 32 29 29 0a 20 20 28 74 72 61 | ffix.'gptel-tools.'(0.2))...(tra |
| 2eb40 | 6e 73 69 65 6e 74 2d 61 70 70 65 6e 64 2d 73 75 66 66 69 78 20 27 67 70 74 65 6c 2d 74 6f 6f 6c | nsient-append-suffix.'gptel-tool |
| 2eb60 | 73 20 27 28 30 20 2d 31 29 0a 20 20 20 20 5b 22 22 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 | s.'(0.-1).....[""......(gptel--s |
| 2eb80 | 75 66 66 69 78 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | uffix-mcp-connect)......(gptel-- |
| 2eba0 | 73 75 66 66 69 78 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 29 5d 29 29 0a 0a 28 70 72 6f 76 | suffix-mcp-disconnect)]))..(prov |
| 2ebc0 | 69 64 65 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 29 0a 3b 3b 3b 20 67 70 74 | ide.'gptel-integrations).;;;.gpt |
| 2ebe0 | 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b | el-integrations.el.ends.here..;; |
| 2ec00 | 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c | .Local.Variables:.;;.byte-compil |
| 2ec20 | 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 6e 6f 72 75 6e 74 69 6d 65 29 0a 3b 3b 20 45 | e-warnings:.(not.noruntime).;;.E |
| 2ec40 | 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | nd:............................. |
| 2ec60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ec80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2eca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ecc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ece0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ed00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ed20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ed40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ed60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ed80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2eda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2edc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ede0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ee00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2e 65 6c 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8.5/gptel.el.......... |
| 2ee20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ee40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ee60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 2ee80 | 30 35 30 30 37 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 31 30 00 20 30 00 00 00 | 0500731.00000000000.013110..0... |
| 2eea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2eec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2eee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ef00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 2ef20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 2ef40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ef60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2ef80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2efa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2efc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2efe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2f000 | 3b 3b 3b 20 67 70 74 65 6c 2e 65 6c 20 2d 2d 2d 20 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 43 | ;;;.gptel.el.---.Interact.with.C |
| 2f020 | 68 61 74 47 50 54 20 6f 72 20 6f 74 68 65 72 20 4c 4c 4d 73 20 20 20 20 20 2d 2a 2d 20 6c 65 78 | hatGPT.or.other.LLMs.....-*-.lex |
| 2f040 | 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 | ical-binding:.t;.-*-..;;.Copyrig |
| 2f060 | 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 | ht.(C).2023-2025..Karthik.Chikma |
| 2f080 | 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 | galur..;;.Author:.Karthik.Chikma |
| 2f0a0 | 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c | galur.<karthik.chikmagalur@gmail |
| 2f0c0 | 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 39 2e 38 2e 35 0a 3b 3b 20 50 61 63 | .com>.;;.Version:.0.9.8.5.;;.Pac |
| 2f0e0 | 6b 61 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 29 20 28 | kage-Requires:.((emacs."27.1").( |
| 2f100 | 74 72 61 6e 73 69 65 6e 74 20 22 30 2e 37 2e 34 22 29 20 28 63 6f 6d 70 61 74 20 22 32 39 2e 31 | transient."0.7.4").(compat."29.1 |
| 2f120 | 2e 34 2e 31 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 | .4.1")).;;.Keywords:.convenience |
| 2f140 | 2c 20 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | ,.tools.;;.URL:.https://github.c |
| 2f160 | 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e | om/karthink/gptel..;;.SPDX-Licen |
| 2f180 | 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a | se-Identifier:.GPL-3.0-or-later. |
| 2f1a0 | 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 | .;;.This.program.is.free.softwar |
| 2f1c0 | 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f | e;.you.can.redistribute.it.and/o |
| 2f1e0 | 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f | r.modify.;;.it.under.the.terms.o |
| 2f200 | 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | f.the.GNU.General.Public.License |
| 2f220 | 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 | .as.published.by.;;.the.Free.Sof |
| 2f240 | 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e | tware.Foundation,.either.version |
| 2f260 | 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 | .3.of.the.License,.or.;;.(at.you |
| 2f280 | 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b | r.option).any.later.version...;; |
| 2f2a0 | 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 | .This.program.is.distributed.in. |
| 2f2c0 | 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c | the.hope.that.it.will.be.useful, |
| 2f2e0 | 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 | .;;.but.WITHOUT.ANY.WARRANTY;.wi |
| 2f300 | 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 | thout.even.the.implied.warranty. |
| 2f320 | 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 | of.;;.MERCHANTABILITY.or.FITNESS |
| 2f340 | 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 | .FOR.A.PARTICULAR.PURPOSE...See. |
| 2f360 | 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | the.;;.GNU.General.Public.Licens |
| 2f380 | 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 | e.for.more.details...;;.You.shou |
| 2f3a0 | 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 | ld.have.received.a.copy.of.the.G |
| 2f3c0 | 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f | NU.General.Public.License.;;.alo |
| 2f3e0 | 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 | ng.with.this.program...If.not,.s |
| 2f400 | 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 | ee.<https://www.gnu.org/licenses |
| 2f420 | 2f 3e 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 | />...;;.This.file.is.NOT.part.of |
| 2f440 | 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b | .GNU.Emacs...;;;.Commentary:..;; |
| 2f460 | 20 67 70 74 65 6c 20 69 73 20 61 20 73 69 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 67 | .gptel.is.a.simple.Large.Languag |
| 2f480 | 65 20 4d 6f 64 65 6c 20 63 68 61 74 20 63 6c 69 65 6e 74 2c 20 77 69 74 68 20 73 75 70 70 6f 72 | e.Model.chat.client,.with.suppor |
| 2f4a0 | 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 0a 3b 3b 20 6d 6f 64 65 6c 73 20 61 6e 64 20 62 61 63 | t.for.multiple.;;.models.and.bac |
| 2f4c0 | 6b 65 6e 64 73 2e 0a 3b 3b 0a 3b 3b 20 49 74 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 73 70 69 | kends..;;.;;.It.works.in.the.spi |
| 2f4e0 | 72 69 74 20 6f 66 20 45 6d 61 63 73 2c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 61 6e 79 20 74 | rit.of.Emacs,.available.at.any.t |
| 2f500 | 69 6d 65 20 61 6e 64 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 2e 0a 3b 3b 0a 3b 3b 20 67 70 74 | ime.and.in.any.buffer..;;.;;.gpt |
| 2f520 | 65 6c 20 73 75 70 70 6f 72 74 73 3a 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 73 65 72 76 69 63 65 | el.supports:.;;.;;.-.The.service |
| 2f540 | 73 20 43 68 61 74 47 50 54 2c 20 41 7a 75 72 65 2c 20 47 65 6d 69 6e 69 2c 20 41 6e 74 68 72 6f | s.ChatGPT,.Azure,.Gemini,.Anthro |
| 2f560 | 70 69 63 20 41 49 2c 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 20 50 65 72 70 6c 65 78 69 74 79 2c | pic.AI,.Together.ai,.Perplexity, |
| 2f580 | 0a 3b 3b 20 20 20 41 6e 79 73 63 61 6c 65 2c 20 4f 70 65 6e 52 6f 75 74 65 72 2c 20 47 72 6f 71 | .;;...Anyscale,.OpenRouter,.Groq |
| 2f5a0 | 2c 20 50 72 69 76 61 74 65 47 50 54 2c 20 44 65 65 70 53 65 65 6b 2c 20 43 65 72 65 62 72 61 73 | ,.PrivateGPT,.DeepSeek,.Cerebras |
| 2f5c0 | 2c 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 2c 0a 3b 3b 20 20 20 47 69 74 48 75 62 20 43 6f 70 | ,.Github.Models,.;;...GitHub.Cop |
| 2f5e0 | 69 6c 6f 74 20 63 68 61 74 2c 20 41 57 53 20 42 65 64 72 6f 63 6b 2c 20 4e 6f 76 69 74 61 20 41 | ilot.chat,.AWS.Bedrock,.Novita.A |
| 2f600 | 49 2c 20 78 41 49 2c 20 53 61 6d 62 61 6e 6f 76 61 2c 20 4d 69 73 74 72 61 6c 20 4c 65 0a 3b 3b | I,.xAI,.Sambanova,.Mistral.Le.;; |
| 2f620 | 20 20 20 43 68 61 74 20 61 6e 64 20 4b 61 67 69 20 28 46 61 73 74 47 50 54 20 26 20 53 75 6d 6d | ...Chat.and.Kagi.(FastGPT.&.Summ |
| 2f640 | 61 72 69 7a 65 72 29 2e 0a 3b 3b 20 2d 20 4c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 76 69 61 20 4f | arizer)..;;.-.Local.models.via.O |
| 2f660 | 6c 6c 61 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 2c 20 4c 6c 61 6d 61 66 69 6c 65 73 20 6f 72 20 | llama,.Llama.cpp,.Llamafiles.or. |
| 2f680 | 47 50 54 34 41 6c 6c 0a 3b 3b 0a 3b 3b 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 61 6e 79 20 | GPT4All.;;.;;.Additionally,.any. |
| 2f6a0 | 4c 4c 4d 20 73 65 72 76 69 63 65 20 28 6c 6f 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 74 68 | LLM.service.(local.or.remote).th |
| 2f6c0 | 61 74 20 70 72 6f 76 69 64 65 73 20 61 6e 0a 3b 3b 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 | at.provides.an.;;.OpenAI-compati |
| 2f6e0 | 62 6c 65 20 41 50 49 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0a 3b 3b 0a 3b 3b 20 46 65 61 74 | ble.API.is.supported..;;.;;.Feat |
| 2f700 | 75 72 65 73 3a 0a 3b 3b 0a 3b 3b 20 2d 20 49 74 e2 80 99 73 20 61 73 79 6e 63 20 61 6e 64 20 66 | ures:.;;.;;.-.It...s.async.and.f |
| 2f720 | 61 73 74 2c 20 73 74 72 65 61 6d 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 3b 3b 20 2d 20 49 6e 74 | ast,.streams.responses..;;.-.Int |
| 2f740 | 65 72 61 63 74 20 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e | eract.with.LLMs.from.anywhere.in |
| 2f760 | 20 45 6d 61 63 73 20 28 61 6e 79 20 62 75 66 66 65 72 2c 20 73 68 65 6c 6c 2c 20 6d 69 6e 69 62 | .Emacs.(any.buffer,.shell,.minib |
| 2f780 | 75 66 66 65 72 2c 0a 3b 3b 20 20 20 77 68 65 72 65 76 65 72 29 2e 0a 3b 3b 20 2d 20 4c 4c 4d 20 | uffer,.;;...wherever)..;;.-.LLM. |
| 2f7a0 | 72 65 73 70 6f 6e 73 65 73 20 61 72 65 20 69 6e 20 4d 61 72 6b 64 6f 77 6e 20 6f 72 20 4f 72 67 | responses.are.in.Markdown.or.Org |
| 2f7c0 | 20 6d 61 72 6b 75 70 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 63 6f 6e 76 65 72 73 61 74 | .markup..;;.-.Supports.conversat |
| 2f7e0 | 69 6f 6e 73 20 61 6e 64 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 | ions.and.multiple.independent.se |
| 2f800 | 73 73 69 6f 6e 73 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 74 6f 6f 6c 2d 75 73 65 20 74 | ssions..;;.-.Supports.tool-use.t |
| 2f820 | 6f 20 65 71 75 69 70 20 4c 4c 4d 73 20 77 69 74 68 20 61 67 65 6e 74 69 63 20 63 61 70 61 62 69 | o.equip.LLMs.with.agentic.capabi |
| 2f840 | 6c 69 74 69 65 73 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 4d 6f 64 65 6c 20 43 6f 6e 74 | lities..;;.-.Supports.Model.Cont |
| 2f860 | 65 78 74 20 50 72 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 75 | ext.Protocol.(MCP).integration.u |
| 2f880 | 73 69 6e 67 20 74 68 65 20 6d 63 70 2e 65 6c 20 70 61 63 6b 61 67 65 2e 0a 3b 3b 20 2d 20 53 75 | sing.the.mcp.el.package..;;.-.Su |
| 2f8a0 | 70 70 6f 72 74 73 20 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 6d 6f 64 65 6c 73 20 28 73 65 6e 64 20 | pports.multi-modal.models.(send. |
| 2f8c0 | 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 29 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 | images,.documents)..;;.-.Support |
| 2f8e0 | 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 20 69 6e 20 4c 4c 4d 20 72 65 73 | s."reasoning".content.in.LLM.res |
| 2f900 | 70 6f 6e 73 65 73 2e 0a 3b 3b 20 2d 20 53 61 76 65 20 63 68 61 74 73 20 61 73 20 72 65 67 75 6c | ponses..;;.-.Save.chats.as.regul |
| 2f920 | 61 72 20 4d 61 72 6b 64 6f 77 6e 2f 4f 72 67 2f 54 65 78 74 20 66 69 6c 65 73 20 61 6e 64 20 72 | ar.Markdown/Org/Text.files.and.r |
| 2f940 | 65 73 75 6d 65 20 74 68 65 6d 20 6c 61 74 65 72 2e 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 67 | esume.them.later..;;.-.You.can.g |
| 2f960 | 6f 20 62 61 63 6b 20 61 6e 64 20 65 64 69 74 20 79 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 72 | o.back.and.edit.your.previous.pr |
| 2f980 | 6f 6d 70 74 73 20 6f 72 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 77 68 65 6e 0a 3b 3b 20 20 | ompts.or.LLM.responses.when.;;.. |
| 2f9a0 | 20 63 6f 6e 74 69 6e 75 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 20 20 54 68 65 | .continuing.a.conversation...The |
| 2f9c0 | 73 65 20 77 69 6c 6c 20 62 65 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c | se.will.be.fed.back.to.the.model |
| 2f9e0 | 2e 0a 3b 3b 20 2d 20 52 65 64 69 72 65 63 74 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 | ..;;.-.Redirect.prompts.and.resp |
| 2fa00 | 6f 6e 73 65 73 20 65 61 73 69 6c 79 0a 3b 3b 20 2d 20 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 | onses.easily.;;.-.Rewrite,.refac |
| 2fa20 | 74 6f 72 20 6f 72 20 66 69 6c 6c 20 69 6e 20 72 65 67 69 6f 6e 73 20 69 6e 20 62 75 66 66 65 72 | tor.or.fill.in.regions.in.buffer |
| 2fa40 | 73 2e 0a 3b 3b 20 2d 20 57 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 20 | s..;;.-.Write.your.own.commands. |
| 2fa60 | 66 6f 72 20 63 75 73 74 6f 6d 20 74 61 73 6b 73 20 77 69 74 68 20 61 20 73 69 6d 70 6c 65 20 41 | for.custom.tasks.with.a.simple.A |
| 2fa80 | 50 49 2e 0a 3b 3b 0a 3b 3b 20 52 65 71 75 69 72 65 6d 65 6e 74 73 20 66 6f 72 20 43 68 61 74 47 | PI..;;.;;.Requirements.for.ChatG |
| 2faa0 | 50 54 2c 20 41 7a 75 72 65 2c 20 47 65 6d 69 6e 69 20 6f 72 20 4b 61 67 69 3a 0a 3b 3b 0a 3b 3b | PT,.Azure,.Gemini.or.Kagi:.;;.;; |
| 2fac0 | 20 2d 20 59 6f 75 20 6e 65 65 64 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 41 50 49 20 6b | .-.You.need.an.appropriate.API.k |
| 2fae0 | 65 79 2e 20 20 53 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 61 70 69 | ey...Set.the.variable.`gptel-api |
| 2fb00 | 2d 6b 65 79 27 20 74 6f 20 74 68 65 0a 3b 3b 20 20 20 6b 65 79 20 6f 72 20 74 6f 20 61 20 66 75 | -key'.to.the.;;...key.or.to.a.fu |
| 2fb20 | 6e 63 74 69 6f 6e 20 6f 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 75 | nction.of.no.arguments.that.retu |
| 2fb40 | 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 28 49 74 20 74 72 69 65 73 20 74 6f 0a 3b 3b 20 20 20 | rns.the.key...(It.tries.to.;;... |
| 2fb60 | 75 73 65 20 60 61 75 74 68 2d 73 6f 75 72 63 65 27 20 62 79 20 64 65 66 61 75 6c 74 29 0a 3b 3b | use.`auth-source'.by.default).;; |
| 2fb80 | 0a 3b 3b 20 43 68 61 74 47 50 54 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 6f 75 74 20 6f 66 | .;;.ChatGPT.is.configured.out.of |
| 2fba0 | 20 74 68 65 20 62 6f 78 2e 20 20 46 6f 72 20 74 68 65 20 6f 74 68 65 72 20 73 6f 75 72 63 65 73 | .the.box...For.the.other.sources |
| 2fbc0 | 3a 0a 3b 3b 0a 3b 3b 20 2d 20 46 6f 72 20 41 7a 75 72 65 3a 20 64 65 66 69 6e 65 20 61 20 67 70 | :.;;.;;.-.For.Azure:.define.a.gp |
| 2fbe0 | 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 | tel-backend.with.`gptel-make-azu |
| 2fc00 | 72 65 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 47 65 6d 69 6e 69 3a | re',.which.see..;;.-.For.Gemini: |
| 2fc20 | 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 | .define.a.gptel-backend.with.`gp |
| 2fc40 | 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 | tel-make-gemini',.which.see..;;. |
| 2fc60 | 2d 20 46 6f 72 20 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 75 64 65 29 3a 20 64 65 66 69 6e 65 | -.For.Anthropic.(Claude):.define |
| 2fc80 | 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b | .a.gptel-backend.with.`gptel-mak |
| 2fca0 | 65 2d 61 6e 74 68 72 6f 70 69 63 27 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b | e-anthropic',.;;...which.see..;; |
| 2fcc0 | 20 2d 20 46 6f 72 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 20 41 6e 79 73 63 61 6c 65 2c 20 47 72 | .-.For.Together.ai,.Anyscale,.Gr |
| 2fce0 | 6f 71 2c 20 4f 70 65 6e 52 6f 75 74 65 72 2c 20 44 65 65 70 53 65 65 6b 2c 20 43 65 72 65 62 72 | oq,.OpenRouter,.DeepSeek,.Cerebr |
| 2fd00 | 61 73 20 6f 72 0a 3b 3b 20 20 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 3a 20 64 65 66 69 6e 65 | as.or.;;...Github.Models:.define |
| 2fd20 | 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b | .a.gptel-backend.with.`gptel-mak |
| 2fd40 | 65 2d 6f 70 65 6e 61 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 50 | e-openai',.which.see..;;.-.For.P |
| 2fd60 | 72 69 76 61 74 65 47 50 54 3a 20 64 65 66 69 6e 65 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | rivateGPT:.define.a.backend.with |
| 2fd80 | 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 27 2c 20 77 68 69 63 68 20 | .`gptel-make-privategpt',.which. |
| 2fda0 | 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 50 65 72 70 6c 65 78 69 74 79 3a 20 64 65 66 69 6e 65 | see..;;.-.For.Perplexity:.define |
| 2fdc0 | 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 | .a.backend.with.`gptel-make-perp |
| 2fde0 | 6c 65 78 69 74 79 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 44 65 65 | lexity',.which.see..;;.-.For.Dee |
| 2fe00 | 70 73 65 65 6b 3a 20 64 65 66 69 6e 65 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 | pseek:.define.a.backend.with.`gp |
| 2fe20 | 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b | tel-make-deepseek',.which.see..; |
| 2fe40 | 3b 20 2d 20 46 6f 72 20 4b 61 67 69 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 | ;.-.For.Kagi:.define.a.gptel-bac |
| 2fe60 | 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 27 2c 20 77 68 69 | kend.with.`gptel-make-kagi',.whi |
| 2fe80 | 63 68 20 73 65 65 2e 0a 3b 3b 0a 3b 3b 20 46 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 75 | ch.see..;;.;;.For.local.models.u |
| 2fea0 | 73 69 6e 67 20 4f 6c 6c 61 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 47 50 54 34 41 6c | sing.Ollama,.Llama.cpp.or.GPT4Al |
| 2fec0 | 6c 3a 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 6d 6f 64 65 6c 20 68 61 73 20 74 6f 20 62 65 20 72 | l:.;;.;;.-.The.model.has.to.be.r |
| 2fee0 | 75 6e 6e 69 6e 67 20 6f 6e 20 61 6e 20 61 63 63 65 73 73 69 62 6c 65 20 61 64 64 72 65 73 73 20 | unning.on.an.accessible.address. |
| 2ff00 | 28 6f 72 20 6c 6f 63 61 6c 68 6f 73 74 29 0a 3b 3b 20 2d 20 44 65 66 69 6e 65 20 61 20 67 70 74 | (or.localhost).;;.-.Define.a.gpt |
| 2ff20 | 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 | el-backend.with.`gptel-make-olla |
| 2ff40 | 6d 61 27 20 6f 72 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 2c 0a 3b 3b 20 | ma'.or.`gptel-make-gpt4all',.;;. |
| 2ff60 | 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 4c | ..which.see..;;.-.Llama.cpp.or.L |
| 2ff80 | 6c 61 6d 61 66 69 6c 65 73 3a 20 44 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | lamafiles:.Define.a.gptel-backen |
| 2ffa0 | 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e 0a 3b 3b 0a 3b | d.with.`gptel-make-openai'..;;.; |
| 2ffc0 | 3b 20 43 6f 6e 73 75 6c 74 20 74 68 65 20 70 61 63 6b 61 67 65 20 52 45 41 44 4d 45 20 66 6f 72 | ;.Consult.the.package.README.for |
| 2ffe0 | 20 65 78 61 6d 70 6c 65 73 20 61 6e 64 20 6d 6f 72 65 20 68 65 6c 70 20 77 69 74 68 20 63 6f 6e | .examples.and.more.help.with.con |
| 30000 | 66 69 67 75 72 69 6e 67 0a 3b 3b 20 62 61 63 6b 65 6e 64 73 2e 0a 3b 3b 0a 3b 3b 20 55 73 61 67 | figuring.;;.backends..;;.;;.Usag |
| 30020 | 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 63 61 6e 20 62 65 20 75 73 65 64 20 69 6e 20 61 6e | e:.;;.;;.gptel.can.be.used.in.an |
| 30040 | 79 20 62 75 66 66 65 72 20 6f 72 20 69 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 | y.buffer.or.in.a.dedicated.chat. |
| 30060 | 62 75 66 66 65 72 2e 20 20 54 68 65 0a 3b 3b 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 6d 6f 64 65 | buffer...The.;;.interaction.mode |
| 30080 | 6c 20 69 73 20 73 69 6d 70 6c 65 3a 20 54 79 70 65 20 69 6e 20 61 20 71 75 65 72 79 20 61 6e 64 | l.is.simple:.Type.in.a.query.and |
| 300a0 | 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 0a 3b 3b 20 69 6e 73 65 72 74 65 | .the.response.will.be.;;.inserte |
| 300c0 | 64 20 62 65 6c 6f 77 2e 20 20 59 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 | d.below...You.can.continue.the.c |
| 300e0 | 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 62 65 6c 6f 77 20 74 68 65 0a | onversation.by.typing.below.the. |
| 30100 | 3b 3b 20 72 65 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 69 | ;;.response..;;.;;.To.use.this.i |
| 30120 | 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 0a 3b 3b 0a 3b 3b 20 2d 20 43 61 6c 6c 20 60 67 70 74 65 | n.any.buffer:.;;.;;.-.Call.`gpte |
| 30140 | 6c 2d 73 65 6e 64 27 20 74 6f 20 73 65 6e 64 20 74 68 65 20 62 75 66 66 65 72 27 73 20 74 65 78 | l-send'.to.send.the.buffer's.tex |
| 30160 | 74 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 53 65 6c 65 63 74 20 61 0a 3b 3b | t.up.to.the.cursor...Select.a.;; |
| 30180 | 20 20 20 72 65 67 69 6f 6e 20 74 6f 20 73 65 6e 64 20 6f 6e 6c 79 20 74 68 65 20 72 65 67 69 6f | ...region.to.send.only.the.regio |
| 301a0 | 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 73 65 6c 65 63 74 20 70 72 65 76 69 6f | n..;;.;;.-.You.can.select.previo |
| 301c0 | 75 73 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 63 6f 6e 74 | us.prompts.and.responses.to.cont |
| 301e0 | 69 6e 75 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 43 | inue.the.conversation..;;.;;.-.C |
| 30200 | 61 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 | all.`gptel-send'.with.a.prefix.a |
| 30220 | 72 67 75 6d 65 6e 74 20 74 6f 20 61 63 63 65 73 73 20 61 20 6d 65 6e 75 20 77 68 65 72 65 20 79 | rgument.to.access.a.menu.where.y |
| 30240 | 6f 75 20 63 61 6e 20 73 65 74 0a 3b 3b 20 20 20 79 6f 75 72 20 62 61 63 6b 65 6e 64 2c 20 6d 6f | ou.can.set.;;...your.backend,.mo |
| 30260 | 64 65 6c 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 2c 20 6f 72 20 74 6f 20 | del.and.other.parameters,.or.to. |
| 30280 | 72 65 64 69 72 65 63 74 20 74 68 65 0a 3b 3b 20 20 20 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 | redirect.the.;;...prompt/respons |
| 302a0 | 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 69 6e 20 61 20 64 65 64 69 63 61 | e..;;.;;.To.use.this.in.a.dedica |
| 302c0 | 74 65 64 20 62 75 66 66 65 72 3a 0a 3b 3b 20 0a 3b 3b 20 2d 20 4d 2d 78 20 67 70 74 65 6c 3a 20 | ted.buffer:.;;..;;.-.M-x.gptel:. |
| 302e0 | 53 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 49 6e | Start.a.chat.session..;;.;;.-.In |
| 30300 | 20 74 68 65 20 63 68 61 74 20 73 65 73 73 69 6f 6e 3a 20 50 72 65 73 73 20 60 43 2d 63 20 52 45 | .the.chat.session:.Press.`C-c.RE |
| 30320 | 54 27 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 29 20 74 6f 20 73 65 6e 64 20 79 6f 75 72 20 70 | T'.(`gptel-send').to.send.your.p |
| 30340 | 72 6f 6d 70 74 2e 0a 3b 3b 20 20 20 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e | rompt..;;...Use.a.prefix.argumen |
| 30360 | 74 20 28 60 43 2d 75 20 43 2d 63 20 52 45 54 27 29 20 74 6f 20 61 63 63 65 73 73 20 61 20 6d 65 | t.(`C-u.C-c.RET').to.access.a.me |
| 30380 | 6e 75 2e 20 20 49 6e 20 74 68 69 73 20 6d 65 6e 75 20 79 6f 75 0a 3b 3b 20 20 20 63 61 6e 20 73 | nu...In.this.menu.you.;;...can.s |
| 303a0 | 65 74 20 63 68 61 74 20 70 61 72 61 6d 65 74 65 72 73 20 6c 69 6b 65 20 74 68 65 20 73 79 73 74 | et.chat.parameters.like.the.syst |
| 303c0 | 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 6f 72 | em.directives,.active.backend.or |
| 303e0 | 0a 3b 3b 20 20 20 6d 6f 64 65 6c 2c 20 6f 72 20 63 68 6f 6f 73 65 20 74 6f 20 72 65 64 69 72 65 | .;;...model,.or.choose.to.redire |
| 30400 | 63 74 20 74 68 65 20 69 6e 70 75 74 20 6f 72 20 6f 75 74 70 75 74 20 65 6c 73 65 77 68 65 72 65 | ct.the.input.or.output.elsewhere |
| 30420 | 20 28 73 75 63 68 20 61 73 20 74 6f 20 74 68 65 0a 3b 3b 20 20 20 6b 69 6c 6c 20 72 69 6e 67 20 | .(such.as.to.the.;;...kill.ring. |
| 30440 | 6f 72 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 29 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 | or.the.echo.area)..;;.;;.-.You.c |
| 30460 | 61 6e 20 73 61 76 65 20 74 68 69 73 20 62 75 66 66 65 72 20 74 6f 20 61 20 66 69 6c 65 2e 20 20 | an.save.this.buffer.to.a.file... |
| 30480 | 57 68 65 6e 20 6f 70 65 6e 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2c 20 74 75 72 6e 20 6f 6e 0a | When.opening.this.file,.turn.on. |
| 304a0 | 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 62 65 66 6f 72 65 20 65 64 69 74 69 6e 67 | ;;...`gptel-mode'.before.editing |
| 304c0 | 20 69 74 20 74 6f 20 72 65 73 74 6f 72 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 | .it.to.restore.the.conversation. |
| 304e0 | 73 74 61 74 65 20 61 6e 64 0a 3b 3b 20 20 20 63 6f 6e 74 69 6e 75 65 20 63 68 61 74 74 69 6e 67 | state.and.;;...continue.chatting |
| 30500 | 2e 0a 3b 3b 0a 3b 3b 20 2d 20 54 6f 20 69 6e 63 6c 75 64 65 20 6d 65 64 69 61 20 66 69 6c 65 73 | ..;;.;;.-.To.include.media.files |
| 30520 | 20 77 69 74 68 20 79 6f 75 72 20 72 65 71 75 65 73 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 | .with.your.request,.you.can.add. |
| 30540 | 74 68 65 6d 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 0a 3b 3b 20 20 20 28 64 65 73 63 72 69 | them.to.the.context.;;...(descri |
| 30560 | 62 65 64 20 6e 65 78 74 29 2c 20 6f 72 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 20 61 73 20 6c 69 | bed.next),.or.include.them.as.li |
| 30580 | 6e 6b 73 20 69 6e 20 4f 72 67 20 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 6d 6f 64 65 20 63 68 61 74 | nks.in.Org.or.Markdown.mode.chat |
| 305a0 | 0a 3b 3b 20 20 20 62 75 66 66 65 72 73 2e 20 20 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 69 73 | .;;...buffers...Sending.media.is |
| 305c0 | 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 79 6f 75 20 63 61 6e 20 74 75 | .disabled.by.default,.you.can.tu |
| 305e0 | 72 6e 20 69 74 20 6f 6e 20 67 6c 6f 62 61 6c 6c 79 0a 3b 3b 20 20 20 76 69 61 20 60 67 70 74 65 | rn.it.on.globally.;;...via.`gpte |
| 30600 | 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 27 2c 20 6f 72 20 6c 6f 63 61 6c 6c 79 20 69 6e 20 61 20 | l-track-media',.or.locally.in.a. |
| 30620 | 63 68 61 74 20 62 75 66 66 65 72 20 76 69 61 20 74 68 65 20 68 65 61 64 65 72 20 6c 69 6e 65 2e | chat.buffer.via.the.header.line. |
| 30640 | 0a 3b 3b 20 0a 3b 3b 20 49 6e 63 6c 75 64 65 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 20 77 69 74 | .;;..;;.Include.more.context.wit |
| 30660 | 68 20 72 65 71 75 65 73 74 73 3a 0a 3b 3b 0a 3b 3b 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f | h.requests:.;;.;;.If.you.want.to |
| 30680 | 20 70 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 6d 6f 72 65 20 63 6f 6e 74 65 | .provide.the.LLM.with.more.conte |
| 306a0 | 78 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 61 72 62 69 74 72 61 72 79 0a 3b 3b 20 72 65 67 | xt,.you.can.add.arbitrary.;;.reg |
| 306c0 | 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 2c 20 66 69 6c 65 73 20 6f 72 20 64 69 72 65 63 74 6f 72 | ions,.buffers,.files.or.director |
| 306e0 | 69 65 73 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 77 69 74 68 20 60 67 70 74 65 6c 2d 61 64 64 | ies.to.the.query.with.`gptel-add |
| 30700 | 27 2e 20 20 54 6f 20 61 64 64 0a 3b 3b 20 74 65 78 74 20 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 | '...To.add.;;.text.or.media.file |
| 30720 | 73 2c 20 63 61 6c 6c 20 60 67 70 74 65 6c 2d 61 64 64 27 20 69 6e 20 44 69 72 65 64 20 6f 72 20 | s,.call.`gptel-add'.in.Dired.or. |
| 30740 | 75 73 65 20 74 68 65 20 64 65 64 69 63 61 74 65 64 0a 3b 3b 20 60 67 70 74 65 6c 2d 61 64 64 2d | use.the.dedicated.;;.`gptel-add- |
| 30760 | 66 69 6c 65 27 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 64 64 20 63 6f | file'..;;.;;.You.can.also.add.co |
| 30780 | 6e 74 65 78 74 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 69 6e 73 74 65 61 64 20 | ntext.from.gptel's.menu.instead. |
| 307a0 | 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 0a 3b 3b 20 70 72 65 66 69 78 20 61 | (`gptel-send'.with.a.;;.prefix.a |
| 307c0 | 72 67 29 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 65 78 61 6d 69 6e 65 20 6f 72 20 6d 6f 64 69 66 | rg),.as.well.as.examine.or.modif |
| 307e0 | 79 20 63 6f 6e 74 65 78 74 2e 0a 3b 3b 0a 3b 3b 20 57 68 65 6e 20 63 6f 6e 74 65 78 74 20 69 73 | y.context..;;.;;.When.context.is |
| 30800 | 20 61 76 61 69 6c 61 62 6c 65 2c 20 67 70 74 65 6c 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 69 | .available,.gptel.will.include.i |
| 30820 | 74 20 77 69 74 68 20 65 61 63 68 20 4c 4c 4d 20 71 75 65 72 79 2e 0a 3b 3b 0a 3b 3b 20 4c 4c 4d | t.with.each.LLM.query..;;.;;.LLM |
| 30840 | 20 54 6f 6f 6c 20 75 73 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 73 75 70 70 6f 72 74 73 20 | .Tool.use:.;;.;;.gptel.supports. |
| 30860 | 22 74 6f 6f 6c 20 63 61 6c 6c 69 6e 67 22 20 62 65 68 61 76 69 6f 72 2c 20 77 68 65 72 65 20 4c | "tool.calling".behavior,.where.L |
| 30880 | 4c 4d 73 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 72 67 75 6d 65 6e 74 73 20 77 69 74 68 0a 3b | LMs.can.specify.arguments.with.; |
| 308a0 | 3b 20 77 68 69 63 68 20 74 6f 20 63 61 6c 6c 20 70 72 6f 76 69 64 65 64 20 22 74 6f 6f 6c 73 22 | ;.which.to.call.provided."tools" |
| 308c0 | 20 28 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 73 29 2e 20 20 54 68 65 20 72 65 73 75 6c 74 73 | .(elisp.functions)...The.results |
| 308e0 | 20 6f 66 20 72 75 6e 6e 69 6e 67 20 74 68 65 0a 3b 3b 20 74 6f 6f 6c 73 20 61 72 65 20 66 65 64 | .of.running.the.;;.tools.are.fed |
| 30900 | 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 67 69 76 69 6e 67 20 69 74 20 63 61 70 61 | .back.to.the.LLM,.giving.it.capa |
| 30920 | 62 69 6c 69 74 69 65 73 20 61 6e 64 20 6b 6e 6f 77 6c 65 64 67 65 20 62 65 79 6f 6e 64 0a 3b 3b | bilities.and.knowledge.beyond.;; |
| 30940 | 20 77 68 61 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f | .what.is.available.out.of.the.bo |
| 30960 | 78 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f 6f 6c 73 20 63 61 6e 20 70 65 72 66 6f | x...For.example,.tools.can.perfo |
| 30980 | 72 6d 20 77 65 62 0a 3b 3b 20 73 65 61 72 63 68 65 73 20 6f 72 20 41 50 49 20 6c 6f 6f 6b 75 70 | rm.web.;;.searches.or.API.lookup |
| 309a0 | 73 2c 20 6d 6f 64 69 66 79 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 2c | s,.modify.files.and.directories, |
| 309c0 | 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 73 20 63 61 6e 20 62 65 20 73 | .and.so.on..;;.;;.Tools.can.be.s |
| 309e0 | 70 65 63 69 66 69 65 64 20 76 69 61 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2c 20 | pecified.via.`gptel-make-tool',. |
| 30a00 | 6f 72 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 6f 74 68 65 72 0a 3b 3b 20 72 65 70 6f 73 69 | or.obtained.from.other.;;.reposi |
| 30a20 | 74 6f 72 69 65 73 2c 20 6f 72 20 66 72 6f 6d 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 | tories,.or.from.Model.Context.Pr |
| 30a40 | 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 74 68 65 20 6d | otocol.(MCP).servers.using.the.m |
| 30a60 | 63 70 2e 65 6c 0a 3b 3b 20 70 61 63 6b 61 67 65 2e 20 20 53 65 65 20 74 68 65 20 52 45 41 44 4d | cp.el.;;.package...See.the.READM |
| 30a80 | 45 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 73 20 63 61 6e 20 62 | E.for.details..;;.;;.Tools.can.b |
| 30aa0 | 65 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 4c 4c 4d 20 71 75 65 72 69 65 73 20 75 73 69 6e | e.included.with.LLM.queries.usin |
| 30ac0 | 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2c 20 6f 72 20 66 72 6f 6d 0a 3b 3b 20 60 67 70 74 65 | g.gptel's.menu,.or.from.;;.`gpte |
| 30ae0 | 6c 2d 74 6f 6f 6c 73 27 2e 0a 3b 3b 0a 3b 3b 20 52 65 77 72 69 74 65 20 69 6e 74 65 72 66 61 63 | l-tools'..;;.;;.Rewrite.interfac |
| 30b00 | 65 0a 3b 3b 0a 3b 3b 20 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 20 77 69 74 68 20 61 20 72 65 | e.;;.;;.In.any.buffer:.with.a.re |
| 30b20 | 67 69 6f 6e 20 73 65 6c 65 63 74 65 64 2c 20 79 6f 75 20 63 61 6e 20 72 65 77 72 69 74 65 20 70 | gion.selected,.you.can.rewrite.p |
| 30b40 | 72 6f 73 65 2c 20 72 65 66 61 63 74 6f 72 20 63 6f 64 65 0a 3b 3b 20 6f 72 20 66 69 6c 6c 20 69 | rose,.refactor.code.;;.or.fill.i |
| 30b60 | 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 20 20 54 68 69 73 20 69 73 20 61 63 63 65 73 73 69 62 6c | n.the.region...This.is.accessibl |
| 30b80 | 65 20 76 69 61 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 27 2c 20 61 6e 64 20 61 6c 73 6f 20 | e.via.`gptel-rewrite',.and.also. |
| 30ba0 | 66 72 6f 6d 0a 3b 3b 20 74 68 65 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 6d 65 6e 75 2e 0a 3b | from.;;.the.`gptel-send'.menu..; |
| 30bc0 | 3b 0a 3b 3b 20 50 72 65 73 65 74 73 0a 3b 3b 0a 3b 3b 20 44 65 66 69 6e 65 20 61 20 62 75 6e 64 | ;.;;.Presets.;;.;;.Define.a.bund |
| 30be0 | 6c 65 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 6d 6f 64 65 6c 2c 20 62 61 63 6b | le.of.configuration.(model,.back |
| 30c00 | 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 74 6f 6f 6c 73 20 65 74 63 29 0a | end,.system.message,.tools.etc). |
| 30c20 | 3b 3b 20 61 73 20 61 20 22 70 72 65 73 65 74 22 20 74 68 61 74 20 63 61 6e 20 62 65 20 61 70 70 | ;;.as.a."preset".that.can.be.app |
| 30c40 | 6c 69 65 64 20 74 6f 67 65 74 68 65 72 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f | lied.together,.making.it.easy.to |
| 30c60 | 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 0a 3b 3b 20 74 61 73 6b 73 20 69 6e 20 67 70 74 65 | .switch.between.;;.tasks.in.gpte |
| 30c80 | 6c 2e 20 20 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 73 61 76 65 64 20 61 6e 64 20 61 70 70 | l...Presets.can.be.saved.and.app |
| 30ca0 | 6c 69 65 64 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 0a 3b 3b 20 6d | lied.from.gptel's.transient.;;.m |
| 30cc0 | 65 6e 75 2e 20 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 69 6e 63 6c 75 64 65 20 61 20 63 6f 6f | enu...You.can.also.include.a.coo |
| 30ce0 | 6b 69 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 22 40 70 72 65 73 65 74 2d 6e 61 6d 65 22 20 69 | kie.of.the.form."@preset-name".i |
| 30d00 | 6e 20 74 68 65 20 70 72 6f 6d 70 74 0a 3b 3b 20 74 6f 20 73 65 6e 64 20 61 20 72 65 71 75 65 73 | n.the.prompt.;;.to.send.a.reques |
| 30d20 | 74 20 77 69 74 68 20 61 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 2e 20 20 54 68 69 73 20 66 | t.with.a.preset.applied...This.f |
| 30d40 | 65 61 74 75 72 65 20 77 6f 72 6b 73 20 65 76 65 72 79 77 68 65 72 65 2c 20 62 75 74 0a 3b 3b 20 | eature.works.everywhere,.but.;;. |
| 30d60 | 70 72 65 73 65 74 20 63 6f 6f 6b 69 65 73 20 61 72 65 20 61 6c 73 6f 20 66 6f 6e 74 69 66 69 65 | preset.cookies.are.also.fontifie |
| 30d80 | 64 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 69 | d.in.chat.buffers..;;.;;.gptel.i |
| 30da0 | 6e 20 4f 72 67 20 6d 6f 64 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 6f 66 66 65 72 73 20 61 | n.Org.mode:.;;.;;.gptel.offers.a |
| 30dc0 | 20 66 65 77 20 65 78 74 72 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 20 69 6e 20 4f 72 67 20 6d | .few.extra.conveniences.in.Org.m |
| 30de0 | 6f 64 65 3a 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 6c 69 6d 69 74 20 74 68 65 20 63 | ode:.;;.;;.-.You.can.limit.the.c |
| 30e00 | 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f 6e 74 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 | onversation.context.to.an.Org.he |
| 30e20 | 61 64 69 6e 67 20 77 69 74 68 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 | ading.with.;;...`gptel-org-set-t |
| 30e40 | 6f 70 69 63 27 2e 0a 3b 3b 20 20 20 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 68 61 76 65 20 62 | opic'..;;....;;.-.You.can.have.b |
| 30e60 | 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 69 6e 20 4f 72 67 20 6d 6f | ranching.conversations.in.Org.mo |
| 30e80 | 64 65 2c 20 77 68 65 72 65 20 65 61 63 68 20 68 69 65 72 61 72 63 68 69 63 61 6c 0a 3b 3b 20 20 | de,.where.each.hierarchical.;;.. |
| 30ea0 | 20 6f 75 74 6c 69 6e 65 20 70 61 74 68 20 74 68 72 6f 75 67 68 20 74 68 65 20 64 6f 63 75 6d 65 | .outline.path.through.the.docume |
| 30ec0 | 6e 74 20 69 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 72 | nt.is.a.separate.conversation.br |
| 30ee0 | 61 6e 63 68 2e 0a 3b 3b 20 20 20 53 65 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 | anch..;;...See.the.variable.`gpt |
| 30f00 | 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 27 2e 0a 3b 3b 20 20 20 | el-org-branching-context'..;;... |
| 30f20 | 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 64 65 63 6c 61 72 65 20 74 68 65 20 67 70 74 65 6c 20 | .;;.-.You.can.declare.the.gptel. |
| 30f40 | 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 74 65 6d 70 65 72 61 74 75 72 65 2c 20 73 79 73 | model,.backend,.temperature,.sys |
| 30f60 | 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 3b 3b 20 20 20 6f 74 68 65 72 20 70 61 72 61 6d | tem.message.and.;;...other.param |
| 30f80 | 65 74 65 72 73 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 20 77 69 74 68 20 74 68 65 | eters.as.Org.properties.with.the |
| 30fa0 | 20 63 6f 6d 6d 61 6e 64 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f | .command.;;...`gptel-org-set-pro |
| 30fc0 | 70 65 72 74 69 65 73 27 2e 20 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 20 75 6e 64 65 72 20 74 | perties'...gptel.queries.under.t |
| 30fe0 | 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 68 65 61 64 69 6e 67 0a 3b 3b 20 20 20 77 69 | he.corresponding.heading.;;...wi |
| 31000 | 6c 6c 20 61 6c 77 61 79 73 20 75 73 65 20 74 68 65 73 65 20 73 65 74 74 69 6e 67 73 2c 20 61 6c | ll.always.use.these.settings,.al |
| 31020 | 6c 6f 77 69 6e 67 20 79 6f 75 20 74 6f 20 63 72 65 61 74 65 20 6d 6f 73 74 6c 79 20 72 65 70 72 | lowing.you.to.create.mostly.repr |
| 31040 | 6f 64 75 63 69 62 6c 65 0a 3b 3b 20 20 20 4c 4c 4d 20 63 68 61 74 20 6e 6f 74 65 62 6f 6f 6b 73 | oducible.;;...LLM.chat.notebooks |
| 31060 | 2e 0a 3b 3b 0a 3b 3b 20 46 69 6e 61 6c 6c 79 2c 20 67 70 74 65 6c 20 6f 66 66 65 72 73 20 61 20 | ..;;.;;.Finally,.gptel.offers.a. |
| 31080 | 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 41 50 49 20 66 6f 72 20 77 72 69 74 69 6e 67 20 | general.purpose.API.for.writing. |
| 310a0 | 4c 4c 4d 20 69 6e 65 72 61 63 74 69 6f 6e 73 20 74 68 61 74 0a 3b 3b 20 73 75 69 74 20 79 6f 75 | LLM.ineractions.that.;;.suit.you |
| 310c0 | 72 20 77 6f 72 6b 66 6c 6f 77 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 | r.workflow...See.`gptel-request' |
| 310e0 | 2c 20 61 6e 64 20 60 67 70 74 65 6c 2d 66 73 6d 27 20 66 6f 72 20 6d 6f 72 65 20 61 64 76 61 6e | ,.and.`gptel-fsm'.for.more.advan |
| 31100 | 63 65 64 0a 3b 3b 20 75 73 61 67 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 64 65 63 6c 61 72 | ced.;;.usage...;;;.Code:.(declar |
| 31120 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 22 6d 61 72 6b 64 6f | e-function.markdown-mode."markdo |
| 31140 | 77 6e 2d 6d 6f 64 65 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | wn-mode").(declare-function.gpte |
| 31160 | 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 22 67 70 74 65 6c 2d 63 75 72 6c 22 | l-curl-get-response."gptel-curl" |
| 31180 | 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 6d 65 6e 75 20 22 | ).(declare-function.gptel-menu." |
| 311a0 | 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | gptel-transient").(declare-funct |
| 311c0 | 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 20 22 67 70 74 65 6c 2d 74 | ion.gptel-system-prompt."gptel-t |
| 311e0 | 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 | ransient").(declare-function.gpt |
| 31200 | 65 6c 2d 74 6f 6f 6c 73 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 | el-tools."gptel-transient").(dec |
| 31220 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 75 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 | lare-function.pulse-momentary-hi |
| 31240 | 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 22 70 75 6c 73 65 22 29 0a 0a 28 64 65 63 6c 61 72 | ghlight-region."pulse")..(declar |
| 31260 | 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 | e-function.ediff-make-cloned-buf |
| 31280 | 66 65 72 20 22 65 64 69 66 66 2d 75 74 69 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | fer."ediff-util").(declare-funct |
| 312a0 | 69 6f 6e 20 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 20 22 65 64 69 66 | ion.ediff-regions-internal."edif |
| 312c0 | 66 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 68 6c 2d 6c 69 6e 65 2d 68 69 | f").(declare-function.hl-line-hi |
| 312e0 | 67 68 6c 69 67 68 74 20 22 68 6c 2d 6c 69 6e 65 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | ghlight."hl-line")..(declare-fun |
| 31300 | 63 74 69 6f 6e 20 6f 72 67 2d 65 73 63 61 70 65 2d 63 6f 64 65 2d 69 6e 2d 73 74 72 69 6e 67 20 | ction.org-escape-code-in-string. |
| 31320 | 22 6f 72 67 2d 73 72 63 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 | "org-src").(declare-function.gpt |
| 31340 | 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 22 67 70 | el-org--create-prompt-buffer."gp |
| 31360 | 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | tel-org").(declare-function.gpte |
| 31380 | 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 | l-org-set-topic."gptel-org").(de |
| 313a0 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d 73 | clare-function.gptel-org--save-s |
| 313c0 | 74 61 74 65 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | tate."gptel-org").(declare-funct |
| 313e0 | 69 6f 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 22 67 70 | ion.gptel-org--restore-state."gp |
| 31400 | 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | tel-org").(declare-function.gpte |
| 31420 | 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 | l--stream-convert-markdown->org. |
| 31440 | 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 | "gptel-org").(declare-function.g |
| 31460 | 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 22 67 70 74 | ptel--convert-markdown->org."gpt |
| 31480 | 65 6c 2d 6f 72 67 22 29 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 | el-org").(define-obsolete-functi |
| 314a0 | 6f 6e 2d 61 6c 69 61 73 0a 20 20 27 67 70 74 65 6c 2d 73 65 74 2d 74 6f 70 69 63 20 27 67 70 74 | on-alias...'gptel-set-topic.'gpt |
| 314c0 | 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 20 22 30 2e 37 2e 35 22 29 0a 0a 28 65 76 61 6c | el-org-set-topic."0.7.5")..(eval |
| 314e0 | 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 | -when-compile...(require.'subr-x |
| 31500 | 29 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 63 | )).(require.'cl-lib).(require.'c |
| 31520 | 6f 6d 70 61 74 20 6e 69 6c 20 74 29 0a 28 72 65 71 75 69 72 65 20 27 75 72 6c 29 0a 28 72 65 71 | ompat.nil.t).(require.'url).(req |
| 31540 | 75 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 74 65 78 74 2d 70 72 6f 70 65 72 | uire.'map).(require.'text-proper |
| 31560 | 74 79 2d 73 65 61 72 63 68 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 | ty-search).(require.'cl-generic) |
| 31580 | 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 0a 0a 0c 0a 3b 3b 3b 20 | .(require.'gptel-openai)....;;;. |
| 315a0 | 55 73 65 72 20 6f 70 74 69 6f 6e 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 67 70 74 65 6c 20 6e 69 | User.options..(defgroup.gptel.ni |
| 315c0 | 6c 0a 20 20 22 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 | l..."Interact.with.LLMs.from.any |
| 315e0 | 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 68 79 70 65 72 | where.in.Emacs."...:group.'hyper |
| 31600 | 6d 65 64 69 61 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 6f 78 79 20 22 | media)..(defcustom.gptel-proxy." |
| 31620 | 22 0a 20 20 22 50 61 74 68 20 74 6f 20 61 20 70 72 6f 78 79 20 74 6f 20 75 73 65 20 66 6f 72 20 | "..."Path.to.a.proxy.to.use.for. |
| 31640 | 67 70 74 65 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 2e 0a 50 61 73 73 65 64 20 74 6f 20 63 75 | gptel.interactions..Passed.to.cu |
| 31660 | 72 6c 20 76 69 61 20 2d 2d 70 72 6f 78 79 20 61 72 67 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 20 | rl.via.--proxy.arg,.for.example. |
| 31680 | 5c 22 70 72 6f 78 79 2e 79 6f 75 72 6f 72 67 2e 63 6f 6d 3a 38 30 5c 22 0a 4c 65 61 76 65 20 69 | \"proxy.yourorg.com:80\".Leave.i |
| 316a0 | 74 20 65 6d 70 74 79 20 69 66 20 79 6f 75 20 64 6f 6e 27 74 20 75 73 65 20 61 20 70 72 6f 78 79 | t.empty.if.you.don't.use.a.proxy |
| 316c0 | 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 | ."...:type.'string)..(defcustom. |
| 316e0 | 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 20 23 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 | gptel-api-key.#'gptel-api-key-fr |
| 31700 | 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 0a 20 20 22 41 6e 20 41 50 49 20 6b 65 79 20 28 73 74 | om-auth-source..."An.API.key.(st |
| 31720 | 72 69 6e 67 29 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 4c 4c 4d 20 62 61 63 6b 65 6e | ring).for.the.default.LLM.backen |
| 31740 | 64 2e 0a 0a 4f 70 65 6e 41 49 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 43 61 6e 20 61 6c 73 6f | d...OpenAI.by.default...Can.also |
| 31760 | 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 74 | .be.a.function.of.no.arguments.t |
| 31780 | 68 61 74 20 72 65 74 75 72 6e 73 20 61 6e 20 41 50 49 0a 6b 65 79 20 28 6d 6f 72 65 20 73 65 63 | hat.returns.an.API.key.(more.sec |
| 317a0 | 75 72 65 29 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 2e 22 0a 20 20 | ure).for.the.active.backend."... |
| 317c0 | 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 | :type.'(choice...........(string |
| 317e0 | 20 3a 74 61 67 20 22 41 50 49 20 6b 65 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 | .:tag."API.key")...........(func |
| 31800 | 74 69 6f 6e 20 3a 74 61 67 20 22 46 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 | tion.:tag."Function.that.returns |
| 31820 | 20 74 68 65 20 41 50 49 20 6b 65 79 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 | .the.API.key")))..(defcustom.gpt |
| 31840 | 65 6c 2d 73 74 72 65 61 6d 20 74 0a 20 20 22 53 74 72 65 61 6d 20 72 65 73 70 6f 6e 73 65 73 20 | el-stream.t..."Stream.responses. |
| 31860 | 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 61 73 20 74 68 65 79 20 61 72 65 20 72 65 63 65 69 76 65 | from.the.LLM.as.they.are.receive |
| 31880 | 64 2e 0a 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 69 67 6e 6f 72 65 64 20 75 6e 6c 65 73 | d...This.option.is.ignored.unles |
| 318a0 | 73 0a 2d 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 73 75 70 70 6f 72 74 73 20 73 74 72 | s.-.the.LLM.backend.supports.str |
| 318c0 | 65 61 6d 69 6e 67 2c 20 61 6e 64 0a 2d 20 43 75 72 6c 20 69 73 20 69 6e 20 75 73 65 20 28 73 65 | eaming,.and.-.Curl.is.in.use.(se |
| 318e0 | 65 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 27 29 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f | e.`gptel-use-curl')..When.set.to |
| 31900 | 20 6e 69 6c 2c 20 45 6d 61 63 73 20 77 61 69 74 73 20 66 6f 72 20 74 68 65 20 66 75 6c 6c 20 72 | .nil,.Emacs.waits.for.the.full.r |
| 31920 | 65 73 70 6f 6e 73 65 20 61 6e 64 20 69 6e 73 65 72 74 73 20 69 74 0a 61 6c 6c 20 61 74 20 6f 6e | esponse.and.inserts.it.all.at.on |
| 31940 | 63 65 2e 20 20 54 68 69 73 20 77 61 69 74 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2e 0a | ce...This.wait.is.asynchronous.. |
| 31960 | 0a 5c 3d 27 74 69 73 20 61 20 62 69 74 20 73 69 6c 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 | .\='tis.a.bit.silly."...:type.'b |
| 31980 | 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 | oolean)..(defcustom.gptel-use-cu |
| 319a0 | 72 6c 20 28 61 6e 64 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 63 75 72 6c 22 29 | rl.(and.(executable-find."curl") |
| 319c0 | 20 74 29 0a 20 20 22 57 68 65 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 70 72 65 66 | .t)..."Whether.gptel.should.pref |
| 319e0 | 65 72 20 43 75 72 6c 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 43 61 6e 20 62 65 20 | er.Curl.when.available...Can.be. |
| 31a00 | 73 65 74 20 74 6f 20 74 2c 20 6e 69 6c 2c 20 6f 72 20 61 20 73 74 72 69 6e 67 20 70 61 74 68 20 | set.to.t,.nil,.or.a.string.path. |
| 31a20 | 74 6f 20 74 68 65 20 63 75 72 6c 20 65 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 | to.the.curl.executable."...:type |
| 31a40 | 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | .'(choice...........(const.:tag. |
| 31a60 | 22 44 6f 20 6e 6f 74 20 75 73 65 20 43 75 72 6c 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 | "Do.not.use.Curl".nil).......... |
| 31a80 | 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 43 75 72 6c 22 20 74 29 0a 20 20 20 20 20 | .(const.:tag."Use.Curl".t)...... |
| 31aa0 | 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 70 61 74 68 20 | .....(string.:tag."Specify.path. |
| 31ac0 | 74 6f 20 74 68 65 20 43 75 72 6c 20 65 78 65 63 75 74 61 62 6c 65 22 29 29 29 0a 0a 28 64 65 66 | to.the.Curl.executable")))..(def |
| 31ae0 | 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 73 70 6f 6e 73 | custom.gptel-org-convert-respons |
| 31b00 | 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 63 6f 6e 76 | e.t..."Whether.gptel.should.conv |
| 31b20 | 65 72 74 20 4d 61 72 6b 64 6f 77 6e 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 4f 72 67 20 6d 61 | ert.Markdown.responses.to.Org.ma |
| 31b40 | 72 6b 75 70 2e 0a 0a 54 68 69 73 20 6f 6e 6c 79 20 61 66 66 65 63 74 73 20 72 65 71 75 65 73 74 | rkup...This.only.affects.request |
| 31b60 | 73 20 6f 72 69 67 69 6e 61 74 69 6e 67 20 66 72 6f 6d 20 4f 72 67 20 6d 6f 64 65 20 62 75 66 66 | s.originating.from.Org.mode.buff |
| 31b80 | 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 | ers."...:type.'boolean)..(defcus |
| 31ba0 | 74 6f 6d 20 67 70 74 65 6c 2d 63 75 72 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f | tom.gptel-curl-file-size-thresho |
| 31bc0 | 6c 64 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 27 28 77 69 6e | ld...(if.(memq.system-type.'(win |
| 31be0 | 64 6f 77 73 2d 6e 74 20 6d 73 2d 64 6f 73 29 29 20 23 78 36 66 66 65 20 31 33 30 30 30 30 29 0a | dows-nt.ms-dos)).#x6ffe.130000). |
| 31c00 | 20 20 22 53 69 7a 65 20 74 68 72 65 73 68 6f 6c 64 20 66 6f 72 20 75 73 69 6e 67 20 66 69 6c 65 | .."Size.threshold.for.using.file |
| 31c20 | 20 69 6e 70 75 74 20 77 69 74 68 20 43 75 72 6c 2e 0a 0a 53 70 65 63 69 66 69 65 73 20 74 68 65 | .input.with.Curl...Specifies.the |
| 31c40 | 20 73 69 7a 65 20 74 68 72 65 73 68 6f 6c 64 20 66 6f 72 20 77 68 65 6e 20 74 6f 20 75 73 65 20 | .size.threshold.for.when.to.use. |
| 31c60 | 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 74 6f 20 70 61 73 73 20 64 61 74 61 20 74 6f | a.temporary.file.to.pass.data.to |
| 31c80 | 0a 43 75 72 6c 20 69 6e 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 2e 20 20 49 66 20 74 68 65 20 | .Curl.in.gptel.queries...If.the. |
| 31ca0 | 73 69 7a 65 20 6f 66 20 74 68 65 20 64 61 74 61 20 74 6f 20 62 65 20 73 65 6e 74 20 65 78 63 65 | size.of.the.data.to.be.sent.exce |
| 31cc0 | 65 64 73 20 74 68 69 73 0a 74 68 72 65 73 68 6f 6c 64 2c 20 74 68 65 20 64 61 74 61 20 69 73 20 | eds.this.threshold,.the.data.is. |
| 31ce0 | 77 72 69 74 74 65 6e 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 61 6e 64 20 | written.to.a.temporary.file.and. |
| 31d00 | 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 75 73 69 6e 67 20 74 68 65 0a 60 2d 2d 64 61 74 61 | passed.to.Curl.using.the.`--data |
| 31d20 | 2d 62 69 6e 61 72 79 27 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 61 20 66 69 6c 65 20 72 65 66 65 | -binary'.option.with.a.file.refe |
| 31d40 | 72 65 6e 63 65 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 64 61 74 61 20 69 73 20 70 | rence...Otherwise,.the.data.is.p |
| 31d60 | 61 73 73 65 64 0a 64 69 72 65 63 74 6c 79 20 61 73 20 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 | assed.directly.as.a.command-line |
| 31d80 | 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 54 68 65 20 76 61 6c 75 65 20 69 73 20 61 6e 20 69 6e 74 65 | .argument...The.value.is.an.inte |
| 31da0 | 67 65 72 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 | ger.representing.the.number.of.b |
| 31dc0 | 79 74 65 73 2e 0a 0a 41 64 6a 75 73 74 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 20 6d 61 79 20 | ytes...Adjusting.this.value.may. |
| 31de0 | 62 65 20 6e 65 63 65 73 73 61 72 79 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 65 6e | be.necessary.depending.on.the.en |
| 31e00 | 76 69 72 6f 6e 6d 65 6e 74 0a 61 6e 64 20 74 68 65 20 74 79 70 69 63 61 6c 20 73 69 7a 65 20 6f | vironment.and.the.typical.size.o |
| 31e20 | 66 20 74 68 65 20 64 61 74 61 20 62 65 69 6e 67 20 73 65 6e 74 20 69 6e 20 67 70 74 65 6c 20 71 | f.the.data.being.sent.in.gptel.q |
| 31e40 | 75 65 72 69 65 73 2e 0a 41 20 6c 61 72 67 65 72 20 76 61 6c 75 65 20 6d 61 79 20 69 6d 70 72 6f | ueries..A.larger.value.may.impro |
| 31e60 | 76 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 79 20 61 76 6f 69 64 69 6e 67 20 74 68 65 20 6f | ve.performance.by.avoiding.the.o |
| 31e80 | 76 65 72 68 65 61 64 20 6f 66 20 63 72 65 61 74 69 6e 67 0a 74 65 6d 70 6f 72 61 72 79 20 66 69 | verhead.of.creating.temporary.fi |
| 31ea0 | 6c 65 73 20 66 6f 72 20 73 6d 61 6c 6c 20 64 61 74 61 20 70 61 79 6c 6f 61 64 73 2c 20 77 68 69 | les.for.small.data.payloads,.whi |
| 31ec0 | 6c 65 20 61 20 73 6d 61 6c 6c 65 72 20 76 61 6c 75 65 20 6d 61 79 20 62 65 20 6e 65 65 64 65 64 | le.a.smaller.value.may.be.needed |
| 31ee0 | 0a 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 20 73 69 | .if.the.command-line.argument.si |
| 31f00 | 7a 65 20 69 73 20 6c 69 6d 69 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 | ze.is.limited.by.the.operating.s |
| 31f20 | 79 73 74 65 6d 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 6f 66 20 23 78 38 30 30 30 20 66 6f | ystem...The.default.of.#x8000.fo |
| 31f40 | 72 20 77 69 6e 64 6f 77 73 20 63 6f 6d 65 73 20 66 72 6f 6d 20 4d 69 63 72 6f 73 6f 66 74 20 64 | r.windows.comes.from.Microsoft.d |
| 31f60 | 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 6c 6f 63 61 74 65 64 20 68 65 72 65 3a 0a 68 74 74 70 73 | ocumentation.located.here:.https |
| 31f80 | 3a 2f 2f 6c 65 61 72 6e 2e 6d 69 63 72 6f 73 6f 66 74 2e 63 6f 6d 2f 65 6e 2d 75 73 2f 77 69 6e | ://learn.microsoft.com/en-us/win |
| 31fa0 | 64 6f 77 73 2f 77 69 6e 33 32 2f 61 70 69 2f 70 72 6f 63 65 73 73 74 68 72 65 61 64 73 61 70 69 | dows/win32/api/processthreadsapi |
| 31fc0 | 2f 6e 66 2d 70 72 6f 63 65 73 73 74 68 72 65 61 64 73 61 70 69 2d 63 72 65 61 74 65 70 72 6f 63 | /nf-processthreadsapi-createproc |
| 31fe0 | 65 73 73 61 0a 0a 49 74 20 69 73 20 73 65 74 20 74 6f 20 28 23 78 38 30 30 30 20 2d 20 23 78 31 | essa..It.is.set.to.(#x8000.-.#x1 |
| 32000 | 30 30 30 20 2d 20 32 29 20 74 6f 20 61 63 63 6f 75 6e 74 20 66 6f 72 20 6f 74 68 65 72 20 28 6e | 000.-.2).to.account.for.other.(n |
| 32020 | 6f 6e 2d 64 61 74 61 29 20 43 75 72 6c 0a 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 72 67 75 6d | on-data).Curl.command.line.argum |
| 32040 | 65 6e 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 61 74 6e 75 6d 29 0a 0a 28 64 65 66 69 6e 65 | ents."...:type.'natnum)..(define |
| 32060 | 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 67 70 74 65 6c 2d | -obsolete-variable-alias.'gptel- |
| 32080 | 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 0a 20 20 27 67 70 74 65 6c 2d 70 72 6f 6d | prompt-filter-hook...'gptel-prom |
| 320a0 | 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 20 22 30 2e 39 2e 39 22 29 0a | pt-transform-functions."0.9.9"). |
| 320c0 | 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f | .(defcustom.gptel-prompt-transfo |
| 320e0 | 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 28 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 | rm-functions...'(gptel--transfor |
| 32100 | 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d | m-apply-preset.gptel--transform- |
| 32120 | 61 64 64 2d 63 6f 6e 74 65 78 74 29 0a 20 20 22 48 61 6e 64 6c 65 72 73 20 74 6f 20 61 75 67 6d | add-context)..."Handlers.to.augm |
| 32140 | 65 6e 74 20 6f 72 20 74 72 61 6e 73 66 6f 72 6d 20 61 20 71 75 65 72 79 20 62 65 66 6f 72 65 20 | ent.or.transform.a.query.before. |
| 32160 | 73 65 6e 64 69 6e 67 20 69 74 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 6c 6c 65 64 | sending.it...This.hook.is.called |
| 32180 | 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 6e 69 6e | .in.a.temporary.buffer.containin |
| 321a0 | 67 20 74 68 65 20 74 65 78 74 20 74 6f 0a 62 65 20 73 65 6e 74 2c 20 77 69 74 68 20 74 68 65 20 | g.the.text.to.be.sent,.with.the. |
| 321c0 | 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 2e | cursor.at.the.end.of.the.prompt. |
| 321e0 | 20 20 59 6f 75 20 63 61 6e 20 75 73 65 0a 69 74 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 62 | ..You.can.use.it.to.modify.the.b |
| 32200 | 75 66 66 65 72 20 6f 72 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 | uffer.or.buffer-local.variables. |
| 32220 | 61 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 53 69 6e 63 65 20 74 68 65 73 65 20 66 75 6e 63 74 69 | as.required...Since.these.functi |
| 32240 | 6f 6e 73 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 6d 70 74 20 63 6f 6e 73 74 72 75 63 74 69 | ons.modify.the.prompt.constructi |
| 32260 | 6f 6e 20 62 75 66 66 65 72 2c 20 74 68 65 20 6f 72 64 65 72 0a 69 6e 20 77 68 69 63 68 20 74 68 | on.buffer,.the.order.in.which.th |
| 32280 | 65 79 20 72 75 6e 20 69 73 20 73 69 67 6e 69 66 69 63 61 6e 74 21 20 20 49 6e 20 70 61 72 74 69 | ey.run.is.significant!..In.parti |
| 322a0 | 63 75 6c 61 72 2c 20 79 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 61 64 64 0a 79 6f 75 72 20 | cular,.you.may.want.to.add.your. |
| 322c0 | 66 75 6e 63 74 69 6f 6e 20 62 65 66 6f 72 65 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 20 6f 72 | function.before.(the.default).or |
| 322e0 | 20 61 66 74 65 72 0a 60 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 64 64 2d 63 6f 6e | .after.`gptel--transform-add-con |
| 32300 | 74 65 78 74 27 2c 20 77 68 69 63 68 20 61 64 64 73 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 | text',.which.adds.gptel's.contex |
| 32320 | 74 20 28 6f 74 68 65 72 0a 62 75 66 66 65 72 73 2c 20 66 69 6c 65 73 20 65 74 63 29 20 74 6f 20 | t.(other.buffers,.files.etc).to. |
| 32340 | 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 45 78 61 6d 70 6c 65 3a 20 41 20 74 79 70 69 63 61 6c | this.buffer...Example:.A.typical |
| 32360 | 20 75 73 65 20 63 61 73 65 20 6d 69 67 68 74 20 62 65 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 | .use.case.might.be.to.search.for |
| 32380 | 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 24 28 63 6d 64 29 0a 61 6e 64 20 72 65 70 6c 61 | .occurrences.of.$(cmd).and.repla |
| 323a0 | 63 65 20 69 74 20 77 69 74 68 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 73 68 65 | ce.it.with.the.output.of.the.she |
| 323c0 | 6c 6c 20 63 6f 6d 6d 61 6e 64 20 63 6d 64 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 0a 74 | ll.command.cmd,.making.it.easy.t |
| 323e0 | 6f 20 73 65 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 | o.send.the.output.of.shell.comma |
| 32400 | 6e 64 73 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 0a 54 72 61 6e 73 66 6f 72 6d 20 66 75 6e 63 74 | nds.to.the.LLM...Transform.funct |
| 32420 | 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 6f 72 20 61 73 79 6e 63 | ions.can.be.synchronous.or.async |
| 32440 | 68 72 6f 6e 6f 75 73 2e 0a 0a 53 79 6e 63 68 72 6f 6e 6f 75 73 20 68 6f 6f 6b 20 66 75 6e 63 74 | hronous...Synchronous.hook.funct |
| 32460 | 69 6f 6e 73 20 6d 75 73 74 20 61 63 63 65 70 74 20 7a 65 72 6f 20 6f 72 20 6f 6e 65 20 61 72 67 | ions.must.accept.zero.or.one.arg |
| 32480 | 75 6d 65 6e 74 3a 20 74 68 65 20 49 4e 46 4f 0a 70 6c 69 73 74 20 66 6f 72 20 74 68 65 20 63 75 | ument:.the.INFO.plist.for.the.cu |
| 324a0 | 72 72 65 6e 74 20 72 65 71 75 65 73 74 2e 0a 0a 41 73 79 6e 63 68 72 6f 6e 6f 75 73 20 68 6f 6f | rrent.request...Asynchronous.hoo |
| 324c0 | 6b 20 66 75 6e 63 74 69 6f 6e 73 20 6d 75 73 74 20 61 63 63 65 70 74 20 74 77 6f 20 61 72 67 75 | k.functions.must.accept.two.argu |
| 324e0 | 6d 65 6e 74 73 3a 20 61 20 63 61 6c 6c 62 61 63 6b 20 74 6f 0a 63 61 6c 6c 20 61 66 74 65 72 20 | ments:.a.callback.to.call.after. |
| 32500 | 74 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 63 6f 6d 70 6c 65 74 65 2c 20 | the.transformation.is.complete,. |
| 32520 | 61 6e 64 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 66 6f 72 20 74 68 65 0a 63 75 72 72 65 | and.the.INFO.plist.for.the.curre |
| 32540 | 6e 74 20 72 65 71 75 65 73 74 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 77 68 69 6c 65 20 74 68 69 | nt.request...Note.that.while.thi |
| 32560 | 73 20 73 65 74 20 6f 66 20 68 61 6e 64 6c 65 72 73 20 63 61 6e 20 63 65 72 74 61 69 6e 6c 79 20 | s.set.of.handlers.can.certainly. |
| 32580 | 62 65 20 73 65 74 20 77 69 74 68 20 61 20 67 6c 6f 62 61 6c 0a 76 61 6c 75 65 20 74 6f 20 62 65 | be.set.with.a.global.value.to.be |
| 325a0 | 20 61 70 70 6c 69 65 64 20 74 6f 20 61 6c 6c 20 71 75 65 72 69 65 73 20 69 6e 20 61 6c 6c 20 62 | .applied.to.all.queries.in.all.b |
| 325c0 | 75 66 66 65 72 73 2c 20 69 74 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 73 65 74 0a 6c 6f 63 61 6c | uffers,.it.meant.to.be.set.local |
| 325e0 | 6c 79 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 62 75 66 66 65 72 2c 20 6f 72 20 63 68 61 | ly.for.a.specific.buffer,.or.cha |
| 32600 | 74 20 74 6f 70 69 63 2c 20 6f 72 20 6f 6e 6c 79 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 66 20 | t.topic,.or.only.the.context.of. |
| 32620 | 61 0a 63 65 72 74 61 69 6e 20 74 61 73 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a | a.certain.task."...:type.'hook). |
| 32640 | 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 | .(defcustom.gptel-post-request-h |
| 32660 | 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 73 65 6e 64 69 6e | ook.nil..."Hook.run.after.sendin |
| 32680 | 67 20 61 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 0a 0a 54 68 69 73 20 72 75 6e 73 20 28 70 | g.a.gptel.request...This.runs.(p |
| 326a0 | 6f 73 73 69 62 6c 79 29 20 62 65 66 6f 72 65 20 61 6e 79 20 72 65 73 70 6f 6e 73 65 20 69 73 20 | ossibly).before.any.response.is. |
| 326c0 | 72 65 63 65 69 76 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 3b 3b 20 54 4f | received."...:type.'hook)..;;.TO |
| 326e0 | 44 4f 28 76 31 2e 30 29 3a 20 52 65 6d 6f 76 65 20 74 68 69 73 2e 0a 28 64 65 66 76 61 72 20 67 | DO(v1.0):.Remove.this..(defvar.g |
| 32700 | 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 20 6e | ptel-response-filter-functions.n |
| 32720 | 69 6c 29 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 | il).(make-obsolete-variable..'gp |
| 32740 | 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 22 | tel-response-filter-functions.." |
| 32760 | 52 65 73 70 6f 6e 73 65 20 66 69 6c 74 65 72 69 6e 67 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 | Response.filtering.is.no.longer. |
| 32780 | 73 75 70 70 6f 72 74 65 64 20 69 6e 20 67 70 74 65 6c 2e 20 20 54 6f 20 74 6f 67 67 6c 65 0a 6d | supported.in.gptel...To.toggle.m |
| 327a0 | 61 72 6b 64 6f 77 6e 20 74 6f 20 4f 72 67 20 63 6f 6e 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 60 | arkdown.to.Org.conversion,.see.` |
| 327c0 | 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 73 70 6f 6e 73 65 27 2e 20 20 54 6f | gptel-org-convert-response'...To |
| 327e0 | 0a 66 69 6c 74 65 72 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 2c 20 65 69 74 68 65 | .filter.LLM.response.text,.eithe |
| 32800 | 72 20 75 73 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 20 77 69 74 68 20 61 0a 63 75 73 | r.use.`gptel-request'.with.a.cus |
| 32820 | 74 6f 6d 20 63 61 6c 6c 62 61 63 6b 2c 20 6f 72 20 75 73 65 20 60 67 70 74 65 6c 2d 70 6f 73 74 | tom.callback,.or.use.`gptel-post |
| 32840 | 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 22 30 2e 39 2e 37 22 29 | -response-functions'.".."0.9.7") |
| 32860 | 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d | ..(defcustom.gptel-pre-response- |
| 32880 | 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 20 69 6e 73 65 | hook.nil..."Hook.run.before.inse |
| 328a0 | 72 74 69 6e 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 | rting.the.LLM.response.into.the. |
| 328c0 | 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 | current.buffer...This.hook.is.ca |
| 328e0 | 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 68 65 20 4c 4c 4d | lled.in.the.buffer.where.the.LLM |
| 32900 | 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 0a 69 6e 73 65 72 74 65 64 2e 0a 0a 4e 6f 74 | .response.will.be.inserted...Not |
| 32920 | 65 3a 20 74 68 69 73 20 68 6f 6f 6b 20 6f 6e 6c 79 20 72 75 6e 73 20 69 66 20 74 68 65 20 72 65 | e:.this.hook.only.runs.if.the.re |
| 32940 | 71 75 65 73 74 20 73 75 63 63 65 65 64 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a | quest.succeeds."...:type.'hook). |
| 32960 | 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 | .(define-obsolete-variable-alias |
| 32980 | 0a 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 20 27 67 70 | ...'gptel-post-response-hook.'gp |
| 329a0 | 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 22 30 | tel-post-response-functions..."0 |
| 329c0 | 2e 36 2e 30 22 0a 20 20 22 50 6f 73 74 2d 72 65 73 70 6f 6e 73 65 20 66 75 6e 63 74 69 6f 6e 73 | .6.0"..."Post-response.functions |
| 329e0 | 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e | .are.now.called.with.two.argumen |
| 32a00 | 74 73 3a 20 74 68 65 0a 73 74 61 72 74 20 61 6e 64 20 65 6e 64 20 62 75 66 66 65 72 20 70 6f 73 | ts:.the.start.and.end.buffer.pos |
| 32a20 | 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 0a 28 64 65 66 63 | itions.of.the.response.")..(defc |
| 32a40 | 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 | ustom.gptel-post-response-functi |
| 32a60 | 6f 6e 73 20 6e 69 6c 0a 20 20 22 41 62 6e 6f 72 6d 61 6c 20 68 6f 6f 6b 20 72 75 6e 20 61 66 74 | ons.nil..."Abnormal.hook.run.aft |
| 32a80 | 65 72 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e | er.inserting.the.LLM.response.in |
| 32aa0 | 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 68 6f 6f | to.the.current.buffer...This.hoo |
| 32ac0 | 6b 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 77 68 69 | k.is.called.in.the.buffer.to.whi |
| 32ae0 | 63 68 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 73 0a 73 65 6e 74 2c 20 61 6e 64 | ch.the.LLM.response.is.sent,.and |
| 32b00 | 20 61 66 74 65 72 20 74 68 65 20 66 75 6c 6c 20 72 65 73 70 6f 6e 73 65 20 68 61 73 20 62 65 65 | .after.the.full.response.has.bee |
| 32b20 | 6e 20 69 6e 73 65 72 74 65 64 2e 20 20 45 61 63 68 0a 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 | n.inserted...Each.function.is.ca |
| 32b40 | 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 72 65 73 | lled.with.two.arguments:.the.res |
| 32b60 | 70 6f 6e 73 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 0a 65 6e 64 20 70 6f 73 69 74 69 6f 6e | ponse.beginning.and.end.position |
| 32b80 | 73 2e 0a 0a 4e 6f 74 65 3a 20 74 68 69 73 20 68 6f 6f 6b 20 72 75 6e 73 20 65 76 65 6e 20 69 66 | s...Note:.this.hook.runs.even.if |
| 32ba0 | 20 74 68 65 20 72 65 71 75 65 73 74 20 66 61 69 6c 73 2e 20 20 49 6e 20 74 68 69 73 20 63 61 73 | .the.request.fails...In.this.cas |
| 32bc0 | 65 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 | e.the.response.beginning.and.end |
| 32be0 | 20 70 6f 73 69 74 69 6f 6e 73 20 61 72 65 20 62 6f 74 68 20 74 68 65 20 63 75 72 73 6f 72 20 70 | .positions.are.both.the.cursor.p |
| 32c00 | 6f 73 69 74 69 6f 6e 0a 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 | osition.at.the.time.of.the.reque |
| 32c20 | 73 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 3b 3b 20 28 64 65 66 63 75 73 74 | st."...:type.'hook)..;;.(defcust |
| 32c40 | 6f 6d 20 67 70 74 65 6c 2d 70 72 65 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 68 6f 6f 6b 20 | om.gptel-pre-stream-insert-hook. |
| 32c60 | 6e 69 6c 0a 3b 3b 20 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 20 65 61 63 68 20 69 | nil.;;..."Hook.run.before.each.i |
| 32c80 | 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 73 74 72 65 61 6d 69 6e 67 20 | nsertion.of.the.LLM's.streaming. |
| 32ca0 | 72 65 73 70 6f 6e 73 65 2e 0a 0a 3b 3b 20 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 6c 6c 65 | response...;;.This.hook.is.calle |
| 32cc0 | 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 70 | d.in.the.buffer.from.which.the.p |
| 32ce0 | 72 6f 6d 70 74 20 77 61 73 20 73 65 6e 74 0a 3b 3b 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 69 6d | rompt.was.sent.;;.to.the.LLM,.im |
| 32d00 | 6d 65 64 69 61 74 65 6c 79 20 62 65 66 6f 72 65 20 74 65 78 74 20 69 6e 73 65 72 74 69 6f 6e 2e | mediately.before.text.insertion. |
| 32d20 | 22 0a 3b 3b 20 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 3b 3b 20 20 20 3a 74 79 70 65 20 | ".;;...:group.'gptel.;;...:type. |
| 32d40 | 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 | 'hook)..(defcustom.gptel-post-st |
| 32d60 | 72 65 61 6d 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 | ream-hook.nil..."Hook.run.after. |
| 32d80 | 65 61 63 68 20 69 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 73 74 72 65 | each.insertion.of.the.LLM's.stre |
| 32da0 | 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 | aming.response...This.hook.is.ca |
| 32dc0 | 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 | lled.in.the.buffer.from.which.th |
| 32de0 | 65 20 70 72 6f 6d 70 74 20 77 61 73 20 73 65 6e 74 0a 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 61 6e | e.prompt.was.sent.to.the.LLM,.an |
| 32e00 | 64 20 61 66 74 65 72 20 61 20 74 65 78 74 20 69 6e 73 65 72 74 69 6f 6e 2e 22 0a 20 20 3a 74 79 | d.after.a.text.insertion."...:ty |
| 32e20 | 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 73 61 76 65 | pe.'hook)..(defcustom.gptel-save |
| 32e40 | 2d 73 74 61 74 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f | -state-hook.nil..."Hook.run.befo |
| 32e60 | 72 65 20 67 70 74 65 6c 20 73 61 76 65 73 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 | re.gptel.saves.model.parameters. |
| 32e80 | 74 6f 20 61 20 66 69 6c 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 68 6f 6f | to.a.file...You.can.use.this.hoo |
| 32ea0 | 6b 20 74 6f 20 73 74 6f 72 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 76 65 72 73 61 74 69 | k.to.store.additional.conversati |
| 32ec0 | 6f 6e 20 73 74 61 74 65 20 6f 72 0a 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 | on.state.or.model.parameters.to. |
| 32ee0 | 74 68 65 20 63 68 61 74 20 62 75 66 66 65 72 2c 20 6f 72 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 | the.chat.buffer,.or.to.modify.th |
| 32f00 | 65 20 62 75 66 66 65 72 20 69 6e 0a 73 6f 6d 65 20 6f 74 68 65 72 20 77 61 79 2e 22 0a 20 20 3a | e.buffer.in.some.other.way."...: |
| 32f20 | 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 64 65 | type.'hook)..(defcustom.gptel-de |
| 32f40 | 66 61 75 6c 74 2d 6d 6f 64 65 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6d 61 72 6b 64 6f 77 | fault-mode.(if.(fboundp.'markdow |
| 32f60 | 6e 2d 6d 6f 64 65 29 0a 09 09 09 09 20 20 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 0a 09 09 09 | n-mode).......'markdown-mode.... |
| 32f80 | 09 27 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 6d 61 6a 6f | .'text-mode)..."The.default.majo |
| 32fa0 | 72 20 6d 6f 64 65 20 66 6f 72 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 | r.mode.for.dedicated.chat.buffer |
| 32fc0 | 73 2e 0a 0a 49 66 20 60 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 27 20 69 73 20 61 76 61 69 6c 61 | s...If.`markdown-mode'.is.availa |
| 32fe0 | 62 6c 65 2c 20 69 74 20 69 73 20 75 73 65 64 2e 20 20 4f 74 68 65 72 77 69 73 65 20 67 70 74 65 | ble,.it.is.used...Otherwise.gpte |
| 33000 | 6c 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 60 74 65 78 74 2d 6d 6f 64 65 27 2e 22 0a 20 20 3a 74 | l.defaults.to.`text-mode'."...:t |
| 33020 | 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 | ype.'function)..;;.TODO:.Handle. |
| 33040 | 60 70 72 6f 67 2d 6d 6f 64 65 27 20 75 73 69 6e 67 20 74 68 65 20 60 63 6f 6d 6d 65 6e 74 2d 73 | `prog-mode'.using.the.`comment-s |
| 33060 | 74 61 72 74 27 20 76 61 72 69 61 62 6c 65 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d | tart'.variable.(defcustom.gptel- |
| 33080 | 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 0a 20 20 27 28 28 6d 61 72 6b 64 6f 77 | prompt-prefix-alist...'((markdow |
| 330a0 | 6e 2d 6d 6f 64 65 20 2e 20 22 23 23 23 20 22 29 0a 20 20 20 20 28 6f 72 67 2d 6d 6f 64 65 20 2e | n-mode..."###.").....(org-mode.. |
| 330c0 | 20 22 2a 2a 2a 20 22 29 0a 20 20 20 20 28 74 65 78 74 2d 6d 6f 64 65 20 2e 20 22 23 23 23 20 22 | ."***.").....(text-mode..."###." |
| 330e0 | 29 29 0a 20 20 22 53 74 72 69 6e 67 20 75 73 65 64 20 61 73 20 61 20 70 72 65 66 69 78 20 74 6f | ))..."String.used.as.a.prefix.to |
| 33100 | 20 74 68 65 20 71 75 65 72 79 20 62 65 69 6e 67 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d | .the.query.being.sent.to.the.LLM |
| 33120 | 2e 0a 0a 54 68 69 73 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f | ...This.is.meant.for.the.user.to |
| 33140 | 20 64 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 71 75 65 72 69 65 73 20 61 6e 64 | .distinguish.between.queries.and |
| 33160 | 0a 72 65 73 70 6f 6e 73 65 73 2c 20 61 6e 64 20 69 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 | .responses,.and.is.removed.from. |
| 33180 | 74 68 65 20 71 75 65 72 79 20 62 65 66 6f 72 65 20 69 74 20 69 73 20 73 65 6e 74 2e 0a 0a 54 68 | the.query.before.it.is.sent...Th |
| 331a0 | 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6d 61 6a 6f 72 20 6d 6f 64 | is.is.an.alist.mapping.major.mod |
| 331c0 | 65 73 20 74 6f 20 74 68 65 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 73 2e 20 20 54 68 69 73 0a | es.to.the.prefix.strings...This. |
| 331e0 | 69 73 20 6f 6e 6c 79 20 69 6e 73 65 72 74 65 64 20 69 6e 20 64 65 64 69 63 61 74 65 64 20 67 70 | is.only.inserted.in.dedicated.gp |
| 33200 | 74 65 6c 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b | tel.buffers."...:type.'(alist.:k |
| 33220 | 65 79 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e | ey-type.symbol.:value-type.strin |
| 33240 | 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 | g))..(defcustom.gptel-response-p |
| 33260 | 72 65 66 69 78 2d 61 6c 69 73 74 0a 20 20 27 28 28 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 2e | refix-alist...'((markdown-mode.. |
| 33280 | 20 22 22 29 0a 20 20 20 20 28 6f 72 67 2d 6d 6f 64 65 20 2e 20 22 22 29 0a 20 20 20 20 28 74 65 | ."").....(org-mode..."").....(te |
| 332a0 | 78 74 2d 6d 6f 64 65 20 2e 20 22 22 29 29 0a 20 20 22 53 74 72 69 6e 67 20 69 6e 73 65 72 74 65 | xt-mode...""))..."String.inserte |
| 332c0 | 64 20 62 65 66 6f 72 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 4c | d.before.the.response.from.the.L |
| 332e0 | 4c 4d 2e 0a 0a 54 68 69 73 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 | LM...This.is.meant.for.the.user. |
| 33300 | 74 6f 20 64 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 71 75 65 72 69 65 73 20 61 | to.distinguish.between.queries.a |
| 33320 | 6e 64 0a 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 | nd.responses...This.is.an.alist. |
| 33340 | 6d 61 70 70 69 6e 67 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 74 68 65 20 72 65 70 6c 79 | mapping.major.modes.to.the.reply |
| 33360 | 20 70 72 65 66 69 78 20 73 74 72 69 6e 67 73 2e 20 20 54 68 69 73 0a 69 73 20 6f 6e 6c 79 20 69 | .prefix.strings...This.is.only.i |
| 33380 | 6e 73 65 72 74 65 64 20 69 6e 20 64 65 64 69 63 61 74 65 64 20 67 70 74 65 6c 20 62 75 66 66 65 | nserted.in.dedicated.gptel.buffe |
| 333a0 | 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 41 49 27 73 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 | rs.before.the.AI's.response."... |
| 333c0 | 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a | :type.'(alist.:key-type.symbol.: |
| 333e0 | 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 | value-type.string))..(defcustom. |
| 33400 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 20 22 5c 6e 5c 6e 22 0a | gptel-response-separator."\n\n". |
| 33420 | 20 20 22 53 74 72 69 6e 67 20 69 6e 73 65 72 74 65 64 20 62 65 66 6f 72 65 20 72 65 73 70 6f 6e | .."String.inserted.before.respon |
| 33440 | 73 65 73 2e 0a 0a 41 6c 73 6f 20 69 6e 73 65 72 74 65 64 20 62 65 66 6f 72 65 20 61 6e 64 20 61 | ses...Also.inserted.before.and.a |
| 33460 | 66 74 65 72 20 6e 6f 6e 2d 63 6f 6e 73 65 63 75 74 69 76 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e | fter.non-consecutive.tool.calls. |
| 33480 | 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 | "...:type.'string)..(defcustom.g |
| 334a0 | 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 74 0a 20 20 22 57 68 65 74 68 65 | ptel-use-header-line.t..."Whethe |
| 334c0 | 72 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 73 68 6f 75 6c 64 20 75 73 65 20 68 65 61 64 65 72 | r.`gptel-mode'.should.use.header |
| 334e0 | 2d 6c 69 6e 65 20 66 6f 72 20 73 74 61 74 75 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 57 | -line.for.status.information...W |
| 33500 | 68 65 6e 20 73 65 74 20 74 6f 20 6e 69 6c 2c 20 75 73 65 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e | hen.set.to.nil,.use.the.mode.lin |
| 33520 | 65 20 66 6f 72 20 28 6d 69 6e 69 6d 61 6c 29 20 73 74 61 74 75 73 0a 69 6e 66 6f 72 6d 61 74 69 | e.for.(minimal).status.informati |
| 33540 | 6f 6e 20 61 6e 64 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 20 66 6f 72 20 6d 65 73 73 61 67 65 | on.and.the.echo.area.for.message |
| 33560 | 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 3b 3b 20 53 65 74 20 6d 69 | s."...:type.'boolean)..;;.Set.mi |
| 33580 | 6e 69 6d 61 6c 6c 79 20 74 6f 20 61 76 6f 69 64 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 | nimally.to.avoid.display-buffer. |
| 335a0 | 61 63 74 69 6f 6e 20 61 6c 69 73 74 20 63 6f 6e 66 6c 69 63 74 73 20 28 23 35 33 33 29 0a 28 64 | action.alist.conflicts.(#533).(d |
| 335c0 | 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 | efcustom.gptel-display-buffer-ac |
| 335e0 | 74 69 6f 6e 20 60 28 6e 69 6c 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 23 27 73 | tion.`(nil.(body-function...,#'s |
| 33600 | 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 29 0a 20 20 22 54 68 65 20 61 63 74 69 6f 6e 20 75 73 65 | elect-window))..."The.action.use |
| 33620 | 64 20 74 6f 20 64 69 73 70 6c 61 79 20 67 70 74 65 6c 20 63 68 61 74 20 62 75 66 66 65 72 73 2e | d.to.display.gptel.chat.buffers. |
| 33640 | 0a 0a 54 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 | ..The.gptel.buffer.is.displayed. |
| 33660 | 69 6e 20 61 20 77 69 6e 64 6f 77 20 75 73 69 6e 67 0a 0a 20 20 28 64 69 73 70 6c 61 79 2d 62 75 | in.a.window.using....(display-bu |
| 33680 | 66 66 65 72 20 42 55 46 46 45 52 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 | ffer.BUFFER.gptel-display-buffer |
| 336a0 | 2d 61 63 74 69 6f 6e 29 0a 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 6f 70 74 69 | -action)..The.value.of.this.opti |
| 336c0 | 6f 6e 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 46 55 4e 43 54 49 4f 4e 20 2e 20 41 4c 49 53 | on.has.the.form.(FUNCTION...ALIS |
| 336e0 | 54 29 2c 0a 77 68 65 72 65 20 46 55 4e 43 54 49 4f 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e | T),.where.FUNCTION.is.a.function |
| 33700 | 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 2e 20 20 45 61 63 68 20 73 | .or.a.list.of.functions...Each.s |
| 33720 | 75 63 68 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 61 63 63 65 70 74 20 74 77 6f 20 61 | uch.function.should.accept.two.a |
| 33740 | 72 67 75 6d 65 6e 74 73 3a 20 61 20 62 75 66 66 65 72 20 74 6f 20 64 69 73 70 6c 61 79 20 61 6e | rguments:.a.buffer.to.display.an |
| 33760 | 64 20 61 6e 0a 61 6c 69 73 74 20 6f 66 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d 20 61 73 20 41 | d.an.alist.of.the.same.form.as.A |
| 33780 | 4c 49 53 54 2e 20 20 53 65 65 20 69 6e 66 6f 20 6e 6f 64 65 20 60 28 65 6c 69 73 70 29 43 68 6f | LIST...See.info.node.`(elisp)Cho |
| 337a0 | 6f 73 69 6e 67 0a 57 69 6e 64 6f 77 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 74 | osing.Window'.for.details."...:t |
| 337c0 | 79 70 65 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 2d 61 63 74 69 6f 6e 2d 63 75 73 74 6f | ype.display-buffer--action-custo |
| 337e0 | 6d 2d 74 79 70 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 | m-type)..(defcustom.gptel-crowds |
| 33800 | 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 0a 20 20 28 6c 65 74 20 28 28 63 61 63 | ourced-prompts-file...(let.((cac |
| 33820 | 68 65 2d 64 69 72 20 28 6f 72 20 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 09 09 | he-dir.(or.(eval-when-compile... |
| 33840 | 09 20 28 72 65 71 75 69 72 65 20 27 78 64 67 29 0a 09 09 09 20 28 78 64 67 2d 63 61 63 68 65 2d | ..(require.'xdg).....(xdg-cache- |
| 33860 | 68 6f 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 | home))........................us |
| 33880 | 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 28 65 78 70 61 6e | er-emacs-directory))).....(expan |
| 338a0 | 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d | d-file-name."gptel-crowdsourced- |
| 338c0 | 70 72 6f 6d 70 74 73 2e 63 73 76 22 20 63 61 63 68 65 2d 64 69 72 29 29 0a 20 20 22 46 69 6c 65 | prompts.csv".cache-dir))..."File |
| 338e0 | 20 75 73 65 64 20 74 6f 20 73 74 6f 72 65 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 | .used.to.store.crowdsourced.syst |
| 33900 | 65 6d 20 70 72 6f 6d 70 74 73 2e 0a 0a 54 68 65 73 65 20 61 72 65 20 70 72 6f 6d 70 74 73 20 63 | em.prompts...These.are.prompts.c |
| 33920 | 61 63 68 65 64 20 66 72 6f 6d 20 61 6e 20 6f 6e 6c 69 6e 65 20 73 6f 75 72 63 65 20 28 73 65 65 | ached.from.an.online.source.(see |
| 33940 | 0a 60 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 75 72 | .`gptel--crowdsourced-prompts-ur |
| 33960 | 6c 27 29 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 73 65 74 20 66 72 6f 6d 20 74 68 65 0a 74 72 61 | l'),.and.can.be.set.from.the.tra |
| 33980 | 6e 73 69 65 6e 74 20 6d 65 6e 75 20 69 6e 74 65 72 66 61 63 65 20 70 72 6f 76 69 64 65 64 20 62 | nsient.menu.interface.provided.b |
| 339a0 | 79 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 29 0a | y.`gptel-menu'."...:type.'file). |
| 339c0 | 0a 3b 3b 20 4d 6f 64 65 6c 20 61 6e 64 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 70 61 72 61 6d 65 | .;;.Model.and.interaction.parame |
| 339e0 | 74 65 72 73 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 | ters.(defcustom.gptel-directives |
| 33a00 | 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 20 20 20 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c | ...'((default......."You.are.a.l |
| 33a20 | 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 6c 69 76 69 6e 67 20 69 6e 20 45 6d | arge.language.model.living.in.Em |
| 33a40 | 61 63 73 20 61 6e 64 20 61 20 68 65 6c 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 52 65 73 | acs.and.a.helpful.assistant..Res |
| 33a60 | 70 6f 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 0a 20 20 20 20 28 70 72 6f 67 72 61 6d 6d 69 | pond.concisely.").....(programmi |
| 33a80 | 6e 67 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 6d | ng..."You.are.a.large.language.m |
| 33aa0 | 6f 64 65 6c 20 61 6e 64 20 61 20 63 61 72 65 66 75 6c 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 50 | odel.and.a.careful.programmer..P |
| 33ac0 | 72 6f 76 69 64 65 20 63 6f 64 65 20 61 6e 64 20 6f 6e 6c 79 20 63 6f 64 65 20 61 73 20 6f 75 74 | rovide.code.and.only.code.as.out |
| 33ae0 | 70 75 74 20 77 69 74 68 6f 75 74 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 78 74 2c | put.without.any.additional.text, |
| 33b00 | 20 70 72 6f 6d 70 74 20 6f 72 20 6e 6f 74 65 2e 22 29 0a 20 20 20 20 28 77 72 69 74 69 6e 67 20 | .prompt.or.note.").....(writing. |
| 33b20 | 20 20 20 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 | ......"You.are.a.large.language. |
| 33b40 | 6d 6f 64 65 6c 20 61 6e 64 20 61 20 77 72 69 74 69 6e 67 20 61 73 73 69 73 74 61 6e 74 2e 20 52 | model.and.a.writing.assistant..R |
| 33b60 | 65 73 70 6f 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 0a 20 20 20 20 28 63 68 61 74 20 20 20 | espond.concisely.").....(chat... |
| 33b80 | 20 20 20 20 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 67 65 | ......."You.are.a.large.language |
| 33ba0 | 20 6d 6f 64 65 6c 20 61 6e 64 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 61 72 74 6e 65 | .model.and.a.conversation.partne |
| 33bc0 | 72 2e 20 52 65 73 70 6f 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 29 0a 20 20 22 53 79 73 74 | r..Respond.concisely."))..."Syst |
| 33be0 | 65 6d 20 70 72 6f 6d 70 74 73 20 6f 72 20 64 69 72 65 63 74 69 76 65 73 20 66 6f 72 20 74 68 65 | em.prompts.or.directives.for.the |
| 33c00 | 20 4c 4c 4d 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 69 6e 20 74 68 69 73 20 61 6c 69 73 74 20 | .LLM...Each.entry.in.this.alist. |
| 33c20 | 6d 61 70 73 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 69 6e 67 20 74 68 65 20 64 69 72 65 63 74 69 | maps.a.symbol.naming.the.directi |
| 33c40 | 76 65 20 74 6f 0a 74 68 65 20 64 69 72 65 63 74 69 76 65 20 69 74 73 65 6c 66 2e 20 20 42 79 20 | ve.to.the.directive.itself...By. |
| 33c60 | 64 65 66 61 75 6c 74 2c 20 67 70 74 65 6c 20 75 73 65 73 20 74 68 65 20 64 69 72 65 63 74 69 76 | default,.gptel.uses.the.directiv |
| 33c80 | 65 20 77 69 74 68 0a 74 68 65 20 6b 65 79 20 5c 5c 2b 60 64 65 66 61 75 6c 74 27 2e 0a 0a 54 6f | e.with.the.key.\\+`default'...To |
| 33ca0 | 20 73 65 74 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 66 6f 72 20 61 20 63 68 61 74 20 73 65 | .set.the.directive.for.a.chat.se |
| 33cc0 | 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 0a 60 67 70 74 65 6c 2d | ssion.interactively.call.`gptel- |
| 33ce0 | 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 6f 72 | send'.with.a.prefix.argument,.or |
| 33d00 | 20 63 61 6c 6c 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 0a 0a 41 20 5c 22 64 69 72 65 63 74 69 | .call.`gptel-menu'...A.\"directi |
| 33d20 | 76 65 5c 22 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 | ve\".is.typically.the.system.mes |
| 33d40 | 73 61 67 65 20 28 61 6c 73 6f 20 63 61 6c 6c 65 64 0a 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 | sage.(also.called.system.prompt. |
| 33d60 | 6f 72 20 73 79 73 74 65 6d 20 69 6e 73 74 72 75 63 74 69 6f 6e 29 20 73 65 6e 74 20 61 74 20 74 | or.system.instruction).sent.at.t |
| 33d80 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 0a 65 61 63 68 20 72 65 71 75 65 73 74 20 74 6f 20 | he.beginning.of.each.request.to. |
| 33da0 | 74 68 65 20 4c 4c 4d 2e 20 20 49 74 20 69 73 20 75 73 65 64 20 74 6f 20 73 65 74 20 67 65 6e 65 | the.LLM...It.is.used.to.set.gene |
| 33dc0 | 72 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2c 0a 65 78 70 65 63 74 61 74 69 6f 6e 73 20 61 | ral.instructions,.expectations.a |
| 33de0 | 6e 64 20 74 68 65 20 6f 76 65 72 61 6c 6c 20 74 6f 6e 65 2e 0a 0a 67 70 74 65 6c 27 73 20 69 64 | nd.the.overall.tone...gptel's.id |
| 33e00 | 65 61 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 69 73 20 6d 6f 72 65 20 67 65 6e 65 | ea.of.the.directive.is.more.gene |
| 33e20 | 72 61 6c 2e 20 20 41 20 64 69 72 65 63 74 69 76 65 20 69 6e 0a 60 67 70 74 65 6c 2d 64 69 72 65 | ral...A.directive.in.`gptel-dire |
| 33e40 | 63 74 69 76 65 73 27 20 63 61 6e 20 62 65 0a 0a 2d 20 41 20 73 74 72 69 6e 67 2c 20 69 6e 74 65 | ctives'.can.be..-.A.string,.inte |
| 33e60 | 72 70 72 65 74 65 64 20 61 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 0a | rpreted.as.the.system.message... |
| 33e80 | 2d 20 41 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 20 77 68 6f 73 65 20 66 69 72 73 74 | -.A.list.of.strings,.whose.first |
| 33ea0 | 20 28 70 6f 73 73 69 62 6c 79 20 6e 69 6c 29 20 65 6c 65 6d 65 6e 74 20 69 73 0a 20 20 69 6e 74 | .(possibly.nil).element.is...int |
| 33ec0 | 65 72 70 72 65 74 65 64 20 61 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 | erpreted.as.the.system.message,. |
| 33ee0 | 61 6e 64 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 65 6c 65 6d 65 6e 74 73 0a 20 20 61 73 20 | and.the.remaining.elements...as. |
| 33f00 | 28 70 6f 73 73 69 62 6c 79 20 6e 69 6c 29 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 75 73 65 72 20 | (possibly.nil).alternating.user. |
| 33f20 | 70 72 6f 6d 70 74 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 20 20 54 68 69 | prompts.and.LLM.responses....Thi |
| 33f40 | 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 74 65 6d 70 6c 61 74 65 20 74 68 65 20 69 6e | s.can.be.used.to.template.the.in |
| 33f60 | 69 74 69 61 6c 20 70 61 72 74 20 6f 66 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 0a 2d | itial.part.of.a.conversation...- |
| 33f80 | 20 41 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e | .A.function.that.returns.a.strin |
| 33fa0 | 67 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 0a 20 20 69 6e 74 65 72 70 | g.or.a.list.of.strings,...interp |
| 33fc0 | 72 65 74 65 64 20 61 73 20 74 68 65 20 61 62 6f 76 65 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 | reted.as.the.above...This.can.be |
| 33fe0 | 20 75 73 65 64 20 74 6f 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 20 20 67 65 6e 65 72 61 74 65 20 | .used.to.dynamically...generate. |
| 34000 | 61 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 2f 6f 72 20 63 6f 6e 76 65 72 73 61 | a.system.message.and/or.conversa |
| 34020 | 74 69 6f 6e 20 74 65 6d 70 6c 61 74 65 20 62 61 73 65 64 20 6f 6e 0a 20 20 74 68 65 20 63 75 72 | tion.template.based.on...the.cur |
| 34040 | 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 53 65 65 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f | rent.context...See.the.definitio |
| 34060 | 6e 20 6f 66 0a 20 20 60 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 | n.of...`gptel--rewrite-directive |
| 34080 | 2d 64 65 66 61 75 6c 74 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 2e 22 0a 20 20 3a 73 61 | -default'.for.an.example."...:sa |
| 340a0 | 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 | fe.#'always...:type.'(alist.:key |
| 340c0 | 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e 67 29 | -type.symbol.:value-type.string) |
| 340e0 | 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 6e | )..(defcustom.gptel-max-tokens.n |
| 34100 | 69 6c 0a 20 20 22 4d 61 78 20 74 6f 6b 65 6e 73 20 70 65 72 20 72 65 73 70 6f 6e 73 65 2e 0a 0a | il..."Max.tokens.per.response... |
| 34120 | 54 68 69 73 20 69 73 20 72 6f 75 67 68 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f | This.is.roughly.the.number.of.wo |
| 34140 | 72 64 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 20 20 31 30 30 2d 33 30 30 20 69 73 | rds.in.the.response...100-300.is |
| 34160 | 20 61 0a 72 65 61 73 6f 6e 61 62 6c 65 20 72 61 6e 67 65 20 66 6f 72 20 73 68 6f 72 74 20 61 6e | .a.reasonable.range.for.short.an |
| 34180 | 73 77 65 72 73 2c 20 34 30 30 20 6f 72 20 6d 6f 72 65 20 66 6f 72 20 6c 6f 6e 67 65 72 0a 72 65 | swers,.400.or.more.for.longer.re |
| 341a0 | 73 70 6f 6e 73 65 73 2e 0a 0a 54 6f 20 73 65 74 20 74 68 65 20 74 61 72 67 65 74 20 74 6f 6b 65 | sponses...To.set.the.target.toke |
| 341c0 | 6e 20 63 6f 75 6e 74 20 66 6f 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 | n.count.for.a.chat.session.inter |
| 341e0 | 61 63 74 69 76 65 6c 79 0a 63 61 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 | actively.call.`gptel-send'.with. |
| 34200 | 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c | a.prefix.argument."...:safe.#'al |
| 34220 | 77 61 79 73 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 6e 61 74 6e 75 6d 20 3a 74 | ways...:type.'(choice.(natnum.:t |
| 34240 | 61 67 20 22 53 70 65 63 69 66 79 20 54 6f 6b 65 6e 20 63 6f 75 6e 74 22 29 0a 20 20 20 20 20 20 | ag."Specify.Token.count")....... |
| 34260 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 65 66 61 75 6c 74 22 | ...........(const.:tag."Default" |
| 34280 | 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 | .nil)))..(defcustom.gptel-temper |
| 342a0 | 61 74 75 72 65 20 31 2e 30 0a 20 20 22 5c 22 54 65 6d 70 65 72 61 74 75 72 65 5c 22 20 6f 66 20 | ature.1.0..."\"Temperature\".of. |
| 342c0 | 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 6e 75 6d | the.LLM.response...This.is.a.num |
| 342e0 | 62 65 72 20 62 65 74 77 65 65 6e 20 30 2e 30 20 61 6e 64 20 32 2e 30 20 74 68 61 74 20 63 6f 6e | ber.between.0.0.and.2.0.that.con |
| 34300 | 74 72 6f 6c 73 20 74 68 65 20 72 61 6e 64 6f 6d 6e 65 73 73 0a 6f 66 20 74 68 65 20 72 65 73 70 | trols.the.randomness.of.the.resp |
| 34320 | 6f 6e 73 65 2c 20 77 69 74 68 20 32 2e 30 20 62 65 69 6e 67 20 74 68 65 20 6d 6f 73 74 20 72 61 | onse,.with.2.0.being.the.most.ra |
| 34340 | 6e 64 6f 6d 2e 0a 0a 54 6f 20 73 65 74 20 74 68 65 20 74 65 6d 70 65 72 61 74 75 72 65 20 66 6f | ndom...To.set.the.temperature.fo |
| 34360 | 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 | r.a.chat.session.interactively.c |
| 34380 | 61 6c 6c 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 | all.`gptel-send'.with.a.prefix.a |
| 343a0 | 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 76 29 20 28 6f | rgument."...:safe.(lambda.(v).(o |
| 343c0 | 72 20 28 6e 75 6c 6c 20 76 29 20 28 6e 75 6d 62 65 72 70 20 76 29 29 29 0a 20 20 3a 74 79 70 65 | r.(null.v).(numberp.v)))...:type |
| 343e0 | 20 27 28 63 68 6f 69 63 65 20 28 6e 75 6d 62 65 72 20 3a 74 61 67 20 22 54 65 6d 70 65 72 61 74 | .'(choice.(number.:tag."Temperat |
| 34400 | 75 72 65 20 76 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ure.value")..................(co |
| 34420 | 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 64 65 66 61 75 6c 74 22 20 6e 69 6c 29 29 29 0a 0a 28 | nst.:tag."Use.default".nil)))..( |
| 34440 | 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 61 63 68 65 20 6e 69 6c 0a 20 20 22 57 68 65 | defcustom.gptel-cache.nil..."Whe |
| 34460 | 74 68 65 72 20 74 68 65 20 4c 4c 4d 20 73 68 6f 75 6c 64 20 63 61 63 68 65 20 72 65 71 75 65 73 | ther.the.LLM.should.cache.reques |
| 34480 | 74 20 63 6f 6e 74 65 6e 74 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 20 63 61 | t.content...Some.LLM.backends.ca |
| 344a0 | 6e 20 63 61 63 68 65 20 63 6f 6e 74 65 6e 74 20 73 65 6e 74 20 74 6f 20 69 74 20 62 79 20 67 70 | n.cache.content.sent.to.it.by.gp |
| 344c0 | 74 65 6c 2c 20 73 6f 20 74 68 61 74 0a 6f 6e 6c 79 20 74 68 65 20 6e 65 77 6c 79 20 69 6e 63 6c | tel,.so.that.only.the.newly.incl |
| 344e0 | 75 64 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 6e 65 65 64 73 20 74 6f 20 62 | uded.part.of.the.text.needs.to.b |
| 34500 | 65 20 70 72 6f 63 65 73 73 65 64 20 6f 6e 0a 73 75 62 73 65 71 75 65 6e 74 20 63 6f 6e 76 65 72 | e.processed.on.subsequent.conver |
| 34520 | 73 61 74 69 6f 6e 20 74 75 72 6e 73 2e 20 20 54 68 69 73 20 72 65 73 75 6c 74 73 20 69 6e 20 66 | sation.turns...This.results.in.f |
| 34540 | 61 73 74 65 72 20 61 6e 64 0a 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 63 68 65 61 70 65 72 20 | aster.and.significantly.cheaper. |
| 34560 | 70 72 6f 63 65 73 73 69 6e 67 2e 0a 0a 4e 4f 54 45 3a 20 4d 61 6e 75 61 6c 20 6f 72 20 63 6c 69 | processing...NOTE:.Manual.or.cli |
| 34580 | 65 6e 74 2d 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 63 61 63 68 69 6e 67 20 69 73 20 63 75 72 72 | ent-configurable.caching.is.curr |
| 345a0 | 65 6e 74 6c 79 0a 73 75 70 70 6f 72 74 65 64 20 6f 6e 6c 79 20 62 79 20 74 68 65 20 41 6e 74 68 | ently.supported.only.by.the.Anth |
| 345c0 | 72 6f 70 69 63 20 41 50 49 20 61 6e 64 20 74 68 75 73 20 74 68 65 0a 60 67 70 74 65 6c 2d 61 6e | ropic.API.and.thus.the.`gptel-an |
| 345e0 | 74 68 72 6f 70 69 63 27 20 62 61 63 6b 65 6e 64 2e 20 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 | thropic'.backend...This.variable |
| 34600 | 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 0a 62 65 68 61 76 69 6f 72 20 6f | .has.no.effect.on.the.behavior.o |
| 34620 | 66 20 6f 74 68 65 72 20 62 61 63 6b 65 6e 64 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 | f.other.backends...This.variable |
| 34640 | 20 63 6f 6e 74 72 6f 6c 73 20 77 68 69 63 68 20 70 61 72 74 73 20 6f 66 20 74 68 65 20 71 75 65 | .controls.which.parts.of.the.que |
| 34660 | 72 79 20 77 69 6c 6c 20 62 65 20 63 61 63 68 65 64 2c 0a 61 6e 64 20 63 61 6e 20 62 65 20 74 68 | ry.will.be.cached,.and.can.be.th |
| 34680 | 65 20 73 79 6d 62 6f 6c 73 20 74 20 6f 72 20 6e 69 6c 20 74 6f 20 63 61 63 68 65 20 65 76 65 72 | e.symbols.t.or.nil.to.cache.ever |
| 346a0 | 79 74 68 69 6e 67 20 6f 72 20 6e 6f 74 68 69 6e 67 0a 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 | ything.or.nothing.respectively.. |
| 346c0 | 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 79 6d 62 6f 6c 73 | It.can.also.be.a.list.of.symbols |
| 346e0 | 3a 0a 0a 2d 20 6d 65 73 73 61 67 65 3a 20 43 61 63 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e | :..-.message:.Cache.conversation |
| 34700 | 20 6d 65 73 73 61 67 65 73 0a 2d 20 73 79 73 74 65 6d 3a 20 43 61 63 68 65 20 74 68 65 20 73 79 | .messages.-.system:.Cache.the.sy |
| 34720 | 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 2d 20 74 6f 6f 6c 3a 20 43 61 63 68 65 20 74 6f 6f 6c 20 | stem.message.-.tool:.Cache.tool. |
| 34740 | 64 65 66 69 6e 69 74 69 6f 6e 73 0a 0a 45 78 61 6d 70 6c 65 73 3a 0a 0a 53 65 74 74 69 6e 67 20 | definitions..Examples:..Setting. |
| 34760 | 69 74 20 74 6f 20 28 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 20 77 69 6c 6c 20 63 61 63 68 | it.to.(message.system).will.cach |
| 34780 | 65 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 74 68 65 20 63 6f 6e | e.the.system.message.and.the.con |
| 347a0 | 76 65 72 73 61 74 69 6f 6e 20 74 65 78 74 2e 0a 0a 53 65 74 74 69 6e 67 20 69 74 20 74 6f 20 28 | versation.text...Setting.it.to.( |
| 347c0 | 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 20 74 6f 6f 6c 29 20 77 69 6c 6c 20 63 61 63 68 65 20 | message.system.tool).will.cache. |
| 347e0 | 65 76 65 72 79 74 68 69 6e 67 20 61 6e 64 20 69 73 0a 74 68 65 20 73 61 6d 65 20 61 73 20 74 2e | everything.and.is.the.same.as.t. |
| 34800 | 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f | "...:type.'(choice...........(co |
| 34820 | 6e 73 74 20 3a 74 61 67 20 22 43 61 63 68 65 20 65 76 65 72 79 74 68 69 6e 67 22 20 74 29 0a 20 | nst.:tag."Cache.everything".t).. |
| 34840 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 20 6e 6f 74 20 63 61 63 | .........(const.:tag."Do.not.cac |
| 34860 | 68 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 65 61 74 20 73 79 6d 62 6f | he".nil)...........(repeat.symbo |
| 34880 | 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 | l))...:group.'gptel)..(defvar.gp |
| 348a0 | 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 | tel--known-backends)..(defconst. |
| 348c0 | 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 28 67 70 74 2d 34 6f | gptel--openai-models...'((gpt-4o |
| 348e0 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 76 61 6e 63 65 64 20 6d 6f 64 | ......:description."Advanced.mod |
| 34900 | 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 | el.for.complex.tasks;.cheaper.&. |
| 34920 | 66 61 73 74 65 72 20 74 68 61 6e 20 47 50 54 2d 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 61 70 | faster.than.GPT-Turbo"......:cap |
| 34940 | 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 | abilities.(media.tool-use.json.u |
| 34960 | 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 | rl)......:mime-types.("image/jpe |
| 34980 | 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 | g"."image/png"."image/gif"."imag |
| 349a0 | 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 | e/webp")......:context-window.12 |
| 349c0 | 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 35 30 0a 20 20 20 20 20 3a 6f 75 | 8......:input-cost.2.50......:ou |
| 349e0 | 74 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.10......:cutoff-date." |
| 34a00 | 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 6f 2d 6d 69 6e 69 0a 20 20 20 20 20 | 2023-10").....(gpt-4o-mini...... |
| 34a20 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 68 65 61 70 20 6d 6f 64 65 6c 20 66 6f 72 20 66 61 | :description."Cheap.model.for.fa |
| 34a40 | 73 74 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 6d 6f 72 65 20 63 61 70 61 62 6c 65 | st.tasks;.cheaper.&.more.capable |
| 34a60 | 20 74 68 61 6e 20 47 50 54 2d 33 2e 35 20 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 61 70 61 62 | .than.GPT-3.5.Turbo"......:capab |
| 34a80 | 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c | ilities.(media.tool-use.json.url |
| 34aa0 | 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 | )......:mime-types.("image/jpeg" |
| 34ac0 | 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f | ."image/png"."image/gif"."image/ |
| 34ae0 | 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a | webp")......:context-window.128. |
| 34b00 | 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 | .....:input-cost.0.15......:outp |
| 34b20 | 75 74 2d 63 6f 73 74 20 30 2e 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | ut-cost.0.60......:cutoff-date." |
| 34b40 | 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 31 0a 20 20 20 20 20 3a 64 65 73 | 2023-10").....(gpt-4.1......:des |
| 34b60 | 63 72 69 70 74 69 6f 6e 20 22 46 6c 61 67 73 68 69 70 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d | cription."Flagship.model.for.com |
| 34b80 | 70 6c 65 78 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 | plex.tasks"......:capabilities.( |
| 34ba0 | 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d | media.tool-use.json.url)......:m |
| 34bc0 | 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 | ime-types.("image/jpeg"."image/p |
| 34be0 | 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 | ng"."image/gif"."image/webp")... |
| 34c00 | 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 32 34 0a 20 20 20 20 20 3a 69 6e | ...:context-window.1024......:in |
| 34c20 | 70 75 74 2d 63 6f 73 74 20 32 2e 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 38 | put-cost.2.0......:output-cost.8 |
| 34c40 | 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a | .0......:cutoff-date."2024-05"). |
| 34c60 | 20 20 20 20 28 67 70 74 2d 34 2e 35 2d 70 72 65 76 69 65 77 0a 20 20 20 20 20 3a 64 65 73 63 72 | ....(gpt-4.5-preview......:descr |
| 34c80 | 69 70 74 69 6f 6e 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 67 70 74 2d 34 2e 31 20 | iption."DEPRECATED:.Use.gpt-4.1. |
| 34ca0 | 69 6e 73 74 65 61 64 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 | instead"......:capabilities.(med |
| 34cc0 | 69 61 20 74 6f 6f 6c 2d 75 73 65 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 | ia.tool-use.url)......:mime-type |
| 34ce0 | 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 | s.("image/jpeg"."image/png"."ima |
| 34d00 | 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 | ge/gif"."image/webp")......:cont |
| 34d20 | 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 | ext-window.128......:input-cost. |
| 34d40 | 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 30 0a 20 20 20 20 20 3a 63 | 75......:output-cost.150......:c |
| 34d60 | 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 | utoff-date."2023-10").....(gpt-4 |
| 34d80 | 2e 31 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 42 61 6c 61 6e | .1-mini......:description."Balan |
| 34da0 | 63 65 20 62 65 74 77 65 65 6e 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 2c 20 73 70 65 65 64 20 61 | ce.between.intelligence,.speed.a |
| 34dc0 | 6e 64 20 63 6f 73 74 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 | nd.cost"......:capabilities.(med |
| 34de0 | 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 | ia.tool-use.json.url)......:mime |
| 34e00 | 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 | -types.("image/jpeg"."image/png" |
| 34e20 | 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 | ."image/gif"."image/webp")...... |
| 34e40 | 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 32 34 0a 20 20 20 20 20 3a 69 6e 70 75 74 | :context-window.1024......:input |
| 34e60 | 2d 63 6f 73 74 20 30 2e 34 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 36 29 | -cost.0.4......:output-cost.1.6) |
| 34e80 | 0a 20 20 20 20 28 67 70 74 2d 34 2e 31 2d 6e 61 6e 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 | .....(gpt-4.1-nano......:descrip |
| 34ea0 | 74 69 6f 6e 20 22 46 61 73 74 65 73 74 2c 20 6d 6f 73 74 20 63 6f 73 74 2d 65 66 66 65 63 74 69 | tion."Fastest,.most.cost-effecti |
| 34ec0 | 76 65 20 47 50 54 2d 34 2e 31 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | ve.GPT-4.1.model"......:capabili |
| 34ee0 | 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 | ties.(media.tool-use.json.url).. |
| 34f00 | 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 | ....:mime-types.("image/jpeg"."i |
| 34f20 | 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 | mage/png"."image/gif"."image/web |
| 34f40 | 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 32 34 0a 20 20 | p")......:context-window.1024... |
| 34f60 | 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 | ...:input-cost.0.10......:output |
| 34f80 | 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 | -cost.0.40......:cutoff-date."20 |
| 34fa0 | 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2d 74 75 72 62 6f 0a 20 20 20 20 20 3a 64 | 24-05").....(gpt-4-turbo......:d |
| 34fc0 | 65 73 63 72 69 70 74 69 6f 6e 20 22 50 72 65 76 69 6f 75 73 20 68 69 67 68 2d 69 6e 74 65 6c 6c | escription."Previous.high-intell |
| 34fe0 | 69 67 65 6e 63 65 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | igence.model"......:capabilities |
| 35000 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 | .(media.tool-use.url)......:mime |
| 35020 | 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 | -types.("image/jpeg"."image/png" |
| 35040 | 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 | ."image/gif"."image/webp")...... |
| 35060 | 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d | :context-window.128......:input- |
| 35080 | 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 | cost.10......:output-cost.30.... |
| 350a0 | 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 31 22 29 0a 20 20 20 20 28 67 | ..:cutoff-date."2023-11").....(g |
| 350c0 | 70 74 2d 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 50 54 2d 34 20 73 6e | pt-4......:description."GPT-4.sn |
| 350e0 | 61 70 73 68 6f 74 20 66 72 6f 6d 20 4a 75 6e 65 20 32 30 32 33 20 77 69 74 68 20 69 6d 70 72 6f | apshot.from.June.2023.with.impro |
| 35100 | 76 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 69 6e 67 20 73 75 70 70 6f 72 74 22 0a 20 20 | ved.function.calling.support"... |
| 35120 | 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d | ...:mime-types.("image/jpeg"."im |
| 35140 | 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 | age/png"."image/gif"."image/webp |
| 35160 | 22 29 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 75 72 6c | ")......:capabilities.(media.url |
| 35180 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 38 2e 31 39 32 0a 20 20 20 | )......:context-window.8.192.... |
| 351a0 | 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f | ..:input-cost.30......:output-co |
| 351c0 | 73 74 20 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 31 | st.60......:cutoff-date."2023-11 |
| 351e0 | 22 29 0a 20 20 20 20 28 6f 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 | ").....(o1......:description."Re |
| 35200 | 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 6f 6c 76 65 20 | asoning.model.designed.to.solve. |
| 35220 | 68 61 72 64 20 70 72 6f 62 6c 65 6d 73 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 | hard.problems.across.domains"... |
| 35240 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 72 65 61 73 6f 6e 69 6e | ...:capabilities.(media.reasonin |
| 35260 | 67 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 | g)......:mime-types.("image/jpeg |
| 35280 | 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 | "."image/png"."image/gif"."image |
| 352a0 | 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 | /webp")......:context-window.200 |
| 352c0 | 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 | ......:input-cost.15......:outpu |
| 352e0 | 74 2d 63 6f 73 74 20 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 | t-cost.60......:cutoff-date."202 |
| 35300 | 33 2d 31 30 22 29 0a 20 20 20 20 28 6f 31 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 | 3-10").....(o1-mini......:descri |
| 35320 | 70 74 69 6f 6e 20 22 46 61 73 74 65 72 20 61 6e 64 20 63 68 65 61 70 65 72 20 72 65 61 73 6f 6e | ption."Faster.and.cheaper.reason |
| 35340 | 69 6e 67 20 6d 6f 64 65 6c 20 67 6f 6f 64 20 61 74 20 63 6f 64 69 6e 67 2c 20 6d 61 74 68 2c 20 | ing.model.good.at.coding,.math,. |
| 35360 | 61 6e 64 20 73 63 69 65 6e 63 65 22 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f | and.science"......:context-windo |
| 35380 | 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f | w.128......:input-cost.3......:o |
| 353a0 | 75 74 70 75 74 2d 63 6f 73 74 20 31 32 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 | utput-cost.12......:cutoff-date. |
| 353c0 | 22 32 30 32 33 2d 31 30 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f | "2023-10"......:capabilities.(no |
| 353e0 | 73 79 73 74 65 6d 20 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 28 6f 33 0a 20 20 20 20 20 | system.reasoning)).....(o3...... |
| 35400 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 57 65 6c 6c 2d 72 6f 75 6e 64 65 64 20 61 6e 64 20 70 | :description."Well-rounded.and.p |
| 35420 | 6f 77 65 72 66 75 6c 20 6d 6f 64 65 6c 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 | owerful.model.across.domains"... |
| 35440 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 | ...:capabilities.(reasoning.medi |
| 35460 | 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d | a.tool-use.json.url)......:mime- |
| 35480 | 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 | types.("image/jpeg"."image/png". |
| 354a0 | 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a | "image/gif"."image/webp")......: |
| 354c0 | 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 | context-window.200......:input-c |
| 354e0 | 6f 73 74 20 32 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 38 0a 20 20 20 20 20 3a | ost.2......:output-cost.8......: |
| 35500 | 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 6f 33 2d 6d | cutoff-date."2024-05").....(o3-m |
| 35520 | 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 20 69 6e 74 65 | ini......:description."High.inte |
| 35540 | 6c 6c 69 67 65 6e 63 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 63 6f 73 74 20 61 6e 64 20 6c 61 | lligence.at.the.same.cost.and.la |
| 35560 | 74 65 6e 63 79 20 74 61 72 67 65 74 73 20 6f 66 20 6f 31 2d 6d 69 6e 69 22 0a 20 20 20 20 20 3a | tency.targets.of.o1-mini"......: |
| 35580 | 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 | context-window.200......:input-c |
| 355a0 | 6f 73 74 20 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a | ost.1.10......:output-cost.4.40. |
| 355c0 | 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 0a 20 20 20 20 | .....:cutoff-date."2023-10"..... |
| 355e0 | 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 74 6f 6f 6c 2d 75 | .:capabilities.(reasoning.tool-u |
| 35600 | 73 65 20 6a 73 6f 6e 29 29 0a 20 20 20 20 28 6f 34 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 | se.json)).....(o4-mini......:des |
| 35620 | 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 2c 20 65 66 66 65 63 74 69 76 65 20 72 65 61 73 6f 6e | cription."Fast,.effective.reason |
| 35640 | 69 6e 67 20 77 69 74 68 20 65 66 66 69 63 69 65 6e 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 | ing.with.efficient.performance.i |
| 35660 | 6e 20 63 6f 64 69 6e 67 20 61 6e 64 20 76 69 73 75 61 6c 20 74 61 73 6b 73 22 0a 20 20 20 20 20 | n.coding.and.visual.tasks"...... |
| 35680 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 20 74 | :capabilities.(reasoning.media.t |
| 356a0 | 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 | ool-use.json.url)......:mime-typ |
| 356c0 | 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d | es.("image/jpeg"."image/png"."im |
| 356e0 | 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e | age/gif"."image/webp")......:con |
| 35700 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 | text-window.200......:input-cost |
| 35720 | 20 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a 20 20 20 | .1.10......:output-cost.4.40.... |
| 35740 | 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 | ..:cutoff-date."2024-05").....(g |
| 35760 | 70 74 2d 33 2e 35 2d 74 75 72 62 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | pt-3.5-turbo......:description." |
| 35780 | 4d 6f 72 65 20 65 78 70 65 6e 73 69 76 65 20 26 20 6c 65 73 73 20 63 61 70 61 62 6c 65 20 74 68 | More.expensive.&.less.capable.th |
| 357a0 | 61 6e 20 47 50 54 2d 34 6f 2d 6d 69 6e 69 3b 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 | an.GPT-4o-mini;.use.that.instead |
| 357c0 | 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 29 0a | "......:capabilities.(tool-use). |
| 357e0 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 36 2e 33 35 38 0a 20 20 20 20 | .....:context-window.16.358..... |
| 35800 | 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 35 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 | .:input-cost.0.50......:output-c |
| 35820 | 6f 73 74 20 31 2e 35 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 31 | ost.1.50......:cutoff-date."2021 |
| 35840 | 2d 30 39 22 29 0a 20 20 20 20 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 2d 31 36 6b 0a 20 20 20 | -09").....(gpt-3.5-turbo-16k.... |
| 35860 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 72 65 20 65 78 70 65 6e 73 69 76 65 20 26 | ..:description."More.expensive.& |
| 35880 | 20 6c 65 73 73 20 63 61 70 61 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 34 6f 2d 6d 69 6e 69 3b 20 | .less.capable.than.GPT-4o-mini;. |
| 358a0 | 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | use.that.instead"......:capabili |
| 358c0 | 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 | ties.(tool-use)......:context-wi |
| 358e0 | 6e 64 6f 77 20 31 36 2e 33 38 35 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 | ndow.16.385......:input-cost.3.. |
| 35900 | 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d | ....:output-cost.4......:cutoff- |
| 35920 | 64 61 74 65 20 22 32 30 32 31 2d 30 39 22 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 | date."2021-09"))..."List.of.avai |
| 35940 | 6c 61 62 6c 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 | lable.OpenAI.models.and.associat |
| 35960 | 65 64 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 4b 65 79 73 3a 0a 0a 2d 20 60 3a 64 65 73 63 72 69 | ed.properties..Keys:..-.`:descri |
| 35980 | 70 74 69 6f 6e 27 3a 20 61 20 62 72 69 65 66 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 | ption':.a.brief.description.of.t |
| 359a0 | 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 63 61 70 61 62 69 6c 69 74 69 65 73 27 3a 20 61 20 | he.model...-.`:capabilities':.a. |
| 359c0 | 6c 69 73 74 20 6f 66 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 | list.of.capabilities.supported.b |
| 359e0 | 79 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 6d 69 6d 65 2d 74 79 70 65 73 27 3a 20 61 | y.the.model...-.`:mime-types':.a |
| 35a00 | 20 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 73 20 66 6f | .list.of.supported.MIME.types.fo |
| 35a20 | 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 0a 0a 2d 20 60 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 | r.media.files...-.`:context-wind |
| 35a40 | 6f 77 27 3a 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 6e 64 6f 77 20 73 69 7a 65 2c 20 69 6e | ow':.the.context.window.size,.in |
| 35a60 | 20 74 68 6f 75 73 61 6e 64 73 20 6f 66 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 69 6e 70 75 74 | .thousands.of.tokens...-.`:input |
| 35a80 | 2d 63 6f 73 74 27 3a 20 74 68 65 20 69 6e 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f | -cost':.the.input.cost,.in.US.do |
| 35aa0 | 6c 6c 61 72 73 20 70 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 6f | llars.per.million.tokens...-.`:o |
| 35ac0 | 75 74 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 6f 75 74 70 75 74 20 63 6f 73 74 2c 20 69 6e | utput-cost':.the.output.cost,.in |
| 35ae0 | 20 55 53 20 64 6f 6c 6c 61 72 73 20 70 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a | .US.dollars.per.million.tokens.. |
| 35b00 | 0a 2d 20 60 3a 63 75 74 6f 66 66 2d 64 61 74 65 27 3a 20 74 68 65 20 6b 6e 6f 77 6c 65 64 67 65 | .-.`:cutoff-date':.the.knowledge |
| 35b20 | 20 63 75 74 6f 66 66 20 64 61 74 65 2e 0a 0a 2d 20 60 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d | .cutoff.date...-.`:request-param |
| 35b40 | 73 27 3a 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 71 75 65 73 | s':.a.plist.of.additional.reques |
| 35b60 | 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 0a 20 20 69 6e 63 6c 75 64 65 20 77 68 65 6e 20 75 | t.parameters.to...include.when.u |
| 35b80 | 73 69 6e 67 20 74 68 69 73 20 6d 6f 64 65 6c 2e 0a 0a 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 | sing.this.model...Information.ab |
| 35ba0 | 6f 75 74 20 74 68 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 77 61 73 20 6f 62 74 61 69 6e | out.the.OpenAI.models.was.obtain |
| 35bc0 | 65 64 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 73 6f 75 72 63 65 73 3a 0a 0a | ed.from.the.following.sources:.. |
| 35be0 | 2d 20 3c 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f 64 | -.<https://platform.openai.com/d |
| 35c00 | 6f 63 73 2f 70 72 69 63 69 6e 67 3e 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d | ocs/pricing>.-.<https://platform |
| 35c20 | 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f 64 6f 63 73 2f 6d 6f 64 65 6c 73 3e 22 29 0a 0a 28 64 65 66 | .openai.com/docs/models>")..(def |
| 35c40 | 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 70 74 2d 34 6f 2d 6d 69 6e 69 0a | custom.gptel-model.'gpt-4o-mini. |
| 35c60 | 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 4d 6f 64 65 6c 20 66 6f 72 20 63 68 61 74 2e 0a 0a 54 | ..(concat...."Model.for.chat...T |
| 35c80 | 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2c 20 61 73 20 61 20 73 79 6d 62 6f | he.name.of.the.model,.as.a.symbo |
| 35ca0 | 6c 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d 65 20 61 73 20 65 78 70 65 63 74 65 64 | l...This.is.the.name.as.expected |
| 35cc0 | 0a 62 79 20 74 68 65 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 27 73 20 41 50 49 2e 0a 0a 54 6f 20 | .by.the.LLM.provider's.API...To. |
| 35ce0 | 73 65 74 20 74 68 65 20 6d 6f 64 65 6c 20 66 6f 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e | set.the.model.for.a.chat.session |
| 35d00 | 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 | .interactively.call.`gptel-send' |
| 35d20 | 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 29 0a 20 20 3a 73 61 | .with.a.prefix.argument.")...:sa |
| 35d40 | 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 63 68 6f 69 63 65 0a 09 20 20 | fe.#'always...:type.`(choice.... |
| 35d60 | 28 73 79 6d 62 6f 6c 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 6d 6f 64 65 6c 20 6e 61 6d 65 | (symbol.:tag."Specify.model.name |
| 35d80 | 22 29 0a 09 20 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6d 6f 64 65 6c 29 0a | ")....,@(mapcar.(lambda.(model). |
| 35da0 | 09 09 20 20 20 20 20 20 28 6c 69 73 74 20 27 63 6f 6e 73 74 20 3a 74 61 67 20 28 73 79 6d 62 6f | ........(list.'const.:tag.(symbo |
| 35dc0 | 6c 2d 6e 61 6d 65 20 28 63 61 72 20 6d 6f 64 65 6c 29 29 0a 09 09 09 20 20 20 20 28 63 61 72 20 | l-name.(car.model))........(car. |
| 35de0 | 6d 6f 64 65 6c 29 29 29 0a 09 09 20 20 20 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 | model))).......gptel--openai-mod |
| 35e00 | 65 6c 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 | els)))..(defvar.gptel--openai... |
| 35e20 | 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 20 20 20 22 43 68 61 74 47 50 | (gptel-make-openai......."ChatGP |
| 35e40 | 54 22 0a 20 20 20 20 3a 6b 65 79 20 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 3a | T".....:key.'gptel-api-key.....: |
| 35e60 | 73 74 72 65 61 6d 20 74 0a 20 20 20 20 3a 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 6f 70 65 6e | stream.t.....:models.gptel--open |
| 35e80 | 61 69 2d 6d 6f 64 65 6c 73 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 62 61 | ai-models))..(defcustom.gptel-ba |
| 35ea0 | 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 22 4c 4c 4d 20 62 61 63 6b 65 | ckend.gptel--openai..."LLM.backe |
| 35ec0 | 6e 64 20 74 6f 20 75 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 | nd.to.use...This.is.the.default. |
| 35ee0 | 5c 22 62 61 63 6b 65 6e 64 5c 22 2c 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 0a 60 | \"backend\",.an.object.of.type.` |
| 35f00 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 63 6f 6e 74 61 69 6e 69 6e 67 20 63 6f 6e 6e 65 63 | gptel-backend'.containing.connec |
| 35f20 | 74 69 6f 6e 2c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 65 6c 0a 69 | tion,.authentication.and.model.i |
| 35f40 | 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 41 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 43 68 61 74 47 | nformation...A.backend.for.ChatG |
| 35f60 | 50 54 20 69 73 20 70 72 65 2d 64 65 66 69 6e 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 42 61 63 | PT.is.pre-defined.by.gptel...Bac |
| 35f80 | 6b 65 6e 64 73 20 66 6f 72 0a 6f 74 68 65 72 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 20 28 6c | kends.for.other.LLM.providers.(l |
| 35fa0 | 6f 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 6d 61 79 20 62 65 20 63 6f 6e 73 74 72 75 63 74 | ocal.or.remote).may.be.construct |
| 35fc0 | 65 64 20 75 73 69 6e 67 0a 6f 6e 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 62 61 | ed.using.one.of.the.available.ba |
| 35fe0 | 63 6b 65 6e 64 20 63 72 65 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 2d 20 60 67 70 74 | ckend.creation.functions:.-.`gpt |
| 36000 | 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a | el-make-openai'.-.`gptel-make-az |
| 36020 | 75 72 65 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 0a 2d 20 60 67 70 | ure'.-.`gptel-make-ollama'.-.`gp |
| 36040 | 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d | tel-make-gpt4all'.-.`gptel-make- |
| 36060 | 67 65 6d 69 6e 69 27 0a 53 65 65 20 74 68 65 69 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 | gemini'.See.their.documentation. |
| 36080 | 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 70 61 63 | for.more.information.and.the.pac |
| 360a0 | 6b 61 67 65 0a 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 22 0a 20 20 3a 73 61 | kage.README.for.examples."...:sa |
| 360c0 | 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 63 68 6f 69 63 65 0a 20 20 20 | fe.#'always...:type.`(choice.... |
| 360e0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 43 68 61 74 47 50 54 22 20 2c 67 70 | .......(const.:tag."ChatGPT".,gp |
| 36100 | 74 65 6c 2d 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 72 69 63 74 | tel--openai)...........(restrict |
| 36120 | 65 64 2d 73 65 78 70 20 3a 6d 61 74 63 68 2d 61 6c 74 65 72 6e 61 74 69 76 65 73 20 28 67 70 74 | ed-sexp.:match-alternatives.(gpt |
| 36140 | 65 6c 2d 62 61 63 6b 65 6e 64 2d 70 20 27 6e 69 6c 29 0a 09 09 09 20 20 20 3a 74 61 67 20 22 4f | el-backend-p.'nil).......:tag."O |
| 36160 | 74 68 65 72 20 62 61 63 6b 65 6e 64 22 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | ther.backend")))..(defvar.gptel- |
| 36180 | 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 65 | expert-commands.nil..."Whether.e |
| 361a0 | 78 70 65 72 69 6d 65 6e 74 61 6c 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 73 68 6f 75 6c 64 | xperimental.gptel.options.should |
| 361c0 | 20 62 65 20 65 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 6f 70 65 6e 73 20 75 70 20 61 64 76 61 | .be.enabled...This.opens.up.adva |
| 361e0 | 6e 63 65 64 20 6f 70 74 69 6f 6e 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 29 0a | nced.options.in.`gptel-menu'."). |
| 36200 | 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 6e 69 6c | .(defvar-local.gptel--bounds.nil |
| 36220 | 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 27 73 61 66 65 2d 6c 6f 63 61 | ).(put.'gptel--bounds.'safe-loca |
| 36240 | 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 76 61 72 20 67 70 | l-variable.#'always)..(defvar.gp |
| 36260 | 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 6e 69 6c 29 0a 28 | tel--num-messages-to-send.nil).( |
| 36280 | 70 75 74 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 | put.'gptel--num-messages-to-send |
| 362a0 | 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a | .'safe-local-variable.#'always). |
| 362c0 | 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 6e 69 6c 0a | .(defcustom.gptel-log-level.nil. |
| 362e0 | 20 20 22 4c 6f 67 67 69 6e 67 20 6c 65 76 65 6c 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 68 69 | .."Logging.level.for.gptel...Thi |
| 36300 | 73 20 69 73 20 6f 6e 65 20 6f 66 20 6e 69 6c 20 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 69 | s.is.one.of.nil.or.the.symbols.i |
| 36320 | 6e 66 6f 20 61 6e 64 20 64 65 62 75 67 3a 0a 0a 6e 69 6c 3a 20 44 6f 6e 27 74 20 6c 6f 67 20 72 | nfo.and.debug:..nil:.Don't.log.r |
| 36340 | 65 73 70 6f 6e 73 65 73 0a 69 6e 66 6f 3a 20 4c 6f 67 20 72 65 71 75 65 73 74 20 61 6e 64 20 72 | esponses.info:.Log.request.and.r |
| 36360 | 65 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 0a 64 65 62 75 67 3a 20 4c 6f 67 20 72 65 71 75 65 73 | esponse.bodies.debug:.Log.reques |
| 36380 | 74 2f 72 65 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 2c 20 68 65 61 64 65 72 73 20 61 6e 64 20 61 | t/response.bodies,.headers.and.a |
| 363a0 | 6c 6c 20 6f 74 68 65 72 0a 20 20 20 20 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 65 74 74 69 | ll.other........connection.setti |
| 363c0 | 6e 67 73 2e 0a 0a 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 | ngs...When.non-nil,.information. |
| 363e0 | 69 73 20 6c 6f 67 67 65 64 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d | is.logged.to.`gptel--log-buffer- |
| 36400 | 6e 61 6d 65 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f | name',.which.see."...:type.'(cho |
| 36420 | 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 6c 6f | ice...........(const.:tag."No.lo |
| 36440 | 67 67 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 | gging".nil)...........(const.:ta |
| 36460 | 67 20 22 4c 69 6d 69 74 65 64 22 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | g."Limited".info)...........(con |
| 36480 | 73 74 20 3a 74 61 67 20 22 46 75 6c 6c 22 20 64 65 62 75 67 29 29 29 0a 0a 28 64 65 66 63 75 73 | st.:tag."Full".debug)))..(defcus |
| 364a0 | 74 6f 6d 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 20 74 0a 20 20 22 44 69 | tom.gptel-track-response.t..."Di |
| 364c0 | 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 | stinguish.between.user.messages. |
| 364e0 | 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 57 68 65 6e 20 63 72 65 61 74 69 6e | and.LLM.responses...When.creatin |
| 36500 | 67 20 61 20 70 72 6f 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 67 | g.a.prompt.to.send.to.the.LLM,.g |
| 36520 | 70 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 65 73 0a 62 65 74 77 65 65 6e 20 74 65 78 74 20 | ptel.distinguishes.between.text. |
| 36540 | 65 6e 74 65 72 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 6e 64 20 70 61 73 74 20 4c 4c 4d | entered.by.the.user.and.past.LLM |
| 36560 | 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 69 73 0a 64 69 73 74 69 6e 63 74 69 6f 6e 20 69 73 | .responses...This.distinction.is |
| 36580 | 20 6e 65 63 65 73 73 61 72 79 20 66 6f 72 20 62 61 63 6b 2d 61 6e 64 2d 66 6f 72 74 68 20 63 6f | .necessary.for.back-and-forth.co |
| 365a0 | 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 6e 0a 4c 4c 4d 2e 0a 0a 49 6e 20 72 65 67 75 | nversation.with.an.LLM...In.regu |
| 365c0 | 6c 61 72 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 20 79 6f 75 20 63 61 6e 20 74 75 72 6e 20 74 | lar.Emacs.buffers.you.can.turn.t |
| 365e0 | 68 69 73 20 62 65 68 61 76 69 6f 72 20 6f 66 66 20 62 79 0a 73 65 74 74 69 6e 67 20 60 67 70 74 | his.behavior.off.by.setting.`gpt |
| 36600 | 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 27 20 74 6f 20 6e 69 6c 2e 20 20 41 6c 6c 20 | el-track-response'.to.nil...All. |
| 36620 | 74 65 78 74 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 70 61 73 74 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 | text,.including.past.LLM.respons |
| 36640 | 65 73 2c 20 69 73 20 74 68 65 6e 20 74 72 65 61 74 65 64 20 61 73 20 75 73 65 72 20 69 6e 70 75 | es,.is.then.treated.as.user.inpu |
| 36660 | 74 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 0a 71 75 65 72 69 65 73 2e 0a 0a 54 68 69 73 20 76 61 | t.when.sending.queries...This.va |
| 36680 | 72 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 6e 20 64 65 64 69 63 61 74 65 | riable.has.no.effect.in.dedicate |
| 366a0 | 64 20 63 68 61 74 20 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 73 0a 77 69 74 68 20 60 67 70 | d.chat.buffers.(buffers.with.`gp |
| 366c0 | 74 65 6c 2d 6d 6f 64 65 27 20 65 6e 61 62 6c 65 64 29 2c 20 77 68 65 72 65 20 75 73 65 72 20 70 | tel-mode'.enabled),.where.user.p |
| 366e0 | 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 61 72 65 0a 61 6c 77 61 79 73 20 | rompts.and.responses.are.always. |
| 36700 | 68 61 6e 64 6c 65 64 20 73 65 70 61 72 61 74 65 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f | handled.separately."...:type.'bo |
| 36720 | 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d | olean)..(defcustom.gptel-track-m |
| 36740 | 65 64 69 61 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 6d 65 | edia.nil..."Whether.supported.me |
| 36760 | 64 69 61 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 73 68 6f 75 6c 64 20 62 65 20 73 65 | dia.in.chat.buffers.should.be.se |
| 36780 | 6e 74 2e 0a 0a 57 68 65 6e 20 74 68 65 20 61 63 74 69 76 65 20 60 67 70 74 65 6c 2d 6d 6f 64 65 | nt...When.the.active.`gptel-mode |
| 367a0 | 6c 27 20 73 75 70 70 6f 72 74 73 20 69 74 2c 20 67 70 74 65 6c 20 63 61 6e 20 73 65 6e 64 20 69 | l'.supports.it,.gptel.can.send.i |
| 367c0 | 6d 61 67 65 73 0a 6f 72 20 6f 74 68 65 72 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c 69 6e 6b 73 20 | mages.or.other.media.from.links. |
| 367e0 | 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 54 6f 20 | in.chat.buffers.to.the.LLM...To. |
| 36800 | 75 73 65 0a 74 68 69 73 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 65 70 73 20 61 72 | use.this,.the.following.steps.ar |
| 36820 | 65 20 72 65 71 75 69 72 65 64 2e 0a 0a 31 2e 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 | e.required...1..`gptel-track-med |
| 36840 | 69 61 27 20 28 74 68 69 73 20 76 61 72 69 61 62 6c 65 29 20 73 68 6f 75 6c 64 20 62 65 20 6e 6f | ia'.(this.variable).should.be.no |
| 36860 | 6e 2d 6e 69 6c 0a 0a 32 2e 20 54 68 65 20 4c 4c 4d 20 73 68 6f 75 6c 64 20 70 72 6f 76 69 64 65 | n-nil..2..The.LLM.should.provide |
| 36880 | 20 76 69 73 69 6f 6e 20 6f 72 20 64 6f 63 75 6d 65 6e 74 20 73 75 70 70 6f 72 74 2e 20 20 43 75 | .vision.or.document.support...Cu |
| 368a0 | 72 72 65 6e 74 6c 79 2c 0a 6f 6e 6c 79 20 74 68 65 20 4f 70 65 6e 41 49 2c 20 41 6e 74 68 72 6f | rrently,.only.the.OpenAI,.Anthro |
| 368c0 | 70 69 63 20 61 6e 64 20 4f 6c 6c 61 6d 61 20 41 50 49 73 20 61 72 65 20 73 75 70 70 6f 72 74 65 | pic.and.Ollama.APIs.are.supporte |
| 368e0 | 64 2e 20 20 53 65 65 0a 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 60 67 70 | d...See.the.documentation.of.`gp |
| 36900 | 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2c 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e | tel-make-openai',.`gptel-make-an |
| 36920 | 74 68 72 6f 70 69 63 27 0a 61 6e 64 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 | thropic'.and.`gptel-make-ollama' |
| 36940 | 20 72 65 73 70 2e 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 68 6f 77 20 74 6f 20 73 70 65 | .resp..for.details.on.how.to.spe |
| 36960 | 63 69 66 79 20 6d 65 64 69 61 0a 73 75 70 70 6f 72 74 20 66 6f 72 20 6d 6f 64 65 6c 73 2e 0a 0a | cify.media.support.for.models... |
| 36980 | 33 2e 20 4f 6e 6c 79 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 20 6c 69 6e 6b 73 20 69 6e 20 | 3..Only.\"standalone\".links.in. |
| 369a0 | 63 68 61 74 20 62 75 66 66 65 72 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 2e 0a 54 68 65 | chat.buffers.are.considered..The |
| 369c0 | 73 65 20 61 72 65 20 6c 69 6e 6b 73 20 6f 6e 20 74 68 65 69 72 20 6f 77 6e 20 6c 69 6e 65 20 77 | se.are.links.on.their.own.line.w |
| 369e0 | 69 74 68 20 6e 6f 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 74 2e 0a 46 75 72 74 68 65 72 | ith.no.surrounding.text..Further |
| 36a00 | 3a 0a 0a 2d 20 49 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 6f 6e 6c 79 20 66 69 6c 65 73 20 6f 72 20 | :..-.In.Org.mode,.only.files.or. |
| 36a20 | 55 52 4c 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 5b 5b 2f 70 61 74 68 2f 74 6f 2f 6d 65 | URLs.of.the.form...[[/path/to/me |
| 36a40 | 64 69 61 5d 5b 62 72 61 63 6b 65 74 20 6c 69 6e 6b 73 5d 5d 20 61 6e 64 20 3c 61 6e 67 6c 65 2f | dia][bracket.links]].and.<angle/ |
| 36a60 | 6c 69 6e 6b 2f 70 61 74 68 3e 0a 20 20 61 72 65 20 73 65 6e 74 2e 0a 0a 2d 20 49 6e 20 4d 61 72 | link/path>...are.sent...-.In.Mar |
| 36a80 | 6b 64 6f 77 6e 20 6d 6f 64 65 2c 20 6f 6e 6c 79 20 66 69 6c 65 73 20 6f 72 20 55 52 4c 53 20 6f | kdown.mode,.only.files.or.URLS.o |
| 36aa0 | 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 5b 62 72 61 63 6b 65 74 20 6c 69 6e 6b 5d 28 2f 70 61 74 | f.the.form...[bracket.link](/pat |
| 36ac0 | 68 2f 74 6f 2f 6d 65 64 69 61 29 20 61 6e 64 20 3c 61 6e 67 6c 65 2f 6c 69 6e 6b 2f 70 61 74 68 | h/to/media).and.<angle/link/path |
| 36ae0 | 3e 0a 20 20 61 72 65 20 73 65 6e 74 2e 0a 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 68 61 73 20 6e | >...are.sent...This.option.has.n |
| 36b00 | 6f 20 65 66 66 65 63 74 20 69 6e 20 6e 6f 6e 2d 63 68 61 74 20 62 75 66 66 65 72 73 2e 20 20 54 | o.effect.in.non-chat.buffers...T |
| 36b20 | 6f 20 69 6e 63 6c 75 64 65 0a 6d 65 64 69 61 20 28 69 6e 63 6c 75 64 69 6e 67 20 69 6d 61 67 65 | o.include.media.(including.image |
| 36b40 | 73 29 20 6d 6f 72 65 20 67 65 6e 65 72 61 6c 6c 79 2c 20 75 73 65 20 60 67 70 74 65 6c 2d 61 64 | s).more.generally,.use.`gptel-ad |
| 36b60 | 64 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 | d'."...:type.'boolean)..(defcust |
| 36b80 | 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 73 79 73 74 65 6d 0a 20 20 22 | om.gptel-use-context.'system..." |
| 36ba0 | 57 68 65 72 65 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 69 6e 6a 65 63 74 20 67 | Where.in.the.request.to.inject.g |
| 36bc0 | 70 74 65 6c 27 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 67 70 74 65 | ptel's.additional.context...gpte |
| 36be0 | 6c 20 61 6c 77 61 79 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 61 63 74 69 76 65 20 72 65 67 | l.always.includes.the.active.reg |
| 36c00 | 69 6f 6e 20 6f 72 20 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 74 68 65 0a 63 75 72 73 | ion.or.the.buffer.up.to.the.curs |
| 36c20 | 6f 72 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 41 | or.in.the.request.to.the.LLM...A |
| 36c40 | 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 0a 6f 74 68 65 72 20 62 | dditionally,.you.can.add.other.b |
| 36c60 | 75 66 66 65 72 73 20 6f 72 20 74 68 65 69 72 20 72 65 67 69 6f 6e 73 20 74 6f 20 74 68 65 20 63 | uffers.or.their.regions.to.the.c |
| 36c80 | 6f 6e 74 65 78 74 20 77 69 74 68 0a 60 67 70 74 65 6c 2d 61 64 64 2d 63 6f 6e 74 65 78 74 27 2c | ontext.with.`gptel-add-context', |
| 36ca0 | 20 6f 72 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2e 20 20 54 68 69 73 20 64 61 74 | .or.from.gptel's.menu...This.dat |
| 36cc0 | 61 20 77 69 6c 6c 20 62 65 0a 73 65 6e 74 20 77 69 74 68 20 65 76 65 72 79 20 72 65 71 75 65 73 | a.will.be.sent.with.every.reques |
| 36ce0 | 74 2e 0a 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 | t...This.option.controls.whether |
| 36d00 | 20 61 6e 64 20 77 68 65 72 65 20 74 68 69 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 | .and.where.this.additional.conte |
| 36d20 | 78 74 20 69 73 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a | xt.is.included.in.the.request... |
| 36d40 | 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 70 74 69 6f 6e 73 20 61 72 65 3a | Currently.supported.options.are: |
| 36d60 | 0a 0a 20 20 20 20 6e 69 6c 20 20 20 20 20 2d 20 44 6f 20 6e 6f 74 20 75 73 65 20 74 68 65 20 63 | ......nil.....-.Do.not.use.the.c |
| 36d80 | 6f 6e 74 65 78 74 2e 0a 20 20 20 20 73 79 73 74 65 6d 20 20 2d 20 49 6e 63 6c 75 64 65 20 74 68 | ontext......system..-.Include.th |
| 36da0 | 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 | e.context.with.the.system.messag |
| 36dc0 | 65 2e 0a 20 20 20 20 75 73 65 72 20 20 20 20 2d 20 49 6e 63 6c 75 64 65 20 74 68 65 20 63 6f 6e | e......user....-.Include.the.con |
| 36de0 | 74 65 78 74 20 77 69 74 68 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d 70 74 2e 22 0a 20 20 3a 67 | text.with.the.user.prompt."...:g |
| 36e00 | 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 | roup.'gptel...:type.'(choice.... |
| 36e20 | 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 69 6e 63 6c 75 64 | .......(const.:tag."Don't.includ |
| 36e40 | 65 20 63 6f 6e 74 65 78 74 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 | e.context".nil)...........(const |
| 36e60 | 20 3a 74 61 67 20 22 57 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 73 79 73 74 | .:tag."With.system.message".syst |
| 36e80 | 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 57 69 74 68 20 | em)...........(const.:tag."With. |
| 36ea0 | 75 73 65 72 20 70 72 6f 6d 70 74 22 20 75 73 65 72 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d | user.prompt".user)))..(defcustom |
| 36ec0 | 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 74 0a 20 20 22 48 6f | .gptel-include-reasoning.t..."Ho |
| 36ee0 | 77 20 74 6f 20 68 61 6e 64 6c 65 20 4c 4c 4d 20 72 65 61 73 6f 6e 69 6e 67 20 6f 72 20 5c 22 74 | w.to.handle.LLM.reasoning.or.\"t |
| 36f00 | 68 69 6e 6b 69 6e 67 5c 22 20 74 65 78 74 20 62 6c 6f 63 6b 73 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d | hinking\".text.blocks...Some.LLM |
| 36f20 | 73 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 20 61 20 5c 22 | s.include.in.their.response.a.\" |
| 36f40 | 74 68 69 6e 6b 69 6e 67 5c 22 20 73 65 63 74 69 6f 6e 2e 20 20 54 68 69 73 0a 74 65 78 74 20 69 | thinking\".section...This.text.i |
| 36f60 | 6d 70 72 6f 76 65 73 20 74 68 65 20 71 75 61 6c 69 74 79 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 | mproves.the.quality.of.the.LLM's |
| 36f80 | 20 66 69 6e 61 6c 20 6f 75 74 70 75 74 2c 20 62 75 74 20 6d 61 79 20 6e 6f 74 0a 62 65 20 69 6e | .final.output,.but.may.not.be.in |
| 36fa0 | 74 65 72 65 73 74 69 6e 67 20 74 6f 20 79 6f 75 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 53 75 70 | teresting.to.you.by.itself...Sup |
| 36fc0 | 70 6f 72 74 65 64 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 74 68 65 20 73 79 6d 62 6f 6c 73 0a 0a | ported.options.are.the.symbols.. |
| 36fe0 | 20 20 20 20 74 20 20 20 20 20 20 20 2d 20 49 6e 63 6c 75 64 65 20 77 69 74 68 20 74 68 65 20 72 | ....t.......-.Include.with.the.r |
| 37000 | 65 73 70 6f 6e 73 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 6e 69 6c 20 20 20 20 | esponse,.the.default.....nil.... |
| 37020 | 20 2d 20 44 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 69 67 6e 6f 72 65 20 20 2d 20 | .-.Do.not.include.....ignore..-. |
| 37040 | 49 6e 63 6c 75 64 65 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 62 75 74 20 69 67 | Include.with.the.response.but.ig |
| 37060 | 6e 6f 72 65 20 6f 6e 20 73 75 62 73 65 71 75 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | nore.on.subsequent.............. |
| 37080 | 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 0a 0a 49 74 20 63 61 6e 20 61 6c 73 6f | .conversation.turns..It.can.also |
| 370a0 | 20 62 65 20 61 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 61 20 62 75 66 66 65 72 2c 20 69 6e | .be.a.string.naming.a.buffer,.in |
| 370c0 | 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 0a 72 65 61 73 6f 6e 69 6e 67 20 74 65 78 74 20 77 | .which.case.the.reasoning.text.w |
| 370e0 | 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 | ill.be.inserted.at.the.end.of.th |
| 37100 | 61 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 | at.buffer."...:group.'gptel...:t |
| 37120 | 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 | ype.'(choice...........(const.:t |
| 37140 | 61 67 20 22 49 6e 63 6c 75 64 65 20 77 69 74 68 20 72 65 73 70 6f 6e 73 65 22 20 74 29 0a 20 20 | ag."Include.with.response".t)... |
| 37160 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 69 6e 63 6c 75 | ........(const.:tag."Don't.inclu |
| 37180 | 64 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 | de".nil)...........(const.:tag." |
| 371a0 | 49 6e 63 6c 75 64 65 20 62 75 74 20 69 67 6e 6f 72 65 22 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 | Include.but.ignore".ignore)..... |
| 371c0 | 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 69 6e 20 62 | ......(string.:tag."Include.in.b |
| 371e0 | 75 66 66 65 72 22 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d | uffer")))..(defvar-local.gptel-- |
| 37200 | 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 | old-header-line.nil)..(defvar.gp |
| 37220 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f | tel-context--alist.nil..."List.o |
| 37240 | 66 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 2e 0a 0a 45 61 63 68 | f.gptel's.context.sources...Each |
| 37260 | 20 65 6e 74 72 79 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 62 75 66 66 65 72 20 2e | .entry.is.of.the.form..(buffer.. |
| 37280 | 20 28 6f 76 65 72 6c 61 79 31 20 6f 76 65 72 6c 61 79 32 20 2e 2e 2e 29 29 0a 6f 72 0a 20 28 5c | .(overlay1.overlay2....)).or..(\ |
| 372a0 | 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 | "path/to/file\").")..(defvar.gpt |
| 372c0 | 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f | el--request-alist.nil..."Alist.o |
| 372e0 | 66 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e 0a 45 61 63 68 20 65 6e | f.active.gptel.requests..Each.en |
| 37300 | 74 72 79 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 50 52 4f 43 45 53 53 20 2e 20 28 46 53 4d | try.has.the.form.(PROCESS...(FSM |
| 37320 | 20 41 42 4f 52 54 2d 43 4c 4f 53 55 52 45 29 29 0a 49 66 20 74 68 65 20 41 42 4f 52 54 2d 43 4c | .ABORT-CLOSURE)).If.the.ABORT-CL |
| 37340 | 4f 53 55 52 45 20 69 73 20 63 61 6c 6c 65 64 2c 20 69 74 20 6d 75 73 74 20 61 62 6f 72 74 20 74 | OSURE.is.called,.it.must.abort.t |
| 37360 | 68 65 20 50 52 4f 43 45 53 53 2e 22 29 0a 0a 0c 0a 3b 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e | he.PROCESS.")....;;;.Utility.fun |
| 37380 | 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f | ctions..(defun.gptel-api-key-fro |
| 373a0 | 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 6f 73 74 20 75 73 | m-auth-source.(&optional.host.us |
| 373c0 | 65 72 29 0a 20 20 22 4c 6f 6f 6b 75 70 20 61 70 69 20 6b 65 79 20 69 6e 20 74 68 65 20 61 75 74 | er)..."Lookup.api.key.in.the.aut |
| 373e0 | 68 20 73 6f 75 72 63 65 2e 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 4c 4c 4d 20 68 6f | h.source..By.default,.the.LLM.ho |
| 37400 | 73 74 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 69 73 20 75 73 65 | st.for.the.active.backend.is.use |
| 37420 | 64 20 61 73 20 48 4f 53 54 2c 0a 61 6e 64 20 5c 22 61 70 69 6b 65 79 5c 22 20 61 73 20 55 53 45 | d.as.HOST,.and.\"apikey\".as.USE |
| 37440 | 52 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 73 65 63 72 65 74 0a 20 20 20 20 20 20 20 20 | R."...(if-let*.((secret......... |
| 37460 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | .....(plist-get...............(c |
| 37480 | 61 72 20 28 61 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 | ar.(auth-source-search.......... |
| 374a0 | 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 28 6f 72 20 68 6f 73 74 20 28 67 70 74 65 6c | ...........:host.(or.host.(gptel |
| 374c0 | 2d 62 61 63 6b 65 6e 64 2d 68 6f 73 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 | -backend-host.gptel-backend))... |
| 374e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 6f 72 20 75 73 65 72 | ..................:user.(or.user |
| 37500 | 20 22 61 70 69 6b 65 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ."apikey").....................: |
| 37520 | 72 65 71 75 69 72 65 20 27 28 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | require.'(:secret)))............ |
| 37540 | 20 20 20 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f | ...:secret))).......(if.(functio |
| 37560 | 6e 70 20 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 | np.secret)...........(encode-cod |
| 37580 | 69 6e 67 2d 73 74 72 69 6e 67 20 28 66 75 6e 63 61 6c 6c 20 73 65 63 72 65 74 29 20 27 75 74 66 | ing-string.(funcall.secret).'utf |
| 375a0 | 2d 38 29 0a 20 20 20 20 20 20 20 20 73 65 63 72 65 74 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 | -8).........secret).....(user-er |
| 375c0 | 72 6f 72 20 22 4e 6f 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 66 6f 75 6e 64 20 69 6e | ror."No.`gptel-api-key'.found.in |
| 375e0 | 20 74 68 65 20 61 75 74 68 20 73 6f 75 72 63 65 22 29 29 29 0a 0a 3b 3b 20 46 49 58 4d 45 20 53 | .the.auth.source")))..;;.FIXME.S |
| 37600 | 68 6f 75 6c 64 20 77 65 20 75 74 66 2d 38 20 65 6e 63 6f 64 65 20 74 68 65 20 61 70 69 2d 6b 65 | hould.we.utf-8.encode.the.api-ke |
| 37620 | 79 20 68 65 72 65 3f 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 | y.here?.(defun.gptel--get-api-ke |
| 37640 | 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 29 0a 20 20 22 47 65 74 20 61 70 69 20 6b 65 79 | y.(&optional.key)..."Get.api.key |
| 37660 | 20 66 72 6f 6d 20 4b 45 59 2c 20 6f 72 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 | .from.KEY,.or.from.`gptel-api-ke |
| 37680 | 79 27 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 2d 73 79 6d 20 28 6f 72 20 | y'."...(when-let*.((key-sym.(or. |
| 376a0 | 6b 65 79 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6b 65 79 20 67 70 74 65 6c 2d 62 61 63 | key.(gptel-backend-key.gptel-bac |
| 376c0 | 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 6b 65 79 2d 73 79 | kend)))).....(cl-typecase.key-sy |
| 376e0 | 6d 0a 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 72 | m.......(function.(string-trim-r |
| 37700 | 69 67 68 74 20 28 66 75 6e 63 61 6c 6c 20 6b 65 79 2d 73 79 6d 29 20 22 5b 5c 6e 5c 72 5d 2b 22 | ight.(funcall.key-sym)."[\n\r]+" |
| 37720 | 29 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 72 69 | )).......(string.(string-trim-ri |
| 37740 | 67 68 74 20 6b 65 79 2d 73 79 6d 20 22 5b 5c 6e 5c 72 5d 2b 22 29 29 0a 20 20 20 20 20 20 28 73 | ght.key-sym."[\n\r]+")).......(s |
| 37760 | 79 6d 62 6f 6c 20 28 69 66 2d 6c 65 74 2a 20 28 28 76 61 6c 20 28 73 79 6d 62 6f 6c 2d 76 61 6c | ymbol.(if-let*.((val.(symbol-val |
| 37780 | 75 65 20 6b 65 79 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ue.key-sym)))................... |
| 377a0 | 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 20 20 | (gptel--get-api-key.val)........ |
| 377c0 | 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 | .........(error."`gptel-api-key' |
| 377e0 | 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 29 29 0a 20 20 20 20 20 20 28 74 20 28 65 72 72 6f | .is.not.valid"))).......(t.(erro |
| 37800 | 72 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 | r."`gptel-api-key'.is.not.valid" |
| 37820 | 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 | )))))..(defsubst.gptel--to-numbe |
| 37840 | 72 20 28 76 61 6c 29 0a 20 20 22 45 6e 73 75 72 65 20 56 41 4c 20 69 73 20 61 20 6e 75 6d 62 65 | r.(val)..."Ensure.VAL.is.a.numbe |
| 37860 | 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6d 62 65 72 70 20 76 61 6c 29 20 76 61 | r."...(cond....((numberp.val).va |
| 37880 | 6c 29 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 76 61 6c 29 20 28 73 74 72 69 6e 67 2d 74 6f 2d | l)....((stringp.val).(string-to- |
| 378a0 | 6e 75 6d 62 65 72 20 76 61 6c 29 29 0a 20 20 20 28 28 65 72 72 6f 72 20 22 25 53 20 63 61 6e 6e | number.val))....((error."%S.cann |
| 378c0 | 6f 74 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 6e 75 6d 62 65 72 22 20 76 61 6c | ot.be.converted.to.a.number".val |
| 378e0 | 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 | ))))..(defsubst.gptel--to-string |
| 37900 | 20 28 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 20 74 6f 20 61 20 73 74 72 69 6e 67 2c 20 69 | .(s)..."Convert.S.to.a.string,.i |
| 37920 | 66 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 73 0a 20 20 | f.possible."...(cl-typecase.s... |
| 37940 | 20 20 28 73 79 6d 62 6f 6c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 29 29 0a 20 20 20 20 28 | ..(symbol.(symbol-name.s)).....( |
| 37960 | 73 74 72 69 6e 67 20 73 29 0a 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 20 28 70 72 69 6e 31 2d | string.s).....(otherwise.(prin1- |
| 37980 | 74 6f 2d 73 74 72 69 6e 67 20 73 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c | to-string.s))))..(defsubst.gptel |
| 379a0 | 2d 2d 69 6e 74 65 72 6e 20 28 73 29 0a 20 20 22 49 6e 74 65 72 6e 20 53 2c 20 69 66 20 70 6f 73 | --intern.(s)..."Intern.S,.if.pos |
| 379c0 | 73 69 62 6c 65 2e 22 0a 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 73 0a 20 20 20 20 28 73 | sible."...(cl-etypecase.s.....(s |
| 379e0 | 79 6d 62 6f 6c 20 73 29 0a 20 20 20 20 28 73 74 72 69 6e 67 20 28 69 6e 74 65 72 6e 20 73 29 29 | ymbol.s).....(string.(intern.s)) |
| 37a00 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 20 28 | ))..(defun.gptel--merge-plists.( |
| 37a20 | 26 72 65 73 74 20 70 6c 69 73 74 73 29 0a 20 20 22 4d 65 72 67 65 20 50 4c 49 53 54 53 2c 20 61 | &rest.plists)..."Merge.PLISTS,.a |
| 37a40 | 6c 74 65 72 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 2e 0a 0a 4c 61 74 65 72 20 70 6c | ltering.the.first.one...Later.pl |
| 37a60 | 69 73 74 73 20 69 6e 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 74 61 6b 65 20 70 72 65 63 65 64 | ists.in.the.sequence.take.preced |
| 37a80 | 65 6e 63 65 20 6f 76 65 72 20 65 61 72 6c 69 65 72 20 6f 6e 65 73 2e 22 0a 20 20 28 6c 65 74 20 | ence.over.earlier.ones."...(let. |
| 37aa0 | 28 3b 3b 20 28 72 74 6e 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6f 70 20 70 6c 69 | (;;.(rtn.(copy-sequence.(pop.pli |
| 37ac0 | 73 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 74 6e 20 28 70 6f 70 20 70 6c 69 73 74 73 29 | sts))).........(rtn.(pop.plists) |
| 37ae0 | 29 0a 20 20 20 20 20 20 20 20 70 20 76 20 6c 73 29 0a 20 20 20 20 28 77 68 69 6c 65 20 70 6c 69 | ).........p.v.ls).....(while.pli |
| 37b00 | 73 74 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 73 20 28 70 6f 70 20 70 6c 69 73 74 73 29 29 | sts.......(setq.ls.(pop.plists)) |
| 37b20 | 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 6c 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 | .......(while.ls.........(setq.p |
| 37b40 | 20 28 70 6f 70 20 6c 73 29 20 76 20 28 70 6f 70 20 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 | .(pop.ls).v.(pop.ls)).........(s |
| 37b60 | 65 74 71 20 72 74 6e 20 28 70 6c 69 73 74 2d 70 75 74 20 72 74 6e 20 70 20 76 29 29 29 29 0a 20 | etq.rtn.(plist-put.rtn.p.v)))).. |
| 37b80 | 20 20 20 72 74 6e 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e | ...rtn))..(defun.gptel--file-bin |
| 37ba0 | 61 72 79 2d 70 20 28 70 61 74 68 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 66 69 6c 65 20 61 74 | ary-p.(path)..."Check.if.file.at |
| 37bc0 | 20 50 41 54 48 20 69 73 20 72 65 61 64 61 62 6c 65 20 61 6e 64 20 62 69 6e 61 72 79 2e 22 0a 20 | .PATH.is.readable.and.binary.".. |
| 37be0 | 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 77 69 74 68 | .(condition-case.nil.......(with |
| 37c00 | 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c | -temp-buffer.........(insert-fil |
| 37c20 | 65 2d 63 6f 6e 74 65 6e 74 73 20 70 61 74 68 20 6e 69 6c 20 31 20 35 31 32 20 27 72 65 70 6c 61 | e-contents.path.nil.1.512.'repla |
| 37c40 | 63 65 29 0a 20 20 20 20 20 20 20 20 28 65 71 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 6f 64 69 | ce).........(eq.buffer-file-codi |
| 37c60 | 6e 67 2d 73 79 73 74 65 6d 20 27 6e 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20 28 | ng-system.'no-conversion)).....( |
| 37c80 | 66 69 6c 65 2d 6d 69 73 73 69 6e 67 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 | file-missing.(message."File.\"%s |
| 37ca0 | 5c 22 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 22 20 70 61 74 68 29 0a 20 20 20 20 20 | \".is.not.readable.".path)...... |
| 37cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | .............nil)))..(defun.gpte |
| 37ce0 | 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 61 74 68 29 0a 20 20 22 | l--insert-file-string.(path)..." |
| 37d00 | 49 6e 73 65 72 74 20 61 74 20 70 6f 69 6e 74 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 | Insert.at.point.the.contents.of. |
| 37d20 | 74 68 65 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 | the.file.at.PATH.as.context."... |
| 37d40 | 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 49 6e 20 66 69 6c 65 20 60 25 73 60 3a 22 20 | (insert.(format."In.file.`%s`:". |
| 37d60 | 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 29 29 0a 20 | (file-name-nondirectory.path)).. |
| 37d80 | 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 60 60 60 5c 6e 22 29 0a 20 20 28 6c 65 74 20 28 28 70 | ........."\n\n```\n")...(let.((p |
| 37da0 | 6d 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 73 65 74 2d 6d 61 72 6b | m.(point-marker))).....(set-mark |
| 37dc0 | 65 72 2d 69 6e 73 65 72 74 69 6f 6e 2d 74 79 70 65 20 70 6d 20 74 29 0a 20 20 20 20 28 69 6e 73 | er-insertion-type.pm.t).....(ins |
| 37de0 | 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 70 61 74 68 29 0a 20 20 20 20 28 67 6f 74 | ert-file-contents.path).....(got |
| 37e00 | 6f 2d 63 68 61 72 20 70 6d 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 60 60 60 5c 6e 22 29 | o-char.pm))...(insert."\n```\n") |
| 37e20 | 29 0a 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 65 | )..(defvar.url-http-end-of-heade |
| 37e40 | 72 73 29 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 72 65 73 70 6f 6e 73 65 2d 73 74 | rs).(defvar.url-http-response-st |
| 37e60 | 61 74 75 73 29 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 6c 2d 72 65 74 72 69 | atus).(cl-defun.gptel--url-retri |
| 37e80 | 65 76 65 20 28 75 72 6c 20 26 6b 65 79 20 6d 65 74 68 6f 64 20 64 61 74 61 20 68 65 61 64 65 72 | eve.(url.&key.method.data.header |
| 37ea0 | 73 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 55 52 4c 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 | s)..."Retrieve.URL.synchronously |
| 37ec0 | 20 77 69 74 68 20 4d 45 54 48 4f 44 2c 20 44 41 54 41 20 61 6e 64 20 48 45 41 44 45 52 53 2e 22 | .with.METHOD,.DATA.and.HEADERS." |
| 37ee0 | 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 | ...(declare.(indent.1))...(let.( |
| 37f00 | 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 28 69 66 20 28 65 71 20 6d 65 74 68 | (url-request-method.(if.(eq.meth |
| 37f20 | 6f 64 27 70 6f 73 74 29 20 22 50 4f 53 54 22 20 22 47 45 54 22 29 29 0a 20 20 20 20 20 20 20 20 | od'post)."POST"."GET"))......... |
| 37f40 | 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 | (url-request-data.(encode-coding |
| 37f60 | 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 64 61 74 61 | -string.(gptel--json-encode.data |
| 37f80 | 29 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 20 20 20 20 28 75 72 6c 2d 6d 69 6d 65 2d 61 63 63 | ).'utf-8)).........(url-mime-acc |
| 37fa0 | 65 70 74 2d 73 74 72 69 6e 67 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 | ept-string."application/json").. |
| 37fc0 | 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 | .......(url-request-extra-header |
| 37fe0 | 73 0a 20 20 20 20 20 20 20 20 20 60 28 28 22 63 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 2e 20 22 | s..........`(("content-type"..." |
| 38000 | 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 40 | application/json")............,@ |
| 38020 | 68 65 61 64 65 72 73 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | headers))).....(with-current-buf |
| 38040 | 66 65 72 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 | fer.(url-retrieve-synchronously. |
| 38060 | 75 72 6c 20 27 73 69 6c 65 6e 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 75 72 | url.'silent).......(goto-char.ur |
| 38080 | 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 28 67 70 | l-http-end-of-headers).......(gp |
| 380a0 | 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | tel--json-read))))..(defun.gptel |
| 380c0 | 2d 61 75 74 6f 2d 73 63 72 6f 6c 6c 20 28 29 0a 20 20 22 53 63 72 6f 6c 6c 20 77 69 6e 64 6f 77 | -auto-scroll.()..."Scroll.window |
| 380e0 | 20 69 66 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 69 6e 75 65 73 20 62 65 6c 6f 77 | .if.LLM.response.continues.below |
| 38100 | 20 76 69 65 77 70 6f 72 74 2e 0a 0a 4e 6f 74 65 3a 20 54 68 69 73 20 77 69 6c 6c 20 6d 6f 76 65 | .viewport...Note:.This.will.move |
| 38120 | 20 74 68 65 20 63 75 72 73 6f 72 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 77 69 6e | .the.cursor."...(when-let*.((win |
| 38140 | 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | .(get-buffer-window.(current-buf |
| 38160 | 66 65 72 29 20 27 76 69 73 69 62 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | fer).'visible))...............(( |
| 38180 | 6e 6f 74 20 28 70 6f 73 2d 76 69 73 69 62 6c 65 2d 69 6e 2d 77 69 6e 64 6f 77 2d 70 20 28 70 6f | not.(pos-visible-in-window-p.(po |
| 381a0 | 69 6e 74 29 20 77 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 72 6f 6c | int).win)))...............(scrol |
| 381c0 | 6c 2d 65 72 72 6f 72 2d 74 6f 70 2d 62 6f 74 74 6f 6d 20 74 29 29 0a 20 20 20 20 28 63 6f 6e 64 | l-error-top-bottom.t)).....(cond |
| 381e0 | 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c | ition-case.nil.........(with-sel |
| 38200 | 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 77 69 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 63 72 6f | ected-window.win...........(scro |
| 38220 | 6c 6c 2d 75 70 2d 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c | ll-up-command)).......(error.nil |
| 38240 | 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 | ))))..(defsubst.gptel-prompt-pre |
| 38260 | 66 69 78 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 22 50 72 65 66 69 78 20 62 65 66 6f 72 65 20 75 | fix-string.()..."Prefix.before.u |
| 38280 | 73 65 72 20 70 72 6f 6d 70 74 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 | ser.prompts.in.`gptel-mode'."... |
| 382a0 | 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 | (declare.(side-effect-free.t)).. |
| 382c0 | 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c | .(or.(alist-get.major-mode.gptel |
| 382e0 | 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a 28 64 65 66 | -prompt-prefix-alist).""))..(def |
| 38300 | 73 75 62 73 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 | subst.gptel-response-prefix-stri |
| 38320 | 6e 67 20 28 29 0a 20 20 22 50 72 65 66 69 78 20 62 65 66 6f 72 65 20 4c 4c 4d 20 72 65 73 70 6f | ng.()..."Prefix.before.LLM.respo |
| 38340 | 6e 73 65 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 | nses.in.`gptel-mode'."...(declar |
| 38360 | 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6f 72 20 28 61 | e.(side-effect-free.t))...(or.(a |
| 38380 | 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e | list-get.major-mode.gptel-respon |
| 383a0 | 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | se-prefix-alist).""))..(defun.gp |
| 383c0 | 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 6f 70 74 69 | tel-beginning-of-response.(&opti |
| 383e0 | 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 | onal._._.arg)..."Move.point.to.t |
| 38400 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 | he.beginning.of.the.LLM.response |
| 38420 | 20 41 52 47 20 74 69 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 | .ARG.times."...(interactive.(lis |
| 38440 | 74 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | t.nil.nil......................( |
| 38460 | 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 6e 74 2d 70 72 65 | prefix-numeric-value.current-pre |
| 38480 | 66 69 78 2d 61 72 67 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f | fix-arg)))...(gptel-end-of-respo |
| 384a0 | 6e 73 65 20 6e 69 6c 20 6e 69 6c 20 28 2d 20 28 6f 72 20 61 72 67 20 31 29 29 29 29 0a 0a 28 64 | nse.nil.nil.(-.(or.arg.1))))..(d |
| 384c0 | 65 66 75 6e 20 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 6f 70 74 | efun.gptel-end-of-response.(&opt |
| 384e0 | 69 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 | ional._._.arg)..."Move.point.to. |
| 38500 | 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 41 52 47 20 | the.end.of.the.LLM.response.ARG. |
| 38520 | 74 69 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 6e 69 6c | times."...(interactive.(list.nil |
| 38540 | 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 | .nil......................(prefi |
| 38560 | 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 | x-numeric-value.current-prefix-a |
| 38580 | 72 67 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 61 72 67 20 28 73 65 74 71 20 61 72 67 20 31 29 | rg)))...(unless.arg.(setq.arg.1) |
| 385a0 | 29 0a 20 20 28 6c 65 74 20 28 28 73 65 61 72 63 68 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a | )...(let.((search.(if.(>.arg.0). |
| 385c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 65 78 74 2d 70 72 6f 70 65 | ....................#'text-prope |
| 385e0 | 72 74 79 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | rty-search-forward.............. |
| 38600 | 20 20 20 20 20 23 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b | .....#'text-property-search-back |
| 38620 | 77 61 72 64 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 61 62 73 20 61 72 67 | ward))).....(dotimes.(_.(abs.arg |
| 38640 | 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 20 27 67 70 74 65 6c 20 | )).......(funcall.search.'gptel. |
| 38660 | 27 72 65 73 70 6f 6e 73 65 20 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 | 'response.t).......(if.(>.arg.0) |
| 38680 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 65 66 69 78 20 28 | ...........(when-let*.((prefix.( |
| 386a0 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 | gptel-prompt-prefix-string)).... |
| 386c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 | ...................((not.(string |
| 386e0 | 2d 65 6d 70 74 79 2d 70 20 70 72 65 66 69 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -empty-p.prefix))).............. |
| 38700 | 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74 20 22 5c | .........((looking-at.(concat."\ |
| 38720 | 6e 5c 5c 7b 31 2c 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n\\{1,2\\}"..................... |
| 38740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 | .......................(regexp-q |
| 38760 | 75 6f 74 65 20 70 72 65 66 69 78 29 20 22 3f 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | uote.prefix)."?"))))............ |
| 38780 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 | .(goto-char.(match-end.0)))..... |
| 387a0 | 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 65 66 69 78 20 28 67 70 74 65 6c 2d 72 | ....(when-let*.((prefix.(gptel-r |
| 387c0 | 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 | esponse-prefix-string))......... |
| 387e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d | ............((not.(string-empty- |
| 38800 | 70 20 70 72 65 66 69 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.prefix)))..................... |
| 38820 | 28 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 28 72 65 67 65 78 70 2d 71 | ((looking-back.(concat.(regexp-q |
| 38840 | 75 6f 74 65 20 70 72 65 66 69 78 29 20 22 3f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uote.prefix)."?")............... |
| 38860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | .....................(point-min) |
| 38880 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d | )))...........(goto-char.(match- |
| 388a0 | 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 | beginning.0)))))))..(defmacro.gp |
| 388c0 | 74 65 6c 2d 2d 61 74 2d 77 6f 72 64 2d 65 6e 64 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 | tel--at-word-end.(&rest.body)... |
| 388e0 | 22 45 78 65 63 75 74 65 20 42 4f 44 59 20 61 74 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 | "Execute.BODY.at.end.of.the.curr |
| 38900 | 65 6e 74 20 77 6f 72 64 20 6f 72 20 70 75 6e 63 74 75 61 74 69 6f 6e 2e 22 0a 20 20 60 28 73 61 | ent.word.or.punctuation."...`(sa |
| 38920 | 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 | ve-excursion......(skip-syntax-f |
| 38940 | 6f 72 77 61 72 64 20 22 77 2e 22 29 0a 20 20 20 20 20 2c 28 6d 61 63 72 6f 65 78 70 2d 70 72 6f | orward."w.")......,(macroexp-pro |
| 38960 | 67 6e 20 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 74 65 6d | gn.body)))..(defmacro.gptel--tem |
| 38980 | 70 2d 62 75 66 66 65 72 20 28 62 75 66 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 74 65 6d | p-buffer.(buf)..."Generate.a.tem |
| 389a0 | 70 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 6d 61 63 | p.buffer.BUF...Compatibility.mac |
| 389c0 | 72 6f 20 66 6f 72 20 45 6d 61 63 73 20 32 37 2e 31 2e 22 0a 20 20 28 69 66 20 28 3c 20 65 6d 61 | ro.for.Emacs.27.1."...(if.(<.ema |
| 389e0 | 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a 20 20 20 20 20 20 60 28 67 65 6e | cs-major-version.28).......`(gen |
| 38a00 | 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 2c 62 75 66 29 0a 20 20 20 20 60 28 67 65 6e | erate-new-buffer.,buf).....`(gen |
| 38a20 | 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 2c 62 75 66 20 74 29 29 29 0a 0a 28 64 65 66 | erate-new-buffer.,buf.t)))..(def |
| 38a40 | 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 28 62 | macro.gptel--with-buffer-copy.(b |
| 38a60 | 75 66 20 73 74 61 72 74 20 65 6e 64 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 43 6f 70 79 | uf.start.end.&rest.body)..."Copy |
| 38a80 | 20 67 70 74 65 6c 27 73 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 20 66 72 6f 6d 20 42 55 | .gptel's.local.variables.from.BU |
| 38aa0 | 46 20 74 6f 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 61 6e 64 20 72 75 6e 20 42 4f 44 59 2e | F.to.a.temp.buffer.and.run.BODY. |
| 38ac0 | 0a 0a 49 66 20 70 6f 73 69 74 69 6f 6e 73 20 53 54 41 52 54 20 61 6e 64 20 45 4e 44 20 61 72 65 | ..If.positions.START.and.END.are |
| 38ae0 | 20 70 72 6f 76 69 64 65 64 2c 20 69 6e 73 65 72 74 20 74 68 61 74 20 70 61 72 74 20 6f 66 20 42 | .provided,.insert.that.part.of.B |
| 38b00 | 55 46 20 66 69 72 73 74 2e 22 0a 20 20 60 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 | UF.first."...`(gptel--with-buffe |
| 38b20 | 72 2d 63 6f 70 79 2d 69 6e 74 65 72 6e 61 6c 20 2c 62 75 66 20 2c 73 74 61 72 74 20 2c 65 6e 64 | r-copy-internal.,buf.,start.,end |
| 38b40 | 20 28 6c 61 6d 62 64 61 20 28 29 20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | .(lambda.().,@body)))..(defun.gp |
| 38b60 | 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 2d 69 6e 74 65 72 6e 61 6c 20 28 | tel--with-buffer-copy-internal.( |
| 38b80 | 62 75 66 20 73 74 61 72 74 20 65 6e 64 20 62 6f 64 79 2d 74 68 75 6e 6b 29 0a 20 20 22 50 72 65 | buf.start.end.body-thunk)..."Pre |
| 38ba0 | 70 61 72 65 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 66 6f 72 20 61 20 67 70 74 65 6c 20 72 | pare.a.temp.buffer.for.a.gptel.r |
| 38bc0 | 65 71 75 65 73 74 2e 0a 0a 46 6f 72 20 42 55 46 2c 20 53 54 41 52 54 2c 20 45 4e 44 20 61 6e 64 | equest...For.BUF,.START,.END.and |
| 38be0 | 20 42 4f 44 59 2d 54 48 55 4e 4b 20 73 65 65 20 60 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 | .BODY-THUNK.see.`gptel--with-buf |
| 38c00 | 66 65 72 2d 63 6f 70 79 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 65 6d 70 2d 62 75 66 66 65 72 | fer-copy'."...(let.((temp-buffer |
| 38c20 | 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d 70 72 | .(gptel--temp-buffer.".*gptel-pr |
| 38c40 | 6f 6d 70 74 2a 22 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | ompt*"))).....(with-current-buff |
| 38c60 | 65 72 20 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 79 | er.temp-buffer.......(dolist.(sy |
| 38c80 | 6d 20 27 28 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d | m.'(.gptel-backend.gptel--system |
| 38ca0 | 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | -message.gptel-model............ |
| 38cc0 | 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 | ...........gptel-mode.gptel-trac |
| 38ce0 | 6b 2d 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 | k-response.gptel-track-media.... |
| 38d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f | ...................gptel-use-too |
| 38d20 | 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 20 | ls.gptel-tools.gptel-use-curl... |
| 38d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f | ....................gptel-use-co |
| 38d60 | 6e 74 65 78 74 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e | ntext.gptel--num-messages-to-sen |
| 38d80 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 73 74 | d.......................gptel-st |
| 38da0 | 72 65 61 6d 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 | ream.gptel-include-reasoning.... |
| 38dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 | ...................gptel-tempera |
| 38de0 | 74 75 72 65 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 63 61 63 68 | ture.gptel-max-tokens.gptel-cach |
| 38e00 | 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 | e)).........(set.(make-local-var |
| 38e20 | 69 61 62 6c 65 20 73 79 6d 29 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 73 | iable.sym).(buffer-local-value.s |
| 38e40 | 79 6d 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 74 61 72 74 | ym.buf))).......(when.(and.start |
| 38e60 | 20 65 6e 64 29 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 | .end).(insert-buffer-substring.b |
| 38e80 | 75 66 20 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 | uf.start.end)).......(setq.major |
| 38ea0 | 2d 6d 6f 64 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 | -mode.(buffer-local-value.'major |
| 38ec0 | 2d 6d 6f 64 65 20 62 75 66 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 62 6f 64 79 2d | -mode.buf)).......(funcall.body- |
| 38ee0 | 74 68 75 6e 6b 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 72 69 6d | thunk))))..(defsubst.gptel--trim |
| 38f00 | 2d 70 72 65 66 69 78 65 73 20 28 73 29 0a 20 20 22 52 65 6d 6f 76 65 20 70 72 6f 6d 70 74 2f 72 | -prefixes.(s)..."Remove.prompt/r |
| 38f20 | 65 73 70 6f 6e 73 65 20 70 72 65 66 69 78 65 73 20 66 72 6f 6d 20 73 74 72 69 6e 67 20 53 2e 0a | esponse.prefixes.from.string.S.. |
| 38f40 | 0a 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 73 74 72 69 6e 67 20 63 6f 6c 6c 61 70 73 65 73 20 | .Return.nil.if.string.collapses. |
| 38f60 | 74 6f 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 72 69 6d | to.empty.string."...(let*.((trim |
| 38f80 | 6d 65 64 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 | med.(string-trim-left........... |
| 38fa0 | 20 20 20 20 20 20 20 20 20 73 20 28 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c | .........s.(format."[\t\r\n.]*\\ |
| 38fc0 | 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 | (?:%s\\)?[\t\r\n.]*"............ |
| 38fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 0a | ..................(regexp-quote. |
| 39000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ..............................(g |
| 39020 | 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 20 | ptel-prompt-prefix-string))))).. |
| 39040 | 20 20 20 20 20 20 20 20 28 74 72 69 6d 6d 65 64 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 72 69 | ........(trimmed.(string-trim-ri |
| 39060 | 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 69 6d 6d 65 64 20 28 | ght....................trimmed.( |
| 39080 | 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 | format."[\t\r\n.]*\\(?:%s\\)?[\t |
| 390a0 | 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \r\n.]*"........................ |
| 390c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 0a 20 20 20 20 20 20 | ............(regexp-quote....... |
| 390e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ..............................(g |
| 39100 | 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 29 | ptel-response-prefix-string))))) |
| 39120 | 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 74 72 | ).....(unless.(string-empty-p.tr |
| 39140 | 69 6d 6d 65 64 29 0a 20 20 20 20 20 20 74 72 69 6d 6d 65 64 29 29 29 0a 0a 28 64 65 66 73 75 62 | immed).......trimmed)))..(defsub |
| 39160 | 73 74 20 67 70 74 65 6c 2d 2d 6c 69 6e 6b 2d 73 74 61 6e 64 61 6c 6f 6e 65 2d 70 20 28 62 65 67 | st.gptel--link-standalone-p.(beg |
| 39180 | 20 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 70 6f 73 69 74 | .end)..."Return.non-nil.if.posit |
| 391a0 | 69 6f 6e 73 20 42 45 47 20 61 6e 64 20 45 4e 44 20 61 72 65 20 69 73 6f 6c 61 74 65 64 2e 0a 0a | ions.BEG.and.END.are.isolated... |
| 391c0 | 54 68 69 73 20 6d 65 61 6e 73 20 74 68 65 20 65 78 74 65 6e 74 20 66 72 6f 6d 20 42 45 47 20 74 | This.means.the.extent.from.BEG.t |
| 391e0 | 6f 20 45 4e 44 20 69 73 20 74 68 65 20 6f 6e 6c 79 20 6e 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 | o.END.is.the.only.non-whitespace |
| 39200 | 0a 63 6f 6e 74 65 6e 74 20 6f 6e 20 74 68 69 73 20 6c 69 6e 65 2e 22 0a 20 20 28 73 61 76 65 2d | .content.on.this.line."...(save- |
| 39220 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 61 6e 64 20 28 3d 20 62 65 67 20 28 70 72 6f 67 6e | excursion.....(and.(=.beg.(progn |
| 39240 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c | .(goto-char.beg).(beginning-of-l |
| 39260 | 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 | ine)........................(ski |
| 39280 | 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 5c 74 20 22 29 0a 20 20 20 20 20 20 20 20 20 | p-chars-forward."\t.").......... |
| 392a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ..............(point)))......... |
| 392c0 | 20 28 3d 20 65 6e 64 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 20 28 | .(=.end.(progn.(goto-char.end).( |
| 392e0 | 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end-of-line).................... |
| 39300 | 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 5c 74 20 22 29 0a | ....(skip-chars-backward."\t."). |
| 39320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 | .......................(point))) |
| 39340 | 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e | )))..(defvar-local.gptel--backen |
| 39360 | 64 2d 6e 61 6d 65 20 6e 69 6c 0a 20 20 22 53 74 6f 72 65 20 74 6f 20 70 65 72 73 69 73 74 20 62 | d-name.nil..."Store.to.persist.b |
| 39380 | 61 63 6b 65 6e 64 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e | ackend.name.across.Emacs.session |
| 393a0 | 73 2e 0a 0a 4e 6f 74 65 3a 20 43 68 61 6e 67 69 6e 67 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 | s...Note:.Changing.this.variable |
| 393c0 | 20 64 6f 65 73 20 6e 6f 74 20 61 66 66 65 63 74 20 67 70 74 65 6c 5c 5c 3d 27 73 20 62 65 68 61 | .does.not.affect.gptel\\='s.beha |
| 393e0 | 76 69 6f 72 0a 69 6e 20 61 6e 79 20 77 61 79 2e 22 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d | vior.in.any.way.").(put.'gptel-- |
| 39400 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c | backend-name.'safe-local-variabl |
| 39420 | 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 63 75 | e.#'always)..(defsubst.gptel--cu |
| 39440 | 72 6c 2d 70 61 74 68 20 28 29 0a 20 20 22 43 75 72 6c 20 65 78 65 63 75 74 61 62 6c 65 20 74 6f | rl-path.()..."Curl.executable.to |
| 39460 | 20 75 73 65 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 67 70 74 65 6c 2d 75 73 65 2d | .use."...(if.(stringp.gptel-use- |
| 39480 | 63 75 72 6c 29 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 22 63 75 72 6c 22 29 29 0a 0a 28 | curl).gptel-use-curl."curl"))..( |
| 394a0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 64 64 2d 63 6f 6e 74 65 | defun.gptel--transform-add-conte |
| 394c0 | 78 74 20 28 63 61 6c 6c 62 61 63 6b 20 66 73 6d 29 0a 20 20 28 69 66 20 28 61 6e 64 20 67 70 74 | xt.(callback.fsm)...(if.(and.gpt |
| 394e0 | 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c | el-use-context.gptel-context--al |
| 39500 | 69 73 74 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 | ist).......(gptel-context--wrap. |
| 39520 | 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 | callback.(plist-get.(gptel-fsm-i |
| 39540 | 6e 66 6f 20 66 73 6d 29 20 3a 64 61 74 61 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 | nfo.fsm).:data)).....(funcall.ca |
| 39560 | 6c 6c 62 61 63 6b 29 29 29 0a 0a 3b 3b 3b 3b 20 4d 6f 64 65 6c 20 69 6e 74 65 72 66 61 63 65 0a | llback)))..;;;;.Model.interface. |
| 39580 | 3b 3b 20 4e 4f 54 45 3a 20 54 68 69 73 20 69 6e 74 65 72 66 61 63 65 20 77 6f 75 6c 64 20 62 65 | ;;.NOTE:.This.interface.would.be |
| 395a0 | 20 73 69 6d 70 6c 65 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 73 20 61 20 64 65 66 73 74 | .simpler.to.implement.as.a.defst |
| 395c0 | 72 75 63 74 2e 20 20 42 75 74 20 74 68 65 6e 0a 3b 3b 20 75 73 65 72 73 20 63 61 6e 6e 6f 74 20 | ruct...But.then.;;.users.cannot. |
| 395e0 | 73 65 74 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 74 6f 20 61 20 73 79 6d 62 6f 6c 2f 73 74 | set.`gptel-model'.to.a.symbol/st |
| 39600 | 72 69 6e 67 20 64 69 72 65 63 74 6c 79 2c 20 6f 72 20 77 65 27 64 20 6e 65 65 64 0a 3b 3b 20 61 | ring.directly,.or.we'd.need.;;.a |
| 39620 | 6e 6f 74 68 65 72 20 6d 61 70 20 66 72 6f 6d 20 74 68 65 73 65 20 73 79 6d 62 6f 6c 73 20 74 6f | nother.map.from.these.symbols.to |
| 39640 | 20 74 68 65 20 61 63 74 75 61 6c 20 6d 6f 64 65 6c 20 73 74 72 75 63 74 73 2e 0a 0a 28 64 65 66 | .the.actual.model.structs...(def |
| 39660 | 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 28 6d 6f 64 65 6c 29 0a | subst.gptel--model-name.(model). |
| 39680 | 20 20 22 47 65 74 20 6e 61 6d 65 20 6f 66 20 67 70 74 65 6c 20 4d 4f 44 45 4c 2e 22 0a 20 20 28 | .."Get.name.of.gptel.MODEL."...( |
| 396a0 | 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 6d 6f 64 65 6c 29 29 0a 0a 28 64 65 66 73 75 | gptel--to-string.model))..(defsu |
| 396c0 | 62 73 74 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d | bst.gptel--model-capabilities.(m |
| 396e0 | 6f 64 65 6c 29 0a 20 20 22 47 65 74 20 4d 4f 44 45 4c 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e | odel)..."Get.MODEL.capabilities. |
| 39700 | 22 0a 20 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 29 29 0a 0a | "...(get.model.:capabilities)).. |
| 39720 | 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 73 20 28 6d 6f | (defsubst.gptel--model-mimes.(mo |
| 39740 | 64 65 6c 29 0a 20 20 22 47 65 74 20 73 75 70 70 6f 72 74 65 64 20 6d 69 6d 65 2d 74 79 70 65 73 | del)..."Get.supported.mime-types |
| 39760 | 20 66 6f 72 20 4d 4f 44 45 4c 2e 22 0a 20 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 6d 69 6d 65 2d | .for.MODEL."...(get.model.:mime- |
| 39780 | 74 79 70 65 73 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | types))..(defsubst.gptel--model- |
| 397a0 | 63 61 70 61 62 6c 65 2d 70 20 28 63 61 70 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 64 65 6c 29 0a | capable-p.(cap.&optional.model). |
| 397c0 | 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 4d 4f 44 45 4c 20 73 75 70 70 6f | .."Return.non-nil.if.MODEL.suppo |
| 397e0 | 72 74 73 20 63 61 70 61 62 69 6c 69 74 79 20 43 41 50 2e 22 0a 20 20 28 6d 65 6d 71 20 63 61 70 | rts.capability.CAP."...(memq.cap |
| 39800 | 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 69 6c 69 74 69 65 73 0a 20 20 20 20 | .(gptel--model-capabilities..... |
| 39820 | 20 20 20 20 20 20 20 20 20 28 6f 72 20 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 | .........(or.model.gptel-model)) |
| 39840 | 29 29 0a 0a 3b 3b 20 54 4f 44 4f 20 48 61 6e 64 6c 65 20 6d 6f 64 65 6c 20 6d 69 6d 65 20 73 70 | ))..;;.TODO.Handle.model.mime.sp |
| 39860 | 65 63 69 66 69 63 61 74 69 6f 6e 73 20 6c 69 6b 65 20 22 69 6d 61 67 65 2f 2a 22 0a 28 64 65 66 | ecifications.like."image/*".(def |
| 39880 | 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d | subst.gptel--model-mime-capable- |
| 398a0 | 70 20 28 6d 69 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 6f 64 65 6c 29 0a 20 20 22 52 65 74 75 | p.(mime.&optional.model)..."Retu |
| 398c0 | 72 6e 20 6e 6f 6e 20 6e 69 6c 20 69 66 20 4d 4f 44 45 4c 20 63 61 6e 20 75 6e 64 65 72 73 74 61 | rn.non.nil.if.MODEL.can.understa |
| 398e0 | 6e 64 20 4d 49 4d 45 20 74 79 70 65 2e 22 0a 20 20 28 63 61 72 2d 73 61 66 65 20 28 6d 65 6d 62 | nd.MIME.type."...(car-safe.(memb |
| 39900 | 65 72 20 6d 69 6d 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 73 0a 20 20 20 20 | er.mime.(gptel--model-mimes..... |
| 39920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 6d 6f 64 65 6c 20 67 70 | ....................(or.model.gp |
| 39940 | 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d | tel-model)))))..(defsubst.gptel- |
| 39960 | 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 28 6d 6f 64 65 6c 29 0a 20 20 | -model-request-params.(model)... |
| 39980 | 22 47 65 74 20 6d 6f 64 65 6c 2d 73 70 65 63 69 66 69 63 20 72 65 71 75 65 73 74 20 70 61 72 61 | "Get.model-specific.request.para |
| 399a0 | 6d 65 74 65 72 73 20 66 6f 72 20 4d 4f 44 45 4c 2e 22 0a 20 20 28 67 65 74 20 6d 6f 64 65 6c 20 | meters.for.MODEL."...(get.model. |
| 399c0 | 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 29 29 0a 0a 3b 3b 3b 3b 20 46 69 6c 65 20 68 61 6e | :request-params))..;;;;.File.han |
| 399e0 | 64 6c 69 6e 67 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 | dling.(defun.gptel--base64-encod |
| 39a00 | 65 20 28 66 69 6c 65 29 0a 20 20 22 45 6e 63 6f 64 65 20 46 49 4c 45 20 61 73 20 61 20 62 61 73 | e.(file)..."Encode.FILE.as.a.bas |
| 39a20 | 65 36 34 20 73 74 72 69 6e 67 2e 0a 0a 46 49 4c 45 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 | e64.string...FILE.is.assumed.to. |
| 39a40 | 65 78 69 73 74 20 61 6e 64 20 62 65 20 61 20 72 65 67 75 6c 61 72 20 66 69 6c 65 2e 22 0a 20 20 | exist.and.be.a.regular.file."... |
| 39a60 | 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 | (with-temp-buffer.....(insert-fi |
| 39a80 | 6c 65 2d 63 6f 6e 74 65 6e 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 29 0a 20 20 20 20 | le-contents-literally.file)..... |
| 39aa0 | 28 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e | (base64-encode-region.(point-min |
| 39ac0 | 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).(point-max)................... |
| 39ae0 | 20 20 20 20 20 20 20 20 3a 6e 6f 2d 6c 69 6e 65 2d 62 72 65 61 6b 29 0a 20 20 20 20 28 62 75 66 | ........:no-line-break).....(buf |
| 39b00 | 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 3b 3b 3b 3b 20 52 65 73 70 6f 6e 73 65 20 74 65 78 | fer-string)))..;;;;.Response.tex |
| 39b20 | 74 20 72 65 63 6f 67 6e 69 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 | t.recognition..(defun.gptel--get |
| 39b40 | 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 | -buffer-bounds.()..."Return.the. |
| 39b60 | 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 20 69 6e 20 74 68 65 | gptel.response.boundaries.in.the |
| 39b80 | 20 62 75 66 66 65 72 20 61 73 20 61 6e 20 61 6c 69 73 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 | .buffer.as.an.alist."...(save-ex |
| 39ba0 | 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 | cursion.....(save-restriction... |
| 39bc0 | 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f | ....(widen).......(goto-char.(po |
| 39be0 | 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 29 20 28 | int-max)).......(let.((bounds).( |
| 39c00 | 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 | prev-pt.(point))).........(while |
| 39c20 | 20 28 61 6e 64 20 28 2f 3d 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 | .(and.(/=.prev-pt.(point-min)).. |
| 39c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 | ...................(goto-char.(p |
| 39c60 | 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 | revious-single-property-change.. |
| 39c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 39ca0 | 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 | point).'gptel.nil.(point-min)))) |
| 39cc0 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 65 | ...........(when-let*.((prop.(ge |
| 39ce0 | 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 29 | t-char-property.(point).'gptel)) |
| 39d00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 2d 6e 61 6d 65 20 | ).............(let*.((prop-name. |
| 39d20 | 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 70 72 6f 70 29 20 70 72 6f 70 20 28 63 61 72 20 70 72 6f | (if.(symbolp.prop).prop.(car.pro |
| 39d40 | 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 20 28 77 68 | p)))....................(val.(wh |
| 39d60 | 65 6e 20 28 63 6f 6e 73 70 20 70 72 6f 70 29 20 28 63 64 72 20 70 72 6f 70 29 29 29 0a 20 20 20 | en.(consp.prop).(cdr.prop))).... |
| 39d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 20 28 69 66 20 76 61 6c 0a 20 | ................(bound.(if.val.. |
| 39da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | .............................(li |
| 39dc0 | 73 74 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 | st.(point).prev-pt.val)......... |
| 39de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 | ....................(list.(point |
| 39e00 | 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 | ).prev-pt))))...............(pus |
| 39e20 | 68 20 62 6f 75 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 2d 6e 61 6d 65 20 62 6f 75 | h.bound.(alist-get.prop-name.bou |
| 39e40 | 6e 64 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 70 74 20 | nds))))...........(setq.prev-pt. |
| 39e60 | 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 62 6f 75 6e 64 73 29 29 29 29 0a 0a 28 64 | (point))).........bounds))))..(d |
| 39e80 | 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 0a 20 20 | efine-obsolete-function-alias... |
| 39ea0 | 27 67 70 74 65 6c 2d 2d 67 65 74 2d 62 6f 75 6e 64 73 20 27 67 70 74 65 6c 2d 2d 67 65 74 2d 72 | 'gptel--get-bounds.'gptel--get-r |
| 39ec0 | 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 20 22 30 2e 39 2e 38 22 29 0a 0a 28 64 65 66 75 6e 20 | esponse-bounds."0.9.8")..(defun. |
| 39ee0 | 67 70 74 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 20 28 29 0a 20 20 | gptel--get-response-bounds.()... |
| 39f00 | 22 52 65 74 75 72 6e 20 74 68 65 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 | "Return.the.gptel.response.bound |
| 39f20 | 61 72 69 65 73 20 61 72 6f 75 6e 64 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 70 72 6f | aries.around.point."...(let.(pro |
| 39f40 | 70 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 | p).....(save-excursion.......(wh |
| 39f60 | 65 6e 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 | en.(text-property-search-backwar |
| 39f80 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 20 | d..............'gptel.'response. |
| 39fa0 | 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 | t).........(when.(setq.prop.(tex |
| 39fc0 | 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 | t-property-search-forward....... |
| 39fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 | ....................'gptel.'resp |
| 3a000 | 6f 6e 73 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 70 72 6f 70 2d 6d | onse.t))...........(cons.(prop-m |
| 3a020 | 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 | atch-beginning.prop)............ |
| 3a040 | 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 29 29 29 29 29 | .....(prop-match-end.prop))))))) |
| 3a060 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 20 28 26 | ..(defun.gptel--in-response-p.(& |
| 3a080 | 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 70 6f 73 69 74 69 6f | optional.pt)..."Check.if.positio |
| 3a0a0 | 6e 20 50 54 20 69 73 20 69 6e 73 69 64 65 20 61 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 2e | n.PT.is.inside.a.gptel.response. |
| 3a0c0 | 22 0a 20 20 28 65 71 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6f 72 20 70 | "...(eq.(get-char-property.(or.p |
| 3a0e0 | 74 20 28 70 6f 69 6e 74 29 29 20 27 67 70 74 65 6c 29 20 27 72 65 73 70 6f 6e 73 65 29 29 0a 0a | t.(point)).'gptel).'response)).. |
| 3a100 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 | (defun.gptel--at-response-histor |
| 3a120 | 79 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 67 | y-p.(&optional.pt)..."Check.if.g |
| 3a140 | 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 73 69 74 69 6f 6e 20 50 54 20 68 61 73 | ptel.response.at.position.PT.has |
| 3a160 | 20 76 61 72 69 61 6e 74 73 2e 22 0a 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 | .variants."...(get-char-property |
| 3a180 | 20 28 6f 72 20 70 74 20 28 70 6f 69 6e 74 29 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 | .(or.pt.(point)).'gptel-history) |
| 3a1a0 | 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 2d 64 65 73 63 72 69 70 74 69 | )..(defvar.gptel--mode-descripti |
| 3a1c0 | 6f 6e 2d 61 6c 69 73 74 0a 20 20 27 28 28 6a 73 32 2d 6d 6f 64 65 20 20 20 20 20 20 2e 20 22 4a | on-alist...'((js2-mode........"J |
| 3a1e0 | 61 76 61 73 63 72 69 70 74 22 29 0a 20 20 20 20 28 73 68 2d 6d 6f 64 65 20 20 20 20 20 20 20 2e | avascript").....(sh-mode........ |
| 3a200 | 20 22 53 68 65 6c 6c 22 29 0a 20 20 20 20 28 65 6e 68 2d 72 75 62 79 2d 6d 6f 64 65 20 2e 20 22 | ."Shell").....(enh-ruby-mode..." |
| 3a220 | 52 75 62 79 22 29 0a 20 20 20 20 28 79 61 6d 6c 2d 6d 6f 64 65 20 20 20 20 20 2e 20 22 59 61 6d | Ruby").....(yaml-mode......."Yam |
| 3a240 | 6c 22 29 0a 20 20 20 20 28 79 61 6d 6c 2d 74 73 2d 6d 6f 64 65 20 20 2e 20 22 59 61 6d 6c 22 29 | l").....(yaml-ts-mode...."Yaml") |
| 3a260 | 0a 20 20 20 20 28 72 75 73 74 69 63 2d 6d 6f 64 65 20 20 20 2e 20 22 52 75 73 74 22 29 0a 20 20 | .....(rustic-mode....."Rust")... |
| 3a280 | 20 20 28 74 75 61 72 65 67 2d 6d 6f 64 65 20 20 20 2e 20 22 4f 43 61 6d 6c 22 29 29 0a 20 20 22 | ..(tuareg-mode....."OCaml"))..." |
| 3a2a0 | 4d 61 70 70 69 6e 67 20 66 72 6f 6d 20 75 6e 63 6f 6e 76 65 6e 74 69 6f 6e 61 6c 6c 79 20 6e 61 | Mapping.from.unconventionally.na |
| 3a2c0 | 6d 65 64 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 6c 61 6e 67 75 61 67 65 73 2e 0a 0a 54 | med.major.modes.to.languages...T |
| 3a2e0 | 68 69 73 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 67 65 6e 65 72 61 74 69 6e 67 20 73 79 73 74 | his.is.used.when.generating.syst |
| 3a300 | 65 6d 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 20 61 6e 64 0a 77 68 65 | em.prompts.for.rewriting.and.whe |
| 3a320 | 6e 20 69 6e 63 6c 75 64 69 6e 67 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 74 68 65 73 65 20 6d | n.including.context.from.these.m |
| 3a340 | 61 6a 6f 72 20 6d 6f 64 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 74 72 | ajor.modes.")..(defun.gptel--str |
| 3a360 | 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 28 6d 6f 64 65 2d 73 79 6d 29 0a 20 20 22 52 65 6d | ip-mode-suffix.(mode-sym)..."Rem |
| 3a380 | 6f 76 65 20 74 68 65 20 2d 6d 6f 64 65 20 73 75 66 66 69 78 20 66 72 6f 6d 20 4d 4f 44 45 2d 53 | ove.the.-mode.suffix.from.MODE-S |
| 3a3a0 | 59 4d 2e 0a 0a 4d 4f 44 45 2d 53 59 4d 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 61 20 6d 61 6a | YM...MODE-SYM.is.typically.a.maj |
| 3a3c0 | 6f 72 2d 6d 6f 64 65 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 | or-mode.symbol."...(or.(alist-ge |
| 3a3e0 | 74 20 6d 6f 64 65 2d 73 79 6d 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 2d 64 65 73 63 72 69 70 74 69 | t.mode-sym.gptel--mode-descripti |
| 3a400 | 6f 6e 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 2d 6e 61 6d 65 | on-alist).......(let.((mode-name |
| 3a420 | 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(thread-last................... |
| 3a440 | 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6d 6f 64 65 2d 73 79 6d 29 0a 20 20 | .......(symbol-name.mode-sym)... |
| 3a460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 | .......................(string-r |
| 3a480 | 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 22 2d 6d 6f 64 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 | emove-suffix."-mode")........... |
| 3a4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 73 75 | ...............(string-remove-su |
| 3a4c0 | 66 66 69 78 20 22 2d 74 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 | ffix."-ts")))).........;;.NOTE:. |
| 3a4e0 | 54 68 65 20 61 64 76 65 72 74 69 73 65 64 20 63 61 6c 6c 69 6e 67 20 63 6f 6e 76 65 6e 74 69 6f | The.advertised.calling.conventio |
| 3a500 | 6e 20 6f 66 20 70 72 6f 76 69 64 65 64 2d 6d 6f 64 65 2d 64 65 72 69 76 65 64 2d 70 0a 20 20 20 | n.of.provided-mode-derived-p.... |
| 3a520 | 20 20 20 20 20 3b 3b 20 68 61 73 20 63 68 61 6e 67 65 64 20 69 6e 20 45 6d 61 63 73 20 33 30 2c | .....;;.has.changed.in.Emacs.30, |
| 3a540 | 20 74 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 65 76 65 6e 74 75 | .this.needs.to.be.updated.eventu |
| 3a560 | 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 70 72 6f 76 69 64 65 64 2d 6d 6f 64 65 2d | ally.........(if.(provided-mode- |
| 3a580 | 64 65 72 69 76 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 73 79 6d 20 | derived-p..............mode-sym. |
| 3a5a0 | 27 70 72 6f 67 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 20 27 74 65 78 2d 6d 6f 64 65 29 | 'prog-mode.'text-mode.'tex-mode) |
| 3a5c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 6e 61 6d 65 20 22 22 29 29 29 29 0a 0a 3b | .............mode-name.""))))..; |
| 3a5e0 | 3b 3b 3b 20 44 69 72 65 63 74 69 76 65 20 68 61 6e 64 6c 69 6e 67 0a 0a 0a 28 64 65 66 76 61 72 | ;;;.Directive.handling...(defvar |
| 3a600 | 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 28 6f 72 20 28 61 6c | .gptel--system-message...(or.(al |
| 3a620 | 69 73 74 2d 67 65 74 20 27 64 65 66 61 75 6c 74 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 | ist-get.'default.gptel-directive |
| 3a640 | 73 29 0a 20 20 20 20 20 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 | s)......."You.are.a.large.langua |
| 3a660 | 67 65 20 6d 6f 64 65 6c 20 6c 69 76 69 6e 67 20 69 6e 20 45 6d 61 63 73 20 61 6e 64 20 61 20 68 | ge.model.living.in.Emacs.and.a.h |
| 3a680 | 65 6c 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 52 65 73 70 6f 6e 64 20 63 6f 6e 63 69 73 | elpful.assistant..Respond.concis |
| 3a6a0 | 65 6c 79 2e 22 29 0a 20 20 22 54 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 75 73 65 | ely.")..."The.system.message.use |
| 3a6c0 | 64 20 62 79 20 67 70 74 65 6c 2e 22 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 | d.by.gptel.").(put.'gptel--syste |
| 3a6e0 | 6d 2d 6d 65 73 73 61 67 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 | m-message.'safe-local-variable.# |
| 3a700 | 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 | 'always)..(defun.gptel--describe |
| 3a720 | 2d 64 69 72 65 63 74 69 76 65 20 28 64 69 72 65 63 74 69 76 65 20 77 69 64 74 68 20 26 6f 70 74 | -directive.(directive.width.&opt |
| 3a740 | 69 6f 6e 61 6c 20 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a 20 20 22 46 69 6e 64 20 64 65 73 63 72 | ional.replacement)..."Find.descr |
| 3a760 | 69 70 74 69 6f 6e 20 66 6f 72 20 44 49 52 45 43 54 49 56 45 2c 20 74 72 75 6e 63 61 74 65 64 20 | iption.for.DIRECTIVE,.truncated. |
| 3a780 | 20 74 6f 20 57 49 44 54 48 2e 0a 0a 44 49 52 45 43 54 49 56 45 20 69 73 20 61 20 67 70 74 65 6c | .to.WIDTH...DIRECTIVE.is.a.gptel |
| 3a7a0 | 20 64 69 72 65 63 74 69 76 65 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 61 20 73 74 72 69 6e 67 2c | .directive,.and.can.be.a.string, |
| 3a7c0 | 20 61 20 66 75 6e 63 74 69 6f 6e 0a 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 | .a.function.or.a.list.of.strings |
| 3a7e0 | 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 0a 0a 54 68 65 20 | ...See.`gptel-directives'...The. |
| 3a800 | 72 65 73 75 6c 74 20 69 73 20 61 20 73 74 72 69 6e 67 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 | result.is.a.string.intended.for. |
| 3a820 | 64 69 73 70 6c 61 79 2e 20 20 4e 65 77 6c 69 6e 65 73 20 61 72 65 0a 72 65 70 6c 61 63 65 64 20 | display...Newlines.are.replaced. |
| 3a840 | 77 69 74 68 20 52 45 50 4c 41 43 45 4d 45 4e 54 2e 22 0a 20 20 28 63 6c 2d 74 79 70 65 63 61 73 | with.REPLACEMENT."...(cl-typecas |
| 3a860 | 65 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 28 73 74 72 69 6e 67 0a 20 20 20 20 20 28 63 6f | e.directive.....(string......(co |
| 3a880 | 6e 63 61 74 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 | ncat.......(string-replace."\n". |
| 3a8a0 | 28 6f 72 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (or.replacement.".")............ |
| 3a8c0 | 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 | ...........(truncate-string-to-w |
| 3a8e0 | 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 72 65 | idth........................dire |
| 3a900 | 63 74 69 76 65 20 77 69 64 74 68 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 29 0a 20 20 20 20 28 66 | ctive.width.nil.nil.t)))).....(f |
| 3a920 | 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 22 ce bb 3a 20 | unction......(concat......."..:. |
| 3a940 | 22 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 20 22 | ".......(string-replace........" |
| 3a960 | 5c 6e 22 20 28 6f 72 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 22 20 22 29 0a 20 20 20 20 20 20 20 | \n".(or.replacement.".")........ |
| 3a980 | 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 | (truncate-string-to-width....... |
| 3a9a0 | 20 20 28 6f 72 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 64 6f 63 20 28 64 6f 63 75 6d 65 6e 74 61 | ..(or.(and-let*.((doc.(documenta |
| 3a9c0 | 74 69 6f 6e 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tion.directive)))............... |
| 3a9e0 | 28 73 75 62 73 74 72 69 6e 67 20 64 6f 63 20 6e 69 6c 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 | (substring.doc.nil.(string-match |
| 3aa00 | 2d 70 20 22 5c 6e 22 20 64 6f 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 44 79 6e | -p."\n".doc)))............."[Dyn |
| 3aa20 | 61 6d 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 3b 20 6e 6f 20 70 72 65 76 69 65 77 20 61 | amically.generated;.no.preview.a |
| 3aa40 | 76 61 69 6c 61 62 6c 65 5d 22 29 0a 20 20 20 20 20 20 20 20 77 69 64 74 68 20 6e 69 6c 20 6e 69 | vailable]").........width.nil.ni |
| 3aa60 | 6c 20 74 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 66 72 | l.t)))).....(list.(and-let*.((fr |
| 3aa80 | 6f 6d 2d 74 65 6d 70 6c 61 74 65 20 28 63 61 72 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 | om-template.(car.directive)))... |
| 3aaa0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 | ..........(gptel--describe-direc |
| 3aac0 | 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d 2d 74 65 6d 70 6c 61 74 65 20 | tive..............from-template. |
| 3aae0 | 77 69 64 74 68 29 29 29 0a 20 20 20 20 28 74 20 22 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | width))).....(t."")))..(defun.gp |
| 3ab00 | 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 28 64 69 72 65 63 74 69 76 65 20 | tel--parse-directive.(directive. |
| 3ab20 | 26 6f 70 74 69 6f 6e 61 6c 20 72 61 77 29 0a 20 20 22 50 61 72 73 65 20 44 49 52 45 43 54 49 56 | &optional.raw)..."Parse.DIRECTIV |
| 3ab40 | 45 20 69 6e 74 6f 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 20 66 6f 72 | E.into.a.backend-appropriate.for |
| 3ab60 | 6d 2e 0a 0a 44 49 52 45 43 54 49 56 45 20 69 73 20 61 20 67 70 74 65 6c 20 64 69 72 65 63 74 69 | m...DIRECTIVE.is.a.gptel.directi |
| 3ab80 | 76 65 3a 20 69 74 20 63 61 6e 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 61 20 6c 69 73 74 20 6f | ve:.it.can.be.a.string,.a.list.o |
| 3aba0 | 72 20 61 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 65 69 74 68 65 72 | r.a.function.that.returns.either |
| 3abc0 | 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 0a 0a 52 65 74 75 72 | ,.see.`gptel-directives'...Retur |
| 3abe0 | 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 74 68 65 20 | n.a.cons.cell.consisting.of.the. |
| 3ac00 | 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 61 20 73 74 72 69 6e 67 29 0a 61 6e 64 20 61 20 | system.message.(a.string).and.a. |
| 3ac20 | 74 65 6d 70 6c 61 74 65 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 61 6c 74 65 72 6e 61 74 69 | template.consisting.of.alternati |
| 3ac40 | 6e 67 20 75 73 65 72 2f 4c 4c 4d 0a 72 65 63 6f 72 64 73 20 28 61 20 6c 69 73 74 20 6f 66 20 73 | ng.user/LLM.records.(a.list.of.s |
| 3ac60 | 74 72 69 6e 67 73 20 6f 72 20 6e 69 6c 29 2e 0a 0a 49 66 20 52 41 57 20 69 73 20 6e 6f 6e 2d 6e | trings.or.nil)...If.RAW.is.non-n |
| 3ac80 | 69 6c 2c 20 74 68 65 20 75 73 65 72 2f 4c 4c 4d 20 72 65 63 6f 72 64 73 20 61 72 65 20 6e 6f 74 | il,.the.user/LLM.records.are.not |
| 3aca0 | 20 70 72 6f 63 65 73 73 65 64 20 61 6e 64 20 61 72 65 0a 72 65 74 75 72 6e 65 64 20 61 73 20 61 | .processed.and.are.returned.as.a |
| 3acc0 | 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 22 0a 20 20 28 61 6e 64 20 64 69 72 65 63 74 | .list.of.strings."...(and.direct |
| 3ace0 | 69 76 65 0a 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 64 69 72 65 63 74 69 | ive........(cl-etypecase.directi |
| 3ad00 | 76 65 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 20 20 28 6c 69 73 74 20 64 69 72 65 | ve..........(string...(list.dire |
| 3ad20 | 63 74 69 76 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 28 67 70 74 65 | ctive))..........(function.(gpte |
| 3ad40 | 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 28 66 75 6e 63 61 6c 6c 20 64 69 72 65 | l--parse-directive.(funcall.dire |
| 3ad60 | 63 74 69 76 65 29 20 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 20 20 20 20 | ctive).raw))..........(cons..... |
| 3ad80 | 28 69 66 20 72 61 77 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.raw.directive............... |
| 3ada0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 | .......(cons.(car.directive).... |
| 3adc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 | ........................;;.FIXME |
| 3ade0 | 28 61 75 67 6d 65 6e 74 29 20 64 6f 20 74 68 69 73 20 65 6c 73 65 77 68 65 72 65 0a 20 20 20 20 | (augment).do.this.elsewhere..... |
| 3ae00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 | .......................(gptel--p |
| 3ae20 | 61 72 73 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arse-list....................... |
| 3ae40 | 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 63 64 72 20 64 69 72 65 63 74 69 | ......gptel-backend.(cdr.directi |
| 3ae60 | 76 65 29 29 29 29 29 29 29 29 0a 0a 0a 0c 0a 3b 3b 3b 20 4c 6f 67 67 69 6e 67 0a 0a 28 64 65 66 | ve)))))))).....;;;.Logging..(def |
| 3ae80 | 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 67 | const.gptel--log-buffer-name."*g |
| 3aea0 | 70 74 65 6c 2d 6c 6f 67 2a 22 0a 20 20 22 4c 6f 67 20 62 75 66 66 65 72 20 66 6f 72 20 67 70 74 | ptel-log*"..."Log.buffer.for.gpt |
| 3aec0 | 65 6c 2e 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 | el.")..(declare-function.json-pr |
| 3aee0 | 65 74 74 79 2d 70 72 69 6e 74 20 22 6a 73 6f 6e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | etty-print."json")..(defun.gptel |
| 3af00 | 2d 2d 6c 6f 67 20 28 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 20 6e 6f 2d 6a 73 | --log.(data.&optional.type.no-js |
| 3af20 | 6f 6e 29 0a 20 20 22 4c 6f 67 20 44 41 54 41 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 | on)..."Log.DATA.to.`gptel--log-b |
| 3af40 | 75 66 66 65 72 2d 6e 61 6d 65 27 2e 0a 0a 54 59 50 45 20 69 73 20 61 20 6c 61 62 65 6c 20 66 6f | uffer-name'...TYPE.is.a.label.fo |
| 3af60 | 72 20 64 61 74 61 20 62 65 69 6e 67 20 6c 6f 67 67 65 64 2e 20 20 44 41 54 41 20 69 73 20 61 73 | r.data.being.logged...DATA.is.as |
| 3af80 | 73 75 6d 65 64 20 74 6f 20 62 65 0a 56 61 6c 69 64 20 4a 53 4f 4e 20 75 6e 6c 65 73 73 20 4e 4f | sumed.to.be.Valid.JSON.unless.NO |
| 3afa0 | 2d 4a 53 4f 4e 20 69 73 20 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | -JSON.is.t."...(with-current-buf |
| 3afc0 | 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 67 70 74 65 6c 2d 2d 6c 6f | fer.(get-buffer-create.gptel--lo |
| 3afe0 | 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 20 28 67 6f 74 | g-buffer-name).....(let.((p.(got |
| 3b000 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c | o-char.(point-max)))).......(unl |
| 3b020 | 65 73 73 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 | ess.(bobp).(insert."\n"))....... |
| 3b040 | 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 7b 5c 22 67 70 74 65 6c 5c 22 3a 20 5c 22 25 | (insert.(format."{\"gptel\":.\"% |
| 3b060 | 73 5c 22 2c 20 22 20 28 6f 72 20 74 79 70 65 20 22 6e 6f 6e 65 22 29 29 0a 20 20 20 20 20 20 20 | s\",.".(or.type."none"))........ |
| 3b080 | 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 5c 22 74 69 | .......(format-time-string."\"ti |
| 3b0a0 | 6d 65 73 74 61 6d 70 5c 22 3a 20 5c 22 25 59 2d 25 6d 2d 25 64 20 25 48 3a 25 4d 3a 25 53 5c 22 | mestamp\":.\"%Y-%m-%d.%H:%M:%S\" |
| 3b0c0 | 7d 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 | }\n")...............data)....... |
| 3b0e0 | 28 75 6e 6c 65 73 73 20 6e 6f 2d 6a 73 6f 6e 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 | (unless.no-json.(ignore-errors.( |
| 3b100 | 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 70 20 28 70 6f 69 6e 74 29 29 29 29 29 29 | json-pretty-print.p.(point)))))) |
| 3b120 | 29 0a 0a 0c 0a 3b 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 73 74 | )....;;;.Saving.and.restoring.st |
| 3b140 | 61 74 65 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 70 72 6f 70 73 | ate..(defun.gptel--restore-props |
| 3b160 | 20 28 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 0a 20 20 22 52 65 73 74 6f 72 65 20 74 65 78 74 20 | .(bounds-alist)..."Restore.text. |
| 3b180 | 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 20 42 4f 55 4e 44 53 2d 41 4c 49 53 54 2e 0a 42 4f | properties.from.BOUNDS-ALIST..BO |
| 3b1a0 | 55 4e 44 53 2d 41 4c 49 53 54 20 69 73 20 28 50 52 4f 50 20 2e 20 42 4f 55 4e 44 53 29 2e 20 20 | UNDS-ALIST.is.(PROP...BOUNDS)... |
| 3b1c0 | 42 4f 55 4e 44 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 42 4f 55 4e 44 2e 20 20 45 61 63 68 | BOUNDS.is.a.list.of.BOUND...Each |
| 3b1e0 | 20 42 4f 55 4e 44 0a 69 73 20 65 69 74 68 65 72 20 28 42 45 47 20 45 4e 44 20 56 41 4c 29 20 6f | .BOUND.is.either.(BEG.END.VAL).o |
| 3b200 | 72 20 28 42 45 47 20 45 4e 44 29 2e 0a 0a 46 6f 72 20 28 42 45 47 20 45 4e 44 20 56 41 4c 29 20 | r.(BEG.END)...For.(BEG.END.VAL). |
| 3b220 | 66 6f 72 6d 73 2c 20 65 76 65 6e 20 69 66 20 56 41 4c 20 69 73 20 6e 69 6c 2c 20 74 68 65 20 67 | forms,.even.if.VAL.is.nil,.the.g |
| 3b240 | 70 74 65 6c 20 70 72 6f 70 65 72 74 79 20 77 69 6c 6c 20 62 65 0a 73 65 74 20 74 6f 20 28 50 52 | ptel.property.will.be.set.to.(PR |
| 3b260 | 4f 50 20 2e 20 56 41 4c 29 2e 20 20 46 6f 72 20 28 42 45 47 20 45 4e 44 29 20 66 6f 72 6d 73 2c | OP...VAL)...For.(BEG.END).forms, |
| 3b280 | 20 65 78 63 65 70 74 20 77 68 65 6e 20 50 52 4f 50 20 69 73 20 72 65 73 70 6f 6e 73 65 2c 0a 74 | .except.when.PROP.is.response,.t |
| 3b2a0 | 68 65 20 67 70 74 65 6c 20 70 72 6f 70 65 72 74 79 20 69 73 20 73 65 74 20 74 6f 20 6a 75 73 74 | he.gptel.property.is.set.to.just |
| 3b2c0 | 20 50 52 4f 50 2e 0a 0a 54 68 65 20 6c 65 67 61 63 79 20 73 74 72 75 63 74 75 72 65 2c 20 61 20 | .PROP...The.legacy.structure,.a. |
| 3b2e0 | 6c 69 73 74 20 6f 66 20 28 42 45 47 20 2e 20 45 4e 44 29 20 69 73 20 61 6c 73 6f 20 73 75 70 70 | list.of.(BEG...END).is.also.supp |
| 3b300 | 6f 72 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 62 65 0a 61 70 70 6c 69 65 64 20 62 65 66 6f 72 65 | orted.and.will.be.applied.before |
| 3b320 | 20 62 65 69 6e 67 20 72 65 2d 70 65 72 73 69 73 74 65 64 20 69 6e 20 74 68 65 20 6e 65 77 20 73 | .being.re-persisted.in.the.new.s |
| 3b340 | 74 72 75 63 74 75 72 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 6f 64 69 66 69 65 64 20 28 62 75 | tructure."...(let.((modified.(bu |
| 3b360 | 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 79 6d 62 | ffer-modified-p))).....(if.(symb |
| 3b380 | 6f 6c 70 20 28 63 61 61 72 20 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 | olp.(caar.bounds-alist))........ |
| 3b3a0 | 20 28 6d 61 70 63 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 6f 75 6e 64 73 29 | .(mapc..........(lambda.(bounds) |
| 3b3c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 70 6f 70 20 62 6f | ............(let*.((prop.(pop.bo |
| 3b3e0 | 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 | unds)))..............(mapc...... |
| 3b400 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 | .........(lambda.(bound)........ |
| 3b420 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 2d 68 61 73 2d 76 61 6c 20 28 3e 20 | .........(let.((prop-has-val.(>. |
| 3b440 | 28 6c 65 6e 67 74 68 20 62 6f 75 6e 64 29 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (length.bound).2)))............. |
| 3b460 | 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 | ......(add-text-properties...... |
| 3b480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 62 6f 75 6e 64 29 20 28 70 6f 70 20 62 | ..............(pop.bound).(pop.b |
| 3b4a0 | 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 | ound)....................(if.(eq |
| 3b4c0 | 20 70 72 6f 70 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .prop.'response)................ |
| 3b4e0 | 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6e 74 2d 73 | ........'(gptel.response.front-s |
| 3b500 | 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ticky.(gptel)).................. |
| 3b520 | 20 20 20 20 28 6c 69 73 74 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(list.'gptel................ |
| 3b540 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 6f 70 2d 68 61 73 2d 76 61 6c 0a 20 20 20 | ............(if.prop-has-val.... |
| 3b560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | ............................(con |
| 3b580 | 73 20 70 72 6f 70 20 28 70 6f 70 20 62 6f 75 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s.prop.(pop.bound))............. |
| 3b5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 29 29 29 29 29 29 0a 20 20 20 20 | .................prop))))))..... |
| 3b5c0 | 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 62 6f 75 | ..........bounds)))..........bou |
| 3b5e0 | 6e 64 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 | nds-alist).......(mapc.(lambda.( |
| 3b600 | 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 | bound)...............(add-text-p |
| 3b620 | 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 62 6f | roperties................(car.bo |
| 3b640 | 75 6e 64 29 20 28 63 64 72 20 62 6f 75 6e 64 29 20 27 28 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 | und).(cdr.bound).'(gptel.respons |
| 3b660 | 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 29 29 0a 20 20 20 20 20 20 | e.front-sticky.(gptel))))....... |
| 3b680 | 20 20 20 20 20 20 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 28 73 65 74 2d 62 75 | ......bounds-alist)).....(set-bu |
| 3b6a0 | 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6d 6f 64 69 66 69 65 64 29 29 29 0a 0a 28 64 65 | ffer-modified-p.modified)))..(de |
| 3b6c0 | 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 | fun.gptel--restore-state.()..."R |
| 3b6e0 | 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 77 68 65 6e 20 74 75 72 6e 69 6e 67 20 | estore.gptel.state.when.turning. |
| 3b700 | 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 | on.`gptel-mode'."...(when.(buffe |
| 3b720 | 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f | r-file-name).....(if.(derived-mo |
| 3b740 | 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 | de-p.'org-mode).........(progn.. |
| 3b760 | 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 | .........(require.'gptel-org)... |
| 3b780 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 | ........(gptel-org--restore-stat |
| 3b7a0 | 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 0a 20 20 | e)).......(when.gptel--bounds... |
| 3b7c0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 70 72 6f 70 73 20 67 70 74 65 | ......(gptel--restore-props.gpte |
| 3b7e0 | 6c 2d 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 67 70 74 | l--bounds).........(message."gpt |
| 3b800 | 65 6c 20 63 68 61 74 20 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e | el.chat.restored.")).......(when |
| 3b820 | 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 69 66 | .gptel--backend-name.........(if |
| 3b840 | 2d 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 | -let*.((backend.(alist-get...... |
| 3b860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 | .......................gptel--ba |
| 3b880 | 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 | ckend-name.gptel--known-backends |
| 3b8a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c | .............................nil |
| 3b8c0 | 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | .nil.#'equal))).............(set |
| 3b8e0 | 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 | q-local.gptel-backend.backend).. |
| 3b900 | 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 75 | .........(message............(su |
| 3b920 | 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 | bstitute-command-keys........... |
| 3b940 | 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f | ..(concat.............."Could.no |
| 3b960 | 74 20 61 63 74 69 76 61 74 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 5c 22 25 73 5c 22 21 | t.activate.gptel.backend.\"%s\"! |
| 3b980 | 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 62 61 63 6b 65 6e 64 | ..".............."Switch.backend |
| 3b9a0 | 73 20 77 69 74 68 20 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 5c 5c | s.with.\\[universal-argument].\\ |
| 3b9c0 | 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 62 65 66 | [gptel-send]"..............".bef |
| 3b9e0 | 6f 72 65 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 | ore.using.gptel."))............g |
| 3ba00 | 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e | ptel--backend-name))))))..(defun |
| 3ba20 | 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 57 72 69 74 65 20 74 | .gptel--save-state.()..."Write.t |
| 3ba40 | 68 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 54 | he.gptel.state.to.the.buffer...T |
| 3ba60 | 68 69 73 20 73 61 76 65 73 20 63 68 61 74 20 6d 65 74 61 64 61 74 61 20 77 68 65 6e 20 77 72 69 | his.saves.chat.metadata.when.wri |
| 3ba80 | 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 64 69 73 6b 2e 20 20 54 6f 0a 72 65 73 | ting.the.buffer.to.disk...To.res |
| 3baa0 | 74 6f 72 65 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 2c 20 74 75 72 6e 20 6f 6e 20 60 67 70 | tore.a.chat.session,.turn.on.`gp |
| 3bac0 | 74 65 6c 2d 6d 6f 64 65 27 20 61 66 74 65 72 20 6f 70 65 6e 69 6e 67 20 74 68 65 0a 66 69 6c 65 | tel-mode'.after.opening.the.file |
| 3bae0 | 2e 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 73 61 76 65 2d 73 74 61 74 | ."...(run-hooks.'gptel-save-stat |
| 3bb00 | 65 2d 68 6f 6f 6b 29 0a 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f | e-hook)...(if.(derived-mode-p.'o |
| 3bb20 | 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 72 | rg-mode).......(progn.........(r |
| 3bb40 | 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 | equire.'gptel-org).........(gpte |
| 3bb60 | 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d 73 74 61 74 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 | l-org--save-state)).....(let.((p |
| 3bb80 | 72 69 6e 74 2d 65 73 63 61 70 65 2d 6e 65 77 6c 69 6e 65 73 20 74 29 29 0a 20 20 20 20 20 20 28 | rint-escape-newlines.t)).......( |
| 3bba0 | 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 | save-excursion.........(save-res |
| 3bbc0 | 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 | triction...........(add-file-loc |
| 3bbe0 | 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d | al-variable.'gptel-model.gptel-m |
| 3bc00 | 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d | odel)...........(add-file-local- |
| 3bc20 | 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 | variable.'gptel--backend-name... |
| 3bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3bc60 | 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 | .(gptel-backend-name.gptel-backe |
| 3bc80 | 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 64 | nd))...........(unless.(equal.(d |
| 3bca0 | 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 | efault-value.'gptel-temperature) |
| 3bcc0 | 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel-temperature)............. |
| 3bce0 | 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d | (add-file-local-variable.'gptel- |
| 3bd00 | 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a | temperature.gptel-temperature)). |
| 3bd20 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 6c | ..........(unless.(equal.(defaul |
| 3bd40 | 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a | t-value.'gptel--system-message). |
| 3bd60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c | ...........................gptel |
| 3bd80 | 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 | --system-message).............(a |
| 3bda0 | 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 | dd-file-local-variable.......... |
| 3bdc0 | 20 20 20 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 | ....'gptel--system-message...... |
| 3bde0 | 20 20 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d | ........(car-safe.(gptel--parse- |
| 3be00 | 64 69 72 65 63 74 69 76 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 | directive.gptel--system-message) |
| 3be20 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f | )))...........(when.gptel-max-to |
| 3be40 | 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c | kens.............(add-file-local |
| 3be60 | 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 74 65 | -variable.'gptel-max-tokens.gpte |
| 3be80 | 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | l-max-tokens))...........(when.( |
| 3bea0 | 6e 61 74 6e 75 6d 70 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 | natnump.gptel--num-messages-to-s |
| 3bec0 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c | end).............(add-file-local |
| 3bee0 | 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 | -variable.'gptel--num-messages-t |
| 3bf00 | 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o-send.......................... |
| 3bf20 | 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d | ............gptel--num-messages- |
| 3bf40 | 74 6f 2d 73 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f | to-send))...........(add-file-lo |
| 3bf60 | 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 28 67 70 74 | cal-variable.'gptel--bounds.(gpt |
| 3bf80 | 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 29 29 29 29 29 29 0a 0a 0c 0a | el--get-buffer-bounds))))))).... |
| 3bfa0 | 3b 3b 3b 20 4d 69 6e 6f 72 20 6d 6f 64 65 20 61 6e 64 20 55 49 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 | ;;;.Minor.mode.and.UI..;;.NOTE:. |
| 3bfc0 | 49 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 20 74 68 61 74 20 74 68 69 73 20 69 73 20 74 68 65 20 | It's.not.clear.that.this.is.the. |
| 3bfe0 | 62 65 73 74 20 73 74 72 61 74 65 67 79 3a 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 74 65 78 | best.strategy:.(add-to-list.'tex |
| 3c000 | 74 2d 70 72 6f 70 65 72 74 79 2d 64 65 66 61 75 6c 74 2d 6e 6f 6e 73 74 69 63 6b 79 20 27 28 67 | t-property-default-nonsticky.'(g |
| 3c020 | 70 74 65 6c 20 2e 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 | ptel...t))..;;;###autoload.(defi |
| 3c040 | 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f | ne-minor-mode.gptel-mode..."Mino |
| 3c060 | 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 4c 4c 4d 73 | r.mode.for.interacting.with.LLMs |
| 3c080 | 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 47 50 54 22 0a 20 20 3a 6b 65 79 6d 61 70 0a 20 | ."...:lighter.".GPT"...:keymap.. |
| 3c0a0 | 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 | .(let.((map.(make-sparse-keymap) |
| 3c0c0 | 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 | )).....(define-key.map.(kbd."C-c |
| 3c0e0 | 20 52 45 54 22 29 20 23 27 67 70 74 65 6c 2d 73 65 6e 64 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 | .RET").#'gptel-send).....map)... |
| 3c100 | 28 69 66 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 | (if.gptel-mode.......(progn..... |
| 3c120 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 | ....(unless.(derived-mode-p.'org |
| 3c140 | 2d 6d 6f 64 65 20 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 29 | -mode.'markdown-mode.'text-mode) |
| 3c160 | 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 6f 64 65 20 2d 31 29 0a 20 20 20 20 20 | ...........(gptel-mode.-1)...... |
| 3c180 | 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 28 66 6f 72 6d 61 74 20 22 60 67 70 74 65 6c | .....(user-error.(format."`gptel |
| 3c1a0 | 2d 6d 6f 64 65 27 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 69 6e 20 60 25 73 27 2e | -mode'.is.not.supported.in.`%s'. |
| 3c1c0 | 22 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f | ".major-mode))).........(add-hoo |
| 3c1e0 | 6b 20 27 62 65 66 6f 72 65 2d 73 61 76 65 2d 68 6f 6f 6b 20 23 27 67 70 74 65 6c 2d 2d 73 61 76 | k.'before-save-hook.#'gptel--sav |
| 3c200 | 65 2d 73 74 61 74 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 | e-state.nil.t).........(gptel--p |
| 3c220 | 72 65 74 74 69 66 79 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 | rettify-preset).........(when.(d |
| 3c240 | 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 | erived-mode-p.'org-mode)........ |
| 3c260 | 20 20 20 3b 3b 20 57 6f 72 6b 20 61 72 6f 75 6e 64 20 62 75 67 20 69 6e 20 60 6f 72 67 2d 66 6f | ...;;.Work.around.bug.in.`org-fo |
| 3c280 | 6e 74 69 66 79 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 | ntify-extend-region'............ |
| 3c2a0 | 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 | (add-hook.'gptel-post-response-f |
| 3c2c0 | 75 6e 63 74 69 6f 6e 73 20 23 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 20 6e 69 6c 20 74 | unctions.#'font-lock-flush.nil.t |
| 3c2e0 | 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 | )).........(gptel--restore-state |
| 3c300 | 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c | ).........(if.gptel-use-header-l |
| 3c320 | 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 | ine...........(setq.gptel--old-h |
| 3c340 | 65 61 64 65 72 2d 6c 69 6e 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 | eader-line.header-line-format... |
| 3c360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 | ..............header-line-format |
| 3c380 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 28 3a 65 76 61 6c 20 28 | .................(list.'(:eval.( |
| 3c3a0 | 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 | concat.(propertize.".".'display. |
| 3c3c0 | 27 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 | '(space.:align-to.0))........... |
| 3c3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 | .....................(format."%s |
| 3c400 | 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b | ".(gptel-backend-name.gptel-back |
| 3c420 | 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | end)))).......................(p |
| 3c440 | 72 6f 70 65 72 74 69 7a 65 20 22 20 52 65 61 64 79 22 20 27 66 61 63 65 20 27 73 75 63 63 65 73 | ropertize.".Ready".'face.'succes |
| 3c460 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c | s).......................'(:eval |
| 3c480 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 | .........................(let*.( |
| 3c4a0 | 28 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | (model.(gptel--model-name.gptel- |
| 3c4c0 | 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | model))......................... |
| 3c4e0 | 20 20 20 20 20 20 28 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(system................... |
| 3c500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 | .............(propertize........ |
| 3c520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e | .........................(button |
| 3c540 | 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ize............................. |
| 3c560 | 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 50 72 6f 6d 70 74 3a 20 25 73 5d 22 0a 20 20 20 20 | .....(format."[Prompt:.%s]"..... |
| 3c580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | ..............................(o |
| 3c5a0 | 72 20 28 63 61 72 2d 73 61 66 65 20 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 | r.(car-safe.(rassoc.gptel--syste |
| 3c5c0 | 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 0a 20 20 20 | m-message.gptel-directives)).... |
| 3c5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3c600 | 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 20 67 70 74 65 6c | (gptel--describe-directive.gptel |
| 3c620 | 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 31 35 29 29 29 0a 20 20 20 20 20 20 20 20 20 | --system-message.15))).......... |
| 3c640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 | ........................(lambda. |
| 3c660 | 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 | (&rest._).(gptel-system-prompt)) |
| 3c680 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 3c6a0 | 20 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 | ..'mouse-face.'highlight........ |
| 3c6c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 | .........................'help-e |
| 3c6e0 | 63 68 6f 20 22 53 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 20 73 65 73 73 69 6f 6e 22 | cho."System.message.for.session" |
| 3c700 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )).............................. |
| 3c720 | 20 28 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(context....................... |
| 3c740 | 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 | .........(and.gptel-context--ali |
| 3c760 | 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st.............................. |
| 3c780 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 65 6e 74 72 79 20 69 6e 20 67 70 74 65 6c 2d 63 | ...(cl-loop.for.entry.in.gptel-c |
| 3c7a0 | 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontext--alist................... |
| 3c7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 70 20 28 63 61 72 20 | ...............if.(bufferp.(car. |
| 3c7e0 | 65 6e 74 72 79 29 29 20 63 6f 75 6e 74 20 69 74 20 69 6e 74 6f 20 62 75 66 73 0a 20 20 20 20 20 | entry)).count.it.into.bufs...... |
| 3c800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 | ............................else |
| 3c820 | 20 63 6f 75 6e 74 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 65 6e 74 72 79 29 29 20 69 6e 74 | .count.(stringp.(car.entry)).int |
| 3c840 | 6f 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o.files......................... |
| 3c860 | 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 | .........finally.return......... |
| 3c880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 | .........................(proper |
| 3c8a0 | 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tize............................ |
| 3c8c0 | 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(buttonize............... |
| 3c8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5b 43 | .....................(concat."[C |
| 3c900 | 6f 6e 74 65 78 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontext:."....................... |
| 3c920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 30 29 20 28 66 | ..............(and.(>.bufs.0).(f |
| 3c940 | 6f 72 6d 61 74 20 22 25 64 20 62 75 66 22 20 62 75 66 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ormat."%d.buf".bufs))........... |
| 3c960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 | ..........................(and.( |
| 3c980 | 3e 20 62 75 66 73 20 31 29 20 22 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | >.bufs.1)."s").................. |
| 3c9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 | ...................(and.(>.bufs. |
| 3c9c0 | 30 29 20 28 3e 20 66 69 6c 65 73 20 30 29 20 22 2c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | 0).(>.files.0).",.")............ |
| 3c9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e | .........................(and.(> |
| 3ca00 | 20 66 69 6c 65 73 20 30 29 20 28 66 6f 72 6d 61 74 20 22 25 64 20 66 69 6c 65 22 20 66 69 6c 65 | .files.0).(format."%d.file".file |
| 3ca20 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s))............................. |
| 3ca40 | 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 66 69 6c 65 73 20 31 29 20 22 73 22 29 0a 20 20 | ........(and.(>.files.1)."s")... |
| 3ca60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3ca80 | 20 20 22 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .."]").......................... |
| 3caa0 | 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 | ..........(lambda.(&rest._)..... |
| 3cac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3cae0 | 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 | .(require.'gptel-context)....... |
| 3cb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 3cb20 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 29 0a 20 | gptel-context--buffer-setup))).. |
| 3cb40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3cb60 | 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 | .'mouse-face.'highlight......... |
| 3cb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d | ..........................'help- |
| 3cba0 | 65 63 68 6f 20 22 41 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 22 29 29 29 29 0a | echo."Active.gptel.context")))). |
| 3cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 | ..............................(t |
| 3cbe0 | 6f 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | oggle-track-media............... |
| 3cc00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 | .................(lambda.(&rest. |
| 3cc20 | 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _).............................. |
| 3cc40 | 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 | ....(setq-local.gptel-track-medi |
| 3cc60 | 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a............................... |
| 3cc80 | 20 20 20 20 28 6e 6f 74 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 29 0a 20 20 20 | ....(not.gptel-track-media)).... |
| 3cca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | ..............................(i |
| 3ccc0 | 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.gptel-track-media............. |
| 3cce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | .........................(messag |
| 3cd00 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e............................... |
| 3cd20 | 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(concat................. |
| 3cd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 65 6e 64 69 6e 67 20 | ......................."Sending. |
| 3cd60 | 6d 65 64 69 61 20 66 72 6f 6d 20 69 6e 63 6c 75 64 65 64 20 6c 69 6e 6b 73 2e 20 20 54 6f 20 69 | media.from.included.links...To.i |
| 3cd80 | 6e 63 6c 75 64 65 20 6d 65 64 69 61 2c 20 63 72 65 61 74 65 20 22 0a 20 20 20 20 20 20 20 20 20 | nclude.media,.create.".......... |
| 3cda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 | .............................."a |
| 3cdc0 | 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 20 6c 69 6e 6b 20 69 6e 20 61 20 70 61 72 61 67 72 | .\"standalone\".link.in.a.paragr |
| 3cde0 | 61 70 68 20 62 79 20 69 74 73 65 6c 66 2c 20 73 65 70 61 72 61 74 65 64 20 66 72 6f 6d 20 73 75 | aph.by.itself,.separated.from.su |
| 3ce00 | 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | rrounding.text.")).............. |
| 3ce20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | ......................(message." |
| 3ce40 | 49 67 6e 6f 72 69 6e 67 20 69 6d 61 67 65 20 6c 69 6e 6b 73 2e 20 20 4f 6e 6c 79 20 6c 69 6e 6b | Ignoring.image.links...Only.link |
| 3ce60 | 20 74 65 78 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 | .text.will.be.sent.")).......... |
| 3ce80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d | ........................(run-at- |
| 3cea0 | 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 | time.0.nil.#'force-mode-line-upd |
| 3cec0 | 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ate))).......................... |
| 3cee0 | 20 20 20 20 20 28 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(track-media............... |
| 3cf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 6f | .................(and.(gptel--mo |
| 3cf20 | 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 | del-capable-p.'media)........... |
| 3cf40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d | ......................(if.gptel- |
| 3cf60 | 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | track-media..................... |
| 3cf80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 | ................(propertize..... |
| 3cfa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3cfc0 | 20 28 62 75 74 74 6f 6e 69 7a 65 20 22 5b 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 6f | .(buttonize."[Sending.media]".to |
| 3cfe0 | 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ggle-track-media)............... |
| 3d000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 6f 75 73 65 2d 66 61 | .......................'mouse-fa |
| 3d020 | 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce.'highlight................... |
| 3d040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 | ...................'help-echo... |
| 3d060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d080 | 20 20 20 22 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e | ..."Sending.media.from.standalon |
| 3d0a0 | 65 20 6c 69 6e 6b 73 2f 75 72 6c 73 20 77 68 65 6e 20 73 75 70 70 6f 72 74 65 64 2e 5c 6e 43 6c | e.links/urls.when.supported.\nCl |
| 3d0c0 | 69 63 6b 20 74 6f 20 74 6f 67 67 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ick.to.toggle")................. |
| 3d0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 | ..................(propertize... |
| 3d100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d120 | 20 28 62 75 74 74 6f 6e 69 7a 65 20 22 5b 49 67 6e 6f 72 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 | .(buttonize."[Ignoring.media]".t |
| 3d140 | 6f 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | oggle-track-media).............. |
| 3d160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 6f 75 73 65 2d 66 61 63 | ......................'mouse-fac |
| 3d180 | 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.'highlight.................... |
| 3d1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 | ................'help-echo...... |
| 3d1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 49 | .............................."I |
| 3d1e0 | 67 6e 6f 72 69 6e 67 20 69 6d 61 67 65 73 20 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e 65 20 6c | gnoring.images.from.standalone.l |
| 3d200 | 69 6e 6b 73 2f 75 72 6c 73 2e 5c 6e 43 6c 69 63 6b 20 74 6f 20 74 6f 67 67 6c 65 22 29 29 29 29 | inks/urls.\nClick.to.toggle")))) |
| 3d220 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 3d240 | 74 6f 67 67 6c 65 2d 74 6f 6f 6c 73 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 | toggle-tools.(lambda.(&rest._).( |
| 3d260 | 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | interactive).................... |
| 3d280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d | ...........................(run- |
| 3d2a0 | 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | at-time.0.nil................... |
| 3d2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | .............................(la |
| 3d2e0 | 6d 62 64 61 20 28 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 | mbda.().(call-interactively.#'gp |
| 3d300 | 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-tools))))).................. |
| 3d320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 73 20 28 77 68 65 6e 20 28 61 6e 64 20 67 | .............(tools.(when.(and.g |
| 3d340 | 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 | ptel-use-tools.gptel-tools)..... |
| 3d360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d380 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(propertize................... |
| 3d3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 | .....................(buttonize. |
| 3d3c0 | 28 70 63 61 73 65 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 | (pcase.(length.gptel-tools)..... |
| 3d3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 30 20 22 5b 4e 6f 20 74 6f 6f 6c 73 5d 22 29 20 | ...............(0."[No.tools]"). |
| 3d420 | 28 31 20 22 5b 31 20 74 6f 6f 6c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (1."[1.tool]").................. |
| 3d440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d460 | 20 20 28 6c 65 6e 20 28 66 6f 72 6d 61 74 20 22 5b 25 64 20 74 6f 6f 6c 73 5d 22 20 6c 65 6e 29 | ..(len.(format."[%d.tools]".len) |
| 3d480 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )).............................. |
| 3d4a0 | 20 20 20 20 20 20 20 20 20 20 20 74 6f 67 67 6c 65 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 | ...........toggle-tools)........ |
| 3d4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d4e0 | 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 | 'mouse-face.'highlight.......... |
| 3d500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 | ..............................'h |
| 3d520 | 65 6c 70 2d 65 63 68 6f 20 22 53 65 6c 65 63 74 20 74 6f 6f 6c 73 22 29 29 29 29 0a 20 20 20 20 | elp-echo."Select.tools"))))..... |
| 3d540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 | .....................(concat.... |
| 3d560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | .......................(properti |
| 3d580 | 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 | ze............................". |
| 3d5a0 | 22 20 27 64 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ".'display...................... |
| 3d5c0 | 20 20 20 20 20 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 28 2d 20 72 69 67 68 74 | ......`(space.:align-to.(-.right |
| 3d5e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 2b 20 35 20 28 6c 65 6e 67 74 68 20 6d 6f 64 | ...............,(+.5.(length.mod |
| 3d620 | 65 6c 29 20 28 6c 65 6e 67 74 68 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | el).(length.system)............. |
| 3d640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d660 | 20 20 20 20 28 6c 65 6e 67 74 68 20 74 72 61 63 6b 2d 6d 65 64 69 61 29 20 28 6c 65 6e 67 74 68 | ....(length.track-media).(length |
| 3d680 | 20 63 6f 6e 74 65 78 74 29 20 28 6c 65 6e 67 74 68 20 74 6f 6f 6c 73 29 29 29 29 29 0a 20 20 20 | .context).(length.tools))))).... |
| 3d6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 73 20 28 61 6e | .......................tools.(an |
| 3d6c0 | 64 20 74 72 61 63 6b 2d 6d 65 64 69 61 20 22 20 22 29 20 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 | d.track-media.".").track-media.( |
| 3d6e0 | 61 6e 64 20 63 6f 6e 74 65 78 74 20 22 20 22 29 20 63 6f 6e 74 65 78 74 20 22 20 22 20 73 79 73 | and.context.".").context.".".sys |
| 3d700 | 74 65 6d 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tem."."......................... |
| 3d720 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(propertize................... |
| 3d740 | 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 | .........(buttonize.(concat."[". |
| 3d760 | 6d 6f 64 65 6c 20 22 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | model."]")...................... |
| 3d780 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d | .......(lambda.(&rest._).(gptel- |
| 3d7a0 | 6d 65 6e 75 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | menu)))......................... |
| 3d7c0 | 20 20 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 | ...'mouse-face.'highlight....... |
| 3d7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 | .....................'help-echo. |
| 3d800 | 22 4d 6f 64 65 6c 20 69 6e 20 75 73 65 22 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | "Model.in.use"))))))...........( |
| 3d820 | 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 | setq.mode-line-process.......... |
| 3d840 | 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 | .......'(:eval.(concat."."...... |
| 3d860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 | ....................(buttonize.( |
| 3d880 | 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 | gptel--model-name.gptel-model).. |
| 3d8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | ...........................(lamb |
| 3d8c0 | 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 29 29 | da.(&rest._).(gptel-menu)))))))) |
| 3d8e0 | 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 73 61 76 65 2d 68 | .....(remove-hook.'before-save-h |
| 3d900 | 6f 6f 6b 20 23 27 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 74 29 0a 20 20 20 20 28 | ook.#'gptel--save-state.t).....( |
| 3d920 | 67 70 74 65 6c 2d 2d 70 72 65 74 74 69 66 79 2d 70 72 65 73 65 74 29 0a 20 20 20 20 28 69 66 20 | gptel--prettify-preset).....(if. |
| 3d940 | 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 73 | gptel-use-header-line.........(s |
| 3d960 | 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 67 70 74 65 6c 2d 2d 6f 6c | etq.header-line-format.gptel--ol |
| 3d980 | 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 | d-header-line...............gpte |
| 3d9a0 | 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 | l--old-header-line.nil).......(s |
| 3d9c0 | 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 29 29 29 0a 0a 28 | etq.mode-line-process.nil))))..( |
| 3d9e0 | 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 20 20 20 20 20 20 20 20 | defvar.gptel--fsm-last)......... |
| 3da00 | 20 20 20 20 20 20 20 3b 44 65 66 69 6e 65 64 20 66 75 72 74 68 65 72 20 62 65 6c 6f 77 0a 28 64 | .......;Defined.further.below.(d |
| 3da20 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 28 26 6f 70 74 69 | efun.gptel--update-status.(&opti |
| 3da40 | 6f 6e 61 6c 20 6d 73 67 20 66 61 63 65 29 0a 20 20 22 55 70 64 61 74 65 20 73 74 61 74 75 73 20 | onal.msg.face)..."Update.status. |
| 3da60 | 4d 53 47 20 69 6e 20 46 41 43 45 2e 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 | MSG.in.FACE."...(when.gptel-mode |
| 3da80 | 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 | .....(if.gptel-use-header-line.. |
| 3daa0 | 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 | .......(and.(consp.header-line-f |
| 3dac0 | 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6e 74 68 20 31 | ormat)..............(setf.(nth.1 |
| 3dae0 | 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .header-line-format)............ |
| 3db00 | 20 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 20 20 | ........(thread-first........... |
| 3db20 | 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........msg.................. |
| 3db40 | 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 67 70 74 65 | ....(buttonize.(lambda.(_).(gpte |
| 3db60 | 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--inspect-fsm)))............... |
| 3db80 | 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 27 66 61 63 65 20 66 61 63 65 20 27 6d | .......(propertize.'face.face.'m |
| 3dba0 | 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 20 28 | ouse-face.'highlight)))).......( |
| 3dbc0 | 69 66 20 28 6d 65 6d 62 65 72 20 6d 73 67 20 27 28 22 20 54 79 70 69 6e 67 2e 2e 2e 22 20 22 20 | if.(member.msg.'(".Typing...".". |
| 3dbe0 | 57 61 69 74 69 6e 67 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f | Waiting..."))...........(setq.mo |
| 3dc00 | 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 | de-line-process.(propertize.msg. |
| 3dc20 | 27 66 61 63 65 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d | 'face.face)).........(setq.mode- |
| 3dc40 | 6c 69 6e 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 | line-process...............'(:ev |
| 3dc60 | 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | al.(concat.".".................. |
| 3dc80 | 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e | ......(buttonize.(gptel--model-n |
| 3dca0 | 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ame.gptel-model)................ |
| 3dcc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 | .............(lambda.(&rest._).( |
| 3dce0 | 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | gptel-menu)))))).........(messag |
| 3dd00 | 65 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 29 29 | e.(propertize.msg.'face.face)))) |
| 3dd20 | 0a 20 20 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a | .....(force-mode-line-update))). |
| 3dd40 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | .(declare-function.gptel-context |
| 3dd60 | 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 0c 0a 3b 3b 3b 20 54 | --wrap."gptel-context")....;;;.T |
| 3dd80 | 6f 6f 6c 20 75 73 65 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f | ool.use..(defcustom.gptel-use-to |
| 3dda0 | 6f 6c 73 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 75 73 | ols.t..."Whether.gptel.should.us |
| 3ddc0 | 65 20 74 6f 6f 6c 73 2e 0a 0a 54 6f 6f 6c 73 20 61 72 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 | e.tools...Tools.are.capabilities |
| 3dde0 | 20 70 72 6f 76 69 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 74 68 65 20 4c 4c 4d 20 61 73 20 66 | .provided.by.you.to.the.LLM.as.f |
| 3de00 | 75 6e 63 74 69 6f 6e 73 20 61 6e 0a 4c 4c 4d 20 63 61 6e 20 63 68 6f 6f 73 65 20 74 6f 20 63 61 | unctions.an.LLM.can.choose.to.ca |
| 3de20 | 6c 6c 2e 20 20 67 70 74 65 6c 20 72 75 6e 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c | ll...gptel.runs.the.function.cal |
| 3de40 | 6c 20 6f 6e 20 79 6f 75 72 0a 6d 61 63 68 69 6e 65 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 2c | l.on.your.machine...If.set.to.t, |
| 3de60 | 20 61 6e 79 20 74 6f 6f 6c 73 20 73 65 6c 65 63 74 65 64 20 69 6e 20 60 67 70 74 65 6c 2d 74 6f | .any.tools.selected.in.`gptel-to |
| 3de80 | 6f 6c 73 27 20 77 69 6c 6c 20 62 65 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 | ols'.will.be.made.available.to.t |
| 3dea0 | 68 65 20 4c 4c 4d 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 20 20 49 | he.LLM...This.is.the.default...I |
| 3dec0 | 74 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 66 0a 6e 6f 20 74 6f 6f 6c 73 20 61 72 65 20 | t.has.no.effect.if.no.tools.are. |
| 3dee0 | 73 65 6c 65 63 74 65 64 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 66 6f 72 63 65 2c 20 67 70 74 65 | selected...If.set.to.force,.gpte |
| 3df00 | 6c 20 77 69 6c 6c 20 74 72 79 20 74 6f 20 66 6f 72 63 65 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 | l.will.try.to.force.the.LLM.to.c |
| 3df20 | 61 6c 6c 20 6f 6e 65 20 6f 72 0a 6d 6f 72 65 20 6f 66 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 | all.one.or.more.of.the.provided. |
| 3df40 | 74 6f 6f 6c 73 2e 20 20 53 75 70 70 6f 72 74 20 66 6f 72 20 74 68 69 73 20 66 65 61 74 75 72 65 | tools...Support.for.this.feature |
| 3df60 | 20 64 65 70 65 6e 64 73 20 6f 6e 0a 74 68 65 20 62 61 63 6b 65 6e 64 2f 41 50 49 2c 20 61 6e 64 | .depends.on.the.backend/API,.and |
| 3df80 | 20 67 70 74 65 6c 20 77 69 6c 6c 20 66 61 6c 6c 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64 65 66 | .gptel.will.fall.back.to.the.def |
| 3dfa0 | 61 75 6c 74 20 62 65 68 61 76 69 6f 72 0a 77 68 65 6e 20 66 6f 72 63 69 6e 67 20 74 6f 6f 6c 20 | ault.behavior.when.forcing.tool. |
| 3dfc0 | 75 73 65 20 69 73 20 75 6e 73 75 70 70 6f 72 74 65 64 2e 0a 0a 49 66 20 6e 69 6c 2c 20 74 6f 6f | use.is.unsupported...If.nil,.too |
| 3dfe0 | 6c 20 75 73 65 20 69 73 20 74 75 72 6e 65 64 20 6f 66 66 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 | l.use.is.turned.off."...:type.'( |
| 3e000 | 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 45 6e | choice...........(const.:tag."En |
| 3e020 | 61 62 6c 65 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 | able".t)...........(const.:tag." |
| 3e040 | 46 6f 72 63 65 20 74 6f 6f 6c 20 75 73 65 22 20 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 | Force.tool.use".force).......... |
| 3e060 | 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 54 75 72 6e 20 4f 66 66 22 20 6e 69 6c 29 29 29 0a 0a | .(const.:tag."Turn.Off".nil))).. |
| 3e080 | 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 | (defcustom.gptel-confirm-tool-ca |
| 3e0a0 | 6c 6c 73 20 27 61 75 74 6f 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 | lls.'auto..."Whether.tool.calls. |
| 3e0c0 | 73 68 6f 75 6c 64 20 77 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 20 | should.wait.for.the.user.to.run. |
| 3e0e0 | 74 68 65 6d 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 20 6f 72 20 6e 69 6c 2c 20 74 6f 6f 6c 20 | them...If.set.to.t.or.nil,.tool. |
| 3e100 | 63 61 6c 6c 73 20 61 6c 77 61 79 73 20 6f 72 20 6e 65 76 65 72 20 73 65 65 6b 20 63 6f 6e 66 69 | calls.always.or.never.seek.confi |
| 3e120 | 72 6d 61 74 69 6f 6e 0a 66 72 6f 6d 20 74 68 65 20 75 73 65 72 20 62 65 66 6f 72 65 20 72 75 6e | rmation.from.the.user.before.run |
| 3e140 | 6e 69 6e 67 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 75 74 6f | ning...If.set.to.the.symbol.auto |
| 3e160 | 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 77 69 6c 6c | .(the.default),.a.tool.call.will |
| 3e180 | 20 73 65 65 6b 0a 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 | .seek.confirmation.only.when.the |
| 3e1a0 | 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 6f 6c 20 73 70 65 63 20 68 61 73 20 61 20 6e | .corresponding.tool.spec.has.a.n |
| 3e1c0 | 6f 6e 2d 6e 69 6c 0a 3a 63 6f 6e 66 69 72 6d 20 73 6c 6f 74 2e 20 20 53 65 65 20 60 67 70 74 65 | on-nil.:confirm.slot...See.`gpte |
| 3e1e0 | 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a | l-make-tool'."...:type.'(choice. |
| 3e200 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 54 6f 6f 6c 20 64 65 63 69 | ..........(const.:tag."Tool.deci |
| 3e220 | 64 65 73 22 20 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 | des".auto)...........(const.:tag |
| 3e240 | 20 22 41 6c 77 61 79 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 | ."Always".t)...........(const.:t |
| 3e260 | 61 67 20 22 4e 65 76 65 72 22 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 | ag."Never".nil)))..(defcustom.gp |
| 3e280 | 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 27 61 75 74 6f 0a 20 | tel-include-tool-results.'auto.. |
| 3e2a0 | 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 | ."Whether.tool.call.results.shou |
| 3e2c0 | 6c 64 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 | ld.be.included.in.the.buffer...I |
| 3e2e0 | 66 20 73 65 74 20 74 6f 20 74 20 6f 72 20 6e 69 6c 2c 20 72 65 73 75 6c 74 73 20 6f 66 20 74 6f | f.set.to.t.or.nil,.results.of.to |
| 3e300 | 6f 6c 20 63 61 6c 6c 73 20 61 72 65 20 61 6c 77 61 79 73 20 6f 72 20 6e 65 76 65 72 0a 69 6e 63 | ol.calls.are.always.or.never.inc |
| 3e320 | 6c 75 64 65 64 20 69 6e 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2c 20 72 65 73 70 65 | luded.in.the.LLM.response,.respe |
| 3e340 | 63 74 69 76 65 6c 79 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 | ctively...If.set.to.the.symbol.a |
| 3e360 | 75 74 6f 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 | uto.(the.default),.a.tool.call.r |
| 3e380 | 65 73 75 6c 74 20 69 73 0a 69 6e 63 6c 75 64 65 64 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 | esult.is.included.only.when.the. |
| 3e3a0 | 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 6f 6c 20 73 70 65 63 20 68 61 73 20 61 20 6e 6f | corresponding.tool.spec.has.a.no |
| 3e3c0 | 6e 2d 6e 69 6c 0a 3a 69 6e 63 6c 75 64 65 20 73 6c 6f 74 2e 20 20 53 65 65 20 60 67 70 74 65 6c | n-nil.:include.slot...See.`gptel |
| 3e3e0 | 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 | -make-tool'."...:type.'(choice.. |
| 3e400 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 54 6f 6f 6c 20 64 65 63 69 64 | .........(const.:tag."Tool.decid |
| 3e420 | 65 73 22 20 61 75 74 6f 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | es".auto)...........(const.:tag. |
| 3e440 | 22 41 6c 77 61 79 73 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 | "Always".t)...........(const.:ta |
| 3e460 | 67 20 22 4e 65 76 65 72 22 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 | g."Never".nil)))..(defcustom.gpt |
| 3e480 | 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 74 6f 6f 6c 73 20 | el-tools.nil..."A.list.of.tools. |
| 3e4a0 | 74 6f 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e 0a | to.include.with.gptel.requests.. |
| 3e4c0 | 0a 45 61 63 68 20 74 6f 6f 6c 20 73 68 6f 75 6c 64 20 62 65 20 61 20 60 67 70 74 65 6c 2d 74 6f | .Each.tool.should.be.a.`gptel-to |
| 3e4e0 | 6f 6c 27 20 73 74 72 75 63 74 2c 20 77 68 69 63 68 20 73 65 65 2e 20 20 54 6f 20 73 70 65 63 69 | ol'.struct,.which.see...To.speci |
| 3e500 | 66 79 0a 61 20 74 6f 6f 6c 2c 20 75 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 | fy.a.tool,.use.`gptel-make-tool' |
| 3e520 | 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 | ,.which.see."...:group.'gptel... |
| 3e540 | 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 0a 0a 28 63 6c | :type.'(repeat.gptel-tool))..(cl |
| 3e560 | 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 20 28 3a 63 6f 6e 73 74 72 75 | -defstruct.(gptel-tool.(:constru |
| 3e580 | 63 74 6f 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ctor.nil)....................... |
| 3e5a0 | 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f | ....(:constructor.gptel--make-to |
| 3e5c0 | 6f 6c 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol-internal..................... |
| 3e5e0 | 20 20 20 20 20 20 20 28 26 6b 65 79 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 64 65 73 63 72 | .......(&key.function.name.descr |
| 3e600 | 69 70 74 69 6f 6e 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | iption.args..................... |
| 3e620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 61 73 79 6e 63 20 63 61 74 65 67 6f 72 79 20 63 6f 6e 66 | .............async.category.conf |
| 3e640 | 69 72 6d 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | irm.include..................... |
| 3e660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 29 | .............&allow-other-keys)) |
| 3e680 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 | ...........................(:cop |
| 3e6a0 | 69 65 72 20 67 70 74 65 6c 2d 2d 63 6f 70 79 2d 74 6f 6f 6c 29 29 0a 20 20 22 53 74 72 75 63 74 | ier.gptel--copy-tool))..."Struct |
| 3e6c0 | 20 74 6f 20 73 70 65 63 69 66 79 20 74 6f 6f 6c 73 20 66 6f 72 20 4c 4c 4d 73 20 74 6f 20 72 75 | .to.specify.tools.for.LLMs.to.ru |
| 3e6e0 | 6e 2e 0a 0a 41 20 74 6f 6f 6c 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 | n...A.tool.is.a.function.specifi |
| 3e700 | 63 61 74 69 6f 6e 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d 20 61 6c 6f 6e 67 20 77 69 74 | cation.sent.to.the.LLM.along.wit |
| 3e720 | 68 0a 61 20 28 70 6c 61 69 6e 20 6c 61 6e 67 75 61 67 65 29 20 74 61 73 6b 2e 20 20 49 66 20 74 | h.a.(plain.language).task...If.t |
| 3e740 | 68 65 20 4c 4c 4d 20 64 65 63 69 64 65 73 20 74 6f 20 75 73 65 20 74 68 65 20 74 6f 6f 6c 20 74 | he.LLM.decides.to.use.the.tool.t |
| 3e760 | 6f 0a 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 65 20 74 61 73 6b 2c 20 67 70 74 65 6c 20 77 69 6c | o.accomplish.the.task,.gptel.wil |
| 3e780 | 6c 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 20 61 6e 64 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 0a | l.run.the.tool.and.(optionally). |
| 3e7a0 | 66 65 65 64 20 74 68 65 20 4c 4c 4d 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 59 6f 75 20 63 | feed.the.LLM.the.results...You.c |
| 3e7c0 | 61 6e 20 61 64 64 20 74 6f 6f 6c 73 20 76 69 61 0a 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f | an.add.tools.via.`gptel-make-too |
| 3e7e0 | 6c 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 20 | l',.which.see."...(function.nil. |
| 3e800 | 3a 74 79 70 65 20 66 75 6e 63 74 69 6f 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 46 | :type.function.:documentation."F |
| 3e820 | 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 75 6e 73 20 74 68 65 20 74 6f 6f 6c 22 29 0a 20 20 28 | unction.that.runs.the.tool")...( |
| 3e840 | 6e 61 6d 65 20 6e 69 6c 20 3a 74 79 70 65 20 73 74 72 69 6e 67 20 3a 64 6f 63 75 6d 65 6e 74 61 | name.nil.:type.string.:documenta |
| 3e860 | 74 69 6f 6e 20 22 54 6f 6f 6c 20 6e 61 6d 65 2c 20 73 6e 61 6b 65 5f 63 61 73 65 20 72 65 63 6f | tion."Tool.name,.snake_case.reco |
| 3e880 | 6d 6d 65 6e 64 65 64 22 29 0a 20 20 28 64 65 73 63 72 69 70 74 69 6f 6e 20 6e 69 6c 20 3a 74 79 | mmended")...(description.nil.:ty |
| 3e8a0 | 70 65 20 73 74 72 69 6e 67 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 57 68 61 74 20 74 | pe.string.:documentation."What.t |
| 3e8c0 | 68 65 20 74 6f 6f 6c 20 64 6f 65 73 2c 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 74 68 65 20 4c | he.tool.does,.intended.for.the.L |
| 3e8e0 | 4c 4d 22 29 0a 20 20 28 61 72 67 73 20 6e 69 6c 20 3a 74 79 70 65 20 6c 69 73 74 20 3a 64 6f 63 | LM")...(args.nil.:type.list.:doc |
| 3e900 | 75 6d 65 6e 74 61 74 69 6f 6e 20 22 4c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 73 70 65 63 69 | umentation."List.of.plists.speci |
| 3e920 | 66 79 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 22 29 0a 20 20 28 61 73 | fying.function.arguments")...(as |
| 3e940 | 79 6e 63 20 6e 69 6c 20 3a 74 79 70 65 20 62 6f 6f 6c 65 61 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 | ync.nil.:type.boolean.:documenta |
| 3e960 | 74 69 6f 6e 20 22 57 68 65 74 68 65 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 73 20 | tion."Whether.the.function.runs. |
| 3e980 | 61 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 22 29 0a 20 20 28 63 61 74 65 67 6f 72 79 20 6e 69 6c | asynchronously")...(category.nil |
| 3e9a0 | 20 3a 74 79 70 65 20 73 74 72 69 6e 67 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 55 73 | .:type.string.:documentation."Us |
| 3e9c0 | 65 20 74 6f 20 67 72 6f 75 70 20 74 6f 6f 6c 73 20 62 79 20 70 75 72 70 6f 73 65 22 29 0a 20 20 | e.to.group.tools.by.purpose")... |
| 3e9e0 | 28 63 6f 6e 66 69 72 6d 20 6e 69 6c 20 3a 74 79 70 65 20 62 6f 6f 6c 65 61 6e 20 3a 64 6f 63 75 | (confirm.nil.:type.boolean.:docu |
| 3ea00 | 6d 65 6e 74 61 74 69 6f 6e 20 22 53 65 65 6b 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 62 65 66 | mentation."Seek.confirmation.bef |
| 3ea20 | 6f 72 65 20 72 75 6e 6e 69 6e 67 20 74 6f 6f 6c 3f 22 29 0a 20 20 28 69 6e 63 6c 75 64 65 20 6e | ore.running.tool?")...(include.n |
| 3ea40 | 69 6c 20 3a 74 79 70 65 20 62 6f 6f 6c 65 61 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 | il.:type.boolean.:documentation. |
| 3ea60 | 22 49 6e 63 6c 75 64 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 62 75 66 66 65 72 3f | "Include.tool.results.in.buffer? |
| 3ea80 | 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 74 6f | "))..(defun.gptel--preprocess-to |
| 3eaa0 | 6f 6c 2d 61 72 67 73 20 28 73 70 65 63 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 79 6d 62 6f 6c | ol-args.(spec)..."Convert.symbol |
| 3eac0 | 20 3a 74 79 70 65 20 76 61 6c 75 65 73 20 69 6e 20 74 6f 6f 6c 20 53 50 45 43 20 74 6f 20 73 74 | .:type.values.in.tool.SPEC.to.st |
| 3eae0 | 72 69 6e 67 73 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 2e 22 0a 20 20 3b 3b 20 4e 4f 54 45 3a | rings.destructively."...;;.NOTE: |
| 3eb00 | 20 44 6f 20 6e 6f 74 20 75 73 65 20 60 73 65 71 75 65 6e 63 65 70 27 20 68 65 72 65 2c 20 61 73 | .Do.not.use.`sequencep'.here,.as |
| 3eb20 | 20 74 68 61 74 20 63 6f 76 65 72 73 20 73 74 72 69 6e 67 73 20 74 6f 6f 20 61 6e 64 20 62 72 65 | .that.covers.strings.too.and.bre |
| 3eb40 | 61 6b 73 0a 20 20 3b 3b 20 74 68 69 6e 67 73 2e 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 | aks...;;.things....(when.(or.(li |
| 3eb60 | 73 74 70 20 73 70 65 63 29 20 28 76 65 63 74 6f 72 70 20 73 70 65 63 29 29 0a 20 20 20 20 28 63 | stp.spec).(vectorp.spec)).....(c |
| 3eb80 | 6f 6e 64 0a 20 20 20 20 20 28 28 76 65 63 74 6f 72 70 20 73 70 65 63 29 0a 20 20 20 20 20 20 28 | ond......((vectorp.spec).......( |
| 3eba0 | 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 65 6c 65 6d 65 6e 74 20 61 63 72 6f 73 73 20 73 70 65 63 0a | cl-loop.for.element.across.spec. |
| 3ebc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 30 0a | ...............for.idx.upfrom.0. |
| 3ebe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 61 73 65 74 20 73 70 65 63 20 69 64 78 | ...............do.(aset.spec.idx |
| 3ec00 | 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 61 72 67 73 20 65 6c | .(gptel--preprocess-tool-args.el |
| 3ec20 | 65 6d 65 6e 74 29 29 29 29 0a 20 20 20 20 20 28 28 6b 65 79 77 6f 72 64 70 20 28 63 61 72 20 73 | ement))))......((keywordp.(car.s |
| 3ec40 | 70 65 63 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 61 69 6c 20 73 70 65 63 29 29 0a 20 | pec)).......(let.((tail.spec)).. |
| 3ec60 | 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 74 61 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 | .......(while.tail...........(wh |
| 3ec80 | 65 6e 20 28 61 6e 64 20 28 65 71 20 28 63 61 72 20 74 61 69 6c 29 20 3a 74 79 70 65 29 20 28 73 | en.(and.(eq.(car.tail).:type).(s |
| 3eca0 | 79 6d 62 6f 6c 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ymbolp.(cadr.tail)))............ |
| 3ecc0 | 20 28 73 65 74 63 61 72 20 28 63 64 72 20 74 61 69 6c 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 | .(setcar.(cdr.tail).(symbol-name |
| 3ece0 | 20 28 63 61 64 72 20 74 61 69 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 | .(cadr.tail))))...........;;.TOD |
| 3ed00 | 4f 3a 20 48 61 6e 64 6c 65 20 3a 65 6e 75 6d 20 28 22 70 72 6f 76 69 64 65 64 22 20 22 61 73 22 | O:.Handle.:enum.("provided"."as" |
| 3ed20 | 20 22 6c 69 73 74 22 29 20 68 65 72 65 2c 20 63 6f 6e 76 65 72 74 20 74 6f 0a 20 20 20 20 20 20 | ."list").here,.convert.to....... |
| 3ed40 | 20 20 20 20 3b 3b 20 3a 65 6e 75 6d 20 5b 22 70 72 6f 76 69 64 65 64 22 20 22 61 73 22 20 22 61 | ....;;.:enum.["provided"."as"."a |
| 3ed60 | 72 72 61 79 22 5d 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 73 74 | rray"]...........(when.(or.(list |
| 3ed80 | 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 20 28 76 65 63 74 6f 72 70 20 28 63 61 64 72 20 74 61 | p.(cadr.tail)).(vectorp.(cadr.ta |
| 3eda0 | 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f | il))).............(gptel--prepro |
| 3edc0 | 63 65 73 73 2d 74 6f 6f 6c 2d 61 72 67 73 20 28 63 61 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 | cess-tool-args.(cadr.tail))).... |
| 3ede0 | 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 69 6c 20 28 63 64 64 72 20 74 61 69 6c 29 29 29 29 | .......(setq.tail.(cddr.tail)))) |
| 3ee00 | 29 0a 20 20 20 20 20 28 28 6c 69 73 74 70 20 73 70 65 63 29 20 28 64 6f 6c 69 73 74 20 28 65 6c | )......((listp.spec).(dolist.(el |
| 3ee20 | 65 6d 65 6e 74 20 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ement.spec)..................... |
| 3ee40 | 20 28 77 68 65 6e 20 28 6c 69 73 74 70 20 65 6c 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 | .(when.(listp.element).......... |
| 3ee60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 | ..............(gptel--preprocess |
| 3ee80 | 2d 74 6f 6f 6c 2d 61 72 67 73 20 65 6c 65 6d 65 6e 74 29 29 29 29 29 29 0a 20 20 73 70 65 63 29 | -tool-args.element))))))...spec) |
| 3eea0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 28 26 72 65 73 74 | ..(defun.gptel--make-tool.(&rest |
| 3eec0 | 20 73 70 65 63 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 61 20 67 70 74 65 6c 2d 74 6f 6f 6c | .spec)..."Construct.a.gptel-tool |
| 3eee0 | 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 53 50 45 43 2e 22 0a 20 20 28 67 70 74 65 6c 2d 2d 70 | .according.to.SPEC."...(gptel--p |
| 3ef00 | 72 65 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 73 | reprocess-tool-args.(plist-get.s |
| 3ef20 | 70 65 63 20 3a 61 72 67 73 29 29 0a 20 20 28 61 70 70 6c 79 20 23 27 67 70 74 65 6c 2d 2d 6d 61 | pec.:args))...(apply.#'gptel--ma |
| 3ef40 | 6b 65 2d 74 6f 6f 6c 2d 69 6e 74 65 72 6e 61 6c 20 73 70 65 63 29 29 0a 0a 28 64 65 66 76 61 72 | ke-tool-internal.spec))..(defvar |
| 3ef60 | 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 | .gptel--known-tools.nil..."Alist |
| 3ef80 | 20 6f 66 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 61 72 72 61 6e 67 65 64 20 62 79 20 63 61 74 65 | .of.gptel.tools.arranged.by.cate |
| 3efa0 | 67 6f 72 79 2e 0a 0a 41 20 5c 22 74 6f 6f 6c 5c 22 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 | gory...A.\"tool\".is.a.function. |
| 3efc0 | 73 70 65 63 20 28 64 65 66 69 6e 69 74 69 6f 6e 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e | spec.(definition.and.description |
| 3efe0 | 29 0a 70 72 6f 76 69 64 65 64 20 62 79 20 67 70 74 65 6c 20 74 6f 20 61 6e 20 4c 4c 4d 2e 20 20 | ).provided.by.gptel.to.an.LLM... |
| 3f000 | 53 65 65 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 2e 20 20 45 61 63 68 20 74 6f 6f 6c 20 69 73 0a | See.`gptel-tool'...Each.tool.is. |
| 3f020 | 61 73 73 69 67 6e 65 64 20 61 20 63 61 74 65 67 6f 72 79 20 77 68 65 6e 20 69 74 20 69 73 20 63 | assigned.a.category.when.it.is.c |
| 3f040 | 72 65 61 74 65 64 2c 20 77 69 74 68 20 61 20 63 61 74 65 67 6f 72 79 20 6f 66 0a 5c 22 6d 69 73 | reated,.with.a.category.of.\"mis |
| 3f060 | 63 5c 22 20 69 66 20 6e 6f 6e 65 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 | c\".if.none.is.specified...This. |
| 3f080 | 69 73 20 61 20 74 77 6f 2d 6c 65 76 65 6c 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 63 61 74 | is.a.two-level.alist.mapping.cat |
| 3f0a0 | 65 67 6f 72 69 65 73 20 61 6e 64 20 74 6f 6f 6c 20 6e 61 6d 65 73 20 74 6f 0a 74 68 65 20 74 6f | egories.and.tool.names.to.the.to |
| 3f0c0 | 6f 6c 20 69 74 73 65 6c 66 2e 20 20 49 74 20 69 73 20 75 73 65 64 20 61 73 20 61 20 67 6c 6f 62 | ol.itself...It.is.used.as.a.glob |
| 3f0e0 | 61 6c 20 72 65 67 69 73 74 65 72 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 0a 74 6f 6f 6c 73 20 61 | al.register.of.available.tools.a |
| 3f100 | 6e 64 20 69 6e 20 67 70 74 65 6c 27 73 20 55 49 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 74 6f 6f | nd.in.gptel's.UI,.see.`gptel-too |
| 3f120 | 6c 73 27 2e 0a 0a 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 73 74 72 75 63 74 75 72 65 2c | ls'...In.this.example.structure, |
| 3f140 | 20 63 61 74 2d 74 6f 6f 6c 20 61 6e 64 20 74 68 65 20 72 65 73 74 20 61 72 65 20 63 6c 2d 73 74 | .cat-tool.and.the.rest.are.cl-st |
| 3f160 | 72 75 63 74 73 0a 6f 66 20 74 79 70 65 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 3a 0a 0a 20 20 20 | ructs.of.type.`gptel-tool':..... |
| 3f180 | 43 41 54 45 47 4f 52 59 20 20 20 20 20 20 20 20 20 54 4f 4f 4c 20 4e 41 4d 45 20 20 20 20 20 20 | CATEGORY.........TOOL.NAME...... |
| 3f1a0 | 20 20 20 20 54 4f 4f 4c 0a 20 28 28 5c 22 66 69 6c 65 73 79 73 74 65 6d 5c 22 20 2e 20 28 28 5c | ....TOOL..((\"filesystem\"...((\ |
| 3f1c0 | 22 72 65 61 64 5f 66 69 6c 65 5c 22 20 20 20 20 20 20 2e 20 63 61 74 2d 74 6f 6f 6c 29 0a 20 20 | "read_file\"........cat-tool)... |
| 3f1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5c 22 6c 69 73 74 5f 64 69 72 65 63 74 6f | .................(\"list_directo |
| 3f200 | 72 79 5c 22 20 2e 20 6c 73 2d 74 6f 6f 6c 29 29 29 0a 20 20 28 5c 22 65 6d 61 63 73 5c 22 20 20 | ry\"...ls-tool)))...(\"emacs\".. |
| 3f220 | 20 20 20 20 2e 20 28 28 5c 22 72 65 61 64 5f 62 75 66 66 65 72 5c 22 20 20 20 20 2e 20 62 75 66 | ......((\"read_buffer\"......buf |
| 3f240 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | fer-substring-tool)............. |
| 3f260 | 20 20 20 20 20 20 20 28 5c 22 73 65 6e 64 5f 6d 65 73 73 61 67 65 5c 22 20 20 20 2e 20 6d 65 73 | .......(\"send_message\".....mes |
| 3f280 | 73 61 67 65 2d 74 6f 6f 6c 29 29 29 29 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 | sage-tool))))..This.variable.is. |
| 3f2a0 | 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 20 6f 6e 6c 79 2c 20 74 6f 20 64 65 66 69 6e 65 | for.internal.use.only,.to.define |
| 3f2c0 | 20 61 20 74 6f 6f 6c 20 75 73 65 0a 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2e 22 29 | .a.tool.use.`gptel-make-tool'.") |
| 3f2e0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 28 70 61 74 68 29 0a 20 | ..(defun.gptel-get-tool.(path).. |
| 3f300 | 20 22 46 69 6e 64 20 74 6f 6f 6c 20 69 6e 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 72 65 67 69 | ."Find.tool.in.gptel's.tool.regi |
| 3f320 | 73 74 72 79 20 61 74 20 50 41 54 48 2e 0a 0a 50 41 54 48 20 63 61 6e 20 62 65 20 73 70 65 63 69 | stry.at.PATH...PATH.can.be.speci |
| 3f340 | 66 69 65 64 0a 2d 20 61 73 20 61 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 | fied.-.as.a.string.representing. |
| 3f360 | 74 68 65 20 74 6f 6f 6c 20 6e 61 6d 65 2c 20 6c 69 6b 65 20 5c 22 73 65 61 72 63 68 5f 64 62 5c | the.tool.name,.like.\"search_db\ |
| 3f380 | 22 2c 0a 2d 20 6f 72 20 61 73 20 61 20 6c 69 73 74 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 | ",.-.or.as.a.list.representing.a |
| 3f3a0 | 20 63 61 74 65 67 6f 72 79 20 61 6e 64 20 74 6f 6f 6c 20 6e 61 6d 65 2c 0a 20 20 6c 69 6b 65 20 | .category.and.tool.name,...like. |
| 3f3c0 | 5c 5c 3d 27 28 5c 22 65 6d 61 63 73 5c 22 20 5c 22 72 65 61 64 5f 62 75 66 66 65 72 5c 22 29 2e | \\='(\"emacs\".\"read_buffer\"). |
| 3f3e0 | 0a 49 6e 20 62 6f 74 68 20 63 61 73 65 73 2c 20 74 68 65 20 66 69 72 73 74 20 6d 61 74 63 68 69 | .In.both.cases,.the.first.matchi |
| 3f400 | 6e 67 20 67 70 74 65 6c 2d 74 6f 6f 6c 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 0a 2d 20 61 73 | ng.gptel-tool.is.returned...-.as |
| 3f420 | 20 61 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 63 61 74 65 67 6f 72 | .a.string.representing.a.categor |
| 3f440 | 79 2c 20 6c 69 6b 65 20 5c 22 66 69 6c 65 73 79 73 74 65 6d 5c 22 2e 0a 49 6e 20 74 68 69 73 20 | y,.like.\"filesystem\"..In.this. |
| 3f460 | 63 61 73 65 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 77 | case.a.list.of.all.gptel-tools.w |
| 3f480 | 69 74 68 20 74 68 69 73 20 63 61 74 65 67 6f 72 79 20 69 73 0a 72 65 74 75 72 6e 65 64 2e 22 0a | ith.this.category.is.returned.". |
| 3f4a0 | 20 20 28 6f 72 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 70 61 74 68 0a 20 20 20 20 20 20 20 | ..(or.(cl-etypecase.path........ |
| 3f4c0 | 20 28 63 6f 6e 73 20 28 6c 65 74 20 28 28 74 63 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 | .(cons.(let.((tc.(map-nested-elt |
| 3f4e0 | 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 | .gptel--known-tools.path)))..... |
| 3f500 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 74 63 29 20 28 6d 61 70 2d | ............(if.(consp.tc).(map- |
| 3f520 | 76 61 6c 75 65 73 20 74 63 29 20 74 63 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 | values.tc).tc))).........(string |
| 3f540 | 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 61 74 65 67 6f 72 79 20 28 61 73 73 6f 63 20 70 61 74 68 | .(if-let*.((category.(assoc.path |
| 3f560 | 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 | .gptel--known-tools))).......... |
| 3f580 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 76 61 6c 75 65 73 20 28 63 64 72 20 63 61 74 65 | ...........(map-values.(cdr.cate |
| 3f5a0 | 67 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f | gory))...................(cl-loo |
| 3f5c0 | 70 20 66 6f 72 20 28 5f 20 2e 20 74 6f 6f 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 | p.for.(_...tools).in.gptel--know |
| 3f5e0 | 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-tools......................... |
| 3f600 | 20 20 20 69 66 20 28 61 73 73 6f 63 20 70 61 74 68 20 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 | ...if.(assoc.path.tools)........ |
| 3f620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 63 64 72 20 | ....................return.(cdr. |
| 3f640 | 69 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 6f 6f 6c 20 6d 61 | it))))).......(error."No.tool.ma |
| 3f660 | 74 63 68 65 73 20 66 6f 72 20 25 53 22 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | tches.for.%S".path)))..(defun.gp |
| 3f680 | 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 28 26 72 65 73 74 20 73 6c 6f 74 73 29 0a 20 20 22 4d | tel-make-tool.(&rest.slots)..."M |
| 3f6a0 | 61 6b 65 20 61 20 67 70 74 65 6c 20 74 6f 6f 6c 20 66 6f 72 20 4c 4c 4d 20 75 73 65 2e 0a 0a 54 | ake.a.gptel.tool.for.LLM.use...T |
| 3f6c0 | 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 20 61 | he.following.keyword.arguments.a |
| 3f6e0 | 72 65 20 61 76 61 69 6c 61 62 6c 65 2c 20 6f 66 20 77 68 69 63 68 20 74 68 65 20 66 69 72 73 74 | re.available,.of.which.the.first |
| 3f700 | 0a 66 6f 75 72 20 61 72 65 20 72 65 71 75 69 72 65 64 2e 0a 0a 4e 41 4d 45 3a 20 54 68 65 20 6e | .four.are.required...NAME:.The.n |
| 3f720 | 61 6d 65 20 6f 66 20 74 68 65 20 74 6f 6f 6c 2c 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 | ame.of.the.tool,.recommended.to. |
| 3f740 | 62 65 20 69 6e 20 4a 61 76 61 73 63 72 69 70 74 20 73 74 79 6c 65 20 73 6e 61 6b 65 5f 63 61 73 | be.in.Javascript.style.snake_cas |
| 3f760 | 65 2e 0a 0a 46 55 4e 43 54 49 4f 4e 3a 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 74 73 65 6c | e...FUNCTION:.The.function.itsel |
| 3f780 | 66 20 28 6c 61 6d 62 64 61 20 6f 72 20 73 79 6d 62 6f 6c 29 20 74 68 61 74 20 72 75 6e 73 20 74 | f.(lambda.or.symbol).that.runs.t |
| 3f7a0 | 68 65 20 74 6f 6f 6c 2e 0a 0a 44 45 53 43 52 49 50 54 49 4f 4e 3a 20 41 20 76 65 72 62 6f 73 65 | he.tool...DESCRIPTION:.A.verbose |
| 3f7c0 | 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 74 68 65 20 74 6f 6f 6c 20 64 6f | .description.of.what.the.tool.do |
| 3f7e0 | 65 73 2c 20 68 6f 77 20 74 6f 0a 63 61 6c 6c 20 69 74 20 61 6e 64 20 77 68 61 74 20 69 74 20 72 | es,.how.to.call.it.and.what.it.r |
| 3f800 | 65 74 75 72 6e 73 2e 0a 0a 41 52 47 53 3a 20 41 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 | eturns...ARGS:.A.list.of.plists. |
| 3f820 | 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 6f 72 20 6e 69 6c | specifying.the.arguments,.or.nil |
| 3f840 | 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 74 61 6b 65 73 20 6e 6f 20 61 72 | .for.a.function.that.takes.no.ar |
| 3f860 | 67 75 6d 65 6e 74 73 2e 20 20 45 61 63 68 20 70 6c 69 73 74 20 69 6e 20 41 52 47 53 20 72 65 71 | guments...Each.plist.in.ARGS.req |
| 3f880 | 75 69 72 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 2d 20 61 72 67 75 | uires.the.following.keys:.-.argu |
| 3f8a0 | 6d 65 6e 74 20 3a 6e 61 6d 65 20 61 6e 64 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 61 73 20 | ment.:name.and.:description,.as. |
| 3f8c0 | 73 74 72 69 6e 67 73 2e 0a 2d 20 61 72 67 75 6d 65 6e 74 20 3a 74 79 70 65 2c 20 61 73 20 61 20 | strings..-.argument.:type,.as.a. |
| 3f8e0 | 73 79 6d 62 6f 6c 2e 20 20 41 6c 6c 6f 77 65 64 20 74 79 70 65 73 20 61 72 65 20 74 68 6f 73 65 | symbol...Allowed.types.are.those |
| 3f900 | 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 74 68 65 20 4a 53 4f 4e 0a 20 20 73 63 68 65 6d 61 | .understood.by.the.JSON...schema |
| 3f920 | 3a 20 73 74 72 69 6e 67 2c 20 6e 75 6d 62 65 72 2c 20 69 6e 74 65 67 65 72 2c 20 62 6f 6f 6c 65 | :.string,.number,.integer,.boole |
| 3f940 | 61 6e 2c 20 61 72 72 61 79 2c 20 6f 62 6a 65 63 74 20 6f 72 20 6e 75 6c 6c 0a 0a 54 68 65 20 66 | an,.array,.object.or.null..The.f |
| 3f960 | 6f 6c 6c 6f 77 69 6e 67 20 70 6c 69 73 74 20 6b 65 79 73 20 61 72 65 20 63 6f 6e 64 69 74 69 6f | ollowing.plist.keys.are.conditio |
| 3f980 | 6e 61 6c 2f 6f 70 74 69 6f 6e 61 6c 3a 0a 2d 20 3a 6f 70 74 69 6f 6e 61 6c 2c 20 62 6f 6f 6c 65 | nal/optional:.-.:optional,.boole |
| 3f9a0 | 61 6e 20 69 6e 64 69 63 61 74 69 6e 67 20 69 66 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6f 70 74 | an.indicating.if.argument.is.opt |
| 3f9c0 | 69 6f 6e 61 6c 0a 2d 20 3a 65 6e 75 6d 20 66 6f 72 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 | ional.-.:enum.for.enumerated.typ |
| 3f9e0 | 65 73 2c 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 73 | es,.whose.value.is.a.vector.of.s |
| 3fa00 | 74 72 69 6e 67 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67 0a 20 20 61 6c 6c 6f 77 65 64 20 76 61 | trings.representing...allowed.va |
| 3fa20 | 6c 75 65 73 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 3a 74 79 70 65 20 69 73 20 73 74 69 6c 6c 20 | lues...Note.that.:type.is.still. |
| 3fa40 | 72 65 71 75 69 72 65 64 20 66 6f 72 20 65 6e 75 6d 73 2e 0a 2d 20 3a 69 74 65 6d 73 2c 20 69 66 | required.for.enums..-.:items,.if |
| 3fa60 | 20 74 68 65 20 3a 74 79 70 65 20 69 73 20 61 72 72 61 79 2e 20 20 49 74 73 20 76 61 6c 75 65 20 | .the.:type.is.array...Its.value. |
| 3fa80 | 6d 75 73 74 20 62 65 20 61 20 70 6c 69 73 74 20 69 6e 63 6c 75 64 69 6e 67 20 61 74 20 6c 65 61 | must.be.a.plist.including.at.lea |
| 3faa0 | 73 74 0a 20 20 74 68 65 20 69 74 65 6d 27 73 20 3a 74 79 70 65 2e 0a 2d 20 3a 70 72 6f 70 65 72 | st...the.item's.:type..-.:proper |
| 3fac0 | 74 69 65 73 2c 20 69 66 20 74 68 65 20 74 79 70 65 20 69 73 20 6f 62 6a 65 63 74 2e 20 20 49 74 | ties,.if.the.type.is.object...It |
| 3fae0 | 73 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 70 6c 69 73 74 20 74 68 61 74 20 63 61 6e | s.value.must.be.a.plist.that.can |
| 3fb00 | 20 62 65 0a 20 20 73 65 72 69 61 6c 69 7a 65 64 20 69 6e 74 6f 20 61 20 4a 53 4f 4e 20 6f 62 6a | .be...serialized.into.a.JSON.obj |
| 3fb20 | 65 63 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 62 79 20 60 6a 73 6f 6e 2d 73 65 72 69 61 | ect.specification.by.`json-seria |
| 3fb40 | 6c 69 7a 65 27 2e 0a 0a 41 53 59 4e 43 3a 20 62 6f 6f 6c 65 61 6e 20 69 6e 64 69 63 61 74 69 6e | lize'...ASYNC:.boolean.indicatin |
| 3fb60 | 67 20 69 66 20 74 68 65 20 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 73 79 6e 63 | g.if.the.elisp.function.is.async |
| 3fb80 | 68 72 6f 6e 6f 75 73 2e 0a 49 66 20 41 53 59 4e 43 20 69 73 20 74 2c 20 74 68 65 20 66 75 6e 63 | hronous..If.ASYNC.is.t,.the.func |
| 3fba0 | 74 69 6f 6e 20 73 68 6f 75 6c 64 20 74 61 6b 65 20 61 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 69 | tion.should.take.a.callback.as.i |
| 3fbc0 | 74 73 20 66 69 72 73 74 0a 61 72 67 75 6d 65 6e 74 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 | ts.first.argument,.along.with.th |
| 3fbe0 | 65 20 61 72 67 75 6d 65 6e 74 73 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 41 52 47 53 2c 20 61 | e.arguments.specified.in.ARGS,.a |
| 3fc00 | 6e 64 20 72 75 6e 20 74 68 65 0a 63 61 6c 6c 62 61 63 6b 20 77 69 74 68 20 74 68 65 20 74 6f 6f | nd.run.the.callback.with.the.too |
| 3fc20 | 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 20 77 68 65 6e 20 69 74 27 73 20 72 65 61 64 79 2e 20 20 | l.call.result.when.it's.ready... |
| 3fc40 | 54 68 65 20 63 61 6c 6c 62 61 63 6b 0a 69 74 73 65 6c 66 20 69 73 20 61 6e 20 69 6d 70 6c 65 6d | The.callback.itself.is.an.implem |
| 3fc60 | 65 6e 74 61 74 69 6f 6e 20 64 65 74 61 69 6c 20 61 6e 64 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 | entation.detail.and.must.not.be. |
| 3fc80 | 69 6e 63 6c 75 64 65 64 20 69 6e 0a 41 52 47 53 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 | included.in.ARGS...The.following |
| 3fca0 | 20 6b 65 79 73 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 0a 0a 43 41 54 45 47 4f 52 59 3a 20 41 20 | .keys.are.optional..CATEGORY:.A. |
| 3fcc0 | 73 74 72 69 6e 67 20 69 6e 64 69 63 61 74 69 6e 67 20 61 20 63 61 74 65 67 6f 72 79 20 66 6f 72 | string.indicating.a.category.for |
| 3fce0 | 20 74 68 65 20 74 6f 6f 6c 2e 20 20 54 68 69 73 20 69 73 0a 75 73 65 64 20 6f 6e 6c 79 20 66 6f | .the.tool...This.is.used.only.fo |
| 3fd00 | 72 20 67 72 6f 75 70 69 6e 67 20 69 6e 20 67 70 74 65 6c 27 73 20 55 49 2e 20 20 44 65 66 61 75 | r.grouping.in.gptel's.UI...Defau |
| 3fd20 | 6c 74 73 20 74 6f 20 5c 22 6d 69 73 63 5c 22 2e 0a 0a 43 4f 4e 46 49 52 4d 3a 20 57 68 65 74 68 | lts.to.\"misc\"...CONFIRM:.Wheth |
| 3fd40 | 65 72 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 68 6f 75 6c 64 20 77 61 69 74 20 66 6f 72 | er.the.tool.call.should.wait.for |
| 3fd60 | 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 0a 69 74 2e 20 20 49 66 20 74 72 75 65 2c 20 74 | .the.user.to.run.it...If.true,.t |
| 3fd80 | 68 65 20 75 73 65 72 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 77 69 74 68 20 74 68 | he.user.will.be.prompted.with.th |
| 3fda0 | 65 20 70 72 6f 70 6f 73 65 64 20 74 6f 6f 6c 0a 63 61 6c 6c 2c 20 77 68 69 63 68 20 63 61 6e 20 | e.proposed.tool.call,.which.can. |
| 3fdc0 | 62 65 20 65 78 61 6d 69 6e 65 64 2c 20 61 63 63 65 70 74 65 64 2c 20 64 65 66 65 72 72 65 64 20 | be.examined,.accepted,.deferred. |
| 3fde0 | 6f 72 20 63 61 6e 63 65 6c 65 64 2e 0a 0a 49 4e 43 4c 55 44 45 3a 20 57 68 65 74 68 65 72 20 74 | or.canceled...INCLUDE:.Whether.t |
| 3fe00 | 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 63 6c 75 64 | he.tool.results.should.be.includ |
| 3fe20 | 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a 74 68 65 20 4c 4c 4d 20 6f 75 74 70 75 74 2e 20 20 54 | ed.as.part.of.the.LLM.output...T |
| 3fe40 | 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 6c 6f 67 67 69 6e 67 20 61 6e 64 20 61 73 | his.is.useful.for.logging.and.as |
| 3fe60 | 20 63 6f 6e 74 65 78 74 20 66 6f 72 0a 73 75 62 73 65 71 75 65 6e 74 20 72 65 71 75 65 73 74 73 | .context.for.subsequent.requests |
| 3fe80 | 20 69 6e 20 74 68 65 20 73 61 6d 65 20 62 75 66 66 65 72 2e 20 20 54 68 69 73 20 69 73 20 70 72 | .in.the.same.buffer...This.is.pr |
| 3fea0 | 69 6d 61 72 69 6c 79 20 75 73 65 66 75 6c 0a 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a | imarily.useful.in.chat.buffers.. |
| 3fec0 | 0a 48 65 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 0a | .Here.is.an.example.definition:. |
| 3fee0 | 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 0a 20 20 20 3a 66 75 6e 63 74 69 6f 6e | ...(gptel-make-tool....:function |
| 3ff00 | 20 28 6c 61 6d 62 64 61 20 28 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 0a 20 20 20 20 20 20 20 | .(lambda.(location.unit)........ |
| 3ff20 | 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f | .........(url-retrieve-synchrono |
| 3ff40 | 75 73 6c 79 20 5c 22 61 70 69 2e 77 65 61 74 68 65 72 2e 63 6f 6d 2f 2e 2e 2e 5c 22 0a 20 20 20 | usly.\"api.weather.com/...\".... |
| 3ff60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3ff80 | 20 20 20 20 20 20 20 20 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 29 0a 20 20 20 3a 6e 61 6d | .........location.unit))....:nam |
| 3ffa0 | 65 20 5c 22 67 65 74 5f 77 65 61 74 68 65 72 5c 22 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f | e.\"get_weather\"....:descriptio |
| 3ffc0 | 6e 20 5c 22 47 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 65 61 74 68 65 72 20 69 6e 20 61 | n.\"Get.the.current.weather.in.a |
| 3ffe0 | 20 67 69 76 65 6e 20 6c 6f 63 61 74 69 6f 6e 5c 22 0a 20 20 20 3a 61 72 67 73 20 28 6c 69 73 74 | .given.location\"....:args.(list |
| 40000 | 20 5c 5c 3d 27 28 3a 6e 61 6d 65 20 5c 22 6c 6f 63 61 74 69 6f 6e 5c 22 0a 20 20 20 20 20 20 20 | .\\='(:name.\"location\"........ |
| 40020 | 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 | ..........:type.string.......... |
| 40040 | 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 5c 22 54 68 65 20 63 69 74 79 20 | ........:description.\"The.city. |
| 40060 | 61 6e 64 20 73 74 61 74 65 2c 20 65 2e 67 2e 20 53 61 6e 20 46 72 61 6e 63 69 73 63 6f 2c 20 43 | and.state,.e.g..San.Francisco,.C |
| 40080 | 41 5c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 5c 3d 27 28 3a 6e 61 6d 65 20 5c | A\")................\\='(:name.\ |
| 400a0 | 22 75 6e 69 74 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 | "unit\"..................:type.s |
| 400c0 | 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 75 6d 20 5b 5c 22 | tring..................:enum.[\" |
| 400e0 | 63 65 6c 73 69 75 73 5c 22 20 5c 22 66 61 72 65 6e 68 65 69 74 5c 22 5d 0a 20 20 20 20 20 20 20 | celsius\".\"farenheit\"]........ |
| 40100 | 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 | ..........:description.......... |
| 40120 | 20 20 20 20 20 20 20 20 5c 22 54 68 65 20 75 6e 69 74 20 6f 66 20 74 65 6d 70 65 72 61 74 75 72 | ........\"The.unit.of.temperatur |
| 40140 | 65 2c 20 65 69 74 68 65 72 20 5c 5c 3d 27 63 65 6c 73 69 75 73 5c 5c 3d 27 20 6f 72 20 5c 5c 3d | e,.either.\\='celsius\\='.or.\\= |
| 40160 | 27 66 61 68 72 65 6e 68 65 69 74 5c 5c 3d 27 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'fahrenheit\\='\"............... |
| 40180 | 20 20 20 3a 6f 70 74 69 6f 6e 61 6c 20 74 29 29 29 0a 0a 49 66 20 74 68 65 20 74 6f 6f 6c 20 69 | ...:optional.t)))..If.the.tool.i |
| 401a0 | 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 | s.asynchronous,.the.function.is. |
| 401c0 | 6d 6f 64 69 66 69 65 64 20 74 6f 20 74 61 6b 65 20 61 0a 63 61 6c 6c 62 61 63 6b 20 61 73 20 69 | modified.to.take.a.callback.as.i |
| 401e0 | 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2c 20 77 68 69 63 68 20 69 74 20 72 75 6e 73 | ts.first.argument,.which.it.runs |
| 40200 | 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 3a 0a 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 | .with.the.result:.....(lambda.(c |
| 40220 | 61 6c 6c 62 61 63 6b 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 0a 20 20 20 20 20 28 75 72 6c | allback.location.unit)......(url |
| 40240 | 2d 72 65 74 72 69 65 76 65 20 5c 22 61 70 69 2e 77 65 61 74 68 65 72 2e 63 6f 6d 2f 2e 2e 2e 5c | -retrieve.\"api.weather.com/...\ |
| 40260 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 | "....................(lambda.(_) |
| 40280 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 | ......................(let.((res |
| 402a0 | 75 6c 74 20 28 70 61 72 73 65 2d 74 68 69 73 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 | ult.(parse-this-buffer)))....... |
| 402c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 | .................(funcall.callba |
| 402e0 | 63 6b 20 72 65 73 75 6c 74 29 29 29 29 29 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 20 28 | ck.result)))))"...(let*.((tool.( |
| 40300 | 61 70 70 6c 79 20 23 27 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 73 6c 6f 74 73 29 29 | apply.#'gptel--make-tool.slots)) |
| 40320 | 0a 20 20 20 20 20 20 20 20 20 28 63 61 74 65 67 6f 72 79 20 28 6f 72 20 28 67 70 74 65 6c 2d 74 | ..........(category.(or.(gptel-t |
| 40340 | 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 20 74 6f 6f 6c 29 20 22 6d 69 73 63 22 29 29 29 0a 20 20 20 | ool-category.tool)."misc"))).... |
| 40360 | 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | .(setf.(alist-get............(gp |
| 40380 | 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | tel-tool-name.tool)............( |
| 403a0 | 61 6c 69 73 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d | alist-get.category.gptel--known- |
| 403c0 | 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 | tools.nil.nil.#'equal).......... |
| 403e0 | 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 74 6f 6f | ..nil.nil.#'equal)...........too |
| 40400 | 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 | l)))..(cl-defgeneric.gptel--pars |
| 40420 | 65 2d 74 6f 6f 6c 73 20 28 5f 62 61 63 6b 65 6e 64 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 | e-tools.(_backend.tools)..."Pars |
| 40440 | 65 20 54 4f 4f 4c 53 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f | e.TOOLS.and.return.a.list.of.pro |
| 40460 | 6d 70 74 73 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 6c | mpts...TOOLS.is.a.list.of.`gptel |
| 40480 | 2d 74 6f 6f 6c 27 20 73 74 72 75 63 74 73 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 5f 42 41 43 | -tool'.structs,.which.see..._BAC |
| 404a0 | 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 20 | KEND.is.the.LLM.backend.in.use.. |
| 404c0 | 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 | .This.is.the.default.implementat |
| 404e0 | 69 6f 6e 2c 20 75 73 65 64 20 62 79 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 | ion,.used.by.OpenAI-compatible.A |
| 40500 | 50 49 73 20 61 6e 64 20 4f 6c 6c 61 6d 61 2e 22 0a 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 28 | PIs.and.Ollama."...(vconcat....( |
| 40520 | 6d 61 70 63 61 72 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 0a 20 20 20 20 20 20 | mapcar.....(lambda.(tool)....... |
| 40540 | 28 6c 69 73 74 0a 20 20 20 20 20 20 20 3a 74 79 70 65 20 22 66 75 6e 63 74 69 6f 6e 22 0a 20 20 | (list........:type."function"... |
| 40560 | 20 20 20 20 20 3a 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 | .....:function........(append... |
| 40580 | 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 67 70 74 65 | ......(list..........:name.(gpte |
| 405a0 | 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 | l-tool-name.tool)..........:desc |
| 405c0 | 72 69 70 74 69 6f 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 | ription.(gptel-tool-description. |
| 405e0 | 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 | tool)).........(if.(gptel-tool-a |
| 40600 | 72 67 73 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 | rgs.tool)..............(list.... |
| 40620 | 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 20 20 20 20 20 | ...........:parameters.......... |
| 40640 | 20 20 20 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a 65 63 74 22 0a 20 20 20 20 20 20 | .....(list.:type."object"....... |
| 40660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 61 72 | ..............;;.gptel's.tool.ar |
| 40680 | 67 73 20 73 70 65 63 20 69 73 20 63 6c 6f 73 65 20 74 6f 20 74 68 65 20 4a 53 4f 4e 20 73 63 68 | gs.spec.is.close.to.the.JSON.sch |
| 406a0 | 65 6d 61 2c 20 65 78 63 65 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ema,.except..................... |
| 406c0 | 3b 3b 20 74 68 61 74 20 77 65 20 75 73 65 20 28 3a 6e 61 6d 65 20 22 61 72 67 6e 61 6d 65 22 20 | ;;.that.we.use.(:name."argname". |
| 406e0 | 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 74 | ...).....................;;.inst |
| 40700 | 65 61 64 20 6f 66 20 20 28 3a 61 72 67 6e 61 6d 65 20 28 2e 2e 2e 29 29 2c 20 61 6e 64 0a 20 20 | ead.of..(:argname.(...)),.and... |
| 40720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 3a 6f 70 74 69 6f 6e 61 6c 20 | ..................;;.(:optional. |
| 40740 | 74 29 20 66 6f 72 20 65 61 63 68 20 61 72 67 20 69 6e 73 74 65 61 64 20 6f 66 20 28 3a 72 65 71 | t).for.each.arg.instead.of.(:req |
| 40760 | 75 69 72 65 64 20 5b 2e 2e 2e 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uired.[...]).................... |
| 40780 | 20 3b 3b 20 66 6f 72 20 61 6c 6c 20 61 72 67 73 20 61 74 20 6f 6e 63 65 2e 20 20 48 61 6e 64 6c | .;;.for.all.args.at.once...Handl |
| 407a0 | 65 20 74 68 69 73 20 64 69 66 66 65 72 65 6e 63 65 20 62 79 0a 20 20 20 20 20 20 20 20 20 20 20 | e.this.difference.by............ |
| 407c0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 63 6f 70 79 20 6f 66 20 | .........;;.modifying.a.copy.of. |
| 407e0 | 74 68 65 20 67 70 74 65 6c 20 74 6f 6f 6c 20 61 72 67 20 73 70 65 63 2e 0a 20 20 20 20 20 20 20 | the.gptel.tool.arg.spec......... |
| 40800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 | .............:properties........ |
| 40820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 | .............(cl-loop........... |
| 40840 | 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e 20 28 67 70 74 65 6c 2d 74 6f 6f | ...........for.arg.in.(gptel-too |
| 40860 | 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-args.tool).................... |
| 40880 | 20 20 66 6f 72 20 61 72 67 73 70 65 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 61 | ..for.argspec.=.(copy-sequence.a |
| 408a0 | 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d | rg)......................for.nam |
| 408c0 | 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 20 3b 68 61 6e 64 6c | e.=.(plist-get.arg.:name).;handl |
| 408e0 | 65 64 20 64 69 66 66 65 72 65 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ed.differently.................. |
| 40900 | 20 20 20 20 66 6f 72 20 6e 65 77 6e 61 6d 65 20 3d 20 28 6f 72 20 28 61 6e 64 20 28 6b 65 79 77 | ....for.newname.=.(or.(and.(keyw |
| 40920 | 6f 72 64 70 20 6e 61 6d 65 29 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ordp.name).name)................ |
| 40940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 79 | ........................(make-sy |
| 40960 | 6d 62 6f 6c 20 28 63 6f 6e 63 61 74 20 22 3a 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 | mbol.(concat.":".name)))........ |
| 40980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............do................ |
| 409a0 | 3b 41 52 47 53 50 45 43 20 69 73 20 41 52 47 20 77 69 74 68 6f 75 74 20 75 6e 72 65 63 6f 67 6e | ;ARGSPEC.is.ARG.without.unrecogn |
| 409c0 | 69 7a 65 64 20 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ized.keys......................( |
| 409e0 | 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 | cl-remf.argspec.:name).......... |
| 40a00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6f 70 | ............(cl-remf.argspec.:op |
| 40a20 | 74 69 6f 6e 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | tional)......................if. |
| 40a40 | 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 20 22 6f 62 | (equal.(plist-get.arg.:type)."ob |
| 40a60 | 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 | ject")......................do.( |
| 40a80 | 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 61 72 67 73 70 65 63 20 3a 72 65 | unless.(plist-member.argspec.:re |
| 40aa0 | 71 75 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | quired)......................... |
| 40ac0 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 61 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 20 5b | ..(plist-put.argspec.:required.[ |
| 40ae0 | 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | ]))......................(plist- |
| 40b00 | 70 75 74 20 61 72 67 73 70 65 63 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 | put.argspec.:additionalPropertie |
| 40b20 | 73 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.:json-false).................. |
| 40b40 | 20 20 20 20 61 70 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 20 61 72 67 73 70 65 63 | ....append.(list.newname.argspec |
| 40b60 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 | )).....................:required |
| 40b80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 | .....................(vconcat... |
| 40ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 | ...................(delq.nil.(ma |
| 40bc0 | 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pcar............................ |
| 40be0 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 20 28 61 6e 64 20 28 6e 6f 74 20 28 70 6c | .....(lambda.(arg).(and.(not.(pl |
| 40c00 | 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6f 70 74 69 6f 6e 61 6c 29 29 0a 20 20 20 20 20 20 20 20 | ist-get.arg.:optional))......... |
| 40c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 40c40 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 0a 20 20 | ......(plist-get.arg.:name)))... |
| 40c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ..............................(g |
| 40c80 | 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ptel-tool-args.tool))))......... |
| 40ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 | ............:additionalPropertie |
| 40cc0 | 73 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 | s.:json-false))...........(list. |
| 40ce0 | 3a 70 61 72 61 6d 65 74 65 72 73 20 3a 6e 75 6c 6c 29 29 29 29 29 0a 20 20 20 20 28 65 6e 73 75 | :parameters.:null))))).....(ensu |
| 40d00 | 72 65 2d 6c 69 73 74 20 74 6f 6f 6c 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 | re-list.tools))))..(cl-defgeneri |
| 40d20 | 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 62 61 63 | c.gptel--parse-tool-results.(bac |
| 40d40 | 6b 65 6e 64 20 72 65 73 75 6c 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 42 41 43 4b 45 4e | kend.results)..."Return.a.BACKEN |
| 40d60 | 44 2d 61 70 70 72 6f 70 72 69 61 74 65 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 | D-appropriate.prompt.containing. |
| 40d80 | 74 6f 6f 6c 20 63 61 6c 6c 20 52 45 53 55 4c 54 53 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 62 65 | tool.call.RESULTS...This.will.be |
| 40da0 | 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 6c 69 73 74 | .injected.into.the.messages.list |
| 40dc0 | 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 0a 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c | .in.the.prompt.to.send.to.the.LL |
| 40de0 | 4d 2e 22 29 0a 0a 3b 3b 20 46 49 58 4d 45 28 66 73 6d 29 20 75 6e 69 66 79 20 74 68 69 73 20 77 | M.")..;;.FIXME(fsm).unify.this.w |
| 40e00 | 69 74 68 20 60 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 27 2c 20 77 | ith.`gptel--wrap-user-prompt',.w |
| 40e20 | 68 69 63 68 20 69 73 20 61 20 6d 65 73 73 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 | hich.is.a.mess.(cl-defgeneric.gp |
| 40e40 | 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 0a 20 20 28 5f 62 61 63 6b 65 6e 64 20 64 | tel--inject-prompt...(_backend.d |
| 40e60 | 61 74 61 20 6e 65 77 2d 70 72 6f 6d 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 70 6f 73 69 74 69 | ata.new-prompt.&optional._positi |
| 40e80 | 6f 6e 29 0a 20 20 22 41 70 70 65 6e 64 20 4e 45 57 2d 50 52 4f 4d 50 54 20 74 6f 20 65 78 69 73 | on)..."Append.NEW-PROMPT.to.exis |
| 40ea0 | 74 69 6e 67 20 70 72 6f 6d 70 74 73 20 69 6e 20 71 75 65 72 79 20 44 41 54 41 2e 0a 0a 4e 45 57 | ting.prompts.in.query.DATA...NEW |
| 40ec0 | 2d 50 52 4f 4d 50 54 20 63 61 6e 20 62 65 20 61 20 73 69 6e 67 6c 65 20 6d 65 73 73 61 67 65 20 | -PROMPT.can.be.a.single.message. |
| 40ee0 | 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 73 2e 0a 0a 4e 6f 74 20 69 6d 70 6c | or.a.list.of.messages...Not.impl |
| 40f00 | 65 6d 65 6e 74 65 64 3a 20 69 66 20 50 4f 53 49 54 49 4f 4e 20 69 73 0a 2d 20 61 20 6e 6f 6e 2d | emented:.if.POSITION.is.-.a.non- |
| 40f20 | 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 2c 20 69 6e 73 65 72 74 20 69 74 20 61 74 20 74 68 | negative.number,.insert.it.at.th |
| 40f40 | 61 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 50 52 4f 4d 50 54 53 2e 0a 2d 20 61 20 6e 65 67 61 | at.position.in.PROMPTS..-.a.nega |
| 40f60 | 74 69 76 65 20 6e 75 6d 62 65 72 2c 20 69 6e 73 65 72 74 20 69 74 20 74 68 65 72 65 20 63 6f 75 | tive.number,.insert.it.there.cou |
| 40f80 | 6e 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 2e 0a 0a 54 68 69 73 20 67 65 6e 65 72 69 | nting.from.the.end...This.generi |
| 40fa0 | 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 61 6e 64 6c 65 73 20 74 68 65 20 41 6e 74 | c.implementation.handles.the.Ant |
| 40fc0 | 68 72 6f 70 69 63 2c 0a 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 61 6e 64 20 4f 6c | hropic,.OpenAI-compatible.and.Ol |
| 40fe0 | 6c 61 6d 61 20 6d 65 73 73 61 67 65 20 66 6f 72 6d 61 74 73 2e 22 0a 20 20 3b 3b 20 3b 54 4f 44 | lama.message.formats."...;;.;TOD |
| 41000 | 4f 28 66 73 6d 29 3a 20 69 6d 70 6c 65 6d 65 6e 74 20 5f 50 4f 53 49 54 49 4f 4e 0a 20 20 28 77 | O(fsm):.implement._POSITION...(w |
| 41020 | 68 65 6e 20 28 6b 65 79 77 6f 72 64 70 20 28 63 61 72 2d 73 61 66 65 20 6e 65 77 2d 70 72 6f 6d | hen.(keywordp.(car-safe.new-prom |
| 41040 | 70 74 29 29 20 3b 49 73 20 6e 65 77 2d 70 72 6f 6d 70 74 20 6f 6e 65 20 6f 72 20 6d 61 6e 79 3f | pt)).;Is.new-prompt.one.or.many? |
| 41060 | 0a 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 70 72 6f 6d 70 74 20 28 6c 69 73 74 20 6e 65 77 2d | .....(setq.new-prompt.(list.new- |
| 41080 | 70 72 6f 6d 70 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 28 70 6c 69 73 | prompt)))...(let.((prompts.(plis |
| 410a0 | 74 2d 67 65 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 29 29 29 0a 20 20 20 20 28 70 6c 69 | t-get.data.:messages))).....(pli |
| 410c0 | 73 74 2d 70 75 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 20 28 76 63 6f 6e 63 61 74 20 70 | st-put.data.:messages.(vconcat.p |
| 410e0 | 72 6f 6d 70 74 73 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 53 74 61 | rompts.new-prompt))))....;;;.Sta |
| 41100 | 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 64 72 69 76 69 6e 67 20 72 65 71 75 65 73 74 73 0a | te.machine.for.driving.requests. |
| 41120 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 69 74 69 | .(defvar.gptel-request--transiti |
| 41140 | 6f 6e 73 0a 20 20 60 28 28 49 4e 49 54 20 2e 20 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 | ons...`((INIT...((t............. |
| 41160 | 20 20 20 20 20 20 20 20 20 20 2e 20 57 41 49 54 29 29 29 0a 20 20 20 20 28 57 41 49 54 20 2e 20 | ............WAIT))).....(WAIT... |
| 41180 | 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 54 59 50 45 | ((t.........................TYPE |
| 411a0 | 29 29 29 0a 20 20 20 20 28 54 59 50 45 20 2e 20 28 28 2c 23 27 67 70 74 65 6c 2d 2d 65 72 72 6f | ))).....(TYPE...((,#'gptel--erro |
| 411c0 | 72 2d 70 20 20 20 20 20 20 20 2e 20 45 52 52 53 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | r-p.........ERRS)..............( |
| 411e0 | 2c 23 27 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 75 73 65 2d 70 20 20 20 20 2e 20 54 4f 4f 4c 29 0a | ,#'gptel--tool-use-p......TOOL). |
| 41200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............(t................. |
| 41220 | 20 20 20 20 20 20 2e 20 44 4f 4e 45 29 29 29 0a 20 20 20 20 28 54 4f 4f 4c 20 2e 20 28 28 2c 23 | ........DONE))).....(TOOL...((,# |
| 41240 | 27 67 70 74 65 6c 2d 2d 65 72 72 6f 72 2d 70 20 20 20 20 20 20 20 2e 20 45 52 52 53 29 0a 20 20 | 'gptel--error-p.........ERRS)... |
| 41260 | 20 20 20 20 20 20 20 20 20 20 20 28 2c 23 27 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 72 65 73 75 6c | ...........(,#'gptel--tool-resul |
| 41280 | 74 2d 70 20 2e 20 57 41 49 54 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 | t-p...WAIT)..............(t..... |
| 412a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 44 4f 4e 45 29 29 29 29 0a 20 20 22 | ....................DONE))))..." |
| 412c0 | 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 20 67 70 74 65 6c 27 73 20 64 65 66 61 75 6c 74 | Alist.specifying.gptel's.default |
| 412e0 | 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 74 61 62 6c 65 20 66 6f 72 20 72 65 71 75 | .state.transition.table.for.requ |
| 41300 | 65 73 74 73 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 61 20 6c 69 73 74 20 77 68 6f 73 | ests...Each.entry.is.a.list.whos |
| 41320 | 65 20 63 61 72 20 69 73 20 61 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 28 61 6e 79 20 73 79 | e.car.is.a.request.state.(any.sy |
| 41340 | 6d 62 6f 6c 29 0a 61 6e 64 20 77 68 6f 73 65 20 63 64 72 20 69 73 20 61 6e 20 61 6c 69 73 74 20 | mbol).and.whose.cdr.is.an.alist. |
| 41360 | 6c 69 73 74 69 6e 67 20 70 6f 73 73 69 62 6c 65 20 6e 65 78 74 20 73 74 61 74 65 73 2e 20 20 45 | listing.possible.next.states...E |
| 41380 | 61 63 68 20 6b 65 79 0a 69 73 20 65 69 74 68 65 72 20 61 20 70 72 65 64 69 63 61 74 65 20 66 75 | ach.key.is.either.a.predicate.fu |
| 413a0 | 6e 63 74 69 6f 6e 20 6f 72 20 60 74 27 2e 20 20 57 68 65 6e 20 60 67 70 74 65 6c 2d 2d 66 73 6d | nction.or.`t'...When.`gptel--fsm |
| 413c0 | 2d 6e 65 78 74 27 20 69 73 0a 63 61 6c 6c 65 64 2c 20 74 68 65 20 70 72 65 64 69 63 61 74 65 73 | -next'.is.called,.the.predicates |
| 413e0 | 20 61 72 65 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 6f 72 64 65 72 20 74 68 65 79 20 61 70 | .are.called.in.the.order.they.ap |
| 41400 | 70 65 61 72 20 68 65 72 65 0a 74 6f 20 66 69 6e 64 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 | pear.here.to.find.the.next.state |
| 41420 | 2e 20 20 45 61 63 68 20 70 72 65 64 69 63 61 74 65 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 | ...Each.predicate.is.called.with |
| 41440 | 20 74 68 65 20 73 74 61 74 65 0a 6d 61 63 68 69 6e 65 27 73 20 49 4e 46 4f 2c 20 73 65 65 20 60 | .the.state.machine's.INFO,.see.` |
| 41460 | 67 70 74 65 6c 2d 66 73 6d 27 2e 20 20 41 20 70 72 65 64 69 63 61 74 65 20 6f 66 20 60 74 27 20 | gptel-fsm'...A.predicate.of.`t'. |
| 41480 | 69 73 0a 63 6f 6e 73 69 64 65 72 65 64 20 61 20 73 75 63 63 65 73 73 20 61 6e 64 20 61 63 74 73 | is.considered.a.success.and.acts |
| 414a0 | 20 61 73 20 61 20 64 65 66 61 75 6c 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | .as.a.default.")..(defvar.gptel- |
| 414c0 | 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 0a 20 20 60 28 28 57 41 49 54 20 2c 23 27 67 | request--handlers...`((WAIT.,#'g |
| 414e0 | 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 77 61 69 74 29 0a 20 20 20 20 28 54 4f 4f 4c 20 2c 23 27 | ptel--handle-wait).....(TOOL.,#' |
| 41500 | 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 22 41 6c 69 73 | gptel--handle-tool-use))..."Alis |
| 41520 | 74 20 73 70 65 63 69 66 79 69 6e 67 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 20 67 70 74 65 6c 27 | t.specifying.handlers.for.gptel' |
| 41540 | 73 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 73 2e 0a 0a 45 61 | s.default.state.transitions...Ea |
| 41560 | 63 68 20 65 6e 74 72 79 20 69 73 20 61 20 6c 69 73 74 20 77 68 6f 73 65 20 63 61 72 20 69 73 20 | ch.entry.is.a.list.whose.car.is. |
| 41580 | 61 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 28 61 20 73 79 6d 62 6f 6c 29 20 61 6e 64 0a 77 | a.request.state.(a.symbol).and.w |
| 415a0 | 68 6f 73 65 20 63 64 72 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 68 61 6e 64 6c 65 72 20 66 75 | hose.cdr.is.a.list.of.handler.fu |
| 415c0 | 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 0a 74 72 61 6e 73 69 74 69 6f 6e 69 6e | nctions.called.when.transitionin |
| 415e0 | 67 20 74 6f 20 74 68 61 74 20 73 74 61 74 65 2e 20 20 54 68 65 20 68 61 6e 64 6c 65 72 73 20 61 | g.to.that.state...The.handlers.a |
| 41600 | 72 65 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 0a 73 65 71 75 65 6e 63 65 20 74 68 61 74 20 74 | re.called.in.the.sequence.that.t |
| 41620 | 68 65 79 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 6c 69 73 74 2c 20 61 6e 64 20 65 61 63 68 | hey.appear.in.the.list,.and.each |
| 41640 | 20 66 75 6e 63 74 69 6f 6e 20 72 65 63 65 69 76 65 73 0a 74 68 65 20 73 74 61 74 65 20 6d 61 63 | .function.receives.the.state.mac |
| 41660 | 68 69 6e 65 20 61 73 20 69 74 73 20 6f 6e 6c 79 20 61 72 67 75 6d 65 6e 74 2e 20 20 49 6e 66 6f | hine.as.its.only.argument...Info |
| 41680 | 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 0a 72 65 71 75 65 73 74 20 73 74 61 74 65 20 | rmation.about.the.request.state. |
| 416a0 | 63 61 6e 20 62 65 20 72 65 74 72 69 65 76 65 64 20 76 69 61 20 74 68 65 20 6d 61 63 68 69 6e 65 | can.be.retrieved.via.the.machine |
| 416c0 | 27 73 20 49 4e 46 4f 20 73 6c 6f 74 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 66 73 6d 27 2e 0a 0a | 's.INFO.slot,.see.`gptel-fsm'... |
| 416e0 | 48 61 6e 64 6c 65 72 73 20 61 72 65 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 64 6f 69 | Handlers.are.responsible.for.doi |
| 41700 | 6e 67 20 73 74 61 74 65 2d 72 65 6c 61 74 65 64 20 74 61 73 6b 73 20 28 6c 69 6b 65 0a 6c 6f 67 | ng.state-related.tasks.(like.log |
| 41720 | 67 69 6e 67 20 65 72 72 6f 72 73 20 6f 72 20 69 6e 73 65 72 74 69 6e 67 20 72 65 73 70 6f 6e 73 | ging.errors.or.inserting.respons |
| 41740 | 65 73 29 20 61 6e 64 20 74 72 61 6e 73 69 74 69 6f 6e 69 6e 67 20 74 6f 20 74 68 65 0a 6e 65 78 | es).and.transitioning.to.the.nex |
| 41760 | 74 20 73 74 61 74 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 | t.state.by.calling.`gptel--fsm-t |
| 41780 | 72 61 6e 73 69 74 69 6f 6e 27 2e 0a 0a 48 61 6e 64 6c 65 72 73 20 63 61 6e 20 62 65 20 61 73 79 | ransition'...Handlers.can.be.asy |
| 417a0 | 6e 63 68 72 6f 6e 6f 75 73 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 74 72 61 | nchronous,.in.which.case.the.tra |
| 417c0 | 6e 73 69 74 69 6f 6e 20 63 61 6c 6c 0a 73 68 6f 75 6c 64 20 74 79 70 69 63 61 6c 6c 79 20 62 65 | nsition.call.should.typically.be |
| 417e0 | 20 70 6c 61 63 65 64 20 69 6e 20 69 74 73 20 63 61 6c 6c 62 61 63 6b 2e 22 29 0a 0a 28 64 65 66 | .placed.in.its.callback.")..(def |
| 41800 | 76 61 72 20 67 70 74 65 6c 2d 73 65 6e 64 2d 2d 68 61 6e 64 6c 65 72 73 0a 20 20 60 28 28 57 41 | var.gptel-send--handlers...`((WA |
| 41820 | 49 54 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 77 61 69 74 29 0a 20 20 20 20 28 54 | IT.,#'gptel--handle-wait).....(T |
| 41840 | 59 50 45 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 70 72 65 2d 69 6e 73 65 72 74 29 | YPE.,#'gptel--handle-pre-insert) |
| 41860 | 0a 20 20 20 20 28 45 52 52 53 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 65 72 72 6f | .....(ERRS.,#'gptel--handle-erro |
| 41880 | 72 20 2c 23 27 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 0a 20 20 20 20 28 54 4f 4f 4c 20 | r.,#'gptel--fsm-last).....(TOOL. |
| 418a0 | 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 28 | ,#'gptel--handle-tool-use).....( |
| 418c0 | 44 4f 4e 45 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 70 6f 73 74 2d 69 6e 73 65 72 | DONE.,#'gptel--handle-post-inser |
| 418e0 | 74 20 2c 23 27 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 0a 20 20 22 41 6c 69 73 74 20 | t.,#'gptel--fsm-last))..."Alist. |
| 41900 | 73 70 65 63 69 66 79 69 6e 67 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 20 60 67 70 74 65 6c 2d 73 | specifying.handlers.for.`gptel-s |
| 41920 | 65 6e 64 27 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 73 2e 0a 0a 53 65 65 20 60 67 70 | end'.state.transitions...See.`gp |
| 41940 | 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 27 20 66 6f 72 20 64 65 74 61 69 | tel-request--handlers'.for.detai |
| 41960 | 6c 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 66 73 6d 20 | ls.")..(cl-defstruct.(gptel-fsm. |
| 41980 | 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 29 0a 20 20 | (:constructor.gptel-make-fsm)... |
| 419a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 | .......................(:copier. |
| 419c0 | 67 70 74 65 6c 2d 63 6f 70 79 2d 66 73 6d 29 29 0a 20 20 22 53 74 61 74 65 20 6d 61 63 68 69 6e | gptel-copy-fsm))..."State.machin |
| 419e0 | 65 20 66 6f 72 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 53 54 41 54 45 3a 20 54 68 | e.for.gptel.requests...STATE:.Th |
| 41a00 | 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 2c 20 | e.current.state.of.the.machine,. |
| 41a20 | 63 61 6e 20 62 65 20 61 6e 79 20 73 79 6d 62 6f 6c 2e 0a 0a 54 41 42 4c 45 3a 20 41 6c 69 73 74 | can.be.any.symbol...TABLE:.Alist |
| 41a40 | 20 6d 61 70 70 69 6e 67 20 73 74 61 74 65 73 20 74 6f 20 70 6f 73 73 69 62 6c 65 20 6e 65 78 74 | .mapping.states.to.possible.next |
| 41a60 | 20 73 74 61 74 65 73 0a 61 6c 6f 6e 67 20 77 69 74 68 20 70 72 65 64 69 63 61 74 65 73 20 74 6f | .states.along.with.predicates.to |
| 41a80 | 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 2e 20 20 53 65 65 0a | .determine.the.next.state...See. |
| 41aa0 | 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 27 20 66 6f 72 | `gptel-request--transitions'.for |
| 41ac0 | 20 61 6e 20 65 78 61 6d 70 6c 65 2e 0a 0a 48 41 4e 44 4c 45 52 53 3a 20 41 6c 69 73 74 20 6d 61 | .an.example...HANDLERS:.Alist.ma |
| 41ae0 | 70 70 69 6e 67 20 73 74 61 74 65 73 20 74 6f 20 73 74 61 74 65 20 68 61 6e 64 6c 65 72 20 66 75 | pping.states.to.state.handler.fu |
| 41b00 | 6e 63 74 69 6f 6e 73 2e 0a 48 61 6e 64 6c 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 77 68 65 | nctions..Handlers.are.called.whe |
| 41b20 | 6e 20 65 6e 74 65 72 69 6e 67 20 65 61 63 68 20 73 74 61 74 65 2e 20 20 53 65 65 0a 60 67 70 74 | n.entering.each.state...See.`gpt |
| 41b40 | 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 27 20 66 6f 72 20 61 6e 20 65 78 61 | el-request--handlers'.for.an.exa |
| 41b60 | 6d 70 6c 65 0a 0a 49 4e 46 4f 3a 20 54 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 27 73 20 | mple..INFO:.The.state.machine's. |
| 41b80 | 63 75 72 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 54 68 69 73 20 69 73 20 61 20 70 6c 69 73 | current.context...This.is.a.plis |
| 41ba0 | 74 0a 68 6f 6c 64 69 6e 67 20 61 6c 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 | t.holding.all.the.information.re |
| 41bc0 | 71 75 69 72 65 64 20 66 6f 72 20 74 68 65 20 6f 6e 67 6f 69 6e 67 20 72 65 71 75 65 73 74 2c 20 | quired.for.the.ongoing.request,. |
| 41be0 | 61 6e 64 0a 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 74 77 65 61 6b 20 61 6e 64 20 72 65 73 | and.can.be.used.to.tweak.and.res |
| 41c00 | 75 6d 65 20 61 20 70 61 75 73 65 64 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 73 68 6f 75 | ume.a.paused.request...This.shou |
| 41c20 | 6c 64 20 62 65 0a 63 61 6c 6c 65 64 20 5c 22 63 6f 6e 74 65 78 74 5c 22 2c 20 62 75 74 20 63 6f | ld.be.called.\"context\",.but.co |
| 41c40 | 6e 74 65 78 74 20 6d 65 61 6e 73 20 74 6f 6f 20 6d 61 6e 79 20 74 68 69 6e 67 73 20 61 6c 72 65 | ntext.means.too.many.things.alre |
| 41c60 | 61 64 79 20 69 6e 0a 67 70 74 65 6c 27 73 20 63 6f 64 65 21 0a 0a 45 61 63 68 20 67 70 74 65 6c | ady.in.gptel's.code!..Each.gptel |
| 41c80 | 20 72 65 71 75 65 73 74 20 69 73 20 70 61 73 73 65 64 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f | .request.is.passed.an.instance.o |
| 41ca0 | 66 20 74 68 69 73 0a 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 61 6e 64 20 64 72 69 76 65 6e 20 | f.this.state.machine.and.driven. |
| 41cc0 | 62 79 20 69 74 2e 22 0a 20 20 28 73 74 61 74 65 20 27 49 4e 49 54 29 0a 20 20 28 74 61 62 6c 65 | by.it."...(state.'INIT)...(table |
| 41ce0 | 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 29 0a 20 20 28 | .gptel-request--transitions)...( |
| 41d00 | 68 61 6e 64 6c 65 72 73 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 | handlers.gptel-request--handlers |
| 41d20 | 29 20 69 6e 66 6f 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 | ).info)..(defun.gptel--fsm-trans |
| 41d40 | 69 74 69 6f 6e 20 28 6d 61 63 68 69 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 65 77 2d 73 74 61 | ition.(machine.&optional.new-sta |
| 41d60 | 74 65 29 0a 20 20 22 4d 6f 76 65 20 4d 41 43 48 49 4e 45 20 74 6f 20 69 74 73 20 6e 65 78 74 20 | te)..."Move.MACHINE.to.its.next. |
| 41d80 | 73 74 61 74 65 2e 0a 0a 4d 41 43 48 49 4e 45 20 69 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f | state...MACHINE.is.an.instance.o |
| 41da0 | 66 20 60 67 70 74 65 6c 2d 66 73 6d 27 2e 0a 0a 54 68 65 20 6e 65 78 74 20 73 74 61 74 65 20 69 | f.`gptel-fsm'...The.next.state.i |
| 41dc0 | 73 20 4e 45 57 2d 53 54 41 54 45 20 69 66 20 67 69 76 65 6e 2e 20 20 4f 74 68 65 72 77 69 73 65 | s.NEW-STATE.if.given...Otherwise |
| 41de0 | 20 69 74 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 | .it.is.determined.automatically. |
| 41e00 | 66 72 6f 6d 20 4d 41 43 48 49 4e 45 27 73 20 74 72 61 6e 73 69 74 69 6f 6e 20 74 61 62 6c 65 2e | from.MACHINE's.transition.table. |
| 41e20 | 22 0a 20 20 28 75 6e 6c 65 73 73 20 6e 65 77 2d 73 74 61 74 65 20 28 73 65 74 71 20 6e 65 77 2d | "...(unless.new-state.(setq.new- |
| 41e40 | 73 74 61 74 65 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 74 20 6d 61 63 68 69 6e 65 29 29 | state.(gptel--fsm-next.machine)) |
| 41e60 | 29 0a 20 20 28 70 75 73 68 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 | )...(push.(gptel-fsm-state.machi |
| 41e80 | 6e 65 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 | ne).........(plist-get.(gptel-fs |
| 41ea0 | 6d 2d 69 6e 66 6f 20 6d 61 63 68 69 6e 65 29 20 3a 68 69 73 74 6f 72 79 29 29 0a 20 20 28 73 65 | m-info.machine).:history))...(se |
| 41ec0 | 74 66 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 20 6e 65 77 | tf.(gptel-fsm-state.machine).new |
| 41ee0 | 2d 73 74 61 74 65 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 68 61 6e 64 6c 65 72 73 20 | -state)...(when-let*.((handlers. |
| 41f00 | 28 61 6c 69 73 74 2d 67 65 74 20 6e 65 77 2d 73 74 61 74 65 20 28 67 70 74 65 6c 2d 66 73 6d 2d | (alist-get.new-state.(gptel-fsm- |
| 41f20 | 68 61 6e 64 6c 65 72 73 20 6d 61 63 68 69 6e 65 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 28 | handlers.machine)))).....(mapc.( |
| 41f40 | 6c 61 6d 62 64 61 20 28 68 29 20 28 66 75 6e 63 61 6c 6c 20 68 20 6d 61 63 68 69 6e 65 29 29 20 | lambda.(h).(funcall.h.machine)). |
| 41f60 | 68 61 6e 64 6c 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e | handlers)))..(defun.gptel--fsm-n |
| 41f80 | 65 78 74 20 28 6d 61 63 68 69 6e 65 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 4d 41 43 48 49 | ext.(machine)..."Determine.MACHI |
| 41fa0 | 4e 45 27 73 20 6e 65 78 74 20 73 74 61 74 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 69 74 73 | NE's.next.state.according.to.its |
| 41fc0 | 20 74 72 61 6e 73 69 74 69 6f 6e 20 74 61 62 6c 65 2e 0a 0a 4d 41 43 48 49 4e 45 20 69 73 20 61 | .transition.table...MACHINE.is.a |
| 41fe0 | 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 60 67 70 74 65 6c 2d 66 73 6d 27 22 0a 20 20 28 6c 65 | n.instance.of.`gptel-fsm'"...(le |
| 42000 | 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d 61 | t*.((current.(gptel-fsm-state.ma |
| 42020 | 63 68 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 74 69 6f 6e 73 20 28 61 | chine))..........(transitions.(a |
| 42040 | 6c 69 73 74 2d 67 65 74 20 63 75 72 72 65 6e 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 74 61 62 6c | list-get.current.(gptel-fsm-tabl |
| 42060 | 65 20 6d 61 63 68 69 6e 65 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 | e.machine)))).....(cl-loop...... |
| 42080 | 77 69 74 68 20 69 6e 66 6f 20 3d 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 6d 61 63 68 | with.info.=.(gptel-fsm-info.mach |
| 420a0 | 69 6e 65 29 0a 20 20 20 20 20 66 6f 72 20 28 70 72 65 64 20 2e 20 6e 65 78 74 29 20 69 6e 20 74 | ine)......for.(pred...next).in.t |
| 420c0 | 72 61 6e 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 77 68 65 6e 20 28 6f 72 20 28 65 71 20 70 72 65 | ransitions......when.(or.(eq.pre |
| 420e0 | 64 20 74 29 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 72 | d.t).(funcall.pred.info))......r |
| 42100 | 65 74 75 72 6e 20 6e 65 78 74 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 | eturn.next)))..(defvar-local.gpt |
| 42120 | 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 6e 69 6c 0a 20 20 22 53 74 61 74 65 20 6d 61 63 68 69 6e | el--fsm-last.nil..."State.machin |
| 42140 | 65 20 66 6f 72 20 6c 61 74 65 73 74 20 72 65 71 75 65 73 74 20 69 6e 20 74 68 65 20 62 75 66 66 | e.for.latest.request.in.the.buff |
| 42160 | 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 28 66 | er.")..(defun.gptel--fsm-last.(f |
| 42180 | 73 6d 29 0a 20 20 20 20 22 43 61 70 74 75 72 65 20 74 68 65 20 6c 61 74 65 73 74 20 72 65 71 75 | sm)....."Capture.the.latest.requ |
| 421a0 | 65 73 74 20 73 74 61 74 65 20 46 53 4d 20 66 6f 72 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 2e | est.state.FSM.for.introspection. |
| 421c0 | 22 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 | ".....(let.((info.(gptel-fsm-inf |
| 421e0 | 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 6c 6f 67 | o.fsm))).......(unless.gptel-log |
| 42200 | 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 74 61 20 28 70 6c 69 73 | -level.........(let.((data.(plis |
| 42220 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 | t-get.info.:data)))...........(d |
| 42240 | 6f 6c 69 73 74 20 28 6b 65 79 20 27 28 3a 6d 65 73 73 61 67 65 73 20 3a 63 6f 6e 74 65 6e 74 73 | olist.(key.'(:messages.:contents |
| 42260 | 20 3a 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 70 6c 69 | .:query)).............(setf.(pli |
| 42280 | 73 74 2d 67 65 74 20 64 61 74 61 20 6b 65 79 29 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 28 | st-get.data.key).nil)))).......( |
| 422a0 | 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 0a 20 20 20 20 20 20 | setf.(gptel-fsm-info.fsm)....... |
| 422c0 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 65 6e 64 2d 74 69 6d 65 20 | ......(plist-put.info.:end-time. |
| 422e0 | 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 77 | (current-time-string))).......(w |
| 42300 | 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | ith-current-buffer.(plist-get.in |
| 42320 | 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d | fo.:buffer).........(setq.gptel- |
| 42340 | 2d 66 73 6d 2d 6c 61 73 74 20 66 73 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | -fsm-last.fsm))))..(defun.gptel- |
| 42360 | 2d 69 6e 73 70 65 63 74 2d 66 73 6d 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 73 6d 29 0a 20 20 22 | -inspect-fsm.(&optional.fsm)..." |
| 42380 | 49 6e 73 70 65 63 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 46 53 4d 2e | Inspect.gptel.request.state.FSM. |
| 423a0 | 0a 0a 46 53 4d 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 | ..FSM.defaults.to.the.state.of.t |
| 423c0 | 68 65 20 6c 61 73 74 20 72 65 71 75 65 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 | he.last.request.in.the.current.b |
| 423e0 | 75 66 66 65 72 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 66 73 6d 0a 20 20 20 20 28 73 65 74 71 20 | uffer."...(unless.fsm.....(setq. |
| 42400 | 66 73 6d 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 | fsm.(or.(cdr-safe.(cl-find-if... |
| 42420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | ...........................(lamb |
| 42440 | 64 61 20 28 70 72 6f 63 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | da.(proc-list).................. |
| 42460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 20 | ..............(eq.(thread-first. |
| 42480 | 28 63 61 64 72 20 70 72 6f 63 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cadr.proc-list)................ |
| 424a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 424c0 | 20 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(gptel-fsm-info).............. |
| 424e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 42500 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 | ....(plist-get.:buffer))........ |
| 42520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 | ............................(cur |
| 42540 | 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rent-buffer))).................. |
| 42560 | 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 | ............gptel--request-alist |
| 42580 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 66 73 6d 2d | ))...................gptel--fsm- |
| 425a0 | 6c 61 73 74 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 63 6c 2d 74 79 70 65 70 20 67 70 74 65 | last)))...(unless.(cl-typep.gpte |
| 425c0 | 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 27 67 70 74 65 6c 2d 66 73 6d 29 0a 20 20 20 20 28 75 73 65 | l--fsm-last.'gptel-fsm).....(use |
| 425e0 | 72 2d 65 72 72 6f 72 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 6c 6f 67 20 69 6e | r-error."No.gptel.request.log.in |
| 42600 | 20 74 68 69 73 20 62 75 66 66 65 72 20 79 65 74 21 22 29 29 0a 20 20 28 72 65 71 75 69 72 65 20 | .this.buffer.yet!"))...(require. |
| 42620 | 27 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | 'tabulated-list)...(with-current |
| 42640 | 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 | -buffer.(get-buffer-create."*gpt |
| 42660 | 65 6c 2d 64 69 61 67 6e 6f 73 74 69 63 2a 22 29 0a 20 20 20 20 28 73 65 74 71 20 74 61 62 75 6c | el-diagnostic*").....(setq.tabul |
| 42680 | 61 74 65 64 2d 6c 69 73 74 2d 66 6f 72 6d 61 74 20 5b 28 22 52 65 71 75 65 73 74 20 61 74 74 72 | ated-list-format.[("Request.attr |
| 426a0 | 69 62 75 74 65 22 20 33 30 20 74 29 20 28 22 56 61 6c 75 65 22 20 33 30 29 5d 29 0a 20 20 20 20 | ibute".30.t).("Value".30)])..... |
| 426c0 | 28 6c 65 74 2a 20 28 28 70 62 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 70 72 6f 70 65 72 74 69 | (let*.((pb.(lambda.(s).(properti |
| 426e0 | 7a 65 20 73 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 | ze.s.'face.'font-lock-builtin-fa |
| 42700 | 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 73 20 28 6c 61 6d 62 64 61 20 28 73 29 | ce)))............(ps.(lambda.(s) |
| 42720 | 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d | .(propertize.s.'face.'font-lock- |
| 42740 | 73 74 72 69 6e 67 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6d 74 20 28 | string-face)))............(fmt.( |
| 42760 | 6c 61 6d 62 64 61 20 28 73 29 20 28 63 6f 6e 64 20 28 28 6d 65 6d 71 20 28 63 61 72 2d 73 61 66 | lambda.(s).(cond.((memq.(car-saf |
| 42780 | 65 20 73 29 20 27 28 63 6c 6f 73 75 72 65 20 6c 61 6d 62 64 61 29 29 0a 20 20 20 20 20 20 20 20 | e.s).'(closure.lambda))......... |
| 427a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 | ......................(format."# |
| 427c0 | 3c 6c 61 6d 62 64 61 20 25 23 78 3e 22 20 28 73 78 68 61 73 68 20 73 29 29 29 0a 20 20 20 20 20 | <lambda.%#x>".(sxhash.s)))...... |
| 427e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 | ........................((byte-c |
| 42800 | 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ode-function-p.s)............... |
| 42820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 3c 63 6f 6d 70 69 | ................(format."#<compi |
| 42840 | 6c 65 64 20 25 23 78 3e 22 20 28 73 78 68 61 73 68 20 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 | led.%#x>".(sxhash.s))).......... |
| 42860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 73 29 | ....................((stringp.s) |
| 42880 | 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 22 e2 ae 90 20 22 20 73 29 29 | .(string-replace."\n"."....".s)) |
| 428a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 | ..............................(t |
| 428c0 | 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 | .(prin1-to-string.s)))))........ |
| 428e0 | 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 | ....(inhibit-read-only.t)....... |
| 42900 | 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 | .....(info.(gptel-fsm-info.fsm)) |
| 42920 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 2d 69 6e 66 6f 0a 20 20 20 20 20 20 | ............(entries-info....... |
| 42940 | 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 | ......(cl-loop..............for. |
| 42960 | 69 64 78 20 75 70 66 72 6f 6d 20 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6b | idx.upfrom.3..............for.(k |
| 42980 | 65 79 20 76 61 6c 29 20 6f 6e 20 69 6e 66 6f 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 | ey.val).on.info.by.#'cddr....... |
| 429a0 | 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 64 61 74 61 20 | .......unless.(memq.key.'(:data. |
| 429c0 | 3a 68 69 73 74 6f 72 79 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :history.:tools................. |
| 429e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 20 3a 70 | ................:partial_text.:p |
| 42a00 | 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 | artial_json))..............colle |
| 42a20 | 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 69 64 78 20 60 5b 2c 28 66 75 | ct..............(list.idx.`[,(fu |
| 42a40 | 6e 63 61 6c 6c 20 70 62 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 29 0a 20 20 20 20 | ncall.pb.(symbol-name.key))..... |
| 42a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 66 75 6e 63 61 6c 6c 20 70 | .....................,(funcall.p |
| 42a80 | 73 20 28 66 75 6e 63 61 6c 6c 20 66 6d 74 20 76 61 6c 29 29 5d 29 29 29 0a 20 20 20 20 20 20 20 | s.(funcall.fmt.val))])))........ |
| 42aa0 | 20 20 20 20 28 65 6e 74 72 69 65 73 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ....(entries-data.............(c |
| 42ac0 | 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 | l-loop..............for.idx.upfr |
| 42ae0 | 6f 6d 20 35 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 29 | om.50..............for.(key.val) |
| 42b00 | 20 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 20 62 79 20 23 27 | .on.(plist-get.info.:data).by.#' |
| 42b20 | 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 6b | cddr..............unless.(memq.k |
| 42b40 | 65 79 20 27 28 3a 6d 65 73 73 61 67 65 73 20 3a 73 74 72 65 61 6d 20 3a 63 6f 6e 74 65 6e 74 73 | ey.'(:messages.:stream.:contents |
| 42b60 | 20 3a 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 | .:query))..............collect.. |
| 42b80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 69 64 78 20 60 5b 2c 28 66 75 6e 63 61 6c | ............(list.idx.`[,(funcal |
| 42ba0 | 6c 20 70 62 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 | l.pb.(symbol-name.key))......... |
| 42bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 66 75 6e 63 61 6c 6c 20 70 73 20 28 66 | .................,(funcall.ps.(f |
| 42be0 | 75 6e 63 61 6c 6c 20 66 6d 74 20 76 61 6c 29 29 5d 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 | uncall.fmt.val))])))).......(set |
| 42c00 | 71 20 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 | q.tabulated-list-entries........ |
| 42c20 | 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 60 28 32 20 5b 2c 28 66 75 6e 63 61 6c 6c | .....(nconc.(list.`(2.[,(funcall |
| 42c40 | 20 70 62 20 22 3a 73 74 61 74 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .pb.":state")................... |
| 42c60 | 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 66 75 6e 63 61 6c 6c 20 70 73 0a 20 20 20 20 20 20 20 | ............,(funcall.ps........ |
| 42c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e | .........................(mapcon |
| 42ca0 | 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cat............................. |
| 42cc0 | 20 20 20 20 20 66 6d 74 20 28 72 65 76 65 72 73 65 20 28 63 6f 6e 73 20 28 67 70 74 65 6c 2d 66 | .....fmt.(reverse.(cons.(gptel-f |
| 42ce0 | 73 6d 2d 73 74 61 74 65 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sm-state.fsm)................... |
| 42d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | .............................(pl |
| 42d20 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 | ist-get.info.:history)))........ |
| 42d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 e2 86 92 20 | .........................."..... |
| 42d60 | 22 29 29 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 69 65 | "))]))....................entrie |
| 42d80 | 73 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 69 65 | s-info....................entrie |
| 42da0 | 73 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 70 | s-data)).......(tabulated-list-p |
| 42dc0 | 72 69 6e 74 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 6d 6f 64 65 | rint).......(tabulated-list-mode |
| 42de0 | 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 69 6e 69 74 2d 68 65 61 | ).......(tabulated-list-init-hea |
| 42e00 | 64 65 72 29 0a 20 20 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 | der).......(hl-line-mode.1)..... |
| 42e20 | 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 63 75 72 72 65 6e | ..(display-buffer........(curren |
| 42e40 | 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 27 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 | t-buffer)........'((display-buff |
| 42e60 | 65 72 2d 69 6e 2d 73 69 64 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 64 | er-in-side-window)..........(sid |
| 42e80 | 65 20 2e 20 62 6f 74 74 6f 6d 29 0a 20 20 20 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 68 65 69 | e...bottom)..........(window-hei |
| 42ea0 | 67 68 74 20 2e 20 66 69 74 2d 77 69 6e 64 6f 77 2d 74 6f 2d 62 75 66 66 65 72 29 0a 20 20 20 20 | ght...fit-window-to-buffer)..... |
| 42ec0 | 20 20 20 20 20 28 73 6c 6f 74 20 2e 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d | .....(slot...10)..........(body- |
| 42ee0 | 66 75 6e 63 74 69 6f 6e 20 2e 20 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 29 29 29 29 29 0a 0a | function...select-window)))))).. |
| 42f00 | 3b 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 68 61 6e 64 6c 65 72 73 0a 3b 3b 20 54 | ;;;;.State.machine.handlers.;;.T |
| 42f20 | 68 65 20 6e 65 78 74 20 66 65 77 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 66 61 75 6c | he.next.few.functions.are.defaul |
| 42f40 | 74 20 73 74 61 74 65 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 20 67 70 74 65 6c 27 73 20 73 74 61 | t.state.handlers.for.gptel's.sta |
| 42f60 | 74 65 20 6d 61 63 68 69 6e 65 2c 0a 3b 3b 20 73 65 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 | te.machine,.;;.see.`gptel-reques |
| 42f80 | 74 2d 2d 68 61 6e 64 6c 65 72 73 27 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e | t--handlers'...(defun.gptel--han |
| 42fa0 | 64 6c 65 2d 77 61 69 74 20 28 66 73 6d 29 0a 20 20 22 46 69 72 65 20 74 68 65 20 72 65 71 75 65 | dle-wait.(fsm)..."Fire.the.reque |
| 42fc0 | 73 74 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 46 53 | st.contained.in.state.machine.FS |
| 42fe0 | 4d 27 73 20 69 6e 66 6f 2e 22 0a 20 20 3b 3b 20 52 65 73 65 74 20 73 6f 6d 65 20 66 6c 61 67 73 | M's.info."...;;.Reset.some.flags |
| 43000 | 20 69 6e 20 69 6e 66 6f 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 77 68 65 | .in.info...This.is.necessary.whe |
| 43020 | 6e 20 72 65 75 73 69 6e 67 20 66 73 6d 27 73 20 63 6f 6e 74 65 78 74 20 66 6f 72 0a 20 20 3b 3b | n.reusing.fsm's.context.for...;; |
| 43040 | 20 61 20 73 65 63 6f 6e 64 20 6e 65 74 77 6f 72 6b 20 72 65 71 75 65 73 74 3a 20 67 70 74 65 6c | .a.second.network.request:.gptel |
| 43060 | 20 74 65 73 74 73 20 66 6f 72 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 73 65 | .tests.for.the.presence.of.these |
| 43080 | 20 66 6c 61 67 73 20 74 6f 0a 20 20 3b 3b 20 68 61 6e 64 6c 65 20 73 74 61 74 65 20 74 72 61 6e | .flags.to...;;.handle.state.tran |
| 430a0 | 73 69 74 69 6f 6e 73 2e 20 20 28 4e 4f 54 45 3a 20 44 6f 6e 27 74 20 61 64 64 20 3a 74 6f 6b 65 | sitions...(NOTE:.Don't.add.:toke |
| 430c0 | 6e 20 74 6f 20 74 68 69 73 2e 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c | n.to.this.)...(let.((info.(gptel |
| 430e0 | 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 | -fsm-info.fsm))).....(dolist.(ke |
| 43100 | 79 20 27 28 3a 74 6f 6f 6c 2d 73 75 63 63 65 73 73 20 3a 74 6f 6f 6c 2d 75 73 65 20 3a 65 72 72 | y.'(:tool-success.:tool-use.:err |
| 43120 | 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 74 74 70 2d 73 74 61 74 | or....................:http-stat |
| 43140 | 75 73 20 3a 72 65 61 73 6f 6e 69 6e 67 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 29 | us.:reasoning.:reasoning-block)) |
| 43160 | 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 6b 65 79 | .......(when.(plist-get.info.key |
| 43180 | 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 6b 65 79 20 6e 69 | ).........(plist-put.info.key.ni |
| 431a0 | 6c 29 29 29 29 0a 20 20 28 66 75 6e 63 61 6c 6c 0a 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 | l))))...(funcall....(if.gptel-us |
| 431c0 | 65 2d 63 75 72 6c 0a 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 | e-curl........#'gptel-curl-get-r |
| 431e0 | 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 | esponse......#'gptel--url-get-re |
| 43200 | 73 70 6f 6e 73 65 29 0a 20 20 20 66 73 6d 29 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 | sponse)....fsm)...(run-hooks.'gp |
| 43220 | 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 29 0a 20 20 28 77 69 74 68 2d 63 | tel-post-request-hook)...(with-c |
| 43240 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d | urrent-buffer.(plist-get.(gptel- |
| 43260 | 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 28 67 70 74 65 | fsm-info.fsm).:buffer).....(gpte |
| 43280 | 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 | l--update-status.".Waiting...".' |
| 432a0 | 77 61 72 6e 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 | warning)))..(defun.gptel--handle |
| 432c0 | 2d 70 72 65 2d 69 6e 73 65 72 74 20 28 66 73 6d 29 0a 20 20 22 54 61 73 6b 73 20 62 65 66 6f 72 | -pre-insert.(fsm)..."Tasks.befor |
| 432e0 | 65 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 66 6f 72 | e.inserting.the.LLM.response.for |
| 43300 | 20 73 74 61 74 65 20 46 53 4d 2e 0a 0a 48 61 6e 64 6c 65 20 72 65 61 64 2d 6f 6e 6c 79 20 62 75 | .state.FSM...Handle.read-only.bu |
| 43320 | 66 66 65 72 73 20 61 6e 64 20 72 75 6e 20 70 72 65 2d 72 65 73 70 6f 6e 73 65 20 68 6f 6f 6b 73 | ffers.and.run.pre-response.hooks |
| 43340 | 20 28 62 75 74 20 6f 6e 6c 79 20 69 66 0a 74 68 65 20 72 65 71 75 65 73 74 20 73 75 63 63 65 65 | .(but.only.if.the.request.succee |
| 43360 | 64 65 64 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d | ded)."...(let*.((info.(gptel-fsm |
| 43380 | 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b | -info.fsm))..........(start-mark |
| 433a0 | 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 0a | er.(plist-get.info.:position))). |
| 433c0 | 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 | ....(when.(and............(memq. |
| 433e0 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 | (plist-get.info.:callback)...... |
| 43400 | 20 20 20 20 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 | ............'(gptel--insert-resp |
| 43420 | 6f 6e 73 65 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 | onse.gptel-curl--stream-insert-r |
| 43440 | 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 | esponse))............(with-curre |
| 43460 | 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 | nt-buffer.(plist-get.info.:buffe |
| 43480 | 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 62 75 66 66 65 72 2d 72 65 61 64 2d | r)..............(or.buffer-read- |
| 434a0 | 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d | only..................(get-char- |
| 434c0 | 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 27 72 65 61 64 2d 6f 6e 6c 79 | property.start-marker.'read-only |
| 434e0 | 29 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 66 66 65 72 20 69 73 20 72 | )))).......(message."Buffer.is.r |
| 43500 | 65 61 64 20 6f 6e 6c 79 2c 20 64 69 73 70 6c 61 79 69 6e 67 20 72 65 70 6c 79 20 69 6e 20 62 75 | ead.only,.displaying.reply.in.bu |
| 43520 | 66 66 65 72 20 5c 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 5c 22 22 29 0a 20 20 20 20 20 20 | ffer.\"*LLM.response*\"")....... |
| 43540 | 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 | (display-buffer........(with-cur |
| 43560 | 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 | rent-buffer.(get-buffer-create." |
| 43580 | 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 22 29 0a 20 20 20 20 20 20 20 20 20 28 76 69 73 75 61 | *LLM.response*")..........(visua |
| 435a0 | 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 | l-line-mode.1)..........(goto-ch |
| 435c0 | 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d | ar.(point-max))..........(move-m |
| 435e0 | 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 29 20 28 63 75 72 72 | arker.start-marker.(point).(curr |
| 43600 | 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 | ent-buffer))..........(current-b |
| 43620 | 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 27 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 | uffer))........'((display-buffer |
| 43640 | 2d 72 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d | -reuse-window...........display- |
| 43660 | 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 28 | buffer-pop-up-window)..........( |
| 43680 | 72 65 75 73 61 62 6c 65 2d 66 72 61 6d 65 73 20 2e 20 76 69 73 69 62 6c 65 29 29 29 29 0a 20 20 | reusable-frames...visible))))... |
| 436a0 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 | ..(with-current-buffer.(marker-b |
| 436c0 | 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 | uffer.start-marker).......(when. |
| 436e0 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 | (plist-get.info.:stream)........ |
| 43700 | 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 54 79 70 69 6e 67 2e | .(gptel--update-status.".Typing. |
| 43720 | 2e 2e 22 20 27 73 75 63 63 65 73 73 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 | ..".'success)).......(save-excur |
| 43740 | 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 2d 6d 61 | sion.........(goto-char.start-ma |
| 43760 | 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 | rker).........(when.(and.(member |
| 43780 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 20 27 | .(plist-get.info.:http-status).' |
| 437a0 | 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ("200"."100")).................. |
| 437c0 | 20 20 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 | ..gptel-pre-response-hook)...... |
| 437e0 | 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f | .....(run-hooks.'gptel-pre-respo |
| 43800 | 6e 73 65 2d 68 6f 6f 6b 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 | nse-hook))))))..(defun.gptel--ha |
| 43820 | 6e 64 6c 65 2d 70 6f 73 74 2d 69 6e 73 65 72 74 20 28 66 73 6d 29 0a 20 20 22 54 61 73 6b 73 20 | ndle-post-insert.(fsm)..."Tasks. |
| 43840 | 61 66 74 65 72 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 | after.successfully.inserting.the |
| 43860 | 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 20 73 74 61 74 65 20 46 53 4d 2e 0a 0a 49 | .LLM.response.with.state.FSM...I |
| 43880 | 6e 64 69 63 61 74 65 20 67 70 74 65 6c 20 73 74 61 74 75 73 2c 20 70 75 6c 73 65 20 74 68 65 20 | ndicate.gptel.status,.pulse.the. |
| 438a0 | 69 6e 73 65 72 74 65 64 20 74 65 78 74 20 61 6e 64 20 72 75 6e 20 70 6f 73 74 2d 72 65 73 70 6f | inserted.text.and.run.post-respo |
| 438c0 | 6e 73 65 20 68 6f 6f 6b 73 2e 0a 0a 4e 6f 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 | nse.hooks...No.state.transition. |
| 438e0 | 68 65 72 65 20 73 69 6e 63 65 20 74 68 61 74 27 73 20 68 61 6e 64 6c 65 64 20 62 79 20 74 68 65 | here.since.that's.handled.by.the |
| 43900 | 20 70 72 6f 63 65 73 73 20 73 65 6e 74 69 6e 65 6c 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 | .process.sentinels."...(let*.((i |
| 43920 | 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 | nfo.(gptel-fsm-info.fsm))....... |
| 43940 | 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | ...(start-marker.(plist-get.info |
| 43960 | 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d | .:position))..........(tracking- |
| 43980 | 6d 61 72 6b 65 72 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 | marker.(or.(plist-get.info.:trac |
| 439a0 | 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | king-marker).................... |
| 439c0 | 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 | ...........start-marker))....... |
| 439e0 | 20 20 20 3b 3b 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 6d 61 79 20 68 61 76 65 20 62 65 65 6e | ...;;.start-marker.may.have.been |
| 43a00 | 20 6d 6f 76 65 64 20 69 66 20 3a 62 75 66 66 65 72 20 77 61 73 20 72 65 61 64 2d 6f 6e 6c 79 0a | .moved.if.:buffer.was.read-only. |
| 43a20 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 | .........(gptel-buffer.(marker-b |
| 43a40 | 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d | uffer.start-marker))).....(with- |
| 43a60 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 | current-buffer.gptel-buffer..... |
| 43a80 | 20 20 28 69 66 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 20 20 20 20 20 | ..(if.(not.tracking-marker)..... |
| 43aa0 | 20 20 20 20 3b 45 6d 70 74 79 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 | ....;Empty.response...........(w |
| 43ac0 | 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 | hen.gptel-mode.(gptel--update-st |
| 43ae0 | 61 74 75 73 20 22 20 45 6d 70 74 79 20 72 65 73 70 6f 6e 73 65 22 20 27 73 75 63 63 65 73 73 29 | atus.".Empty.response".'success) |
| 43b00 | 29 0a 20 20 20 20 20 20 20 20 28 70 75 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c | ).........(pulse-momentary-highl |
| 43b20 | 69 67 68 74 2d 72 65 67 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e | ight-region.start-marker.trackin |
| 43b40 | 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f | g-marker).........(when.gptel-mo |
| 43b60 | 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f | de...........(save-excursion.(go |
| 43b80 | 74 6f 2d 63 68 61 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 | to-char.tracking-marker)........ |
| 43ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 67 70 74 65 6c | ...................(insert.gptel |
| 43bc0 | 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -response-separator............. |
| 43be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 70 72 6f | ......................(gptel-pro |
| 43c00 | 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | mpt-prefix-string)))...........( |
| 43c20 | 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 20 22 20 52 65 61 64 79 22 20 27 | gptel--update-status..".Ready".' |
| 43c40 | 73 75 63 63 65 73 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 52 75 6e 20 68 6f 6f 6b 20 69 6e 20 76 | success)))).....;;.Run.hook.in.v |
| 43c60 | 69 73 69 62 6c 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 65 74 20 77 69 6e 64 6f 77 2d 70 6f 69 6e | isible.window.to.set.window-poin |
| 43c80 | 74 2c 20 42 55 47 20 23 32 36 39 0a 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c | t,.BUG.#269.....(if-let*.((gptel |
| 43ca0 | 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c | -window.(get-buffer-window.gptel |
| 43cc0 | 2d 62 75 66 66 65 72 20 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 | -buffer.'visible))).........(wit |
| 43ce0 | 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c 2d 77 69 6e 64 6f 77 0a 20 | h-selected-window.gptel-window.. |
| 43d00 | 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 0a 20 20 20 | .........(run-hook-with-args.... |
| 43d20 | 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e | ........'gptel-post-response-fun |
| 43d40 | 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 | ctions............(marker-positi |
| 43d60 | 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f | on.start-marker).(marker-positio |
| 43d80 | 6e 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 | n.tracking-marker))).......(with |
| 43da0 | 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 | -current-buffer.gptel-buffer.... |
| 43dc0 | 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 0a 20 20 20 20 20 20 20 | .....(run-hook-with-args........ |
| 43de0 | 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 | ..'gptel-post-response-functions |
| 43e00 | 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 | ..........(marker-position.start |
| 43e20 | 2d 6d 61 72 6b 65 72 29 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 74 72 61 63 6b 69 | -marker).(marker-position.tracki |
| 43e40 | 6e 67 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 | ng-marker))))))..(defun.gptel--h |
| 43e60 | 61 6e 64 6c 65 2d 65 72 72 6f 72 20 28 66 73 6d 29 0a 20 20 22 43 68 65 63 6b 20 66 6f 72 20 65 | andle-error.(fsm)..."Check.for.e |
| 43e80 | 72 72 6f 72 73 20 69 6e 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 46 53 4d 20 70 65 72 66 6f | rrors.in.request.state.FSM.perfo |
| 43ea0 | 72 6d 20 55 49 20 75 70 64 61 74 65 73 2e 0a 0a 52 75 6e 20 70 6f 73 74 2d 72 65 73 70 6f 6e 73 | rm.UI.updates...Run.post-respons |
| 43ec0 | 65 20 68 6f 6f 6b 73 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 67 | e.hooks."...(when-let*.((info.(g |
| 43ee0 | 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-fsm-info.fsm))............. |
| 43f00 | 20 20 28 65 72 72 6f 72 2d 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 | ..(error-data.(plist-get.info.:e |
| 43f20 | 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 6d 73 67 20 20 | rror))...............(http-msg.. |
| 43f40 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 | .(plist-get.info.:status))...... |
| 43f60 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 | .........(gptel-buffer.(plist-ge |
| 43f80 | 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | t.info.:buffer))...............( |
| 43fa0 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f | start-marker.(plist-get.info.:po |
| 43fc0 | 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 | sition))...............(tracking |
| 43fe0 | 2d 6d 61 72 6b 65 72 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 | -marker.(or.(plist-get.info.:tra |
| 44000 | 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cking-marker)................... |
| 44020 | 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 | ............start-marker))...... |
| 44040 | 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 | .........(backend-name.......... |
| 44060 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 | ......(gptel-backend-name....... |
| 44080 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 | ..........(buffer-local-value.'g |
| 440a0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 | ptel-backend.gptel-buffer))))... |
| 440c0 | 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 65 72 72 6f 72 2d 64 61 74 61 29 0a 20 20 20 20 20 | ..(if.(stringp.error-data)...... |
| 440e0 | 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 | ...(message."%s.error:.(%s).%s". |
| 44100 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 | backend-name.http-msg.(string-tr |
| 44120 | 69 6d 20 65 72 72 6f 72 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a | im.error-data)).......(when-let* |
| 44140 | 20 28 28 65 72 72 6f 72 2d 74 79 70 65 20 28 70 6c 69 73 74 2d 67 65 74 20 65 72 72 6f 72 2d 64 | .((error-type.(plist-get.error-d |
| 44160 | 61 74 61 20 3a 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 74 74 70 2d | ata.:type))).........(setq.http- |
| 44180 | 6d 73 67 20 28 63 6f 6e 63 61 74 20 22 28 22 20 20 68 74 74 70 2d 6d 73 67 20 22 29 20 22 20 28 | msg.(concat."("..http-msg.").".( |
| 441a0 | 73 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 74 79 70 65 29 29 29 29 0a 20 20 20 20 20 | string-trim.error-type))))...... |
| 441c0 | 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 65 72 72 6f 72 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 | .(when-let*.((error-msg.(plist-g |
| 441e0 | 65 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 20 20 | et.error-data.:message)))....... |
| 44200 | 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 | ..(message."%s.error:.(%s).%s".b |
| 44220 | 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 | ackend-name.http-msg.(string-tri |
| 44240 | 6d 20 65 72 72 6f 72 2d 6d 73 67 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e | m.error-msg)))).....(with-curren |
| 44260 | 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 | t-buffer.gptel-buffer.......(whe |
| 44280 | 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 | n.gptel-mode.........(gptel--upd |
| 442a0 | 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 45 72 | ate-status..........(format.".Er |
| 442c0 | 72 6f 72 3a 20 25 73 22 20 68 74 74 70 2d 6d 73 67 29 20 27 65 72 72 6f 72 29 29 29 0a 20 20 20 | ror:.%s".http-msg).'error))).... |
| 442e0 | 20 28 69 66 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 | .(if-let*.((gptel-window.(get-bu |
| 44300 | 66 66 65 72 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c 2d 62 75 66 66 65 72 20 27 76 69 73 69 62 6c | ffer-window.gptel-buffer.'visibl |
| 44320 | 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 | e))).........(with-selected-wind |
| 44340 | 6f 77 20 67 70 74 65 6c 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 | ow.gptel-window...........(run-h |
| 44360 | 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d | ook-with-args............'gptel- |
| 44380 | 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 | post-response-functions......... |
| 443a0 | 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 | ...(marker-position.start-marker |
| 443c0 | 29 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b | ).(marker-position.tracking-mark |
| 443e0 | 65 72 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | er))).......(with-current-buffer |
| 44400 | 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d | .gptel-buffer.........(run-hook- |
| 44420 | 77 69 74 68 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 | with-args..........'gptel-post-r |
| 44440 | 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b | esponse-functions..........(mark |
| 44460 | 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 20 28 6d 61 72 6b 65 | er-position.start-marker).(marke |
| 44480 | 72 2d 70 6f 73 69 74 69 6f 6e 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 | r-position.tracking-marker)))))) |
| 444a0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 20 | ..(defun.gptel--handle-tool-use. |
| 444c0 | 28 66 73 6d 29 0a 20 20 22 52 75 6e 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 63 61 70 74 75 72 65 64 | (fsm)..."Run.tool.calls.captured |
| 444e0 | 20 69 6e 20 46 53 4d 2c 20 61 6e 64 20 61 64 76 61 6e 63 65 20 74 68 65 20 73 74 61 74 65 20 6d | .in.FSM,.and.advance.the.state.m |
| 44500 | 61 63 68 69 6e 65 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 28 77 68 65 | achine.with.the.results."...(whe |
| 44520 | 6e 2d 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 | n-let*.((info.(gptel-fsm-info.fs |
| 44540 | 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 | m))...............(backend.(plis |
| 44560 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 | t-get.info.:backend))........... |
| 44580 | 20 20 20 20 3b 3b 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 6d 69 67 68 74 20 72 75 6e 20 6d | ....;;.This.function.might.run.m |
| 445a0 | 61 6e 79 20 74 69 6d 65 73 2c 20 73 6f 20 6f 6e 6c 79 20 61 63 74 20 6f 6e 20 74 68 65 20 72 65 | any.times,.so.only.act.on.the.re |
| 445c0 | 6d 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | maining.tool.calls.............. |
| 445e0 | 20 20 28 74 6f 6f 6c 2d 75 73 65 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 | ..(tool-use.(cl-remove-if.(lambd |
| 44600 | 61 20 28 74 63 29 20 28 70 6c 69 73 74 2d 67 65 74 20 74 63 20 3a 72 65 73 75 6c 74 29 29 0a 20 | a.(tc).(plist-get.tc.:result)).. |
| 44620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 44640 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 | .....(plist-get.info.:tool-use)) |
| 44660 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 6f 6f 6c 73 20 28 6c 65 6e 67 74 68 20 | )...............(ntools.(length. |
| 44680 | 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 69 | tool-use))...............(tool-i |
| 446a0 | 64 78 20 30 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | dx.0)).....(with-current-buffer. |
| 446c0 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 | (plist-get.info.:buffer).......( |
| 446e0 | 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | when.gptel-mode.........(gptel-- |
| 44700 | 75 70 64 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 | update-status..........(format." |
| 44720 | 20 43 61 6c 6c 69 6e 67 20 74 6f 6f 6c 2e 2e 2e 22 20 29 20 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 | .Calling.tool...".).'mode-line-e |
| 44740 | 6d 70 68 61 73 69 73 29 29 0a 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 2d 61 | mphasis))........(let.((result-a |
| 44760 | 6c 69 73 74 29 20 28 70 65 6e 64 69 6e 67 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 | list).(pending-calls)).........( |
| 44780 | 6d 61 70 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | mapc...........................; |
| 447a0 | 20 43 6f 6e 73 74 72 75 63 74 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 | .Construct.function.calls....... |
| 447c0 | 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 | ...(lambda.(tool-call).......... |
| 447e0 | 20 20 28 6c 65 74 72 65 63 20 28 28 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c | ..(letrec.((args.(plist-get.tool |
| 44800 | 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -call.:args))................... |
| 44820 | 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 | ..(name.(plist-get.tool-call.:na |
| 44840 | 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 2d 76 61 | me)).....................(arg-va |
| 44860 | 6c 75 65 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 | lues.nil).....................(t |
| 44880 | 6f 6f 6c 2d 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ool-spec......................(c |
| 448a0 | 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-find-if....................... |
| 448c0 | 28 6c 61 6d 62 64 61 20 28 74 73 29 20 28 65 71 75 61 6c 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d | (lambda.(ts).(equal.(gptel-tool- |
| 448e0 | 6e 61 6d 65 20 74 73 29 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | name.ts).name))................. |
| 44900 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 29 29 0a | ......(plist-get.info.:tools))). |
| 44920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 74 6f 6f | ....................(process-too |
| 44940 | 6c 2d 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | l-result......................(l |
| 44960 | 61 6d 62 64 61 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ambda.(result).................. |
| 44980 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 73 75 63 63 | ......(plist-put.info.:tool-succ |
| 449a0 | 65 73 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | ess.t)........................(l |
| 449c0 | 65 74 20 28 28 72 65 73 75 6c 74 20 28 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 | et.((result.(gptel--to-string.re |
| 449e0 | 73 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sult)))......................... |
| 44a00 | 20 28 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 20 72 65 | .(plist-put.tool-call.:result.re |
| 44a20 | 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | sult)..........................( |
| 44a40 | 70 75 73 68 20 28 6c 69 73 74 20 74 6f 6f 6c 2d 73 70 65 63 20 61 72 67 73 20 72 65 73 75 6c 74 | push.(list.tool-spec.args.result |
| 44a60 | 29 20 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).result-alist))................ |
| 44a80 | 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 74 6f 6f 6c 2d 69 64 78 29 0a 20 20 20 20 20 | ........(cl-incf.tool-idx)...... |
| 44aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 74 6f 6f 6c | ..................(when.(>=.tool |
| 44ac0 | 2d 69 64 78 20 6e 74 6f 6f 6c 73 29 20 3b 20 41 6c 6c 20 74 6f 6f 6c 73 20 68 61 76 65 20 72 75 | -idx.ntools).;.All.tools.have.ru |
| 44ae0 | 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 | n..........................(gpte |
| 44b00 | 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--inject-prompt................ |
| 44b20 | 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | ...........backend.(plist-get.in |
| 44b40 | 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.:data)....................... |
| 44b60 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 | ....(gptel--parse-tool-results.. |
| 44b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e | ..........................backen |
| 44ba0 | 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 | d.(plist-get.info.:tool-use))).. |
| 44bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | ........................(funcall |
| 44be0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 | .(plist-get.info.:callback)..... |
| 44c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ..............................(c |
| 44c20 | 6f 6e 73 20 27 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 20 69 | ons.'tool-result.result-alist).i |
| 44c40 | 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | nfo)..........................(g |
| 44c60 | 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 29 29 29 29 0a 20 20 | ptel--fsm-transition.fsm)))))... |
| 44c80 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 74 6f 6f 6c 2d 73 70 65 63 29 0a | ...........(if.(null.tool-spec). |
| 44ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 55 6e 6b 6e 6f | .................(message."Unkno |
| 44cc0 | 77 6e 20 74 6f 6f 6c 20 63 61 6c 6c 65 64 20 62 79 20 6d 6f 64 65 6c 3a 20 25 73 22 20 6e 61 6d | wn.tool.called.by.model:.%s".nam |
| 44ce0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 2d 76 61 6c 75 | e)................(setq.arg-valu |
| 44d00 | 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a | es......................(mapcar. |
| 44d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 | ......................(lambda.(a |
| 44d40 | 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 | rg).........................(let |
| 44d60 | 20 28 28 6b 65 79 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 3a 22 20 28 70 6c 69 73 | .((key.(intern.(concat.":".(plis |
| 44d80 | 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t-get.arg.:name)))))............ |
| 44da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 73 20 6b | ...............(plist-get.args.k |
| 44dc0 | 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | ey))).......................(gpt |
| 44de0 | 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 2d 73 70 65 63 29 29 29 0a 20 20 20 20 20 20 | el-tool-args.tool-spec)))....... |
| 44e00 | 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 74 6f 6f 6c 20 72 65 71 75 69 72 | .........;;.Check.if.tool.requir |
| 44e20 | 65 73 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | es.confirmation................( |
| 44e40 | 69 66 20 28 61 6e 64 20 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 | if.(and.gptel-confirm-tool-calls |
| 44e60 | 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c | .(or.(eq.gptel-confirm-tool-call |
| 44e80 | 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.t)............................ |
| 44ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | ..........................(gptel |
| 44ec0 | 2d 74 6f 6f 6c 2d 63 6f 6e 66 69 72 6d 20 74 6f 6f 6c 2d 73 70 65 63 29 29 29 0a 20 20 20 20 20 | -tool-confirm.tool-spec)))...... |
| 44ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 74 6f 6f 6c 2d 73 | ..............(push.(list.tool-s |
| 44f00 | 70 65 63 20 61 72 67 2d 76 61 6c 75 65 73 20 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 | pec.arg-values.process-tool-resu |
| 44f20 | 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 65 6e | lt)..........................pen |
| 44f40 | 64 69 6e 67 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | ding-calls)..................;;. |
| 44f60 | 49 66 20 6e 6f 74 2c 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | If.not,.run.the.tool............ |
| 44f80 | 20 20 20 20 20 20 28 69 66 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 73 79 6e 63 20 74 6f 6f 6c | ......(if.(gptel-tool-async.tool |
| 44fa0 | 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 | -spec)......................(app |
| 44fc0 | 6c 79 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 74 6f 6f 6c 2d 73 70 65 | ly.(gptel-tool-function.tool-spe |
| 44fe0 | 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 | c).............................p |
| 45000 | 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 61 72 67 2d 76 61 6c 75 65 73 29 0a 20 | rocess-tool-result.arg-values).. |
| 45020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 0a | ..................(let.((result. |
| 45040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 | ..........................(condi |
| 45060 | 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tion-case.errdata............... |
| 45080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 28 67 70 74 65 6c 2d 74 6f | ................(apply.(gptel-to |
| 450a0 | 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 74 6f 6f 6c 2d 73 70 65 63 29 20 61 72 67 2d 76 61 6c 75 65 | ol-function.tool-spec).arg-value |
| 450c0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | s).............................( |
| 450e0 | 65 72 72 6f 72 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 | error.(mapconcat.#'gptel--to-str |
| 45100 | 69 6e 67 20 65 72 72 64 61 74 61 20 22 20 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ing.errdata.".")))))............ |
| 45120 | 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d | ..........(funcall.process-tool- |
| 45140 | 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 74 6f | result.result)))))))..........to |
| 45160 | 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 65 6e 64 69 6e 67 2d 63 61 | ol-use).........(when.pending-ca |
| 45180 | 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c | lls...........(setq.gptel--fsm-l |
| 451a0 | 61 73 74 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d | ast.fsm)...........(when.gptel-m |
| 451c0 | 6f 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 | ode.(gptel--update-status....... |
| 451e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 | ......................(format.". |
| 45200 | 52 75 6e 20 74 6f 6f 6c 73 3f 22 20 29 20 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 | Run.tools?".).'mode-line-emphasi |
| 45220 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 | s))...........(funcall.(plist-ge |
| 45240 | 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:callback)............... |
| 45260 | 20 20 20 20 20 28 63 6f 6e 73 20 27 74 6f 6f 6c 2d 63 61 6c 6c 20 70 65 6e 64 69 6e 67 2d 63 61 | .....(cons.'tool-call.pending-ca |
| 45280 | 6c 6c 73 29 20 69 6e 66 6f 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 | lls).info))))))..;;;;.State.mach |
| 452a0 | 69 6e 65 20 70 72 65 64 69 63 61 74 65 73 0a 3b 3b 20 50 72 65 64 69 63 61 74 65 73 20 75 73 65 | ine.predicates.;;.Predicates.use |
| 452c0 | 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 20 74 6f 20 74 72 61 6e | d.to.find.the.next.state.to.tran |
| 452e0 | 73 69 74 69 6f 6e 20 74 6f 2c 20 73 65 65 0a 3b 3b 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 | sition.to,.see.;;.`gptel-request |
| 45300 | 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 27 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 65 | --transitions'...(defun.gptel--e |
| 45320 | 72 72 6f 72 2d 70 20 28 69 6e 66 6f 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 | rror-p.(info).(plist-get.info.:e |
| 45340 | 72 72 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 75 73 65 2d 70 | rror))..(defun.gptel--tool-use-p |
| 45360 | 20 28 69 6e 66 6f 29 0a 20 20 28 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | .(info)...(and.(plist-get.info.: |
| 45380 | 74 6f 6f 6c 73 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 | tools).(plist-get.info.:tool-use |
| 453a0 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 2d 70 | )))..(defun.gptel--tool-result-p |
| 453c0 | 20 28 69 6e 66 6f 29 0a 20 20 28 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | .(info)...(and.(plist-get.info.: |
| 453e0 | 74 6f 6f 6c 73 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 73 75 63 | tools).(plist-get.info.:tool-suc |
| 45400 | 63 65 73 73 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 28 70 72 6f 6d 70 74 2d 6c 69 73 74 29 3a 20 44 | cess)))..;;.TODO(prompt-list):.D |
| 45420 | 6f 63 75 6d 65 6e 74 20 6e 65 77 20 70 72 6f 6d 70 74 20 69 6e 70 75 74 20 66 6f 72 6d 61 74 20 | ocument.new.prompt.input.format. |
| 45440 | 74 6f 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 2e 0a 0c 0a 3b 3b 3b 20 53 65 6e 64 20 71 | to.`gptel-request'....;;;.Send.q |
| 45460 | 75 65 72 69 65 73 2c 20 68 61 6e 64 6c 65 20 72 65 73 70 6f 6e 73 65 73 0a 28 63 6c 2d 64 65 66 | ueries,.handle.responses.(cl-def |
| 45480 | 75 6e 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 0a 20 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 | un.gptel-request.....(&optional. |
| 454a0 | 70 72 6f 6d 70 74 20 26 6b 65 79 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 | prompt.&key.callback............ |
| 454c0 | 20 20 20 20 28 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 | ....(buffer.(current-buffer))... |
| 454e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 70 6f 73 69 74 69 6f 6e 20 63 6f 6e 74 65 78 74 20 64 72 | .............position.context.dr |
| 45500 | 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 6e 69 6c | y-run................(stream.nil |
| 45520 | 29 20 28 69 6e 2d 70 6c 61 63 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).(in-place.nil)................ |
| 45540 | 28 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 | (system.gptel--system-message).. |
| 45560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 6e 73 66 6f 72 6d 73 20 28 66 73 6d 20 28 67 | ..............transforms.(fsm.(g |
| 45580 | 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 29 29 29 0a 20 20 22 52 65 71 75 65 73 74 20 61 20 72 65 | ptel-make-fsm)))..."Request.a.re |
| 455a0 | 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 | sponse.from.the.`gptel-backend'. |
| 455c0 | 66 6f 72 20 50 52 4f 4d 50 54 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 20 61 73 79 6e | for.PROMPT...The.request.is.asyn |
| 455e0 | 63 68 72 6f 6e 6f 75 73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 | chronous,.this.function.returns. |
| 45600 | 69 6d 6d 65 64 69 61 74 65 6c 79 2e 0a 0a 49 66 20 50 52 4f 4d 50 54 20 69 73 0a 2d 20 61 20 73 | immediately...If.PROMPT.is.-.a.s |
| 45620 | 74 72 69 6e 67 2c 20 69 74 20 69 73 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 75 | tring,.it.is.used.to.create.a.fu |
| 45640 | 6c 6c 20 70 72 6f 6d 70 74 20 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 20 20 73 65 6e 64 69 6e 67 | ll.prompt.suitable.for...sending |
| 45660 | 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 2d 20 41 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 | .to.the.LLM..-.A.list.of.strings |
| 45680 | 2c 20 69 74 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 63 6f 6e 76 65 72 73 | ,.it.is.interpreted.as.a.convers |
| 456a0 | 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 61 0a 20 20 73 65 72 69 65 73 20 6f 66 20 61 6c 74 65 72 6e | ation,.i.e..a...series.of.altern |
| 456c0 | 61 74 69 6e 67 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f | ating.user.prompts.and.LLM.respo |
| 456e0 | 6e 73 65 73 2e 0a 20 20 28 5c 22 75 73 65 72 20 6d 73 67 20 31 5c 22 20 5c 22 6c 6c 6d 20 6d 73 | nses....(\"user.msg.1\".\"llm.ms |
| 45700 | 67 20 31 5c 22 20 5c 22 75 73 65 72 20 6d 73 67 20 32 5c 22 20 5c 22 6c 6c 6d 20 6d 73 67 20 32 | g.1\".\"user.msg.2\".\"llm.msg.2 |
| 45720 | 5c 22 20 2e 2e 2e 29 0a 2d 20 6e 69 6c 20 62 75 74 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 | \"....).-.nil.but.region.is.acti |
| 45740 | 76 65 2c 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 75 73 65 64 | ve,.the.region.contents.are.used |
| 45760 | 2e 0a 2d 20 6e 69 6c 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 27 73 20 63 6f | ..-.nil,.the.current.buffer's.co |
| 45780 | 6e 74 65 6e 74 73 20 75 70 20 74 6f 20 28 70 6f 69 6e 74 29 20 61 72 65 20 75 73 65 64 2e 0a 20 | ntents.up.to.(point).are.used... |
| 457a0 | 20 50 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 73 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d | .Previous.responses.from.the.LLM |
| 457c0 | 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 64 20 61 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 4b | .are.identified.as.responses...K |
| 457e0 | 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 41 4c 4c 42 41 43 4b 2c 20 69 66 20 | eyword.arguments:..CALLBACK,.if. |
| 45800 | 73 75 70 70 6c 69 65 64 2c 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 77 6f 20 61 | supplied,.is.a.function.of.two.a |
| 45820 | 72 67 75 6d 65 6e 74 73 2c 20 63 61 6c 6c 65 64 0a 77 69 74 68 20 74 68 65 20 52 45 53 50 4f 4e | rguments,.called.with.the.RESPON |
| 45840 | 53 45 20 28 75 73 75 61 6c 6c 79 20 61 20 73 74 72 69 6e 67 29 20 61 6e 64 20 49 4e 46 4f 20 28 | SE.(usually.a.string).and.INFO.( |
| 45860 | 61 20 70 6c 69 73 74 29 3a 0a 0a 20 28 66 75 6e 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 52 45 | a.plist):...(funcall.CALLBACK.RE |
| 45880 | 53 50 4f 4e 53 45 20 49 4e 46 4f 29 0a 0a 52 45 53 50 4f 4e 53 45 20 69 73 0a 0a 2d 20 41 20 73 | SPONSE.INFO)..RESPONSE.is..-.A.s |
| 458a0 | 74 72 69 6e 67 20 69 66 20 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 75 63 63 65 73 73 | tring.if.the.request.was.success |
| 458c0 | 66 75 6c 0a 2d 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 72 65 73 70 6f 6e | ful.-.nil.if.there.was.no.respon |
| 458e0 | 73 65 20 6f 72 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 6f | se.or.an.error...These.are.the.o |
| 45900 | 6e 6c 79 20 74 77 6f 20 63 61 73 65 73 20 79 6f 75 20 74 79 70 69 63 61 6c 6c 79 20 6e 65 65 64 | nly.two.cases.you.typically.need |
| 45920 | 20 74 6f 20 63 6f 6e 73 69 64 65 72 2c 0a 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65 65 64 20 74 6f | .to.consider,.unless.you.need.to |
| 45940 | 20 63 6c 65 61 6e 20 75 70 20 61 66 74 65 72 20 61 62 6f 72 74 65 64 20 72 65 71 75 65 73 74 73 | .clean.up.after.aborted.requests |
| 45960 | 2c 20 75 73 65 20 4c 4c 4d 0a 74 6f 6f 6c 73 2c 20 68 61 6e 64 6c 65 20 5c 22 72 65 61 73 6f 6e | ,.use.LLM.tools,.handle.\"reason |
| 45980 | 69 6e 67 5c 22 20 63 6f 6e 74 65 6e 74 20 73 70 65 63 69 61 6c 6c 79 20 6f 72 20 73 74 72 65 61 | ing\".content.specially.or.strea |
| 459a0 | 6d 0a 72 65 73 70 6f 6e 73 65 73 20 28 73 65 65 20 53 54 52 45 41 4d 29 2e 20 20 49 6e 20 74 68 | m.responses.(see.STREAM)...In.th |
| 459c0 | 65 73 65 20 63 61 73 65 73 2c 20 52 45 53 50 4f 4e 53 45 20 63 61 6e 20 62 65 0a 0a 2d 20 54 68 | ese.cases,.RESPONSE.can.be..-.Th |
| 459e0 | 65 20 73 79 6d 62 6f 6c 20 60 61 62 6f 72 74 27 20 69 66 20 74 68 65 20 72 65 71 75 65 73 74 20 | e.symbol.`abort'.if.the.request. |
| 45a00 | 69 73 20 61 62 6f 72 74 65 64 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 61 62 6f 72 74 27 2e 0a 0a | is.aborted,.see.`gptel-abort'... |
| 45a20 | 2d 20 41 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 0a 20 20 28 74 6f | -.A.cons.cell.of.the.form....(to |
| 45a40 | 6f 6c 2d 63 61 6c 6c 20 2e 20 28 28 54 4f 4f 4c 20 41 52 47 53 20 43 42 29 20 2e 2e 2e 29 29 0a | ol-call...((TOOL.ARGS.CB)....)). |
| 45a60 | 0a 20 20 77 68 65 72 65 20 54 4f 4f 4c 20 69 73 20 61 20 67 70 74 65 6c 2d 74 6f 6f 6c 20 73 74 | ...where.TOOL.is.a.gptel-tool.st |
| 45a80 | 72 75 63 74 2c 20 41 52 47 53 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 0a 20 20 61 72 67 75 6d | ruct,.ARGS.is.a.plist.of...argum |
| 45aa0 | 65 6e 74 73 2c 20 61 6e 64 20 43 42 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 68 | ents,.and.CB.is.a.function.for.h |
| 45ac0 | 61 6e 64 6c 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 59 6f 75 0a 20 20 63 61 6e 20 | andling.the.results...You...can. |
| 45ae0 | 63 61 6c 6c 20 43 42 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 | call.CB.with.the.result.of.calli |
| 45b00 | 6e 67 20 74 68 65 20 74 6f 6f 6c 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 0a 20 20 72 65 | ng.the.tool.to.continue.the...re |
| 45b20 | 71 75 65 73 74 2e 0a 0a 2d 20 41 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 74 68 65 20 66 6f 72 | quest...-.A.cons.cell.of.the.for |
| 45b40 | 6d 0a 0a 20 20 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 28 28 54 4f 4f 4c 20 41 52 47 53 20 | m....(tool-result...((TOOL.ARGS. |
| 45b60 | 52 45 53 55 4c 54 29 20 2e 2e 2e 29 29 0a 0a 20 20 77 68 65 72 65 20 54 4f 4f 4c 20 69 73 20 61 | RESULT)....))....where.TOOL.is.a |
| 45b80 | 20 67 70 74 65 6c 2d 74 6f 6f 6c 20 73 74 72 75 63 74 2c 20 41 52 47 53 20 69 73 20 61 20 70 6c | .gptel-tool.struct,.ARGS.is.a.pl |
| 45ba0 | 69 73 74 20 6f 66 0a 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 52 45 53 55 4c 54 20 77 | ist.of...arguments,.and.RESULT.w |
| 45bc0 | 61 73 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 74 6f 6f | as.returned.from.calling.the.too |
| 45be0 | 6c 0a 20 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 2d 20 41 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 | l...function...-.A.cons.cell.of. |
| 45c00 | 74 68 65 20 66 6f 72 6d 0a 0a 20 20 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 65 78 74 29 0a 0a | the.form....(reasoning...text).. |
| 45c20 | 20 20 77 68 65 72 65 20 74 65 78 74 20 69 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 | ..where.text.is.the.contents.of. |
| 45c40 | 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 2e 20 20 28 41 6c 73 6f 20 73 65 65 0a | the.reasoning.block...(Also.see. |
| 45c60 | 20 20 53 54 52 45 41 4d 20 69 66 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 73 74 72 65 61 6d | ..STREAM.if.you.are.using.stream |
| 45c80 | 69 6e 67 2e 29 0a 0a 53 65 65 20 60 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e | ing.)..See.`gptel--insert-respon |
| 45ca0 | 73 65 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 20 63 61 6c 6c 62 61 63 6b 20 68 61 6e 64 | se'.for.an.example.callback.hand |
| 45cc0 | 6c 69 6e 67 20 61 6c 6c 0a 63 61 73 65 73 2e 0a 0a 54 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 | ling.all.cases...The.INFO.plist. |
| 45ce0 | 68 61 73 20 28 61 74 20 6c 65 61 73 74 29 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 | has.(at.least).the.following.key |
| 45d00 | 73 3a 0a 3a 64 61 74 61 20 20 20 20 20 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 20 64 | s:.:data.........-.The.request.d |
| 45d20 | 61 74 61 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 71 75 65 72 79 0a 3a 70 6f 73 | ata.included.with.the.query.:pos |
| 45d40 | 69 74 69 6f 6e 20 20 20 20 20 2d 20 6d 61 72 6b 65 72 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 | ition.....-.marker.at.the.point. |
| 45d60 | 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 20 75 6e 6c 65 73 73 0a 20 20 20 | the.request.was.sent,.unless.... |
| 45d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 69 73 20 73 70 65 63 69 66 69 | .............POSITION.is.specifi |
| 45da0 | 65 64 2e 0a 3a 62 75 66 66 65 72 20 20 20 20 20 20 20 2d 20 54 68 65 20 62 75 66 66 65 72 20 63 | ed..:buffer.......-.The.buffer.c |
| 45dc0 | 75 72 72 65 6e 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 | urrent.when.the.request.was.sent |
| 45de0 | 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 42 55 46 46 45 52 20 | ,.................unless.BUFFER. |
| 45e00 | 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 3a 73 74 61 74 75 73 20 20 20 20 20 20 20 2d 20 53 68 | is.specified..:status.......-.Sh |
| 45e20 | 6f 72 74 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 | ort.string.describing.the.result |
| 45e40 | 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .of.the.request,................ |
| 45e60 | 20 69 6e 63 6c 75 64 69 6e 67 20 70 6f 73 73 69 62 6c 65 20 48 54 54 50 20 65 72 72 6f 72 73 2e | .including.possible.HTTP.errors. |
| 45e80 | 0a 0a 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 61 6c 6c 62 61 63 6b 20 74 68 61 74 20 6d 65 73 | ..Example.of.a.callback.that.mes |
| 45ea0 | 73 61 67 65 73 20 74 68 65 20 75 73 65 72 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 | sages.the.user.with.the.response |
| 45ec0 | 0a 61 6e 64 20 69 6e 66 6f 3a 0a 0a 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 6f 6e 73 65 20 69 | .and.info:...(lambda.(response.i |
| 45ee0 | 6e 66 6f 29 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 | nfo)...(if.(stringp.response)... |
| 45f00 | 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e | ....(let.((posn.(marker-position |
| 45f20 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 | .(plist-get.info.:position)))... |
| 45f40 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 6c | ..........(buf..(buffer-name.(pl |
| 45f60 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 | ist-get.info.:buffer))))........ |
| 45f80 | 20 28 6d 65 73 73 61 67 65 20 5c 22 52 65 73 70 6f 6e 73 65 20 66 6f 72 20 72 65 71 75 65 73 74 | .(message.\"Response.for.request |
| 45fa0 | 20 66 72 6f 6d 20 25 53 20 61 74 20 25 64 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .from.%S.at.%d:.%s\"............ |
| 45fc0 | 20 20 20 20 20 20 62 75 66 20 70 6f 73 6e 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 28 6d | ......buf.posn.response)).....(m |
| 45fe0 | 65 73 73 61 67 65 20 5c 22 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 66 61 69 6c 65 64 20 77 69 | essage.\"gptel-request.failed.wi |
| 46000 | 74 68 20 6d 65 73 73 61 67 65 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | th.message:.%s\"..............(p |
| 46020 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 0a 0a 4f 72 2c 20 66 | list-get.info.:status))))..Or,.f |
| 46040 | 6f 72 20 6a 75 73 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 3a 0a 0a 20 28 6c 61 6d 62 64 61 20 | or.just.the.response:...(lambda. |
| 46060 | 28 72 65 73 70 6f 6e 73 65 20 5f 29 0a 20 20 3b 3b 20 44 6f 20 73 6f 6d 65 74 68 69 6e 67 20 77 | (response._)...;;.Do.something.w |
| 46080 | 69 74 68 20 72 65 73 70 6f 6e 73 65 0a 20 20 28 6d 65 73 73 61 67 65 20 28 72 6f 74 31 33 2d 73 | ith.response...(message.(rot13-s |
| 460a0 | 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 49 66 20 43 41 4c 4c 42 41 43 4b 20 69 | tring.response)))..If.CALLBACK.i |
| 460c0 | 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 | s.omitted,.the.response.is.inser |
| 460e0 | 74 65 64 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 0a 72 65 71 75 65 73 74 20 77 61 73 | ted.at.the.point.the.request.was |
| 46100 | 20 73 65 6e 74 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 68 61 74 | .sent...STREAM.is.a.boolean.that |
| 46120 | 20 64 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 73 68 6f 75 | .determines.if.the.response.shou |
| 46140 | 6c 64 20 62 65 0a 73 74 72 65 61 6d 65 64 2c 20 61 73 20 69 6e 20 60 67 70 74 65 6c 2d 73 74 72 | ld.be.streamed,.as.in.`gptel-str |
| 46160 | 65 61 6d 27 2e 20 20 49 66 20 74 68 65 20 6d 6f 64 65 6c 20 6f 72 20 74 68 65 20 62 61 63 6b 65 | eam'...If.the.model.or.the.backe |
| 46180 | 6e 64 20 64 6f 65 73 0a 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 74 72 65 61 6d 69 6e 67 2c 20 74 | nd.does.not.support.streaming,.t |
| 461a0 | 68 69 73 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a 57 68 65 6e 20 73 74 72 65 61 | his.will.be.ignored...When.strea |
| 461c0 | 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 0a 2d 20 43 41 4c 4c 42 41 43 4b 20 77 69 6c 6c 20 | ming.responses..-.CALLBACK.will. |
| 461e0 | 62 65 20 63 61 6c 6c 65 64 20 72 65 70 65 61 74 65 64 6c 79 20 77 69 74 68 20 65 61 63 68 20 52 | be.called.repeatedly.with.each.R |
| 46200 | 45 53 50 4f 4e 53 45 20 74 65 78 74 0a 20 20 63 68 75 6e 6b 20 28 61 20 73 74 72 69 6e 67 29 20 | ESPONSE.text...chunk.(a.string). |
| 46220 | 61 73 20 69 74 20 69 73 20 72 65 63 65 69 76 65 64 2e 0a 2d 20 57 68 65 6e 20 74 68 65 20 48 54 | as.it.is.received..-.When.the.HT |
| 46240 | 54 50 20 72 65 71 75 65 73 74 20 65 6e 64 73 20 73 75 63 63 65 73 73 66 75 6c 6c 79 2c 20 43 41 | TP.request.ends.successfully,.CA |
| 46260 | 4c 4c 42 41 43 4b 20 77 69 6c 6c 20 62 65 0a 20 20 63 61 6c 6c 65 64 20 77 69 74 68 20 61 20 52 | LLBACK.will.be...called.with.a.R |
| 46280 | 45 53 50 4f 4e 53 45 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 74 20 74 6f 20 69 6e 64 69 63 61 74 | ESPONSE.argument.of.t.to.indicat |
| 462a0 | 65 20 73 75 63 63 65 73 73 2e 0a 2d 20 53 69 6d 69 6c 61 72 6c 79 2c 20 43 41 4c 4c 42 41 43 4b | e.success..-.Similarly,.CALLBACK |
| 462c0 | 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 0a 20 20 28 72 65 61 73 6f 6e 69 6e | .will.be.called.with...(reasonin |
| 462e0 | 67 20 2e 20 74 65 78 74 2d 63 68 75 6e 6b 29 20 66 6f 72 20 65 61 63 68 20 72 65 61 73 6f 6e 69 | g...text-chunk).for.each.reasoni |
| 46300 | 6e 67 20 63 68 75 6e 6b 2c 20 61 6e 64 0a 20 20 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 29 20 | ng.chunk,.and...(reasoning...t). |
| 46320 | 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 72 65 61 73 6f | to.indicate.the.end.of.the.reaso |
| 46340 | 6e 69 6e 67 20 62 6c 6f 63 6b 2e 0a 0a 42 55 46 46 45 52 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e | ning.block...BUFFER.and.POSITION |
| 46360 | 20 61 72 65 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 28 69 6e | .are.the.buffer.and.position.(in |
| 46380 | 74 65 67 65 72 20 6f 72 0a 6d 61 72 6b 65 72 29 20 61 74 20 77 68 69 63 68 20 74 68 65 20 72 65 | teger.or.marker).at.which.the.re |
| 463a0 | 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 2e 20 20 49 66 20 61 20 43 41 4c 4c 42 41 | sponse.is.inserted...If.a.CALLBA |
| 463c0 | 43 4b 20 69 73 0a 73 70 65 63 69 66 69 65 64 2c 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 69 73 20 | CK.is.specified,.no.response.is. |
| 463e0 | 69 6e 73 65 72 74 65 64 20 61 6e 64 20 74 68 65 73 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 | inserted.and.these.arguments.are |
| 46400 | 0a 69 67 6e 6f 72 65 64 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 74 69 6c 6c 20 61 76 61 | .ignored,.but.they.are.still.ava |
| 46420 | 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 70 61 73 73 65 64 0a | ilable.in.the.INFO.plist.passed. |
| 46440 | 74 6f 20 43 41 4c 4c 42 41 43 4b 20 66 6f 72 20 79 6f 75 20 74 6f 20 75 73 65 2e 0a 0a 42 55 46 | to.CALLBACK.for.you.to.use...BUF |
| 46460 | 46 45 52 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 | FER.defaults.to.the.current.buff |
| 46480 | 65 72 2c 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e 20 74 6f 20 74 68 65 20 76 61 6c 75 65 0a 6f 66 | er,.and.POSITION.to.the.value.of |
| 464a0 | 20 28 70 6f 69 6e 74 29 20 6f 72 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 2c 20 64 65 70 65 6e 64 | .(point).or.(region-end),.depend |
| 464c0 | 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 0a 61 63 74 | ing.on.whether.the.region.is.act |
| 464e0 | 69 76 65 2e 0a 0a 43 4f 4e 54 45 58 54 20 69 73 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 | ive...CONTEXT.is.any.additional. |
| 46500 | 64 61 74 61 20 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 74 6f 20 | data.needed.for.the.callback.to. |
| 46520 | 72 75 6e 2e 20 49 74 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 | run..It.is.included.in.the.INFO. |
| 46540 | 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 2e 0a 4e 6f 74 65 3a 20 | argument.to.the.callback..Note:. |
| 46560 | 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 45 6d 61 | This.is.intended.for.storing.Ema |
| 46580 | 63 73 20 73 74 61 74 65 20 74 6f 20 62 65 20 75 73 65 64 20 62 79 0a 43 41 4c 4c 42 41 43 4b 2c | cs.state.to.be.used.by.CALLBACK, |
| 465a0 | 20 61 6e 64 20 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 75 | .and.unrelated.to.the.context.su |
| 465c0 | 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 0a 53 59 53 54 45 4d 20 69 73 20 74 68 | pplied.to.the.LLM...SYSTEM.is.th |
| 465e0 | 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 65 78 74 65 6e 64 65 64 20 63 68 61 | e.system.message.or.extended.cha |
| 46600 | 74 20 64 69 72 65 63 74 69 76 65 20 73 65 6e 74 20 74 6f 0a 74 68 65 20 4c 4c 4d 2e 20 20 54 68 | t.directive.sent.to.the.LLM...Th |
| 46620 | 69 73 20 63 61 6e 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 61 20 6c 69 73 74 20 6f 66 20 73 74 | is.can.be.a.string,.a.list.of.st |
| 46640 | 72 69 6e 67 73 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 0a 74 68 61 74 20 72 65 74 75 72 6e 73 | rings.or.a.function.that.returns |
| 46660 | 20 65 69 74 68 65 72 3b 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 20 | .either;.see.`gptel-directives'. |
| 46680 | 66 6f 72 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 49 66 20 53 59 53 54 45 4d 20 | for.more.information..If.SYSTEM. |
| 466a0 | 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 60 67 70 74 65 6c 2d | is.omitted,.the.value.of.`gptel- |
| 466c0 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 27 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 | -system-message'.for.the.current |
| 466e0 | 20 62 75 66 66 65 72 20 69 73 20 75 73 65 64 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | .buffer.is.used...The.following. |
| 46700 | 6b 65 79 77 6f 72 64 73 20 61 72 65 20 6d 61 69 6e 6c 79 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c | keywords.are.mainly.for.internal |
| 46720 | 20 75 73 65 3a 0a 0a 49 4e 2d 50 4c 41 43 45 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 75 73 65 | .use:..IN-PLACE.is.a.boolean.use |
| 46740 | 64 20 62 79 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 61 6c 6c 62 61 63 6b 20 77 68 65 6e 20 69 | d.by.the.default.callback.when.i |
| 46760 | 6e 73 65 72 74 69 6e 67 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 64 65 74 65 72 6d 69 | nserting.the.response.to.determi |
| 46780 | 6e 65 20 69 66 20 64 65 6c 69 6d 69 74 65 72 73 20 61 72 65 20 6e 65 65 64 65 64 20 62 65 74 77 | ne.if.delimiters.are.needed.betw |
| 467a0 | 65 65 6e 20 74 68 65 0a 70 72 6f 6d 70 74 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e | een.the.prompt.and.the.response. |
| 467c0 | 0a 0a 49 66 20 44 52 59 2d 52 55 4e 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 64 6f 20 6e 6f 74 20 | ..If.DRY-RUN.is.non-nil,.do.not. |
| 467e0 | 73 65 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 43 6f 6e 73 74 72 75 63 74 20 61 6e 64 | send.the.request...Construct.and |
| 46800 | 0a 72 65 74 75 72 6e 20 61 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 6f 62 6a 65 63 74 20 74 | .return.a.state.machine.object.t |
| 46820 | 68 61 74 20 63 61 6e 20 62 65 20 69 6e 74 72 6f 73 70 65 63 74 65 64 20 61 6e 64 0a 72 65 73 75 | hat.can.be.introspected.and.resu |
| 46840 | 6d 65 64 2e 0a 0a 54 52 41 4e 53 46 4f 52 4d 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 66 75 | med...TRANSFORMS.is.a.list.of.fu |
| 46860 | 6e 63 74 69 6f 6e 73 20 75 73 65 64 20 74 6f 20 74 72 61 6e 73 66 6f 72 6d 20 74 68 65 20 70 72 | nctions.used.to.transform.the.pr |
| 46880 | 6f 6d 70 74 20 6f 72 20 71 75 65 72 79 0a 70 61 72 61 6d 65 74 65 72 73 20 64 79 6e 61 6d 69 63 | ompt.or.query.parameters.dynamic |
| 468a0 | 61 6c 6c 79 2e 20 20 45 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 69 | ally...Each.function.is.called.i |
| 468c0 | 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 | n.a.temporary.buffer.containing. |
| 468e0 | 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 20 62 65 20 73 65 6e 74 2c 20 61 6e 64 20 63 61 6e 20 63 | the.prompt.to.be.sent,.and.can.c |
| 46900 | 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 6d 6f 64 69 66 79 20 74 68 69 73 0a 62 75 66 66 65 72 2e | onditionally.modify.this.buffer. |
| 46920 | 20 20 54 68 69 73 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 63 68 61 6e 67 69 6e 67 20 74 68 65 20 | ..This.can.include.changing.the. |
| 46940 | 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 29 20 76 61 6c 75 65 73 20 6f 66 20 74 68 65 0a 6d 6f 64 | (buffer-local).values.of.the.mod |
| 46960 | 65 6c 2c 20 62 61 63 6b 65 6e 64 20 6f 72 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 2c 20 6f 72 | el,.backend.or.system.prompt,.or |
| 46980 | 20 61 75 67 6d 65 6e 74 69 6e 67 20 74 68 65 20 70 72 6f 6d 70 74 20 77 69 74 68 0a 61 64 64 69 | .augmenting.the.prompt.with.addi |
| 469a0 | 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 28 73 75 63 68 20 61 73 20 66 72 6f 6d | tional.information.(such.as.from |
| 469c0 | 20 61 20 52 41 47 20 65 6e 67 69 6e 65 29 2e 0a 0a 2d 20 53 79 6e 63 68 72 6f 6e 6f 75 73 20 74 | .a.RAG.engine)...-.Synchronous.t |
| 469e0 | 72 61 6e 73 66 6f 72 6d 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 7a 65 72 6f | ransformers.are.called.with.zero |
| 46a00 | 20 6f 72 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 0a 20 20 73 74 61 74 65 20 6d 61 | .or.one.argument,.the...state.ma |
| 46a20 | 63 68 69 6e 65 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a 2d 20 41 73 79 6e 63 68 | chine.for.the.request...-.Asynch |
| 46a40 | 72 6f 6e 6f 75 73 20 74 72 61 6e 73 66 6f 72 6d 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 77 | ronous.transformers.are.called.w |
| 46a60 | 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 20 63 61 6c 6c 62 61 63 6b 0a 20 20 | ith.two.arguments,.a.callback... |
| 46a80 | 61 6e 64 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 2e 20 20 49 74 20 73 68 6f 75 6c | and.the.state.machine...It.shoul |
| 46aa0 | 64 20 72 75 6e 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 66 74 65 72 20 66 69 6e 69 73 68 69 | d.run.the.callback.after.finishi |
| 46ac0 | 6e 67 20 69 74 73 0a 20 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 53 65 65 20 60 67 | ng.its...transformation...See.`g |
| 46ae0 | 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 27 | ptel-prompt-transform-functions' |
| 46b00 | 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 | .for.more...FSM.is.the.state.mac |
| 46b20 | 68 69 6e 65 20 64 72 69 76 69 6e 67 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 | hine.driving.the.request...This. |
| 46b40 | 63 61 6e 20 62 65 20 75 73 65 64 0a 74 6f 20 64 65 66 69 6e 65 20 61 20 63 75 73 74 6f 6d 20 72 | can.be.used.to.define.a.custom.r |
| 46b60 | 65 71 75 65 73 74 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 2c 20 73 65 65 20 60 67 70 74 65 6c 2d | equest.control.flow,.see.`gptel- |
| 46b80 | 66 73 6d 27 20 66 6f 72 0a 64 65 74 61 69 6c 73 2e 20 20 59 6f 75 20 63 61 6e 20 73 61 66 65 6c | fsm'.for.details...You.can.safel |
| 46ba0 | 79 20 69 67 6e 6f 72 65 20 74 68 69 73 20 2d 2d 20 46 53 4d 20 69 73 20 61 6e 20 75 6e 73 74 61 | y.ignore.this.--.FSM.is.an.unsta |
| 46bc0 | 62 6c 65 0a 66 65 61 74 75 72 65 20 61 6e 64 20 73 75 62 6a 65 63 74 20 74 6f 20 63 68 61 6e 67 | ble.feature.and.subject.to.chang |
| 46be0 | 65 2e 0a 0a 4e 6f 74 65 3a 0a 0a 31 2e 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e | e...Note:..1..This.function.is.n |
| 46c00 | 6f 74 20 66 75 6c 6c 79 20 73 65 6c 66 2d 63 6f 6e 74 61 69 6e 65 64 2e 20 20 43 6f 6e 73 69 64 | ot.fully.self-contained...Consid |
| 46c20 | 65 72 0a 6c 65 74 2d 62 69 6e 64 69 6e 67 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 60 67 | er.let-binding.the.parameters.`g |
| 46c40 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 2c 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 2c 0a 60 67 | ptel-backend',.`gptel-model',.`g |
| 46c60 | 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 27 20 61 6e 64 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 | ptel-use-tools'.and.`gptel-use-c |
| 46c80 | 6f 6e 74 65 78 74 27 20 61 72 6f 75 6e 64 20 63 61 6c 6c 73 20 74 6f 20 69 74 20 61 73 0a 72 65 | ontext'.around.calls.to.it.as.re |
| 46ca0 | 71 75 69 72 65 64 2e 0a 0a 32 2e 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 | quired...2..The.return.value.of. |
| 46cc0 | 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 | this.function.is.a.state.machine |
| 46ce0 | 20 74 68 61 74 20 6d 61 79 0a 62 65 20 75 73 65 64 20 74 6f 20 72 65 72 75 6e 20 6f 72 20 63 6f | .that.may.be.used.to.rerun.or.co |
| 46d00 | 6e 74 69 6e 75 65 20 74 68 65 20 72 65 71 75 65 73 74 20 61 74 20 61 20 6c 61 74 65 72 20 74 69 | ntinue.the.request.at.a.later.ti |
| 46d20 | 6d 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 3b 3b | me."...(declare.(indent.1))...;; |
| 46d40 | 20 54 4f 44 4f 20 52 65 6d 6f 76 65 20 74 68 69 73 20 63 68 65 63 6b 20 69 6e 20 76 65 72 73 69 | .TODO.Remove.this.check.in.versi |
| 46d60 | 6f 6e 20 31 2e 30 0a 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 | on.1.0...(gptel--sanitize-model) |
| 46d80 | 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 | ...(let*.((start-marker......... |
| 46da0 | 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 70 6f 73 69 74 69 | ..(cond............((null.positi |
| 46dc0 | 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d | on).............(if.(use-region- |
| 46de0 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 | p).................(set-marker.( |
| 46e00 | 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 | make-marker).(region-end))...... |
| 46e20 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 74 2d 77 6f 72 64 2d 65 6e 64 20 28 70 6f | .........(gptel--at-word-end.(po |
| 46e40 | 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 72 6b | int-marker))))............((mark |
| 46e60 | 65 72 70 20 70 6f 73 69 74 69 6f 6e 29 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 | erp.position).position)......... |
| 46e80 | 20 20 20 28 28 69 6e 74 65 67 65 72 70 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 | ...((integerp.position)......... |
| 46ea0 | 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 70 6f | ....(set-marker.(make-marker).po |
| 46ec0 | 73 69 74 69 6f 6e 20 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d | sition.buffer))))..........(prom |
| 46ee0 | 70 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 20 20 20 20 20 20 | pt-buffer...........(cond....... |
| 46f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 72 6f 6d 70 74 20 66 72 6f 6d 20 62 75 66 | ................;prompt.from.buf |
| 46f20 | 66 65 72 20 6f 72 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 70 6c 69 65 64 0a 20 20 20 20 20 | fer.or.explicitly.supplied...... |
| 46f40 | 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ......((null.prompt)............ |
| 46f60 | 20 28 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 73 74 | .(gptel--create-prompt-buffer.st |
| 46f80 | 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 | art-marker))............((string |
| 46fa0 | 70 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 | p.prompt).............(gptel--wi |
| 46fc0 | 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 62 75 66 66 65 72 20 6e 69 6c 20 6e 69 6c 0a 20 20 | th-buffer-copy.buffer.nil.nil... |
| 46fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 | ............(insert.prompt)..... |
| 47000 | 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 | ..........(current-buffer))).... |
| 47020 | 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 | ........((consp.prompt)......... |
| 47040 | 20 20 20 20 3b 3b 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 67 70 74 65 6c 2d | ....;;.(gptel--parse-list.gptel- |
| 47060 | 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | backend.prompt).............(gpt |
| 47080 | 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 62 75 66 66 65 72 20 6e 69 6c 20 | el--with-buffer-copy.buffer.nil. |
| 470a0 | 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 45 4d 50 20 44 65 63 69 64 65 | nil...............;;.TEMP.Decide |
| 470c0 | 20 6f 6e 20 74 68 65 20 61 6e 6e 6f 61 74 65 64 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 66 6f 72 | .on.the.annoated.prompt-list.for |
| 470e0 | 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d | mat...............(gptel--parse- |
| 47100 | 6c 69 73 74 2d 61 6e 64 2d 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 | list-and-insert.prompt)......... |
| 47120 | 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 20 | ......(current-buffer)))))...... |
| 47140 | 20 20 20 20 28 69 6e 66 6f 20 28 6c 69 73 74 20 3a 64 61 74 61 20 70 72 6f 6d 70 74 2d 62 75 66 | ....(info.(list.:data.prompt-buf |
| 47160 | 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 | fer......................:buffer |
| 47180 | 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f | .buffer......................:po |
| 471a0 | 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e | sition.start-marker))).....(when |
| 471c0 | 20 74 72 61 6e 73 66 6f 72 6d 73 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 | .transforms.(plist-put.info.:tra |
| 471e0 | 6e 73 66 6f 72 6d 73 20 74 72 61 6e 73 66 6f 72 6d 73 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 | nsforms.transforms)).....(with-c |
| 47200 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 28 73 65 74 | urrent-buffer.prompt-buffer.(set |
| 47220 | 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 29 | q.gptel--system-message.system)) |
| 47240 | 0a 20 20 20 20 28 77 68 65 6e 20 73 74 72 65 61 6d 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | .....(when.stream.(plist-put.inf |
| 47260 | 6f 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 29 29 0a 20 20 20 20 3b 3b 20 54 68 69 73 20 63 | o.:stream.stream)).....;;.This.c |
| 47280 | 6f 6e 74 65 78 74 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 69 | ontext.should.not.be.confused.wi |
| 472a0 | 74 68 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 67 67 72 65 67 61 74 69 6f 6e 20 63 6f 6e 74 65 | th.the.context.aggregation.conte |
| 472c0 | 78 74 21 0a 20 20 20 20 28 77 68 65 6e 20 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 73 74 2d 70 75 | xt!.....(when.callback.(plist-pu |
| 472e0 | 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 | t.info.:callback.callback))..... |
| 47300 | 28 77 68 65 6e 20 63 6f 6e 74 65 78 74 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 | (when.context.(plist-put.info.:c |
| 47320 | 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 70 6c | ontext.context)).....(when.in-pl |
| 47340 | 61 63 65 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 20 69 6e | ace.(plist-put.info.:in-place.in |
| 47360 | 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 3b 3b 20 41 64 64 20 69 6e 66 6f 20 74 6f 20 73 74 61 74 | -place)).....;;.Add.info.to.stat |
| 47380 | 65 20 6d 61 63 68 69 6e 65 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 28 77 68 65 6e 20 64 72 79 2d | e.machine.context.....(when.dry- |
| 473a0 | 72 75 6e 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 64 72 79 2d 72 75 6e 20 64 72 79 | run.(plist-put.info.:dry-run.dry |
| 473c0 | 2d 72 75 6e 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f | -run)).....(setf.(gptel-fsm-info |
| 473e0 | 20 66 73 6d 29 20 69 6e 66 6f 29 29 0a 0a 20 20 3b 3b 20 54 45 4d 50 3a 20 41 75 67 6d 65 6e 74 | .fsm).info))....;;.TEMP:.Augment |
| 47400 | 20 69 6e 20 73 65 70 61 72 61 74 65 20 6c 65 74 20 62 6c 6f 63 6b 20 66 6f 72 20 6e 6f 77 2e 20 | .in.separate.let.block.for.now.. |
| 47420 | 20 41 72 65 20 77 65 20 6f 76 65 72 63 61 70 74 75 72 69 6e 67 3f 0a 20 20 3b 3b 20 46 49 58 4d | .Are.we.overcapturing?...;;.FIXM |
| 47440 | 45 28 61 75 67 6d 65 6e 74 29 3a 20 43 61 6c 6c 20 61 75 67 6d 65 6e 74 6f 72 73 20 77 69 74 68 | E(augment):.Call.augmentors.with |
| 47460 | 20 49 4e 46 4f 2c 20 6e 6f 74 20 46 53 4d 0a 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 | .INFO,.not.FSM...(let.((info.(gp |
| 47480 | 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 | tel-fsm-info.fsm))).....(with-cu |
| 474a0 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 | rrent-buffer.(plist-get.info.:da |
| 474c0 | 74 61 29 0a 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 70 72 6f 6d | ta).......(setq-local.gptel-prom |
| 474e0 | 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 20 28 70 6c 69 73 74 2d 67 65 | pt-transform-functions.(plist-ge |
| 47500 | 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 50 72 | t.info.:transforms)).......;;.Pr |
| 47520 | 65 73 65 74 20 68 61 73 20 68 69 67 68 65 73 74 20 70 72 69 6f 72 69 74 79 20 62 65 63 61 75 73 | eset.has.highest.priority.becaus |
| 47540 | 65 20 69 74 20 63 61 6e 20 63 68 61 6e 67 65 20 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d | e.it.can.change.prompt-transform |
| 47560 | 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 27 67 70 | -functions.......(when.(memq.'gp |
| 47580 | 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 65 | tel--transform-apply-preset.gpte |
| 475a0 | 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 | l-prompt-transform-functions)... |
| 475c0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 | ......(gptel--transform-apply-pr |
| 475e0 | 65 73 65 74 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 70 72 | eset.fsm).........(setq.gptel-pr |
| 47600 | 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 20 3b 61 76 6f 69 64 20 | ompt-transform-functions.;avoid. |
| 47620 | 6d 75 74 61 74 69 6f 6e 2c 20 63 6f 70 79 20 74 72 61 6e 73 66 6f 72 6d 73 0a 20 20 20 20 20 20 | mutation,.copy.transforms....... |
| 47640 | 20 20 20 20 20 20 20 20 28 72 65 6d 71 20 27 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d | ........(remq.'gptel--transform- |
| 47660 | 61 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 | apply-preset.gptel-prompt-transf |
| 47680 | 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 75 | orm-functions))).......(let.((au |
| 476a0 | 67 6d 65 6e 74 2d 74 6f 74 61 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 61 63 74 20 6c 69 | gment-total..............;act.li |
| 476c0 | 6b 65 20 61 20 68 6f 6f 6b 2c 20 63 6f 75 6e 74 20 74 6f 74 61 6c 0a 20 20 20 20 20 20 20 20 20 | ke.a.hook,.count.total.......... |
| 476e0 | 20 20 20 20 28 69 66 20 28 6d 65 6d 71 20 74 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 | ....(if.(memq.t.gptel-prompt-tra |
| 47700 | 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nsform-functions)............... |
| 47720 | 20 20 20 28 6c 65 6e 67 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | ...(length...................(se |
| 47740 | 74 71 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 | tq.gptel-prompt-transform-functi |
| 47760 | 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f | ons.........................(nco |
| 47780 | 6e 63 20 28 72 65 6d 71 20 74 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 | nc.(remq.t.gptel-prompt-transfor |
| 477a0 | 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m-functions).................... |
| 477c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 | ............(default-value.'gpte |
| 477e0 | 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 29 | l-prompt-transform-functions)))) |
| 47800 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 70 72 | ................(length.gptel-pr |
| 47820 | 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 | ompt-transform-functions)))..... |
| 47840 | 20 20 20 20 20 20 20 20 28 61 75 67 6d 65 6e 74 2d 69 64 78 20 30 29 29 0a 20 20 20 20 20 20 20 | ........(augment-idx.0))........ |
| 47860 | 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 | .(if.(null.gptel-prompt-transfor |
| 47880 | 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | m-functions).............(gptel- |
| 478a0 | 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 | -realize-query.fsm)...........(w |
| 478c0 | 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | ith-current-buffer.(plist-get.in |
| 478e0 | 66 6f 20 3a 62 75 66 66 65 72 29 20 3b 41 70 70 6c 79 20 70 72 6f 6d 70 74 20 74 72 61 6e 73 66 | fo.:buffer).;Apply.prompt.transf |
| 47900 | 6f 72 6d 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 | ormations.............(gptel--up |
| 47920 | 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 41 75 67 6d 65 6e 74 69 6e 67 2e 2e 2e 22 20 27 6d 6f | date-status.".Augmenting...".'mo |
| 47940 | 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | de-line-emphasis))...........;;. |
| 47960 | 46 49 58 4d 45 28 61 75 67 6d 65 6e 74 29 3a 20 54 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 | FIXME(augment):.This.needs.to.be |
| 47980 | 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 61 20 6c 69 6e 65 61 72 20 63 61 6c 6c 62 61 63 | .converted.into.a.linear.callbac |
| 479a0 | 6b 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 61 69 6e 20 74 6f 20 61 76 6f 69 64 20 72 61 | k...........;;.chain.to.avoid.ra |
| 479c0 | 63 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 77 69 74 68 20 6d 75 6c 74 69 70 6c 65 20 61 73 79 6e | ce.conditions.with.multiple.asyn |
| 479e0 | 63 20 61 75 67 6d 65 6e 74 6f 72 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f | c.augmentors............(run-hoo |
| 47a00 | 6b 2d 77 72 61 70 70 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 70 72 6f 6d | k-wrapped............'gptel-prom |
| 47a20 | 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 | pt-transform-functions.......... |
| 47a40 | 20 20 28 6c 61 6d 62 64 61 20 28 66 75 6e 63 20 66 73 6d 2d 61 72 67 29 0a 20 20 20 20 20 20 20 | ..(lambda.(func.fsm-arg)........ |
| 47a60 | 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 | ......(with-current-buffer.(plis |
| 47a80 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.info.:data)............... |
| 47aa0 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 | .(goto-char.(point-max))........ |
| 47ac0 | 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 63 61 72 20 28 66 75 6e 63 2d 61 72 69 74 79 20 | ........(if.(=.(car.(func-arity. |
| 47ae0 | 66 75 6e 63 29 29 20 32 29 20 3b 61 73 79 6e 63 20 61 75 67 6d 65 6e 74 6f 72 0a 20 20 20 20 20 | func)).2).;async.augmentor...... |
| 47b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 28 6c 61 6d | ..............(funcall.func.(lam |
| 47b20 | 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.().......................... |
| 47b40 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 61 75 67 6d 65 6e 74 2d 69 64 78 29 0a | ..........(cl-incf.augment-idx). |
| 47b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 47b80 | 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 61 75 67 6d 65 6e 74 2d 69 64 78 20 61 75 67 6d 65 6e 74 | ...(when.(>=.augment-idx.augment |
| 47ba0 | 2d 74 6f 74 61 6c 29 20 3b 41 6c 6c 20 61 75 67 6d 65 6e 74 6f 72 73 20 68 61 76 65 20 72 75 6e | -total).;All.augmentors.have.run |
| 47bc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 47be0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 73 6d 2d | ......(gptel--realize-query.fsm- |
| 47c00 | 61 72 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arg))).......................... |
| 47c20 | 20 20 20 66 73 6d 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | ...fsm-arg)..................(if |
| 47c40 | 20 28 3d 20 28 63 61 72 20 28 66 75 6e 63 2d 61 72 69 74 79 20 66 75 6e 63 29 29 20 30 29 0a 20 | .(=.(car.(func-arity.func)).0).. |
| 47c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e | ....................(funcall.fun |
| 47c80 | 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 | c)....................(funcall.f |
| 47ca0 | 75 6e 63 20 66 73 6d 2d 61 72 67 29 29 20 3b 73 79 6e 63 20 61 75 67 6d 65 6e 74 6f 72 0a 20 20 | unc.fsm-arg)).;sync.augmentor... |
| 47cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 61 75 67 6d 65 6e 74 2d | ...............(cl-incf.augment- |
| 47ce0 | 69 64 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 | idx)..................(when.(>=. |
| 47d00 | 61 75 67 6d 65 6e 74 2d 69 64 78 20 61 75 67 6d 65 6e 74 2d 74 6f 74 61 6c 29 20 3b 41 6c 6c 20 | augment-idx.augment-total).;All. |
| 47d20 | 61 75 67 6d 65 6e 74 6f 72 73 20 68 61 76 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | augmentors.have.run............. |
| 47d40 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 73 6d | .......(gptel--realize-query.fsm |
| 47d60 | 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 20 20 20 20 20 20 | -arg))))..............nil)...... |
| 47d80 | 20 20 20 20 20 3b 61 6c 77 61 79 73 20 72 65 74 75 72 6e 20 6e 69 6c 20 73 6f 20 72 75 6e 2d 68 | .....;always.return.nil.so.run-h |
| 47da0 | 6f 6f 6b 2d 77 72 61 70 70 65 64 20 64 6f 65 73 6e 27 74 20 61 62 6f 72 74 0a 20 20 20 20 20 20 | ook-wrapped.doesn't.abort....... |
| 47dc0 | 20 20 20 20 20 66 73 6d 29 29 29 29 29 0a 20 20 66 73 6d 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | .....fsm)))))...fsm)..(defun.gpt |
| 47de0 | 65 6c 2d 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 28 66 73 6d 29 0a 20 20 22 52 65 61 6c 69 | el--realize-query.(fsm)..."Reali |
| 47e00 | 7a 65 20 74 68 65 20 71 75 65 72 79 20 70 61 79 6c 6f 61 64 20 66 6f 72 20 46 53 4d 20 66 72 6f | ze.the.query.payload.for.FSM.fro |
| 47e20 | 6d 20 69 74 73 20 70 72 6f 6d 70 74 20 62 75 66 66 65 72 2e 0a 0a 49 6e 69 74 69 61 74 65 20 74 | m.its.prompt.buffer...Initiate.t |
| 47e40 | 68 65 20 72 65 71 75 65 73 74 20 77 68 65 6e 20 64 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 | he.request.when.done."...(let.(( |
| 47e60 | 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 | info.(gptel-fsm-info.fsm)))..... |
| 47e80 | 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | (with-current-buffer.(plist-get. |
| 47ea0 | 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 | info.:data).......(let*.((direct |
| 47ec0 | 69 76 65 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 67 70 74 65 | ive.(gptel--parse-directive.gpte |
| 47ee0 | 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 72 61 77 29 29 0a 20 20 20 20 20 20 20 | l--system-message.'raw))........ |
| 47f00 | 20 20 20 20 20 20 3b 3b 20 44 49 52 45 43 54 49 56 45 20 63 6f 6e 74 61 69 6e 73 20 62 6f 74 68 | ......;;.DIRECTIVE.contains.both |
| 47f20 | 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 74 68 65 20 74 65 6d 70 | .the.system.message.and.the.temp |
| 47f40 | 6c 61 74 65 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | late.prompts..............(gptel |
| 47f60 | 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | --system-message...............( |
| 47f80 | 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 | unless.(gptel--model-capable-p.' |
| 47fa0 | 6e 6f 73 79 73 74 65 6d 29 20 28 63 61 72 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 | nosystem).(car.directive)))..... |
| 47fc0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 4c 69 6d 69 74 20 74 6f 6f | .........;;.TODO(tool).Limit.too |
| 47fe0 | 6c 20 75 73 65 20 74 6f 20 63 61 70 61 62 6c 65 20 6d 6f 64 65 6c 73 20 61 66 74 65 72 20 64 6f | l.use.to.capable.models.after.do |
| 48000 | 63 75 6d 65 6e 74 69 6e 67 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 0a 20 20 20 20 20 20 20 20 | cumenting.:capabilities......... |
| 48020 | 20 20 20 20 20 3b 3b 20 28 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 28 61 6e 64 20 28 67 | .....;;.(gptel-use-tools.(and.(g |
| 48040 | 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 74 6f 6f 6c 2d 75 73 65 29 | ptel--model-capable-p.'tool-use) |
| 48060 | 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel-use-tools)).............. |
| 48080 | 28 73 74 72 65 61 6d 20 28 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 | (stream.(and.(plist-get.info.:st |
| 480a0 | 72 65 61 6d 29 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 67 70 74 65 6c 2d 73 74 72 65 61 | ream).gptel-use-curl.gptel-strea |
| 480c0 | 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 | m...........................;;.H |
| 480e0 | 41 43 4b 28 74 6f 6f 6c 29 3a 20 6e 6f 20 73 74 72 65 61 6d 20 69 66 20 4f 6c 6c 61 6d 61 20 2b | ACK(tool):.no.stream.if.Ollama.+ |
| 48100 | 20 74 6f 6f 6c 73 2e 20 20 4e 65 65 64 20 74 6f 20 66 69 6e 64 20 61 20 62 65 74 74 65 72 20 77 | .tools...Need.to.find.a.better.w |
| 48120 | 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f | ay...........................(no |
| 48140 | 74 20 28 61 6e 64 20 28 65 71 20 28 74 79 70 65 2d 6f 66 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | t.(and.(eq.(type-of.gptel-backen |
| 48160 | 64 29 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d).'gptel-ollama)............... |
| 48180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c | ......................gptel-tool |
| 481a0 | 73 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | s.gptel-use-tools))............. |
| 481c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 6d 6f 64 65 6c 2d 73 70 65 | ..............;;.Check.model-spe |
| 481e0 | 63 69 66 69 63 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 66 6f 72 20 73 74 72 65 61 6d 69 | cific.request-params.for.streami |
| 48200 | 6e 67 20 70 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng.preference................... |
| 48220 | 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 20 28 67 70 | ........(let*.((model-params.(gp |
| 48240 | 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d | tel--model-request-params.gptel- |
| 48260 | 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | model))......................... |
| 48280 | 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 2d 73 70 65 63 20 28 70 6c 69 73 74 2d 67 65 74 | .........(stream-spec.(plist-get |
| 482a0 | 20 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 20 3a 73 74 72 65 61 6d 29 29 29 0a 20 20 20 20 20 20 20 | .model-params.:stream)))........ |
| 482c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 6e 6f 74 20 70 | .....................;;.If.not.p |
| 482e0 | 72 65 73 65 6e 74 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6d 6f 64 65 6c 2d 73 70 65 63 69 66 | resent,.there.is.no.model-specif |
| 48300 | 69 63 20 70 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ic.preference................... |
| 48320 | 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 28 6d 65 6d 71 20 3a 73 74 72 65 61 6d | ..........(or.(not.(memq.:stream |
| 48340 | 20 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .model-params))................. |
| 48360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 70 72 65 73 65 6e 74 2c 20 69 | ................;;.If.present,.i |
| 48380 | 74 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 20 6f 72 20 6e 69 6c | t.must.not.be.:json-false.or.nil |
| 483a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 483c0 | 20 28 61 6e 64 20 73 74 72 65 61 6d 2d 73 70 65 63 20 28 6e 6f 74 20 28 65 71 20 73 74 72 65 61 | .(and.stream-spec.(not.(eq.strea |
| 483e0 | 6d 2d 73 70 65 63 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | m-spec.:json-false)))))......... |
| 48400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 62 61 63 6b 65 | ..................;;.Check.backe |
| 48420 | 6e 64 2d 73 70 65 63 69 66 69 63 20 73 74 72 65 61 6d 69 6e 67 20 73 65 74 74 69 6e 67 73 0a 20 | nd-specific.streaming.settings.. |
| 48440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | .........................(gptel- |
| 48460 | 62 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a | backend-stream.gptel-backend))). |
| 48480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 73 74 72 65 61 | .............(gptel-stream.strea |
| 484a0 | 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 | m)..............(full-prompt)).. |
| 484c0 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 64 72 20 64 69 72 65 63 74 69 76 65 29 20 20 20 20 | .......(when.(cdr.directive).... |
| 484e0 | 20 20 20 3b 20 70 72 6f 6d 70 74 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 64 69 72 | ...;.prompt.constructed.from.dir |
| 48500 | 65 63 74 69 76 65 2f 74 65 6d 70 6c 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | ective/template...........(save- |
| 48520 | 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | excursion.(goto-char.(point-min) |
| 48540 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | )...........................(gpt |
| 48560 | 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 2d 61 6e 64 2d 69 6e 73 65 72 74 20 28 63 64 72 20 64 | el--parse-list-and-insert.(cdr.d |
| 48580 | 69 72 65 63 74 69 76 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | irective)))).........(goto-char. |
| 485a0 | 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 75 6c 6c 2d | (point-max)).........(setq.full- |
| 485c0 | 70 72 6f 6d 70 74 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 3b 70 72 6f | prompt.(gptel--parse-buffer.;pro |
| 485e0 | 6d 70 74 20 66 72 6f 6d 20 62 75 66 66 65 72 20 6f 72 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 | mpt.from.buffer.or.explicitly.su |
| 48600 | 70 70 6c 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pplied.......................... |
| 48620 | 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d | ..gptel-backend.(and.gptel--num- |
| 48640 | 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | messages-to-send................ |
| 48660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 48680 | 2a 20 32 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 | *.2.gptel--num-messages-to-send) |
| 486a0 | 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 6a 65 63 74 20 6d 65 64 69 61 20 63 68 75 6e | ))).........;;.Inject.media.chun |
| 486c0 | 6b 73 20 69 6e 74 6f 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 66 | ks.into.the.first.user.prompt.if |
| 486e0 | 20 72 65 71 75 69 72 65 64 2e 20 20 4d 65 64 69 61 0a 20 20 20 20 20 20 20 20 3b 3b 20 63 68 75 | .required...Media.........;;.chu |
| 48700 | 6e 6b 73 20 61 72 65 20 61 6c 77 61 79 73 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 | nks.are.always.included.with.the |
| 48720 | 20 66 69 72 73 74 20 75 73 65 72 20 6d 65 73 73 61 67 65 2c 0a 20 20 20 20 20 20 20 20 3b 3b 20 | .first.user.message,.........;;. |
| 48740 | 69 72 72 65 73 70 65 63 74 69 76 65 20 6f 66 20 74 68 65 20 70 72 65 66 65 72 65 6e 63 65 20 69 | irrespective.of.the.preference.i |
| 48760 | 6e 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 27 2e 20 20 54 68 69 73 20 69 73 0a | n.`gptel-use-context'...This.is. |
| 48780 | 20 20 20 20 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 6d 65 64 69 61 20 63 61 6e 6e 6f 74 20 | ........;;.because.media.cannot. |
| 487a0 | 62 65 20 69 6e 63 6c 75 64 65 64 20 28 69 6e 20 67 65 6e 65 72 61 6c 29 20 77 69 74 68 20 73 79 | be.included.(in.general).with.sy |
| 487c0 | 73 74 65 6d 20 6d 65 73 73 61 67 65 73 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 61 | stem.messages..........;;.TODO(a |
| 487e0 | 75 67 6d 65 6e 74 29 3a 20 46 69 6e 64 20 61 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 73 20 69 | ugment):.Find.a.way.to.do.this.i |
| 48800 | 6e 20 74 68 65 20 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 3f 0a 20 20 20 20 20 20 20 20 28 77 68 | n.the.prompt-buffer?.........(wh |
| 48820 | 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 67 70 74 | en.(and.gptel-context--alist.gpt |
| 48840 | 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-use-context.................. |
| 48860 | 20 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 | ..gptel-track-media.(gptel--mode |
| 48880 | 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | l-capable-p.'media))...........( |
| 488a0 | 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 67 70 74 65 6c 2d 62 61 | gptel--wrap-user-prompt.gptel-ba |
| 488c0 | 63 6b 65 6e 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 20 27 6d 65 64 69 61 29 29 0a 20 20 20 20 20 | ckend.full-prompt.'media))...... |
| 488e0 | 20 20 20 28 75 6e 6c 65 73 73 20 73 74 72 65 61 6d 20 28 63 6c 2d 72 65 6d 66 20 69 6e 66 6f 20 | ...(unless.stream.(cl-remf.info. |
| 48900 | 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | :stream)).........(plist-put.inf |
| 48920 | 6f 20 3a 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 | o.:backend.gptel-backend)....... |
| 48940 | 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 | ..(when.gptel-include-reasoning. |
| 48960 | 20 20 3b 52 65 71 75 69 72 65 64 20 66 6f 72 20 6e 65 78 74 2d 72 65 71 75 65 73 74 2d 6f 6e 6c | ..;Required.for.next-request-onl |
| 48980 | 79 20 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | y.scope...........(plist-put.inf |
| 489a0 | 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 67 70 74 65 6c 2d 69 6e 63 6c 75 | o.:include-reasoning.gptel-inclu |
| 489c0 | 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e | de-reasoning)).........(when.(an |
| 489e0 | 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 | d.gptel-use-tools.gptel-tools).. |
| 48a00 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 20 | .........(plist-put.info.:tools. |
| 48a20 | 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | gptel-tools)).........(plist-put |
| 48a40 | 20 69 6e 66 6f 20 3a 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .info.:data....................( |
| 48a60 | 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | gptel--request-data.gptel-backen |
| 48a80 | 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f | d.full-prompt)).........(run-hoo |
| 48aa0 | 6b 73 20 27 67 70 74 65 6c 2d 61 75 67 6d 65 6e 74 2d 70 6f 73 74 2d 6d 6f 64 69 66 79 2d 68 6f | ks.'gptel-augment-post-modify-ho |
| 48ac0 | 6f 6b 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 | ok)).......(kill-buffer.(current |
| 48ae0 | 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 49 4e 49 54 20 2d 3e 20 57 41 49 54 0a 20 | -buffer))).....;;.INIT.->.WAIT.. |
| 48b00 | 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 72 79 2d | ...(unless.(plist-get.info.:dry- |
| 48b20 | 72 75 6e 29 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 | run).(gptel--fsm-transition.fsm) |
| 48b40 | 29 0a 20 20 20 20 66 73 6d 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 62 6f 72 74 20 | ).....fsm))..(defun.gptel-abort. |
| 48b60 | 28 62 75 66 29 0a 20 20 22 53 74 6f 70 20 61 6e 79 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 70 | (buf)..."Stop.any.active.gptel.p |
| 48b80 | 72 6f 63 65 73 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 62 75 66 66 65 72 20 42 55 | rocess.associated.with.buffer.BU |
| 48ba0 | 46 2e 0a 0a 42 55 46 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 | F...BUF.defaults.to.the.current. |
| 48bc0 | 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 63 | buffer."...(interactive.(list.(c |
| 48be0 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | urrent-buffer)))...(when-let*.(( |
| 48c00 | 70 72 6f 63 2d 61 74 74 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 | proc-attrs................(cl-fi |
| 48c20 | 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 | nd-if.................(lambda.(e |
| 48c40 | 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 61 63 68 20 | ntry)...................;;.each. |
| 48c60 | 65 6e 74 72 79 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 50 52 4f 43 20 2e 20 28 46 53 4d 20 | entry.has.the.form.(PROC...(FSM. |
| 48c80 | 41 42 4f 52 54 2d 46 4e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 | ABORT-FN))...................(eq |
| 48ca0 | 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 20 28 63 61 64 72 20 65 6e 74 72 79 29 20 3b 20 46 53 | .(thread-first.(cadr.entry).;.FS |
| 48cc0 | 4d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | M............................... |
| 48ce0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 | ......(gptel-fsm-info).......... |
| 48d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 | ...........................(plis |
| 48d20 | 74 2d 67 65 74 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.:buffer))................. |
| 48d40 | 20 20 20 20 20 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 | ......buf)).................gpte |
| 48d60 | 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--request-alist)).............. |
| 48d80 | 20 28 70 72 6f 63 20 28 63 61 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 0a 20 20 20 20 20 20 20 | .(proc.(car.proc-attrs))........ |
| 48da0 | 20 20 20 20 20 20 20 28 66 73 6d 20 28 63 61 64 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 0a 20 | .......(fsm.(cadr.proc-attrs)).. |
| 48dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e | .............(info.(gptel-fsm-in |
| 48de0 | 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 62 6f 72 74 2d 66 6e | fo.fsm))...............(abort-fn |
| 48e00 | 20 28 63 64 64 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 29 0a 20 20 20 20 3b 3b 20 52 75 6e 20 | .(cddr.proc-attrs))).....;;.Run. |
| 48e20 | 3a 63 61 6c 6c 62 61 63 6b 20 77 69 74 68 20 61 62 6f 72 74 20 73 69 67 6e 61 6c 0a 20 20 20 20 | :callback.with.abort.signal..... |
| 48e40 | 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 43 61 6c 6c 62 61 63 6b 20 65 | (with-demoted-errors."Callback.e |
| 48e60 | 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 63 62 20 28 | rror:.%S".......(and-let*.((cb.( |
| 48e80 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 | plist-get.info.:callback))...... |
| 48ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 63 62 29 29 29 0a 20 20 | ............((functionp.cb)))... |
| 48ec0 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 62 20 27 61 62 6f 72 74 20 69 6e 66 6f 29 29 29 | ......(funcall.cb.'abort.info))) |
| 48ee0 | 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 62 6f 72 74 2d 66 6e 29 0a 20 20 20 20 28 73 65 74 | .....(funcall.abort-fn).....(set |
| 48f00 | 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 | f.(alist-get.proc.gptel--request |
| 48f20 | 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 28 77 69 | -alist.nil.'remove).nil).....(wi |
| 48f40 | 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 77 68 65 | th-current-buffer.buf.......(whe |
| 48f60 | 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 | n.gptel-mode.(gptel--update-stat |
| 48f80 | 75 73 20 20 22 20 41 62 6f 72 74 22 20 27 65 72 72 6f 72 29 29 29 0a 20 20 20 20 28 6d 65 73 73 | us..".Abort".'error))).....(mess |
| 48fa0 | 61 67 65 20 22 53 74 6f 70 70 65 64 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 69 6e 20 62 75 | age."Stopped.gptel.request.in.bu |
| 48fc0 | 66 66 65 72 20 25 53 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 29 0a 0a 3b | ffer.%S".(buffer-name.buf))))..; |
| 48fe0 | 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 6d 75 6c 74 69 70 6c 65 20 72 65 71 75 65 73 74 73 | ;.TODO:.Handle.multiple.requests |
| 49000 | 28 23 31 35 29 2e 20 28 4f 6e 6c 79 20 6f 6e 65 20 72 65 71 75 65 73 74 20 66 72 6f 6d 20 6f 6e | (#15)..(Only.one.request.from.on |
| 49020 | 65 20 62 75 66 66 65 72 20 61 74 20 61 20 74 69 6d 65 3f 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c | e.buffer.at.a.time?).;;;###autol |
| 49040 | 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 65 6e 64 20 28 26 6f 70 74 69 6f 6e 61 6c | oad.(defun.gptel-send.(&optional |
| 49060 | 20 61 72 67 29 0a 20 20 22 53 75 62 6d 69 74 20 74 68 69 73 20 70 72 6f 6d 70 74 20 74 6f 20 74 | .arg)..."Submit.this.prompt.to.t |
| 49080 | 68 65 20 63 75 72 72 65 6e 74 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 2e 0a 0a 42 79 20 64 65 66 61 | he.current.LLM.backend...By.defa |
| 490a0 | 75 6c 74 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 | ult,.the.contents.of.the.buffer. |
| 490c0 | 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 0a 61 72 65 20 73 65 | up.to.the.cursor.position.are.se |
| 490e0 | 6e 74 2e 20 20 49 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 69 74 | nt...If.the.region.is.active,.it |
| 49100 | 73 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 73 65 6e 74 0a 69 6e 73 74 65 61 64 2e 0a 0a 54 68 | s.contents.are.sent.instead...Th |
| 49120 | 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 69 73 20 69 6e 73 65 72 | e.response.from.the.LLM.is.inser |
| 49140 | 74 65 64 20 62 65 6c 6f 77 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 0a 61 74 | ted.below.the.cursor.position.at |
| 49160 | 20 74 68 65 20 74 69 6d 65 20 6f 66 20 73 65 6e 64 69 6e 67 2e 20 20 54 6f 20 63 68 61 6e 67 65 | .the.time.of.sending...To.change |
| 49180 | 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 6f 72 20 6d 6f 64 65 6c 0a 70 61 72 61 6d 65 74 65 | .this.behavior.or.model.paramete |
| 491a0 | 72 73 2c 20 75 73 65 20 70 72 65 66 69 78 20 61 72 67 20 41 52 47 20 61 63 74 69 76 61 74 65 20 | rs,.use.prefix.arg.ARG.activate. |
| 491c0 | 61 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 77 69 74 68 0a 6d 6f 72 65 20 6f 70 74 69 6f | a.transient.menu.with.more.optio |
| 491e0 | 6e 73 20 69 6e 73 74 65 61 64 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 61 73 79 | ns.instead...This.command.is.asy |
| 49200 | 6e 63 68 72 6f 6e 6f 75 73 2c 20 79 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 75 | nchronous,.you.can.continue.to.u |
| 49220 | 73 65 20 45 6d 61 63 73 20 77 68 69 6c 65 0a 77 61 69 74 69 6e 67 20 66 6f 72 20 74 68 65 20 72 | se.Emacs.while.waiting.for.the.r |
| 49240 | 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 | esponse."...(interactive."P")... |
| 49260 | 28 69 66 20 28 61 6e 64 20 61 72 67 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 74 72 61 | (if.(and.arg.(require.'gptel-tra |
| 49280 | 6e 73 69 65 6e 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 | nsient.nil.t)).......(call-inter |
| 492a0 | 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 29 0a 20 20 20 20 28 67 70 74 65 | actively.#'gptel-menu).....(gpte |
| 492c0 | 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 73 | l--sanitize-model).....(let.((fs |
| 492e0 | 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 20 3a 68 61 6e 64 6c 65 72 73 20 67 70 74 65 | m.(gptel-make-fsm.:handlers.gpte |
| 49300 | 6c 2d 73 65 6e 64 2d 2d 68 61 6e 64 6c 65 72 73 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c | l-send--handlers))).......(gptel |
| 49320 | 2d 72 65 71 75 65 73 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 67 70 74 | -request.nil.........:stream.gpt |
| 49340 | 65 6c 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 67 70 | el-stream.........:transforms.gp |
| 49360 | 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 | tel-prompt-transform-functions.. |
| 49380 | 20 20 20 20 20 20 20 3a 66 73 6d 20 66 73 6d 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | .......:fsm.fsm).......(message. |
| 493a0 | 22 51 75 65 72 79 69 6e 67 20 25 73 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "Querying.%s..."................ |
| 493c0 | 28 74 68 72 65 61 64 2d 66 69 72 73 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 | (thread-first.(gptel-fsm-info.fs |
| 493e0 | 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m).............................. |
| 49400 | 28 70 6c 69 73 74 2d 67 65 74 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (plist-get.:backend)............ |
| 49420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | ..................(gptel-backend |
| 49440 | 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 | -name)))).....(gptel--update-sta |
| 49460 | 74 75 73 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 29 0a 0a 28 | tus.".Waiting...".'warning)))..( |
| 49480 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 | declare-function.json-pretty-pri |
| 494a0 | 6e 74 2d 62 75 66 66 65 72 20 22 6a 73 6f 6e 22 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | nt-buffer."json").(defun.gptel-- |
| 494c0 | 69 6e 73 70 65 63 74 2d 71 75 65 72 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 71 75 65 73 74 | inspect-query.(&optional.request |
| 494e0 | 2d 66 73 6d 20 66 6f 72 6d 61 74 29 0a 20 20 22 53 68 6f 77 20 74 68 65 20 66 75 6c 6c 20 4c 4c | -fsm.format)..."Show.the.full.LL |
| 49500 | 4d 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 69 6e 20 61 20 62 | M.query.that.will.be.sent.in.a.b |
| 49520 | 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 73 20 61 20 64 72 79 20 | uffer...This.functions.as.a.dry. |
| 49540 | 72 75 6e 20 6f 66 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 2e 20 20 54 68 65 20 72 65 71 75 65 73 | run.of.`gptel-send'...The.reques |
| 49560 | 74 20 64 61 74 61 0a 6d 61 79 20 62 65 20 65 64 69 74 65 64 20 61 6e 64 20 74 68 65 20 71 75 65 | t.data.may.be.edited.and.the.que |
| 49580 | 72 79 20 63 6f 6e 74 69 6e 75 65 64 20 66 72 6f 6d 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a | ry.continued.from.this.buffer... |
| 495a0 | 52 45 51 55 45 53 54 2d 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 | REQUEST-FSM.is.the.state.of.the. |
| 495c0 | 72 65 71 75 65 73 74 2c 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 0a 60 67 70 74 65 6c 2d 72 | request,.as.returned.by.`gptel-r |
| 495e0 | 65 71 75 65 73 74 27 2e 20 20 49 66 20 46 4f 52 4d 41 54 20 69 73 20 74 68 65 20 73 79 6d 62 6f | equest'...If.FORMAT.is.the.symbo |
| 49600 | 6c 20 6a 73 6f 6e 2c 20 73 68 6f 77 20 74 68 65 20 65 6e 63 6f 64 65 64 0a 4a 53 4f 4e 20 71 75 | l.json,.show.the.encoded.JSON.qu |
| 49620 | 65 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 4c 69 73 70 20 73 74 72 75 63 74 75 72 | ery.instead.of.the.Lisp.structur |
| 49640 | 65 20 67 70 74 65 6c 20 75 73 65 73 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 72 65 71 75 65 73 74 | e.gptel.uses."...(unless.request |
| 49660 | 2d 66 73 6d 20 28 73 65 74 71 20 72 65 71 75 65 73 74 2d 66 73 6d 20 67 70 74 65 6c 2d 2d 66 73 | -fsm.(setq.request-fsm.gptel--fs |
| 49680 | 6d 2d 6c 61 73 74 29 29 0a 20 20 28 69 66 20 28 62 75 66 66 65 72 70 20 28 70 6c 69 73 74 2d 67 | m-last))...(if.(bufferp.(plist-g |
| 496a0 | 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 72 65 71 75 65 73 74 2d 66 73 6d 29 20 | et.(gptel-fsm-info.request-fsm). |
| 496c0 | 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 64 72 79 2d 72 75 6e 2d | :data)).......(letrec.((dry-run- |
| 496e0 | 70 6f 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 77 69 74 68 2d 74 | poll.................(run-with-t |
| 49700 | 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 31 20 28 6c 61 6d 62 64 | imer..................0.1.(lambd |
| 49720 | 61 20 28 66 73 6d 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.(fsm.form).................... |
| 49740 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 70 20 28 70 6c 69 73 74 2d 67 65 74 20 | ....(unless.(bufferp.(plist-get. |
| 49760 | 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 3a 64 61 74 61 29 29 0a 20 20 20 | (gptel-fsm-info.fsm).:data)).... |
| 49780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6e 63 65 6c 2d 74 69 | ......................(cancel-ti |
| 497a0 | 6d 65 72 20 64 72 79 2d 72 75 6e 2d 70 6f 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mer.dry-run-poll)............... |
| 497c0 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 | ...........(gptel--inspect-query |
| 497e0 | 20 66 73 6d 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | .fsm.form)))..................re |
| 49800 | 71 75 65 73 74 2d 66 73 6d 20 66 6f 72 6d 61 74 29 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 | quest-fsm.format)))).....(with-c |
| 49820 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d | urrent-buffer.(plist-get.(gptel- |
| 49840 | 66 73 6d 2d 69 6e 66 6f 20 72 65 71 75 65 73 74 2d 66 73 6d 29 20 3a 62 75 66 66 65 72 29 0a 20 | fsm-info.request-fsm).:buffer).. |
| 49860 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 52 65 61 | .....(gptel--update-status.".Rea |
| 49880 | 64 79 22 20 27 73 75 63 63 65 73 73 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | dy".'success)).....(with-current |
| 498a0 | 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 | -buffer.(get-buffer-create."*gpt |
| 498c0 | 65 6c 2d 71 75 65 72 79 2a 22 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 74 61 6e 64 61 | el-query*").......(let*.((standa |
| 498e0 | 72 64 2d 6f 75 74 70 75 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 | rd-output.(current-buffer))..... |
| 49900 | 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 | .........(inhibit-read-only.t).. |
| 49920 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 65 73 74 2d 64 61 74 61 0a 20 20 20 20 20 20 | ............(request-data....... |
| 49940 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e | ........(plist-get.(gptel-fsm-in |
| 49960 | 66 6f 20 72 65 71 75 65 73 74 2d 66 73 6d 29 20 3a 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 | fo.request-fsm).:data)))........ |
| 49980 | 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a 20 20 20 20 20 20 20 20 28 | .(buffer-disable-undo).........( |
| 499a0 | 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 66 6f | erase-buffer).........(if.(eq.fo |
| 499c0 | 72 6d 61 74 20 27 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 | rmat.'json).............(progn.( |
| 499e0 | 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fundamental-mode)............... |
| 49a00 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 | .....(insert.(gptel--json-encode |
| 49a20 | 20 72 65 71 75 65 73 74 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .request-data))................. |
| 49a40 | 20 20 20 28 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 | ...(json-pretty-print-buffer)).. |
| 49a60 | 20 20 20 20 20 20 20 20 20 28 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 | .........(lisp-data-mode)....... |
| 49a80 | 20 20 20 20 28 70 72 69 6e 31 20 72 65 71 75 65 73 74 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 | ....(prin1.request-data)........ |
| 49aa0 | 20 20 20 28 70 70 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f | ...(pp-buffer)).........(setq-lo |
| 49ac0 | 63 61 6c 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 72 65 71 75 65 73 74 2d 66 73 6d 29 | cal.gptel--fsm-last.request-fsm) |
| 49ae0 | 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 | .........(goto-char.(point-min)) |
| 49b00 | 0a 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 20 20 28 | .........(view-mode.1).........( |
| 49b20 | 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 74 20 6e 69 6c 29 0a 20 20 20 20 20 | setq.buffer-undo-list.nil)...... |
| 49b40 | 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 | ...(use-local-map..........(make |
| 49b60 | 2d 63 6f 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 | -composed-keymap...........(defi |
| 49b80 | 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 63 22 20 | ne-keymap............."C-c.C-c". |
| 49ba0 | 23 27 67 70 74 65 6c 2d 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 | #'gptel--continue-query......... |
| 49bc0 | 20 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 | ...."C-c.C-k".#'quit-window).... |
| 49be0 | 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 | .......(current-local-map))).... |
| 49c00 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a | .....(unless.header-line-format. |
| 49c20 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d | ..........(setq.header-line-form |
| 49c40 | 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 | at.................(substitute-c |
| 49c60 | 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ommand-keys..................(co |
| 49c80 | 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 45 64 69 74 20 72 65 71 | ncat..................."Edit.req |
| 49ca0 | 75 65 73 74 3a 20 5c 5c 5b 72 65 61 64 2d 6f 6e 6c 79 2d 6d 6f 64 65 5d 2c 22 0a 20 20 20 20 20 | uest:.\\[read-only-mode],"...... |
| 49cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 53 65 6e 64 20 72 65 71 75 65 73 74 3a 20 5c 5c 5b | .............".Send.request:.\\[ |
| 49ce0 | 67 70 74 65 6c 2d 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 5d 2c 22 0a 20 20 20 20 20 20 20 | gptel--continue-query],"........ |
| 49d00 | 20 20 20 20 20 20 20 20 20 20 20 22 20 51 75 69 74 3a 20 5c 5c 5b 71 75 69 74 2d 77 69 6e 64 6f | ...........".Quit:.\\[quit-windo |
| 49d20 | 77 5d 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 | w]")))).........(display-buffer. |
| 49d40 | 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 | (current-buffer).gptel-display-b |
| 49d60 | 75 66 66 65 72 2d 61 63 74 69 6f 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | uffer-action)))))..(defun.gptel- |
| 49d80 | 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 20 28 29 0a 20 20 22 43 6f 6e 74 69 6e 75 65 20 73 | -continue-query.()..."Continue.s |
| 49da0 | 65 6e 64 69 6e 67 20 74 68 65 20 67 70 74 65 6c 20 71 75 65 72 79 20 64 69 73 70 6c 61 79 65 64 | ending.the.gptel.query.displayed |
| 49dc0 | 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 | .in.this.buffer...The.request.is |
| 49de0 | 20 63 6f 6e 74 69 6e 75 65 64 20 77 69 74 68 20 74 68 65 20 73 61 6d 65 20 70 61 72 61 6d 65 74 | .continued.with.the.same.paramet |
| 49e00 | 65 72 73 20 61 73 20 6f 72 69 67 69 6e 61 6c 6c 79 0a 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 | ers.as.originally.specified."... |
| 49e20 | 28 69 6e 74 65 72 61 63 74 69 76 65 20 6e 69 6c 20 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 20 | (interactive.nil.lisp-data-mode. |
| 49e40 | 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 | fundamental-mode)...(unless.(equ |
| 49e60 | 61 6c 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a 22 | al.(buffer-name)."*gptel-query*" |
| 49e80 | 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 | ).....(user-error."This.command. |
| 49ea0 | 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 75 73 65 20 69 6e 20 61 20 67 70 74 65 6c 20 64 72 79 2d | is.meant.for.use.in.a.gptel.dry- |
| 49ec0 | 72 75 6e 20 62 75 66 66 65 72 2e 22 29 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | run.buffer."))...(save-excursion |
| 49ee0 | 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | .....(goto-char.(point-min)).... |
| 49f00 | 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 2d 75 6e 6c 65 73 73 2d 64 65 62 75 67 20 6e 69 | .(condition-case-unless-debug.ni |
| 49f20 | 6c 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 64 61 74 61 20 28 69 66 20 | l.........(when-let*.((data.(if. |
| 49f40 | 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a | (eq.major-mode.'lisp-data-mode). |
| 49f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 | ..............................(r |
| 49f80 | 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ead.(current-buffer))........... |
| 49fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 | ..................(gptel--json-r |
| 49fc0 | 65 61 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 63 6c | ead))))...........(cl-assert.(cl |
| 49fe0 | 2d 74 79 70 65 70 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 27 67 70 74 65 6c 2d 66 73 | -typep.gptel--fsm-last.'gptel-fs |
| 4a000 | 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 67 70 74 65 6c 2d | m))...........(plist-put.(gptel- |
| 4a020 | 66 73 6d 2d 69 6e 66 6f 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 3a 64 61 74 61 20 | fsm-info.gptel--fsm-last).:data. |
| 4a040 | 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e | data)...........(gptel--fsm-tran |
| 4a060 | 73 69 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 20 20 3b 49 4e 49 54 20 | sition.gptel--fsm-last)...;INIT. |
| 4a080 | 2d 3e 20 57 41 49 54 0a 20 20 20 20 20 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 29 | ->.WAIT...........(quit-window)) |
| 4a0a0 | 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 | .......(error........(user-error |
| 4a0c0 | 20 22 43 61 6e 20 6e 6f 74 20 72 65 73 75 6d 65 20 72 65 71 75 65 73 74 3a 20 63 6f 75 6c 64 20 | ."Can.not.resume.request:.could. |
| 4a0e0 | 6e 6f 74 20 72 65 61 64 20 64 61 74 61 20 66 72 6f 6d 20 62 75 66 66 65 72 21 22 29 29 29 29 29 | not.read.data.from.buffer!"))))) |
| 4a100 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 | ..(defun.gptel--insert-response. |
| 4a120 | 28 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 72 61 77 29 0a 20 20 | (response.info.&optional.raw)... |
| 4a140 | 22 49 6e 73 65 72 74 20 74 68 65 20 4c 4c 4d 20 52 45 53 50 4f 4e 53 45 20 69 6e 74 6f 20 74 68 | "Insert.the.LLM.RESPONSE.into.th |
| 4a160 | 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2e 0a 0a 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 | e.gptel.buffer...INFO.is.a.plist |
| 4a180 | 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 6e 74 | .containing.information.relevant |
| 4a1a0 | 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 2d 75 72 6c | .to.this.buffer..See.`gptel--url |
| 4a1c0 | 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 4f 70 74 | -get-response'.for.details...Opt |
| 4a1e0 | 69 6f 6e 61 6c 20 52 41 57 20 64 69 73 61 62 6c 65 73 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 | ional.RAW.disables.text.properti |
| 4a200 | 65 73 20 61 6e 64 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 | es.and.transformation."...(let*. |
| 4a220 | 28 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | ((gptel-buffer.(plist-get.info.: |
| 4a240 | 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 | buffer))..........(start-marker. |
| 4a260 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 | (plist-get.info.:position))..... |
| 4a280 | 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 | .....(tracking-marker.(plist-get |
| 4a2a0 | 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 70 | .info.:tracking-marker))).....(p |
| 4a2c0 | 63 61 73 65 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 28 28 70 72 65 64 20 73 74 72 69 6e | case.response.......((pred.strin |
| 4a2e0 | 67 70 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 52 65 73 70 6f 6e 73 65 20 74 65 78 | gp)................;Response.tex |
| 4a300 | 74 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 | t........(with-current-buffer.gp |
| 4a320 | 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 61 63 6b 69 | tel-buffer..........(when.tracki |
| 4a340 | 6e 67 2d 6d 61 72 6b 65 72 20 20 20 20 20 20 20 20 20 20 20 3b 73 65 70 61 72 61 74 65 20 66 72 | ng-marker...........;separate.fr |
| 4a360 | 6f 6d 20 70 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 | om.previous.response............ |
| 4a380 | 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 63 6f 6e 63 61 74 20 67 70 74 65 6c 2d 72 65 73 | (setq.response.(concat.gptel-res |
| 4a3a0 | 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 | ponse-separator.response)))..... |
| 4a3c0 | 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(save-excursion............ |
| 4a3e0 | 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 | (with-current-buffer.(marker-buf |
| 4a400 | 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | fer.start-marker)..............( |
| 4a420 | 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 73 74 | goto-char.(or.tracking-marker.st |
| 4a440 | 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 72 75 | art-marker))..............;;.(ru |
| 4a460 | 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b | n-hooks.'gptel-pre-response-hook |
| 4a480 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 | )..............(unless.(or.(bobp |
| 4a4a0 | 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 29 0a 20 20 20 | ).(plist-get.info.:in-place).... |
| 4a4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 69 6e 67 2d 6d | ......................tracking-m |
| 4a4e0 | 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 67 70 | arker)................(insert.gp |
| 4a500 | 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 | tel-response-separator)......... |
| 4a520 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 | .......(when.gptel-mode......... |
| 4a540 | 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 | .........(insert.(gptel-response |
| 4a560 | 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -prefix-string)))............... |
| 4a580 | 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6f 69 6e | .(move-marker.start-marker.(poin |
| 4a5a0 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 61 77 0a 20 20 | t)))..............(unless.raw... |
| 4a5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 72 61 6e 73 66 | .............(when-let*.((transf |
| 4a5e0 | 6f 72 6d 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d | ormer.(plist-get.info.:transform |
| 4a600 | 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 | er)))..................(setq.res |
| 4a620 | 70 6f 6e 73 65 20 28 66 75 6e 63 61 6c 6c 20 74 72 61 6e 73 66 6f 72 6d 65 72 20 72 65 73 70 6f | ponse.(funcall.transformer.respo |
| 4a640 | 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d | nse)))................(add-text- |
| 4a660 | 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 | properties.................0.(le |
| 4a680 | 6e 67 74 68 20 72 65 73 70 6f 6e 73 65 29 20 27 28 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 | ngth.response).'(gptel.response. |
| 4a6a0 | 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 20 72 65 73 70 6f 6e 73 65 29 29 | front-sticky.(gptel)).response)) |
| 4a6c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 29 0a | ..............(insert.response). |
| 4a6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 | .............(plist-put.info.:tr |
| 4a700 | 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 73 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 | acking-marker.(setq.tracking-mar |
| 4a720 | 6b 65 72 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ker.(point-marker)))............ |
| 4a740 | 20 20 3b 3b 20 66 6f 72 20 75 6e 69 66 6f 72 6d 69 74 79 20 77 69 74 68 20 73 74 72 65 61 6d 69 | ..;;.for.uniformity.with.streami |
| 4a760 | 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d | ng.responses..............(set-m |
| 4a780 | 61 72 6b 65 72 2d 69 6e 73 65 72 74 69 6f 6e 2d 74 79 70 65 20 74 72 61 63 6b 69 6e 67 2d 6d 61 | arker-insertion-type.tracking-ma |
| 4a7a0 | 72 6b 65 72 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 60 28 72 65 61 73 6f 6e 69 6e 67 20 2e | rker.t))))).......(`(reasoning.. |
| 4a7c0 | 20 2c 74 65 78 74 29 0a 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 63 6c | .,text)........(when-let*.((incl |
| 4a7e0 | 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 | ude.(plist-get.info.:include-rea |
| 4a800 | 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 | soning)))..........(if.(stringp. |
| 4a820 | 69 6e 63 6c 75 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 | include)..............(with-curr |
| 4a840 | 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 0a 20 20 | ent-buffer.(get-buffer-create... |
| 4a860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4a880 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e | .(plist-get.info.:include-reason |
| 4a8a0 | 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 | ing))................(save-excur |
| 4a8c0 | 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e | sion.(goto-char.(point-max)).(in |
| 4a8e0 | 73 65 72 74 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 | sert.text)))............(with-cu |
| 4a900 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 | rrent-buffer.(marker-buffer.star |
| 4a920 | 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 | t-marker)..............(let.((se |
| 4a940 | 70 61 72 61 74 6f 72 20 20 20 20 20 20 20 20 20 3b 53 65 70 61 72 61 74 65 20 66 72 6f 6d 20 72 | parator.........;Separate.from.r |
| 4a960 | 65 73 70 6f 6e 73 65 20 70 72 65 66 69 78 20 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 | esponse.prefix.if.required...... |
| 4a980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e | ...............(and.(not.trackin |
| 4a9a0 | 67 2d 6d 61 72 6b 65 72 29 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 | g-marker).gptel-mode............ |
| 4a9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 | ..............(not.(string-suffi |
| 4a9e0 | 78 2d 70 20 22 5c 6e 22 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d | x-p."\n".(gptel-response-prefix- |
| 4aa00 | 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | string)))....................... |
| 4aa20 | 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c | ..."\n"))....................(bl |
| 4aa40 | 6f 63 6b 73 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f | ocks.(if.(derived-mode-p.'org-mo |
| 4aa60 | 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | de)............................. |
| 4aa80 | 20 20 20 60 28 22 23 2b 62 65 67 69 6e 5f 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 20 2e 20 2c 28 63 | ...`("#+begin_reasoning\n"...,(c |
| 4aaa0 | 6f 6e 63 61 74 20 22 5c 6e 23 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 0a 20 20 20 20 20 20 | oncat."\n#+end_reasoning"....... |
| 4aac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4aae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f | .....................gptel-respo |
| 4ab00 | 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nse-separator))................. |
| 4ab20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 72 65 61 73 6f 6e 69 6e 67 29 20 | .............;;.TODO(reasoning). |
| 4ab40 | 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 73 74 72 69 70 20 69 6e 73 74 | remove.properties.and.strip.inst |
| 4ab60 | 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ead............................. |
| 4ab80 | 20 28 63 6f 6e 73 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 60 60 60 20 72 65 61 73 6f 6e 69 6e | .(cons.(propertize."```.reasonin |
| 4aba0 | 67 5c 6e 22 20 27 67 70 74 65 6c 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | g\n".'gptel.'ignore)............ |
| 4abc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | ........................(concat. |
| 4abe0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 60 60 60 22 20 27 67 70 74 65 6c 20 27 69 67 6e 6f | (propertize."\n```".'gptel.'igno |
| 4ac00 | 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | re)............................. |
| 4ac20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 | ...............gptel-response-se |
| 4ac40 | 70 61 72 61 74 6f 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | parator)))))................(if. |
| 4ac60 | 28 65 71 20 69 6e 63 6c 75 64 65 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (eq.include.'ignore)............ |
| 4ac80 | 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(progn.................. |
| 4aca0 | 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 | ....(add-text-properties........ |
| 4acc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 27 | ...............0.(length.text).' |
| 4ace0 | 28 67 70 74 65 6c 20 69 67 6e 6f 72 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 | (gptel.ignore.front-sticky.(gpte |
| 4ad00 | 6c 29 29 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | l)).text)......................( |
| 4ad20 | 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 | gptel--insert-response.......... |
| 4ad40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 61 72 20 62 6c 6f 63 6b 73 | .............(concat.(car.blocks |
| 4ad60 | 29 20 74 65 78 74 20 28 63 64 72 20 62 6c 6f 63 6b 73 29 29 20 69 6e 66 6f 20 74 29 29 0a 20 20 | ).text.(cdr.blocks)).info.t))... |
| 4ad80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 | ...............(gptel--insert-re |
| 4ada0 | 73 70 6f 6e 73 65 20 28 63 6f 6e 63 61 74 20 73 65 70 61 72 61 74 6f 72 20 28 63 61 72 20 62 6c | sponse.(concat.separator.(car.bl |
| 4adc0 | 6f 63 6b 73 29 29 20 69 6e 66 6f 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocks)).info.t).................. |
| 4ade0 | 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 69 6e 66 | (gptel--insert-response.text.inf |
| 4ae00 | 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 | o)..................(gptel--inse |
| 4ae20 | 72 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 64 72 20 62 6c 6f 63 6b 73 29 20 69 6e 66 6f 20 74 29 | rt-response.(cdr.blocks).info.t) |
| 4ae40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d | )................(when.(derived- |
| 4ae60 | 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 62 6c 6f 63 6b 0a 20 20 | mode-p.'org-mode).;fold.block... |
| 4ae80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 | ...............(save-excursion.. |
| 4aea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6c | ..................(goto-char.(pl |
| 4aec0 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a | ist-get.info.:tracking-marker)). |
| 4aee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 | ...................(search-backw |
| 4af00 | 61 72 64 20 22 23 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 20 73 74 61 72 74 2d 6d 61 72 6b | ard."#+end_reasoning".start-mark |
| 4af20 | 65 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | er.t)....................(when.( |
| 4af40 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 23 5c 5c 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 29 | looking-at."^#\\+end_reasoning") |
| 4af60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 63 79 63 6c 65 | ......................(org-cycle |
| 4af80 | 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 2c | ))))))))).......(`(tool-call..., |
| 4afa0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c | tool-calls)........(gptel--displ |
| 4afc0 | 61 79 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 29 29 0a | ay-tool-calls.tool-calls.info)). |
| 4afe0 | 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 2c 74 6f 6f 6c 2d 72 65 73 | ......(`(tool-result...,tool-res |
| 4b000 | 75 6c 74 73 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f | ults)........(gptel--display-too |
| 4b020 | 6c 2d 72 65 73 75 6c 74 73 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 29 29 29 29 | l-results.tool-results.info))))) |
| 4b040 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 | ..(defun.gptel--create-prompt-bu |
| 4b060 | 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 | ffer.(&optional.prompt-end)..."R |
| 4b080 | 65 74 75 72 6e 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 63 6f 6e 76 65 72 73 61 | eturn.a.buffer.with.the.conversa |
| 4b0a0 | 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 62 65 20 73 65 6e 74 2e 0a 0a 49 66 20 74 68 65 20 | tion.prompt.to.be.sent...If.the. |
| 4b0c0 | 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 20 6c 69 6d 69 74 20 74 68 65 20 70 72 6f 6d 70 | region.is.active.limit.the.promp |
| 4b0e0 | 74 20 74 65 78 74 20 74 6f 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 2e 0a 4f | t.text.to.the.region.contents..O |
| 4b100 | 74 68 65 72 77 69 73 65 20 74 68 65 20 70 72 6f 6d 70 74 20 74 65 78 74 20 69 73 20 63 6f 6e 73 | therwise.the.prompt.text.is.cons |
| 4b120 | 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 | tructed.from.the.contents.of.the |
| 4b140 | 0a 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 70 6f 69 6e 74 2c 20 6f 72 20 | .current.buffer.up.to.point,.or. |
| 4b160 | 50 52 4f 4d 50 54 2d 45 4e 44 20 69 66 20 70 72 6f 76 69 64 65 64 2e 22 0a 20 20 28 73 61 76 65 | PROMPT-END.if.provided."...(save |
| 4b180 | 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e | -excursion.....(save-restriction |
| 4b1a0 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | .......(let.((buf.(current-buffe |
| 4b1c0 | 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 64 65 | r))).........(cond..........((de |
| 4b1e0 | 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 | rived-mode-p.'org-mode)......... |
| 4b200 | 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 20 20 20 20 | ..(require.'gptel-org).......... |
| 4b220 | 20 3b 3b 20 41 6c 73 6f 20 68 61 6e 64 6c 65 73 20 72 65 67 69 6f 6e 73 20 69 6e 20 4f 72 67 20 | .;;.Also.handles.regions.in.Org. |
| 4b240 | 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 | mode...........(gptel-org--creat |
| 4b260 | 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 | e-prompt-buffer.prompt-end)).... |
| 4b280 | 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 | ......((use-region-p)........... |
| 4b2a0 | 28 6c 65 74 20 28 28 72 62 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 20 28 72 | (let.((rb.(region-beginning)).(r |
| 4b2c0 | 65 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | e.(region-end))).............(gp |
| 4b2e0 | 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 62 75 66 20 72 62 20 72 65 0a | tel--with-buffer-copy.buf.rb.re. |
| 4b300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 | ..............(current-buffer))) |
| 4b320 | 29 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 75 6e 6c 65 73 73 20 70 72 6f 6d 70 74 2d 65 6e 64 | )..........(t.(unless.prompt-end |
| 4b340 | 20 28 73 65 74 71 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 | .(setq.prompt-end.(point)))..... |
| 4b360 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 | ........(gptel--with-buffer-copy |
| 4b380 | 20 62 75 66 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 70 72 6f 6d 70 74 2d 65 6e 64 0a 20 20 20 20 | .buf.(point-min).prompt-end..... |
| 4b3a0 | 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 29 | ..........(current-buffer))))))) |
| 4b3c0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 28 | )..(defun.gptel--create-prompt.( |
| 4b3e0 | 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 | &optional.prompt-end)..."Return. |
| 4b400 | 61 20 66 75 6c 6c 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 | a.full.conversation.prompt.from. |
| 4b420 | 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 49 66 | the.contents.of.this.buffer...If |
| 4b440 | 20 60 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 27 20 69 | .`gptel--num-messages-to-send'.i |
| 4b460 | 73 20 73 65 74 2c 20 6c 69 6d 69 74 20 74 6f 20 74 68 61 74 20 6d 61 6e 79 0a 72 65 63 65 6e 74 | s.set,.limit.to.that.many.recent |
| 4b480 | 20 65 78 63 68 61 6e 67 65 73 2e 0a 0a 49 66 20 50 52 4f 4d 50 54 2d 45 4e 44 20 28 61 20 6d 61 | .exchanges...If.PROMPT-END.(a.ma |
| 4b4a0 | 72 6b 65 72 29 20 69 73 20 70 72 6f 76 69 64 65 64 2c 20 65 6e 64 20 74 68 65 20 70 72 6f 6d 70 | rker).is.provided,.end.the.promp |
| 4b4c0 | 74 20 63 6f 6e 74 65 6e 74 73 0a 74 68 65 72 65 2e 20 20 54 68 69 73 20 64 65 66 61 75 6c 74 73 | t.contents.there...This.defaults |
| 4b4e0 | 20 74 6f 20 28 70 6f 69 6e 74 29 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | .to.(point)."...(with-current-bu |
| 4b500 | 66 66 65 72 20 28 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 | ffer.(gptel--create-prompt-buffe |
| 4b520 | 72 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 | r.prompt-end).....(unwind-protec |
| 4b540 | 74 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 0a 20 | t.........(gptel--parse-buffer.. |
| 4b560 | 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 61 6e 64 20 67 70 74 65 6c | ........gptel-backend.(and.gptel |
| 4b580 | 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 | --num-messages-to-send.......... |
| 4b5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 32 20 67 70 74 65 6c 2d 2d 6e | ...................(*.2.gptel--n |
| 4b5c0 | 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6b 69 | um-messages-to-send))).......(ki |
| 4b5e0 | 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a | ll-buffer.(current-buffer))))).. |
| 4b600 | 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 27 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 | (make-obsolete.'gptel--create-pr |
| 4b620 | 6f 6d 70 74 20 27 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 | ompt.'gptel--create-prompt-buffe |
| 4b640 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 30 2e 39 2e 39 22 29 0a 0a 28 63 6c 2d 64 | r................"0.9.9")..(cl-d |
| 4b660 | 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 62 | efgeneric.gptel--parse-buffer.(b |
| 4b680 | 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 | ackend.max-entries)..."Parse.cur |
| 4b6a0 | 72 65 6e 74 20 62 75 66 66 65 72 20 62 61 63 6b 77 61 72 64 73 20 66 72 6f 6d 20 70 6f 69 6e 74 | rent.buffer.backwards.from.point |
| 4b6c0 | 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a | .and.return.a.list.of.prompts... |
| 4b6e0 | 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 | BACKEND.is.the.LLM.backend.in.us |
| 4b700 | 65 2e 0a 0a 4d 41 58 2d 45 4e 54 52 49 45 53 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 | e...MAX-ENTRIES.is.the.number.of |
| 4b720 | 20 71 75 65 72 69 65 73 2f 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 66 6f | .queries/responses.to.include.fo |
| 4b740 | 72 0a 63 6f 6e 74 65 78 62 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 61 72 | r.contexbt.")..(defun.gptel--par |
| 4b760 | 73 65 2d 6c 69 73 74 2d 61 6e 64 2d 69 6e 73 65 72 74 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 | se-list-and-insert.(prompts)..." |
| 4b780 | 49 6e 73 65 72 74 20 50 52 4f 4d 50 54 53 2c 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 | Insert.PROMPTS,.a.list.of.messag |
| 4b7a0 | 65 73 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 50 72 6f | es.into.the.current.buffer...Pro |
| 4b7c0 | 70 65 72 74 69 7a 65 20 74 68 65 20 69 6e 73 65 72 74 69 6f 6e 73 20 69 6e 20 61 20 66 6f 72 6d | pertize.the.insertions.in.a.form |
| 4b7e0 | 61 74 20 67 70 74 65 6c 20 63 61 6e 20 70 61 72 73 65 20 69 6e 74 6f 20 61 0a 63 6f 6e 76 65 72 | at.gptel.can.parse.into.a.conver |
| 4b800 | 73 61 74 69 6f 6e 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 | sation...PROMPTS.is.typically.th |
| 4b820 | 65 20 69 6e 70 75 74 20 74 6f 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 2c 20 65 69 74 68 | e.input.to.`gptel-request',.eith |
| 4b840 | 65 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 72 65 70 72 65 73 65 6e 74 69 6e | er.a.list.of.strings.representin |
| 4b860 | 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 6c 74 65 72 6e 61 74 65 20 | g.a.conversation.with.alternate. |
| 4b880 | 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 20 74 75 72 6e 73 2c 20 6f 72 20 61 20 6c 69 73 74 | prompt/response.turns,.or.a.list |
| 4b8a0 | 20 6f 66 0a 6c 69 73 74 73 20 77 69 74 68 20 65 78 70 6c 69 63 69 74 20 72 6f 6c 65 73 20 28 70 | .of.lists.with.explicit.roles.(p |
| 4b8c0 | 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 2f 74 6f 6f 6c 29 2e 20 20 53 65 65 20 74 68 65 20 64 | rompt/response/tool)...See.the.d |
| 4b8e0 | 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 20 | ocumentation.of.`gptel-request'. |
| 4b900 | 66 6f 72 20 74 68 65 20 6c 61 74 74 65 72 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 | for.the.latter."...(if.(stringp. |
| 4b920 | 28 63 61 72 20 70 72 6f 6d 70 74 73 29 29 20 20 20 20 20 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 | (car.prompts)).........;.Simple. |
| 4b940 | 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 28 63 | format,.list.of.strings.......(c |
| 4b960 | 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 | l-loop.for.text.in.prompts...... |
| 4b980 | 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 65 73 70 6f 6e 73 65 20 3d 20 6e 69 6c 20 74 68 65 | ..........for.response.=.nil.the |
| 4b9a0 | 6e 20 28 6e 6f 74 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.(not.response)................ |
| 4b9c0 | 77 68 65 6e 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 65 73 70 | when.text................if.resp |
| 4b9e0 | 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 69 6e 73 65 72 74 20 67 | onse................do.(insert.g |
| 4ba00 | 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 | ptel-response-separator......... |
| 4ba20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 74 65 | ..................(propertize.te |
| 4ba40 | 78 74 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | xt.'gptel.'response)............ |
| 4ba60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 | ...............gptel-response-se |
| 4ba80 | 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 | parator)................else.do. |
| 4baa0 | 28 69 6e 73 65 72 74 20 74 65 78 74 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 | (insert.text)).....(dolist.(entr |
| 4bac0 | 79 20 70 72 6f 6d 70 74 73 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 | y.prompts).............;.Advance |
| 4bae0 | 64 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 28 70 | d.format,.list.of.lists.......(p |
| 4bb00 | 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c | case.entry.........(`(prompt..., |
| 4bb20 | 6d 73 67 29 20 28 69 6e 73 65 72 74 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 | msg).(insert.(or.(car-safe.msg). |
| 4bb40 | 6d 73 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d 73 | msg))).........(`(response...,ms |
| 4bb60 | 67 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e | g)..........(insert.gptel-respon |
| 4bb80 | 73 65 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | se-separator..................(p |
| 4bba0 | 72 6f 70 65 72 74 69 7a 65 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 | ropertize.(or.(car-safe.msg).msg |
| 4bbc0 | 29 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 60 | ).'gptel.'response))).........(` |
| 4bbe0 | 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | (tool...,call)..........(insert. |
| 4bc00 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 | gptel-response-separator........ |
| 4bc20 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 | ..........(propertize........... |
| 4bc40 | 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(concat................. |
| 4bc60 | 20 20 20 22 28 3a 6e 61 6d 65 20 22 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 | ..."(:name.".(plist-get.call.:na |
| 4bc80 | 6d 65 29 20 22 20 3a 61 72 67 73 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me).".:args."................... |
| 4bca0 | 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c | .(prin1-to-string.(plist-get.cal |
| 4bcc0 | 6c 20 3a 61 72 67 73 29 29 20 22 29 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.:args)).")\n\n"............... |
| 4bce0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 0a 20 | .....(plist-get.call.:result)).. |
| 4bd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f 6c 20 2e | .................'gptel.`(tool.. |
| 4bd20 | 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 69 64 29 29 29 29 29 29 29 29 29 0a 0a | .,(plist-get.call.:id))))))))).. |
| 4bd40 | 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 | (cl-defgeneric.gptel--parse-list |
| 4bd60 | 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 22 50 61 72 73 65 20 | .(backend.prompt-list)..."Parse. |
| 4bd80 | 50 52 4f 4d 50 54 2d 4c 49 53 54 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 | PROMPT-LIST.and.return.a.list.of |
| 4bda0 | 20 70 72 6f 6d 70 74 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 42 41 43 4b 45 4e 44 2e 0a 0a | .prompts.suitable.for.BACKEND... |
| 4bdc0 | 50 52 4f 4d 50 54 2d 4c 49 53 54 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 | PROMPT-LIST.is.interpreted.as.a. |
| 4bde0 | 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 6e | conversation,.i.e..an.alternatin |
| 4be00 | 67 0a 73 65 72 69 65 73 20 6f 66 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 4c 4c 4d | g.series.of.user.prompts.and.LLM |
| 4be20 | 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 65 20 72 65 74 75 72 6e 65 64 20 73 74 72 75 63 74 | .responses...The.returned.struct |
| 4be40 | 75 72 65 0a 69 73 20 73 75 69 74 61 62 6c 65 20 66 6f 72 20 69 6e 63 6c 75 64 69 6e 67 20 69 6e | ure.is.suitable.for.including.in |
| 4be60 | 20 74 68 65 20 72 65 71 75 65 73 74 20 70 61 79 6c 6f 61 64 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 | .the.request.payload...BACKEND.i |
| 4be80 | 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 22 29 0a 0a 28 63 6c | s.the.LLM.backend.in.use.")..(cl |
| 4bea0 | 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c | -defgeneric.gptel--parse-media-l |
| 4bec0 | 69 6e 6b 73 20 28 6d 6f 64 65 20 62 65 67 20 65 6e 64 29 0a 20 20 22 46 69 6e 64 20 6d 65 64 69 | inks.(mode.beg.end)..."Find.medi |
| 4bee0 | 61 20 6c 69 6e 6b 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 0a 4d 4f | a.links.between.BEG.and.END...MO |
| 4bf00 | 44 45 20 69 73 20 74 68 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 6f 66 20 74 68 65 20 62 75 66 66 | DE.is.the.major-mode.of.the.buff |
| 4bf20 | 65 72 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 70 6c 69 73 74 20 77 68 65 72 65 20 65 61 63 68 20 | er...Returns.a.plist.where.each. |
| 4bf40 | 65 6e 74 72 79 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 28 3a 74 65 78 74 20 5c 22 | entry.is.of.the.form...(:text.\" |
| 4bf60 | 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 6f 72 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 6d 65 64 69 | some.text\").or...(:media.\"medi |
| 4bf80 | 61 20 75 72 69 20 6f 72 20 66 69 6c 65 20 70 61 74 68 5c 22 29 2e 22 0a 20 20 28 69 67 6e 6f 72 | a.uri.or.file.path\")."...(ignor |
| 4bfa0 | 65 20 6d 6f 64 65 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.mode)......................... |
| 4bfc0 | 3b 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 28 6c 69 73 74 20 60 28 3a 74 65 78 74 20 2c | ;byte-compiler...(list.`(:text., |
| 4bfe0 | 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a | (buffer-substring-no-properties. |
| 4c000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e 64 29 29 29 29 0a 0a 28 | ..................beg.end))))..( |
| 4c020 | 64 65 66 76 61 72 20 6d 61 72 6b 64 6f 77 6e 2d 72 65 67 65 78 2d 6c 69 6e 6b 2d 69 6e 6c 69 6e | defvar.markdown-regex-link-inlin |
| 4c040 | 65 29 0a 28 64 65 66 76 61 72 20 6d 61 72 6b 64 6f 77 6e 2d 72 65 67 65 78 2d 61 6e 67 6c 65 2d | e).(defvar.markdown-regex-angle- |
| 4c060 | 75 72 69 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 64 6f 77 6e 2d | uri).(declare-function.markdown- |
| 4c080 | 6c 69 6e 6b 2d 61 74 2d 70 6f 73 20 22 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 22 29 0a 28 64 65 | link-at-pos."markdown-mode").(de |
| 4c0a0 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 | clare-function.mailcap-file-name |
| 4c0c0 | 2d 74 6f 2d 6d 69 6d 65 2d 74 79 70 65 20 22 6d 61 69 6c 63 61 70 22 29 0a 0a 28 63 6c 2d 64 65 | -to-mime-type."mailcap")..(cl-de |
| 4c0e0 | 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b 73 | fmethod.gptel--parse-media-links |
| 4c100 | 20 28 28 5f 6d 6f 64 65 20 28 65 71 6c 20 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 29 29 20 62 | .((_mode.(eql.'markdown-mode)).b |
| 4c120 | 65 67 20 65 6e 64 29 0a 20 20 22 50 61 72 73 65 20 74 65 78 74 20 61 6e 64 20 61 63 74 69 6f 6e | eg.end)..."Parse.text.and.action |
| 4c140 | 61 62 6c 65 20 6c 69 6e 6b 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a | able.links.between.BEG.and.END.. |
| 4c160 | 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 | .Return.a.list.of.the.form..((:t |
| 4c180 | 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f | ext.\"some.text\")...(:media.\"/ |
| 4c1a0 | 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 | path/to/media.png\".:mime.\"imag |
| 4c1c0 | 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 | e/png\")...(:text.\"More.text\") |
| 4c1e0 | 29 0a 66 6f 72 20 69 6e 63 6c 75 73 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 75 73 65 72 20 70 72 | ).for.inclusion.into.the.user.pr |
| 4c200 | 6f 6d 70 74 20 66 6f 72 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 | ompt.for.the.gptel.request."...( |
| 4c220 | 72 65 71 75 69 72 65 20 27 6d 61 69 6c 63 61 70 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | require.'mailcap)............... |
| 4c240 | 20 20 20 20 20 3b 46 49 58 4d 45 20 41 76 6f 69 64 20 74 68 69 73 20 73 6f 6d 65 68 6f 77 0a 20 | .....;FIXME.Avoid.this.somehow.. |
| 4c260 | 20 28 6c 65 74 20 28 28 70 61 72 74 73 29 20 28 66 72 6f 6d 2d 70 74 29 20 28 6d 69 6d 65 29 29 | .(let.((parts).(from-pt).(mime)) |
| 4c280 | 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 | .....(save-excursion.......(setq |
| 4c2a0 | 20 66 72 6f 6d 2d 70 74 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 29 0a 20 20 20 20 20 20 | .from-pt.(goto-char.beg))....... |
| 4c2c0 | 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 | (while.(re-search-forward....... |
| 4c2e0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 3f 3a 22 20 6d 61 72 6b 64 6f 77 6e | ........(concat."\\(?:".markdown |
| 4c300 | 2d 72 65 67 65 78 2d 6c 69 6e 6b 2d 69 6e 6c 69 6e 65 20 22 5c 5c 7c 22 0a 20 20 20 20 20 20 20 | -regex-link-inline."\\|"........ |
| 4c320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61 72 6b 64 6f 77 6e 2d 72 65 67 65 78 2d 61 6e | ...............markdown-regex-an |
| 4c340 | 67 6c 65 2d 75 72 69 20 22 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 | gle-uri."\\)")...............end |
| 4c360 | 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 69 6d 65 20 6e 69 6c 29 0a 20 20 20 20 | .t).........(setq.mime.nil)..... |
| 4c380 | 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6c 69 6e 6b 2d 61 74 2d 70 74 20 28 6d 61 72 | ....(when-let*.((link-at-pt.(mar |
| 4c3a0 | 6b 64 6f 77 6e 2d 6c 69 6e 6b 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 | kdown-link-at-pos.(point)))..... |
| 4c3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 70 74 65 6c 2d 2d 6c 69 6e 6b 2d 73 74 | ................((gptel--link-st |
| 4c3e0 | 61 6e 64 61 6c 6f 6e 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | andalone-p...................... |
| 4c400 | 20 28 63 61 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 20 28 63 61 64 72 20 6c 69 6e 6b 2d 61 74 2d | .(car.link-at-pt).(cadr.link-at- |
| 4c420 | 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 | pt))).....................(path. |
| 4c440 | 28 6e 74 68 20 33 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (nth.3.link-at-pt))............. |
| 4c460 | 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 70 72 65 | ........(path.(string-remove-pre |
| 4c480 | 66 69 78 20 22 66 69 6c 65 3a 2f 2f 22 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | fix."file://".path)))........... |
| 4c4a0 | 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 65 71 2d 73 6f 6d 65 20 28 6c 61 6d | (cond............((seq-some.(lam |
| 4c4c0 | 62 64 61 20 28 70 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 70 20 70 61 74 68 29 | bda.(p).(string-prefix-p.p.path) |
| 4c4e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 68 74 74 70 73 | ).......................'("https |
| 4c500 | 3a 22 20 22 68 74 74 70 3a 22 20 22 66 74 70 3a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | :"."http:"."ftp:"))............. |
| 4c520 | 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 69 73 20 69 6d 61 67 65 | ;;.Collect.text.up.to.this.image |
| 4c540 | 2c 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 20 75 72 6c 0a 20 20 20 | ,.and.collect.this.image.url.... |
| 4c560 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 | .........(when.(gptel--model-cap |
| 4c580 | 61 62 6c 65 2d 70 20 27 75 72 6c 29 20 3b 20 46 49 58 4d 45 20 54 68 69 73 20 69 73 20 6e 6f 74 | able-p.'url).;.FIXME.This.is.not |
| 4c5a0 | 20 61 20 67 6f 6f 64 20 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .a.good.place................... |
| 4c5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 6f 20 63 68 65 63 6b | ......................;.to.check |
| 4c5e0 | 20 66 6f 72 20 75 72 6c 20 63 61 70 61 62 69 6c 69 74 79 21 0a 20 20 20 20 20 20 20 20 20 20 20 | .for.url.capability!............ |
| 4c600 | 20 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 | ...(let.((text.(buffer-substring |
| 4c620 | 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 2d 70 74 20 28 63 61 72 20 6c 69 6e 6b | -no-properties.from-pt.(car.link |
| 4c640 | 2d 61 74 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 | -at-pt)))).................(unle |
| 4c660 | 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 | ss.(string-blank-p.text).(push.( |
| 4c680 | 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 29 20 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 | list.:text.text).parts))........ |
| 4c6a0 | 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 75 72 6c 20 70 61 74 68 20 3a | .........(push.(list.:url.path.: |
| 4c6c0 | 6d 69 6d 65 20 6d 69 6d 65 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mime.mime).parts)............... |
| 4c6e0 | 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 63 61 64 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 | ..(setq.from-pt.(cadr.link-at-pt |
| 4c700 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 | )))))............((file-readable |
| 4c720 | 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f | -p.path).............(if.(or.(no |
| 4c740 | 74 20 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 70 61 74 68 29 29 0a 20 | t.(gptel--file-binary-p.path)).. |
| 4c760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 6d 69 | ...................(and.(setq.mi |
| 4c780 | 6d 65 20 28 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 6d 65 2d 74 79 | me.(mailcap-file-name-to-mime-ty |
| 4c7a0 | 70 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pe.path))....................... |
| 4c7c0 | 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d 70 20 | ...(gptel--model-mime-capable-p. |
| 4c7e0 | 6d 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 | mime))).................;;.Colle |
| 4c800 | 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 69 73 20 69 6d 61 67 65 2c 20 61 6e 64 20 63 6f | ct.text.up.to.this.image,.and.co |
| 4c820 | 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | llect.this.image................ |
| 4c840 | 20 28 6c 65 74 20 28 28 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e | .(let.((text.(buffer-substring-n |
| 4c860 | 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 2d 70 74 20 28 63 61 72 20 6c 69 6e 6b 2d 61 | o-properties.from-pt.(car.link-a |
| 4c880 | 74 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 | t-pt))))...................(unle |
| 4c8a0 | 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 | ss.(string-blank-p.text).(push.( |
| 4c8c0 | 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 29 20 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 | list.:text.text).parts))........ |
| 4c8e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 6d 69 6d 65 20 28 6c 69 73 74 20 | ...........(push.(if.mime.(list. |
| 4c900 | 3a 6d 65 64 69 61 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 20 28 6c 69 73 74 20 3a 74 | :media.path.:mime.mime).(list.:t |
| 4c920 | 65 78 74 66 69 6c 65 20 70 61 74 68 29 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 | extfile.path)).parts)........... |
| 4c940 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 63 61 64 72 20 6c 69 6e 6b | ........(setq.from-pt.(cadr.link |
| 4c960 | 2d 61 74 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 | -at-pt)))...............(message |
| 4c980 | 20 22 49 67 6e 6f 72 69 6e 67 20 75 6e 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 | ."Ignoring.unsupported.binary.fi |
| 4c9a0 | 6c 65 20 5c 22 25 73 5c 22 2e 22 20 70 61 74 68 29 29 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c | le.\"%s\".".path))))))).....(unl |
| 4c9c0 | 65 73 73 20 28 3d 20 66 72 6f 6d 2d 70 74 20 65 6e 64 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 | ess.(=.from-pt.end).......(push. |
| 4c9e0 | 28 6c 69 73 74 20 3a 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f | (list.:text.(buffer-substring-no |
| 4ca00 | 2d 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 2d 70 74 20 65 6e 64 29 29 20 70 61 72 74 73 29 | -properties.from-pt.end)).parts) |
| 4ca20 | 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 61 72 74 73 29 29 29 0a 0a 28 63 6c 2d 64 65 | ).....(nreverse.parts)))..(cl-de |
| 4ca40 | 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 | fgeneric.gptel--wrap-user-prompt |
| 4ca60 | 20 28 62 61 63 6b 65 6e 64 20 5f 70 72 6f 6d 70 74 73 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 | .(backend._prompts)..."Wrap.the. |
| 4ca80 | 6c 61 73 74 20 70 72 6f 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 67 70 74 65 | last.prompt.in.PROMPTS.with.gpte |
| 4caa0 | 6c 27 73 20 63 6f 6e 74 65 78 74 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 73 20 61 20 73 74 72 75 63 | l's.context...PROMPTS.is.a.struc |
| 4cac0 | 74 75 72 65 20 61 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 60 67 70 74 65 6c 2d 2d 70 61 72 73 | ture.as.returned.by.`gptel--pars |
| 4cae0 | 65 2d 62 75 66 66 65 72 27 2e 0a 54 79 70 69 63 61 6c 6c 79 20 74 68 69 73 20 69 73 20 61 20 6c | e-buffer'..Typically.this.is.a.l |
| 4cb00 | 69 73 74 20 6f 66 20 70 6c 69 73 74 73 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 67 | ist.of.plists...BACKEND.is.the.g |
| 4cb20 | 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 22 0a 20 20 28 64 69 73 70 6c 61 79 | ptel.backend.in.use."...(display |
| 4cb40 | 2d 77 61 72 6e 69 6e 67 0a 20 20 20 27 28 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 29 0a 20 20 20 | -warning....'(gptel.context).... |
| 4cb60 | 28 66 6f 72 6d 61 74 20 22 43 6f 6e 74 65 78 74 20 73 75 70 70 6f 72 74 20 6e 6f 74 20 69 6d 70 | (format."Context.support.not.imp |
| 4cb80 | 6c 65 6d 65 6e 74 65 64 20 66 6f 72 20 62 61 63 6b 65 6e 64 20 25 73 2c 20 69 67 6e 6f 72 69 6e | lemented.for.backend.%s,.ignorin |
| 4cba0 | 67 20 63 6f 6e 74 65 78 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 | g.context"............(gptel-bac |
| 4cbc0 | 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 | kend-name.backend))))..(cl-defge |
| 4cbe0 | 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 62 61 63 6b 65 | neric.gptel--request-data.(backe |
| 4cc00 | 6e 64 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 70 6c 69 73 74 20 | nd.prompts)..."Generate.a.plist. |
| 4cc20 | 6f 66 20 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 61 6e 20 4c 4c 4d 20 71 75 65 72 79 2e 0a 0a 42 | of.all.data.for.an.LLM.query...B |
| 4cc40 | 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 | ACKEND.is.the.LLM.backend.in.use |
| 4cc60 | 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 73 20 74 68 65 20 70 6c 69 73 74 20 6f 66 20 70 72 65 76 69 | ...PROMPTS.is.the.plist.of.previ |
| 4cc80 | 6f 75 73 20 75 73 65 72 20 71 75 65 72 69 65 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 | ous.user.queries.and.LLM.respons |
| 4cca0 | 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 | es.")..(defun.gptel--url-get-res |
| 4ccc0 | 70 6f 6e 73 65 20 28 66 73 6d 29 0a 20 20 22 46 65 74 63 68 20 72 65 73 70 6f 6e 73 65 20 74 6f | ponse.(fsm)..."Fetch.response.to |
| 4cce0 | 20 70 72 6f 6d 70 74 20 69 6e 20 73 74 61 74 65 20 46 53 4d 20 66 72 6f 6d 20 74 68 65 20 4c 4c | .prompt.in.state.FSM.from.the.LL |
| 4cd00 | 4d 2e 0a 0a 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 64 72 69 | M...FSM.is.the.state.machine.dri |
| 4cd20 | 76 69 6e 67 20 74 68 69 73 20 72 65 71 75 65 73 74 2e 20 20 49 74 73 20 49 4e 46 4f 20 73 6c 6f | ving.this.request...Its.INFO.slo |
| 4cd40 | 74 0a 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 64 61 74 61 20 72 65 71 75 69 72 65 64 20 66 6f 72 | t.contains.the.data.required.for |
| 4cd60 | 20 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 49 4e 46 4f 20 69 | .setting.up.the.request...INFO.i |
| 4cd80 | 73 20 61 0a 70 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 | s.a.plist.with.the.following.key |
| 4cda0 | 73 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 73 3a 0a 2d 20 3a 64 61 74 61 20 20 20 20 20 28 74 68 | s,.among.others:.-.:data.....(th |
| 4cdc0 | 65 20 64 61 74 61 20 62 65 69 6e 67 20 73 65 6e 74 29 0a 2d 20 3a 62 75 66 66 65 72 20 20 20 28 | e.data.being.sent).-.:buffer...( |
| 4cde0 | 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 29 0a 2d 20 3a 70 6f 73 69 74 69 6f 6e 20 28 6d | the.gptel.buffer).-.:position.(m |
| 4ce00 | 61 72 6b 65 72 20 61 74 20 77 68 69 63 68 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 | arker.at.which.to.insert.the.res |
| 4ce20 | 70 6f 6e 73 65 29 2e 0a 2d 20 3a 63 61 6c 6c 62 61 63 6b 20 28 6f 70 74 69 6f 6e 61 6c 2c 20 74 | ponse)..-.:callback.(optional,.t |
| 4ce40 | 68 65 20 72 65 71 75 65 73 74 20 63 61 6c 6c 62 61 63 6b 29 0a 0a 43 61 6c 6c 20 43 41 4c 4c 42 | he.request.callback)..Call.CALLB |
| 4ce60 | 41 43 4b 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 61 6e 64 20 49 4e 46 4f 20 61 | ACK.with.the.response.and.INFO.a |
| 4ce80 | 66 74 65 72 77 61 72 64 73 2e 20 20 49 66 20 6f 6d 69 74 74 65 64 0a 74 68 65 20 72 65 73 70 6f | fterwards...If.omitted.the.respo |
| 4cea0 | 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 | nse.is.inserted.into.the.current |
| 4cec0 | 20 62 75 66 66 65 72 20 61 66 74 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 | .buffer.after.point."...(let*.(( |
| 4cee0 | 69 6e 68 69 62 69 74 2d 6d 65 73 73 61 67 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 | inhibit-message.t)..........(mes |
| 4cf00 | 73 61 67 65 2d 6c 6f 67 2d 6d 61 78 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d | sage-log-max.nil)..........(url- |
| 4cf20 | 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 20 20 20 20 20 20 20 20 20 | request-method."POST").......... |
| 4cf40 | 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 | (url-request-extra-headers...... |
| 4cf60 | 20 20 20 20 20 28 61 70 70 65 6e 64 20 27 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 20 2e | .....(append.'(("Content-Type".. |
| 4cf80 | 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ."application/json"))........... |
| 4cfa0 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 68 65 61 64 65 72 20 28 67 70 74 | ........(when-let*.((header.(gpt |
| 4cfc0 | 65 6c 2d 62 61 63 6b 65 6e 64 2d 68 65 61 64 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | el-backend-header.gptel-backend) |
| 4cfe0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 | )).....................(if.(func |
| 4d000 | 74 69 6f 6e 70 20 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tionp.header)................... |
| 4d020 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 61 64 65 72 29 20 68 65 61 64 65 72 29 29 29 | ......(funcall.header).header))) |
| 4d040 | 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f | )..........(info.(gptel-fsm-info |
| 4d060 | 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d | .fsm))..........(backend.(plist- |
| 4d080 | 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 | get.info.:backend))..........(ca |
| 4d0a0 | 6c 6c 62 61 63 6b 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c | llback.(or.(plist-get.info.:call |
| 4d0c0 | 62 61 63 6b 29 20 3b 69 66 20 6e 6f 74 20 74 68 65 20 66 69 72 73 74 20 72 75 6e 0a 20 20 20 20 | back).;if.not.the.first.run..... |
| 4d0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 69 6e 73 65 | ...................#'gptel--inse |
| 4d100 | 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 20 3b 64 65 66 61 75 6c 74 20 63 61 6c 6c 62 61 63 6b 0a | rt-response)).;default.callback. |
| 4d120 | 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 0a 20 20 20 20 20 | .........(url-request-data...... |
| 4d140 | 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 | .....(encode-coding-string...... |
| 4d160 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 70 6c 69 73 74 | ......(gptel--json-encode.(plist |
| 4d180 | 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 75 74 | -get.info.:data))............'ut |
| 4d1a0 | 66 2d 38 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | f-8))).....(when.(with-current-b |
| 4d1c0 | 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 | uffer.(plist-get.info.:buffer).. |
| 4d1e0 | 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 | ...........(and.(derived-mode-p. |
| 4d200 | 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 | 'org-mode)..................gpte |
| 4d220 | 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 28 | l-org-convert-response)).......( |
| 4d240 | 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d 65 72 20 23 27 67 70 | plist-put.info.:transformer.#'gp |
| 4d260 | 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 29 29 0a 20 20 20 | tel--convert-markdown->org)).... |
| 4d280 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 20 63 61 6c 6c 62 | .(plist-put.info.:callback.callb |
| 4d2a0 | 61 63 6b 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 20 | ack).....(when.gptel-log-level.. |
| 4d2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 28 77 68 65 | .............;logging.......(whe |
| 4d2e0 | 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 | n.(eq.gptel-log-level.'debug)... |
| 4d300 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 | ......(gptel--log.(gptel--json-e |
| 4d320 | 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 | ncode......................(mapc |
| 4d340 | 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 20 28 69 6e 74 65 72 6e 20 | ar.(lambda.(pair).(cons.(intern. |
| 4d360 | 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 20 20 20 20 20 | (car.pair)).(cdr.pair)))........ |
| 4d380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 2d 72 65 71 75 65 73 | ......................url-reques |
| 4d3a0 | 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-extra-headers))............... |
| 4d3c0 | 20 20 20 20 20 20 22 72 65 71 75 65 73 74 20 68 65 61 64 65 72 73 22 29 29 0a 20 20 20 20 20 20 | ......"request.headers"))....... |
| 4d3e0 | 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 22 72 65 | (gptel--log.url-request-data."re |
| 4d400 | 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 | quest.body")).....(let.((proc-bu |
| 4d420 | 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 20 28 6c 65 74 20 | f............(url-retrieve.(let. |
| 4d440 | 28 28 62 61 63 6b 65 6e 64 2d 75 72 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 75 72 6c | ((backend-url.(gptel-backend-url |
| 4d460 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel-backend)))............... |
| 4d480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 62 61 63 6b | .............(if.(functionp.back |
| 4d4a0 | 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end-url)........................ |
| 4d4c0 | 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c | ........(with-current-buffer.(pl |
| 4d4e0 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 | ist-get.info.:buffer)........... |
| 4d500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 | .......................(funcall. |
| 4d520 | 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backend-url))................... |
| 4d540 | 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 | ...........backend-url))........ |
| 4d560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 | ..................(lambda.(_)... |
| 4d580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 | .........................(set-bu |
| 4d5a0 | 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffer-multibyte.t)............... |
| 4d5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 6f | .............(set-buffer-file-co |
| 4d5e0 | 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 66 2d 38 2d 75 6e 69 78 29 0a 20 20 20 20 20 20 20 | ding-system.'utf-8-unix)........ |
| 4d600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 | ....................(pcase-let.( |
| 4d620 | 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 73 74 61 74 75 73 20 2c 68 74 74 70 2d | (`(,response.,http-status.,http- |
| 4d640 | 6d 73 67 20 2c 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | msg.,error)..................... |
| 4d660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d | ....................(gptel--url- |
| 4d680 | 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 29 29 0a 20 20 | parse-response.backend.info))... |
| 4d6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4d6c0 | 20 20 20 20 20 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 | .....(buf.(current-buffer))).... |
| 4d6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ..........................(plist |
| 4d700 | 2d 70 75 74 20 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 73 74 61 74 | -put.info.:http-status.http-stat |
| 4d720 | 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | us)............................. |
| 4d740 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 | .(plist-put.info.:status.http-ms |
| 4d760 | 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g).............................. |
| 4d780 | 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 3b 57 41 49 | (gptel--fsm-transition.fsm).;WAI |
| 4d7a0 | 54 20 2d 3e 20 54 59 50 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | T.->.TYPE....................... |
| 4d7c0 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e | .......(when.error.(plist-put.in |
| 4d7e0 | 66 6f 20 3a 65 72 72 6f 72 20 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.:error.error))............... |
| 4d800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 65 73 70 6f 6e 73 65 20 3b 4c | ...............(when.response.;L |
| 4d820 | 6f 6f 6b 20 66 6f 72 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | ook.for.a.reasoning.block....... |
| 4d840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 | .........................(if.(st |
| 4d860 | 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 20 2a 3c 74 68 69 6e 6b 3e 5c 6e 22 20 72 65 73 70 | ring-match-p."^.*<think>\n".resp |
| 4d880 | 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse)........................... |
| 4d8a0 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e | .........(when-let*.((idx.(strin |
| 4d8c0 | 67 2d 73 65 61 72 63 68 20 22 3c 2f 74 68 69 6e 6b 3e 5c 6e 22 20 72 65 73 70 6f 6e 73 65 29 29 | g-search."</think>\n".response)) |
| 4d8e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 4d900 | 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 | .......(with-demoted-errors."gpt |
| 4d920 | 65 6c 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 | el.callback.error:.%S".......... |
| 4d940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 | ..............................(f |
| 4d960 | 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uncall.callback................. |
| 4d980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4d9a0 | 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cons.'reasoning................ |
| 4d9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4d9e0 | 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 6e 69 6c 20 28 | .......(substring.response.nil.( |
| 4da00 | 2b 20 69 64 78 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | +.idx.8)))...................... |
| 4da20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 29 | ...........................info) |
| 4da40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 4da60 | 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 73 74 72 69 6e 67 2d 74 72 | .......(setq.response.(string-tr |
| 4da80 | 69 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | im-left......................... |
| 4daa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 | .............................(su |
| 4dac0 | 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 29 0a 20 | bstring.response.(+.idx.8))))).. |
| 4dae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4db00 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 | (when-let*.((reasoning.(plist-ge |
| 4db20 | 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:reasoning))............. |
| 4db40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4db60 | 20 28 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 | .((stringp.reasoning)))......... |
| 4db80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 | ...........................(func |
| 4dba0 | 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 | all.callback.(cons.'reasoning.re |
| 4dbc0 | 61 73 6f 6e 69 6e 67 29 20 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | asoning).info))))............... |
| 4dbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 73 70 6f 6e 73 | ...............(when.(or.respons |
| 4dc00 | 65 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 | e.(not.(member.http-status.'("20 |
| 4dc20 | 30 22 20 22 31 30 30 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 0"."100")))).................... |
| 4dc40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 | ............(with-demoted-errors |
| 4dc60 | 20 22 67 70 74 65 6c 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 | ."gptel.callback.error:.%S"..... |
| 4dc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 | .............................(fu |
| 4dca0 | 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 29 29 0a | ncall.callback.response.info))). |
| 4dcc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | .............................(gp |
| 4dce0 | 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 3b 54 59 50 45 20 2d | tel--fsm-transition.fsm).;TYPE.- |
| 4dd00 | 3e 20 6e 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | >.next.......................... |
| 4dd20 | 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 62 75 66 20 67 70 74 65 6c 2d 2d | ....(setf.(alist-get.buf.gptel-- |
| 4dd40 | 72 65 71 75 65 73 74 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a | request-alist.nil.'remove).nil). |
| 4dd60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 | .............................(ki |
| 4dd80 | 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll-buffer.buf)))................ |
| 4dda0 | 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 | ..........nil.t.nil))).......;;. |
| 4ddc0 | 54 4f 44 4f 3a 20 41 64 64 20 74 72 61 6e 73 66 6f 72 6d 65 72 20 68 65 72 65 2e 0a 20 20 20 20 | TODO:.Add.transformer.here...... |
| 4dde0 | 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 62 75 66 20 67 70 74 65 | ..(setf.(alist-get.proc-buf.gpte |
| 4de00 | 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | l--request-alist).............(c |
| 4de20 | 6f 6e 73 20 66 73 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c 61 6d | ons.fsm...................#'(lam |
| 4de40 | 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | bda.().......................(pl |
| 4de60 | 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 20 23 27 69 67 6e 6f 72 65 29 | ist-put.info.:callback.#'ignore) |
| 4de80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6b 69 6c | .......................(let.(kil |
| 4dea0 | 6c 2d 62 75 66 66 65 72 2d 71 75 65 72 79 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 | l-buffer-query-functions)....... |
| 4dec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 43 61 6e 27 74 20 73 74 6f 70 20 75 | ..................;;Can't.stop.u |
| 4dee0 | 72 6c 2d 72 65 74 72 69 65 76 65 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | rl-retrieve.process............. |
| 4df00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 | ............(kill-buffer.proc-bu |
| 4df20 | 66 29 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d | f))))))))..(cl-defgeneric.gptel- |
| 4df40 | 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 | -parse-response.(backend.respons |
| 4df60 | 65 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 52 65 73 70 6f 6e 73 65 20 65 78 74 72 61 63 74 | e.proc-info)..."Response.extract |
| 4df80 | 6f 72 20 66 6f 72 20 4c 4c 4d 20 72 65 71 75 65 73 74 73 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 | or.for.LLM.requests...BACKEND.is |
| 4dfa0 | 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 52 45 53 50 4f 4e | .the.LLM.backend.in.use...RESPON |
| 4dfc0 | 53 45 20 69 73 20 74 68 65 20 70 61 72 73 65 64 20 4a 53 4f 4e 20 6f 66 20 74 68 65 20 72 65 73 | SE.is.the.parsed.JSON.of.the.res |
| 4dfe0 | 70 6f 6e 73 65 2c 20 61 73 20 61 20 70 6c 69 73 74 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 | ponse,.as.a.plist...PROC-INFO.is |
| 4e000 | 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 6e 66 6f 72 6d 61 74 69 6f | .a.plist.with.process.informatio |
| 4e020 | 6e 20 61 6e 64 20 6f 74 68 65 72 20 63 6f 6e 74 65 78 74 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d | n.and.other.context..See.`gptel- |
| 4e040 | 63 75 72 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 69 74 73 20 63 6f 6e 74 | curl--get-response'.for.its.cont |
| 4e060 | 65 6e 74 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 6c 2d 70 61 72 73 65 | ents.")..(defun.gptel--url-parse |
| 4e080 | 2d 72 65 73 70 6f 6e 73 65 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 | -response.(backend.proc-info)... |
| 4e0a0 | 22 50 61 72 73 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 42 41 43 4b 45 4e 44 20 77 69 74 | "Parse.response.from.BACKEND.wit |
| 4e0c0 | 68 20 50 52 4f 43 2d 49 4e 46 4f 2e 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d | h.PROC-INFO."...(when.gptel-log- |
| 4e0e0 | 6c 65 76 65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e 67 0a 20 | level.................;logging.. |
| 4e100 | 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 | ...(save-excursion.......(goto-c |
| 4e120 | 68 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 65 72 73 29 0a 20 20 20 | har.url-http-end-of-headers).... |
| 4e140 | 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 | ...(when.(eq.gptel-log-level.'de |
| 4e160 | 62 75 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d | bug).........(gptel--log.(gptel- |
| 4e180 | 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e | -json-encode.(buffer-substring-n |
| 4e1a0 | 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 | o-properties.(point-min).(point) |
| 4e1c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 | ))....................."response |
| 4e1e0 | 20 68 65 61 64 65 72 73 22 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 62 | .headers")).......(gptel--log.(b |
| 4e200 | 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 | uffer-substring-no-properties.(p |
| 4e220 | 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | oint).(point-max)).............. |
| 4e240 | 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 62 6f 64 79 22 29 29 29 0a 20 20 28 69 66 2d 6c 65 | ....."response.body")))...(if-le |
| 4e260 | 74 2a 20 28 28 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 | t*.((http-msg.(string-trim.(buff |
| 4e280 | 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 | er-substring.(line-beginning-pos |
| 4e2a0 | 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ition).......................... |
| 4e2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e | ............................(lin |
| 4e2e0 | 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | e-end-position)))).............( |
| 4e300 | 68 74 74 70 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d | http-status..............(save-m |
| 4e320 | 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 | atch-data................(and.(s |
| 4e340 | 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 48 54 54 50 2f 5b 2e 30 2d 39 5d 2b 20 2b 5c 5c 28 5b 30 | tring-match."HTTP/[.0-9]+.+\\([0 |
| 4e360 | 2d 39 5d 2b 5c 5c 29 22 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -9]+\\)".http-msg).............. |
| 4e380 | 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 68 74 74 70 2d 6d 73 67 29 | .......(match-string.1.http-msg) |
| 4e3a0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e | ))).............(response.(progn |
| 4e3c0 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 | .(goto-char.url-http-end-of-head |
| 4e3e0 | 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ers)............................ |
| 4e400 | 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 | ..(condition-case.nil........... |
| 4e420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a | .......................(gptel--j |
| 4e440 | 73 6f 6e 2d 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | son-read)....................... |
| 4e460 | 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 | .........(error.'json-read-error |
| 4e480 | 29 29 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d | ))))).......(cond........;;.FIXM |
| 4e4a0 | 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 | E.Handle.the.case.where.HTTP.100 |
| 4e4c0 | 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 | .is.followed.by.HTTP.(not.200).B |
| 4e4e0 | 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 28 28 6f 72 20 28 6d 65 6d 71 20 75 72 6c 2d 68 74 | UG.#194........((or.(memq.url-ht |
| 4e500 | 74 70 2d 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 20 27 28 32 30 30 20 31 30 30 29 29 0a 20 | tp-response-status.'(200.100)).. |
| 4e520 | 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5c 5c 28 3f | ...........(string-match-p."\\(? |
| 4e540 | 3a 31 5c 5c 7c 32 5c 5c 29 30 30 20 4f 4b 22 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 | :1\\|2\\)00.OK".http-msg))...... |
| 4e560 | 20 20 20 28 6c 69 73 74 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 72 65 73 70 20 28 67 70 74 65 6c | ...(list.(and-let*.((resp.(gptel |
| 4e580 | 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 | --parse-response.backend.respons |
| 4e5a0 | 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.proc-info))................... |
| 4e5c0 | 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 72 65 73 | .......((not.(string-blank-p.res |
| 4e5e0 | 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 | p)))).................(string-tr |
| 4e600 | 69 6d 20 72 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 73 74 61 | im.resp))...............http-sta |
| 4e620 | 74 75 73 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 | tus.http-msg))........((plist-ge |
| 4e640 | 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 | t.response.:error).........(list |
| 4e660 | 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 20 28 70 6c 69 73 74 | .nil.http-status.http-msg.(plist |
| 4e680 | 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 29 29 0a 20 20 20 20 20 20 20 28 | -get.response.:error)))........( |
| 4e6a0 | 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 0a 20 | (eq.response.'json-read-error).. |
| 4e6c0 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 28 63 6f | .......(list.nil.http-status.(co |
| 4e6e0 | 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 20 4a | ncat."(".http-msg.").Malformed.J |
| 4e700 | 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 2e 22 29 20 22 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 | SON.in.response.")."json-read-er |
| 4e720 | 72 6f 72 22 29 29 0a 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d | ror"))........(t.(list.nil.http- |
| 4e740 | 73 74 61 74 75 73 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 | status.(concat."(".http-msg.").C |
| 4e760 | 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a | ould.not.parse.HTTP.response."). |
| 4e780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 | ................"Could.not.parse |
| 4e7a0 | 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 6e 69 | .HTTP.response."))).....(list.ni |
| 4e7c0 | 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 | l.(concat."(".http-msg.").Could. |
| 4e7e0 | 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 | not.parse.HTTP.response.")...... |
| 4e800 | 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f | ....."Could.not.parse.HTTP.respo |
| 4e820 | 6e 73 65 2e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 6e 69 74 | nse.")))..(cl-defun.gptel--sanit |
| 4e840 | 69 7a 65 2d 6d 6f 64 65 6c 20 28 26 6b 65 79 20 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 | ize-model.(&key.(backend.gptel-b |
| 4e860 | 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ackend)......................... |
| 4e880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c | ..............(model.gptel-model |
| 4e8a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 4e8c0 | 20 20 20 20 20 20 20 20 28 73 68 6f 6f 73 68 20 74 29 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 | ........(shoosh.t))..."Check.if. |
| 4e8e0 | 4d 4f 44 45 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 42 41 43 4b 45 4e 44 2c 20 61 | MODEL.is.available.in.BACKEND,.a |
| 4e900 | 64 6a 75 73 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 0a 49 66 20 53 48 4f 4f 53 48 20 69 73 | djust.accordingly...If.SHOOSH.is |
| 4e920 | 20 74 72 75 65 2c 20 64 6f 6e 27 74 20 69 73 73 75 65 20 61 20 77 61 72 6e 69 6e 67 2e 22 0a 20 | .true,.don't.issue.a.warning.".. |
| 4e940 | 20 28 6c 65 74 20 28 28 61 76 61 69 6c 61 62 6c 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | .(let.((available.(gptel-backend |
| 4e960 | 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 | -models.backend))).....(when.(st |
| 4e980 | 72 69 6e 67 70 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 6f 73 | ringp.model).......(unless.shoos |
| 4e9a0 | 68 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 | h.........(display-warning...... |
| 4e9c0 | 20 20 20 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 60 67 70 | ....'gptel..........(format."`gp |
| 4e9e0 | 74 65 6c 2d 6d 6f 64 65 6c 27 20 65 78 70 65 63 74 73 20 61 20 73 79 6d 62 6f 6c 2c 20 66 6f 75 | tel-model'.expects.a.symbol,.fou |
| 4ea00 | 6e 64 20 73 74 72 69 6e 67 20 5c 22 25 73 5c 22 0a 20 20 20 52 65 73 65 74 74 69 6e 67 20 60 67 | nd.string.\"%s\"....Resetting.`g |
| 4ea20 | 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 74 6f 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-model'.to.%s".............. |
| 4ea40 | 20 20 20 20 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 67 | ....model.model))).......(setq.g |
| 4ea60 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d 69 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 | ptel-model.(gptel--intern.model) |
| 4ea80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 | .............model.gptel-model)) |
| 4eaa0 | 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 6d 6f 64 65 6c 20 61 76 61 69 6c | .....(unless.(member.model.avail |
| 4eac0 | 61 62 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 61 6c 6c 62 61 63 6b 20 28 63 61 72 | able).......(let.((fallback.(car |
| 4eae0 | 20 61 76 61 69 6c 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 | .available))).........(unless.sh |
| 4eb00 | 6f 6f 73 68 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a | oosh...........(display-warning. |
| 4eb20 | 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | ...........'gptel............(fo |
| 4eb40 | 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 50 72 65 66 65 72 72 65 64 20 60 67 70 74 65 6c 2d 6d | rmat.(concat."Preferred.`gptel-m |
| 4eb60 | 6f 64 65 6c 27 20 5c 22 25 73 5c 22 20 6e 6f 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | odel'.\"%s\".not"............... |
| 4eb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 65 64 20 69 6e 20 5c 22 25 73 5c | ............."supported.in.\"%s\ |
| 4eba0 | 22 2c 20 75 73 69 6e 67 20 5c 22 25 73 5c 22 20 69 6e 73 74 65 61 64 22 29 0a 20 20 20 20 20 20 | ",.using.\"%s\".instead")....... |
| 4ebc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e | .............model.(gptel-backen |
| 4ebe0 | 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 20 66 61 6c 6c 62 61 63 6b 29 29 29 0a 20 20 20 20 | d-name.backend).fallback)))..... |
| 4ec00 | 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 66 61 6c 6c | ....(setq-local.gptel-model.fall |
| 4ec20 | 62 61 63 6b 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e | back)))))..;;;###autoload.(defun |
| 4ec40 | 20 67 70 74 65 6c 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 69 6e 69 74 69 61 6c | .gptel.(name.&optional._.initial |
| 4ec60 | 20 69 6e 74 65 72 61 63 74 69 76 65 70 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6f 72 20 73 | .interactivep)..."Switch.to.or.s |
| 4ec80 | 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a | tart.a.chat.session.with.NAME... |
| 4eca0 | 41 73 6b 20 66 6f 72 20 41 50 49 2d 4b 45 59 20 69 66 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 | Ask.for.API-KEY.if.`gptel-api-ke |
| 4ecc0 | 79 27 20 69 73 20 75 6e 73 65 74 2e 0a 0a 49 66 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 | y'.is.unset...If.region.is.activ |
| 4ece0 | 65 2c 20 75 73 65 20 69 74 20 61 73 20 74 68 65 20 49 4e 49 54 49 41 4c 20 70 72 6f 6d 70 74 2e | e,.use.it.as.the.INITIAL.prompt. |
| 4ed00 | 20 20 52 65 74 75 72 6e 73 20 74 68 65 0a 62 75 66 66 65 72 20 63 72 65 61 74 65 64 20 6f 72 20 | ..Returns.the.buffer.created.or. |
| 4ed20 | 73 77 69 74 63 68 65 64 20 74 6f 2e 0a 0a 49 4e 54 45 52 41 43 54 49 56 45 50 20 69 73 20 74 20 | switched.to...INTERACTIVEP.is.t. |
| 4ed40 | 77 68 65 6e 20 67 70 74 65 6c 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 | when.gptel.is.called.interactive |
| 4ed60 | 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 65 74 2a 20 28 28 62 | ly."...(interactive....(let*.((b |
| 4ed80 | 61 63 6b 65 6e 64 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 | ackend.(default-value.'gptel-bac |
| 4eda0 | 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 | kend))...........(backend-name.. |
| 4edc0 | 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2a 25 73 2a 22 20 28 67 70 74 65 6c 2d | ..........(format."*%s*".(gptel- |
| 4ede0 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 20 28 6c | backend-name.backend))))......(l |
| 4ee00 | 69 73 74 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 72 | ist.(read-buffer............."Cr |
| 4ee20 | 65 61 74 65 20 6f 72 20 63 68 6f 6f 73 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 3a 20 22 0a 20 | eate.or.choose.gptel.buffer:.".. |
| 4ee40 | 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 6e 69 6c 20 20 20 20 20 | ...........backend-name.nil..... |
| 4ee60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 44 45 46 41 55 4c 54 20 61 6e | ....................;.DEFAULT.an |
| 4ee80 | 64 20 52 45 51 55 49 52 45 2d 4d 41 54 43 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d | d.REQUIRE-MATCH.............(lam |
| 4eea0 | 62 64 61 20 28 62 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.(b)......................... |
| 4eec0 | 20 20 20 20 20 20 20 20 20 20 3b 20 50 52 45 44 49 43 41 54 45 0a 20 20 20 20 20 20 20 20 20 20 | ..........;.PREDICATE........... |
| 4eee0 | 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 62 75 66 66 65 72 20 63 68 65 63 6b 20 69 73 20 72 65 71 | ....;;.NOTE:.buffer.check.is.req |
| 4ef00 | 75 69 72 65 64 20 28 23 34 35 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d | uired.(#450)...............(and- |
| 4ef20 | 6c 65 74 2a 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d | let*.((buf.(get-buffer.(or.(car- |
| 4ef40 | 73 61 66 65 20 62 29 20 62 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 | safe.b).b)))).................(b |
| 4ef60 | 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 20 62 75 | uffer-local-value.'gptel-mode.bu |
| 4ef80 | 66 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 | f))))............(condition-case |
| 4efa0 | 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d | .nil................(gptel--get- |
| 4efc0 | 61 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 | api-key.................(gptel-b |
| 4efe0 | 61 63 6b 65 6e 64 2d 6b 65 79 20 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ackend-key.backend))............ |
| 4f000 | 20 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 | ..((error.user-error)........... |
| 4f020 | 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 | ....(setq.gptel-api-key......... |
| 4f040 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 | ............(read-passwd........ |
| 4f060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 41 50 49 20 6b 65 | ..............(format."%s.API.ke |
| 4f080 | 79 3a 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | y:.".backend-name))))).......... |
| 4f0a0 | 20 20 28 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(and.(use-region-p)........... |
| 4f0c0 | 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 72 65 67 69 6f 6e 2d | ......(buffer-substring.(region- |
| 4f0e0 | 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | beginning)...................... |
| 4f100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 | .............(region-end)))..... |
| 4f120 | 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | .......t)))...(with-current-buff |
| 4f140 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6e 61 6d 65 29 0a 20 20 20 20 | er.(get-buffer-create.name)..... |
| 4f160 | 28 63 6f 6e 64 20 3b 53 65 74 20 6d 61 6a 6f 72 20 6d 6f 64 65 0a 20 20 20 20 20 28 28 65 71 20 | (cond.;Set.major.mode......((eq. |
| 4f180 | 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 0a | major-mode.gptel-default-mode)). |
| 4f1a0 | 20 20 20 20 20 28 28 65 71 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 20 27 74 65 | .....((eq.gptel-default-mode.'te |
| 4f1c0 | 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 | xt-mode).......(text-mode)...... |
| 4f1e0 | 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 20 28 74 20 28 | .(visual-line-mode.1))......(t.( |
| 4f200 | 66 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 29 0a 20 20 | funcall.gptel-default-mode)))... |
| 4f220 | 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 20 3a 62 61 63 6b 65 6e | ..(gptel--sanitize-model.:backen |
| 4f240 | 64 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | d.(default-value.'gptel-backend) |
| 4f260 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 | ............................:mod |
| 4f280 | 65 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a | el.(default-value.'gptel-model). |
| 4f2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 68 6f 6f | ...........................:shoo |
| 4f2c0 | 73 68 20 6e 69 6c 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 | sh.nil).....(unless.gptel-mode.( |
| 4f2e0 | 67 70 74 65 6c 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 | gptel-mode.1)).....(goto-char.(p |
| 4f300 | 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 | oint-max)).....(skip-chars-backw |
| 4f320 | 61 72 64 20 22 5c 74 5c 72 5c 6e 22 29 0a 20 20 20 20 28 69 66 20 28 62 6f 62 70 29 20 28 69 6e | ard."\t\r\n").....(if.(bobp).(in |
| 4f340 | 73 65 72 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 | sert.(or.initial.(gptel-prompt-p |
| 4f360 | 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 | refix-string)))).....(when.inter |
| 4f380 | 61 63 74 69 76 65 70 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 | activep.......(display-buffer.(c |
| 4f3a0 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 | urrent-buffer).gptel-display-buf |
| 4f3c0 | 66 65 72 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 65 6e 64 | fer-action).......(message."Send |
| 4f3e0 | 20 79 6f 75 72 20 71 75 65 72 79 20 77 69 74 68 20 25 73 21 22 0a 20 20 20 20 20 20 20 20 20 20 | .your.query.with.%s!"........... |
| 4f400 | 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 5c | .....(substitute-command-keys."\ |
| 4f420 | 5c 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 29 29 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 | \[gptel-send]"))).....(current-b |
| 4f440 | 75 66 66 65 72 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e | uffer)))....;;;.Reasoning.conten |
| 4f460 | 74 20 55 49 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 75 72 | t.UI.(declare-function.gptel-cur |
| 4f480 | 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 22 67 70 74 65 6c | l--stream-insert-response."gptel |
| 4f4a0 | 2d 63 75 72 6c 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 72 | -curl")..(defun.gptel--display-r |
| 4f4c0 | 65 61 73 6f 6e 69 6e 67 2d 73 74 72 65 61 6d 20 28 74 65 78 74 20 69 6e 66 6f 29 0a 20 20 22 53 | easoning-stream.(text.info)..."S |
| 4f4e0 | 68 6f 77 20 72 65 61 73 6f 6e 69 6e 67 20 54 45 58 54 20 69 6e 20 61 6e 20 61 70 70 72 6f 70 72 | how.reasoning.TEXT.in.an.appropr |
| 4f500 | 69 61 74 65 20 6c 6f 63 61 74 69 6f 6e 2e 0a 0a 49 4e 46 4f 20 69 73 20 74 68 65 20 72 65 71 75 | iate.location...INFO.is.the.requ |
| 4f520 | 65 73 74 20 49 4e 46 4f 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 | est.INFO,.see.`gptel--url-get-re |
| 4f540 | 73 70 6f 6e 73 65 27 2e 20 20 54 68 69 73 20 69 73 0a 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 | sponse'...This.is.for.streaming. |
| 4f560 | 72 65 73 70 6f 6e 73 65 73 20 6f 6e 6c 79 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | responses.only."...(when-let*.(( |
| 4f580 | 69 6e 63 6c 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 | include.(plist-get.info.:include |
| 4f5a0 | 2d 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 69 | -reasoning))).....(if.(stringp.i |
| 4f5c0 | 6e 63 6c 75 64 65 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 74 65 78 74 | nclude).........(unless.(eq.text |
| 4f5e0 | 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | .t)...........(with-current-buff |
| 4f600 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 69 6e 63 6c 75 64 65 29 0a 20 | er.(get-buffer-create.include).. |
| 4f620 | 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f | ...........(save-excursion.(goto |
| 4f640 | 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -char.(point-max)).............. |
| 4f660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 29 29 29 0a | ...............(insert.text)))). |
| 4f680 | 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 28 | ......(let*.((reasoning-marker.( |
| 4f6a0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 | plist-get.info.:reasoning-marker |
| 4f6c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 | ))..............(tracking-marker |
| 4f6e0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 | .(plist-get.info.:tracking-marke |
| 4f700 | 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 | r))..............(start-marker.( |
| 4f720 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 | plist-get.info.:position)))..... |
| 4f740 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 | ....(with-current-buffer.(marker |
| 4f760 | 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 | -buffer.start-marker)........... |
| 4f780 | 28 69 66 20 28 65 71 20 74 65 78 74 20 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 65 | (if.(eq.text.t)...............;e |
| 4f7a0 | 6e 64 20 6f 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 | nd.of.stream...............(prog |
| 4f7c0 | 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 | n.................(gptel-curl--s |
| 4f7e0 | 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | tream-insert-response........... |
| 4f800 | 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 | .......(concat.(if.(derived-mode |
| 4f820 | 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -p.'org-mode)................... |
| 4f840 | 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 23 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 0a 20 | ..........."\n#+end_reasoning".. |
| 4f860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 | ..........................;;.TOD |
| 4f880 | 4f 28 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 | O(reasoning).remove.properties.a |
| 4f8a0 | 6e 64 20 73 74 72 69 70 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd.strip.instead................ |
| 4f8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 60 60 60 22 20 | ............(propertize."\n```". |
| 4f8e0 | 27 67 70 74 65 6c 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'gptel.'ignore))................ |
| 4f900 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 | ..........gptel-response-separat |
| 4f920 | 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 74 29 0a 20 20 20 | or)..................info.t).... |
| 4f940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 | .............(when.(derived-mode |
| 4f960 | 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | -p.'org-mode).;fold.block....... |
| 4f980 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 | ............(ignore-errors...... |
| 4f9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 | ...............(save-excursion.. |
| 4f9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | .....................(goto-char. |
| 4f9e0 | 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tracking-marker)................ |
| 4fa00 | 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 23 2b 65 6e 64 5f 72 | .......(search-backward."#+end_r |
| 4fa20 | 65 61 73 6f 6e 69 6e 67 22 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 74 29 0a 20 20 20 20 20 20 | easoning".start-marker.t)....... |
| 4fa40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 | ................(when.(looking-a |
| 4fa60 | 74 20 22 5e 23 5c 5c 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 | t."^#\\+end_reasoning")......... |
| 4fa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 63 79 63 6c 65 29 29 29 29 29 29 | ................(org-cycle)))))) |
| 4faa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 72 65 61 73 6f 6e | .............(unless.(and.reason |
| 4fac0 | 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 | ing-marker.tracking-marker...... |
| 4fae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 72 65 61 73 6f 6e 69 6e 67 | ....................(=.reasoning |
| 4fb00 | 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 | -marker.tracking-marker))....... |
| 4fb20 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 70 61 72 61 74 6f 72 20 20 20 20 20 20 20 20 | ........(let.((separator........ |
| 4fb40 | 3b 53 65 70 61 72 61 74 65 20 66 72 6f 6d 20 72 65 73 70 6f 6e 73 65 20 70 72 65 66 69 78 20 69 | ;Separate.from.response.prefix.i |
| 4fb60 | 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f.required...................... |
| 4fb80 | 28 61 6e 64 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 20 67 70 74 65 6c | (and.(not.tracking-marker).gptel |
| 4fba0 | 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -mode........................... |
| 4fbc0 | 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 | (not.(string-suffix-p........... |
| 4fbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 28 67 70 74 65 | ......................"\n".(gpte |
| 4fc00 | 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 | l-response-prefix-string)))..... |
| 4fc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 20 20 | ......................"\n")))... |
| 4fc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 | ..............(gptel-curl--strea |
| 4fc60 | 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m-insert-response............... |
| 4fc80 | 20 20 20 28 63 6f 6e 63 61 74 20 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 | ...(concat.separator............ |
| 4fca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d | ..............(if.(derived-mode- |
| 4fcc0 | 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.'org-mode).................... |
| 4fce0 | 20 20 20 20 20 20 20 20 20 20 22 23 2b 62 65 67 69 6e 5f 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 0a | .........."#+begin_reasoning\n". |
| 4fd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f | ...........................;;.TO |
| 4fd20 | 44 4f 28 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 | DO(reasoning).remove.properties. |
| 4fd40 | 61 6e 64 20 73 74 72 69 70 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | and.strip.instead............... |
| 4fd60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 60 60 60 20 72 65 | .............(propertize."```.re |
| 4fd80 | 61 73 6f 6e 69 6e 67 5c 6e 22 20 27 67 70 74 65 6c 20 27 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 | asoning\n".'gptel.'ignore))).... |
| 4fda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ..............info.t)))......... |
| 4fdc0 | 20 20 20 20 28 69 66 20 28 65 71 20 69 6e 63 6c 75 64 65 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 | ....(if.(eq.include.'ignore).... |
| 4fde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .............(progn............. |
| 4fe00 | 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 | ......(add-text-properties...... |
| 4fe20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 27 28 | ..............0.(length.text).'( |
| 4fe40 | 67 70 74 65 6c 20 69 67 6e 6f 72 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c | gptel.ignore.front-sticky.(gptel |
| 4fe60 | 29 29 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 | )).text)...................(gpte |
| 4fe80 | 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 | l-curl--stream-insert-response.t |
| 4fea0 | 65 78 74 20 69 6e 66 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 | ext.info.t))...............(gpte |
| 4fec0 | 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 | l-curl--stream-insert-response.t |
| 4fee0 | 65 78 74 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 | ext.info)))...........(setq.trac |
| 4ff00 | 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 | king-marker.(plist-get.info.:tra |
| 4ff20 | 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 72 65 61 | cking-marker))...........(if.rea |
| 4ff40 | 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 | soning-marker...............(mov |
| 4ff60 | 65 2d 6d 61 72 6b 65 72 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 | e-marker.reasoning-marker.tracki |
| 4ff80 | 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | ng-marker).............(plist-pu |
| 4ffa0 | 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 | t.info.:reasoning-marker........ |
| 4ffc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 | ................(copy-marker.tra |
| 4ffe0 | 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 6e 69 6c 29 29 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 | cking-marker.nil))))))))....;;;. |
| 50000 | 54 6f 6f 6c 20 75 73 65 20 55 49 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 | Tool.use.UI.(defun.gptel--displa |
| 50020 | 79 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 20 26 6f | y-tool-calls.(tool-calls.info.&o |
| 50040 | 70 74 69 6f 6e 61 6c 20 75 73 65 2d 6d 69 6e 69 62 75 66 66 65 72 29 0a 20 20 22 48 61 6e 64 6c | ptional.use-minibuffer)..."Handl |
| 50060 | 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 0a 54 4f 4f 4c 2d | e.tool.call.confirmation...TOOL- |
| 50080 | 43 41 4c 4c 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74 6f 6f 6c 20 63 | CALLS.should.be.a.list.of.tool.c |
| 500a0 | 61 6c 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 6f 72 20 72 65 73 75 6c 74 73 2c 0a 73 | all.specifications.or.results,.s |
| 500c0 | 74 72 75 63 74 75 72 65 64 20 61 73 3a 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 63 61 6c 6c | tructured.as:...((tool.args.call |
| 500e0 | 62 61 63 6b 29 20 2e 2e 2e 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 70 65 63 69 66 | back)....)..for.tool.call.specif |
| 50100 | 69 63 61 74 69 6f 6e 73 20 74 6f 20 62 65 20 63 6f 6e 66 69 72 6d 65 64 2e 20 20 49 4e 46 4f 20 | ications.to.be.confirmed...INFO. |
| 50120 | 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 | contains.the.state.of.the.reques |
| 50140 | 74 2e 20 20 54 6f 20 70 72 6f 6d 70 74 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 63 6f 6e 66 | t...To.prompt.for.tool.call.conf |
| 50160 | 69 72 6d 61 74 69 6f 6e 2c 20 75 73 65 0a 65 69 74 68 65 72 20 61 6e 20 6f 76 65 72 6c 61 79 20 | irmation,.use.either.an.overlay. |
| 50180 | 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 62 75 66 66 65 72 20 6f 72 20 74 68 65 20 6d 69 6e | in.the.request.buffer.or.the.min |
| 501a0 | 69 62 75 66 66 65 72 20 28 69 66 0a 55 53 45 2d 4d 49 4e 49 42 55 46 46 45 52 20 69 73 20 6e 6f | ibuffer.(if.USE-MINIBUFFER.is.no |
| 501c0 | 6e 2d 6e 69 6c 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 | n-nil)."...(let*.((start-marker. |
| 501e0 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 | (plist-get.info.:position))..... |
| 50200 | 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 | .....(tracking-marker.(plist-get |
| 50220 | 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b | .info.:tracking-marker))).....;; |
| 50240 | 20 70 65 6e 64 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6c 6f 6f 6b 20 6c 69 6b 65 20 28 28 | .pending.tool.calls.look.like.(( |
| 50260 | 74 6f 6f 6c 20 63 61 6c 6c 62 61 63 6b 20 61 72 67 73 29 20 2e 2e 2e 29 0a 20 20 20 20 28 77 69 | tool.callback.args)....).....(wi |
| 50280 | 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | th-current-buffer.(plist-get.inf |
| 502a0 | 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 69 66 20 75 73 65 2d 6d 69 6e 69 62 75 66 | o.:buffer).......(if.use-minibuf |
| 502c0 | 66 65 72 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 72 6f 6d 70 74 20 66 6f 72 20 63 6f 6e 66 69 | fer............;prompt.for.confi |
| 502e0 | 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 | rmation.from.the.minibuffer..... |
| 50300 | 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 69 62 75 66 66 65 72 2d 61 6c 6c 6f 77 2d 74 | ......(let*.((minibuffer-allow-t |
| 50320 | 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ext-properties.t)............... |
| 50340 | 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d | ...(backend-name.(gptel-backend- |
| 50360 | 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 29 | name.(plist-get.info.:backend))) |
| 50380 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 66 6f 72 6d 61 | ..................(prompt.(forma |
| 503a0 | 74 20 22 25 73 20 77 61 6e 74 73 20 74 6f 20 72 75 6e 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d | t."%s.wants.to.run.".backend-nam |
| 503c0 | 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 79 2d 6f 72 2d 6e 2d 70 0a 20 | e))).............(map-y-or-n-p.. |
| 503e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 2d 73 | ............(lambda.(tool-call-s |
| 50400 | 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6d | pec)................(concat.prom |
| 50420 | 70 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 | pt.(propertize.(gptel-tool-name. |
| 50440 | 28 63 61 72 20 74 6f 6f 6c 2d 63 61 6c 6c 2d 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 | (car.tool-call-spec))........... |
| 50460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50480 | 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 | 'face.'font-lock-keyword-face).. |
| 504a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3a 20 22 29 29 0a 20 20 20 | ......................":.")).... |
| 504c0 | 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 63 73 29 20 28 67 70 74 65 6c 2d 2d | ..........(lambda.(tcs).(gptel-- |
| 504e0 | 61 63 63 65 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 6c 69 73 74 20 74 63 73 29 20 6e 69 6c | accept-tool-calls.(list.tcs).nil |
| 50500 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 27 28 22 74 6f | ))..............tool-calls.'("to |
| 50520 | 6f 6c 20 63 61 6c 6c 22 20 22 74 6f 6f 6c 20 63 61 6c 6c 73 22 20 22 72 75 6e 22 29 0a 20 20 20 | ol.call"."tool.calls"."run").... |
| 50540 | 20 20 20 20 20 20 20 20 20 20 60 28 28 3f 69 20 2c 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 73 61 | ..........`((?i.,(lambda.(_).(sa |
| 50560 | 76 65 2d 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ve-window-excursion............. |
| 50580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d | .................(with-selected- |
| 505a0 | 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | window.......................... |
| 505c0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d 20 67 70 74 65 | ........(gptel--inspect-fsm.gpte |
| 505e0 | 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--fsm-last).................... |
| 50600 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 | ............(goto-char.(point-mi |
| 50620 | 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n))............................. |
| 50640 | 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 | ...(when.(search-forward-regexp. |
| 50660 | 22 5e 3a 74 6f 6f 6c 2d 75 73 65 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | "^:tool-use".nil.t)............. |
| 50680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 | .....................(forward-li |
| 506a0 | 6e 65 20 30 29 20 28 68 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 | ne.0).(hl-line-highlight))...... |
| 506c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 6c | ..........................(use-l |
| 506e0 | 6f 63 61 6c 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocal-map........................ |
| 50700 | 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 0a 20 | .........(make-composed-keymap.. |
| 50720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50740 | 28 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 20 22 71 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 | (define-keymap."q".(lambda.().(i |
| 50760 | 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nteractive)..................... |
| 50780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 507a0 | 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(quit-window)................. |
| 507c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 507e0 | 20 20 20 20 20 20 28 65 78 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 0a 20 20 | ......(exit-recursive-edit)))... |
| 50800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 50820 | 63 75 72 72 65 6e 74 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | current-local-map)))............ |
| 50840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 75 72 73 69 76 65 2d 65 | ....................(recursive-e |
| 50860 | 64 69 74 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | dit).nil)))...................." |
| 50880 | 69 6e 73 70 65 63 74 20 63 61 6c 6c 28 73 29 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 | inspect.call(s)")))).........;;. |
| 508a0 | 50 72 6f 6d 70 74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 | Prompt.for.confirmation.from.the |
| 508c0 | 20 63 68 61 74 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 | .chat.buffer.........(let*.((bac |
| 508e0 | 6b 65 6e 64 2d 6e 61 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 70 | kend-name.(gptel-backend-name.(p |
| 50900 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 | list-get.info.:backend)))....... |
| 50920 | 20 20 20 20 20 20 20 20 20 28 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 | .........(actions-string........ |
| 50940 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 52 75 | .........(concat.(propertize."Ru |
| 50960 | 6e 20 74 6f 6f 6c 73 3a 20 22 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 | n.tools:.".'face.'font-lock-stri |
| 50980 | 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng-face)........................ |
| 509a0 | 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 63 22 20 27 66 61 63 65 20 27 68 65 | .(propertize."C-c.C-c".'face.'he |
| 509c0 | 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lp-key-binding)................. |
| 509e0 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2c 20 43 61 6e 63 65 6c 20 72 65 | ........(propertize.",.Cancel.re |
| 50a00 | 71 75 65 73 74 3a 20 22 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 | quest:.".'face.'font-lock-string |
| 50a20 | 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -face).........................( |
| 50a40 | 70 72 6f 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 6b 22 20 27 66 61 63 65 20 27 68 65 6c 70 | propertize."C-c.C-k".'face.'help |
| 50a60 | 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -key-binding)................... |
| 50a80 | 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2c 20 49 6e 73 70 65 63 74 3a 20 22 20 | ......(propertize.",.Inspect:.". |
| 50aa0 | 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 | 'face.'font-lock-string-face)... |
| 50ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a | ......................(propertiz |
| 50ae0 | 65 20 22 43 2d 63 20 43 2d 69 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 | e."C-c.C-i".'face.'help-key-bind |
| 50b00 | 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 66 69 72 6d 2d 73 | ing)))................(confirm-s |
| 50b20 | 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f | trings.................(list.(co |
| 50b40 | 6e 63 61 74 20 22 5c 6e 22 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 | ncat."\n".actions-string........ |
| 50b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | .......................(properti |
| 50b80 | 7a 65 20 22 5c 6e 22 20 27 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f | ze."\n".'face.'(:inherit.font-lo |
| 50ba0 | 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ck-string-face.................. |
| 50bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 6e 64 65 72 6c 69 6e 65 20 74 20 3a 65 78 74 | ...............:underline.t.:ext |
| 50c00 | 65 6e 64 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end.t))......................... |
| 50c20 | 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 25 73 20 | ......(format.(propertize."\n%s. |
| 50c40 | 77 61 6e 74 73 20 74 6f 20 72 75 6e 3a 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | wants.to.run:\n"................ |
| 50c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50c80 | 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 | ...'face.'font-lock-string-face) |
| 50ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50cc0 | 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 | .......backend-name))))......... |
| 50ce0 | 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 28 74 6f 6f 6c 29 20 75 73 65 20 61 20 77 72 61 70 | .......;;.FIXME(tool).use.a.wrap |
| 50d00 | 70 65 72 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 6d 61 6e 75 61 6c 20 74 65 78 74 2d 70 72 6f | per.instead.of.a.manual.text-pro |
| 50d20 | 70 65 72 74 79 20 73 65 61 72 63 68 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | perty.search,................;;. |
| 50d40 | 74 68 69 73 20 69 73 20 66 72 61 67 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | this.is.fragile................( |
| 50d60 | 6f 76 2d 73 74 61 72 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 | ov-start.(save-excursion........ |
| 50d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 | ....................(goto-char.s |
| 50da0 | 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tart-marker).................... |
| 50dc0 | 20 20 20 20 20 20 20 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 | ........(text-property-search-ba |
| 50de0 | 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 | ckward.'gptel.'response)........ |
| 50e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 | ....................(point)))... |
| 50e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 | .............(ov.(or.(cdr-safe.( |
| 50e40 | 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 0a 20 20 | get-char-property-and-overlay... |
| 50e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50e80 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 0a 20 20 20 20 20 | start-marker.'gptel-tool))...... |
| 50ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 | ..................(make-overlay. |
| 50ec0 | 6f 76 2d 73 74 61 72 74 20 28 6f 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 73 74 61 | ov-start.(or.tracking-marker.sta |
| 50ee0 | 72 74 2d 6d 61 72 6b 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 | rt-marker)))))...........;;.If.t |
| 50f00 | 68 65 20 63 75 72 73 6f 72 20 69 73 20 61 74 20 74 68 65 20 6f 76 65 72 6c 61 79 2d 65 6e 64 2c | he.cursor.is.at.the.overlay-end, |
| 50f20 | 20 69 74 20 65 6e 64 73 20 75 70 20 6f 75 74 73 69 64 65 2c 20 73 6f 20 6d 6f 76 65 20 69 74 20 | .it.ends.up.outside,.so.move.it. |
| 50f40 | 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 69 6e 67 2d | back...........(unless.tracking- |
| 50f60 | 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 70 6f 69 | marker.............(when.(=.(poi |
| 50f80 | 6e 74 29 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 | nt).start-marker).(ignore-errors |
| 50fa0 | 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 | .(backward-char))))...........(p |
| 50fc0 | 63 61 73 65 2d 64 6f 6c 69 73 74 20 28 60 28 2c 74 6f 6f 6c 2d 73 70 65 63 20 2c 61 72 67 2d 76 | case-dolist.(`(,tool-spec.,arg-v |
| 50fe0 | 61 6c 75 65 73 20 5f 29 20 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | alues._).tool-calls)............ |
| 51000 | 20 28 70 75 73 68 20 28 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 | .(push.(gptel--format-tool-call. |
| 51020 | 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 2d 73 70 65 63 29 20 61 72 67 2d | (gptel-tool-name.tool-spec).arg- |
| 51040 | 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 69 72 | values)...................confir |
| 51060 | 6d 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e | m-strings))...........(push.(con |
| 51080 | 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 22 20 27 66 61 63 65 20 27 28 3a 69 6e | cat.(propertize."\n".'face.'(:in |
| 510a0 | 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 | herit.font-lock-string-face..... |
| 510c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 510e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 6e 64 65 72 6c 69 6e 65 | ......................:underline |
| 51100 | 20 74 20 3a 65 78 74 65 6e 64 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .t.:extend.t)))................. |
| 51120 | 63 6f 6e 66 69 72 6d 2d 73 74 72 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 | confirm-strings)...........;;.Ad |
| 51140 | 64 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 6f 76 65 | d.confirmation.prompt.to.the.ove |
| 51160 | 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 | rlay...........(overlay-put.ov.' |
| 51180 | 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | after-string.................... |
| 511a0 | 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f | ....(apply.#'concat.(nreverse.co |
| 511c0 | 6e 66 69 72 6d 2d 73 74 72 69 6e 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 | nfirm-strings)))...........(over |
| 511e0 | 6c 61 79 2d 70 75 74 20 6f 76 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 | lay-put.ov.'mouse-face.'highligh |
| 51200 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 | t)...........(overlay-put.ov.'gp |
| 51220 | 74 65 6c 2d 74 6f 6f 6c 20 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 | tel-tool.tool-calls)...........( |
| 51240 | 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 | overlay-put.ov.'help-echo....... |
| 51260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 54 6f 6f 6c 20 63 | .................(concat."Tool.c |
| 51280 | 61 6c 6c 28 73 29 20 72 65 71 75 65 73 74 65 64 3a 20 22 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 | all(s).requested:.".actions-stri |
| 512a0 | 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 | ng))...........(overlay-put.ov.' |
| 512c0 | 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | keymap........................(d |
| 512e0 | 65 66 69 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | efine-keymap.................... |
| 51300 | 20 20 20 20 20 20 22 3c 6d 6f 75 73 65 2d 31 3e 22 20 23 27 67 70 74 65 6c 2d 2d 64 69 73 70 61 | ......"<mouse-1>".#'gptel--dispa |
| 51320 | 74 63 68 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tch-tool-calls.................. |
| 51340 | 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 2d 61 63 63 65 70 | ........"C-c.C-c".#'gptel--accep |
| 51360 | 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-tool-calls.................... |
| 51380 | 20 20 20 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d | ......"C-c.C-k".#'gptel--reject- |
| 513a0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-calls...................... |
| 513c0 | 20 20 20 20 22 43 2d 63 20 43 2d 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...."C-c.C-i"................... |
| 513e0 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a | .......(lambda.().(interactive). |
| 51400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 | ...........................(with |
| 51420 | 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -selected-window................ |
| 51440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d | ................(gptel--inspect- |
| 51460 | 66 73 6d 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | fsm.gptel--fsm-last)............ |
| 51480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f | ..................(goto-char.(po |
| 514a0 | 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | int-min))....................... |
| 514c0 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 | .......(when.(search-forward-reg |
| 514e0 | 65 78 70 20 22 5e 3a 74 6f 6f 6c 2d 75 73 65 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 | exp."^:tool-use".nil.t)......... |
| 51500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d | .......................(forward- |
| 51520 | 6c 69 6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | line.0)......................... |
| 51540 | 20 20 20 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 29 29 29 29 29 | .......(hl-line-highlight))))))) |
| 51560 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c | ))))..(defun.gptel--display-tool |
| 51580 | 2d 72 65 73 75 6c 74 73 20 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 0a 20 20 22 | -results.(tool-results.info)..." |
| 515a0 | 49 6e 73 65 72 74 20 54 4f 4f 4c 2d 52 45 53 55 4c 54 53 20 69 6e 74 6f 20 62 75 66 66 65 72 2e | Insert.TOOL-RESULTS.into.buffer. |
| 515c0 | 0a 0a 54 4f 4f 4c 2d 52 45 53 55 4c 54 53 20 69 73 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 | ..TOOL-RESULTS.is...((tool.args. |
| 515e0 | 72 65 73 75 6c 74 29 20 2e 2e 2e 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 | result)....)..for.tool.call.resu |
| 51600 | 6c 74 73 2e 20 20 49 4e 46 4f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 | lts...INFO.contains.the.state.of |
| 51620 | 20 74 68 65 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d | .the.request."...(let*.((start-m |
| 51640 | 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 | arker.(plist-get.info.:position) |
| 51660 | 29 0a 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 | )..........(tool-marker.(plist-g |
| 51680 | 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 | et.info.:tool-marker)).......... |
| 516a0 | 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | (tracking-marker.(plist-get.info |
| 516c0 | 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 | .:tracking-marker))).....;;.Inse |
| 516e0 | 72 74 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d | rt.tool.results.....(when.gptel- |
| 51700 | 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 28 77 69 74 68 | include-tool-results.......(with |
| 51720 | 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 | -current-buffer.(marker-buffer.s |
| 51740 | 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 | tart-marker).........(cl-loop... |
| 51760 | 20 20 20 20 20 20 20 66 6f 72 20 28 74 6f 6f 6c 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 69 6e | .......for.(tool.args.result).in |
| 51780 | 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 77 69 74 68 20 69 6e 63 6c | .tool-results..........with.incl |
| 517a0 | 75 64 65 2d 6e 61 6d 65 73 20 3d 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 67 | ude-names.=..........(mapcar.#'g |
| 517c0 | 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-tool-name.................. |
| 517e0 | 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 69 | (cl-remove-if-not.#'gptel-tool-i |
| 51800 | 6e 63 6c 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 29 29 | nclude.(plist-get.info.:tools))) |
| 51820 | 0a 20 20 20 20 20 20 20 20 20 69 66 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 69 6e 63 6c 75 | ..........if.(or.(eq.gptel-inclu |
| 51840 | 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | de-tool-results.t).............. |
| 51860 | 20 20 20 28 6d 65 6d 62 65 72 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c | ...(member.(gptel-tool-name.tool |
| 51880 | 29 20 69 6e 63 6c 75 64 65 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 66 | ).include-names))..........do.(f |
| 518a0 | 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | uncall..............(plist-get.i |
| 518c0 | 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 | nfo.:callback)..............(let |
| 518e0 | 2a 20 28 28 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 29 | *.((name.(gptel-tool-name.tool)) |
| 51900 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 70 61 72 61 74 6f 72 20 | .....................(separator. |
| 51920 | 20 20 20 20 20 20 20 3b 53 65 70 61 72 61 74 65 20 66 72 6f 6d 20 72 65 73 70 6f 6e 73 65 20 70 | .......;Separate.from.response.p |
| 51940 | 72 65 66 69 78 20 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | refix.if.required............... |
| 51960 | 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b | .......(cond.((not.tracking-mark |
| 51980 | 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er)............................. |
| 519a0 | 28 61 6e 64 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (and.gptel-mode................. |
| 519c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 73 75 | .................(not.(string-su |
| 519e0 | 66 66 69 78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffix-p.......................... |
| 51a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e | .............."\n".(gptel-respon |
| 51a20 | 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | se-prefix-string)))............. |
| 51a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 20 20 20 20 20 | ....................."\n"))..... |
| 51a60 | 20 20 20 20 20 20 3b 73 74 61 72 74 20 6f 66 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 | ......;start.of.response........ |
| 51a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 61 6e 64 20 74 | ....................((not.(and.t |
| 51aa0 | 6f 6f 6c 2d 6d 61 72 6b 65 72 20 3b 6e 6f 74 20 63 6f 6e 73 65 63 75 74 69 76 65 20 74 6f 6f 6c | ool-marker.;not.consecutive.tool |
| 51ac0 | 20 72 65 73 75 6c 74 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .result.blocks.................. |
| 51ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 72 61 63 6b 69 6e 67 | .....................(=.tracking |
| 51b00 | 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 | -marker.tool-marker))).......... |
| 51b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 | ...................gptel-respons |
| 51b40 | 65 2d 73 65 70 61 72 61 74 6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-separator))).................. |
| 51b60 | 20 20 20 28 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(tool-use.................... |
| 51b80 | 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 61 6c 73 6f 20 63 68 65 63 6b 20 61 72 67 73 20 | ..;;.TODO(tool).also.check.args. |
| 51ba0 | 73 69 6e 63 65 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 6d 6f 72 65 20 74 68 61 6e 0a 20 20 20 | since.there.may.be.more.than.... |
| 51bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 65 20 63 61 6c 6c 2f 72 65 | ..................;;.one.call/re |
| 51be0 | 73 75 6c 74 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 | sult.for.the.same.tool.......... |
| 51c00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 | ............(cl-find-if......... |
| 51c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 75 29 20 28 65 71 75 61 | ..............(lambda.(tu).(equa |
| 51c40 | 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 74 75 20 3a 6e 61 6d 65 29 20 6e 61 6d 65 29 29 0a 20 20 | l.(plist-get.tu.:name).name))... |
| 51c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | ....................(plist-get.i |
| 51c80 | 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nfo.:tool-use)))................ |
| 51ca0 | 20 20 20 20 20 28 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 69 64 | .....(id.(plist-get.tool-use.:id |
| 51cc0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d | )).....................(display- |
| 51ce0 | 63 61 6c 6c 20 28 66 6f 72 6d 61 74 20 22 28 25 73 20 25 73 29 22 20 6e 61 6d 65 0a 20 20 20 20 | call.(format."(%s.%s)".name..... |
| 51d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 51d20 | 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 | ......(string-trim.(prin1-to-str |
| 51d40 | 69 6e 67 20 61 72 67 73 29 20 22 28 22 20 22 29 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ing.args)."(".")")))............ |
| 51d60 | 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 | .........(call.(prin1-to-string. |
| 51d80 | 60 28 3a 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 61 72 67 73 20 2c 61 72 67 73 29 29 29 0a 20 20 20 | `(:name.,name.:args.,args))).... |
| 51da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c | .................(truncated-call |
| 51dc0 | 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 | .(truncate-string-to-width...... |
| 51de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 51e00 | 64 69 73 70 6c 61 79 2d 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | display-call.................... |
| 51e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f 6f 72 20 28 2a 20 28 77 69 6e | ..................(floor.(*.(win |
| 51e40 | 64 6f 77 2d 77 69 64 74 68 29 20 30 2e 36 29 29 20 30 20 6e 69 6c 20 22 20 2e 2e 2e 29 22 29 29 | dow-width).0.6)).0.nil."....)")) |
| 51e60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f | )................(if.(derived-mo |
| 51e80 | 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | de-p.'org-mode)................. |
| 51ea0 | 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 | ...(concat.....................s |
| 51ec0 | 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 23 2b | eparator....................."#+ |
| 51ee0 | 62 65 67 69 6e 5f 74 6f 6f 6c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | begin_tool.".................... |
| 51f00 | 20 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .truncated-call................. |
| 51f20 | 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(propertize................. |
| 51f40 | 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 22 20 63 61 6c 6c 20 22 5c 6e 5c 6e 22 20 28 6f | .....(concat."\n".call."\n\n".(o |
| 51f60 | 72 67 2d 65 73 63 61 70 65 2d 63 6f 64 65 2d 69 6e 2d 73 74 72 69 6e 67 20 72 65 73 75 6c 74 29 | rg-escape-code-in-string.result) |
| 51f80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 | )......................'gptel.`( |
| 51fa0 | 74 6f 6f 6c 20 2e 20 2c 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool...,id)).................... |
| 51fc0 | 20 22 5c 6e 23 2b 65 6e 64 5f 74 6f 6f 6c 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."\n#+end_tool\n").............. |
| 51fe0 | 20 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 | ....;;.TODO(tool).else.branch.is |
| 52000 | 20 68 61 6e 64 6c 69 6e 67 20 61 6c 6c 20 66 72 6f 6e 74 2d 65 6e 64 73 20 61 73 20 6d 61 72 6b | .handling.all.front-ends.as.mark |
| 52020 | 64 6f 77 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 74 20 6c 65 61 | down...................;;.At.lea |
| 52040 | 73 74 20 65 73 63 61 70 65 20 6d 61 72 6b 64 6f 77 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | st.escape.markdown.............. |
| 52060 | 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 | .....(concat...................s |
| 52080 | 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f | eparator...................;;.TO |
| 520a0 | 44 4f 28 74 6f 6f 6c 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 73 | DO(tool).remove.properties.and.s |
| 520c0 | 74 72 69 70 20 69 6e 73 74 65 61 64 20 6f 66 20 69 67 6e 6f 72 69 6e 67 0a 20 20 20 20 20 20 20 | trip.instead.of.ignoring........ |
| 520e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 | ...........(propertize.(format." |
| 52100 | 60 60 60 20 74 6f 6f 6c 20 25 73 22 20 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c 29 20 27 67 70 | ```.tool.%s".truncated-call).'gp |
| 52120 | 74 65 6c 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | tel.'ignore)...................( |
| 52140 | 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | propertize....................;; |
| 52160 | 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 65 73 63 61 70 65 20 6d 61 72 6b 64 6f 77 6e 20 69 6e 20 72 | .TODO(tool).escape.markdown.in.r |
| 52180 | 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 | esult....................(concat |
| 521a0 | 20 22 5c 6e 22 20 63 61 6c 6c 20 22 5c 6e 5c 6e 22 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 | ."\n".call."\n\n".result)....... |
| 521c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f 6c 20 2e 20 2c 69 64 | .............'gptel.`(tool...,id |
| 521e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f | ))...................;;.TODO(too |
| 52200 | 6c 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 73 74 72 69 70 20 69 | l).remove.properties.and.strip.i |
| 52220 | 6e 73 74 65 61 64 20 6f 66 20 69 67 6e 6f 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | nstead.of.ignoring.............. |
| 52240 | 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 60 60 60 5c 6e 22 20 27 67 70 74 65 | .....(propertize."\n```\n".'gpte |
| 52260 | 6c 20 27 69 67 6e 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 0a | l.'ignore))))..............info. |
| 52280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 | .............'raw)..........;;.t |
| 522a0 | 6f 6f 6c 2d 72 65 73 75 6c 74 20 69 6e 73 65 72 74 69 6f 6e 20 68 61 73 20 75 70 64 61 74 65 64 | ool-result.insertion.has.updated |
| 522c0 | 20 74 68 65 20 74 72 61 63 6b 69 6e 67 20 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 28 75 | .the.tracking.marker..........(u |
| 522e0 | 6e 6c 65 73 73 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 | nless.tracking-marker........... |
| 52300 | 20 28 73 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 | .(setq.tracking-marker.(plist-ge |
| 52320 | 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 | t.info.:tracking-marker)))...... |
| 52340 | 20 20 20 20 28 69 66 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....(if.tool-marker............. |
| 52360 | 20 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 72 61 63 | ...(move-marker.tool-marker.trac |
| 52380 | 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | king-marker)..............(setq. |
| 523a0 | 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e | tool-marker.(copy-marker.trackin |
| 523c0 | 67 2d 6d 61 72 6b 65 72 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | g-marker.nil))..............(pli |
| 523e0 | 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 | st-put.info.:tool-marker.tool-ma |
| 52400 | 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d | rker))..........(when.(derived-m |
| 52420 | 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 64 72 61 77 65 72 0a 20 20 | ode-p.'org-mode).;fold.drawer... |
| 52440 | 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 | .........(ignore-errors......... |
| 52460 | 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(save-excursion............ |
| 52480 | 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a | ....(goto-char.tracking-marker). |
| 524a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 | ...............(forward-line.-1) |
| 524c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 | ................(when.(looking-a |
| 524e0 | 74 20 22 5e 23 5c 5c 2b 65 6e 64 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t."^#\\+end_tool").............. |
| 52500 | 20 20 20 20 28 6f 72 67 2d 63 79 63 6c 65 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e | ....(org-cycle))))))))))..(defun |
| 52520 | 20 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 6e 61 6d 65 20 61 | .gptel--format-tool-call.(name.a |
| 52540 | 72 67 2d 76 61 6c 75 65 73 29 0a 20 20 22 46 6f 72 6d 61 74 20 61 20 74 6f 6f 6c 20 63 61 6c 6c | rg-values)..."Format.a.tool.call |
| 52560 | 20 66 6f 72 20 64 69 73 70 6c 61 79 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 4e 41 4d | .for.display.in.the.buffer...NAM |
| 52580 | 45 20 61 6e 64 20 41 52 47 2d 56 41 4c 55 45 53 20 61 72 65 20 74 68 65 20 6e 61 6d 65 20 61 6e | E.and.ARG-VALUES.are.the.name.an |
| 525a0 | 64 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 2e 22 0a 20 20 28 66 6f | d.arguments.for.the.call."...(fo |
| 525c0 | 72 6d 61 74 20 22 28 25 73 20 25 73 29 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 | rmat."(%s.%s)\n"...........(prop |
| 525e0 | 65 72 74 69 7a 65 20 6e 61 6d 65 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 | ertize.name.'face.'font-lock-key |
| 52600 | 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 | word-face)...........(propertize |
| 52620 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 | ............(mapconcat.(lambda.( |
| 52640 | 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | arg).........................(co |
| 52660 | 6e 64 20 28 28 73 74 72 69 6e 67 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd.((stringp.arg)............... |
| 52680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e | .................(prin1-to-strin |
| 526a0 | 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g............................... |
| 526c0 | 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 | ..(replace-regexp-in-string..... |
| 526e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e | ............................."\n |
| 52700 | 22 20 22 e2 ae 90 22 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 | "."...".(truncate-string-to-widt |
| 52720 | 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h............................... |
| 52740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 20 28 66 6c 6f 6f 72 20 28 77 69 6e 64 6f 77 2d | .............arg.(floor.(window- |
| 52760 | 77 69 64 74 68 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | width).2)....................... |
| 52780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 74 29 29 | .....................nil.nil.t)) |
| 527a0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )).............................. |
| 527c0 | 20 28 74 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 61 72 67 29 29 29 29 0a 20 20 20 | .(t.(prin1-to-string.arg)))).... |
| 527e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 2d 76 61 6c 75 65 73 20 22 20 | ...................arg-values.". |
| 52800 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 | ")............'face.'font-lock-c |
| 52820 | 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 | onstant-face)))..(defun.gptel--a |
| 52840 | 63 63 65 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 73 70 | ccept-tool-calls.(&optional.resp |
| 52860 | 6f 6e 73 65 20 6f 76 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 70 63 61 73 65 2d 6c | onse.ov)...(interactive.(pcase-l |
| 52880 | 65 74 20 28 28 60 28 2c 72 65 73 70 20 2e 20 2c 6f 29 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f | et.((`(,resp...,o).(get-char-pro |
| 528a0 | 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | perty-and-overlay............... |
| 528c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f | .............................(po |
| 528e0 | 69 6e 74 29 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | int).'gptel-tool)))............. |
| 52900 | 20 20 20 20 20 28 6c 69 73 74 20 72 65 73 70 20 6f 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 75 | .....(list.resp.o)))...(gptel--u |
| 52920 | 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 43 61 6c 6c 69 6e 67 20 74 6f 6f 6c 2e 2e 2e 22 20 | pdate-status.".Calling.tool...". |
| 52940 | 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 0a 20 20 28 6d 65 73 73 61 67 65 20 | 'mode-line-emphasis)...(message. |
| 52960 | 22 43 6f 6e 74 69 6e 75 69 6e 67 20 71 75 65 72 79 2e 2e 2e 22 29 0a 20 20 28 63 6c 2d 6c 6f 6f | "Continuing.query...")...(cl-loo |
| 52980 | 70 20 66 6f 72 20 28 74 6f 6f 6c 2d 73 70 65 63 20 61 72 67 2d 76 61 6c 75 65 73 20 70 72 6f 63 | p.for.(tool-spec.arg-values.proc |
| 529a0 | 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 29 20 69 6e 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 | ess-tool-result).in.response.... |
| 529c0 | 20 20 20 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 67 70 74 65 6c | ........do............(if.(gptel |
| 529e0 | 2d 74 6f 6f 6c 2d 61 73 79 6e 63 20 74 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 | -tool-async.tool-spec).......... |
| 52a00 | 20 20 20 20 20 20 28 61 70 70 6c 79 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 66 75 6e 63 74 69 6f | ......(apply.(gptel-tool-functio |
| 52a20 | 6e 20 74 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.tool-spec).................... |
| 52a40 | 20 20 20 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 61 72 67 2d 76 61 6c 75 65 | ...process-tool-result.arg-value |
| 52a60 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 0a 20 20 | s)..............(let.((result... |
| 52a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 | ..................(condition-cas |
| 52aa0 | 65 20 65 72 72 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.errdata....................... |
| 52ac0 | 20 20 28 61 70 70 6c 79 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 74 6f | ..(apply.(gptel-tool-function.to |
| 52ae0 | 6f 6c 2d 73 70 65 63 29 20 61 72 67 2d 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ol-spec).arg-values)............ |
| 52b00 | 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 67 | ...........(error.(mapconcat.#'g |
| 52b20 | 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 65 72 72 64 61 74 61 20 22 20 22 29 29 29 29 29 | ptel--to-string.errdata."."))))) |
| 52b40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 65 73 73 | ................(funcall.process |
| 52b60 | 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 28 61 6e 64 20 28 | -tool-result.result))))...(and.( |
| 52b80 | 6f 76 65 72 6c 61 79 70 20 6f 76 29 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 | overlayp.ov).(delete-overlay.ov) |
| 52ba0 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f 6c 2d 63 61 | ))..(defun.gptel--reject-tool-ca |
| 52bc0 | 6c 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 72 65 73 70 6f 6e 73 65 20 6f 76 29 0a 20 20 28 | lls.(&optional._response.ov)...( |
| 52be0 | 69 6e 74 65 72 61 63 74 69 76 65 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 | interactive.(pcase-let.((`(,resp |
| 52c00 | 20 2e 20 2c 6f 29 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 | ...,o).(get-char-property-and-ov |
| 52c20 | 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erlay........................... |
| 52c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d | .................(point).'gptel- |
| 52c60 | 74 6f 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 | tool)))..................(list.r |
| 52c80 | 65 73 70 20 6f 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 | esp.o)))...(gptel--update-status |
| 52ca0 | 20 22 20 54 6f 6f 6c 73 20 63 61 6e 63 65 6c 6c 65 64 22 20 27 65 72 72 6f 72 29 0a 20 20 28 6d | .".Tools.cancelled".'error)...(m |
| 52cc0 | 65 73 73 61 67 65 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a | essage.(substitute-command-keys. |
| 52ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 54 6f 6f 6c 20 63 61 6c 6c 73 20 63 61 6e 63 65 6c 65 64 | ............"Tool.calls.canceled |
| 52d00 | 2e 20 20 5c 5c 5b 67 70 74 65 6c 2d 6d 65 6e 75 5d 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 | ...\\[gptel-menu].to.continue.th |
| 52d20 | 65 6d 21 22 29 29 0a 20 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 20 28 64 65 6c | em!"))...(and.(overlayp.ov).(del |
| 52d40 | 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | ete-overlay.ov)))..(defun.gptel- |
| 52d60 | 2d 64 69 73 70 61 74 63 68 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 63 68 6f 69 63 65 29 0a 20 20 | -dispatch-tool-calls.(choice)... |
| 52d80 | 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 6c 65 74 20 28 | (interactive....(list.....(let.( |
| 52da0 | 28 63 68 6f 69 63 65 73 20 27 28 28 3f 79 20 22 79 65 73 22 29 20 28 3f 6e 20 22 64 6f 20 6e 6f | (choices.'((?y."yes").(?n."do.no |
| 52dc0 | 74 68 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 6b | thing")......................(?k |
| 52de0 | 20 22 63 61 6e 63 65 6c 20 72 65 71 75 65 73 74 22 29 20 28 3f 69 20 22 69 6e 73 70 65 63 74 20 | ."cancel.request").(?i."inspect. |
| 52e00 | 63 61 6c 6c 28 73 29 22 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 61 64 2d 6d 75 6c 74 69 70 6c | call(s)")))).......(read-multipl |
| 52e20 | 65 2d 63 68 6f 69 63 65 20 22 52 75 6e 20 74 6f 6f 6c 20 63 61 6c 6c 73 3f 20 22 20 63 68 6f 69 | e-choice."Run.tool.calls?.".choi |
| 52e40 | 63 65 73 29 29 29 29 0a 20 20 28 70 63 61 73 65 20 28 63 61 72 20 63 68 6f 69 63 65 29 0a 20 20 | ces))))...(pcase.(car.choice)... |
| 52e60 | 20 20 28 3f 79 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 | ..(?y.(call-interactively.#'gpte |
| 52e80 | 6c 2d 2d 61 63 63 65 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 6b 20 28 | l--accept-tool-calls)).....(?k.( |
| 52ea0 | 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 | call-interactively.#'gptel--reje |
| 52ec0 | 63 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 69 20 28 67 70 74 65 6c 2d 2d | ct-tool-calls)).....(?i.(gptel-- |
| 52ee0 | 69 6e 73 70 65 63 74 2d 66 73 6d 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 29 29 0a | inspect-fsm.gptel--fsm-last)))). |
| 52f00 | 0a 0c 0a 3b 3b 3b 20 50 72 65 73 65 74 73 0a 3b 3b 3b 3b 20 50 72 65 73 65 74 73 20 69 6d 70 6c | ...;;;.Presets.;;;;.Presets.impl |
| 52f20 | 65 6d 65 6e 74 61 74 69 6f 6e 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d | ementation.(defvar.gptel--known- |
| 52f40 | 70 72 65 73 65 74 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 70 72 65 73 65 74 73 20 | presets.nil..."Alist.of.presets. |
| 52f60 | 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 6d 61 70 73 20 61 20 70 72 | for.gptel...Each.entry.maps.a.pr |
| 52f80 | 65 73 65 74 20 6e 61 6d 65 20 28 61 20 73 79 6d 62 6f 6c 29 20 74 6f 20 61 20 70 6c 69 73 74 20 | eset.name.(a.symbol).to.a.plist. |
| 52fa0 | 6f 66 0a 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 28 73 65 65 20 60 67 70 74 65 6c 2d 6d 61 | of.specifications.(see.`gptel-ma |
| 52fc0 | 6b 65 2d 70 72 65 73 65 74 27 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b | ke-preset').")..(defun.gptel-mak |
| 52fe0 | 65 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 44 65 | e-preset.(name.&rest.keys)..."De |
| 53000 | 66 69 6e 65 20 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a | fine.a.gptel.preset.with.NAME... |
| 53020 | 41 20 70 72 65 73 65 74 20 69 73 20 61 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 67 70 74 | A.preset.is.a.combination.of.gpt |
| 53040 | 65 6c 20 6f 70 74 69 6f 6e 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 70 70 6c 69 65 | el.options.intended.to.be.applie |
| 53060 | 64 20 61 6e 64 0a 75 73 65 64 20 74 6f 67 65 74 68 65 72 2e 20 20 50 72 65 73 65 74 73 20 63 61 | d.and.used.together...Presets.ca |
| 53080 | 6e 20 6d 61 6b 65 20 69 74 20 6c 65 73 73 20 74 65 64 69 6f 75 73 20 74 6f 20 63 68 61 6e 67 65 | n.make.it.less.tedious.to.change |
| 530a0 | 20 67 70 74 65 6c 0a 73 65 74 74 69 6e 67 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e 0a 0a 54 79 70 | .gptel.settings.on.the.fly...Typ |
| 530c0 | 69 63 61 6c 6c 79 20 74 68 69 73 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 61 20 6d 6f 64 65 6c | ically.this.will.include.a.model |
| 530e0 | 2c 20 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 70 65 | ,.backend,.system.message.and.pe |
| 53100 | 72 68 61 70 73 0a 73 6f 6d 65 20 74 6f 6f 6c 73 2c 20 62 75 74 20 61 6e 79 20 73 65 74 20 6f 66 | rhaps.some.tools,.but.any.set.of |
| 53120 | 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 65 74 20 74 68 69 73 20 77 | .gptel.options.can.be.set.this.w |
| 53140 | 61 79 2e 0a 0a 4e 41 4d 45 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e 20 20 4b 45 59 | ay...NAME.must.be.a.symbol...KEY |
| 53160 | 53 20 69 73 20 61 20 70 6c 69 73 74 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 | S.is.a.plist.corresponding.to.th |
| 53180 | 65 20 6f 70 74 69 6f 6e 73 0a 62 65 69 6e 67 20 73 65 74 2e 20 20 41 6c 6c 20 4b 45 59 53 20 61 | e.options.being.set...All.KEYS.a |
| 531a0 | 72 65 20 6f 70 74 69 6f 6e 61 6c 2e 0a 0a 52 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 3a 0a 0a | re.optional...Recognized.keys:.. |
| 531c0 | 44 45 53 43 52 49 50 54 49 4f 4e 20 69 73 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 | DESCRIPTION.is.a.description.of. |
| 531e0 | 74 68 65 20 70 72 65 73 65 74 2c 20 75 73 65 64 20 77 68 65 6e 20 73 65 6c 65 63 74 69 6e 67 20 | the.preset,.used.when.selecting. |
| 53200 | 61 0a 70 72 65 73 65 74 2e 0a 0a 50 41 52 45 4e 54 53 20 69 73 20 61 20 70 72 65 73 65 74 20 6e | a.preset...PARENTS.is.a.preset.n |
| 53220 | 61 6d 65 20 28 6f 72 20 6c 69 73 74 20 6f 66 20 70 72 65 73 65 74 20 6e 61 6d 65 73 29 20 74 6f | ame.(or.list.of.preset.names).to |
| 53240 | 20 61 70 70 6c 79 20 62 65 66 6f 72 65 20 74 68 69 73 0a 6f 6e 65 2e 0a 0a 50 52 45 20 61 6e 64 | .apply.before.this.one...PRE.and |
| 53260 | 20 50 4f 53 54 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 72 75 6e 20 62 65 66 6f 72 | .POST.are.functions.to.run.befor |
| 53280 | 65 20 61 6e 64 20 61 66 74 65 72 20 74 68 65 20 70 72 65 73 65 74 20 69 73 0a 61 70 70 6c 69 65 | e.and.after.the.preset.is.applie |
| 532a0 | 64 2e 20 20 54 68 65 79 20 74 61 6b 65 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 42 41 43 | d...They.take.no.arguments...BAC |
| 532c0 | 4b 45 4e 44 20 69 73 20 74 68 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 74 6f 20 73 65 74 | KEND.is.the.gptel-backend.to.set |
| 532e0 | 2c 20 6f 72 20 69 74 73 20 6e 61 6d 65 20 28 6c 69 6b 65 20 5c 22 43 68 61 74 47 50 54 5c 22 29 | ,.or.its.name.(like.\"ChatGPT\") |
| 53300 | 2e 0a 0a 4d 4f 44 45 4c 20 69 73 20 74 68 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 2e 0a 0a 53 59 | ...MODEL.is.the.gptel-model...SY |
| 53320 | 53 54 45 4d 20 69 73 20 74 68 65 20 64 69 72 65 63 74 69 76 65 2e 20 49 74 20 63 61 6e 20 62 65 | STEM.is.the.directive..It.can.be |
| 53340 | 0a 2d 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 61 20 73 74 72 69 6e 67 29 | .-.the.system.message.(a.string) |
| 53360 | 2c 0a 2d 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 28 61 20 63 6f 6e 76 65 72 73 | ,.-.a.list.of.strings.(a.convers |
| 53380 | 61 74 69 6f 6e 20 74 65 6d 70 6c 61 74 65 29 0a 2d 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 | ation.template).-.or.a.function. |
| 533a0 | 28 64 79 6e 61 6d 69 63 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 2e 0a 2d 20 49 74 20 63 | (dynamic.system.message)..-.It.c |
| 533c0 | 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 69 6e 67 20 61 20 64 69 72 | an.also.be.a.symbol.naming.a.dir |
| 533e0 | 65 63 74 69 76 65 20 69 6e 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 0a 0a 54 | ective.in.`gptel-directives'...T |
| 53400 | 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 6f 72 | OOLS.is.a.list.of.gptel.tools.or |
| 53420 | 20 74 6f 6f 6c 20 6e 61 6d 65 73 2c 20 6c 69 6b 65 0a 5c 5c 3d 27 28 5c 22 72 65 61 64 5f 75 72 | .tool.names,.like.\\='(\"read_ur |
| 53440 | 6c 5c 22 20 5c 22 72 65 61 64 5f 62 75 66 66 65 72 5c 22 20 2e 2e 2e 29 0a 0a 52 65 63 6f 67 6e | l\".\"read_buffer\"....)..Recogn |
| 53460 | 69 7a 65 64 20 6b 65 79 73 20 61 72 65 20 6e 6f 74 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 68 65 | ized.keys.are.not.limited.to.the |
| 53480 | 20 61 62 6f 76 65 2e 20 20 41 6e 79 20 6f 74 68 65 72 20 6b 65 79 20 28 6c 69 6b 65 0a 60 3a 66 | .above...Any.other.key.(like.`:f |
| 534a0 | 6f 6f 27 29 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 | oo').corresponds.to.the.value.of |
| 534c0 | 20 65 69 74 68 65 72 20 60 67 70 74 65 6c 2d 66 6f 6f 27 20 28 70 72 65 66 65 72 72 65 64 29 20 | .either.`gptel-foo'.(preferred). |
| 534e0 | 6f 72 0a 60 67 70 74 65 6c 2d 2d 66 6f 6f 27 2e 0a 2d 20 53 6f 20 54 4f 4f 4c 53 20 63 6f 72 72 | or.`gptel--foo'..-.So.TOOLS.corr |
| 53500 | 65 73 70 6f 6e 64 73 20 74 6f 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2c 0a 2d 20 43 4f 4e 46 | esponds.to.`gptel-tools',.-.CONF |
| 53520 | 49 52 4d 2d 54 4f 4f 4c 2d 43 41 4c 4c 53 20 74 6f 20 60 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d | IRM-TOOL-CALLS.to.`gptel-confirm |
| 53540 | 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 27 2c 0a 2d 20 54 45 4d 50 45 52 41 54 55 52 45 20 74 6f 20 60 | -tool-calls',.-.TEMPERATURE.to.` |
| 53560 | 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 27 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 53 65 | gptel-temperature'.and.so.on..Se |
| 53580 | 65 20 67 70 74 65 6c 27 73 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 | e.gptel's.customization.options. |
| 535a0 | 66 6f 72 20 61 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 | for.all.available.settings."...( |
| 535c0 | 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 | declare.(indent.1))...(if-let*.( |
| 535e0 | 28 70 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 | (p.(assoc.name.gptel--known-pres |
| 53600 | 65 74 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 20 70 20 6b 65 79 73 29 0a 20 20 20 | ets))).......(setcdr.p.keys).... |
| 53620 | 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 20 20 20 20 | .(setq.gptel--known-presets..... |
| 53640 | 20 20 20 20 20 3b 41 64 64 20 61 74 20 65 6e 64 20 6f 66 20 70 72 65 73 65 74 73 20 66 6f 72 20 | .....;Add.at.end.of.presets.for. |
| 53660 | 6d 65 6e 75 20 6f 72 64 65 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 67 | menu.ordering...........(nconc.g |
| 53680 | 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 | ptel--known-presets.(list.(cons. |
| 536a0 | 6e 61 6d 65 20 6b 65 79 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 67 65 | name.keys))))))..(defun.gptel-ge |
| 536c0 | 74 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 29 0a 20 20 22 47 65 74 20 74 68 65 20 67 70 74 65 6c | t-preset.(name)..."Get.the.gptel |
| 536e0 | 20 70 72 65 73 65 74 20 73 70 65 63 20 77 69 74 68 20 4e 41 4d 45 2e 22 0a 20 20 28 61 6c 69 73 | .preset.spec.with.NAME."...(alis |
| 53700 | 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 | t-get.name.gptel--known-presets. |
| 53720 | 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | nil.nil.#'equal))..(defun.gptel- |
| 53740 | 2d 73 61 76 65 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 73 | -save-preset.(name.&optional.des |
| 53760 | 63 72 69 70 74 69 6f 6e 29 0a 20 20 22 53 61 76 65 20 67 70 74 65 6c 27 73 20 63 75 72 72 65 6e | cription)..."Save.gptel's.curren |
| 53780 | 74 20 73 65 74 74 69 6e 67 73 20 61 73 20 61 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 | t.settings.as.a.preset.with.NAME |
| 537a0 | 2e 0a 0a 4e 41 4d 45 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e 20 20 44 45 53 43 52 | ...NAME.must.be.a.symbol...DESCR |
| 537c0 | 49 50 54 49 4f 4e 20 69 73 20 61 64 64 65 64 20 69 66 20 70 72 6f 76 69 64 65 64 2e 20 20 49 6e | IPTION.is.added.if.provided...In |
| 537e0 | 20 61 64 64 69 74 69 6f 6e 0a 74 6f 20 72 65 67 69 73 74 65 72 69 6e 67 20 74 68 65 20 70 72 65 | .addition.to.registering.the.pre |
| 53800 | 73 65 74 2c 20 65 6c 69 73 70 20 63 6f 64 65 20 74 6f 20 64 6f 20 74 68 65 20 73 61 6d 65 20 69 | set,.elisp.code.to.do.the.same.i |
| 53820 | 73 20 63 6f 70 69 65 64 20 74 6f 20 74 68 65 0a 6b 69 6c 6c 2d 72 69 6e 67 2e 22 0a 20 20 28 69 | s.copied.to.the.kill-ring."...(i |
| 53840 | 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 69 6e 74 65 72 6e 20 28 63 6f 6d | nteractive....(list.(intern.(com |
| 53860 | 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 53 61 76 65 20 67 70 74 65 6c 20 73 65 74 74 69 6e 67 | pleting-read."Save.gptel.setting |
| 53880 | 73 20 74 6f 20 28 65 78 69 73 74 69 6e 67 20 6f 72 20 6e 65 77 29 20 70 72 65 73 65 74 3a 20 22 | s.to.(existing.or.new).preset:." |
| 538a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 538c0 | 20 20 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 29 29 0a 20 20 20 20 20 20 | ...gptel--known-presets))....... |
| 538e0 | 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 28 6f 70 | ...(read-string."Description.(op |
| 53900 | 74 69 6f 6e 61 6c 29 3a 20 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72 65 73 65 74 2d 63 6f | tional):.")))...(let.((preset-co |
| 53920 | 64 65 0a 20 20 20 20 20 20 20 20 20 60 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 | de..........`(gptel-make-preset. |
| 53940 | 27 2c 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 2c | ',name............:description., |
| 53960 | 28 77 68 65 6e 20 28 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 | (when.(and.description.......... |
| 53980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 | .......................(not.(str |
| 539a0 | 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 | ing-blank-p.description)))...... |
| 539c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e | .....................description |
| 539e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 62 61 63 6b 65 6e 64 20 2c 28 67 70 74 65 6c 2d 62 61 | )............:backend.,(gptel-ba |
| 53a00 | 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 | ckend-name.gptel-backend)....... |
| 53a20 | 20 20 20 20 20 3a 6d 6f 64 65 6c 20 27 2c 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 | .....:model.',gptel-model....... |
| 53a40 | 20 20 20 20 20 3a 73 79 73 74 65 6d 20 2c 28 69 66 2d 6c 65 74 2a 20 28 28 64 69 72 65 63 74 69 | .....:system.,(if-let*.((directi |
| 53a60 | 76 65 20 28 63 61 72 2d 73 61 66 65 20 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 | ve.(car-safe.(rassoc.gptel--syst |
| 53a80 | 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | em-message...................... |
| 53aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 | ...............................g |
| 53ac0 | 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-directives))))............. |
| 53ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 60 27 2c 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 | .............`',directive....... |
| 53b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | ................gptel--system-me |
| 53b20 | 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 73 20 27 2c 28 6d 61 70 63 | ssage)............:tools.',(mapc |
| 53b40 | 61 72 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 | ar.#'gptel-tool-name.gptel-tools |
| 53b60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 67 70 74 65 6c 2d 73 74 72 65 | )............:stream.,gptel-stre |
| 53b80 | 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 2c 67 70 74 65 | am............:temperature.,gpte |
| 53ba0 | 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 2d 74 6f | l-temperature............:max-to |
| 53bc0 | 6b 65 6e 73 20 2c 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 | kens.,gptel-max-tokens.......... |
| 53be0 | 20 20 3a 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 2c 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 | ..:use-context.',gptel-use-conte |
| 53c00 | 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 63 6b 2d 6d 65 64 69 61 20 2c 67 70 74 65 | xt............:track-media.,gpte |
| 53c20 | 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 63 6c 75 64 | l-track-media............:includ |
| 53c40 | 65 2d 72 65 61 73 6f 6e 69 6e 67 20 2c 28 6c 65 74 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 67 70 | e-reasoning.,(let.((reasoning.gp |
| 53c60 | 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 | tel-include-reasoning))......... |
| 53c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | ...........................(if.( |
| 53ca0 | 65 71 20 72 65 61 73 6f 6e 69 6e 67 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 | eq.reasoning.'ignore)........... |
| 53cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 27 69 | .............................''i |
| 53ce0 | 67 6e 6f 72 65 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 6e | gnore.reasoning))))).....(kill-n |
| 53d00 | 65 77 20 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 70 72 65 73 65 74 2d 63 6f 64 65 29 29 0a 20 | ew.(pp-to-string.preset-code)).. |
| 53d20 | 20 20 20 28 65 76 61 6c 20 70 72 65 73 65 74 2d 63 6f 64 65 29 0a 20 20 20 20 28 6d 65 73 73 61 | ...(eval.preset-code).....(messa |
| 53d40 | 67 65 20 22 50 72 65 73 65 74 20 25 73 20 73 61 76 65 64 2e 20 28 4c 69 73 70 20 65 78 70 72 65 | ge."Preset.%s.saved..(Lisp.expre |
| 53d60 | 73 73 69 6f 6e 20 66 6f 72 20 70 72 65 73 65 74 20 73 61 76 65 64 20 74 6f 20 6b 69 6c 6c 2d 72 | ssion.for.preset.saved.to.kill-r |
| 53d80 | 69 6e 67 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 | ing)"..............(propertize.( |
| 53da0 | 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 27 66 61 63 65 20 27 68 69 67 68 6c 69 67 | symbol-name.name).'face.'highlig |
| 53dc0 | 68 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 | ht))))..(defvar.gptel--rewrite-d |
| 53de0 | 69 72 65 63 74 69 76 65 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 | irective).(defun.gptel--apply-pr |
| 53e00 | 65 73 65 74 20 28 70 72 65 73 65 74 20 26 6f 70 74 69 6f 6e 61 6c 20 73 65 74 74 65 72 29 0a 20 | eset.(preset.&optional.setter).. |
| 53e20 | 20 22 41 70 70 6c 79 20 67 70 74 65 6c 20 50 52 45 53 45 54 20 77 69 74 68 20 53 45 54 54 45 52 | ."Apply.gptel.PRESET.with.SETTER |
| 53e40 | 2e 0a 0a 50 52 45 53 45 54 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 70 72 65 73 65 | ...PRESET.is.the.name.of.a.prese |
| 53e60 | 74 2c 20 6f 72 20 61 20 73 70 65 63 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 4e 41 4d 45 20 | t,.or.a.spec.of.the.form..(NAME. |
| 53e80 | 3a 4b 45 59 31 20 56 41 4c 31 20 3a 4b 45 59 32 20 56 41 4c 32 20 2e 2e 2e 29 2e 0a 0a 53 45 54 | :KEY1.VAL1.:KEY2.VAL2....)...SET |
| 53ea0 | 54 45 52 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 73 65 74 20 | TER.is.the.function.used.to.set. |
| 53ec0 | 74 68 65 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 2e 20 20 49 74 20 6d 75 73 74 20 61 63 63 65 | the.gptel.options...It.must.acce |
| 53ee0 | 70 74 0a 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 20 73 79 6d 62 6f 6c 20 62 65 69 | pt.two.arguments,.the.symbol.bei |
| 53f00 | 6e 67 20 73 65 74 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 73 65 74 20 69 74 20 74 | ng.set.and.the.value.to.set.it.t |
| 53f20 | 6f 2e 20 20 49 74 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 60 73 65 74 27 2c 20 61 6e 64 20 63 61 | o...It.defaults.to.`set',.and.ca |
| 53f40 | 6e 20 62 65 20 73 65 74 20 74 6f 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e | n.be.set.to.a.different.function |
| 53f60 | 20 74 6f 20 28 66 6f 72 0a 65 78 61 6d 70 6c 65 29 20 61 70 70 6c 79 20 74 68 65 20 70 72 65 73 | .to.(for.example).apply.the.pres |
| 53f80 | 65 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 22 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d | et.buffer-locally."...(when.(mem |
| 53fa0 | 71 20 28 74 79 70 65 2d 6f 66 20 70 72 65 73 65 74 29 20 27 28 73 74 72 69 6e 67 20 73 79 6d 62 | q.(type-of.preset).'(string.symb |
| 53fc0 | 6f 6c 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 70 65 63 20 28 6f 72 20 28 67 70 74 65 6c 2d | ol)).....(let.((spec.(or.(gptel- |
| 53fe0 | 67 65 74 2d 70 72 65 73 65 74 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | get-preset.preset).............. |
| 54000 | 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 | .......(user-error."gptel.preset |
| 54020 | 20 5c 22 25 73 5c 22 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 70 72 65 73 65 74 2e 22 0a 20 20 | .\"%s\":.Cannot.find.preset."... |
| 54040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 | ..............................pr |
| 54060 | 65 73 65 74 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 65 74 20 28 63 6f 6e | eset)))).......(setq.preset.(con |
| 54080 | 73 20 70 72 65 73 65 74 20 73 70 65 63 29 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 73 65 74 74 | s.preset.spec))))...(unless.sett |
| 540a0 | 65 72 20 28 73 65 74 71 20 73 65 74 74 65 72 20 23 27 73 65 74 29 29 0a 20 20 28 77 68 65 6e 2d | er.(setq.setter.#'set))...(when- |
| 540c0 | 6c 65 74 2a 20 28 28 66 75 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 64 72 20 70 72 65 73 | let*.((func.(plist-get.(cdr.pres |
| 540e0 | 65 74 29 20 3a 70 72 65 29 29 29 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 29 29 0a 20 20 28 77 | et).:pre))).(funcall.func))...(w |
| 54100 | 68 65 6e 2d 6c 65 74 2a 20 28 28 70 61 72 65 6e 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 | hen-let*.((parents.(plist-get.(c |
| 54120 | 64 72 20 70 72 65 73 65 74 29 20 3a 70 61 72 65 6e 74 73 29 29 29 0a 20 20 20 20 28 6d 61 70 63 | dr.preset).:parents))).....(mapc |
| 54140 | 20 23 27 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 28 65 6e 73 75 72 65 2d 6c | .#'gptel--apply-preset.(ensure-l |
| 54160 | 69 73 74 20 70 61 72 65 6e 74 73 29 29 29 0a 20 20 28 6d 61 70 2d 64 6f 0a 20 20 20 28 6c 61 6d | ist.parents)))...(map-do....(lam |
| 54180 | 62 64 61 20 28 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 28 70 63 61 73 65 20 6b 65 79 0a 20 20 | bda.(key.val)......(pcase.key... |
| 541a0 | 20 20 20 20 20 28 28 6f 72 20 3a 70 61 72 65 6e 74 73 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | .....((or.:parents.:description. |
| 541c0 | 3a 70 72 65 20 3a 70 6f 73 74 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 28 6f 72 20 3a 73 79 | :pre.:post).nil)........((or.:sy |
| 541e0 | 73 74 65 6d 20 3a 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 3a 72 65 77 72 69 74 65 2d 64 69 | stem.:system-message.:rewrite-di |
| 54200 | 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 6d 20 28 69 66 20 | rective).........(let.((sym.(if. |
| 54220 | 28 65 71 20 6b 65 79 20 3a 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 | (eq.key.:rewrite-directive)..... |
| 54240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 | ...................'gptel--rewri |
| 54260 | 74 65 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | te-directive.'gptel--system-mess |
| 54280 | 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 79 6d 62 6f | age)))...........(if.(and.(symbo |
| 542a0 | 6c 70 20 76 61 6c 29 20 28 6e 6f 74 20 28 66 75 6e 63 74 69 6f 6e 70 20 76 61 6c 29 29 29 0a 20 | lp.val).(not.(functionp.val))).. |
| 542c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 64 69 72 65 63 74 69 76 | .............(if-let*.((directiv |
| 542e0 | 65 20 28 61 6c 69 73 74 2d 67 65 74 20 76 61 6c 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 | e.(alist-get.val.gptel-directive |
| 54300 | 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 | s)))...................(funcall. |
| 54320 | 73 65 74 74 65 72 20 73 79 6d 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 | setter.sym.directive)........... |
| 54340 | 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 | ......(user-error."gptel.preset. |
| 54360 | 5c 22 25 73 5c 22 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 64 69 72 65 63 74 69 76 65 20 25 73 | \"%s\":.Cannot.find.directive.%s |
| 54380 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ".............................(c |
| 543a0 | 61 72 20 70 72 65 73 65 74 29 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 | ar.preset).val)).............(fu |
| 543c0 | 6e 63 61 6c 6c 20 73 65 74 74 65 72 20 73 79 6d 20 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 | ncall.setter.sym.val))))........ |
| 543e0 | 28 3a 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 63 6c 2d | (:backend.........(setq.val.(cl- |
| 54400 | 65 74 79 70 65 63 61 73 65 20 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | etypecase.val................... |
| 54420 | 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(gptel-backend.val)........... |
| 54440 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 | ..........(string.(gptel-get-bac |
| 54460 | 6b 65 6e 64 20 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 76 61 6c | kend.val)))).........(unless.val |
| 54480 | 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 | ...........(user-error."gptel.pr |
| 544a0 | 65 73 65 74 20 5c 22 25 73 5c 22 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 62 61 63 6b 65 6e 64 | eset.\"%s\":.Cannot.find.backend |
| 544c0 | 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 | .%s.".......................(car |
| 544e0 | 20 70 72 65 73 65 74 29 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 | .preset).val)).........(funcall. |
| 54500 | 73 65 74 74 65 72 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 76 61 6c 29 29 0a 20 20 20 20 | setter.'gptel-backend.val))..... |
| 54520 | 20 20 20 28 3a 74 6f 6f 6c 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(:tools...................... |
| 54540 | 20 20 20 20 3b 54 45 4d 50 20 43 6f 6e 66 69 72 6d 20 74 68 69 73 20 60 3a 61 70 70 65 6e 64 27 | ....;TEMP.Confirm.this.`:append' |
| 54560 | 20 63 6f 6e 76 65 6e 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 61 70 70 65 | .convention.........(let*.((appe |
| 54580 | 6e 64 20 28 77 68 65 6e 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 76 61 6c 29 20 3a 61 70 70 | nd.(when.(eq.(car-safe.val).:app |
| 545a0 | 65 6e 64 29 20 28 73 65 74 71 20 76 61 6c 20 28 63 64 72 20 76 61 6c 29 29 20 74 29 29 0a 20 20 | end).(setq.val.(cdr.val)).t))... |
| 545c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .............(tools............. |
| 545e0 | 20 20 20 20 28 66 6c 61 74 74 65 6e 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(flatten-list............... |
| 54600 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 6f 6f 6c 2d 6e 61 6d 65 20 69 6e 20 28 65 6e | ...(cl-loop.for.tool-name.in.(en |
| 54620 | 73 75 72 65 2d 6c 69 73 74 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sure-list.val).................. |
| 54640 | 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 20 3d 20 28 63 6c 2d 65 74 79 70 65 63 61 73 | .........for.tool.=.(cl-etypecas |
| 54660 | 65 20 74 6f 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.tool-name..................... |
| 54680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 20 74 | ...................(gptel-tool.t |
| 546a0 | 6f 6f 6c 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-name)....................... |
| 546c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 69 67 6e 6f 72 65 | .................(string.(ignore |
| 546e0 | 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -errors......................... |
| 54700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | .........................(gptel- |
| 54720 | 67 65 74 2d 74 6f 6f 6c 20 74 6f 6f 6c 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | get-tool.tool-name)))).......... |
| 54740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c | .................do.(unless.tool |
| 54760 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 54780 | 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 5c 22 25 73 5c 22 | (user-error."gptel.preset.\"%s\" |
| 547a0 | 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 74 6f 6f 6c 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 | :.Cannot.find.tool.%s."......... |
| 547c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 547e0 | 20 20 20 28 63 61 72 20 70 72 65 73 65 74 29 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ...(car.preset).val))........... |
| 54800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 29 29 29 29 | ................collect.tool)))) |
| 54820 | 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 74 65 72 20 27 67 70 74 65 | ...........(funcall.setter.'gpte |
| 54840 | 6c 2d 74 6f 6f 6c 73 20 3b 61 70 70 65 6e 64 20 6d 61 6b 65 73 20 61 20 63 6f 70 79 20 6f 66 20 | l-tools.;append.makes.a.copy.of. |
| 54860 | 67 70 74 65 6c 2d 74 6f 6f 6c 73 2c 20 69 6e 74 65 6e 74 69 6f 6e 61 6c 0a 20 20 20 20 20 20 20 | gptel-tools,.intentional........ |
| 54880 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 70 70 65 6e 64 20 28 64 65 6c 65 74 65 2d 64 | ............(if.append.(delete-d |
| 548a0 | 75 70 73 20 28 61 70 70 65 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 74 6f 6f 6c 73 29 29 20 | ups.(append.gptel-tools.tools)). |
| 548c0 | 74 6f 6f 6c 73 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6c 65 74 20 73 79 6d 20 | tools))))........((and.(let.sym. |
| 548e0 | 28 6f 72 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (or.(intern-soft................ |
| 54900 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 22 20 28 73 75 | ............(concat."gptel-".(su |
| 54920 | 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 0a 20 | bstring.(symbol-name.key).1))).. |
| 54940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e | .........................(intern |
| 54960 | 2d 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -soft........................... |
| 54980 | 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 22 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 | .(concat."gptel--".(substring.(s |
| 549a0 | 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ymbol-name.key).1))))).......... |
| 549c0 | 20 20 20 20 28 67 75 61 72 64 20 28 61 6e 64 20 73 79 6d 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 | ....(guard.(and.sym.(boundp.sym) |
| 549e0 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 74 65 72 20 73 79 6d 20 | ))).........(funcall.setter.sym. |
| 54a00 | 76 61 6c 29 29 0a 20 20 20 20 20 20 20 28 5f 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 | val))........(_.(display-warning |
| 54a20 | 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c 20 70 72 65 73 65 74 73 29 0a 20 20 20 | ............'(gptel.presets).... |
| 54a40 | 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 5c 22 | ........(format."gptel.preset.\" |
| 54a60 | 25 73 5c 22 3a 20 73 65 74 74 69 6e 67 20 66 6f 72 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 | %s\":.setting.for.%s.not.found,. |
| 54a80 | 69 67 6e 6f 72 69 6e 67 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ignoring."....................(c |
| 54aa0 | 61 72 20 70 72 65 73 65 74 29 20 6b 65 79 29 29 29 29 29 0a 20 20 20 28 63 64 72 20 70 72 65 73 | ar.preset).key)))))....(cdr.pres |
| 54ac0 | 65 74 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 66 75 6e 63 20 28 70 6c 69 73 74 2d | et))...(when-let*.((func.(plist- |
| 54ae0 | 67 65 74 20 28 63 64 72 20 70 72 65 73 65 74 29 20 3a 70 6f 73 74 29 29 29 20 28 66 75 6e 63 61 | get.(cdr.preset).:post))).(funca |
| 54b00 | 6c 6c 20 66 75 6e 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 | ll.func)))..(defun.gptel--preset |
| 54b20 | 2d 73 79 6d 73 20 28 70 72 65 73 65 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 | -syms.(preset)..."Return.a.list. |
| 54b40 | 6f 66 20 67 70 74 65 6c 20 76 61 72 69 61 62 6c 65 73 20 28 73 79 6d 62 6f 6c 73 29 20 73 65 74 | of.gptel.variables.(symbols).set |
| 54b60 | 20 62 79 20 50 52 45 53 45 54 2e 0a 0a 50 52 45 53 45 54 20 69 73 20 61 20 73 70 65 63 20 28 70 | .by.PRESET...PRESET.is.a.spec.(p |
| 54b80 | 6c 69 73 74 29 20 6f 66 20 6b 65 79 73 20 61 6e 64 20 76 61 6c 75 65 73 2e 22 0a 20 20 28 6c 65 | list).of.keys.and.values."...(le |
| 54ba0 | 74 2a 20 28 28 69 6e 64 65 78 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 73 79 6d 73 | t*.((index.preset)..........syms |
| 54bc0 | 20 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 28 77 68 69 6c 65 20 69 6e 64 65 78 0a 20 20 20 20 20 | .key.val).....(while.index...... |
| 54be0 | 20 28 73 65 74 71 20 6b 65 79 20 28 70 6f 70 20 69 6e 64 65 78 29 20 76 61 6c 20 28 70 6f 70 20 | .(setq.key.(pop.index).val.(pop. |
| 54c00 | 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 6b 65 79 0a 20 20 20 20 20 20 20 | index)).......(pcase.key........ |
| 54c20 | 20 28 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 3a 70 61 72 65 6e 74 | .(:description).........(:parent |
| 54c40 | 73 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 70 61 72 65 6e 74 | s..........(mapc.(lambda.(parent |
| 54c60 | 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 | -preset)..................(nconc |
| 54c80 | 20 73 79 6d 73 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 2d 73 79 6d 73 0a 20 20 20 20 20 20 | .syms.(gptel--preset-syms....... |
| 54ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 67 | ........................(gptel-g |
| 54cc0 | 65 74 2d 70 72 65 73 65 74 20 70 61 72 65 6e 74 2d 70 72 65 73 65 74 29 29 29 29 0a 20 20 20 20 | et-preset.parent-preset))))..... |
| 54ce0 | 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 76 61 6c 29 29 29 0a 20 | ...........(ensure-list.val))).. |
| 54d00 | 20 20 20 20 20 20 20 28 3a 73 79 73 74 65 6d 20 28 70 75 73 68 20 27 67 70 74 65 6c 2d 2d 73 79 | .......(:system.(push.'gptel--sy |
| 54d20 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 6d 73 29 29 0a 20 20 20 20 20 20 20 20 28 5f 20 28 | stem-message.syms)).........(_.( |
| 54d40 | 69 66 2d 6c 65 74 2a 20 28 28 76 61 72 20 28 6f 72 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 | if-let*.((var.(or.(intern-soft.. |
| 54d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ..............................(c |
| 54d80 | 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 22 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f | oncat."gptel-".(substring.(symbo |
| 54da0 | 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-name.key).1)))................ |
| 54dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 20 20 20 | ...............(intern-soft..... |
| 54de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 | ...........................(conc |
| 54e00 | 61 74 20 22 67 70 74 65 6c 2d 2d 22 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d | at."gptel--".(substring.(symbol- |
| 54e20 | 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | name.key).1))))))............... |
| 54e40 | 20 28 70 75 73 68 20 76 61 72 20 73 79 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | .(push.var.syms)..............(d |
| 54e60 | 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 67 | isplay-warning...............'(g |
| 54e80 | 70 74 65 6c 20 70 72 65 73 65 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 | ptel.presets)...............(for |
| 54ea0 | 6d 61 74 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 5c 22 25 73 5c 22 3a 20 73 65 74 74 69 6e | mat."gptel.preset.\"%s\":.settin |
| 54ec0 | 67 20 66 6f 72 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 69 67 6e 6f 72 69 6e 67 2e 22 0a 20 | g.for.%s.not.found,.ignoring.".. |
| 54ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 70 72 65 73 65 74 | .....................(car.preset |
| 54f00 | 29 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 64 65 6c 65 74 65 2d 64 75 70 6c 69 | ).key)))))).....(cl-delete-dupli |
| 54f20 | 63 61 74 65 73 20 73 79 6d 73 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 77 | cates.syms)))..(defmacro.gptel-w |
| 54f40 | 69 74 68 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 20 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 | ith-preset.(name.&rest.body)..." |
| 54f60 | 52 75 6e 20 42 4f 44 59 20 77 69 74 68 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 4e 41 4d 45 20 | Run.BODY.with.gptel.preset.NAME. |
| 54f80 | 61 70 70 6c 69 65 64 2e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 63 61 6e 20 62 65 20 75 73 65 64 | applied...This.macro.can.be.used |
| 54fa0 | 20 74 6f 20 63 72 65 61 74 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 20 63 6f 6d 6d 61 | .to.create.`gptel-request'.comma |
| 54fc0 | 6e 64 20 77 69 74 68 20 73 65 74 74 69 6e 67 73 0a 66 72 6f 6d 20 61 20 67 70 74 65 6c 20 70 72 | nd.with.settings.from.a.gptel.pr |
| 54fe0 | 65 73 65 74 20 61 70 70 6c 69 65 64 2e 20 20 4e 41 4d 45 20 69 73 20 74 68 65 20 70 72 65 73 65 | eset.applied...NAME.is.the.prese |
| 55000 | 74 20 6e 61 6d 65 2c 20 74 79 70 69 63 61 6c 6c 79 20 61 0a 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 | t.name,.typically.a.symbol."...( |
| 55020 | 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 60 28 63 6c 2d 70 72 6f 67 76 | declare.(indent.1))...`(cl-progv |
| 55040 | 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 2d 73 79 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | .(gptel--preset-syms............ |
| 55060 | 20 20 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 2c 28 69 66 20 28 73 79 6d 62 6f | ...(gptel-get-preset.,(if.(symbo |
| 55080 | 6c 70 20 6e 61 6d 65 29 20 60 27 2c 6e 61 6d 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 | lp.name).`',name.name)))........ |
| 550a0 | 6e 69 6c 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 2c 28 | nil......(gptel--apply-preset.,( |
| 550c0 | 69 66 20 28 73 79 6d 62 6f 6c 70 20 6e 61 6d 65 29 20 60 27 2c 6e 61 6d 65 20 6e 61 6d 65 29 29 | if.(symbolp.name).`',name.name)) |
| 550e0 | 0a 20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 3b 3b 3b 3b 20 50 72 65 73 65 74 73 20 69 6e 2d | ......,@body))..;;;;.Presets.in- |
| 55100 | 62 75 66 66 65 72 20 55 49 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 | buffer.UI.(defun.gptel--transfor |
| 55120 | 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 28 5f 66 73 6d 29 0a 20 20 22 41 70 70 6c 79 20 61 | m-apply-preset.(_fsm)..."Apply.a |
| 55140 | 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 64 65 70 65 | .gptel.preset.to.the.buffer.depe |
| 55160 | 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 0a 0a 49 66 20 74 68 65 20 75 73 65 | nding.on.the.prompt...If.the.use |
| 55180 | 72 20 70 72 6f 6d 70 74 20 62 65 67 69 6e 73 20 77 69 74 68 20 40 66 6f 6f 2c 20 74 68 65 20 70 | r.prompt.begins.with.@foo,.the.p |
| 551a0 | 72 65 73 65 74 20 66 6f 6f 20 69 73 20 61 70 70 6c 69 65 64 2e 22 0a 20 20 28 77 68 65 6e 20 67 | reset.foo.is.applied."...(when.g |
| 551c0 | 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 0a 20 20 20 20 28 74 65 78 74 2d 70 72 | ptel--known-presets.....(text-pr |
| 551e0 | 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 6e 69 | operty-search-backward.'gptel.ni |
| 55200 | 6c 20 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 | l.t).....(while.(re-search-forwa |
| 55220 | 72 64 20 22 40 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 29 5c 5c 5f 3e 22 20 6e 69 | rd."@\\([^[:blank:]]+\\)\\_>".ni |
| 55240 | 6c 20 74 29 0a 20 20 20 20 20 20 3b 3b 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 76 | l.t).......;;.The.following.conv |
| 55260 | 6f 6c 75 74 65 64 20 63 68 65 63 6b 20 69 73 20 62 65 63 61 75 73 65 20 72 65 2d 73 65 61 72 63 | oluted.check.is.because.re-searc |
| 55280 | 68 20 69 73 20 6d 75 63 68 20 66 61 73 74 65 72 20 69 66 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 | h.is.much.faster.if.......;;.the |
| 552a0 | 20 73 65 61 72 63 68 20 70 61 74 74 65 72 6e 20 62 65 67 69 6e 73 20 77 69 74 68 20 61 20 6e 6f | .search.pattern.begins.with.a.no |
| 552c0 | 6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 68 61 72 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 | n-whitespace.char........(when.( |
| 552e0 | 6f 72 20 28 3d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 70 6f 69 6e 74 | or.(=.(match-beginning.0).(point |
| 55300 | 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 | -min)).................(memq.(ch |
| 55320 | 61 72 2d 73 79 6e 74 61 78 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 6d 61 74 63 68 2d 62 65 | ar-syntax.(char-before.(match-be |
| 55340 | 67 69 6e 6e 69 6e 67 20 30 29 29 29 20 27 28 33 32 20 36 32 29 29 29 0a 20 20 20 20 20 20 20 20 | ginning.0))).'(32.62)))......... |
| 55360 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 | (when-let*.((name.(match-string. |
| 55380 | 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 73 65 74 20 | 1)).....................(preset. |
| 553a0 | 28 6f 72 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 28 69 6e 74 65 72 6e 2d 73 6f | (or.(gptel-get-preset.(intern-so |
| 553c0 | 66 74 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ft.name))....................... |
| 553e0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 6e 61 6d 65 | ..........(gptel-get-preset.name |
| 55400 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d | ))))...........(delete-region.(m |
| 55420 | 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 | atch-beginning.0).(match-end.0)) |
| 55440 | 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 | ...........(gptel--apply-preset. |
| 55460 | 28 63 6f 6e 73 20 6e 61 6d 65 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cons.name.preset).............. |
| 55480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 | ..................(lambda.(sym.v |
| 554a0 | 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | al)............................. |
| 554c0 | 20 20 20 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 | .....(set.(make-local-variable.s |
| 554e0 | 79 6d 29 20 76 61 6c 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 3b 3b 20 41 6c 74 65 72 6e 61 74 69 | ym).val))))))))..;;.;;.Alternati |
| 55500 | 76 65 20 61 70 70 72 6f 61 63 68 20 77 69 74 68 20 73 74 72 69 6e 67 20 73 65 61 72 63 68 0a 3b | ve.approach.with.string.search.; |
| 55520 | 3b 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 22 20 6e 69 6c 20 74 29 0a 3b 3b 20 | ;.(search-forward."@".nil.t).;;. |
| 55540 | 28 69 66 20 28 61 6e 64 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 73 79 6e 74 61 78 20 28 63 68 61 | (if.(and.(memq.(char-syntax.(cha |
| 55560 | 72 2d 62 65 66 6f 72 65 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 20 27 28 33 32 20 36 32 29 | r-before.(1-.(point)))).'(32.62) |
| 55580 | 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 5b 5e | ).;;..........(looking-at."\\([^ |
| 555a0 | 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 3f 5c 5c 29 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 3f 5c 5c 73 2d 2b | [:blank:]]+?\\)[[:punct:]]?\\s-+ |
| 555c0 | 22 29 29 0a 3b 3b 20 20 20 20 20 64 6f 2d 73 74 75 66 66 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | ")).;;.....do-stuff)..(defun.gpt |
| 555e0 | 65 6c 2d 2d 66 6f 6e 74 69 66 79 2d 70 72 65 73 65 74 2d 6b 65 79 77 6f 72 64 20 28 65 6e 64 29 | el--fontify-preset-keyword.(end) |
| 55600 | 0a 20 20 22 46 6f 6e 74 2d 6c 6f 63 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 70 72 65 73 65 | ..."Font-lock.function.for.prese |
| 55620 | 74 20 69 6e 64 69 63 61 74 6f 72 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 52 | t.indicators.in.chat.buffers...R |
| 55640 | 65 74 75 72 6e 20 70 72 65 73 65 74 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 69 6e 66 6f 20 | eturn.preset.fontification.info. |
| 55660 | 66 6f 72 20 74 65 78 74 20 75 70 20 74 6f 20 45 4e 44 2e 22 0a 20 20 28 61 6e 64 20 28 72 65 2d | for.text.up.to.END."...(and.(re- |
| 55680 | 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5d | search-forward."@\\([^[:blank:]] |
| 556a0 | 2b 5c 5c 29 5c 5c 5f 3e 22 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 28 | +\\)\\_>".end.t)........(or.(=.( |
| 556c0 | 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a | match-beginning.0).(point-min)). |
| 556e0 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 73 79 6e 74 61 78 20 28 63 | ...........(memq.(char-syntax.(c |
| 55700 | 68 61 72 2d 62 65 66 6f 72 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 | har-before.(match-beginning.0))) |
| 55720 | 20 27 28 33 32 20 36 32 29 29 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 | .'(32.62)))........(not.(plist-g |
| 55740 | 65 74 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 2d 61 74 20 28 6d 61 74 63 68 2d 62 65 | et.(text-properties-at.(match-be |
| 55760 | 67 69 6e 6e 69 6e 67 20 31 29 29 20 27 67 70 74 65 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 | ginning.1)).'gptel))))..(defun.g |
| 55780 | 70 74 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 28 29 0a 20 20 22 43 6f 6d 70 6c 65 74 69 6f | ptel-preset-capf.()..."Completio |
| 557a0 | 6e 20 61 74 20 70 6f 69 6e 74 20 66 6f 72 20 67 70 74 65 6c 20 70 72 65 73 65 74 73 20 69 6e 20 | n.at.point.for.gptel.presets.in. |
| 557c0 | 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 0a 0a 41 64 64 20 74 68 69 73 20 74 6f 20 60 63 6f 6d 70 | `gptel-mode'...Add.this.to.`comp |
| 557e0 | 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 | letion-at-point-functions'."...( |
| 55800 | 61 6e 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 0a 20 20 20 20 20 20 20 | and.gptel--known-presets........ |
| 55820 | 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | (save-excursion..........(let.(( |
| 55840 | 6e 75 6d 20 28 2d 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 62 61 63 6b 77 61 72 64 20 22 77 5f | num.(-.(skip-syntax-backward."w_ |
| 55860 | 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 6c 20 28 63 68 61 | "))))............(when.(eql.(cha |
| 55880 | 72 2d 62 65 66 6f 72 65 29 20 3f 40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | r-before).?@)..............(list |
| 558a0 | 20 28 70 6f 69 6e 74 29 20 28 2b 20 28 70 6f 69 6e 74 29 20 6e 75 6d 29 0a 20 20 20 20 20 20 20 | .(point).(+.(point).num)........ |
| 558c0 | 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 | ............gptel--known-presets |
| 558e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 63 6c 75 73 69 76 65 20 27 | ....................:exclusive.' |
| 55900 | 6e 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 6e 6e 6f 74 61 74 69 6f | no....................:annotatio |
| 55920 | 6e 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 | n-function....................#' |
| 55940 | 28 6c 61 6d 62 64 61 20 28 63 29 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 | (lambda.(c).(thread-first....... |
| 55960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d | ........................(intern- |
| 55980 | 73 6f 66 74 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | soft.c)......................... |
| 559a0 | 20 20 20 20 20 20 28 61 73 73 71 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 | ......(assq.gptel--known-presets |
| 559c0 | 29 20 28 63 64 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).(cdr)......................... |
| 559e0 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 | ......(plist-get.:description))) |
| 55a00 | 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 74 74 69 66 79 2d 70 | ))))))..(defun.gptel--prettify-p |
| 55a20 | 72 65 73 65 74 20 28 29 0a 20 20 22 47 65 74 20 76 69 73 75 61 6c 20 61 6e 64 20 63 6f 6d 70 6c | reset.()..."Get.visual.and.compl |
| 55a40 | 65 74 69 6f 6e 20 68 65 6c 70 20 77 69 74 68 20 70 72 65 73 65 74 73 20 69 6e 20 67 70 74 65 6c | etion.help.with.presets.in.gptel |
| 55a60 | 20 62 75 66 66 65 72 73 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 64 64 65 64 20 | .buffers...Intended.to.be.added. |
| 55a80 | 74 6f 20 60 67 70 74 65 6c 2d 6d 6f 64 65 2d 68 6f 6f 6b 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 | to.`gptel-mode-hook'."...(let.(( |
| 55aa0 | 6b 65 79 77 6f 72 64 20 27 28 28 67 70 74 65 6c 2d 2d 66 6f 6e 74 69 66 79 2d 70 72 65 73 65 74 | keyword.'((gptel--fontify-preset |
| 55ac0 | 2d 6b 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | -keyword.....................;;. |
| 55ae0 | 73 75 62 65 78 70 20 30 20 68 65 72 65 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 2c 20 77 | subexp.0.here.is.not.required,.w |
| 55b00 | 65 20 72 65 74 61 69 6e 20 69 74 20 74 6f 20 6d 61 6b 65 20 69 74 0a 20 20 20 20 20 20 20 20 20 | e.retain.it.to.make.it.......... |
| 55b20 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 61 73 79 20 74 6f 20 73 77 74 69 63 68 20 74 6f 20 | ...........;;.easy.to.swtich.to. |
| 55b40 | 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 70 61 74 74 65 72 6e 73 20 69 6e 20 74 68 65 20 66 75 74 | more.complex.patterns.in.the.fut |
| 55b60 | 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 77 68 65 6e 2d | ure.....................0.(when- |
| 55b80 | 6c 65 74 2a 20 28 28 63 6f 6d 70 73 20 28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 6d | let*.((comps.(all-completions.(m |
| 55ba0 | 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | atch-string.1).................. |
| 55bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d | .........................gptel-- |
| 55be0 | 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | known-presets))................. |
| 55c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 28 6d 61 74 63 | ..................((member.(matc |
| 55c20 | 68 2d 73 74 72 69 6e 67 20 31 29 20 63 6f 6d 70 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | h-string.1).comps)))............ |
| 55c40 | 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 62 6f 78 20 2d 31 20 3a 69 6e 68 65 72 69 74 20 73 | ............'(:box.-1.:inherit.s |
| 55c60 | 65 63 6f 6e 64 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | econdary-selection))............ |
| 55c80 | 20 20 20 20 20 20 20 20 20 70 72 65 70 65 6e 64 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 | .........prepend)))).....(cond.. |
| 55ca0 | 20 20 20 20 28 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b | ....(gptel-mode.......(font-lock |
| 55cc0 | 2d 61 64 64 2d 6b 65 79 77 6f 72 64 73 20 6e 69 6c 20 6b 65 79 77 6f 72 64 20 74 29 0a 20 20 20 | -add-keywords.nil.keyword.t).... |
| 55ce0 | 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e | ...(add-hook.'completion-at-poin |
| 55d00 | 74 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 | t-functions.#'gptel-preset-capf. |
| 55d20 | 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 28 74 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 72 65 6d 6f 76 | nil.t))......(t.(font-lock-remov |
| 55d40 | 65 2d 6b 65 79 77 6f 72 64 73 20 6e 69 6c 20 6b 65 79 77 6f 72 64 29 0a 20 20 20 20 20 20 20 20 | e-keywords.nil.keyword)......... |
| 55d60 | 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e | (remove-hook.'completion-at-poin |
| 55d80 | 74 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 | t-functions.#'gptel-preset-capf. |
| 55da0 | 74 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 73 70 6f 6e 73 65 20 74 77 65 61 6b 69 6e 67 20 | t)))))....;;;.Response.tweaking. |
| 55dc0 | 63 6f 6d 6d 61 6e 64 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 | commands..(defun.gptel--attach-r |
| 55de0 | 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 28 68 69 73 74 6f 72 79 20 26 6f 70 74 69 6f 6e | esponse-history.(history.&option |
| 55e00 | 61 6c 20 62 75 66 29 0a 20 20 22 41 74 74 61 63 68 20 48 49 53 54 4f 52 59 20 74 6f 20 74 68 65 | al.buf)..."Attach.HISTORY.to.the |
| 55e20 | 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 62 75 66 66 65 72 20 42 | .next.gptel.response.in.buffer.B |
| 55e40 | 55 46 2e 0a 0a 48 49 53 54 4f 52 59 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 | UF...HISTORY.is.a.list.of.string |
| 55e60 | 73 20 74 79 70 69 63 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 65 78 74 20 72 65 70 6c | s.typically.containing.text.repl |
| 55e80 | 61 63 65 64 0a 62 79 20 67 70 74 65 6c 2e 20 20 42 55 46 20 69 73 20 74 68 65 20 63 75 72 72 65 | aced.by.gptel...BUF.is.the.curre |
| 55ea0 | 6e 74 20 62 75 66 66 65 72 20 69 66 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 | nt.buffer.if.not.specified...Thi |
| 55ec0 | 73 20 69 73 20 75 73 65 64 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 76 61 72 69 61 6e 74 73 20 6f | s.is.used.to.maintain.variants.o |
| 55ee0 | 66 20 70 72 6f 6d 70 74 73 20 6f 72 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 64 69 66 66 0a 61 | f.prompts.or.responses.to.diff.a |
| 55f00 | 67 61 69 6e 73 74 20 69 66 20 72 65 71 75 69 72 65 64 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 | gainst.if.required."...(with-cur |
| 55f20 | 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | rent-buffer.(or.buf.(current-buf |
| 55f40 | 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 | fer)).....(letrec.((gptel--attac |
| 55f60 | 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 | h-after...............(lambda.(b |
| 55f80 | 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 | .e).................(when.(and.b |
| 55fa0 | 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d | .e)...................(add-text- |
| 55fc0 | 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 20 | properties....................b. |
| 55fe0 | 65 20 60 28 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.`(gptel-history............... |
| 56000 | 20 20 20 20 20 20 20 20 20 20 20 2c 28 61 70 70 65 6e 64 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 | ...........,(append.(ensure-list |
| 56020 | 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .history)....................... |
| 56040 | 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 65 29 20 27 | .....(get-char-property.(1-.e).' |
| 56060 | 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-history))................. |
| 56080 | 20 20 20 20 20 20 20 20 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 20 67 70 74 | .........front-sticky.(gptel.gpt |
| 560a0 | 65 6c 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | el-history)))).................( |
| 560c0 | 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 | remove-hook.'gptel-post-response |
| 560e0 | 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -functions...................... |
| 56100 | 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 20 27 6c 6f 63 | ........gptel--attach-after.'loc |
| 56120 | 61 6c 29 29 29 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f | al)))).......(add-hook.'gptel-po |
| 56140 | 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 67 70 74 65 6c 2d 2d 61 74 74 | st-response-functions.gptel--att |
| 56160 | 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6c | ach-after.................nil.'l |
| 56180 | 6f 63 61 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 20 28 26 | ocal))))..(defun.gptel--ediff.(& |
| 561a0 | 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 62 6f 75 6e 64 73 2d 66 75 6e 63 29 0a 20 20 22 45 64 69 | optional.arg.bounds-func)..."Edi |
| 561c0 | 66 66 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 20 70 72 65 | ff.response.at.point.against.pre |
| 561e0 | 76 69 6f 75 73 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 49 66 20 70 72 65 66 69 | vious.gptel.responses...If.prefi |
| 56200 | 78 20 41 52 47 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 65 6c 65 63 74 20 74 68 65 20 70 72 65 | x.ARG.is.non-nil,.select.the.pre |
| 56220 | 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 65 64 69 66 66 0a 61 67 61 69 6e 73 74 20 | vious.response.to.ediff.against. |
| 56240 | 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 0a 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 | interactively...If.specified,.us |
| 56260 | 65 20 42 4f 55 4e 44 53 2d 46 55 4e 43 20 74 6f 20 63 6f 6d 70 75 74 65 20 74 68 65 20 62 6f 75 | e.BOUNDS-FUNC.to.compute.the.bou |
| 56280 | 6e 64 73 20 6f 66 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 | nds.of.the.response.at.point...T |
| 562a0 | 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 61 64 64 69 74 | his.can.be.used.to.include.addit |
| 562c0 | 69 6f 6e 61 6c 0a 63 6f 6e 74 65 78 74 20 66 6f 72 20 74 68 65 20 65 64 69 66 66 20 73 65 73 73 | ional.context.for.the.ediff.sess |
| 562e0 | 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 77 68 65 | ion."...(interactive."P")...(whe |
| 56300 | 6e 20 28 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 29 | n.(gptel--at-response-history-p) |
| 56320 | 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 | .....(pcase-let*.((`(,beg...,end |
| 56340 | 29 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 20 62 6f 75 6e 64 73 2d 66 75 6e 63 20 23 27 67 70 74 | ).(funcall.(or.bounds-func.#'gpt |
| 56360 | 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 | el--get-response-bounds)))...... |
| 56380 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 | ............(prev-response...... |
| 563a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 | .............(if.arg............ |
| 563c0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 43 68 6f | ...........(completing-read."Cho |
| 563e0 | 6f 73 65 20 72 65 73 70 6f 6e 73 65 20 76 61 72 69 61 6e 74 20 74 6f 20 64 69 66 66 20 61 67 61 | ose.response.variant.to.diff.aga |
| 56400 | 69 6e 73 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inst:."......................... |
| 56420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 | ...............(get-char-propert |
| 56440 | 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 | y.(point).'gptel-history)....... |
| 56460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 56480 | 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 | .nil.t).....................(car |
| 564a0 | 2d 73 61 66 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 | -safe.(get-char-property.(point) |
| 564c0 | 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .'gptel-history))))............. |
| 564e0 | 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 | .....(buffer-mode.major-mode)... |
| 56500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 6e 61 6d 65 20 28 62 75 66 66 65 72 2d | ...............(bufname.(buffer- |
| 56520 | 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 6e 65 77 2d | name))..................(`(,new- |
| 56540 | 62 75 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e 65 77 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 | buf.,new-beg.,new-end).......... |
| 56560 | 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 | .........(with-current-buffer... |
| 56580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d | ....................(get-buffer- |
| 565a0 | 63 72 65 61 74 65 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 | create.(concat.bufname."-PREVIOU |
| 565c0 | 53 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 | S-*")).....................(let. |
| 565e0 | 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 | ((inhibit-read-only.t))......... |
| 56600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 | ..............(erase-buffer).... |
| 56620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 | ...................(delay-mode-h |
| 56640 | 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 62 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 | ooks.(funcall.buffer-mode))..... |
| 56660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d | ..................(visual-line-m |
| 56680 | 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 | ode).......................(inse |
| 566a0 | 72 74 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rt.prev-response)............... |
| 566c0 | 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a | ........(goto-char.(point-min)). |
| 566e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 75 72 | ......................(list.(cur |
| 56700 | 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d | rent-buffer).(point-min).(point- |
| 56720 | 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 72 65 76 2d 72 65 73 | max)))))).......(unless.prev-res |
| 56740 | 70 6f 6e 73 65 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 | ponse.(user-error."gptel.respons |
| 56760 | 65 20 69 73 20 61 64 64 69 74 69 76 65 3a 20 6e 6f 20 63 68 61 6e 67 65 73 20 74 6f 20 65 64 69 | e.is.additive:.no.changes.to.edi |
| 56780 | 66 66 22 29 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 64 69 66 66 29 0a 20 20 20 | ff")).......(require.'ediff).... |
| 567a0 | 20 20 20 28 6c 65 74 72 65 63 20 28 28 63 77 63 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 | ...(letrec.((cwc.(current-window |
| 567c0 | 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -configuration))................ |
| 567e0 | 28 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 | (gptel--ediff-restore........... |
| 56800 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(lambda.()................ |
| 56820 | 20 20 20 28 77 68 65 6e 20 28 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 | ...(when.(window-configuration-p |
| 56840 | 20 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 | .cwc).....................(set-w |
| 56860 | 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 77 63 29 29 0a 20 20 20 20 20 20 | indow-configuration.cwc))....... |
| 56880 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 | ............(kill-buffer.(get-bu |
| 568a0 | 66 66 65 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 53 2d | ffer.(concat.bufname."-PREVIOUS- |
| 568c0 | 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 | *")))...................(kill-bu |
| 568e0 | 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 | ffer.(get-buffer.(concat.bufname |
| 56900 | 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."-CURRENT-*")))................ |
| 56920 | 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b | ...(remove-hook.'ediff-quit-hook |
| 56940 | 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 | .gptel--ediff-restore))))....... |
| 56960 | 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 | ..(add-hook.'ediff-quit-hook.gpt |
| 56980 | 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c | el--ediff-restore).........(appl |
| 569a0 | 79 0a 20 20 20 20 20 20 20 20 20 23 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 | y..........#'ediff-regions-inter |
| 569c0 | 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 65 64 69 66 66 2d | nal..........(get-buffer.(ediff- |
| 569e0 | 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 | make-cloned-buffer.(current-buff |
| 56a00 | 65 72 29 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 62 65 67 20 | er)."-CURRENT-*"))..........beg. |
| 56a20 | 65 6e 64 20 6e 65 77 2d 62 75 66 20 6e 65 77 2d 62 65 67 20 6e 65 77 2d 65 6e 64 0a 20 20 20 20 | end.new-buf.new-beg.new-end..... |
| 56a40 | 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 | .....nil..........(list.'ediff-r |
| 56a60 | 65 67 69 6f 6e 73 2d 77 6f 72 64 77 69 73 65 20 27 77 6f 72 64 2d 77 69 73 65 20 6e 69 6c 29 0a | egions-wordwise.'word-wise.nil). |
| 56a80 | 20 20 20 20 20 20 20 20 20 3b 3b 20 28 69 66 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 2d 76 | .........;;.(if.(transient-arg-v |
| 56aa0 | 61 6c 75 65 20 22 2d 77 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 20 | alue."-w".args)..........;;..... |
| 56ac0 | 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 77 6f 72 64 77 69 73 65 20 27 77 | (list.'ediff-regions-wordwise.'w |
| 56ae0 | 6f 72 64 2d 77 69 73 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 28 6c 69 73 | ord-wise.nil)..........;;...(lis |
| 56b00 | 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 6c 69 6e 65 77 69 73 65 20 6e 69 6c 20 6e 69 | t.'ediff-regions-linewise.nil.ni |
| 56b20 | 6c 29 29 0a 20 20 20 20 20 20 20 20 20 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | l))..........)))))..(defun.gptel |
| 56b40 | 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a 20 20 22 4d 61 72 6b 20 67 70 74 65 6c | --mark-response.()..."Mark.gptel |
| 56b60 | 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 | .response.at.point,.if.any."...( |
| 56b80 | 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d 2d 69 | interactive)...(unless.(gptel--i |
| 56ba0 | 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 67 70 | n-response-p).(user-error."No.gp |
| 56bc0 | 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 29 0a 20 20 28 70 63 61 73 | tel.response.at.point"))...(pcas |
| 56be0 | 65 2d 6c 65 74 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 67 70 74 65 6c 2d 2d 67 | e-let.((`(,beg...,end).(gptel--g |
| 56c00 | 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d | et-response-bounds))).....(goto- |
| 56c20 | 63 68 61 72 20 62 65 67 29 20 28 70 75 73 68 2d 6d 61 72 6b 29 20 28 67 6f 74 6f 2d 63 68 61 72 | char.beg).(push-mark).(goto-char |
| 56c40 | 20 65 6e 64 29 20 28 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 | .end).(activate-mark)))..(defun. |
| 56c60 | 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f 6e | gptel--previous-variant.(&option |
| 56c80 | 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 70 | al.arg)..."Switch.to.previous.gp |
| 56ca0 | 74 65 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 20 69 | tel-response.at.this.point,.if.i |
| 56cc0 | 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 | t.exists."...(interactive."p").. |
| 56ce0 | 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 67 | .(pcase-let*.((`(,beg...,end).(g |
| 56d00 | 70 74 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 | ptel--get-response-bounds))..... |
| 56d20 | 20 20 20 20 20 20 20 20 20 20 20 28 68 69 73 74 6f 72 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 | ...........(history.(get-char-pr |
| 56d40 | 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a | operty.(point).'gptel-history)). |
| 56d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 | ...............(alt-response.(ca |
| 56d80 | 72 2d 73 61 66 65 20 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-safe.history))................ |
| 56da0 | 28 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 68 69 73 74 6f | (offset)).....(unless.(and.histo |
| 56dc0 | 72 79 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 | ry.alt-response).......(user-err |
| 56de0 | 6f 72 20 22 4e 6f 20 76 61 72 69 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 20 61 76 61 69 6c 61 62 | or."No.variant.responses.availab |
| 56e00 | 6c 65 22 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 | le")).....(if.(>.arg.0)......... |
| 56e20 | 28 73 65 74 71 20 68 69 73 74 6f 72 79 20 28 61 70 70 65 6e 64 20 28 63 64 72 20 68 69 73 74 6f | (setq.history.(append.(cdr.histo |
| 56e40 | 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ry)............................. |
| 56e60 | 20 20 28 6c 69 73 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f | ..(list.(buffer-substring-no-pro |
| 56e80 | 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 0a | perties.beg.end)))).......(setq. |
| 56ea0 | 20 20 20 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 20 28 6c 61 73 74 20 68 | .......alt-response.(car.(last.h |
| 56ec0 | 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 20 28 63 6f 6e 73 20 28 62 | istory))........history.(cons.(b |
| 56ee0 | 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 | uffer-substring-no-properties.be |
| 56f00 | 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 62 75 | g.end)......................(nbu |
| 56f20 | 74 6c 61 73 74 20 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d | tlast.history)))).....(add-text- |
| 56f40 | 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 | properties..............0.(lengt |
| 56f60 | 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 67 | h.alt-response)..............`(g |
| 56f80 | 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 20 2c 68 69 73 | ptel.response.gptel-history.,his |
| 56fa0 | 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 | tory)..............alt-response) |
| 56fc0 | 0a 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 6d 69 6e 20 28 2d 20 28 70 6f 69 6e 74 | .....(setq.offset.(min.(-.(point |
| 56fe0 | 29 20 62 65 67 29 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 | ).beg).(1-.(length.alt-response) |
| 57000 | 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a | ))).....(delete-region.beg.end). |
| 57020 | 20 20 20 20 28 69 6e 73 65 72 74 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 67 | ....(insert.alt-response).....(g |
| 57040 | 6f 74 6f 2d 63 68 61 72 20 28 2b 20 62 65 67 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 70 75 | oto-char.(+.beg.offset)).....(pu |
| 57060 | 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 62 | lse-momentary-highlight-region.b |
| 57080 | 65 67 20 28 2b 20 62 65 67 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 | eg.(+.beg.(length.alt-response)) |
| 570a0 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6e 65 78 74 2d 76 61 72 69 61 6e 74 20 | )))..(defun.gptel--next-variant. |
| 570c0 | 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6e 65 78 | (&optional.arg)..."Switch.to.nex |
| 570e0 | 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 | t.gptel-response.at.this.point,. |
| 57100 | 69 66 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 | if.it.exists."...(interactive."p |
| 57120 | 22 29 0a 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 2d | ")...(gptel--previous-variant.(- |
| 57140 | 20 61 72 67 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 29 0a 3b 3b 3b 20 67 70 | .arg)))..(provide.'gptel).;;;.gp |
| 57160 | 74 65 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 | tel.el.ends.here..;;.Local.Varia |
| 57180 | 62 6c 65 73 3a 0a 3b 3b 20 62 75 67 2d 72 65 66 65 72 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 | bles:.;;.bug-reference-url-forma |
| 571a0 | 74 3a 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f | t:."https://github.com/karthink/ |
| 571c0 | 67 70 74 65 6c 2f 69 73 73 75 65 73 2f 25 73 22 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 | gptel/issues/%s".;;.End:........ |
| 571e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57200 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2e 65 6c | gptel-0.9.8.5/gptel-anthropic.el |
| 57220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 57280 | 30 30 37 33 36 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 31 32 00 20 30 00 00 00 | 0073667.00000000000.015112..0... |
| 572a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 572c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 572e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 57320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 57340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 573a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 573c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 573e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 57400 | 3b 3b 3b 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2e 65 6c 20 2d 2d 2d 20 20 41 6e 74 68 | ;;;.gptel-anthropic.el.---..Anth |
| 57420 | 72 6f 70 69 63 20 41 49 20 73 75 70 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d | ropic.AI.suppport.for.gptel..-*- |
| 57440 | 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 | .lexical-binding:.t;.-*-..;;.Cop |
| 57460 | 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 | yright.(C).2023-2025..Karthik.Ch |
| 57480 | 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 | ikmagalur..;;.Author:.Karthik.Ch |
| 574a0 | 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d | ikmagalur.<karthikchikmagalur@gm |
| 574c0 | 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 | ail.com>..;;.This.program.is.fre |
| 574e0 | 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 | e.software;.you.can.redistribute |
| 57500 | 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 | .it.and/or.modify.;;.it.under.th |
| 57520 | 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 | e.terms.of.the.GNU.General.Publi |
| 57540 | 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 | c.License.as.published.by.;;.the |
| 57560 | 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 | .Free.Software.Foundation,.eithe |
| 57580 | 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b | r.version.3.of.the.License,.or.; |
| 575a0 | 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 | ;.(at.your.option).any.later.ver |
| 575c0 | 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 | sion...;;.This.program.is.distri |
| 575e0 | 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 | buted.in.the.hope.that.it.will.b |
| 57600 | 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 | e.useful,.;;.but.WITHOUT.ANY.WAR |
| 57620 | 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 | RANTY;.without.even.the.implied. |
| 57640 | 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f | warranty.of.;;.MERCHANTABILITY.o |
| 57660 | 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f | r.FITNESS.FOR.A.PARTICULAR.PURPO |
| 57680 | 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | SE...See.the.;;.GNU.General.Publ |
| 576a0 | 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b | ic.License.for.more.details...;; |
| 576c0 | 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 | .You.should.have.received.a.copy |
| 576e0 | 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .of.the.GNU.General.Public.Licen |
| 57700 | 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 | se.;;.along.with.this.program... |
| 57720 | 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 | If.not,.see.<https://www.gnu.org |
| 57740 | 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b | /licenses/>...;;;.Commentary:..; |
| 57760 | 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 6e 74 | ;.This.file.adds.support.for.Ant |
| 57780 | 68 72 6f 70 69 63 27 73 20 4d 65 73 73 61 67 65 73 20 41 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a | hropic's.Messages.API.to.gptel.. |
| 577a0 | 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a | ;;;.Code:.(require.'cl-generic). |
| 577c0 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 | (require.'cl-lib).(require.'map) |
| 577e0 | 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d | .(require.'gptel)..(defvar.json- |
| 57800 | 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | object-type)..(declare-function. |
| 57820 | 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d | prop-match-value."text-property- |
| 57840 | 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 2d | search").(declare-function.text- |
| 57860 | 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d 70 | property-search-backward."text-p |
| 57880 | 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | roperty-search").(declare-functi |
| 578a0 | 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a 28 64 65 63 6c 61 72 65 | on.json-read."json".()).(declare |
| 578c0 | 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 | -function.gptel-context--wrap."g |
| 578e0 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ptel-context").(declare-function |
| 57900 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 20 22 67 | .gptel-context--collect-media."g |
| 57920 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 3b 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 28 4d | ptel-context")..;;;.Anthropic.(M |
| 57940 | 65 73 73 61 67 65 73 20 41 50 49 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 | essages.API).(cl-defstruct.(gpte |
| 57960 | 6c 2d 61 6e 74 68 72 6f 70 69 63 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d | l-anthropic.(:constructor.gptel- |
| 57980 | 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -make-anthropic)................ |
| 579a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 | ................(:copier.nil)... |
| 579c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 | .............................(:i |
| 579e0 | 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 | nclude.gptel-backend)))..;;.NOTE |
| 57a00 | 20 74 68 65 20 63 72 75 63 69 61 6c 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 0a | .the.crucial.difference.between. |
| 57a20 | 3b 3b 20 2d 20 28 70 75 73 68 20 76 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | ;;.-.(push.val.(plist-get.info.: |
| 57a40 | 6b 65 79 29 29 20 61 6e 64 0a 3b 3b 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 70 6c 69 73 74 | key)).and.;;...(plist-put.(plist |
| 57a60 | 2d 67 65 74 20 69 6e 66 6f 20 3a 6b 65 79 29 20 28 63 6f 6e 73 20 76 61 6c 20 2e 2e 2e 29 29 0a | -get.info.:key).(cons.val....)). |
| 57a80 | 3b 3b 0a 3b 3b 20 2d 20 28 73 65 74 66 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6b | ;;.;;.-.(setf.(plist-get.info.:k |
| 57aa0 | 65 79 29 20 76 61 6c 29 20 61 6e 64 0a 3b 3b 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | ey).val).and.;;...(plist-put.inf |
| 57ac0 | 6f 20 3a 6b 65 79 20 76 61 6c 29 0a 3b 3b 0a 3b 3b 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 | o.:key.val).;;.;;.in.the.followi |
| 57ae0 | 6e 67 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 65 20 66 69 72 73 74 20 76 61 72 69 61 6e 74 20 | ng.function...The.first.variant. |
| 57b00 | 63 6f 6e 73 65 73 20 61 74 20 74 68 65 20 68 65 61 64 20 6f 66 20 69 6e 66 6f 2c 20 74 68 65 0a | conses.at.the.head.of.info,.the. |
| 57b20 | 3b 3b 20 73 65 63 6f 6e 64 20 6f 6e 65 20 61 74 20 74 68 65 20 74 61 69 6c 2e 20 20 54 68 69 73 | ;;.second.one.at.the.tail...This |
| 57b40 | 20 6d 65 61 6e 73 20 6f 6e 6c 79 20 74 68 65 20 73 65 63 6f 6e 64 20 6f 70 74 69 6f 6e 20 69 73 | .means.only.the.second.option.is |
| 57b60 | 20 76 69 61 62 6c 65 20 66 6f 72 0a 3b 3b 20 6d 75 74 61 74 69 6e 67 20 61 20 70 6c 69 73 74 20 | .viable.for.;;.mutating.a.plist. |
| 57b80 | 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 20 74 68 61 74 27 73 20 70 61 73 73 65 64 20 | function.argument.that's.passed. |
| 57ba0 | 62 79 20 72 65 66 65 72 65 6e 63 65 2e 0a 3b 3b 20 44 6f 20 4e 4f 54 20 63 68 61 6e 67 65 20 74 | by.reference..;;.Do.NOT.change.t |
| 57bc0 | 68 65 20 70 6c 69 73 74 2d 70 75 74 20 74 6f 20 70 75 73 68 20 6f 72 20 73 65 74 66 21 0a 0a 3b | he.plist-put.to.push.or.setf!..; |
| 57be0 | 3b 20 4e 4f 54 45 3a 20 54 68 65 20 73 74 72 65 61 6d 20 70 61 72 73 65 72 20 6c 6f 6f 6b 73 20 | ;.NOTE:.The.stream.parser.looks. |
| 57c00 | 63 6f 6d 70 6c 69 63 61 74 65 64 20 6f 6e 6c 79 20 62 65 63 61 75 73 65 20 69 74 20 68 61 6e 64 | complicated.only.because.it.hand |
| 57c20 | 6c 65 73 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 74 6f 6f 6c 20 63 61 6c 6c 73 2c 20 73 74 72 | les.streaming.;;.tool.calls,.str |
| 57c40 | 65 61 6d 69 6e 67 20 22 74 68 69 6e 6b 69 6e 67 22 20 62 6c 6f 63 6b 73 20 61 6e 64 20 74 68 65 | eaming."thinking".blocks.and.the |
| 57c60 | 69 72 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 2e 20 20 53 74 72 65 61 6d 0a 3b 3b 20 70 61 72 73 | ir.interactions...Stream.;;.pars |
| 57c80 | 69 6e 67 20 69 73 20 73 69 6d 70 6c 65 3a 20 69 66 20 79 6f 75 20 61 72 65 20 73 74 75 64 79 69 | ing.is.simple:.if.you.are.studyi |
| 57ca0 | 6e 67 20 74 68 69 73 20 63 6f 64 65 2c 20 6c 6f 6f 6b 20 69 6e 73 74 65 61 64 20 61 74 20 61 20 | ng.this.code,.look.instead.at.a. |
| 57cc0 | 63 6f 6d 6d 69 74 0a 3b 3b 20 66 72 6f 6d 20 62 65 66 6f 72 65 20 74 6f 6f 6c 2d 75 73 65 20 73 | commit.;;.from.before.tool-use.s |
| 57ce0 | 75 70 70 6f 72 74 20 77 61 73 20 61 64 64 65 64 20 74 6f 20 67 70 74 65 6c 2e 0a 28 63 6c 2d 64 | upport.was.added.to.gptel..(cl-d |
| 57d00 | 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 | efmethod.gptel-curl--parse-strea |
| 57d20 | 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 69 6e | m.((_backend.gptel-anthropic).in |
| 57d40 | 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 41 6e 74 68 72 6f 70 69 63 20 64 61 74 61 20 73 | fo)..."Parse.an.Anthropic.data.s |
| 57d60 | 74 72 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 72 65 73 70 6f 6e 73 65 | tream...Return.the.text.response |
| 57d80 | 20 61 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c | .accumulated.since.the.last.call |
| 57da0 | 20 74 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 | .to.this.function...Additionally |
| 57dc0 | 2c 20 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 74 6f 6f 6c 2d | ,.mutate.state.INFO.to.add.tool- |
| 57de0 | 75 73 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 73 74 72 65 61 6d 20 63 6f | use.information.if.the.stream.co |
| 57e00 | 6e 74 61 69 6e 73 20 69 74 2e 20 20 4e 6f 74 20 6d 79 20 62 65 73 74 20 77 6f 72 6b 2c 20 49 20 | ntains.it...Not.my.best.work,.I. |
| 57e20 | 6b 6e 6f 77 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 | know."...(let*.((content-strs).. |
| 57e40 | 20 20 20 20 20 20 20 20 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 | ........(pt.(point))).....(condi |
| 57e60 | 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 | tion-case.nil.........(while.(re |
| 57e80 | 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 65 76 65 6e 74 3a 20 22 20 6e 69 6c 20 74 | -search-forward."^event:.".nil.t |
| 57ea0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 | )...........(setq.pt.(match-begi |
| 57ec0 | 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 | nning.0))...........(if.(equal.( |
| 57ee0 | 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a | line-end-position).(point-max)). |
| 57f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 44 61 74 61 20 62 6c 6f 63 6b | ..............(error."Data.block |
| 57f20 | 20 69 6e 63 6f 6d 70 6c 65 74 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 | .incomplete"))...........(cond.. |
| 57f40 | 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f | ..........((looking-at."content_ |
| 57f60 | 62 6c 6f 63 6b 5f 64 65 6c 74 61 22 29 20 3b 63 6f 6c 6c 65 63 74 20 69 6e 63 72 65 6d 65 6e 74 | block_delta").;collect.increment |
| 57f80 | 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 | al.............(forward-line.1). |
| 57fa0 | 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 20 20 3b 74 65 78 74 2c 20 74 6f 6f 6c 20 6f 72 | (forward-char.5)..;text,.tool.or |
| 57fc0 | 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | .thinking.block.............(whe |
| 57fe0 | 6e 2d 6c 65 74 2a 20 28 28 64 65 6c 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c | n-let*.((delta.(plist-get.(gptel |
| 58000 | 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 20 3a 64 65 6c 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 | --json-read).:delta))).......... |
| 58020 | 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 | .....(if-let*.((content.(plist-g |
| 58040 | 65 74 20 64 65 6c 74 61 20 3a 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.delta.:text))................ |
| 58060 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c | .........((not.(eq.content.:null |
| 58080 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e | ))))...................(push.con |
| 580a0 | 74 65 6e 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 20 3b 63 6f 6c 6c 65 63 74 20 74 65 78 74 | tent.content-strs).;collect.text |
| 580c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 61 72 74 | .................(if-let*.((part |
| 580e0 | 69 61 6c 2d 6a 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 70 61 72 74 69 | ial-json.(plist-get.delta.:parti |
| 58100 | 61 6c 5f 6a 73 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | al_json))).....................( |
| 58120 | 70 6c 69 73 74 2d 70 75 74 20 20 20 20 20 20 20 20 20 20 3b 63 6f 6c 6c 65 63 74 20 70 61 72 74 | plist-put..........;collect.part |
| 58140 | 69 61 6c 20 74 6f 6f 6c 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ial.tool.input.................. |
| 58160 | 20 20 20 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 | ....info.:partial_json.......... |
| 58180 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 70 61 72 74 69 61 6c 2d 6a 73 6f 6e 20 28 | ............(cons.partial-json.( |
| 581a0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 0a | plist-get.info.:partial_json))). |
| 581c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 74 68 69 | ..................(if-let*.((thi |
| 581e0 | 6e 6b 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 74 68 69 6e 6b 69 6e 67 | nking.(plist-get.delta.:thinking |
| 58200 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ))).......................(plist |
| 58220 | 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | -put.info.:reasoning............ |
| 58240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 | ......................(concat.(p |
| 58260 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 74 68 69 6e 6b 69 | list-get.info.:reasoning).thinki |
| 58280 | 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 | ng)).....................(if-let |
| 582a0 | 2a 20 28 28 73 69 67 6e 61 74 75 72 65 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a | *.((signature.(plist-get.delta.: |
| 582c0 | 73 69 67 6e 61 74 75 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | signature))).................... |
| 582e0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 69 67 6e 61 74 75 72 65 0a | .....(plist-put.info.:signature. |
| 58300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 58320 | 20 20 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 69 67 6e | ...(concat.(plist-get.info.:sign |
| 58340 | 61 74 75 72 65 29 20 73 69 67 6e 61 74 75 72 65 29 29 29 29 29 29 29 29 0a 0a 20 20 20 20 20 20 | ature).signature))))))))........ |
| 58360 | 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b | .....((looking-at."content_block |
| 58380 | 5f 73 74 61 72 74 22 29 20 3b 49 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 62 6c 6f 63 6b | _start").;Is.the.following.block |
| 583a0 | 20 74 65 78 74 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .text.or.tool-use?.............( |
| 583c0 | 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 | forward-line.1).(forward-char.5) |
| 583e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 62 6c 6f 63 6b | .............(when-let*.((cblock |
| 58400 | 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 20 3a | .(plist-get.(gptel--json-read).: |
| 58420 | 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | content_block)))...............( |
| 58440 | 70 63 61 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 79 70 65 29 0a 20 | pcase.(plist-get.cblock.:type).. |
| 58460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 65 78 74 22 20 28 70 75 73 68 20 28 70 6c | ...............("text".(push.(pl |
| 58480 | 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 65 78 74 29 20 63 6f 6e 74 65 6e 74 2d 73 74 | ist-get.cblock.:text).content-st |
| 584a0 | 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 5f 75 73 65 22 | rs)).................("tool_use" |
| 584c0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 | .(plist-put.info.:tool-use...... |
| 584e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 58500 | 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c | ..(cons.(list.:id.(plist-get.cbl |
| 58520 | 6f 63 6b 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ock.:id)........................ |
| 58540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | ............................:nam |
| 58560 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 | e.(plist-get.cblock.:name))..... |
| 58580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 585a0 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 | .........(plist-get.info.:tool-u |
| 585c0 | 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 68 69 6e 6b 69 6e | se)))).................("thinkin |
| 585e0 | 67 22 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 28 70 | g".(plist-put.info.:reasoning.(p |
| 58600 | 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 68 69 6e 6b 69 6e 67 29 29 0a 20 20 20 20 | list-get.cblock.:thinking))..... |
| 58620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 | .............(plist-put.info.:re |
| 58640 | 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 69 6e 29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 | asoning-block.'in))))).......... |
| 58660 | 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 5f 73 | ...((looking-at."content_block_s |
| 58680 | 74 6f 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 | top").............(cond......... |
| 586a0 | 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a | .....((plist-get.info.:partial_j |
| 586c0 | 73 6f 6e 29 20 20 20 3b 45 6e 64 20 6f 66 20 74 6f 6f 6c 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | son)...;End.of.tool.block....... |
| 586e0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 2d 75 6e 6c 65 73 73 2d 64 | ........(condition-case-unless-d |
| 58700 | 65 62 75 67 20 6e 69 6c 20 3b 43 6f 6d 62 69 6e 65 20 70 61 72 74 69 61 6c 20 74 6f 6f 6c 20 69 | ebug.nil.;Combine.partial.tool.i |
| 58720 | 6e 70 75 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 | nputs...................(let*.(( |
| 58740 | 61 72 67 73 2d 6a 73 6f 6e 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 | args-json.(apply.#'concat.(nreve |
| 58760 | 72 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f | rse.(plist-get.info.:partial_jso |
| 58780 | 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | n))))..........................( |
| 587a0 | 61 72 67 73 2d 64 65 63 6f 64 65 64 20 20 3b 48 61 6e 64 6c 65 20 62 6c 61 6e 6b 20 61 72 67 75 | args-decoded..;Handle.blank.argu |
| 587c0 | 6d 65 6e 74 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ment.strings.................... |
| 587e0 | 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 61 72 67 73 2d | .......(if.(string-empty-p.args- |
| 58800 | 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | json)........................... |
| 58820 | 20 20 20 20 6e 69 6c 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 72 69 6e 67 | ....nil.(gptel--json-read-string |
| 58840 | 20 61 72 67 73 2d 6a 73 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .args-json)))).................. |
| 58860 | 20 20 20 3b 3b 20 41 64 64 20 74 68 65 20 69 6e 70 75 74 20 74 6f 20 74 68 65 20 74 6f 6f 6c 2d | ...;;.Add.the.input.to.the.tool- |
| 58880 | 63 61 6c 6c 20 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | call.spec.....................(p |
| 588a0 | 6c 69 73 74 2d 70 75 74 20 28 63 61 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 | list-put.(car.(plist-get.info.:t |
| 588c0 | 6f 6f 6c 2d 75 73 65 29 29 20 3a 69 6e 70 75 74 20 61 72 67 73 2d 64 65 63 6f 64 65 64 29 29 0a | ool-use)).:input.args-decoded)). |
| 588e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 20 77 61 73 20 | ................;;.If.there.was. |
| 58900 | 61 6e 20 65 72 72 6f 72 20 69 6e 20 72 65 61 64 69 6e 67 20 74 68 61 74 20 74 6f 6f 6c 2c 20 77 | an.error.in.reading.that.tool,.w |
| 58920 | 65 20 69 67 6e 6f 72 65 20 69 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | e.ignore.it:.................;;. |
| 58940 | 54 4f 44 4f 28 74 6f 6f 6c 29 20 68 61 6e 64 6c 65 20 74 68 69 73 20 65 72 72 6f 72 20 62 65 74 | TODO(tool).handle.this.error.bet |
| 58960 | 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 70 6f 70 20 | ter.................(error.(pop. |
| 58980 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 29 20 3b 54 | (plist-get.info.:tool-use)))).;T |
| 589a0 | 4f 44 4f 3a 20 6e 72 65 76 65 72 73 65 20 3a 74 6f 6f 6c 2d 75 73 65 20 6c 69 73 74 0a 20 20 20 | ODO:.nreverse.:tool-use.list.... |
| 589c0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 | ...........(plist-put.info.:part |
| 589e0 | 69 61 6c 5f 6a 73 6f 6e 20 6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 | ial_json.nil))...............((e |
| 58a00 | 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f | q.(plist-get.info.:reasoning-blo |
| 58a20 | 63 6b 29 20 27 69 6e 29 20 3b 45 6e 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b | ck).'in).;End.of.reasoning.block |
| 58a40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 58a60 | 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 29 29 29 20 3b 53 69 67 6e 61 6c 20 65 6e | reasoning-block.t)))).;Signal.en |
| 58a80 | 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 73 74 72 65 61 6d 20 74 6f 20 66 69 6c 74 65 72 0a | d.of.reasoning.stream.to.filter. |
| 58aa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 6d 65 73 73 61 67 | ............((looking-at."messag |
| 58ac0 | 65 5f 64 65 6c 74 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 6c 65 63 74 | e_delta").............;;.collect |
| 58ae0 | 20 73 74 6f 70 5f 72 65 61 73 6f 6e 2c 20 75 73 61 67 65 5f 74 6f 6b 65 6e 73 20 61 6e 64 20 70 | .stop_reason,.usage_tokens.and.p |
| 58b00 | 72 65 70 61 72 65 20 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 | repare.tools.............(forwar |
| 58b20 | 64 2d 6c 69 6e 65 20 31 29 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 0a 20 20 20 20 20 | d-line.1).(forward-char.5)...... |
| 58b40 | 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 75 73 65 20 28 70 6c | .......(when-let*.((tool-use.(pl |
| 58b60 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 | ist-get.info.:tool-use))........ |
| 58b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 | .................(response.(gpte |
| 58ba0 | 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | l--json-read)))...............(l |
| 58bc0 | 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 | et*.((data.(plist-get.info.:data |
| 58be0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 73 | ))......................(prompts |
| 58c00 | 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 29 29 29 0a 20 20 | .(plist-get.data.:messages)))... |
| 58c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 3b 20 41 70 70 65 6e | ..............(plist-put.;.Appen |
| 58c40 | 64 20 61 20 43 4f 50 59 20 6f 66 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 2b 20 74 6f 6f 6c | d.a.COPY.of.response.text.+.tool |
| 58c60 | 2d 75 73 65 20 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 | -use.to.the.prompts.list........ |
| 58c80 | 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20 | ..........data.:messages........ |
| 58ca0 | 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(vconcat.............. |
| 58cc0 | 20 20 20 20 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 | .....prompts...................` |
| 58ce0 | 28 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ((:role."assistant"............. |
| 58d00 | 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 2c 28 76 63 6f 6e 63 61 74 20 3b 49 6e 73 | .........:content.,(vconcat.;Ins |
| 58d20 | 65 72 74 20 61 6e 79 20 4c 4c 4d 20 74 65 78 74 20 61 6e 64 20 74 68 69 6e 6b 69 6e 67 20 74 65 | ert.any.LLM.text.and.thinking.te |
| 58d40 | 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt.............................. |
| 58d60 | 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d | ...(and-let*.((reasoning.(plist- |
| 58d80 | 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 | get.info.:partial_reasoning))).. |
| 58da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 58dc0 | 60 28 28 3a 74 79 70 65 20 22 74 68 69 6e 6b 69 6e 67 22 20 3a 74 68 69 6e 6b 69 6e 67 20 2c 72 | `((:type."thinking".:thinking.,r |
| 58de0 | 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | easoning........................ |
| 58e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 69 67 6e 61 74 75 72 65 20 2c 28 70 6c 69 73 74 2d | .............:signature.,(plist- |
| 58e20 | 67 65 74 20 69 6e 66 6f 20 3a 73 69 67 6e 61 74 75 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 | get.info.:signature))))......... |
| 58e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 | ........................(and-let |
| 58e60 | 2a 20 28 28 73 74 72 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 | *.((strs.(plist-get.info.:partia |
| 58e80 | 6c 5f 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l_text)))....................... |
| 58ea0 | 20 20 20 20 20 20 20 20 20 20 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 | ...........`((:type."text".:text |
| 58ec0 | 20 2c 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 73 74 72 73 | .,(apply.#'concat.(nreverse.strs |
| 58ee0 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )))))........................... |
| 58f00 | 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c | ......(mapcar.(lambda.(tool-call |
| 58f20 | 29 20 3b 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 0a 20 20 | ).;followed.by.the.tool.calls... |
| 58f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 58f60 | 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 74 6f 6f | ........(append.(list.:type."too |
| 58f80 | 6c 5f 75 73 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l_use")......................... |
| 58fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 | ...................(copy-sequenc |
| 58fc0 | 65 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.tool-call))).................. |
| 58fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 29 29 0a 20 | ................tool-use)))))).. |
| 59000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 59020 | 70 61 72 74 69 61 6c 5f 74 65 78 74 20 6e 69 6c 29 20 3b 20 43 6c 65 61 72 20 61 6e 79 20 63 61 | partial_text.nil).;.Clear.any.ca |
| 59040 | 70 74 75 72 65 64 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 | ptured.text.................;;.T |
| 59060 | 68 65 6e 20 73 68 61 70 65 20 74 68 65 20 74 6f 6f 6c 2d 75 73 65 20 62 6c 6f 63 6b 20 62 79 20 | hen.shape.the.tool-use.block.by. |
| 59080 | 61 64 64 69 6e 67 20 61 72 67 73 20 73 6f 20 77 65 20 63 61 6e 20 63 61 6c 6c 20 74 68 65 20 66 | adding.args.so.we.can.call.the.f |
| 590a0 | 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 | unctions.................(mapc.( |
| 590c0 | 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.(tool-call).............. |
| 590e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 | ...........(plist-put.tool-call. |
| 59100 | 3a 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 6e 70 75 | :args.(plist-get.tool-call.:inpu |
| 59120 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | t)).........................(pli |
| 59140 | 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 6e 70 75 74 20 6e 69 6c 29 0a 20 20 20 | st-put.tool-call.:input.nil).... |
| 59160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | .....................(plist-put. |
| 59180 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 | tool-call.:id.(plist-get.tool-ca |
| 591a0 | 6c 6c 20 3a 69 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll.:id)))....................... |
| 591c0 | 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | tool-use))...............(plist- |
| 591e0 | 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 | put.info.:output-tokens......... |
| 59200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 | .................(map-nested-elt |
| 59220 | 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 6f 75 74 70 75 74 5f 74 6f 6b 65 6e | .response.'(:usage.:output_token |
| 59240 | 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e | s)))...............(plist-put.in |
| 59260 | 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.:stop-reason................. |
| 59280 | 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 | .........(map-nested-elt.respons |
| 592a0 | 65 20 27 28 3a 64 65 6c 74 61 20 3a 73 74 6f 70 5f 72 65 61 73 6f 6e 29 29 29 29 29 29 29 0a 20 | e.'(:delta.:stop_reason))))))).. |
| 592c0 | 20 20 20 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 74 29 29 29 0a 20 20 20 | .....(error.(goto-char.pt))).... |
| 592e0 | 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 74 65 78 74 20 28 61 70 70 6c 79 20 23 27 63 | .(let.((response-text.(apply.#'c |
| 59300 | 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 | oncat.(nreverse.content-strs)))) |
| 59320 | 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 | .......(unless.(string-empty-p.r |
| 59340 | 65 73 70 6f 6e 73 65 2d 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | esponse-text).........(plist-put |
| 59360 | 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:partial_text............. |
| 59380 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 72 65 73 70 6f 6e 73 65 2d 74 65 78 74 20 28 70 6c 69 73 | .......(cons.response-text.(plis |
| 593a0 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 29 29 29 29 0a 20 20 20 | t-get.info.:partial_text)))).... |
| 593c0 | 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 | ...(when.(plist-get.info.:tools) |
| 593e0 | 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 | .........(when-let*.((reasoning. |
| 59400 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 | (plist-get.info.:reasoning)))... |
| 59420 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c | ........(plist-put.info.:partial |
| 59440 | 5f 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _reasoning...................... |
| 59460 | 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c | (concat.(plist-get.info.:partial |
| 59480 | 5f 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 | _reasoning).reasoning))))....... |
| 594a0 | 72 65 73 70 6f 6e 73 65 2d 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 | response-text)))..(cl-defmethod. |
| 594c0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 | gptel--parse-response.((_backend |
| 594e0 | 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 | .gptel-anthropic).response.info) |
| 59500 | 0a 20 20 22 50 61 72 73 65 20 61 6e 20 41 6e 74 68 72 6f 70 69 63 20 28 6e 6f 6e 2d 73 74 72 65 | ..."Parse.an.Anthropic.(non-stre |
| 59520 | 61 6d 69 6e 67 29 20 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 75 72 6e 20 72 65 73 70 6f | aming).RESPONSE.and.return.respo |
| 59540 | 6e 73 65 20 74 65 78 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 77 69 74 | nse.text...Mutate.state.INFO.wit |
| 59560 | 68 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 70 6c 69 73 74 2d 70 | h.response.metadata."...(plist-p |
| 59580 | 75 74 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 | ut.info.:stop-reason.(plist-get. |
| 595a0 | 72 65 73 70 6f 6e 73 65 20 3a 73 74 6f 70 5f 72 65 61 73 6f 6e 29 29 0a 20 20 28 70 6c 69 73 74 | response.:stop_reason))...(plist |
| 595c0 | 2d 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 | -put.info.:output-tokens........ |
| 595e0 | 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 | ......(map-nested-elt.response.' |
| 59600 | 28 3a 75 73 61 67 65 20 3a 6f 75 74 70 75 74 5f 74 6f 6b 65 6e 73 29 29 29 0a 20 20 28 63 6c 2d | (:usage.:output_tokens)))...(cl- |
| 59620 | 6c 6f 6f 70 0a 20 20 20 77 69 74 68 20 63 6f 6e 74 65 6e 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 | loop....with.content.=.(plist-ge |
| 59640 | 74 20 72 65 73 70 6f 6e 73 65 20 3a 63 6f 6e 74 65 6e 74 29 0a 20 20 20 66 6f 72 20 63 62 6c 6f | t.response.:content)....for.cblo |
| 59660 | 63 6b 20 61 63 72 6f 73 73 20 63 6f 6e 74 65 6e 74 0a 20 20 20 66 6f 72 20 74 79 70 65 20 3d 20 | ck.across.content....for.type.=. |
| 59680 | 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 79 70 65 29 0a 20 20 20 69 66 20 28 | (plist-get.cblock.:type)....if.( |
| 596a0 | 65 71 75 61 6c 20 74 79 70 65 20 22 74 65 78 74 22 29 0a 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f | equal.type."text")....;;.TODO(to |
| 596c0 | 6f 6c 29 20 63 61 6e 20 3a 74 65 78 74 20 62 65 20 3a 6e 75 6c 6c 3f 0a 20 20 20 63 6f 6c 6c 65 | ol).can.:text.be.:null?....colle |
| 596e0 | 63 74 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 65 78 74 29 20 69 6e 74 6f | ct.(plist-get.cblock.:text).into |
| 59700 | 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 0a 20 20 20 65 6c 73 65 20 69 66 20 28 65 71 75 61 6c 20 | .content-strs....else.if.(equal. |
| 59720 | 74 79 70 65 20 22 74 6f 6f 6c 5f 75 73 65 22 29 0a 20 20 20 63 6f 6c 6c 65 63 74 20 63 62 6c 6f | type."tool_use")....collect.cblo |
| 59740 | 63 6b 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 65 6c 73 65 20 69 66 20 28 65 71 75 | ck.into.tool-use....else.if.(equ |
| 59760 | 61 6c 20 74 79 70 65 20 22 74 68 69 6e 6b 69 6e 67 22 29 0a 20 20 20 64 6f 0a 20 20 20 28 70 6c | al.type."thinking")....do....(pl |
| 59780 | 69 73 74 2d 70 75 74 0a 20 20 20 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 | ist-put.....info.:reasoning..... |
| 597a0 | 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 | (concat.(plist-get.info.:reasoni |
| 597c0 | 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 | ng).............(plist-get.cbloc |
| 597e0 | 6b 20 3a 74 68 69 6e 6b 69 6e 67 29 29 29 0a 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 0a 20 20 20 | k.:thinking)))....finally.do.... |
| 59800 | 28 77 68 65 6e 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 3b 3b 20 46 69 72 73 74 2c 20 61 64 | (when.tool-use......;;.First,.ad |
| 59820 | 64 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 73 20 6c | d.the.tool.call.to.the.prompts.l |
| 59840 | 69 73 74 0a 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 | ist......(let*.((data.(plist-get |
| 59860 | 20 69 6e 66 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 | .info.:data)).............(promp |
| 59880 | 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 29 29 29 0a | ts.(plist-get.data.:messages))). |
| 598a0 | 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 0a 20 20 20 20 20 20 20 20 64 61 74 61 20 3a | .......(plist-put.........data.: |
| 598c0 | 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 | messages.........(vconcat.prompt |
| 598e0 | 73 20 60 28 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 | s.`((:role."assistant".:content. |
| 59900 | 2c 63 6f 6e 74 65 6e 74 29 29 29 29 29 0a 20 20 20 20 20 3b 3b 20 54 68 65 6e 20 63 61 70 74 75 | ,content)))))......;;.Then.captu |
| 59920 | 72 65 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e | re.the.tool.call.data.for.runnin |
| 59940 | 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 66 | g.the.tool......(cl-loop.......f |
| 59960 | 6f 72 20 63 61 6c 6c 2d 72 61 77 20 69 6e 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 66 6f | or.call-raw.in.tool-use.......fo |
| 59980 | 72 20 63 61 6c 6c 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 63 61 6c 6c 2d 72 61 77 | r.call.=.(copy-sequence.call-raw |
| 599a0 | 29 20 64 6f 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 20 3a 61 72 67 73 | ).do.......(plist-put.call.:args |
| 599c0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 69 6e 70 75 74 29 29 0a 20 20 20 20 20 20 | .(plist-get.call.:input))....... |
| 599e0 | 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 20 3a 69 6e 70 75 74 20 6e 69 6c 29 0a 20 20 20 20 | (plist-put.call.:input.nil)..... |
| 59a00 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 | ..(plist-put.call.:id.(plist-get |
| 59a20 | 20 63 61 6c 6c 20 3a 69 64 29 29 0a 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 63 61 6c 6c 20 69 | .call.:id)).......collect.call.i |
| 59a40 | 6e 74 6f 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 28 70 6c 69 73 | nto.calls.......finally.do.(plis |
| 59a60 | 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 20 63 61 6c 6c 73 29 29 29 0a 20 20 | t-put.info.:tool-use.calls)))... |
| 59a80 | 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 2d | .finally.return....(and.content- |
| 59aa0 | 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 | strs.(apply.#'concat.content-str |
| 59ac0 | 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 | s))))..(cl-defmethod.gptel--requ |
| 59ae0 | 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 | est-data.((backend.gptel-anthrop |
| 59b00 | 69 63 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d | ic).prompts)..."JSON.encode.PROM |
| 59b20 | 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 | PTS.for.sending.to.ChatGPT."...( |
| 59b40 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a | let.((prompts-plist..........`(: |
| 59b60 | 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | model.,(gptel--model-name.gptel- |
| 59b80 | 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 | model)............:stream.,(or.g |
| 59ba0 | 70 74 65 6c 2d 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 | ptel-stream.:json-false)........ |
| 59bc0 | 20 20 20 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 20 2c 28 6f 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 | ....:max_tokens.,(or.gptel-max-t |
| 59be0 | 6f 6b 65 6e 73 20 34 30 39 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 73 73 61 67 65 73 | okens.4096)............:messages |
| 59c00 | 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d | .[,@prompts]))).....(when.gptel- |
| 59c20 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 | -system-message.......(if.(and.( |
| 59c40 | 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 61 63 68 65 20 74 29 20 28 6d 65 6d 71 20 27 73 79 73 | or.(eq.gptel-cache.t).(memq.'sys |
| 59c60 | 74 65 6d 20 67 70 74 65 6c 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tem.gptel-cache))............... |
| 59c80 | 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 | .(gptel--model-capable-p.'cache) |
| 59ca0 | 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | )...........;;.gptel--system-mes |
| 59cc0 | 73 61 67 65 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 61 20 73 74 72 69 6e | sage.is.guaranteed.to.be.a.strin |
| 59ce0 | 67 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 | g...........(plist-put.prompts-p |
| 59d00 | 6c 69 73 74 20 3a 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list.:system.................... |
| 59d20 | 20 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 67 70 74 65 6c 2d 2d | ..`[(:type."text".:text.,gptel-- |
| 59d40 | 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | system-message.................. |
| 59d60 | 20 20 20 20 20 20 20 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 | .......:cache_control.(:type."ep |
| 59d80 | 68 65 6d 65 72 61 6c 22 29 29 5d 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | hemeral"))]).........(plist-put. |
| 59da0 | 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 73 79 73 | prompts-plist.:system.gptel--sys |
| 59dc0 | 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 | tem-message))).....(when.gptel-t |
| 59de0 | 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d | emperature.......(plist-put.prom |
| 59e00 | 70 74 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d | pts-plist.:temperature.gptel-tem |
| 59e20 | 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 75 73 65 2d 74 | perature)).....(when.gptel-use-t |
| 59e40 | 6f 6f 6c 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 75 73 65 2d 74 | ools.......(when.(eq.gptel-use-t |
| 59e60 | 6f 6f 6c 73 20 27 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | ools.'force).........(plist-put. |
| 59e80 | 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 5f 63 68 6f 69 63 65 20 27 28 3a 74 79 | prompts-plist.:tool_choice.'(:ty |
| 59ea0 | 70 65 20 22 61 6e 79 22 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 6f | pe."any"))).......(when.gptel-to |
| 59ec0 | 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f 6c 73 2d 61 72 72 61 79 20 28 | ols.........(let.((tools-array.( |
| 59ee0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c | gptel--parse-tools.backend.gptel |
| 59f00 | 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 | -tools)))...........(plist-put.p |
| 59f20 | 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 73 20 74 6f 6f 6c 73 2d 61 72 72 61 79 29 | rompts-plist.:tools.tools-array) |
| 59f40 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6f 72 20 28 65 71 20 67 70 | ...........(when.(and.(or.(eq.gp |
| 59f60 | 74 65 6c 2d 63 61 63 68 65 20 74 29 20 28 6d 65 6d 71 20 27 74 6f 6f 6c 20 67 70 74 65 6c 2d 63 | tel-cache.t).(memq.'tool.gptel-c |
| 59f80 | 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | ache))......................(gpt |
| 59fa0 | 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 29 0a 20 20 20 | el--model-capable-p.'cache)).... |
| 59fc0 | 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 74 6f 6f 6c 73 2d 61 72 72 61 | .........(nconc.(aref.tools-arra |
| 59fe0 | 79 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 74 6f 6f 6c 73 2d 61 72 72 61 79 29 29 29 0a 20 20 20 | y.(1-.(length.tools-array))).... |
| 5a000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c | ................'(:cache_control |
| 5a020 | 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 29 29 29 29 29 29 29 0a 20 20 20 20 3b | .(:type."ephemeral"))))))).....; |
| 5a040 | 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 20 77 69 74 68 20 6d 6f 64 65 | ;.Merge.request.params.with.mode |
| 5a060 | 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 6d 73 2e 0a 20 20 20 20 28 67 70 74 65 6c | l.and.backend.params......(gptel |
| 5a080 | 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 | --merge-plists......prompts-plis |
| 5a0a0 | 74 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 72 65 71 75 65 73 74 2d 70 61 | t......(gptel-backend-request-pa |
| 5a0c0 | 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d | rams.gptel-backend)......(gptel- |
| 5a0e0 | 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 67 70 74 65 6c 2d 6d 6f 64 | -model-request-params..gptel-mod |
| 5a100 | 65 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 | el))))..(cl-defmethod.gptel--par |
| 5a120 | 73 65 2d 74 6f 6f 6c 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f | se-tools.((_backend.gptel-anthro |
| 5a140 | 70 69 63 29 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 74 6f 20 74 68 | pic).tools)..."Parse.TOOLS.to.th |
| 5a160 | 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 | e.Anthropic.API.tool.definition. |
| 5a180 | 73 70 65 63 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 6c | spec...TOOLS.is.a.list.of.`gptel |
| 5a1a0 | 2d 74 6f 6f 6c 27 20 73 74 72 75 63 74 73 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 76 | -tool'.structs,.which.see."...(v |
| 5a1c0 | 63 6f 6e 63 61 74 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 | concat....(mapcar.....(lambda.(t |
| 5a1e0 | 6f 6f 6c 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f | ool).......(list.:name.(gptel-to |
| 5a200 | 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 | ol-name.tool).............:descr |
| 5a220 | 69 70 74 69 6f 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 | iption.(gptel-tool-description.t |
| 5a240 | 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 5f 73 63 68 65 6d 61 20 3b | ool).............:input_schema.; |
| 5a260 | 4e 4f 54 45 3a 20 41 6e 74 68 72 6f 70 69 63 20 77 61 6e 74 73 20 22 7b 7d 22 20 69 66 20 74 68 | NOTE:.Anthropic.wants."{}".if.th |
| 5a280 | 65 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 6e 6f 20 61 72 67 73 2c 20 6e 6f 74 20 6e 75 | e.function.takes.no.args,.not.nu |
| 5a2a0 | 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a 65 | ll.............(list.:type."obje |
| 5a2c0 | 63 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 74 68 65 | ct"...................;;.See.the |
| 5a2e0 | 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 6e 20 65 | .generic.implementation.for.an.e |
| 5a300 | 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | xplanation.of.this.............. |
| 5a320 | 20 20 20 20 20 3b 3b 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 | .....;;.transformation.......... |
| 5a340 | 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 | ..........:properties........... |
| 5a360 | 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(cl-loop................ |
| 5a380 | 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 | ....for.arg.in.(gptel-tool-args. |
| 5a3a0 | 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 67 | tool)....................for.arg |
| 5a3c0 | 73 70 65 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 61 72 67 29 0a 20 20 20 20 20 | spec.=.(copy-sequence.arg)...... |
| 5a3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 70 6c 69 73 74 2d | ..............for.name.=.(plist- |
| 5a400 | 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 20 3b 68 61 6e 64 6c 65 64 20 64 69 66 66 65 72 65 6e | get.arg.:name).;handled.differen |
| 5a420 | 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 65 77 6e 61 | tly....................for.newna |
| 5a440 | 6d 65 20 3d 20 28 6f 72 20 28 61 6e 64 20 28 6b 65 79 77 6f 72 64 70 20 6e 61 6d 65 29 20 6e 61 | me.=.(or.(and.(keywordp.name).na |
| 5a460 | 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me)............................. |
| 5a480 | 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 28 63 6f 6e 63 61 74 20 22 3a | .........(make-symbol.(concat.": |
| 5a4a0 | 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 | ".name)))....................do. |
| 5a4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 52 47 53 50 45 43 20 69 73 20 41 52 47 | .................;ARGSPEC.is.ARG |
| 5a4e0 | 20 77 69 74 68 6f 75 74 20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 0a 20 20 20 20 20 | .without.unrecognized.keys...... |
| 5a500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a | ..............(cl-remf.argspec.: |
| 5a520 | 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d | name)....................(cl-rem |
| 5a540 | 66 20 61 72 67 73 70 65 63 20 3a 6f 70 74 69 6f 6e 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | f.argspec.:optional)............ |
| 5a560 | 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 | ........if.(equal.(plist-get.arg |
| 5a580 | 20 3a 74 79 70 65 29 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:type)."object")............... |
| 5a5a0 | 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 61 72 | .....do.(unless.(plist-member.ar |
| 5a5c0 | 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gspec.:required)................ |
| 5a5e0 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 61 72 67 73 70 65 63 20 3a 72 65 71 | .........(plist-put.argspec.:req |
| 5a600 | 75 69 72 65 64 20 5b 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 | uired.[]))....................ap |
| 5a620 | 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 20 61 72 67 73 70 65 63 29 29 0a 20 20 20 | pend.(list.newname.argspec)).... |
| 5a640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 | ...............:required........ |
| 5a660 | 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(vconcat............. |
| 5a680 | 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 | .......(delq.nil.(mapcar........ |
| 5a6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | .......................(lambda.( |
| 5a6c0 | 61 72 67 29 20 28 61 6e 64 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6f | arg).(and.(not.(plist-get.arg.:o |
| 5a6e0 | 70 74 69 6f 6e 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptional))....................... |
| 5a700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 | ......................(plist-get |
| 5a720 | 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .arg.:name)))................... |
| 5a740 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f | ............(gptel-tool-args.too |
| 5a760 | 6c 29 29 29 29 29 29 29 0a 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 74 6f 6f 6c 73 29 | l))))))).....(ensure-list.tools) |
| 5a780 | 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d | )))..(cl-defmethod.gptel--parse- |
| 5a7a0 | 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e | tool-results.((_backend.gptel-an |
| 5a7c0 | 74 68 72 6f 70 69 63 29 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 | thropic).tool-use)..."Return.a.p |
| 5a7e0 | 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c | rompt.containing.tool.call.resul |
| 5a800 | 74 73 20 69 6e 20 54 4f 4f 4c 2d 55 53 45 2e 0a 0a 54 4f 4f 4c 2d 55 53 45 20 69 73 20 61 20 6c | ts.in.TOOL-USE...TOOL-USE.is.a.l |
| 5a820 | 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 6e 61 | ist.of.plists.containing.tool.na |
| 5a840 | 6d 65 73 2c 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 2e | mes,.arguments.and.call.results. |
| 5a860 | 22 0a 20 20 3b 3b 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 | "...;;.(declare.(side-effect-fre |
| 5a880 | 65 20 74 29 29 0a 20 20 28 6c 69 73 74 0a 20 20 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 | e.t))...(list....:role."user"... |
| 5a8a0 | 20 3a 63 6f 6e 74 65 6e 74 0a 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 28 6d 61 70 63 61 | .:content....(vconcat.....(mapca |
| 5a8c0 | 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 | r......(lambda.(tool-call)...... |
| 5a8e0 | 20 20 28 6c 65 74 2a 20 28 28 72 65 73 75 6c 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c | ..(let*.((result.(plist-get.tool |
| 5a900 | 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 | -call.:result))...............(f |
| 5a920 | 6f 72 6d 61 74 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 | ormatted................(list.:t |
| 5a940 | 79 70 65 20 22 74 6f 6f 6c 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ype."tool_result"............... |
| 5a960 | 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 75 73 65 5f 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 | .......:tool_use_id.(plist-get.t |
| 5a980 | 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-call.:id)................... |
| 5a9a0 | 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 72 65 73 75 6c 74 29 | ...:content.(if.(stringp.result) |
| 5a9c0 | 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .result......................... |
| 5a9e0 | 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 73 75 6c 74 29 | ........(prin1-to-string.result) |
| 5aa00 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 66 6f 72 6d 61 74 74 65 64 0a 20 | ))))..........(prog1.formatted.. |
| 5aa20 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d | ..........(when.(plist-get.tool- |
| 5aa40 | 63 61 6c 6c 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | call.:error)..............(plist |
| 5aa60 | 2d 70 75 74 20 66 6f 72 6d 61 74 74 65 64 20 3a 69 73 5f 65 72 72 6f 72 20 74 29 29 29 29 29 0a | -put.formatted.:is_error.t))))). |
| 5aa80 | 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 | .....tool-use))))..;;.NOTE:.No.` |
| 5aaa0 | 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 27 20 6d 65 74 68 6f 64 20 72 65 71 | gptel--inject-prompt'.method.req |
| 5aac0 | 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2c 20 73 69 6e 63 65 | uired.for.gptel-anthropic,.since |
| 5aae0 | 0a 3b 3b 20 74 68 69 73 20 69 73 20 68 61 6e 64 6c 65 64 20 62 79 20 69 74 73 20 64 65 66 67 65 | .;;.this.is.handled.by.its.defge |
| 5ab00 | 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 52 | neric.implementation..;;.TODO:.R |
| 5ab20 | 65 6d 6f 76 65 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 23 37 39 32 29 0a 28 64 65 | emove.these.functions.(#792).(de |
| 5ab40 | 66 75 6e 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c | fun.gptel--anthropic-format-tool |
| 5ab60 | 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 2d 69 64 0a | -id.(tool-id)...(unless.tool-id. |
| 5ab80 | 20 20 20 20 28 73 65 74 71 20 74 6f 6f 6c 2d 69 64 20 28 73 75 62 73 74 72 69 6e 67 0a 20 20 20 | ....(setq.tool-id.(substring.... |
| 5aba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 22 25 73 | ................(md5.(format."%s |
| 5abc0 | 25 73 22 20 28 72 61 6e 64 6f 6d 29 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 | %s".(random).(float-time)))..... |
| 5abe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 32 34 29 29 29 0a 20 20 28 69 66 20 28 | ...............nil.24)))...(if.( |
| 5ac00 | 6f 72 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 63 61 6c 6c 5f 22 20 74 6f 6f 6c | or.(string-prefix-p."call_".tool |
| 5ac20 | 2d 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 | -id)...........(string-prefix-p. |
| 5ac40 | 22 74 6f 6f 6c 75 5f 22 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 | "toolu_".tool-id)).......tool-id |
| 5ac60 | 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 74 6f 6f 6c 75 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 29 | .....(format."toolu_%s".tool-id) |
| 5ac80 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 75 6e 66 6f | ))..(defun.gptel--anthropic-unfo |
| 5aca0 | 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 28 6f 72 20 28 61 6e | rmat-tool-id.(tool-id)...(or.(an |
| 5acc0 | 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 74 6f 6f 6c 75 5f 5c 5c 28 2e 2b 5c 5c 29 22 | d.(string-match."toolu_\\(.+\\)" |
| 5ace0 | 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 | .tool-id)............(match-stri |
| 5ad00 | 6e 67 20 31 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 29 29 0a 0a | ng.1.tool-id)).......tool-id)).. |
| 5ad20 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 | (cl-defmethod.gptel--parse-list. |
| 5ad40 | 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 70 72 6f 6d 70 | ((backend.gptel-anthropic).promp |
| 5ad60 | 74 2d 6c 69 73 74 29 0a 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 0a 20 20 20 | t-list)...(let.((full-prompt.... |
| 5ad80 | 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d 6c 69 73 | ......(if.(consp.(car.prompt-lis |
| 5ada0 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 | t))..............(let.((prompts) |
| 5adc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 | )................(dolist.(entry. |
| 5ade0 | 70 72 6f 6d 70 74 2d 6c 69 73 74 29 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c 20 | prompt-list).;.Advanced.format,. |
| 5ae00 | 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | list.of.lists..................( |
| 5ae20 | 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | pcase.entry....................( |
| 5ae40 | 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | `(prompt...,msg)................ |
| 5ae60 | 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 | .....(push.(list.:role."user"... |
| 5ae80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 | ..............................:c |
| 5aea0 | 6f 6e 74 65 6e 74 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 28 6f | ontent.`[(:type."text".:text.,(o |
| 5aec0 | 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 20 | r.(car-safe.msg).msg))])........ |
| 5aee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 | ...................prompts)).... |
| 5af00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d | ................(`(response...,m |
| 5af20 | 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c | sg).....................(push.(l |
| 5af40 | 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 | ist.:role."assistant"........... |
| 5af60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 | ......................:content.` |
| 5af80 | 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 28 6f 72 20 28 63 61 72 2d 73 | [(:type."text".:text.,(or.(car-s |
| 5afa0 | 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | afe.msg).msg))])................ |
| 5afc0 | 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........prompts))............ |
| 5afe0 | 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 | ........(`(tool...,call)........ |
| 5b000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 | .............(unless.(plist-get. |
| 5b020 | 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | call.:id)....................... |
| 5b040 | 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 20 3a 69 64 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 | (plist-put.call.:id.(gptel--anth |
| 5b060 | 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 6e 69 6c 29 29 29 0a 20 20 20 20 | ropic-format-tool-id.nil)))..... |
| 5b080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c | ................(push.(list.:rol |
| 5b0a0 | 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e."assistant"................... |
| 5b0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 20 3a 74 79 70 65 | ..............:content.`[(.:type |
| 5b0e0 | 20 22 74 6f 6f 6c 5f 75 73 65 22 20 3a 69 64 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c | ."tool_use".:id.,(plist-get.call |
| 5b100 | 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:id)........................... |
| 5b120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 | ...................:name.,(plist |
| 5b140 | 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -get.call.:name)................ |
| 5b160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 | ..............................:i |
| 5b180 | 6e 70 75 74 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 5d 29 0a | nput.,(plist-get.call.:args))]). |
| 5b1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 | ..........................prompt |
| 5b1c0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 | s).....................(push.(gp |
| 5b1e0 | 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 | tel--parse-tool-results.backend. |
| 5b200 | 28 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 29 29 29 20 70 72 6f 6d 70 74 73 29 29 29 29 0a | (list.(cdr.entry))).prompts)))). |
| 5b220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 72 6f 6d 70 74 73 | ...............(nreverse.prompts |
| 5b240 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 | ))............(cl-loop.for.text. |
| 5b260 | 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 | in.prompt-list.;.Simple.format,. |
| 5b280 | 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list.of.strings................. |
| 5b2a0 | 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 29 | ....for.role.=.t.then.(not.role) |
| 5b2c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 | .....................if.text.... |
| 5b2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a | .................collect.(list.: |
| 5b300 | 72 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 | role.(if.role."user"."assistant" |
| 5b320 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 5b340 | 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 | ....:content.`[(:type."text".:te |
| 5b360 | 78 74 20 2c 74 65 78 74 29 5d 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 63 61 63 68 65 20 6d 65 73 | xt.,text)]))))).....;;.cache.mes |
| 5b380 | 73 61 67 65 73 20 69 66 20 72 65 71 75 69 72 65 64 3a 20 61 64 64 20 63 61 63 68 65 5f 63 6f 6e | sages.if.required:.add.cache_con |
| 5b3a0 | 74 72 6f 6c 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6d 65 73 73 61 67 65 0a 20 20 20 20 28 77 68 | trol.to.the.last.message.....(wh |
| 5b3c0 | 65 6e 20 28 61 6e 64 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 61 63 68 65 20 74 29 20 28 | en.(and.(or.(eq.gptel-cache.t).( |
| 5b3e0 | 6d 65 6d 71 20 27 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 63 61 63 68 65 29 29 0a 20 20 20 20 | memq.'message.gptel-cache))..... |
| 5b400 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 | ...........(gptel--model-capable |
| 5b420 | 2d 70 20 27 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 28 | -p.'cache)).......(nconc.(aref.( |
| 5b440 | 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 | plist-get.(car.(last.full-prompt |
| 5b460 | 29 29 20 3a 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a | )).:content).0)..............'(: |
| 5b480 | 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 | cache_control.(:type."ephemeral" |
| 5b4a0 | 29 29 29 29 0a 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | )))).....full-prompt))..(cl-defm |
| 5b4c0 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 62 61 63 6b | ethod.gptel--parse-buffer.((back |
| 5b4e0 | 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d | end.gptel-anthropic).&optional.m |
| 5b500 | 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 20 28 70 | ax-entries)...(let.((prompts).(p |
| 5b520 | 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 67 70 74 | rev-pt.(point))).....(if.(or.gpt |
| 5b540 | 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 | el-mode.gptel-track-response)... |
| 5b560 | 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 6f 72 20 28 6e 6f 74 20 6d 61 78 2d 65 | ......(while.(and.(or.(not.max-e |
| 5b580 | 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 29 29 0a 20 20 20 20 | ntries).(>=.max-entries.0))..... |
| 5b5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 65 76 | ................(goto-char.(prev |
| 5b5c0 | 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 | ious-single-property-change..... |
| 5b5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 | ............................(poi |
| 5b600 | 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 | nt).'gptel.nil.(point-min))).... |
| 5b620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 3d 20 28 70 6f 69 6e 74 29 | .................(not.(=.(point) |
| 5b640 | 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b 20 55 6e | .prev-pt)))...........;;.HACK.Un |
| 5b660 | 74 69 6c 20 77 65 20 63 61 6e 20 66 69 6e 64 20 61 20 6d 6f 72 65 20 72 6f 62 75 73 74 20 73 6f | til.we.can.find.a.more.robust.so |
| 5b680 | 6c 75 74 69 6f 6e 20 66 6f 72 20 65 64 69 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | lution.for.editing...........;;. |
| 5b6a0 | 72 65 73 70 6f 6e 73 65 73 2c 20 69 67 6e 6f 72 65 20 70 72 6f 6d 70 74 73 20 63 6f 6e 74 61 69 | responses,.ignore.prompts.contai |
| 5b6c0 | 6e 69 6e 67 20 6f 6e 6c 79 20 77 68 69 74 65 73 70 61 63 65 2c 20 61 73 20 74 68 65 0a 20 20 20 | ning.only.whitespace,.as.the.... |
| 5b6e0 | 20 20 20 20 20 20 20 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 63 61 6e 27 74 20 68 61 | .......;;.Anthropic.API.can't.ha |
| 5b700 | 6e 64 6c 65 20 69 74 2e 20 20 53 65 65 20 23 34 35 32 2c 20 23 34 30 39 2c 20 23 34 30 36 2c 20 | ndle.it...See.#452,.#409,.#406,. |
| 5b720 | 23 33 35 31 20 61 6e 64 20 23 33 32 31 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 63 68 | #351.and.#321...........;;.We.ch |
| 5b740 | 65 63 6b 20 66 6f 72 20 62 6c 61 6e 6b 20 70 72 6f 6d 70 74 73 20 62 79 20 73 6b 69 70 70 69 6e | eck.for.blank.prompts.by.skippin |
| 5b760 | 67 20 77 68 69 74 65 73 70 61 63 65 20 61 6e 64 20 63 6f 6d 70 61 72 69 6e 67 0a 20 20 20 20 20 | g.whitespace.and.comparing...... |
| 5b780 | 20 20 20 20 20 3b 3b 20 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 20 74 68 65 20 70 72 65 76 69 6f | .....;;.point.against.the.previo |
| 5b7a0 | 75 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 61 76 65 2d 65 78 63 75 | us............(unless.(save-excu |
| 5b7c0 | 72 73 69 6f 6e 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 20 22 29 20 | rsion.(skip-syntax-forward."."). |
| 5b7e0 | 28 3e 3d 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 | (>=.(point).prev-pt))........... |
| 5b800 | 20 20 28 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 | ..(pcase.(get-char-property.(poi |
| 5b820 | 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 72 65 73 70 | nt).'gptel)...............('resp |
| 5b840 | 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | onse................(when-let*.( |
| 5b860 | 28 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (content........................ |
| 5b880 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 | .....(gptel--trim-prefixes...... |
| 5b8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d | ........................(buffer- |
| 5b8c0 | 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 20 | substring-no-properties.(point). |
| 5b8e0 | 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 | prev-pt))))..................(wh |
| 5b900 | 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 63 6f 6e 74 65 6e 74 29 | en.(not.(string-blank-p.content) |
| 5b920 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 | )....................(push.(list |
| 5b940 | 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 | .:role."assistant".:content.cont |
| 5b960 | 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ent).prompts))))...............( |
| 5b980 | 60 28 74 6f 6f 6c 20 2e 20 2c 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 | `(tool...,id)................(sa |
| 5b9a0 | 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ve-excursion..................(c |
| 5b9c0 | 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ondition-case.nil............... |
| 5b9e0 | 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 63 61 6c 6c 20 28 72 65 61 64 20 28 | .......(let*.((tool-call.(read.( |
| 5ba00 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | current-buffer)))............... |
| 5ba20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 69 64 20 28 67 70 74 65 6c 2d 2d 61 6e 74 | ..............;;.(id.(gptel--ant |
| 5ba40 | 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 69 64 29 29 0a 20 20 20 20 20 | hropic-format-tool-id.id))...... |
| 5ba60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c | .......................(name.(pl |
| 5ba80 | 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 | ist-get.tool-call.:name))....... |
| 5baa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 | ......................(arguments |
| 5bac0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 0a 20 | .(plist-get.tool-call.:args))).. |
| 5bae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | ......................(plist-put |
| 5bb00 | 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 20 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .tool-call.:id.id).............. |
| 5bb20 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a | ..........(plist-put.tool-call.: |
| 5bb40 | 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | result.......................... |
| 5bb60 | 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 | .........(string-trim.(buffer-su |
| 5bb80 | 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 | bstring-no-properties........... |
| 5bba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5bbc0 | 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 | ......(point).prev-pt)))........ |
| 5bbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 74 65 6c 2d 2d 70 61 | ................(push.(gptel--pa |
| 5bc00 | 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 74 | rse-tool-results.backend.(list.t |
| 5bc20 | 6f 6f 6c 2d 63 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-call))...................... |
| 5bc40 | 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........prompts)................ |
| 5bc60 | 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 | ........(push.(list.:role."assis |
| 5bc80 | 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tant"........................... |
| 5bca0 | 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 20 3a 74 79 70 65 20 22 74 6f 6f | .........:content.`[(.:type."too |
| 5bcc0 | 6c 5f 75 73 65 22 20 3a 69 64 20 2c 69 64 20 3a 6e 61 6d 65 20 2c 6e 61 6d 65 0a 20 20 20 20 20 | l_use".:id.,id.:name.,name...... |
| 5bce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5bd00 | 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 20 2c 61 72 67 75 6d 65 6e 74 73 29 5d 29 0a | ...........:input.,arguments)]). |
| 5bd20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f | .............................pro |
| 5bd40 | 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 6e 64 2d | mpts))....................((end- |
| 5bd60 | 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 61 64 2d 73 79 6e 74 61 78 29 0a 20 20 20 | of-file.invalid-read-syntax).... |
| 5bd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 66 6f 72 6d 61 | .................(message.(forma |
| 5bda0 | 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 6f 6f 6c 2d 63 61 6c 6c 20 25 73 20 | t."Could.not.parse.tool-call.%s. |
| 5bdc0 | 6f 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | on.line.%s"..................... |
| 5bde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 64 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 | .................id.(line-number |
| 5be00 | 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | -at-pos.(point)))))))).......... |
| 5be20 | 20 20 20 20 20 28 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e | .....('ignore)...............('n |
| 5be40 | 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 73 65 72 20 72 6f | il.....................;.user.ro |
| 5be60 | 6c 65 3a 20 70 6f 73 73 69 62 6c 79 20 77 69 74 68 20 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 | le:.possibly.with.media......... |
| 5be80 | 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 | .......(if.gptel-track-media.... |
| 5bea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e | ................(when-let*.((con |
| 5bec0 | 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 70 61 72 73 65 2d 6d 75 6c | tent.(gptel--anthropic-parse-mul |
| 5bee0 | 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tipart.......................... |
| 5bf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 | ................(gptel--parse-me |
| 5bf20 | 64 69 61 2d 6c 69 6e 6b 73 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 70 6f 69 6e 74 29 20 70 72 65 | dia-links.major-mode.(point).pre |
| 5bf40 | 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | v-pt))))......................(w |
| 5bf60 | 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 | hen.(>.(length.content).0)...... |
| 5bf80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 | ..................(push.(list.:r |
| 5bfa0 | 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f | ole."user".:content.content).pro |
| 5bfc0 | 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c | mpts)))..................(when-l |
| 5bfe0 | 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 | et*.((content.(gptel--trim-prefi |
| 5c000 | 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xes............................. |
| 5c020 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d | ...........(buffer-substring-no- |
| 5c040 | 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 | properties.(point).prev-pt)))).. |
| 5c060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 | ..................(push.(list.:r |
| 5c080 | 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f | ole."user".:content.content).pro |
| 5c0a0 | 6d 70 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d | mpts))))))...........(setq.prev- |
| 5c0c0 | 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6d 61 78 2d 65 | pt.(point))...........(and.max-e |
| 5c0e0 | 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 0a 20 | ntries.(cl-decf.max-entries))).. |
| 5c100 | 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e | .....(when-let*.((content.(strin |
| 5c120 | 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 | g-trim.(buffer-substring-no-prop |
| 5c140 | 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erties.......................... |
| 5c160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 | ................(point-min).(poi |
| 5c180 | 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 58 58 58 20 66 61 69 6c 73 | nt-max))))).........;;.XXX.fails |
| 5c1a0 | 20 69 66 20 63 6f 6e 74 65 6e 74 20 69 73 20 65 6d 70 74 79 2e 20 20 54 68 65 20 63 6f 72 72 65 | .if.content.is.empty...The.corre |
| 5c1c0 | 63 74 20 65 72 72 6f 72 20 62 65 68 61 76 69 6f 72 20 69 73 20 6c 65 66 74 20 74 6f 0a 20 20 20 | ct.error.behavior.is.left.to.... |
| 5c1e0 | 20 20 20 20 20 3b 3b 20 61 20 66 75 74 75 72 65 20 64 69 73 63 75 73 73 69 6f 6e 2e 0a 20 20 20 | .....;;.a.future.discussion..... |
| 5c200 | 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 | .....(push.(list.:role."user".:c |
| 5c220 | 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 3b | ontent.content).prompts))).....; |
| 5c240 | 3b 20 43 61 63 68 65 20 6d 65 73 73 61 67 65 73 20 69 66 20 72 65 71 75 69 72 65 64 3a 20 61 64 | ;.Cache.messages.if.required:.ad |
| 5c260 | 64 20 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 74 6f 20 74 68 65 20 6c 61 73 74 20 6d 65 73 73 | d.cache_control.to.the.last.mess |
| 5c280 | 61 67 65 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 | age.....(if.(and.(or.(eq.gptel-c |
| 5c2a0 | 61 63 68 65 20 74 29 20 28 6d 65 6d 71 20 27 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 63 61 63 | ache.t).(memq.'message.gptel-cac |
| 5c2c0 | 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | he))..............(gptel--model- |
| 5c2e0 | 63 61 70 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 | capable-p.'cache)).........(let. |
| 5c300 | 28 28 6c 61 73 74 2d 6d 65 73 73 61 67 65 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 | ((last-message.(plist-get.(car.( |
| 5c320 | 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 | last.prompts)).:content)))...... |
| 5c340 | 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 6c 61 73 74 2d 6d 65 73 73 61 67 65 29 0a | .....(if.(stringp.last-message). |
| 5c360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 0a 20 20 20 20 20 20 20 | ..............(plist-put........ |
| 5c380 | 20 20 20 20 20 20 20 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f | ........(car.(last.prompts)).:co |
| 5c3a0 | 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 5b 28 3a 74 79 70 65 20 22 74 | ntent................`[(:type."t |
| 5c3c0 | 65 78 74 22 20 3a 74 65 78 74 20 2c 6c 61 73 74 2d 6d 65 73 73 61 67 65 20 3a 63 61 63 68 65 5f | ext".:text.,last-message.:cache_ |
| 5c3e0 | 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 29 29 5d 29 0a 20 | control.(:type."ephemeral"))]).. |
| 5c400 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 28 70 6c 69 73 74 2d 67 | ...........(nconc.(aref.(plist-g |
| 5c420 | 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 | et.(car.(last.prompts)).:content |
| 5c440 | 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 63 61 63 68 65 | ).0)....................'(:cache |
| 5c460 | 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 29 29 29 29 29 | _control.(:type."ephemeral"))))) |
| 5c480 | 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 | ).....prompts))..(defun.gptel--a |
| 5c4a0 | 6e 74 68 72 6f 70 69 63 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 | nthropic-parse-multipart.(parts) |
| 5c4c0 | 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 | ..."Convert.a.multipart.prompt.P |
| 5c4e0 | 41 52 54 53 20 74 6f 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 66 6f 72 6d 61 74 | ARTS.to.the.Anthropic.API.format |
| 5c500 | 2e 0a 0a 54 68 65 20 69 6e 70 75 74 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 | ...The.input.is.an.alist.of.the. |
| 5c520 | 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 | form..((:text.\"some.text\")...( |
| 5c540 | 3a 6d 65 64 69 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d | :media.\"/path/to/media.png\".:m |
| 5c560 | 69 6d 65 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f | ime.\"image/png\")...(:text.\"Mo |
| 5c580 | 72 65 20 74 65 78 74 5c 22 29 29 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 | re.text\"))...The.output.is.a.ve |
| 5c5a0 | 63 74 6f 72 20 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 | ctor.of.entries.in.a.backend-app |
| 5c5c0 | 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 | ropriate.format."...(cl-loop.... |
| 5c5e0 | 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f | for.part.in.parts....for.n.upfro |
| 5c600 | 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 74 73 | m.1....with.last.=.(length.parts |
| 5c620 | 29 0a 20 20 20 77 69 74 68 20 74 79 70 65 0a 20 20 20 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c | )....with.type....for.text.=.(pl |
| 5c640 | 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f 72 20 6d 69 6d 65 20 | ist-get.part.:text)....for.mime. |
| 5c660 | 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 0a 20 20 20 66 6f 72 20 | =.(plist-get.part.:mime)....for. |
| 5c680 | 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a | media.=.(plist-get.part.:media). |
| 5c6a0 | 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 | ...if.text.do....(and.(or.(=.n.1 |
| 5c6c0 | 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d | ).(=.n.last)).(setq.text.(gptel- |
| 5c6e0 | 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 20 69 66 | -trim-prefixes.text))).and....if |
| 5c700 | 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 | .text....collect.`(:type."text". |
| 5c720 | 3a 74 65 78 74 20 2c 74 65 78 74 29 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 20 65 6e | :text.,text).into.parts-array.en |
| 5c740 | 64 0a 20 20 20 65 6c 73 65 20 69 66 20 6d 65 64 69 61 0a 20 20 20 64 6f 0a 20 20 20 28 73 65 74 | d....else.if.media....do....(set |
| 5c760 | 71 20 74 79 70 65 20 28 63 6f 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | q.type.(cond.................... |
| 5c780 | 20 3b 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 3a 20 49 6d 61 67 65 73 20 61 6e | .;Currently.supported:.Images.an |
| 5c7a0 | 64 20 50 44 46 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 28 73 | d.PDFs................((equal.(s |
| 5c7c0 | 75 62 73 74 72 69 6e 67 20 6d 69 6d 65 20 30 20 35 29 20 22 69 6d 61 67 65 22 29 20 22 69 6d 61 | ubstring.mime.0.5)."image")."ima |
| 5c7e0 | 67 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 4f 6e 6c | ge")................;;.NOTE:.Onl |
| 5c800 | 79 20 43 6c 61 75 64 65 20 33 2e 35 20 53 6f 6e 6e 65 74 20 73 75 70 70 6f 72 74 73 20 50 44 46 | y.Claude.3.5.Sonnet.supports.PDF |
| 5c820 | 20 64 6f 63 75 6d 65 6e 74 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 | .documents:................((equ |
| 5c840 | 61 6c 20 6d 69 6d 65 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 20 22 64 6f 63 75 | al.mime."application/pdf")."docu |
| 5c860 | 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 | ment")................(t.(error. |
| 5c880 | 28 63 6f 6e 63 61 74 20 22 28 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 52 65 71 75 65 | (concat."(gptel-anthropic).Reque |
| 5c8a0 | 73 74 20 61 62 6f 72 74 65 64 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st.aborted:."................... |
| 5c8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 72 79 69 6e 67 20 74 6f 20 73 65 6e 64 20 75 | ..............."trying.to.send.u |
| 5c8e0 | 6e 73 75 70 70 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 20 25 73 22 29 0a 20 20 20 20 20 20 | nsupported.MIME.type.%s")....... |
| 5c900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6d 65 29 29 29 29 0a 20 20 20 61 | ...................mime))))....a |
| 5c920 | 6e 64 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 20 2c 74 79 70 65 0a 20 20 20 20 | nd.collect....`(:type.,type..... |
| 5c940 | 20 3a 73 6f 75 72 63 65 20 28 3a 74 79 70 65 20 22 62 61 73 65 36 34 22 0a 20 20 20 20 20 20 20 | .:source.(:type."base64"........ |
| 5c960 | 20 20 20 20 20 20 20 3a 6d 65 64 69 61 5f 74 79 70 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 70 | .......:media_type.,(plist-get.p |
| 5c980 | 61 72 74 20 3a 6d 69 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 2c | art.:mime)...............:data., |
| 5c9a0 | 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 0a 20 20 | (gptel--base64-encode.media))... |
| 5c9c0 | 20 20 20 3b 3b 20 54 4f 44 4f 20 4d 61 6b 65 20 6d 65 64 69 61 20 63 61 63 68 69 6e 67 20 61 20 | ...;;.TODO.Make.media.caching.a. |
| 5c9e0 | 75 73 65 72 20 6f 70 74 69 6f 6e 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d | user.option......,@(and.(gptel-- |
| 5ca00 | 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 | model-capable-p.'cache)......... |
| 5ca20 | 27 28 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 | '(:cache_control.(:type."ephemer |
| 5ca40 | 61 6c 22 29 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 65 | al"))))....into.parts-array....e |
| 5ca60 | 6c 73 65 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 | lse.if.(plist-get.part.:textfile |
| 5ca80 | 29 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 0a 20 20 20 20 | ).collect....`(:type."text"..... |
| 5caa0 | 20 3a 74 65 78 74 20 2c 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 | .:text.,(with-temp-buffer....... |
| 5cac0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 | ........(gptel--insert-file-stri |
| 5cae0 | 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 | ng.(plist-get.part.:textfile)).. |
| 5cb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 | .............(buffer-string))).. |
| 5cb20 | 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 | ..into.parts-array....finally.re |
| 5cb40 | 74 75 72 6e 20 28 76 63 6f 6e 63 61 74 20 70 61 72 74 73 2d 61 72 72 61 79 29 29 29 0a 0a 28 63 | turn.(vconcat.parts-array)))..(c |
| 5cb60 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f | l-defmethod.gptel--wrap-user-pro |
| 5cb80 | 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 | mpt.((_backend.gptel-anthropic). |
| 5cba0 | 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | prompts......................... |
| 5cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 6a 65 63 74 2d | ...............&optional.inject- |
| 5cbe0 | 6d 65 64 69 61 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 72 6f | media)..."Wrap.the.last.user.pro |
| 5cc00 | 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 65 78 74 20 | mpt.in.PROMPTS.with.the.context. |
| 5cc20 | 73 74 72 69 6e 67 2e 0a 0a 49 66 20 49 4e 4a 45 43 54 2d 4d 45 44 49 41 20 69 73 20 6e 6f 6e 2d | string...If.INJECT-MEDIA.is.non- |
| 5cc40 | 6e 69 6c 20 77 72 61 70 20 69 74 20 77 69 74 68 20 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 64 20 | nil.wrap.it.with.base64-encoded. |
| 5cc60 | 6d 65 64 69 61 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 28 | media.files.in.the.context."...( |
| 5cc80 | 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 | if.inject-media.......;;.Wrap.th |
| 5cca0 | 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 | e.first.user.prompt.with.include |
| 5ccc0 | 64 20 6d 65 64 69 61 20 66 69 6c 65 73 2f 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 20 20 28 77 68 | d.media.files/contexts.......(wh |
| 5cce0 | 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | en-let*.((media-list.(gptel-cont |
| 5cd00 | 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 | ext--collect-media))).........(c |
| 5cd20 | 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 | l-callf.(lambda.(current)....... |
| 5cd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 | ..............(vconcat.......... |
| 5cd60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 70 61 | ............(gptel--anthropic-pa |
| 5cd80 | 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 6d 65 64 69 61 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 | rse-multipart.media-list)....... |
| 5cda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 63 75 72 72 | ...............(cl-typecase.curr |
| 5cdc0 | 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 | ent........................(stri |
| 5cde0 | 6e 67 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 63 75 72 72 65 6e | ng.`((:type."text".:text.,curren |
| 5ce00 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 | t)))........................(vec |
| 5ce20 | 74 6f 72 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tor.current).................... |
| 5ce40 | 20 20 20 20 28 74 20 63 75 72 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ....(t.current)))).............( |
| 5ce60 | 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 20 3a 63 6f 6e 74 65 6e 74 | plist-get.(car.prompts).:content |
| 5ce80 | 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 72 | ))).....;;.Wrap.the.last.user.pr |
| 5cea0 | 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 74 65 78 74 20 63 6f 6e 74 65 78 74 73 | ompt.with.included.text.contexts |
| 5cec0 | 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 29 | .....(cl-callf.(lambda.(current) |
| 5cee0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 63 | .................(cl-etypecase.c |
| 5cf00 | 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 | urrent...................(string |
| 5cf20 | 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 63 75 72 72 65 6e 74 29 29 0a | .(gptel-context--wrap.current)). |
| 5cf40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 20 28 69 66 2d 6c 65 | ..................(vector.(if-le |
| 5cf60 | 74 2a 20 28 28 77 72 61 70 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 | t*.((wrapped.(gptel-context--wra |
| 5cf80 | 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.nil)))........................ |
| 5cfa0 | 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 | .......(vconcat.`((:type."text". |
| 5cfc0 | 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :text.,wrapped))................ |
| 5cfe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 29 | ........................current) |
| 5d000 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 | .............................cur |
| 5d020 | 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 | rent)))).........(plist-get.(car |
| 5d040 | 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 0a 3b | .(last.prompts)).:content))))..; |
| 5d060 | 3b 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 28 67 70 74 | ;.(if-let*.((context-string.(gpt |
| 5d080 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 74 72 69 6e 67 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | el-context--string.gptel-context |
| 5d0a0 | 2d 2d 61 6c 69 73 74 29 29 29 0a 3b 3b 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d | --alist))).;;.....(cl-callf.(lam |
| 5d0c0 | 62 64 61 20 28 70 72 65 76 69 6f 75 73 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.(previous).;;............... |
| 5d0e0 | 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 70 72 65 76 69 6f 75 73 0a 3b 3b 20 20 20 20 20 20 | ..(cl-typecase.previous.;;...... |
| 5d100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 20 63 6f 6e | .............(string.(concat.con |
| 5d120 | 74 65 78 74 2d 73 74 72 69 6e 67 20 70 72 65 76 69 6f 75 73 29 29 0a 3b 3b 20 20 20 20 20 20 20 | text-string.previous)).;;....... |
| 5d140 | 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 20 28 76 63 6f 6e 63 61 74 20 60 28 28 | ............(vector.(vconcat.`(( |
| 5d160 | 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 70 72 65 76 69 6f 75 73 29 29 0a 3b | :type."text".:text.,previous)).; |
| 5d180 | 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ;............................... |
| 5d1a0 | 20 20 20 20 20 70 72 65 76 69 6f 75 73 29 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....previous)).;;.............. |
| 5d1c0 | 20 20 20 20 20 28 74 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 29 29 0a 3b 3b 20 20 20 20 | .....(t.context-string))).;;.... |
| 5d1e0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 | .....(plist-get.(car.(last.promp |
| 5d200 | 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 | ts)).:content)))..(defconst.gpte |
| 5d220 | 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 28 63 6c 61 75 64 65 2d | l--anthropic-models...'((claude- |
| 5d240 | 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 0a 20 20 20 20 20 3a 64 65 73 63 72 69 | 3-7-sonnet-20250219......:descri |
| 5d260 | 70 74 69 6f 6e 20 22 48 79 62 72 69 64 20 6d 6f 64 65 6c 20 63 61 70 61 62 6c 65 20 6f 66 20 73 | ption."Hybrid.model.capable.of.s |
| 5d280 | 74 61 6e 64 61 72 64 20 74 68 69 6e 6b 69 6e 67 20 61 6e 64 20 65 78 74 65 6e 64 65 64 20 74 68 | tandard.thinking.and.extended.th |
| 5d2a0 | 69 6e 6b 69 6e 67 20 6d 6f 64 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | inking.modes"......:capabilities |
| 5d2c0 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 | .(media.tool-use.cache)......:mi |
| 5d2e0 | 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e | me-types.("image/jpeg"."image/pn |
| 5d300 | 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 | g"."image/gif"."image/webp"."app |
| 5d320 | 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | lication/pdf")......:context-win |
| 5d340 | 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 | dow.200......:input-cost.3...... |
| 5d360 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 | :output-cost.15......:cutoff-dat |
| 5d380 | 65 20 22 32 30 32 35 2d 30 32 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d | e."2025-02").....(claude-sonnet- |
| 5d3a0 | 34 2d 32 30 32 35 30 35 31 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 | 4-20250514......:description."Hi |
| 5d3c0 | 67 68 2d 70 65 72 66 6f 72 6d 61 6e 63 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 65 78 63 65 70 74 | gh-performance.model.with.except |
| 5d3e0 | 69 6f 6e 61 6c 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 65 66 66 69 63 69 65 6e 63 79 22 0a | ional.reasoning.and.efficiency". |
| 5d400 | 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 | .....:capabilities.(media.tool-u |
| 5d420 | 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 | se.cache)......:mime-types.("ima |
| 5d440 | 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 | ge/jpeg"."image/png"."image/gif" |
| 5d460 | 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 | ."image/webp"."application/pdf") |
| 5d480 | 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a | ......:context-window.200......: |
| 5d4a0 | 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 | input-cost.3......:output-cost.1 |
| 5d4c0 | 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 | 5......:cutoff-date."2025-03").. |
| 5d4e0 | 20 20 20 28 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 0a 20 20 20 20 20 | ...(claude-opus-4-20250514...... |
| 5d500 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 63 61 70 61 62 6c 65 20 6d 6f 64 65 6c | :description."Most.capable.model |
| 5d520 | 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 61 64 76 61 6e | .for.complex.reasoning.and.advan |
| 5d540 | 63 65 64 20 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 | ced.coding"......:capabilities.( |
| 5d560 | 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 | media.tool-use.cache)......:mime |
| 5d580 | 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 | -types.("image/jpeg"."image/png" |
| 5d5a0 | 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 | ."image/gif"."image/webp"."appli |
| 5d5c0 | 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f | cation/pdf")......:context-windo |
| 5d5e0 | 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a | w.200......:input-cost.15......: |
| 5d600 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 | output-cost.75......:cutoff-date |
| 5d620 | 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e | ."2025-03").....(claude-3-5-sonn |
| 5d640 | 65 74 2d 32 30 32 34 31 30 32 32 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 | et-20241022......:description."H |
| 5d660 | 69 67 68 65 73 74 20 6c 65 76 65 6c 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 | ighest.level.of.intelligence.and |
| 5d680 | 20 63 61 70 61 62 69 6c 69 74 79 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 | .capability"......:capabilities. |
| 5d6a0 | 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d | (media.tool-use.cache)......:mim |
| 5d6c0 | 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 | e-types.("image/jpeg"."image/png |
| 5d6e0 | 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c | "."image/gif"."image/webp"."appl |
| 5d700 | 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 | ication/pdf")......:context-wind |
| 5d720 | 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a | ow.200......:input-cost.3......: |
| 5d740 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 | output-cost.15......:cutoff-date |
| 5d760 | 20 22 32 30 32 34 2d 30 34 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e | ."2024-04").....(claude-3-5-sonn |
| 5d780 | 65 74 2d 32 30 32 34 30 36 32 30 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 | et-20240620......:description."H |
| 5d7a0 | 69 67 68 65 73 74 20 6c 65 76 65 6c 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 | ighest.level.of.intelligence.and |
| 5d7c0 | 20 63 61 70 61 62 69 6c 69 74 79 20 28 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 29 22 0a 20 | .capability.(earlier.version)".. |
| 5d7e0 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 | ....:capabilities.(media.tool-us |
| 5d800 | 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | e.cache)......:mime-types.("imag |
| 5d820 | 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 | e/jpeg"."image/png"."image/gif". |
| 5d840 | 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 | "image/webp")......:context-wind |
| 5d860 | 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a | ow.200......:input-cost.3......: |
| 5d880 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 | output-cost.15......:cutoff-date |
| 5d8a0 | 20 22 32 30 32 34 2d 30 34 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 68 61 69 6b | ."2024-04").....(claude-3-5-haik |
| 5d8c0 | 75 2d 32 30 32 34 31 30 32 32 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e | u-20241022......:description."In |
| 5d8e0 | 74 65 6c 6c 69 67 65 6e 63 65 20 61 74 20 62 6c 61 7a 69 6e 67 20 73 70 65 65 64 73 22 0a 20 20 | telligence.at.blazing.speeds"... |
| 5d900 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 | ...:capabilities.(tool-use.cache |
| 5d920 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 | )......:context-window.200...... |
| 5d940 | 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f | :input-cost.1.00......:output-co |
| 5d960 | 73 74 20 35 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d | st.5.00......:cutoff-date."2024- |
| 5d980 | 30 37 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 | 07").....(claude-3-opus-20240229 |
| 5d9a0 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 6f 70 2d 6c 65 76 65 6c 20 70 65 | ......:description."Top-level.pe |
| 5d9c0 | 72 66 6f 72 6d 61 6e 63 65 2c 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 2c 20 66 6c 75 65 6e 63 79 | rformance,.intelligence,.fluency |
| 5d9e0 | 2c 20 61 6e 64 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 | ,.and.understanding"......:capab |
| 5da00 | 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 | ilities.(media.tool-use.cache).. |
| 5da20 | 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 | ....:mime-types.("image/jpeg"."i |
| 5da40 | 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 | mage/png"."image/gif"."image/web |
| 5da60 | 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 | p")......:context-window.200.... |
| 5da80 | 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f | ..:input-cost.15......:output-co |
| 5daa0 | 73 74 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 30 38 | st.75......:cutoff-date."2023-08 |
| 5dac0 | 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 | ").....(claude-3-sonnet-20240229 |
| 5dae0 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 42 61 6c 61 6e 63 65 20 6f 66 20 69 | ......:description."Balance.of.i |
| 5db00 | 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 73 70 65 65 64 20 28 6c 65 67 61 63 79 20 6d 6f | ntelligence.and.speed.(legacy.mo |
| 5db20 | 64 65 6c 29 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 | del)"......:capabilities.(media. |
| 5db40 | 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 | tool-use)......:mime-types.("ima |
| 5db60 | 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 | ge/jpeg"."image/png"."image/gif" |
| 5db80 | 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | ."image/webp")......:context-win |
| 5dba0 | 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 | dow.200......:input-cost.3...... |
| 5dbc0 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 | :output-cost.15......:cutoff-dat |
| 5dbe0 | 65 20 22 32 30 32 33 2d 30 38 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 | e."2023-08").....(claude-3-haiku |
| 5dc00 | 2d 32 30 32 34 30 33 30 37 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 | -20240307......:description."Fas |
| 5dc20 | 74 20 61 6e 64 20 6d 6f 73 74 20 63 6f 6d 70 61 63 74 20 6d 6f 64 65 6c 20 66 6f 72 20 6e 65 61 | t.and.most.compact.model.for.nea |
| 5dc40 | 72 2d 69 6e 73 74 61 6e 74 20 72 65 73 70 6f 6e 73 69 76 65 6e 65 73 73 22 0a 20 20 20 20 20 3a | r-instant.responsiveness"......: |
| 5dc60 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 | capabilities.(tool-use.cache)... |
| 5dc80 | 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 | ...:context-window.200......:inp |
| 5dca0 | 75 74 2d 63 6f 73 74 20 30 2e 32 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 | ut-cost.0.25......:output-cost.1 |
| 5dcc0 | 2e 32 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 30 38 22 29 | .25......:cutoff-date."2023-08") |
| 5dce0 | 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 41 6e 74 68 72 6f 70 69 63 | )..."List.of.available.Anthropic |
| 5dd00 | 20 6d 6f 64 65 6c 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 70 72 6f 70 65 72 74 69 65 | .models.and.associated.propertie |
| 5dd20 | 73 2e 0a 4b 65 79 73 3a 0a 0a 2d 20 60 3a 64 65 73 63 72 69 70 74 69 6f 6e 27 3a 20 61 20 62 72 | s..Keys:..-.`:description':.a.br |
| 5dd40 | 69 65 66 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d | ief.description.of.the.model...- |
| 5dd60 | 20 60 3a 63 61 70 61 62 69 6c 69 74 69 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 63 61 70 61 | .`:capabilities':.a.list.of.capa |
| 5dd80 | 62 69 6c 69 74 69 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 6d 6f 64 65 6c 2e | bilities.supported.by.the.model. |
| 5dda0 | 0a 0a 2d 20 60 3a 6d 69 6d 65 2d 74 79 70 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 | ..-.`:mime-types':.a.list.of.sup |
| 5ddc0 | 70 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 73 20 66 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 | ported.MIME.types.for.media.file |
| 5dde0 | 73 2e 0a 0a 2d 20 60 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 27 3a 20 74 68 65 20 63 6f 6e | s...-.`:context-window':.the.con |
| 5de00 | 74 65 78 74 20 77 69 6e 64 6f 77 20 73 69 7a 65 2c 20 69 6e 20 74 68 6f 75 73 61 6e 64 73 20 6f | text.window.size,.in.thousands.o |
| 5de20 | 66 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 69 6e 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 | f.tokens...-.`:input-cost':.the. |
| 5de40 | 69 6e 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f 6c 6c 61 72 73 20 70 65 72 20 6d 69 | input.cost,.in.US.dollars.per.mi |
| 5de60 | 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 6f 75 74 70 75 74 2d 63 6f 73 74 27 3a | llion.tokens...-.`:output-cost': |
| 5de80 | 20 74 68 65 20 6f 75 74 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f 6c 6c 61 72 73 20 | .the.output.cost,.in.US.dollars. |
| 5dea0 | 70 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 63 75 74 6f 66 66 2d | per.million.tokens...-.`:cutoff- |
| 5dec0 | 64 61 74 65 27 3a 20 74 68 65 20 6b 6e 6f 77 6c 65 64 67 65 20 63 75 74 6f 66 66 20 64 61 74 65 | date':.the.knowledge.cutoff.date |
| 5dee0 | 2e 0a 0a 2d 20 60 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 27 3a 20 61 20 70 6c 69 73 74 20 | ...-.`:request-params':.a.plist. |
| 5df00 | 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 65 74 65 72 73 | of.additional.request.parameters |
| 5df20 | 20 74 6f 0a 20 20 69 6e 63 6c 75 64 65 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 6d 6f | .to...include.when.using.this.mo |
| 5df40 | 64 65 6c 2e 0a 0a 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 41 6e 74 68 | del...Information.about.the.Anth |
| 5df60 | 72 6f 70 69 63 20 6d 6f 64 65 6c 73 20 77 61 73 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 | ropic.models.was.obtained.from.t |
| 5df80 | 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 63 6f 6d 70 61 72 69 73 6f 6e 20 74 61 62 6c 65 3a 0a 0a | he.following.comparison.table:.. |
| 5dfa0 | 55 52 4c 20 60 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 2f | URL.`https://docs.anthropic.com/ |
| 5dfc0 | 65 6e 2f 64 6f 63 73 2f 61 62 6f 75 74 2d 63 6c 61 75 64 65 2f 6d 6f 64 65 6c 73 23 6d 6f 64 65 | en/docs/about-claude/models#mode |
| 5dfe0 | 6c 2d 63 6f 6d 70 61 72 69 73 6f 6e 2d 74 61 62 6c 65 27 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 | l-comparison-table'")..;;;###aut |
| 5e000 | 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 | oload.(cl-defun.gptel-make-anthr |
| 5e020 | 6f 70 69 63 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 | opic.....(name.&key.curl-args.st |
| 5e040 | 72 65 61 6d 20 6b 65 79 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 | ream.key.request-params......... |
| 5e060 | 20 20 28 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 | ..(header............(lambda.(). |
| 5e080 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 | (when-let*.((key.(gptel--get-api |
| 5e0a0 | 2d 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 78 | -key)))....................`(("x |
| 5e0c0 | 2d 61 70 69 2d 6b 65 79 22 20 2e 20 2c 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -api-key"...,key)............... |
| 5e0e0 | 20 20 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 32 | .......("anthropic-version"..."2 |
| 5e100 | 30 32 33 2d 30 36 2d 30 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 023-06-01")..................... |
| 5e120 | 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 70 64 66 73 2d 32 30 32 34 2d | .("anthropic-beta"..."pdfs-2024- |
| 5e140 | 30 39 2d 32 35 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 | 09-25")......................("a |
| 5e160 | 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 | nthropic-beta"..."prompt-caching |
| 5e180 | 2d 32 30 32 34 2d 30 37 2d 33 31 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 | -2024-07-31")))))...........(mod |
| 5e1a0 | 65 6c 73 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c 73 29 0a 20 20 20 | els.gptel--anthropic-models).... |
| 5e1c0 | 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 22 | .......(host."api.anthropic.com" |
| 5e1e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 0a 20 | )...........(protocol."https").. |
| 5e200 | 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 6d 65 73 73 61 67 65 73 | .........(endpoint."/v1/messages |
| 5e220 | 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 | "))..."Register.an.Anthropic.API |
| 5e240 | 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 | -compatible.backend.for.gptel.wi |
| 5e260 | 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 | th.NAME...Keyword.arguments:..CU |
| 5e280 | 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 | RL-ARGS.(optional).is.a.list.of. |
| 5e2a0 | 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 | additional.Curl.arguments...HOST |
| 5e2c0 | 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 | .(optional).is.the.API.host,.\"a |
| 5e2e0 | 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a | pi.anthropic.com\".by.default... |
| 5e300 | 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f | MODELS.is.a.list.of.available.mo |
| 5e320 | 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 64 64 69 74 69 6f 6e 61 | del.names,.as.symbols..Additiona |
| 5e340 | 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 70 6f 72 74 65 64 20 4c | lly,.you.can.specify.supported.L |
| 5e360 | 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 69 6f 6e 20 6f 72 20 74 | LM.capabilities.like.vision.or.t |
| 5e380 | 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 6c 69 73 74 20 74 6f 20 | ool-use.by.appending.a.plist.to. |
| 5e3a0 | 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c | the.model.with.more.information, |
| 5e3c0 | 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 20 2e 20 70 6c 69 | .in.the.form...(model-name...pli |
| 5e3e0 | 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 6c 79 20 72 65 63 | st)..For.a.list.of.currently.rec |
| 5e400 | 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 2d | ognized.plist.keys,.see.`gptel-- |
| 5e420 | 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c 73 27 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 | anthropic-models'..An.example.of |
| 5e440 | 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 69 6e 67 | .a.model.specification.including |
| 5e460 | 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 63 73 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c | .both.kinds.of.specs:..:models.\ |
| 5e480 | 5c 3d 27 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 30 33 30 37 20 20 20 20 20 | \='(claude-3-haiku-20240307..... |
| 5e4a0 | 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d 70 6c 65 20 73 70 65 63 73 0a 20 20 63 6c 61 75 64 65 | ..........;Simple.specs...claude |
| 5e4c0 | 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 0a 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 | -3-opus-20240229...(claude-3-5-s |
| 5e4e0 | 6f 6e 6e 65 74 2d 32 30 32 34 30 36 32 30 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 | onnet-20240620...........;Full.s |
| 5e500 | 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 20 5c 22 42 61 6c 61 6e 63 65 20 6f | pec....:description..\"Balance.o |
| 5e520 | 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 73 70 65 65 64 5c 22 0a 20 20 20 3a 63 | f.intelligence.and.speed\"....:c |
| 5e540 | 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 20 6a 73 6f 6e 29 0a 20 20 | apabilities.(media.tool.json)... |
| 5e560 | 20 3a 6d 69 6d 65 2d 74 79 70 65 73 0a 20 20 20 28 5c 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 20 | .:mime-types....(\"image/jpeg\". |
| 5e580 | 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 20 5c 22 69 6d 61 67 65 2f 67 69 66 5c 22 20 5c 22 69 6d | \"image/png\".\"image/gif\".\"im |
| 5e5a0 | 61 67 65 2f 77 65 62 70 5c 22 29 29 29 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 | age/webp\")))..STREAM.is.a.boole |
| 5e5c0 | 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 | an.to.toggle.streaming.responses |
| 5e5e0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 | ,.defaults.to.false...PROTOCOL.( |
| 5e600 | 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c | optional).specifies.the.protocol |
| 5e620 | 2c 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f | ,.https.by.default...ENDPOINT.(o |
| 5e640 | 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 | ptional).is.the.API.endpoint.for |
| 5e660 | 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 2f | .completions,.defaults.to.\"/v1/ |
| 5e680 | 6d 65 73 73 61 67 65 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 | messages\"...HEADER.(optional).i |
| 5e6a0 | 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 | s.for.additional.headers.to.send |
| 5e6c0 | 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 | .with.each.request...It.should.b |
| 5e6e0 | 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 | e.an.alist.or.a.function.that.re |
| 5e700 | 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e | tuns.an.alist,.like:..((\"Conten |
| 5e720 | 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 | t-Type\"...\"application/json\") |
| 5e740 | 29 0a 0a 4b 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 | )..KEY.is.a.variable.whose.value |
| 5e760 | 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 | .is.the.API.key,.or.function.tha |
| 5e780 | 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 | t.returns.the.key...REQUEST-PARA |
| 5e7a0 | 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 | MS.(optional).is.a.plist.of.addi |
| 5e7c0 | 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 65 72 73 20 28 | tional.HTTP.request.parameters.( |
| 5e7e0 | 61 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 | as.plist.keys).and.values.suppor |
| 5e800 | 74 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 74 6f 20 73 65 | ted.by.the.API...Use.these.to.se |
| 5e820 | 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 | t.parameters.that.gptel.does.not |
| 5e840 | 20 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 22 0a 20 20 28 64 | .provide.user.options.for."...(d |
| 5e860 | 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b | eclare.(indent.1))...(let.((back |
| 5e880 | 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 0a 20 20 20 20 20 | end.(gptel--make-anthropic...... |
| 5e8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 | .............:curl-args.curl-arg |
| 5e8c0 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 | s...................:name.name.. |
| 5e8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 | .................:host.host..... |
| 5e900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 | ..............:header.header.... |
| 5e920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 | ...............:key.key......... |
| 5e940 | 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 | ..........:models.(gptel--proces |
| 5e960 | 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s-models.models)................ |
| 5e980 | 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 | ...:protocol.protocol........... |
| 5e9a0 | 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 | ........:endpoint.endpoint...... |
| 5e9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 | .............:stream.stream..... |
| 5e9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 | ..............:request-params.re |
| 5ea00 | 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | quest-params...................: |
| 5ea20 | 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | url.(if.protocol................ |
| 5ea40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f | ............(concat.protocol.":/ |
| 5ea60 | 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | /".host.endpoint)............... |
| 5ea80 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 | ...........(concat.host.endpoint |
| 5eaa0 | 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 | ))))).....(prog1.backend.......( |
| 5eac0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 | setf.(alist-get.name.gptel--know |
| 5eae0 | 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-backends...................... |
| 5eb00 | 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..nil.nil.#'equal).............. |
| 5eb20 | 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 | .....backend))))..(provide.'gpte |
| 5eb40 | 6c 2d 61 6e 74 68 72 6f 70 69 63 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 | l-anthropic).;;;.gptel-anthropic |
| 5eb60 | 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 | .el.ends.here..;;.Local.Variable |
| 5eb80 | 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f | s:.;;.byte-compile-warnings:.(no |
| 5eba0 | 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 0a 00 00 00 00 00 00 00 00 00 | t.docstrings).;;.End:........... |
| 5ebc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ebe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ec00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8.5/LICENSE........... |
| 5ec20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ec40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ec60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 5ec80 | 30 31 30 34 35 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 34 35 34 00 20 30 00 00 00 | 0104511.00000000000.012454..0... |
| 5eca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ecc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ece0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ed00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 5ed20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 5ed40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ed60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ed80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5eda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5edc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ede0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ee00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 47 4e 55 20 47 45 4e 45 52 41 4c 20 | ....................GNU.GENERAL. |
| 5ee20 | 50 55 42 4c 49 43 20 4c 49 43 45 4e 53 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | PUBLIC.LICENSE.................. |
| 5ee40 | 20 20 20 20 20 20 56 65 72 73 69 6f 6e 20 33 2c 20 32 39 20 4a 75 6e 65 20 32 30 30 37 0a 0a 20 | ......Version.3,.29.June.2007... |
| 5ee60 | 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 37 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 | Copyright.(C).2007.Free.Software |
| 5ee80 | 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 20 3c 68 74 74 70 73 3a 2f 2f 66 73 66 2e 6f | .Foundation,.Inc..<https://fsf.o |
| 5eea0 | 72 67 2f 3e 0a 20 45 76 65 72 79 6f 6e 65 20 69 73 20 70 65 72 6d 69 74 74 65 64 20 74 6f 20 63 | rg/>..Everyone.is.permitted.to.c |
| 5eec0 | 6f 70 79 20 61 6e 64 20 64 69 73 74 72 69 62 75 74 65 20 76 65 72 62 61 74 69 6d 20 63 6f 70 69 | opy.and.distribute.verbatim.copi |
| 5eee0 | 65 73 0a 20 6f 66 20 74 68 69 73 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 62 75 | es..of.this.license.document,.bu |
| 5ef00 | 74 20 63 68 61 6e 67 69 6e 67 20 69 74 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 2e 0a 0a 20 | t.changing.it.is.not.allowed.... |
| 5ef20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 72 65 61 6d | ...........................Pream |
| 5ef40 | 62 6c 65 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 | ble....The.GNU.General.Public.Li |
| 5ef60 | 63 65 6e 73 65 20 69 73 20 61 20 66 72 65 65 2c 20 63 6f 70 79 6c 65 66 74 20 6c 69 63 65 6e 73 | cense.is.a.free,.copyleft.licens |
| 5ef80 | 65 20 66 6f 72 0a 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f | e.for.software.and.other.kinds.o |
| 5efa0 | 66 20 77 6f 72 6b 73 2e 0a 0a 20 20 54 68 65 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 6d 6f 73 | f.works.....The.licenses.for.mos |
| 5efc0 | 74 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 6f 74 68 65 72 20 70 72 61 63 74 69 63 61 6c 20 77 | t.software.and.other.practical.w |
| 5efe0 | 6f 72 6b 73 20 61 72 65 20 64 65 73 69 67 6e 65 64 0a 74 6f 20 74 61 6b 65 20 61 77 61 79 20 79 | orks.are.designed.to.take.away.y |
| 5f000 | 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f 20 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 | our.freedom.to.share.and.change. |
| 5f020 | 74 68 65 20 77 6f 72 6b 73 2e 20 20 42 79 20 63 6f 6e 74 72 61 73 74 2c 0a 74 68 65 20 47 4e 55 | the.works...By.contrast,.the.GNU |
| 5f040 | 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 73 20 69 6e 74 65 6e | .General.Public.License.is.inten |
| 5f060 | 64 65 64 20 74 6f 20 67 75 61 72 61 6e 74 65 65 20 79 6f 75 72 20 66 72 65 65 64 6f 6d 20 74 6f | ded.to.guarantee.your.freedom.to |
| 5f080 | 0a 73 68 61 72 65 20 61 6e 64 20 63 68 61 6e 67 65 20 61 6c 6c 20 76 65 72 73 69 6f 6e 73 20 6f | .share.and.change.all.versions.o |
| 5f0a0 | 66 20 61 20 70 72 6f 67 72 61 6d 2d 2d 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 69 74 20 72 65 6d | f.a.program--to.make.sure.it.rem |
| 5f0c0 | 61 69 6e 73 20 66 72 65 65 0a 73 6f 66 74 77 61 72 65 20 66 6f 72 20 61 6c 6c 20 69 74 73 20 75 | ains.free.software.for.all.its.u |
| 5f0e0 | 73 65 72 73 2e 20 20 57 65 2c 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 | sers...We,.the.Free.Software.Fou |
| 5f100 | 6e 64 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 | ndation,.use.the.GNU.General.Pub |
| 5f120 | 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 73 74 20 6f 66 20 6f 75 72 20 73 6f 66 74 | lic.License.for.most.of.our.soft |
| 5f140 | 77 61 72 65 3b 20 69 74 20 61 70 70 6c 69 65 73 20 61 6c 73 6f 20 74 6f 0a 61 6e 79 20 6f 74 68 | ware;.it.applies.also.to.any.oth |
| 5f160 | 65 72 20 77 6f 72 6b 20 72 65 6c 65 61 73 65 64 20 74 68 69 73 20 77 61 79 20 62 79 20 69 74 73 | er.work.released.this.way.by.its |
| 5f180 | 20 61 75 74 68 6f 72 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 69 74 20 74 6f 0a 79 | .authors...You.can.apply.it.to.y |
| 5f1a0 | 6f 75 72 20 70 72 6f 67 72 61 6d 73 2c 20 74 6f 6f 2e 0a 0a 20 20 57 68 65 6e 20 77 65 20 73 70 | our.programs,.too.....When.we.sp |
| 5f1c0 | 65 61 6b 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2c 20 77 65 20 61 72 65 20 72 65 66 | eak.of.free.software,.we.are.ref |
| 5f1e0 | 65 72 72 69 6e 67 20 74 6f 20 66 72 65 65 64 6f 6d 2c 20 6e 6f 74 0a 70 72 69 63 65 2e 20 20 4f | erring.to.freedom,.not.price...O |
| 5f200 | 75 72 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 73 20 61 72 65 20 64 | ur.General.Public.Licenses.are.d |
| 5f220 | 65 73 69 67 6e 65 64 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 79 6f 75 0a 68 61 | esigned.to.make.sure.that.you.ha |
| 5f240 | 76 65 20 74 68 65 20 66 72 65 65 64 6f 6d 20 74 6f 20 64 69 73 74 72 69 62 75 74 65 20 63 6f 70 | ve.the.freedom.to.distribute.cop |
| 5f260 | 69 65 73 20 6f 66 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 28 61 6e 64 20 63 68 61 72 67 65 | ies.of.free.software.(and.charge |
| 5f280 | 20 66 6f 72 0a 74 68 65 6d 20 69 66 20 79 6f 75 20 77 69 73 68 29 2c 20 74 68 61 74 20 79 6f 75 | .for.them.if.you.wish),.that.you |
| 5f2a0 | 20 72 65 63 65 69 76 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 6f 72 20 63 61 6e 20 67 65 74 20 | .receive.source.code.or.can.get. |
| 5f2c0 | 69 74 20 69 66 20 79 6f 75 0a 77 61 6e 74 20 69 74 2c 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 | it.if.you.want.it,.that.you.can. |
| 5f2e0 | 63 68 61 6e 67 65 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 6f 72 20 75 73 65 20 70 69 65 63 65 | change.the.software.or.use.piece |
| 5f300 | 73 20 6f 66 20 69 74 20 69 6e 20 6e 65 77 0a 66 72 65 65 20 70 72 6f 67 72 61 6d 73 2c 20 61 6e | s.of.it.in.new.free.programs,.an |
| 5f320 | 64 20 74 68 61 74 20 79 6f 75 20 6b 6e 6f 77 20 79 6f 75 20 63 61 6e 20 64 6f 20 74 68 65 73 65 | d.that.you.know.you.can.do.these |
| 5f340 | 20 74 68 69 6e 67 73 2e 0a 0a 20 20 54 6f 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 | .things.....To.protect.your.righ |
| 5f360 | 74 73 2c 20 77 65 20 6e 65 65 64 20 74 6f 20 70 72 65 76 65 6e 74 20 6f 74 68 65 72 73 20 66 72 | ts,.we.need.to.prevent.others.fr |
| 5f380 | 6f 6d 20 64 65 6e 79 69 6e 67 20 79 6f 75 0a 74 68 65 73 65 20 72 69 67 68 74 73 20 6f 72 20 61 | om.denying.you.these.rights.or.a |
| 5f3a0 | 73 6b 69 6e 67 20 79 6f 75 20 74 6f 20 73 75 72 72 65 6e 64 65 72 20 74 68 65 20 72 69 67 68 74 | sking.you.to.surrender.the.right |
| 5f3c0 | 73 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 79 6f 75 20 68 61 76 65 0a 63 65 72 74 61 69 6e 20 | s...Therefore,.you.have.certain. |
| 5f3e0 | 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 62 75 | responsibilities.if.you.distribu |
| 5f400 | 74 65 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 6f 72 20 69 66 | te.copies.of.the.software,.or.if |
| 5f420 | 0a 79 6f 75 20 6d 6f 64 69 66 79 20 69 74 3a 20 72 65 73 70 6f 6e 73 69 62 69 6c 69 74 69 65 73 | .you.modify.it:.responsibilities |
| 5f440 | 20 74 6f 20 72 65 73 70 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 6f 74 68 65 72 | .to.respect.the.freedom.of.other |
| 5f460 | 73 2e 0a 0a 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 64 69 73 74 72 69 | s.....For.example,.if.you.distri |
| 5f480 | 62 75 74 65 20 63 6f 70 69 65 73 20 6f 66 20 73 75 63 68 20 61 20 70 72 6f 67 72 61 6d 2c 20 77 | bute.copies.of.such.a.program,.w |
| 5f4a0 | 68 65 74 68 65 72 0a 67 72 61 74 69 73 20 6f 72 20 66 6f 72 20 61 20 66 65 65 2c 20 79 6f 75 20 | hether.gratis.or.for.a.fee,.you. |
| 5f4c0 | 6d 75 73 74 20 70 61 73 73 20 6f 6e 20 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 | must.pass.on.to.the.recipients.t |
| 5f4e0 | 68 65 20 73 61 6d 65 0a 66 72 65 65 64 6f 6d 73 20 74 68 61 74 20 79 6f 75 20 72 65 63 65 69 76 | he.same.freedoms.that.you.receiv |
| 5f500 | 65 64 2e 20 20 59 6f 75 20 6d 75 73 74 20 6d 61 6b 65 20 73 75 72 65 20 74 68 61 74 20 74 68 65 | ed...You.must.make.sure.that.the |
| 5f520 | 79 2c 20 74 6f 6f 2c 20 72 65 63 65 69 76 65 0a 6f 72 20 63 61 6e 20 67 65 74 20 74 68 65 20 73 | y,.too,.receive.or.can.get.the.s |
| 5f540 | 6f 75 72 63 65 20 63 6f 64 65 2e 20 20 41 6e 64 20 79 6f 75 20 6d 75 73 74 20 73 68 6f 77 20 74 | ource.code...And.you.must.show.t |
| 5f560 | 68 65 6d 20 74 68 65 73 65 20 74 65 72 6d 73 20 73 6f 20 74 68 65 79 0a 6b 6e 6f 77 20 74 68 65 | hem.these.terms.so.they.know.the |
| 5f580 | 69 72 20 72 69 67 68 74 73 2e 0a 0a 20 20 44 65 76 65 6c 6f 70 65 72 73 20 74 68 61 74 20 75 73 | ir.rights.....Developers.that.us |
| 5f5a0 | 65 20 74 68 65 20 47 4e 55 20 47 50 4c 20 70 72 6f 74 65 63 74 20 79 6f 75 72 20 72 69 67 68 74 | e.the.GNU.GPL.protect.your.right |
| 5f5c0 | 73 20 77 69 74 68 20 74 77 6f 20 73 74 65 70 73 3a 0a 28 31 29 20 61 73 73 65 72 74 20 63 6f 70 | s.with.two.steps:.(1).assert.cop |
| 5f5e0 | 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 28 32 29 20 | yright.on.the.software,.and.(2). |
| 5f600 | 6f 66 66 65 72 20 79 6f 75 20 74 68 69 73 20 4c 69 63 65 6e 73 65 0a 67 69 76 69 6e 67 20 79 6f | offer.you.this.License.giving.yo |
| 5f620 | 75 20 6c 65 67 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 63 6f 70 79 2c 20 64 69 73 74 | u.legal.permission.to.copy,.dist |
| 5f640 | 72 69 62 75 74 65 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 2e 0a 0a 20 20 46 6f 72 20 | ribute.and/or.modify.it.....For. |
| 5f660 | 74 68 65 20 64 65 76 65 6c 6f 70 65 72 73 27 20 61 6e 64 20 61 75 74 68 6f 72 73 27 20 70 72 6f | the.developers'.and.authors'.pro |
| 5f680 | 74 65 63 74 69 6f 6e 2c 20 74 68 65 20 47 50 4c 20 63 6c 65 61 72 6c 79 20 65 78 70 6c 61 69 6e | tection,.the.GPL.clearly.explain |
| 5f6a0 | 73 0a 74 68 61 74 20 74 68 65 72 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 | s.that.there.is.no.warranty.for. |
| 5f6c0 | 74 68 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 2e 20 20 46 6f 72 20 62 6f 74 68 20 75 73 | this.free.software...For.both.us |
| 5f6e0 | 65 72 73 27 20 61 6e 64 0a 61 75 74 68 6f 72 73 27 20 73 61 6b 65 2c 20 74 68 65 20 47 50 4c 20 | ers'.and.authors'.sake,.the.GPL. |
| 5f700 | 72 65 71 75 69 72 65 73 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 | requires.that.modified.versions. |
| 5f720 | 62 65 20 6d 61 72 6b 65 64 20 61 73 0a 63 68 61 6e 67 65 64 2c 20 73 6f 20 74 68 61 74 20 74 68 | be.marked.as.changed,.so.that.th |
| 5f740 | 65 69 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 74 74 72 69 62 75 | eir.problems.will.not.be.attribu |
| 5f760 | 74 65 64 20 65 72 72 6f 6e 65 6f 75 73 6c 79 20 74 6f 0a 61 75 74 68 6f 72 73 20 6f 66 20 70 72 | ted.erroneously.to.authors.of.pr |
| 5f780 | 65 76 69 6f 75 73 20 76 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 53 6f 6d 65 20 64 65 76 69 63 65 73 | evious.versions.....Some.devices |
| 5f7a0 | 20 61 72 65 20 64 65 73 69 67 6e 65 64 20 74 6f 20 64 65 6e 79 20 75 73 65 72 73 20 61 63 63 65 | .are.designed.to.deny.users.acce |
| 5f7c0 | 73 73 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 72 75 6e 0a 6d 6f 64 69 66 69 65 64 20 76 65 | ss.to.install.or.run.modified.ve |
| 5f7e0 | 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 6e 73 69 64 65 20 74 68 | rsions.of.the.software.inside.th |
| 5f800 | 65 6d 2c 20 61 6c 74 68 6f 75 67 68 20 74 68 65 20 6d 61 6e 75 66 61 63 74 75 72 65 72 0a 63 61 | em,.although.the.manufacturer.ca |
| 5f820 | 6e 20 64 6f 20 73 6f 2e 20 20 54 68 69 73 20 69 73 20 66 75 6e 64 61 6d 65 6e 74 61 6c 6c 79 20 | n.do.so...This.is.fundamentally. |
| 5f840 | 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 20 61 69 6d 20 6f 66 0a 70 72 6f | incompatible.with.the.aim.of.pro |
| 5f860 | 74 65 63 74 69 6e 67 20 75 73 65 72 73 27 20 66 72 65 65 64 6f 6d 20 74 6f 20 63 68 61 6e 67 65 | tecting.users'.freedom.to.change |
| 5f880 | 20 74 68 65 20 73 6f 66 74 77 61 72 65 2e 20 20 54 68 65 20 73 79 73 74 65 6d 61 74 69 63 0a 70 | .the.software...The.systematic.p |
| 5f8a0 | 61 74 74 65 72 6e 20 6f 66 20 73 75 63 68 20 61 62 75 73 65 20 6f 63 63 75 72 73 20 69 6e 20 74 | attern.of.such.abuse.occurs.in.t |
| 5f8c0 | 68 65 20 61 72 65 61 20 6f 66 20 70 72 6f 64 75 63 74 73 20 66 6f 72 20 69 6e 64 69 76 69 64 75 | he.area.of.products.for.individu |
| 5f8e0 | 61 6c 73 20 74 6f 0a 75 73 65 2c 20 77 68 69 63 68 20 69 73 20 70 72 65 63 69 73 65 6c 79 20 77 | als.to.use,.which.is.precisely.w |
| 5f900 | 68 65 72 65 20 69 74 20 69 73 20 6d 6f 73 74 20 75 6e 61 63 63 65 70 74 61 62 6c 65 2e 20 20 54 | here.it.is.most.unacceptable...T |
| 5f920 | 68 65 72 65 66 6f 72 65 2c 20 77 65 0a 68 61 76 65 20 64 65 73 69 67 6e 65 64 20 74 68 69 73 20 | herefore,.we.have.designed.this. |
| 5f940 | 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 50 4c 20 74 6f 20 70 72 6f 68 69 62 69 74 20 74 | version.of.the.GPL.to.prohibit.t |
| 5f960 | 68 65 20 70 72 61 63 74 69 63 65 20 66 6f 72 20 74 68 6f 73 65 0a 70 72 6f 64 75 63 74 73 2e 20 | he.practice.for.those.products.. |
| 5f980 | 20 49 66 20 73 75 63 68 20 70 72 6f 62 6c 65 6d 73 20 61 72 69 73 65 20 73 75 62 73 74 61 6e 74 | .If.such.problems.arise.substant |
| 5f9a0 | 69 61 6c 6c 79 20 69 6e 20 6f 74 68 65 72 20 64 6f 6d 61 69 6e 73 2c 20 77 65 0a 73 74 61 6e 64 | ially.in.other.domains,.we.stand |
| 5f9c0 | 20 72 65 61 64 79 20 74 6f 20 65 78 74 65 6e 64 20 74 68 69 73 20 70 72 6f 76 69 73 69 6f 6e 20 | .ready.to.extend.this.provision. |
| 5f9e0 | 74 6f 20 74 68 6f 73 65 20 64 6f 6d 61 69 6e 73 20 69 6e 20 66 75 74 75 72 65 20 76 65 72 73 69 | to.those.domains.in.future.versi |
| 5fa00 | 6f 6e 73 0a 6f 66 20 74 68 65 20 47 50 4c 2c 20 61 73 20 6e 65 65 64 65 64 20 74 6f 20 70 72 6f | ons.of.the.GPL,.as.needed.to.pro |
| 5fa20 | 74 65 63 74 20 74 68 65 20 66 72 65 65 64 6f 6d 20 6f 66 20 75 73 65 72 73 2e 0a 0a 20 20 46 69 | tect.the.freedom.of.users.....Fi |
| 5fa40 | 6e 61 6c 6c 79 2c 20 65 76 65 72 79 20 70 72 6f 67 72 61 6d 20 69 73 20 74 68 72 65 61 74 65 6e | nally,.every.program.is.threaten |
| 5fa60 | 65 64 20 63 6f 6e 73 74 61 6e 74 6c 79 20 62 79 20 73 6f 66 74 77 61 72 65 20 70 61 74 65 6e 74 | ed.constantly.by.software.patent |
| 5fa80 | 73 2e 0a 53 74 61 74 65 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 61 6c 6c 6f 77 20 70 61 74 65 6e | s..States.should.not.allow.paten |
| 5faa0 | 74 73 20 74 6f 20 72 65 73 74 72 69 63 74 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 61 6e 64 20 75 | ts.to.restrict.development.and.u |
| 5fac0 | 73 65 20 6f 66 0a 73 6f 66 74 77 61 72 65 20 6f 6e 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 | se.of.software.on.general-purpos |
| 5fae0 | 65 20 63 6f 6d 70 75 74 65 72 73 2c 20 62 75 74 20 69 6e 20 74 68 6f 73 65 20 74 68 61 74 20 64 | e.computers,.but.in.those.that.d |
| 5fb00 | 6f 2c 20 77 65 20 77 69 73 68 20 74 6f 0a 61 76 6f 69 64 20 74 68 65 20 73 70 65 63 69 61 6c 20 | o,.we.wish.to.avoid.the.special. |
| 5fb20 | 64 61 6e 67 65 72 20 74 68 61 74 20 70 61 74 65 6e 74 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 | danger.that.patents.applied.to.a |
| 5fb40 | 20 66 72 65 65 20 70 72 6f 67 72 61 6d 20 63 6f 75 6c 64 0a 6d 61 6b 65 20 69 74 20 65 66 66 65 | .free.program.could.make.it.effe |
| 5fb60 | 63 74 69 76 65 6c 79 20 70 72 6f 70 72 69 65 74 61 72 79 2e 20 20 54 6f 20 70 72 65 76 65 6e 74 | ctively.proprietary...To.prevent |
| 5fb80 | 20 74 68 69 73 2c 20 74 68 65 20 47 50 4c 20 61 73 73 75 72 65 73 20 74 68 61 74 0a 70 61 74 65 | .this,.the.GPL.assures.that.pate |
| 5fba0 | 6e 74 73 20 63 61 6e 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 20 72 65 6e 64 65 72 20 74 68 65 | nts.cannot.be.used.to.render.the |
| 5fbc0 | 20 70 72 6f 67 72 61 6d 20 6e 6f 6e 2d 66 72 65 65 2e 0a 0a 20 20 54 68 65 20 70 72 65 63 69 73 | .program.non-free.....The.precis |
| 5fbe0 | 65 20 74 65 72 6d 73 20 61 6e 64 20 63 6f 6e 64 69 74 69 6f 6e 73 20 66 6f 72 20 63 6f 70 79 69 | e.terms.and.conditions.for.copyi |
| 5fc00 | 6e 67 2c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 0a 6d 6f 64 69 66 69 63 61 74 69 6f | ng,.distribution.and.modificatio |
| 5fc20 | 6e 20 66 6f 6c 6c 6f 77 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.follow........................ |
| 5fc40 | 20 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 30 2e 20 44 65 66 | ..TERMS.AND.CONDITIONS....0..Def |
| 5fc60 | 69 6e 69 74 69 6f 6e 73 2e 0a 0a 20 20 22 54 68 69 73 20 4c 69 63 65 6e 73 65 22 20 72 65 66 65 | initions....."This.License".refe |
| 5fc80 | 72 73 20 74 6f 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 | rs.to.version.3.of.the.GNU.Gener |
| 5fca0 | 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 22 43 6f 70 79 72 69 67 68 74 | al.Public.License....."Copyright |
| 5fcc0 | 22 20 61 6c 73 6f 20 6d 65 61 6e 73 20 63 6f 70 79 72 69 67 68 74 2d 6c 69 6b 65 20 6c 61 77 73 | ".also.means.copyright-like.laws |
| 5fce0 | 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 6f 74 68 65 72 20 6b 69 6e 64 73 20 6f 66 0a 77 6f | .that.apply.to.other.kinds.of.wo |
| 5fd00 | 72 6b 73 2c 20 73 75 63 68 20 61 73 20 73 65 6d 69 63 6f 6e 64 75 63 74 6f 72 20 6d 61 73 6b 73 | rks,.such.as.semiconductor.masks |
| 5fd20 | 2e 0a 0a 20 20 22 54 68 65 20 50 72 6f 67 72 61 6d 22 20 72 65 66 65 72 73 20 74 6f 20 61 6e 79 | ....."The.Program".refers.to.any |
| 5fd40 | 20 63 6f 70 79 72 69 67 68 74 61 62 6c 65 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 20 75 6e 64 | .copyrightable.work.licensed.und |
| 5fd60 | 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 2e 20 20 45 61 63 68 20 6c 69 63 65 6e 73 65 65 20 | er.this.License...Each.licensee. |
| 5fd80 | 69 73 20 61 64 64 72 65 73 73 65 64 20 61 73 20 22 79 6f 75 22 2e 20 20 22 4c 69 63 65 6e 73 65 | is.addressed.as."you"..."License |
| 5fda0 | 65 73 22 20 61 6e 64 0a 22 72 65 63 69 70 69 65 6e 74 73 22 20 6d 61 79 20 62 65 20 69 6e 64 69 | es".and."recipients".may.be.indi |
| 5fdc0 | 76 69 64 75 61 6c 73 20 6f 72 20 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 73 2e 0a 0a 20 20 54 6f 20 | viduals.or.organizations.....To. |
| 5fde0 | 22 6d 6f 64 69 66 79 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f 20 63 6f 70 79 20 66 72 | "modify".a.work.means.to.copy.fr |
| 5fe00 | 6f 6d 20 6f 72 20 61 64 61 70 74 20 61 6c 6c 20 6f 72 20 70 61 72 74 20 6f 66 20 74 68 65 20 77 | om.or.adapt.all.or.part.of.the.w |
| 5fe20 | 6f 72 6b 0a 69 6e 20 61 20 66 61 73 68 69 6f 6e 20 72 65 71 75 69 72 69 6e 67 20 63 6f 70 79 72 | ork.in.a.fashion.requiring.copyr |
| 5fe40 | 69 67 68 74 20 70 65 72 6d 69 73 73 69 6f 6e 2c 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 65 20 | ight.permission,.other.than.the. |
| 5fe60 | 6d 61 6b 69 6e 67 20 6f 66 20 61 6e 0a 65 78 61 63 74 20 63 6f 70 79 2e 20 20 54 68 65 20 72 65 | making.of.an.exact.copy...The.re |
| 5fe80 | 73 75 6c 74 69 6e 67 20 77 6f 72 6b 20 69 73 20 63 61 6c 6c 65 64 20 61 20 22 6d 6f 64 69 66 69 | sulting.work.is.called.a."modifi |
| 5fea0 | 65 64 20 76 65 72 73 69 6f 6e 22 20 6f 66 20 74 68 65 0a 65 61 72 6c 69 65 72 20 77 6f 72 6b 20 | ed.version".of.the.earlier.work. |
| 5fec0 | 6f 72 20 61 20 77 6f 72 6b 20 22 62 61 73 65 64 20 6f 6e 22 20 74 68 65 20 65 61 72 6c 69 65 72 | or.a.work."based.on".the.earlier |
| 5fee0 | 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 63 6f 76 65 72 65 64 20 77 6f 72 6b 22 20 6d 65 61 6e 73 | .work.....A."covered.work".means |
| 5ff00 | 20 65 69 74 68 65 72 20 74 68 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 20 6f | .either.the.unmodified.Program.o |
| 5ff20 | 72 20 61 20 77 6f 72 6b 20 62 61 73 65 64 0a 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a | r.a.work.based.on.the.Program... |
| 5ff40 | 20 20 54 6f 20 22 70 72 6f 70 61 67 61 74 65 22 20 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 6f | ..To."propagate".a.work.means.to |
| 5ff60 | 20 64 6f 20 61 6e 79 74 68 69 6e 67 20 77 69 74 68 20 69 74 20 74 68 61 74 2c 20 77 69 74 68 6f | .do.anything.with.it.that,.witho |
| 5ff80 | 75 74 0a 70 65 72 6d 69 73 73 69 6f 6e 2c 20 77 6f 75 6c 64 20 6d 61 6b 65 20 79 6f 75 20 64 69 | ut.permission,.would.make.you.di |
| 5ffa0 | 72 65 63 74 6c 79 20 6f 72 20 73 65 63 6f 6e 64 61 72 69 6c 79 20 6c 69 61 62 6c 65 20 66 6f 72 | rectly.or.secondarily.liable.for |
| 5ffc0 | 0a 69 6e 66 72 69 6e 67 65 6d 65 6e 74 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 63 | .infringement.under.applicable.c |
| 5ffe0 | 6f 70 79 72 69 67 68 74 20 6c 61 77 2c 20 65 78 63 65 70 74 20 65 78 65 63 75 74 69 6e 67 20 69 | opyright.law,.except.executing.i |
| 60000 | 74 20 6f 6e 20 61 0a 63 6f 6d 70 75 74 65 72 20 6f 72 20 6d 6f 64 69 66 79 69 6e 67 20 61 20 70 | t.on.a.computer.or.modifying.a.p |
| 60020 | 72 69 76 61 74 65 20 63 6f 70 79 2e 20 20 50 72 6f 70 61 67 61 74 69 6f 6e 20 69 6e 63 6c 75 64 | rivate.copy...Propagation.includ |
| 60040 | 65 73 20 63 6f 70 79 69 6e 67 2c 0a 64 69 73 74 72 69 62 75 74 69 6f 6e 20 28 77 69 74 68 20 6f | es.copying,.distribution.(with.o |
| 60060 | 72 20 77 69 74 68 6f 75 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 29 2c 20 6d 61 6b 69 6e 67 20 | r.without.modification),.making. |
| 60080 | 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 0a 70 75 62 6c 69 63 2c 20 61 6e 64 20 69 6e 20 | available.to.the.public,.and.in. |
| 600a0 | 73 6f 6d 65 20 63 6f 75 6e 74 72 69 65 73 20 6f 74 68 65 72 20 61 63 74 69 76 69 74 69 65 73 20 | some.countries.other.activities. |
| 600c0 | 61 73 20 77 65 6c 6c 2e 0a 0a 20 20 54 6f 20 22 63 6f 6e 76 65 79 22 20 61 20 77 6f 72 6b 20 6d | as.well.....To."convey".a.work.m |
| 600e0 | 65 61 6e 73 20 61 6e 79 20 6b 69 6e 64 20 6f 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 74 68 61 | eans.any.kind.of.propagation.tha |
| 60100 | 74 20 65 6e 61 62 6c 65 73 20 6f 74 68 65 72 0a 70 61 72 74 69 65 73 20 74 6f 20 6d 61 6b 65 20 | t.enables.other.parties.to.make. |
| 60120 | 6f 72 20 72 65 63 65 69 76 65 20 63 6f 70 69 65 73 2e 20 20 4d 65 72 65 20 69 6e 74 65 72 61 63 | or.receive.copies...Mere.interac |
| 60140 | 74 69 6f 6e 20 77 69 74 68 20 61 20 75 73 65 72 20 74 68 72 6f 75 67 68 0a 61 20 63 6f 6d 70 75 | tion.with.a.user.through.a.compu |
| 60160 | 74 65 72 20 6e 65 74 77 6f 72 6b 2c 20 77 69 74 68 20 6e 6f 20 74 72 61 6e 73 66 65 72 20 6f 66 | ter.network,.with.no.transfer.of |
| 60180 | 20 61 20 63 6f 70 79 2c 20 69 73 20 6e 6f 74 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 41 6e | .a.copy,.is.not.conveying.....An |
| 601a0 | 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 65 72 66 61 63 65 20 64 69 73 70 | .interactive.user.interface.disp |
| 601c0 | 6c 61 79 73 20 22 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 22 | lays."Appropriate.Legal.Notices" |
| 601e0 | 0a 74 6f 20 74 68 65 20 65 78 74 65 6e 74 20 74 68 61 74 20 69 74 20 69 6e 63 6c 75 64 65 73 20 | .to.the.extent.that.it.includes. |
| 60200 | 61 20 63 6f 6e 76 65 6e 69 65 6e 74 20 61 6e 64 20 70 72 6f 6d 69 6e 65 6e 74 6c 79 20 76 69 73 | a.convenient.and.prominently.vis |
| 60220 | 69 62 6c 65 0a 66 65 61 74 75 72 65 20 74 68 61 74 20 28 31 29 20 64 69 73 70 6c 61 79 73 20 61 | ible.feature.that.(1).displays.a |
| 60240 | 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 | n.appropriate.copyright.notice,. |
| 60260 | 61 6e 64 20 28 32 29 0a 74 65 6c 6c 73 20 74 68 65 20 75 73 65 72 20 74 68 61 74 20 74 68 65 72 | and.(2).tells.the.user.that.ther |
| 60280 | 65 20 69 73 20 6e 6f 20 77 61 72 72 61 6e 74 79 20 66 6f 72 20 74 68 65 20 77 6f 72 6b 20 28 65 | e.is.no.warranty.for.the.work.(e |
| 602a0 | 78 63 65 70 74 20 74 6f 20 74 68 65 0a 65 78 74 65 6e 74 20 74 68 61 74 20 77 61 72 72 61 6e 74 | xcept.to.the.extent.that.warrant |
| 602c0 | 69 65 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 29 2c 20 74 68 61 74 20 6c 69 63 65 6e 73 65 65 | ies.are.provided),.that.licensee |
| 602e0 | 73 20 6d 61 79 20 63 6f 6e 76 65 79 20 74 68 65 0a 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 | s.may.convey.the.work.under.this |
| 60300 | 20 4c 69 63 65 6e 73 65 2c 20 61 6e 64 20 68 6f 77 20 74 6f 20 76 69 65 77 20 61 20 63 6f 70 79 | .License,.and.how.to.view.a.copy |
| 60320 | 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 0a 74 68 65 20 69 6e 74 65 72 66 | .of.this.License...If.the.interf |
| 60340 | 61 63 65 20 70 72 65 73 65 6e 74 73 20 61 20 6c 69 73 74 20 6f 66 20 75 73 65 72 20 63 6f 6d 6d | ace.presents.a.list.of.user.comm |
| 60360 | 61 6e 64 73 20 6f 72 20 6f 70 74 69 6f 6e 73 2c 20 73 75 63 68 20 61 73 20 61 0a 6d 65 6e 75 2c | ands.or.options,.such.as.a.menu, |
| 60380 | 20 61 20 70 72 6f 6d 69 6e 65 6e 74 20 69 74 65 6d 20 69 6e 20 74 68 65 20 6c 69 73 74 20 6d 65 | .a.prominent.item.in.the.list.me |
| 603a0 | 65 74 73 20 74 68 69 73 20 63 72 69 74 65 72 69 6f 6e 2e 0a 0a 20 20 31 2e 20 53 6f 75 72 63 65 | ets.this.criterion.....1..Source |
| 603c0 | 20 43 6f 64 65 2e 0a 0a 20 20 54 68 65 20 22 73 6f 75 72 63 65 20 63 6f 64 65 22 20 66 6f 72 20 | .Code.....The."source.code".for. |
| 603e0 | 61 20 77 6f 72 6b 20 6d 65 61 6e 73 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 66 6f 72 6d 20 | a.work.means.the.preferred.form. |
| 60400 | 6f 66 20 74 68 65 20 77 6f 72 6b 0a 66 6f 72 20 6d 61 6b 69 6e 67 20 6d 6f 64 69 66 69 63 61 74 | of.the.work.for.making.modificat |
| 60420 | 69 6f 6e 73 20 74 6f 20 69 74 2e 20 20 22 4f 62 6a 65 63 74 20 63 6f 64 65 22 20 6d 65 61 6e 73 | ions.to.it..."Object.code".means |
| 60440 | 20 61 6e 79 20 6e 6f 6e 2d 73 6f 75 72 63 65 0a 66 6f 72 6d 20 6f 66 20 61 20 77 6f 72 6b 2e 0a | .any.non-source.form.of.a.work.. |
| 60460 | 0a 20 20 41 20 22 53 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 22 20 6d 65 61 6e 73 20 | ...A."Standard.Interface".means. |
| 60480 | 61 6e 20 69 6e 74 65 72 66 61 63 65 20 74 68 61 74 20 65 69 74 68 65 72 20 69 73 20 61 6e 20 6f | an.interface.that.either.is.an.o |
| 604a0 | 66 66 69 63 69 61 6c 0a 73 74 61 6e 64 61 72 64 20 64 65 66 69 6e 65 64 20 62 79 20 61 20 72 65 | fficial.standard.defined.by.a.re |
| 604c0 | 63 6f 67 6e 69 7a 65 64 20 73 74 61 6e 64 61 72 64 73 20 62 6f 64 79 2c 20 6f 72 2c 20 69 6e 20 | cognized.standards.body,.or,.in. |
| 604e0 | 74 68 65 20 63 61 73 65 20 6f 66 0a 69 6e 74 65 72 66 61 63 65 73 20 73 70 65 63 69 66 69 65 64 | the.case.of.interfaces.specified |
| 60500 | 20 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 70 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 | .for.a.particular.programming.la |
| 60520 | 6e 67 75 61 67 65 2c 20 6f 6e 65 20 74 68 61 74 0a 69 73 20 77 69 64 65 6c 79 20 75 73 65 64 20 | nguage,.one.that.is.widely.used. |
| 60540 | 61 6d 6f 6e 67 20 64 65 76 65 6c 6f 70 65 72 73 20 77 6f 72 6b 69 6e 67 20 69 6e 20 74 68 61 74 | among.developers.working.in.that |
| 60560 | 20 6c 61 6e 67 75 61 67 65 2e 0a 0a 20 20 54 68 65 20 22 53 79 73 74 65 6d 20 4c 69 62 72 61 72 | .language.....The."System.Librar |
| 60580 | 69 65 73 22 20 6f 66 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 69 6e 63 6c 75 | ies".of.an.executable.work.inclu |
| 605a0 | 64 65 20 61 6e 79 74 68 69 6e 67 2c 20 6f 74 68 65 72 0a 74 68 61 6e 20 74 68 65 20 77 6f 72 6b | de.anything,.other.than.the.work |
| 605c0 | 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 74 68 61 74 20 28 61 29 20 69 73 20 69 6e 63 6c 75 64 65 | .as.a.whole,.that.(a).is.include |
| 605e0 | 64 20 69 6e 20 74 68 65 20 6e 6f 72 6d 61 6c 20 66 6f 72 6d 20 6f 66 0a 70 61 63 6b 61 67 69 6e | d.in.the.normal.form.of.packagin |
| 60600 | 67 20 61 20 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 62 75 74 20 77 68 69 63 68 20 69 | g.a.Major.Component,.but.which.i |
| 60620 | 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 74 68 61 74 20 4d 61 6a 6f 72 0a 43 6f 6d 70 6f 6e 65 | s.not.part.of.that.Major.Compone |
| 60640 | 6e 74 2c 20 61 6e 64 20 28 62 29 20 73 65 72 76 65 73 20 6f 6e 6c 79 20 74 6f 20 65 6e 61 62 6c | nt,.and.(b).serves.only.to.enabl |
| 60660 | 65 20 75 73 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 77 69 74 68 20 74 68 61 74 0a 4d 61 6a 6f | e.use.of.the.work.with.that.Majo |
| 60680 | 72 20 43 6f 6d 70 6f 6e 65 6e 74 2c 20 6f 72 20 74 6f 20 69 6d 70 6c 65 6d 65 6e 74 20 61 20 53 | r.Component,.or.to.implement.a.S |
| 606a0 | 74 61 6e 64 61 72 64 20 49 6e 74 65 72 66 61 63 65 20 66 6f 72 20 77 68 69 63 68 20 61 6e 0a 69 | tandard.Interface.for.which.an.i |
| 606c0 | 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 | mplementation.is.available.to.th |
| 606e0 | 65 20 70 75 62 6c 69 63 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 2e 20 20 41 | e.public.in.source.code.form...A |
| 60700 | 0a 22 4d 61 6a 6f 72 20 43 6f 6d 70 6f 6e 65 6e 74 22 2c 20 69 6e 20 74 68 69 73 20 63 6f 6e 74 | ."Major.Component",.in.this.cont |
| 60720 | 65 78 74 2c 20 6d 65 61 6e 73 20 61 20 6d 61 6a 6f 72 20 65 73 73 65 6e 74 69 61 6c 20 63 6f 6d | ext,.means.a.major.essential.com |
| 60740 | 70 6f 6e 65 6e 74 0a 28 6b 65 72 6e 65 6c 2c 20 77 69 6e 64 6f 77 20 73 79 73 74 65 6d 2c 20 61 | ponent.(kernel,.window.system,.a |
| 60760 | 6e 64 20 73 6f 20 6f 6e 29 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 63 20 6f 70 65 72 61 74 | nd.so.on).of.the.specific.operat |
| 60780 | 69 6e 67 20 73 79 73 74 65 6d 0a 28 69 66 20 61 6e 79 29 20 6f 6e 20 77 68 69 63 68 20 74 68 65 | ing.system.(if.any).on.which.the |
| 607a0 | 20 65 78 65 63 75 74 61 62 6c 65 20 77 6f 72 6b 20 72 75 6e 73 2c 20 6f 72 20 61 20 63 6f 6d 70 | .executable.work.runs,.or.a.comp |
| 607c0 | 69 6c 65 72 20 75 73 65 64 20 74 6f 0a 70 72 6f 64 75 63 65 20 74 68 65 20 77 6f 72 6b 2c 20 6f | iler.used.to.produce.the.work,.o |
| 607e0 | 72 20 61 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 74 65 72 70 72 65 74 65 72 20 75 73 65 | r.an.object.code.interpreter.use |
| 60800 | 64 20 74 6f 20 72 75 6e 20 69 74 2e 0a 0a 20 20 54 68 65 20 22 43 6f 72 72 65 73 70 6f 6e 64 69 | d.to.run.it.....The."Correspondi |
| 60820 | 6e 67 20 53 6f 75 72 63 65 22 20 66 6f 72 20 61 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 | ng.Source".for.a.work.in.object. |
| 60840 | 63 6f 64 65 20 66 6f 72 6d 20 6d 65 61 6e 73 20 61 6c 6c 0a 74 68 65 20 73 6f 75 72 63 65 20 63 | code.form.means.all.the.source.c |
| 60860 | 6f 64 65 20 6e 65 65 64 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 2c 20 69 6e 73 74 61 6c 6c 2c | ode.needed.to.generate,.install, |
| 60880 | 20 61 6e 64 20 28 66 6f 72 20 61 6e 20 65 78 65 63 75 74 61 62 6c 65 0a 77 6f 72 6b 29 20 72 75 | .and.(for.an.executable.work).ru |
| 608a0 | 6e 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 74 6f 20 6d 6f 64 69 66 79 20 | n.the.object.code.and.to.modify. |
| 608c0 | 74 68 65 20 77 6f 72 6b 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 63 72 69 70 74 73 20 74 6f 0a 63 | the.work,.including.scripts.to.c |
| 608e0 | 6f 6e 74 72 6f 6c 20 74 68 6f 73 65 20 61 63 74 69 76 69 74 69 65 73 2e 20 20 48 6f 77 65 76 65 | ontrol.those.activities...Howeve |
| 60900 | 72 2c 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 74 68 65 20 77 6f 72 6b 27 | r,.it.does.not.include.the.work' |
| 60920 | 73 0a 53 79 73 74 65 6d 20 4c 69 62 72 61 72 69 65 73 2c 20 6f 72 20 67 65 6e 65 72 61 6c 2d 70 | s.System.Libraries,.or.general-p |
| 60940 | 75 72 70 6f 73 65 20 74 6f 6f 6c 73 20 6f 72 20 67 65 6e 65 72 61 6c 6c 79 20 61 76 61 69 6c 61 | urpose.tools.or.generally.availa |
| 60960 | 62 6c 65 20 66 72 65 65 0a 70 72 6f 67 72 61 6d 73 20 77 68 69 63 68 20 61 72 65 20 75 73 65 64 | ble.free.programs.which.are.used |
| 60980 | 20 75 6e 6d 6f 64 69 66 69 65 64 20 69 6e 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 6f 73 65 20 | .unmodified.in.performing.those. |
| 609a0 | 61 63 74 69 76 69 74 69 65 73 20 62 75 74 0a 77 68 69 63 68 20 61 72 65 20 6e 6f 74 20 70 61 72 | activities.but.which.are.not.par |
| 609c0 | 74 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 43 6f 72 | t.of.the.work...For.example,.Cor |
| 609e0 | 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 0a 69 6e 63 6c 75 64 65 73 20 69 6e 74 65 72 | responding.Source.includes.inter |
| 60a00 | 66 61 63 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 73 20 61 73 73 6f 63 69 61 74 65 64 | face.definition.files.associated |
| 60a20 | 20 77 69 74 68 20 73 6f 75 72 63 65 20 66 69 6c 65 73 20 66 6f 72 0a 74 68 65 20 77 6f 72 6b 2c | .with.source.files.for.the.work, |
| 60a40 | 20 61 6e 64 20 74 68 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 20 73 68 61 72 65 64 20 | .and.the.source.code.for.shared. |
| 60a60 | 6c 69 62 72 61 72 69 65 73 20 61 6e 64 20 64 79 6e 61 6d 69 63 61 6c 6c 79 0a 6c 69 6e 6b 65 64 | libraries.and.dynamically.linked |
| 60a80 | 20 73 75 62 70 72 6f 67 72 61 6d 73 20 74 68 61 74 20 74 68 65 20 77 6f 72 6b 20 69 73 20 73 70 | .subprograms.that.the.work.is.sp |
| 60aa0 | 65 63 69 66 69 63 61 6c 6c 79 20 64 65 73 69 67 6e 65 64 20 74 6f 20 72 65 71 75 69 72 65 2c 0a | ecifically.designed.to.require,. |
| 60ac0 | 73 75 63 68 20 61 73 20 62 79 20 69 6e 74 69 6d 61 74 65 20 64 61 74 61 20 63 6f 6d 6d 75 6e 69 | such.as.by.intimate.data.communi |
| 60ae0 | 63 61 74 69 6f 6e 20 6f 72 20 63 6f 6e 74 72 6f 6c 20 66 6c 6f 77 20 62 65 74 77 65 65 6e 20 74 | cation.or.control.flow.between.t |
| 60b00 | 68 6f 73 65 0a 73 75 62 70 72 6f 67 72 61 6d 73 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 74 73 | hose.subprograms.and.other.parts |
| 60b20 | 20 6f 66 20 74 68 65 20 77 6f 72 6b 2e 0a 0a 20 20 54 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 | .of.the.work.....The.Correspondi |
| 60b40 | 6e 67 20 53 6f 75 72 63 65 20 6e 65 65 64 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 6e 79 74 68 | ng.Source.need.not.include.anyth |
| 60b60 | 69 6e 67 20 74 68 61 74 20 75 73 65 72 73 0a 63 61 6e 20 72 65 67 65 6e 65 72 61 74 65 20 61 75 | ing.that.users.can.regenerate.au |
| 60b80 | 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 6f 74 68 65 72 20 70 61 72 74 73 20 6f 66 20 | tomatically.from.other.parts.of. |
| 60ba0 | 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 53 6f 75 72 63 65 2e 0a 0a 20 20 54 68 65 | the.Corresponding.Source.....The |
| 60bc0 | 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 20 77 6f 72 6b | .Corresponding.Source.for.a.work |
| 60be0 | 20 69 6e 20 73 6f 75 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 20 69 73 20 74 68 61 74 0a 73 61 6d | .in.source.code.form.is.that.sam |
| 60c00 | 65 20 77 6f 72 6b 2e 0a 0a 20 20 32 2e 20 42 61 73 69 63 20 50 65 72 6d 69 73 73 69 6f 6e 73 2e | e.work.....2..Basic.Permissions. |
| 60c20 | 0a 0a 20 20 41 6c 6c 20 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 | ....All.rights.granted.under.thi |
| 60c40 | 73 20 4c 69 63 65 6e 73 65 20 61 72 65 20 67 72 61 6e 74 65 64 20 66 6f 72 20 74 68 65 20 74 65 | s.License.are.granted.for.the.te |
| 60c60 | 72 6d 20 6f 66 0a 63 6f 70 79 72 69 67 68 74 20 6f 6e 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 | rm.of.copyright.on.the.Program,. |
| 60c80 | 61 6e 64 20 61 72 65 20 69 72 72 65 76 6f 63 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 68 65 | and.are.irrevocable.provided.the |
| 60ca0 | 20 73 74 61 74 65 64 0a 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d 65 74 2e 20 20 54 68 69 | .stated.conditions.are.met...Thi |
| 60cc0 | 73 20 4c 69 63 65 6e 73 65 20 65 78 70 6c 69 63 69 74 6c 79 20 61 66 66 69 72 6d 73 20 79 6f 75 | s.License.explicitly.affirms.you |
| 60ce0 | 72 20 75 6e 6c 69 6d 69 74 65 64 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 72 75 6e 20 74 68 | r.unlimited.permission.to.run.th |
| 60d00 | 65 20 75 6e 6d 6f 64 69 66 69 65 64 20 50 72 6f 67 72 61 6d 2e 20 20 54 68 65 20 6f 75 74 70 75 | e.unmodified.Program...The.outpu |
| 60d20 | 74 20 66 72 6f 6d 20 72 75 6e 6e 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 73 | t.from.running.a.covered.work.is |
| 60d40 | 20 63 6f 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 6f 6e 6c 79 20 69 66 | .covered.by.this.License.only.if |
| 60d60 | 20 74 68 65 20 6f 75 74 70 75 74 2c 20 67 69 76 65 6e 20 69 74 73 0a 63 6f 6e 74 65 6e 74 2c 20 | .the.output,.given.its.content,. |
| 60d80 | 63 6f 6e 73 74 69 74 75 74 65 73 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2e 20 20 54 68 69 | constitutes.a.covered.work...Thi |
| 60da0 | 73 20 4c 69 63 65 6e 73 65 20 61 63 6b 6e 6f 77 6c 65 64 67 65 73 20 79 6f 75 72 0a 72 69 67 68 | s.License.acknowledges.your.righ |
| 60dc0 | 74 73 20 6f 66 20 66 61 69 72 20 75 73 65 20 6f 72 20 6f 74 68 65 72 20 65 71 75 69 76 61 6c 65 | ts.of.fair.use.or.other.equivale |
| 60de0 | 6e 74 2c 20 61 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 63 6f 70 79 72 69 67 68 74 20 6c 61 77 | nt,.as.provided.by.copyright.law |
| 60e00 | 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 6d 61 6b 65 2c 20 72 75 6e 20 61 6e 64 20 70 72 6f 70 61 | .....You.may.make,.run.and.propa |
| 60e20 | 67 61 74 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 68 61 74 20 79 6f 75 20 64 6f 20 6e | gate.covered.works.that.you.do.n |
| 60e40 | 6f 74 0a 63 6f 6e 76 65 79 2c 20 77 69 74 68 6f 75 74 20 63 6f 6e 64 69 74 69 6f 6e 73 20 73 6f | ot.convey,.without.conditions.so |
| 60e60 | 20 6c 6f 6e 67 20 61 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 6f 74 68 65 72 77 69 73 65 20 | .long.as.your.license.otherwise. |
| 60e80 | 72 65 6d 61 69 6e 73 0a 69 6e 20 66 6f 72 63 65 2e 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 | remains.in.force...You.may.conve |
| 60ea0 | 79 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 73 20 74 6f 20 6f 74 68 65 72 73 20 66 6f 72 20 74 68 | y.covered.works.to.others.for.th |
| 60ec0 | 65 20 73 6f 6c 65 20 70 75 72 70 6f 73 65 0a 6f 66 20 68 61 76 69 6e 67 20 74 68 65 6d 20 6d 61 | e.sole.purpose.of.having.them.ma |
| 60ee0 | 6b 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 65 78 63 6c 75 73 69 76 65 6c 79 20 66 6f 72 | ke.modifications.exclusively.for |
| 60f00 | 20 79 6f 75 2c 20 6f 72 20 70 72 6f 76 69 64 65 20 79 6f 75 0a 77 69 74 68 20 66 61 63 69 6c 69 | .you,.or.provide.you.with.facili |
| 60f20 | 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 6f 73 65 20 77 6f 72 6b 73 2c 20 70 72 | ties.for.running.those.works,.pr |
| 60f40 | 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6d 70 6c 79 20 77 69 74 68 0a 74 68 65 20 | ovided.that.you.comply.with.the. |
| 60f60 | 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 69 6e 20 63 6f 6e 76 65 79 69 | terms.of.this.License.in.conveyi |
| 60f80 | 6e 67 20 61 6c 6c 20 6d 61 74 65 72 69 61 6c 20 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 64 6f | ng.all.material.for.which.you.do |
| 60fa0 | 0a 6e 6f 74 20 63 6f 6e 74 72 6f 6c 20 63 6f 70 79 72 69 67 68 74 2e 20 20 54 68 6f 73 65 20 74 | .not.control.copyright...Those.t |
| 60fc0 | 68 75 73 20 6d 61 6b 69 6e 67 20 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 63 6f 76 65 72 65 | hus.making.or.running.the.covere |
| 60fe0 | 64 20 77 6f 72 6b 73 0a 66 6f 72 20 79 6f 75 20 6d 75 73 74 20 64 6f 20 73 6f 20 65 78 63 6c 75 | d.works.for.you.must.do.so.exclu |
| 61000 | 73 69 76 65 6c 79 20 6f 6e 20 79 6f 75 72 20 62 65 68 61 6c 66 2c 20 75 6e 64 65 72 20 79 6f 75 | sively.on.your.behalf,.under.you |
| 61020 | 72 20 64 69 72 65 63 74 69 6f 6e 0a 61 6e 64 20 63 6f 6e 74 72 6f 6c 2c 20 6f 6e 20 74 65 72 6d | r.direction.and.control,.on.term |
| 61040 | 73 20 74 68 61 74 20 70 72 6f 68 69 62 69 74 20 74 68 65 6d 20 66 72 6f 6d 20 6d 61 6b 69 6e 67 | s.that.prohibit.them.from.making |
| 61060 | 20 61 6e 79 20 63 6f 70 69 65 73 20 6f 66 0a 79 6f 75 72 20 63 6f 70 79 72 69 67 68 74 65 64 20 | .any.copies.of.your.copyrighted. |
| 61080 | 6d 61 74 65 72 69 61 6c 20 6f 75 74 73 69 64 65 20 74 68 65 69 72 20 72 65 6c 61 74 69 6f 6e 73 | material.outside.their.relations |
| 610a0 | 68 69 70 20 77 69 74 68 20 79 6f 75 2e 0a 0a 20 20 43 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 | hip.with.you.....Conveying.under |
| 610c0 | 20 61 6e 79 20 6f 74 68 65 72 20 63 69 72 63 75 6d 73 74 61 6e 63 65 73 20 69 73 20 70 65 72 6d | .any.other.circumstances.is.perm |
| 610e0 | 69 74 74 65 64 20 73 6f 6c 65 6c 79 20 75 6e 64 65 72 0a 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e | itted.solely.under.the.condition |
| 61100 | 73 20 73 74 61 74 65 64 20 62 65 6c 6f 77 2e 20 20 53 75 62 6c 69 63 65 6e 73 69 6e 67 20 69 73 | s.stated.below...Sublicensing.is |
| 61120 | 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 3b 20 73 65 63 74 69 6f 6e 20 31 30 0a 6d 61 6b 65 73 20 69 | .not.allowed;.section.10.makes.i |
| 61140 | 74 20 75 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 20 20 33 2e 20 50 72 6f 74 65 63 74 69 6e 67 20 | t.unnecessary.....3..Protecting. |
| 61160 | 55 73 65 72 73 27 20 4c 65 67 61 6c 20 52 69 67 68 74 73 20 46 72 6f 6d 20 41 6e 74 69 2d 43 69 | Users'.Legal.Rights.From.Anti-Ci |
| 61180 | 72 63 75 6d 76 65 6e 74 69 6f 6e 20 4c 61 77 2e 0a 0a 20 20 4e 6f 20 63 6f 76 65 72 65 64 20 77 | rcumvention.Law.....No.covered.w |
| 611a0 | 6f 72 6b 20 73 68 61 6c 6c 20 62 65 20 64 65 65 6d 65 64 20 70 61 72 74 20 6f 66 20 61 6e 20 65 | ork.shall.be.deemed.part.of.an.e |
| 611c0 | 66 66 65 63 74 69 76 65 20 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 0a 6d 65 61 73 75 72 65 20 75 | ffective.technological.measure.u |
| 611e0 | 6e 64 65 72 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 20 66 75 6c 66 69 6c 6c 69 | nder.any.applicable.law.fulfilli |
| 61200 | 6e 67 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 61 72 74 69 63 6c 65 0a 31 31 20 | ng.obligations.under.article.11. |
| 61220 | 6f 66 20 74 68 65 20 57 49 50 4f 20 63 6f 70 79 72 69 67 68 74 20 74 72 65 61 74 79 20 61 64 6f | of.the.WIPO.copyright.treaty.ado |
| 61240 | 70 74 65 64 20 6f 6e 20 32 30 20 44 65 63 65 6d 62 65 72 20 31 39 39 36 2c 20 6f 72 0a 73 69 6d | pted.on.20.December.1996,.or.sim |
| 61260 | 69 6c 61 72 20 6c 61 77 73 20 70 72 6f 68 69 62 69 74 69 6e 67 20 6f 72 20 72 65 73 74 72 69 63 | ilar.laws.prohibiting.or.restric |
| 61280 | 74 69 6e 67 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 73 75 63 68 0a 6d 65 61 73 75 | ting.circumvention.of.such.measu |
| 612a0 | 72 65 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 | res.....When.you.convey.a.covere |
| 612c0 | 64 20 77 6f 72 6b 2c 20 79 6f 75 20 77 61 69 76 65 20 61 6e 79 20 6c 65 67 61 6c 20 70 6f 77 65 | d.work,.you.waive.any.legal.powe |
| 612e0 | 72 20 74 6f 20 66 6f 72 62 69 64 0a 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 20 6f 66 20 74 65 63 | r.to.forbid.circumvention.of.tec |
| 61300 | 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 73 20 74 6f 20 74 68 65 20 65 78 74 65 6e | hnological.measures.to.the.exten |
| 61320 | 74 20 73 75 63 68 20 63 69 72 63 75 6d 76 65 6e 74 69 6f 6e 0a 69 73 20 65 66 66 65 63 74 65 64 | t.such.circumvention.is.effected |
| 61340 | 20 62 79 20 65 78 65 72 63 69 73 69 6e 67 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 | .by.exercising.rights.under.this |
| 61360 | 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 72 65 73 70 65 63 74 20 74 6f 0a 74 68 65 20 63 6f 76 | .License.with.respect.to.the.cov |
| 61380 | 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 79 6f 75 20 64 69 73 63 6c 61 69 6d 20 61 6e 79 20 | ered.work,.and.you.disclaim.any. |
| 613a0 | 69 6e 74 65 6e 74 69 6f 6e 20 74 6f 20 6c 69 6d 69 74 20 6f 70 65 72 61 74 69 6f 6e 20 6f 72 0a | intention.to.limit.operation.or. |
| 613c0 | 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 73 20 61 20 6d 65 | modification.of.the.work.as.a.me |
| 613e0 | 61 6e 73 20 6f 66 20 65 6e 66 6f 72 63 69 6e 67 2c 20 61 67 61 69 6e 73 74 20 74 68 65 20 77 6f | ans.of.enforcing,.against.the.wo |
| 61400 | 72 6b 27 73 0a 75 73 65 72 73 2c 20 79 6f 75 72 20 6f 72 20 74 68 69 72 64 20 70 61 72 74 69 65 | rk's.users,.your.or.third.partie |
| 61420 | 73 27 20 6c 65 67 61 6c 20 72 69 67 68 74 73 20 74 6f 20 66 6f 72 62 69 64 20 63 69 72 63 75 6d | s'.legal.rights.to.forbid.circum |
| 61440 | 76 65 6e 74 69 6f 6e 20 6f 66 0a 74 65 63 68 6e 6f 6c 6f 67 69 63 61 6c 20 6d 65 61 73 75 72 65 | vention.of.technological.measure |
| 61460 | 73 2e 0a 0a 20 20 34 2e 20 43 6f 6e 76 65 79 69 6e 67 20 56 65 72 62 61 74 69 6d 20 43 6f 70 69 | s.....4..Conveying.Verbatim.Copi |
| 61480 | 65 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 76 65 72 62 61 74 69 6d 20 63 | es.....You.may.convey.verbatim.c |
| 614a0 | 6f 70 69 65 73 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 27 73 20 73 6f 75 72 63 65 20 63 6f | opies.of.the.Program's.source.co |
| 614c0 | 64 65 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 20 69 74 2c 20 69 6e 20 61 6e 79 20 6d 65 64 | de.as.you.receive.it,.in.any.med |
| 614e0 | 69 75 6d 2c 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 73 70 69 63 75 6f | ium,.provided.that.you.conspicuo |
| 61500 | 75 73 6c 79 20 61 6e 64 0a 61 70 70 72 6f 70 72 69 61 74 65 6c 79 20 70 75 62 6c 69 73 68 20 6f | usly.and.appropriately.publish.o |
| 61520 | 6e 20 65 61 63 68 20 63 6f 70 79 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 | n.each.copy.an.appropriate.copyr |
| 61540 | 69 67 68 74 20 6e 6f 74 69 63 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 | ight.notice;.keep.intact.all.not |
| 61560 | 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 | ices.stating.that.this.License.a |
| 61580 | 6e 64 20 61 6e 79 0a 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 74 65 72 6d 73 20 61 64 64 65 | nd.any.non-permissive.terms.adde |
| 615a0 | 64 20 69 6e 20 61 63 63 6f 72 64 20 77 69 74 68 20 73 65 63 74 69 6f 6e 20 37 20 61 70 70 6c 79 | d.in.accord.with.section.7.apply |
| 615c0 | 20 74 6f 20 74 68 65 20 63 6f 64 65 3b 0a 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f | .to.the.code;.keep.intact.all.no |
| 615e0 | 74 69 63 65 73 20 6f 66 20 74 68 65 20 61 62 73 65 6e 63 65 20 6f 66 20 61 6e 79 20 77 61 72 72 | tices.of.the.absence.of.any.warr |
| 61600 | 61 6e 74 79 3b 20 61 6e 64 20 67 69 76 65 20 61 6c 6c 0a 72 65 63 69 70 69 65 6e 74 73 20 61 20 | anty;.and.give.all.recipients.a. |
| 61620 | 63 6f 70 79 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 | copy.of.this.License.along.with. |
| 61640 | 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 68 61 72 67 65 20 61 | the.Program.....You.may.charge.a |
| 61660 | 6e 79 20 70 72 69 63 65 20 6f 72 20 6e 6f 20 70 72 69 63 65 20 66 6f 72 20 65 61 63 68 20 63 6f | ny.price.or.no.price.for.each.co |
| 61680 | 70 79 20 74 68 61 74 20 79 6f 75 20 63 6f 6e 76 65 79 2c 0a 61 6e 64 20 79 6f 75 20 6d 61 79 20 | py.that.you.convey,.and.you.may. |
| 616a0 | 6f 66 66 65 72 20 73 75 70 70 6f 72 74 20 6f 72 20 77 61 72 72 61 6e 74 79 20 70 72 6f 74 65 63 | offer.support.or.warranty.protec |
| 616c0 | 74 69 6f 6e 20 66 6f 72 20 61 20 66 65 65 2e 0a 0a 20 20 35 2e 20 43 6f 6e 76 65 79 69 6e 67 20 | tion.for.a.fee.....5..Conveying. |
| 616e0 | 4d 6f 64 69 66 69 65 64 20 53 6f 75 72 63 65 20 56 65 72 73 69 6f 6e 73 2e 0a 0a 20 20 59 6f 75 | Modified.Source.Versions.....You |
| 61700 | 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 77 6f 72 6b 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 | .may.convey.a.work.based.on.the. |
| 61720 | 50 72 6f 67 72 61 6d 2c 20 6f 72 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 20 74 6f | Program,.or.the.modifications.to |
| 61740 | 0a 70 72 6f 64 75 63 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 69 6e | .produce.it.from.the.Program,.in |
| 61760 | 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 73 6f 75 72 63 65 20 63 6f 64 65 20 75 6e 64 65 72 20 74 | .the.form.of.source.code.under.t |
| 61780 | 68 65 0a 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 20 34 2c 20 70 72 6f 76 69 64 65 64 20 | he.terms.of.section.4,.provided. |
| 617a0 | 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 6d 65 65 74 20 61 6c 6c 20 6f 66 20 74 68 65 73 65 20 | that.you.also.meet.all.of.these. |
| 617c0 | 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 20 20 20 20 61 29 20 54 68 65 20 77 6f 72 6b 20 6d 75 73 | conditions:......a).The.work.mus |
| 617e0 | 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f 74 69 63 65 73 20 73 74 61 74 69 6e | t.carry.prominent.notices.statin |
| 61800 | 67 20 74 68 61 74 20 79 6f 75 20 6d 6f 64 69 66 69 65 64 0a 20 20 20 20 69 74 2c 20 61 6e 64 20 | g.that.you.modified.....it,.and. |
| 61820 | 67 69 76 69 6e 67 20 61 20 72 65 6c 65 76 61 6e 74 20 64 61 74 65 2e 0a 0a 20 20 20 20 62 29 20 | giving.a.relevant.date.......b). |
| 61840 | 54 68 65 20 77 6f 72 6b 20 6d 75 73 74 20 63 61 72 72 79 20 70 72 6f 6d 69 6e 65 6e 74 20 6e 6f | The.work.must.carry.prominent.no |
| 61860 | 74 69 63 65 73 20 73 74 61 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 20 20 20 20 72 65 6c | tices.stating.that.it.is.....rel |
| 61880 | 65 61 73 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 61 6e 64 20 61 6e 79 | eased.under.this.License.and.any |
| 618a0 | 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 64 64 65 64 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 0a | .conditions.added.under.section. |
| 618c0 | 20 20 20 20 37 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 6d 65 6e 74 20 6d 6f 64 69 66 69 65 | ....7...This.requirement.modifie |
| 618e0 | 73 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 20 69 6e 20 73 65 63 74 69 6f 6e 20 34 20 74 | s.the.requirement.in.section.4.t |
| 61900 | 6f 0a 20 20 20 20 22 6b 65 65 70 20 69 6e 74 61 63 74 20 61 6c 6c 20 6e 6f 74 69 63 65 73 22 2e | o....."keep.intact.all.notices". |
| 61920 | 0a 0a 20 20 20 20 63 29 20 59 6f 75 20 6d 75 73 74 20 6c 69 63 65 6e 73 65 20 74 68 65 20 65 6e | ......c).You.must.license.the.en |
| 61940 | 74 69 72 65 20 77 6f 72 6b 2c 20 61 73 20 61 20 77 68 6f 6c 65 2c 20 75 6e 64 65 72 20 74 68 69 | tire.work,.as.a.whole,.under.thi |
| 61960 | 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 6e 79 6f 6e 65 20 77 68 6f 20 63 6f 6d 65 | s.....License.to.anyone.who.come |
| 61980 | 73 20 69 6e 74 6f 20 70 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 61 20 63 6f 70 79 2e 20 20 54 68 | s.into.possession.of.a.copy...Th |
| 619a0 | 69 73 0a 20 20 20 20 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 74 68 65 72 65 66 6f 72 65 20 61 70 | is.....License.will.therefore.ap |
| 619c0 | 70 6c 79 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 6e 79 20 61 70 70 6c 69 63 61 62 6c 65 20 73 | ply,.along.with.any.applicable.s |
| 619e0 | 65 63 74 69 6f 6e 20 37 0a 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 74 | ection.7.....additional.terms,.t |
| 61a00 | 6f 20 74 68 65 20 77 68 6f 6c 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 2c 20 61 6e 64 20 61 6c 6c | o.the.whole.of.the.work,.and.all |
| 61a20 | 20 69 74 73 20 70 61 72 74 73 2c 0a 20 20 20 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f | .its.parts,.....regardless.of.ho |
| 61a40 | 77 20 74 68 65 79 20 61 72 65 20 70 61 63 6b 61 67 65 64 2e 20 20 54 68 69 73 20 4c 69 63 65 6e | w.they.are.packaged...This.Licen |
| 61a60 | 73 65 20 67 69 76 65 73 20 6e 6f 0a 20 20 20 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 6c 69 | se.gives.no.....permission.to.li |
| 61a80 | 63 65 6e 73 65 20 74 68 65 20 77 6f 72 6b 20 69 6e 20 61 6e 79 20 6f 74 68 65 72 20 77 61 79 2c | cense.the.work.in.any.other.way, |
| 61aa0 | 20 62 75 74 20 69 74 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 69 6e 76 61 6c 69 64 61 74 65 20 | .but.it.does.not.....invalidate. |
| 61ac0 | 73 75 63 68 20 70 65 72 6d 69 73 73 69 6f 6e 20 69 66 20 79 6f 75 20 68 61 76 65 20 73 65 70 61 | such.permission.if.you.have.sepa |
| 61ae0 | 72 61 74 65 6c 79 20 72 65 63 65 69 76 65 64 20 69 74 2e 0a 0a 20 20 20 20 64 29 20 49 66 20 74 | rately.received.it.......d).If.t |
| 61b00 | 68 65 20 77 6f 72 6b 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 65 20 75 73 65 72 20 69 6e 74 | he.work.has.interactive.user.int |
| 61b20 | 65 72 66 61 63 65 73 2c 20 65 61 63 68 20 6d 75 73 74 20 64 69 73 70 6c 61 79 0a 20 20 20 20 41 | erfaces,.each.must.display.....A |
| 61b40 | 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 3b 20 68 6f 77 65 76 65 | ppropriate.Legal.Notices;.howeve |
| 61b60 | 72 2c 20 69 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 68 61 73 20 69 6e 74 65 72 61 63 74 69 76 | r,.if.the.Program.has.interactiv |
| 61b80 | 65 0a 20 20 20 20 69 6e 74 65 72 66 61 63 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 64 69 73 | e.....interfaces.that.do.not.dis |
| 61ba0 | 70 6c 61 79 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c 65 67 61 6c 20 4e 6f 74 69 63 65 73 2c 20 | play.Appropriate.Legal.Notices,. |
| 61bc0 | 79 6f 75 72 0a 20 20 20 20 77 6f 72 6b 20 6e 65 65 64 20 6e 6f 74 20 6d 61 6b 65 20 74 68 65 6d | your.....work.need.not.make.them |
| 61be0 | 20 64 6f 20 73 6f 2e 0a 0a 20 20 41 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f | .do.so.....A.compilation.of.a.co |
| 61c00 | 76 65 72 65 64 20 77 6f 72 6b 20 77 69 74 68 20 6f 74 68 65 72 20 73 65 70 61 72 61 74 65 20 61 | vered.work.with.other.separate.a |
| 61c20 | 6e 64 20 69 6e 64 65 70 65 6e 64 65 6e 74 0a 77 6f 72 6b 73 2c 20 77 68 69 63 68 20 61 72 65 20 | nd.independent.works,.which.are. |
| 61c40 | 6e 6f 74 20 62 79 20 74 68 65 69 72 20 6e 61 74 75 72 65 20 65 78 74 65 6e 73 69 6f 6e 73 20 6f | not.by.their.nature.extensions.o |
| 61c60 | 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 0a 61 6e 64 20 77 68 69 63 68 20 61 72 | f.the.covered.work,.and.which.ar |
| 61c80 | 65 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 20 69 74 20 73 75 63 68 20 61 73 20 74 | e.not.combined.with.it.such.as.t |
| 61ca0 | 6f 20 66 6f 72 6d 20 61 20 6c 61 72 67 65 72 20 70 72 6f 67 72 61 6d 2c 0a 69 6e 20 6f 72 20 6f | o.form.a.larger.program,.in.or.o |
| 61cc0 | 6e 20 61 20 76 6f 6c 75 6d 65 20 6f 66 20 61 20 73 74 6f 72 61 67 65 20 6f 72 20 64 69 73 74 72 | n.a.volume.of.a.storage.or.distr |
| 61ce0 | 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 2c 20 69 73 20 63 61 6c 6c 65 64 20 61 6e 0a 22 61 67 | ibution.medium,.is.called.an."ag |
| 61d00 | 67 72 65 67 61 74 65 22 20 69 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20 61 6e 64 20 | gregate".if.the.compilation.and. |
| 61d20 | 69 74 73 20 72 65 73 75 6c 74 69 6e 67 20 63 6f 70 79 72 69 67 68 74 20 61 72 65 20 6e 6f 74 0a | its.resulting.copyright.are.not. |
| 61d40 | 75 73 65 64 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 61 63 63 65 73 73 20 6f 72 20 6c 65 67 61 | used.to.limit.the.access.or.lega |
| 61d60 | 6c 20 72 69 67 68 74 73 20 6f 66 20 74 68 65 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 27 73 20 75 73 | l.rights.of.the.compilation's.us |
| 61d80 | 65 72 73 0a 62 65 79 6f 6e 64 20 77 68 61 74 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 77 | ers.beyond.what.the.individual.w |
| 61da0 | 6f 72 6b 73 20 70 65 72 6d 69 74 2e 20 20 49 6e 63 6c 75 73 69 6f 6e 20 6f 66 20 61 20 63 6f 76 | orks.permit...Inclusion.of.a.cov |
| 61dc0 | 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 6e 20 61 67 67 72 65 67 61 74 65 20 64 6f 65 73 20 6e | ered.work.in.an.aggregate.does.n |
| 61de0 | 6f 74 20 63 61 75 73 65 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 61 70 70 6c 79 20 74 | ot.cause.this.License.to.apply.t |
| 61e00 | 6f 20 74 68 65 20 6f 74 68 65 72 0a 70 61 72 74 73 20 6f 66 20 74 68 65 20 61 67 67 72 65 67 61 | o.the.other.parts.of.the.aggrega |
| 61e20 | 74 65 2e 0a 0a 20 20 36 2e 20 43 6f 6e 76 65 79 69 6e 67 20 4e 6f 6e 2d 53 6f 75 72 63 65 20 46 | te.....6..Conveying.Non-Source.F |
| 61e40 | 6f 72 6d 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 63 6f 6e 76 65 79 20 61 20 63 6f 76 65 72 65 | orms.....You.may.convey.a.covere |
| 61e60 | 64 20 77 6f 72 6b 20 69 6e 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 66 6f 72 6d 20 75 6e 64 65 72 | d.work.in.object.code.form.under |
| 61e80 | 20 74 68 65 20 74 65 72 6d 73 0a 6f 66 20 73 65 63 74 69 6f 6e 73 20 34 20 61 6e 64 20 35 2c 20 | .the.terms.of.sections.4.and.5,. |
| 61ea0 | 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 79 6f 75 20 61 6c 73 6f 20 63 6f 6e 76 65 79 20 74 68 | provided.that.you.also.convey.th |
| 61ec0 | 65 0a 6d 61 63 68 69 6e 65 2d 72 65 61 64 61 62 6c 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 | e.machine-readable.Corresponding |
| 61ee0 | 20 53 6f 75 72 63 65 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 | .Source.under.the.terms.of.this. |
| 61f00 | 4c 69 63 65 6e 73 65 2c 0a 69 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 77 61 79 73 3a 0a 0a | License,.in.one.of.these.ways:.. |
| 61f20 | 20 20 20 20 61 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e | ....a).Convey.the.object.code.in |
| 61f40 | 2c 20 6f 72 20 65 6d 62 6f 64 69 65 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f | ,.or.embodied.in,.a.physical.pro |
| 61f60 | 64 75 63 74 0a 20 20 20 20 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 | duct.....(including.a.physical.d |
| 61f80 | 69 73 74 72 69 62 75 74 69 6f 6e 20 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 | istribution.medium),.accompanied |
| 61fa0 | 20 62 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 | .by.the.....Corresponding.Source |
| 61fc0 | 20 66 69 78 65 64 20 6f 6e 20 61 20 64 75 72 61 62 6c 65 20 70 68 79 73 69 63 61 6c 20 6d 65 64 | .fixed.on.a.durable.physical.med |
| 61fe0 | 69 75 6d 0a 20 20 20 20 63 75 73 74 6f 6d 61 72 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 | ium.....customarily.used.for.sof |
| 62000 | 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 65 2e 0a 0a 20 20 20 20 62 29 20 43 6f 6e 76 65 | tware.interchange.......b).Conve |
| 62020 | 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 6e 2c 20 6f 72 20 65 6d 62 6f 64 69 65 | y.the.object.code.in,.or.embodie |
| 62040 | 64 20 69 6e 2c 20 61 20 70 68 79 73 69 63 61 6c 20 70 72 6f 64 75 63 74 0a 20 20 20 20 28 69 6e | d.in,.a.physical.product.....(in |
| 62060 | 63 6c 75 64 69 6e 67 20 61 20 70 68 79 73 69 63 61 6c 20 64 69 73 74 72 69 62 75 74 69 6f 6e 20 | cluding.a.physical.distribution. |
| 62080 | 6d 65 64 69 75 6d 29 2c 20 61 63 63 6f 6d 70 61 6e 69 65 64 20 62 79 20 61 0a 20 20 20 20 77 72 | medium),.accompanied.by.a.....wr |
| 620a0 | 69 74 74 65 6e 20 6f 66 66 65 72 2c 20 76 61 6c 69 64 20 66 6f 72 20 61 74 20 6c 65 61 73 74 20 | itten.offer,.valid.for.at.least. |
| 620c0 | 74 68 72 65 65 20 79 65 61 72 73 20 61 6e 64 20 76 61 6c 69 64 20 66 6f 72 20 61 73 0a 20 20 20 | three.years.and.valid.for.as.... |
| 620e0 | 20 6c 6f 6e 67 20 61 73 20 79 6f 75 20 6f 66 66 65 72 20 73 70 61 72 65 20 70 61 72 74 73 20 6f | .long.as.you.offer.spare.parts.o |
| 62100 | 72 20 63 75 73 74 6f 6d 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 61 74 20 70 72 6f 64 | r.customer.support.for.that.prod |
| 62120 | 75 63 74 0a 20 20 20 20 6d 6f 64 65 6c 2c 20 74 6f 20 67 69 76 65 20 61 6e 79 6f 6e 65 20 77 68 | uct.....model,.to.give.anyone.wh |
| 62140 | 6f 20 70 6f 73 73 65 73 73 65 73 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 65 69 74 68 | o.possesses.the.object.code.eith |
| 62160 | 65 72 20 28 31 29 20 61 0a 20 20 20 20 63 6f 70 79 20 6f 66 20 74 68 65 20 43 6f 72 72 65 73 70 | er.(1).a.....copy.of.the.Corresp |
| 62180 | 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 73 6f 66 74 77 61 | onding.Source.for.all.the.softwa |
| 621a0 | 72 65 20 69 6e 20 74 68 65 0a 20 20 20 20 70 72 6f 64 75 63 74 20 74 68 61 74 20 69 73 20 63 6f | re.in.the.....product.that.is.co |
| 621c0 | 76 65 72 65 64 20 62 79 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 6f 6e 20 61 20 64 75 72 61 | vered.by.this.License,.on.a.dura |
| 621e0 | 62 6c 65 20 70 68 79 73 69 63 61 6c 0a 20 20 20 20 6d 65 64 69 75 6d 20 63 75 73 74 6f 6d 61 72 | ble.physical.....medium.customar |
| 62200 | 69 6c 79 20 75 73 65 64 20 66 6f 72 20 73 6f 66 74 77 61 72 65 20 69 6e 74 65 72 63 68 61 6e 67 | ily.used.for.software.interchang |
| 62220 | 65 2c 20 66 6f 72 20 61 20 70 72 69 63 65 20 6e 6f 0a 20 20 20 20 6d 6f 72 65 20 74 68 61 6e 20 | e,.for.a.price.no.....more.than. |
| 62240 | 79 6f 75 72 20 72 65 61 73 6f 6e 61 62 6c 65 20 63 6f 73 74 20 6f 66 20 70 68 79 73 69 63 61 6c | your.reasonable.cost.of.physical |
| 62260 | 6c 79 20 70 65 72 66 6f 72 6d 69 6e 67 20 74 68 69 73 0a 20 20 20 20 63 6f 6e 76 65 79 69 6e 67 | ly.performing.this.....conveying |
| 62280 | 20 6f 66 20 73 6f 75 72 63 65 2c 20 6f 72 20 28 32 29 20 61 63 63 65 73 73 20 74 6f 20 63 6f 70 | .of.source,.or.(2).access.to.cop |
| 622a0 | 79 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 66 | y.the.....Corresponding.Source.f |
| 622c0 | 72 6f 6d 20 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 20 61 74 20 6e 6f 20 63 68 61 72 67 | rom.a.network.server.at.no.charg |
| 622e0 | 65 2e 0a 0a 20 20 20 20 63 29 20 43 6f 6e 76 65 79 20 69 6e 64 69 76 69 64 75 61 6c 20 63 6f 70 | e.......c).Convey.individual.cop |
| 62300 | 69 65 73 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 61 20 63 6f | ies.of.the.object.code.with.a.co |
| 62320 | 70 79 20 6f 66 20 74 68 65 0a 20 20 20 20 77 72 69 74 74 65 6e 20 6f 66 66 65 72 20 74 6f 20 70 | py.of.the.....written.offer.to.p |
| 62340 | 72 6f 76 69 64 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e | rovide.the.Corresponding.Source. |
| 62360 | 20 20 54 68 69 73 0a 20 20 20 20 61 6c 74 65 72 6e 61 74 69 76 65 20 69 73 20 61 6c 6c 6f 77 65 | ..This.....alternative.is.allowe |
| 62380 | 64 20 6f 6e 6c 79 20 6f 63 63 61 73 69 6f 6e 61 6c 6c 79 20 61 6e 64 20 6e 6f 6e 63 6f 6d 6d 65 | d.only.occasionally.and.noncomme |
| 623a0 | 72 63 69 61 6c 6c 79 2c 20 61 6e 64 0a 20 20 20 20 6f 6e 6c 79 20 69 66 20 79 6f 75 20 72 65 63 | rcially,.and.....only.if.you.rec |
| 623c0 | 65 69 76 65 64 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 69 74 68 20 73 75 63 68 20 | eived.the.object.code.with.such. |
| 623e0 | 61 6e 20 6f 66 66 65 72 2c 20 69 6e 20 61 63 63 6f 72 64 0a 20 20 20 20 77 69 74 68 20 73 75 62 | an.offer,.in.accord.....with.sub |
| 62400 | 73 65 63 74 69 6f 6e 20 36 62 2e 0a 0a 20 20 20 20 64 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f | section.6b.......d).Convey.the.o |
| 62420 | 62 6a 65 63 74 20 63 6f 64 65 20 62 79 20 6f 66 66 65 72 69 6e 67 20 61 63 63 65 73 73 20 66 72 | bject.code.by.offering.access.fr |
| 62440 | 6f 6d 20 61 20 64 65 73 69 67 6e 61 74 65 64 0a 20 20 20 20 70 6c 61 63 65 20 28 67 72 61 74 69 | om.a.designated.....place.(grati |
| 62460 | 73 20 6f 72 20 66 6f 72 20 61 20 63 68 61 72 67 65 29 2c 20 61 6e 64 20 6f 66 66 65 72 20 65 71 | s.or.for.a.charge),.and.offer.eq |
| 62480 | 75 69 76 61 6c 65 6e 74 20 61 63 63 65 73 73 20 74 6f 20 74 68 65 0a 20 20 20 20 43 6f 72 72 65 | uivalent.access.to.the.....Corre |
| 624a0 | 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 | sponding.Source.in.the.same.way. |
| 624c0 | 74 68 72 6f 75 67 68 20 74 68 65 20 73 61 6d 65 20 70 6c 61 63 65 20 61 74 20 6e 6f 0a 20 20 20 | through.the.same.place.at.no.... |
| 624e0 | 20 66 75 72 74 68 65 72 20 63 68 61 72 67 65 2e 20 20 59 6f 75 20 6e 65 65 64 20 6e 6f 74 20 72 | .further.charge...You.need.not.r |
| 62500 | 65 71 75 69 72 65 20 72 65 63 69 70 69 65 6e 74 73 20 74 6f 20 63 6f 70 79 20 74 68 65 0a 20 20 | equire.recipients.to.copy.the... |
| 62520 | 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 6c 6f 6e 67 20 77 69 74 | ..Corresponding.Source.along.wit |
| 62540 | 68 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2e 20 20 49 66 20 74 68 65 20 70 6c 61 63 65 | h.the.object.code...If.the.place |
| 62560 | 20 74 6f 0a 20 20 20 20 63 6f 70 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 69 73 20 | .to.....copy.the.object.code.is. |
| 62580 | 61 20 6e 65 74 77 6f 72 6b 20 73 65 72 76 65 72 2c 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 | a.network.server,.the.Correspond |
| 625a0 | 69 6e 67 20 53 6f 75 72 63 65 0a 20 20 20 20 6d 61 79 20 62 65 20 6f 6e 20 61 20 64 69 66 66 65 | ing.Source.....may.be.on.a.diffe |
| 625c0 | 72 65 6e 74 20 73 65 72 76 65 72 20 28 6f 70 65 72 61 74 65 64 20 62 79 20 79 6f 75 20 6f 72 20 | rent.server.(operated.by.you.or. |
| 625e0 | 61 20 74 68 69 72 64 20 70 61 72 74 79 29 0a 20 20 20 20 74 68 61 74 20 73 75 70 70 6f 72 74 73 | a.third.party).....that.supports |
| 62600 | 20 65 71 75 69 76 61 6c 65 6e 74 20 63 6f 70 79 69 6e 67 20 66 61 63 69 6c 69 74 69 65 73 2c 20 | .equivalent.copying.facilities,. |
| 62620 | 70 72 6f 76 69 64 65 64 20 79 6f 75 20 6d 61 69 6e 74 61 69 6e 0a 20 20 20 20 63 6c 65 61 72 20 | provided.you.maintain.....clear. |
| 62640 | 64 69 72 65 63 74 69 6f 6e 73 20 6e 65 78 74 20 74 6f 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f | directions.next.to.the.object.co |
| 62660 | 64 65 20 73 61 79 69 6e 67 20 77 68 65 72 65 20 74 6f 20 66 69 6e 64 20 74 68 65 0a 20 20 20 20 | de.saying.where.to.find.the..... |
| 62680 | 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 52 65 67 61 72 64 6c 65 73 | Corresponding.Source...Regardles |
| 626a0 | 73 20 6f 66 20 77 68 61 74 20 73 65 72 76 65 72 20 68 6f 73 74 73 20 74 68 65 0a 20 20 20 20 43 | s.of.what.server.hosts.the.....C |
| 626c0 | 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2c 20 79 6f 75 20 72 65 6d 61 69 6e 20 | orresponding.Source,.you.remain. |
| 626e0 | 6f 62 6c 69 67 61 74 65 64 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 69 74 20 69 73 0a 20 | obligated.to.ensure.that.it.is.. |
| 62700 | 20 20 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 73 20 6c 6f 6e 67 20 61 73 20 6e 65 65 64 | ...available.for.as.long.as.need |
| 62720 | 65 64 20 74 6f 20 73 61 74 69 73 66 79 20 74 68 65 73 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 | ed.to.satisfy.these.requirements |
| 62740 | 2e 0a 0a 20 20 20 20 65 29 20 43 6f 6e 76 65 79 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 | .......e).Convey.the.object.code |
| 62760 | 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f 6e | .using.peer-to-peer.transmission |
| 62780 | 2c 20 70 72 6f 76 69 64 65 64 0a 20 20 20 20 79 6f 75 20 69 6e 66 6f 72 6d 20 6f 74 68 65 72 20 | ,.provided.....you.inform.other. |
| 627a0 | 70 65 65 72 73 20 77 68 65 72 65 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 20 61 6e 64 20 | peers.where.the.object.code.and. |
| 627c0 | 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 0a 20 20 20 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 | Corresponding.....Source.of.the. |
| 627e0 | 77 6f 72 6b 20 61 72 65 20 62 65 69 6e 67 20 6f 66 66 65 72 65 64 20 74 6f 20 74 68 65 20 67 65 | work.are.being.offered.to.the.ge |
| 62800 | 6e 65 72 61 6c 20 70 75 62 6c 69 63 20 61 74 20 6e 6f 0a 20 20 20 20 63 68 61 72 67 65 20 75 6e | neral.public.at.no.....charge.un |
| 62820 | 64 65 72 20 73 75 62 73 65 63 74 69 6f 6e 20 36 64 2e 0a 0a 20 20 41 20 73 65 70 61 72 61 62 6c | der.subsection.6d.....A.separabl |
| 62840 | 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 2c 20 77 68 | e.portion.of.the.object.code,.wh |
| 62860 | 6f 73 65 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 73 20 65 78 63 6c 75 64 65 64 0a 66 72 6f 6d | ose.source.code.is.excluded.from |
| 62880 | 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 61 73 20 61 20 53 | .the.Corresponding.Source.as.a.S |
| 628a0 | 79 73 74 65 6d 20 4c 69 62 72 61 72 79 2c 20 6e 65 65 64 20 6e 6f 74 20 62 65 0a 69 6e 63 6c 75 | ystem.Library,.need.not.be.inclu |
| 628c0 | 64 65 64 20 69 6e 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 6f 62 6a 65 63 74 20 63 6f 64 65 | ded.in.conveying.the.object.code |
| 628e0 | 20 77 6f 72 6b 2e 0a 0a 20 20 41 20 22 55 73 65 72 20 50 72 6f 64 75 63 74 22 20 69 73 20 65 69 | .work.....A."User.Product".is.ei |
| 62900 | 74 68 65 72 20 28 31 29 20 61 20 22 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 22 2c 20 77 | ther.(1).a."consumer.product",.w |
| 62920 | 68 69 63 68 20 6d 65 61 6e 73 20 61 6e 79 0a 74 61 6e 67 69 62 6c 65 20 70 65 72 73 6f 6e 61 6c | hich.means.any.tangible.personal |
| 62940 | 20 70 72 6f 70 65 72 74 79 20 77 68 69 63 68 20 69 73 20 6e 6f 72 6d 61 6c 6c 79 20 75 73 65 64 | .property.which.is.normally.used |
| 62960 | 20 66 6f 72 20 70 65 72 73 6f 6e 61 6c 2c 20 66 61 6d 69 6c 79 2c 0a 6f 72 20 68 6f 75 73 65 68 | .for.personal,.family,.or.househ |
| 62980 | 6f 6c 64 20 70 75 72 70 6f 73 65 73 2c 20 6f 72 20 28 32 29 20 61 6e 79 74 68 69 6e 67 20 64 65 | old.purposes,.or.(2).anything.de |
| 629a0 | 73 69 67 6e 65 64 20 6f 72 20 73 6f 6c 64 20 66 6f 72 20 69 6e 63 6f 72 70 6f 72 61 74 69 6f 6e | signed.or.sold.for.incorporation |
| 629c0 | 0a 69 6e 74 6f 20 61 20 64 77 65 6c 6c 69 6e 67 2e 20 20 49 6e 20 64 65 74 65 72 6d 69 6e 69 6e | .into.a.dwelling...In.determinin |
| 629e0 | 67 20 77 68 65 74 68 65 72 20 61 20 70 72 6f 64 75 63 74 20 69 73 20 61 20 63 6f 6e 73 75 6d 65 | g.whether.a.product.is.a.consume |
| 62a00 | 72 20 70 72 6f 64 75 63 74 2c 0a 64 6f 75 62 74 66 75 6c 20 63 61 73 65 73 20 73 68 61 6c 6c 20 | r.product,.doubtful.cases.shall. |
| 62a20 | 62 65 20 72 65 73 6f 6c 76 65 64 20 69 6e 20 66 61 76 6f 72 20 6f 66 20 63 6f 76 65 72 61 67 65 | be.resolved.in.favor.of.coverage |
| 62a40 | 2e 20 20 46 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 0a 70 72 6f 64 75 63 74 20 72 65 63 65 | ...For.a.particular.product.rece |
| 62a60 | 69 76 65 64 20 62 79 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 2c 20 22 6e 6f 72 6d | ived.by.a.particular.user,."norm |
| 62a80 | 61 6c 6c 79 20 75 73 65 64 22 20 72 65 66 65 72 73 20 74 6f 20 61 0a 74 79 70 69 63 61 6c 20 6f | ally.used".refers.to.a.typical.o |
| 62aa0 | 72 20 63 6f 6d 6d 6f 6e 20 75 73 65 20 6f 66 20 74 68 61 74 20 63 6c 61 73 73 20 6f 66 20 70 72 | r.common.use.of.that.class.of.pr |
| 62ac0 | 6f 64 75 63 74 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 73 74 61 74 75 73 0a | oduct,.regardless.of.the.status. |
| 62ae0 | 6f 66 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 72 20 6f 72 20 6f 66 20 74 68 65 | of.the.particular.user.or.of.the |
| 62b00 | 20 77 61 79 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 70 61 72 74 69 63 75 6c 61 72 20 75 73 65 | .way.in.which.the.particular.use |
| 62b20 | 72 0a 61 63 74 75 61 6c 6c 79 20 75 73 65 73 2c 20 6f 72 20 65 78 70 65 63 74 73 20 6f 72 20 69 | r.actually.uses,.or.expects.or.i |
| 62b40 | 73 20 65 78 70 65 63 74 65 64 20 74 6f 20 75 73 65 2c 20 74 68 65 20 70 72 6f 64 75 63 74 2e 20 | s.expected.to.use,.the.product.. |
| 62b60 | 20 41 20 70 72 6f 64 75 63 74 0a 69 73 20 61 20 63 6f 6e 73 75 6d 65 72 20 70 72 6f 64 75 63 74 | .A.product.is.a.consumer.product |
| 62b80 | 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 77 68 65 74 68 65 72 20 74 68 65 20 70 72 6f 64 75 | .regardless.of.whether.the.produ |
| 62ba0 | 63 74 20 68 61 73 20 73 75 62 73 74 61 6e 74 69 61 6c 0a 63 6f 6d 6d 65 72 63 69 61 6c 2c 20 69 | ct.has.substantial.commercial,.i |
| 62bc0 | 6e 64 75 73 74 72 69 61 6c 20 6f 72 20 6e 6f 6e 2d 63 6f 6e 73 75 6d 65 72 20 75 73 65 73 2c 20 | ndustrial.or.non-consumer.uses,. |
| 62be0 | 75 6e 6c 65 73 73 20 73 75 63 68 20 75 73 65 73 20 72 65 70 72 65 73 65 6e 74 0a 74 68 65 20 6f | unless.such.uses.represent.the.o |
| 62c00 | 6e 6c 79 20 73 69 67 6e 69 66 69 63 61 6e 74 20 6d 6f 64 65 20 6f 66 20 75 73 65 20 6f 66 20 74 | nly.significant.mode.of.use.of.t |
| 62c20 | 68 65 20 70 72 6f 64 75 63 74 2e 0a 0a 20 20 22 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 | he.product....."Installation.Inf |
| 62c40 | 6f 72 6d 61 74 69 6f 6e 22 20 66 6f 72 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 6d 65 61 | ormation".for.a.User.Product.mea |
| 62c60 | 6e 73 20 61 6e 79 20 6d 65 74 68 6f 64 73 2c 0a 70 72 6f 63 65 64 75 72 65 73 2c 20 61 75 74 68 | ns.any.methods,.procedures,.auth |
| 62c80 | 6f 72 69 7a 61 74 69 6f 6e 20 6b 65 79 73 2c 20 6f 72 20 6f 74 68 65 72 20 69 6e 66 6f 72 6d 61 | orization.keys,.or.other.informa |
| 62ca0 | 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 61 6e 64 20 65 78 65 | tion.required.to.install.and.exe |
| 62cc0 | 63 75 74 65 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 61 20 63 6f 76 65 | cute.modified.versions.of.a.cove |
| 62ce0 | 72 65 64 20 77 6f 72 6b 20 69 6e 20 74 68 61 74 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 66 72 | red.work.in.that.User.Product.fr |
| 62d00 | 6f 6d 0a 61 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 6f 66 20 69 74 73 20 43 6f 72 | om.a.modified.version.of.its.Cor |
| 62d20 | 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 2e 20 20 54 68 65 20 69 6e 66 6f 72 6d 61 74 | responding.Source...The.informat |
| 62d40 | 69 6f 6e 20 6d 75 73 74 0a 73 75 66 66 69 63 65 20 74 6f 20 65 6e 73 75 72 65 20 74 68 61 74 20 | ion.must.suffice.to.ensure.that. |
| 62d60 | 74 68 65 20 63 6f 6e 74 69 6e 75 65 64 20 66 75 6e 63 74 69 6f 6e 69 6e 67 20 6f 66 20 74 68 65 | the.continued.functioning.of.the |
| 62d80 | 20 6d 6f 64 69 66 69 65 64 20 6f 62 6a 65 63 74 0a 63 6f 64 65 20 69 73 20 69 6e 20 6e 6f 20 63 | .modified.object.code.is.in.no.c |
| 62da0 | 61 73 65 20 70 72 65 76 65 6e 74 65 64 20 6f 72 20 69 6e 74 65 72 66 65 72 65 64 20 77 69 74 68 | ase.prevented.or.interfered.with |
| 62dc0 | 20 73 6f 6c 65 6c 79 20 62 65 63 61 75 73 65 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 68 61 73 | .solely.because.modification.has |
| 62de0 | 20 62 65 65 6e 20 6d 61 64 65 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 65 79 20 61 6e 20 | .been.made.....If.you.convey.an. |
| 62e00 | 6f 62 6a 65 63 74 20 63 6f 64 65 20 77 6f 72 6b 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 | object.code.work.under.this.sect |
| 62e20 | 69 6f 6e 20 69 6e 2c 20 6f 72 20 77 69 74 68 2c 20 6f 72 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 | ion.in,.or.with,.or.specifically |
| 62e40 | 20 66 6f 72 20 75 73 65 20 69 6e 2c 20 61 20 55 73 65 72 20 50 72 6f 64 75 63 74 2c 20 61 6e 64 | .for.use.in,.a.User.Product,.and |
| 62e60 | 20 74 68 65 20 63 6f 6e 76 65 79 69 6e 67 20 6f 63 63 75 72 73 20 61 73 0a 70 61 72 74 20 6f 66 | .the.conveying.occurs.as.part.of |
| 62e80 | 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 77 68 69 63 68 20 74 68 65 20 72 69 67 68 | .a.transaction.in.which.the.righ |
| 62ea0 | 74 20 6f 66 20 70 6f 73 73 65 73 73 69 6f 6e 20 61 6e 64 20 75 73 65 20 6f 66 20 74 68 65 0a 55 | t.of.possession.and.use.of.the.U |
| 62ec0 | 73 65 72 20 50 72 6f 64 75 63 74 20 69 73 20 74 72 61 6e 73 66 65 72 72 65 64 20 74 6f 20 74 68 | ser.Product.is.transferred.to.th |
| 62ee0 | 65 20 72 65 63 69 70 69 65 6e 74 20 69 6e 20 70 65 72 70 65 74 75 69 74 79 20 6f 72 20 66 6f 72 | e.recipient.in.perpetuity.or.for |
| 62f00 | 20 61 0a 66 69 78 65 64 20 74 65 72 6d 20 28 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 68 6f 77 | .a.fixed.term.(regardless.of.how |
| 62f20 | 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 63 68 61 72 61 63 74 65 72 69 7a 65 | .the.transaction.is.characterize |
| 62f40 | 64 29 2c 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 63 6f 6e | d),.the.Corresponding.Source.con |
| 62f60 | 76 65 79 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 | veyed.under.this.section.must.be |
| 62f80 | 20 61 63 63 6f 6d 70 61 6e 69 65 64 0a 62 79 20 74 68 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e | .accompanied.by.the.Installation |
| 62fa0 | 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 42 75 74 20 74 68 69 73 20 72 65 71 75 69 72 65 6d | .Information...But.this.requirem |
| 62fc0 | 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 6c 79 0a 69 66 20 6e 65 69 74 68 65 72 20 79 6f | ent.does.not.apply.if.neither.yo |
| 62fe0 | 75 20 6e 6f 72 20 61 6e 79 20 74 68 69 72 64 20 70 61 72 74 79 20 72 65 74 61 69 6e 73 20 74 68 | u.nor.any.third.party.retains.th |
| 63000 | 65 20 61 62 69 6c 69 74 79 20 74 6f 20 69 6e 73 74 61 6c 6c 0a 6d 6f 64 69 66 69 65 64 20 6f 62 | e.ability.to.install.modified.ob |
| 63020 | 6a 65 63 74 20 63 6f 64 65 20 6f 6e 20 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 28 66 | ject.code.on.the.User.Product.(f |
| 63040 | 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 77 6f 72 6b 20 68 61 73 0a 62 65 65 6e 20 69 6e | or.example,.the.work.has.been.in |
| 63060 | 73 74 61 6c 6c 65 64 20 69 6e 20 52 4f 4d 29 2e 0a 0a 20 20 54 68 65 20 72 65 71 75 69 72 65 6d | stalled.in.ROM).....The.requirem |
| 63080 | 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 49 6e 66 6f | ent.to.provide.Installation.Info |
| 630a0 | 72 6d 61 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 0a 72 65 71 75 69 | rmation.does.not.include.a.requi |
| 630c0 | 72 65 6d 65 6e 74 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 70 72 6f 76 69 64 65 20 73 75 | rement.to.continue.to.provide.su |
| 630e0 | 70 70 6f 72 74 20 73 65 72 76 69 63 65 2c 20 77 61 72 72 61 6e 74 79 2c 20 6f 72 20 75 70 64 61 | pport.service,.warranty,.or.upda |
| 63100 | 74 65 73 0a 66 6f 72 20 61 20 77 6f 72 6b 20 74 68 61 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 | tes.for.a.work.that.has.been.mod |
| 63120 | 69 66 69 65 64 20 6f 72 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 74 68 65 20 72 65 63 69 70 69 | ified.or.installed.by.the.recipi |
| 63140 | 65 6e 74 2c 20 6f 72 20 66 6f 72 0a 74 68 65 20 55 73 65 72 20 50 72 6f 64 75 63 74 20 69 6e 20 | ent,.or.for.the.User.Product.in. |
| 63160 | 77 68 69 63 68 20 69 74 20 68 61 73 20 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6f 72 20 69 6e | which.it.has.been.modified.or.in |
| 63180 | 73 74 61 6c 6c 65 64 2e 20 20 41 63 63 65 73 73 20 74 6f 20 61 0a 6e 65 74 77 6f 72 6b 20 6d 61 | stalled...Access.to.a.network.ma |
| 631a0 | 79 20 62 65 20 64 65 6e 69 65 64 20 77 68 65 6e 20 74 68 65 20 6d 6f 64 69 66 69 63 61 74 69 6f | y.be.denied.when.the.modificatio |
| 631c0 | 6e 20 69 74 73 65 6c 66 20 6d 61 74 65 72 69 61 6c 6c 79 20 61 6e 64 0a 61 64 76 65 72 73 65 6c | n.itself.materially.and.adversel |
| 631e0 | 79 20 61 66 66 65 63 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e | y.affects.the.operation.of.the.n |
| 63200 | 65 74 77 6f 72 6b 20 6f 72 20 76 69 6f 6c 61 74 65 73 20 74 68 65 20 72 75 6c 65 73 20 61 6e 64 | etwork.or.violates.the.rules.and |
| 63220 | 0a 70 72 6f 74 6f 63 6f 6c 73 20 66 6f 72 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 61 63 72 | .protocols.for.communication.acr |
| 63240 | 6f 73 73 20 74 68 65 20 6e 65 74 77 6f 72 6b 2e 0a 0a 20 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e | oss.the.network.....Correspondin |
| 63260 | 67 20 53 6f 75 72 63 65 20 63 6f 6e 76 65 79 65 64 2c 20 61 6e 64 20 49 6e 73 74 61 6c 6c 61 74 | g.Source.conveyed,.and.Installat |
| 63280 | 69 6f 6e 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 70 72 6f 76 69 64 65 64 2c 0a 69 6e 20 61 63 63 | ion.Information.provided,.in.acc |
| 632a0 | 6f 72 64 20 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 69 6e | ord.with.this.section.must.be.in |
| 632c0 | 20 61 20 66 6f 72 6d 61 74 20 74 68 61 74 20 69 73 20 70 75 62 6c 69 63 6c 79 0a 64 6f 63 75 6d | .a.format.that.is.publicly.docum |
| 632e0 | 65 6e 74 65 64 20 28 61 6e 64 20 77 69 74 68 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f | ented.(and.with.an.implementatio |
| 63300 | 6e 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 20 69 6e 0a 73 6f 75 | n.available.to.the.public.in.sou |
| 63320 | 72 63 65 20 63 6f 64 65 20 66 6f 72 6d 29 2c 20 61 6e 64 20 6d 75 73 74 20 72 65 71 75 69 72 65 | rce.code.form),.and.must.require |
| 63340 | 20 6e 6f 20 73 70 65 63 69 61 6c 20 70 61 73 73 77 6f 72 64 20 6f 72 20 6b 65 79 20 66 6f 72 0a | .no.special.password.or.key.for. |
| 63360 | 75 6e 70 61 63 6b 69 6e 67 2c 20 72 65 61 64 69 6e 67 20 6f 72 20 63 6f 70 79 69 6e 67 2e 0a 0a | unpacking,.reading.or.copying... |
| 63380 | 20 20 37 2e 20 41 64 64 69 74 69 6f 6e 61 6c 20 54 65 72 6d 73 2e 0a 0a 20 20 22 41 64 64 69 74 | ..7..Additional.Terms....."Addit |
| 633a0 | 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 22 20 61 72 65 20 74 65 72 6d 73 20 74 68 61 | ional.permissions".are.terms.tha |
| 633c0 | 74 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 0a 4c | t.supplement.the.terms.of.this.L |
| 633e0 | 69 63 65 6e 73 65 20 62 79 20 6d 61 6b 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 73 20 66 72 6f 6d | icense.by.making.exceptions.from |
| 63400 | 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 69 74 73 20 63 6f 6e 64 69 74 69 6f 6e 73 2e 0a | .one.or.more.of.its.conditions.. |
| 63420 | 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 | Additional.permissions.that.are. |
| 63440 | 61 70 70 6c 69 63 61 62 6c 65 20 74 6f 20 74 68 65 20 65 6e 74 69 72 65 20 50 72 6f 67 72 61 6d | applicable.to.the.entire.Program |
| 63460 | 20 73 68 61 6c 6c 0a 62 65 20 74 72 65 61 74 65 64 20 61 73 20 74 68 6f 75 67 68 20 74 68 65 79 | .shall.be.treated.as.though.they |
| 63480 | 20 77 65 72 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 | .were.included.in.this.License,. |
| 634a0 | 74 6f 20 74 68 65 20 65 78 74 65 6e 74 0a 74 68 61 74 20 74 68 65 79 20 61 72 65 20 76 61 6c 69 | to.the.extent.that.they.are.vali |
| 634c0 | 64 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 6c 61 77 2e 20 20 49 66 20 61 64 64 69 | d.under.applicable.law...If.addi |
| 634e0 | 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 0a 61 70 70 6c 79 20 6f 6e 6c 79 20 74 6f | tional.permissions.apply.only.to |
| 63500 | 20 70 61 72 74 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2c 20 74 68 61 74 20 70 61 72 74 20 | .part.of.the.Program,.that.part. |
| 63520 | 6d 61 79 20 62 65 20 75 73 65 64 20 73 65 70 61 72 61 74 65 6c 79 0a 75 6e 64 65 72 20 74 68 6f | may.be.used.separately.under.tho |
| 63540 | 73 65 20 70 65 72 6d 69 73 73 69 6f 6e 73 2c 20 62 75 74 20 74 68 65 20 65 6e 74 69 72 65 20 50 | se.permissions,.but.the.entire.P |
| 63560 | 72 6f 67 72 61 6d 20 72 65 6d 61 69 6e 73 20 67 6f 76 65 72 6e 65 64 20 62 79 0a 74 68 69 73 20 | rogram.remains.governed.by.this. |
| 63580 | 4c 69 63 65 6e 73 65 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 64 20 74 6f 20 74 68 65 20 61 64 | License.without.regard.to.the.ad |
| 635a0 | 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 2e 0a 0a 20 20 57 68 65 6e 20 79 6f | ditional.permissions.....When.yo |
| 635c0 | 75 20 63 6f 6e 76 65 79 20 61 20 63 6f 70 79 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 | u.convey.a.copy.of.a.covered.wor |
| 635e0 | 6b 2c 20 79 6f 75 20 6d 61 79 20 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 0a 72 65 6d 6f 76 65 | k,.you.may.at.your.option.remove |
| 63600 | 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 66 72 6f 6d | .any.additional.permissions.from |
| 63620 | 20 74 68 61 74 20 63 6f 70 79 2c 20 6f 72 20 66 72 6f 6d 20 61 6e 79 20 70 61 72 74 20 6f 66 0a | .that.copy,.or.from.any.part.of. |
| 63640 | 69 74 2e 20 20 28 41 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6d 61 79 | it...(Additional.permissions.may |
| 63660 | 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 72 65 71 75 69 72 65 20 74 68 65 69 72 20 6f 77 6e | .be.written.to.require.their.own |
| 63680 | 0a 72 65 6d 6f 76 61 6c 20 69 6e 20 63 65 72 74 61 69 6e 20 63 61 73 65 73 20 77 68 65 6e 20 79 | .removal.in.certain.cases.when.y |
| 636a0 | 6f 75 20 6d 6f 64 69 66 79 20 74 68 65 20 77 6f 72 6b 2e 29 20 20 59 6f 75 20 6d 61 79 20 70 6c | ou.modify.the.work.)..You.may.pl |
| 636c0 | 61 63 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 6e 20 6d 61 | ace.additional.permissions.on.ma |
| 636e0 | 74 65 72 69 61 6c 2c 20 61 64 64 65 64 20 62 79 20 79 6f 75 20 74 6f 20 61 20 63 6f 76 65 72 65 | terial,.added.by.you.to.a.covere |
| 63700 | 64 20 77 6f 72 6b 2c 0a 66 6f 72 20 77 68 69 63 68 20 79 6f 75 20 68 61 76 65 20 6f 72 20 63 61 | d.work,.for.which.you.have.or.ca |
| 63720 | 6e 20 67 69 76 65 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 70 79 72 69 67 68 74 20 70 65 72 | n.give.appropriate.copyright.per |
| 63740 | 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e 64 69 6e 67 20 61 6e 79 20 | mission.....Notwithstanding.any. |
| 63760 | 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c | other.provision.of.this.License, |
| 63780 | 20 66 6f 72 20 6d 61 74 65 72 69 61 6c 20 79 6f 75 0a 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 | .for.material.you.add.to.a.cover |
| 637a0 | 65 64 20 77 6f 72 6b 2c 20 79 6f 75 20 6d 61 79 20 28 69 66 20 61 75 74 68 6f 72 69 7a 65 64 20 | ed.work,.you.may.(if.authorized. |
| 637c0 | 62 79 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 73 20 6f 66 0a 74 68 61 74 | by.the.copyright.holders.of.that |
| 637e0 | 20 6d 61 74 65 72 69 61 6c 29 20 73 75 70 70 6c 65 6d 65 6e 74 20 74 68 65 20 74 65 72 6d 73 20 | .material).supplement.the.terms. |
| 63800 | 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 77 69 74 68 20 74 65 72 6d 73 3a 0a 0a 20 20 20 | of.this.License.with.terms:..... |
| 63820 | 20 61 29 20 44 69 73 63 6c 61 69 6d 69 6e 67 20 77 61 72 72 61 6e 74 79 20 6f 72 20 6c 69 6d 69 | .a).Disclaiming.warranty.or.limi |
| 63840 | 74 69 6e 67 20 6c 69 61 62 69 6c 69 74 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 66 72 6f 6d 20 | ting.liability.differently.from. |
| 63860 | 74 68 65 0a 20 20 20 20 74 65 72 6d 73 20 6f 66 20 73 65 63 74 69 6f 6e 73 20 31 35 20 61 6e 64 | the.....terms.of.sections.15.and |
| 63880 | 20 31 36 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 3b 20 6f 72 0a 0a 20 20 20 20 62 29 20 | .16.of.this.License;.or......b). |
| 638a0 | 52 65 71 75 69 72 69 6e 67 20 70 72 65 73 65 72 76 61 74 69 6f 6e 20 6f 66 20 73 70 65 63 69 66 | Requiring.preservation.of.specif |
| 638c0 | 69 65 64 20 72 65 61 73 6f 6e 61 62 6c 65 20 6c 65 67 61 6c 20 6e 6f 74 69 63 65 73 20 6f 72 0a | ied.reasonable.legal.notices.or. |
| 638e0 | 20 20 20 20 61 75 74 68 6f 72 20 61 74 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 | ....author.attributions.in.that. |
| 63900 | 6d 61 74 65 72 69 61 6c 20 6f 72 20 69 6e 20 74 68 65 20 41 70 70 72 6f 70 72 69 61 74 65 20 4c | material.or.in.the.Appropriate.L |
| 63920 | 65 67 61 6c 0a 20 20 20 20 4e 6f 74 69 63 65 73 20 64 69 73 70 6c 61 79 65 64 20 62 79 20 77 6f | egal.....Notices.displayed.by.wo |
| 63940 | 72 6b 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 74 3b 20 6f 72 0a 0a 20 20 20 20 63 29 20 50 72 | rks.containing.it;.or......c).Pr |
| 63960 | 6f 68 69 62 69 74 69 6e 67 20 6d 69 73 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 | ohibiting.misrepresentation.of.t |
| 63980 | 68 65 20 6f 72 69 67 69 6e 20 6f 66 20 74 68 61 74 20 6d 61 74 65 72 69 61 6c 2c 20 6f 72 0a 20 | he.origin.of.that.material,.or.. |
| 639a0 | 20 20 20 72 65 71 75 69 72 69 6e 67 20 74 68 61 74 20 6d 6f 64 69 66 69 65 64 20 76 65 72 73 69 | ...requiring.that.modified.versi |
| 639c0 | 6f 6e 73 20 6f 66 20 73 75 63 68 20 6d 61 74 65 72 69 61 6c 20 62 65 20 6d 61 72 6b 65 64 20 69 | ons.of.such.material.be.marked.i |
| 639e0 | 6e 0a 20 20 20 20 72 65 61 73 6f 6e 61 62 6c 65 20 77 61 79 73 20 61 73 20 64 69 66 66 65 72 65 | n.....reasonable.ways.as.differe |
| 63a00 | 6e 74 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 76 65 72 73 69 6f 6e 3b 20 6f 72 | nt.from.the.original.version;.or |
| 63a20 | 0a 0a 20 20 20 20 64 29 20 4c 69 6d 69 74 69 6e 67 20 74 68 65 20 75 73 65 20 66 6f 72 20 70 75 | ......d).Limiting.the.use.for.pu |
| 63a40 | 62 6c 69 63 69 74 79 20 70 75 72 70 6f 73 65 73 20 6f 66 20 6e 61 6d 65 73 20 6f 66 20 6c 69 63 | blicity.purposes.of.names.of.lic |
| 63a60 | 65 6e 73 6f 72 73 20 6f 72 0a 20 20 20 20 61 75 74 68 6f 72 73 20 6f 66 20 74 68 65 20 6d 61 74 | ensors.or.....authors.of.the.mat |
| 63a80 | 65 72 69 61 6c 3b 20 6f 72 0a 0a 20 20 20 20 65 29 20 44 65 63 6c 69 6e 69 6e 67 20 74 6f 20 67 | erial;.or......e).Declining.to.g |
| 63aa0 | 72 61 6e 74 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 72 61 64 65 6d 61 72 6b 20 6c 61 77 20 | rant.rights.under.trademark.law. |
| 63ac0 | 66 6f 72 20 75 73 65 20 6f 66 20 73 6f 6d 65 0a 20 20 20 20 74 72 61 64 65 20 6e 61 6d 65 73 2c | for.use.of.some.....trade.names, |
| 63ae0 | 20 74 72 61 64 65 6d 61 72 6b 73 2c 20 6f 72 20 73 65 72 76 69 63 65 20 6d 61 72 6b 73 3b 20 6f | .trademarks,.or.service.marks;.o |
| 63b00 | 72 0a 0a 20 20 20 20 66 29 20 52 65 71 75 69 72 69 6e 67 20 69 6e 64 65 6d 6e 69 66 69 63 61 74 | r......f).Requiring.indemnificat |
| 63b20 | 69 6f 6e 20 6f 66 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 20 6f 66 20 | ion.of.licensors.and.authors.of. |
| 63b40 | 74 68 61 74 0a 20 20 20 20 6d 61 74 65 72 69 61 6c 20 62 79 20 61 6e 79 6f 6e 65 20 77 68 6f 20 | that.....material.by.anyone.who. |
| 63b60 | 63 6f 6e 76 65 79 73 20 74 68 65 20 6d 61 74 65 72 69 61 6c 20 28 6f 72 20 6d 6f 64 69 66 69 65 | conveys.the.material.(or.modifie |
| 63b80 | 64 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 20 20 20 20 69 74 29 20 77 69 74 68 20 63 6f 6e 74 72 | d.versions.of.....it).with.contr |
| 63ba0 | 61 63 74 75 61 6c 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 | actual.assumptions.of.liability. |
| 63bc0 | 74 6f 20 74 68 65 20 72 65 63 69 70 69 65 6e 74 2c 20 66 6f 72 0a 20 20 20 20 61 6e 79 20 6c 69 | to.the.recipient,.for.....any.li |
| 63be0 | 61 62 69 6c 69 74 79 20 74 68 61 74 20 74 68 65 73 65 20 63 6f 6e 74 72 61 63 74 75 61 6c 20 61 | ability.that.these.contractual.a |
| 63c00 | 73 73 75 6d 70 74 69 6f 6e 73 20 64 69 72 65 63 74 6c 79 20 69 6d 70 6f 73 65 20 6f 6e 0a 20 20 | ssumptions.directly.impose.on... |
| 63c20 | 20 20 74 68 6f 73 65 20 6c 69 63 65 6e 73 6f 72 73 20 61 6e 64 20 61 75 74 68 6f 72 73 2e 0a 0a | ..those.licensors.and.authors... |
| 63c40 | 20 20 41 6c 6c 20 6f 74 68 65 72 20 6e 6f 6e 2d 70 65 72 6d 69 73 73 69 76 65 20 61 64 64 69 74 | ..All.other.non-permissive.addit |
| 63c60 | 69 6f 6e 61 6c 20 74 65 72 6d 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 20 22 66 75 72 74 | ional.terms.are.considered."furt |
| 63c80 | 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 73 22 20 77 69 74 68 69 6e 20 74 68 65 20 6d 65 61 | her.restrictions".within.the.mea |
| 63ca0 | 6e 69 6e 67 20 6f 66 20 73 65 63 74 69 6f 6e 20 31 30 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 | ning.of.section.10...If.the.Prog |
| 63cc0 | 72 61 6d 20 61 73 20 79 6f 75 0a 72 65 63 65 69 76 65 64 20 69 74 2c 20 6f 72 20 61 6e 79 20 70 | ram.as.you.received.it,.or.any.p |
| 63ce0 | 61 72 74 20 6f 66 20 69 74 2c 20 63 6f 6e 74 61 69 6e 73 20 61 20 6e 6f 74 69 63 65 20 73 74 61 | art.of.it,.contains.a.notice.sta |
| 63d00 | 74 69 6e 67 20 74 68 61 74 20 69 74 20 69 73 0a 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 69 73 | ting.that.it.is.governed.by.this |
| 63d20 | 20 4c 69 63 65 6e 73 65 20 61 6c 6f 6e 67 20 77 69 74 68 20 61 20 74 65 72 6d 20 74 68 61 74 20 | .License.along.with.a.term.that. |
| 63d40 | 69 73 20 61 20 66 75 72 74 68 65 72 0a 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 79 6f 75 20 6d 61 | is.a.further.restriction,.you.ma |
| 63d60 | 79 20 72 65 6d 6f 76 65 20 74 68 61 74 20 74 65 72 6d 2e 20 20 49 66 20 61 20 6c 69 63 65 6e 73 | y.remove.that.term...If.a.licens |
| 63d80 | 65 20 64 6f 63 75 6d 65 6e 74 20 63 6f 6e 74 61 69 6e 73 0a 61 20 66 75 72 74 68 65 72 20 72 65 | e.document.contains.a.further.re |
| 63da0 | 73 74 72 69 63 74 69 6f 6e 20 62 75 74 20 70 65 72 6d 69 74 73 20 72 65 6c 69 63 65 6e 73 69 6e | striction.but.permits.relicensin |
| 63dc0 | 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 | g.or.conveying.under.this.Licens |
| 63de0 | 65 2c 20 79 6f 75 20 6d 61 79 20 61 64 64 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b | e,.you.may.add.to.a.covered.work |
| 63e00 | 20 6d 61 74 65 72 69 61 6c 20 67 6f 76 65 72 6e 65 64 20 62 79 20 74 68 65 20 74 65 72 6d 73 0a | .material.governed.by.the.terms. |
| 63e20 | 6f 66 20 74 68 61 74 20 6c 69 63 65 6e 73 65 20 64 6f 63 75 6d 65 6e 74 2c 20 70 72 6f 76 69 64 | of.that.license.document,.provid |
| 63e40 | 65 64 20 74 68 61 74 20 74 68 65 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 6f 6e 20 | ed.that.the.further.restriction. |
| 63e60 | 64 6f 65 73 0a 6e 6f 74 20 73 75 72 76 69 76 65 20 73 75 63 68 20 72 65 6c 69 63 65 6e 73 69 6e | does.not.survive.such.relicensin |
| 63e80 | 67 20 6f 72 20 63 6f 6e 76 65 79 69 6e 67 2e 0a 0a 20 20 49 66 20 79 6f 75 20 61 64 64 20 74 65 | g.or.conveying.....If.you.add.te |
| 63ea0 | 72 6d 73 20 74 6f 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 63 63 6f 72 64 20 | rms.to.a.covered.work.in.accord. |
| 63ec0 | 77 69 74 68 20 74 68 69 73 20 73 65 63 74 69 6f 6e 2c 20 79 6f 75 0a 6d 75 73 74 20 70 6c 61 63 | with.this.section,.you.must.plac |
| 63ee0 | 65 2c 20 69 6e 20 74 68 65 20 72 65 6c 65 76 61 6e 74 20 73 6f 75 72 63 65 20 66 69 6c 65 73 2c | e,.in.the.relevant.source.files, |
| 63f00 | 20 61 20 73 74 61 74 65 6d 65 6e 74 20 6f 66 20 74 68 65 0a 61 64 64 69 74 69 6f 6e 61 6c 20 74 | .a.statement.of.the.additional.t |
| 63f20 | 65 72 6d 73 20 74 68 61 74 20 61 70 70 6c 79 20 74 6f 20 74 68 6f 73 65 20 66 69 6c 65 73 2c 20 | erms.that.apply.to.those.files,. |
| 63f40 | 6f 72 20 61 20 6e 6f 74 69 63 65 20 69 6e 64 69 63 61 74 69 6e 67 0a 77 68 65 72 65 20 74 6f 20 | or.a.notice.indicating.where.to. |
| 63f60 | 66 69 6e 64 20 74 68 65 20 61 70 70 6c 69 63 61 62 6c 65 20 74 65 72 6d 73 2e 0a 0a 20 20 41 64 | find.the.applicable.terms.....Ad |
| 63f80 | 64 69 74 69 6f 6e 61 6c 20 74 65 72 6d 73 2c 20 70 65 72 6d 69 73 73 69 76 65 20 6f 72 20 6e 6f | ditional.terms,.permissive.or.no |
| 63fa0 | 6e 2d 70 65 72 6d 69 73 73 69 76 65 2c 20 6d 61 79 20 62 65 20 73 74 61 74 65 64 20 69 6e 20 74 | n-permissive,.may.be.stated.in.t |
| 63fc0 | 68 65 0a 66 6f 72 6d 20 6f 66 20 61 20 73 65 70 61 72 61 74 65 6c 79 20 77 72 69 74 74 65 6e 20 | he.form.of.a.separately.written. |
| 63fe0 | 6c 69 63 65 6e 73 65 2c 20 6f 72 20 73 74 61 74 65 64 20 61 73 20 65 78 63 65 70 74 69 6f 6e 73 | license,.or.stated.as.exceptions |
| 64000 | 3b 0a 74 68 65 20 61 62 6f 76 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 70 70 6c 79 20 65 | ;.the.above.requirements.apply.e |
| 64020 | 69 74 68 65 72 20 77 61 79 2e 0a 0a 20 20 38 2e 20 54 65 72 6d 69 6e 61 74 69 6f 6e 2e 0a 0a 20 | ither.way.....8..Termination.... |
| 64040 | 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 70 72 6f 70 61 67 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 | .You.may.not.propagate.or.modify |
| 64060 | 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 65 78 63 65 70 74 20 61 73 20 65 78 70 72 65 73 | .a.covered.work.except.as.expres |
| 64080 | 73 6c 79 0a 70 72 6f 76 69 64 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e | sly.provided.under.this.License. |
| 640a0 | 20 20 41 6e 79 20 61 74 74 65 6d 70 74 20 6f 74 68 65 72 77 69 73 65 20 74 6f 20 70 72 6f 70 61 | ..Any.attempt.otherwise.to.propa |
| 640c0 | 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 69 74 20 69 73 20 76 6f 69 64 2c 20 61 6e 64 20 77 | gate.or.modify.it.is.void,.and.w |
| 640e0 | 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 20 79 6f 75 72 | ill.automatically.terminate.your |
| 64100 | 20 72 69 67 68 74 73 20 75 6e 64 65 72 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 69 6e 63 6c | .rights.under.this.License.(incl |
| 64120 | 75 64 69 6e 67 20 61 6e 79 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 73 20 67 72 61 6e 74 65 | uding.any.patent.licenses.grante |
| 64140 | 64 20 75 6e 64 65 72 20 74 68 65 20 74 68 69 72 64 0a 70 61 72 61 67 72 61 70 68 20 6f 66 20 73 | d.under.the.third.paragraph.of.s |
| 64160 | 65 63 74 69 6f 6e 20 31 31 29 2e 0a 0a 20 20 48 6f 77 65 76 65 72 2c 20 69 66 20 79 6f 75 20 63 | ection.11).....However,.if.you.c |
| 64180 | 65 61 73 65 20 61 6c 6c 20 76 69 6f 6c 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e | ease.all.violation.of.this.Licen |
| 641a0 | 73 65 2c 20 74 68 65 6e 20 79 6f 75 72 0a 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 61 20 70 61 72 | se,.then.your.license.from.a.par |
| 641c0 | 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 20 72 65 69 6e | ticular.copyright.holder.is.rein |
| 641e0 | 73 74 61 74 65 64 20 28 61 29 0a 70 72 6f 76 69 73 69 6f 6e 61 6c 6c 79 2c 20 75 6e 6c 65 73 73 | stated.(a).provisionally,.unless |
| 64200 | 20 61 6e 64 20 75 6e 74 69 6c 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 | .and.until.the.copyright.holder. |
| 64220 | 65 78 70 6c 69 63 69 74 6c 79 20 61 6e 64 0a 66 69 6e 61 6c 6c 79 20 74 65 72 6d 69 6e 61 74 65 | explicitly.and.finally.terminate |
| 64240 | 73 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 2c 20 61 6e 64 20 28 62 29 20 70 65 72 6d 61 6e 65 6e | s.your.license,.and.(b).permanen |
| 64260 | 74 6c 79 2c 20 69 66 20 74 68 65 20 63 6f 70 79 72 69 67 68 74 0a 68 6f 6c 64 65 72 20 66 61 69 | tly,.if.the.copyright.holder.fai |
| 64280 | 6c 73 20 74 6f 20 6e 6f 74 69 66 79 20 79 6f 75 20 6f 66 20 74 68 65 20 76 69 6f 6c 61 74 69 6f | ls.to.notify.you.of.the.violatio |
| 642a0 | 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 20 6d 65 61 6e 73 0a 70 72 69 6f 72 | n.by.some.reasonable.means.prior |
| 642c0 | 20 74 6f 20 36 30 20 64 61 79 73 20 61 66 74 65 72 20 74 68 65 20 63 65 73 73 61 74 69 6f 6e 2e | .to.60.days.after.the.cessation. |
| 642e0 | 0a 0a 20 20 4d 6f 72 65 6f 76 65 72 2c 20 79 6f 75 72 20 6c 69 63 65 6e 73 65 20 66 72 6f 6d 20 | ....Moreover,.your.license.from. |
| 64300 | 61 20 70 61 72 74 69 63 75 6c 61 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 69 73 | a.particular.copyright.holder.is |
| 64320 | 0a 72 65 69 6e 73 74 61 74 65 64 20 70 65 72 6d 61 6e 65 6e 74 6c 79 20 69 66 20 74 68 65 20 63 | .reinstated.permanently.if.the.c |
| 64340 | 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 6e 6f 74 69 66 69 65 73 20 79 6f 75 20 6f 66 20 | opyright.holder.notifies.you.of. |
| 64360 | 74 68 65 0a 76 69 6f 6c 61 74 69 6f 6e 20 62 79 20 73 6f 6d 65 20 72 65 61 73 6f 6e 61 62 6c 65 | the.violation.by.some.reasonable |
| 64380 | 20 6d 65 61 6e 73 2c 20 74 68 69 73 20 69 73 20 74 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 | .means,.this.is.the.first.time.y |
| 643a0 | 6f 75 20 68 61 76 65 0a 72 65 63 65 69 76 65 64 20 6e 6f 74 69 63 65 20 6f 66 20 76 69 6f 6c 61 | ou.have.received.notice.of.viola |
| 643c0 | 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 20 28 66 6f 72 20 61 6e 79 20 77 6f | tion.of.this.License.(for.any.wo |
| 643e0 | 72 6b 29 20 66 72 6f 6d 20 74 68 61 74 0a 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 2c 20 | rk).from.that.copyright.holder,. |
| 64400 | 61 6e 64 20 79 6f 75 20 63 75 72 65 20 74 68 65 20 76 69 6f 6c 61 74 69 6f 6e 20 70 72 69 6f 72 | and.you.cure.the.violation.prior |
| 64420 | 20 74 6f 20 33 30 20 64 61 79 73 20 61 66 74 65 72 0a 79 6f 75 72 20 72 65 63 65 69 70 74 20 6f | .to.30.days.after.your.receipt.o |
| 64440 | 66 20 74 68 65 20 6e 6f 74 69 63 65 2e 0a 0a 20 20 54 65 72 6d 69 6e 61 74 69 6f 6e 20 6f 66 20 | f.the.notice.....Termination.of. |
| 64460 | 79 6f 75 72 20 72 69 67 68 74 73 20 75 6e 64 65 72 20 74 68 69 73 20 73 65 63 74 69 6f 6e 20 64 | your.rights.under.this.section.d |
| 64480 | 6f 65 73 20 6e 6f 74 20 74 65 72 6d 69 6e 61 74 65 20 74 68 65 0a 6c 69 63 65 6e 73 65 73 20 6f | oes.not.terminate.the.licenses.o |
| 644a0 | 66 20 70 61 72 74 69 65 73 20 77 68 6f 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 63 6f 70 69 | f.parties.who.have.received.copi |
| 644c0 | 65 73 20 6f 72 20 72 69 67 68 74 73 20 66 72 6f 6d 20 79 6f 75 20 75 6e 64 65 72 0a 74 68 69 73 | es.or.rights.from.you.under.this |
| 644e0 | 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 72 20 72 69 67 68 74 73 20 68 61 76 65 20 62 | .License...If.your.rights.have.b |
| 64500 | 65 65 6e 20 74 65 72 6d 69 6e 61 74 65 64 20 61 6e 64 20 6e 6f 74 20 70 65 72 6d 61 6e 65 6e 74 | een.terminated.and.not.permanent |
| 64520 | 6c 79 0a 72 65 69 6e 73 74 61 74 65 64 2c 20 79 6f 75 20 64 6f 20 6e 6f 74 20 71 75 61 6c 69 66 | ly.reinstated,.you.do.not.qualif |
| 64540 | 79 20 74 6f 20 72 65 63 65 69 76 65 20 6e 65 77 20 6c 69 63 65 6e 73 65 73 20 66 6f 72 20 74 68 | y.to.receive.new.licenses.for.th |
| 64560 | 65 20 73 61 6d 65 0a 6d 61 74 65 72 69 61 6c 20 75 6e 64 65 72 20 73 65 63 74 69 6f 6e 20 31 30 | e.same.material.under.section.10 |
| 64580 | 2e 0a 0a 20 20 39 2e 20 41 63 63 65 70 74 61 6e 63 65 20 4e 6f 74 20 52 65 71 75 69 72 65 64 20 | .....9..Acceptance.Not.Required. |
| 645a0 | 66 6f 72 20 48 61 76 69 6e 67 20 43 6f 70 69 65 73 2e 0a 0a 20 20 59 6f 75 20 61 72 65 20 6e 6f | for.Having.Copies.....You.are.no |
| 645c0 | 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 61 63 63 65 70 74 20 74 68 69 73 20 4c 69 63 65 6e 73 | t.required.to.accept.this.Licens |
| 645e0 | 65 20 69 6e 20 6f 72 64 65 72 20 74 6f 20 72 65 63 65 69 76 65 20 6f 72 0a 72 75 6e 20 61 20 63 | e.in.order.to.receive.or.run.a.c |
| 64600 | 6f 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 20 20 41 6e 63 69 6c 6c 61 72 79 20 70 | opy.of.the.Program...Ancillary.p |
| 64620 | 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 6f 63 63 | ropagation.of.a.covered.work.occ |
| 64640 | 75 72 72 69 6e 67 20 73 6f 6c 65 6c 79 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 6f | urring.solely.as.a.consequence.o |
| 64660 | 66 20 75 73 69 6e 67 20 70 65 65 72 2d 74 6f 2d 70 65 65 72 20 74 72 61 6e 73 6d 69 73 73 69 6f | f.using.peer-to-peer.transmissio |
| 64680 | 6e 0a 74 6f 20 72 65 63 65 69 76 65 20 61 20 63 6f 70 79 20 6c 69 6b 65 77 69 73 65 20 64 6f 65 | n.to.receive.a.copy.likewise.doe |
| 646a0 | 73 20 6e 6f 74 20 72 65 71 75 69 72 65 20 61 63 63 65 70 74 61 6e 63 65 2e 20 20 48 6f 77 65 76 | s.not.require.acceptance...Howev |
| 646c0 | 65 72 2c 0a 6e 6f 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 74 68 69 73 20 4c 69 63 65 | er,.nothing.other.than.this.Lice |
| 646e0 | 6e 73 65 20 67 72 61 6e 74 73 20 79 6f 75 20 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f 20 70 72 6f | nse.grants.you.permission.to.pro |
| 64700 | 70 61 67 61 74 65 20 6f 72 0a 6d 6f 64 69 66 79 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 | pagate.or.modify.any.covered.wor |
| 64720 | 6b 2e 20 20 54 68 65 73 65 20 61 63 74 69 6f 6e 73 20 69 6e 66 72 69 6e 67 65 20 63 6f 70 79 72 | k...These.actions.infringe.copyr |
| 64740 | 69 67 68 74 20 69 66 20 79 6f 75 20 64 6f 0a 6e 6f 74 20 61 63 63 65 70 74 20 74 68 69 73 20 4c | ight.if.you.do.not.accept.this.L |
| 64760 | 69 63 65 6e 73 65 2e 20 20 54 68 65 72 65 66 6f 72 65 2c 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 | icense...Therefore,.by.modifying |
| 64780 | 20 6f 72 20 70 72 6f 70 61 67 61 74 69 6e 67 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 | .or.propagating.a.covered.work,. |
| 647a0 | 79 6f 75 20 69 6e 64 69 63 61 74 65 20 79 6f 75 72 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 | you.indicate.your.acceptance.of. |
| 647c0 | 74 68 69 73 20 4c 69 63 65 6e 73 65 20 74 6f 20 64 6f 20 73 6f 2e 0a 0a 20 20 31 30 2e 20 41 75 | this.License.to.do.so.....10..Au |
| 647e0 | 74 6f 6d 61 74 69 63 20 4c 69 63 65 6e 73 69 6e 67 20 6f 66 20 44 6f 77 6e 73 74 72 65 61 6d 20 | tomatic.Licensing.of.Downstream. |
| 64800 | 52 65 63 69 70 69 65 6e 74 73 2e 0a 0a 20 20 45 61 63 68 20 74 69 6d 65 20 79 6f 75 20 63 6f 6e | Recipients.....Each.time.you.con |
| 64820 | 76 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 74 68 65 20 72 65 63 69 70 69 65 6e | vey.a.covered.work,.the.recipien |
| 64840 | 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 63 65 69 76 65 73 20 61 20 6c 69 63 65 6e | t.automatically.receives.a.licen |
| 64860 | 73 65 20 66 72 6f 6d 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 6c 69 63 65 6e 73 6f 72 73 2c 20 | se.from.the.original.licensors,. |
| 64880 | 74 6f 20 72 75 6e 2c 20 6d 6f 64 69 66 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 61 | to.run,.modify.and.propagate.tha |
| 648a0 | 74 20 77 6f 72 6b 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e | t.work,.subject.to.this.License. |
| 648c0 | 20 20 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 65 73 70 6f 6e 73 69 62 6c 65 0a 66 6f 72 20 65 6e | ..You.are.not.responsible.for.en |
| 648e0 | 66 6f 72 63 69 6e 67 20 63 6f 6d 70 6c 69 61 6e 63 65 20 62 79 20 74 68 69 72 64 20 70 61 72 74 | forcing.compliance.by.third.part |
| 64900 | 69 65 73 20 77 69 74 68 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 41 6e 20 22 65 6e | ies.with.this.License.....An."en |
| 64920 | 74 69 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 20 69 73 20 61 20 74 72 61 6e 73 61 63 74 69 | tity.transaction".is.a.transacti |
| 64940 | 6f 6e 20 74 72 61 6e 73 66 65 72 72 69 6e 67 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 61 6e 0a 6f 72 | on.transferring.control.of.an.or |
| 64960 | 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 6c 79 20 61 6c 6c | ganization,.or.substantially.all |
| 64980 | 20 61 73 73 65 74 73 20 6f 66 20 6f 6e 65 2c 20 6f 72 20 73 75 62 64 69 76 69 64 69 6e 67 20 61 | .assets.of.one,.or.subdividing.a |
| 649a0 | 6e 0a 6f 72 67 61 6e 69 7a 61 74 69 6f 6e 2c 20 6f 72 20 6d 65 72 67 69 6e 67 20 6f 72 67 61 6e | n.organization,.or.merging.organ |
| 649c0 | 69 7a 61 74 69 6f 6e 73 2e 20 20 49 66 20 70 72 6f 70 61 67 61 74 69 6f 6e 20 6f 66 20 61 20 63 | izations...If.propagation.of.a.c |
| 649e0 | 6f 76 65 72 65 64 0a 77 6f 72 6b 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 61 6e 20 65 6e 74 69 | overed.work.results.from.an.enti |
| 64a00 | 74 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 65 61 63 68 20 70 61 72 74 79 20 74 6f 20 74 68 | ty.transaction,.each.party.to.th |
| 64a20 | 61 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 68 6f 20 72 65 63 65 69 76 65 73 20 61 20 63 6f | at.transaction.who.receives.a.co |
| 64a40 | 70 79 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 61 6c 73 6f 20 72 65 63 65 69 76 65 73 20 77 68 61 | py.of.the.work.also.receives.wha |
| 64a60 | 74 65 76 65 72 0a 6c 69 63 65 6e 73 65 73 20 74 6f 20 74 68 65 20 77 6f 72 6b 20 74 68 65 20 70 | tever.licenses.to.the.work.the.p |
| 64a80 | 61 72 74 79 27 73 20 70 72 65 64 65 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 20 68 | arty's.predecessor.in.interest.h |
| 64aa0 | 61 64 20 6f 72 20 63 6f 75 6c 64 0a 67 69 76 65 20 75 6e 64 65 72 20 74 68 65 20 70 72 65 76 69 | ad.or.could.give.under.the.previ |
| 64ac0 | 6f 75 73 20 70 61 72 61 67 72 61 70 68 2c 20 70 6c 75 73 20 61 20 72 69 67 68 74 20 74 6f 20 70 | ous.paragraph,.plus.a.right.to.p |
| 64ae0 | 6f 73 73 65 73 73 69 6f 6e 20 6f 66 20 74 68 65 0a 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 | ossession.of.the.Corresponding.S |
| 64b00 | 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f 72 6b 20 66 72 6f 6d 20 74 68 65 20 70 72 65 64 65 | ource.of.the.work.from.the.prede |
| 64b20 | 63 65 73 73 6f 72 20 69 6e 20 69 6e 74 65 72 65 73 74 2c 20 69 66 0a 74 68 65 20 70 72 65 64 65 | cessor.in.interest,.if.the.prede |
| 64b40 | 63 65 73 73 6f 72 20 68 61 73 20 69 74 20 6f 72 20 63 61 6e 20 67 65 74 20 69 74 20 77 69 74 68 | cessor.has.it.or.can.get.it.with |
| 64b60 | 20 72 65 61 73 6f 6e 61 62 6c 65 20 65 66 66 6f 72 74 73 2e 0a 0a 20 20 59 6f 75 20 6d 61 79 20 | .reasonable.efforts.....You.may. |
| 64b80 | 6e 6f 74 20 69 6d 70 6f 73 65 20 61 6e 79 20 66 75 72 74 68 65 72 20 72 65 73 74 72 69 63 74 69 | not.impose.any.further.restricti |
| 64ba0 | 6f 6e 73 20 6f 6e 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 20 74 68 65 0a 72 69 67 68 74 | ons.on.the.exercise.of.the.right |
| 64bc0 | 73 20 67 72 61 6e 74 65 64 20 6f 72 20 61 66 66 69 72 6d 65 64 20 75 6e 64 65 72 20 74 68 69 73 | s.granted.or.affirmed.under.this |
| 64be0 | 20 4c 69 63 65 6e 73 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 6d 61 79 0a | .License...For.example,.you.may. |
| 64c00 | 6e 6f 74 20 69 6d 70 6f 73 65 20 61 20 6c 69 63 65 6e 73 65 20 66 65 65 2c 20 72 6f 79 61 6c 74 | not.impose.a.license.fee,.royalt |
| 64c20 | 79 2c 20 6f 72 20 6f 74 68 65 72 20 63 68 61 72 67 65 20 66 6f 72 20 65 78 65 72 63 69 73 65 20 | y,.or.other.charge.for.exercise. |
| 64c40 | 6f 66 0a 72 69 67 68 74 73 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 69 73 20 4c 69 63 | of.rights.granted.under.this.Lic |
| 64c60 | 65 6e 73 65 2c 20 61 6e 64 20 79 6f 75 20 6d 61 79 20 6e 6f 74 20 69 6e 69 74 69 61 74 65 20 6c | ense,.and.you.may.not.initiate.l |
| 64c80 | 69 74 69 67 61 74 69 6f 6e 0a 28 69 6e 63 6c 75 64 69 6e 67 20 61 20 63 72 6f 73 73 2d 63 6c 61 | itigation.(including.a.cross-cla |
| 64ca0 | 69 6d 20 6f 72 20 63 6f 75 6e 74 65 72 63 6c 61 69 6d 20 69 6e 20 61 20 6c 61 77 73 75 69 74 29 | im.or.counterclaim.in.a.lawsuit) |
| 64cc0 | 20 61 6c 6c 65 67 69 6e 67 20 74 68 61 74 0a 61 6e 79 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 20 | .alleging.that.any.patent.claim. |
| 64ce0 | 69 73 20 69 6e 66 72 69 6e 67 65 64 20 62 79 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 73 | is.infringed.by.making,.using,.s |
| 64d00 | 65 6c 6c 69 6e 67 2c 20 6f 66 66 65 72 69 6e 67 20 66 6f 72 0a 73 61 6c 65 2c 20 6f 72 20 69 6d | elling,.offering.for.sale,.or.im |
| 64d20 | 70 6f 72 74 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 6e 79 20 70 6f 72 74 69 | porting.the.Program.or.any.porti |
| 64d40 | 6f 6e 20 6f 66 20 69 74 2e 0a 0a 20 20 31 31 2e 20 50 61 74 65 6e 74 73 2e 0a 0a 20 20 41 20 22 | on.of.it.....11..Patents.....A." |
| 64d60 | 63 6f 6e 74 72 69 62 75 74 6f 72 22 20 69 73 20 61 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 | contributor".is.a.copyright.hold |
| 64d80 | 65 72 20 77 68 6f 20 61 75 74 68 6f 72 69 7a 65 73 20 75 73 65 20 75 6e 64 65 72 20 74 68 69 73 | er.who.authorizes.use.under.this |
| 64da0 | 0a 4c 69 63 65 6e 73 65 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 6f 72 20 61 20 77 6f 72 | .License.of.the.Program.or.a.wor |
| 64dc0 | 6b 20 6f 6e 20 77 68 69 63 68 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 73 20 62 61 73 65 64 2e | k.on.which.the.Program.is.based. |
| 64de0 | 20 20 54 68 65 0a 77 6f 72 6b 20 74 68 75 73 20 6c 69 63 65 6e 73 65 64 20 69 73 20 63 61 6c 6c | ..The.work.thus.licensed.is.call |
| 64e00 | 65 64 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 63 6f 6e 74 72 69 62 75 74 6f | ed.the.contributor's."contributo |
| 64e20 | 72 20 76 65 72 73 69 6f 6e 22 2e 0a 0a 20 20 41 20 63 6f 6e 74 72 69 62 75 74 6f 72 27 73 20 22 | r.version".....A.contributor's." |
| 64e40 | 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 22 20 61 72 65 20 61 6c 6c | essential.patent.claims".are.all |
| 64e60 | 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 0a 6f 77 6e 65 64 20 6f 72 20 63 6f 6e 74 72 6f 6c 6c | .patent.claims.owned.or.controll |
| 64e80 | 65 64 20 62 79 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 2c 20 77 68 65 74 68 65 72 20 61 | ed.by.the.contributor,.whether.a |
| 64ea0 | 6c 72 65 61 64 79 20 61 63 71 75 69 72 65 64 20 6f 72 0a 68 65 72 65 61 66 74 65 72 20 61 63 71 | lready.acquired.or.hereafter.acq |
| 64ec0 | 75 69 72 65 64 2c 20 74 68 61 74 20 77 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 62 | uired,.that.would.be.infringed.b |
| 64ee0 | 79 20 73 6f 6d 65 20 6d 61 6e 6e 65 72 2c 20 70 65 72 6d 69 74 74 65 64 0a 62 79 20 74 68 69 73 | y.some.manner,.permitted.by.this |
| 64f00 | 20 4c 69 63 65 6e 73 65 2c 20 6f 66 20 6d 61 6b 69 6e 67 2c 20 75 73 69 6e 67 2c 20 6f 72 20 73 | .License,.of.making,.using,.or.s |
| 64f20 | 65 6c 6c 69 6e 67 20 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2c 0a | elling.its.contributor.version,. |
| 64f40 | 62 75 74 20 64 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 63 6c 61 69 6d 73 20 74 68 61 74 20 77 | but.do.not.include.claims.that.w |
| 64f60 | 6f 75 6c 64 20 62 65 20 69 6e 66 72 69 6e 67 65 64 20 6f 6e 6c 79 20 61 73 20 61 0a 63 6f 6e 73 | ould.be.infringed.only.as.a.cons |
| 64f80 | 65 71 75 65 6e 63 65 20 6f 66 20 66 75 72 74 68 65 72 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 20 | equence.of.further.modification. |
| 64fa0 | 6f 66 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 20 20 46 6f 72 | of.the.contributor.version...For |
| 64fc0 | 0a 70 75 72 70 6f 73 65 73 20 6f 66 20 74 68 69 73 20 64 65 66 69 6e 69 74 69 6f 6e 2c 20 22 63 | .purposes.of.this.definition,."c |
| 64fe0 | 6f 6e 74 72 6f 6c 22 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 72 69 67 68 74 20 74 6f 20 67 72 | ontrol".includes.the.right.to.gr |
| 65000 | 61 6e 74 0a 70 61 74 65 6e 74 20 73 75 62 6c 69 63 65 6e 73 65 73 20 69 6e 20 61 20 6d 61 6e 6e | ant.patent.sublicenses.in.a.mann |
| 65020 | 65 72 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 | er.consistent.with.the.requireme |
| 65040 | 6e 74 73 20 6f 66 0a 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 45 61 63 68 20 63 6f 6e | nts.of.this.License.....Each.con |
| 65060 | 74 72 69 62 75 74 6f 72 20 67 72 61 6e 74 73 20 79 6f 75 20 61 20 6e 6f 6e 2d 65 78 63 6c 75 73 | tributor.grants.you.a.non-exclus |
| 65080 | 69 76 65 2c 20 77 6f 72 6c 64 77 69 64 65 2c 20 72 6f 79 61 6c 74 79 2d 66 72 65 65 0a 70 61 74 | ive,.worldwide,.royalty-free.pat |
| 650a0 | 65 6e 74 20 6c 69 63 65 6e 73 65 20 75 6e 64 65 72 20 74 68 65 20 63 6f 6e 74 72 69 62 75 74 6f | ent.license.under.the.contributo |
| 650c0 | 72 27 73 20 65 73 73 65 6e 74 69 61 6c 20 70 61 74 65 6e 74 20 63 6c 61 69 6d 73 2c 20 74 6f 0a | r's.essential.patent.claims,.to. |
| 650e0 | 6d 61 6b 65 2c 20 75 73 65 2c 20 73 65 6c 6c 2c 20 6f 66 66 65 72 20 66 6f 72 20 73 61 6c 65 2c | make,.use,.sell,.offer.for.sale, |
| 65100 | 20 69 6d 70 6f 72 74 20 61 6e 64 20 6f 74 68 65 72 77 69 73 65 20 72 75 6e 2c 20 6d 6f 64 69 66 | .import.and.otherwise.run,.modif |
| 65120 | 79 20 61 6e 64 0a 70 72 6f 70 61 67 61 74 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 | y.and.propagate.the.contents.of. |
| 65140 | 69 74 73 20 63 6f 6e 74 72 69 62 75 74 6f 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 49 6e 20 74 | its.contributor.version.....In.t |
| 65160 | 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 72 65 65 20 70 61 72 61 67 72 61 70 68 73 2c 20 61 | he.following.three.paragraphs,.a |
| 65180 | 20 22 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 22 20 69 73 20 61 6e 79 20 65 78 70 72 65 73 73 | ."patent.license".is.any.express |
| 651a0 | 0a 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d 69 74 6d 65 6e 74 2c 20 68 6f 77 65 76 65 | .agreement.or.commitment,.howeve |
| 651c0 | 72 20 64 65 6e 6f 6d 69 6e 61 74 65 64 2c 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 20 | r.denominated,.not.to.enforce.a. |
| 651e0 | 70 61 74 65 6e 74 0a 28 73 75 63 68 20 61 73 20 61 6e 20 65 78 70 72 65 73 73 20 70 65 72 6d 69 | patent.(such.as.an.express.permi |
| 65200 | 73 73 69 6f 6e 20 74 6f 20 70 72 61 63 74 69 63 65 20 61 20 70 61 74 65 6e 74 20 6f 72 20 63 6f | ssion.to.practice.a.patent.or.co |
| 65220 | 76 65 6e 61 6e 74 20 6e 6f 74 20 74 6f 0a 73 75 65 20 66 6f 72 20 70 61 74 65 6e 74 20 69 6e 66 | venant.not.to.sue.for.patent.inf |
| 65240 | 72 69 6e 67 65 6d 65 6e 74 29 2e 20 20 54 6f 20 22 67 72 61 6e 74 22 20 73 75 63 68 20 61 20 70 | ringement)...To."grant".such.a.p |
| 65260 | 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 61 0a 70 61 72 74 79 20 6d 65 61 6e 73 20 74 | atent.license.to.a.party.means.t |
| 65280 | 6f 20 6d 61 6b 65 20 73 75 63 68 20 61 6e 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 20 63 6f 6d 6d | o.make.such.an.agreement.or.comm |
| 652a0 | 69 74 6d 65 6e 74 20 6e 6f 74 20 74 6f 20 65 6e 66 6f 72 63 65 20 61 0a 70 61 74 65 6e 74 20 61 | itment.not.to.enforce.a.patent.a |
| 652c0 | 67 61 69 6e 73 74 20 74 68 65 20 70 61 72 74 79 2e 0a 0a 20 20 49 66 20 79 6f 75 20 63 6f 6e 76 | gainst.the.party.....If.you.conv |
| 652e0 | 65 79 20 61 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 6b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c | ey.a.covered.work,.knowingly.rel |
| 65300 | 79 69 6e 67 20 6f 6e 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 0a 61 6e 64 20 74 68 | ying.on.a.patent.license,.and.th |
| 65320 | 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 63 65 20 6f 66 20 74 68 65 20 77 6f | e.Corresponding.Source.of.the.wo |
| 65340 | 72 6b 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 61 6e 79 6f 6e 65 0a 74 | rk.is.not.available.for.anyone.t |
| 65360 | 6f 20 63 6f 70 79 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 20 61 6e 64 20 75 6e 64 65 72 | o.copy,.free.of.charge.and.under |
| 65380 | 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 72 6f | .the.terms.of.this.License,.thro |
| 653a0 | 75 67 68 20 61 0a 70 75 62 6c 69 63 6c 79 20 61 76 61 69 6c 61 62 6c 65 20 6e 65 74 77 6f 72 6b | ugh.a.publicly.available.network |
| 653c0 | 20 73 65 72 76 65 72 20 6f 72 20 6f 74 68 65 72 20 72 65 61 64 69 6c 79 20 61 63 63 65 73 73 69 | .server.or.other.readily.accessi |
| 653e0 | 62 6c 65 20 6d 65 61 6e 73 2c 0a 74 68 65 6e 20 79 6f 75 20 6d 75 73 74 20 65 69 74 68 65 72 20 | ble.means,.then.you.must.either. |
| 65400 | 28 31 29 20 63 61 75 73 65 20 74 68 65 20 43 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 53 6f 75 72 | (1).cause.the.Corresponding.Sour |
| 65420 | 63 65 20 74 6f 20 62 65 20 73 6f 0a 61 76 61 69 6c 61 62 6c 65 2c 20 6f 72 20 28 32 29 20 61 72 | ce.to.be.so.available,.or.(2).ar |
| 65440 | 72 61 6e 67 65 20 74 6f 20 64 65 70 72 69 76 65 20 79 6f 75 72 73 65 6c 66 20 6f 66 20 74 68 65 | range.to.deprive.yourself.of.the |
| 65460 | 20 62 65 6e 65 66 69 74 20 6f 66 20 74 68 65 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 66 | .benefit.of.the.patent.license.f |
| 65480 | 6f 72 20 74 68 69 73 20 70 61 72 74 69 63 75 6c 61 72 20 77 6f 72 6b 2c 20 6f 72 20 28 33 29 20 | or.this.particular.work,.or.(3). |
| 654a0 | 61 72 72 61 6e 67 65 2c 20 69 6e 20 61 20 6d 61 6e 6e 65 72 0a 63 6f 6e 73 69 73 74 65 6e 74 20 | arrange,.in.a.manner.consistent. |
| 654c0 | 77 69 74 68 20 74 68 65 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4c 69 | with.the.requirements.of.this.Li |
| 654e0 | 63 65 6e 73 65 2c 20 74 6f 20 65 78 74 65 6e 64 20 74 68 65 20 70 61 74 65 6e 74 0a 6c 69 63 65 | cense,.to.extend.the.patent.lice |
| 65500 | 6e 73 65 20 74 6f 20 64 6f 77 6e 73 74 72 65 61 6d 20 72 65 63 69 70 69 65 6e 74 73 2e 20 20 22 | nse.to.downstream.recipients..." |
| 65520 | 4b 6e 6f 77 69 6e 67 6c 79 20 72 65 6c 79 69 6e 67 22 20 6d 65 61 6e 73 20 79 6f 75 20 68 61 76 | Knowingly.relying".means.you.hav |
| 65540 | 65 0a 61 63 74 75 61 6c 20 6b 6e 6f 77 6c 65 64 67 65 20 74 68 61 74 2c 20 62 75 74 20 66 6f 72 | e.actual.knowledge.that,.but.for |
| 65560 | 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 2c 20 79 6f 75 72 20 63 6f 6e 76 65 79 | .the.patent.license,.your.convey |
| 65580 | 69 6e 67 20 74 68 65 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 69 6e 20 61 20 63 6f 75 6e 74 72 | ing.the.covered.work.in.a.countr |
| 655a0 | 79 2c 20 6f 72 20 79 6f 75 72 20 72 65 63 69 70 69 65 6e 74 27 73 20 75 73 65 20 6f 66 20 74 68 | y,.or.your.recipient's.use.of.th |
| 655c0 | 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b 0a 69 6e 20 61 20 63 6f 75 6e 74 72 79 2c 20 77 6f 75 | e.covered.work.in.a.country,.wou |
| 655e0 | 6c 64 20 69 6e 66 72 69 6e 67 65 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 69 64 65 6e 74 69 66 69 | ld.infringe.one.or.more.identifi |
| 65600 | 61 62 6c 65 20 70 61 74 65 6e 74 73 20 69 6e 20 74 68 61 74 0a 63 6f 75 6e 74 72 79 20 74 68 61 | able.patents.in.that.country.tha |
| 65620 | 74 20 79 6f 75 20 68 61 76 65 20 72 65 61 73 6f 6e 20 74 6f 20 62 65 6c 69 65 76 65 20 61 72 65 | t.you.have.reason.to.believe.are |
| 65640 | 20 76 61 6c 69 64 2e 0a 0a 20 20 49 66 2c 20 70 75 72 73 75 61 6e 74 20 74 6f 20 6f 72 20 69 6e | .valid.....If,.pursuant.to.or.in |
| 65660 | 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 61 20 73 69 6e 67 6c 65 20 74 72 61 6e 73 61 | .connection.with.a.single.transa |
| 65680 | 63 74 69 6f 6e 20 6f 72 0a 61 72 72 61 6e 67 65 6d 65 6e 74 2c 20 79 6f 75 20 63 6f 6e 76 65 79 | ction.or.arrangement,.you.convey |
| 656a0 | 2c 20 6f 72 20 70 72 6f 70 61 67 61 74 65 20 62 79 20 70 72 6f 63 75 72 69 6e 67 20 63 6f 6e 76 | ,.or.propagate.by.procuring.conv |
| 656c0 | 65 79 61 6e 63 65 20 6f 66 2c 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 67 | eyance.of,.a.covered.work,.and.g |
| 656e0 | 72 61 6e 74 20 61 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 74 6f 20 73 6f 6d 65 20 6f 66 | rant.a.patent.license.to.some.of |
| 65700 | 20 74 68 65 20 70 61 72 74 69 65 73 0a 72 65 63 65 69 76 69 6e 67 20 74 68 65 20 63 6f 76 65 72 | .the.parties.receiving.the.cover |
| 65720 | 65 64 20 77 6f 72 6b 20 61 75 74 68 6f 72 69 7a 69 6e 67 20 74 68 65 6d 20 74 6f 20 75 73 65 2c | ed.work.authorizing.them.to.use, |
| 65740 | 20 70 72 6f 70 61 67 61 74 65 2c 20 6d 6f 64 69 66 79 0a 6f 72 20 63 6f 6e 76 65 79 20 61 20 73 | .propagate,.modify.or.convey.a.s |
| 65760 | 70 65 63 69 66 69 63 20 63 6f 70 79 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 6b | pecific.copy.of.the.covered.work |
| 65780 | 2c 20 74 68 65 6e 20 74 68 65 20 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 0a 79 6f 75 20 67 72 | ,.then.the.patent.license.you.gr |
| 657a0 | 61 6e 74 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 65 78 74 65 6e 64 65 64 20 74 6f | ant.is.automatically.extended.to |
| 657c0 | 20 61 6c 6c 20 72 65 63 69 70 69 65 6e 74 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 0a 77 | .all.recipients.of.the.covered.w |
| 657e0 | 6f 72 6b 20 61 6e 64 20 77 6f 72 6b 73 20 62 61 73 65 64 20 6f 6e 20 69 74 2e 0a 0a 20 20 41 20 | ork.and.works.based.on.it.....A. |
| 65800 | 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 69 73 20 22 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 | patent.license.is."discriminator |
| 65820 | 79 22 20 69 66 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 77 69 74 68 69 6e | y".if.it.does.not.include.within |
| 65840 | 0a 74 68 65 20 73 63 6f 70 65 20 6f 66 20 69 74 73 20 63 6f 76 65 72 61 67 65 2c 20 70 72 6f 68 | .the.scope.of.its.coverage,.proh |
| 65860 | 69 62 69 74 73 20 74 68 65 20 65 78 65 72 63 69 73 65 20 6f 66 2c 20 6f 72 20 69 73 0a 63 6f 6e | ibits.the.exercise.of,.or.is.con |
| 65880 | 64 69 74 69 6f 6e 65 64 20 6f 6e 20 74 68 65 20 6e 6f 6e 2d 65 78 65 72 63 69 73 65 20 6f 66 20 | ditioned.on.the.non-exercise.of. |
| 658a0 | 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 6f 66 20 74 68 65 20 72 69 67 68 74 73 20 74 68 61 74 20 61 | one.or.more.of.the.rights.that.a |
| 658c0 | 72 65 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 67 72 61 6e 74 65 64 20 75 6e 64 65 72 20 74 68 | re.specifically.granted.under.th |
| 658e0 | 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20 63 6f 6e 76 65 79 20 | is.License...You.may.not.convey. |
| 65900 | 61 20 63 6f 76 65 72 65 64 0a 77 6f 72 6b 20 69 66 20 79 6f 75 20 61 72 65 20 61 20 70 61 72 74 | a.covered.work.if.you.are.a.part |
| 65920 | 79 20 74 6f 20 61 6e 20 61 72 72 61 6e 67 65 6d 65 6e 74 20 77 69 74 68 20 61 20 74 68 69 72 64 | y.to.an.arrangement.with.a.third |
| 65940 | 20 70 61 72 74 79 20 74 68 61 74 20 69 73 0a 69 6e 20 74 68 65 20 62 75 73 69 6e 65 73 73 20 6f | .party.that.is.in.the.business.o |
| 65960 | 66 20 64 69 73 74 72 69 62 75 74 69 6e 67 20 73 6f 66 74 77 61 72 65 2c 20 75 6e 64 65 72 20 77 | f.distributing.software,.under.w |
| 65980 | 68 69 63 68 20 79 6f 75 20 6d 61 6b 65 20 70 61 79 6d 65 6e 74 0a 74 6f 20 74 68 65 20 74 68 69 | hich.you.make.payment.to.the.thi |
| 659a0 | 72 64 20 70 61 72 74 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 65 78 74 65 6e 74 20 6f 66 20 | rd.party.based.on.the.extent.of. |
| 659c0 | 79 6f 75 72 20 61 63 74 69 76 69 74 79 20 6f 66 20 63 6f 6e 76 65 79 69 6e 67 0a 74 68 65 20 77 | your.activity.of.conveying.the.w |
| 659e0 | 6f 72 6b 2c 20 61 6e 64 20 75 6e 64 65 72 20 77 68 69 63 68 20 74 68 65 20 74 68 69 72 64 20 70 | ork,.and.under.which.the.third.p |
| 65a00 | 61 72 74 79 20 67 72 61 6e 74 73 2c 20 74 6f 20 61 6e 79 20 6f 66 20 74 68 65 0a 70 61 72 74 69 | arty.grants,.to.any.of.the.parti |
| 65a20 | 65 73 20 77 68 6f 20 77 6f 75 6c 64 20 72 65 63 65 69 76 65 20 74 68 65 20 63 6f 76 65 72 65 64 | es.who.would.receive.the.covered |
| 65a40 | 20 77 6f 72 6b 20 66 72 6f 6d 20 79 6f 75 2c 20 61 20 64 69 73 63 72 69 6d 69 6e 61 74 6f 72 79 | .work.from.you,.a.discriminatory |
| 65a60 | 0a 70 61 74 65 6e 74 20 6c 69 63 65 6e 73 65 20 28 61 29 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f | .patent.license.(a).in.connectio |
| 65a80 | 6e 20 77 69 74 68 20 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 | n.with.copies.of.the.covered.wor |
| 65aa0 | 6b 0a 63 6f 6e 76 65 79 65 64 20 62 79 20 79 6f 75 20 28 6f 72 20 63 6f 70 69 65 73 20 6d 61 64 | k.conveyed.by.you.(or.copies.mad |
| 65ac0 | 65 20 66 72 6f 6d 20 74 68 6f 73 65 20 63 6f 70 69 65 73 29 2c 20 6f 72 20 28 62 29 20 70 72 69 | e.from.those.copies),.or.(b).pri |
| 65ae0 | 6d 61 72 69 6c 79 0a 66 6f 72 20 61 6e 64 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 | marily.for.and.in.connection.wit |
| 65b00 | 68 20 73 70 65 63 69 66 69 63 20 70 72 6f 64 75 63 74 73 20 6f 72 20 63 6f 6d 70 69 6c 61 74 69 | h.specific.products.or.compilati |
| 65b20 | 6f 6e 73 20 74 68 61 74 0a 63 6f 6e 74 61 69 6e 20 74 68 65 20 63 6f 76 65 72 65 64 20 77 6f 72 | ons.that.contain.the.covered.wor |
| 65b40 | 6b 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 65 6e 74 65 72 65 64 20 69 6e 74 6f 20 74 68 61 74 20 | k,.unless.you.entered.into.that. |
| 65b60 | 61 72 72 61 6e 67 65 6d 65 6e 74 2c 0a 6f 72 20 74 68 61 74 20 70 61 74 65 6e 74 20 6c 69 63 65 | arrangement,.or.that.patent.lice |
| 65b80 | 6e 73 65 20 77 61 73 20 67 72 61 6e 74 65 64 2c 20 70 72 69 6f 72 20 74 6f 20 32 38 20 4d 61 72 | nse.was.granted,.prior.to.28.Mar |
| 65ba0 | 63 68 20 32 30 30 37 2e 0a 0a 20 20 4e 6f 74 68 69 6e 67 20 69 6e 20 74 68 69 73 20 4c 69 63 65 | ch.2007.....Nothing.in.this.Lice |
| 65bc0 | 6e 73 65 20 73 68 61 6c 6c 20 62 65 20 63 6f 6e 73 74 72 75 65 64 20 61 73 20 65 78 63 6c 75 64 | nse.shall.be.construed.as.exclud |
| 65be0 | 69 6e 67 20 6f 72 20 6c 69 6d 69 74 69 6e 67 0a 61 6e 79 20 69 6d 70 6c 69 65 64 20 6c 69 63 65 | ing.or.limiting.any.implied.lice |
| 65c00 | 6e 73 65 20 6f 72 20 6f 74 68 65 72 20 64 65 66 65 6e 73 65 73 20 74 6f 20 69 6e 66 72 69 6e 67 | nse.or.other.defenses.to.infring |
| 65c20 | 65 6d 65 6e 74 20 74 68 61 74 20 6d 61 79 0a 6f 74 68 65 72 77 69 73 65 20 62 65 20 61 76 61 69 | ement.that.may.otherwise.be.avai |
| 65c40 | 6c 61 62 6c 65 20 74 6f 20 79 6f 75 20 75 6e 64 65 72 20 61 70 70 6c 69 63 61 62 6c 65 20 70 61 | lable.to.you.under.applicable.pa |
| 65c60 | 74 65 6e 74 20 6c 61 77 2e 0a 0a 20 20 31 32 2e 20 4e 6f 20 53 75 72 72 65 6e 64 65 72 20 6f 66 | tent.law.....12..No.Surrender.of |
| 65c80 | 20 4f 74 68 65 72 73 27 20 46 72 65 65 64 6f 6d 2e 0a 0a 20 20 49 66 20 63 6f 6e 64 69 74 69 6f | .Others'.Freedom.....If.conditio |
| 65ca0 | 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e 20 79 6f 75 20 28 77 68 65 74 68 65 72 20 62 | ns.are.imposed.on.you.(whether.b |
| 65cc0 | 79 20 63 6f 75 72 74 20 6f 72 64 65 72 2c 20 61 67 72 65 65 6d 65 6e 74 20 6f 72 0a 6f 74 68 65 | y.court.order,.agreement.or.othe |
| 65ce0 | 72 77 69 73 65 29 20 74 68 61 74 20 63 6f 6e 74 72 61 64 69 63 74 20 74 68 65 20 63 6f 6e 64 69 | rwise).that.contradict.the.condi |
| 65d00 | 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2c 20 74 68 65 79 20 64 6f 20 6e | tions.of.this.License,.they.do.n |
| 65d20 | 6f 74 0a 65 78 63 75 73 65 20 79 6f 75 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 64 69 74 69 6f 6e | ot.excuse.you.from.the.condition |
| 65d40 | 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 49 66 20 79 6f 75 20 63 61 6e 6e 6f | s.of.this.License...If.you.canno |
| 65d60 | 74 20 63 6f 6e 76 65 79 20 61 0a 63 6f 76 65 72 65 64 20 77 6f 72 6b 20 73 6f 20 61 73 20 74 6f | t.convey.a.covered.work.so.as.to |
| 65d80 | 20 73 61 74 69 73 66 79 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 6c 79 20 79 6f 75 72 20 6f 62 6c | .satisfy.simultaneously.your.obl |
| 65da0 | 69 67 61 74 69 6f 6e 73 20 75 6e 64 65 72 20 74 68 69 73 0a 4c 69 63 65 6e 73 65 20 61 6e 64 20 | igations.under.this.License.and. |
| 65dc0 | 61 6e 79 20 6f 74 68 65 72 20 70 65 72 74 69 6e 65 6e 74 20 6f 62 6c 69 67 61 74 69 6f 6e 73 2c | any.other.pertinent.obligations, |
| 65de0 | 20 74 68 65 6e 20 61 73 20 61 20 63 6f 6e 73 65 71 75 65 6e 63 65 20 79 6f 75 20 6d 61 79 0a 6e | .then.as.a.consequence.you.may.n |
| 65e00 | 6f 74 20 63 6f 6e 76 65 79 20 69 74 20 61 74 20 61 6c 6c 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c | ot.convey.it.at.all...For.exampl |
| 65e20 | 65 2c 20 69 66 20 79 6f 75 20 61 67 72 65 65 20 74 6f 20 74 65 72 6d 73 20 74 68 61 74 20 6f 62 | e,.if.you.agree.to.terms.that.ob |
| 65e40 | 6c 69 67 61 74 65 20 79 6f 75 0a 74 6f 20 63 6f 6c 6c 65 63 74 20 61 20 72 6f 79 61 6c 74 79 20 | ligate.you.to.collect.a.royalty. |
| 65e60 | 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6e 76 65 79 69 6e 67 20 66 72 6f 6d 20 74 68 6f 73 65 | for.further.conveying.from.those |
| 65e80 | 20 74 6f 20 77 68 6f 6d 20 79 6f 75 20 63 6f 6e 76 65 79 0a 74 68 65 20 50 72 6f 67 72 61 6d 2c | .to.whom.you.convey.the.Program, |
| 65ea0 | 20 74 68 65 20 6f 6e 6c 79 20 77 61 79 20 79 6f 75 20 63 6f 75 6c 64 20 73 61 74 69 73 66 79 20 | .the.only.way.you.could.satisfy. |
| 65ec0 | 62 6f 74 68 20 74 68 6f 73 65 20 74 65 72 6d 73 20 61 6e 64 20 74 68 69 73 0a 4c 69 63 65 6e 73 | both.those.terms.and.this.Licens |
| 65ee0 | 65 20 77 6f 75 6c 64 20 62 65 20 74 6f 20 72 65 66 72 61 69 6e 20 65 6e 74 69 72 65 6c 79 20 66 | e.would.be.to.refrain.entirely.f |
| 65f00 | 72 6f 6d 20 63 6f 6e 76 65 79 69 6e 67 20 74 68 65 20 50 72 6f 67 72 61 6d 2e 0a 0a 20 20 31 33 | rom.conveying.the.Program.....13 |
| 65f20 | 2e 20 55 73 65 20 77 69 74 68 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 | ..Use.with.the.GNU.Affero.Genera |
| 65f40 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 4e 6f 74 77 69 74 68 73 74 61 6e | l.Public.License.....Notwithstan |
| 65f60 | 64 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 20 70 72 6f 76 69 73 69 6f 6e 20 6f 66 20 74 68 69 73 | ding.any.other.provision.of.this |
| 65f80 | 20 4c 69 63 65 6e 73 65 2c 20 79 6f 75 20 68 61 76 65 0a 70 65 72 6d 69 73 73 69 6f 6e 20 74 6f | .License,.you.have.permission.to |
| 65fa0 | 20 6c 69 6e 6b 20 6f 72 20 63 6f 6d 62 69 6e 65 20 61 6e 79 20 63 6f 76 65 72 65 64 20 77 6f 72 | .link.or.combine.any.covered.wor |
| 65fc0 | 6b 20 77 69 74 68 20 61 20 77 6f 72 6b 20 6c 69 63 65 6e 73 65 64 0a 75 6e 64 65 72 20 76 65 72 | k.with.a.work.licensed.under.ver |
| 65fe0 | 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c | sion.3.of.the.GNU.Affero.General |
| 66000 | 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 69 6e 74 6f 20 61 20 73 69 6e 67 6c 65 0a 63 6f | .Public.License.into.a.single.co |
| 66020 | 6d 62 69 6e 65 64 20 77 6f 72 6b 2c 20 61 6e 64 20 74 6f 20 63 6f 6e 76 65 79 20 74 68 65 20 72 | mbined.work,.and.to.convey.the.r |
| 66040 | 65 73 75 6c 74 69 6e 67 20 77 6f 72 6b 2e 20 20 54 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 69 | esulting.work...The.terms.of.thi |
| 66060 | 73 0a 4c 69 63 65 6e 73 65 20 77 69 6c 6c 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 61 70 70 6c 79 | s.License.will.continue.to.apply |
| 66080 | 20 74 6f 20 74 68 65 20 70 61 72 74 20 77 68 69 63 68 20 69 73 20 74 68 65 20 63 6f 76 65 72 65 | .to.the.part.which.is.the.covere |
| 660a0 | 64 20 77 6f 72 6b 2c 0a 62 75 74 20 74 68 65 20 73 70 65 63 69 61 6c 20 72 65 71 75 69 72 65 6d | d.work,.but.the.special.requirem |
| 660c0 | 65 6e 74 73 20 6f 66 20 74 68 65 20 47 4e 55 20 41 66 66 65 72 6f 20 47 65 6e 65 72 61 6c 20 50 | ents.of.the.GNU.Affero.General.P |
| 660e0 | 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2c 0a 73 65 63 74 69 6f 6e 20 31 33 2c 20 63 6f 6e 63 65 | ublic.License,.section.13,.conce |
| 66100 | 72 6e 69 6e 67 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 20 61 20 6e 65 74 77 | rning.interaction.through.a.netw |
| 66120 | 6f 72 6b 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 6f 20 74 68 65 0a 63 6f 6d 62 69 6e 61 74 69 6f | ork.will.apply.to.the.combinatio |
| 66140 | 6e 20 61 73 20 73 75 63 68 2e 0a 0a 20 20 31 34 2e 20 52 65 76 69 73 65 64 20 56 65 72 73 69 6f | n.as.such.....14..Revised.Versio |
| 66160 | 6e 73 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 0a 0a 20 20 54 68 65 20 46 72 65 65 20 | ns.of.this.License.....The.Free. |
| 66180 | 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 20 6d 61 79 20 70 75 62 6c 69 73 68 20 | Software.Foundation.may.publish. |
| 661a0 | 72 65 76 69 73 65 64 20 61 6e 64 2f 6f 72 20 6e 65 77 20 76 65 72 73 69 6f 6e 73 20 6f 66 0a 74 | revised.and/or.new.versions.of.t |
| 661c0 | 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 72 | he.GNU.General.Public.License.fr |
| 661e0 | 6f 6d 20 74 69 6d 65 20 74 6f 20 74 69 6d 65 2e 20 20 53 75 63 68 20 6e 65 77 20 76 65 72 73 69 | om.time.to.time...Such.new.versi |
| 66200 | 6f 6e 73 20 77 69 6c 6c 0a 62 65 20 73 69 6d 69 6c 61 72 20 69 6e 20 73 70 69 72 69 74 20 74 6f | ons.will.be.similar.in.spirit.to |
| 66220 | 20 74 68 65 20 70 72 65 73 65 6e 74 20 76 65 72 73 69 6f 6e 2c 20 62 75 74 20 6d 61 79 20 64 69 | .the.present.version,.but.may.di |
| 66240 | 66 66 65 72 20 69 6e 20 64 65 74 61 69 6c 20 74 6f 0a 61 64 64 72 65 73 73 20 6e 65 77 20 70 72 | ffer.in.detail.to.address.new.pr |
| 66260 | 6f 62 6c 65 6d 73 20 6f 72 20 63 6f 6e 63 65 72 6e 73 2e 0a 0a 20 20 45 61 63 68 20 76 65 72 73 | oblems.or.concerns.....Each.vers |
| 66280 | 69 6f 6e 20 69 73 20 67 69 76 65 6e 20 61 20 64 69 73 74 69 6e 67 75 69 73 68 69 6e 67 20 76 65 | ion.is.given.a.distinguishing.ve |
| 662a0 | 72 73 69 6f 6e 20 6e 75 6d 62 65 72 2e 20 20 49 66 20 74 68 65 0a 50 72 6f 67 72 61 6d 20 73 70 | rsion.number...If.the.Program.sp |
| 662c0 | 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 63 65 72 74 61 69 6e 20 6e 75 6d 62 65 72 65 64 20 | ecifies.that.a.certain.numbered. |
| 662e0 | 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 | version.of.the.GNU.General.Publi |
| 66300 | 63 20 4c 69 63 65 6e 73 65 20 22 6f 72 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 22 | c.License."or.any.later.version" |
| 66320 | 20 61 70 70 6c 69 65 73 20 74 6f 20 69 74 2c 20 79 6f 75 20 68 61 76 65 20 74 68 65 0a 6f 70 74 | .applies.to.it,.you.have.the.opt |
| 66340 | 69 6f 6e 20 6f 66 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 65 20 74 65 72 6d 73 20 61 6e 64 20 63 | ion.of.following.the.terms.and.c |
| 66360 | 6f 6e 64 69 74 69 6f 6e 73 20 65 69 74 68 65 72 20 6f 66 20 74 68 61 74 20 6e 75 6d 62 65 72 65 | onditions.either.of.that.numbere |
| 66380 | 64 0a 76 65 72 73 69 6f 6e 20 6f 72 20 6f 66 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f | d.version.or.of.any.later.versio |
| 663a0 | 6e 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 | n.published.by.the.Free.Software |
| 663c0 | 0a 46 6f 75 6e 64 61 74 69 6f 6e 2e 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 64 6f 65 | .Foundation...If.the.Program.doe |
| 663e0 | 73 20 6e 6f 74 20 73 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 6e 75 6d 62 65 72 20 6f | s.not.specify.a.version.number.o |
| 66400 | 66 20 74 68 65 0a 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | f.the.GNU.General.Public.License |
| 66420 | 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 6e 79 20 76 65 72 73 69 6f 6e 20 65 76 65 | ,.you.may.choose.any.version.eve |
| 66440 | 72 20 70 75 62 6c 69 73 68 65 64 0a 62 79 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 | r.published.by.the.Free.Software |
| 66460 | 20 46 6f 75 6e 64 61 74 69 6f 6e 2e 0a 0a 20 20 49 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 73 | .Foundation.....If.the.Program.s |
| 66480 | 70 65 63 69 66 69 65 73 20 74 68 61 74 20 61 20 70 72 6f 78 79 20 63 61 6e 20 64 65 63 69 64 65 | pecifies.that.a.proxy.can.decide |
| 664a0 | 20 77 68 69 63 68 20 66 75 74 75 72 65 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 74 68 65 20 47 4e | .which.future.versions.of.the.GN |
| 664c0 | 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 63 61 6e 20 62 65 20 | U.General.Public.License.can.be. |
| 664e0 | 75 73 65 64 2c 20 74 68 61 74 20 70 72 6f 78 79 27 73 0a 70 75 62 6c 69 63 20 73 74 61 74 65 6d | used,.that.proxy's.public.statem |
| 66500 | 65 6e 74 20 6f 66 20 61 63 63 65 70 74 61 6e 63 65 20 6f 66 20 61 20 76 65 72 73 69 6f 6e 20 70 | ent.of.acceptance.of.a.version.p |
| 66520 | 65 72 6d 61 6e 65 6e 74 6c 79 20 61 75 74 68 6f 72 69 7a 65 73 20 79 6f 75 0a 74 6f 20 63 68 6f | ermanently.authorizes.you.to.cho |
| 66540 | 6f 73 65 20 74 68 61 74 20 76 65 72 73 69 6f 6e 20 66 6f 72 20 74 68 65 20 50 72 6f 67 72 61 6d | ose.that.version.for.the.Program |
| 66560 | 2e 0a 0a 20 20 4c 61 74 65 72 20 6c 69 63 65 6e 73 65 20 76 65 72 73 69 6f 6e 73 20 6d 61 79 20 | .....Later.license.versions.may. |
| 66580 | 67 69 76 65 20 79 6f 75 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 64 69 66 66 65 72 65 6e 74 | give.you.additional.or.different |
| 665a0 | 0a 70 65 72 6d 69 73 73 69 6f 6e 73 2e 20 20 48 6f 77 65 76 65 72 2c 20 6e 6f 20 61 64 64 69 74 | .permissions...However,.no.addit |
| 665c0 | 69 6f 6e 61 6c 20 6f 62 6c 69 67 61 74 69 6f 6e 73 20 61 72 65 20 69 6d 70 6f 73 65 64 20 6f 6e | ional.obligations.are.imposed.on |
| 665e0 | 20 61 6e 79 0a 61 75 74 68 6f 72 20 6f 72 20 63 6f 70 79 72 69 67 68 74 20 68 6f 6c 64 65 72 20 | .any.author.or.copyright.holder. |
| 66600 | 61 73 20 61 20 72 65 73 75 6c 74 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 74 6f 20 | as.a.result.of.your.choosing.to. |
| 66620 | 66 6f 6c 6c 6f 77 20 61 0a 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 31 35 2e 20 44 | follow.a.later.version.....15..D |
| 66640 | 69 73 63 6c 61 69 6d 65 72 20 6f 66 20 57 61 72 72 61 6e 74 79 2e 0a 0a 20 20 54 48 45 52 45 20 | isclaimer.of.Warranty.....THERE. |
| 66660 | 49 53 20 4e 4f 20 57 41 52 52 41 4e 54 59 20 46 4f 52 20 54 48 45 20 50 52 4f 47 52 41 4d 2c 20 | IS.NO.WARRANTY.FOR.THE.PROGRAM,. |
| 66680 | 54 4f 20 54 48 45 20 45 58 54 45 4e 54 20 50 45 52 4d 49 54 54 45 44 20 42 59 0a 41 50 50 4c 49 | TO.THE.EXTENT.PERMITTED.BY.APPLI |
| 666a0 | 43 41 42 4c 45 20 4c 41 57 2e 20 20 45 58 43 45 50 54 20 57 48 45 4e 20 4f 54 48 45 52 57 49 53 | CABLE.LAW...EXCEPT.WHEN.OTHERWIS |
| 666c0 | 45 20 53 54 41 54 45 44 20 49 4e 20 57 52 49 54 49 4e 47 20 54 48 45 20 43 4f 50 59 52 49 47 48 | E.STATED.IN.WRITING.THE.COPYRIGH |
| 666e0 | 54 0a 48 4f 4c 44 45 52 53 20 41 4e 44 2f 4f 52 20 4f 54 48 45 52 20 50 41 52 54 49 45 53 20 50 | T.HOLDERS.AND/OR.OTHER.PARTIES.P |
| 66700 | 52 4f 56 49 44 45 20 54 48 45 20 50 52 4f 47 52 41 4d 20 22 41 53 20 49 53 22 20 57 49 54 48 4f | ROVIDE.THE.PROGRAM."AS.IS".WITHO |
| 66720 | 55 54 20 57 41 52 52 41 4e 54 59 0a 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 49 54 48 45 52 20 | UT.WARRANTY.OF.ANY.KIND,.EITHER. |
| 66740 | 45 58 50 52 45 53 53 45 44 20 4f 52 20 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 2c | EXPRESSED.OR.IMPLIED,.INCLUDING, |
| 66760 | 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 54 48 45 20 49 4d 50 4c 49 45 44 | .BUT.NOT.LIMITED.TO,.THE.IMPLIED |
| 66780 | 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 | .WARRANTIES.OF.MERCHANTABILITY.A |
| 667a0 | 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 0a 50 55 52 50 | ND.FITNESS.FOR.A.PARTICULAR.PURP |
| 667c0 | 4f 53 45 2e 20 20 54 48 45 20 45 4e 54 49 52 45 20 52 49 53 4b 20 41 53 20 54 4f 20 54 48 45 20 | OSE...THE.ENTIRE.RISK.AS.TO.THE. |
| 667e0 | 51 55 41 4c 49 54 59 20 41 4e 44 20 50 45 52 46 4f 52 4d 41 4e 43 45 20 4f 46 20 54 48 45 20 50 | QUALITY.AND.PERFORMANCE.OF.THE.P |
| 66800 | 52 4f 47 52 41 4d 0a 49 53 20 57 49 54 48 20 59 4f 55 2e 20 20 53 48 4f 55 4c 44 20 54 48 45 20 | ROGRAM.IS.WITH.YOU...SHOULD.THE. |
| 66820 | 50 52 4f 47 52 41 4d 20 50 52 4f 56 45 20 44 45 46 45 43 54 49 56 45 2c 20 59 4f 55 20 41 53 53 | PROGRAM.PROVE.DEFECTIVE,.YOU.ASS |
| 66840 | 55 4d 45 20 54 48 45 20 43 4f 53 54 20 4f 46 0a 41 4c 4c 20 4e 45 43 45 53 53 41 52 59 20 53 45 | UME.THE.COST.OF.ALL.NECESSARY.SE |
| 66860 | 52 56 49 43 49 4e 47 2c 20 52 45 50 41 49 52 20 4f 52 20 43 4f 52 52 45 43 54 49 4f 4e 2e 0a 0a | RVICING,.REPAIR.OR.CORRECTION... |
| 66880 | 20 20 31 36 2e 20 4c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 4c 69 61 62 69 6c 69 74 79 2e 0a 0a | ..16..Limitation.of.Liability... |
| 668a0 | 20 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 55 4e 4c 45 53 53 20 52 45 51 55 49 52 45 44 20 42 59 | ..IN.NO.EVENT.UNLESS.REQUIRED.BY |
| 668c0 | 20 41 50 50 4c 49 43 41 42 4c 45 20 4c 41 57 20 4f 52 20 41 47 52 45 45 44 20 54 4f 20 49 4e 20 | .APPLICABLE.LAW.OR.AGREED.TO.IN. |
| 668e0 | 57 52 49 54 49 4e 47 0a 57 49 4c 4c 20 41 4e 59 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 | WRITING.WILL.ANY.COPYRIGHT.HOLDE |
| 66900 | 52 2c 20 4f 52 20 41 4e 59 20 4f 54 48 45 52 20 50 41 52 54 59 20 57 48 4f 20 4d 4f 44 49 46 49 | R,.OR.ANY.OTHER.PARTY.WHO.MODIFI |
| 66920 | 45 53 20 41 4e 44 2f 4f 52 20 43 4f 4e 56 45 59 53 0a 54 48 45 20 50 52 4f 47 52 41 4d 20 41 53 | ES.AND/OR.CONVEYS.THE.PROGRAM.AS |
| 66940 | 20 50 45 52 4d 49 54 54 45 44 20 41 42 4f 56 45 2c 20 42 45 20 4c 49 41 42 4c 45 20 54 4f 20 59 | .PERMITTED.ABOVE,.BE.LIABLE.TO.Y |
| 66960 | 4f 55 20 46 4f 52 20 44 41 4d 41 47 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 20 41 4e 59 0a 47 45 | OU.FOR.DAMAGES,.INCLUDING.ANY.GE |
| 66980 | 4e 45 52 41 4c 2c 20 53 50 45 43 49 41 4c 2c 20 49 4e 43 49 44 45 4e 54 41 4c 20 4f 52 20 43 4f | NERAL,.SPECIAL,.INCIDENTAL.OR.CO |
| 669a0 | 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 41 52 49 53 49 4e 47 20 4f 55 54 20 | NSEQUENTIAL.DAMAGES.ARISING.OUT. |
| 669c0 | 4f 46 20 54 48 45 0a 55 53 45 20 4f 52 20 49 4e 41 42 49 4c 49 54 59 20 54 4f 20 55 53 45 20 54 | OF.THE.USE.OR.INABILITY.TO.USE.T |
| 669e0 | 48 45 20 50 52 4f 47 52 41 4d 20 28 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 | HE.PROGRAM.(INCLUDING.BUT.NOT.LI |
| 66a00 | 4d 49 54 45 44 20 54 4f 20 4c 4f 53 53 20 4f 46 0a 44 41 54 41 20 4f 52 20 44 41 54 41 20 42 45 | MITED.TO.LOSS.OF.DATA.OR.DATA.BE |
| 66a20 | 49 4e 47 20 52 45 4e 44 45 52 45 44 20 49 4e 41 43 43 55 52 41 54 45 20 4f 52 20 4c 4f 53 53 45 | ING.RENDERED.INACCURATE.OR.LOSSE |
| 66a40 | 53 20 53 55 53 54 41 49 4e 45 44 20 42 59 20 59 4f 55 20 4f 52 20 54 48 49 52 44 0a 50 41 52 54 | S.SUSTAINED.BY.YOU.OR.THIRD.PART |
| 66a60 | 49 45 53 20 4f 52 20 41 20 46 41 49 4c 55 52 45 20 4f 46 20 54 48 45 20 50 52 4f 47 52 41 4d 20 | IES.OR.A.FAILURE.OF.THE.PROGRAM. |
| 66a80 | 54 4f 20 4f 50 45 52 41 54 45 20 57 49 54 48 20 41 4e 59 20 4f 54 48 45 52 20 50 52 4f 47 52 41 | TO.OPERATE.WITH.ANY.OTHER.PROGRA |
| 66aa0 | 4d 53 29 2c 0a 45 56 45 4e 20 49 46 20 53 55 43 48 20 48 4f 4c 44 45 52 20 4f 52 20 4f 54 48 45 | MS),.EVEN.IF.SUCH.HOLDER.OR.OTHE |
| 66ac0 | 52 20 50 41 52 54 59 20 48 41 53 20 42 45 45 4e 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 | R.PARTY.HAS.BEEN.ADVISED.OF.THE. |
| 66ae0 | 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 0a 53 55 43 48 20 44 41 4d 41 47 45 53 2e 0a 0a 20 20 | POSSIBILITY.OF.SUCH.DAMAGES..... |
| 66b00 | 31 37 2e 20 49 6e 74 65 72 70 72 65 74 61 74 69 6f 6e 20 6f 66 20 53 65 63 74 69 6f 6e 73 20 31 | 17..Interpretation.of.Sections.1 |
| 66b20 | 35 20 61 6e 64 20 31 36 2e 0a 0a 20 20 49 66 20 74 68 65 20 64 69 73 63 6c 61 69 6d 65 72 20 6f | 5.and.16.....If.the.disclaimer.o |
| 66b40 | 66 20 77 61 72 72 61 6e 74 79 20 61 6e 64 20 6c 69 6d 69 74 61 74 69 6f 6e 20 6f 66 20 6c 69 61 | f.warranty.and.limitation.of.lia |
| 66b60 | 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 0a 61 62 6f 76 65 20 63 61 6e 6e 6f 74 20 62 65 20 | bility.provided.above.cannot.be. |
| 66b80 | 67 69 76 65 6e 20 6c 6f 63 61 6c 20 6c 65 67 61 6c 20 65 66 66 65 63 74 20 61 63 63 6f 72 64 69 | given.local.legal.effect.accordi |
| 66ba0 | 6e 67 20 74 6f 20 74 68 65 69 72 20 74 65 72 6d 73 2c 0a 72 65 76 69 65 77 69 6e 67 20 63 6f 75 | ng.to.their.terms,.reviewing.cou |
| 66bc0 | 72 74 73 20 73 68 61 6c 6c 20 61 70 70 6c 79 20 6c 6f 63 61 6c 20 6c 61 77 20 74 68 61 74 20 6d | rts.shall.apply.local.law.that.m |
| 66be0 | 6f 73 74 20 63 6c 6f 73 65 6c 79 20 61 70 70 72 6f 78 69 6d 61 74 65 73 0a 61 6e 20 61 62 73 6f | ost.closely.approximates.an.abso |
| 66c00 | 6c 75 74 65 20 77 61 69 76 65 72 20 6f 66 20 61 6c 6c 20 63 69 76 69 6c 20 6c 69 61 62 69 6c 69 | lute.waiver.of.all.civil.liabili |
| 66c20 | 74 79 20 69 6e 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 0a 50 72 6f 67 72 61 | ty.in.connection.with.the.Progra |
| 66c40 | 6d 2c 20 75 6e 6c 65 73 73 20 61 20 77 61 72 72 61 6e 74 79 20 6f 72 20 61 73 73 75 6d 70 74 69 | m,.unless.a.warranty.or.assumpti |
| 66c60 | 6f 6e 20 6f 66 20 6c 69 61 62 69 6c 69 74 79 20 61 63 63 6f 6d 70 61 6e 69 65 73 20 61 0a 63 6f | on.of.liability.accompanies.a.co |
| 66c80 | 70 79 20 6f 66 20 74 68 65 20 50 72 6f 67 72 61 6d 20 69 6e 20 72 65 74 75 72 6e 20 66 6f 72 20 | py.of.the.Program.in.return.for. |
| 66ca0 | 61 20 66 65 65 2e 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 4e 44 | a.fee........................END |
| 66cc0 | 20 4f 46 20 54 45 52 4d 53 20 41 4e 44 20 43 4f 4e 44 49 54 49 4f 4e 53 0a 0a 20 20 20 20 20 20 | .OF.TERMS.AND.CONDITIONS........ |
| 66ce0 | 20 20 20 20 20 20 48 6f 77 20 74 6f 20 41 70 70 6c 79 20 54 68 65 73 65 20 54 65 72 6d 73 20 74 | ......How.to.Apply.These.Terms.t |
| 66d00 | 6f 20 59 6f 75 72 20 4e 65 77 20 50 72 6f 67 72 61 6d 73 0a 0a 20 20 49 66 20 79 6f 75 20 64 65 | o.Your.New.Programs....If.you.de |
| 66d20 | 76 65 6c 6f 70 20 61 20 6e 65 77 20 70 72 6f 67 72 61 6d 2c 20 61 6e 64 20 79 6f 75 20 77 61 6e | velop.a.new.program,.and.you.wan |
| 66d40 | 74 20 69 74 20 74 6f 20 62 65 20 6f 66 20 74 68 65 20 67 72 65 61 74 65 73 74 0a 70 6f 73 73 69 | t.it.to.be.of.the.greatest.possi |
| 66d60 | 62 6c 65 20 75 73 65 20 74 6f 20 74 68 65 20 70 75 62 6c 69 63 2c 20 74 68 65 20 62 65 73 74 20 | ble.use.to.the.public,.the.best. |
| 66d80 | 77 61 79 20 74 6f 20 61 63 68 69 65 76 65 20 74 68 69 73 20 69 73 20 74 6f 20 6d 61 6b 65 20 69 | way.to.achieve.this.is.to.make.i |
| 66da0 | 74 0a 66 72 65 65 20 73 6f 66 74 77 61 72 65 20 77 68 69 63 68 20 65 76 65 72 79 6f 6e 65 20 63 | t.free.software.which.everyone.c |
| 66dc0 | 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 61 6e 64 20 63 68 61 6e 67 65 20 75 6e 64 65 72 | an.redistribute.and.change.under |
| 66de0 | 20 74 68 65 73 65 20 74 65 72 6d 73 2e 0a 0a 20 20 54 6f 20 64 6f 20 73 6f 2c 20 61 74 74 61 63 | .these.terms.....To.do.so,.attac |
| 66e00 | 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6e 6f 74 69 63 65 73 20 74 6f 20 74 68 65 20 70 | h.the.following.notices.to.the.p |
| 66e20 | 72 6f 67 72 61 6d 2e 20 20 49 74 20 69 73 20 73 61 66 65 73 74 0a 74 6f 20 61 74 74 61 63 68 20 | rogram...It.is.safest.to.attach. |
| 66e40 | 74 68 65 6d 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 65 61 63 68 20 73 6f 75 72 63 65 | them.to.the.start.of.each.source |
| 66e60 | 20 66 69 6c 65 20 74 6f 20 6d 6f 73 74 20 65 66 66 65 63 74 69 76 65 6c 79 0a 73 74 61 74 65 20 | .file.to.most.effectively.state. |
| 66e80 | 74 68 65 20 65 78 63 6c 75 73 69 6f 6e 20 6f 66 20 77 61 72 72 61 6e 74 79 3b 20 61 6e 64 20 65 | the.exclusion.of.warranty;.and.e |
| 66ea0 | 61 63 68 20 66 69 6c 65 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 74 20 6c 65 61 73 74 0a 74 68 | ach.file.should.have.at.least.th |
| 66ec0 | 65 20 22 63 6f 70 79 72 69 67 68 74 22 20 6c 69 6e 65 20 61 6e 64 20 61 20 70 6f 69 6e 74 65 72 | e."copyright".line.and.a.pointer |
| 66ee0 | 20 74 6f 20 77 68 65 72 65 20 74 68 65 20 66 75 6c 6c 20 6e 6f 74 69 63 65 20 69 73 20 66 6f 75 | .to.where.the.full.notice.is.fou |
| 66f00 | 6e 64 2e 0a 0a 20 20 20 20 7b 6f 6e 65 20 6c 69 6e 65 20 74 6f 20 67 69 76 65 20 74 68 65 20 70 | nd.......{one.line.to.give.the.p |
| 66f20 | 72 6f 67 72 61 6d 27 73 20 6e 61 6d 65 20 61 6e 64 20 61 20 62 72 69 65 66 20 69 64 65 61 20 6f | rogram's.name.and.a.brief.idea.o |
| 66f40 | 66 20 77 68 61 74 20 69 74 20 64 6f 65 73 2e 7d 0a 20 20 20 20 43 6f 70 79 72 69 67 68 74 20 28 | f.what.it.does.}.....Copyright.( |
| 66f60 | 43 29 20 7b 79 65 61 72 7d 20 20 7b 6e 61 6d 65 20 6f 66 20 61 75 74 68 6f 72 7d 0a 0a 20 20 20 | C).{year}..{name.of.author}..... |
| 66f80 | 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3a 20 | .This.program.is.free.software:. |
| 66fa0 | 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d | you.can.redistribute.it.and/or.m |
| 66fc0 | 6f 64 69 66 79 0a 20 20 20 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 | odify.....it.under.the.terms.of. |
| 66fe0 | 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 | the.GNU.General.Public.License.a |
| 67000 | 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 20 20 20 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 | s.published.by.....the.Free.Soft |
| 67020 | 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 | ware.Foundation,.either.version. |
| 67040 | 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 20 20 20 20 28 61 74 20 79 6f 75 | 3.of.the.License,.or.....(at.you |
| 67060 | 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 20 20 | r.option).any.later.version..... |
| 67080 | 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ..This.program.is.distributed.in |
| 670a0 | 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c | .the.hope.that.it.will.be.useful |
| 670c0 | 2c 0a 20 20 20 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 | ,.....but.WITHOUT.ANY.WARRANTY;. |
| 670e0 | 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 | without.even.the.implied.warrant |
| 67100 | 79 20 6f 66 0a 20 20 20 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e | y.of.....MERCHANTABILITY.or.FITN |
| 67120 | 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 | ESS.FOR.A.PARTICULAR.PURPOSE...S |
| 67140 | 65 65 20 74 68 65 0a 20 20 20 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 | ee.the.....GNU.General.Public.Li |
| 67160 | 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 20 20 20 20 59 6f 75 | cense.for.more.details.......You |
| 67180 | 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 | .should.have.received.a.copy.of. |
| 671a0 | 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 20 | the.GNU.General.Public.License.. |
| 671c0 | 20 20 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 | ...along.with.this.program...If. |
| 671e0 | 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 | not,.see.<https://www.gnu.org/li |
| 67200 | 63 65 6e 73 65 73 2f 3e 2e 0a 0a 41 6c 73 6f 20 61 64 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 | censes/>...Also.add.information. |
| 67220 | 6f 6e 20 68 6f 77 20 74 6f 20 63 6f 6e 74 61 63 74 20 79 6f 75 20 62 79 20 65 6c 65 63 74 72 6f | on.how.to.contact.you.by.electro |
| 67240 | 6e 69 63 20 61 6e 64 20 70 61 70 65 72 20 6d 61 69 6c 2e 0a 0a 20 20 49 66 20 74 68 65 20 70 72 | nic.and.paper.mail.....If.the.pr |
| 67260 | 6f 67 72 61 6d 20 64 6f 65 73 20 74 65 72 6d 69 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 6f 6e 2c | ogram.does.terminal.interaction, |
| 67280 | 20 6d 61 6b 65 20 69 74 20 6f 75 74 70 75 74 20 61 20 73 68 6f 72 74 0a 6e 6f 74 69 63 65 20 6c | .make.it.output.a.short.notice.l |
| 672a0 | 69 6b 65 20 74 68 69 73 20 77 68 65 6e 20 69 74 20 73 74 61 72 74 73 20 69 6e 20 61 6e 20 69 6e | ike.this.when.it.starts.in.an.in |
| 672c0 | 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 3a 0a 0a 20 20 20 20 7b 70 72 6f 6a 65 63 74 7d 20 20 | teractive.mode:......{project}.. |
| 672e0 | 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 7b 79 65 61 72 7d 20 20 7b 66 75 6c 6c 6e 61 6d 65 7d | Copyright.(C).{year}..{fullname} |
| 67300 | 0a 20 20 20 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 6f 6d 65 73 20 77 69 74 68 20 41 42 53 | .....This.program.comes.with.ABS |
| 67320 | 4f 4c 55 54 45 4c 59 20 4e 4f 20 57 41 52 52 41 4e 54 59 3b 20 66 6f 72 20 64 65 74 61 69 6c 73 | OLUTELY.NO.WARRANTY;.for.details |
| 67340 | 20 74 79 70 65 20 60 73 68 6f 77 20 77 27 2e 0a 20 20 20 20 54 68 69 73 20 69 73 20 66 72 65 65 | .type.`show.w'......This.is.free |
| 67360 | 20 73 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 79 6f 75 20 61 72 65 20 77 65 6c 63 6f 6d 65 20 74 | .software,.and.you.are.welcome.t |
| 67380 | 6f 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 0a 20 20 20 20 75 6e 64 65 72 20 63 65 72 74 | o.redistribute.it.....under.cert |
| 673a0 | 61 69 6e 20 63 6f 6e 64 69 74 69 6f 6e 73 3b 20 74 79 70 65 20 60 73 68 6f 77 20 63 27 20 66 6f | ain.conditions;.type.`show.c'.fo |
| 673c0 | 72 20 64 65 74 61 69 6c 73 2e 0a 0a 54 68 65 20 68 79 70 6f 74 68 65 74 69 63 61 6c 20 63 6f 6d | r.details...The.hypothetical.com |
| 673e0 | 6d 61 6e 64 73 20 60 73 68 6f 77 20 77 27 20 61 6e 64 20 60 73 68 6f 77 20 63 27 20 73 68 6f 75 | mands.`show.w'.and.`show.c'.shou |
| 67400 | 6c 64 20 73 68 6f 77 20 74 68 65 20 61 70 70 72 6f 70 72 69 61 74 65 0a 70 61 72 74 73 20 6f 66 | ld.show.the.appropriate.parts.of |
| 67420 | 20 74 68 65 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 2e 20 20 4f 66 | .the.General.Public.License...Of |
| 67440 | 20 63 6f 75 72 73 65 2c 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 27 73 20 63 6f 6d 6d 61 6e 64 73 | .course,.your.program's.commands |
| 67460 | 0a 6d 69 67 68 74 20 62 65 20 64 69 66 66 65 72 65 6e 74 3b 20 66 6f 72 20 61 20 47 55 49 20 69 | .might.be.different;.for.a.GUI.i |
| 67480 | 6e 74 65 72 66 61 63 65 2c 20 79 6f 75 20 77 6f 75 6c 64 20 75 73 65 20 61 6e 20 22 61 62 6f 75 | nterface,.you.would.use.an."abou |
| 674a0 | 74 20 62 6f 78 22 2e 0a 0a 20 20 59 6f 75 20 73 68 6f 75 6c 64 20 61 6c 73 6f 20 67 65 74 20 79 | t.box".....You.should.also.get.y |
| 674c0 | 6f 75 72 20 65 6d 70 6c 6f 79 65 72 20 28 69 66 20 79 6f 75 20 77 6f 72 6b 20 61 73 20 61 20 70 | our.employer.(if.you.work.as.a.p |
| 674e0 | 72 6f 67 72 61 6d 6d 65 72 29 20 6f 72 20 73 63 68 6f 6f 6c 2c 0a 69 66 20 61 6e 79 2c 20 74 6f | rogrammer).or.school,.if.any,.to |
| 67500 | 20 73 69 67 6e 20 61 20 22 63 6f 70 79 72 69 67 68 74 20 64 69 73 63 6c 61 69 6d 65 72 22 20 66 | .sign.a."copyright.disclaimer".f |
| 67520 | 6f 72 20 74 68 65 20 70 72 6f 67 72 61 6d 2c 20 69 66 20 6e 65 63 65 73 73 61 72 79 2e 0a 46 6f | or.the.program,.if.necessary..Fo |
| 67540 | 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6f 6e 20 74 68 69 73 2c 20 61 6e 64 20 | r.more.information.on.this,.and. |
| 67560 | 68 6f 77 20 74 6f 20 61 70 70 6c 79 20 61 6e 64 20 66 6f 6c 6c 6f 77 20 74 68 65 20 47 4e 55 20 | how.to.apply.and.follow.the.GNU. |
| 67580 | 47 50 4c 2c 20 73 65 65 0a 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 | GPL,.see.<https://www.gnu.org/li |
| 675a0 | 63 65 6e 73 65 73 2f 3e 2e 0a 0a 20 20 54 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 | censes/>.....The.GNU.General.Pub |
| 675c0 | 6c 69 63 20 4c 69 63 65 6e 73 65 20 64 6f 65 73 20 6e 6f 74 20 70 65 72 6d 69 74 20 69 6e 63 6f | lic.License.does.not.permit.inco |
| 675e0 | 72 70 6f 72 61 74 69 6e 67 20 79 6f 75 72 20 70 72 6f 67 72 61 6d 0a 69 6e 74 6f 20 70 72 6f 70 | rporating.your.program.into.prop |
| 67600 | 72 69 65 74 61 72 79 20 70 72 6f 67 72 61 6d 73 2e 20 20 49 66 20 79 6f 75 72 20 70 72 6f 67 72 | rietary.programs...If.your.progr |
| 67620 | 61 6d 20 69 73 20 61 20 73 75 62 72 6f 75 74 69 6e 65 20 6c 69 62 72 61 72 79 2c 20 79 6f 75 0a | am.is.a.subroutine.library,.you. |
| 67640 | 6d 61 79 20 63 6f 6e 73 69 64 65 72 20 69 74 20 6d 6f 72 65 20 75 73 65 66 75 6c 20 74 6f 20 70 | may.consider.it.more.useful.to.p |
| 67660 | 65 72 6d 69 74 20 6c 69 6e 6b 69 6e 67 20 70 72 6f 70 72 69 65 74 61 72 79 20 61 70 70 6c 69 63 | ermit.linking.proprietary.applic |
| 67680 | 61 74 69 6f 6e 73 20 77 69 74 68 0a 74 68 65 20 6c 69 62 72 61 72 79 2e 20 20 49 66 20 74 68 69 | ations.with.the.library...If.thi |
| 676a0 | 73 20 69 73 20 77 68 61 74 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 64 6f 2c 20 75 73 65 20 74 68 | s.is.what.you.want.to.do,.use.th |
| 676c0 | 65 20 47 4e 55 20 4c 65 73 73 65 72 20 47 65 6e 65 72 61 6c 0a 50 75 62 6c 69 63 20 4c 69 63 65 | e.GNU.Lesser.General.Public.Lice |
| 676e0 | 6e 73 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 69 73 20 4c 69 63 65 6e 73 65 2e 20 20 42 75 | nse.instead.of.this.License...Bu |
| 67700 | 74 20 66 69 72 73 74 2c 20 70 6c 65 61 73 65 20 72 65 61 64 0a 3c 68 74 74 70 73 3a 2f 2f 77 77 | t.first,.please.read.<https://ww |
| 67720 | 77 2e 67 6e 75 2e 6f 72 67 2f 70 68 69 6c 6f 73 6f 70 68 79 2f 77 68 79 2d 6e 6f 74 2d 6c 67 70 | w.gnu.org/philosophy/why-not-lgp |
| 67740 | 6c 2e 68 74 6d 6c 3e 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | l.html>......................... |
| 67760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 677a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 677c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 677e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67800 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 | gptel-0.9.8.5/gptel-pkg.el...... |
| 67820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 67880 | 30 30 30 30 37 33 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 33 00 20 30 00 00 00 | 0000732.00000000000.013663..0... |
| 678a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 678c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 678e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67900 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 67920 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 67940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 679a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 679c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 679e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67a00 | 3b 3b 20 47 65 6e 65 72 61 74 65 64 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e | ;;.Generated.package.description |
| 67a20 | 20 66 72 6f 6d 20 67 70 74 65 6c 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 | .from.gptel.el..-*-.no-byte-comp |
| 67a40 | 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 67 70 74 65 | ile:.t.-*-.(define-package."gpte |
| 67a60 | 6c 22 20 22 30 2e 39 2e 38 2e 35 22 20 22 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 43 68 61 74 | l"."0.9.8.5"."Interact.with.Chat |
| 67a80 | 47 50 54 20 6f 72 20 6f 74 68 65 72 20 4c 4c 4d 73 22 20 27 28 28 65 6d 61 63 73 20 22 32 37 2e | GPT.or.other.LLMs".'((emacs."27. |
| 67aa0 | 31 22 29 20 28 74 72 61 6e 73 69 65 6e 74 20 22 30 2e 37 2e 34 22 29 20 28 63 6f 6d 70 61 74 20 | 1").(transient."0.7.4").(compat. |
| 67ac0 | 22 32 39 2e 31 2e 34 2e 31 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 61 35 61 66 31 35 63 37 37 30 | "29.1.4.1")).:commit."a5af15c770 |
| 67ae0 | 62 36 36 61 36 31 64 30 36 30 39 61 37 33 36 65 31 64 62 33 37 34 39 35 36 35 35 35 35 39 22 20 | b66a61d0609a736e1db37495655559". |
| 67b00 | 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | :authors.'(("Karthik.Chikmagalur |
| 67b20 | 22 20 2e 20 22 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 | "..."karthik.chikmagalur@gmail.c |
| 67b40 | 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 20 27 28 22 4b 61 72 74 68 69 6b 20 43 68 69 | om")).:maintainer.'("Karthik.Chi |
| 67b60 | 6b 6d 61 67 61 6c 75 72 22 20 2e 20 22 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 | kmagalur"..."karthik.chikmagalur |
| 67b80 | 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 63 6f 6e 76 65 6e | @gmail.com").:keywords.'("conven |
| 67ba0 | 69 65 6e 63 65 22 20 22 74 6f 6f 6c 73 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 | ience"."tools").:url."https://gi |
| 67bc0 | 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 22 29 0a 00 00 00 00 00 00 | thub.com/karthink/gptel")....... |
| 67be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67c00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 00 00 00 | gptel-0.9.8.5/gptel-gemini.el... |
| 67c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 67c80 | 30 30 36 34 33 34 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 37 00 20 30 00 00 00 | 0064340.00000000000.014357..0... |
| 67ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 67d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 67d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67e00 | 3b 3b 3b 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 20 2d 2d 2d 20 20 47 65 6d 69 6e 69 20 | ;;;.gptel-gemini.el.---..Gemini. |
| 67e20 | 73 75 70 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d | suppport.for.gptel..-*-.lexical- |
| 67e40 | 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 | binding:.t;.-*-..;;.Copyright.(C |
| 67e60 | 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | ).2023-2025..Karthik.Chikmagalur |
| 67e80 | 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | ..;;.Author:.Karthik.Chikmagalur |
| 67ea0 | 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a | .<karthikchikmagalur@gmail.com>. |
| 67ec0 | 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 | .;;.This.program.is.free.softwar |
| 67ee0 | 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f | e;.you.can.redistribute.it.and/o |
| 67f00 | 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f | r.modify.;;.it.under.the.terms.o |
| 67f20 | 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | f.the.GNU.General.Public.License |
| 67f40 | 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 | .as.published.by.;;.the.Free.Sof |
| 67f60 | 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e | tware.Foundation,.either.version |
| 67f80 | 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 | .3.of.the.License,.or.;;.(at.you |
| 67fa0 | 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b | r.option).any.later.version...;; |
| 67fc0 | 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 | .This.program.is.distributed.in. |
| 67fe0 | 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c | the.hope.that.it.will.be.useful, |
| 68000 | 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 | .;;.but.WITHOUT.ANY.WARRANTY;.wi |
| 68020 | 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 | thout.even.the.implied.warranty. |
| 68040 | 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 | of.;;.MERCHANTABILITY.or.FITNESS |
| 68060 | 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 | .FOR.A.PARTICULAR.PURPOSE...See. |
| 68080 | 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | the.;;.GNU.General.Public.Licens |
| 680a0 | 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 | e.for.more.details...;;.You.shou |
| 680c0 | 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 | ld.have.received.a.copy.of.the.G |
| 680e0 | 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f | NU.General.Public.License.;;.alo |
| 68100 | 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 | ng.with.this.program...If.not,.s |
| 68120 | 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 | ee.<https://www.gnu.org/licenses |
| 68140 | 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 | />...;;;.Commentary:..;;.This.fi |
| 68160 | 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 47 65 6d 69 6e 69 20 41 | le.adds.support.for.the.Gemini.A |
| 68180 | 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 | PI.to.gptel..;;;.Code:.(require. |
| 681a0 | 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 72 | 'gptel).(require.'cl-generic).(r |
| 681c0 | 65 71 75 69 72 65 20 27 6d 61 70 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 | equire.'map).(eval-when-compile. |
| 681e0 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | (require.'cl-lib))..(declare-fun |
| 68200 | 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f | ction.prop-match-value."text-pro |
| 68220 | 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | perty-search").(declare-function |
| 68240 | 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 | .text-property-search-backward." |
| 68260 | 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d | text-property-search").(declare- |
| 68280 | 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 29 0a 28 64 65 63 6c | function.json-read."json").(decl |
| 682a0 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 | are-function.gptel-context--wrap |
| 682c0 | 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | ."gptel-context").(declare-funct |
| 682e0 | 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 | ion.gptel-context--collect-media |
| 68300 | 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f | ."gptel-context").(defvar.json-o |
| 68320 | 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 3b 3b 3b 20 47 65 6d 69 6e 69 0a 28 63 6c 2d 64 65 66 73 | bject-type)..;;;.Gemini.(cl-defs |
| 68340 | 74 72 75 63 74 0a 20 20 20 20 28 67 70 74 65 6c 2d 67 65 6d 69 6e 69 20 28 3a 63 6f 6e 73 74 72 | truct.....(gptel-gemini.(:constr |
| 68360 | 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 29 0a 20 20 20 20 20 20 | uctor.gptel--make-gemini)....... |
| 68380 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 | ............(:copier.nil)....... |
| 683a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b | ............(:include.gptel-back |
| 683c0 | 65 6e 64 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 69 6e 67 20 61 6c 74 3d 73 73 65 20 69 | end)))..;;.TODO:.Using.alt=sse.i |
| 683e0 | 6e 20 74 68 65 20 71 75 65 72 79 20 75 72 6c 20 67 65 6e 65 72 61 74 65 73 20 61 6e 20 4f 70 65 | n.the.query.url.generates.an.Ope |
| 68400 | 6e 41 49 20 73 74 79 6c 65 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 2c | nAI.style.streaming.;;.response, |
| 68420 | 20 77 69 74 68 20 6d 6f 72 65 20 69 6d 6d 65 64 69 61 74 65 20 75 70 64 61 74 65 73 2e 20 20 4d | .with.more.immediate.updates...M |
| 68440 | 61 79 62 65 20 77 65 20 73 68 6f 75 6c 64 20 73 77 69 74 63 68 20 74 6f 20 74 68 61 74 20 61 6e | aybe.we.should.switch.to.that.an |
| 68460 | 64 0a 3b 3b 20 72 65 77 72 69 74 65 20 74 68 65 20 73 74 72 65 61 6d 20 70 61 72 73 65 72 3f 0a | d.;;.rewrite.the.stream.parser?. |
| 68480 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d | (cl-defmethod.gptel-curl--parse- |
| 684a0 | 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 | stream.((_backend.gptel-gemini). |
| 684c0 | 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 20 47 65 6d 69 6e 69 20 64 61 74 61 20 73 74 72 | info)..."Parse.a.Gemini.data.str |
| 684e0 | 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 72 65 73 70 6f 6e 73 65 20 61 | eam...Return.the.text.response.a |
| 68500 | 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c 20 74 | ccumulated.since.the.last.call.t |
| 68520 | 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 | o.this.function...Additionally,. |
| 68540 | 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 74 6f 6f 6c 2d 75 73 | mutate.state.INFO.to.add.tool-us |
| 68560 | 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 73 74 72 65 61 6d 20 63 6f 6e 74 | e.information.if.the.stream.cont |
| 68580 | 61 69 6e 73 20 69 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 | ains.it."...(let*.((content-strs |
| 685a0 | 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 | )).....(condition-case.nil...... |
| 685c0 | 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f 67 31 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 | ...(while.(prog1.(search-forward |
| 685e0 | 20 22 7b 22 20 6e 69 6c 20 74 29 20 3b 20 77 68 69 6c 65 2d 6c 65 74 20 69 73 20 45 6d 61 63 73 | ."{".nil.t).;.while-let.is.Emacs |
| 68600 | 20 32 39 2e 31 2b 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 | .29.1+.only..................(ba |
| 68620 | 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | ckward-char.1))...........(save- |
| 68640 | 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 | match-data.............(when-let |
| 68660 | 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 | *.((response.(gptel--json-read)) |
| 68680 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 | .........................(text.( |
| 686a0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | gptel--parse-response........... |
| 686c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 | .....................(plist-get. |
| 686e0 | 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:backend).................. |
| 68700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 20 27 69 6e 63 | ..............response.info.'inc |
| 68720 | 6c 75 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 74 65 78 74 | lude)))...............(push.text |
| 68740 | 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 | .content-strs)))).......(error.. |
| 68760 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e | ......(goto-char.(match-beginnin |
| 68780 | 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 | g.0)))).....(apply.#'concat.(nre |
| 687a0 | 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | verse.content-strs))))..(cl-defm |
| 687c0 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 | ethod.gptel--parse-response.((_b |
| 687e0 | 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 72 65 73 70 6f 6e 73 65 20 69 6e | ackend.gptel-gemini).response.in |
| 68800 | 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.............................. |
| 68820 | 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 63 6c 75 64 65 2d 74 65 78 74 29 0a | ........&optional.include-text). |
| 68840 | 20 20 22 50 61 72 73 65 20 61 6e 20 47 65 6d 69 6e 69 20 28 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e | .."Parse.an.Gemini.(non-streamin |
| 68860 | 67 29 20 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 75 72 6e 20 72 65 73 70 6f 6e 73 65 20 | g).RESPONSE.and.return.response. |
| 68880 | 74 65 78 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 77 69 74 68 20 72 65 | text...Mutate.state.INFO.with.re |
| 688a0 | 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 0a 0a 49 66 20 49 4e 43 4c 55 44 45 2d 54 45 58 | sponse.metadata...If.INCLUDE-TEX |
| 688c0 | 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 63 6c 75 64 65 20 72 65 73 70 6f 6e 73 65 20 74 | T.is.non-nil,.include.response.t |
| 688e0 | 65 78 74 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 73 0a 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 | ext.in.the.prompts.list."...(let |
| 68900 | 2a 20 28 28 63 61 6e 64 30 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e | *.((cand0.(map-nested-elt.respon |
| 68920 | 73 65 20 27 28 3a 63 61 6e 64 69 64 61 74 65 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 | se.'(:candidates.0)))..........( |
| 68940 | 70 61 72 74 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 63 61 6e 64 30 20 27 28 3a 63 | parts.(map-nested-elt.cand0.'(:c |
| 68960 | 6f 6e 74 65 6e 74 20 3a 70 61 72 74 73 29 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | ontent.:parts)))).....(plist-put |
| 68980 | 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 | .info.:stop-reason.(plist-get.ca |
| 689a0 | 6e 64 30 20 3a 66 69 6e 69 73 68 52 65 61 73 6f 6e 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 | nd0.:finishReason)).....(plist-p |
| 689c0 | 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 | ut.info.:output-tokens.......... |
| 689e0 | 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 | ......(map-nested-elt........... |
| 68a00 | 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 4d 65 74 61 64 61 74 61 20 | ......response.'(:usageMetadata. |
| 68a20 | 3a 63 61 6e 64 69 64 61 74 65 73 54 6f 6b 65 6e 43 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 63 6c | :candidatesTokenCount))).....(cl |
| 68a40 | 2d 6c 6f 6f 70 0a 20 20 20 20 20 66 6f 72 20 70 61 72 74 20 61 63 72 6f 73 73 20 70 61 72 74 73 | -loop......for.part.across.parts |
| 68a60 | 0a 20 20 20 20 20 66 6f 72 20 74 78 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a | ......for.tx.=.(plist-get.part.: |
| 68a80 | 74 65 78 74 29 0a 20 20 20 20 20 69 66 20 28 61 6e 64 20 74 78 20 28 6e 6f 74 20 28 65 71 20 74 | text)......if.(and.tx.(not.(eq.t |
| 68aa0 | 78 20 3a 6e 75 6c 6c 29 29 29 0a 20 20 20 20 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 | x.:null)))......if.(plist-get.pa |
| 68ac0 | 72 74 20 3a 74 68 6f 75 67 68 74 29 0a 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c | rt.:thought)......do.(unless.(pl |
| 68ae0 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 0a 20 | ist-get.info.:reasoning-block).. |
| 68b00 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e | .........(plist-put.info.:reason |
| 68b20 | 69 6e 67 2d 62 6c 6f 63 6b 20 27 69 6e 29 29 0a 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | ing-block.'in))......(plist-put. |
| 68b40 | 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 | info.:reasoning.(concat.(plist-g |
| 68b60 | 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 74 78 29 29 0a 20 20 20 20 20 65 6c | et.info.:reasoning).tx))......el |
| 68b80 | 73 65 20 64 6f 0a 20 20 20 20 20 28 69 66 20 28 65 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | se.do......(if.(eq.(plist-get.in |
| 68ba0 | 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 69 6e 29 0a 20 20 20 20 20 20 | fo.:reasoning-block).'in)....... |
| 68bc0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 | .(plist-put.info.:reasoning-bloc |
| 68be0 | 6b 20 74 29 29 0a 20 20 20 20 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 78 20 69 6e 74 6f 20 63 | k.t))......and.collect.tx.into.c |
| 68c00 | 6f 6e 74 65 6e 74 2d 73 74 72 73 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 6c | ontent-strs.end......else.if.(pl |
| 68c20 | 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 66 75 6e 63 74 69 6f 6e 43 61 6c 6c 29 0a 20 20 20 20 | ist-get.part.:functionCall)..... |
| 68c40 | 20 63 6f 6c 6c 65 63 74 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 69 74 29 20 69 6e 74 6f | .collect.(copy-sequence.it).into |
| 68c60 | 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 20 20 20 20 20 20 | .tool-use......finally.do....... |
| 68c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 64 64 20 74 65 78 74 20 61 6e 64 20 | ..................;Add.text.and. |
| 68ca0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 | tool-calls.to.prompts.list...... |
| 68cc0 | 28 77 68 65 6e 20 28 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 69 6e 63 6c 75 64 65 2d 74 65 78 74 29 | (when.(or.tool-use.include-text) |
| 68ce0 | 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........(let*.((data.(plist-get. |
| 68d00 | 69 6e 66 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d | info.:data))...............(prom |
| 68d20 | 70 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 63 6f 6e 74 65 6e 74 73 29 29 0a | pts.(plist-get.data.:contents)). |
| 68d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 70 72 6f 6d 70 74 20 28 61 72 65 66 | ..............(last-prompt.(aref |
| 68d60 | 20 70 72 6f 6d 70 74 73 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 70 72 6f 6d 70 74 73 29 29 29 29 | .prompts.(1-.(length.prompts)))) |
| 68d80 | 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 | )..........(if.(equal.(plist-get |
| 68da0 | 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 72 6f 6c 65 29 20 22 6d 6f 64 65 6c 22 29 0a 20 20 20 | .last-prompt.:role)."model").... |
| 68dc0 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 65 6e 20 73 74 72 65 61 6d 69 6e 67 2c 20 74 68 65 | ..........;;.When.streaming,.the |
| 68de0 | 20 6c 61 73 74 20 70 72 6f 6d 70 74 20 6d 61 79 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 74 68 | .last.prompt.may.already.have.th |
| 68e00 | 65 20 72 6f 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 22 6d 6f 64 65 6c 22 20 66 | e.role..............;;."model".f |
| 68e20 | 72 6f 6d 20 70 72 69 6f 72 20 63 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e | rom.prior.calls.to.this.function |
| 68e40 | 2e 20 20 41 70 70 65 6e 64 20 74 6f 20 69 74 73 20 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 | ...Append.to.its.parts.......... |
| 68e60 | 20 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f 66 20 61 64 64 69 6e 67 20 61 20 6e 65 77 20 6d | ....;;.instead.of.adding.a.new.m |
| 68e80 | 6f 64 65 6c 20 72 6f 6c 65 20 74 68 65 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | odel.role.then...............(pl |
| 68ea0 | 69 73 74 2d 70 75 74 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 70 61 72 74 73 0a 20 20 20 20 20 | ist-put.last-prompt.:parts...... |
| 68ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 28 70 6c 69 | ...................(vconcat.(pli |
| 68ee0 | 73 74 2d 67 65 74 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 70 61 72 74 73 29 20 70 61 72 74 73 | st-get.last-prompt.:parts).parts |
| 68f00 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 20 20 20 20 20 20 20 | ))............(plist-put........ |
| 68f20 | 20 20 20 20 20 20 20 20 20 20 20 3b 6f 74 68 65 72 77 69 73 65 20 63 72 65 61 74 65 20 61 20 6e | ...........;otherwise.create.a.n |
| 68f40 | 65 77 20 22 6d 6f 64 65 6c 22 20 72 6f 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 | ew."model".role.............data |
| 68f60 | 20 3a 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 | .:contents.............(vconcat. |
| 68f80 | 70 72 6f 6d 70 74 73 20 60 28 28 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 74 73 20 | prompts.`((:role."model".:parts. |
| 68fa0 | 2c 70 61 72 74 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6f 6c 2d 75 73 | ,parts)))))))......(when.tool-us |
| 68fc0 | 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 43 61 70 74 75 72 65 20 74 6f | e....................;Capture.to |
| 68fe0 | 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 6f 6f 6c 73 0a 20 | ol.call.data.for.running.tools.. |
| 69000 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 0a | ......(plist-put.info.:tool-use. |
| 69020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 70 6c 69 73 74 2d | ..................(nconc.(plist- |
| 69040 | 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a | get.info.:tool-use).tool-use))). |
| 69060 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 28 61 6e 64 20 63 6f | .....finally.return......(and.co |
| 69080 | 6e 74 65 6e 74 2d 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 63 6f 6e 74 65 | ntent-strs.(apply.#'concat.conte |
| 690a0 | 6e 74 2d 73 74 72 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 | nt-strs)))))..(cl-defmethod.gpte |
| 690c0 | 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | l--request-data.((backend.gptel- |
| 690e0 | 67 65 6d 69 6e 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 | gemini).prompts)..."JSON.encode. |
| 69100 | 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 47 65 6d 69 6e 69 2e 22 0a | PROMPTS.for.sending.to.Gemini.". |
| 69120 | 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 | ..(let.((prompts-plist.......... |
| 69140 | 60 28 3a 63 6f 6e 74 65 6e 74 73 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 | `(:contents.[,@prompts]......... |
| 69160 | 20 20 20 3a 73 61 66 65 74 79 53 65 74 74 69 6e 67 73 20 5b 28 3a 63 61 74 65 67 6f 72 79 20 22 | ...:safetySettings.[(:category." |
| 69180 | 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 48 41 52 41 53 53 4d 45 4e 54 22 0a 20 20 20 20 20 20 | HARM_CATEGORY_HARASSMENT"....... |
| 691a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c | .......................:threshol |
| 691c0 | 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d."BLOCK_NONE")................. |
| 691e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 | ............(:category."HARM_CAT |
| 69200 | 45 47 4f 52 59 5f 53 45 58 55 41 4c 4c 59 5f 45 58 50 4c 49 43 49 54 22 0a 20 20 20 20 20 20 20 | EGORY_SEXUALLY_EXPLICIT"........ |
| 69220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 | ......................:threshold |
| 69240 | 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."BLOCK_NONE").................. |
| 69260 | 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 | ...........(:category."HARM_CATE |
| 69280 | 47 4f 52 59 5f 44 41 4e 47 45 52 4f 55 53 5f 43 4f 4e 54 45 4e 54 22 0a 20 20 20 20 20 20 20 20 | GORY_DANGEROUS_CONTENT"......... |
| 692a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 | .....................:threshold. |
| 692c0 | 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "BLOCK_NONE")................... |
| 692e0 | 20 20 20 20 20 20 20 20 20 20 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 | ..........(:category."HARM_CATEG |
| 69300 | 4f 52 59 5f 48 41 54 45 5f 53 50 45 45 43 48 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ORY_HATE_SPEECH"................ |
| 69320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f | ..............:threshold."BLOCK_ |
| 69340 | 4e 4f 4e 45 22 29 5d 29 29 0a 20 20 20 20 20 20 20 20 70 61 72 61 6d 73 29 0a 20 20 20 20 28 69 | NONE")])).........params).....(i |
| 69360 | 66 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 | f.gptel--system-message......... |
| 69380 | 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d | (plist-put.prompts-plist.:system |
| 693a0 | 5f 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _instruction.................... |
| 693c0 | 60 28 3a 70 61 72 74 73 20 28 3a 74 65 78 74 20 2c 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d | `(:parts.(:text.,gptel--system-m |
| 693e0 | 65 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 75 73 65 2d 74 | essage)))).....(when.gptel-use-t |
| 69400 | 6f 6f 6c 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 75 73 65 2d 74 | ools.......(when.(eq.gptel-use-t |
| 69420 | 6f 6f 6c 73 20 27 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | ools.'force).........(plist-put. |
| 69440 | 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 5f 63 6f 6e 66 69 67 0a 20 20 20 20 20 | prompts-plist.:tool_config...... |
| 69460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 66 75 6e 63 74 69 6f 6e 5f 63 61 6c 6c 69 6e | ..............'(:function_callin |
| 69480 | 67 5f 63 6f 6e 66 69 67 20 28 3a 6d 6f 64 65 20 22 41 4e 59 22 29 29 29 29 0a 20 20 20 20 20 20 | g_config.(:mode."ANY"))))....... |
| 694a0 | 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | (when.gptel-tools.........(plist |
| 694c0 | 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 | -put.prompts-plist.:tools....... |
| 694e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 | .............(gptel--parse-tools |
| 69500 | 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 29 0a 20 20 20 20 28 77 68 | .backend.gptel-tools)))).....(wh |
| 69520 | 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 73 65 74 71 | en.gptel-temperature.......(setq |
| 69540 | 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 | .params.............(plist-put.p |
| 69560 | 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 | arams........................:te |
| 69580 | 6d 70 65 72 61 74 75 72 65 20 28 6d 61 78 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 | mperature.(max.gptel-temperature |
| 695a0 | 20 31 2e 30 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b | .1.0)))).....(when.gptel-max-tok |
| 695c0 | 65 6e 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 | ens.......(setq.params.......... |
| 695e0 | 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | ...(plist-put.params............ |
| 69600 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 20 67 70 74 | ............:maxOutputTokens.gpt |
| 69620 | 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c | el-max-tokens))).....(when.gptel |
| 69640 | 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 | -include-reasoning.......(setq.p |
| 69660 | 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 61 72 | arams.............(plist-put.par |
| 69680 | 61 6d 73 20 3a 74 68 69 6e 6b 69 6e 67 43 6f 6e 66 69 67 20 27 28 3a 69 6e 63 6c 75 64 65 54 68 | ams.:thinkingConfig.'(:includeTh |
| 696a0 | 6f 75 67 68 74 73 20 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 61 72 61 6d 73 0a 20 20 | oughts.t)))).....(when.params... |
| 696c0 | 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 | ....(plist-put.prompts-plist.... |
| 696e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 67 65 6e 65 72 61 74 69 6f 6e 43 6f 6e 66 69 67 20 | ..............:generationConfig. |
| 69700 | 70 61 72 61 6d 73 29 29 0a 20 20 20 20 3b 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 | params)).....;;.Merge.request.pa |
| 69720 | 72 61 6d 73 20 77 69 74 68 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 | rams.with.model.and.backend.para |
| 69740 | 6d 73 2e 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 | ms......(gptel--merge-plists.... |
| 69760 | 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b | ..prompts-plist......(gptel-back |
| 69780 | 65 6e 64 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | end-request-params.gptel-backend |
| 697a0 | 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 | )......(gptel--model-request-par |
| 697c0 | 61 6d 73 20 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | ams..gptel-model))))..(defun.gpt |
| 697e0 | 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 28 73 63 68 65 6d 61 | el--gemini-filter-schema.(schema |
| 69800 | 29 0a 20 20 22 44 65 73 74 72 75 63 74 69 76 65 6c 79 20 66 69 6c 74 65 72 20 75 6e 73 75 70 70 | )..."Destructively.filter.unsupp |
| 69820 | 6f 72 74 65 64 20 61 74 74 72 69 62 75 74 65 73 20 66 72 6f 6d 20 53 43 48 45 4d 41 2e 0a 0a 47 | orted.attributes.from.SCHEMA...G |
| 69840 | 65 6d 69 6e 69 27 73 20 41 50 49 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 60 61 64 | emini's.API.does.not.support.`ad |
| 69860 | 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 27 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 66 | ditionalProperties'."...(cl-remf |
| 69880 | 20 73 63 68 65 6d 61 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 0a 20 | .schema.:additionalProperties).. |
| 698a0 | 20 28 77 68 65 6e 20 28 70 6c 69 73 74 70 20 73 63 68 65 6d 61 29 0a 20 20 20 20 28 63 6c 2d 6c | .(when.(plistp.schema).....(cl-l |
| 698c0 | 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 29 20 6f 6e 20 73 63 68 65 6d 61 20 62 79 20 23 | oop.for.(key.val).on.schema.by.# |
| 698e0 | 27 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 63 6f 6e 64 0a 20 20 20 20 | 'cddr..............do.(cond..... |
| 69900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 63 75 72 73 69 76 65 6c 79 20 6d 6f 64 69 | .............;;.Recursively.modi |
| 69920 | 66 79 20 73 63 68 65 6d 61 73 20 77 69 74 68 69 6e 20 76 65 63 74 6f 72 73 20 28 61 6e 79 4f 66 | fy.schemas.within.vectors.(anyOf |
| 69940 | 2f 61 6c 6c 4f 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 | /allOf)..................((memq. |
| 69960 | 6b 65 79 20 27 28 3a 61 6e 79 4f 66 20 3a 61 6c 6c 4f 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 | key.'(:anyOf.:allOf))........... |
| 69980 | 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 69 20 28 6c 65 6e 67 74 68 20 76 61 6c 29 | ........(dotimes.(i.(length.val) |
| 699a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 65 74 20 76 61 6c 20 | ).....................(aset.val. |
| 699c0 | 69 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 28 | i.(gptel--gemini-filter-schema.( |
| 699e0 | 61 72 65 66 20 76 61 6c 20 69 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | aref.val.i)))))................. |
| 69a00 | 20 3b 3b 20 52 65 63 75 72 73 69 76 65 6c 79 20 6d 6f 64 69 66 79 20 70 6c 69 73 74 20 76 61 6c | .;;.Recursively.modify.plist.val |
| 69a20 | 75 65 73 2c 20 77 68 69 63 68 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 73 75 62 2d 73 63 68 65 6d | ues,.which.may.contain.sub-schem |
| 69a40 | 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 70 20 76 61 6c | as..................((plistp.val |
| 69a60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d 72 65 | )...................(when.(cl-re |
| 69a80 | 6d 66 20 76 61 6c 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 0a 20 20 | mf.val.:additionalProperties)... |
| 69aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 28 70 6c 69 73 | ..................(cl-remf.(plis |
| 69ac0 | 74 2d 67 65 74 20 73 63 68 65 6d 61 20 6b 65 79 29 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f | t-get.schema.key).:additionalPro |
| 69ae0 | 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | perties))...................(gpt |
| 69b00 | 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 76 61 6c 29 29 0a 20 | el--gemini-filter-schema.val)).. |
| 69b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 65 66 61 75 6c 74 3a 20 64 6f 20 6e | ................;;.Default:.do.n |
| 69b40 | 6f 74 68 69 6e 67 20 74 6f 20 6f 74 68 65 72 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 20 | othing.to.other.key-value.pairs. |
| 69b60 | 79 65 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 | yet...................(t.nil)))) |
| 69b80 | 0a 20 20 73 63 68 65 6d 61 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d | ...schema)..(cl-defmethod.gptel- |
| 69ba0 | 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 | -parse-tools.((_backend.gptel-ge |
| 69bc0 | 6d 69 6e 69 29 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 74 6f 20 74 | mini).tools)..."Parse.TOOLS.to.t |
| 69be0 | 68 65 20 47 65 6d 69 6e 69 20 41 50 49 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 73 70 | he.Gemini.API.tool.definition.sp |
| 69c00 | 65 63 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 6c 2d 74 | ec...TOOLS.is.a.list.of.`gptel-t |
| 69c20 | 6f 6f 6c 27 20 73 74 72 75 63 74 73 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 63 6c 2d | ool'.structs,.which.see."...(cl- |
| 69c40 | 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 74 6f 6f 6c 20 69 6e 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 | loop....for.tool.in.(ensure-list |
| 69c60 | 20 74 6f 6f 6c 73 29 0a 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 | .tools)....collect....(list..... |
| 69c80 | 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 | :name.(gptel-tool-name.tool).... |
| 69ca0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 | .:description.(gptel-tool-descri |
| 69cc0 | 70 74 69 6f 6e 20 74 6f 6f 6c 29 0a 20 20 20 20 3a 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 | ption.tool).....:parameters..... |
| 69ce0 | 28 69 66 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 29 | (if.(not.(gptel-tool-args.tool)) |
| 69d00 | 0a 20 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c 20 20 20 20 20 20 20 20 20 20 20 3b 4e 4f 54 45 3a | ..........:null...........;NOTE: |
| 69d20 | 20 47 65 6d 69 6e 69 20 77 61 6e 74 73 20 3a 6e 75 6c 6c 20 69 66 20 74 68 65 20 66 75 6e 63 74 | .Gemini.wants.:null.if.the.funct |
| 69d40 | 69 6f 6e 20 74 61 6b 65 73 20 6e 6f 20 61 72 67 73 0a 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 | ion.takes.no.args.......(list.:t |
| 69d60 | 79 70 65 20 22 6f 62 6a 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 | ype."object".............;;.See. |
| 69d80 | 74 68 65 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 | the.generic.implementation.for.a |
| 69da0 | 6e 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 | n.explanation.of.this........... |
| 69dc0 | 20 20 3b 3b 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 | ..;;.transformation............. |
| 69de0 | 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f | .:properties.............(cl-loo |
| 69e00 | 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 67 20 69 6e 20 28 67 70 74 65 6c | p..............for.arg.in.(gptel |
| 69e20 | 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f | -tool-args.tool)..............fo |
| 69e40 | 72 20 61 72 67 73 70 65 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 61 72 67 29 0a | r.argspec.=.(copy-sequence.arg). |
| 69e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 70 6c 69 73 74 2d 67 | .............for.name.=.(plist-g |
| 69e80 | 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 20 3b 68 61 6e 64 6c 65 64 20 64 69 66 66 65 72 65 6e 74 | et.arg.:name).;handled.different |
| 69ea0 | 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 65 77 6e 61 6d 65 20 3d 20 28 6f | ly..............for.newname.=.(o |
| 69ec0 | 72 20 28 61 6e 64 20 28 6b 65 79 77 6f 72 64 70 20 6e 61 6d 65 29 20 6e 61 6d 65 29 0a 20 20 20 | r.(and.(keywordp.name).name).... |
| 69ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b | ............................(mak |
| 69f00 | 65 2d 73 79 6d 62 6f 6c 20 28 63 6f 6e 63 61 74 20 22 3a 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 | e-symbol.(concat.":".name))).... |
| 69f20 | 20 20 20 20 20 20 20 20 20 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........do.................... |
| 69f40 | 20 20 20 20 3b 41 52 47 53 50 45 43 20 69 73 20 41 52 47 20 77 69 74 68 6f 75 74 20 75 6e 72 65 | ....;ARGSPEC.is.ARG.without.unre |
| 69f60 | 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 | cognized.keys..............(cl-r |
| 69f80 | 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | emf.argspec.:name).............. |
| 69fa0 | 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6f 70 74 69 6f 6e 61 6c 29 0a 20 20 20 20 | (cl-remf.argspec.:optional)..... |
| 69fc0 | 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 | .........if.(equal.(plist-get.ar |
| 69fe0 | 67 20 3a 74 79 70 65 29 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.:type)."object").............. |
| 6a000 | 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 61 72 67 73 70 65 63 | do.(unless.(plist-member.argspec |
| 6a020 | 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | .:required)...................(p |
| 6a040 | 6c 69 73 74 2d 70 75 74 20 61 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 20 5b 5d 29 29 0a | list-put.argspec.:required.[])). |
| 6a060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 | .............if.(equal.(plist-ge |
| 6a080 | 74 20 61 72 67 20 3a 74 79 70 65 29 20 22 73 74 72 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 | t.arg.:type)."string").......... |
| 6a0a0 | 20 20 20 20 64 6f 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 66 6f 72 6d 61 74 29 | ....do.(cl-remf.argspec.:format) |
| 6a0c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 | ..............append.(list.newna |
| 6a0e0 | 6d 65 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 | me.(gptel--gemini-filter-schema. |
| 6a100 | 61 72 67 73 70 65 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 | argspec))).............:required |
| 6a120 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 | .............(vconcat........... |
| 6a140 | 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 | ...(delq.nil.(mapcar............ |
| 6a160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 20 28 61 6e 64 20 | .............(lambda.(arg).(and. |
| 6a180 | 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6f 70 74 69 6f 6e 61 6c 29 29 0a | (not.(plist-get.arg.:optional)). |
| 6a1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6a1c0 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 0a 20 20 | ......(plist-get.arg.:name)))... |
| 6a1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f | ......................(gptel-too |
| 6a200 | 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 29 29 29 29 29 29 0a 20 20 20 69 6e 74 6f 20 74 6f 6f 6c 2d | l-args.tool)))))))....into.tool- |
| 6a220 | 73 70 65 63 73 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 60 5b 28 3a 66 75 6e 63 | specs....finally.return.`[(:func |
| 6a240 | 74 69 6f 6e 5f 64 65 63 6c 61 72 61 74 69 6f 6e 73 20 2c 28 76 63 6f 6e 63 61 74 20 74 6f 6f 6c | tion_declarations.,(vconcat.tool |
| 6a260 | 2d 73 70 65 63 73 29 29 5d 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c | -specs))]))..(cl-defmethod.gptel |
| 6a280 | 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 | --parse-tool-results.((_backend. |
| 6a2a0 | 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 22 52 65 74 75 72 | gptel-gemini).tool-use)..."Retur |
| 6a2c0 | 6e 20 61 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 | n.a.prompt.containing.tool.call. |
| 6a2e0 | 72 65 73 75 6c 74 73 20 69 6e 20 54 4f 4f 4c 2d 55 53 45 2e 22 0a 20 20 28 6c 69 73 74 0a 20 20 | results.in.TOOL-USE."...(list... |
| 6a300 | 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 20 3a 70 61 72 74 73 0a 20 20 20 28 76 63 6f 6e | .:role."user"....:parts....(vcon |
| 6a320 | 63 61 74 0a 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f | cat.....(mapcar......(lambda.(to |
| 6a340 | 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 70 | ol-call)........(let.((result.(p |
| 6a360 | 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 0a 20 20 20 | list-get.tool-call.:result)).... |
| 6a380 | 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d | ..........(name.(plist-get.tool- |
| 6a3a0 | 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 60 28 3a 66 75 6e 63 74 69 | call.:name)))..........`(:functi |
| 6a3c0 | 6f 6e 52 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 3a 6e 61 6d 65 20 2c 6e 61 | onResponse............(:name.,na |
| 6a3e0 | 6d 65 20 3a 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 6e 61 6d 65 20 | me.:response.............(:name. |
| 6a400 | 2c 6e 61 6d 65 20 3a 63 6f 6e 74 65 6e 74 20 2c 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 | ,name.:content.,result)))))..... |
| 6a420 | 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 | .tool-use))))..(cl-defmethod.gpt |
| 6a440 | 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 | el--inject-prompt.((_backend.gpt |
| 6a460 | 65 6c 2d 67 65 6d 69 6e 69 29 20 64 61 74 61 20 6e 65 77 2d 70 72 6f 6d 70 74 20 26 6f 70 74 69 | el-gemini).data.new-prompt.&opti |
| 6a480 | 6f 6e 61 6c 20 5f 70 6f 73 69 74 69 6f 6e 29 0a 20 20 22 41 70 70 65 6e 64 20 4e 45 57 2d 50 52 | onal._position)..."Append.NEW-PR |
| 6a4a0 | 4f 4d 50 54 20 74 6f 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6d 70 74 73 20 69 6e 20 71 75 65 72 | OMPT.to.existing.prompts.in.quer |
| 6a4c0 | 79 20 44 41 54 41 2e 0a 0a 53 65 65 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 | y.DATA...See.generic.implementat |
| 6a4e0 | 69 6f 6e 20 66 6f 72 20 66 75 6c 6c 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 0a 20 20 28 | ion.for.full.documentation."...( |
| 6a500 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 63 | let.((prompts.(plist-get.data.:c |
| 6a520 | 6f 6e 74 65 6e 74 73 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 74 61 20 3a | ontents))).....(plist-put.data.: |
| 6a540 | 63 6f 6e 74 65 6e 74 73 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 28 6c 69 73 74 20 | contents.(vconcat.prompts.(list. |
| 6a560 | 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 | new-prompt)))))..(cl-defmethod.g |
| 6a580 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c | ptel--parse-list.((backend.gptel |
| 6a5a0 | 2d 67 65 6d 69 6e 69 29 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 28 69 66 20 28 63 6f 6e | -gemini).prompt-list)...(if.(con |
| 6a5c0 | 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 | sp.(car.prompt-list)).......(let |
| 6a5e0 | 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 | .((full-prompt))..............;. |
| 6a600 | 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 | Advanced.format,.list.of.lists.. |
| 6a620 | 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 2d 6c 69 73 | .......(dolist.(entry.prompt-lis |
| 6a640 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 | t)...........(pcase.entry....... |
| 6a660 | 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 | ......(`(prompt...,msg)......... |
| 6a680 | 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 | .....(push.(list.:role."user"... |
| 6a6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 74 73 20 60 5b | .......................:parts.`[ |
| 6a6c0 | 28 3a 74 65 78 74 20 2c 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 | (:text.,(or.(car-safe.msg).msg)) |
| 6a6e0 | 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 | ])....................full-promp |
| 6a700 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d | t)).............(`(response...,m |
| 6a720 | 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f | sg)..............(push.(list.:ro |
| 6a740 | 6c 65 20 22 6d 6f 64 65 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | le."model"...................... |
| 6a760 | 20 20 20 20 3a 70 61 72 74 73 20 60 5b 28 3a 74 65 78 74 20 2c 28 6f 72 20 28 63 61 72 2d 73 61 | ....:parts.`[(:text.,(or.(car-sa |
| 6a780 | 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fe.msg).msg))])................. |
| 6a7a0 | 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 | ...full-prompt)).............(`( |
| 6a7c0 | 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 | tool...,call)..............(push |
| 6a7e0 | 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .(list.:role."model"............ |
| 6a800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 74 73 20 28 76 65 63 74 6f 72 20 60 28 3a | ..............:parts.(vector.`(: |
| 6a820 | 66 75 6e 63 74 69 6f 6e 43 61 6c 6c 20 28 20 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 | functionCall.(.:name.,(plist-get |
| 6a840 | 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .call.:name).................... |
| 6a860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6a880 | 20 20 20 20 20 20 20 3a 61 72 67 73 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 | .......:args.,(plist-get.call.:a |
| 6a8a0 | 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c | rgs)))))....................full |
| 6a8c0 | 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 74 | -prompt)..............(push.(gpt |
| 6a8e0 | 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 | el--parse-tool-results.backend.( |
| 6a900 | 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 29 29 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 | list.(cdr.entry))).full-prompt)) |
| 6a920 | 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 | )).........(nreverse.full-prompt |
| 6a940 | 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 6f 6d | )).....(cl-loop.for.text.in.prom |
| 6a960 | 70 74 2d 6c 69 73 74 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 | pt-list....;.Simple.format,.list |
| 6a980 | 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 6f 6c | .of.strings..............for.rol |
| 6a9a0 | 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 | e.=.t.then.(not.role)........... |
| 6a9c0 | 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6f 6c 65 0a | ...if.text..............if.role. |
| 6a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 72 6f 6c 65 | .............collect.(list.:role |
| 6aa00 | 20 22 75 73 65 72 22 20 3a 70 61 72 74 73 20 60 5b 28 3a 74 65 78 74 20 2c 74 65 78 74 29 5d 29 | ."user".:parts.`[(:text.,text)]) |
| 6aa20 | 20 69 6e 74 6f 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 | .into.prompts..............else. |
| 6aa40 | 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 | collect.(list.:role."model".:par |
| 6aa60 | 74 73 20 60 28 3a 74 65 78 74 20 2c 74 65 78 74 29 29 20 69 6e 74 6f 20 70 72 6f 6d 70 74 73 0a | ts.`(:text.,text)).into.prompts. |
| 6aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 70 72 6f 6d | .............finally.return.prom |
| 6aaa0 | 70 74 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 | pts)))..(cl-defmethod.gptel--par |
| 6aac0 | 73 65 2d 62 75 66 66 65 72 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 | se-buffer.((backend.gptel-gemini |
| 6aae0 | 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 | ).&optional.max-entries)...(let. |
| 6ab00 | 28 28 70 72 6f 6d 70 74 73 29 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 | ((prompts).(prev-pt.(point)))... |
| 6ab20 | 20 20 28 69 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b | ..(if.(or.gptel-mode.gptel-track |
| 6ab40 | 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 | -response).........(while.(and.( |
| 6ab60 | 6f 72 20 28 6e 6f 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 | or.(not.max-entries).(>=.max-ent |
| 6ab80 | 72 69 65 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f | ries.0)).....................(go |
| 6aba0 | 74 6f 2d 63 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 | to-char.(previous-single-propert |
| 6abc0 | 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y-change........................ |
| 6abe0 | 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 | .........(point).'gptel.nil.(poi |
| 6ac00 | 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e | nt-min))).....................(n |
| 6ac20 | 6f 74 20 28 3d 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 | ot.(=.(point).prev-pt)))........ |
| 6ac40 | 20 20 20 28 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f | ...(pcase.(get-char-property.(po |
| 6ac60 | 69 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 72 65 73 70 6f | int).'gptel).............('respo |
| 6ac80 | 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f | nse..............(when-let*.((co |
| 6aca0 | 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 | ntent.(gptel--trim-prefixes..... |
| 6acc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 6ace0 | 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 | buffer-substring-no-properties.( |
| 6ad00 | 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | point).prev-pt)))).............. |
| 6ad20 | 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 | ..(push.(list.:role."model".:par |
| 6ad40 | 74 73 20 28 6c 69 73 74 20 3a 74 65 78 74 20 63 6f 6e 74 65 6e 74 29 29 20 70 72 6f 6d 70 74 73 | ts.(list.:text.content)).prompts |
| 6ad60 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 5f 69 64 29 0a | ))).............(`(tool...,_id). |
| 6ad80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 | .............(save-excursion.... |
| 6ada0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a | ............(condition-case.nil. |
| 6adc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d | ...................(let*.((tool- |
| 6ade0 | 63 61 6c 6c 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 | call.(read.(current-buffer)))... |
| 6ae00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 | ........................(name.(p |
| 6ae20 | 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 | list-get.tool-call.:name))...... |
| 6ae40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 | .....................(arguments. |
| 6ae60 | 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 0a 20 | .(plist-get.tool-call.:args))).. |
| 6ae80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 | ....................(plist-put.t |
| 6aea0 | 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-call.:result................ |
| 6aec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 | .................(string-trim.(b |
| 6aee0 | 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 | uffer-substring-no-properties... |
| 6af00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6af20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 | ............(point).prev-pt))).. |
| 6af40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 74 65 6c | ....................(push.(gptel |
| 6af60 | 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 | --parse-tool-results.backend.(li |
| 6af80 | 73 74 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st.tool-call)).................. |
| 6afa0 | 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........prompts).............. |
| 6afc0 | 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c | ........(push.(list.:role."model |
| 6afe0 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "............................... |
| 6b000 | 20 20 20 3a 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:parts....................... |
| 6b020 | 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 20 60 28 3a 66 75 6e 63 74 69 6f 6e 43 61 | ...........(vector.`(:functionCa |
| 6b040 | 6c 6c 20 28 20 3a 6e 61 6d 65 20 2c 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll.(.:name.,name................ |
| 6b060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6b080 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 2c 61 72 67 75 6d 65 6e 74 73 29 29 29 29 | ............:args.,arguments)))) |
| 6b0a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d | ............................prom |
| 6b0c0 | 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d | pts))..................((end-of- |
| 6b0e0 | 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 61 64 2d 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 | file.invalid-read-syntax)....... |
| 6b100 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 66 6f 72 6d 61 74 20 22 43 6f | ............(message.(format."Co |
| 6b120 | 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 6f 6f 6c 2d 63 61 6c 6c 20 6f 6e 20 6c 69 6e 65 20 | uld.not.parse.tool-call.on.line. |
| 6b140 | 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | %s"............................. |
| 6b160 | 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e | .......(line-number-at-pos.(poin |
| 6b180 | 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 69 67 6e 6f 72 65 29 0a | t)))))))).............('ignore). |
| 6b1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ............('nil..............( |
| 6b1c0 | 69 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 | if.gptel-track-media............ |
| 6b1e0 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 | ......(when-let*.((content.(gpte |
| 6b200 | 6c 2d 2d 67 65 6d 69 6e 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 0a 20 20 20 20 20 20 | l--gemini-parse-multipart....... |
| 6b220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6b240 | 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b 73 20 6d 61 6a 6f 72 | .(gptel--parse-media-links.major |
| 6b260 | 2d 6d 6f 64 65 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 | -mode.(point).prev-pt))))....... |
| 6b280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f | .............(when.(>.(length.co |
| 6b2a0 | 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ntent).0)......................( |
| 6b2c0 | 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 70 61 72 74 73 20 63 | push.(list.:role."user".:parts.c |
| 6b2e0 | 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontent).prompts))).............. |
| 6b300 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 | ..(when-let*.((content.(gptel--t |
| 6b320 | 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rim-prefixes.................... |
| 6b340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | ..................(buffer-substr |
| 6b360 | 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-no-properties............... |
| 6b380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 | ........................(point). |
| 6b3a0 | 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | prev-pt))))..................(pu |
| 6b3c0 | 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 70 61 72 74 73 20 60 5b 28 | sh.(list.:role."user".:parts.`[( |
| 6b3e0 | 3a 74 65 78 74 20 2c 63 6f 6e 74 65 6e 74 29 5d 29 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 20 | :text.,content)]).prompts))))).. |
| 6b400 | 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 0a | .........(setq.prev-pt.(point)). |
| 6b420 | 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 | ..........(and.max-entries.(cl-d |
| 6b440 | 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 | ecf.max-entries))).......(let.(( |
| 6b460 | 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 | content.(string-trim.(buffer-sub |
| 6b480 | 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 | string-no-properties............ |
| 6b4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d | ........................(point-m |
| 6b4c0 | 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 | in).(point-max))))).........(pus |
| 6b4e0 | 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 70 61 72 74 73 20 60 5b 28 3a | h.(list.:role."user".:parts.`[(: |
| 6b500 | 74 65 78 74 20 2c 63 6f 6e 74 65 6e 74 29 5d 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 | text.,content)]).prompts)))..... |
| 6b520 | 70 72 6f 6d 70 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d | prompts))..(defun.gptel--gemini- |
| 6b540 | 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 20 22 43 6f 6e 76 65 | parse-multipart.(parts)..."Conve |
| 6b560 | 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 74 | rt.a.multipart.prompt.PARTS.to.t |
| 6b580 | 68 65 20 47 65 6d 69 6e 69 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 65 20 69 6e 70 75 74 | he.Gemini.API.format...The.input |
| 6b5a0 | 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 | .is.an.alist.of.the.form..((:tex |
| 6b5c0 | 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 61 | t.\"some.text\")...(:media.\"/pa |
| 6b5e0 | 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f | th/to/media.png\".:mime.\"image/ |
| 6b600 | 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 2e | png\")...(:text.\"More.text\")). |
| 6b620 | 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 65 6e 74 72 | ..The.output.is.a.vector.of.entr |
| 6b640 | 69 65 73 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 | ies.in.a.backend-appropriate.for |
| 6b660 | 6d 61 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 | mat."...(cl-loop....for.part.in. |
| 6b680 | 70 61 72 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 | parts....for.n.upfrom.1....with. |
| 6b6a0 | 6c 61 73 74 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 74 73 29 0a 20 20 20 66 6f 72 20 74 65 78 | last.=.(length.parts)....for.tex |
| 6b6c0 | 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f | t.=.(plist-get.part.:text)....fo |
| 6b6e0 | 72 20 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 | r.media.=.(plist-get.part.:media |
| 6b700 | 29 0a 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e | )....if.text.do....(and.(or.(=.n |
| 6b720 | 20 31 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 | .1).(=.n.last)).(setq.text.(gpte |
| 6b740 | 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 20 | l--trim-prefixes.text))).and.... |
| 6b760 | 69 66 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 74 65 78 74 20 74 | if.text....collect.(list.:text.t |
| 6b780 | 65 78 74 29 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 20 65 6e 64 0a 20 20 20 65 6c 73 | ext).into.parts-array.end....els |
| 6b7a0 | 65 20 69 66 20 6d 65 64 69 61 0a 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 69 6e 6c 69 | e.if.media....collect....`(:inli |
| 6b7c0 | 6e 65 5f 64 61 74 61 0a 20 20 20 20 20 28 3a 6d 69 6d 65 5f 74 79 70 65 20 2c 28 70 6c 69 73 74 | ne_data......(:mime_type.,(plist |
| 6b7e0 | 2d 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 0a 20 20 20 20 20 20 3a 64 61 74 61 20 2c 28 67 | -get.part.:mime).......:data.,(g |
| 6b800 | 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 29 0a 20 20 20 | ptel--base64-encode.media))).... |
| 6b820 | 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 65 6c 73 65 20 69 66 20 28 70 6c 69 | into.parts-array....else.if.(pli |
| 6b840 | 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 0a 20 20 20 63 6f 6c 6c 65 63 | st-get.part.:textfile)....collec |
| 6b860 | 74 0a 20 20 20 28 6c 69 73 74 20 3a 74 65 78 74 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 | t....(list.:text.(with-temp-buff |
| 6b880 | 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 | er..................(gptel--inse |
| 6b8a0 | 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a | rt-file-string.(plist-get.part.: |
| 6b8c0 | 74 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 | textfile))..................(buf |
| 6b8e0 | 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 | fer-string)))....into.parts-arra |
| 6b900 | 79 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 28 76 63 6f 6e 63 61 74 20 70 61 72 | y....finally.return.(vconcat.par |
| 6b920 | 74 73 2d 61 72 72 61 79 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c | ts-array)))..(cl-defmethod.gptel |
| 6b940 | 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 | --wrap-user-prompt.((_backend.gp |
| 6b960 | 74 65 6c 2d 67 65 6d 69 6e 69 29 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel-gemini).prompts............. |
| 6b980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 | ...........................&opti |
| 6b9a0 | 6f 6e 61 6c 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c | onal.inject-media)..."Wrap.the.l |
| 6b9c0 | 61 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 | ast.user.prompt.in.PROMPTS.with. |
| 6b9e0 | 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 2e 0a 0a 49 66 20 49 4e 4a 45 43 54 2d 4d | the.context.string...If.INJECT-M |
| 6ba00 | 45 44 49 41 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 77 72 61 70 20 69 74 20 77 69 74 68 20 62 61 73 | EDIA.is.non-nil.wrap.it.with.bas |
| 6ba20 | 65 36 34 2d 65 6e 63 6f 64 65 64 20 6d 65 64 69 61 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 | e64-encoded.media.files.in.the.c |
| 6ba40 | 6f 6e 74 65 78 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 | ontext."...(if.inject-media..... |
| 6ba60 | 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 | ..;;.Wrap.the.first.user.prompt. |
| 6ba80 | 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 6d 65 64 69 61 20 66 69 6c 65 73 2f 63 6f 6e 74 65 78 | with.included.media.files/contex |
| 6baa0 | 74 73 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 | ts.......(when-let*.((media-list |
| 6bac0 | 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 | .(gptel-context--collect-media)) |
| 6bae0 | 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 | ).........(cl-callf.(lambda.(cur |
| 6bb00 | 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 | rent).....................(vconc |
| 6bb20 | 61 74 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 | at.(gptel--gemini-parse-multipar |
| 6bb40 | 74 20 6d 65 64 69 61 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.media-list)................... |
| 6bb60 | 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........current))............ |
| 6bb80 | 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 20 3a 70 61 72 74 73 | .(plist-get.(car.prompts).:parts |
| 6bba0 | 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 72 | ))).....;;.Wrap.the.last.user.pr |
| 6bbc0 | 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 74 65 78 74 20 63 6f 6e 74 65 78 74 73 | ompt.with.included.text.contexts |
| 6bbe0 | 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 29 | .....(cl-callf.(lambda.(current) |
| 6bc00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 77 72 61 70 | .................(if-let*.((wrap |
| 6bc20 | 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a | ped.(gptel-context--wrap.nil))). |
| 6bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 60 28 28 | ....................(vconcat.`(( |
| 6bc60 | 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 29 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 | :text.,wrapped)).current)....... |
| 6bc80 | 20 20 20 20 20 20 20 20 20 20 20 20 63 75 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 70 | ............current)).........(p |
| 6bca0 | 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 70 | list-get.(car.(last.prompts)).:p |
| 6bcc0 | 61 72 74 73 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 65 6d 69 6e | arts))))..(defconst.gptel--gemin |
| 6bce0 | 69 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 28 67 65 6d 69 6e 69 2d 31 2e 35 2d 70 72 6f 2d 6c 61 74 | i-models...'((gemini-1.5-pro-lat |
| 6bd00 | 65 73 74 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 6f 6f 67 6c 65 27 73 20 | est......:description."Google's. |
| 6bd20 | 6c 61 74 65 73 74 20 6d 6f 64 65 6c 20 77 69 74 68 20 65 6e 68 61 6e 63 65 64 20 63 61 70 61 62 | latest.model.with.enhanced.capab |
| 6bd40 | 69 6c 69 74 69 65 73 20 61 63 72 6f 73 73 20 76 61 72 69 6f 75 73 20 74 61 73 6b 73 22 0a 20 20 | ilities.across.various.tasks"... |
| 6bd60 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 | ...:capabilities.(tool-use.json. |
| 6bd80 | 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f | media)......:mime-types.("image/ |
| 6bda0 | 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 | png"."image/jpeg"."image/webp"." |
| 6bdc0 | 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 | image/heic"."image/heif"........ |
| 6bde0 | 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 | ..........."application/pdf"."te |
| 6be00 | 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 | xt/plain"."text/csv"."text/html" |
| 6be20 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 30 0a 20 20 20 20 | )......:context-window.2000..... |
| 6be40 | 20 3b 3b 20 69 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 20 69 73 20 68 61 6c 76 | .;;.input.&.output.price.is.halv |
| 6be60 | 65 64 20 66 6f 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 6f 6b 65 6e 73 20 6f 72 | ed.for.prompts.of.128k.tokens.or |
| 6be80 | 20 6c 65 73 73 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 35 30 0a 20 20 20 20 | .less......:input-cost.2.50..... |
| 6bea0 | 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 | .:output-cost.10......:cutoff-da |
| 6bec0 | 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c | te."2024-05").....(gemini-2.0-fl |
| 6bee0 | 61 73 68 2d 65 78 70 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 | ash-exp......:description."Next. |
| 6bf00 | 67 65 6e 65 72 61 74 69 6f 6e 20 66 65 61 74 75 72 65 73 2c 20 73 75 70 65 72 69 6f 72 20 73 70 | generation.features,.superior.sp |
| 6bf20 | 65 65 64 2c 20 6e 61 74 69 76 65 20 74 6f 6f 6c 20 75 73 65 22 0a 20 20 20 20 20 3a 63 61 70 61 | eed,.native.tool.use"......:capa |
| 6bf40 | 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 | bilities.(tool-use.json.media).. |
| 6bf60 | 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d | ....:mime-types.("image/png"."im |
| 6bf80 | 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 | age/jpeg"."image/webp"."image/he |
| 6bfa0 | 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ic"."image/heif"................ |
| 6bfc0 | 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e | ..."application/pdf"."text/plain |
| 6bfe0 | 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a | "."text/csv"."text/html")......: |
| 6c000 | 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 | context-window.1000......:cutoff |
| 6c020 | 2d 64 61 74 65 20 22 32 30 32 34 2d 31 32 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 | -date."2024-12").....(gemini-1.5 |
| 6c040 | 2d 66 6c 61 73 68 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 20 66 61 73 74 | -flash......:description."A.fast |
| 6c060 | 65 72 2c 20 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 47 65 | er,.more.efficient.version.of.Ge |
| 6c080 | 6d 69 6e 69 20 31 2e 35 20 6f 70 74 69 6d 69 7a 65 64 20 66 6f 72 20 73 70 65 65 64 22 0a 20 20 | mini.1.5.optimized.for.speed"... |
| 6c0a0 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 | ...:capabilities.(tool-use.json. |
| 6c0c0 | 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f | media)......:mime-types.("image/ |
| 6c0e0 | 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 | png"."image/jpeg"."image/webp"." |
| 6c100 | 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 | image/heic"."image/heif"........ |
| 6c120 | 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 | ..........."application/pdf"."te |
| 6c140 | 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 | xt/plain"."text/csv"."text/html" |
| 6c160 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 | )......:context-window.1000..... |
| 6c180 | 20 3b 3b 20 69 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 20 69 73 20 68 61 6c 76 | .;;.input.&.output.price.is.halv |
| 6c1a0 | 65 64 20 66 6f 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 6f 6b 65 6e 73 20 6f 72 | ed.for.prompts.of.128k.tokens.or |
| 6c1c0 | 20 6c 65 73 73 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 | .less......:input-cost.0.15..... |
| 6c1e0 | 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d | .:output-cost.0.60......:cutoff- |
| 6c200 | 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 2d | date."2024-05").....(gemini-1.5- |
| 6c220 | 66 6c 61 73 68 2d 38 62 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 | flash-8b......:description."High |
| 6c240 | 20 76 6f 6c 75 6d 65 20 61 6e 64 20 6c 6f 77 65 72 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 74 | .volume.and.lower.intelligence.t |
| 6c260 | 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 | asks"......:capabilities.(tool-u |
| 6c280 | 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | se.json.media)......:context-win |
| 6c2a0 | 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | dow.1000......:mime-types.("imag |
| 6c2c0 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | e/png"."image/jpeg"."image/webp" |
| 6c2e0 | 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 | ."image/heic"."image/heif"...... |
| 6c300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 | ............."application/pdf"." |
| 6c320 | 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d | text/plain"."text/csv"."text/htm |
| 6c340 | 6c 22 29 0a 20 20 20 20 20 3b 3b 20 69 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 | l")......;;.input.&.output.price |
| 6c360 | 20 69 73 20 68 61 6c 76 65 64 20 66 6f 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 | .is.halved.for.prompts.of.128k.t |
| 6c380 | 6f 6b 65 6e 73 20 6f 72 20 6c 65 73 73 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 | okens.or.less......:input-cost.0 |
| 6c3a0 | 2e 30 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 33 30 0a 20 20 20 20 | .075......:output-cost.0.30..... |
| 6c3c0 | 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 31 30 22 29 0a 20 20 20 20 28 67 65 | .:cutoff-date."2024-10").....(ge |
| 6c3e0 | 6d 69 6e 69 2d 65 78 70 2d 31 32 30 36 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | mini-exp-1206......:description. |
| 6c400 | 22 49 6d 70 72 6f 76 65 64 20 63 6f 64 69 6e 67 2c 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 | "Improved.coding,.reasoning.and. |
| 6c420 | 76 69 73 69 6f 6e 20 63 61 70 61 62 69 6c 69 74 69 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 | vision.capabilities"......:capab |
| 6c440 | 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 | ilities.(tool-use.json.media)... |
| 6c460 | 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 | ...:mime-types.("image/png"."ima |
| 6c480 | 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 | ge/jpeg"."image/webp"."image/hei |
| 6c4a0 | 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | c"."image/heif"................. |
| 6c4c0 | 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 | .."application/pdf"."text/plain" |
| 6c4e0 | 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 | ."text/csv"."text/html")......:c |
| 6c500 | 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 31 32 22 29 0a 20 20 20 20 28 67 65 6d 69 6e | utoff-date."2024-12").....(gemin |
| 6c520 | 69 2d 32 2e 30 2d 66 6c 61 73 68 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e | i-2.0-flash......:description."N |
| 6c540 | 65 78 74 20 67 65 6e 2c 20 68 69 67 68 20 73 70 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 | ext.gen,.high.speed,.multimodal. |
| 6c560 | 66 6f 72 20 61 20 64 69 76 65 72 73 65 20 76 61 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a | for.a.diverse.variety.of.tasks". |
| 6c580 | 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f | .....:capabilities.(tool-use.jso |
| 6c5a0 | 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | n.media)......:mime-types.("imag |
| 6c5c0 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | e/png"."image/jpeg"."image/webp" |
| 6c5e0 | 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 | ."image/heic"."image/heif"...... |
| 6c600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 | ............."application/pdf"." |
| 6c620 | 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d | text/plain"."text/csv"."text/htm |
| 6c640 | 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 | l")......:context-window.1000... |
| 6c660 | 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 | ...:input-cost.0.10......:output |
| 6c680 | 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 | -cost.0.40......:cutoff-date."20 |
| 6c6a0 | 32 34 2d 30 38 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 6c 69 | 24-08").....(gemini-2.0-flash-li |
| 6c6c0 | 74 65 2d 70 72 65 76 69 65 77 2d 30 32 2d 30 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 | te-preview-02-05......:descripti |
| 6c6e0 | 6f 6e 20 22 47 65 6d 69 6e 69 20 32 2e 30 20 46 6c 61 73 68 20 6d 6f 64 65 6c 20 6f 70 74 69 6d | on."Gemini.2.0.Flash.model.optim |
| 6c700 | 69 7a 65 64 20 66 6f 72 20 63 6f 73 74 20 65 66 66 69 63 69 65 6e 63 79 20 61 6e 64 20 6c 6f 77 | ized.for.cost.efficiency.and.low |
| 6c720 | 20 6c 61 74 65 6e 63 79 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6a 73 | .latency"......:capabilities.(js |
| 6c740 | 6f 6e 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 | on)......:context-window.1000... |
| 6c760 | 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 | ...:input-cost.0.075......:outpu |
| 6c780 | 74 2d 63 6f 73 74 20 30 2e 33 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 | t-cost.0.30......:cutoff-date."2 |
| 6c7a0 | 30 32 34 2d 30 38 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 70 72 6f 2d 65 78 70 | 024-08").....(gemini-2.0-pro-exp |
| 6c7c0 | 2d 30 32 2d 30 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 67 | -02-05......:description."Next.g |
| 6c7e0 | 65 6e 2c 20 68 69 67 68 20 73 70 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 6f 72 20 61 | en,.high.speed,.multimodal.for.a |
| 6c800 | 20 64 69 76 65 72 73 65 20 76 61 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 20 20 20 20 | .diverse.variety.of.tasks"...... |
| 6c820 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 29 0a 20 20 | :capabilities.(tool-use.json)... |
| 6c840 | 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 30 0a 20 20 20 20 20 3a 69 6e | ...:context-window.2000......:in |
| 6c860 | 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 | put-cost.0.00......:output-cost. |
| 6c880 | 30 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 22 | 0.00......:cutoff-date."2024-08" |
| 6c8a0 | 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e 6b 69 6e 67 | ).....(gemini-2.0-flash-thinking |
| 6c8c0 | 2d 65 78 70 2d 30 31 2d 32 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 | -exp-01-21......:description."Ne |
| 6c8e0 | 78 74 20 67 65 6e 2c 20 68 69 67 68 20 73 70 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 | xt.gen,.high.speed,.multimodal.f |
| 6c900 | 6f 72 20 61 20 64 69 76 65 72 73 65 20 76 61 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 | or.a.diverse.variety.of.tasks".. |
| 6c920 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6a 73 6f 6e 29 0a 20 20 20 20 20 3a 69 | ....:capabilities.(json)......:i |
| 6c940 | 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | nput-cost.0.00......:output-cost |
| 6c960 | 20 30 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 | .0.00......:cutoff-date."2024-08 |
| 6c980 | 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 65 78 70 0a 20 20 20 | ").....(gemini-2.0-flash-exp.... |
| 6c9a0 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 75 6c 74 69 2d 6d 6f 64 61 6c 2c 20 73 74 72 | ..:description."Multi-modal,.str |
| 6c9c0 | 65 61 6d 69 6e 67 2c 20 74 6f 6f 6c 20 75 73 65 20 32 30 30 30 20 52 50 4d 22 0a 20 20 20 20 20 | eaming,.tool.use.2000.RPM"...... |
| 6c9e0 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 | :capabilities.(tool-use.json.med |
| 6ca00 | 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 | ia)......:mime-types.("image/png |
| 6ca20 | 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 | "."image/jpeg"."image/webp"."ima |
| 6ca40 | 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 | ge/heic"."image/heif"........... |
| 6ca60 | 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f | ........"application/pdf"."text/ |
| 6ca80 | 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 | plain"."text/csv"."text/html").. |
| 6caa0 | 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 69 | ....:context-window.1000......:i |
| 6cac0 | 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | nput-cost.0.00......:output-cost |
| 6cae0 | 20 30 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 | .0.00......:cutoff-date."2024-08 |
| 6cb00 | 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 65 78 70 2d 30 33 2d 32 35 | ").....(gemini-2.5-pro-exp-03-25 |
| 6cb20 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4c 69 6b 65 20 67 65 6d 69 6e 69 2d | ......:description."Like.gemini- |
| 6cb40 | 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 33 2d 32 35 20 62 75 74 20 6c 69 6d 69 74 65 | 2.5-pro-preview-03-25.but.limite |
| 6cb60 | 64 20 74 6f 20 35 20 72 65 71 2f 6d 69 6e 2c 20 32 35 20 72 65 71 2f 64 61 79 22 0a 20 20 20 20 | d.to.5.req/min,.25.req/day"..... |
| 6cb80 | 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 | .:capabilities.(tool-use.json.me |
| 6cba0 | 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e | dia)......:mime-types.("image/pn |
| 6cbc0 | 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d | g"."image/jpeg"."image/webp"."im |
| 6cbe0 | 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 | age/heic"."image/heif".......... |
| 6cc00 | 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 | ........."application/pdf"."text |
| 6cc20 | 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a | /plain"."text/csv"."text/html"). |
| 6cc40 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a | .....:context-window.1000......: |
| 6cc60 | 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 | input-cost.0.00......:output-cos |
| 6cc80 | 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 | t.0.00......:cutoff-date."2025-0 |
| 6cca0 | 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d | 1").....(gemini-2.5-pro-preview- |
| 6ccc0 | 30 33 2d 32 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 45 6e 68 61 6e 63 65 | 03-25......:description."Enhance |
| 6cce0 | 64 20 72 65 61 73 6f 6e 69 6e 67 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 75 6e 64 65 72 73 74 61 | d.reasoning,.multimodal.understa |
| 6cd00 | 6e 64 69 6e 67 20 26 20 61 64 76 61 6e 63 65 64 20 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 | nding.&.advanced.coding"......:c |
| 6cd20 | 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 | apabilities.(tool-use.json.media |
| 6cd40 | 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 | )......:mime-types.("image/png". |
| 6cd60 | 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 | "image/jpeg"."image/webp"."image |
| 6cd80 | 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | /heic"."image/heif"............. |
| 6cda0 | 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c | ......"application/pdf"."text/pl |
| 6cdc0 | 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 | ain"."text/csv"."text/html").... |
| 6cde0 | 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 | ..:context-window.1000......:inp |
| 6ce00 | 75 74 2d 63 6f 73 74 20 31 2e 32 35 20 3b 20 32 2e 35 30 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f | ut-cost.1.25.;.2.50.for.>200k.to |
| 6ce20 | 6b 65 6e 73 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 2e 30 30 20 3b 20 31 | kens......:output-cost.10.00.;.1 |
| 6ce40 | 35 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d | 5.for.>200k.tokens......:cutoff- |
| 6ce60 | 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d | date."2025-01").....(gemini-2.5- |
| 6ce80 | 66 6c 61 73 68 2d 70 72 65 76 69 65 77 2d 30 34 2d 31 37 0a 20 20 20 20 20 3a 64 65 73 63 72 69 | flash-preview-04-17......:descri |
| 6cea0 | 70 74 69 6f 6e 20 22 42 65 73 74 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 20 69 6e 20 74 65 72 6d | ption."Best.Gemini.model.in.term |
| 6cec0 | 73 20 6f 66 20 70 72 69 63 65 2d 70 65 72 66 6f 72 6d 61 6e 63 65 2c 20 6f 66 66 65 72 69 6e 67 | s.of.price-performance,.offering |
| 6cee0 | 20 77 65 6c 6c 2d 72 6f 75 6e 64 65 64 20 63 61 70 61 62 69 6c 69 74 69 65 73 22 0a 20 20 20 20 | .well-rounded.capabilities"..... |
| 6cf00 | 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 | .:capabilities.(tool-use.json.me |
| 6cf20 | 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e | dia)......:mime-types.("image/pn |
| 6cf40 | 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d | g"."image/jpeg"."image/webp"."im |
| 6cf60 | 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 | age/heic"."image/heif".......... |
| 6cf80 | 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 | ........."application/pdf"."text |
| 6cfa0 | 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a | /plain"."text/csv"."text/html"). |
| 6cfc0 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a | .....:context-window.1000......: |
| 6cfe0 | 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 | input-cost.0.15......:output-cos |
| 6d000 | 74 20 30 2e 36 30 20 3b 20 33 2e 35 30 20 66 6f 72 20 74 68 69 6e 6b 69 6e 67 0a 20 20 20 20 20 | t.0.60.;.3.50.for.thinking...... |
| 6d020 | 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d | :cutoff-date."2025-01").....(gem |
| 6d040 | 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 2d 70 72 65 76 69 65 77 2d 30 35 2d 32 30 0a 20 20 20 20 | ini-2.5-flash-preview-05-20..... |
| 6d060 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 42 65 73 74 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c | .:description."Best.Gemini.model |
| 6d080 | 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 70 72 69 63 65 2d 70 65 72 66 6f 72 6d 61 6e 63 65 2c 20 | .in.terms.of.price-performance,. |
| 6d0a0 | 6f 66 66 65 72 69 6e 67 20 77 65 6c 6c 2d 72 6f 75 6e 64 65 64 20 63 61 70 61 62 69 6c 69 74 69 | offering.well-rounded.capabiliti |
| 6d0c0 | 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 | es"......:capabilities.(tool-use |
| 6d0e0 | 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 | .json.media)......:mime-types.(" |
| 6d100 | 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 | image/png"."image/jpeg"."image/w |
| 6d120 | 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 | ebp"."image/heic"."image/heif".. |
| 6d140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 | ................."application/pd |
| 6d160 | 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 | f"."text/plain"."text/csv"."text |
| 6d180 | 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 34 | /html")......:context-window.104 |
| 6d1a0 | 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 | 8.;.65536.output.token.limit.... |
| 6d1c0 | 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d | ..:input-cost.0.15......:output- |
| 6d1e0 | 63 6f 73 74 20 30 2e 36 30 20 3b 20 33 2e 35 30 20 66 6f 72 20 74 68 69 6e 6b 69 6e 67 0a 20 20 | cost.0.60.;.3.50.for.thinking... |
| 6d200 | 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 | ...:cutoff-date."2025-01").....( |
| 6d220 | 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 35 2d 30 36 0a 20 20 20 | gemini-2.5-pro-preview-05-06.... |
| 6d240 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 72 65 76 69 6f 75 73 6c 79 20 74 68 65 20 6d | ..:description."Previously.the.m |
| 6d260 | 6f 73 74 20 70 6f 77 65 72 66 75 6c 20 47 65 6d 69 6e 69 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 | ost.powerful.Gemini.thinking.mod |
| 6d280 | 65 6c 20 77 69 74 68 20 73 74 61 74 65 2d 6f 66 2d 74 68 65 2d 61 72 74 20 70 65 72 66 6f 72 6d | el.with.state-of-the-art.perform |
| 6d2a0 | 61 6e 63 65 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 | ance"......:capabilities.(tool-u |
| 6d2c0 | 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 | se.json.media)......:mime-types. |
| 6d2e0 | 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 | ("image/png"."image/jpeg"."image |
| 6d300 | 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 | /webp"."image/heic"."image/heif" |
| 6d320 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f | ..................."application/ |
| 6d340 | 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 | pdf"."text/plain"."text/csv"."te |
| 6d360 | 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 | xt/html")......:context-window.1 |
| 6d380 | 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 | 048.;.65536.output.token.limit.. |
| 6d3a0 | 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e 32 35 20 3b 20 32 2e 35 30 20 66 6f 72 20 | ....:input-cost.1.25.;.2.50.for. |
| 6d3c0 | 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 | >200k.tokens......:output-cost.1 |
| 6d3e0 | 30 2e 30 30 20 3b 20 31 35 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 | 0.00.;.15.for.>200k.tokens...... |
| 6d400 | 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d | :cutoff-date."2025-01").....(gem |
| 6d420 | 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 36 2d 30 35 0a 20 20 20 20 20 3a | ini-2.5-pro-preview-06-05......: |
| 6d440 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 70 6f 77 65 72 66 75 6c 20 47 65 6d 69 6e | description."Most.powerful.Gemin |
| 6d460 | 69 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 6c 20 77 69 74 68 20 73 74 61 74 65 2d 6f 66 2d 74 | i.thinking.model.with.state-of-t |
| 6d480 | 68 65 2d 61 72 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 | he-art.performance"......:capabi |
| 6d4a0 | 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 | lities.(tool-use.json.media).... |
| 6d4c0 | 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 | ..:mime-types.("image/png"."imag |
| 6d4e0 | 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 | e/jpeg"."image/webp"."image/heic |
| 6d500 | 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "."image/heif".................. |
| 6d520 | 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 | ."application/pdf"."text/plain". |
| 6d540 | 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f | "text/csv"."text/html")......:co |
| 6d560 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 | ntext-window.1048.;.65536.output |
| 6d580 | 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e | .token.limit......:input-cost.1. |
| 6d5a0 | 32 35 20 3b 20 32 2e 35 30 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 | 25.;.2.50.for.>200k.tokens...... |
| 6d5c0 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 2e 30 30 20 3b 20 31 35 20 66 6f 72 20 3e 32 30 30 | :output-cost.10.00.;.15.for.>200 |
| 6d5e0 | 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 | k.tokens......:cutoff-date."2025 |
| 6d600 | 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e | -01").....(gemini-2.0-flash-thin |
| 6d620 | 6b 69 6e 67 2d 65 78 70 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 45 50 52 | king-exp......:description."DEPR |
| 6d640 | 45 43 41 54 45 44 3a 20 50 6c 65 61 73 65 20 75 73 65 20 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c | ECATED:.Please.use.gemini-2.0-fl |
| 6d660 | 61 73 68 2d 74 68 69 6e 6b 69 6e 67 2d 65 78 70 2d 30 31 2d 32 31 20 69 6e 73 74 65 61 64 2e 22 | ash-thinking-exp-01-21.instead." |
| 6d680 | 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6d 65 | ......:capabilities.(tool-use.me |
| 6d6a0 | 64 69 61 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 33 32 0a 20 20 20 | dia)......:context-window.32.... |
| 6d6c0 | 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 | ..:mime-types.("image/png"."imag |
| 6d6e0 | 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 | e/jpeg"."image/webp"."image/heic |
| 6d700 | 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "."image/heif".................. |
| 6d720 | 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 | ."text/plain"."text/csv"."text/h |
| 6d740 | 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 | tml")......:cutoff-date."2024-08 |
| 6d760 | 22 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 47 65 6d 69 6e 69 20 | "))..."List.of.available.Gemini. |
| 6d780 | 6d 6f 64 65 6c 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 70 72 6f 70 65 72 74 69 65 73 | models.and.associated.properties |
| 6d7a0 | 2e 0a 4b 65 79 73 3a 0a 0a 2d 20 60 3a 64 65 73 63 72 69 70 74 69 6f 6e 27 3a 20 61 20 62 72 69 | ..Keys:..-.`:description':.a.bri |
| 6d7c0 | 65 66 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 | ef.description.of.the.model...-. |
| 6d7e0 | 60 3a 63 61 70 61 62 69 6c 69 74 69 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 63 61 70 61 62 | `:capabilities':.a.list.of.capab |
| 6d800 | 69 6c 69 74 69 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 6d 6f 64 65 6c 2e 0a | ilities.supported.by.the.model.. |
| 6d820 | 0a 2d 20 60 3a 6d 69 6d 65 2d 74 79 70 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 70 | .-.`:mime-types':.a.list.of.supp |
| 6d840 | 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 73 20 66 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 73 | orted.MIME.types.for.media.files |
| 6d860 | 2e 0a 0a 2d 20 60 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 27 3a 20 74 68 65 20 63 6f 6e 74 | ...-.`:context-window':.the.cont |
| 6d880 | 65 78 74 20 77 69 6e 64 6f 77 20 73 69 7a 65 2c 20 69 6e 20 74 68 6f 75 73 61 6e 64 73 20 6f 66 | ext.window.size,.in.thousands.of |
| 6d8a0 | 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 69 6e 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 69 | .tokens...-.`:input-cost':.the.i |
| 6d8c0 | 6e 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f 6c 6c 61 72 73 20 70 65 72 20 6d 69 6c | nput.cost,.in.US.dollars.per.mil |
| 6d8e0 | 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 6f 75 74 70 75 74 2d 63 6f 73 74 27 3a 20 | lion.tokens...-.`:output-cost':. |
| 6d900 | 74 68 65 20 6f 75 74 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f 6c 6c 61 72 73 20 70 | the.output.cost,.in.US.dollars.p |
| 6d920 | 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 63 75 74 6f 66 66 2d 64 | er.million.tokens...-.`:cutoff-d |
| 6d940 | 61 74 65 27 3a 20 74 68 65 20 6b 6e 6f 77 6c 65 64 67 65 20 63 75 74 6f 66 66 20 64 61 74 65 2e | ate':.the.knowledge.cutoff.date. |
| 6d960 | 0a 0a 2d 20 60 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 27 3a 20 61 20 70 6c 69 73 74 20 6f | ..-.`:request-params':.a.plist.o |
| 6d980 | 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 65 74 65 72 73 20 | f.additional.request.parameters. |
| 6d9a0 | 74 6f 0a 20 20 69 6e 63 6c 75 64 65 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 6d 6f 64 | to...include.when.using.this.mod |
| 6d9c0 | 65 6c 2e 0a 0a 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 47 65 6d 69 6e | el...Information.about.the.Gemin |
| 6d9e0 | 69 20 6d 6f 64 65 6c 73 20 77 61 73 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 66 | i.models.was.obtained.from.the.f |
| 6da00 | 6f 6c 6c 6f 77 69 6e 67 0a 73 6f 75 72 63 65 3a 0a 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 61 69 2e | ollowing.source:..-.<https://ai. |
| 6da20 | 67 6f 6f 67 6c 65 2e 64 65 76 2f 70 72 69 63 69 6e 67 3e 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 63 | google.dev/pricing>.-.<https://c |
| 6da40 | 6c 6f 75 64 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 76 65 72 74 65 78 2d 61 69 2f 67 65 6e 65 72 61 | loud.google.com/vertex-ai/genera |
| 6da60 | 74 69 76 65 2d 61 69 2f 64 6f 63 73 2f 6c 65 61 72 6e 2f 6d 6f 64 65 6c 73 3e 0a 2d 20 3c 68 74 | tive-ai/docs/learn/models>.-.<ht |
| 6da80 | 74 70 73 3a 2f 2f 61 69 2e 67 6f 6f 67 6c 65 2e 64 65 76 2f 67 65 6d 69 6e 69 2d 61 70 69 2f 64 | tps://ai.google.dev/gemini-api/d |
| 6daa0 | 6f 63 73 2f 6d 6f 64 65 6c 73 3e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 | ocs/models>")..;;;###autoload.(c |
| 6dac0 | 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 0a 20 20 20 20 28 6e | l-defun.gptel-make-gemini.....(n |
| 6dae0 | 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 68 65 61 64 65 72 20 6b 65 79 20 72 65 | ame.&key.curl-args.header.key.re |
| 6db00 | 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 6e | quest-params...........(stream.n |
| 6db20 | 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 67 65 6e 65 72 61 74 69 76 65 6c | il)...........(host."generativel |
| 6db40 | 61 6e 67 75 61 67 65 2e 67 6f 6f 67 6c 65 61 70 69 73 2e 63 6f 6d 22 29 0a 20 20 20 20 20 20 20 | anguage.googleapis.com")........ |
| 6db60 | 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 | ...(protocol."https")........... |
| 6db80 | 28 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 6d 6f 64 65 6c 73 29 0a 20 20 | (models.gptel--gemini-models)... |
| 6dba0 | 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 62 65 74 61 2f 6d 6f 64 65 6c | ........(endpoint."/v1beta/model |
| 6dbc0 | 73 22 29 29 0a 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 47 65 6d 69 6e 69 20 62 61 63 6b 65 | s"))...."Register.a.Gemini.backe |
| 6dbe0 | 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 | nd.for.gptel.with.NAME...Keyword |
| 6dc00 | 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c | .arguments:..CURL-ARGS.(optional |
| 6dc20 | 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 | ).is.a.list.of.additional.Curl.a |
| 6dc40 | 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 | rguments...HOST.(optional).is.th |
| 6dc60 | 65 20 41 50 49 20 68 6f 73 74 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 67 65 6e 65 72 61 | e.API.host,.defaults.to.\"genera |
| 6dc80 | 74 69 76 65 6c 61 6e 67 75 61 67 65 2e 67 6f 6f 67 6c 65 61 70 69 73 2e 63 6f 6d 5c 22 2e 0a 0a | tivelanguage.googleapis.com\"... |
| 6dca0 | 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f | MODELS.is.a.list.of.available.mo |
| 6dcc0 | 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 64 64 69 74 69 6f 6e 61 | del.names,.as.symbols..Additiona |
| 6dce0 | 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 70 6f 72 74 65 64 20 4c | lly,.you.can.specify.supported.L |
| 6dd00 | 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 69 6f 6e 20 6f 72 20 74 | LM.capabilities.like.vision.or.t |
| 6dd20 | 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 6c 69 73 74 20 74 6f 20 | ool-use.by.appending.a.plist.to. |
| 6dd40 | 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c | the.model.with.more.information, |
| 6dd60 | 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 20 2e 20 70 6c 69 | .in.the.form...(model-name...pli |
| 6dd80 | 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 6c 79 20 72 65 63 | st)..For.a.list.of.currently.rec |
| 6dda0 | 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 2d | ognized.plist.keys,.see.`gptel-- |
| 6ddc0 | 67 65 6d 69 6e 69 2d 6d 6f 64 65 6c 73 27 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 | gemini-models'..An.example.of.a. |
| 6dde0 | 6d 6f 64 65 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 69 6e 67 20 62 6f | model.specification.including.bo |
| 6de00 | 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 63 73 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c 5c 3d 27 | th.kinds.of.specs:..:models.\\=' |
| 6de20 | 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 6c 69 74 65 20 20 20 20 20 20 20 20 20 20 | (gemini-2.0-flash-lite.......... |
| 6de40 | 20 20 20 20 3b 53 69 6d 70 6c 65 20 73 70 65 63 73 0a 20 20 67 65 6d 69 6e 69 2d 31 2e 35 2d 66 | ....;Simple.specs...gemini-1.5-f |
| 6de60 | 6c 61 73 68 0a 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 2d 70 72 6f 2d 6c 61 74 65 73 74 20 20 20 | lash...(gemini-1.5-pro-latest... |
| 6de80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 | .............;Full.spec....:desc |
| 6dea0 | 72 69 70 74 69 6f 6e 0a 20 20 20 5c 22 43 6f 6d 70 6c 65 78 20 72 65 61 73 6f 6e 69 6e 67 20 74 | ription....\"Complex.reasoning.t |
| 6dec0 | 61 73 6b 73 2c 20 70 72 6f 62 6c 65 6d 20 73 6f 6c 76 69 6e 67 20 61 6e 64 20 64 61 74 61 20 65 | asks,.problem.solving.and.data.e |
| 6dee0 | 78 74 72 61 63 74 69 6f 6e 5c 22 0a 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f | xtraction\"....:capabilities.(to |
| 6df00 | 6f 6c 20 6a 73 6f 6e 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 0a 20 20 20 28 5c 22 69 6d | ol.json)....:mime-types....(\"im |
| 6df20 | 61 67 65 2f 6a 70 65 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 20 5c 22 69 6d 61 67 65 | age/jpeg\".\"image/png\".\"image |
| 6df40 | 2f 77 65 62 70 5c 22 20 5c 22 69 6d 61 67 65 2f 68 65 69 63 5c 22 29 29 29 0a 0a 0a 53 54 52 45 | /webp\".\"image/heic\")))...STRE |
| 6df60 | 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 65 6e 61 62 6c 65 20 73 74 72 65 61 6d | AM.is.a.boolean.to.enable.stream |
| 6df80 | 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 | ing.responses,.defaults.to.false |
| 6dfa0 | 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 | ...PROTOCOL.(optional).specifies |
| 6dfc0 | 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 5c 22 68 74 74 70 73 5c 22 20 62 79 20 64 65 66 61 | .the.protocol,.\"https\".by.defa |
| 6dfe0 | 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 | ult...ENDPOINT.(optional).is.the |
| 6e000 | 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 | .API.endpoint.for.completions,.d |
| 6e020 | 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 62 65 74 61 2f 6d 6f 64 65 6c 73 5c 22 2e 0a 0a | efaults.to.\"/v1beta/models\"... |
| 6e040 | 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f | HEADER.(optional).is.for.additio |
| 6e060 | 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 | nal.headers.to.send.with.each.re |
| 6e080 | 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 | quest...It.should.be.an.alist.or |
| 6e0a0 | 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 | .a.function.that.retuns.an.alist |
| 6e0c0 | 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 | ,.like:..((\"Content-Type\"...\" |
| 6e0e0 | 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f | application/json\"))..KEY.(optio |
| 6e100 | 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 | nal).is.a.variable.whose.value.i |
| 6e120 | 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 | s.the.API.key,.or.function.that. |
| 6e140 | 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d 53 | returns.the.key...REQUEST-PARAMS |
| 6e160 | 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 | .(optional).is.a.plist.of.additi |
| 6e180 | 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 65 72 73 20 28 61 73 | onal.HTTP.request.parameters.(as |
| 6e1a0 | 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 74 65 | .plist.keys).and.values.supporte |
| 6e1c0 | 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 74 6f 20 73 65 74 20 | d.by.the.API...Use.these.to.set. |
| 6e1e0 | 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 70 | parameters.that.gptel.does.not.p |
| 6e200 | 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 22 0a 20 20 28 64 65 63 | rovide.user.options.for."...(dec |
| 6e220 | 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e | lare.(indent.1))...(let.((backen |
| 6e240 | 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 0a 20 20 20 20 20 20 20 20 20 20 | d.(gptel--make-gemini........... |
| 6e260 | 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 | ........:curl-args.curl-args.... |
| 6e280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 | ...............:name.name....... |
| 6e2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 | ............:host.host.......... |
| 6e2c0 | 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 | .........:header.header......... |
| 6e2e0 | 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 | ..........:models.(gptel--proces |
| 6e300 | 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s-models.models)................ |
| 6e320 | 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 | ...:protocol.protocol........... |
| 6e340 | 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 | ........:endpoint.endpoint...... |
| 6e360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 | .............:stream.stream..... |
| 6e380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 | ..............:request-params.re |
| 6e3a0 | 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | quest-params...................: |
| 6e3c0 | 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 | key.key...................:url.( |
| 6e3e0 | 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.()....................... |
| 6e400 | 20 20 20 28 6c 65 74 20 28 28 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(let.((method................ |
| 6e420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 72 65 61 6d | .................(if.(and.stream |
| 6e440 | 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 20 20 | .gptel-use-curl.gptel-stream)... |
| 6e460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6e480 | 20 20 22 73 74 72 65 61 6d 47 65 6e 65 72 61 74 65 43 6f 6e 74 65 6e 74 22 0a 20 20 20 20 20 20 | .."streamGenerateContent"....... |
| 6e4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 65 6e | ............................"gen |
| 6e4c0 | 65 72 61 74 65 43 6f 6e 74 65 6e 74 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erateContent")))................ |
| 6e4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 2f 2f 25 73 25 73 2f 25 | ............(format."%s://%s%s/% |
| 6e500 | 73 3a 25 73 3f 6b 65 79 3d 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s:%s?key=%s".................... |
| 6e520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 | ................protocol........ |
| 6e540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 74 | ............................host |
| 6e560 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6e580 | 20 20 20 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....endpoint.................... |
| 6e5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 | ................gptel-model..... |
| 6e5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d | ...............................m |
| 6e5e0 | 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ethod........................... |
| 6e600 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 | .........(gptel--get-api-key)))) |
| 6e620 | 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 | ))).....(prog1.backend.......(se |
| 6e640 | 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d | tf.(alist-get.name.gptel--known- |
| 6e660 | 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backends........................ |
| 6e680 | 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 | nil.nil.#'equal).............bac |
| 6e6a0 | 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 67 65 6d 69 6e 69 | kend))))..(provide.'gptel-gemini |
| 6e6c0 | 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a | ).;;;.gptel-gemini.el.ends.here. |
| 6e6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e800 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c | gptel-0.9.8.5/gptel-transient.el |
| 6e820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e860 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 6e880 | 30 32 32 34 32 32 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 31 32 30 00 20 30 00 00 00 | 0224227.00000000000.015120..0... |
| 6e8a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e8c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e8e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e900 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 6e920 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 6e940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ea00 | 3b 3b 3b 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 20 2d 2d 2d 20 54 72 61 6e 73 | ;;;.gptel-transient.el.---.Trans |
| 6ea20 | 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ient.menu.for.gptel..-*-.lexical |
| 6ea40 | 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | -binding:.t;.-*-..;;.Copyright.( |
| 6ea60 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 6ea80 | 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | r..;;.Author:.Karthik.Chikmagalu |
| 6eaa0 | 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e | r.<karthikchikmagalur@gmail.com> |
| 6eac0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 | .;;.Keywords:.convenience..;;.SP |
| 6eae0 | 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f | DX-License-Identifier:.GPL-3.0-o |
| 6eb00 | 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 | r-later..;;.This.program.is.free |
| 6eb20 | 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 | .software;.you.can.redistribute. |
| 6eb40 | 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 | it.and/or.modify.;;.it.under.the |
| 6eb60 | 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 | .terms.of.the.GNU.General.Public |
| 6eb80 | 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 | .License.as.published.by.;;.the. |
| 6eba0 | 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 | Free.Software.Foundation,.either |
| 6ebc0 | 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b | .version.3.of.the.License,.or.;; |
| 6ebe0 | 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 | .(at.your.option).any.later.vers |
| 6ec00 | 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 | ion...;;.This.program.is.distrib |
| 6ec20 | 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 | uted.in.the.hope.that.it.will.be |
| 6ec40 | 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 | .useful,.;;.but.WITHOUT.ANY.WARR |
| 6ec60 | 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 | ANTY;.without.even.the.implied.w |
| 6ec80 | 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 | arranty.of.;;.MERCHANTABILITY.or |
| 6eca0 | 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 | .FITNESS.FOR.A.PARTICULAR.PURPOS |
| 6ecc0 | 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 | E...See.the.;;.GNU.General.Publi |
| 6ece0 | 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 | c.License.for.more.details...;;. |
| 6ed00 | 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 | You.should.have.received.a.copy. |
| 6ed20 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 6ed40 | 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 | e.;;.along.with.this.program...I |
| 6ed60 | 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f | f.not,.see.<https://www.gnu.org/ |
| 6ed80 | 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b | licenses/>...;;;.Commentary:..;; |
| 6eda0 | 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 | ..;;;.Code:.(require.'cl-lib).(r |
| 6edc0 | 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 6e 73 69 65 | equire.'gptel).(require.'transie |
| 6ede0 | 6e 74 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 72 65 67 | nt)..(declare-function.ediff-reg |
| 6ee00 | 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 20 22 65 64 69 66 66 22 29 0a 28 64 65 63 6c 61 72 65 2d | ions-internal."ediff").(declare- |
| 6ee20 | 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 | function.ediff-make-cloned-buffe |
| 6ee40 | 72 20 22 65 64 69 66 66 2d 75 74 69 6c 73 22 29 0a 0a 0c 0a 3b 3b 20 2a 20 48 65 6c 70 65 72 20 | r."ediff-utils")....;;.*.Helper. |
| 6ee60 | 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 76 61 72 73 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 | functions.and.vars..(defvar-loca |
| 6ee80 | 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 6e 69 6c 0a 20 20 | l.gptel--rewrite-overlays.nil... |
| 6eea0 | 22 4c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 73 | "List.of.active.rewrite.overlays |
| 6eec0 | 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | .in.the.buffer.")..(defun.gptel- |
| 6eee0 | 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 20 28 29 0a 20 20 | -rewrite-sanitize-overlays.()... |
| 6ef00 | 22 45 6e 73 75 72 65 20 67 70 74 65 6c 27 73 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 73 | "Ensure.gptel's.rewrite.overlays |
| 6ef20 | 20 69 6e 20 62 75 66 66 65 72 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 2e 22 0a 20 20 28 73 | .in.buffer.are.consistent."...(s |
| 6ef40 | 65 74 71 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 | etq.gptel--rewrite-overlays..... |
| 6ef60 | 20 20 20 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 2d 6e 6f 74 20 23 27 6f 76 65 72 6c 61 79 2d | ....(cl-delete-if-not.#'overlay- |
| 6ef80 | 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer.......................... |
| 6efa0 | 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 29 0a 0a 28 64 65 | .gptel--rewrite-overlays)))..(de |
| 6efc0 | 66 76 61 72 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6e | fvar.gptel--set-buffer-locally.n |
| 6efe0 | 69 6c 0a 20 20 22 53 65 74 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 66 72 6f 6d 20 | il..."Set.model.parameters.from. |
| 6f000 | 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 0a 0a 41 66 | `gptel-menu'.buffer-locally...Af |
| 6f020 | 66 65 63 74 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 74 6f 6f 2e 22 29 0a | fects.the.system.message.too."). |
| 6f040 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 28 73 | .(defun.gptel--set-with-scope.(s |
| 6f060 | 79 6d 20 76 61 6c 75 65 20 26 6f 70 74 69 6f 6e 61 6c 20 73 63 6f 70 65 29 0a 20 20 22 53 65 74 | ym.value.&optional.scope)..."Set |
| 6f080 | 20 53 59 4d 42 4f 4c 27 73 20 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 74 6f 20 56 41 4c 55 45 20 | .SYMBOL's.symbol-value.to.VALUE. |
| 6f0a0 | 77 69 74 68 20 53 43 4f 50 45 2e 0a 0a 49 66 20 53 43 4f 50 45 20 69 73 20 74 2c 20 73 65 74 20 | with.SCOPE...If.SCOPE.is.t,.set. |
| 6f0c0 | 69 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 0a 49 66 20 53 43 4f 50 45 20 69 73 20 31 | it.buffer-locally..If.SCOPE.is.1 |
| 6f0e0 | 2c 20 72 65 73 65 74 20 69 74 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 2d | ,.reset.it.after.the.next.gptel- |
| 6f100 | 72 65 71 75 65 73 74 2e 20 28 6f 6e 65 73 68 6f 74 29 0a 4f 74 68 65 72 77 69 73 65 2c 20 63 6c | request..(oneshot).Otherwise,.cl |
| 6f120 | 65 61 72 20 61 6e 79 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 20 61 6e 64 20 73 | ear.any.buffer-local.value.and.s |
| 6f140 | 65 74 20 69 74 73 20 64 65 66 61 75 6c 74 0a 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 22 0a 20 20 | et.its.default.global.value."... |
| 6f160 | 28 70 63 61 73 65 20 73 63 6f 70 65 0a 20 20 20 20 28 31 20 28 70 75 74 20 73 79 6d 20 27 67 70 | (pcase.scope.....(1.(put.sym.'gp |
| 6f180 | 74 65 6c 2d 68 69 73 74 6f 72 79 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 0a | tel-history.(symbol-value.sym)). |
| 6f1a0 | 20 20 20 20 20 20 20 28 73 65 74 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 28 6c | .......(set.sym.value)........(l |
| 6f1c0 | 65 74 72 65 63 20 28 28 72 65 73 74 6f 72 65 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 | etrec.((restore-value........... |
| 6f1e0 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(lambda.()............... |
| 6f200 | 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 | .....(remove-hook.'gptel-post-re |
| 6f220 | 71 75 65 73 74 2d 68 6f 6f 6b 20 72 65 73 74 6f 72 65 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 | quest-hook.restore-value)....... |
| 6f240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 20 20 20 20 20 20 | .............(run-at-time....... |
| 6f260 | 20 20 3b 20 52 65 71 75 69 72 65 64 20 74 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 6c 65 74 20 | ..;.Required.to.work.around.let. |
| 6f280 | 62 69 6e 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 6e | bindings.....................0.n |
| 6f2a0 | 69 6c 20 28 6c 61 6d 62 64 61 20 28 73 29 20 20 20 20 20 20 20 20 3b 20 6f 74 68 65 72 77 69 73 | il.(lambda.(s)........;.otherwis |
| 6f2c0 | 65 20 74 68 69 73 20 63 68 61 6e 67 65 20 69 73 20 6f 76 65 72 77 72 69 74 74 65 6e 21 0a 20 20 | e.this.change.is.overwritten!... |
| 6f2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 20 73 | ..........................(set.s |
| 6f300 | 20 28 67 65 74 20 73 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 | .(get.s.'gptel-history))........ |
| 6f320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 73 20 27 67 70 74 | .....................(put.s.'gpt |
| 6f340 | 65 6c 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-history.nil))................ |
| 6f360 | 20 20 20 20 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 | .....sym))))..........(add-hook. |
| 6f380 | 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 20 72 65 73 74 6f 72 65 | 'gptel-post-request-hook.restore |
| 6f3a0 | 2d 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 27 74 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 | -value))).....('t.(set.(make-loc |
| 6f3c0 | 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 5f 20 | al-variable.sym).value)).....(_. |
| 6f3e0 | 28 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 0a 20 20 20 20 20 20 | (kill-local-variable.sym)....... |
| 6f400 | 20 28 73 65 74 20 73 79 6d 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 | .(set.sym.value))))..(defvar.gpt |
| 6f420 | 65 6c 2d 2d 70 72 65 73 65 74 20 6e 69 6c 0a 20 20 22 4e 61 6d 65 20 6f 66 20 6c 61 73 74 20 61 | el--preset.nil..."Name.of.last.a |
| 6f440 | 70 70 6c 69 65 64 20 67 70 74 65 6c 20 70 72 65 73 65 74 2e 0a 0a 46 6f 72 20 69 6e 74 65 72 6e | pplied.gptel.preset...For.intern |
| 6f460 | 61 6c 20 75 73 65 20 6f 6e 6c 79 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 | al.use.only.")..(defun.gptel--pr |
| 6f480 | 65 73 65 74 2d 6d 69 73 6d 61 74 63 68 2d 70 20 28 6e 61 6d 65 29 0a 20 20 22 43 68 65 63 6b 20 | eset-mismatch-p.(name)..."Check. |
| 6f4a0 | 69 66 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 20 69 73 20 69 6e 20 | if.gptel.preset.with.NAME.is.in. |
| 6f4c0 | 65 66 66 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6c 6d 20 28 6f 72 20 28 67 70 74 65 6c | effect."...(let.((elm.(or.(gptel |
| 6f4e0 | 2d 67 65 74 2d 70 72 65 73 65 74 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -get-preset.name)............... |
| 6f500 | 20 20 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 28 69 6e 74 65 72 6e 2d 73 6f 66 | ...(gptel-get-preset.(intern-sof |
| 6f520 | 74 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 | t.name)))).........key.val)..... |
| 6f540 | 28 63 61 74 63 68 20 27 6d 69 73 6d 61 74 63 68 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 65 6c | (catch.'mismatch.......(while.el |
| 6f560 | 6d 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 70 6f 70 20 65 6c 6d 29 20 76 61 | m.........(setq.key.(pop.elm).va |
| 6f580 | 6c 20 28 70 6f 70 20 65 6c 6d 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | l.(pop.elm)).........(cond...... |
| 6f5a0 | 20 20 20 20 28 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 3a 70 | ....((memq.key.'(:description.:p |
| 6f5c0 | 61 72 65 6e 74 73 29 29 20 27 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6b 65 79 | arents)).'nil)..........((eq.key |
| 6f5e0 | 20 3a 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 67 | .:system)...........(or.(equal.g |
| 6f600 | 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 76 61 6c 29 0a 20 20 20 20 20 20 | ptel--system-message.val)....... |
| 6f620 | 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 28 73 79 6d 62 6f 6c 70 20 76 61 6c | ........(and-let*.(((symbolp.val |
| 6f640 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 20 28 | ))..........................(p.( |
| 6f660 | 61 73 73 71 20 76 61 6c 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 29 0a 20 20 20 | assq.val.gptel-directives))).... |
| 6f680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 | .............(equal.gptel--syste |
| 6f6a0 | 6d 2d 6d 65 73 73 61 67 65 20 28 63 64 72 20 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | m-message.(cdr.p)))............. |
| 6f6c0 | 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ..(throw.'mismatch.t)))......... |
| 6f6e0 | 20 28 28 65 71 20 6b 65 79 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f | .((eq.key.:backend)...........(o |
| 6f700 | 72 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r.(if.(stringp.val)............. |
| 6f720 | 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 | ......(equal.(gptel-backend-name |
| 6f740 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .gptel-backend).val)............ |
| 6f760 | 20 20 20 20 20 28 65 71 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 76 61 6c 29 29 0a 20 20 20 | .....(eq.gptel-backend.val)).... |
| 6f780 | 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 | ...........(throw.'mismatch.t))) |
| 6f7a0 | 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6b 65 79 20 3a 74 6f 6f 6c 73 29 0a 20 20 20 20 20 | ..........((eq.key.:tools)...... |
| 6f7c0 | 20 20 20 20 20 28 69 66 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 76 61 6c 29 20 3a 61 70 70 | .....(if.(eq.(car-safe.val).:app |
| 6f7e0 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 | end)...............(cl-loop.for. |
| 6f800 | 6e 61 6d 65 20 69 6e 20 28 63 64 72 20 76 61 6c 29 20 3b 70 72 65 73 65 74 20 74 6f 6f 6c 73 20 | name.in.(cdr.val).;preset.tools. |
| 6f820 | 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 | contained.in.gptel-tools........ |
| 6f840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 28 67 70 | ................unless.(memq.(gp |
| 6f860 | 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 6e 61 6d 65 29 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a | tel-get-tool.name).gptel-tools). |
| 6f880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 74 68 72 6f 77 | .......................do.(throw |
| 6f8a0 | 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | .'mismatch.t)).............(or.( |
| 6f8c0 | 65 71 75 61 6c 20 28 73 6f 72 74 20 76 61 6c 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 20 | equal.(sort.val.#'string-lessp). |
| 6f8e0 | 3b 70 72 65 73 65 74 20 74 6f 6f 6c 73 20 73 61 6d 65 20 61 73 20 67 70 74 65 6c 2d 74 6f 6f 6c | ;preset.tools.same.as.gptel-tool |
| 6f900 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 20 28 | s........................(sort.( |
| 6f920 | 6d 61 70 63 61 72 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 74 | mapcar.#'gptel-tool-name.gptel-t |
| 6f940 | 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ools)........................... |
| 6f960 | 20 20 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...#'string-lessp))............. |
| 6f980 | 20 20 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 29 0a 20 20 20 20 20 | ....(throw.'mismatch.t))))...... |
| 6f9a0 | 20 20 20 20 28 74 20 28 6c 65 74 2a 20 28 28 73 75 66 66 69 78 20 28 73 75 62 73 74 72 69 6e 67 | ....(t.(let*.((suffix.(substring |
| 6f9c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | .............................(if |
| 6f9e0 | 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 | .(symbolp.key).(symbol-name.key) |
| 6fa00 | 20 6b 65 79 29 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 | .key).1))....................(sy |
| 6fa20 | 6d 20 28 6f 72 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 | m.(or.(intern-soft.(concat."gpte |
| 6fa40 | 6c 2d 22 20 73 75 66 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-".suffix)).................... |
| 6fa60 | 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 63 6f 6e 63 61 74 20 22 67 | .........(intern-soft.(concat."g |
| 6fa80 | 70 74 65 6c 2d 2d 22 20 73 75 66 66 69 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--".suffix)))))............. |
| 6faa0 | 20 20 28 6f 72 20 28 6e 75 6c 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(or.(null.sym)................ |
| 6fac0 | 20 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 65 71 75 61 6c 20 28 65 76 61 | ...(and.(boundp.sym).(equal.(eva |
| 6fae0 | 6c 20 73 79 6d 29 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | l.sym).val))...................( |
| 6fb00 | 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 | throw.'mismatch.t)))))))))..(def |
| 6fb20 | 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 28 61 72 67 73 29 0a 20 | un.gptel--get-directive.(args).. |
| 6fb40 | 20 22 46 69 6e 64 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 20 | ."Find.the.additional.directive. |
| 6fb60 | 69 6e 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 41 52 47 53 2e 0a 0a 4d 65 61 6e 74 20 74 6f | in.the.transient.ARGS...Meant.to |
| 6fb80 | 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 69 73 20 | .be.called.when.`gptel-menu'.is. |
| 6fba0 | 61 63 74 69 76 65 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 73 29 20 | active."...(cl-some.(lambda.(s). |
| 6fbc0 | 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d | (and.(stringp.s).(string-prefix- |
| 6fbe0 | 70 20 22 3a 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.":".s)........................ |
| 6fc00 | 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (substring.s.1)))............... |
| 6fc20 | 20 20 20 20 61 72 67 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 | ....args))..(defun.gptel--instru |
| 6fc40 | 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 74 65 78 74 20 26 6f 70 74 69 6f | ctions-make-overlay.(text.&optio |
| 6fc60 | 6e 61 6c 20 6f 76 29 0a 20 20 22 4d 61 6b 65 20 6f 72 20 6d 6f 76 65 20 6f 76 65 72 6c 61 79 20 | nal.ov)..."Make.or.move.overlay. |
| 6fc80 | 4f 56 20 77 69 74 68 20 54 45 58 54 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | OV.with.TEXT."...(save-excursion |
| 6fca0 | 0a 20 20 20 20 3b 3b 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6f 76 65 72 6c 61 79 20 70 6f | .....;;.Move.point.to.overlay.po |
| 6fcc0 | 73 69 74 69 6f 6e 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 | sition.....(cond......((use-regi |
| 6fce0 | 6f 6e 2d 70 29 0a 20 20 20 20 20 20 28 69 66 20 28 70 6f 73 2d 76 69 73 69 62 6c 65 2d 69 6e 2d | on-p).......(if.(pos-visible-in- |
| 6fd00 | 77 69 6e 64 6f 77 2d 70 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 0a 20 20 20 | window-p.(region-beginning)).... |
| 6fd20 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e | .......(goto-char.(region-beginn |
| 6fd40 | 69 6e 67 29 29 29 29 0a 20 20 20 20 20 28 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 | ing))))......((gptel--in-respons |
| 6fd60 | 65 2d 70 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 | e-p).......(gptel-beginning-of-r |
| 6fd80 | 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 | esponse).......(skip-chars-forwa |
| 6fda0 | 72 64 20 22 5c 6e 20 5c 74 22 29 29 0a 20 20 20 20 20 28 74 20 28 74 65 78 74 2d 70 72 6f 70 65 | rd."\n.\t"))......(t.(text-prope |
| 6fdc0 | 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 27 72 65 73 70 | rty-search-backward.'gptel.'resp |
| 6fde0 | 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 | onse).........(skip-chars-forwar |
| 6fe00 | 64 20 22 5c 6e 20 5c 74 22 29 29 29 0a 20 20 20 20 3b 3b 20 4d 61 6b 65 20 6f 76 65 72 6c 61 79 | d."\n.\t"))).....;;.Make.overlay |
| 6fe20 | 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 6f 76 20 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 29 0a | .....(if.(and.ov.(overlayp.ov)). |
| 6fe40 | 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 20 6f 76 20 28 70 6f 69 6e 74 29 | ........(move-overlay.ov.(point) |
| 6fe60 | 20 28 70 6f 69 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 | .(point).(current-buffer))...... |
| 6fe80 | 20 28 73 65 74 71 20 6f 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 | .(setq.ov.(make-overlay.(point). |
| 6fea0 | 28 70 6f 69 6e 74 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | (point).nil.t))).....(overlay-pu |
| 6fec0 | 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 3b 3b 20 | t.ov.'before-string.nil).....;;. |
| 6fee0 | 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 | (unless.(or.(bobp).(eq.(char-bef |
| 6ff00 | 6f 72 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 3b 3b 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | ore)."\n")).....;;...(overlay-pu |
| 6ff20 | 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | t.ov.'before-string.(propertize. |
| 6ff40 | 22 5c 6e 22 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 73 68 61 64 6f 77 29 29 29 0a | "\n".'font-lock-face.'shadow))). |
| 6ff60 | 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 63 61 74 65 67 6f 72 79 20 27 67 | ....(overlay-put.ov.'category.'g |
| 6ff80 | 70 74 65 6c 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 0a 20 20 20 20 20 6f 76 20 27 | ptel).....(overlay-put......ov.' |
| 6ffa0 | 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 | after-string......(concat.(prope |
| 6ffc0 | 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 44 49 52 45 43 54 49 56 45 3a 20 22 20 74 65 78 74 | rtize.(concat."DIRECTIVE:.".text |
| 6ffe0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 | )..........................'font |
| 70000 | 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 20 3a 77 65 | -lock-face.'(:inherit.shadow.:we |
| 70020 | 69 67 68 74 20 62 6f 6c 64 20 20 3a 62 6f 78 20 74 29 29 0a 20 20 20 20 20 20 22 5c 6e 22 29 29 | ight.bold..:box.t))......."\n")) |
| 70040 | 0a 20 20 20 20 6f 76 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 72 65 61 64 | .....ov))..(defconst.gptel--read |
| 70060 | 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 65 6c 70 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 28 | -with-prefix-help...(concat....( |
| 70080 | 70 72 6f 70 65 72 74 69 7a 65 20 22 28 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 | propertize."(".'face.'default).. |
| 700a0 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 54 41 42 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d | ..(propertize."TAB".'face.'help- |
| 700c0 | 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 3a 20 65 | key-binding)....(propertize.":.e |
| 700e0 | 78 70 61 6e 64 2c 20 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 28 70 72 6f | xpand,.".'face.'default)....(pro |
| 70100 | 70 65 72 74 69 7a 65 20 22 4d 2d 6e 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 | pertize."M-n".'face.'help-key-bi |
| 70120 | 6e 64 69 6e 67 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2f 22 20 27 66 61 63 65 20 | nding)....(propertize."/".'face. |
| 70140 | 27 64 65 66 61 75 6c 74 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4d 2d 70 22 20 27 | 'default)....(propertize."M-p".' |
| 70160 | 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 28 70 72 6f 70 | face.'help-key-binding)....(prop |
| 70180 | 65 72 74 69 7a 65 20 22 3a 20 6e 65 78 74 2f 70 72 65 76 69 6f 75 73 29 20 22 20 27 66 61 63 65 | ertize.":.next/previous).".'face |
| 701a0 | 20 27 64 65 66 61 75 6c 74 29 29 0a 20 20 22 48 65 6c 70 20 73 74 72 69 6e 67 20 3b 54 4f 44 4f | .'default))..."Help.string.;TODO |
| 701c0 | 3a 20 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 | :.")..(defun.gptel--read-with-pr |
| 701e0 | 65 66 69 78 20 28 70 72 65 66 69 78 29 0a 20 20 22 53 68 6f 77 20 73 74 72 69 6e 67 20 50 52 45 | efix.(prefix)..."Show.string.PRE |
| 70200 | 46 49 58 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 61 66 74 65 72 20 74 68 65 20 | FIX.in.the.minibuffer.after.the. |
| 70220 | 6d 69 6e 69 62 75 66 66 65 72 20 70 72 6f 6d 70 74 2e 0a 0a 50 52 45 46 49 58 20 69 73 20 73 68 | minibuffer.prompt...PREFIX.is.sh |
| 70240 | 6f 77 6e 20 69 6e 20 61 6e 20 6f 76 65 72 6c 61 79 2e 20 20 52 65 70 65 61 74 65 64 20 63 61 6c | own.in.an.overlay...Repeated.cal |
| 70260 | 6c 73 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 77 69 6c 6c 20 74 6f 67 67 6c 65 20 | ls.to.this.function.will.toggle. |
| 70280 | 69 74 73 20 76 69 73 69 62 69 6c 69 74 79 20 73 74 61 74 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 | its.visibility.state."...(unless |
| 702a0 | 20 28 6d 69 6e 69 62 75 66 66 65 72 70 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 | .(minibufferp).....(user-error." |
| 702c0 | 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 | This.command.is.intended.to.be.u |
| 702e0 | 73 65 64 20 69 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 22 29 29 0a 20 20 28 6c 65 74 | sed.in.the.minibuffer."))...(let |
| 70300 | 2a 20 28 28 75 70 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 76 20 | *.((update..........(lambda.(ov. |
| 70320 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 0a 20 20 20 20 20 | s)............(overlay-put...... |
| 70340 | 20 20 20 20 20 20 20 6f 76 20 27 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 | .......ov.'after-string......... |
| 70360 | 20 20 20 20 28 61 6e 64 20 73 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 | ....(and.s.(concat.(propertize.( |
| 70380 | 63 6f 6e 63 61 74 20 22 5c 6e 22 20 73 20 22 5c 6e 22 29 20 27 66 61 63 65 20 27 73 68 61 64 6f | concat."\n".s."\n").'face.'shado |
| 703a0 | 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d | w)............................(m |
| 703c0 | 61 6b 65 2d 73 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | ake-separator-line))))))........ |
| 703e0 | 20 20 28 6d 61 78 2d 77 69 64 74 68 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 28 | ..(max-width.(-.(window-width).( |
| 70400 | 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 | minibuffer-prompt-end)))........ |
| 70420 | 20 20 28 6d 61 78 20 28 6f 72 20 6d 61 78 2d 6d 69 6e 69 2d 77 69 6e 64 6f 77 2d 68 65 69 67 68 | ..(max.(or.max-mini-window-heigh |
| 70440 | 74 20 30 2e 34 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 78 2d 68 65 69 67 68 74 20 28 2d 20 | t.0.4))..........(max-height.(-. |
| 70460 | 28 6f 72 20 28 61 6e 64 20 28 6e 61 74 6e 75 6d 70 20 6d 61 78 29 20 6d 61 78 29 0a 20 20 20 20 | (or.(and.(natnump.max).max)..... |
| 70480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f 6f 72 20 28 | ........................(floor.( |
| 704a0 | 2a 20 6d 61 78 20 28 66 72 61 6d 65 2d 68 65 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 | *.max.(frame-height))))......... |
| 704c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 35 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 | ................5))).....(when.( |
| 704e0 | 61 6e 64 20 70 72 65 66 69 78 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 | and.prefix.(not.(string-empty-p. |
| 70500 | 70 72 65 66 69 78 29 29 20 28 3e 20 6d 61 78 2d 68 65 69 67 68 74 20 31 29 29 0a 20 20 20 20 20 | prefix)).(>.max-height.1))...... |
| 70520 | 20 28 75 6e 6c 65 73 73 20 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 28 76 69 73 75 61 | .(unless.visual-line-mode.(visua |
| 70540 | 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | l-line-mode.1)).......(goto-char |
| 70560 | 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 | .(minibuffer-prompt-end))....... |
| 70580 | 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 70 72 6f 70 20 2e 20 2c 6f 76 29 0a 20 20 20 20 | (pcase-let.((`(,prop...,ov)..... |
| 705a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 | ...............(get-char-propert |
| 705c0 | 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y-and-overlay................... |
| 705e0 | 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 27 67 70 74 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 | ..(point-min).'gptel)))......... |
| 70600 | 28 75 6e 6c 65 73 73 20 6f 76 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 20 28 6d | (unless.ov...........(setq.ov.(m |
| 70620 | 61 6b 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ake-overlay..................... |
| 70640 | 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 | (point-min).(minibuffer-prompt-e |
| 70660 | 6e 64 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 70 72 6f 70 | nd).nil.t))).........(pcase.prop |
| 70680 | 0a 20 20 20 20 20 20 20 20 20 20 28 27 70 61 72 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........('partial............ |
| 706a0 | 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 70 72 65 66 69 78 29 20 6d 61 78 2d 77 69 64 74 68 | (if.(>.(length.prefix).max-width |
| 706c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 | )................(progn......... |
| 706e0 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 | .........(overlay-put.ov.'gptel. |
| 70700 | 27 70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 | 'prefix)..................(let.( |
| 70720 | 28 64 69 73 70 2d 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (disp-size...................... |
| 70740 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 68 61 72 20 61 63 72 6f 73 73 20 70 72 65 66 | ...(cl-loop.for.char.across.pref |
| 70760 | 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ix.............................. |
| 70780 | 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 | ....for.idx.upfrom.0............ |
| 707a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6e 20 3d 20 30 | ......................with.n.=.0 |
| 707c0 | 20 77 69 74 68 20 6d 61 78 2d 6c 65 6e 67 74 68 20 3d 20 28 2a 20 6d 61 78 2d 68 65 69 67 68 74 | .with.max-length.=.(*.max-height |
| 707e0 | 20 6d 61 78 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .max-width)..................... |
| 70800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 20 63 68 61 72 20 3f 5c 6e 29 20 64 6f | .............if.(eq.char.?\n).do |
| 70820 | 20 28 63 6c 2d 69 6e 63 66 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(cl-incf.n).................... |
| 70840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 3e 20 6e 20 6d 61 78 2d 68 65 69 67 68 74 | ..............if.(>.n.max-height |
| 70860 | 29 20 72 65 74 75 72 6e 20 69 64 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).return.idx.................... |
| 70880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 3e 20 69 64 78 20 6d 61 78 2d 6c 65 6e 67 | ..............if.(>.idx.max-leng |
| 708a0 | 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | th)............................. |
| 708c0 | 20 20 20 20 20 72 65 74 75 72 6e 20 69 64 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....return.idx................. |
| 708e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 | .................finally.return. |
| 70900 | 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 | nil)))....................(funca |
| 70920 | 6c 6c 20 75 70 64 61 74 65 20 6f 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll.update.ov.................... |
| 70940 | 20 20 20 20 20 20 20 20 20 28 69 66 20 64 69 73 70 2d 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 | .........(if.disp-size.......... |
| 70960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 | .......................(truncate |
| 70980 | 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -string-to-width................ |
| 709a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 66 69 78 20 64 69 73 70 2d 73 69 | ..................prefix.disp-si |
| 709c0 | 7a 65 20 20 6e 69 6c 20 6e 69 6c 20 27 65 6c 6c 69 70 73 69 73 29 0a 20 20 20 20 20 20 20 20 20 | ze..nil.nil.'ellipsis).......... |
| 709e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 66 69 78 29 29 29 29 0a | .....................prefix)))). |
| 70a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 | .............(overlay-put.ov.'gp |
| 70a20 | 74 65 6c 20 27 68 69 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | tel.'hide)..............(funcall |
| 70a40 | 20 75 70 64 61 74 65 20 6f 76 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 27 70 72 | .update.ov.nil)))...........('pr |
| 70a60 | 65 66 69 78 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 68 69 64 | efix.(overlay-put.ov.'gptel.'hid |
| 70a80 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 75 70 64 | e)..................(funcall.upd |
| 70aa0 | 61 74 65 20 6f 76 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 6f 76 65 72 6c | ate.ov.nil))...........(_.(overl |
| 70ac0 | 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 70 61 72 74 69 61 6c 29 0a 20 20 20 20 20 | ay-put.ov.'gptel.'partial)...... |
| 70ae0 | 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 75 70 64 61 74 65 20 6f 76 20 28 74 72 75 6e | ........(funcall.update.ov.(trun |
| 70b00 | 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 | cate-string-to-width............ |
| 70b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 66 69 78 20 6d 61 78 | ......................prefix.max |
| 70b40 | 2d 77 69 64 74 68 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -width.nil.nil.................. |
| 70b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6c 6c 69 70 73 69 73 29 29 29 29 29 29 29 | ................'ellipsis))))))) |
| 70b80 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d | )..(defun.gptel--transient-read- |
| 70ba0 | 6e 75 6d 62 65 72 20 28 70 72 6f 6d 70 74 20 5f 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 68 69 | number.(prompt._initial-input.hi |
| 70bc0 | 73 74 6f 72 79 29 0a 20 20 22 52 65 61 64 20 61 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 66 | story)..."Read.a.numeric.value.f |
| 70be0 | 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 50 52 4f 4d 50 54 2c 20 5f 49 4e | rom.the.minibuffer...PROMPT,._IN |
| 70c00 | 49 54 49 41 4c 2d 49 4e 50 55 54 20 61 6e 64 20 48 49 53 54 4f 52 59 20 61 72 65 20 61 73 20 69 | ITIAL-INPUT.and.HISTORY.are.as.i |
| 70c20 | 6e 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 72 65 61 64 65 72 0a 64 6f 63 75 6d 65 6e 74 69 | n.the.transient.reader.documenti |
| 70c40 | 6f 6e 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 75 73 65 72 20 64 6f 65 73 20 6e 6f 74 | on...Return.nil.if.user.does.not |
| 70c60 | 20 70 72 6f 76 69 64 65 20 61 20 6e 75 6d 62 65 72 2c 20 66 6f 72 20 64 65 66 61 75 6c 74 2e 22 | .provide.a.number,.for.default." |
| 70c80 | 0a 20 20 3b 3b 20 57 6f 72 6b 61 72 6f 75 6e 64 20 66 6f 72 20 62 75 67 67 79 20 74 72 61 6e 73 | ...;;.Workaround.for.buggy.trans |
| 70ca0 | 69 65 6e 74 20 62 65 68 61 76 69 6f 75 72 20 77 68 65 6e 20 64 65 61 6c 69 6e 67 20 77 69 74 68 | ient.behaviour.when.dealing.with |
| 70cc0 | 0a 20 20 3b 3b 20 6e 6f 6e 2d 73 74 72 69 6e 67 20 76 61 6c 75 65 73 2e 20 20 53 65 65 3a 20 68 | ...;;.non-string.values...See:.h |
| 70ce0 | 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 74 72 61 6e 73 69 65 6e | ttps://github.com/magit/transien |
| 70d00 | 74 2f 69 73 73 75 65 73 2f 31 37 32 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 76 61 6c 20 | t/issues/172...(when-let*.((val. |
| 70d20 | 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 28 77 68 | (symbol-value.history))).....(wh |
| 70d40 | 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 76 61 6c 29 29 29 0a 20 20 20 | en.(not.(stringp.(car.val))).... |
| 70d60 | 20 20 20 28 73 65 74 63 61 72 20 76 61 6c 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 | ...(setcar.val.(number-to-string |
| 70d80 | 20 28 63 61 72 20 76 61 6c 29 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 69 62 75 66 | .(car.val)))))...(let*.((minibuf |
| 70da0 | 66 65 72 2d 64 65 66 61 75 6c 74 2d 70 72 6f 6d 70 74 2d 66 6f 72 6d 61 74 20 22 22 29 0a 09 20 | fer-default-prompt-format."")... |
| 70dc0 | 28 6e 75 6d 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 70 72 6f 6d 70 74 20 2d 31 20 68 69 73 74 | (num.(read-number.prompt.-1.hist |
| 70de0 | 6f 72 79 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 6e 75 6d 20 2d 31 29 20 6e 69 6c 20 6e 75 | ory))).....(if.(=.num.-1).nil.nu |
| 70e00 | 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 | m)))..(defun.gptel-system-prompt |
| 70e20 | 2d 2d 66 6f 72 6d 61 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 73 73 61 67 65 29 0a 20 20 22 | --format.(&optional.message)..." |
| 70e40 | 46 6f 72 6d 61 74 20 74 68 65 20 73 79 73 74 65 6d 20 4d 45 53 53 41 47 45 20 66 6f 72 20 64 69 | Format.the.system.MESSAGE.for.di |
| 70e60 | 73 70 6c 61 79 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 | splay.in.gptel's.transient.menus |
| 70e80 | 2e 0a 0a 48 61 6e 64 6c 65 20 66 6f 72 6d 61 74 74 69 6e 67 20 66 6f 72 20 73 79 73 74 65 6d 20 | ...Handle.formatting.for.system. |
| 70ea0 | 6d 65 73 73 61 67 65 73 20 77 68 65 6e 20 74 68 65 20 61 63 74 69 76 65 0a 60 67 70 74 65 6c 2d | messages.when.the.active.`gptel- |
| 70ec0 | 6d 6f 64 65 6c 27 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 79 73 74 65 6d 20 6d | model'.does.not.support.system.m |
| 70ee0 | 65 73 73 61 67 65 73 2e 22 0a 20 20 28 73 65 74 71 20 6d 65 73 73 61 67 65 20 28 6f 72 20 6d 65 | essages."...(setq.message.(or.me |
| 70f00 | 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 | ssage.gptel--system-message))... |
| 70f20 | 28 69 66 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6e 6f 73 | (if.(gptel--model-capable-p.'nos |
| 70f40 | 79 73 74 65 6d 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 | ystem).......(concat.(propertize |
| 70f60 | 20 22 5b 4e 6f 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 73 75 70 70 6f 72 74 20 66 6f 72 | ."[No.system.message.support.for |
| 70f80 | 20 6d 6f 64 65 6c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .model."........................ |
| 70fa0 | 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 | ...'face.'transient-heading).... |
| 70fc0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 2d 6d | ...........(propertize.(gptel--m |
| 70fe0 | 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 | odel-name.gptel-model).......... |
| 71000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 77 61 72 6e 69 6e 67 29 | .................'face.'warning) |
| 71020 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5d 22 20 27 | ...............(propertize."]".' |
| 71040 | 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 29 0a 20 20 20 20 28 69 | face.'transient-heading)).....(i |
| 71060 | 66 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 | f.message.........(gptel--descri |
| 71080 | 62 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 28 6d | be-directive..........message.(m |
| 710a0 | 61 78 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 32 29 20 31 34 29 20 22 e2 ae | ax.(-.(window-width).12).14).".. |
| 710c0 | 90 20 22 29 0a 20 20 20 20 20 20 22 5b 4e 6f 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 73 | ..")......."[No.system.message.s |
| 710e0 | 65 74 5d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 73 2d 69 6e 69 | et]")))..(defun.gptel--tools-ini |
| 71100 | 74 2d 76 61 6c 75 65 20 28 6f 62 6a 29 0a 20 20 22 53 65 74 20 74 68 65 20 69 6e 69 74 69 61 6c | t-value.(obj)..."Set.the.initial |
| 71120 | 20 73 74 61 74 65 20 6f 66 20 61 20 74 6f 6f 6c 20 4f 42 4a 20 69 6e 20 60 67 70 74 65 6c 2d 74 | .state.of.a.tool.OBJ.in.`gptel-t |
| 71140 | 6f 6f 6c 73 27 2e 0a 0a 4f 42 4a 20 69 73 20 61 20 74 6f 6f 6c 2d 69 6e 66 69 78 20 6f 66 20 74 | ools'...OBJ.is.a.tool-infix.of.t |
| 71160 | 79 70 65 20 60 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 27 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 | ype.`gptel--switch'."...(when-le |
| 71180 | 74 2a 20 28 28 6e 61 6d 65 20 28 63 61 72 20 28 6d 65 6d 62 65 72 20 28 6f 72 65 66 20 6f 62 6a | t*.((name.(car.(member.(oref.obj |
| 711a0 | 20 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .argument)...................... |
| 711c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 64 72 0a 20 20 20 20 20 | ............(mapcar.#'cadr...... |
| 711e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 71200 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 | ....(plist-get.(transient-scope) |
| 71220 | 20 3a 74 6f 6f 6c 73 29 29 29 29 29 29 0a 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 | .:tools)))))).....(oset.obj.valu |
| 71240 | 65 20 28 6c 69 73 74 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 20 6e 61 6d 65 | e.(list.(oref.obj.category).name |
| 71260 | 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 | ))))..(defvar.gptel--crowdsource |
| 71280 | 64 2d 70 72 6f 6d 70 74 73 2d 75 72 6c 0a 20 20 22 68 74 74 70 73 3a 2f 2f 72 61 77 2e 67 69 74 | d-prompts-url..."https://raw.git |
| 712a0 | 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f 6d 2f 66 2f 61 77 65 73 6f 6d 65 2d 63 68 61 | hubusercontent.com/f/awesome-cha |
| 712c0 | 74 67 70 74 2d 70 72 6f 6d 70 74 73 2f 6d 61 69 6e 2f 70 72 6f 6d 70 74 73 2e 63 73 76 22 0a 20 | tgpt-prompts/main/prompts.csv".. |
| 712e0 | 20 22 55 52 4c 20 66 6f 72 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 | ."URL.for.crowdsourced.LLM.syste |
| 71300 | 6d 20 70 72 6f 6d 70 74 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 63 72 6f | m.prompts.")..(defvar.gptel--cro |
| 71320 | 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 | wdsourced-prompts...(make-hash-t |
| 71340 | 61 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 22 43 72 6f 77 64 73 6f 75 72 | able.:test.#'equal)..."Crowdsour |
| 71360 | 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 2e 22 29 0a 0a 28 64 65 66 75 | ced.LLM.system.prompts.")..(defu |
| 71380 | 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 73 76 2d 63 6f 6c 75 6d 6e 20 28 29 0a 20 20 22 52 | n.gptel--read-csv-column.()..."R |
| 713a0 | 65 61 64 20 6e 65 78 74 20 43 53 56 20 63 6f 6c 75 6d 6e 20 69 6e 20 74 68 65 20 63 75 72 72 65 | ead.next.CSV.column.in.the.curre |
| 713c0 | 6e 74 20 62 75 66 66 65 72 2e 0a 0a 53 75 70 70 6f 72 74 73 20 62 6f 74 68 20 71 75 6f 74 65 64 | nt.buffer...Supports.both.quoted |
| 713e0 | 20 61 6e 64 20 6e 6f 6e 2d 71 75 6f 74 65 64 20 63 6f 6c 75 6d 6e 73 20 28 52 46 43 20 34 31 38 | .and.non-quoted.columns.(RFC.418 |
| 71400 | 30 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 | 0)."...(let.((start.(point)))... |
| 71420 | 20 20 28 75 6e 6c 65 73 73 20 28 65 6f 6c 70 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f | ..(unless.(eolp).......(let.((co |
| 71440 | 6c 75 6d 6e 0a 09 20 20 20 20 20 28 69 66 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 | lumn.......(if.(eq.(char-after). |
| 71460 | 3f 5c 22 29 0a 09 09 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 | ?\")....(when.(re-search-forward |
| 71480 | 20 22 5c 22 2c 5c 5c 7c 5c 22 24 22 20 6e 69 6c 20 74 29 0a 09 09 20 20 20 28 6c 65 74 20 28 28 | ."\",\\|\"$".nil.t)......(let.(( |
| 714a0 | 65 6e 64 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 09 09 20 20 20 20 | end.(match-beginning.0)))....... |
| 714c0 | 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 | .(buffer-substring-no-properties |
| 714e0 | 20 28 2b 20 73 74 61 72 74 20 31 29 20 28 69 66 20 28 65 6f 6c 70 29 20 28 2d 20 65 6e 64 20 31 | .(+.start.1).(if.(eolp).(-.end.1 |
| 71500 | 29 20 65 6e 64 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d | ).end)))).........(when.(search- |
| 71520 | 66 6f 72 77 61 72 64 20 22 2c 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 | forward.",".(line-end-position). |
| 71540 | 74 29 0a 09 09 20 28 6c 65 74 20 28 28 65 6e 64 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e | t)....(let.((end.(match-beginnin |
| 71560 | 67 20 30 29 29 29 0a 09 09 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f | g.0)))......(buffer-substring-no |
| 71580 | 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 29 29 29 29 0a 09 28 73 74 | -properties.start.end))))))..(st |
| 715a0 | 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 22 5c 22 22 20 22 5c 22 22 20 63 6f 6c 75 6d 6e 29 | ring-replace."\"\""."\"".column) |
| 715c0 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | ))))..(defun.gptel--crowdsourced |
| 715e0 | 2d 70 72 6f 6d 70 74 73 20 28 29 0a 20 20 22 41 63 71 75 69 72 65 20 61 6e 64 20 72 65 61 64 20 | -prompts.()..."Acquire.and.read. |
| 71600 | 63 72 6f 77 64 73 6f 75 72 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 2e | crowdsourced.LLM.system.prompts. |
| 71620 | 0a 0a 54 68 65 73 65 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 | ..These.are.stored.in.the.variab |
| 71640 | 6c 65 20 60 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 27 | le.`gptel--crowdsourced-prompts' |
| 71660 | 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 68 61 73 68 2d 74 61 62 6c | ,.which.see."...(when.(hash-tabl |
| 71680 | 65 2d 70 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 | e-p.gptel--crowdsourced-prompts) |
| 716a0 | 0a 20 20 20 20 28 77 68 65 6e 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 65 6d 70 74 79 2d 70 20 67 | .....(when.(hash-table-empty-p.g |
| 716c0 | 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 | ptel--crowdsourced-prompts)..... |
| 716e0 | 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f | ..(unless.gptel-crowdsourced-pro |
| 71700 | 6d 70 74 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 | mpts-file.........(run-at-time.0 |
| 71720 | 20 6e 69 6c 20 23 27 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 | .nil.#'gptel-system-prompt)..... |
| 71740 | 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 63 72 6f 77 64 73 6f 75 72 63 65 64 | ....(user-error."No.crowdsourced |
| 71760 | 20 70 72 6f 6d 70 74 73 20 61 76 61 69 6c 61 62 6c 65 22 29 29 0a 20 20 20 20 20 20 28 75 6e 6c | .prompts.available")).......(unl |
| 71780 | 65 73 73 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 67 70 74 65 6c 2d 63 72 | ess.(and.(file-exists-p.gptel-cr |
| 717a0 | 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 | owdsourced-prompts-file)........ |
| 717c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 0a 20 20 20 20 20 20 20 | ............(time-less-p........ |
| 717e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 | .............(time-subtract.(cur |
| 71800 | 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d 65 20 31 34 29 29 0a 20 20 | rent-time).(days-to-time.14))... |
| 71820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 | ..................(file-attribut |
| 71840 | 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | e-modification-time............. |
| 71860 | 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 73 20 67 70 74 65 6c 2d | .........(file-attributes.gptel- |
| 71880 | 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 29 29 29 0a 20 20 | crowdsourced-prompts-file))))... |
| 718a0 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 | ......(when.(y-or-n-p........... |
| 718c0 | 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 46 65 | .....(concat................."Fe |
| 718e0 | 74 63 68 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 | tch.crowdsourced.system.prompts. |
| 71900 | 66 72 6f 6d 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | from.".................(properti |
| 71920 | 7a 65 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 2f 61 77 65 73 6f 6d 65 | ze."https://github.com/f/awesome |
| 71940 | 2d 63 68 61 74 67 70 74 2d 70 72 6f 6d 70 74 73 22 20 27 66 61 63 65 20 27 6c 69 6e 6b 29 0a 20 | -chatgpt-prompts".'face.'link).. |
| 71960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b | ..............."?"))...........; |
| 71980 | 3b 20 46 65 74 63 68 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | ;.Fetch.file...........(message. |
| 719a0 | 22 46 65 74 63 68 69 6e 67 20 70 72 6f 6d 70 74 73 2e 2e 2e 22 29 0a 20 20 20 20 20 20 20 20 20 | "Fetching.prompts...").......... |
| 719c0 | 20 28 6c 65 74 20 28 28 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 | .(let.((dir.(file-name-directory |
| 719e0 | 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 | .gptel-crowdsourced-prompts-file |
| 71a00 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 65 78 | ))).............(unless.(file-ex |
| 71a20 | 69 73 74 73 2d 70 20 64 69 72 29 20 28 6d 6b 64 69 72 20 64 69 72 20 27 63 72 65 61 74 65 2d 70 | ists-p.dir).(mkdir.dir.'create-p |
| 71a40 | 61 72 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 72 6c 2d 63 6f | arents)).............(if.(url-co |
| 71a60 | 70 79 2d 66 69 6c 65 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d | py-file.gptel--crowdsourced-prom |
| 71a80 | 70 74 73 2d 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pts-url......................... |
| 71aa0 | 20 20 20 20 20 20 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 | .......gptel-crowdsourced-prompt |
| 71ac0 | 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s-file.......................... |
| 71ae0 | 20 20 20 20 20 20 27 6f 6b 2d 69 66 2d 61 6c 72 65 61 64 79 2d 65 78 69 73 74 73 29 0a 09 09 28 | ......'ok-if-already-exists)...( |
| 71b00 | 6d 65 73 73 61 67 65 20 22 46 65 74 63 68 69 6e 67 20 70 72 6f 6d 70 74 73 2e 2e 2e 20 64 6f 6e | message."Fetching.prompts....don |
| 71b20 | 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 75 | e.")...............(message."Cou |
| 71b40 | 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 6e 65 77 20 70 72 6f 6d 70 74 73 2e 22 29 29 29 | ld.not.retrieve.new.prompts."))) |
| 71b60 | 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 | )).......(if.(not.(file-readable |
| 71b80 | 2d 70 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 | -p.gptel-crowdsourced-prompts-fi |
| 71ba0 | 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 20 22 | le))...........(progn.(message." |
| 71bc0 | 4e 6f 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 70 72 6f 6d 70 74 73 20 61 76 61 69 6c 61 62 6c | No.crowdsourced.prompts.availabl |
| 71be0 | 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 | e")..................(call-inter |
| 71c00 | 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 | actively.#'gptel-system-prompt)) |
| 71c20 | 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 | .........(with-temp-buffer...... |
| 71c40 | 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 67 70 74 65 6c | .....(insert-file-contents.gptel |
| 71c60 | 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 0a 20 20 20 20 | -crowdsourced-prompts-file)..... |
| 71c80 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 | ......(goto-char.(point-min))... |
| 71ca0 | 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 | ........(forward-line.1)........ |
| 71cc0 | 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 09 20 20 20 20 28 77 68 65 | ...(while.(not.(eobp))......(whe |
| 71ce0 | 6e 2d 6c 65 74 2a 20 28 28 61 63 74 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 73 76 2d 63 6f | n-let*.((act.(gptel--read-csv-co |
| 71d00 | 6c 75 6d 6e 29 29 0a 09 09 09 28 70 72 6f 6d 70 74 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 | lumn))....(prompt.(gptel--read-c |
| 71d20 | 73 76 2d 63 6f 6c 75 6d 6e 29 29 29 0a 09 09 28 70 75 74 68 61 73 68 20 61 63 74 20 70 72 6f 6d | sv-column)))...(puthash.act.prom |
| 71d40 | 70 74 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 29 | pt.gptel--crowdsourced-prompts)) |
| 71d60 | 0a 09 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 0a 20 20 20 | ........(forward-line.1))))).... |
| 71d80 | 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 29 0a 0a | .gptel--crowdsourced-prompts)).. |
| 71da0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 69 6e 66 69 78 2d 63 6f 6e | (defun.gptel--describe-infix-con |
| 71dc0 | 74 65 78 74 20 28 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | text.()...(if.(null.gptel-contex |
| 71de0 | 74 2d 2d 61 6c 69 73 74 29 20 22 43 6f 6e 74 65 78 74 22 0a 20 20 20 20 28 70 63 61 73 65 2d 6c | t--alist)."Context".....(pcase-l |
| 71e00 | 65 74 2a 0a 20 20 20 20 20 20 20 20 28 28 63 6f 6e 74 65 78 74 73 20 28 67 70 74 65 6c 2d 63 6f | et*.........((contexts.(gptel-co |
| 71e20 | 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 | ntext--collect))..........(buffe |
| 71e40 | 72 2d 63 6f 75 6e 74 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 78 74 73 29 29 0a 20 20 20 20 20 | r-count.(length.contexts))...... |
| 71e60 | 20 20 20 20 28 60 28 2c 66 69 6c 65 2d 63 6f 75 6e 74 20 2c 6f 76 2d 63 6f 75 6e 74 29 0a 20 20 | ....(`(,file-count.,ov-count)... |
| 71e80 | 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 30 29 0a 20 | ........(if.(>.buffer-count.0).. |
| 71ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 62 75 66 2d 66 | .............(cl-loop.for.(buf-f |
| 71ec0 | 69 6c 65 20 2e 20 6f 76 73 29 20 69 6e 20 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 20 20 20 20 20 | ile...ovs).in.contexts.......... |
| 71ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 70 20 62 75 66 2d 66 69 | ..............if.(bufferp.buf-fi |
| 71f00 | 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 75 6d 20 28 | le)........................sum.( |
| 71f20 | 6c 65 6e 67 74 68 20 6f 76 73 29 20 69 6e 74 6f 20 6f 76 2d 63 6f 75 6e 74 0a 20 20 20 20 20 20 | length.ovs).into.ov-count....... |
| 71f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 75 6e 74 20 28 73 74 72 | .................else.count.(str |
| 71f60 | 69 6e 67 70 20 62 75 66 2d 66 69 6c 65 29 20 69 6e 74 6f 20 66 69 6c 65 2d 63 6f 75 6e 74 0a 20 | ingp.buf-file).into.file-count.. |
| 71f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 | ......................finally.re |
| 71fa0 | 74 75 72 6e 20 28 6c 69 73 74 20 66 69 6c 65 2d 63 6f 75 6e 74 20 6f 76 2d 63 6f 75 6e 74 29 29 | turn.(list.file-count.ov-count)) |
| 71fc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 30 20 30 29 29 29 29 0a 20 20 20 20 20 | .............(list.0.0))))...... |
| 71fe0 | 20 28 63 6f 6e 63 61 74 20 22 43 6f 6e 74 65 78 74 20 28 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .(concat."Context.("............ |
| 72000 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ...(propertize................(c |
| 72020 | 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 6f 76 | oncat.................(and.(>.ov |
| 72040 | 2d 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -count.0)......................( |
| 72060 | 66 6f 72 6d 61 74 20 22 25 64 20 72 65 67 69 6f 6e 25 73 20 69 6e 20 25 64 20 62 75 66 66 65 72 | format."%d.region%s.in.%d.buffer |
| 72080 | 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | %s"............................. |
| 720a0 | 20 6f 76 2d 63 6f 75 6e 74 20 28 69 66 20 28 3e 20 6f 76 2d 63 6f 75 6e 74 20 31 29 20 22 73 22 | .ov-count.(if.(>.ov-count.1)."s" |
| 720c0 | 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."")............................ |
| 720e0 | 20 20 28 2d 20 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 66 69 6c 65 2d 63 6f 75 6e 74 29 0a 20 20 | ..(-.buffer-count.file-count)... |
| 72100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | ...........................(if.( |
| 72120 | 3e 20 28 20 2d 20 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 66 69 6c 65 2d 63 6f 75 6e 74 29 20 31 | >.(.-.buffer-count.file-count).1 |
| 72140 | 29 20 22 73 22 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 | )."s".""))).................(and |
| 72160 | 20 28 3e 20 66 69 6c 65 2d 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(>.file-count.0)............... |
| 72180 | 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 25 64 20 66 69 6c 65 25 73 22 0a 20 20 20 | .......(format."%s%d.file%s".... |
| 721a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e | ..........................(if.(> |
| 721c0 | 20 6f 76 2d 63 6f 75 6e 74 20 30 29 20 22 2c 20 22 20 22 22 29 20 66 69 6c 65 2d 63 6f 75 6e 74 | .ov-count.0).",."."").file-count |
| 721e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | ..............................(i |
| 72200 | 66 20 28 3e 20 66 69 6c 65 2d 63 6f 75 6e 74 20 31 29 20 22 73 22 20 22 22 29 29 29 29 0a 20 20 | f.(>.file-count.1)."s".""))))... |
| 72220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 77 61 72 6e 69 6e 67 29 0a 20 20 20 | .............'face.'warning).... |
| 72240 | 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | ...........")"))))..(defun.gptel |
| 72260 | 2d 2d 64 65 73 63 72 69 62 65 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 28 29 0a 20 20 22 44 65 73 | --describe-suffix-send.()..."Des |
| 72280 | 63 72 69 62 65 20 74 68 65 20 61 63 74 69 6f 6e 20 6f 66 20 60 67 70 74 65 6c 2d 2d 73 75 66 66 | cribe.the.action.of.`gptel--suff |
| 722a0 | 69 78 2d 73 65 6e 64 27 2e 22 0a 20 20 28 63 6c 2d 66 6c 65 74 20 28 28 70 74 76 20 28 73 29 20 | ix-send'."...(cl-flet.((ptv.(s). |
| 722c0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 73 20 27 66 61 63 65 20 27 77 61 72 6e 69 6e 67 29 29 0a 20 | (propertize.s.'face.'warning)).. |
| 722e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 74 68 20 28 73 29 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | ...........(pth.(s).(propertize. |
| 72300 | 73 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 29 29 0a 20 20 | s.'face.'transient-heading)))... |
| 72320 | 20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6f 72 20 28 61 6e 64 20 74 72 61 6e 73 69 65 6e | ..(let*.((args.(or.(and.transien |
| 72340 | 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-current-command............... |
| 72360 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e | ............(transient-args.tran |
| 72380 | 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 29 29 0a 09 20 20 20 20 20 20 20 | sient-current-command))......... |
| 723a0 | 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 79 65 74 20 65 78 70 6f 72 74 65 64 2c 20 73 69 6d 75 6c | ......;;.Not.yet.exported,.simul |
| 723c0 | 61 74 65 2e 20 20 48 41 43 4b 3a 20 57 65 20 61 72 65 20 61 63 63 65 73 73 69 6e 67 0a 09 20 20 | ate...HACK:.We.are.accessing.... |
| 723e0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 72 61 6e 73 69 65 6e 74 27 73 20 69 6e 74 65 72 6e | ...........;;.Transient's.intern |
| 72400 | 61 6c 20 76 61 72 69 61 62 6c 65 73 20 68 65 72 65 20 66 6f 72 20 6c 69 76 65 20 75 70 64 61 74 | al.variables.here.for.live.updat |
| 72420 | 65 73 2e 0a 09 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 6e 73 69 | es................(let*.((transi |
| 72440 | 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 20 28 6f 72 65 66 20 74 72 61 6e 73 69 | ent-current-command.(oref.transi |
| 72460 | 65 6e 74 2d 2d 70 72 65 66 69 78 20 63 6f 6d 6d 61 6e 64 29 29 0a 09 20 20 20 20 20 20 20 20 20 | ent--prefix.command))........... |
| 72480 | 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 73 75 | ...........(transient-current-su |
| 724a0 | 66 66 69 78 65 73 20 74 72 61 6e 73 69 65 6e 74 2d 2d 73 75 66 66 69 78 65 73 29 29 0a 09 20 20 | ffixes.transient--suffixes)).... |
| 724c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 | .............(transient-args.tra |
| 724e0 | 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 | nsient-current-command))))...... |
| 72500 | 20 20 20 20 20 20 28 6c 62 65 67 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 | ......(lbeg.(line-number-at-pos. |
| 72520 | 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e | (if.(use-region-p).(region-begin |
| 72540 | 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ning)........................... |
| 72560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 | .............(point-min))))..... |
| 72580 | 20 20 20 20 20 20 20 28 6c 65 6e 64 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 | .......(lend.(line-number-at-pos |
| 725a0 | 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 | .(if.(use-region-p).(region-end) |
| 725c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 725e0 | 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c | ........(point))))............(l |
| 72600 | 74 65 78 74 20 28 70 74 76 20 28 69 66 20 28 3e 20 6c 65 6e 64 20 6c 62 65 67 29 0a 20 20 20 20 | text.(ptv.(if.(>.lend.lbeg)..... |
| 72620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 | .......................(format." |
| 72640 | 20 28 6c 69 6e 65 73 20 25 64 2d 25 64 29 22 20 6c 62 65 67 20 6c 65 6e 64 29 0a 20 20 20 20 20 | .(lines.%d-%d)".lbeg.lend)...... |
| 72660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 6c | ....................(format.".(l |
| 72680 | 69 6e 65 20 25 64 29 22 20 6c 62 65 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 | ine.%d)".lbeg))))............(de |
| 726a0 | 73 74 29 20 28 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 65 73 74 20 | st).(context)).......(setq.dest. |
| 726c0 | 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 | (cond...................((member |
| 726e0 | 20 22 65 22 20 61 72 67 73 29 20 28 70 74 76 20 22 65 63 68 6f 20 61 72 65 61 22 29 29 0a 20 20 | ."e".args).(ptv."echo.area"))... |
| 72700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 6b 22 20 61 72 67 | ................((member."k".arg |
| 72720 | 73 29 20 28 70 74 76 20 22 6b 69 6c 6c 2d 72 69 6e 67 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 | s).(ptv."kill-ring"))........... |
| 72740 | 20 20 20 20 20 20 20 20 28 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 73 29 0a 20 20 | ........((cl-some.(lambda.(s)... |
| 72760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 | ............................(and |
| 72780 | 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 6d 65 6d 71 20 28 61 72 65 66 20 73 20 30 29 20 27 28 | .(stringp.s).(memq.(aref.s.0).'( |
| 727a0 | 3f 67 20 3f 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?g.?b))......................... |
| 727c0 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e | ...........(not.(equal.(substrin |
| 727e0 | 67 20 73 20 31 29 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 | g.s.1).(buffer-name))).......... |
| 72800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | ..........................(conca |
| 72820 | 74 20 28 70 74 68 20 22 62 75 66 66 65 72 20 22 29 20 28 70 74 76 20 28 73 75 62 73 74 72 69 6e | t.(pth."buffer.").(ptv.(substrin |
| 72840 | 67 20 73 20 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.s.1)))))...................... |
| 72860 | 20 20 20 20 20 20 20 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6e 74 | .......args)))).......(setq.cont |
| 72880 | 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | ext.............(and.gptel-conte |
| 728a0 | 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 | xt--alist..................(let. |
| 728c0 | 28 28 6c 63 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 | ((lc.(length.gptel-context--alis |
| 728e0 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | t)))....................(concat. |
| 72900 | 28 70 74 68 20 22 20 61 6c 6f 6e 67 20 77 69 74 68 20 22 29 20 28 70 74 76 20 28 66 6f 72 6d 61 | (pth.".along.with.").(ptv.(forma |
| 72920 | 74 20 22 25 64 22 20 6c 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t."%d".lc))..................... |
| 72940 | 20 20 20 20 20 20 20 28 70 74 68 20 28 63 6f 6e 63 61 74 20 22 20 63 6f 6e 74 65 78 74 20 73 6f | .......(pth.(concat.".context.so |
| 72960 | 75 72 63 65 22 20 28 61 6e 64 20 28 2f 3d 20 6c 63 20 31 29 20 22 73 22 29 29 29 29 29 29 29 0a | urce".(and.(/=.lc.1)."s"))))))). |
| 72980 | 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 62 65 72 20 22 6d 22 20 61 72 67 73 29 0a 20 | ......(cond.((member."m".args).. |
| 729a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 52 65 61 64 20 70 | ............(concat.(pth."Read.p |
| 729c0 | 72 6f 6d 70 74 20 66 72 6f 6d 20 22 29 20 28 70 74 76 20 22 6d 69 6e 69 62 75 66 66 65 72 22 29 | rompt.from.").(ptv."minibuffer") |
| 729e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 0a 20 20 | ......................context... |
| 72a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 73 74 20 28 63 6f 6e | ...................(if.dest.(con |
| 72a20 | 63 61 74 20 28 70 74 68 20 22 2c 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 22 29 20 64 65 73 74 29 | cat.(pth.",.response.to.").dest) |
| 72a40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | ........................(concat. |
| 72a60 | 28 70 74 68 20 22 2c 20 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 | (pth.",.insert.response.at.point |
| 72a80 | 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 79 22 20 | "))))).............((member."y". |
| 72aa0 | 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 | args)..............(concat.(pth. |
| 72ac0 | 22 53 65 6e 64 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 22 29 0a 09 09 20 20 20 20 20 28 63 6f 6e | "Send.prompt.from.")........(con |
| 72ae0 | 63 61 74 20 28 70 74 76 20 22 6b 69 6c 6c 2d 72 69 6e 67 20 28 22 29 0a 09 09 09 20 20 20 20 20 | cat.(ptv."kill-ring.(")......... |
| 72b00 | 28 69 66 2d 6c 65 74 2a 20 28 28 76 61 6c 20 28 63 61 72 2d 73 61 66 65 20 6b 69 6c 6c 2d 72 69 | (if-let*.((val.(car-safe.kill-ri |
| 72b20 | 6e 67 29 29 0a 09 09 09 09 20 20 20 20 20 20 20 28 76 61 6c 20 28 73 75 62 73 74 72 69 6e 67 2d | ng))............(val.(substring- |
| 72b40 | 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 76 61 6c 29 29 0a 09 09 09 09 20 20 20 20 20 20 20 28 | no-properties.val))............( |
| 72b60 | 6c 65 6e 20 28 6c 65 6e 67 74 68 20 76 61 6c 29 29 29 0a 09 09 09 09 20 28 70 74 76 20 28 63 6f | len.(length.val)))......(ptv.(co |
| 72b80 | 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ncat............................ |
| 72ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 22 22 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 | ............"\"".(string-replace |
| 72bc0 | 0a 09 09 09 09 09 20 20 20 20 20 22 5c 6e 22 20 22 e2 ae 90 22 0a 09 09 09 09 09 20 20 20 20 20 | ..........."\n"."..."........... |
| 72be0 | 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 09 09 09 09 09 20 | (truncate-string-to-width....... |
| 72c00 | 20 20 20 20 20 76 61 6c 20 32 30 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 09 09 09 09 20 20 20 20 | .....val.20.nil.nil.t))......... |
| 72c20 | 20 20 20 22 5c 22 22 20 28 77 68 65 6e 20 28 3e 20 6c 65 6e 20 32 30 29 0a 09 09 09 09 09 20 20 | ..."\"".(when.(>.len.20)........ |
| 72c40 | 20 20 20 20 28 63 6f 6e 63 61 74 0a 09 09 09 09 09 20 20 20 20 20 20 20 22 2c 20 22 0a 09 09 09 | ....(concat.............",.".... |
| 72c60 | 09 09 20 20 20 20 20 20 20 28 66 69 6c 65 2d 73 69 7a 65 2d 68 75 6d 61 6e 2d 72 65 61 64 61 62 | .........(file-size-human-readab |
| 72c80 | 6c 65 20 6c 65 6e 20 27 73 69 20 22 20 22 29 0a 09 09 09 09 09 20 20 20 20 20 20 20 22 20 63 68 | le.len.'si.".").............".ch |
| 72ca0 | 61 72 73 22 29 29 29 29 0a 09 09 09 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 65 6d | ars")))).........(propertize."em |
| 72cc0 | 70 74 79 22 20 27 66 61 63 65 20 27 65 72 72 6f 72 29 29 0a 09 09 09 20 20 20 28 70 74 76 20 22 | pty".'face.'error)).......(ptv." |
| 72ce0 | 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 | )"))......................contex |
| 72d00 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 73 74 20 | t......................(if.dest. |
| 72d20 | 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 22 29 20 64 | (concat.(pth.",.response.to.").d |
| 72d40 | 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | est)........................(con |
| 72d60 | 63 61 74 20 28 70 74 68 20 22 2c 20 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 | cat.(pth.",.insert.response.at.p |
| 72d80 | 6f 69 6e 74 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 | oint"))))).............((member. |
| 72da0 | 22 69 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 | "i".args)..............(let*.((r |
| 72dc0 | 65 67 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | eg.(use-region-p)).............. |
| 72de0 | 20 20 20 20 20 20 20 28 73 72 63 20 28 70 74 76 20 28 69 66 20 72 65 67 20 22 73 65 6c 65 63 74 | .......(src.(ptv.(if.reg."select |
| 72e00 | 69 6f 6e 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ion".(buffer-name))))).......... |
| 72e20 | 20 20 20 20 20 20 28 69 66 20 64 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 6e | ......(if.dest.(concat.(pth."Sen |
| 72e40 | 64 20 22 29 20 73 72 63 20 6c 74 65 78 74 20 63 6f 6e 74 65 78 74 20 28 70 74 68 20 22 2c 20 77 | d.").src.ltext.context.(pth.",.w |
| 72e60 | 69 74 68 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ith.response.to.").............. |
| 72e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 76 20 64 65 73 74 29 20 28 70 | ...................(ptv.dest).(p |
| 72ea0 | 74 68 20 22 3b 20 6b 69 6c 6c 22 29 20 6c 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | th.";.kill").ltext.............. |
| 72ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 72 65 67 | ...................(and.(not.reg |
| 72ee0 | 29 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 20 69 6e 20 22 29 20 73 72 63 29 29 29 0a 20 20 | ).(concat.(pth.".in.").src)))... |
| 72f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 52 65 70 | ...............(concat.(pth."Rep |
| 72f20 | 6c 61 63 65 20 22 29 20 73 72 63 20 6c 74 65 78 74 20 28 70 74 68 20 22 20 77 69 74 68 20 72 65 | lace.").src.ltext.(pth.".with.re |
| 72f40 | 73 70 6f 6e 73 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sponse")........................ |
| 72f60 | 20 20 28 61 6e 64 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(and.context.................. |
| 72f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 20 28 20 77 69 | .............(concat.(pth.".(.wi |
| 72fa0 | 74 68 22 29 20 28 73 75 62 73 74 72 69 6e 67 20 63 6f 6e 74 65 78 74 20 31 31 29 20 22 20 29 22 | th").(substring.context.11).".)" |
| 72fc0 | 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d | )))))).............((use-region- |
| 72fe0 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 | p)..............(concat.(pth."Se |
| 73000 | 6e 64 20 22 29 20 28 70 74 76 20 22 73 65 6c 65 63 74 69 6f 6e 22 29 20 6c 74 65 78 74 0a 20 20 | nd.").(ptv."selection").ltext... |
| 73020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 20 28 69 66 20 64 | ...................context.(if.d |
| 73040 | 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 77 69 74 68 20 72 65 73 70 6f 6e 73 | est.(concat.(pth.",.with.respons |
| 73060 | 65 20 74 6f 20 22 29 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.to.").dest)................... |
| 73080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 69 6e 73 | .............(concat.(pth.",.ins |
| 730a0 | 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 72 65 67 69 6f 6e 20 65 6e 64 22 29 29 29 29 29 | ert.response.at.region.end"))))) |
| 730c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 | .............(t.(concat.(pth."Se |
| 730e0 | 6e 64 20 22 29 20 28 70 74 76 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 20 6c 74 65 78 74 0a | nd.").(ptv.(buffer-name)).ltext. |
| 73100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 20 28 | .......................context.( |
| 73120 | 69 66 20 64 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 77 69 74 68 20 72 65 73 | if.dest.(concat.(pth.",.with.res |
| 73140 | 70 6f 6e 73 65 20 74 6f 20 22 29 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ponse.to.").dest)............... |
| 73160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 | ...................(concat.(pth. |
| 73180 | 22 2c 20 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 29 29 29 | ",.insert.response.at.point")))) |
| 731a0 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 | )))))..(defun.gptel--format-pres |
| 731c0 | 65 74 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 70 72 65 73 65 | et-string.()..."Format.the.prese |
| 731e0 | 74 20 69 6e 64 69 63 61 74 6f 72 20 64 69 73 70 6c 61 79 20 66 6f 72 20 60 67 70 74 65 6c 2d 6d | t.indicator.display.for.`gptel-m |
| 73200 | 65 6e 75 27 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 | enu'."...(if.(and.gptel--known-p |
| 73220 | 72 65 73 65 74 73 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 28 61 70 70 | resets.gptel--preset).......(app |
| 73240 | 6c 79 0a 20 20 20 20 20 20 20 23 27 66 6f 72 6d 61 74 20 22 20 28 25 73 25 73 29 22 0a 20 20 20 | ly........#'format.".(%s%s)".... |
| 73260 | 20 20 20 20 28 6c 65 74 20 28 28 6d 69 73 6d 61 74 63 68 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 | ....(let.((mismatch.(gptel--pres |
| 73280 | 65 74 2d 6d 69 73 6d 61 74 63 68 2d 70 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 29 29 0a 20 | et-mismatch-p.gptel--preset))).. |
| 732a0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 40 22 20 27 66 | ........(list.(propertize."@".'f |
| 732c0 | 61 63 65 20 28 69 66 20 6d 69 73 6d 61 74 63 68 20 27 74 72 61 6e 73 69 65 6e 74 2d 6b 65 79 0a | ace.(if.mismatch.'transient-key. |
| 732e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 73300 | 20 20 20 20 20 20 20 27 28 20 3a 69 6e 68 65 72 69 74 20 74 72 61 6e 73 69 65 6e 74 2d 6b 65 79 | .......'(.:inherit.transient-key |
| 73320 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 73340 | 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 68 65 72 69 74 20 73 65 63 6f 6e 64 61 72 79 2d 73 65 | ...........:inherit.secondary-se |
| 73360 | 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lection......................... |
| 73380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 6f 78 20 2d 31 20 3a 77 65 69 67 68 | ..................:box.-1.:weigh |
| 733a0 | 74 20 62 6f 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 | t.bold)))................(proper |
| 733c0 | 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 | tize.(format."%s".gptel--preset) |
| 733e0 | 20 27 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'face.......................... |
| 73400 | 20 20 28 69 66 20 6d 69 73 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(if.mismatch.................. |
| 73420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 69 6e 68 65 72 69 74 20 77 61 72 6e 69 6e 67 | ..............'(:inherit.warning |
| 73440 | 20 3a 73 74 72 69 6b 65 2d 74 68 72 6f 75 67 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:strike-through.t)............. |
| 73460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 69 6e 68 65 72 69 74 20 73 65 63 6f | .................'(:inherit.seco |
| 73480 | 6e 64 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 20 3a 62 6f 78 20 2d 31 29 29 29 29 29 29 0a 20 20 | ndary-selection.:box.-1))))))... |
| 734a0 | 20 20 28 66 6f 72 6d 61 74 20 22 20 28 25 73 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..(format.".(%s%s)"............. |
| 734c0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 22 40 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 | (propertize."@".'face.'transient |
| 734e0 | 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 70 | -key).............(propertize."p |
| 73500 | 72 65 73 65 74 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 | reset".'face.'transient-inactive |
| 73520 | 2d 76 61 6c 75 65 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 63 6c 61 | -value))))....;;.*.Transient.cla |
| 73540 | 73 73 65 73 20 61 6e 64 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 67 70 74 65 6c 0a 0a 3b 3b 20 2a | sses.and.methods.for.gptel..;;.* |
| 73560 | 2a 20 43 6c 61 73 73 20 66 6f 72 20 67 65 6e 65 72 69 63 20 67 70 74 65 6c 20 65 6c 69 73 70 20 | *.Class.for.generic.gptel.elisp. |
| 73580 | 76 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 6c 69 73 70 2d | variables..(defclass.gptel-lisp- |
| 735a0 | 76 61 72 69 61 62 6c 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c | variable.(transient-lisp-variabl |
| 735c0 | 65 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 | e)...((display-nil.:initarg.:dis |
| 735e0 | 70 6c 61 79 2d 6e 69 6c 29 20 20 3b 53 74 72 69 6e 67 20 74 6f 20 64 69 73 70 6c 61 79 20 69 66 | play-nil)..;String.to.display.if |
| 73600 | 20 76 61 6c 75 65 20 69 66 20 6e 69 6c 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 6d 61 70 20 3a 69 | .value.if.nil....(display-map.:i |
| 73620 | 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 | nitarg.:display-map.:initform.ni |
| 73640 | 6c 29 29 20 3b 44 69 73 70 6c 61 79 20 73 74 72 69 6e 67 20 66 72 6f 6d 20 61 6c 69 73 74 20 64 | l)).;Display.string.from.alist.d |
| 73660 | 69 73 70 6c 61 79 2d 6d 61 70 0a 20 20 22 4c 69 73 70 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 | isplay-map..."Lisp.variables.tha |
| 73680 | 74 20 73 68 6f 77 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 6e | t.show.:display-nil.instead.of.n |
| 736a0 | 69 6c 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 | il.")..(cl-defmethod.transient-f |
| 736c0 | 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 | ormat-value.((obj.gptel-lisp-var |
| 736e0 | 69 61 62 6c 65 29 29 0a 20 20 28 6c 65 74 20 28 28 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 0a 20 | iable))...(let.((display-value.. |
| 73700 | 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 20 64 69 73 70 6c | ........(with-slots.(value.displ |
| 73720 | 61 79 2d 6e 69 6c 20 64 69 73 70 6c 61 79 2d 6d 61 70 29 20 6f 62 6a 0a 20 20 20 20 20 20 20 20 | ay-nil.display-map).obj......... |
| 73740 | 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 64 69 73 70 6c 61 79 2d 6e | ...(cond.((null.value).display-n |
| 73760 | 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 6d 61 | il)..................(display-ma |
| 73780 | 70 20 28 6f 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d | p.(or.(cdr.(assoc.value.display- |
| 737a0 | 6d 61 70 29 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | map)).value))..................( |
| 737c0 | 74 20 76 61 6c 75 65 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 | t.value))))).....(propertize.... |
| 737e0 | 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 29 20 64 69 | ..(if.(stringp.display-value).di |
| 73800 | 73 70 6c 61 79 2d 76 61 6c 75 65 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 64 69 73 | splay-value.(prin1-to-string.dis |
| 73820 | 70 6c 61 79 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 | play-value))......'face.'transie |
| 73840 | 6e 74 2d 76 61 6c 75 65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 | nt-value)))..(cl-defmethod.trans |
| 73860 | 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 6c 69 73 70 2d | ient-infix-set.((obj.gptel-lisp- |
| 73880 | 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 | variable).value)...(funcall.(ore |
| 738a0 | 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 | f.obj.set-value)............(ore |
| 738c0 | 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 | f.obj.variable)............(oset |
| 738e0 | 20 6f 62 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 74 | .obj.value.value)............gpt |
| 73900 | 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 0a 3b 3b 20 2a 2a 20 | el--set-buffer-locally))..;;.**. |
| 73920 | 43 6c 61 73 73 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 20 74 6f 6f 6c 73 0a 0a | Class.for.managing.gptel.tools.. |
| 73940 | 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 20 28 74 72 61 6e 73 69 65 | (defclass.gptel--switch.(transie |
| 73960 | 6e 74 2d 73 77 69 74 63 68 29 0a 20 20 28 28 63 61 74 65 67 6f 72 79 20 3a 69 6e 69 74 61 72 67 | nt-switch)...((category.:initarg |
| 73980 | 20 3a 63 61 74 65 67 6f 72 79 29 29 0a 20 20 22 43 6c 61 73 73 20 75 73 65 64 20 66 6f 72 20 61 | .:category))..."Class.used.for.a |
| 739a0 | 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 73 68 61 72 65 20 61 20 63 61 74 65 67 6f 72 79 2e 22 | rguments.that.share.a.category." |
| 739c0 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 | )..(cl-defmethod.transient-infix |
| 739e0 | 2d 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 29 20 76 61 6c 75 65 29 | -set.((obj.gptel--switch).value) |
| 73a00 | 0a 20 20 22 53 65 74 20 56 41 4c 55 45 20 6f 66 20 61 20 60 67 70 74 65 6c 2d 2d 73 77 69 74 63 | ..."Set.VALUE.of.a.`gptel--switc |
| 73a20 | 68 27 20 4f 42 4a 2e 0a 0a 49 74 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 63 61 74 | h'.OBJ...It.is.a.list.of.the.cat |
| 73a40 | 65 67 6f 72 79 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 2c 20 65 2e 67 2e 0a 20 28 5c 22 66 69 6c | egory.and.argument,.e.g...(\"fil |
| 73a60 | 65 73 79 73 74 65 6d 5c 22 20 5c 22 72 65 61 64 5f 66 69 6c 65 5c 22 29 2e 22 0a 20 20 28 6c 65 | esystem\".\"read_file\")."...(le |
| 73a80 | 74 20 28 28 73 74 61 74 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 29 0a 20 20 20 | t.((state.(transient-scope)).... |
| 73aa0 | 20 20 20 20 20 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 | .....(category.(oref.obj.categor |
| 73ac0 | 79 29 29 29 0a 20 20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 | y))).....(if.value.........(prog |
| 73ae0 | 6e 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 6c 69 73 74 20 63 61 | n...........(cl-pushnew.(list.ca |
| 73b00 | 74 65 67 6f 72 79 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tegory.value)................... |
| 73b20 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 20 3a 74 65 | ....(plist-get.state.:tools).:te |
| 73b40 | 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 | st.#'equal)...........(oset.obj. |
| 73b60 | 76 61 6c 75 65 20 28 6c 69 73 74 20 63 61 74 65 67 6f 72 79 20 76 61 6c 75 65 29 29 29 0a 20 20 | value.(list.category.value)))... |
| 73b80 | 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 | ....(plist-put.state.:tools..... |
| 73ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 20 28 6c 69 73 74 20 63 61 74 65 67 | .............(delete.(list.categ |
| 73bc0 | 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 | ory.(oref.obj.argument))........ |
| 73be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 | ..................(plist-get.sta |
| 73c00 | 74 65 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c | te.:tools))).......(oset.obj.val |
| 73c20 | 75 65 20 6e 69 6c 29 29 0a 20 20 20 20 28 6f 73 65 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 | ue.nil)).....(oset.transient--pr |
| 73c40 | 65 66 69 78 20 73 63 6f 70 65 20 73 74 61 74 65 29 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 | efix.scope.state)))..;;.**.Class |
| 73c60 | 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 20 74 6f 6f 6c 20 63 61 74 65 67 6f 72 | .for.managing.gptel.tool.categor |
| 73c80 | 69 65 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 | ies..(defclass.gptel--switch-cat |
| 73ca0 | 65 67 6f 72 79 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 77 69 74 63 68 29 0a 20 20 28 28 63 61 74 | egory.(transient-switch)...((cat |
| 73cc0 | 65 67 6f 72 79 20 3a 69 6e 69 74 61 72 67 20 3a 63 61 74 65 67 6f 72 79 29 29 0a 20 20 22 43 6c | egory.:initarg.:category))..."Cl |
| 73ce0 | 61 73 73 20 75 73 65 64 20 66 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 73 77 69 74 | ass.used.for.arguments.that.swit |
| 73d00 | 63 68 20 61 20 67 72 6f 75 70 20 6f 66 20 6f 74 68 65 72 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a | ch.a.group.of.other.arguments... |
| 73d20 | 54 68 65 69 72 20 6f 77 6e 20 76 61 6c 75 65 20 69 73 20 69 67 6e 6f 72 65 64 22 29 0a 0a 28 63 | Their.own.value.is.ignored")..(c |
| 73d40 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c | l-defmethod.transient-format-val |
| 73d60 | 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 | ue.((obj.gptel--switch-category) |
| 73d80 | 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 | )...(let*.((category.(oref.obj.c |
| 73da0 | 61 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 63 74 69 76 65 2d 63 6f 75 6e 74 | ategory))..........(active-count |
| 73dc0 | 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 6f 75 6e 74 2d 69 66 20 28 6c 61 6d 62 64 61 20 | ...........(cl-count-if.(lambda. |
| 73de0 | 28 74 6c 29 20 28 65 71 75 61 6c 20 28 63 61 72 20 74 6c 29 20 63 61 74 65 67 6f 72 79 29 29 0a | (tl).(equal.(car.tl).category)). |
| 73e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 | .......................(plist-ge |
| 73e20 | 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 | t.(transient-scope).:tools)))... |
| 73e40 | 20 20 20 20 20 20 20 28 74 6f 74 61 6c 2d 63 6f 75 6e 74 20 28 6c 65 6e 67 74 68 20 28 63 64 72 | .......(total-count.(length.(cdr |
| 73e60 | 20 28 61 73 73 6f 63 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f | .(assoc.category.gptel--known-to |
| 73e80 | 6f 6c 73 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 61 63 74 69 76 65 2d 63 6f 75 6e 74 | ols))))).....(if.(>.active-count |
| 73ea0 | 20 30 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 | .0).........(propertize.(format. |
| 73ec0 | 22 28 25 64 2f 25 64 29 22 20 61 63 74 69 76 65 2d 63 6f 75 6e 74 20 74 6f 74 61 6c 2d 63 6f 75 | "(%d/%d)".active-count.total-cou |
| 73ee0 | 6e 74 29 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 | nt).'face.'transient-value)..... |
| 73f00 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 28 30 2f 25 64 29 22 20 74 | ..(propertize.(format."(0/%d)".t |
| 73f20 | 6f 74 61 6c 2d 63 6f 75 6e 74 29 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 | otal-count).'face.'transient-ina |
| 73f40 | 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a 3b 3b 20 50 72 65 73 73 69 6e 67 20 61 20 74 | ctive-value))))..;;.Pressing.a.t |
| 73f60 | 6f 6f 6c 20 63 61 74 65 67 6f 72 79 20 6b 65 79 20 73 68 6f 75 6c 64 20 68 61 76 65 20 64 69 66 | ool.category.key.should.have.dif |
| 73f80 | 66 65 72 65 6e 74 20 62 65 68 61 76 69 6f 72 73 20 69 6e 20 64 69 66 66 65 72 65 6e 74 0a 3b 3b | ferent.behaviors.in.different.;; |
| 73fa0 | 20 63 6f 6e 74 65 78 74 73 3a 0a 3b 3b 20 2d 20 49 66 20 74 68 65 20 74 6f 6f 6c 73 20 66 6f 72 | .contexts:.;;.-.If.the.tools.for |
| 73fc0 | 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 61 72 65 20 6e 6f 74 20 73 68 6f 77 6e 2c 20 73 68 6f | .the.category.are.not.shown,.sho |
| 73fe0 | 77 20 74 68 65 6d 2c 20 64 6f 20 6e 6f 74 68 69 6e 67 20 65 6c 73 65 0a 3b 3b 20 2d 20 49 66 20 | w.them,.do.nothing.else.;;.-.If. |
| 74000 | 74 68 65 20 74 6f 6f 6c 73 20 61 72 65 20 73 68 6f 77 69 6e 67 20 61 6e 64 20 61 6e 79 20 6f 66 | the.tools.are.showing.and.any.of |
| 74020 | 20 74 68 65 6d 20 61 72 65 20 73 65 6c 65 63 74 65 64 2c 20 64 65 73 65 6c 65 63 74 20 61 6c 6c | .them.are.selected,.deselect.all |
| 74040 | 0a 3b 3b 20 2d 20 49 66 20 74 68 65 20 74 6f 6f 6c 73 20 61 72 65 20 73 68 6f 77 69 6e 67 20 61 | .;;.-.If.the.tools.are.showing.a |
| 74060 | 6e 64 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 20 61 72 65 20 73 65 6c 65 63 74 65 64 2c 20 73 65 | nd.none.of.them.are.selected,.se |
| 74080 | 6c 65 63 74 20 61 6c 6c 0a 0a 3b 3b 20 54 6f 20 64 6f 20 74 68 69 73 20 77 65 20 69 6e 64 65 70 | lect.all..;;.To.do.this.we.indep |
| 740a0 | 65 6e 64 65 6e 74 6c 79 20 74 72 61 63 6b 20 77 68 65 74 68 65 72 20 74 68 65 20 63 61 74 65 67 | endently.track.whether.the.categ |
| 740c0 | 6f 72 79 20 74 6f 6f 6c 73 20 61 72 65 20 76 69 73 69 62 6c 65 0a 3b 3b 20 28 22 61 63 74 69 76 | ory.tools.are.visible.;;.("activ |
| 740e0 | 65 22 29 2c 20 61 6e 64 20 77 68 65 74 68 65 72 20 61 6e 79 20 63 61 74 65 67 6f 72 79 20 74 6f | e"),.and.whether.any.category.to |
| 74100 | 6f 6c 73 20 68 61 76 65 20 62 65 65 6e 20 22 73 65 6c 65 63 74 65 64 22 3a 0a 28 63 6c 2d 64 65 | ols.have.been."selected":.(cl-de |
| 74120 | 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f | fmethod.transient-infix-read.((o |
| 74140 | 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 29 0a 20 20 22 44 | bj.gptel--switch-category))..."D |
| 74160 | 65 74 65 72 6d 69 6e 65 20 4f 42 4a 20 76 61 6c 75 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 | etermine.OBJ.value.according.to. |
| 74180 | 63 61 74 65 67 6f 72 79 20 74 6f 67 67 6c 65 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 6c 65 | category.toggle.settings."...(le |
| 741a0 | 74 2a 20 28 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 | t*.((category.(oref.obj.category |
| 741c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 63 74 69 76 65 20 28 65 71 75 61 6c 20 63 61 74 65 67 | ))..........(active.(equal.categ |
| 741e0 | 6f 72 79 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 | ory.(plist-get.(transient-scope) |
| 74200 | 20 3a 63 61 74 65 67 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 65 64 | .:category)))..........(selected |
| 74220 | 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 73 70 65 63 29 20 28 65 | .(cl-some.(lambda.(tool-spec).(e |
| 74240 | 71 75 61 6c 20 63 61 74 65 67 6f 72 79 20 28 63 61 72 20 74 6f 6f 6c 2d 73 70 65 63 29 29 29 0a | qual.category.(car.tool-spec))). |
| 74260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | ............................(pli |
| 74280 | 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 74 6f 6f 6c 73 29 | st-get.(transient-scope).:tools) |
| 742a0 | 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 | ))).....(if.(not.active)........ |
| 742c0 | 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 28 69 66 20 73 65 6c 65 | .(oref.obj.value).......(if.sele |
| 742e0 | 63 74 65 64 20 6e 69 6c 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 29 29 29 | cted.nil.(oref.obj.argument))))) |
| 74300 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d | ..(cl-defmethod.transient-infix- |
| 74320 | 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 | set.((obj.gptel--switch-category |
| 74340 | 29 20 76 61 6c 75 65 29 0a 20 20 22 57 68 65 6e 20 73 65 74 74 69 6e 67 20 56 41 4c 55 45 2c 20 | ).value)..."When.setting.VALUE,. |
| 74360 | 73 65 74 20 61 6c 6c 20 6f 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 | set.all.options.in.the.category. |
| 74380 | 6f 66 20 4f 42 4a 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 73 75 66 66 69 78 2d 6f 62 6a 20 74 | of.OBJ."...(dolist.(suffix-obj.t |
| 743a0 | 72 61 6e 73 69 65 6e 74 2d 2d 73 75 66 66 69 78 65 73 29 0a 20 20 20 20 3b 3b 20 46 69 6e 64 20 | ransient--suffixes).....;;.Find. |
| 743c0 | 61 6c 6c 20 73 75 66 66 69 78 65 73 20 74 68 61 74 20 68 61 76 65 20 74 68 69 73 20 63 61 74 65 | all.suffixes.that.have.this.cate |
| 743e0 | 67 6f 72 79 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 28 63 6c 2d 74 79 70 65 70 20 | gory.....(when-let*.(((cl-typep. |
| 74400 | 73 75 66 66 69 78 2d 6f 62 6a 20 27 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 29 29 0a 20 20 20 20 | suffix-obj.'gptel--switch))..... |
| 74420 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 28 6f 72 65 66 20 73 75 66 66 69 78 | ............((equal.(oref.suffix |
| 74440 | 2d 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -obj.category).................. |
| 74460 | 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 29 29 0a 20 20 20 | .......(oref.obj.category))).... |
| 74480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 20 28 69 66 20 28 73 6c 6f 74 2d 62 6f 75 6e | .............(arg.(if.(slot-boun |
| 744a0 | 64 70 20 73 75 66 66 69 78 2d 6f 62 6a 20 27 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 | dp.suffix-obj.'argument)........ |
| 744c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 73 75 66 66 69 78 2d 6f | ..................(oref.suffix-o |
| 744e0 | 62 6a 20 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bj.argument).................... |
| 74500 | 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 2d 66 6f 72 6d 61 74 29 29 29 | ....(oref.obj.argument-format))) |
| 74520 | 29 0a 20 20 20 20 20 20 28 69 66 20 76 61 6c 75 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).......(if.value............... |
| 74540 | 20 20 20 20 20 20 20 20 20 20 3b 20 54 75 72 6e 20 6f 6e 2f 6f 66 66 20 61 6c 6c 20 6d 65 6d 62 | ..........;.Turn.on/off.all.memb |
| 74560 | 65 72 73 20 69 6e 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 | ers.in.category...........(trans |
| 74580 | 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 73 75 66 66 69 78 2d 6f 62 6a 20 61 72 67 29 0a 20 | ient-infix-set.suffix-obj.arg).. |
| 745a0 | 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 73 75 66 66 | .......(transient-infix-set.suff |
| 745c0 | 69 78 2d 6f 62 6a 20 6e 69 6c 29 29 29 29 0a 20 20 3b 3b 20 55 70 64 61 74 65 20 74 68 65 20 61 | ix-obj.nil))))...;;.Update.the.a |
| 745e0 | 63 74 69 76 65 20 6d 65 6e 75 20 63 61 74 65 67 6f 72 79 20 61 6e 64 20 6b 65 79 20 69 6e 20 74 | ctive.menu.category.and.key.in.t |
| 74600 | 68 65 20 70 72 65 66 69 78 20 73 63 6f 70 65 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 | he.prefix.scope...(plist-put.(tr |
| 74620 | 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f | ansient-scope).:category.(oref.o |
| 74640 | 62 6a 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 61 6e | bj.category))...(plist-put.(tran |
| 74660 | 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 6b 65 79 20 28 6f 72 65 66 20 6f 62 6a 20 6b 65 79 29 | sient-scope).:key.(oref.obj.key) |
| 74680 | 29 0a 20 20 3b 3b 20 46 69 6e 61 6c 6c 79 20 73 65 74 20 74 68 65 20 22 76 61 6c 75 65 22 20 6f | )...;;.Finally.set.the."value".o |
| 746a0 | 66 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 69 74 73 65 6c 66 0a 20 20 28 6f 73 65 74 20 6f 62 | f.the.category.itself...(oset.ob |
| 746c0 | 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 20 66 6f 72 | j.value.value))..;;.**.Class.for |
| 746e0 | 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 74 68 72 65 65 2d 77 61 | .gptel.options.that.are.three-wa |
| 74700 | 79 20 73 77 69 74 63 68 65 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 | y.switches..(defclass.gptel--swi |
| 74720 | 74 63 68 65 73 20 28 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 | tches.(gptel-lisp-variable)...(( |
| 74740 | 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 | display-if-true.:initarg.:displa |
| 74760 | 79 2d 69 66 2d 74 72 75 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 54 72 75 65 22 29 0a 20 20 20 28 | y-if-true.:initform."True")....( |
| 74780 | 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c | display-if-false.:initarg.:displ |
| 747a0 | 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 46 61 6c 73 65 22 29 29 0a | ay-if-false.:initform."False")). |
| 747c0 | 20 20 22 42 6f 6f 6c 65 61 6e 20 6c 69 73 70 20 76 61 72 69 61 62 6c 65 20 63 6c 61 73 73 20 66 | .."Boolean.lisp.variable.class.f |
| 747e0 | 6f 72 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | or.gptel-transient.")..(cl-defme |
| 74800 | 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a 20 | thod.transient-infix-read.((obj. |
| 74820 | 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 | gptel--switches))..."Cycle.throu |
| 74840 | 67 68 20 74 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 20 73 77 69 74 63 68 | gh.the.mutually.exclusive.switch |
| 74860 | 65 73 2e 22 0a 20 20 28 6e 6f 74 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 29 0a 0a | es."...(not.(oref.obj.value))).. |
| 74880 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 | (cl-defmethod.transient-format-v |
| 748a0 | 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 28 | alue.((obj.gptel--switches))...( |
| 748c0 | 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 | with-slots.(value.display-if-tru |
| 748e0 | 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 29 20 6f 62 6a 0a 20 20 20 20 20 20 28 66 | e.display-if-false).obj.......(f |
| 74900 | 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 25 73 29 22 20 | ormat........(propertize."(%s)". |
| 74920 | 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 | 'face.'transient-delimiter)..... |
| 74940 | 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 64 | ...(concat.........(propertize.d |
| 74960 | 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | isplay-if-false................. |
| 74980 | 20 20 20 20 27 66 61 63 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 | ....'face.(if.value.'transient-i |
| 749a0 | 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 | nactive-value.'transient-value)) |
| 749c0 | 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 7c 22 20 27 66 61 63 65 20 27 | .........(propertize."|".'face.' |
| 749e0 | 74 72 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 | transient-delimiter).........(pr |
| 74a00 | 6f 70 65 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 | opertize.display-if-true........ |
| 74a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 | .............'face.(if.value.'tr |
| 74a40 | 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 | ansient-value.'transient-inactiv |
| 74a60 | 65 2d 76 61 6c 75 65 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 20 66 6f 72 20 67 | e-value))))))..;;.**.Class.for.g |
| 74a80 | 70 74 65 6c 27 73 20 73 63 6f 70 65 20 6d 61 6e 61 67 65 6d 65 6e 74 2c 20 73 69 6e 67 6c 65 74 | ptel's.scope.management,.singlet |
| 74aa0 | 6f 6e 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 20 28 67 70 74 65 | on..(defclass.gptel--scope.(gpte |
| 74ac0 | 6c 2d 2d 73 77 69 74 63 68 65 73 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 | l--switches)...((display-if-true |
| 74ae0 | 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 3a 69 6e 69 74 | .:initarg.:display-if-true.:init |
| 74b00 | 66 6f 72 6d 20 22 62 75 66 66 65 72 22 29 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 | form."buffer")....(display-if-fa |
| 74b20 | 6c 73 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a | lse.:initarg.:display-if-false.: |
| 74b40 | 69 6e 69 74 66 6f 72 6d 20 22 67 6c 6f 62 61 6c 22 29 29 0a 20 20 22 53 69 6e 67 6c 65 74 6f 6e | initform."global"))..."Singleton |
| 74b60 | 20 6c 69 73 70 20 76 61 72 69 61 62 6c 65 20 63 6c 61 73 73 20 66 6f 72 20 60 67 70 74 65 6c 2d | .lisp.variable.class.for.`gptel- |
| 74b80 | 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 27 2e 0a 0a 54 68 69 73 20 69 73 20 75 | -set-buffer-locally'...This.is.u |
| 74ba0 | 73 65 64 20 6f 6e 6c 79 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 68 69 73 20 76 61 72 69 61 62 | sed.only.for.setting.this.variab |
| 74bc0 | 6c 65 20 76 69 61 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d | le.via.`gptel-menu'.")..(cl-defm |
| 74be0 | 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a | ethod.transient-infix-read.((obj |
| 74c00 | 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 29 29 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 67 68 | .gptel--scope))..."Cycle.through |
| 74c20 | 20 74 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 20 73 77 69 74 63 68 65 73 | .the.mutually.exclusive.switches |
| 74c40 | 2e 22 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 29 20 6f 62 6a 0a 20 20 20 | ."...(with-slots.(value).obj.... |
| 74c60 | 20 28 70 63 61 73 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 28 27 74 20 28 6d 65 73 73 61 67 65 | .(pcase.value.......('t.(message |
| 74c80 | 20 22 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 65 74 20 66 6f 72 20 74 68 65 | ."Parameters.will.be.set.for.the |
| 74ca0 | 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 22 29 29 0a 20 20 20 20 20 20 28 27 6e 69 | .next.request.only")).......('ni |
| 74cc0 | 6c 20 28 6d 65 73 73 61 67 65 20 22 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 | l.(message."Parameters.will.be.s |
| 74ce0 | 65 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 22 29 29 0a 20 20 20 20 20 20 28 31 20 28 6d | et.buffer-locally")).......(1.(m |
| 74d00 | 65 73 73 61 67 65 20 22 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 65 74 20 67 | essage."Parameters.will.be.set.g |
| 74d20 | 6c 6f 62 61 6c 6c 79 22 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 76 61 6c 75 65 20 28 27 74 | lobally"))).....(pcase.value.('t |
| 74d40 | 20 31 29 20 28 27 6e 69 6c 20 74 29 20 28 31 20 6e 69 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | .1).('nil.t).(1.nil))))..(cl-def |
| 74d60 | 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 | method.transient-format-value.(( |
| 74d80 | 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 29 29 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 | obj.gptel--scope))...(with-slots |
| 74da0 | 20 28 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 64 69 73 70 6c 61 79 2d | .(value.display-if-true.display- |
| 74dc0 | 69 66 2d 66 61 6c 73 65 29 20 6f 62 6a 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 | if-false).obj.......(format..... |
| 74de0 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 25 73 29 22 20 27 66 61 63 65 20 27 74 72 61 | ...(propertize."(%s)".'face.'tra |
| 74e00 | 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 | nsient-delimiter)........(concat |
| 74e20 | 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d | .........(propertize.display-if- |
| 74e40 | 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 | false.....................'face. |
| 74e60 | 28 69 66 20 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 | (if.(null.value).'transient-valu |
| 74e80 | 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 0a 20 20 | e.'transient-inactive-value))... |
| 74ea0 | 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 7c 22 20 27 66 61 63 65 20 27 74 72 61 | ......(propertize."|".'face.'tra |
| 74ec0 | 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 | nsient-delimiter).........(prope |
| 74ee0 | 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 | rtize.display-if-true........... |
| 74f00 | 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 66 20 28 65 71 20 76 61 6c 75 65 20 74 29 | ..........'face.(if.(eq.value.t) |
| 74f20 | 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 | .'transient-value.'transient-ina |
| 74f40 | 63 74 69 76 65 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a | ctive-value)).........(propertiz |
| 74f60 | 65 20 22 7c 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 | e."|".'face.'transient-delimiter |
| 74f80 | 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 6f 6e 65 73 68 6f 74 22 20 | ).........(propertize."oneshot". |
| 74fa0 | 27 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 | 'face.....................(if.(e |
| 74fc0 | 71 6c 20 76 61 6c 75 65 20 31 29 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 | ql.value.1).'transient-value.'tr |
| 74fe0 | 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 29 29 0a 0a 28 63 | ansient-inactive-value))))))..(c |
| 75000 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 | l-defmethod.transient-infix-set. |
| 75020 | 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 | ((obj.gptel--scope).value)...(fu |
| 75040 | 6e 63 61 6c 6c 20 28 6f 72 65 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 | ncall.(oref.obj.set-value)...... |
| 75060 | 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 | ......(oref.obj.variable)....... |
| 75080 | 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 29 29 0a 0a 3b | .....(oset.obj.value.value)))..; |
| 750a0 | 3b 20 2a 2a 20 43 6c 61 73 73 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 27 73 20 | ;.**.Class.for.managing.gptel's. |
| 750c0 | 62 61 63 6b 65 6e 64 20 61 6e 64 20 6d 6f 64 65 6c 2c 20 73 69 6e 67 6c 65 74 6f 6e 0a 0a 28 64 | backend.and.model,.singleton..(d |
| 750e0 | 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 20 | efclass.gptel-provider-variable. |
| 75100 | 28 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 62 61 | (transient-lisp-variable)...((ba |
| 75120 | 63 6b 65 6e 64 20 20 20 20 20 20 20 3a 69 6e 69 74 61 72 67 20 3a 62 61 63 6b 65 6e 64 29 0a 20 | ckend.......:initarg.:backend).. |
| 75140 | 20 20 28 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 62 61 63 6b 65 | ..(backend-value.:initarg.:backe |
| 75160 | 6e 64 2d 76 61 6c 75 65 29 0a 20 20 20 28 61 6c 77 61 79 73 2d 72 65 61 64 20 3a 69 6e 69 74 66 | nd-value)....(always-read.:initf |
| 75180 | 6f 72 6d 20 74 29 0a 20 20 20 28 73 65 74 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 73 | orm.t)....(set-value.:initarg.:s |
| 751a0 | 65 74 2d 76 61 6c 75 65 20 3a 69 6e 69 74 66 6f 72 6d 20 23 27 73 65 74 29 29 0a 20 20 22 43 6c | et-value.:initform.#'set))..."Cl |
| 751c0 | 61 73 73 20 75 73 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 73 2e 22 29 0a 0a | ass.used.for.gptel-backends.").. |
| 751e0 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 | (cl-defmethod.transient-format-v |
| 75200 | 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 | alue.((obj.gptel-provider-variab |
| 75220 | 6c 65 29 29 0a 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 | le))...(propertize.(concat...... |
| 75240 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 | ..........(gptel-backend-name... |
| 75260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 | ..............(buffer-local-valu |
| 75280 | 65 20 28 6f 72 65 66 20 6f 62 6a 20 62 61 63 6b 65 6e 64 29 20 74 72 61 6e 73 69 65 6e 74 2d 2d | e.(oref.obj.backend).transient-- |
| 752a0 | 6f 72 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 29 29 20 22 3a 22 0a 20 20 20 20 20 20 20 20 20 20 | original-buffer)).":"........... |
| 752c0 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 28 6f 72 65 66 20 6f 62 | .....(gptel--model-name.(oref.ob |
| 752e0 | 6a 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 | j.value)))...............'face.' |
| 75300 | 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | transient-value))..(cl-defmethod |
| 75320 | 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c | .transient-infix-set.((obj.gptel |
| 75340 | 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 70 63 | -provider-variable).value)...(pc |
| 75360 | 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 20 2c 6d 6f 64 65 | ase-let.((`(,backend-value.,mode |
| 75380 | 6c 2d 76 61 6c 75 65 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f | l-value).value)).....(funcall.(o |
| 753a0 | 72 65 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ref.obj.set-value).............. |
| 753c0 | 28 6f 72 65 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (oref.obj.variable)............. |
| 753e0 | 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 6d 6f 64 65 6c 2d 76 61 6c 75 65 29 0a 20 20 | .(oset.obj.value.model-value)... |
| 75400 | 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 | ...........gptel--set-buffer-loc |
| 75420 | 61 6c 6c 79 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 66 20 6f 62 6a 20 73 65 74 | ally).....(funcall.(oref.obj.set |
| 75440 | 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 62 | -value)..............(oref.obj.b |
| 75460 | 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 62 | ackend)..............(oset.obj.b |
| 75480 | 61 63 6b 65 6e 64 2d 76 61 6c 75 65 20 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 29 0a 20 20 20 20 | ackend-value.backend-value)..... |
| 754a0 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c | .........gptel--set-buffer-local |
| 754c0 | 6c 79 29 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 3b 3b 20 2a 2a | ly))...(transient-setup))..;;.** |
| 754e0 | 20 43 6c 61 73 73 20 66 6f 72 20 69 6e 66 69 78 20 6f 70 74 69 6f 6e 73 20 77 69 74 68 20 69 6e | .Class.for.infix.options.with.in |
| 75500 | 2d 62 75 66 66 65 72 20 6f 76 65 72 6c 61 79 20 64 69 73 70 6c 61 79 0a 0a 28 64 65 66 63 6c 61 | -buffer.overlay.display..(defcla |
| 75520 | 73 73 20 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 20 28 74 72 61 6e 73 69 | ss.gptel-option-overlaid.(transi |
| 75540 | 65 6e 74 2d 6f 70 74 69 6f 6e 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a 69 6e 69 | ent-option)...((display-nil.:ini |
| 75560 | 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 29 0a 20 20 20 28 6f 76 65 72 6c 61 79 20 3a | targ.:display-nil)....(overlay.: |
| 75580 | 69 6e 69 74 61 72 67 20 3a 6f 76 65 72 6c 61 79 29 29 0a 20 20 22 54 72 61 6e 73 69 65 6e 74 20 | initarg.:overlay))..."Transient. |
| 755a0 | 6f 70 74 69 6f 6e 73 20 66 6f 72 20 6f 76 65 72 6c 61 79 73 20 64 69 73 70 6c 61 79 65 64 20 69 | options.for.overlays.displayed.i |
| 755c0 | 6e 20 74 68 65 20 77 6f 72 6b 69 6e 67 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 | n.the.working.buffer.")..(cl-def |
| 755e0 | 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 | method.transient-format-value.(( |
| 75600 | 6f 62 6a 20 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 29 29 0a 20 20 22 53 | obj.gptel-option-overlaid))..."S |
| 75620 | 65 74 20 75 70 20 74 68 65 20 69 6e 2d 62 75 66 66 65 72 20 6f 76 65 72 6c 61 79 20 66 6f 72 20 | et.up.the.in-buffer.overlay.for. |
| 75640 | 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 2c 20 61 20 73 74 72 69 6e 67 2e 0a | additional.directive,.a.string.. |
| 75660 | 0a 41 6c 73 6f 20 66 6f 72 6d 61 74 20 69 74 73 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 54 72 | .Also.format.its.value.in.the.Tr |
| 75680 | 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 6f | ansient.menu."...(let.((value.(o |
| 756a0 | 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 6f 76 20 20 20 20 28 | ref.obj.value)).........(ov....( |
| 756c0 | 6f 72 65 66 20 6f 62 6a 20 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 28 61 72 67 75 | oref.obj.overlay)).........(argu |
| 756e0 | 6d 65 6e 74 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 29 0a 20 20 20 20 3b | ment.(oref.obj.argument))).....; |
| 75700 | 3b 20 4d 61 6b 69 6e 67 20 61 6e 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 69 66 20 28 6f 72 20 | ;.Making.an.overlay.....(if.(or. |
| 75720 | 28 6e 6f 74 20 76 61 6c 75 65 29 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 76 61 6c 75 | (not.value).(string-empty-p.valu |
| 75740 | 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6f 76 20 28 64 65 6c 65 74 65 2d 6f 76 65 | e)).........(when.ov.(delete-ove |
| 75760 | 72 6c 61 79 20 6f 76 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | rlay.ov)).......(with-current-bu |
| 75780 | 66 66 65 72 20 74 72 61 6e 73 69 65 6e 74 2d 2d 6f 72 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 0a | ffer.transient--original-buffer. |
| 757a0 | 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 6f 76 65 72 6c 61 79 20 28 67 70 74 65 6c | ........(oset.obj.overlay.(gptel |
| 757c0 | 2d 2d 69 6e 73 74 72 75 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 76 61 6c 75 | --instructions-make-overlay.valu |
| 757e0 | 65 20 6f 76 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 6f 76 2d 63 6c 65 61 72 | e.ov))).......(letrec.((ov-clear |
| 75800 | 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 | -hook.................(lambda.() |
| 75820 | 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 20 28 6f 72 65 66 20 6f 62 6a 20 6f 76 65 72 6c | .(when-let*.((ov.(oref.obj.overl |
| 75840 | 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ay))............................ |
| 75860 | 20 20 20 20 20 20 20 28 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 | .......((overlayp.ov)))......... |
| 75880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 74 72 | ................(remove-hook.'tr |
| 758a0 | 61 6e 73 69 65 6e 74 2d 65 78 69 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ansient-exit-hook............... |
| 758c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 76 2d 63 6c 65 61 72 2d | .......................ov-clear- |
| 758e0 | 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | hook).........................(d |
| 75900 | 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 | elete-overlay.ov))))).........(a |
| 75920 | 64 64 2d 68 6f 6f 6b 20 27 74 72 61 6e 73 69 65 6e 74 2d 65 78 69 74 2d 68 6f 6f 6b 20 6f 76 2d | dd-hook.'transient-exit-hook.ov- |
| 75940 | 63 6c 65 61 72 2d 68 6f 6f 6b 29 29 29 0a 20 20 20 20 3b 3b 20 55 70 64 61 74 69 6e 67 20 74 72 | clear-hook))).....;;.Updating.tr |
| 75960 | 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 64 69 73 70 6c 61 79 0a 20 20 20 20 28 69 66 20 76 61 6c | ansient.menu.display.....(if.val |
| 75980 | 75 65 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 61 | ue.........(propertize.(concat.a |
| 759a0 | 72 67 75 6d 65 6e 74 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 | rgument.(truncate-string-to-widt |
| 759c0 | 68 20 76 61 6c 75 65 20 33 35 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 | h.value.35.nil.nil.t)).......... |
| 759e0 | 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 | ...........'face.'transient-valu |
| 75a00 | 65 29 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 28 63 6f 6e | e).......(propertize........(con |
| 75a20 | 63 61 74 20 22 28 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6f 72 65 66 20 6f 62 6a 20 64 | cat."(".(symbol-name.(oref.obj.d |
| 75a40 | 69 73 70 6c 61 79 2d 6e 69 6c 29 29 20 22 29 22 29 0a 20 20 20 20 20 20 20 27 66 61 63 65 20 27 | isplay-nil)).")")........'face.' |
| 75a60 | 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a 0c 0a | transient-inactive-value)))).... |
| 75a80 | 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 50 72 65 66 69 78 65 73 0a 0a 3b 3b 3b 23 23 23 61 | ;;.*.Transient.Prefixes..;;;###a |
| 75aa0 | 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 20 22 67 | utoload.(autoload.'gptel-menu."g |
| 75ac0 | 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e | ptel-transient".nil.t).(transien |
| 75ae0 | 74 2d 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 6d 65 6e 75 20 28 29 0a 20 20 | t-define-prefix.gptel-menu.()... |
| 75b00 | 22 43 68 61 6e 67 65 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 70 72 6f 6d 70 74 20 74 6f 20 | "Change.parameters.of.prompt.to. |
| 75b20 | 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 22 0a 20 20 3a 69 6e 63 6f 6d 70 61 74 69 62 6c | send.to.the.LLM."...:incompatibl |
| 75b40 | 65 20 27 28 28 22 6d 22 20 22 79 22 20 22 69 22 29 20 28 22 65 22 20 22 67 22 20 22 62 22 20 22 | e.'(("m"."y"."i").("e"."g"."b"." |
| 75b60 | 6b 22 29 29 0a 20 20 3b 3b 20 3a 76 61 6c 75 65 20 28 6c 69 73 74 20 28 63 6f 6e 63 61 74 20 22 | k"))...;;.:value.(list.(concat." |
| 75b80 | 62 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 | b".(buffer-name)))...[:descripti |
| 75ba0 | 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d 66 6f 72 6d 61 74 0a 20 | on.gptel-system-prompt--format.. |
| 75bc0 | 20 20 5b 22 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6e 6f 74 20 28 67 | ..["".....:if.(lambda.().(not.(g |
| 75be0 | 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6e 6f 73 79 73 74 65 6d 29 | ptel--model-capable-p.'nosystem) |
| 75c00 | 29 29 0a 20 20 20 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 22 0a 20 20 20 20 28 22 73 22 20 22 | ))....."Instructions".....("s"." |
| 75c20 | 53 65 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 67 70 74 65 6c 2d 73 79 73 74 65 6d | Set.system.message".gptel-system |
| 75c40 | 2d 70 72 6f 6d 70 74 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 67 70 74 65 6c | -prompt.:transient.t).....(gptel |
| 75c60 | 2d 2d 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 74 69 76 65 29 5d 0a 20 20 20 5b 3a 70 61 64 | --infix-add-directive)]....[:pad |
| 75c80 | 2d 6b 65 79 73 20 74 20 22 22 0a 20 20 20 20 28 3a 69 6e 66 6f 20 23 27 67 70 74 65 6c 2d 2d 64 | -keys.t."".....(:info.#'gptel--d |
| 75ca0 | 65 73 63 72 69 62 65 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 3a 66 61 63 65 | escribe-infix-context......:face |
| 75cc0 | 20 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 20 3a 66 6f 72 6d 61 74 20 22 25 64 22 29 | .transient-heading.:format."%d") |
| 75ce0 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 | .....(gptel--infix-context-add-c |
| 75d00 | 75 72 72 65 6e 74 2d 6b 69 6c 6c 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 | urrent-kill).....(gptel--infix-c |
| 75d20 | 6f 6e 74 65 78 74 2d 61 64 64 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 | ontext-add-region).....(gptel--i |
| 75d40 | 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 67 70 | nfix-context-add-buffer).....(gp |
| 75d60 | 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 | tel--infix-context-add-file).... |
| 75d80 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c | .(gptel--infix-context-remove-al |
| 75da0 | 6c 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 | l).....(gptel--suffix-context-bu |
| 75dc0 | 66 66 65 72 29 5d 0a 20 20 20 5b 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 3a 69 66 20 28 | ffer)]....[:pad-keys.t.....:if.( |
| 75de0 | 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 0a 20 | lambda.().(and.gptel-use-tools.. |
| 75e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f | ..................(or.gptel--kno |
| 75e20 | 77 6e 2d 74 6f 6f 6c 73 20 28 66 65 61 74 75 72 65 70 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 | wn-tools.(featurep.'gptel-integr |
| 75e40 | 61 74 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 22 22 20 28 3a 69 6e 66 6f 0a 20 20 20 20 20 20 20 | ations))))....."".(:info........ |
| 75e60 | 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 | .(lambda.()...........(concat... |
| 75e80 | 20 20 20 20 20 20 20 20 20 22 54 6f 6f 6c 73 22 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c | ........."Tools".(and.gptel-tool |
| 75ea0 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | s.........................(conca |
| 75ec0 | 74 20 22 20 28 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 64 20 73 | t.".(".(propertize.(format."%d.s |
| 75ee0 | 65 6c 65 63 74 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elected"........................ |
| 75f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 75f20 | 20 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 | ..(length.gptel-tools))......... |
| 75f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 75f60 | 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 | .........'face.'warning)........ |
| 75f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 29 29 29 | .........................")")))) |
| 75fa0 | 0a 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 25 64 22 20 3a 66 61 63 65 20 74 72 61 6e | .........:format."%d".:face.tran |
| 75fc0 | 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 28 22 74 22 20 22 53 65 6c 65 63 74 20 | sient-heading).....("t"."Select. |
| 75fe0 | 74 6f 6f 6c 73 22 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 | tools".gptel-tools.:transient.t) |
| 76000 | 0a 20 20 20 20 28 22 54 22 20 22 43 6f 6e 74 69 6e 75 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 22 0a | .....("T"."Continue.tool.calls". |
| 76020 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 20 28 67 | .....(lambda.().(interactive).(g |
| 76040 | 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 20 67 70 74 65 6c 2d 2d 66 73 6d | ptel--handle-tool-use.gptel--fsm |
| 76060 | 2d 6c 61 73 74 29 29 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 | -last))......:if.(lambda.().(and |
| 76080 | 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel--fsm-last................ |
| 760a0 | 20 20 20 20 20 28 65 71 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 67 70 74 65 6c 2d | .....(eq.(gptel-fsm-state.gptel- |
| 760c0 | 2d 66 73 6d 2d 6c 61 73 74 29 20 27 54 4f 4f 4c 29 29 29 29 5d 5d 0a 20 20 5b 5b 28 67 70 74 65 | -fsm-last).'TOOL))))]]...[[(gpte |
| 760e0 | 6c 2d 2d 70 72 65 73 65 74 0a 20 20 20 20 20 3a 6b 65 79 20 22 40 22 20 3a 66 6f 72 6d 61 74 20 | l--preset......:key."@".:format. |
| 76100 | 22 25 64 22 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 28 6c 61 6d | "%d"......:description......(lam |
| 76120 | 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a | bda.()........(concat.(propertiz |
| 76140 | 65 20 22 52 65 71 75 65 73 74 20 50 61 72 61 6d 65 74 65 72 73 22 20 27 66 61 63 65 20 27 74 72 | e."Request.Parameters".'face.'tr |
| 76160 | 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ansient-heading)................ |
| 76180 | 28 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 65 74 2d 73 74 72 69 6e 67 29 29 29 29 | (gptel--format-preset-string)))) |
| 761a0 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 | .....(gptel--infix-variable-scop |
| 761c0 | 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 70 72 6f 76 69 64 65 72 29 0a 20 | e).....(gptel--infix-provider).. |
| 761e0 | 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 20 20 20 | ...(gptel--infix-max-tokens).... |
| 76200 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 | .(gptel--infix-num-messages-to-s |
| 76220 | 65 6e 64 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 | end......:if.(lambda.().(and.gpt |
| 76240 | 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-expert-commands.............. |
| 76260 | 20 20 20 20 20 20 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 | .......(or.gptel-mode.gptel-trac |
| 76280 | 6b 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 | k-response)))).....(gptel--infix |
| 762a0 | 2d 74 65 6d 70 65 72 61 74 75 72 65 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 | -temperature.:if.(lambda.().gpte |
| 762c0 | 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d | l-expert-commands)).....(gptel-- |
| 762e0 | 69 6e 66 69 78 2d 75 73 65 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 | infix-use-context).....(gptel--i |
| 76300 | 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 28 67 70 74 | nfix-include-reasoning).....(gpt |
| 76320 | 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d | el--infix-use-tools).....(gptel- |
| 76340 | 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 3a 69 66 20 28 | -infix-track-response......:if.( |
| 76360 | 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d | lambda.().(and.gptel-expert-comm |
| 76380 | 61 6e 64 73 20 28 6e 6f 74 20 67 70 74 65 6c 2d 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 28 67 70 | ands.(not.gptel-mode)))).....(gp |
| 763a0 | 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 3a 69 66 20 28 6c 61 6d 62 | tel--infix-track-media.:if.(lamb |
| 763c0 | 64 61 20 28 29 20 67 70 74 65 6c 2d 6d 6f 64 65 29 29 5d 0a 20 20 20 5b 22 20 3c 50 72 6f 6d 70 | da.().gptel-mode))]....[".<Promp |
| 763e0 | 74 20 66 72 6f 6d 22 0a 20 20 20 20 28 22 6d 22 20 22 4d 69 6e 69 62 75 66 66 65 72 20 69 6e 73 | t.from".....("m"."Minibuffer.ins |
| 76400 | 74 65 61 64 22 20 22 6d 22 29 0a 20 20 20 20 28 22 79 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 20 69 | tead"."m").....("y"."Kill-ring.i |
| 76420 | 6e 73 74 65 61 64 22 20 22 79 22 29 0a 20 20 20 20 22 22 0a 20 20 20 20 28 22 69 22 20 22 52 65 | nstead"."y")....."".....("i"."Re |
| 76440 | 73 70 6f 6e 64 20 69 6e 20 70 6c 61 63 65 22 20 22 69 22 29 5d 0a 20 20 20 5b 22 20 3e 52 65 73 | spond.in.place"."i")]....[".>Res |
| 76460 | 70 6f 6e 73 65 20 74 6f 22 0a 20 20 20 20 28 22 65 22 20 22 45 63 68 6f 20 61 72 65 61 22 20 22 | ponse.to".....("e"."Echo.area"." |
| 76480 | 65 22 29 0a 20 20 20 20 28 22 62 22 20 22 4f 74 68 65 72 20 62 75 66 66 65 72 22 20 22 62 22 0a | e").....("b"."Other.buffer"."b". |
| 764a0 | 20 20 20 20 20 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 0a 20 20 20 | .....:class.transient-option.... |
| 764c0 | 20 20 3a 70 72 6f 6d 70 74 20 22 4f 75 74 70 75 74 20 74 6f 20 62 75 66 66 65 72 3a 20 22 0a 20 | ..:prompt."Output.to.buffer:.".. |
| 764e0 | 20 20 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 | ....:reader.(lambda.(prompt._._h |
| 76500 | 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 | istory)................(read-buf |
| 76520 | 66 65 72 20 70 72 6f 6d 70 74 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 6f 74 68 65 72 2d 62 | fer.prompt.(buffer-name.(other-b |
| 76540 | 75 66 66 65 72 29 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 22 67 22 20 22 67 70 74 65 6c 20 73 | uffer)).nil))).....("g"."gptel.s |
| 76560 | 65 73 73 69 6f 6e 22 20 22 67 22 0a 20 20 20 20 20 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e | ession"."g"......:class.transien |
| 76580 | 74 2d 6f 70 74 69 6f 6e 0a 20 20 20 20 20 3a 70 72 6f 6d 70 74 20 22 45 78 69 73 74 69 6e 67 20 | t-option......:prompt."Existing. |
| 765a0 | 6f 72 20 6e 65 77 20 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 3a 20 22 0a 20 20 20 20 20 3a 72 65 | or.new.gptel.session:."......:re |
| 765c0 | 61 64 65 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 | ader......(lambda.(prompt._._his |
| 765e0 | 74 6f 72 79 29 0a 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 | tory)........(read-buffer....... |
| 76600 | 20 20 70 72 6f 6d 70 74 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 | ..prompt.(generate-new-buffer-na |
| 76620 | 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 | me.................(concat."*".( |
| 76640 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | gptel-backend-name.gptel-backend |
| 76660 | 29 20 22 2a 22 29 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 62 75 66 | )."*")).........nil.(lambda.(buf |
| 76680 | 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 | -name)...............(if.(consp. |
| 766a0 | 62 75 66 2d 6e 61 6d 65 29 20 28 73 65 74 71 20 62 75 66 2d 6e 61 6d 65 20 28 63 61 72 20 62 75 | buf-name).(setq.buf-name.(car.bu |
| 766c0 | 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 | f-name)))...............(let.((b |
| 766e0 | 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 | uf.(get-buffer.buf-name)))...... |
| 76700 | 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 | ...........(and.(buffer-local-va |
| 76720 | 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 | lue.'gptel-mode.buf)............ |
| 76740 | 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 | ..........(not.(eq.(current-buff |
| 76760 | 65 72 29 20 62 75 66 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 22 6b 22 20 22 4b 69 6c 6c 2d 72 | er).buf)))))))).....("k"."Kill-r |
| 76780 | 69 6e 67 22 20 22 6b 22 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 | ing"."k")]]...[[:description.(la |
| 767a0 | 6d 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 72 65 77 72 | mbda.().(concat.(and.gptel--rewr |
| 767c0 | 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 22 43 6f 6e 74 69 6e 75 65 20 22 29 0a 20 20 20 20 20 20 | ite-overlays."Continue.")....... |
| 767e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 77 72 69 74 | ........................."Rewrit |
| 76800 | 65 22 29 29 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 75 73 65 | e")).....:if.(lambda.().(or.(use |
| 76820 | 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e | -region-p)...................(an |
| 76840 | 64 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 20 20 | d.gptel--rewrite-overlays....... |
| 76860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | .................(gptel--rewrite |
| 76880 | 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 29 29 29 29 0a 20 20 20 20 28 22 72 22 0a | -sanitize-overlays)))).....("r". |
| 768a0 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 67 65 74 2d 63 68 61 72 2d 70 72 | .....(lambda.().(if.(get-char-pr |
| 768c0 | 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 | operty.(point).'gptel-rewrite).. |
| 768e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 49 74 65 72 61 74 65 22 20 22 52 65 77 72 69 74 65 | .............."Iterate"."Rewrite |
| 76900 | 22 29 29 0a 20 20 20 20 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 5d 0a 20 20 20 5b 22 54 77 | "))......gptel-rewrite)]....["Tw |
| 76920 | 65 61 6b 20 52 65 73 70 6f 6e 73 65 22 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 | eak.Response".:if.gptel--in-resp |
| 76940 | 6f 6e 73 65 2d 70 20 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 28 22 53 50 43 22 20 22 4d | onse-p.:pad-keys.t.....("SPC"."M |
| 76960 | 61 72 6b 22 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 | ark".gptel--mark-response).....( |
| 76980 | 22 4d 2d 52 45 54 22 20 22 52 65 67 65 6e 65 72 61 74 65 22 20 67 70 74 65 6c 2d 2d 72 65 67 65 | "M-RET"."Regenerate".gptel--rege |
| 769a0 | 6e 65 72 61 74 65 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 | nerate.:if.gptel--in-response-p) |
| 769c0 | 0a 20 20 20 20 28 22 50 22 20 22 50 72 65 76 69 6f 75 73 20 76 61 72 69 61 6e 74 22 20 67 70 74 | .....("P"."Previous.variant".gpt |
| 769e0 | 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 0a 20 20 20 20 20 3a 69 66 20 67 70 | el--previous-variant......:if.gp |
| 76a00 | 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 0a 20 20 20 20 20 | tel--at-response-history-p...... |
| 76a20 | 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 22 4e 22 20 22 4e 65 78 74 20 76 61 72 | :transient.t).....("N"."Next.var |
| 76a40 | 69 61 6e 74 22 20 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 0a 20 20 | iant".gptel--previous-variant... |
| 76a60 | 20 20 20 3a 69 66 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 | ...:if.gptel--at-response-histor |
| 76a80 | 79 2d 70 0a 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 22 45 22 20 | y-p......:transient.t).....("E". |
| 76aa0 | 22 45 64 69 66 66 20 70 72 65 76 69 6f 75 73 22 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 0a 20 20 | "Ediff.previous".gptel--ediff... |
| 76ac0 | 20 20 20 3a 69 66 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 | ...:if.gptel--at-response-histor |
| 76ae0 | 79 2d 70 29 5d 0a 20 20 20 5b 22 44 72 79 20 52 75 6e 22 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 | y-p)]....["Dry.Run".:if.(lambda. |
| 76b00 | 28 29 20 28 6f 72 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 65 6c 2d 65 78 70 | ().(or.gptel-log-level.gptel-exp |
| 76b20 | 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 28 22 49 22 20 22 49 6e 73 70 65 63 74 | ert-commands)).....("I"."Inspect |
| 76b40 | 20 71 75 65 72 79 20 28 4c 69 73 70 29 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 | .query.(Lisp)"......(lambda.().. |
| 76b60 | 20 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 68 65 20 71 75 65 72 79 20 74 68 61 74 20 77 69 | ......"Inspect.the.query.that.wi |
| 76b80 | 6c 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 6c 69 73 70 20 6f 62 6a 65 63 74 2e 22 0a 20 20 | ll.be.sent.as.a.lisp.object."... |
| 76ba0 | 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c | .....(interactive)........(gptel |
| 76bc0 | 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | --sanitize-model)........(gptel- |
| 76be0 | 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 | -inspect-query.........(gptel--s |
| 76c00 | 75 66 66 69 78 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 | uffix-send..........(cons."I".(t |
| 76c20 | 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d | ransient-args.transient-current- |
| 76c40 | 63 6f 6d 6d 61 6e 64 29 29 29 29 29 29 0a 20 20 20 20 28 22 4a 22 20 22 49 6e 73 70 65 63 74 20 | command)))))).....("J"."Inspect. |
| 76c60 | 71 75 65 72 79 20 28 4a 53 4f 4e 29 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 | query.(JSON)"......(lambda.()... |
| 76c80 | 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 68 65 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c | ....."Inspect.the.query.that.wil |
| 76ca0 | 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 4a 53 4f 4e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 | l.be.sent.as.a.JSON.object.".... |
| 76cc0 | 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | ....(interactive)........(gptel- |
| 76ce0 | 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | -sanitize-model)........(gptel-- |
| 76d00 | 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 | inspect-query.........(gptel--su |
| 76d20 | 66 66 69 78 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 72 | ffix-send..........(cons."I".(tr |
| 76d40 | 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 | ansient-args.transient-current-c |
| 76d60 | 6f 6d 6d 61 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 27 6a 73 6f 6e 29 29 29 5d 5d 0a 20 20 5b | ommand))).........'json)))]]...[ |
| 76d80 | 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 29 5d 0a 20 20 28 69 6e 74 65 72 61 63 | (gptel--suffix-send)]...(interac |
| 76da0 | 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a | tive)...(gptel--sanitize-model). |
| 76dc0 | 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 | ..(transient-setup.'gptel-menu)) |
| 76de0 | 0a 0a 3b 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 73 | ..;;.**.Prefix.for.setting.the.s |
| 76e00 | 79 73 74 65 6d 20 70 72 6f 6d 70 74 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 65 74 | ystem.prompt...(defun.gptel--set |
| 76e20 | 75 70 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 20 28 73 79 6d 20 6d 73 67 20 26 6f 70 74 69 | up-directive-menu.(sym.msg.&opti |
| 76e40 | 6f 6e 61 6c 20 65 78 74 65 72 6e 61 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 | onal.external)..."Return.a.list. |
| 76e60 | 6f 66 20 74 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 | of.transient.infix.definitions.f |
| 76e80 | 6f 72 20 73 65 74 74 69 6e 67 20 67 70 74 65 6c 0a 64 69 72 65 63 74 69 76 65 73 2e 0a 0a 53 59 | or.setting.gptel.directives...SY |
| 76ea0 | 4d 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 73 | M.is.the.symbol.whose.value.is.s |
| 76ec0 | 65 74 20 74 6f 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 64 69 72 65 63 74 69 76 65 2e 2e 0a 4d | et.to.the.selected.directive...M |
| 76ee0 | 53 47 20 69 73 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 73 79 6d 62 6f 6c 2c 20 75 73 65 | SG.is.the.meaning.of.symbol,.use |
| 76f00 | 64 20 77 68 65 6e 20 6d 65 73 73 61 67 69 6e 67 2e 0a 49 66 20 45 58 54 45 52 4e 41 4c 20 69 73 | d.when.messaging..If.EXTERNAL.is |
| 76f20 | 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 63 6c 75 64 65 20 65 78 74 65 72 6e 61 6c 20 73 6f 75 72 63 | .non-nil,.include.external.sourc |
| 76f40 | 65 73 20 6f 66 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f | es.of.directives."...(cl-loop.fo |
| 76f60 | 72 20 28 74 79 70 65 20 2e 20 70 72 6f 6d 70 74 29 20 69 6e 20 67 70 74 65 6c 2d 64 69 72 65 63 | r.(type...prompt).in.gptel-direc |
| 76f80 | 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 63 6c 61 73 68 65 | tives............;;.Avoid.clashe |
| 76fa0 | 73 20 77 69 74 68 20 74 68 65 20 63 75 73 74 6f 6d 20 64 69 72 65 63 74 69 76 65 20 6b 65 79 0a | s.with.the.custom.directive.key. |
| 76fc0 | 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 64 | ...........with.unused-keys.=.(d |
| 76fe0 | 65 6c 65 74 65 20 3f 73 20 28 6e 63 6f 6e 63 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 | elete.?s.(nconc.(number-sequence |
| 77000 | 20 3f 61 20 3f 7a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .?a.?z)......................... |
| 77020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d | ........................(number- |
| 77040 | 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 77 69 74 | sequence.?0.?9)))............wit |
| 77060 | 68 20 77 69 64 74 68 20 3d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 | h.width.=.(window-width)........ |
| 77080 | 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 | ....for.name.=.(symbol-name.type |
| 770a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 | )............for.key.=.(seq-find |
| 770c0 | 20 28 6c 61 6d 62 64 61 20 28 6b 29 20 28 6d 65 6d 62 65 72 20 6b 20 75 6e 75 73 65 64 2d 6b 65 | .(lambda.(k).(member.k.unused-ke |
| 770e0 | 79 73 29 29 20 6e 61 6d 65 20 28 73 65 71 2d 66 69 72 73 74 20 75 6e 75 73 65 64 2d 6b 65 79 73 | ys)).name.(seq-first.unused-keys |
| 77100 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 6e 75 73 65 64 2d 6b 65 | ))............do.(setq.unused-ke |
| 77120 | 79 73 20 28 64 65 6c 65 74 65 20 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 | ys.(delete.key.unused-keys)).... |
| 77140 | 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 65 78 70 6c 69 63 69 74 20 64 65 63 6c 61 72 61 74 | ........;;.The.explicit.declarat |
| 77160 | 69 6f 6e 20 22 3a 74 72 61 6e 73 69 65 6e 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 | ion.":transient.transient--do-re |
| 77180 | 74 75 72 6e 22 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 70 70 65 61 72 73 | turn".here............;;.appears |
| 771a0 | 20 74 6f 20 62 65 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 54 72 61 6e 73 69 65 6e 74 20 76 30 | .to.be.required.for.Transient.v0 |
| 771c0 | 2e 35 20 61 6e 64 20 75 70 2e 20 20 57 69 74 68 6f 75 74 20 69 74 2c 20 74 68 65 73 65 0a 20 20 | .5.and.up...Without.it,.these... |
| 771e0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 61 72 65 20 74 72 65 61 74 65 64 20 61 73 20 73 75 66 66 69 | .........;;.are.treated.as.suffi |
| 77200 | 78 65 73 20 77 68 65 6e 20 69 6e 76 6f 6b 69 6e 67 20 60 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d | xes.when.invoking.`gptel-system- |
| 77220 | 70 72 6f 6d 70 74 27 20 64 69 72 65 63 74 6c 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | prompt'.directly,............;;. |
| 77240 | 61 6e 64 20 69 6e 66 69 78 65 73 20 77 68 65 6e 20 67 6f 69 6e 67 20 74 68 72 6f 75 67 68 20 60 | and.infixes.when.going.through.` |
| 77260 | 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a | gptel-menu'.............;;.TODO: |
| 77280 | 20 52 61 69 73 65 20 61 6e 20 69 73 73 75 65 20 77 69 74 68 20 54 72 61 6e 73 69 65 6e 74 2e 0a | .Raise.an.issue.with.Transient.. |
| 772a0 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c | ...........collect............(l |
| 772c0 | 69 73 74 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 6b 65 79 29 29 | ist.(key-description.(list.key)) |
| 772e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 61 70 69 74 | ..................(concat.(capit |
| 77300 | 61 6c 69 7a 65 20 6e 61 6d 65 29 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | alize.name)."."................. |
| 77320 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 | .........(propertize.".".'displa |
| 77340 | 79 20 27 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 32 30 29 29 0a 20 20 20 20 20 20 20 | y.'(space.:align-to.20))........ |
| 77360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 | ..................(propertize... |
| 77380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | ........................(concat. |
| 773a0 | 22 28 22 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 20 70 | "(".(gptel--describe-directive.p |
| 773c0 | 72 6f 6d 70 74 20 28 2d 20 77 69 64 74 68 20 33 30 29 29 20 22 29 22 29 0a 20 20 20 20 20 20 20 | rompt.(-.width.30)).")")........ |
| 773e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 73 68 61 64 6f 77 | ...................'face.'shadow |
| 77400 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 29 20 | ))..................`(lambda.(). |
| 77420 | 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (interactive)................... |
| 77440 | 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 3a 20 25 73 22 20 2c 6d 73 67 20 2c 28 67 70 74 65 6c | ..(message."%s:.%s".,msg.,(gptel |
| 77460 | 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 20 70 72 6f 6d 70 74 20 31 30 30 20 | --describe-directive.prompt.100. |
| 77480 | 22 e2 ae 90 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | "....")).....................(gp |
| 774a0 | 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 27 2c 73 79 6d 20 27 2c 70 72 6f 6d | tel--set-with-scope.',sym.',prom |
| 774c0 | 70 74 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 09 | pt.gptel--set-buffer-locally)).. |
| 774e0 | 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d | .........:transient.'transient-- |
| 77500 | 64 6f 2d 72 65 74 75 72 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 70 72 6f 6d 70 | do-return)............into.promp |
| 77520 | 74 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 | t-suffixes............finally.re |
| 77540 | 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20 20 20 20 20 20 | turn............(nconc.......... |
| 77560 | 20 20 20 70 72 6f 6d 70 74 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...prompt-suffixes.............( |
| 77580 | 6c 69 73 74 20 28 6c 69 73 74 20 22 44 45 4c 22 20 22 4e 6f 6e 65 22 0a 20 20 20 20 20 20 20 20 | list.(list."DEL"."None"......... |
| 775a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 | ................`(lambda.().(int |
| 775c0 | 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eractive)....................... |
| 775e0 | 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 75 6e 73 65 74 22 20 2c 6d 73 67 29 0a 20 | .....(message."%s.unset".,msg).. |
| 77600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | ..........................(gptel |
| 77620 | 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 27 2c 73 79 6d 20 6e 69 6c 20 67 70 74 65 6c | --set-with-scope.',sym.nil.gptel |
| 77640 | 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 | --set-buffer-locally)).......... |
| 77660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 | ...............:transient.'trans |
| 77680 | 69 65 6e 74 2d 2d 64 6f 2d 72 65 74 75 72 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 | ient--do-return)).............(a |
| 776a0 | 6e 64 20 65 78 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | nd.external..................(li |
| 776c0 | 73 74 20 28 6c 69 73 74 20 22 53 50 43 22 20 22 50 69 63 6b 20 63 72 6f 77 64 73 6f 75 72 63 65 | st.(list."SPC"."Pick.crowdsource |
| 776e0 | 64 20 70 72 6f 6d 70 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.prompt"....................... |
| 77700 | 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | .......'gptel--read-crowdsourced |
| 77720 | 2d 70 72 6f 6d 70 74 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 | -prompt................;;.NOTE:. |
| 77740 | 51 75 69 74 74 69 6e 67 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6e 67 20 72 65 61 64 20 77 68 65 | Quitting.the.completing.read.whe |
| 77760 | 6e 20 70 69 63 6b 69 6e 67 20 61 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 72 | n.picking.a................;;.cr |
| 77780 | 6f 77 64 73 6f 75 72 63 65 64 20 70 72 6f 6d 70 74 20 77 69 6c 6c 20 63 61 75 73 65 20 74 68 65 | owdsourced.prompt.will.cause.the |
| 777a0 | 20 74 72 61 6e 73 69 65 6e 74 20 74 6f 20 65 78 69 74 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 | .transient.to.exit.............. |
| 777c0 | 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f 66 20 72 65 74 75 72 6e 69 6e 67 20 74 6f 20 74 68 65 | ..;;.instead.of.returning.to.the |
| 777e0 | 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 6d 65 6e 75 2e 0a 20 20 20 20 20 20 20 20 20 20 20 | .system.prompt.menu............. |
| 77800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 | ..................:transient.'tr |
| 77820 | 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 65 78 69 74 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 | ansient--do-exit))))))..;;;###au |
| 77840 | 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 | toload.(autoload.'gptel-system-p |
| 77860 | 72 6f 6d 70 74 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 20 6e 69 6c 20 74 29 0a 28 | rompt."gptel-transient".nil.t).( |
| 77880 | 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 73 79 | transient-define-prefix.gptel-sy |
| 778a0 | 73 74 65 6d 2d 70 72 6f 6d 70 74 20 28 29 0a 20 20 22 53 65 74 20 74 68 65 20 4c 4c 4d 20 73 79 | stem-prompt.()..."Set.the.LLM.sy |
| 778c0 | 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e | stem.message.for.LLM.interaction |
| 778e0 | 73 2e 0a 0a 54 68 65 20 5c 22 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 5c 22 20 65 73 74 61 62 | s...The.\"system.message\".estab |
| 77900 | 6c 69 73 68 65 73 20 64 69 72 65 63 74 69 76 65 73 20 66 6f 72 20 74 68 65 20 63 68 61 74 0a 73 | lishes.directives.for.the.chat.s |
| 77920 | 65 73 73 69 6f 6e 20 61 6e 64 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 62 65 68 61 76 69 6f 72 | ession.and.modifies.the.behavior |
| 77940 | 20 6f 66 20 74 68 65 20 4c 4c 4d 2e 20 53 6f 6d 65 20 65 78 61 6d 70 6c 65 73 20 6f 66 0a 73 79 | .of.the.LLM..Some.examples.of.sy |
| 77960 | 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 61 72 65 3a 0a 0a 59 6f 75 20 61 72 65 20 61 20 68 65 6c | stem.prompts.are:..You.are.a.hel |
| 77980 | 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 41 6e 73 77 65 72 20 61 73 20 63 6f 6e 63 69 73 | pful.assistant..Answer.as.concis |
| 779a0 | 65 6c 79 20 61 73 20 70 6f 73 73 69 62 6c 65 2e 0a 52 65 70 6c 79 20 6f 6e 6c 79 20 77 69 74 68 | ely.as.possible..Reply.only.with |
| 779c0 | 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 6e 6f 20 70 72 6f 73 65 2e 0a 59 6f | .shell.commands.and.no.prose..Yo |
| 779e0 | 75 20 61 72 65 20 61 20 70 6f 65 74 2e 20 52 65 70 6c 79 20 6f 6e 6c 79 20 69 6e 20 76 65 72 73 | u.are.a.poet..Reply.only.in.vers |
| 77a00 | 65 2e 0a 0a 4d 6f 72 65 20 65 78 74 65 6e 73 69 76 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 | e...More.extensive.system.messag |
| 77a20 | 65 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 20 73 70 65 63 69 66 69 63 20 74 61 | es.can.be.useful.for.specific.ta |
| 77a40 | 73 6b 73 2e 0a 0a 43 75 73 74 6f 6d 69 7a 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 | sks...Customize.`gptel-directive |
| 77a60 | 73 27 20 66 6f 72 20 74 61 73 6b 2d 73 70 65 63 69 66 69 63 20 70 72 6f 6d 70 74 73 2e 22 0a 20 | s'.for.task-specific.prompts.".. |
| 77a80 | 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d | .[:description.gptel-system-prom |
| 77aa0 | 70 74 2d 2d 66 6f 72 6d 61 74 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 79 | pt--format....[(gptel--suffix-sy |
| 77ac0 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 5d 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 | stem-message)]....[(gptel--infix |
| 77ae0 | 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 5d 5d 0a 20 20 20 5b 3a 63 6c 61 73 73 20 74 72 | -variable-scope)]]....[:class.tr |
| 77b00 | 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 0a 20 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 | ansient-column.....:setup-childr |
| 77b20 | 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 74 72 61 6e 73 69 65 6e 74 2d 70 61 | en.....(lambda.(_).(transient-pa |
| 77b40 | 72 73 65 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d | rse-suffixes.............'gptel- |
| 77b60 | 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | system-prompt.............(gptel |
| 77b80 | 2d 2d 73 65 74 75 70 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 | --setup-directive-menu.......... |
| 77ba0 | 20 20 20 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 22 44 69 72 65 | ....'gptel--system-message."Dire |
| 77bc0 | 63 74 69 76 65 22 20 74 29 29 29 0a 20 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 74 5d 29 0a 0a 3b | ctive".t))).....:pad-keys.t])..; |
| 77be0 | 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 61 76 69 6e 67 20 61 6e 64 20 61 70 70 6c 79 | ;.**.Prefix.for.saving.and.apply |
| 77c00 | 69 6e 67 20 70 72 65 73 65 74 73 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 70 | ing.presets..(transient-define-p |
| 77c20 | 72 65 66 69 78 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 20 28 29 0a 20 20 22 41 70 70 6c 79 20 | refix.gptel--preset.()..."Apply. |
| 77c40 | 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 2c 20 6f 72 20 73 61 76 65 20 74 68 65 20 63 75 72 72 | a.gptel.preset,.or.save.the.curr |
| 77c60 | 65 6e 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 61 20 70 72 65 73 65 74 2e 0a 0a | ent.configuration.as.a.preset... |
| 77c80 | 41 20 5c 22 70 72 65 73 65 74 5c 22 20 69 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 | A.\"preset\".is.a.collection.of. |
| 77ca0 | 67 70 74 65 6c 20 73 65 74 74 69 6e 67 73 2c 20 73 75 63 68 20 61 73 20 74 68 65 20 6d 6f 64 65 | gptel.settings,.such.as.the.mode |
| 77cc0 | 6c 2c 0a 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 65 | l,.backend,.system.message.and.e |
| 77ce0 | 6e 61 62 6c 65 64 20 74 6f 6f 6c 73 2c 20 74 68 61 74 20 61 72 65 20 61 70 70 6c 69 65 64 20 61 | nabled.tools,.that.are.applied.a |
| 77d00 | 6e 64 20 75 73 65 64 0a 74 6f 67 65 74 68 65 72 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 6d 61 | nd.used.together...See.`gptel-ma |
| 77d20 | 6b 65 2d 70 72 65 73 65 74 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 74 72 61 6e | ke-preset'.for.details."...:tran |
| 77d40 | 73 69 65 6e 74 2d 73 75 66 66 69 78 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 74 | sient-suffix.#'transient--do-ret |
| 77d60 | 75 72 6e 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 61 76 65 20 6f 72 20 61 70 70 | urn...[:description."Save.or.app |
| 77d80 | 6c 79 20 61 20 70 72 65 73 65 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 67 70 74 65 6c 20 | ly.a.preset.collection.of.gptel. |
| 77da0 | 6f 70 74 69 6f 6e 73 22 0a 20 20 20 5b 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 28 22 43 | options"....[:pad-keys.t.....("C |
| 77dc0 | 2d 73 22 20 22 53 61 76 65 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e 67 73 20 74 6f 20 70 72 | -s"."Save.current.settings.to.pr |
| 77de0 | 65 73 65 74 22 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 70 72 65 73 65 74 29 5d 5d 0a 20 20 5b 3a | eset".gptel--save-preset)]]...[: |
| 77e00 | 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 | if.(lambda.().gptel--known-prese |
| 77e20 | 74 73 29 0a 20 20 20 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 0a 20 | ts)....:class.transient-column.. |
| 77e40 | 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 | ..:setup-children....(lambda.(_) |
| 77e60 | 0a 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 70 61 72 73 65 2d 73 75 66 66 69 78 65 73 0a | ......(transient-parse-suffixes. |
| 77e80 | 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 0a 20 20 20 20 20 20 28 63 6c 2d 6c | ......'gptel--preset.......(cl-l |
| 77ea0 | 6f 6f 70 0a 20 20 20 20 20 20 20 66 6f 72 20 28 6e 61 6d 65 2d 73 79 6d 20 2e 20 70 72 65 73 65 | oop........for.(name-sym...prese |
| 77ec0 | 74 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 0a 20 20 20 20 20 | t).in.gptel--known-presets...... |
| 77ee0 | 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 6e 61 6d 65 2d 73 | ..for.name.=.(format."%s".name-s |
| 77f00 | 79 6d 29 0a 20 20 20 20 20 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 6e | ym)........with.unused-keys.=.(n |
| 77f20 | 63 6f 6e 63 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 61 20 3f 7a 29 0a 20 20 20 | conc.(number-sequence.?a.?z).... |
| 77f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e | ..............................(n |
| 77f60 | 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 29 0a 20 20 20 20 20 20 20 66 6f | umber-sequence.?0.?9))........fo |
| 77f80 | 72 20 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 65 73 65 | r.description.=.(plist-get.prese |
| 77fa0 | 74 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 3d | t.:description)........for.key.= |
| 77fc0 | 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6b 29 20 28 6d 65 6d 62 65 72 20 6b | .(seq-find.(lambda.(k).(member.k |
| 77fe0 | 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .unused-keys)).................. |
| 78000 | 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 28 73 65 71 2d 66 69 72 73 74 20 75 6e 75 73 65 64 | ..........name.(seq-first.unused |
| 78020 | 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 6e 75 73 65 64 2d 6b | -keys))........do.(setq.unused-k |
| 78040 | 65 79 73 20 28 64 65 6c 71 20 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 | eys.(delq.key.unused-keys))..... |
| 78060 | 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 | ...collect........(list......... |
| 78080 | 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 6b 65 79 29 29 0a 20 20 20 | (key-description.(list.key)).... |
| 780a0 | 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(concat.name............... |
| 780c0 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 61 | ..(propertize.".".'display.'(spa |
| 780e0 | 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 32 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce.:align-to.20))............... |
| 78100 | 20 20 28 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(and.description.............. |
| 78120 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 | ........(propertize.(concat..... |
| 78140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 | .............................."( |
| 78160 | 22 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 | ".(gptel--describe-directive.... |
| 78180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 781a0 | 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 | ....description.(-.(window-width |
| 781c0 | 29 20 33 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).30)).......................... |
| 781e0 | 20 20 20 20 20 20 20 20 20 22 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........")")................... |
| 78200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 73 68 61 64 6f 77 29 29 29 0a | ...............'face.'shadow))). |
| 78220 | 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 | ........`(lambda.().(interactive |
| 78240 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 | )............(gptel--set-with-sc |
| 78260 | 6f 70 65 20 27 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 20 27 2c 6e 61 6d 65 2d 73 79 6d 0a 20 20 | ope.'gptel--preset.',name-sym... |
| 78280 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 | ..........gptel--set-buffer-loca |
| 782a0 | 6c 6c 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 | lly)............(gptel--apply-pr |
| 782c0 | 65 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 2c 28 63 6f 6e 73 20 6e 61 6d 65 2d 73 79 | eset.............',(cons.name-sy |
| 782e0 | 6d 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 | m.preset).............(lambda.(s |
| 78300 | 79 6d 20 76 61 6c 29 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 | ym.val).(gptel--set-with-scope.. |
| 78320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 | ..............................sy |
| 78340 | 6d 20 76 61 6c 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 | m.val.gptel--set-buffer-locally) |
| 78360 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 70 70 6c 69 65 64 20 | ))............(message."Applied. |
| 78380 | 67 70 74 65 6c 20 70 72 65 73 65 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | gptel.preset.%s".............(pr |
| 783a0 | 6f 70 65 72 74 69 7a 65 20 2c 6e 61 6d 65 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d | opertize.,name.'face.'transient- |
| 783c0 | 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 61 6e 73 69 65 | value))............(when.transie |
| 783e0 | 6e 74 2d 2d 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 | nt--stack.............(run-at-ti |
| 78400 | 6d 65 20 30 20 6e 69 6c 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 29 29 0a 20 | me.0.nil.#'transient-setup)))).. |
| 78420 | 20 20 20 20 20 20 69 6e 74 6f 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20 20 20 20 66 69 6e 61 | ......into.generated........fina |
| 78440 | 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 27 | lly.return........(nconc.(list.' |
| 78460 | 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 0a 20 20 20 | (gptel--infix-variable-scope.... |
| 78480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 25 64 20 25 | ...................:format."%d.% |
| 784a0 | 6b 20 25 76 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 | k.%v".......................:des |
| 784c0 | 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | cription.......................( |
| 784e0 | 6c 61 6d 62 64 61 20 28 29 20 28 66 6f 72 6d 61 74 20 22 25 73 20 20 20 20 20 20 20 20 25 73 22 | lambda.().(format."%s........%s" |
| 78500 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | ..............................(p |
| 78520 | 72 6f 70 65 72 74 69 7a 65 20 22 41 70 70 6c 79 20 70 72 65 73 65 74 22 20 27 66 61 63 65 20 27 | ropertize."Apply.preset".'face.' |
| 78540 | 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | transient-heading).............. |
| 78560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 53 63 6f | ................(propertize."Sco |
| 78580 | 70 65 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 61 63 74 69 76 65 2d 70 72 65 66 | pe".'face.'transient-active-pref |
| 785a0 | 69 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 65 72 61 74 65 64 29 | ix)))))...............generated) |
| 785c0 | 29 29 29 5d 29 0a 0a 3b 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 65 6c 65 63 74 69 6e | )))])..;;.**.Prefix.for.selectin |
| 785e0 | 67 20 74 6f 6f 6c 73 0a 0a 3b 3b 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6f 66 66 65 72 73 20 61 | g.tools..;;.gptel-tools.offers.a |
| 78600 | 20 74 77 6f 2d 6c 65 76 65 6c 20 6d 65 6e 75 20 66 6f 72 20 73 65 6c 65 63 74 69 6e 67 20 74 6f | .two-level.menu.for.selecting.to |
| 78620 | 6f 6c 73 2c 20 69 74 73 20 64 65 73 69 67 6e 20 69 73 20 61 0a 3b 3b 20 6c 69 74 74 6c 65 20 63 | ols,.its.design.is.a.;;.little.c |
| 78640 | 6f 6e 76 6f 6c 75 74 65 64 20 73 6f 20 68 65 72 65 27 73 20 61 6e 20 65 78 70 6c 61 6e 61 74 69 | onvoluted.so.here's.an.explanati |
| 78660 | 6f 6e 3a 0a 3b 3b 0a 3b 3b 20 4e 6f 72 6d 61 6c 6c 79 20 61 20 74 72 61 6e 73 69 65 6e 74 20 70 | on:.;;.;;.Normally.a.transient.p |
| 78680 | 72 65 66 69 78 20 65 78 70 6f 72 74 73 20 69 74 73 20 76 61 6c 75 65 20 76 69 61 20 74 72 61 6e | refix.exports.its.value.via.tran |
| 786a0 | 73 69 65 6e 74 2d 61 72 67 73 2c 20 74 6f 20 62 65 0a 3b 3b 20 63 6f 6e 73 75 6d 65 64 20 62 79 | sient-args,.to.be.;;.consumed.by |
| 786c0 | 20 73 75 66 66 69 78 65 73 2c 20 77 68 65 72 65 20 74 68 65 73 65 20 61 72 67 73 20 61 72 65 20 | .suffixes,.where.these.args.are. |
| 786e0 | 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 0a 3b | determined.by.the.state.of.the.; |
| 78700 | 3b 20 6d 65 6e 75 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 65 78 70 6f 72 74 2e 20 20 54 | ;.menu.at.the.time.of.export...T |
| 78720 | 68 65 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6d 65 6e 75 20 69 73 20 64 79 6e 61 6d 69 63 20 61 | he.gptel-tools.menu.is.dynamic.a |
| 78740 | 6e 64 20 6e 65 65 64 73 20 74 6f 0a 3b 3b 20 73 74 6f 72 65 20 74 6f 6f 6c 20 73 65 6c 65 63 74 | nd.needs.to.;;.store.tool.select |
| 78760 | 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 6e 6f 74 20 62 65 20 76 69 73 69 62 6c 65 20 69 6e 20 | ions.that.may.not.be.visible.in. |
| 78780 | 74 68 65 20 6d 65 6e 79 20 61 6e 79 20 6d 6f 72 65 2c 20 73 6f 20 77 65 0a 3b 3b 20 63 61 6e 6e | the.meny.any.more,.so.we.;;.cann |
| 787a0 | 6f 74 20 75 73 65 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 2e 0a 3b 3b 0a 3b 3b | ot.use.the.transient-args..;;.;; |
| 787c0 | 20 57 65 20 63 61 6e 20 6e 6f 74 20 28 73 68 6f 75 6c 64 20 6e 6f 74 3f 29 20 63 6f 6e 74 72 6f | .We.can.not.(should.not?).contro |
| 787e0 | 6c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 72 65 66 69 78 20 64 69 72 65 63 74 | l.the.value.of.the.prefix.direct |
| 78800 | 6c 79 2c 20 73 6f 20 77 65 0a 3b 3b 20 69 6e 73 74 65 61 64 20 75 73 65 20 74 68 65 20 73 63 6f | ly,.so.we.;;.instead.use.the.sco |
| 78820 | 70 65 20 28 61 20 73 65 63 6f 6e 64 61 72 79 20 76 61 6c 75 65 29 20 6f 66 20 74 68 65 20 70 72 | pe.(a.secondary.value).of.the.pr |
| 78840 | 65 66 69 78 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 74 68 65 0a 3b 3b 20 68 69 73 74 6f 72 79 20 | efix.to.maintain.the.;;.history. |
| 78860 | 6f 66 20 73 65 6c 65 63 74 69 6f 6e 73 2e 20 20 57 68 65 6e 20 72 75 6e 6e 69 6e 67 20 61 20 73 | of.selections...When.running.a.s |
| 78880 | 75 66 66 69 78 2c 20 77 65 20 67 61 74 68 65 72 20 74 6f 6f 6c 20 73 65 6c 65 63 74 69 6f 6e 73 | uffix,.we.gather.tool.selections |
| 788a0 | 20 66 72 6f 6d 0a 3b 3b 20 74 68 65 20 73 63 6f 70 65 2e 20 20 54 68 65 20 73 63 6f 70 65 20 69 | .from.;;.the.scope...The.scope.i |
| 788c0 | 73 20 61 6c 73 6f 20 75 73 65 64 20 61 73 20 61 20 6d 65 73 73 61 67 65 20 63 68 61 6e 6e 65 6c | s.also.used.as.a.message.channel |
| 788e0 | 20 66 6f 72 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65 0a 3b 3b 20 63 61 74 65 67 6f 72 79 20 | .for.connecting.the.;;.category. |
| 78900 | 6d 65 6e 75 20 61 6e 64 20 74 68 65 20 74 6f 6f 6c 20 6c 69 73 74 20 6d 65 6e 75 20 66 6f 72 20 | menu.and.the.tool.list.menu.for. |
| 78920 | 74 68 61 74 20 63 61 74 65 67 6f 72 79 2e 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 | that.category...;;;###autoload.( |
| 78940 | 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 22 67 70 74 65 6c 2d 74 72 61 | autoload.'gptel-tools."gptel-tra |
| 78960 | 6e 73 69 65 6e 74 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | nsient".nil.t).(transient-define |
| 78980 | 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 28 29 0a 20 20 22 53 65 6c 65 63 74 | -prefix.gptel-tools.()..."Select |
| 789a0 | 20 74 6f 6f 6c 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 67 70 74 65 6c 20 72 65 71 | .tools.to.include.with.gptel.req |
| 789c0 | 75 65 73 74 73 2e 0a 0a 54 6f 6f 6c 73 20 61 72 65 20 6f 72 67 61 6e 69 7a 65 64 20 69 6e 74 6f | uests...Tools.are.organized.into |
| 789e0 | 20 63 61 74 65 67 6f 72 69 65 73 2e 20 20 53 65 6c 65 63 74 69 6e 67 20 74 68 65 20 63 61 74 65 | .categories...Selecting.the.cate |
| 78a00 | 67 6f 72 79 0a 74 6f 67 67 6c 65 73 20 61 6c 6c 20 74 68 65 20 74 6f 6f 6c 73 20 77 69 74 68 20 | gory.toggles.all.the.tools.with. |
| 78a20 | 74 68 61 74 20 63 61 74 65 67 6f 72 79 2e 0a 0a 54 6f 20 61 64 64 20 74 6f 6f 6c 73 20 74 6f 20 | that.category...To.add.tools.to. |
| 78a40 | 74 68 69 73 20 6c 69 73 74 2c 20 75 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 | this.list,.use.`gptel-make-tool' |
| 78a60 | 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 55 73 69 6e 67 20 74 68 65 20 73 63 6f 70 65 20 6f 70 | ,.which.see...Using.the.scope.op |
| 78a80 | 74 69 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 6f 6f 6c 73 20 74 6f 20 75 73 65 20 77 | tion,.you.can.set.tools.to.use.w |
| 78aa0 | 69 74 68 20 67 70 74 65 6c 0a 72 65 71 75 65 73 74 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 69 6e 20 | ith.gptel.requests.globally,.in. |
| 78ac0 | 74 68 69 73 20 62 75 66 66 65 72 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 | this.buffer.or.for.the.next.requ |
| 78ae0 | 65 73 74 0a 6f 6e 6c 79 20 28 5c 22 6f 6e 65 73 68 6f 74 5c 22 29 2e 22 0a 20 20 3a 72 65 66 72 | est.only.(\"oneshot\")."...:refr |
| 78b00 | 65 73 68 2d 73 75 66 66 69 78 65 73 20 74 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | esh-suffixes.t...[:description." |
| 78b20 | 50 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 74 6f 6f 6c 73 20 74 6f 20 72 75 | Provide.the.LLM.with.tools.to.ru |
| 78b40 | 6e 20 74 61 73 6b 73 20 66 6f 72 20 79 6f 75 22 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 67 70 74 | n.tasks.for.you"....["".....(gpt |
| 78b60 | 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 0a 20 20 20 20 28 67 | el--infix-variable-scope).....(g |
| 78b80 | 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 28 67 70 74 65 | ptel--infix-use-tools).....(gpte |
| 78ba0 | 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 | l--infix-confirm-tool-calls).... |
| 78bc0 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 | .(gptel--infix-include-tool-resu |
| 78be0 | 6c 74 73 29 5d 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 22 52 45 54 22 20 22 43 6f 6e 66 69 72 6d | lts)]....["".....("RET"."Confirm |
| 78c00 | 20 73 65 6c 65 63 74 69 6f 6e 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 73 29 | .selection"......(lambda.(tools) |
| 78c20 | 0a 20 20 20 20 20 20 20 3b 3b 20 57 65 20 64 6f 6e 27 74 20 63 61 72 65 20 61 62 6f 75 74 20 74 | ........;;.We.don't.care.about.t |
| 78c40 | 68 65 20 74 72 61 6e 73 69 65 6e 74 20 61 72 67 73 20 6f 66 20 74 68 69 73 20 70 72 65 66 69 78 | he.transient.args.of.this.prefix |
| 78c60 | 20 61 74 20 61 6c 6c 2c 20 73 69 6e 63 65 0a 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 73 74 61 | .at.all,.since........;;.the.sta |
| 78c80 | 74 65 20 69 73 20 6d 61 6e 61 67 65 64 20 65 6e 74 69 72 65 6c 79 20 74 68 72 6f 75 67 68 20 69 | te.is.managed.entirely.through.i |
| 78ca0 | 74 73 20 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 3a 0a 20 20 20 20 20 20 20 28 69 6e 74 65 | ts.transient-scope:........(inte |
| 78cc0 | 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 | ractive.(list.(plist-get.(transi |
| 78ce0 | 65 6e 74 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 20 3a 74 6f 6f 6c 73 29 29 | ent-scope.'gptel-tools).:tools)) |
| 78d00 | 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a | )........(gptel--set-with-scope. |
| 78d20 | 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 6d 61 | ........'gptel-tools.........(ma |
| 78d40 | 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 61 74 65 67 6f 72 79 2d 61 6e 64 2d 6e 61 6d 65 29 | pcar.(lambda.(category-and-name) |
| 78d60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 | ...................(map-nested-e |
| 78d80 | 6c 74 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 63 61 74 65 67 6f 72 79 2d 61 | lt.gptel--known-tools.category-a |
| 78da0 | 6e 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 | nd-name)).................(cl-de |
| 78dc0 | 6c 65 74 65 2d 69 66 2d 6e 6f 74 20 23 27 63 6f 6e 73 70 20 74 6f 6f 6c 73 29 29 0a 20 20 20 20 | lete-if-not.#'consp.tools))..... |
| 78de0 | 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a | ....gptel--set-buffer-locally)). |
| 78e00 | 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 | .....:transient.transient--do-re |
| 78e20 | 74 75 72 6e 29 0a 20 20 20 20 28 22 71 22 20 22 43 61 6e 63 65 6c 22 20 74 72 61 6e 73 69 65 6e | turn).....("q"."Cancel".transien |
| 78e40 | 74 2d 71 75 69 74 2d 6f 6e 65 29 5d 5d 0a 20 20 5b 5b 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 | t-quit-one)]]...[[:class.transie |
| 78e60 | 6e 74 2d 63 6f 6c 75 6d 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 44 69 73 70 6c 61 79 20 6b | nt-column.............;Display.k |
| 78e80 | 6e 6f 77 6e 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 | nown.categories.....:setup-child |
| 78ea0 | 72 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 28 74 72 61 6e 73 | ren.....(lambda.(_).......(trans |
| 78ec0 | 69 65 6e 74 2d 70 61 72 73 65 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 27 67 70 74 65 | ient-parse-suffixes........'gpte |
| 78ee0 | 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 20 20 20 20 | l-tools........(cl-loop......... |
| 78f00 | 20 3b 6c 6f 6f 70 20 74 68 72 6f 75 67 68 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 20 74 6f 6f 6c | .;loop.through.gptel--known.tool |
| 78f20 | 73 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 20 20 20 20 | s.and.collect.categories........ |
| 78f40 | 20 66 6f 72 20 28 63 61 74 65 67 6f 72 79 20 2e 20 74 6f 6f 6c 73 2d 61 6c 69 73 74 29 20 69 6e | .for.(category...tools-alist).in |
| 78f60 | 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 77 69 74 68 | .gptel--known-tools.........with |
| 78f80 | 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 6e 63 6f 6e 63 20 28 64 65 6c 65 74 65 20 3f 71 | .unused-keys.=.(nconc.(delete.?q |
| 78fa0 | 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 61 20 3f 7a 29 29 0a 20 20 20 20 20 20 | .(number-sequence.?a.?z))....... |
| 78fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d | ............................(num |
| 78fe0 | 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ber-sequence.?0.?9)............. |
| 79000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 73 65 | ......................(number-se |
| 79020 | 71 75 65 6e 63 65 20 3f 41 20 3f 5a 29 29 0a 20 20 20 20 20 20 20 20 66 6f 72 20 63 61 74 65 67 | quence.?A.?Z)).........for.categ |
| 79040 | 6f 72 79 2d 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6b 29 20 | ory-key.=.(seq-find.(lambda.(k). |
| 79060 | 28 6d 65 6d 62 65 72 20 6b 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 | (member.k.unused-keys))......... |
| 79080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 | .............................(st |
| 790a0 | 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 70 72 65 66 69 78 20 22 6d 63 70 2d 22 20 63 61 74 65 67 6f | ring-remove-prefix."mcp-".catego |
| 790c0 | 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ry)............................. |
| 790e0 | 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 66 69 72 73 74 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 | .........(seq-first.unused-keys) |
| 79100 | 29 0a 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 28 | ).........do.(setq.unused-keys.( |
| 79120 | 64 65 6c 65 74 65 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 | delete.category-key.unused-keys) |
| 79140 | 29 0a 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 28 6b 65 79 2d 64 65 73 | ).........collect.(list.(key-des |
| 79160 | 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 29 29 0a 20 20 | cription.(list.category-key))... |
| 79180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f | ....................(concat.(pro |
| 791a0 | 70 65 72 74 69 7a 65 20 63 61 74 65 67 6f 72 79 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e | pertize.category.'face.'transien |
| 791c0 | 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-heading)...................... |
| 791e0 | 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6d 61 78 20 28 2d 20 31 34 | .........(make-string.(max.(-.14 |
| 79200 | 20 28 6c 65 6e 67 74 68 20 63 61 74 65 67 6f 72 79 29 29 20 30 29 20 3f 20 29 29 0a 20 20 20 20 | .(length.category)).0).?.))..... |
| 79220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 72 2d 74 6f 2d 73 74 72 69 6e | ..................(char-to-strin |
| 79240 | 67 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.category-key)................. |
| 79260 | 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 20 20 20 20 | ......:format.".%k.%d.%v"....... |
| 79280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 | ................:class.'gptel--s |
| 792a0 | 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | witch-category.................. |
| 792c0 | 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 | .....:category.category)........ |
| 792e0 | 20 69 6e 74 6f 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 | .into.categories.........finally |
| 79300 | 20 64 6f 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 | .do.(plist-put.(transient-scope) |
| 79320 | 20 3a 6b 65 79 73 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 0a 20 20 20 20 20 20 20 20 66 69 6e 61 | .:keys.unused-keys).........fina |
| 79340 | 6c 6c 79 20 72 65 74 75 72 6e 20 63 61 74 65 67 6f 72 69 65 73 29 29 29 5d 0a 20 20 20 5b 3a 63 | lly.return.categories)))]....[:c |
| 79360 | 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 20 20 20 20 20 20 20 20 20 20 20 | lass.transient-column........... |
| 79380 | 3b 44 69 73 70 6c 61 79 20 6b 6e 6f 77 6e 20 74 6f 6f 6c 73 20 66 6f 72 20 73 65 6c 65 63 74 65 | ;Display.known.tools.for.selecte |
| 793a0 | 64 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 65 6e 0a 20 | d.category.....:setup-children.. |
| 793c0 | 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d | ...(lambda.(_).......(transient- |
| 793e0 | 70 61 72 73 65 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f | parse-suffixes........'gptel-too |
| 79400 | 6c 73 0a 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 61 74 65 67 6f 72 79 20 | ls........(when-let*.((category. |
| 79420 | 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 63 61 | (plist-get.(transient-scope).:ca |
| 79440 | 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f | tegory))....................(too |
| 79460 | 6c 2d 6b 65 79 73 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f | l-keys.(plist-get.(transient-sco |
| 79480 | 70 65 29 20 3a 6b 65 79 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 | pe).:keys)))..........(cl-loop.. |
| 794a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f 72 20 65 61 63 68 20 63 61 74 65 67 | .................;for.each.categ |
| 794c0 | 6f 72 79 2c 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 73 20 61 73 20 69 6e 66 69 78 65 73 0a 20 20 | ory,.collect.tools.as.infixes... |
| 794e0 | 20 20 20 20 20 20 20 20 77 69 74 68 20 74 6f 6f 6c 73 2d 61 6c 69 73 74 20 3d 20 28 63 64 72 20 | ........with.tools-alist.=.(cdr. |
| 79500 | 28 61 73 73 6f 63 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f | (assoc.category.gptel--known-too |
| 79520 | 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6e 61 6d 65 20 2e 20 74 6f 6f 6c 29 | ls))...........for.(name...tool) |
| 79540 | 20 69 6e 20 74 6f 6f 6c 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f | .in.tools-alist...........for.to |
| 79560 | 6f 6c 2d 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6b 29 20 28 | ol-key.=.(seq-find.(lambda.(k).( |
| 79580 | 6d 65 6d 62 65 72 20 6b 20 74 6f 6f 6c 2d 6b 65 79 73 29 29 20 6e 61 6d 65 20 28 73 65 71 2d 66 | member.k.tool-keys)).name.(seq-f |
| 795a0 | 69 72 73 74 20 74 6f 6f 6c 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 | irst.tool-keys))...........do.(s |
| 795c0 | 65 74 71 20 74 6f 6f 6c 2d 6b 65 79 73 20 28 64 65 6c 65 74 65 20 74 6f 6f 6c 2d 6b 65 79 20 74 | etq.tool-keys.(delete.tool-key.t |
| 795e0 | 6f 6f 6c 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 20 20 20 | ool-keys))...........collect.... |
| 79600 | 20 20 20 20 20 20 3b 45 61 63 68 20 6c 69 73 74 20 69 73 20 61 20 74 72 61 6e 73 69 65 6e 74 20 | ......;Each.list.is.a.transient. |
| 79620 | 69 6e 66 69 78 20 6f 66 20 74 79 70 65 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 0a 20 20 20 20 | infix.of.type.gptel--switch..... |
| 79640 | 20 20 20 20 20 20 28 6c 69 73 74 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 69 | ......(list.(key-description.(li |
| 79660 | 73 74 20 74 6f 6f 6c 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | st.tool-key)).................(c |
| 79680 | 6f 6e 63 61 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6d 61 78 20 28 2d 20 32 30 20 28 6c | oncat.(make-string.(max.(-.20.(l |
| 796a0 | 65 6e 67 74 68 20 6e 61 6d 65 29 29 20 30 29 20 3f 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ength.name)).0).?.)............. |
| 796c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 | ............(propertize......... |
| 796e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 28 22 20 28 67 70 | .................(concat."(".(gp |
| 79700 | 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 | tel--describe-directive......... |
| 79720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ..............................(g |
| 79740 | 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 6f 6f 6c 29 20 28 2d 20 28 | ptel-tool-description.tool).(-.( |
| 79760 | 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 34 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | window-width).40)).............. |
| 79780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 0a 20 20 20 20 20 20 20 | ....................")")........ |
| 797a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 73 68 61 64 6f 77 29 | ..................'face.'shadow) |
| 797c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 | ).................(gptel-tool-na |
| 797e0 | 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 | me.tool).................:format |
| 79800 | 20 22 20 25 6b 20 25 76 20 25 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e | .".%k.%v.%d".................:in |
| 79820 | 69 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 74 6f 6f 6c 73 2d 69 6e 69 74 2d 76 61 6c | it-value.#'gptel--tools-init-val |
| 79840 | 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c | ue.................:class.'gptel |
| 79860 | 2d 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f | --switch.................:catego |
| 79880 | 72 79 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 69 6e 66 69 | ry.category)...........into.infi |
| 798a0 | 78 65 73 2d 66 6f 72 2d 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c | xes-for-category...........final |
| 798c0 | 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 | ly.return...........(cons.(list. |
| 798e0 | 3a 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d | :info.......................(lam |
| 79900 | 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.().(concat.................. |
| 79920 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 70 6c 69 73 74 2d 67 | ............(propertize.(plist-g |
| 79940 | 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 6b 65 79 29 0a 20 20 20 20 20 | et.(transient-scope).:key)...... |
| 79960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79980 | 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 6b 65 79 29 0a 20 20 20 20 20 20 | ....'face.'transient-key)....... |
| 799a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | .......................(properti |
| 799c0 | 7a 65 20 22 20 74 6f 67 67 6c 65 20 61 6c 6c 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e | ze.".toggle.all".'face.'transien |
| 799e0 | 74 2d 68 65 61 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-heading))).................... |
| 79a00 | 20 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:format.".%d")............... |
| 79a20 | 20 20 69 6e 66 69 78 65 73 2d 66 6f 72 2d 63 61 74 65 67 6f 72 79 29 29 29 29 29 5d 5d 0a 20 20 | ..infixes-for-category)))))]]... |
| 79a40 | 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 | (interactive)...(transient-setup |
| 79a60 | 0a 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 3a 73 63 6f | ....'gptel-tools.nil.nil....:sco |
| 79a80 | 70 65 20 28 6c 69 73 74 20 3a 74 6f 6f 6c 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 | pe.(list.:tools.(mapcar.(lambda. |
| 79aa0 | 28 74 6f 6f 6c 29 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 | (tool).(list.(gptel-tool-categor |
| 79ac0 | 79 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y.tool)......................... |
| 79ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f | .......................(gptel-to |
| 79b00 | 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol-name.tool)))................. |
| 79b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 29 0a 0a | ...............gptel-tools)))).. |
| 79b40 | 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 49 6e 66 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 | ..;;.*.Transient.Infixes..;;.**. |
| 79b60 | 49 6e 66 69 78 65 73 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 61 67 67 72 65 67 61 74 69 6f 6e 0a | Infixes.for.context.aggregation. |
| 79b80 | 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d | .(transient-define-infix.gptel-- |
| 79ba0 | 69 6e 66 69 78 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 28 29 0a 20 20 22 44 65 73 63 72 69 62 65 | infix-use-context.()..."Describe |
| 79bc0 | 20 74 61 72 67 65 74 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 | .target.destination.for.context. |
| 79be0 | 69 6e 6a 65 63 74 69 6f 6e 2e 0a 0a 67 70 74 65 6c 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 77 | injection...gptel.will.include.w |
| 79c00 | 69 74 68 20 74 68 65 20 4c 4c 4d 20 72 65 71 75 65 73 74 20 61 6e 79 20 61 64 64 69 74 69 6f 6e | ith.the.LLM.request.any.addition |
| 79c20 | 61 6c 20 63 6f 6e 74 65 78 74 0a 61 64 64 65 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 61 64 64 | al.context.added.with.`gptel-add |
| 79c40 | 27 2e 20 20 54 68 69 73 20 63 6f 6e 74 65 78 74 20 63 61 6e 20 62 65 20 69 67 6e 6f 72 65 64 2c | '...This.context.can.be.ignored, |
| 79c60 | 20 69 6e 63 6c 75 64 65 64 0a 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 | .included.with.the.system.messag |
| 79c80 | 65 20 6f 72 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d | e.or.included.with.the.user.prom |
| 79ca0 | 70 74 2e 0a 0a 57 68 65 72 65 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 68 69 73 20 63 | pt...Where.in.the.request.this.c |
| 79cc0 | 6f 6e 74 65 78 74 20 69 73 20 69 6e 63 6c 75 64 65 64 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 | ontext.is.included.depends.on.th |
| 79ce0 | 65 0a 76 61 6c 75 65 20 6f 66 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 27 2c 20 | e.value.of.`gptel-use-context',. |
| 79d00 | 73 65 74 20 66 72 6f 6d 20 68 65 72 65 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | set.from.here."...:description." |
| 79d20 | 49 6e 63 6c 75 64 65 20 63 6f 6e 74 65 78 74 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c | Include.context"...:class.'gptel |
| 79d40 | 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 | -lisp-variable...:variable.'gpte |
| 79d60 | 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 | l-use-context...:format.".%k.%d. |
| 79d80 | 25 76 22 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 | %v"...:set-value.#'gptel--set-wi |
| 79da0 | 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 4e 6f 22 0a 20 20 3a | th-scope...:display-nil."No"...: |
| 79dc0 | 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 20 20 20 2e 20 22 4e 6f 22 29 0a 20 20 | display-map.'((nil......"No")... |
| 79de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 73 74 65 6d 20 2e 20 22 77 69 74 68 20 73 | ...............(system..."with.s |
| 79e00 | 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ystem.message")................. |
| 79e20 | 20 28 75 73 65 72 20 20 20 2e 20 22 77 69 74 68 20 75 73 65 72 20 70 72 6f 6d 70 74 22 29 29 0a | .(user....."with.user.prompt")). |
| 79e40 | 20 20 3a 6b 65 79 20 22 2d 69 22 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 | ..:key."-i"...:reader.(lambda.(p |
| 79e60 | 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a | rompt.&rest._).............(let* |
| 79e80 | 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 4e 6f 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .((choices.'(("No".............. |
| 79ea0 | 20 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......nil)...................... |
| 79ec0 | 20 20 20 20 20 20 20 20 20 28 22 77 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 | .........("with.system.message". |
| 79ee0 | 2e 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..system)....................... |
| 79f00 | 20 20 20 20 20 20 20 20 28 22 77 69 74 68 20 75 73 65 72 20 70 72 6f 6d 70 74 22 20 20 20 20 2e | ........("with.user.prompt"..... |
| 79f20 | 20 75 73 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 | .user)))....................(des |
| 79f40 | 74 69 6e 61 74 69 6f 6e 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 | tination.(completing-read.prompt |
| 79f60 | 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .choices.nil.t)))............... |
| 79f80 | 28 63 64 72 20 28 61 73 73 6f 63 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 63 68 6f 69 63 65 73 29 | (cdr.(assoc.destination.choices) |
| 79fa0 | 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 6d 6f 64 65 6c 20 70 61 | ))))..;;.**.Infixes.for.model.pa |
| 79fc0 | 72 61 6d 65 74 65 72 73 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 | rameters..(transient-define-infi |
| 79fe0 | 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 20 28 29 | x.gptel--infix-variable-scope.() |
| 7a000 | 0a 20 20 22 53 65 74 20 67 70 74 65 6c 27 73 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 | ..."Set.gptel's.model.parameters |
| 7a020 | 20 61 6e 64 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 69 6e 20 74 68 69 73 20 62 75 66 66 | .and.system.message.in.this.buff |
| 7a040 | 65 72 20 6f 72 20 67 6c 6f 62 61 6c 6c 79 2e 22 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 73 63 | er.or.globally."...:argument."sc |
| 7a060 | 6f 70 65 22 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 | ope"...:variable.'gptel--set-buf |
| 7a080 | 66 65 72 2d 6c 6f 63 61 6c 6c 79 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 63 6f | fer-locally...:class.'gptel--sco |
| 7a0a0 | 70 65 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 6b 65 79 | pe...:format."..%k.%d.%v"...:key |
| 7a0c0 | 20 22 3d 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | ."="...:description.(propertize. |
| 7a0e0 | 22 53 63 6f 70 65 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 | "Scope".'face.'transient-inactiv |
| 7a100 | 65 2d 61 72 67 75 6d 65 6e 74 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d | e-argument))..(transient-define- |
| 7a120 | 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d | infix.gptel--infix-num-messages- |
| 7a140 | 74 6f 2d 73 65 6e 64 20 28 29 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 72 65 63 65 6e 74 20 6d | to-send.()..."Number.of.recent.m |
| 7a160 | 65 73 73 61 67 65 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 20 65 78 63 68 61 6e | essages.to.send.with.each.exchan |
| 7a180 | 67 65 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 66 75 6c 6c 20 63 6f 6e 76 65 72 | ge...By.default,.the.full.conver |
| 7a1a0 | 73 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 69 73 20 73 65 6e 74 20 77 69 74 68 20 65 76 65 72 | sation.history.is.sent.with.ever |
| 7a1c0 | 79 20 6e 65 77 0a 70 72 6f 6d 70 74 2e 20 54 68 69 73 20 72 65 74 61 69 6e 73 20 74 68 65 20 66 | y.new.prompt..This.retains.the.f |
| 7a1e0 | 75 6c 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2c | ull.context.of.the.conversation, |
| 7a200 | 20 62 75 74 0a 63 61 6e 20 62 65 20 65 78 70 65 6e 73 69 76 65 20 69 6e 20 74 6f 6b 65 6e 20 73 | .but.can.be.expensive.in.token.s |
| 7a220 | 69 7a 65 2e 20 53 65 74 20 68 6f 77 20 6d 61 6e 79 20 72 65 63 65 6e 74 20 6d 65 73 73 61 67 65 | ize..Set.how.many.recent.message |
| 7a240 | 73 20 74 6f 0a 69 6e 63 6c 75 64 65 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 70 | s.to.include."...:description."p |
| 7a260 | 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 | revious.responses"...:class.'gpt |
| 7a280 | 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 | el-lisp-variable...:variable.'gp |
| 7a2a0 | 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 3a 73 65 74 | tel--num-messages-to-send...:set |
| 7a2c0 | 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 | -value.#'gptel--set-with-scope.. |
| 7a2e0 | 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 27 61 6c 6c 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 | .:display-nil.'all...:format.".% |
| 7a300 | 6b 20 25 76 20 25 64 22 0a 20 20 3a 6b 65 79 20 22 2d 6e 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 | k.%v.%d"...:key."-n"...:prompt." |
| 7a320 | 4e 75 6d 62 65 72 20 6f 66 20 70 61 73 74 20 6d 65 73 73 61 67 65 73 20 74 6f 20 69 6e 63 6c 75 | Number.of.past.messages.to.inclu |
| 7a340 | 64 65 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 28 6c 65 61 76 65 20 65 6d 70 74 79 20 66 6f 72 20 | de.for.context.(leave.empty.for. |
| 7a360 | 61 6c 6c 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 27 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 | all):."...:reader.'gptel--transi |
| 7a380 | 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 | ent-read-number)..(transient-def |
| 7a3a0 | 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6d 61 78 2d 74 6f 6b 65 6e | ine-infix.gptel--infix-max-token |
| 7a3c0 | 73 20 28 29 0a 20 20 22 4d 61 78 20 74 6f 6b 65 6e 73 20 70 65 72 20 72 65 73 70 6f 6e 73 65 2e | s.()..."Max.tokens.per.response. |
| 7a3e0 | 0a 0a 54 68 69 73 20 69 73 20 72 6f 75 67 68 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 | ..This.is.roughly.the.number.of. |
| 7a400 | 77 6f 72 64 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 20 31 30 30 2d 33 30 30 20 69 | words.in.the.response..100-300.i |
| 7a420 | 73 20 61 0a 72 65 61 73 6f 6e 61 62 6c 65 20 72 61 6e 67 65 20 66 6f 72 20 73 68 6f 72 74 20 61 | s.a.reasonable.range.for.short.a |
| 7a440 | 6e 73 77 65 72 73 2c 20 34 30 30 20 6f 72 20 6d 6f 72 65 20 66 6f 72 20 6c 6f 6e 67 65 72 0a 72 | nswers,.400.or.more.for.longer.r |
| 7a460 | 65 73 70 6f 6e 73 65 73 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 73 70 6f | esponses."...:description."Respo |
| 7a480 | 6e 73 65 20 6c 65 6e 67 74 68 20 28 74 6f 6b 65 6e 73 29 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 | nse.length.(tokens)"...:class.'g |
| 7a4a0 | 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 | ptel-lisp-variable...:variable.' |
| 7a4c0 | 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 | gptel-max-tokens...:set-value.#' |
| 7a4e0 | 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 | gptel--set-with-scope...:display |
| 7a500 | 2d 6e 69 6c 20 27 61 75 74 6f 0a 20 20 3a 6b 65 79 20 22 2d 63 22 0a 20 20 3a 70 72 6f 6d 70 74 | -nil.'auto...:key."-c"...:prompt |
| 7a520 | 20 22 52 65 73 70 6f 6e 73 65 20 6c 65 6e 67 74 68 20 69 6e 20 74 6f 6b 65 6e 73 20 28 6c 65 61 | ."Response.length.in.tokens.(lea |
| 7a540 | 76 65 20 65 6d 70 74 79 3a 20 64 65 66 61 75 6c 74 2c 20 38 30 2d 32 30 30 3a 20 73 68 6f 72 74 | ve.empty:.default,.80-200:.short |
| 7a560 | 2c 20 32 30 30 2d 35 30 30 3a 20 6c 6f 6e 67 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 27 67 | ,.200-500:.long):."...:reader.'g |
| 7a580 | 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 29 0a 0a 28 74 | ptel--transient-read-number)..(t |
| 7a5a0 | 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 | ransient-define-infix.gptel--inf |
| 7a5c0 | 69 78 2d 70 72 6f 76 69 64 65 72 20 28 29 0a 20 20 22 41 49 20 50 72 6f 76 69 64 65 72 20 66 6f | ix-provider.()..."AI.Provider.fo |
| 7a5e0 | 72 20 43 68 61 74 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 64 65 6c 22 0a | r.Chat."...:description."Model". |
| 7a600 | 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c | ..:class.'gptel-provider-variabl |
| 7a620 | 65 0a 20 20 3a 70 72 6f 6d 70 74 20 22 4d 6f 64 65 6c 3a 20 22 0a 20 20 3a 76 61 72 69 61 62 6c | e...:prompt."Model:."...:variabl |
| 7a640 | 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 | e.'gptel-model...:set-value.#'gp |
| 7a660 | 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 62 61 63 6b 65 6e 64 20 27 | tel--set-with-scope...:backend.' |
| 7a680 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 3a 6b 65 79 20 22 2d 6d 22 0a 20 20 3a 72 65 61 | gptel-backend...:key."-m"...:rea |
| 7a6a0 | 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 | der.(lambda.(prompt.&rest._).... |
| 7a6c0 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | .........(cl-loop..............f |
| 7a6e0 | 6f 72 20 28 6e 61 6d 65 20 2e 20 62 61 63 6b 65 6e 64 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e | or.(name...backend).in.gptel--kn |
| 7a700 | 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 63 6f 6e 63 20 | own-backends..............nconc. |
| 7a720 | 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6d 6f 64 65 6c 20 69 6e 20 28 67 70 74 65 6c 2d 62 61 63 | (cl-loop.for.model.in.(gptel-bac |
| 7a740 | 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | kend-models.backend)............ |
| 7a760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 28 | .................collect.(list.( |
| 7a780 | 63 6f 6e 63 61 74 20 6e 61 6d 65 20 22 3a 22 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 | concat.name.":".(gptel--model-na |
| 7a7a0 | 6d 65 20 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me.model))...................... |
| 7a7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 20 6d 6f 64 | .....................backend.mod |
| 7a7e0 | 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 6d 6f 64 65 6c 73 2d 61 6c | el))..............into.models-al |
| 7a800 | 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e | ist..............with.completion |
| 7a820 | 2d 65 78 74 72 61 2d 70 72 6f 70 65 72 74 69 65 73 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -extra-properties.=............. |
| 7a840 | 20 60 28 3a 61 6e 6e 6f 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 | .`(:annotation-function......... |
| 7a860 | 20 20 20 20 20 20 20 2c 28 6c 61 6d 62 64 61 20 28 63 6f 6d 70 29 0a 09 09 20 20 28 6c 65 74 2a | .......,(lambda.(comp).....(let* |
| 7a880 | 20 28 28 6d 6f 64 65 6c 20 28 6e 74 68 20 32 20 28 61 73 73 6f 63 20 63 6f 6d 70 20 6d 6f 64 65 | .((model.(nth.2.(assoc.comp.mode |
| 7a8a0 | 6c 73 2d 61 6c 69 73 74 29 29 29 0a 09 09 09 20 28 64 65 73 63 20 28 67 65 74 20 6d 6f 64 65 6c | ls-alist))).....(desc.(get.model |
| 7a8c0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 29 0a 09 09 09 20 28 63 61 70 73 20 28 67 65 74 20 6d | .:description)).....(caps.(get.m |
| 7a8e0 | 6f 64 65 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 29 29 0a 09 09 09 20 28 63 6f 6e 74 65 78 | odel.:capabilities)).....(contex |
| 7a900 | 74 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 29 29 0a 09 | t.(get.model.:context-window)).. |
| 7a920 | 09 09 20 28 69 6e 70 75 74 2d 63 6f 73 74 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 69 6e 70 75 74 | ...(input-cost.(get.model.:input |
| 7a940 | 2d 63 6f 73 74 29 29 0a 09 09 09 20 28 6f 75 74 70 75 74 2d 63 6f 73 74 20 28 67 65 74 20 6d 6f | -cost)).....(output-cost.(get.mo |
| 7a960 | 64 65 6c 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 29 29 0a 09 09 09 20 28 63 75 74 6f 66 66 20 28 | del.:output-cost)).....(cutoff.( |
| 7a980 | 67 65 74 20 6d 6f 64 65 6c 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 29 29 29 0a 09 09 20 20 20 20 | get.model.:cutoff-date)))....... |
| 7a9a0 | 28 77 68 65 6e 20 28 6f 72 20 64 65 73 63 20 63 61 70 73 20 63 6f 6e 74 65 78 74 20 69 6e 70 75 | (when.(or.desc.caps.context.inpu |
| 7a9c0 | 74 2d 63 6f 73 74 20 6f 75 74 70 75 74 2d 63 6f 73 74 20 63 75 74 6f 66 66 29 0a 09 09 20 20 20 | t-cost.output-cost.cutoff)...... |
| 7a9e0 | 20 20 20 28 63 6f 6e 63 61 74 0a 09 09 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | ...(concat..........(propertize. |
| 7aa00 | 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 34 | ".".'display.`(space.:align-to.4 |
| 7aa20 | 30 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 73 63 20 28 74 72 75 6e 63 61 74 | 0))..........(when.desc.(truncat |
| 7aa40 | 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 64 65 73 63 20 37 30 20 6e 69 6c 20 3f 20 | e-string-to-width.desc.70.nil.?. |
| 7aa60 | 74 20 74 29 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 | t.t))..........".".(propertize." |
| 7aa80 | 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 31 | .".'display.`(space.:align-to.11 |
| 7aaa0 | 32 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 61 70 73 20 28 74 72 75 6e 63 61 74 | 2))..........(when.caps.(truncat |
| 7aac0 | 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 | e-string-to-width.(prin1-to-stri |
| 7aae0 | 6e 67 20 63 61 70 73 29 20 32 31 20 6e 69 6c 20 3f 20 74 20 74 29 29 0a 09 09 20 20 20 20 20 20 | ng.caps).21.nil.?.t.t))......... |
| 7ab00 | 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 | .".".(propertize.".".'display.`( |
| 7ab20 | 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 33 34 29 29 0a 09 09 20 20 20 20 20 20 20 28 | space.:align-to.134))..........( |
| 7ab40 | 77 68 65 6e 20 63 6f 6e 74 65 78 74 20 28 66 6f 72 6d 61 74 20 22 25 35 64 6b 22 20 63 6f 6e 74 | when.context.(format."%5dk".cont |
| 7ab60 | 65 78 74 29 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 | ext))..........".".(propertize." |
| 7ab80 | 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 34 | .".'display.`(space.:align-to.14 |
| 7aba0 | 32 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 70 75 74 2d 63 6f 73 74 20 28 66 | 2))..........(when.input-cost.(f |
| 7abc0 | 6f 72 6d 61 74 20 22 24 25 35 2e 32 66 20 69 6e 22 20 69 6e 70 75 74 2d 63 6f 73 74 29 29 0a 09 | ormat."$%5.2f.in".input-cost)).. |
| 7abe0 | 09 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 69 6e 70 75 74 2d 63 6f 73 74 20 6f 75 74 70 | ........(if.(and.input-cost.outp |
| 7ac00 | 75 74 2d 63 6f 73 74 29 20 22 2c 22 20 22 20 22 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 20 28 | ut-cost).",".".")..........".".( |
| 7ac20 | 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 | propertize.".".'display.`(space. |
| 7ac40 | 3a 61 6c 69 67 6e 2d 74 6f 20 31 35 33 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 6f | :align-to.153))..........(when.o |
| 7ac60 | 75 74 70 75 74 2d 63 6f 73 74 20 28 66 6f 72 6d 61 74 20 22 24 25 36 2e 32 66 20 6f 75 74 22 20 | utput-cost.(format."$%6.2f.out". |
| 7ac80 | 6f 75 74 70 75 74 2d 63 6f 73 74 29 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 20 28 70 72 6f 70 | output-cost))..........".".(prop |
| 7aca0 | 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 | ertize.".".'display.`(space.:ali |
| 7acc0 | 67 6e 2d 74 6f 20 31 36 36 29 29 0a 09 09 20 20 20 20 20 20 20 63 75 74 6f 66 66 29 29 29 29 29 | gn-to.166))..........cutoff))))) |
| 7ace0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 | ..............finally.return.... |
| 7ad00 | 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 28 63 6f 6d 70 6c 65 74 69 6e | ..........(cdr.(assoc.(completin |
| 7ad20 | 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 20 6e 69 6c 20 74 | g-read.prompt.models-alist.nil.t |
| 7ad40 | 20 6e 69 6c 20 6e 69 6c 0a 09 09 09 09 09 20 20 28 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 | .nil.nil........(concat.(gptel-b |
| 7ad60 | 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 3a 22 0a 09 | ackend-name.gptel-backend).":".. |
| 7ad80 | 09 09 09 09 09 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | .......(gptel--model-name.gptel- |
| 7ada0 | 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | model)))........................ |
| 7adc0 | 20 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d | ..models-alist)))))..(transient- |
| 7ade0 | 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 65 6d 70 65 72 | define-infix.gptel--infix-temper |
| 7ae00 | 61 74 75 72 65 20 28 29 0a 20 20 22 54 65 6d 70 65 72 61 74 75 72 65 20 6f 66 20 72 65 71 75 65 | ature.()..."Temperature.of.reque |
| 7ae20 | 73 74 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 65 6d 70 65 72 61 74 75 72 65 | st."...:description."Temperature |
| 7ae40 | 20 28 30 20 2d 20 32 2e 30 29 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 64 65 66 61 | .(0.-.2.0)"...:display-nil."defa |
| 7ae60 | 75 6c 74 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 | ult"...:class.'gptel-lisp-variab |
| 7ae80 | 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 | le...:variable.'gptel-temperatur |
| 7aea0 | 65 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 | e...:set-value.#'gptel--set-with |
| 7aec0 | 2d 73 63 6f 70 65 0a 20 20 3a 6b 65 79 20 22 2d 54 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 54 65 | -scope...:key."-T"...:prompt."Te |
| 7aee0 | 6d 70 65 72 61 74 75 72 65 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 | mperature.controls.the.response. |
| 7af00 | 72 61 6e 64 6f 6d 6e 65 73 73 20 28 30 2e 30 2d 32 2e 30 2c 20 6c 65 61 76 65 20 65 6d 70 74 79 | randomness.(0.0-2.0,.leave.empty |
| 7af20 | 20 66 6f 72 20 41 50 49 20 64 65 66 61 75 6c 74 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 27 | .for.API.default):."...:reader.' |
| 7af40 | 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 29 0a 0a 28 | gptel--transient-read-number)..( |
| 7af60 | 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e | transient-define-infix.gptel--in |
| 7af80 | 66 69 78 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a 20 20 22 44 69 73 74 69 6e 67 | fix-track-response.()..."Disting |
| 7afa0 | 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 6e 64 20 4c | uish.between.user.messages.and.L |
| 7afc0 | 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 57 68 65 6e 20 63 72 65 61 74 69 6e 67 20 61 20 70 | LM.responses...When.creating.a.p |
| 7afe0 | 72 6f 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 67 70 74 65 6c 20 | rompt.to.send.to.the.LLM,.gptel. |
| 7b000 | 64 69 73 74 69 6e 67 75 69 73 68 65 73 0a 62 65 74 77 65 65 6e 20 74 65 78 74 20 65 6e 74 65 72 | distinguishes.between.text.enter |
| 7b020 | 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 6e 64 20 70 61 73 74 20 4c 4c 4d 20 72 65 73 70 | ed.by.the.user.and.past.LLM.resp |
| 7b040 | 6f 6e 73 65 73 2e 20 20 54 68 69 73 20 69 73 0a 72 65 71 75 69 72 65 64 20 66 6f 72 20 6d 75 6c | onses...This.is.required.for.mul |
| 7b060 | 74 69 2d 74 75 72 6e 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2c 20 61 6e 64 20 69 73 20 61 6c | ti-turn.conversations,.and.is.al |
| 7b080 | 77 61 79 73 20 74 68 65 20 63 61 73 65 20 69 6e 0a 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 | ways.the.case.in.dedicated.chat. |
| 7b0a0 | 62 75 66 66 65 72 73 20 28 69 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 29 2e 0a 0a 49 6e 20 72 | buffers.(in.`gptel-mode')...In.r |
| 7b0c0 | 65 67 75 6c 61 72 20 62 75 66 66 65 72 73 2c 20 79 6f 75 20 63 61 6e 20 74 6f 67 67 6c 65 20 74 | egular.buffers,.you.can.toggle.t |
| 7b0e0 | 68 69 73 20 62 65 68 61 76 69 6f 72 20 68 65 72 65 20 6f 72 20 62 79 0a 63 75 73 74 6f 6d 69 7a | his.behavior.here.or.by.customiz |
| 7b100 | 69 6e 67 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 27 2e 20 20 57 68 65 | ing.`gptel-track-response'...Whe |
| 7b120 | 6e 20 72 65 73 70 6f 6e 73 65 20 74 72 61 63 6b 69 6e 67 20 69 73 0a 74 75 72 6e 65 64 20 6f 66 | n.response.tracking.is.turned.of |
| 7b140 | 66 2c 20 61 6c 6c 20 74 65 78 74 20 77 69 6c 6c 20 62 65 20 61 73 73 69 67 6e 65 64 20 74 68 65 | f,.all.text.will.be.assigned.the |
| 7b160 | 20 5c 22 75 73 65 72 5c 22 20 72 6f 6c 65 20 77 68 65 6e 0a 71 75 65 72 79 69 6e 67 20 74 68 65 | .\"user\".role.when.querying.the |
| 7b180 | 20 4c 4c 4d 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 72 61 63 6b 20 4c 4c 4d | .LLM."...:description."Track.LLM |
| 7b1a0 | 20 72 65 73 70 6f 6e 73 65 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 77 69 | .responses"...:class.'gptel--swi |
| 7b1c0 | 74 63 68 65 73 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 | tches...:variable.'gptel-track-r |
| 7b1e0 | 65 73 70 6f 6e 73 65 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 | esponse...:set-value.#'gptel--se |
| 7b200 | 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 | t-with-scope...:display-if-true. |
| 7b220 | 22 59 65 73 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 22 4e 6f 22 0a 20 | "Yes"...:display-if-false."No".. |
| 7b240 | 20 3a 6b 65 79 20 22 2d 52 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 | .:key."-R")..(transient-define-i |
| 7b260 | 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 29 | nfix.gptel--infix-track-media.() |
| 7b280 | 0a 20 20 22 53 65 6e 64 20 6d 65 64 69 61 20 66 72 6f 6d 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 | ..."Send.media.from.\"standalone |
| 7b2a0 | 5c 22 20 6c 69 6e 6b 73 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 0a 0a 57 68 65 6e 20 74 68 | \".links.in.the.prompt...When.th |
| 7b2c0 | 65 20 61 63 74 69 76 65 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 73 75 70 70 6f 72 74 73 20 | e.active.`gptel-model'.supports. |
| 7b2e0 | 69 74 2c 20 67 70 74 65 6c 20 63 61 6e 20 73 65 6e 64 20 69 6d 61 67 65 73 0a 6f 72 20 6f 74 68 | it,.gptel.can.send.images.or.oth |
| 7b300 | 65 72 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c 69 6e 6b 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 | er.media.from.links.in.the.buffe |
| 7b320 | 72 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 4f 6e 6c 79 0a 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 | r.to.the.LLM...Only.\"standalone |
| 7b340 | 5c 22 20 6c 69 6e 6b 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 3a 20 74 68 65 73 65 20 61 | \".links.are.considered:.these.a |
| 7b360 | 72 65 20 6c 69 6e 6b 73 20 6f 6e 20 74 68 65 69 72 20 6f 77 6e 0a 6c 69 6e 65 20 77 69 74 68 20 | re.links.on.their.own.line.with. |
| 7b380 | 6e 6f 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 74 2e 0a 0a 57 68 61 74 20 6c 69 6e 6b 20 | no.surrounding.text...What.link. |
| 7b3a0 | 74 79 70 65 73 20 61 72 65 20 73 65 6e 74 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 6d 69 | types.are.sent.depends.on.the.mi |
| 7b3c0 | 6d 65 2d 74 79 70 65 73 20 74 68 65 20 6d 6f 64 65 6c 0a 73 75 70 70 6f 72 74 73 2e 20 20 53 65 | me-types.the.model.supports...Se |
| 7b3e0 | 65 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 27 20 66 6f 72 20 6d 6f 72 65 20 69 | e.`gptel-track-media'.for.more.i |
| 7b400 | 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 65 6e | nformation."...:description."Sen |
| 7b420 | 64 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c 69 6e 6b 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 | d.media.from.links"...:class.'gp |
| 7b440 | 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c | tel--switches...:variable.'gptel |
| 7b460 | 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 | -track-media...:set-value.#'gpte |
| 7b480 | 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d | l--set-with-scope...:display-if- |
| 7b4a0 | 74 72 75 65 20 22 59 65 73 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 22 | true."Yes"...:display-if-false." |
| 7b4c0 | 4e 6f 22 0a 20 20 3a 6b 65 79 20 22 2d 49 22 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 | No"...:key."-I")..;;.**.Infixes. |
| 7b4e0 | 66 6f 72 20 61 64 64 69 6e 67 20 61 6e 64 20 72 65 6d 6f 76 69 6e 67 20 63 6f 6e 74 65 78 74 0a | for.adding.and.removing.context. |
| 7b500 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | .(declare-function.gptel-context |
| 7b520 | 2d 2d 61 74 2d 70 6f 69 6e 74 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 | --at-point."gptel-context").(dec |
| 7b540 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 61 64 64 20 22 67 70 74 65 6c 2d 63 | lare-function.gptel-add."gptel-c |
| 7b560 | 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c | ontext").(declare-function.gptel |
| 7b580 | 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 22 67 70 74 65 6c | -context-add-current-kill."gptel |
| 7b5a0 | 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 | -context")..(transient-define-su |
| 7b5c0 | 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 75 | ffix.gptel--infix-context-add-cu |
| 7b5e0 | 72 72 65 6e 74 2d 6b 69 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 41 64 | rrent-kill.(&optional.arg)..."Ad |
| 7b600 | 64 20 63 75 72 72 65 6e 74 20 6b 69 6c 6c 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 | d.current.kill.to.gptel's.contex |
| 7b620 | 74 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d | t."...:transient.'transient--do- |
| 7b640 | 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 43 2d 79 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 | stay...:key."C-y"...:if.(lambda. |
| 7b660 | 28 29 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 0a 20 20 3a 64 65 73 | ().gptel-expert-commands)...:des |
| 7b680 | 63 72 69 70 74 69 6f 6e 0a 20 20 22 59 61 6e 6b 20 74 6f 20 63 6f 6e 74 65 78 74 22 0a 20 20 28 | cription..."Yank.to.context"...( |
| 7b6a0 | 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | interactive."P")...(gptel-contex |
| 7b6c0 | 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 61 72 67 29 0a 20 20 28 74 72 61 6e 73 | t-add-current-kill.arg)...(trans |
| 7b6e0 | 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d | ient-setup))..(transient-define- |
| 7b700 | 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d | suffix.gptel--infix-context-add- |
| 7b720 | 72 65 67 69 6f 6e 20 28 29 0a 20 20 22 41 64 64 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 | region.()..."Add.current.region. |
| 7b740 | 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e | to.gptel's.context."...:transien |
| 7b760 | 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 2d 72 | t.'transient--do-stay...:key."-r |
| 7b780 | 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 75 73 65 2d 72 65 67 69 | "...:if.(lambda.().(or.(use-regi |
| 7b7a0 | 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 62 6f 75 | on-p).................(and.(fbou |
| 7b7c0 | 6e 64 70 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 | ndp.'gptel-context--at-point)... |
| 7b7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | ...................(gptel-contex |
| 7b800 | 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 | t--at-point))))...:description.. |
| 7b820 | 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 | .(lambda.().....(if.(and.(fbound |
| 7b840 | 70 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 | p.'gptel-context--at-point)..... |
| 7b860 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e | .........(gptel-context--at-poin |
| 7b880 | 74 29 29 0a 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 63 6f 6e 74 65 78 74 20 61 74 20 70 | t))........."Remove.context.at.p |
| 7b8a0 | 6f 69 6e 74 22 0a 20 20 20 20 20 20 22 41 64 64 20 72 65 67 69 6f 6e 20 74 6f 20 63 6f 6e 74 65 | oint"......."Add.region.to.conte |
| 7b8c0 | 78 74 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 61 | xt"))...(interactive)...(gptel-a |
| 7b8e0 | 64 64 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 74 72 61 6e 73 | dd)...(transient-setup))..(trans |
| 7b900 | 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d | ient-define-suffix.gptel--infix- |
| 7b920 | 63 6f 6e 74 65 78 74 2d 61 64 64 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 41 64 64 20 61 20 62 | context-add-buffer.()..."Add.a.b |
| 7b940 | 75 66 66 65 72 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 74 72 | uffer.to.gptel's.context."...:tr |
| 7b960 | 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 79 0a 20 20 3a 6b | ansient.'transient--do-stay...:k |
| 7b980 | 65 79 20 22 2d 62 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 61 20 62 75 | ey."-b"...:description."Add.a.bu |
| 7b9a0 | 66 66 65 72 20 74 6f 20 63 6f 6e 74 65 78 74 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 | ffer.to.context"...(interactive) |
| 7b9c0 | 0a 20 20 28 67 70 74 65 6c 2d 61 64 64 20 27 28 34 29 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 | ...(gptel-add.'(4))...(transient |
| 7b9e0 | 2d 73 65 74 75 70 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | -setup))..(declare-function.gpte |
| 7ba00 | 6c 2d 61 64 64 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 | l-add-file."gptel-context").(dec |
| 7ba20 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f | lare-function.gptel-context-remo |
| 7ba40 | 76 65 2d 61 6c 6c 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 28 74 72 61 6e 73 69 | ve-all."gptel-context")..(transi |
| 7ba60 | 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 | ent-define-suffix.gptel--infix-c |
| 7ba80 | 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 20 28 29 0a 20 20 22 41 64 64 20 61 20 66 69 6c 65 | ontext-add-file.()..."Add.a.file |
| 7baa0 | 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 | .to.gptel's.context."...:transie |
| 7bac0 | 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 2d | nt.'transient--do-stay...:key."- |
| 7bae0 | 66 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 61 20 66 69 6c 65 20 74 6f | f"...:description."Add.a.file.to |
| 7bb00 | 20 63 6f 6e 74 65 78 74 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 61 6c | .context"...(interactive)...(cal |
| 7bb20 | 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 | l-interactively.#'gptel-add-file |
| 7bb40 | 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 74 72 61 6e 73 69 65 | )...(transient-setup))..(transie |
| 7bb60 | 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f | nt-define-suffix.gptel--infix-co |
| 7bb80 | 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 28 29 0a 20 20 22 43 6c 65 61 72 20 67 70 74 | ntext-remove-all.()..."Clear.gpt |
| 7bba0 | 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 | el's.context."...:if.(lambda.(). |
| 7bbc0 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 3a 74 72 61 6e 73 69 65 | gptel-context--alist)...:transie |
| 7bbe0 | 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 2d | nt.'transient--do-stay...:key."- |
| 7bc00 | 64 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 6d 6f 76 65 20 61 6c 6c 22 0a 20 | d"...:description."Remove.all".. |
| 7bc20 | 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | .(interactive)...(gptel-context- |
| 7bc40 | 72 65 6d 6f 76 65 2d 61 6c 6c 20 74 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 | remove-all.t)...(transient-setup |
| 7bc60 | 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 | ))..;;.**.Infix.for.additional.d |
| 7bc80 | 69 72 65 63 74 69 76 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 | irective..(transient-define-infi |
| 7bca0 | 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 74 69 76 65 20 28 29 0a | x.gptel--infix-add-directive.(). |
| 7bcc0 | 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 20 69 6e 74 65 6e 64 65 64 | .."Additional.directive.intended |
| 7bce0 | 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 71 75 65 72 79 20 6f 6e 6c 79 2e 0a 0a 54 68 69 73 20 | .for.the.next.query.only...This. |
| 7bd00 | 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 65 66 69 6e 65 20 61 20 71 75 69 63 6b 20 74 61 73 6b | is.useful.to.define.a.quick.task |
| 7bd20 | 20 6f 6e 20 74 6f 70 20 6f 66 20 61 20 6d 6f 72 65 20 65 78 74 65 6e 73 69 76 65 0a 6f 72 20 64 | .on.top.of.a.more.extensive.or.d |
| 7bd40 | 65 74 61 69 6c 65 64 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 0a 46 6f 72 20 65 78 61 | etailed.system.message...For.exa |
| 7bd60 | 6d 70 6c 65 2c 20 77 69 74 68 20 63 6f 64 65 2f 74 65 78 74 20 73 65 6c 65 63 74 65 64 3a 0a 0a | mple,.with.code/text.selected:.. |
| 7bd80 | 2d 20 52 65 77 72 69 74 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 74 6f 20 64 6f 20 58 20 | -.Rewrite.this.function.to.do.X. |
| 7bda0 | 77 68 69 6c 65 20 61 76 6f 69 64 69 6e 67 20 59 2e 0a 2d 20 43 68 61 6e 67 65 20 74 68 65 20 74 | while.avoiding.Y..-.Change.the.t |
| 7bdc0 | 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 72 61 67 72 61 70 68 20 74 | one.of.the.following.paragraph.t |
| 7bde0 | 6f 20 62 65 20 6d 6f 72 65 20 64 69 72 65 63 74 2e 0a 0a 4f 72 20 69 6e 20 61 6e 20 65 78 74 65 | o.be.more.direct...Or.in.an.exte |
| 7be00 | 6e 64 65 64 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 3a 0a 0a 2d 20 50 68 72 61 73 65 20 79 6f 75 | nded.conversation:..-.Phrase.you |
| 7be20 | 20 6e 65 78 74 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 74 65 6e 20 77 6f 72 64 73 20 6f 72 20 6c | .next.response.in.ten.words.or.l |
| 7be40 | 65 73 73 2e 0a 2d 20 50 72 65 74 65 6e 64 20 66 6f 72 20 6e 6f 77 20 74 68 61 74 20 79 6f 75 27 | ess..-.Pretend.for.now.that.you' |
| 7be60 | 72 65 20 61 6e 20 61 6e 74 68 72 6f 70 6f 6c 6f 67 69 73 74 2e 22 0a 20 20 3a 63 6c 61 73 73 20 | re.an.anthropologist."...:class. |
| 7be80 | 27 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 0a 20 20 3b 3b 20 3a 76 61 72 | 'gptel-option-overlaid...;;.:var |
| 7bea0 | 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 63 74 69 6f 6e 73 0a 20 20 3a 64 69 | iable.'gptel--instructions...:di |
| 7bec0 | 73 70 6c 61 79 2d 6e 69 6c 20 27 6e 6f 6e 65 0a 20 20 3a 6f 76 65 72 6c 61 79 20 6e 69 6c 0a 20 | splay-nil.'none...:overlay.nil.. |
| 7bee0 | 20 3a 61 72 67 75 6d 65 6e 74 20 22 3a 22 0a 20 20 3a 70 72 6f 6d 70 74 20 28 63 6f 6e 63 61 74 | .:argument.":"...:prompt.(concat |
| 7bf00 | 20 22 41 64 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 6e 65 78 74 20 72 65 71 75 | ."Add.instructions.for.next.requ |
| 7bf20 | 65 73 74 20 6f 6e 6c 79 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 | est.only."...................gpt |
| 7bf40 | 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 65 6c 70 29 0a 20 20 3a 72 65 | el--read-with-prefix-help)...:re |
| 7bf60 | 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 69 6e 69 74 69 61 6c 20 68 69 73 | ader.(lambda.(prompt.initial.his |
| 7bf80 | 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 | tory).............(let*.((direct |
| 7bfa0 | 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 | ive.....................(car-saf |
| 7bfc0 | 65 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 67 70 74 65 6c 2d | e.(gptel--parse-directive.gptel- |
| 7bfe0 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 72 61 77 29 29 29 0a 20 20 20 20 20 20 20 20 | -system-message.'raw)))......... |
| 7c000 | 20 20 20 20 20 20 20 20 20 20 20 28 63 79 63 6c 65 2d 70 72 65 66 69 78 20 28 6c 61 6d 62 64 61 | ...........(cycle-prefix.(lambda |
| 7c020 | 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .().(interactive)............... |
| 7c040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 | .....................(gptel--rea |
| 7c060 | 64 2d 77 69 74 68 2d 70 72 65 66 69 78 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 | d-with-prefix.directive)))...... |
| 7c080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d | ..............(minibuffer-local- |
| 7c0a0 | 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f | map.....................(make-co |
| 7c0c0 | 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mposed-keymap................... |
| 7c0e0 | 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 20 22 54 41 42 22 20 63 79 63 6c 65 2d 70 72 | ...(define-keymap."TAB".cycle-pr |
| 7c100 | 65 66 69 78 20 22 3c 74 61 62 3e 22 20 63 79 63 6c 65 2d 70 72 65 66 69 78 29 0a 20 20 20 20 20 | efix."<tab>".cycle-prefix)...... |
| 7c120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c | ................minibuffer-local |
| 7c140 | 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 74 72 61 | -map))....................(extra |
| 7c160 | 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 20 63 79 63 | .(minibuffer-with-setup-hook.cyc |
| 7c180 | 6c 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | le-prefix....................... |
| 7c1a0 | 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 70 72 6f 6d 70 74 20 28 6f 72 20 69 6e | ......(read-string.prompt.(or.in |
| 7c1c0 | 69 74 69 61 6c 20 22 20 22 29 20 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | itial.".").history)))).......... |
| 7c1e0 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 65 78 74 | .....(unless.(string-empty-p.ext |
| 7c200 | 72 61 29 20 65 78 74 72 61 29 29 29 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 | ra).extra)))...:format.".%k.%d.% |
| 7c220 | 76 22 0a 20 20 3a 6b 65 79 20 22 64 22 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 3a 22 0a 20 20 | v"...:key."d"...:argument.":"... |
| 7c240 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 22 0a 20 | :description."Add.instruction".. |
| 7c260 | 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 20 66 6f 72 20 | .:transient.t)..;;.**.Infix.for. |
| 7c280 | 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 63 6f 6e 74 72 6f 6c 0a 0a 28 74 72 61 6e 73 69 | reasoning.block.control..(transi |
| 7c2a0 | 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 69 6e | ent-define-infix.gptel--infix-in |
| 7c2c0 | 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 28 29 0a 20 20 22 48 6f 77 20 74 6f 20 68 61 6e | clude-reasoning.()..."How.to.han |
| 7c2e0 | 64 6c 65 20 72 65 61 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 | dle.reasoning/thinking.response. |
| 7c300 | 62 6c 6f 63 6b 73 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 73 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 | blocks...Some.LLMs.include.in.th |
| 7c320 | 65 69 72 20 72 65 73 70 6f 6e 73 65 20 61 20 5c 22 74 68 69 6e 6b 69 6e 67 5c 22 20 73 65 63 74 | eir.response.a.\"thinking\".sect |
| 7c340 | 69 6f 6e 2e 20 20 54 68 69 73 0a 74 65 78 74 20 69 6d 70 72 6f 76 65 73 20 74 68 65 20 71 75 61 | ion...This.text.improves.the.qua |
| 7c360 | 6c 69 74 79 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 66 69 6e 61 6c 20 6f 75 74 70 75 74 2c 20 | lity.of.the.LLM's.final.output,. |
| 7c380 | 62 75 74 20 6d 61 79 20 6e 6f 74 0a 62 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 6f 20 79 6f | but.may.not.be.interesting.to.yo |
| 7c3a0 | 75 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 6f 6c 20 68 6f | u.by.itself...You.can.control.ho |
| 7c3c0 | 77 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 68 61 6e 64 6c 65 20 74 68 65 20 74 68 69 6e 6b 69 | w.gptel.should.handle.the.thinki |
| 7c3e0 | 6e 67 20 62 6c 6f 63 6b 73 20 76 69 61 0a 74 68 69 73 20 6f 70 74 69 6f 6e 2c 20 6f 72 20 62 79 | ng.blocks.via.this.option,.or.by |
| 7c400 | 20 73 65 74 74 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 69 6e 63 | .setting.the.variable.`gptel-inc |
| 7c420 | 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 27 0a 76 69 61 20 65 6c 69 73 70 2c 20 77 68 69 63 68 | lude-reasoning'.via.elisp,.which |
| 7c440 | 20 73 65 65 2e 0a 0a 41 76 61 69 6c 61 62 6c 65 20 62 65 68 61 76 69 6f 72 73 20 61 72 65 0a 2d | .see...Available.behaviors.are.- |
| 7c460 | 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 73 20 77 69 74 68 | .to.include.thinking.blocks.with |
| 7c480 | 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 0a 2d 20 74 6f 20 6f 6d 69 74 20 74 68 65 6d 20 65 6e | .the.response,.-.to.omit.them.en |
| 7c4a0 | 74 69 72 65 6c 79 2c 0a 2d 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 20 62 75 74 20 69 67 | tirely,.-.to.include.them.but.ig |
| 7c4c0 | 6e 6f 72 65 20 74 68 65 6d 20 69 6e 20 63 6f 6e 73 65 71 75 65 6e 74 20 63 6f 6e 76 65 72 73 61 | nore.them.in.consequent.conversa |
| 7c4e0 | 74 69 6f 6e 20 74 75 72 6e 73 2c 20 61 6e 64 0a 2d 20 74 6f 20 61 70 70 65 6e 64 20 74 68 65 6d | tion.turns,.and.-.to.append.them |
| 7c500 | 20 74 6f 20 61 20 62 75 66 66 65 72 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 2e 22 0a | .to.a.buffer.of.your.choosing.". |
| 7c520 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 63 6c 75 64 65 20 72 65 61 73 6f 6e 69 6e | ..:description."Include.reasonin |
| 7c540 | 67 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 | g"...:class.'gptel-lisp-variable |
| 7c560 | 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 | ...:variable.'gptel-include-reas |
| 7c580 | 6f 6e 69 6e 67 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 73 | oning...:format.".%k.%d.%v"...:s |
| 7c5a0 | 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 | et-value.#'gptel--set-with-scope |
| 7c5c0 | 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 4e 6f 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d | ...:display-nil."No"...:display- |
| 7c5e0 | 6d 61 70 20 27 28 28 6e 69 6c 20 20 20 20 2e 20 22 4e 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 | map.'((nil......"No")........... |
| 7c600 | 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 2e 20 22 61 6e 64 20 69 67 6e 6f 72 65 22 29 0a 20 | .......(ignore..."and.ignore").. |
| 7c620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 2e 20 22 77 69 74 68 20 | ................(t........"with. |
| 7c640 | 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 3a 6b 65 79 20 22 2d 76 22 0a 20 20 3a 70 72 6f 6d 70 | response"))...:key."-v"...:promp |
| 7c660 | 74 20 22 49 6e 63 6c 75 64 65 20 72 65 61 73 6f 6e 69 6e 67 3a 20 22 0a 20 20 3a 72 65 61 64 65 | t."Include.reasoning:."...:reade |
| 7c680 | 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 | r.(lambda.(prompt.&rest._)...... |
| 7c6a0 | 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 6e 6f 22 20 20 | .......(let*.((choices.'(("no".. |
| 7c6c0 | 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....nil)....................... |
| 7c6e0 | 20 20 20 20 20 20 20 20 28 22 69 67 6e 6f 72 65 22 20 2e 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 | ........("ignore"...ignore)..... |
| 7c700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 79 65 73 22 | ..........................("yes" |
| 7c720 | 20 20 20 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......t)........................ |
| 7c740 | 20 20 20 20 20 20 20 28 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 20 2e 20 62 75 66 66 65 72 29 | .......("other.buffer"...buffer) |
| 7c760 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 69 6e 61 74 69 | ))....................(destinati |
| 7c780 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 | on.....................(completi |
| 7c7a0 | 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a | ng-read.prompt.choices.nil.t))). |
| 7c7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 64 65 73 74 69 6e 61 | ..............(if.(equal.destina |
| 7c7e0 | 74 69 6f 6e 20 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | tion."other.buffer")............ |
| 7c800 | 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 41 70 70 65 6e 64 20 72 65 61 73 | .......(read-buffer."Append.reas |
| 7c820 | 6f 6e 69 6e 67 20 74 6f 20 62 75 66 66 65 72 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | oning.to.buffer:.")............. |
| 7c840 | 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 63 68 6f 69 | ....(cdr.(assoc.destination.choi |
| 7c860 | 63 65 73 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 74 6f 6f | ces))))))..;;.**.Infixes.for.too |
| 7c880 | 6c 20 75 73 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 | l.use..(transient-define-infix.g |
| 7c8a0 | 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 20 28 29 0a 20 20 22 57 68 65 74 | ptel--infix-use-tools.()..."Whet |
| 7c8c0 | 68 65 72 20 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 20 77 69 74 68 20 67 70 74 65 6c 20 69 73 20 65 | her.LLM.tool.use.with.gptel.is.e |
| 7c8e0 | 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 | nabled...This.is.a.three-way.tog |
| 7c900 | 67 6c 65 2e 20 20 41 73 73 75 6d 69 6e 67 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 74 6f 6f 6c 73 | gle...Assuming.one.or.more.tools |
| 7c920 | 20 74 6f 20 62 65 0a 73 65 6e 74 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 68 61 76 65 20 62 | .to.be.sent.with.requests.have.b |
| 7c940 | 65 65 6e 20 73 65 6c 65 63 74 65 64 2c 20 74 6f 6f 6c 20 75 73 65 20 63 61 6e 20 62 65 0a 0a 2d | een.selected,.tool.use.can.be..- |
| 7c960 | 20 64 69 73 61 62 6c 65 64 2c 0a 2d 20 65 6e 61 62 6c 65 64 2c 20 77 68 65 72 65 20 74 68 65 20 | .disabled,.-.enabled,.where.the. |
| 7c980 | 4c 4c 4d 20 6d 61 79 20 63 68 6f 6f 73 65 20 74 6f 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 74 | LLM.may.choose.to.respond.with.t |
| 7c9a0 | 6f 6f 6c 20 63 61 6c 6c 73 0a 2d 20 66 6f 72 63 65 64 2c 20 77 68 65 72 65 20 74 68 65 20 4c 4c | ool.calls.-.forced,.where.the.LL |
| 7c9c0 | 4d 20 6d 75 73 74 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 | M.must.respond.with.one.or.more. |
| 7c9e0 | 74 6f 6f 6c 20 63 61 6c 6c 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 68 65 | tool.calls...You.can.set.this.he |
| 7ca00 | 72 65 20 6f 72 20 62 79 20 63 75 73 74 6f 6d 69 7a 69 6e 67 20 60 67 70 74 65 6c 2d 75 73 65 2d | re.or.by.customizing.`gptel-use- |
| 7ca20 | 74 6f 6f 6c 73 27 2c 20 77 68 69 63 68 0a 73 65 65 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 | tools',.which.see."...:descripti |
| 7ca40 | 6f 6e 20 22 55 73 65 20 74 6f 6f 6c 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c | on."Use.tools"...:class.'gptel-l |
| 7ca60 | 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d | isp-variable...:variable.'gptel- |
| 7ca80 | 75 73 65 2d 74 6f 6f 6c 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 28 6c 61 6d 62 64 61 20 28 | use-tools...:set-value.(lambda.( |
| 7caa0 | 73 79 6d 20 76 61 6c 75 65 20 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sym.value.scope)................ |
| 7cac0 | 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 73 79 6d 20 76 61 6c 75 65 | (gptel--set-with-scope.sym.value |
| 7cae0 | 20 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e | .scope)................(transien |
| 7cb00 | 74 2d 73 65 74 75 70 29 29 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 6f 66 66 22 0a 20 | t-setup))...:display-nil."off".. |
| 7cb20 | 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 20 20 2e 20 22 6f 66 66 22 29 0a | .:display-map.'((nil....."off"). |
| 7cb40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 2e 20 22 6f 6e 22 29 0a | .................(t......."on"). |
| 7cb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 63 65 20 2e 20 22 66 6f 72 63 65 | .................(force..."force |
| 7cb80 | 22 29 29 0a 20 20 3a 70 72 6f 6d 70 74 20 22 55 73 65 20 74 6f 6f 6c 73 3f 20 22 0a 20 20 3a 72 | "))...:prompt."Use.tools?."...:r |
| 7cba0 | 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 | eader.(lambda.(prompt.&rest._).. |
| 7cbc0 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 64 | ...........(let*.((choices.'(("d |
| 7cbe0 | 69 73 61 62 6c 65 22 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | isable"...nil).................. |
| 7cc00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 65 6e 61 62 6c 65 22 20 20 2e 20 74 29 0a 20 20 20 | .............("enable"....t).... |
| 7cc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 66 6f 72 | ...........................("for |
| 7cc40 | 63 65 22 20 20 20 2e 20 66 6f 72 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce".....force)))................ |
| 7cc60 | 20 20 20 20 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 | ....(pref.(completing-read.promp |
| 7cc80 | 74 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.choices.nil.t))).............. |
| 7cca0 | 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 0a 20 20 | .(cdr.(assoc.pref.choices))))... |
| 7ccc0 | 3a 6b 65 79 20 22 2d 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e | :key."-t")..(transient-define-in |
| 7cce0 | 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 | fix.gptel--infix-confirm-tool-ca |
| 7cd00 | 6c 6c 73 20 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 68 6f | lls.()..."Whether.tool.calls.sho |
| 7cd20 | 75 6c 64 20 77 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 20 74 68 65 | uld.wait.for.the.user.to.run.the |
| 7cd40 | 6d 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 20 62 | m...This.is.a.three-way.toggle.b |
| 7cd60 | 65 74 77 65 65 6e 20 74 68 65 73 65 20 62 65 68 61 76 69 6f 72 73 3a 0a 0a 2d 20 41 6c 6c 20 74 | etween.these.behaviors:..-.All.t |
| 7cd80 | 6f 6f 6c 20 63 61 6c 6c 73 20 72 75 6e 20 77 69 74 68 6f 75 74 20 63 6f 6e 66 69 72 6d 61 74 69 | ool.calls.run.without.confirmati |
| 7cda0 | 6f 6e 2e 0a 2d 20 41 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 77 61 69 74 20 66 6f 72 20 63 6f | on..-.All.tool.calls.wait.for.co |
| 7cdc0 | 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 2d 20 44 65 63 69 64 65 64 20 70 65 72 2d 74 6f 6f 6c 2c 20 | nfirmation..-.Decided.per-tool,. |
| 7cde0 | 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 6f | according.to.the.value.of.the.to |
| 7ce00 | 6f 6c 20 73 70 65 63 27 73 0a 20 20 3a 63 6f 6e 66 69 72 6d 20 73 6c 6f 74 2e 0a 0a 54 68 69 73 | ol.spec's...:confirm.slot...This |
| 7ce20 | 20 73 65 74 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 63 6f 6e 66 69 72 | .sets.the.variable.`gptel-confir |
| 7ce40 | 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 6b 65 | m-tool-calls',.which.see."...:ke |
| 7ce60 | 79 20 22 2d 63 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 66 69 72 6d 20 74 | y."-c"...:description."Confirm.t |
| 7ce80 | 6f 6f 6c 20 63 61 6c 6c 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d | ool.calls"...:class.'gptel-lisp- |
| 7cea0 | 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 63 6f 6e 66 | variable...:variable.'gptel-conf |
| 7cec0 | 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 | irm-tool-calls...:set-value.#'gp |
| 7cee0 | 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e | tel--set-with-scope...:display-n |
| 7cf00 | 69 6c 20 22 6e 65 76 65 72 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c | il."never"...:display-map.'((nil |
| 7cf20 | 20 2e 20 22 6e 65 76 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 | ..."never")..................(t. |
| 7cf40 | 20 20 2e 20 22 61 6c 77 61 79 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...."always")..................( |
| 7cf60 | 61 75 74 6f 20 2e 20 22 61 75 74 6f 22 29 29 0a 20 20 3a 70 72 6f 6d 70 74 20 22 54 6f 6f 6c 20 | auto..."auto"))...:prompt."Tool. |
| 7cf80 | 63 61 6c 6c 73 20 72 65 71 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 3f 20 22 0a 20 20 | calls.require.confirmation?."... |
| 7cfa0 | 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 | :reader.(lambda.(prompt.&rest._) |
| 7cfc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 | .............(let*.((choices.'(( |
| 7cfe0 | 22 6e 6f 22 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "no".....nil)................... |
| 7d000 | 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6c 77 61 79 73 22 20 2e 20 74 29 0a 20 20 20 20 20 | ............("always"...t)...... |
| 7d020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 20 | .........................("tool. |
| 7d040 | 64 65 63 69 64 65 73 22 20 2e 20 61 75 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | decides"...auto))).............. |
| 7d060 | 20 20 20 20 20 20 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f | ......(pref.(completing-read.pro |
| 7d080 | 6d 70 74 20 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | mpt.choices.nil.t)))............ |
| 7d0a0 | 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 29 | ...(cdr.(assoc.pref.choices))))) |
| 7d0c0 | 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d | ..(transient-define-infix.gptel- |
| 7d0e0 | 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 29 0a 20 | -infix-include-tool-results.().. |
| 7d100 | 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 | ."Whether.tool.call.results.shou |
| 7d120 | 6c 64 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a | ld.be.included.in.the.response.. |
| 7d140 | 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 20 62 65 74 77 | .This.is.a.three-way.toggle.betw |
| 7d160 | 65 65 6e 20 74 68 65 73 65 20 62 65 68 61 76 69 6f 72 73 3a 0a 0a 2d 20 41 6c 6c 20 74 6f 6f 6c | een.these.behaviors:..-.All.tool |
| 7d180 | 20 72 65 73 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e 0a 2d 20 4e 6f 20 74 6f 6f 6c | .results.are.included..-.No.tool |
| 7d1a0 | 20 72 65 73 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e 0a 2d 20 44 65 63 69 64 65 64 | .results.are.included..-.Decided |
| 7d1c0 | 20 70 65 72 2d 74 6f 6f 6c 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 | .per-tool,.according.to.the.valu |
| 7d1e0 | 65 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 73 70 65 63 27 73 0a 20 20 3a 69 6e 63 6c 75 64 65 20 | e.of.the.tool.spec's...:include. |
| 7d200 | 73 6c 6f 74 2e 0a 0a 54 68 69 73 20 73 65 74 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 | slot...This.sets.the.variable.`g |
| 7d220 | 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 27 2c 20 77 68 69 63 | ptel-include-tool-results',.whic |
| 7d240 | 68 20 73 65 65 2e 22 0a 20 20 3a 6b 65 79 20 22 2d 69 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 | h.see."...:key."-i"...:descripti |
| 7d260 | 6f 6e 20 22 49 6e 63 6c 75 64 65 20 72 65 73 75 6c 74 73 20 20 20 22 0a 20 20 3a 63 6c 61 73 73 | on."Include.results..."...:class |
| 7d280 | 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c | .'gptel-lisp-variable...:variabl |
| 7d2a0 | 65 20 27 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 | e.'gptel-include-tool-results... |
| 7d2c0 | 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f | :set-value.#'gptel--set-with-sco |
| 7d2e0 | 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 6e 65 76 65 72 22 0a 20 20 3a 64 69 73 | pe...:display-nil."never"...:dis |
| 7d300 | 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 2e 20 22 6e 65 76 65 72 22 29 0a 20 20 20 20 20 | play-map.'((nil..."never")...... |
| 7d320 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 2e 20 22 61 6c 77 61 79 73 22 29 0a 20 20 20 | ............(t....."always").... |
| 7d340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 20 2e 20 22 61 75 74 6f 22 29 29 0a 20 | ..............(auto..."auto")).. |
| 7d360 | 20 3a 70 72 6f 6d 70 74 20 22 49 6e 63 6c 75 64 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 | .:prompt."Include.tool.results.i |
| 7d380 | 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 3f 20 22 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d | n.LLM.response?."...:reader.(lam |
| 7d3a0 | 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 | bda.(prompt.&rest._)............ |
| 7d3c0 | 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 6e 65 76 65 72 22 20 20 20 2e 20 | .(let*.((choices.'(("never"..... |
| 7d3e0 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nil)............................ |
| 7d400 | 20 20 20 28 22 61 6c 77 61 79 73 22 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...("always"...t)............... |
| 7d420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 20 64 65 63 69 64 65 73 22 20 | ................("tool.decides". |
| 7d440 | 2e 20 61 75 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | ..auto)))....................(pr |
| 7d460 | 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 68 6f 69 63 | ef.(completing-read.prompt.choic |
| 7d480 | 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 | es.nil.t)))...............(cdr.( |
| 7d4a0 | 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 | assoc.pref.choices)))))....;;.*. |
| 7d4c0 | 54 72 61 6e 73 69 65 6e 74 20 53 75 66 66 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 | Transient.Suffixes..;;.**.Suffix |
| 7d4e0 | 20 74 6f 20 73 65 6e 64 20 70 72 6f 6d 70 74 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 | .to.send.prompt..(transient-defi |
| 7d500 | 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 28 61 72 | ne-suffix.gptel--suffix-send.(ar |
| 7d520 | 67 73 29 0a 20 20 22 53 65 6e 64 20 41 52 47 53 2e 22 0a 20 20 3a 6b 65 79 20 22 52 45 54 22 0a | gs)..."Send.ARGS."...:key."RET". |
| 7d540 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 23 27 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 | ..:description.#'gptel--describe |
| 7d560 | 2d 73 75 66 66 69 78 2d 73 65 6e 64 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 | -suffix-send...(interactive.(lis |
| 7d580 | 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(transient-args............... |
| 7d5a0 | 20 20 20 20 20 20 20 20 28 6f 72 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f | ........(or.transient-current-co |
| 7d5c0 | 6d 6d 61 6e 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 | mmand.'gptel-menu))))...(let.((s |
| 7d5e0 | 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 20 28 69 6e 2d | tream.gptel-stream).........(in- |
| 7d600 | 70 6c 61 63 65 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 69 22 20 61 72 67 73 29 20 74 29 29 | place.(and.(member."i".args).t)) |
| 7d620 | 0a 20 20 20 20 20 20 20 20 28 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 | .........(output-to-other-buffer |
| 7d640 | 2d 70 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 | -p).........(backend.gptel-backe |
| 7d660 | 6e 64 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a | nd).........(model.gptel-model). |
| 7d680 | 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 | ........(backend-name.(gptel-bac |
| 7d6a0 | 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 | kend-name.gptel-backend))....... |
| 7d6c0 | 20 20 28 62 75 66 66 65 72 29 20 28 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 63 | ..(buffer).(position).........(c |
| 7d6e0 | 61 6c 6c 62 61 63 6b 29 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 | allback).(gptel-buffer-name).... |
| 7d700 | 20 20 20 20 20 28 73 79 73 74 65 6d 2d 65 78 74 72 61 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 64 | .....(system-extra.(gptel--get-d |
| 7d720 | 69 72 65 63 74 69 76 65 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 28 64 72 79 2d 72 75 6e | irective.args)).........(dry-run |
| 7d740 | 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 49 22 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 20 | .(and.(member."I".args).t))..... |
| 7d760 | 20 20 20 20 3b 3b 20 49 6e 70 75 74 20 72 65 64 69 72 65 63 74 69 6f 6e 3a 20 67 72 61 62 20 70 | ....;;.Input.redirection:.grab.p |
| 7d780 | 72 6f 6d 70 74 20 66 72 6f 6d 20 65 6c 73 65 77 68 65 72 65 3f 0a 20 20 20 20 20 20 20 20 28 70 | rompt.from.elsewhere?.........(p |
| 7d7a0 | 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 | rompt..........(cond...........( |
| 7d7c0 | 28 6d 65 6d 62 65 72 20 22 6d 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 | (member."m".args)............(mi |
| 7d7e0 | 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 | nibuffer-with-setup-hook........ |
| 7d800 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 6f | ........(lambda.().(add-hook.'co |
| 7d820 | 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 | mpletion-at-point-functions..... |
| 7d840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 | ...........................#'gpt |
| 7d860 | 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 | el-preset-capf.nil.t)).......... |
| 7d880 | 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ....(read-string...............( |
| 7d8a0 | 66 6f 72 6d 61 74 20 22 41 73 6b 20 25 73 3a 20 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | format."Ask.%s:.".(gptel-backend |
| 7d8c0 | 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -name.gptel-backend))........... |
| 7d8e0 | 20 20 20 20 28 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 | ....(and.(use-region-p)......... |
| 7d900 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d | ...........(buffer-substring-no- |
| 7d920 | 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | properties.....................( |
| 7d940 | 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 | region-beginning).(region-end))) |
| 7d960 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 79 22 20 61 72 67 73 29 | )))...........((member."y".args) |
| 7d980 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 63 61 72 2d 73 61 66 65 20 6b 69 | ............(unless.(car-safe.ki |
| 7d9a0 | 6c 6c 2d 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f | ll-ring)..............(user-erro |
| 7d9c0 | 72 20 22 60 6b 69 6c 6c 2d 72 69 6e 67 27 20 69 73 20 65 6d 70 74 79 21 20 20 4e 6f 74 68 69 6e | r."`kill-ring'.is.empty!..Nothin |
| 7d9e0 | 67 20 74 6f 20 73 65 6e 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 75 72 72 | g.to.send"))............(if.curr |
| 7da00 | 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 | ent-prefix-arg................(r |
| 7da20 | 65 61 64 2d 66 72 6f 6d 2d 6b 69 6c 6c 2d 72 69 6e 67 20 22 50 72 6f 6d 70 74 20 66 72 6f 6d 20 | ead-from-kill-ring."Prompt.from. |
| 7da40 | 6b 69 6c 6c 2d 72 69 6e 67 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 | kill-ring:.")..............(curr |
| 7da60 | 65 6e 74 2d 6b 69 6c 6c 20 30 29 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 4f 75 74 70 75 74 20 | ent-kill.0))))))......;;.Output. |
| 7da80 | 72 65 64 69 72 65 63 74 69 6f 6e 3a 20 53 65 6e 64 20 72 65 73 70 6f 6e 73 65 20 65 6c 73 65 77 | redirection:.Send.response.elsew |
| 7daa0 | 68 65 72 65 3f 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 65 | here?.....(cond......((member."e |
| 7dac0 | 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 65 61 6d 20 6e 69 6c 29 0a | ".args).......(setq.stream.nil). |
| 7dae0 | 20 20 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 | ......(setq.callback............ |
| 7db00 | 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 20 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 72 | .(lambda.(resp.info.&optional._r |
| 7db20 | 61 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 72 65 73 70 0a 20 20 | aw)...............(pcase.resp... |
| 7db40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 72 65 64 20 73 74 72 69 6e 67 70 29 20 28 6d | ..............((pred.stringp).(m |
| 7db60 | 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 3a 20 25 73 22 20 62 61 63 6b 65 6e 64 | essage."%s.response:.%s".backend |
| 7db80 | 2d 6e 61 6d 65 20 72 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 | -name.resp)).................(`( |
| 7dba0 | 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 2c 74 6f 6f 6c 2d 63 61 6c 6c 73 29 20 28 67 70 74 65 6c 2d | tool-call...,tool-calls).(gptel- |
| 7dbc0 | 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 | -display-tool-calls.tool-calls.i |
| 7dbe0 | 6e 66 6f 20 27 6d 69 6e 69 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nfo.'minibuffer))............... |
| 7dc00 | 20 20 28 60 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 2c 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 | ..(`(tool-result...,tool-results |
| 7dc20 | 29 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 74 | ).(gptel--display-tool-results.t |
| 7dc40 | 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-results.info)).............. |
| 7dc60 | 20 20 20 28 5f 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 73 70 29 20 28 70 6c | ...(_.(when.(and.(null.resp).(pl |
| 7dc80 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ist-get.info.:error))........... |
| 7dca0 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 | ...........(message."%s.response |
| 7dcc0 | 20 65 72 72 6f 72 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .error:.%s"..................... |
| 7dce0 | 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 | ..........backend-name.(plist-ge |
| 7dd00 | 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 6d 65 | t.info.:status))))))))......((me |
| 7dd20 | 6d 62 65 72 20 22 6b 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 65 61 | mber."k".args).......(setq.strea |
| 7dd40 | 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 | m.nil).......(setq.callback..... |
| 7dd60 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 20 69 6e 66 6f 20 26 6f 70 74 69 | ........(lambda.(resp.info.&opti |
| 7dd80 | 6f 6e 61 6c 20 5f 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 | onal._raw)...............(pcase. |
| 7dda0 | 72 65 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 72 65 64 20 73 74 72 69 | resp.................((pred.stri |
| 7ddc0 | 6e 67 70 29 20 28 6b 69 6c 6c 2d 6e 65 77 20 72 65 73 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ngp).(kill-new.resp)............ |
| 7dde0 | 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 3a 20 5c 22 25 | ......(message."%s.response:.\"% |
| 7de00 | 73 5c 22 20 63 6f 70 69 65 64 20 74 6f 20 6b 69 6c 6c 2d 72 69 6e 67 2e 22 20 62 61 63 6b 65 6e | s\".copied.to.kill-ring.".backen |
| 7de20 | 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d-name.......................... |
| 7de40 | 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 72 65 73 70 20 | .(truncate-string-to-width.resp. |
| 7de60 | 33 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 2d 63 61 | 30))).................(`(tool-ca |
| 7de80 | 6c 6c 20 2e 20 2c 74 6f 6f 6c 2d 63 61 6c 6c 73 29 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 | ll...,tool-calls).(gptel--displa |
| 7dea0 | 79 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 20 27 6d 69 | y-tool-calls.tool-calls.info.'mi |
| 7dec0 | 6e 69 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f | nibuffer)).................(`(to |
| 7dee0 | 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 2c 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 29 20 28 67 70 74 65 | ol-result...,tool-results).(gpte |
| 7df00 | 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 74 6f 6f 6c 2d 72 65 73 | l--display-tool-results.tool-res |
| 7df20 | 75 6c 74 73 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 | ults.info)).................(_.( |
| 7df40 | 77 68 65 6e 20 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 73 70 29 20 28 70 6c 69 73 74 2d 67 65 74 | when.(and.(null.resp).(plist-get |
| 7df60 | 20 69 6e 66 6f 20 3a 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:error)).................. |
| 7df80 | 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a | ....(message."%s.response.error: |
| 7dfa0 | 20 25 73 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .%s".backend-name............... |
| 7dfc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | ................(plist-get.info. |
| 7dfe0 | 3a 73 74 61 74 75 73 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 73 65 74 71 20 67 70 74 65 | :status))))))))......((setq.gpte |
| 7e000 | 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f | l-buffer-name.............(cl-so |
| 7e020 | 6d 65 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 | me.(lambda.(s).(and.(stringp.s). |
| 7e040 | 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 67 22 20 73 29 0a 20 20 20 20 20 20 20 20 | (string-prefix-p."g".s)......... |
| 7e060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 | .........................(substr |
| 7e080 | 69 6e 67 20 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing.s.1)))...................... |
| 7e0a0 | 61 72 67 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 | args)).......(setq.output-to-oth |
| 7e0c0 | 65 72 2d 62 75 66 66 65 72 2d 70 20 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 64 75 | er-buffer-p.t).......(let.((redu |
| 7e0e0 | 63 65 64 2d 70 72 6f 6d 70 74 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 6f 72 20 69 6e 73 65 | ced-prompt.............;For.inse |
| 7e100 | 72 74 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 20 61 73 0a 20 | rting.into.the.gptel.buffer.as.. |
| 7e120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7e140 | 20 20 20 20 20 20 20 3b 63 6f 6e 74 65 78 74 2c 20 6e 6f 74 20 74 68 65 20 70 72 6f 6d 70 74 20 | .......;context,.not.the.prompt. |
| 7e160 | 75 73 65 64 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | used.for.the.................... |
| 7e180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 72 65 71 75 65 73 74 20 69 74 | .....................;request.it |
| 7e1a0 | 73 65 6c 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 70 72 6f 6d 70 74 0a 20 20 20 | self..............(or.prompt.... |
| 7e1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 | ..............(if.(use-region-p) |
| 7e1e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 | ......................(buffer-su |
| 7e200 | 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 72 65 67 69 6f 6e 2d 62 65 | bstring-no-properties.(region-be |
| 7e220 | 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ginning)........................ |
| 7e240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 | ..............................(r |
| 7e260 | 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | egion-end))....................( |
| 7e280 | 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 | buffer-substring-no-properties.. |
| 7e2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 | ...................(save-excursi |
| 7e2c0 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 2d 70 | on.......................(text-p |
| 7e2e0 | 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 | roperty-search-backward......... |
| 7e300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a | ...............'gptel.'response. |
| 7e320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 | .......................(when.(ge |
| 7e340 | 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | t-char-property.(max.(point-min) |
| 7e360 | 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(1-.(point))).................. |
| 7e380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 | ...............................' |
| 7e3a0 | 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel).......................... |
| 7e3c0 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 | t)).......................(point |
| 7e3e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 | )).....................(gptel--a |
| 7e400 | 74 2d 77 6f 72 64 2d 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | t-word-end.(point)))))))........ |
| 7e420 | 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 | .(cond..........((buffer-live-p. |
| 7e440 | 28 67 65 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a | (get-buffer.gptel-buffer-name)). |
| 7e460 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 69 6e 74 6f 20 65 78 69 73 74 69 6e | ..........;;.Insert.into.existin |
| 7e480 | 67 20 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e | g.gptel.session...........(progn |
| 7e4a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 20 28 67 65 74 2d 62 | .............(setq.buffer.(get-b |
| 7e4c0 | 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 | uffer.gptel-buffer-name))....... |
| 7e4e0 | 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 | ......(with-current-buffer.buffe |
| 7e500 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e | r...............(goto-char.(poin |
| 7e520 | 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f | t-max))...............(unless.(o |
| 7e540 | 72 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.buffer-read-only.............. |
| 7e560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 | .............(get-char-property. |
| 7e580 | 28 70 6f 69 6e 74 29 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (point).'read-only))............ |
| 7e5a0 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 29 0a 20 20 | .....(insert.reduced-prompt))... |
| 7e5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e | ............(setq.position.(poin |
| 7e5e0 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 | t))...............(when.(and.gpt |
| 7e600 | 65 6c 2d 6d 6f 64 65 20 28 6e 6f 74 20 64 72 79 2d 72 75 6e 29 29 0a 20 20 20 20 20 20 20 20 20 | el-mode.(not.dry-run)).......... |
| 7e620 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 57 | .......(gptel--update-status.".W |
| 7e640 | 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 | aiting...".'warning)))))........ |
| 7e660 | 20 20 3b 3b 20 49 6e 73 65 72 74 20 69 6e 74 6f 20 6e 65 77 20 67 70 74 65 6c 20 73 65 73 73 69 | ..;;.Insert.into.new.gptel.sessi |
| 7e680 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 62 75 66 66 65 72 0a 20 20 20 20 | on..........(t.(setq.buffer..... |
| 7e6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 20 67 70 74 65 6c 2d 62 75 66 66 65 | ..............(gptel.gptel-buffe |
| 7e6c0 | 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-name.......................... |
| 7e6e0 | 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (condition-case.nil............. |
| 7e700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 | .................(gptel--get-api |
| 7e720 | 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -key)........................... |
| 7e740 | 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .((error.user-error)............ |
| 7e760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 61 70 69 | .................(setq.gptel-api |
| 7e780 | 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -key............................ |
| 7e7a0 | 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .......(read-passwd............. |
| 7e7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 | .......................(format." |
| 7e7e0 | 25 73 20 41 50 49 20 6b 65 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | %s.API.key:."................... |
| 7e800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | .........................(gptel- |
| 7e820 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backend-name.................... |
| 7e840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 | .........................gptel-b |
| 7e860 | 61 63 6b 65 6e 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ackend)))))).................... |
| 7e880 | 20 20 20 20 20 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 | ......reduced-prompt)).......... |
| 7e8a0 | 20 20 20 3b 3b 20 53 65 74 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 6d 6f 64 65 6c 20 69 6e 20 6e | ...;;.Set.backend.and.model.in.n |
| 7e8c0 | 65 77 20 73 65 73 73 69 6f 6e 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 0a 20 | ew.session.from.current.buffer.. |
| 7e8e0 | 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | ...........(with-current-buffer. |
| 7e900 | 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c | buffer...............(setq.gptel |
| 7e920 | 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -backend.backend)............... |
| 7e940 | 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 | (setq.gptel-model.model)........ |
| 7e960 | 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 20 20 | .......(unless.dry-run.......... |
| 7e980 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 57 | .......(gptel--update-status.".W |
| 7e9a0 | 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | aiting...".'warning))........... |
| 7e9c0 | 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 | ....(setq.position.(point))))))) |
| 7e9e0 | 0a 20 20 20 20 20 28 28 73 65 74 71 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 | ......((setq.gptel-buffer-name.. |
| 7ea00 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 73 29 20 | ...........(cl-some.(lambda.(s). |
| 7ea20 | 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d | (and.(stringp.s).(string-prefix- |
| 7ea40 | 70 20 22 62 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p."b".s)........................ |
| 7ea60 | 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 29 29 0a 20 20 20 20 | ..........(substring.s.1)))..... |
| 7ea80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 28 73 | .................args)).......(s |
| 7eaa0 | 65 74 71 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 20 74 29 0a | etq.output-to-other-buffer-p.t). |
| 7eac0 | 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 | ......(setq.buffer.(get-buffer-c |
| 7eae0 | 72 65 61 74 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 | reate.gptel-buffer-name))....... |
| 7eb00 | 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 20 28 73 65 74 | (with-current-buffer.buffer.(set |
| 7eb20 | 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 0a 20 20 20 20 28 70 72 6f | q.position.(point)))))......(pro |
| 7eb40 | 67 31 20 28 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 | g1.(gptel-request.prompt........ |
| 7eb60 | 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 28 6f 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e | ......:buffer.(or.buffer.(curren |
| 7eb80 | 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 69 74 69 6f | t-buffer))..............:positio |
| 7eba0 | 6e 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 2d 70 6c 61 63 | n.position..............:in-plac |
| 7ebc0 | 65 20 28 61 6e 64 20 69 6e 2d 70 6c 61 63 65 20 28 6e 6f 74 20 6f 75 74 70 75 74 2d 74 6f 2d 6f | e.(and.in-place.(not.output-to-o |
| 7ebe0 | 74 68 65 72 2d 62 75 66 66 65 72 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 | ther-buffer-p))..............:st |
| 7ec00 | 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 79 73 74 65 6d | ream.stream..............:system |
| 7ec20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 79 73 74 65 6d 2d 65 78 74 72 61 0a 20 | ..............(if.system-extra.. |
| 7ec40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 61 64 | ................(gptel--merge-ad |
| 7ec60 | 64 69 74 69 6f 6e 61 6c 2d 64 69 72 65 63 74 69 76 65 20 73 79 73 74 65 6d 2d 65 78 74 72 61 29 | ditional-directive.system-extra) |
| 7ec80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | ................gptel--system-me |
| 7eca0 | 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 63 61 | ssage)..............:callback.ca |
| 7ecc0 | 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 | llback..............:transforms. |
| 7ece0 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 | gptel-prompt-transform-functions |
| 7ed00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 73 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 | ..............:fsm.(gptel-make-f |
| 7ed20 | 73 6d 20 3a 68 61 6e 64 6c 65 72 73 20 67 70 74 65 6c 2d 73 65 6e 64 2d 2d 68 61 6e 64 6c 65 72 | sm.:handlers.gptel-send--handler |
| 7ed40 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 72 79 2d 72 75 6e 20 64 72 79 2d 72 75 6e | s)..............:dry-run.dry-run |
| 7ed60 | 29 0a 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 | )........(unless.dry-run........ |
| 7ed80 | 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 57 61 69 74 69 6e 67 | .(gptel--update-status.".Waiting |
| 7eda0 | 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 | ...".'warning))........;;.NOTE:. |
| 7edc0 | 50 6f 73 73 69 62 6c 65 20 66 75 74 75 72 65 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 68 | Possible.future.race.condition.h |
| 7ede0 | 65 72 65 20 69 66 20 45 6d 61 63 73 20 65 76 65 72 20 64 72 6f 70 73 20 74 68 65 20 47 49 4c 2e | ere.if.Emacs.ever.drops.the.GIL. |
| 7ee00 | 0a 20 20 20 20 20 20 3b 3b 20 54 68 65 20 48 54 54 50 20 72 65 71 75 65 73 74 20 63 61 6c 6c 62 | .......;;.The.HTTP.request.callb |
| 7ee20 | 61 63 6b 20 6d 69 67 68 74 20 6d 6f 64 69 66 79 20 74 68 65 20 62 75 66 66 65 72 20 62 65 66 6f | ack.might.modify.the.buffer.befo |
| 7ee40 | 72 65 20 74 68 65 20 69 6e 2d 70 6c 61 63 65 0a 20 20 20 20 20 20 3b 3b 20 74 65 78 74 20 69 73 | re.the.in-place.......;;.text.is |
| 7ee60 | 20 6b 69 6c 6c 65 64 20 62 65 6c 6f 77 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 70 6c | .killed.below........(when.in-pl |
| 7ee80 | 61 63 65 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 62 75 66 66 65 72 2d 72 65 61 64 2d | ace.........(if.(or.buffer-read- |
| 7eea0 | 6f 6e 6c 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 | only.(get-char-property.(point). |
| 7eec0 | 27 72 65 61 64 2d 6f 6e 6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | 'read-only)).............(messag |
| 7eee0 | 65 20 22 4e 6f 74 20 72 65 70 6c 61 63 69 6e 67 20 70 72 6f 6d 70 74 3a 20 72 65 67 69 6f 6e 20 | e."Not.replacing.prompt:.region. |
| 7ef00 | 69 73 20 72 65 61 64 2d 6f 6e 6c 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | is.read-only")...........(let.(( |
| 7ef20 | 62 65 67 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 | beg.(if.(use-region-p).......... |
| 7ef40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e | ................(region-beginnin |
| 7ef60 | 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 | g)........................(max.( |
| 7ef80 | 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a | previous-single-property-change. |
| 7efa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f | .............................(po |
| 7efc0 | 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | int).'gptel.nil.(point-min)).... |
| 7efe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f | .........................(previo |
| 7f000 | 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 | us-single-property-change....... |
| 7f020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 | .......................(point).' |
| 7f040 | 72 65 61 64 2d 6f 6e 6c 79 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 | read-only.nil.(point-min)))))... |
| 7f060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 | ..............(end.(if.(use-regi |
| 7f080 | 6f 6e 2d 70 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 | on-p).(region-end).(point))))... |
| 7f0a0 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 | ..........(unless.output-to-othe |
| 7f0c0 | 72 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 6f 72 | r-buffer-p...............;;.stor |
| 7f0e0 | 65 20 74 68 65 20 6b 69 6c 6c 65 64 20 74 65 78 74 20 69 6e 20 67 70 74 65 6c 2d 68 69 73 74 6f | e.the.killed.text.in.gptel-histo |
| 7f100 | 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d | ry...............(gptel--attach- |
| 7f120 | 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | response-history................ |
| 7f140 | 28 6c 69 73 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 | (list.(buffer-substring-no-prope |
| 7f160 | 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b | rties.beg.end)))).............(k |
| 7f180 | 69 6c 6c 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 29 29 29 0a 0a 20 20 20 20 20 20 28 77 | ill-region.beg.end))))........(w |
| 7f1a0 | 68 65 6e 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 | hen.output-to-other-buffer-p.... |
| 7f1c0 | 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 50 72 6f 6d 70 74 20 73 65 | .....(message.(concat."Prompt.se |
| 7f1e0 | 6e 74 20 74 6f 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt.to.buffer:."................. |
| 7f200 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 67 70 74 65 6c 2d 62 75 66 66 65 | .........(propertize.gptel-buffe |
| 7f220 | 72 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 29 | r-name.'face.'help-key-binding)) |
| 7f240 | 29 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 | ).........(display-buffer....... |
| 7f260 | 20 20 20 62 75 66 66 65 72 20 27 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 | ...buffer.'((display-buffer-reus |
| 7f280 | 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 | e-window....................disp |
| 7f2a0 | 6c 61 79 2d 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 | lay-buffer-pop-up-window)....... |
| 7f2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 75 73 61 62 6c 65 2d 66 72 61 6d 65 73 20 2e 20 76 | ............(reusable-frames...v |
| 7f2e0 | 69 73 69 62 6c 65 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 65 72 | isible)))))))..(defun.gptel--mer |
| 7f300 | 67 65 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 64 69 72 65 63 74 69 76 65 20 28 61 64 64 69 74 69 6f | ge-additional-directive.(additio |
| 7f320 | 6e 61 6c 20 26 6f 70 74 69 6f 6e 61 6c 20 66 75 6c 6c 29 0a 20 20 22 4d 65 72 67 65 20 41 44 44 | nal.&optional.full)..."Merge.ADD |
| 7f340 | 49 54 49 4f 4e 41 4c 20 67 70 74 65 6c 20 64 69 72 65 63 74 69 76 65 20 77 69 74 68 20 74 68 65 | ITIONAL.gptel.directive.with.the |
| 7f360 | 20 66 75 6c 6c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 0a 54 68 65 20 41 44 44 49 54 | .full.system.message...The.ADDIT |
| 7f380 | 49 4f 4e 41 4c 20 64 69 72 65 63 74 69 76 65 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 73 70 65 | IONAL.directive.is.typically.spe |
| 7f3a0 | 63 69 66 69 65 64 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 0a 61 6e 64 20 61 70 70 | cified.from.`gptel-menu'.and.app |
| 7f3c0 | 6c 69 65 73 20 6f 6e 6c 79 20 74 6f 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 71 75 | lies.only.to.the.next.gptel.requ |
| 7f3e0 | 65 73 74 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 | est,.see.`gptel--infix-add-direc |
| 7f400 | 74 69 76 65 27 2e 0a 0a 46 55 4c 4c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 61 63 74 | tive'...FULL.defaults.to.the.act |
| 7f420 | 69 76 65 2c 20 66 75 6c 6c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 20 20 49 74 20 6d 61 | ive,.full.system.message...It.ma |
| 7f440 | 79 20 62 65 20 61 0a 73 74 72 69 6e 67 2c 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 | y.be.a.string,.a.list.of.prompts |
| 7f460 | 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 | .or.a.function,.see.`gptel-direc |
| 7f480 | 74 69 76 65 73 27 0a 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 73 65 74 71 20 66 75 6c | tives'.for.details."...(setq.ful |
| 7f4a0 | 6c 20 28 6f 72 20 66 75 6c 6c 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 | l.(or.full.gptel--system-message |
| 7f4c0 | 29 29 0a 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 66 75 6c 6c 0a 20 20 20 20 28 73 74 72 69 | ))...(cl-typecase.full.....(stri |
| 7f4e0 | 6e 67 20 28 63 6f 6e 63 61 74 20 66 75 6c 6c 20 22 5c 6e 5c 6e 22 20 61 64 64 69 74 69 6f 6e 61 | ng.(concat.full."\n\n".additiona |
| 7f500 | 6c 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6c 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d | l)).....(list.(let.((copy.(copy- |
| 7f520 | 73 65 71 75 65 6e 63 65 20 66 75 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | sequence.full))).............(se |
| 7f540 | 74 63 61 72 20 63 6f 70 79 20 28 63 6f 6e 63 61 74 20 28 63 61 72 20 63 6f 70 79 29 20 22 5c 6e | tcar.copy.(concat.(car.copy)."\n |
| 7f560 | 5c 6e 22 20 61 64 64 69 74 69 6f 6e 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 70 | \n".additional)).............cop |
| 7f580 | 79 29 29 0a 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 67 70 | y)).....(function.(lambda.().(gp |
| 7f5a0 | 74 65 6c 2d 2d 6d 65 72 67 65 2d 61 64 64 69 74 69 6f 6e 61 6c 2d 64 69 72 65 63 74 69 76 65 0a | tel--merge-additional-directive. |
| 7f5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 | .....................additional. |
| 7f5e0 | 28 66 75 6e 63 61 6c 6c 20 66 75 6c 6c 29 29 29 29 0a 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 | (funcall.full)))).....(otherwise |
| 7f600 | 20 61 64 64 69 74 69 6f 6e 61 6c 29 29 29 0a 0a 3b 3b 20 41 6c 6c 6f 77 20 63 61 6c 6c 69 6e 67 | .additional)))..;;.Allow.calling |
| 7f620 | 20 66 72 6f 6d 20 65 6c 69 73 70 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d | .from.elisp.(put.'gptel--suffix- |
| 7f640 | 73 65 6e 64 20 27 69 6e 74 65 72 61 63 74 69 76 65 2d 6f 6e 6c 79 20 6e 69 6c 29 0a 0a 3b 3b 20 | send.'interactive-only.nil)..;;. |
| 7f660 | 2a 2a 20 53 75 66 66 69 78 20 74 6f 20 72 65 67 65 6e 65 72 61 74 65 20 72 65 73 70 6f 6e 73 65 | **.Suffix.to.regenerate.response |
| 7f680 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 67 65 6e 65 72 61 74 65 20 28 29 0a 20 20 | ..(defun.gptel--regenerate.()... |
| 7f6a0 | 22 52 65 67 65 6e 65 72 61 74 65 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f | "Regenerate.gptel.response.at.po |
| 7f6c0 | 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 67 | int."...(interactive)...(when.(g |
| 7f6e0 | 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 0a 20 20 20 20 28 70 63 61 73 65 2d | ptel--in-response-p).....(pcase- |
| 7f700 | 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 67 70 74 65 6c 2d 2d 67 65 | let*.((`(,beg...,end).(gptel--ge |
| 7f720 | 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t-response-bounds))............. |
| 7f740 | 20 20 20 20 20 28 68 69 73 74 6f 72 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 | .....(history.(get-char-property |
| 7f760 | 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 | .(point).'gptel-history))....... |
| 7f780 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 73 20 28 63 6f 6e 73 | ...........(prev-responses.(cons |
| 7f7a0 | 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 | .(buffer-substring-no-properties |
| 7f7c0 | 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .beg.end)....................... |
| 7f7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 | .................history)))..... |
| 7f800 | 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(when.gptel-mode.............. |
| 7f820 | 20 20 20 20 3b 52 65 6d 6f 76 65 20 70 72 65 66 69 78 2f 73 75 66 66 69 78 0a 20 20 20 20 20 20 | ....;Remove.prefix/suffix....... |
| 7f840 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 | ..(save-excursion...........(got |
| 7f860 | 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f | o-char.beg)...........(when.(loo |
| 7f880 | 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 67 65 78 70 2d | king-back.(concat."\n+".(regexp- |
| 7f8a0 | 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 | quote.(gptel-response-prefix-str |
| 7f8c0 | 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing))).......................... |
| 7f8e0 | 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 27 67 72 65 65 64 79 29 0a 20 20 20 20 20 20 | .....(point-min).'greedy)....... |
| 7f900 | 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 | ......(setq.beg.(match-beginning |
| 7f920 | 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a | .0)))...........(goto-char.end). |
| 7f940 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 | ..........(when.(looking-at..... |
| 7f960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 67 65 | .............(concat."\n+".(rege |
| 7f980 | 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 | xp-quote.(gptel-prompt-prefix-st |
| 7f9a0 | 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 | ring)))).............(setq.end.( |
| 7f9c0 | 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 | match-end.0))))).......(delete-r |
| 7f9e0 | 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 74 74 | egion.beg.end).......(gptel--att |
| 7fa00 | 61 63 68 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 70 72 65 76 2d 72 65 73 70 6f 6e | ach-response-history.prev-respon |
| 7fa20 | 73 65 73 29 0a 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 | ses).......(call-interactively.# |
| 7fa40 | 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 53 | 'gptel--suffix-send))))..;;.**.S |
| 7fa60 | 65 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | et.system.message.(defun.gptel-- |
| 7fa80 | 72 65 61 64 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 20 28 29 0a 20 20 22 50 | read-crowdsourced-prompt.()..."P |
| 7faa0 | 69 63 6b 20 61 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 | ick.a.crowdsourced.system.prompt |
| 7fac0 | 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 74 68 65 20 70 72 6f 6d 70 | .for.gptel...This.uses.the.promp |
| 7fae0 | 74 73 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 67 70 74 65 6c 2d 2d 63 72 6f 77 64 | ts.in.the.variable.`gptel--crowd |
| 7fb00 | 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 | sourced-prompts',.which.see."... |
| 7fb20 | 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 68 61 73 68 2d 74 | (interactive)...(if.(not.(hash-t |
| 7fb40 | 61 62 6c 65 2d 65 6d 70 74 79 2d 70 20 28 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 | able-empty-p.(gptel--crowdsource |
| 7fb60 | 64 2d 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 68 6f 69 63 65 | d-prompts))).......(let.((choice |
| 7fb80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 | ..............(completing-read.. |
| 7fba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 50 69 63 6b 20 61 6e 64 20 65 64 69 74 20 70 72 6f 6d | ............."Pick.and.edit.prom |
| 7fbc0 | 70 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 72 | pt:."...............(lambda.(str |
| 7fbe0 | 20 70 72 65 64 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | .pred.action).................(i |
| 7fc00 | 66 20 28 65 71 20 61 63 74 69 6f 6e 20 27 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 | f.(eq.action.'metadata)......... |
| 7fc20 | 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6d 65 74 61 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 | ............`(metadata.......... |
| 7fc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 66 66 69 78 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f | .............(affixation-functio |
| 7fc60 | 6e 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | n..........................(lamb |
| 7fc80 | 64 61 20 28 63 61 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | da.(cands)...................... |
| 7fca0 | 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(mapcar..................... |
| 7fcc0 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(lambda.(c)............... |
| 7fce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 63 20 22 22 0a 20 20 20 20 20 20 20 | ..............(list.c.""........ |
| 7fd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 | ......................(concat.(p |
| 7fd20 | 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 61 63 65 20 3a | ropertize.".".'display.'(space.: |
| 7fd40 | 61 6c 69 67 6e 2d 74 6f 20 32 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | align-to.22))................... |
| 7fd60 | 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 65 74 | ............".".(propertize.(get |
| 7fd80 | 68 61 73 68 20 63 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 | hash.c.gptel--crowdsourced-promp |
| 7fda0 | 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ts)............................. |
| 7fdc0 | 20 20 20 27 66 61 63 65 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 73 2d 61 6e 6e 6f 74 61 74 69 6f 6e | ...'face.'completions-annotation |
| 7fde0 | 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s))))........................... |
| 7fe00 | 63 61 6e 64 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d | cands))))...................(com |
| 7fe20 | 70 6c 65 74 65 2d 77 69 74 68 2d 61 63 74 69 6f 6e 20 61 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d | plete-with-action.action.gptel-- |
| 7fe40 | 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 20 73 74 72 20 70 72 65 64 29 29 29 | crowdsourced-prompts.str.pred))) |
| 7fe60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ...............nil.t)))......... |
| 7fe80 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 20 28 67 65 74 68 61 73 68 20 63 68 6f | (when-let*.((prompt.(gethash.cho |
| 7fea0 | 69 63 65 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 | ice.gptel--crowdsourced-prompts) |
| 7fec0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 | ))...........(gptel--set-with-sc |
| 7fee0 | 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | ope............'gptel--system-me |
| 7ff00 | 73 73 61 67 65 20 70 72 6f 6d 70 74 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c | ssage.prompt.gptel--set-buffer-l |
| 7ff20 | 6f 63 61 6c 6c 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 | ocally)...........(gptel--edit-d |
| 7ff40 | 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 | irective.'gptel--system-message) |
| 7ff60 | 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 70 72 6f 6d 70 74 73 20 61 76 61 69 | )).....(message."No.prompts.avai |
| 7ff80 | 6c 61 62 6c 65 2e 22 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 | lable.")))..(transient-define-su |
| 7ffa0 | 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 | ffix.gptel--suffix-system-messag |
| 7ffc0 | 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 61 6e 63 65 6c 29 0a 20 20 22 45 64 69 74 20 4c 4c 4d | e.(&optional.cancel)..."Edit.LLM |
| 7ffe0 | 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 0a 43 41 4e 43 45 4c 20 69 73 20 75 73 65 64 | .system.message...CANCEL.is.used |
| 80000 | 20 74 6f 20 61 76 6f 69 64 20 74 6f 75 63 68 69 6e 67 20 64 79 6e 61 6d 69 63 20 73 79 73 74 65 | .to.avoid.touching.dynamic.syste |
| 80020 | 6d 20 6d 65 73 73 61 67 65 73 2c 0a 67 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 66 75 6e 63 74 | m.messages,.generated.from.funct |
| 80040 | 69 6f 6e 73 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d | ions."...:transient.'transient-- |
| 80060 | 64 6f 2d 65 78 69 74 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 65 74 20 6f 72 20 65 | do-exit...:description."Set.or.e |
| 80080 | 64 69 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 | dit.system.message"...:format.". |
| 800a0 | 25 6b 20 20 20 25 64 22 0a 20 20 3a 6b 65 79 20 22 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | %k...%d"...:key."s"...(interacti |
| 800c0 | 76 65 0a 20 20 20 28 6c 69 73 74 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 67 70 74 65 | ve....(list.(and.(functionp.gpte |
| 800e0 | 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--system-message).............. |
| 80100 | 20 28 6e 6f 74 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(not.(y-or-n-p................. |
| 80120 | 20 20 20 20 22 41 63 74 69 76 65 20 64 69 72 65 63 74 69 76 65 20 69 73 20 64 79 6e 61 6d 69 63 | ...."Active.directive.is.dynamic |
| 80140 | 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 3a 20 45 64 69 74 20 69 74 73 20 63 75 72 72 65 6e 74 | ally.generated:.Edit.its.current |
| 80160 | 20 76 61 6c 75 65 20 69 6e 73 74 65 61 64 3f 22 29 29 29 29 29 0a 20 20 28 69 66 20 63 61 6e 63 | .value.instead?")))))...(if.canc |
| 80180 | 65 6c 20 28 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 20 63 61 6e 63 65 6c 65 | el.(progn.(message."Edit.cancele |
| 801a0 | 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e | d").....................(call-in |
| 801c0 | 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 0a 20 20 20 20 28 | teractively.#'gptel-menu)).....( |
| 801e0 | 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 73 79 | gptel--edit-directive.'gptel--sy |
| 80200 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 3a 73 65 74 75 70 20 23 27 61 63 74 69 76 61 74 65 2d 6d | stem-message.:setup.#'activate-m |
| 80220 | 61 72 6b 29 29 29 0a 0a 3b 3b 20 4d 41 59 42 45 3a 20 45 76 65 6e 74 75 61 6c 6c 79 20 63 61 6e | ark)))..;;.MAYBE:.Eventually.can |
| 80240 | 20 62 65 20 73 69 6d 70 6c 69 66 69 65 64 20 77 69 74 68 20 73 74 72 69 6e 67 2d 65 64 69 74 2c | .be.simplified.with.string-edit, |
| 80260 | 20 61 66 74 65 72 20 77 65 20 64 72 6f 70 20 73 75 70 70 6f 72 74 0a 3b 3b 20 66 6f 72 20 45 6d | .after.we.drop.support.;;.for.Em |
| 80280 | 61 63 73 20 32 38 2e 32 2e 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 65 64 69 74 2d | acs.28.2..(cl-defun.gptel--edit- |
| 802a0 | 64 69 72 65 63 74 69 76 65 20 28 73 79 6d 20 26 6b 65 79 20 70 72 6f 6d 70 74 20 69 6e 69 74 69 | directive.(sym.&key.prompt.initi |
| 802c0 | 61 6c 20 63 61 6c 6c 62 61 63 6b 20 73 65 74 75 70 20 62 75 66 66 65 72 29 0a 20 20 22 45 64 69 | al.callback.setup.buffer)..."Edi |
| 802e0 | 74 20 61 20 67 70 74 65 6c 20 64 69 72 65 63 74 69 76 65 20 69 6e 20 61 20 64 65 64 69 63 61 74 | t.a.gptel.directive.in.a.dedicat |
| 80300 | 65 64 20 62 75 66 66 65 72 2e 0a 0a 53 74 6f 72 65 20 74 68 65 20 72 65 73 75 6c 74 20 69 6e 20 | ed.buffer...Store.the.result.in. |
| 80320 | 53 59 4d 2c 20 61 20 73 79 6d 62 6f 6c 2e 20 20 50 52 4f 4d 50 54 20 61 6e 64 20 49 4e 49 54 49 | SYM,.a.symbol...PROMPT.and.INITI |
| 80340 | 41 4c 20 61 72 65 20 74 68 65 0a 68 65 61 64 69 6e 67 20 61 6e 64 20 69 6e 69 74 69 61 6c 20 74 | AL.are.the.heading.and.initial.t |
| 80360 | 65 78 74 2e 20 20 49 66 20 43 41 4c 4c 42 41 43 4b 20 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 | ext...If.CALLBACK.is.specified,. |
| 80380 | 69 74 20 69 73 20 72 75 6e 0a 61 66 74 65 72 20 65 78 69 74 69 6e 67 20 74 68 65 20 65 64 69 74 | it.is.run.after.exiting.the.edit |
| 803a0 | 2e 20 20 49 66 20 53 45 54 55 50 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 72 75 6e 20 69 | ...If.SETUP.is.a.function,.run.i |
| 803c0 | 74 20 61 66 74 65 72 0a 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a | t.after.setting.up.the.buffer.". |
| 803e0 | 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 | ..(declare.(indent.1))...(let.(( |
| 80400 | 6f 72 69 67 2d 62 75 66 20 28 6f 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | orig-buf.(or.buffer.(current-buf |
| 80420 | 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 73 67 2d 73 74 61 72 74 20 28 6d 61 6b 65 2d | fer))).........(msg-start.(make- |
| 80440 | 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 72 65 63 74 69 76 65 20 28 73 79 6d | marker)).........(directive.(sym |
| 80460 | 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 | bol-value.sym))).....(when.(func |
| 80480 | 74 69 6f 6e 70 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 64 69 72 | tionp.directive).......(setq.dir |
| 804a0 | 65 63 74 69 76 65 20 28 66 75 6e 63 61 6c 6c 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 | ective.(funcall.directive))).... |
| 804c0 | 20 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 65 64 69 74 69 6e 67 20 6c 69 73 74 2d 6f 66 | .;;.TODO:.Handle.editing.list-of |
| 804e0 | 2d 73 74 72 69 6e 67 73 20 64 69 72 65 63 74 69 76 65 73 0a 20 20 20 20 28 77 69 74 68 2d 63 75 | -strings.directives.....(with-cu |
| 80500 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 | rrent-buffer.(get-buffer-create. |
| 80520 | 22 2a 67 70 74 65 6c 2d 73 79 73 74 65 6d 2a 22 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 | "*gptel-system*").......(let.((i |
| 80540 | 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 20 28 69 6e 68 69 62 69 74 2d 6d 65 73 | nhibit-read-only.t).(inhibit-mes |
| 80560 | 73 61 67 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a | sage.t)).........(erase-buffer). |
| 80580 | 20 20 20 20 20 20 20 20 28 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 76 69 73 | ........(text-mode).........(vis |
| 805a0 | 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 | ual-line-mode.1).........(setq.h |
| 805c0 | 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eader-line-format............... |
| 805e0 | 28 63 6f 6e 63 61 74 20 22 45 64 69 74 20 79 6f 75 72 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 | (concat."Edit.your.instructions. |
| 80600 | 62 65 6c 6f 77 20 61 6e 64 20 70 72 65 73 73 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | below.and.press."............... |
| 80620 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 63 22 20 27 66 | ........(propertize."C-c.C-c".'f |
| 80640 | 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 | ace.'help-key-binding).......... |
| 80660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 77 68 65 6e 20 72 65 61 64 79 2c 20 6f 72 20 22 0a | .............".when.ready,.or.". |
| 80680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a | ......................(propertiz |
| 806a0 | 65 20 22 43 2d 63 20 43 2d 6b 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 | e."C-c.C-k".'face.'help-key-bind |
| 806c0 | 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 74 6f 20 | ing).......................".to. |
| 806e0 | 61 62 6f 72 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 | abort.")).........(insert....... |
| 80700 | 20 20 20 28 6f 72 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 | ...(or.prompt..............(conc |
| 80720 | 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c 65 3a 20 59 6f 75 | at..............."#.Example:.You |
| 80740 | 20 61 72 65 20 61 20 68 65 6c 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 41 6e 73 77 65 72 | .are.a.helpful.assistant..Answer |
| 80760 | 20 61 73 20 63 6f 6e 63 69 73 65 6c 79 20 61 73 20 70 6f 73 73 69 62 6c 65 2e 5c 6e 22 0a 20 20 | .as.concisely.as.possible.\n"... |
| 80780 | 20 20 20 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c 65 3a 20 52 65 70 6c 79 20 6f 6e | ............"#.Example:.Reply.on |
| 807a0 | 6c 79 20 77 69 74 68 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 6e 6f 20 70 72 | ly.with.shell.commands.and.no.pr |
| 807c0 | 6f 73 65 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c 65 | ose.\n"..............."#.Example |
| 807e0 | 3a 20 59 6f 75 20 61 72 65 20 61 20 70 6f 65 74 2e 20 52 65 70 6c 79 20 6f 6e 6c 79 20 69 6e 20 | :.You.are.a.poet..Reply.only.in. |
| 80800 | 76 65 72 73 65 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 | verse.")).........."\n\n")...... |
| 80820 | 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 | ...(add-text-properties......... |
| 80840 | 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 28 6c | .(point-min).(point)..........(l |
| 80860 | 69 73 74 20 27 72 65 61 64 2d 6f 6e 6c 79 20 74 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 | ist.'read-only.t.'face.'font-loc |
| 80880 | 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 27 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 74 20 27 | k-comment-face.'front-sticky.t.' |
| 808a0 | 72 65 61 72 2d 6e 6f 6e 73 74 69 63 6b 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d | rear-nonsticky.t)).........(set- |
| 808c0 | 6d 61 72 6b 65 72 20 6d 73 67 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 | marker.msg-start.(point))....... |
| 808e0 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 | ..(save-excursion...........;;.I |
| 80900 | 66 20 69 74 27 73 20 61 20 6c 69 73 74 2c 20 69 6e 73 65 72 74 20 6f 6e 6c 79 20 74 68 65 20 73 | f.it's.a.list,.insert.only.the.s |
| 80920 | 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e | ystem.message.part...........(in |
| 80940 | 73 65 72 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 63 61 72 2d 73 61 66 65 20 28 67 70 74 65 | sert.(or.initial.(car-safe.(gpte |
| 80960 | 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 64 69 72 65 63 74 69 76 65 20 27 72 61 | l--parse-directive.directive.'ra |
| 80980 | 77 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 6e 69 6c 20 27 | w))))...........(push-mark.nil.' |
| 809a0 | 6e 6f 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 | nomsg)).........(and.(functionp. |
| 809c0 | 73 65 74 75 70 29 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 75 70 29 29 29 0a 20 20 20 20 20 20 28 | setup).(funcall.setup))).......( |
| 809e0 | 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a | display-buffer.(current-buffer). |
| 80a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 64 69 73 70 6c 61 79 | ......................`((display |
| 80a20 | 2d 62 75 66 66 65 72 2d 62 65 6c 6f 77 2d 73 65 6c 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 | -buffer-below-selected)......... |
| 80a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e | ................(body-function.. |
| 80a60 | 20 2c 23 27 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .,#'select-window).............. |
| 80a80 | 20 20 20 20 20 20 20 20 20 20 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 2e 20 2c 23 27 66 | ...........(window-height...,#'f |
| 80aa0 | 69 74 2d 77 69 6e 64 6f 77 2d 74 6f 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 6c 65 | it-window-to-buffer))).......(le |
| 80ac0 | 74 20 28 28 71 75 69 74 2d 74 6f 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | t.((quit-to-menu..............(l |
| 80ae0 | 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 61 6e 63 65 6c 20 | ambda.()................"Cancel. |
| 80b00 | 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 75 70 64 61 74 65 20 61 6e 64 20 72 65 74 75 72 6e | system.message.update.and.return |
| 80b20 | 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a | ."................(interactive). |
| 80b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 | ...............(quit-window).... |
| 80b60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 69 6e 69 62 75 66 66 65 72 70 | ............(unless.(minibufferp |
| 80b80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 | )..................(display-buff |
| 80ba0 | 65 72 20 6f 72 69 67 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er.orig-buf..................... |
| 80bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 | .............`((display-buffer-r |
| 80be0 | 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | euse-window..................... |
| 80c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 75 | ................display-buffer-u |
| 80c20 | 73 65 2d 73 6f 6d 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | se-some-window)................. |
| 80c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f | ...................(body-functio |
| 80c60 | 6e 20 2e 20 2c 23 27 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 29 29 29 0a 20 20 20 20 20 20 20 | n...,#'select-window))))........ |
| 80c80 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 63 6f 6d 6d 61 6e 64 70 20 63 61 6c 6c 62 61 63 | ........(cond.((commandp.callbac |
| 80ca0 | 6b 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 62 61 63 6b 29 | k).(call-interactively.callback) |
| 80cc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f | )......................((functio |
| 80ce0 | 6e 70 20 63 61 6c 6c 62 61 63 6b 29 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 | np.callback).(funcall.callback)) |
| 80d00 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 0a 20 20 20 20 | )))).........(use-local-map..... |
| 80d20 | 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 | .....(make-composed-keymap...... |
| 80d40 | 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....(define-keymap............. |
| 80d60 | 22 43 2d 63 20 43 2d 63 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 | "C-c.C-c".............(lambda.() |
| 80d80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 6e 66 69 72 6d 20 73 79 73 74 65 6d 20 6d | ..............."Confirm.system.m |
| 80da0 | 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 75 72 6e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | essage.and.return."............. |
| 80dc0 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | ..(interactive)...............(l |
| 80de0 | 65 74 20 28 28 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | et.((system-message............. |
| 80e00 | 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 | .........(buffer-substring-no-pr |
| 80e20 | 6f 70 65 72 74 69 65 73 20 6d 73 67 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 | operties.msg-start.(point-max))) |
| 80e40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | ).................(with-current- |
| 80e60 | 62 75 66 66 65 72 20 6f 72 69 67 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer.orig-buf................. |
| 80e80 | 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 73 79 6d 0a 20 20 20 | ..(gptel--set-with-scope.sym.... |
| 80ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 80ec0 | 20 20 20 20 20 20 28 69 66 20 28 63 64 72 2d 73 61 66 65 20 64 69 72 65 63 74 69 76 65 29 20 3b | ......(if.(cdr-safe.directive).; |
| 80ee0 | 48 61 6e 64 6c 65 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 | Handle.list.of.strings.......... |
| 80f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 80f20 | 20 20 20 20 28 70 72 6f 67 31 20 64 69 72 65 63 74 69 76 65 20 28 73 65 74 63 61 72 20 64 69 72 | ....(prog1.directive.(setcar.dir |
| 80f40 | 65 63 74 69 76 65 20 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 | ective.system-message))......... |
| 80f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 80f80 | 20 20 20 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...system-message).............. |
| 80fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 | ............................gpte |
| 80fc0 | 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 29 0a 20 20 20 20 20 20 20 | l--set-buffer-locally)))........ |
| 80fe0 | 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 71 75 69 74 2d 74 6f 2d 6d 65 6e 75 29 29 0a 20 | .......(funcall.quit-to-menu)).. |
| 81000 | 20 20 20 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 71 75 69 74 2d 74 6f 2d 6d 65 6e | ..........."C-c.C-k".quit-to-men |
| 81020 | 75 29 0a 20 20 20 20 20 20 20 20 20 20 74 65 78 74 2d 6d 6f 64 65 2d 6d 61 70 29 29 29 29 29 29 | u)...........text-mode-map)))))) |
| 81040 | 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 20 66 6f 72 20 64 69 73 70 6c 61 79 69 6e 67 20 61 6e | ..;;.**.Suffix.for.displaying.an |
| 81060 | 64 20 72 65 6d 6f 76 69 6e 67 20 63 6f 6e 74 65 78 74 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | d.removing.context.(declare-func |
| 81080 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 | tion.gptel-context--buffer-setup |
| 810a0 | 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | ."gptel-context").(declare-funct |
| 810c0 | 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 20 22 67 70 74 65 | ion.gptel-context--collect."gpte |
| 810e0 | 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 | l-context")..(transient-define-s |
| 81100 | 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 | uffix.gptel--suffix-context-buff |
| 81120 | 65 72 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 61 6c 6c 20 63 6f 6e 74 65 78 74 73 20 66 72 | er.()..."Display.all.contexts.fr |
| 81140 | 6f 6d 20 61 6c 6c 20 62 75 66 66 65 72 73 20 26 20 66 69 6c 65 73 2e 22 0a 20 20 3a 74 72 61 6e | om.all.buffers.&.files."...:tran |
| 81160 | 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 65 78 69 74 0a 20 20 3a 6b 65 79 | sient.'transient--do-exit...:key |
| 81180 | 20 22 20 43 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 63 6f 6e | .".C"...:if.(lambda.().gptel-con |
| 811a0 | 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 73 | text--alist)...:description."Ins |
| 811c0 | 70 65 63 74 20 63 6f 6e 74 65 78 74 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 | pect.context"...(interactive)... |
| 811e0 | 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 0a 0a | (gptel-context--buffer-setup)).. |
| 81200 | 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 29 0a 3b 3b 3b 20 67 | (provide.'gptel-transient).;;;.g |
| 81220 | 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 | ptel-transient.el.ends.here..;;. |
| 81240 | 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 6f 75 74 6c 69 6e 65 2d 72 65 67 65 | Local.Variables:.;;.outline-rege |
| 81260 | 78 70 3a 20 22 5e 3b 3b 20 5c 5c 2a 2b 22 0a 3b 3b 20 65 76 61 6c 3a 20 28 6f 75 74 6c 69 6e 65 | xp:."^;;.\\*+".;;.eval:.(outline |
| 81280 | 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 31 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 | -minor-mode.1).;;.End:.......... |
| 812a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 812c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 812e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 813a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 813c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 813e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81400 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 | gptel-0.9.8.5/gptel-openai-extra |
| 81420 | 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | s.el............................ |
| 81440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81460 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 81480 | 30 30 34 32 32 31 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 36 32 00 20 30 00 00 00 | 0042214.00000000000.015662..0... |
| 814a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 814c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 814e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81500 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 81520 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 81540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 815a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 815c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 815e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 81600 | 3b 3b 3b 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 2e 65 6c 20 2d 2d 2d 20 45 | ;;;.gptel-openai-extras.el.---.E |
| 81620 | 78 74 65 6e 73 69 6f 6e 73 20 74 6f 20 74 68 65 20 4f 70 65 6e 41 49 20 41 50 49 20 2d 2a 2d 20 | xtensions.to.the.OpenAI.API.-*-. |
| 81640 | 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 | lexical-binding:.t;.-*-..;;.Copy |
| 81660 | 72 69 67 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 | right.(C).2023-2025..Karthik.Chi |
| 81680 | 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 4b 61 72 74 68 69 6b 20 43 68 | kmagalur..;;.Authors:.Karthik.Ch |
| 816a0 | 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d | ikmagalur.<karthikchikmagalur@gm |
| 816c0 | 61 69 6c 2e 63 6f 6d 3e 20 61 6e 64 20 70 69 72 6d 69 6e 6a 0a 0a 3b 3b 20 54 68 69 73 20 70 72 | ail.com>.and.pirminj..;;.This.pr |
| 816e0 | 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 | ogram.is.free.software;.you.can. |
| 81700 | 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b | redistribute.it.and/or.modify.;; |
| 81720 | 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 | .it.under.the.terms.of.the.GNU.G |
| 81740 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 | eneral.Public.License.as.publish |
| 81760 | 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 | ed.by.;;.the.Free.Software.Found |
| 81780 | 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c | ation,.either.version.3.of.the.L |
| 817a0 | 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 | icense,.or.;;.(at.your.option).a |
| 817c0 | 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 | ny.later.version...;;.This.progr |
| 817e0 | 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 | am.is.distributed.in.the.hope.th |
| 81800 | 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 | at.it.will.be.useful,.;;.but.WIT |
| 81820 | 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 | HOUT.ANY.WARRANTY;.without.even. |
| 81840 | 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 | the.implied.warranty.of.;;.MERCH |
| 81860 | 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 | ANTABILITY.or.FITNESS.FOR.A.PART |
| 81880 | 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 | ICULAR.PURPOSE...See.the.;;.GNU. |
| 818a0 | 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 | General.Public.License.for.more. |
| 818c0 | 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 | details...;;.You.should.have.rec |
| 818e0 | 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 | eived.a.copy.of.the.GNU.General. |
| 81900 | 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 | Public.License.;;.along.with.thi |
| 81920 | 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f | s.program...If.not,.see.<https:/ |
| 81940 | 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f | /www.gnu.org/licenses/>...;;;.Co |
| 81960 | 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 | mmentary:..;;.This.file.adds.sup |
| 81980 | 70 6f 72 74 20 66 6f 72 20 50 72 69 76 61 74 65 67 70 74 27 73 20 4d 65 73 73 61 67 65 73 20 41 | port.for.Privategpt's.Messages.A |
| 819a0 | 50 49 20 61 6e 64 0a 3b 3b 20 50 65 72 70 6c 65 78 69 74 79 27 73 20 43 69 74 61 74 69 6f 6e 73 | PI.and.;;.Perplexity's.Citations |
| 819c0 | 20 66 65 61 74 75 72 65 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 | .feature.to.gptel..;;;.Code:.(re |
| 819e0 | 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f | quire.'cl-generic).(eval-when-co |
| 81a00 | 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 | mpile...(require.'cl-lib)).(requ |
| 81a20 | 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 | ire.'map).(require.'gptel)..(def |
| 81a40 | 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d | var.json-object-type)..(declare- |
| 81a60 | 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d | function.prop-match-value."text- |
| 81a80 | 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | property-search").(declare-funct |
| 81aa0 | 69 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 | ion.text-property-search-backwar |
| 81ac0 | 64 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 | d."text-property-search").(decla |
| 81ae0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 | re-function.json-read."json".()) |
| 81b00 | 0a 0a 0a 0a 3b 3b 3b 20 50 72 69 76 61 74 65 67 70 74 20 28 4d 65 73 73 61 67 65 73 20 41 50 49 | ....;;;.Privategpt.(Messages.API |
| 81b20 | 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 | ).(cl-defstruct.(gptel-privategp |
| 81b40 | 74 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 70 72 69 76 | t.(:constructor.gptel--make-priv |
| 81b60 | 61 74 65 67 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ategpt)......................... |
| 81b80 | 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .......(:copier.nil)............ |
| 81ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 | ....................(:include.gp |
| 81bc0 | 74 65 6c 2d 6f 70 65 6e 61 69 29 29 0a 20 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 29 0a | tel-openai))...context.sources). |
| 81be0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 65 67 70 74 2d 70 61 72 73 65 2d | .(defun.gptel--privategpt-parse- |
| 81c00 | 73 6f 75 72 63 65 73 20 28 72 65 73 70 6f 6e 73 65 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 | sources.(response)...(cl-loop.wi |
| 81c20 | 74 68 20 73 6f 75 72 63 65 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 | th.source-alist............for.s |
| 81c40 | 6f 75 72 63 65 20 61 63 72 6f 73 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 | ource.across.(map-nested-elt.res |
| 81c60 | 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 73 6f 75 72 63 65 73 29 29 0a 20 20 | ponse.'(:choices.0.:sources))... |
| 81c80 | 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d | .........for.name.=.(map-nested- |
| 81ca0 | 65 6c 74 20 73 6f 75 72 63 65 20 27 28 3a 64 6f 63 75 6d 65 6e 74 20 3a 64 6f 63 5f 6d 65 74 61 | elt.source.'(:document.:doc_meta |
| 81cc0 | 64 61 74 61 20 3a 66 69 6c 65 5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | data.:file_name))............for |
| 81ce0 | 20 70 61 67 65 20 3d 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 73 6f 75 72 63 65 20 27 | .page.=.(map-nested-elt.source.' |
| 81d00 | 28 3a 64 6f 63 75 6d 65 6e 74 20 3a 64 6f 63 5f 6d 65 74 61 64 61 74 61 20 3a 70 61 67 65 5f 6c | (:document.:doc_metadata.:page_l |
| 81d20 | 61 62 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 70 75 73 68 20 70 61 67 65 20 | abel))............do.(push.page. |
| 81d40 | 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 73 6f 75 72 63 65 2d 61 6c 69 73 74 20 6e 69 6c | (alist-get.name.source-alist.nil |
| 81d60 | 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c | .nil.#'equal))............finall |
| 81d80 | 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 | y.return............(cl-loop.for |
| 81da0 | 20 28 66 69 6c 65 2d 6e 61 6d 65 20 2e 20 66 69 6c 65 2d 70 61 67 65 73 29 20 69 6e 20 73 6f 75 | .(file-name...file-pages).in.sou |
| 81dc0 | 72 63 65 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f | rce-alist.....................fo |
| 81de0 | 72 20 70 61 67 65 73 20 3d 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 28 64 65 6c 71 20 6e 69 6c | r.pages.=.(delete-dups.(delq.nil |
| 81e00 | 20 66 69 6c 65 2d 70 61 67 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .file-pages))................... |
| 81e20 | 20 20 69 66 20 70 61 67 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | ..if.pages.....................c |
| 81e40 | 6f 6c 6c 65 63 74 20 28 66 6f 72 6d 61 74 20 22 2d 20 25 73 20 28 70 61 67 65 20 25 73 29 22 20 | ollect.(format."-.%s.(page.%s)". |
| 81e60 | 66 69 6c 65 2d 6e 61 6d 65 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 | file-name.(mapconcat.#'identity. |
| 81e80 | 70 61 67 65 73 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pages.",.")).................... |
| 81ea0 | 20 69 6e 74 6f 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .into.source-items.............. |
| 81ec0 | 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 28 66 6f 72 6d 61 74 20 22 2d 20 25 | .......else.collect.(format."-.% |
| 81ee0 | 73 22 20 66 69 6c 65 2d 6e 61 6d 65 29 20 69 6e 74 6f 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 0a | s".file-name).into.source-items. |
| 81f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 | ....................finally.retu |
| 81f20 | 72 6e 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 63 6f 6e 73 20 22 | rn.(mapconcat.#'identity.(cons." |
| 81f40 | 5c 6e 5c 6e 53 6f 75 72 63 65 73 3a 22 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 29 20 22 5c 6e 22 | \n\nSources:".source-items)."\n" |
| 81f60 | 29 29 29 29 0a 0a 3b 3b 20 46 49 58 4d 45 28 74 6f 6f 6c 29 20 61 64 64 20 74 6f 6f 6c 20 75 73 | ))))..;;.FIXME(tool).add.tool.us |
| 81f80 | 65 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 | e.(cl-defmethod.gptel-curl--pars |
| 81fa0 | 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 | e-stream.((_backend.gptel-privat |
| 81fc0 | 65 67 70 74 29 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 | egpt).info)...(let*.((content-st |
| 81fe0 | 72 73 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 | rs)).....(condition-case.nil.... |
| 82000 | 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 | .....(while.(re-search-forward." |
| 82020 | 5e 64 61 74 61 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d | ^data:".nil.t)...........(save-m |
| 82040 | 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 | atch-data.............(if.(looki |
| 82060 | 6e 67 2d 61 74 20 22 20 2a 5c 5c 5b 44 4f 4e 45 5c 5c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 | ng-at.".*\\[DONE\\]")........... |
| 82080 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 73 6f 75 72 63 65 73 2d 73 74 72 69 6e | ......(when-let*.((sources-strin |
| 820a0 | 67 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 29 29 29 0a 20 20 | g.(plist-get.info.:sources)))... |
| 820c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 6f 75 72 63 65 73 2d 73 74 | ................(push.sources-st |
| 820e0 | 72 69 6e 67 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ring.content-strs))............. |
| 82100 | 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 | ..(let.((response.(gptel--json-r |
| 82120 | 65 61 64 29 29 29 0a 09 09 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | ead)))...(unless.(or.(plist-get. |
| 82140 | 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:sources).................. |
| 82160 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 | ...........(not.(gptel-privategp |
| 82180 | 74 2d 73 6f 75 72 63 65 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 | t-sources.(plist-get.info.:backe |
| 821a0 | 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | nd))))...................(plist- |
| 821c0 | 70 75 74 20 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 20 28 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 | put.info.:sources.(gptel--privat |
| 821e0 | 65 67 70 74 2d 70 61 72 73 65 2d 73 6f 75 72 63 65 73 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 09 | egpt-parse-sources.response))).. |
| 82200 | 09 28 6c 65 74 2a 20 28 28 64 65 6c 74 61 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 | .(let*.((delta.(map-nested-elt.r |
| 82220 | 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 64 65 6c 74 61 29 29 29 0a 09 | esponse.'(:choices.0.:delta))).. |
| 82240 | 09 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 | ........(content.(plist-get.delt |
| 82260 | 61 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 09 09 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 | a.:content))).....(push.content. |
| 82280 | 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a | content-strs)))))).......(error. |
| 822a0 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 | .......(goto-char.(match-beginni |
| 822c0 | 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 | ng.0)))).....(apply.#'concat.(nr |
| 822e0 | 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 3b 3b 20 46 49 58 4d | everse.content-strs))))..;;.FIXM |
| 82300 | 45 28 74 6f 6f 6c 29 20 61 64 64 20 74 6f 6f 6c 20 75 73 65 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | E(tool).add.tool.use.(cl-defmeth |
| 82320 | 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b | od.gptel--parse-response.((_back |
| 82340 | 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 74 29 20 72 65 73 70 6f 6e 73 65 20 69 | end.gptel-privategpt).response.i |
| 82360 | 6e 66 6f 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 28 6d | nfo)...(let.((response-string.(m |
| 82380 | 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 | ap-nested-elt.response.'(:choice |
| 823a0 | 73 20 30 20 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 | s.0.:message.:content)))........ |
| 823c0 | 20 28 73 6f 75 72 63 65 73 2d 73 74 72 69 6e 67 20 28 61 6e 64 20 28 67 70 74 65 6c 2d 70 72 69 | .(sources-string.(and.(gptel-pri |
| 823e0 | 76 61 74 65 67 70 74 2d 73 6f 75 72 63 65 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | vategpt-sources.(plist-get.info. |
| 82400 | 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :backend))...................... |
| 82420 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 65 67 70 74 2d 70 61 72 73 65 | ........(gptel--privategpt-parse |
| 82440 | 2d 73 6f 75 72 63 65 73 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 | -sources.response)))).....(conca |
| 82460 | 74 20 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 73 6f 75 72 63 65 73 2d 73 74 72 69 6e 67 | t.response-string.sources-string |
| 82480 | 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 | )))..(cl-defmethod.gptel--reques |
| 824a0 | 74 2d 64 61 74 61 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 | t-data.((_backend.gptel-privateg |
| 824c0 | 70 74 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d | pt).prompts)..."JSON.encode.PROM |
| 824e0 | 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 | PTS.for.sending.to.ChatGPT."...( |
| 82500 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a | let.((prompts-plist..........`(: |
| 82520 | 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | model.,(gptel--model-name.gptel- |
| 82540 | 6d 6f 64 65 6c 29 0a 09 20 20 20 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 70 72 6f 6d 70 74 73 5d | model).....:messages.[,@prompts] |
| 82560 | 0a 09 20 20 20 3a 75 73 65 5f 63 6f 6e 74 65 78 74 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 70 72 | .....:use_context.,(or.(gptel-pr |
| 82580 | 69 76 61 74 65 67 70 74 2d 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 | ivategpt-context.gptel-backend). |
| 825a0 | 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 09 20 20 20 3a 69 6e 63 6c 75 64 65 5f 73 6f 75 72 63 65 | :json-false).....:include_source |
| 825c0 | 73 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 74 2d 73 6f 75 72 63 65 73 | s.,(or.(gptel-privategpt-sources |
| 825e0 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 | .gptel-backend).:json-false).... |
| 82600 | 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 70 74 65 6c 2d 73 74 72 65 61 | ........:stream.,(or.gptel-strea |
| 82620 | 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 | m.:json-false)))).....(when.(and |
| 82640 | 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 | .gptel--system-message.......... |
| 82660 | 20 20 20 20 20 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 | ......(not.(gptel--model-capable |
| 82680 | 2d 70 20 27 6e 6f 73 79 73 74 65 6d 29 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | -p.'nosystem))).......(plist-put |
| 826a0 | 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 73 79 | .prompts-plist.:system.gptel--sy |
| 826c0 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 | stem-message)).....(when.gptel-t |
| 826e0 | 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d | emperature.......(plist-put.prom |
| 82700 | 70 74 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d | pts-plist.:temperature.gptel-tem |
| 82720 | 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 | perature)).....(when.gptel-max-t |
| 82740 | 6f 6b 65 6e 73 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 | okens.......(plist-put.prompts-p |
| 82760 | 6c 69 73 74 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e | list.:max_tokens.gptel-max-token |
| 82780 | 73 29 29 0a 20 20 20 20 3b 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 20 | s)).....;;.Merge.request.params. |
| 827a0 | 77 69 74 68 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 6d 73 2e 0a 20 | with.model.and.backend.params... |
| 827c0 | 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 70 72 6f | ...(gptel--merge-plists......pro |
| 827e0 | 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 72 | mpts-plist......(gptel-backend-r |
| 82800 | 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 | equest-params.gptel-backend).... |
| 82820 | 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 | ..(gptel--model-request-params.. |
| 82840 | 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 0a 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | gptel-model))))...;;;###autoload |
| 82860 | 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 | .(cl-defun.gptel-make-privategpt |
| 82880 | 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d | .....(name.&key.curl-args.stream |
| 828a0 | 20 6b 65 79 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 | .key.request-params...........(h |
| 828c0 | 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 | eader............(lambda.().(whe |
| 828e0 | 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 | n-let*.((key.(gptel--get-api-key |
| 82900 | 29 29 29 0a 09 09 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 | )))......`(("Authorization"...,( |
| 82920 | 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 | concat."Bearer.".key))))))...... |
| 82940 | 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 29 0a 20 20 20 | .....(host."localhost:8001").... |
| 82960 | 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 29 0a 09 20 20 28 6d 6f 64 | .......(protocol."http")....(mod |
| 82980 | 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 | els.'(private-gpt))...........(e |
| 829a0 | 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 0a | ndpoint."/v1/chat/completions"). |
| 829c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 78 74 20 74 29 20 28 73 6f 75 72 63 65 73 20 74 | ..........(context.t).(sources.t |
| 829e0 | 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 50 72 69 76 61 74 65 67 70 74 20 41 50 49 | ))..."Register.an.Privategpt.API |
| 82a00 | 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 | -compatible.backend.for.gptel.wi |
| 82a20 | 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 | th.NAME...Keyword.arguments:..CU |
| 82a40 | 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 | RL-ARGS.(optional).is.a.list.of. |
| 82a60 | 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 | additional.Curl.arguments...HOST |
| 82a80 | 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 | .(optional).is.the.API.host,.\"a |
| 82aa0 | 70 69 2e 70 72 69 76 61 74 65 67 70 74 2e 63 6f 6d 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a | pi.privategpt.com\".by.default.. |
| 82ac0 | 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d | .MODELS.is.a.list.of.available.m |
| 82ae0 | 6f 64 65 6c 20 6e 61 6d 65 73 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e | odel.names...STREAM.is.a.boolean |
| 82b00 | 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 | .to.toggle.streaming.responses,. |
| 82b20 | 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 | defaults.to.false...PROTOCOL.(op |
| 82b40 | 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 | tional).specifies.the.protocol,. |
| 82b60 | 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 | https.by.default...ENDPOINT.(opt |
| 82b80 | 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 | ional).is.the.API.endpoint.for.c |
| 82ba0 | 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 2f 6d 65 | ompletions,.defaults.to.\"/v1/me |
| 82bc0 | 73 73 61 67 65 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 | ssages\"...HEADER.(optional).is. |
| 82be0 | 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 | for.additional.headers.to.send.w |
| 82c00 | 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 | ith.each.request..It.should.be.a |
| 82c20 | 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e | n.alist.or.a.function.that.retun |
| 82c40 | 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 | s.an.alist,.like:.((\"Content-Ty |
| 82c60 | 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b | pe\"...\"application/json\"))..K |
| 82c80 | 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 | EY.is.a.variable.whose.value.is. |
| 82ca0 | 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 72 65 | the.API.key,.or.function.that.re |
| 82cc0 | 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 43 4f 4e 54 45 58 54 20 61 6e 64 20 53 4f 55 52 | turns.the.key...CONTEXT.and.SOUR |
| 82ce0 | 43 45 53 3a 20 69 66 20 74 72 75 65 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 75 73 65 20 | CES:.if.true.(the.default),.use. |
| 82d00 | 61 76 61 69 6c 61 62 6c 65 20 63 6f 6e 74 65 78 74 0a 61 6e 64 20 70 72 6f 76 69 64 65 20 73 6f | available.context.and.provide.so |
| 82d20 | 75 72 63 65 73 20 75 73 65 64 20 62 79 20 74 68 65 20 6d 6f 64 65 6c 20 74 6f 20 67 65 6e 65 72 | urces.used.by.the.model.to.gener |
| 82d40 | 61 74 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d | ate.the.response...REQUEST-PARAM |
| 82d60 | 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 | S.(optional).is.a.plist.of.addit |
| 82d80 | 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 65 72 73 20 28 61 | ional.HTTP.request.parameters.(a |
| 82da0 | 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 74 | s.plist.keys).and.values.support |
| 82dc0 | 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 74 6f 20 73 65 74 | ed.by.the.API...Use.these.to.set |
| 82de0 | 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 | .parameters.that.gptel.does.not. |
| 82e00 | 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 22 0a 20 20 28 64 65 | provide.user.options.for."...(de |
| 82e20 | 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 | clare.(indent.1))...(let.((backe |
| 82e40 | 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 0a 20 20 20 20 20 | nd.(gptel--make-privategpt...... |
| 82e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 | .............:curl-args.curl-arg |
| 82e80 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 | s...................:name.name.. |
| 82ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 | .................:host.host..... |
| 82ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 | ..............:header.header.... |
| 82ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 | ...............:key.key......... |
| 82f00 | 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 | ..........:models.models........ |
| 82f20 | 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 | ...........:protocol.protocol... |
| 82f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 | ................:endpoint.endpoi |
| 82f60 | 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 | nt...................:stream.str |
| 82f80 | 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 | eam...................:request-p |
| 82fa0 | 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | arams.request-params............ |
| 82fc0 | 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 | .......:url.(if.protocol........ |
| 82fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 | ....................(concat.prot |
| 83000 | 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 | ocol."://".host.endpoint)....... |
| 83020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 | ...................(concat.host. |
| 83040 | 65 6e 64 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f | endpoint))...................:co |
| 83060 | 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntext.context................... |
| 83080 | 3a 73 6f 75 72 63 65 73 20 73 6f 75 72 63 65 73 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 | :sources.sources))).....(prog1.b |
| 830a0 | 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 | ackend.......(setf.(alist-get.na |
| 830c0 | 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 | me.gptel--known-backends........ |
| 830e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 | ................nil.nil.#'equal) |
| 83100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 0a 3b 3b 3b 20 50 | .............backend))))...;;;.P |
| 83120 | 65 72 70 6c 65 78 69 74 79 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 70 | erplexity.(cl-defstruct.(gptel-p |
| 83140 | 65 72 70 6c 65 78 69 74 79 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d | erplexity.(:constructor.gptel--m |
| 83160 | 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 29 0a 09 09 09 09 28 3a 63 6f 70 69 65 72 20 6e 69 6c | ake-perplexity).....(:copier.nil |
| 83180 | 29 0a 09 09 09 09 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 29 29 0a | ).....(:include.gptel-openai))). |
| 831a0 | 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 70 65 72 70 6c 65 78 69 74 79 2d 70 61 72 | .(defsubst.gptel--perplexity-par |
| 831c0 | 73 65 2d 63 69 74 61 74 69 6f 6e 73 20 28 63 69 74 61 74 69 6f 6e 73 29 0a 20 20 28 6c 65 74 20 | se-citations.(citations)...(let. |
| 831e0 | 28 28 63 6f 75 6e 74 65 72 20 30 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 43 | ((counter.0)).....(concat."\n\nC |
| 83200 | 69 74 61 74 69 6f 6e 73 3a 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e | itations:\n".............(mapcon |
| 83220 | 63 61 74 20 28 6c 61 6d 62 64 61 20 28 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cat.(lambda.(url)............... |
| 83240 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 65 72 20 28 31 2b 20 63 6f 75 | ...........(setq.counter.(1+.cou |
| 83260 | 6e 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nter)).......................... |
| 83280 | 28 66 6f 72 6d 61 74 20 22 5b 25 64 5d 20 25 73 22 20 63 6f 75 6e 74 65 72 20 75 72 6c 29 29 0a | (format."[%d].%s".counter.url)). |
| 832a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 69 74 61 74 69 6f 6e 73 | .......................citations |
| 832c0 | 20 22 5c 6e 22 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d | ."\n"))))..(cl-defmethod.gptel-- |
| 832e0 | 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | parse-response.((_backend.gptel- |
| 83300 | 70 65 72 70 6c 65 78 69 74 79 29 20 72 65 73 70 6f 6e 73 65 20 5f 69 6e 66 6f 29 0a 20 20 22 50 | perplexity).response._info)..."P |
| 83320 | 61 72 73 65 20 50 65 72 70 6c 65 78 69 74 79 20 72 65 73 70 6f 6e 73 65 20 52 45 53 50 4f 4e 53 | arse.Perplexity.response.RESPONS |
| 83340 | 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 28 6d 61 | E."...(let.((response-string.(ma |
| 83360 | 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 | p-nested-elt.response.'(:choices |
| 83380 | 20 30 20 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | .0.:message.:content)))......... |
| 833a0 | 28 63 69 74 61 74 69 6f 6e 73 2d 73 74 72 69 6e 67 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 | (citations-string.(when-let*.((c |
| 833c0 | 69 74 61 74 69 6f 6e 73 20 28 6d 61 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 63 69 74 61 | itations.(map-elt.response.:cita |
| 833e0 | 74 69 6f 6e 73 29 29 29 0a 09 09 09 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 65 72 70 6c 65 78 69 | tions)))........(gptel--perplexi |
| 83400 | 74 79 2d 70 61 72 73 65 2d 63 69 74 61 74 69 6f 6e 73 20 63 69 74 61 74 69 6f 6e 73 29 29 29 29 | ty-parse-citations.citations)))) |
| 83420 | 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 63 69 74 | .....(concat.response-string.cit |
| 83440 | 61 74 69 6f 6e 73 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 | ations-string)))..(cl-defmethod. |
| 83460 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b | gptel-curl--parse-stream.((_back |
| 83480 | 65 6e 64 20 67 70 74 65 6c 2d 70 65 72 70 6c 65 78 69 74 79 29 20 69 6e 66 6f 29 0a 20 20 22 50 | end.gptel-perplexity).info)..."P |
| 834a0 | 61 72 73 65 20 61 20 50 65 72 70 6c 65 78 69 74 79 20 41 50 49 20 64 61 74 61 20 73 74 72 65 61 | arse.a.Perplexity.API.data.strea |
| 834c0 | 6d 20 77 69 74 68 20 49 4e 46 4f 2e 0a 0a 49 66 20 61 76 61 69 6c 61 62 6c 65 2c 20 63 6f 6c 6c | m.with.INFO...If.available,.coll |
| 834e0 | 65 63 74 20 63 69 74 61 74 69 6f 6e 73 20 61 74 20 74 68 65 20 65 6e 64 20 61 6e 64 20 69 6e 63 | ect.citations.at.the.end.and.inc |
| 83500 | 6c 75 64 65 20 74 68 65 6d 20 77 69 74 68 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 | lude.them.with.the.response."... |
| 83520 | 28 6c 65 74 20 28 28 72 65 73 70 20 28 63 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d 65 74 68 6f 64 | (let.((resp.(cl-call-next-method |
| 83540 | 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | ))).....(unless.(plist-get.info. |
| 83560 | 3a 63 69 74 61 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f | :citations).......(save-excursio |
| 83580 | 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | n.........(goto-char.(point-max) |
| 835a0 | 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 | ).........(when.(search-backward |
| 835c0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 | .(plist-get.info.:token)........ |
| 835e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 | ........................(line-be |
| 83600 | 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ginning-position).t)...........( |
| 83620 | 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | forward-line.0)...........(when. |
| 83640 | 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5e 64 61 74 61 3a 20 22 20 6e 69 | (re-search-backward."^data:.".ni |
| 83660 | 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 | l.t).............(goto-char.(mat |
| 83680 | 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 | ch-end.0)).............(ignore-e |
| 836a0 | 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | rrors...............(when-let*.( |
| 836c0 | 28 63 68 75 6e 6b 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 | (chunk.(gptel--json-read))...... |
| 836e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 69 74 61 74 69 6f 6e 73 20 | .....................(citations. |
| 83700 | 28 6d 61 70 2d 65 6c 74 20 63 68 75 6e 6b 20 3a 63 69 74 61 74 69 6f 6e 73 29 29 29 0a 20 20 20 | (map-elt.chunk.:citations))).... |
| 83720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 69 | .............(plist-put.info.:ci |
| 83740 | 74 61 74 69 6f 6e 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | tations.t).................(setq |
| 83760 | 20 72 65 73 70 20 28 63 6f 6e 63 61 74 20 72 65 73 70 20 28 67 70 74 65 6c 2d 2d 70 65 72 70 6c | .resp.(concat.resp.(gptel--perpl |
| 83780 | 65 78 69 74 79 2d 70 61 72 73 65 2d 63 69 74 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 | exity-parse-citations........... |
| 837a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | ...............................c |
| 837c0 | 69 74 61 74 69 6f 6e 73 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 72 65 73 70 29 29 0a 0a 3b 3b | itations))))))))).....resp))..;; |
| 837e0 | 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b | ;###autoload.(cl-defun.gptel-mak |
| 83800 | 65 2d 70 65 72 70 6c 65 78 69 74 79 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c | e-perplexity.....(name.&key.curl |
| 83820 | 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 | -args.stream.key...........(head |
| 83840 | 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c | er............(lambda.().(when-l |
| 83860 | 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 | et*.((key.(gptel--get-api-key))) |
| 83880 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a | ....................`(("Authoriz |
| 838a0 | 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 | ation"...,(concat."Bearer.".key) |
| 838c0 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 70 65 72 70 6c | )))))...........(host."api.perpl |
| 838e0 | 65 78 69 74 79 2e 61 69 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 | exity.ai")...........(protocol." |
| 83900 | 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 | https")...........;;.https://doc |
| 83920 | 73 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 69 2f 67 75 69 64 65 73 2f 6d 6f 64 65 6c 2d 63 61 72 | s.perplexity.ai/guides/model-car |
| 83940 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 73 6f 6e 61 72 20 73 6f 6e | ds...........(models.'(sonar.son |
| 83960 | 61 72 2d 70 72 6f 20 73 6f 6e 61 72 2d 72 65 61 73 6f 6e 69 6e 67 20 73 6f 6e 61 72 2d 72 65 61 | ar-pro.sonar-reasoning.sonar-rea |
| 83980 | 73 6f 6e 69 6e 67 2d 70 72 6f 20 73 6f 6e 61 72 2d 64 65 65 70 2d 72 65 73 65 61 72 63 68 29 29 | soning-pro.sonar-deep-research)) |
| 839a0 | 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 63 68 61 74 2f 63 6f 6d 70 | ...........(endpoint."/chat/comp |
| 839c0 | 6c 65 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 72 65 71 75 65 73 74 2d 70 61 72 61 | letions")...........request-para |
| 839e0 | 6d 73 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 50 65 72 70 6c 65 78 69 74 79 20 62 61 63 | ms)..."Register.a.Perplexity.bac |
| 83a00 | 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f | kend.for.gptel.with.NAME...Keywo |
| 83a20 | 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e | rd.arguments:..CURL-ARGS.(option |
| 83a40 | 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c | al).is.a.list.of.additional.Curl |
| 83a60 | 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 | .arguments...HOST.(optional).is. |
| 83a80 | 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 70 69 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 | the.API.host,.\"api.perplexity.a |
| 83aa0 | 69 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 | i\".by.default...MODELS.is.a.lis |
| 83ac0 | 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2e 0a 0a 53 54 52 | t.of.available.model.names...STR |
| 83ae0 | 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 | EAM.is.a.boolean.to.toggle.strea |
| 83b00 | 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f | ming.responses...PROTOCOL.(optio |
| 83b20 | 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 | nal).specifies.the.protocol,.htt |
| 83b40 | 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e | ps.by.default...ENDPOINT.(option |
| 83b60 | 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 | al).is.the.API.endpoint.for.comp |
| 83b80 | 6c 65 74 69 6f 6e 73 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 | letions...HEADER.(optional).is.f |
| 83ba0 | 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 | or.additional.headers.to.send.wi |
| 83bc0 | 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e | th.each.request..It.should.be.an |
| 83be0 | 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e | .alist.or.a.function.that.return |
| 83c00 | 73 20 61 6e 0a 61 6c 69 73 74 2e 0a 0a 4b 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 | s.an.alist...KEY.is.a.variable.w |
| 83c20 | 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 | hose.value.is.the.API.key,.or.fu |
| 83c40 | 6e 63 74 69 6f 6e 20 74 68 61 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 45 | nction.that.returns.the.key...RE |
| 83c60 | 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 | QUEST-PARAMS.(optional).is.a.pli |
| 83c80 | 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 | st.of.additional.HTTP.request.pa |
| 83ca0 | 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 | rameters."...(declare.(indent.1) |
| 83cc0 | 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d | )...(let.((backend.(gptel--make- |
| 83ce0 | 70 65 72 70 6c 65 78 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 | perplexity...................:cu |
| 83d00 | 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rl-args.curl-args............... |
| 83d20 | 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....:name.name.................. |
| 83d40 | 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 | .:host.host...................:h |
| 83d60 | 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | eader.header...................: |
| 83d80 | 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c | key.key...................:model |
| 83da0 | 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 | s.models...................:prot |
| 83dc0 | 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocol.protocol................... |
| 83de0 | 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :endpoint.endpoint.............. |
| 83e00 | 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....:stream.stream............. |
| 83e20 | 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 | ......:request-params.request-pa |
| 83e40 | 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 | rams...................:url.(if. |
| 83e60 | 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol........................ |
| 83e80 | 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 | ....(concat.protocol."://".host. |
| 83ea0 | 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | endpoint)....................... |
| 83ec0 | 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 | ...(concat.host.endpoint)))))... |
| 83ee0 | 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c | ..(prog1.backend.......(setf.(al |
| 83f00 | 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e | ist-get.name.gptel--known-backen |
| 83f20 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 | ds........................nil.ni |
| 83f40 | 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 | l.#'equal).............backend)) |
| 83f60 | 29 29 0a 0a 3b 3b 3b 20 44 65 65 70 73 65 65 6b 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 | ))..;;;.Deepseek.(cl-defstruct.( |
| 83f80 | 67 70 74 65 6c 2d 64 65 65 70 73 65 65 6b 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 6f | gptel-deepseek.(:include.gptel-o |
| 83fa0 | 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | penai).......................... |
| 83fc0 | 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(:copier.nil).............. |
| 83fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 | .................(:constructor.g |
| 84000 | 70 74 65 6c 2d 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | ptel--make-deepseek)))..(cl-defm |
| 84020 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 3a | ethod.gptel-curl--parse-stream.: |
| 84040 | 62 65 66 6f 72 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 64 65 65 70 73 65 65 6b | before.((_backend.gptel-deepseek |
| 84060 | 29 20 69 6e 66 6f 29 0a 20 20 22 43 61 70 74 75 72 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f | ).info)..."Capture.reasoning.blo |
| 84080 | 63 6b 20 73 74 72 65 61 6d 20 69 6e 74 6f 20 49 4e 46 4f 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 | ck.stream.into.INFO."...(unless. |
| 840a0 | 28 65 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 | (eq.(plist-get.info.:reasoning-b |
| 840c0 | 6c 6f 63 6b 29 20 27 64 6f 6e 65 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | lock).'done).....(save-excursion |
| 840e0 | 0a 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 28 63 | .......(ignore-errors.........(c |
| 84100 | 61 74 63 68 20 27 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d | atch.'done...........(while.(re- |
| 84120 | 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 64 61 74 61 3a 22 20 6e 69 6c 20 74 29 0a 20 | search-forward."^data:".nil.t).. |
| 84140 | 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 | ...........(unless.(looking-at-p |
| 84160 | 20 22 20 2a 5c 5c 5b 44 4f 4e 45 5c 5c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .".*\\[DONE\\]")...............( |
| 84180 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f | when-let*.((response.(gptel--jso |
| 841a0 | 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-read))........................ |
| 841c0 | 20 20 20 28 64 65 6c 74 61 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e | ...(delta.(map-nested-elt.respon |
| 841e0 | 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 64 65 6c 74 61 29 29 29 29 0a 20 20 20 20 20 | se.'(:choices.0.:delta))))...... |
| 84200 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 | ...........(if-let*.((reasoning. |
| 84220 | 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 | (plist-get.delta.:reasoning_cont |
| 84240 | 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ent))........................... |
| 84260 | 28 28 6e 6f 74 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 20 | ((not.(eq.reasoning.:null))))... |
| 84280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 3a 72 65 61 73 6f 6e 69 6e 67 20 | ..................;;.:reasoning. |
| 842a0 | 77 69 6c 6c 20 62 65 20 63 6f 6e 73 75 6d 65 64 20 62 79 20 74 68 65 20 67 70 74 65 6c 2d 72 65 | will.be.consumed.by.the.gptel-re |
| 842c0 | 71 75 65 73 74 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | quest.callback.................. |
| 842e0 | 20 20 20 3b 3b 20 61 6e 64 20 72 65 73 65 74 20 62 79 20 74 68 65 20 73 74 72 65 61 6d 20 66 69 | ...;;.and.reset.by.the.stream.fi |
| 84300 | 6c 74 65 72 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | lter......................(plist |
| 84320 | 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | -put.info.:reasoning............ |
| 84340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 | ....................(concat.(pli |
| 84360 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 61 73 6f 6e 69 6e | st-get.info.:reasoning).reasonin |
| 84380 | 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a | g))...................(when-let* |
| 843a0 | 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 6f 6e | .((content.(plist-get.delta.:con |
| 843c0 | 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tent)).......................... |
| 843e0 | 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c 29 29 29 29 | .....((not.(eq.content.:null)))) |
| 84400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 28 70 6c | .....................(if.(eq.(pl |
| 84420 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 | ist-get.info.:reasoning-block).' |
| 84440 | 69 6e 29 20 3b 43 68 65 63 6b 20 69 66 20 69 6e 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b | in).;Check.if.in.reasoning.block |
| 84460 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | .........................(plist- |
| 84480 | 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 20 3b 45 6e | put.info.:reasoning-block.t).;En |
| 844a0 | 64 20 6f 66 20 73 74 72 65 61 6d 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 | d.of.streaming.reasoning.block.. |
| 844c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | .....................(plist-put. |
| 844e0 | 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 29 20 3b 4e | info.:reasoning-block.'done)).;N |
| 84500 | 6f 74 20 75 73 69 6e 67 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 0a 20 20 20 20 20 | ot.using.a.reasoning.model...... |
| 84520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 64 6f 6e 65 20 74 29 29 29 | ...............(throw.'done.t))) |
| 84540 | 29 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 | ))))))))..(cl-defmethod.gptel--p |
| 84560 | 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 3a 62 65 66 6f 72 65 20 28 28 5f 62 61 63 6b 65 6e 64 | arse-response.:before.((_backend |
| 84580 | 20 67 70 74 65 6c 2d 64 65 65 70 73 65 65 6b 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a | .gptel-deepseek).response.info). |
| 845a0 | 20 20 22 43 61 70 74 75 72 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 69 6e 20 52 45 | .."Capture.reasoning.block.in.RE |
| 845c0 | 53 50 4f 4e 53 45 20 69 6e 74 6f 20 49 4e 46 4f 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 6f | SPONSE.into.INFO."...(let*.((cho |
| 845e0 | 69 63 65 30 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 | ice0.(map-nested-elt.response.'( |
| 84600 | 3a 63 68 6f 69 63 65 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | :choices.0)))..........(message. |
| 84620 | 28 70 6c 69 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 6d 65 73 73 61 67 65 29 29 0a 20 20 | (plist-get.choice0.:message))... |
| 84640 | 20 20 20 20 20 20 20 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 | .......(reasoning.(plist-get.mes |
| 84660 | 73 61 67 65 20 3a 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 | sage.:reasoning_content))).....( |
| 84680 | 77 68 65 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 20 28 6c | when.(and.(stringp.reasoning).(l |
| 846a0 | 65 6e 67 74 68 3e 20 72 65 61 73 6f 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 | ength>.reasoning.0)).......(plis |
| 846c0 | 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 | t-put.info.:reasoning.reasoning) |
| 846e0 | 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d | )))..(cl-defmethod.gptel--parse- |
| 84700 | 62 75 66 66 65 72 20 3a 61 72 6f 75 6e 64 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | buffer.:around.((_backend.gptel- |
| 84720 | 64 65 65 70 73 65 65 6b 29 20 5f 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 4d 65 72 67 65 | deepseek)._max-entries)..."Merge |
| 84740 | 20 73 75 63 63 65 73 73 69 76 65 20 70 72 6f 6d 70 74 73 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 | .successive.prompts.in.the.promp |
| 84760 | 74 73 20 6c 69 73 74 20 74 68 61 74 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 72 6f 6c 65 2e | ts.list.that.have.the.same.role. |
| 84780 | 0a 0a 54 68 65 20 44 65 65 70 73 65 65 6b 20 41 50 49 20 72 65 71 75 69 72 65 73 20 73 74 72 69 | ..The.Deepseek.API.requires.stri |
| 847a0 | 63 74 6c 79 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 72 6f 6c 65 73 20 28 75 73 65 72 2f 61 73 73 | ctly.alternating.roles.(user/ass |
| 847c0 | 69 73 74 61 6e 74 29 20 69 6e 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 | istant).in.messages."...(let*.(( |
| 847e0 | 70 72 6f 6d 70 74 73 20 28 63 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d 65 74 68 6f 64 29 29 0a 20 | prompts.(cl-call-next-method)).. |
| 84800 | 20 20 20 20 20 20 20 20 28 69 6e 64 65 78 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 28 70 72 | ........(index.prompts)).....(pr |
| 84820 | 6f 67 31 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 69 6e 64 65 78 0a 20 | og1.prompts.......(while.index.. |
| 84840 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 31 20 28 63 61 72 20 69 6e 64 65 78 29 29 0a 20 20 | .......(let.((p1.(car.index))... |
| 84860 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 32 20 28 63 61 64 72 20 69 6e 64 65 78 29 29 0a 20 20 | ............(p2.(cadr.index))... |
| 84880 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 20 28 63 64 72 20 69 6e 64 65 78 29 29 29 0a | ............(rest.(cdr.index))). |
| 848a0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 32 20 28 65 71 75 61 6c 20 28 | ..........(when.(and.p2.(equal.( |
| 848c0 | 70 6c 69 73 74 2d 67 65 74 20 70 31 20 3a 72 6f 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | plist-get.p1.:role)............. |
| 848e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 32 | ...................(plist-get.p2 |
| 84900 | 20 3a 72 6f 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 70 6c 69 | .:role))).............(setf.(pli |
| 84920 | 73 74 2d 67 65 74 20 70 31 20 3a 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | st-get.p1.:content)............. |
| 84940 | 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 70 31 20 3a 63 6f 6e | ......(concat.(plist-get.p1.:con |
| 84960 | 74 65 6e 74 29 20 22 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tent)."\n"...................... |
| 84980 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 32 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 | .....(plist-get.p2.:content))).. |
| 849a0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 64 72 20 69 6e 64 65 78 20 28 63 64 72 20 72 65 | ...........(setcdr.index.(cdr.re |
| 849c0 | 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 64 65 78 20 28 63 64 72 | st)))...........(setq.index.(cdr |
| 849e0 | 20 69 6e 64 65 78 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 | .index)))))))..;;;###autoload.(c |
| 84a00 | 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 0a 20 20 20 20 | l-defun.gptel-make-deepseek..... |
| 84a20 | 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 20 | (name.&key.curl-args.stream.key. |
| 84a40 | 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 | request-params...........(header |
| 84a60 | 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 | .(lambda.().(when-let*.((key.(gp |
| 84a80 | 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel--get-api-key)))............. |
| 84aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 | ..............`(("Authorization" |
| 84ac0 | 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a | ...,(concat."Bearer.".key)))))). |
| 84ae0 | 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 64 65 65 70 73 65 65 6b 2e 63 6f | ..........(host."api.deepseek.co |
| 84b00 | 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 | m")...........(protocol."https") |
| 84b20 | 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 | ...........(endpoint."/v1/chat/c |
| 84b40 | 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 | ompletions")...........(models.' |
| 84b60 | 28 28 64 65 65 70 73 65 65 6b 2d 72 65 61 73 6f 6e 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ((deepseek-reasoner............. |
| 84b80 | 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 20 72 65 61 | .........:capabilities.(tool.rea |
| 84ba0 | 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f | soning)......................:co |
| 84bc0 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntext-window.64................. |
| 84be0 | 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 35 35 0a 20 20 20 20 20 20 20 20 20 20 | .....:input-cost.0.55........... |
| 84c00 | 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 32 2e 31 39 29 0a 20 20 | ...........:output-cost.2.19)... |
| 84c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 65 70 73 65 65 6b 2d 63 68 61 74 | ..................(deepseek-chat |
| 84c40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 | ......................:capabilit |
| 84c60 | 69 65 73 20 28 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ies.(tool)...................... |
| 84c80 | 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :context-window.64.............. |
| 84ca0 | 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 32 37 0a 20 20 20 20 20 20 20 | ........:input-cost.0.27........ |
| 84cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 31 30 29 | ..............:output-cost.1.10) |
| 84ce0 | 29 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 44 65 65 70 53 65 65 6b 20 62 61 63 6b 65 | )))..."Register.a.DeepSeek.backe |
| 84d00 | 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 46 6f 72 20 74 68 65 | nd.for.gptel.with.NAME...For.the |
| 84d20 | 20 6d 65 61 6e 69 6e 67 73 20 6f 66 20 74 68 65 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e | .meanings.of.the.keyword.argumen |
| 84d40 | 74 73 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e 22 0a 20 20 | ts,.see.`gptel-make-openai'."... |
| 84d60 | 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 | (declare.(indent.1))...(let.((ba |
| 84d80 | 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 0a 20 20 20 20 | ckend.(gptel--make-deepseek..... |
| 84da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 | ..............:name.name........ |
| 84dc0 | 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 | ...........:host.host........... |
| 84de0 | 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 | ........:header.header.......... |
| 84e00 | 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........:key.key............... |
| 84e20 | 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 | ....:models.(gptel--process-mode |
| 84e40 | 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 | ls.models)...................:pr |
| 84e60 | 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | otocol.protocol................. |
| 84e80 | 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ..:endpoint.endpoint............ |
| 84ea0 | 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 | .......:stream.stream........... |
| 84ec0 | 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d | ........:request-params.request- |
| 84ee0 | 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 | params...................:curl-a |
| 84f00 | 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rgs.curl-args................... |
| 84f20 | 3a 75 72 6c 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 | :url.(concat.protocol."://".host |
| 84f40 | 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 | .endpoint)))).....(setf.(alist-g |
| 84f60 | 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 | et.name.gptel--known-backends.ni |
| 84f80 | 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b | l.nil.#'equal).backend).....back |
| 84fa0 | 65 6e 64 29 29 0a 0a 3b 3b 3b 20 78 41 49 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 | end))..;;;.xAI.;;;###autoload.(c |
| 84fc0 | 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 0a 20 20 20 20 28 6e 61 6d 65 | l-defun.gptel-make-xai.....(name |
| 84fe0 | 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 20 72 65 71 75 65 | .&key.curl-args.stream.key.reque |
| 85000 | 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d | st-params...........(header.(lam |
| 85020 | 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d | bda.().(when-let*.((key.(gptel-- |
| 85040 | 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | get-api-key))).................. |
| 85060 | 20 20 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 | .........`(("Authorization"...,( |
| 85080 | 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 | concat."Bearer.".key))))))...... |
| 850a0 | 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 78 2e 61 69 22 29 0a 20 20 20 20 20 20 20 20 20 | .....(host."api.x.ai").......... |
| 850c0 | 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 | .(protocol."https")...........(e |
| 850e0 | 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 0a | ndpoint."/v1/chat/completions"). |
| 85100 | 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 28 67 72 6f 6b 2d 33 2d 6c 61 74 65 | ..........(models.'((grok-3-late |
| 85120 | 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 | st......................:descrip |
| 85140 | 74 69 6f 6e 20 22 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tion."Grok.3"................... |
| 85160 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e | ...:capabilities.'(tool-use.json |
| 85180 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d | )......................:context- |
| 851a0 | 77 69 6e 64 6f 77 20 31 33 31 30 37 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | window.131072................... |
| 851c0 | 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:input-cost.3................ |
| 851e0 | 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 29 0a 0a 20 20 20 20 20 20 20 20 | ......:output-cost.15).......... |
| 85200 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 2d 66 61 73 74 2d 6c 61 74 65 73 74 0a | ............(grok-3-fast-latest. |
| 85220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f | .....................:descriptio |
| 85240 | 6e 20 22 46 61 73 74 65 72 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n."Faster.Grok.3"............... |
| 85260 | 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 | .......:capabilities.'(tool-use. |
| 85280 | 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 | json)......................:cont |
| 852a0 | 65 78 74 2d 77 69 6e 64 6f 77 20 31 33 31 30 37 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ext-window.131072............... |
| 852c0 | 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 35 0a 20 20 20 20 20 20 20 20 20 20 20 | .......:input-cost.5............ |
| 852e0 | 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 32 35 29 0a 0a 20 20 20 20 | ..........:output-cost.25)...... |
| 85300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 2d 6d 69 6e 69 2d 6c 61 74 | ................(grok-3-mini-lat |
| 85320 | 65 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 | est......................:descri |
| 85340 | 70 74 69 6f 6e 20 22 4d 69 6e 69 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ption."Mini.Grok.3"............. |
| 85360 | 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 | .........:capabilities.'(tool-us |
| 85380 | 65 20 6a 73 6f 6e 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.json.reasoning)............... |
| 853a0 | 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 33 31 30 37 32 0a 20 20 | .......:context-window.131072... |
| 853c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 | ...................:input-cost.0 |
| 853e0 | 2e 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d | .3......................:output- |
| 85400 | 63 6f 73 74 20 30 2e 35 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | cost.0.5)......................( |
| 85420 | 67 72 6f 6b 2d 33 2d 6d 69 6e 69 2d 66 61 73 74 2d 6c 61 74 65 73 74 0a 20 20 20 20 20 20 20 20 | grok-3-mini-fast-latest......... |
| 85440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 65 | .............:description."Faste |
| 85460 | 72 20 6d 69 6e 69 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.mini.Grok.3".................. |
| 85480 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f | ....:capabilities.'(tool-use.jso |
| 854a0 | 6e 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.reasoning).................... |
| 854c0 | 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 33 31 30 37 32 0a 20 20 20 20 20 20 20 | ..:context-window.131072........ |
| 854e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 36 0a 20 20 | ..............:input-cost.0.6... |
| 85500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 | ...................:output-cost. |
| 85520 | 34 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 32 2d | 4)......................(grok-2- |
| 85540 | 76 69 73 69 6f 6e 2d 31 32 31 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | vision-1212..................... |
| 85560 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 72 6f 6b 20 32 20 56 69 73 69 6f 6e 22 0a 20 20 | .:description."Grok.2.Vision"... |
| 85580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | ...................:capabilities |
| 855a0 | 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'(tool-use.json)............... |
| 855c0 | 20 20 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 27 28 22 69 6d 61 67 65 2f 6a 70 65 67 | .......:mime-types.'("image/jpeg |
| 855e0 | 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 | "."image/png"."image/gif"."image |
| 85600 | 2f 77 65 62 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f | /webp")......................:co |
| 85620 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 33 32 37 36 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntext-window.32768.............. |
| 85640 | 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 0a 20 20 20 20 20 20 20 20 20 20 | ........:input-cost.2........... |
| 85660 | 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 29 29 29 29 0a 20 | ...........:output-cost.10)))).. |
| 85680 | 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 78 41 49 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 | ."Register.an.xAI.backend.for.gp |
| 856a0 | 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 | tel.with.NAME...Keyword.argument |
| 856c0 | 73 3a 0a 0a 4b 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 | s:..KEY.is.a.variable.whose.valu |
| 856e0 | 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 | e.is.the.API.key,.or.function.th |
| 85700 | 61 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 | at.returns.the.key...STREAM.is.a |
| 85720 | 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 | .boolean.to.toggle.streaming.res |
| 85740 | 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 54 68 65 20 | ponses,.defaults.to.false...The. |
| 85760 | 6f 74 68 65 72 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 61 6c 6c 20 | other.keyword.arguments.are.all. |
| 85780 | 6f 70 74 69 6f 6e 61 6c 2e 20 20 46 6f 72 20 74 68 65 69 72 20 6d 65 61 6e 69 6e 67 73 0a 73 65 | optional...For.their.meanings.se |
| 857a0 | 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e 22 0a 20 20 28 64 65 63 6c 61 | e.`gptel-make-openai'."...(decla |
| 857c0 | 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 | re.(indent.1))...(let.((backend. |
| 857e0 | 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (gptel--make-openai............. |
| 85800 | 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......:name.name................ |
| 85820 | 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:host.host................... |
| 85840 | 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :header.header.................. |
| 85860 | 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 | .:key.key...................:mod |
| 85880 | 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c | els.(gptel--process-models.model |
| 858a0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 | s)...................:protocol.p |
| 858c0 | 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f | rotocol...................:endpo |
| 858e0 | 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | int.endpoint...................: |
| 85900 | 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | stream.stream................... |
| 85920 | 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 | :request-params.request-params.. |
| 85940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c | .................:curl-args.curl |
| 85960 | 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 63 6f | -args...................:url.(co |
| 85980 | 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e | ncat.protocol."://".host.endpoin |
| 859a0 | 74 29 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 | t)))).....(setf.(alist-get.name. |
| 859c0 | 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 | gptel--known-backends.nil.nil.#' |
| 859e0 | 65 71 75 61 6c 29 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 0a 0a | equal).backend).....backend))... |
| 85a00 | 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 29 0a 3b | (provide.'gptel-openai-extras).; |
| 85a20 | 3b 3b 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 2e 65 6c 20 65 6e 64 73 20 68 | ;;.gptel-openai-extras.el.ends.h |
| 85a40 | 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 | ere..;;.Local.Variables:.;;.byte |
| 85a60 | 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e | -compile-warnings:.(not.docstrin |
| 85a80 | 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gs).;;.End:..................... |
| 85aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85c00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 00 00 | gptel-0.9.8.5/gptel-context.el.. |
| 85c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85c60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 85c80 | 30 30 36 37 30 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 37 36 00 20 30 00 00 00 | 0067034.00000000000.014576..0... |
| 85ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85d00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 85d20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 85d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 85e00 | 3b 3b 3b 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 20 2d 2d 2d 20 43 6f 6e 74 65 78 74 | ;;;.gptel-context.el.---.Context |
| 85e20 | 20 61 67 67 72 65 67 61 74 6f 72 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 | .aggregator.for.gptel..-*-.lexic |
| 85e40 | 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 | al-binding:.t;.-*-..;;.Copyright |
| 85e60 | 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 | .(C).2023-2025..Karthik.Chikmaga |
| 85e80 | 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 64 61 65 64 73 69 64 6f 67 20 3c 63 6f 6e 74 61 | lur..;;.Author:.daedsidog.<conta |
| 85ea0 | 63 74 40 64 61 65 64 73 69 64 6f 67 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 | ct@daedsidog.com>.;;.Keywords:.c |
| 85ec0 | 6f 6e 76 65 6e 69 65 6e 63 65 2c 20 62 75 66 66 65 72 73 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 | onvenience,.buffers..;;.SPDX-Lic |
| 85ee0 | 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 | ense-Identifier:.GPL-3.0-or-late |
| 85f00 | 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 | r..;;.This.program.is.free.softw |
| 85f20 | 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 | are;.you.can.redistribute.it.and |
| 85f40 | 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 | /or.modify.;;.it.under.the.terms |
| 85f60 | 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .of.the.GNU.General.Public.Licen |
| 85f80 | 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 | se.as.published.by.;;.the.Free.S |
| 85fa0 | 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 | oftware.Foundation,.either.versi |
| 85fc0 | 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 | on.3.of.the.License,.or.;;.(at.y |
| 85fe0 | 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a | our.option).any.later.version... |
| 86000 | 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 | ;;.This.program.is.distributed.i |
| 86020 | 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 | n.the.hope.that.it.will.be.usefu |
| 86040 | 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 | l,.;;.but.WITHOUT.ANY.WARRANTY;. |
| 86060 | 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 | without.even.the.implied.warrant |
| 86080 | 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 | y.of.;;.MERCHANTABILITY.or.FITNE |
| 860a0 | 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 | SS.FOR.A.PARTICULAR.PURPOSE...Se |
| 860c0 | 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 | e.the.;;.GNU.General.Public.Lice |
| 860e0 | 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 | nse.for.more.details...;;.You.sh |
| 86100 | 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 | ould.have.received.a.copy.of.the |
| 86120 | 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 | .GNU.General.Public.License.;;.a |
| 86140 | 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c | long.with.this.program...If.not, |
| 86160 | 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 | .see.<https://www.gnu.org/licens |
| 86180 | 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 65 20 63 | es/>...;;;.Commentary:..;;.The.c |
| 861a0 | 6f 6e 74 65 78 74 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 6f 6e 76 65 6e 69 65 6e 74 6c | ontext.allows.you.to.convenientl |
| 861c0 | 79 20 63 72 65 61 74 65 20 63 6f 6e 74 65 78 74 73 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 | y.create.contexts.which.can.be.f |
| 861e0 | 65 64 0a 3b 3b 20 74 6f 20 67 70 74 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 3b 20 | ed.;;.to.gptel...;;;.Code:..;;;. |
| 86200 | 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 28 72 65 71 75 | -*-.lexical-binding:.t.-*-.(requ |
| 86220 | 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 | ire.'gptel).(require.'cl-lib)..( |
| 86240 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 6d 65 6e 75 20 22 67 70 74 | declare-function.gptel-menu."gpt |
| 86260 | 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | el-transient").(declare-function |
| 86280 | 20 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 20 22 64 69 72 65 64 22 29 | .dired-get-marked-files."dired") |
| 862a0 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6d 61 67 65 2d 66 69 6c 65 2d 6e 61 | .(declare-function.image-file-na |
| 862c0 | 6d 65 2d 72 65 67 65 78 70 20 22 69 6d 61 67 65 2d 66 69 6c 65 22 29 0a 28 64 65 63 6c 61 72 65 | me-regexp."image-file").(declare |
| 862e0 | 2d 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 2d 69 6d 61 67 65 20 22 69 6d 61 67 65 22 29 0a | -function.create-image."image"). |
| 86300 | 0a 28 64 65 66 66 61 63 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 68 69 67 68 6c 69 67 68 | .(defface.gptel-context-highligh |
| 86320 | 74 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 20 20 | t-face...'((((background.dark).. |
| 86340 | 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 67 72 | (min-colors.88)).:background."gr |
| 86360 | 61 79 34 22 20 3a 65 78 74 65 6e 64 20 74 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e | ay4".:extend.t).....(((backgroun |
| 86380 | 64 20 6c 69 67 68 74 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 29 20 3a 62 61 63 6b 67 | d.light).(min-colors.88)).:backg |
| 863a0 | 72 6f 75 6e 64 20 22 61 6c 69 63 65 20 62 6c 75 65 22 20 3a 65 78 74 65 6e 64 20 74 29 0a 20 20 | round."alice.blue".:extend.t)... |
| 863c0 | 20 20 28 74 20 3a 69 6e 68 65 72 69 74 20 6d 6f 64 65 2d 6c 69 6e 65 29 29 0a 20 20 22 46 61 63 | ..(t.:inherit.mode-line))..."Fac |
| 863e0 | 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 | e.used.to.highlight.gptel.contex |
| 86400 | 74 73 20 69 6e 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 | ts.in.buffers."...:group.'gptel) |
| 86420 | 0a 0a 28 64 65 66 66 61 63 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f | ..(defface.gptel-context-deletio |
| 86440 | 6e 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d | n-face...'((((class.color).(min- |
| 86460 | 63 6f 6c 6f 72 73 20 32 35 37 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a | colors.257).(background.light)). |
| 86480 | 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 66 66 65 65 65 65 22 20 3a 65 78 74 65 | .....:background."#ffeeee".:exte |
| 864a0 | 6e 64 20 74 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 | nd.t).....(((class.color).(min-c |
| 864c0 | 6f 6c 6f 72 73 20 38 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 | olors.88).(background.light))... |
| 864e0 | 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 66 66 64 64 64 64 22 20 3a 65 78 74 65 6e 64 | ...:background."#ffdddd".:extend |
| 86500 | 20 74 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c | .t).....(((class.color).(min-col |
| 86520 | 6f 72 73 20 38 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 | ors.88).(background.dark))...... |
| 86540 | 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 35 35 33 33 33 33 22 20 3a 65 78 74 65 6e 64 20 74 29 | :background."#553333".:extend.t) |
| 86560 | 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e | .....(((class.color)).:foregroun |
| 86580 | 64 20 22 72 65 64 22 20 3a 65 78 74 65 6e 64 20 74 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 | d."red".:extend.t))..."Face.used |
| 865a0 | 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 73 20 74 6f 20 | .to.highlight.gptel.contexts.to. |
| 865c0 | 62 65 20 64 65 6c 65 74 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 69 6e 20 67 70 74 | be.deleted...This.is.used.in.gpt |
| 865e0 | 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 | el.context.buffers."...:group.'g |
| 86600 | 70 74 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 72 61 | ptel)..(defvar.gptel-context-wra |
| 86620 | 70 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 6f | p-function.nil..."Function.to.fo |
| 86640 | 72 6d 61 74 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 20 73 65 6e 74 20 77 69 74 | rmat.the.context.string.sent.wit |
| 86660 | 68 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 22 29 0a 28 6d 61 6b 65 2d 6f 62 73 | h.the.gptel.request.").(make-obs |
| 86680 | 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 | olete-variable..'gptel-context-w |
| 866a0 | 72 61 70 2d 66 75 6e 63 74 69 6f 6e 0a 20 22 43 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 20 | rap-function.."Custom.functions. |
| 866c0 | 66 6f 72 20 77 72 61 70 70 69 6e 67 20 63 6f 6e 74 65 78 74 20 61 72 65 20 6e 6f 20 6c 6f 6e 67 | for.wrapping.context.are.no.long |
| 866e0 | 65 72 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 67 70 74 65 6c 2e 5c 0a 20 20 53 65 65 20 60 67 | er.supported.by.gptel.\...See.`g |
| 86700 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 27 20 66 6f | ptel-context--wrap-in-buffer'.fo |
| 86720 | 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 22 30 2e 39 2e 39 22 29 0a 0a 28 64 65 66 63 75 73 74 6f | r.details.".."0.9.9")..(defcusto |
| 86740 | 6d 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 20 | m.gptel-context-string-function. |
| 86760 | 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 74 72 69 6e 67 0a 20 20 22 46 75 6e 63 74 | #'gptel-context--string..."Funct |
| 86780 | 69 6f 6e 20 74 6f 20 70 72 65 70 61 72 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e | ion.to.prepare.the.context.strin |
| 867a0 | 67 20 73 65 6e 74 20 77 69 74 68 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 0a 0a | g.sent.with.the.gptel.request... |
| 867c0 | 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 | This.function.can.be.synchronous |
| 867e0 | 20 6f 72 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 61 6e 64 20 72 65 63 65 69 76 65 73 20 6f | .or.asynchronous,.and.receives.o |
| 86800 | 6e 65 20 6f 72 0a 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 20 72 65 73 70 65 63 74 69 76 65 6c 79 | ne.or.two.arguments.respectively |
| 86820 | 2e 0a 0a 53 79 6e 63 68 72 6f 6e 6f 75 73 3a 20 41 6e 20 61 6c 69 73 74 20 6f 66 20 63 6f 6e 74 | ...Synchronous:.An.alist.of.cont |
| 86840 | 65 78 74 73 20 77 69 74 68 20 62 75 66 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 28 74 68 65 20 | exts.with.buffers.or.files.(the. |
| 86860 | 63 6f 6e 74 65 78 74 0a 61 6c 69 73 74 29 2e 0a 41 73 79 6e 63 68 72 6f 6e 6f 75 73 3a 20 41 20 | context.alist)..Asynchronous:.A. |
| 86880 | 63 61 6c 6c 62 61 63 6b 20 74 6f 20 63 61 6c 6c 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 | callback.to.call.with.the.result |
| 868a0 | 2c 20 61 6e 64 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 6c 69 73 74 2e 0a 0a 54 68 65 20 63 6f | ,.and.the.context.alist...The.co |
| 868c0 | 6e 74 65 78 74 20 61 6c 69 73 74 20 69 73 20 73 74 72 75 63 74 75 72 65 64 20 61 73 20 66 6f 6c | ntext.alist.is.structured.as.fol |
| 868e0 | 6c 6f 77 73 3a 0a 0a 20 28 28 62 75 66 66 65 72 31 20 2e 20 28 6f 76 65 72 6c 61 79 31 20 6f 76 | lows:...((buffer1...(overlay1.ov |
| 86900 | 65 72 6c 61 79 32 29 0a 20 20 28 5c 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 0a 20 20 28 | erlay2)...(\"path/to/file\")...( |
| 86920 | 62 75 66 66 65 72 32 20 2e 20 28 6f 76 65 72 6c 61 79 33 20 6f 76 65 72 6c 61 79 34 20 6f 76 65 | buffer2...(overlay3.overlay4.ove |
| 86940 | 72 6c 61 79 35 29 29 0a 20 20 28 5c 22 70 61 74 68 2f 74 6f 2f 69 6d 61 67 65 2f 66 69 6c 65 5c | rlay5))...(\"path/to/image/file\ |
| 86960 | 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 29 29 29 0a 0a 45 61 63 68 20 | ".:mime.\"image/jpeg\")))..Each. |
| 86980 | 67 70 74 65 6c 20 5c 22 63 6f 6e 74 65 78 74 5c 22 20 69 73 20 65 69 74 68 65 72 20 61 20 66 69 | gptel.\"context\".is.either.a.fi |
| 869a0 | 6c 65 20 70 61 74 68 20 6f 72 20 61 6e 20 6f 76 65 72 6c 61 79 20 69 6e 20 61 0a 62 75 66 66 65 | le.path.or.an.overlay.in.a.buffe |
| 869c0 | 72 2e 20 20 45 61 63 68 20 6f 76 65 72 6c 61 79 20 63 6f 76 65 72 73 20 61 20 62 75 66 66 65 72 | r...Each.overlay.covers.a.buffer |
| 869e0 | 20 72 65 67 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 63 6f 6e 74 65 78 74 20 63 | .region.containing.the.context.c |
| 86a00 | 68 75 6e 6b 2e 20 20 54 68 69 73 20 69 73 20 61 63 63 65 73 73 69 62 6c 65 20 61 73 2c 20 66 6f | hunk...This.is.accessible.as,.fo |
| 86a20 | 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | r.example:...(with-current-buffe |
| 86a40 | 72 20 62 75 66 66 65 72 31 0a 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 | r.buffer1....(buffer-substring.( |
| 86a60 | 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 65 72 6c 61 79 31 29 0a 20 20 20 20 20 20 20 20 | overlay-start.overlay1)......... |
| 86a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 20 20 6f 76 65 72 | .............(overlay-end...over |
| 86aa0 | 6c 61 79 31 29 29 29 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 | lay1)))"...:group.'gptel...:type |
| 86ac0 | 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | .'function)..(defun.gptel-contex |
| 86ae0 | 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 | t-add-current-kill.(&optional.ar |
| 86b00 | 67 29 0a 20 20 22 41 64 64 20 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 74 6f 20 67 70 74 65 6c 2c | g)..."Add.current-kill.to.gptel, |
| 86b20 | 20 61 63 63 75 6d 75 6c 61 74 69 6e 67 20 69 66 20 61 72 67 20 69 73 20 6e 6f 6e 2d 6e 69 6c 22 | .accumulating.if.arg.is.non-nil" |
| 86b40 | 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 6b 69 | ...(interactive."P")...(let.((ki |
| 86b60 | 6c 6c 20 28 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 30 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d | ll.(current-kill.0))).....(with- |
| 86b80 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 | current-buffer.(get-buffer-creat |
| 86ba0 | 65 20 22 20 2a 67 70 74 65 6c 2d 6b 69 6c 6c 2d 72 69 6e 67 2d 63 6f 6e 74 65 78 74 2a 22 29 0a | e.".*gptel-kill-ring-context*"). |
| 86bc0 | 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b | ......(if.(not.arg)...........(k |
| 86be0 | 69 6c 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 | ill-region.(point-min).(point-ma |
| 86c00 | 78 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 | x)).........(goto-char.(point-ma |
| 86c20 | 78 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 62 70 29 0a 20 20 20 20 20 | x)).........(unless.(bobp)...... |
| 86c40 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 2d 2d 2d 2d 5c 6e 22 29 29 29 0a 20 20 20 20 20 | .....(insert."\n----\n")))...... |
| 86c60 | 20 28 69 6e 73 65 72 74 20 6b 69 6c 6c 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | .(insert.kill).......(gptel-cont |
| 86c80 | 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 | ext--add-region.(current-buffer) |
| 86ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 86cc0 | 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 | ..(point-min).(point-max))...... |
| 86ce0 | 20 28 6d 65 73 73 61 67 65 20 22 2a 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 2a 20 68 61 73 20 62 65 | .(message."*current-kill*.has.be |
| 86d00 | 65 6e 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 | en.added.as.context."))))..(defu |
| 86d20 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 | n.gptel-context-add.(&optional.a |
| 86d40 | 72 67 20 63 6f 6e 66 69 72 6d 29 0a 20 20 22 41 64 64 20 63 6f 6e 74 65 78 74 20 74 6f 20 67 70 | rg.confirm)..."Add.context.to.gp |
| 86d60 | 74 65 6c 20 69 6e 20 61 20 44 57 49 4d 20 66 61 73 68 69 6f 6e 2e 0a 0a 2d 20 49 66 20 61 20 72 | tel.in.a.DWIM.fashion...-.If.a.r |
| 86d80 | 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 64 64 20 74 68 65 20 73 65 6c 65 63 | egion.is.selected,.add.the.selec |
| 86da0 | 74 65 64 20 72 65 67 69 6f 6e 20 74 6f 20 74 68 65 0a 20 20 63 6f 6e 74 65 78 74 2e 20 20 49 66 | ted.region.to.the...context...If |
| 86dc0 | 20 74 68 65 72 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 | .there.is.already.a.gptel.contex |
| 86de0 | 74 20 61 74 20 70 6f 69 6e 74 2c 20 72 65 6d 6f 76 65 20 69 74 0a 20 20 69 6e 73 74 65 61 64 2e | t.at.point,.remove.it...instead. |
| 86e00 | 0a 0a 2d 20 49 66 20 69 6e 20 44 69 72 65 64 2c 20 61 64 64 20 6d 61 72 6b 65 64 20 66 69 6c 65 | ..-.If.in.Dired,.add.marked.file |
| 86e20 | 73 20 6f 72 20 66 69 6c 65 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 | s.or.file.at.point.to.the.contex |
| 86e40 | 74 2e 20 49 66 0a 20 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 64 | t..If...the.selection.includes.d |
| 86e60 | 69 72 65 63 74 6f 72 69 65 73 2c 20 61 64 64 20 61 6c 6c 20 74 68 65 69 72 20 66 69 6c 65 73 20 | irectories,.add.all.their.files. |
| 86e80 | 72 65 63 75 72 73 69 76 65 6c 79 2c 0a 20 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 | recursively,...prompting.the.use |
| 86ea0 | 72 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 69 66 20 63 61 6c 6c 65 64 20 69 6e 74 | r.for.confirmation.if.called.int |
| 86ec0 | 65 72 61 63 74 69 76 65 6c 79 20 6f 72 0a 20 20 43 4f 4e 46 49 52 4d 20 69 73 20 6e 6f 6e 2d 6e | eractively.or...CONFIRM.is.non-n |
| 86ee0 | 69 6c 2e 20 57 69 74 68 20 6e 65 67 61 74 69 76 65 20 70 72 65 66 69 78 20 41 52 47 2c 20 72 65 | il..With.negative.prefix.ARG,.re |
| 86f00 | 6d 6f 76 65 20 61 6c 6c 20 66 69 6c 65 73 20 66 72 6f 6d 0a 20 20 74 68 65 20 63 6f 6e 74 65 78 | move.all.files.from...the.contex |
| 86f20 | 74 20 69 6e 73 74 65 61 64 2e 0a 0a 2d 20 4f 74 68 65 72 77 69 73 65 20 61 64 64 20 74 68 65 20 | t.instead...-.Otherwise.add.the. |
| 86f40 | 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 20 20 | current.buffer.to.the.context... |
| 86f60 | 57 69 74 68 20 70 6f 73 69 74 69 76 65 0a 20 20 70 72 65 66 69 78 20 41 52 47 2c 20 70 72 6f 6d | With.positive...prefix.ARG,.prom |
| 86f80 | 70 74 20 66 6f 72 20 61 20 62 75 66 66 65 72 20 6e 61 6d 65 20 61 6e 64 20 61 64 64 20 69 74 20 | pt.for.a.buffer.name.and.add.it. |
| 86fa0 | 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 0a 0a 2d 20 57 69 74 68 20 6e 65 67 61 74 69 76 65 | to.the.context...-.With.negative |
| 86fc0 | 20 70 72 65 66 69 78 20 41 52 47 2c 20 72 65 6d 6f 76 65 20 61 6c 6c 20 67 70 74 65 6c 20 63 6f | .prefix.ARG,.remove.all.gptel.co |
| 86fe0 | 6e 74 65 78 74 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 20 20 62 75 66 66 65 72 | ntexts.from.the.current...buffer |
| 87000 | 2c 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 63 6f 6e 66 69 72 6d | ,.prompting.the.user.for.confirm |
| 87020 | 61 74 69 6f 6e 20 69 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 20 20 | ation.if.called.interactively... |
| 87040 | 6f 72 20 43 4f 4e 46 49 52 4d 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 69 6e 74 65 72 | or.CONFIRM.is.non-nil."...(inter |
| 87060 | 61 63 74 69 76 65 20 22 50 5c 6e 70 22 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 41 20 72 | active."P\np")...(cond....;;.A.r |
| 87080 | 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2e 0a 20 20 20 28 28 75 73 65 2d 72 65 67 69 | egion.is.selected.....((use-regi |
| 870a0 | 6f 6e 2d 70 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 | on-p).....(gptel-context--add-re |
| 870c0 | 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 | gion.(current-buffer)........... |
| 870e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d | ........................(region- |
| 87100 | 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | beginning)...................... |
| 87120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 28 | .............(region-end)).....( |
| 87140 | 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 | deactivate-mark).....(message."C |
| 87160 | 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 | urrent.region.added.as.context." |
| 87180 | 29 29 0a 20 20 20 3b 3b 20 49 66 20 69 6e 20 64 69 72 65 64 0a 20 20 20 28 28 64 65 72 69 76 65 | ))....;;.If.in.dired....((derive |
| 871a0 | 64 2d 6d 6f 64 65 2d 70 20 27 64 69 72 65 64 2d 6d 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 2a 20 | d-mode-p.'dired-mode).....(let*. |
| 871c0 | 28 28 66 69 6c 65 73 20 28 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 29 | ((files.(dired-get-marked-files) |
| 871e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 | )............(dirs.(cl-remove-if |
| 87200 | 2d 6e 6f 74 20 23 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 73 29 29 0a | -not.#'file-directory-p.files)). |
| 87220 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 70 20 28 3c 20 28 70 72 65 66 69 78 2d | ...........(remove-p.(<.(prefix- |
| 87240 | 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a 09 20 20 20 28 61 63 74 69 | numeric-value.arg).0)).....(acti |
| 87260 | 6f 6e 2d 66 6e 20 28 69 66 20 72 65 6d 6f 76 65 2d 70 0a 09 09 09 20 20 23 27 67 70 74 65 6c 2d | on-fn.(if.remove-p......#'gptel- |
| 87280 | 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 09 09 09 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | context-remove....#'gptel-contex |
| 872a0 | 74 2d 61 64 64 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 | t-add-file))).......(when.(or.re |
| 872c0 | 6d 6f 76 65 2d 70 20 28 6e 75 6c 6c 20 64 69 72 73 29 20 28 6e 75 6c 6c 20 63 6f 6e 66 69 72 6d | move-p.(null.dirs).(null.confirm |
| 872e0 | 29 0a 09 09 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 52 65 63 75 72 73 69 76 65 | )...(y-or-n-p.(format."Recursive |
| 87300 | 6c 79 20 61 64 64 20 66 69 6c 65 73 20 66 72 6f 6d 20 25 64 20 64 69 72 65 63 74 6f 72 25 73 3f | ly.add.files.from.%d.director%s? |
| 87320 | 20 22 0a 09 09 09 09 20 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 0a 09 09 09 09 20 20 28 69 66 | .".......(length.dirs).......(if |
| 87340 | 20 28 3d 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 20 31 29 20 22 79 22 20 22 69 65 73 22 29 29 | .(=.(length.dirs).1)."y"."ies")) |
| 87360 | 29 29 0a 09 28 6d 61 70 63 20 61 63 74 69 6f 6e 2d 66 6e 20 66 69 6c 65 73 29 29 29 29 0a 20 20 | ))..(mapc.action-fn.files))))... |
| 87380 | 20 3b 3b 20 49 66 20 69 6e 20 61 6e 20 69 6d 61 67 65 20 62 75 66 66 65 72 0a 20 20 20 28 28 61 | .;;.If.in.an.image.buffer....((a |
| 873a0 | 6e 64 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 69 6d 61 67 65 2d 6d 6f 64 65 29 0a | nd.(derived-mode-p.'image-mode). |
| 873c0 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 | .........(gptel--model-capable-p |
| 873e0 | 20 27 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e | .'media)..........(buffer-file-n |
| 87400 | 61 6d 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 66 20 28 61 6e 64 20 61 72 67 20 | ame)).....(funcall.(if.(and.arg. |
| 87420 | 28 3c 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 | (<.(prefix-numeric-value.arg).0) |
| 87440 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | )...............#'gptel-context- |
| 87460 | 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e | remove...............#'gptel-con |
| 87480 | 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 | text-add-file)...........(buffer |
| 874a0 | 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 3b 3b 20 4e 6f 20 72 65 67 69 6f 6e 20 69 73 | -file-name)))....;;.No.region.is |
| 874c0 | 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2e 0a | .selected,.and.ARG.is.positive.. |
| 874e0 | 20 20 20 28 28 61 6e 64 20 61 72 67 20 28 3e 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d | ...((and.arg.(>.(prefix-numeric- |
| 87500 | 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 65 | value.arg).0)).....(let*.((buffe |
| 87520 | 72 2d 6e 61 6d 65 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 43 68 6f 6f 73 65 20 62 75 66 66 | r-name.(read-buffer."Choose.buff |
| 87540 | 65 72 20 74 6f 20 61 64 64 20 61 73 20 63 6f 6e 74 65 78 74 3a 20 22 0a 20 20 20 20 20 20 20 20 | er.to.add.as.context:."......... |
| 87560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 | .............................(cu |
| 87580 | 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 | rrent-buffer).t))............(st |
| 875a0 | 61 72 74 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d | art.(with-current-buffer.buffer- |
| 875c0 | 6e 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 | name.(point-min)))............(e |
| 875e0 | 6e 64 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e | nd.(with-current-buffer.buffer-n |
| 87600 | 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d | ame.(point-max)))).......(gptel- |
| 87620 | 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 28 67 65 74 2d | context--add-region........(get- |
| 87640 | 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 20 73 74 61 72 74 20 65 6e 64 20 74 29 | buffer.buffer-name).start.end.t) |
| 87660 | 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 66 66 65 72 20 27 25 73 27 20 61 64 64 | .......(message."Buffer.'%s'.add |
| 87680 | 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 | ed.as.context.".buffer-name))).. |
| 876a0 | 20 20 3b 3b 20 4e 6f 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 | ..;;.No.region.is.selected,.and. |
| 876c0 | 41 52 47 20 69 73 20 6e 65 67 61 74 69 76 65 2e 0a 20 20 20 28 28 61 6e 64 20 61 72 67 20 28 3c | ARG.is.negative.....((and.arg.(< |
| 876e0 | 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a | .(prefix-numeric-value.arg).0)). |
| 87700 | 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 63 6f 6e 66 69 72 6d 29 0a 09 20 20 | ....(when.(or.(null.confirm).... |
| 87720 | 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 63 6f 6e 74 65 78 | ....(y-or-n-p."Remove.all.contex |
| 87740 | 74 73 20 66 72 6f 6d 20 74 68 69 73 20 62 75 66 66 65 72 3f 20 22 29 29 0a 20 20 20 20 20 20 28 | ts.from.this.buffer?.")).......( |
| 87760 | 6c 65 74 20 28 28 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 20 30 29 29 0a 20 20 20 20 20 | let.((removed-contexts.0))...... |
| 87780 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f 76 20 69 6e 0a 20 20 20 20 20 20 20 20 20 | ...(cl-loop.for.cov.in.......... |
| 877a0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f | ........(gptel-context--in-regio |
| 877c0 | 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 | n.(current-buffer).(point-min).( |
| 877e0 | 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 | point-max))..................do. |
| 87800 | 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c | (progn.......................(cl |
| 87820 | 2d 69 6e 63 66 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 | -incf.removed-contexts)......... |
| 87840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d | ..............(gptel-context-rem |
| 87860 | 6f 76 65 20 63 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 66 6f 72 | ove.cov))).........(message.(for |
| 87880 | 6d 61 74 20 22 25 64 20 63 6f 6e 74 65 78 74 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 | mat."%d.context%s.removed.from.c |
| 878a0 | 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | urrent.buffer."................. |
| 878c0 | 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 20 20 | .........removed-contexts....... |
| 878e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 72 65 6d 6f 76 65 | ...................(if.(=.remove |
| 87900 | 64 2d 63 6f 6e 74 65 78 74 73 20 31 29 20 22 22 20 22 73 22 29 29 29 29 29 29 0a 20 20 20 28 74 | d-contexts.1).""."s"))))))....(t |
| 87920 | 20 3b 20 44 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 28 69 66 20 28 67 70 74 | .;.Default.behavior.....(if.(gpt |
| 87940 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 28 70 | el-context--at-point).........(p |
| 87960 | 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 | rogn...........(gptel-context-re |
| 87980 | 6d 6f 76 65 20 28 63 61 72 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 | move.(car.(gptel-context--in-reg |
| 879a0 | 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ion.(current-buffer)............ |
| 879c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 879e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d | ....................(max.(point- |
| 87a00 | 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | min).(1-.(point))).............. |
| 87a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 87a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 | ..................(point)))).... |
| 87a60 | 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 6e 74 65 78 74 20 75 6e 64 65 72 20 70 | .......(message."Context.under.p |
| 87a80 | 6f 69 6e 74 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 22 29 29 0a 20 20 20 20 20 20 | oint.has.been.removed."))....... |
| 87aa0 | 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 | (gptel-context--add-region.(curr |
| 87ac0 | 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d | ent-buffer).(point-min).(point-m |
| 87ae0 | 61 78 29 20 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 75 72 72 65 6e 74 20 62 | ax).t).......(message."Current.b |
| 87b00 | 75 66 66 65 72 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 29 29 29 29 29 0a 0a 3b | uffer.added.as.context.")))))..; |
| 87b20 | 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 61 | ;;###autoload.(autoload.'gptel-a |
| 87b40 | 64 64 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 20 22 41 64 64 2f 72 65 6d 6f 76 65 20 72 | dd."gptel-context"."Add/remove.r |
| 87b60 | 65 67 69 6f 6e 73 20 6f 72 20 62 75 66 66 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 63 | egions.or.buffers.from.gptel's.c |
| 87b80 | 6f 6e 74 65 78 74 2e 22 20 74 29 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 61 64 64 | ontext.".t).(defalias.'gptel-add |
| 87ba0 | 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 29 0a 0a 28 64 65 66 75 6e 20 67 70 | .#'gptel-context-add)..(defun.gp |
| 87bc0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 28 70 61 74 68 | tel-context--add-text-file.(path |
| 87be0 | 29 0a 20 20 22 41 64 64 20 74 65 78 74 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 74 6f 20 63 6f | )..."Add.text.file.at.PATH.to.co |
| 87c00 | 6e 74 65 78 74 2e 22 0a 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 6c 69 73 74 20 70 61 74 68 | ntext."...(cl-pushnew.(list.path |
| 87c20 | 29 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 3a 74 65 73 74 20 23 27 65 | ).gptel-context--alist.:test.#'e |
| 87c40 | 71 75 61 6c 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 61 64 | qual)...(message."File.\"%s\".ad |
| 87c60 | 64 65 64 20 74 6f 20 63 6f 6e 74 65 78 74 2e 22 20 70 61 74 68 29 0a 20 20 70 61 74 68 29 0a 0a | ded.to.context.".path)...path).. |
| 87c80 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 62 69 6e 61 72 79 | (defun.gptel-context--add-binary |
| 87ca0 | 2d 66 69 6c 65 20 28 70 61 74 68 29 0a 20 20 22 41 64 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 | -file.(path)..."Add.binary.file. |
| 87cc0 | 61 74 20 50 41 54 48 20 74 6f 20 63 6f 6e 74 65 78 74 20 69 66 20 73 75 70 70 6f 72 74 65 64 2e | at.PATH.to.context.if.supported. |
| 87ce0 | 0a 52 65 74 75 72 6e 20 50 41 54 48 20 69 66 20 61 64 64 65 64 2c 20 6e 69 6c 20 69 66 20 69 67 | .Return.PATH.if.added,.nil.if.ig |
| 87d00 | 6e 6f 72 65 64 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 67 70 74 65 6c 2d 2d 6d 6f 64 | nored."...(if-let*.(((gptel--mod |
| 87d20 | 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 | el-capable-p.'media))........... |
| 87d40 | 20 20 28 6d 69 6d 65 20 28 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 | ..(mime.(mailcap-file-name-to-mi |
| 87d60 | 6d 65 2d 74 79 70 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 70 74 | me-type.path)).............((gpt |
| 87d80 | 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d 70 20 6d 69 6d 65 29 29 29 | el--model-mime-capable-p.mime))) |
| 87da0 | 0a 20 20 20 20 20 20 28 70 72 6f 67 31 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 70 | .......(prog1.path.........(cl-p |
| 87dc0 | 75 73 68 6e 65 77 20 28 6c 69 73 74 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 0a 20 20 | ushnew.(list.path.:mime.mime)... |
| 87de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | ..................gptel-context- |
| 87e00 | 2d 61 6c 69 73 74 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 28 6d | -alist.:test.#'equal).........(m |
| 87e20 | 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 61 64 64 65 64 20 74 6f 20 63 6f 6e | essage."File.\"%s\".added.to.con |
| 87e40 | 74 65 78 74 2e 22 20 70 61 74 68 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 6e 6f | text.".path)).....(message."Igno |
| 87e60 | 72 69 6e 67 20 75 6e 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 5c 22 25 | ring.unsupported.binary.file.\"% |
| 87e80 | 73 5c 22 2e 22 20 70 61 74 68 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | s\".".path).....nil))..(defun.gp |
| 87ea0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 28 70 61 74 68 | tel-context--add-directory.(path |
| 87ec0 | 20 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 6f 63 65 73 73 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e | .action)..."Process.all.files.in |
| 87ee0 | 20 64 69 72 65 63 74 6f 72 79 20 61 74 20 50 41 54 48 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 | .directory.at.PATH.according.to. |
| 87f00 | 41 43 54 49 4f 4e 2e 0a 41 43 54 49 4f 4e 20 73 68 6f 75 6c 64 20 62 65 20 65 69 74 68 65 72 20 | ACTION..ACTION.should.be.either. |
| 87f20 | 60 61 64 64 27 20 6f 72 20 60 72 65 6d 6f 76 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c | `add'.or.`remove'."...(let.((fil |
| 87f40 | 65 73 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 2d 72 65 63 75 72 73 69 76 65 6c 79 20 | es.(directory-files-recursively. |
| 87f60 | 70 61 74 68 20 22 2e 22 20 74 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 | path.".".t))).....(mapc.(lambda. |
| 87f80 | 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 | (file).............(unless.(file |
| 87fa0 | 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -directory-p.file).............. |
| 87fc0 | 20 28 70 63 61 73 65 2d 65 78 68 61 75 73 74 69 76 65 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 | .(pcase-exhaustive.action....... |
| 87fe0 | 20 20 20 20 20 20 20 20 20 20 28 27 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........('add................. |
| 88000 | 20 28 69 66 20 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 66 69 6c 65 29 | .(if.(gptel--file-binary-p.file) |
| 88020 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e | ......................(gptel-con |
| 88040 | 74 65 78 74 2d 2d 61 64 64 2d 62 69 6e 61 72 79 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 | text--add-binary-file.file)..... |
| 88060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 | ...............(gptel-context--a |
| 88080 | 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | dd-text-file.file)))............ |
| 880a0 | 20 20 20 20 20 28 27 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .....('remove..................( |
| 880c0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 66 69 6c 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | setf.(alist-get.file.gptel-conte |
| 880e0 | 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 20 23 27 65 71 75 61 6c 29 20 6e | xt--alist.nil.'remove.#'equal).n |
| 88100 | 69 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 73 29 0a 20 20 20 20 28 77 68 | il)))))...........files).....(wh |
| 88120 | 65 6e 20 28 65 71 20 61 63 74 69 6f 6e 20 27 72 65 6d 6f 76 65 29 0a 20 20 20 20 20 20 28 6d 65 | en.(eq.action.'remove).......(me |
| 88140 | 73 73 61 67 65 20 22 44 69 72 65 63 74 6f 72 79 20 5c 22 25 73 5c 22 20 72 65 6d 6f 76 65 64 20 | ssage."Directory.\"%s\".removed. |
| 88160 | 66 72 6f 6d 20 63 6f 6e 74 65 78 74 2e 22 20 70 61 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | from.context.".path))))..(defun. |
| 88180 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 20 28 70 61 74 68 29 0a 20 20 | gptel-context-add-file.(path)... |
| 881a0 | 22 41 64 64 20 74 68 65 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 74 6f 20 74 68 65 20 67 70 74 | "Add.the.file.at.PATH.to.the.gpt |
| 881c0 | 65 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 66 20 50 41 54 48 20 69 73 20 61 20 64 69 72 65 63 74 | el.context...If.PATH.is.a.direct |
| 881e0 | 6f 72 79 2c 20 72 65 63 75 72 73 69 76 65 6c 79 20 61 64 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 | ory,.recursively.add.all.files.i |
| 88200 | 6e 20 69 74 2e 0a 50 41 54 48 20 73 68 6f 75 6c 64 20 62 65 20 72 65 61 64 61 62 6c 65 20 61 73 | n.it..PATH.should.be.readable.as |
| 88220 | 20 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 43 68 6f 6f 73 65 20 | .text."...(interactive."fChoose. |
| 88240 | 66 69 6c 65 20 74 6f 20 61 64 64 20 74 6f 20 63 6f 6e 74 65 78 74 3a 20 22 29 0a 20 20 28 63 6f | file.to.add.to.context:.")...(co |
| 88260 | 6e 64 20 28 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 09 20 28 67 | nd.((file-directory-p.path)...(g |
| 88280 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 | ptel-context--add-directory.path |
| 882a0 | 20 27 61 64 64 29 29 0a 09 28 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 | .'add))..((gptel--file-binary-p. |
| 882c0 | 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 | path)..........(gptel-context--a |
| 882e0 | 64 64 2d 62 69 6e 61 72 79 2d 66 69 6c 65 20 70 61 74 68 29 29 0a 09 28 28 67 70 74 65 6c 2d 63 | dd-binary-file.path))..((gptel-c |
| 88300 | 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 70 61 74 68 29 29 29 29 0a 0a | ontext--add-text-file.path)))).. |
| 88320 | 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d | ;;;###autoload.(autoload.'gptel- |
| 88340 | 61 64 64 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 20 22 41 64 64 20 66 69 | add-file."gptel-context"."Add.fi |
| 88360 | 6c 65 73 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 20 74 29 0a 28 64 65 66 | les.to.gptel's.context.".t).(def |
| 88380 | 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 20 23 27 67 70 74 65 6c 2d 63 6f | alias.'gptel-add-file.#'gptel-co |
| 883a0 | 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f | ntext-add-file)..(defun.gptel-co |
| 883c0 | 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 29 | ntext-remove.(&optional.context) |
| 883e0 | 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 43 4f 4e 54 45 58 54 20 6f 76 65 72 6c 61 79 20 66 | ..."Remove.the.CONTEXT.overlay.f |
| 88400 | 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 78 74 73 20 6c 69 73 74 2e 0a 0a 49 66 20 43 4f 4e 54 45 | rom.the.contexts.list...If.CONTE |
| 88420 | 58 54 20 69 73 20 6e 69 6c 2c 20 72 65 6d 6f 76 65 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 | XT.is.nil,.removes.the.context.a |
| 88440 | 74 20 70 6f 69 6e 74 2e 0a 49 66 20 73 65 6c 65 63 74 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c | t.point..If.selection.is.active, |
| 88460 | 20 72 65 6d 6f 76 65 73 20 61 6c 6c 20 63 6f 6e 74 65 78 74 73 20 77 69 74 68 69 6e 20 73 65 6c | .removes.all.contexts.within.sel |
| 88480 | 65 63 74 69 6f 6e 2e 0a 49 66 20 43 4f 4e 54 45 58 54 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 | ection..If.CONTEXT.is.a.director |
| 884a0 | 79 2c 20 72 65 63 75 72 73 69 76 65 6c 79 20 72 65 6d 6f 76 65 73 20 61 6c 6c 20 66 69 6c 65 73 | y,.recursively.removes.all.files |
| 884c0 | 20 69 6e 20 69 74 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6f 76 65 72 6c 61 79 70 20 63 | .in.it."...(cond....((overlayp.c |
| 884e0 | 6f 6e 74 65 78 74 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 63 6f 6e 74 | ontext).....(delete-overlay.cont |
| 88500 | 65 78 74 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 51 75 61 64 72 61 74 69 63 20 63 6f 73 | ext).....;;.FIXME:.Quadratic.cos |
| 88520 | 74 20 77 68 65 6e 20 63 6c 65 61 72 69 6e 67 20 61 20 62 75 6e 63 68 20 6f 66 20 63 6f 6e 74 65 | t.when.clearing.a.bunch.of.conte |
| 88540 | 78 74 73 20 61 74 20 6f 6e 63 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 | xts.at.once.....(unless......... |
| 88560 | 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 6f 76 20 69 6e 20 28 61 6c 69 | (cl-loop..........for.ov.in.(ali |
| 88580 | 73 74 2d 67 65 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c 2d 63 6f | st-get.(current-buffer).gptel-co |
| 885a0 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 74 68 65 72 65 69 73 20 28 | ntext--alist)..........thereis.( |
| 885c0 | 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 | overlay-start.ov)).......(setf.( |
| 885e0 | 61 6c 69 73 74 2d 67 65 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c | alist-get.(current-buffer).gptel |
| 88600 | 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c | -context--alist.nil.'remove).nil |
| 88620 | 29 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 63 6f 6e 74 65 78 74 29 20 20 20 20 20 20 20 | )))....((stringp.context)....... |
| 88640 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 0a 20 | ............;file.or.directory.. |
| 88660 | 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 63 6f 6e 74 65 78 74 | ...(if.(file-directory-p.context |
| 88680 | 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 | ).........(gptel-context--add-di |
| 886a0 | 72 65 63 74 6f 72 79 20 63 6f 6e 74 65 78 74 20 27 72 65 6d 6f 76 65 29 0a 20 20 20 20 20 20 28 | rectory.context.'remove).......( |
| 886c0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 63 6f | setf.(alist-get.context.gptel-co |
| 886e0 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 20 23 27 65 71 75 61 6c | ntext--alist.nil.'remove.#'equal |
| 88700 | 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 | ).nil).......(message."File.\"%s |
| 88720 | 5c 22 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 6f 6e 74 65 78 74 2e 22 20 63 6f 6e 74 65 78 | \".removed.from.context.".contex |
| 88740 | 74 29 29 29 0a 20 20 20 28 28 72 65 67 69 6f 6e 2d 61 63 74 69 76 65 2d 70 29 0a 20 20 20 20 28 | t)))....((region-active-p).....( |
| 88760 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 78 74 73 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | when-let*.((contexts.(gptel-cont |
| 88780 | 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a | ext--in-region.(current-buffer). |
| 887a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 887c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 | ....................(region-begi |
| 887e0 | 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nning).......................... |
| 88800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 | ...........................(regi |
| 88820 | 6f 6e 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 74 | on-end)))).......(cl-loop.for.ct |
| 88840 | 78 20 69 6e 20 63 6f 6e 74 65 78 74 73 20 64 6f 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 | x.in.contexts.do.(delete-overlay |
| 88860 | 20 63 74 78 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | .ctx))))....(t.....(when-let*.(( |
| 88880 | 63 74 78 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a | ctx.(gptel-context--at-point))). |
| 888a0 | 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 63 74 78 29 29 29 29 29 0a 0a | ......(delete-overlay.ctx))))).. |
| 888c0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 | (defun.gptel-context-remove-all. |
| 888e0 | 28 26 6f 70 74 69 6f 6e 61 6c 20 76 65 72 62 6f 73 65 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c | (&optional.verbose)..."Remove.al |
| 88900 | 6c 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 66 20 56 45 52 42 4f 53 45 20 69 73 20 | l.gptel.context...If.VERBOSE.is. |
| 88920 | 6e 6f 6e 2d 6e 69 6c 2c 20 61 73 6b 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 61 6e | non-nil,.ask.for.confirmation.an |
| 88940 | 64 20 6d 65 73 73 61 67 65 0a 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 | d.message.afterwards."...(intera |
| 88960 | 63 74 69 76 65 20 28 6c 69 73 74 20 74 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 65 | ctive.(list.t))...(if.(null.gpte |
| 88980 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 76 65 | l-context--alist).......(when.ve |
| 889a0 | 72 62 6f 73 65 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 | rbose.(message."No.gptel.context |
| 889c0 | 20 73 6f 75 72 63 65 73 20 74 6f 20 72 65 6d 6f 76 65 2e 22 29 29 0a 20 20 20 20 28 77 68 65 6e | .sources.to.remove.")).....(when |
| 889e0 | 20 28 6f 72 20 28 6e 6f 74 20 76 65 72 62 6f 73 65 29 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 52 65 | .(or.(not.verbose).(y-or-n-p."Re |
| 88a00 | 6d 6f 76 65 20 61 6c 6c 20 63 6f 6e 74 65 78 74 3f 20 22 29 29 0a 20 20 20 20 20 20 28 63 6c 2d | move.all.context?.")).......(cl- |
| 88a20 | 6c 6f 6f 70 0a 20 20 20 20 20 20 20 66 6f 72 20 28 73 6f 75 72 63 65 20 2e 20 6f 76 73 29 20 69 | loop........for.(source...ovs).i |
| 88a40 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 69 66 | n.gptel-context--alist........if |
| 88a60 | 20 28 62 75 66 66 65 72 70 20 73 6f 75 72 63 65 29 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 3b | .(bufferp.source).do...........; |
| 88a80 | 42 75 66 66 65 72 73 20 61 6e 64 20 62 75 66 66 65 72 20 72 65 67 69 6f 6e 73 0a 20 20 20 20 20 | Buffers.and.buffer.regions...... |
| 88aa0 | 20 20 28 6d 61 70 63 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 6f | ..(mapc.#'gptel-context-remove.o |
| 88ac0 | 76 73 29 0a 20 20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | vs)........else.do.(gptel-contex |
| 88ae0 | 74 2d 72 65 6d 6f 76 65 20 73 6f 75 72 63 65 29 20 3b 66 69 6c 65 73 20 6f 72 20 6f 74 68 65 72 | t-remove.source).;files.or.other |
| 88b00 | 20 74 79 70 65 73 0a 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 28 73 65 74 71 20 67 | .types........finally.do.(setq.g |
| 88b20 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 | ptel-context--alist.nil))).....( |
| 88b40 | 77 68 65 6e 20 76 65 72 62 6f 73 65 20 28 6d 65 73 73 61 67 65 20 22 52 65 6d 6f 76 65 64 20 61 | when.verbose.(message."Removed.a |
| 88b60 | 6c 6c 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 2e 22 29 29 29 29 0a 0a | ll.gptel.context.sources.")))).. |
| 88b80 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 6d 61 6b 65 2d 6f 76 65 72 6c | (defun.gptel-context--make-overl |
| 88ba0 | 61 79 20 28 73 74 61 72 74 20 65 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 61 64 76 61 6e 63 65 29 | ay.(start.end.&optional.advance) |
| 88bc0 | 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 53 54 | ..."Highlight.the.region.from.ST |
| 88be0 | 41 52 54 20 74 6f 20 45 4e 44 2e 0a 0a 41 44 56 41 4e 43 45 20 63 6f 6e 74 72 6f 6c 73 20 74 68 | ART.to.END...ADVANCE.controls.th |
| 88c00 | 65 20 6f 76 65 72 6c 61 79 20 62 6f 75 6e 64 61 72 79 20 62 65 68 61 76 69 6f 72 2e 22 0a 20 20 | e.overlay.boundary.behavior."... |
| 88c20 | 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 73 74 61 | (let.((overlay.(make-overlay.sta |
| 88c40 | 72 74 20 65 6e 64 20 6e 69 6c 20 28 6e 6f 74 20 61 64 76 61 6e 63 65 29 20 61 64 76 61 6e 63 65 | rt.end.nil.(not.advance).advance |
| 88c60 | 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 65 76 | ))).....(overlay-put.overlay.'ev |
| 88c80 | 61 70 6f 72 61 74 65 20 74 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 | aporate.t).....(overlay-put.over |
| 88ca0 | 6c 61 79 20 27 66 61 63 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 68 69 67 68 6c 69 67 | lay.'face.'gptel-context-highlig |
| 88cc0 | 68 74 2d 66 61 63 65 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 | ht-face).....(overlay-put.overla |
| 88ce0 | 79 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 74 29 0a 20 20 20 20 28 70 75 73 68 20 6f 76 | y.'gptel-context.t).....(push.ov |
| 88d00 | 65 72 6c 61 79 20 28 61 6c 69 73 74 2d 67 65 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | erlay.(alist-get.(current-buffer |
| 88d20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 | )..............................g |
| 88d40 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 6f 76 65 72 6c 61 | ptel-context--alist)).....overla |
| 88d60 | 79 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | y))..;;;###autoload.(defun.gptel |
| 88d80 | 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 63 61 6c 6c 62 61 63 6b 20 64 61 74 61 2d 62 75 | -context--wrap.(callback.data-bu |
| 88da0 | 66 29 0a 20 20 22 41 64 64 20 72 65 71 75 65 73 74 20 63 6f 6e 74 65 78 74 20 74 6f 20 44 41 54 | f)..."Add.request.context.to.DAT |
| 88dc0 | 41 2d 42 55 46 20 61 6e 64 20 72 75 6e 20 43 41 4c 4c 42 41 43 4b 2e 0a 0a 44 41 54 41 2d 42 55 | A-BUF.and.run.CALLBACK...DATA-BU |
| 88de0 | 46 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 68 65 20 72 65 71 75 65 73 | F.is.the.buffer.where.the.reques |
| 88e00 | 74 20 70 72 6f 6d 70 74 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 2e 22 0a 20 20 28 69 66 20 | t.prompt.is.constructed."...(if. |
| 88e20 | 28 3d 20 28 63 61 72 20 28 66 75 6e 63 2d 61 72 69 74 79 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | (=.(car.(func-arity.gptel-contex |
| 88e40 | 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 29 29 20 32 29 0a 20 20 20 20 20 20 28 66 75 | t-string-function)).2).......(fu |
| 88e60 | 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 | ncall.gptel-context-string-funct |
| 88e80 | 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 20 28 | ion................(lambda.(c).( |
| 88ea0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 61 74 61 2d 62 75 66 0a 20 20 20 | with-current-buffer.data-buf.... |
| 88ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | .....................(gptel-cont |
| 88ee0 | 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 29 29 0a 20 20 20 20 20 20 20 20 | ext--wrap-in-buffer.c))......... |
| 88f00 | 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 | .........(funcall.callback)).... |
| 88f20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c | ............(gptel-context--coll |
| 88f40 | 65 63 74 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 | ect)).....(with-current-buffer.d |
| 88f60 | 61 74 61 2d 62 75 66 0a 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 20 28 67 70 74 65 | ata-buf.......(thread-last.(gpte |
| 88f80 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | l-context--collect)............. |
| 88fa0 | 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 | .......(funcall.gptel-context-st |
| 88fc0 | 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ring-function).................. |
| 88fe0 | 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 | ..(gptel-context--wrap-in-buffer |
| 89000 | 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 | ))).....(funcall.callback)))..(d |
| 89020 | 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 | efun.gptel-context--wrap-in-buff |
| 89040 | 65 72 20 28 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 | er.(context-string.&optional.met |
| 89060 | 68 6f 64 29 0a 20 20 22 49 6e 6a 65 63 74 20 43 4f 4e 54 45 58 54 2d 53 54 52 49 4e 47 20 74 6f | hod)..."Inject.CONTEXT-STRING.to |
| 89080 | 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 75 73 69 6e 67 20 4d 45 54 48 4f 44 2e 0a 0a 4d | .current.buffer.using.METHOD...M |
| 890a0 | 45 54 48 4f 44 20 69 73 20 65 69 74 68 65 72 20 73 79 73 74 65 6d 20 6f 72 20 75 73 65 72 2c 20 | ETHOD.is.either.system.or.user,. |
| 890c0 | 61 6e 64 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 | and.defaults.to.`gptel-use-conte |
| 890e0 | 78 74 27 2e 0a 54 68 69 73 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a | xt'..This.modifies.the.buffer.". |
| 89100 | 20 20 28 77 68 65 6e 20 28 6c 65 6e 67 74 68 3e 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 | ..(when.(length>.context-string. |
| 89120 | 30 29 0a 20 20 20 20 28 70 63 61 73 65 20 28 6f 72 20 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 75 | 0).....(pcase.(or.method.gptel-u |
| 89140 | 73 65 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 28 27 73 79 73 74 65 6d 0a 20 20 20 20 20 | se-context).......('system...... |
| 89160 | 20 20 28 69 66 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6e | ..(if.(gptel--model-capable-p.'n |
| 89180 | 6f 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 | osystem)............(gptel-conte |
| 891a0 | 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e | xt--wrap-in-buffer.context-strin |
| 891c0 | 67 20 27 75 73 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 2d 73 79 73 | g.'user)..........(if.gptel--sys |
| 891e0 | 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 | tem-message..............(cl-ety |
| 89200 | 70 65 63 61 73 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 | pecase.gptel--system-message.... |
| 89220 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ............(string............. |
| 89240 | 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a | ....(setq.gptel--system-message. |
| 89260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 67 70 | ......................(concat.gp |
| 89280 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 22 5c 6e 5c 6e 22 20 63 6f 6e 74 65 | tel--system-message."\n\n".conte |
| 892a0 | 78 74 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e | xt-string)))................(fun |
| 892c0 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 | ction.................(setq.gpte |
| 892e0 | 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--system-message............... |
| 89300 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 | ........(gptel--parse-directive. |
| 89320 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 72 61 77 29 29 0a 20 20 20 | gptel--system-message.'raw)).... |
| 89340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 | .............(gptel-context--wra |
| 89360 | 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 | p-in-buffer.context-string)).... |
| 89380 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............(list............... |
| 893a0 | 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 3b 63 | ..(setq.gptel--system-message.;c |
| 893c0 | 6f 6e 73 20 61 20 6e 65 77 20 6c 69 73 74 20 74 6f 20 61 76 6f 69 64 20 6d 75 74 61 74 69 6f 6e | ons.a.new.list.to.avoid.mutation |
| 893e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f | .......................(cons.(co |
| 89400 | 6e 63 61 74 20 28 63 61 72 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 | ncat.(car.gptel--system-message) |
| 89420 | 20 22 5c 6e 5c 6e 22 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 | ."\n\n".context-string)......... |
| 89440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 67 70 74 65 6c 2d 2d | ....................(cdr.gptel-- |
| 89460 | 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | system-message)))))............( |
| 89480 | 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 | setq.gptel--system-message.conte |
| 894a0 | 78 74 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 28 27 75 73 65 72 0a 20 20 20 20 20 | xt-string)))).......('user...... |
| 894c0 | 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 | ..(goto-char.(point-max))....... |
| 894e0 | 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 | .(text-property-search-backward. |
| 89500 | 27 67 70 74 65 6c 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d | 'gptel.nil.t)........(and.gptel- |
| 89520 | 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 | mode.............(looking-at.... |
| 89540 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5b 5c 6e 5b 3a 62 6c 61 6e 6b 3a 5d 5d | ..........(concat."[\n[:blank:]] |
| 89560 | 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 | *"......................(and-let |
| 89580 | 2a 20 28 28 70 72 65 66 69 78 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d | *.((prefix.(gptel-prompt-prefix- |
| 895a0 | 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | string))........................ |
| 895c0 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 70 | .........((not.(string-empty-p.p |
| 895e0 | 72 65 66 69 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | refix))))....................... |
| 89600 | 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 3f 3a 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 | .(concat."\\(?:".(regexp-quote.p |
| 89620 | 72 65 66 69 78 29 20 22 5c 5c 29 3f 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | refix)."\\)?")))).............(d |
| 89640 | 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 | elete-region.(match-beginning.0) |
| 89660 | 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | .(match-end.0)))........(insert. |
| 89680 | 22 5c 6e 22 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 22 5c 6e 5c 6e 22 29 29 29 29 29 0a | "\n".context-string."\n\n"))))). |
| 896a0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d | .(defun.gptel-context--collect-m |
| 896c0 | 65 64 69 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 22 43 6f 6c | edia.(&optional.contexts)..."Col |
| 896e0 | 6c 65 63 74 20 6d 65 64 69 61 20 43 4f 4e 54 45 58 54 53 2e 0a 0a 43 4f 4e 54 45 58 54 53 2c 20 | lect.media.CONTEXTS...CONTEXTS,. |
| 89700 | 77 68 69 63 68 20 61 72 65 20 74 79 70 69 63 61 6c 6c 79 20 70 61 74 68 73 20 74 6f 20 62 69 6e | which.are.typically.paths.to.bin |
| 89720 | 61 72 79 20 66 69 6c 65 73 2c 20 61 72 65 0a 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 64 20 61 6e | ary.files,.are.base64-encoded.an |
| 89740 | 64 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 | d.prepended.to.the.first.user.pr |
| 89760 | 6f 6d 70 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 69 6e | ompt."...(cl-loop.for.context.in |
| 89780 | 20 28 6f 72 20 63 6f 6e 74 65 78 74 73 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 | .(or.contexts.gptel-context--ali |
| 897a0 | 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 70 61 74 68 20 2e 20 70 72 6f 70 73 | st)............for.(path...props |
| 897c0 | 29 20 3d 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 61 6e 64 | ).=.context............when.(and |
| 897e0 | 20 28 73 74 72 69 6e 67 70 20 70 61 74 68 29 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 73 | .(stringp.path).(plist-get.props |
| 89800 | 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 6e | .:mime))............collect.(con |
| 89820 | 73 20 3a 6d 65 64 69 61 20 63 6f 6e 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 67 | s.:media.context)))..(cl-defun.g |
| 89840 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 62 75 66 66 65 72 | ptel-context--add-region.(buffer |
| 89860 | 20 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 20 26 6f 70 | .region-beginning.region-end.&op |
| 89880 | 74 69 6f 6e 61 6c 20 61 64 76 61 6e 63 65 29 0a 20 20 22 41 64 64 20 72 65 67 69 6f 6e 20 64 65 | tional.advance)..."Add.region.de |
| 898a0 | 6c 69 6d 69 74 65 64 20 62 79 20 52 45 47 49 4f 4e 2d 42 45 47 49 4e 4e 49 4e 47 2c 20 52 45 47 | limited.by.REGION-BEGINNING,.REG |
| 898c0 | 49 4f 4e 2d 45 4e 44 20 69 6e 20 42 55 46 46 45 52 20 61 73 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 | ION-END.in.BUFFER.as.context...I |
| 898e0 | 66 20 41 44 56 41 4e 43 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 63 6f 6e 74 65 78 | f.ADVANCE.is.non-nil,.the.contex |
| 89900 | 74 20 6f 76 65 72 6c 61 79 20 65 6e 76 65 6c 6f 70 65 73 20 63 68 61 6e 67 65 73 20 61 74 0a 74 | t.overlay.envelopes.changes.at.t |
| 89920 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 2e 22 0a 20 20 3b 3b 20 52 65 6d 6f | he.beginning.and.end."...;;.Remo |
| 89940 | 76 65 20 65 78 69 73 74 69 6e 67 20 63 6f 6e 74 65 78 74 73 20 69 6e 20 74 68 65 20 73 61 6d 65 | ve.existing.contexts.in.the.same |
| 89960 | 20 72 65 67 69 6f 6e 2c 20 69 66 20 61 6e 79 2e 0a 20 20 28 6d 61 70 63 20 23 27 67 70 74 65 6c | .region,.if.any....(mapc.#'gptel |
| 89980 | 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 | -context-remove.........(gptel-c |
| 899a0 | 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 62 75 66 66 65 72 20 72 65 67 69 6f 6e 2d | ontext--in-region.buffer.region- |
| 899c0 | 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 28 70 72 6f 67 31 20 | beginning.region-end))...(prog1. |
| 899e0 | 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 | (with-current-buffer.buffer..... |
| 89a00 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 6d 61 6b 65 2d 6f 76 65 72 | .......(gptel-context--make-over |
| 89a20 | 6c 61 79 20 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 20 | lay.region-beginning.region-end. |
| 89a40 | 61 64 76 61 6e 63 65 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 67 69 6f 6e | advance)).......(message."Region |
| 89a60 | 20 61 64 64 65 64 20 74 6f 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 2e 22 29 29 29 0a 0a 28 | .added.to.context.buffer.")))..( |
| 89a80 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 | defun.gptel-context--in-region.( |
| 89aa0 | 62 75 66 66 65 72 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 | buffer.start.end)..."Return.the. |
| 89ac0 | 6c 69 73 74 20 6f 66 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 20 69 6e 20 74 68 65 20 | list.of.context.overlays.in.the. |
| 89ae0 | 67 69 76 65 6e 20 72 65 67 69 6f 6e 2c 20 69 66 20 61 6e 79 2c 20 69 6e 20 42 55 46 46 45 52 2e | given.region,.if.any,.in.BUFFER. |
| 89b00 | 0a 53 54 41 52 54 20 61 6e 64 20 45 4e 44 20 73 69 67 6e 69 66 79 20 74 68 65 20 72 65 67 69 6f | .START.and.END.signify.the.regio |
| 89b20 | 6e 20 64 65 6c 69 6d 69 74 65 72 73 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | n.delimiters."...(with-current-b |
| 89b40 | 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e | uffer.buffer.....(cl-remove-if-n |
| 89b60 | 6f 74 20 28 6c 61 6d 62 64 61 20 28 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 | ot.(lambda.(ov).(overlay-get.ov. |
| 89b80 | 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'gptel-context))................ |
| 89ba0 | 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 73 74 61 72 74 20 65 6e 64 29 29 29 | .......(overlays-in.start.end))) |
| 89bc0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e | )..(defun.gptel-context--at-poin |
| 89be0 | 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c | t.()..."Return.the.context.overl |
| 89c00 | 61 79 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 63 6c 2d 66 69 6e 64 | ay.at.point,.if.any."...(cl-find |
| 89c20 | 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 | -if.(lambda.(ov).(overlay-get.ov |
| 89c40 | 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'gptel-context))............... |
| 89c60 | 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 | (overlays-at.(point))))..;;;###a |
| 89c80 | 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f | utoload.(defun.gptel-context--co |
| 89ca0 | 6c 6c 65 63 74 20 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 | llect.()..."Get.the.list.of.all. |
| 89cc0 | 61 63 74 69 76 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 2e 22 0a 20 20 3b 3b 20 47 | active.context.overlays."...;;.G |
| 89ce0 | 65 74 20 6f 6e 6c 79 20 74 68 65 20 6e 6f 6e 2d 64 65 67 65 6e 65 72 61 74 65 20 6f 76 65 72 6c | et.only.the.non-degenerate.overl |
| 89d00 | 61 79 73 2c 20 63 6f 6c 6c 65 63 74 20 74 68 65 6d 2c 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 | ays,.collect.them,.and.update.th |
| 89d20 | 65 20 6f 76 65 72 6c 61 79 73 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 28 73 65 74 71 20 67 70 74 | e.overlays.variable....(setq.gpt |
| 89d40 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f | el-context--alist.........(cl-lo |
| 89d60 | 6f 70 20 66 6f 72 20 28 62 75 66 20 2e 20 6f 76 73 29 20 69 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 | op.for.(buf...ovs).in.gptel-cont |
| 89d80 | 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | ext--alist..................if.( |
| 89da0 | 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer-live-p.buf).............. |
| 89dc0 | 20 20 20 20 20 20 69 66 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6f 76 20 69 6e 20 6f 76 73 20 | ......if.(cl-loop.for.ov.in.ovs. |
| 89de0 | 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 63 6f 6c 6c 65 63 74 20 | when.(overlay-start.ov).collect. |
| 89e00 | 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 | ov)....................collect.( |
| 89e20 | 63 6f 6e 73 20 62 75 66 20 69 74 29 20 69 6e 74 6f 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 | cons.buf.it).into.elements...... |
| 89e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............end............... |
| 89e60 | 20 20 20 65 6c 73 65 20 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 62 75 66 29 20 28 66 | ...else.if.(and.(stringp.buf).(f |
| 89e80 | 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ile-exists-p.buf)).............. |
| 89ea0 | 20 20 20 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 0a 20 20 20 | ....if.(plist-get.ovs.:mime).... |
| 89ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 6e 73 20 62 75 66 20 | ..............collect.(cons.buf. |
| 89ee0 | 6f 76 73 29 20 69 6e 74 6f 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ovs).into.elements.............. |
| 89f00 | 20 20 20 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 62 75 66 29 20 69 6e 74 6f | ....else.collect.(list.buf).into |
| 89f20 | 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c | .elements..................final |
| 89f40 | 6c 79 20 72 65 74 75 72 6e 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ly.return.elements)))..(defun.gp |
| 89f60 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 74 72 69 6e | tel-context--insert-buffer-strin |
| 89f80 | 67 20 28 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 22 49 6e 73 65 72 74 20 61 74 | g.(buffer.contexts)..."Insert.at |
| 89fa0 | 20 70 6f 69 6e 74 20 61 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 20 66 72 6f 6d 20 61 6c 6c | .point.a.context.string.from.all |
| 89fc0 | 20 43 4f 4e 54 45 58 54 53 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 20 20 28 6c 65 74 20 28 | .CONTEXTS.in.BUFFER.".....(let.( |
| 89fe0 | 28 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 | (is-top-snippet.t)...........(pr |
| 8a000 | 65 76 69 6f 75 73 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 | evious-line.1)).......(insert.(f |
| 8a020 | 6f 72 6d 61 74 20 22 49 6e 20 62 75 66 66 65 72 20 60 25 73 60 3a 22 20 28 62 75 66 66 65 72 2d | ormat."In.buffer.`%s`:".(buffer- |
| 8a040 | 6e 61 6d 65 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c | name.buffer))..............."\n\ |
| 8a060 | 6e 60 60 60 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 | n```".(gptel--strip-mode-suffix. |
| 8a080 | 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (buffer-local-value............. |
| 8a0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8a0c0 | 20 20 20 20 20 20 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 | .......'major-mode.buffer))..... |
| 8a0e0 | 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 | .........."\n").......(dolist.(c |
| 8a100 | 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 | ontext.contexts).........(let*.( |
| 8a120 | 28 73 74 61 72 74 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 63 6f 6e 74 65 78 74 29 29 0a | (start.(overlay-start.context)). |
| 8a140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 | ...............(end.(overlay-end |
| 8a160 | 20 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e | .context))................conten |
| 8a180 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 69 6e 65 6e 6f 20 63 6f 6c 75 6d 6e | t)...........(let.(lineno.column |
| 8a1a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | ).............(with-current-buff |
| 8a1c0 | 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 6f 75 74 | er.buffer...............(without |
| 8a1e0 | 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | -restriction.................(se |
| 8a200 | 74 71 20 6c 69 6e 65 6e 6f 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 73 74 | tq.lineno.(line-number-at-pos.st |
| 8a220 | 61 72 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c | art.t).......................col |
| 8a240 | 75 6d 6e 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 | umn.(save-excursion.(goto-char.s |
| 8a260 | 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tart)........................... |
| 8a280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 | ...................(current-colu |
| 8a2a0 | 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 | mn)).......................conte |
| 8a2c0 | 6e 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | nt.(buffer-substring-no-properti |
| 8a2e0 | 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | es.start.end)))).............;;. |
| 8a300 | 57 65 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 69 6e 73 65 72 74 20 61 20 6c 69 6e 65 20 | We.do.not.need.to.insert.a.line. |
| 8a320 | 6e 75 6d 62 65 72 20 69 6e 64 69 63 61 74 6f 72 20 69 66 20 77 65 20 68 61 76 65 20 74 77 6f 20 | number.indicator.if.we.have.two. |
| 8a340 | 72 65 67 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 20 74 68 65 20 73 61 | regions.............;;.on.the.sa |
| 8a360 | 6d 65 20 6c 69 6e 65 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 | me.line,.because.the.previous.re |
| 8a380 | 67 69 6f 6e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 70 75 74 20 74 68 65 | gion.should.have.already.put.the |
| 8a3a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 69 63 61 74 6f 72 2e 0a 20 20 20 20 20 | .............;;.indicator....... |
| 8a3c0 | 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 | .......(unless.(=.previous-line. |
| 8a3e0 | 6c 69 6e 65 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d | lineno)...............(unless.(= |
| 8a400 | 20 6c 69 6e 65 6e 6f 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 | .lineno.1).................(unle |
| 8a420 | 73 73 20 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ss.is-top-snippet............... |
| 8a440 | 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(insert."\n")).............. |
| 8a460 | 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 2e 2e 2e 20 28 4c 69 6e 65 20 25 64 | ...(insert.(format."....(Line.%d |
| 8a480 | 29 5c 6e 22 20 6c 69 6e 65 6e 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | )\n".lineno)))).............(set |
| 8a4a0 | 71 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 6c 69 6e 65 6e 6f 29 0a 20 20 20 20 20 20 20 20 | q.previous-line.lineno)......... |
| 8a4c0 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 63 6f 6c 75 6d 6e 29 20 28 69 6e 73 65 | ....(unless.(zerop.column).(inse |
| 8a4e0 | 72 74 20 22 20 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 73 2d 74 | rt."....")).............(if.is-t |
| 8a500 | 6f 70 2d 73 6e 69 70 70 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | op-snippet.................(setq |
| 8a520 | 20 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .is-top-snippet.nil)............ |
| 8a540 | 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 6c 69 6e 65 | ...(unless.(=.previous-line.line |
| 8a560 | 6e 6f 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | no).(insert."\n"))))...........( |
| 8a580 | 69 6e 73 65 72 74 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 | insert.content))).......(unless. |
| 8a5a0 | 28 3e 3d 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 28 63 61 72 20 28 6c 61 73 74 20 63 6f 6e 74 | (>=.(overlay-end.(car.(last.cont |
| 8a5c0 | 65 78 74 73 29 29 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e | exts))).(point-max)).........(in |
| 8a5e0 | 73 65 72 74 20 22 5c 6e 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e | sert."\n...")).......(insert."\n |
| 8a600 | 60 60 60 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 | ```")))..(defun.gptel-context--s |
| 8a620 | 74 72 69 6e 67 20 28 63 6f 6e 74 65 78 74 2d 61 6c 69 73 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 | tring.(context-alist)..."Format. |
| 8a640 | 74 68 65 20 61 67 67 72 65 67 61 74 65 64 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 61 73 20 | the.aggregated.gptel.context.as. |
| 8a660 | 61 6e 6e 6f 74 61 74 65 64 20 6d 61 72 6b 64 6f 77 6e 20 66 72 61 67 6d 65 6e 74 73 2e 0a 0a 52 | annotated.markdown.fragments...R |
| 8a680 | 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 2e 20 20 43 4f 4e 54 45 58 54 2d 41 4c 49 53 54 20 | eturns.a.string...CONTEXT-ALIST. |
| 8a6a0 | 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 63 6f 6e 74 65 78 | is.a.structure.containing.contex |
| 8a6c0 | 74 20 6f 76 65 72 6c 61 79 73 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d | t.overlays,.see.`gptel-context-- |
| 8a6e0 | 61 6c 69 73 74 27 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 | alist'."...(with-temp-buffer.... |
| 8a700 | 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 62 75 66 20 2e 20 6f 76 73 29 20 69 6e 20 63 6f 6e | .(cl-loop.for.(buf...ovs).in.con |
| 8a720 | 74 65 78 74 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 | text-alist..............if.(buff |
| 8a740 | 65 72 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 70 74 65 6c 2d | erp.buf)..............do.(gptel- |
| 8a760 | 63 6f 6e 74 65 78 74 2d 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 74 72 69 6e 67 20 62 75 | context--insert-buffer-string.bu |
| 8a780 | 66 20 6f 76 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 6e 6f 74 | f.ovs)..............else.if.(not |
| 8a7a0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 | .(plist-get.ovs.:mime))......... |
| 8a7c0 | 20 20 20 20 20 64 6f 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 | .....do.(gptel--insert-file-stri |
| 8a7e0 | 6e 67 20 62 75 66 29 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 69 6e 73 | ng.buf).end..............do.(ins |
| 8a800 | 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 | ert."\n\n")..............finally |
| 8a820 | 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 | .do..............(skip-chars-bac |
| 8a840 | 6b 77 61 72 64 20 22 5c 6e 5c 74 5c 72 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | kward."\n\t\r.")..............(d |
| 8a860 | 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | elete-region.(point).(point-max) |
| 8a880 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 62 70 29 0a 20 20 | )..............(unless.(bobp)... |
| 8a8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d | .............(goto-char.(point-m |
| 8a8c0 | 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 52 65 71 | in))................(insert."Req |
| 8a8e0 | 75 65 73 74 20 63 6f 6e 74 65 78 74 3a 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | uest.context:\n\n"))............ |
| 8a900 | 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ..finally.return...............( |
| 8a920 | 61 6e 64 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 | and.(>.(buffer-size).0)......... |
| 8a940 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a | ...........(buffer-string))))).. |
| 8a960 | 3b 3b 3b 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 69 6e 73 70 65 | ;;;.Major.mode.for.context.inspe |
| 8a980 | 63 74 69 6f 6e 20 62 75 66 66 65 72 73 0a 28 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 20 67 70 74 | ction.buffers.(defvar-keymap.gpt |
| 8a9a0 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 43 2d | el-context-buffer-mode-map..."C- |
| 8a9c0 | 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 6f 6e 66 69 72 6d 0a 20 | c.C-c".#'gptel-context-confirm.. |
| 8a9e0 | 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 0a | ."C-c.C-k".#'gptel-context-quit. |
| 8aa00 | 20 20 22 52 45 54 22 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 73 69 | .."RET".....#'gptel-context-visi |
| 8aa20 | 74 0a 20 20 22 6e 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 | t..."n".......#'gptel-context-ne |
| 8aa40 | 78 74 0a 20 20 22 70 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 | xt..."p".......#'gptel-context-p |
| 8aa60 | 72 65 76 69 6f 75 73 0a 20 20 22 64 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 | revious..."d".......#'gptel-cont |
| 8aa80 | 65 78 74 2d 66 6c 61 67 2d 64 65 6c 65 74 69 6f 6e 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 | ext-flag-deletion)..(define-deri |
| 8aaa0 | 76 65 64 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f | ved-mode.gptel-context-buffer-mo |
| 8aac0 | 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 0a | de.special-mode."gptel-context". |
| 8aae0 | 20 20 22 4d 61 6a 6f 72 2d 6d 6f 64 65 20 66 6f 72 20 69 6e 73 70 65 63 74 69 6e 67 20 63 6f 6e | .."Major-mode.for.inspecting.con |
| 8ab00 | 74 65 78 74 20 75 73 65 64 20 62 79 20 67 70 74 65 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 | text.used.by.gptel."...:group.'g |
| 8ab20 | 70 74 65 6c 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 | ptel...(add-hook.'post-command-h |
| 8ab40 | 6f 6f 6b 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e | ook.#'gptel-context--post-comman |
| 8ab60 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 | d.............nil.t)...(setq-loc |
| 8ab80 | 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 23 27 67 70 74 65 | al.revert-buffer-function.#'gpte |
| 8aba0 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 0a 0a 28 64 65 66 75 | l-context--buffer-setup))..(defu |
| 8abc0 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 20 28 26 | n.gptel-context--buffer-setup.(& |
| 8abe0 | 6f 70 74 69 6f 6e 61 6c 20 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 6f 6e 66 69 72 6d | optional._ignore-auto._noconfirm |
| 8ac00 | 29 0a 20 20 22 53 65 74 20 75 70 20 74 68 65 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 | )..."Set.up.the.gptel.context.bu |
| 8ac20 | 66 66 65 72 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 | ffer."...(with-current-buffer.(g |
| 8ac40 | 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | et-buffer-create."*gptel-context |
| 8ac60 | 2a 22 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f | *").....(gptel-context-buffer-mo |
| 8ac80 | 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 | de).....(let.((inhibit-read-only |
| 8aca0 | 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 | .t)).......(erase-buffer)....... |
| 8acc0 | 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 | (setq.header-line-format........ |
| 8ace0 | 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 | .....(substitute-command-keys... |
| 8ad00 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(concat.............. |
| 8ad20 | 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 66 6c 61 67 2d 64 65 6c 65 74 69 6f 6e | ."\\[gptel-context-flag-deletion |
| 8ad40 | 5d 3a 20 4d 61 72 6b 2f 75 6e 6d 61 72 6b 20 64 65 6c 65 74 69 6f 6e 2c 20 22 0a 20 20 20 20 20 | ]:.Mark/unmark.deletion,."...... |
| 8ad60 | 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 78 74 5d | ........."\\[gptel-context-next] |
| 8ad80 | 2f 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 72 65 76 69 6f 75 73 5d 3a 20 6e 65 78 | /\\[gptel-context-previous]:.nex |
| 8ada0 | 74 2f 70 72 65 76 69 6f 75 73 2c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b | t/previous,."..............."\\[ |
| 8adc0 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 73 69 74 5d 3a 20 76 69 73 69 74 2c 20 22 0a 20 | gptel-context-visit]:.visit,.".. |
| 8ade0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 | ............."\\[gptel-context-c |
| 8ae00 | 6f 6e 66 69 72 6d 5d 3a 20 61 70 70 6c 79 2c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onfirm]:.apply,."............... |
| 8ae20 | 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 5d 3a 20 63 61 6e 63 65 6c 2c | "\\[gptel-context-quit]:.cancel, |
| 8ae40 | 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 71 75 69 74 2d 77 69 6e 64 6f 77 | ."..............."\\[quit-window |
| 8ae60 | 5d 3a 20 71 75 69 74 22 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f | ]:.quit"))).......(save-excursio |
| 8ae80 | 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 73 20 67 70 74 65 6c 2d | n.........(let.((contexts.gptel- |
| 8aea0 | 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | context--alist))...........(if.( |
| 8aec0 | 6c 65 6e 67 74 68 3e 20 63 6f 6e 74 65 78 74 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | length>.contexts.0)............. |
| 8aee0 | 20 20 28 6c 65 74 20 28 62 65 67 20 6f 76 20 6c 31 20 6c 32 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(let.(beg.ov.l1.l2)........... |
| 8af00 | 20 20 20 20 20 20 28 70 63 61 73 65 2d 64 6f 6c 69 73 74 20 28 60 28 2c 62 75 66 20 2e 20 2c 6f | ......(pcase-dolist.(`(,buf...,o |
| 8af20 | 76 73 29 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | vs).contexts)................... |
| 8af40 | 28 69 66 20 28 62 75 66 66 65 72 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.(bufferp.buf)............... |
| 8af60 | 20 20 20 20 20 20 20 20 3b 3b 20 49 74 27 73 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 73 6f | ........;;.It's.a.buffer.with.so |
| 8af80 | 6d 65 20 6f 76 65 72 6c 61 79 28 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me.overlay(s)................... |
| 8afa0 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 6f 75 72 63 65 2d 6f 76 20 6f 76 73 29 0a 20 20 20 20 | ....(dolist.(source-ov.ovs)..... |
| 8afc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e | ....................(with-curren |
| 8afe0 | 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-buffer.buf.................... |
| 8b000 | 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 31 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d | .......(setq.l1.(line-number-at- |
| 8b020 | 70 6f 73 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 63 65 2d 6f 76 29 29 0a 20 | pos.(overlay-start.source-ov)).. |
| 8b040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c | ...............................l |
| 8b060 | 32 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 6f 76 65 72 6c 61 79 2d 65 | 2.(line-number-at-pos.(overlay-e |
| 8b080 | 6e 64 20 73 6f 75 72 63 65 2d 6f 76 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd.source-ov))))................ |
| 8b0a0 | 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f | .........(insert.(propertize.(fo |
| 8b0c0 | 72 6d 61 74 20 22 49 6e 20 62 75 66 66 65 72 20 25 73 20 28 6c 69 6e 65 73 20 25 64 2d 25 64 29 | rmat."In.buffer.%s.(lines.%d-%d) |
| 8b0e0 | 3a 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :\n\n".......................... |
| 8b100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 | ...........................(buff |
| 8b120 | 65 72 2d 6e 61 6d 65 20 62 75 66 29 20 6c 31 20 6c 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | er-name.buf).l1.l2)............. |
| 8b140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8b160 | 27 66 61 63 65 20 27 62 6f 6c 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'face.'bold))................... |
| 8b180 | 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 | ......(setq.beg.(point))........ |
| 8b1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d | .................(insert-buffer- |
| 8b1c0 | 73 75 62 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | substring....................... |
| 8b1e0 | 20 20 20 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 63 65 2d 6f 76 29 | ...buf.(overlay-start.source-ov) |
| 8b200 | 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 73 6f 75 72 63 65 2d 6f 76 29 29 0a 20 20 20 20 20 20 | .(overlay-end.source-ov))....... |
| 8b220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a | ..................(insert."\n"). |
| 8b240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 | ........................(setq.ov |
| 8b260 | 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | .(make-overlay.beg.(point))).... |
| 8b280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | .....................(overlay-pu |
| 8b2a0 | 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 2d 6f 76 29 0a 20 | t.ov.'gptel-context.source-ov).. |
| 8b2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d | .......................(overlay- |
| 8b2e0 | 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 6f 76 65 72 6c 61 79 20 74 29 0a 20 20 20 20 20 20 20 | put.ov.'gptel-overlay.t)........ |
| 8b300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 | .................(overlay-put.ov |
| 8b320 | 20 27 65 76 61 70 6f 72 61 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'evaporate.t).................. |
| 8b340 | 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 20 28 6d 61 6b 65 2d 73 65 70 61 72 61 | .......(insert."\n".(make-separa |
| 8b360 | 74 6f 72 2d 6c 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tor-line)."\n"))................ |
| 8b380 | 20 20 20 20 20 3b 3b 20 42 55 46 20 69 73 20 61 20 66 69 6c 65 20 70 61 74 68 2c 20 6e 6f 74 20 | .....;;.BUF.is.a.file.path,.not. |
| 8b3a0 | 61 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e | a.buffer.....................(in |
| 8b3c0 | 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 49 6e 20 66 69 6c | sert.(propertize.(format."In.fil |
| 8b3e0 | 65 20 25 73 3a 5c 6e 5c 6e 22 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f | e.%s:\n\n".(file-name-nondirecto |
| 8b400 | 72 79 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ry.buf))........................ |
| 8b420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 62 6f 6c 64 29 29 0a 20 | .................'face.'bold)).. |
| 8b440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f | ...................(setq.beg.(po |
| 8b460 | 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 | int)).....................(if-le |
| 8b480 | 74 2a 20 28 28 6d 69 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 29 | t*.((mime.(plist-get.ovs.:mime)) |
| 8b4a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 55 46 | ).........................;;.BUF |
| 8b4c0 | 20 69 73 20 61 20 62 69 6e 61 72 79 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .is.a.binary.file............... |
| 8b4e0 | 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 73 74 72 69 6e 67 2d 6d 61 74 | ..........(if-let*.(((string-mat |
| 8b500 | 63 68 2d 70 20 28 69 6d 61 67 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 72 65 67 65 78 70 29 20 62 75 | ch-p.(image-file-name-regexp).bu |
| 8b520 | 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f))............................. |
| 8b540 | 20 20 20 20 20 20 28 69 6d 67 20 28 63 72 65 61 74 65 2d 69 6d 61 67 65 20 62 75 66 29 29 29 0a | ......(img.(create-image.buf))). |
| 8b560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | ............................(ins |
| 8b580 | 65 72 74 2d 69 6d 61 67 65 20 69 6d 67 20 22 2a 22 29 20 3b 20 43 61 6e 20 62 65 20 64 69 73 70 | ert-image.img."*").;.Can.be.disp |
| 8b5a0 | 6c 61 79 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | layed........................... |
| 8b5c0 | 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (insert......................... |
| 8b5e0 | 20 20 20 62 75 66 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 4e 6f 20 70 72 65 76 | ...buf.".".(propertize."(No.prev |
| 8b600 | 69 65 77 20 66 6f 72 20 62 69 6e 61 72 79 20 66 69 6c 65 29 22 0a 20 20 20 20 20 20 20 20 20 20 | iew.for.binary.file)"........... |
| 8b620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8b640 | 20 20 20 20 20 27 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 20 3a 73 6c | .....'face.'(:inherit.shadow.:sl |
| 8b660 | 61 6e 74 20 69 74 61 6c 69 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ant.italic)))).................. |
| 8b680 | 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 62 75 66 29 29 | .....(insert-file-contents.buf)) |
| 8b6a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | .....................(goto-char. |
| 8b6c0 | 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (point-max)).................... |
| 8b6e0 | 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(insert."\n").................. |
| 8b700 | 20 20 20 28 73 65 74 71 20 6f 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 28 70 | ...(setq.ov.(make-overlay.beg.(p |
| 8b720 | 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 | oint))).....................(ove |
| 8b740 | 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 62 75 66 29 0a | rlay-put.ov.'gptel-context.buf). |
| 8b760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 | ....................(overlay-put |
| 8b780 | 20 6f 76 20 27 67 70 74 65 6c 2d 6f 76 65 72 6c 61 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 | .ov.'gptel-overlay.t)........... |
| 8b7a0 | 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 65 76 61 70 6f | ..........(overlay-put.ov.'evapo |
| 8b7c0 | 72 61 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | rate.t).....................(ins |
| 8b7e0 | 65 72 74 20 22 5c 6e 22 20 28 6d 61 6b 65 2d 73 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 29 20 22 | ert."\n".(make-separator-line)." |
| 8b800 | 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | \n"))).................(goto-cha |
| 8b820 | 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | r.(point-min))).............(ins |
| 8b840 | 65 72 74 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 | ert."There.are.no.active.gptel.c |
| 8b860 | 6f 6e 74 65 78 74 73 2e 22 29 29 29 29 29 0a 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 | ontexts."))))).....(display-buff |
| 8b880 | 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | er.(current-buffer)............. |
| 8b8a0 | 20 20 20 20 20 20 20 20 60 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d | ........`((display-buffer-reuse- |
| 8b8c0 | 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 | window........................di |
| 8b8e0 | 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 0a 20 | splay-buffer-reuse-mode-window.. |
| 8b900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 | ......................display-bu |
| 8b920 | 66 66 65 72 2d 62 65 6c 6f 77 2d 73 65 6c 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ffer-below-selected)............ |
| 8b940 | 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 23 27 73 | ...........(body-function...,#'s |
| 8b960 | 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elect-window)................... |
| 8b980 | 20 20 20 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 2e 20 2c 23 27 66 69 74 2d 77 69 6e 64 | ....(window-height...,#'fit-wind |
| 8b9a0 | 6f 77 2d 74 6f 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c | ow-to-buffer)))))..(defvar.gptel |
| 8b9c0 | 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 6e 69 6c 0a 20 20 22 | -context--buffer-reverse.nil..." |
| 8b9e0 | 4c 61 73 74 20 64 69 72 65 63 74 69 6f 6e 20 6f 66 20 63 75 72 73 6f 72 20 6d 6f 76 65 6d 65 6e | Last.direction.of.cursor.movemen |
| 8ba00 | 74 20 69 6e 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 6e | t.in.gptel.context.buffer...If.n |
| 8ba20 | 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 73 20 62 61 63 6b 77 61 72 64 20 6d 6f 76 65 6d | on-nil,.indicates.backward.movem |
| 8ba40 | 65 6e 74 2e 22 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | ent.")..(defalias.'gptel-context |
| 8ba60 | 2d 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 0a 20 20 28 6c 65 74 20 28 28 68 69 67 68 6c 69 67 68 | --post-command...(let.((highligh |
| 8ba80 | 74 2d 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 | t-overlay)).....(lambda.()...... |
| 8baa0 | 20 3b 3b 20 4f 6e 6c 79 20 75 70 64 61 74 65 20 69 66 20 70 6f 69 6e 74 20 6d 6f 76 65 64 20 6f | .;;.Only.update.if.point.moved.o |
| 8bac0 | 75 74 73 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 0a 20 20 20 20 20 | utside.the.current.region....... |
| 8bae0 | 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 | .(unless.(memq.highlight-overlay |
| 8bb00 | 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | .(overlays-at.(point)))......... |
| 8bb20 | 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 | (let.((context-overlay.......... |
| 8bb40 | 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6f 76 20 69 6e 20 28 6f 76 65 72 6c 61 | ......(cl-loop.for.ov.in.(overla |
| 8bb60 | 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ys-at.(point)).................. |
| 8bb80 | 20 20 20 20 20 20 20 74 68 65 72 65 69 73 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 | .......thereis.(and.(overlay-get |
| 8bba0 | 20 6f 76 20 27 67 70 74 65 6c 2d 6f 76 65 72 6c 61 79 29 20 6f 76 29 29 29 29 0a 20 20 20 20 20 | .ov.'gptel-overlay).ov))))...... |
| 8bbc0 | 20 20 20 20 20 28 77 68 65 6e 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 | .....(when.highlight-overlay.... |
| 8bbe0 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 68 69 67 68 6c 69 67 68 74 2d | .........(overlay-put.highlight- |
| 8bc00 | 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 | overlay.'face.nil))...........(w |
| 8bc20 | 68 65 6e 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 | hen.context-overlay............. |
| 8bc40 | 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 20 27 66 61 | (overlay-put.context-overlay.'fa |
| 8bc60 | 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | ce.'highlight))...........(setq. |
| 8bc80 | 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 | highlight-overlay.context-overla |
| 8bca0 | 79 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 | y))))))..(defun.gptel-context-vi |
| 8bcc0 | 73 69 74 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f | sit.()..."Display.the.location.o |
| 8bce0 | 66 20 74 68 69 73 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 20 69 6e 20 69 74 | f.this.gptel.context.chunk.in.it |
| 8bd00 | 73 20 6f 72 69 67 69 6e 61 6c 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | s.original.buffer."...(interacti |
| 8bd20 | 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 6c | ve)...(let.((ov-here.(car.(overl |
| 8bd40 | 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 | ays-at.(point))))).....(if-let*. |
| 8bd60 | 28 28 73 6f 75 72 63 65 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 2d 68 65 72 65 20 27 67 | ((source.(overlay-get.ov-here.'g |
| 8bd80 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 | ptel-context))...............(bu |
| 8bda0 | 66 20 28 69 66 20 28 6f 76 65 72 6c 61 79 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 | f.(if.(overlayp.source)......... |
| 8bdc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 73 | ...............(overlay-buffer.s |
| 8bde0 | 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e | ource)......................(fin |
| 8be00 | 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 73 6f 75 72 63 65 29 29 29 0a 20 20 20 20 20 20 | d-file-noselect.source)))....... |
| 8be20 | 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6f 76 65 72 | ........(offset.(-.(point).(over |
| 8be40 | 6c 61 79 2d 73 74 61 72 74 20 6f 76 2d 68 65 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 | lay-start.ov-here)))).........(w |
| 8be60 | 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 28 64 69 73 70 6c 61 79 2d 62 75 66 | ith-selected-window.(display-buf |
| 8be80 | 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 | fer.buf)...........(goto-char.(i |
| 8bea0 | 66 20 28 6f 76 65 72 6c 61 79 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.(overlayp.source)............. |
| 8bec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 | .............(overlay-start.sour |
| 8bee0 | 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e | ce)........................(poin |
| 8bf00 | 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 | t-min)))...........(forward-char |
| 8bf20 | 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 29 29 0a 20 | .offset)...........(recenter)).. |
| 8bf40 | 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 73 6f 75 72 63 65 20 6c 6f 63 61 74 69 6f | .....(message."No.source.locatio |
| 8bf60 | 6e 20 66 6f 72 20 74 68 69 73 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 2e 22 | n.for.this.gptel.context.chunk." |
| 8bf80 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 78 74 20 | ))))..(defun.gptel-context-next. |
| 8bfa0 | 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 6e 65 78 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 | ()..."Move.to.next.gptel.context |
| 8bfc0 | 20 63 68 75 6e 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 | .chunk."...(interactive)...(let. |
| 8bfe0 | 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 | ((ov-here.(car.(overlays-at.(poi |
| 8c000 | 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 73 74 61 72 74 20 28 6e 65 78 74 | nt)))).........(next-start.(next |
| 8c020 | 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 28 | -overlay-change.(point)))).....( |
| 8c040 | 77 68 65 6e 20 28 61 6e 64 20 28 2f 3d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 6e 65 78 74 2d 73 | when.(and.(/=.(point-max).next-s |
| 8c060 | 74 61 72 74 29 20 6f 76 2d 68 65 72 65 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 77 65 72 65 20 | tart).ov-here).......;;.We.were. |
| 8c080 | 69 6e 73 69 64 65 20 74 68 65 20 6f 76 65 72 6c 61 79 2c 20 73 6f 20 77 65 20 77 61 6e 74 20 74 | inside.the.overlay,.so.we.want.t |
| 8c0a0 | 68 65 20 6e 65 78 74 20 6f 76 65 72 6c 61 79 20 63 68 61 6e 67 65 2c 20 77 68 69 63 68 0a 20 20 | he.next.overlay.change,.which... |
| 8c0c0 | 20 20 20 20 3b 3b 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 | ....;;.would.be.the.start.of.the |
| 8c0e0 | 20 6e 65 78 74 20 6f 76 65 72 6c 61 79 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 2d | .next.overlay........(setq.next- |
| 8c100 | 73 74 61 72 74 20 28 6e 65 78 74 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 6e 65 78 74 2d | start.(next-overlay-change.next- |
| 8c120 | 73 74 61 72 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 2f 3d 20 6e 65 78 74 2d 73 74 61 72 | start))).....(when.(/=.next-star |
| 8c140 | 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c | t.(point-max)).......(setq.gptel |
| 8c160 | 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 6e 69 6c 29 0a 20 20 | -context--buffer-reverse.nil)... |
| 8c180 | 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 2d 73 74 61 72 74 29 0a 20 20 20 20 20 | ....(goto-char.next-start)...... |
| 8c1a0 | 20 28 72 65 63 65 6e 74 65 72 20 28 66 6c 6f 6f 72 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 | .(recenter.(floor.(window-height |
| 8c1c0 | 29 20 34 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 | ).4)))))..(defun.gptel-context-p |
| 8c1e0 | 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 | revious.()..."Move.to.previous.g |
| 8c200 | 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 | ptel.context.chunk."...(interact |
| 8c220 | 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 | ive)...(let.((ov-here.(car.(over |
| 8c240 | 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6f 76 | lays-at.(point))))).....(when.ov |
| 8c260 | 2d 68 65 72 65 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 | -here.(goto-char.(overlay-start. |
| 8c280 | 6f 76 2d 68 65 72 65 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 76 69 6f 75 73 2d 63 | ov-here))).....(let.((previous-c |
| 8c2a0 | 6f 6e 74 65 78 74 2d 70 6f 73 20 28 70 72 65 76 69 6f 75 73 2d 6f 76 65 72 6c 61 79 2d 63 68 61 | ontext-pos.(previous-overlay-cha |
| 8c2c0 | 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nge............................. |
| 8c2e0 | 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 | .....(previous-overlay-change.(p |
| 8c300 | 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 50 72 65 76 65 6e 74 20 70 6f 69 6e 74 | oint))))).......;;.Prevent.point |
| 8c320 | 20 66 72 6f 6d 20 6a 75 6d 70 69 6e 67 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 | .from.jumping.to.the.start.of.th |
| 8c340 | 65 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 | e.buffer........(unless.(=.previ |
| 8c360 | 6f 75 73 2d 63 6f 6e 74 65 78 74 2d 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | ous-context-pos.(point-min)).... |
| 8c380 | 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 65 76 69 6f 75 73 2d 63 6f 6e 74 65 78 74 | .....(goto-char.previous-context |
| 8c3a0 | 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 28 66 6c 6f 6f 72 20 28 | -pos).........(recenter.(floor.( |
| 8c3c0 | 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 29 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 | window-height).4)).........(setq |
| 8c3e0 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 74 | .gptel-context--buffer-reverse.t |
| 8c400 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 66 6c 61 67 | )))))..(defun.gptel-context-flag |
| 8c420 | 2d 64 65 6c 65 74 69 6f 6e 20 28 29 0a 20 20 22 4d 61 72 6b 20 67 70 74 65 6c 20 63 6f 6e 74 65 | -deletion.()..."Mark.gptel.conte |
| 8c440 | 78 74 20 63 68 75 6e 6b 20 61 74 20 70 6f 69 6e 74 20 66 6f 72 20 72 65 6d 6f 76 61 6c 2e 22 0a | xt.chunk.at.point.for.removal.". |
| 8c460 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6f 76 65 72 6c 61 | ..(interactive)...(let*.((overla |
| 8c480 | 79 73 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 | ys.(if.(use-region-p)........... |
| 8c4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 72 65 67 69 6f | .............(overlays-in.(regio |
| 8c4c0 | 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 | n-beginning).(region-end))...... |
| 8c4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f | ................(overlays-at.(po |
| 8c500 | 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 69 6f 6e 2d 6f 76 29 0a 20 | int))))..........(deletion-ov).. |
| 8c520 | 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 64 2d 6f 76 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 | ........(marked-ovs.(cl-remove-i |
| 8c540 | 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 | f-not.(lambda.(ov).(overlay-get. |
| 8c560 | 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 29 | ov.'gptel-context-deletion-mark) |
| 8c580 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 8c5a0 | 20 20 20 20 20 20 20 20 20 6f 76 65 72 6c 61 79 73 29 29 29 0a 20 20 20 20 28 69 66 20 6d 61 72 | .........overlays))).....(if.mar |
| 8c5c0 | 6b 65 64 2d 6f 76 73 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 64 65 6c 65 74 65 2d 6f | ked-ovs.........(mapc.#'delete-o |
| 8c5e0 | 76 65 72 6c 61 79 20 6d 61 72 6b 65 64 2d 6f 76 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 | verlay.marked-ovs).......(save-e |
| 8c600 | 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 6f 76 65 | xcursion.........(dolist.(ov.ove |
| 8c620 | 72 6c 61 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d | rlays)...........(when.(overlay- |
| 8c640 | 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 | get.ov.'gptel-context).......... |
| 8c660 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 | ...(goto-char.(overlay-start.ov) |
| 8c680 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 | ).............(setq.deletion-ov. |
| 8c6a0 | 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 | (make-overlay.(overlay-start.ov) |
| 8c6c0 | 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(overlay-end.ov)))............. |
| 8c6e0 | 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 67 70 74 65 6c 2d | (overlay-put.deletion-ov.'gptel- |
| 8c700 | 63 6f 6e 74 65 78 74 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 | context.(overlay-get.ov.'gptel-c |
| 8c720 | 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | ontext)).............(overlay-pu |
| 8c740 | 74 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 70 72 69 6f 72 69 74 79 20 2d 38 30 29 0a 20 20 20 | t.deletion-ov.'priority.-80).... |
| 8c760 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 65 6c 65 74 69 6f 6e 2d 6f | .........(overlay-put.deletion-o |
| 8c780 | 76 20 27 66 61 63 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f 6e 2d | v.'face.'gptel-context-deletion- |
| 8c7a0 | 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 | face).............(overlay-put.d |
| 8c7c0 | 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 | eletion-ov.'gptel-context-deleti |
| 8c7e0 | 6f 6e 2d 6d 61 72 6b 20 74 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 | on-mark.t))))).....(if.(use-regi |
| 8c800 | 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a | on-p).........(deactivate-mark). |
| 8c820 | 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d | ......(if.gptel-context--buffer- |
| 8c840 | 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | reverse...........(gptel-context |
| 8c860 | 2d 70 72 65 76 69 6f 75 73 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | -previous).........(gptel-contex |
| 8c880 | 74 2d 6e 65 78 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | t-next)))))..(defun.gptel-contex |
| 8c8a0 | 74 2d 71 75 69 74 20 28 29 0a 20 20 22 43 61 6e 63 65 6c 20 70 65 6e 64 69 6e 67 20 6f 70 65 72 | t-quit.()..."Cancel.pending.oper |
| 8c8c0 | 61 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 67 70 74 65 6c 27 73 20 6d 65 6e | ations.and.return.to.gptel's.men |
| 8c8e0 | 75 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 71 75 69 74 2d 77 69 6e 64 | u."...(interactive)...(quit-wind |
| 8c900 | 6f 77 29 0a 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 | ow)...(call-interactively.#'gpte |
| 8c920 | 6c 2d 6d 65 6e 75 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 | l-menu))..(defun.gptel-context-c |
| 8c940 | 6f 6e 66 69 72 6d 20 28 29 0a 20 20 22 43 6f 6e 66 69 72 6d 20 70 65 6e 64 69 6e 67 20 6f 70 65 | onfirm.()..."Confirm.pending.ope |
| 8c960 | 72 61 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 67 70 74 65 6c 27 73 20 6d 65 | rations.and.return.to.gptel's.me |
| 8c980 | 6e 75 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 44 65 6c 65 74 65 | nu."...(interactive)...;;.Delete |
| 8c9a0 | 20 61 6c 6c 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 20 74 68 61 74 20 68 | .all.the.context.overlays.that.h |
| 8c9c0 | 61 76 65 20 62 65 65 6e 20 6d 61 72 6b 65 64 20 66 6f 72 20 64 65 6c 65 74 69 6f 6e 2e 0a 20 20 | ave.been.marked.for.deletion.... |
| 8c9e0 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 73 0a 20 20 20 20 | (when-let*.((deletion-marks..... |
| 8ca00 | 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 | ...........(delq.nil.(mapcar.... |
| 8ca20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | .......................(lambda.( |
| 8ca40 | 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ov)............................. |
| 8ca60 | 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (and............................ |
| 8ca80 | 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | ..(overlay-get.ov.'gptel-context |
| 8caa0 | 2d 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -deletion-mark)................. |
| 8cac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 | .............(overlay-get.ov.'gp |
| 8cae0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-context))).................. |
| 8cb00 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e | .........(overlays-in.(point-min |
| 8cb20 | 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 23 27 67 | ).(point-max)))))).....(mapc.#'g |
| 8cb40 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 | ptel-context-remove.deletion-mar |
| 8cb60 | 6b 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 | ks).....(gptel-context--collect) |
| 8cb80 | 20 20 20 20 20 20 20 20 20 20 20 3b 55 70 64 61 74 65 20 63 6f 6e 74 65 78 74 73 20 61 6e 64 20 | ...........;Update.contexts.and. |
| 8cba0 | 72 65 76 65 72 74 20 62 75 66 66 65 72 20 28 23 34 38 32 29 0a 20 20 20 20 28 72 65 76 65 72 74 | revert.buffer.(#482).....(revert |
| 8cbc0 | 2d 62 75 66 66 65 72 29 29 0a 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 29 | -buffer))...(gptel-context-quit) |
| 8cbe0 | 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 3b 3b 3b 20 | )..(provide.'gptel-context).;;;. |
| 8cc00 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 2e 0a 00 00 00 00 | gptel-context.el.ends.here...... |
| 8cc20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cc40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cc60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cc80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ccc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cd00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cd20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cdc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ce00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 4e 45 57 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8.5/NEWS.............. |
| 8ce20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ce40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8ce60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 8ce80 | 30 30 33 34 36 31 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 31 35 30 00 20 30 00 00 00 | 0034610.00000000000.012150..0... |
| 8cea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 8cf20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 8cf40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d000 | 23 20 2d 2a 2d 20 6d 6f 64 65 3a 20 6f 72 67 3b 20 2d 2a 2d 0a 0a 2a 20 30 2e 39 2e 38 2e 35 20 | #.-*-.mode:.org;.-*-..*.0.9.8.5. |
| 8d020 | 32 30 32 35 2d 30 36 2d 31 31 0a 0a 2a 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 0a | 2025-06-11..**.Breaking.changes. |
| 8d040 | 0a 2d 20 7e 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 7e | .-.~gptel-org-branching-context~ |
| 8d060 | 20 69 73 20 6e 6f 77 20 61 20 67 6c 6f 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 20 20 49 74 20 77 | .is.now.a.global.variable...It.w |
| 8d080 | 61 73 0a 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 | as...buffer-local.by.default.in. |
| 8d0a0 | 70 61 73 74 20 72 65 6c 65 61 73 65 73 2e 0a 0a 2d 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | past.releases...-.The.following. |
| 8d0c0 | 6d 6f 64 65 6c 73 20 68 61 76 65 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 | models.have.been.removed.from.th |
| 8d0e0 | 65 20 64 65 66 61 75 6c 74 20 43 68 61 74 47 50 54 20 62 61 63 6b 65 6e 64 3a 0a 20 20 2d 20 7e | e.default.ChatGPT.backend:...-.~ |
| 8d100 | 6f 31 2d 70 72 65 76 69 65 77 7e 3a 20 75 73 65 20 7e 6f 31 7e 20 69 6e 73 74 65 61 64 2e 0a 20 | o1-preview~:.use.~o1~.instead... |
| 8d120 | 20 2d 20 7e 67 70 74 2d 34 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 7e 3a 20 75 73 65 20 7e 67 | .-.~gpt-4-turbo-preview~:.use.~g |
| 8d140 | 70 74 2d 34 6f 7e 20 6f 72 20 7e 67 70 74 2d 34 2d 74 75 72 62 6f 7e 20 69 6e 73 74 65 61 64 2e | pt-4o~.or.~gpt-4-turbo~.instead. |
| 8d160 | 0a 20 20 2d 20 7e 67 70 74 2d 34 2d 33 32 6b 7e 2c 20 7e 67 70 74 2d 34 2d 30 31 32 35 2d 70 72 | ...-.~gpt-4-32k~,.~gpt-4-0125-pr |
| 8d180 | 65 76 69 65 77 7e 20 61 6e 64 20 7e 67 70 74 2d 34 2d 31 31 30 36 2d 70 72 65 76 69 65 77 7e 3a | eview~.and.~gpt-4-1106-preview~: |
| 8d1a0 | 20 75 73 65 0a 20 20 20 20 7e 67 70 74 2d 34 6f 7e 20 6f 72 20 7e 67 70 74 2d 34 7e 20 69 6e 73 | .use.....~gpt-4o~.or.~gpt-4~.ins |
| 8d1c0 | 74 65 61 64 2e 0a 20 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 | tead....Alternatively,.you.can.a |
| 8d1e0 | 64 64 20 74 68 65 73 65 20 6d 6f 64 65 6c 73 20 62 61 63 6b 20 74 6f 20 74 68 65 20 62 61 63 6b | dd.these.models.back.to.the.back |
| 8d200 | 65 6e 64 20 69 6e 20 79 6f 75 72 0a 20 20 70 65 72 73 6f 6e 61 6c 20 63 6f 6e 66 69 67 75 72 61 | end.in.your...personal.configura |
| 8d220 | 74 69 6f 6e 3a 0a 20 20 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 | tion:...#+begin_src.emacs-lisp.. |
| 8d240 | 20 28 70 75 73 68 20 27 67 70 74 2d 34 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 0a 20 20 20 20 | .(push.'gpt-4-turbo-preview..... |
| 8d260 | 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c | ....(gptel-backend-models.(gptel |
| 8d280 | 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 22 43 68 61 74 47 50 54 22 29 29 29 0a 20 20 23 2b 65 6e | -get-backend."ChatGPT")))...#+en |
| 8d2a0 | 64 5f 73 72 63 0a 0a 2d 20 4f 6e 6c 79 20 72 65 6c 65 76 61 6e 74 20 69 66 20 79 6f 75 20 75 73 | d_src..-.Only.relevant.if.you.us |
| 8d2c0 | 65 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 7e 20 69 6e 20 79 6f 75 72 20 65 6c 69 73 70 20 | e.~gptel-request~.in.your.elisp. |
| 8d2e0 | 63 6f 64 65 2c 0a 20 20 2f 69 6e 74 65 72 61 63 74 69 76 65 20 67 70 74 65 6c 20 75 73 61 67 65 | code,.../interactive.gptel.usage |
| 8d300 | 20 69 73 20 75 6e 61 66 66 65 63 74 65 64 2f 3a 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 7e | .is.unaffected/:.~gptel-request~ |
| 8d320 | 20 6e 6f 77 20 74 61 6b 65 73 20 61 0a 20 20 6e 65 77 2c 20 6f 70 74 69 6f 6e 61 6c 20 3d 3a 74 | .now.takes.a...new,.optional.=:t |
| 8d340 | 72 61 6e 73 66 6f 72 6d 73 3d 20 61 72 67 75 6d 65 6e 74 2e 20 20 41 6e 79 20 70 72 6f 6d 70 74 | ransforms=.argument...Any.prompt |
| 8d360 | 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 28 6c 69 6b 65 20 61 64 64 69 6e 67 20 63 6f | .modifications...(like.adding.co |
| 8d380 | 6e 74 65 78 74 20 74 6f 20 72 65 71 75 65 73 74 73 29 20 6d 75 73 74 20 6e 6f 77 20 62 65 20 73 | ntext.to.requests).must.now.be.s |
| 8d3a0 | 70 65 63 69 66 69 65 64 20 76 69 61 20 74 68 69 73 0a 20 20 61 72 67 75 6d 65 6e 74 2e 20 20 53 | pecified.via.this...argument...S |
| 8d3c0 | 65 65 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 7e 67 70 74 65 6c 2d 73 65 6e 64 | ee.the.definition.of.~gptel-send |
| 8d3e0 | 7e 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 2e 0a 0a 2a 2a 20 4e 65 77 20 6d 6f 64 65 6c 73 | ~.for.an.example...**.New.models |
| 8d400 | 20 61 6e 64 20 62 61 63 6b 65 6e 64 73 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 | .and.backends..-.Add.support.for |
| 8d420 | 20 7e 67 70 74 2d 34 2e 31 7e 2c 20 7e 67 70 74 2d 34 2e 31 2d 6d 69 6e 69 7e 2c 20 7e 67 70 74 | .~gpt-4.1~,.~gpt-4.1-mini~,.~gpt |
| 8d440 | 2d 34 2e 31 2d 6e 61 6e 6f 7e 2c 20 7e 6f 33 7e 20 61 6e 64 0a 20 20 7e 6f 34 2d 6d 69 6e 69 7e | -4.1-nano~,.~o3~.and...~o4-mini~ |
| 8d460 | 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 | ...-.Add.support.for.~gemini-2.5 |
| 8d480 | 2d 70 72 6f 2d 65 78 70 2d 30 33 2d 32 35 7e 2c 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 | -pro-exp-03-25~,...~gemini-2.5-f |
| 8d4a0 | 6c 61 73 68 2d 70 72 65 76 69 65 77 2d 30 34 2d 31 37 7e 2c 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 | lash-preview-04-17~,.~gemini-2.5 |
| 8d4c0 | 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 35 2d 30 36 7e 20 61 6e 64 0a 20 20 7e 67 65 6d 69 6e | -pro-preview-05-06~.and...~gemin |
| 8d4e0 | 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 36 2d 30 35 7e 2e 0a 0a 2d 20 41 64 64 | i-2.5-pro-preview-06-05~...-.Add |
| 8d500 | 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 | .support.for.~claude-sonnet-4-20 |
| 8d520 | 32 35 30 35 31 34 7e 20 61 6e 64 0a 20 20 7e 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 | 250514~.and...~claude-opus-4-202 |
| 8d540 | 35 30 35 31 34 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 57 53 20 42 | 50514~...-.Add.support.for.AWS.B |
| 8d560 | 65 64 72 6f 63 6b 20 6d 6f 64 65 6c 73 2e 20 20 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 | edrock.models...You.can.create.a |
| 8d580 | 6e 20 41 57 53 20 42 65 64 72 6f 63 6b 0a 20 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 77 69 | n.AWS.Bedrock...gptel.backend.wi |
| 8d5a0 | 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 7e 2c 20 77 68 69 63 68 20 73 | th.~gptel-make-bedrock~,.which.s |
| 8d5c0 | 65 65 2e 20 20 50 6c 65 61 73 65 20 6e 6f 74 65 3a 0a 20 20 41 57 53 20 42 65 64 72 6f 63 6b 20 | ee...Please.note:...AWS.Bedrock. |
| 8d5e0 | 73 75 70 70 6f 72 74 20 72 65 71 75 69 72 65 73 20 43 75 72 6c 20 38 2e 35 2e 30 20 6f 72 20 68 | support.requires.Curl.8.5.0.or.h |
| 8d600 | 69 67 68 65 72 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 63 72 65 61 74 65 20 61 6e 20 | igher...-.You.can.now.create.an. |
| 8d620 | 78 41 49 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 | xAI.backend.with.~gptel-make-xai |
| 8d640 | 7e 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 20 20 28 78 41 49 20 77 61 73 20 73 75 70 70 6f 72 74 | ~,.which.see....(xAI.was.support |
| 8d660 | 65 64 20 62 65 66 6f 72 65 20 62 75 74 20 74 68 65 20 6d 6f 64 65 6c 20 63 6f 6e 66 69 67 75 72 | ed.before.but.the.model.configur |
| 8d680 | 61 74 69 6f 6e 20 69 73 20 6e 6f 77 20 68 61 6e 64 6c 65 64 0a 20 20 66 6f 72 20 79 6f 75 20 62 | ation.is.now.handled...for.you.b |
| 8d6a0 | 79 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 29 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 | y.this.function.)..-.Add.support |
| 8d6c0 | 20 66 6f 72 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 43 68 61 74 2e 20 20 53 65 65 20 74 | .for.GitHub.Copilot.Chat...See.t |
| 8d6e0 | 68 65 20 52 45 41 44 4d 45 20 61 6e 64 0a 20 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 68 2d 63 | he.README.and...~gptel-make-gh-c |
| 8d700 | 6f 70 69 6c 6f 74 7e 2e 20 20 50 6c 65 61 73 65 20 6e 6f 74 65 3a 20 74 68 69 73 20 69 73 20 6f | opilot~...Please.note:.this.is.o |
| 8d720 | 6e 6c 79 20 74 68 65 20 63 68 61 74 0a 20 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 47 69 74 48 | nly.the.chat...component.of.GitH |
| 8d740 | 75 62 20 43 6f 70 69 6c 6f 74 2e 20 20 43 6f 70 69 6c 6f 74 27 73 20 7e 63 6f 6d 70 6c 65 74 69 | ub.Copilot...Copilot's.~completi |
| 8d760 | 6f 6e 2d 61 74 2d 70 6f 69 6e 74 7e 0a 20 20 28 74 61 62 2d 63 6f 6d 70 6c 65 74 69 6f 6e 29 20 | on-at-point~...(tab-completion). |
| 8d780 | 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 | functionality.is.not.supported.b |
| 8d7a0 | 79 20 67 70 74 65 6c 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 61 6d 62 | y.gptel...-.Add.support.for.Samb |
| 8d7c0 | 61 6e 6f 76 61 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 | anova...This.is.an.OpenAI-compat |
| 8d7e0 | 69 62 6c 65 20 41 50 49 20 73 6f 20 79 6f 75 0a 20 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 62 | ible.API.so.you...can.create.a.b |
| 8d800 | 61 63 6b 65 6e 64 20 77 69 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 2c | ackend.with.~gptel-make-openai~, |
| 8d820 | 20 73 65 65 20 74 68 65 20 52 45 41 44 4d 45 20 66 6f 72 0a 20 20 64 65 74 61 69 6c 73 2e 0a 0a | .see.the.README.for...details... |
| 8d840 | 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4d 69 73 74 72 61 6c 20 4c 65 20 43 68 61 | -.Add.support.for.Mistral.Le.Cha |
| 8d860 | 74 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 61 6e 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 | t...This.is.an.an.OpenAI-compati |
| 8d880 | 62 6c 65 0a 20 20 41 50 49 20 73 6f 20 79 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 62 61 | ble...API.so.you.can.create.a.ba |
| 8d8a0 | 63 6b 65 6e 64 20 77 69 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 2c 20 | ckend.with.~gptel-make-openai~,. |
| 8d8c0 | 73 65 65 20 74 68 65 0a 20 20 52 45 41 44 4d 45 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 2a | see.the...README.for.details...* |
| 8d8e0 | 2a 20 4e 65 77 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 0a 0a 2d | *.New.features.and.UI.changes..- |
| 8d900 | 20 67 70 74 65 6c 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 68 61 6e 64 6c 69 6e 67 20 72 65 61 | .gptel.now.supports.handling.rea |
| 8d920 | 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 73 20 69 6e 20 72 65 73 70 6f 6e | soning/thinking.blocks.in.respon |
| 8d940 | 73 65 73 0a 20 20 66 72 6f 6d 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 2e 20 20 54 68 69 73 20 | ses...from.Gemini.models...This. |
| 8d960 | 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 0a 20 20 7e 67 70 74 65 6c 2d 69 6e 63 6c 75 64 | is.controlled.by...~gptel-includ |
| 8d980 | 65 2d 72 65 61 73 6f 6e 69 6e 67 7e 2c 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 | e-reasoning~,.in.the.same.way.th |
| 8d9a0 | 61 74 20 69 74 20 68 61 6e 64 6c 65 73 20 6f 74 68 65 72 0a 20 20 41 50 49 73 2e 0a 0a 2d 20 54 | at.it.handles.other...APIs...-.T |
| 8d9c0 | 68 65 20 6e 65 77 20 6f 70 74 69 6f 6e 20 7e 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d | he.new.option.~gptel-curl-extra- |
| 8d9e0 | 61 72 67 73 7e 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 65 78 74 | args~.can.be.used.to.specify.ext |
| 8da00 | 72 61 0a 20 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 43 75 72 6c 20 63 6f 6d 6d 61 | ra...arguments.to.the.Curl.comma |
| 8da20 | 6e 64 20 75 73 65 64 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 69 | nd.used.for.the.request...This.i |
| 8da40 | 73 20 74 68 65 0a 20 20 67 6c 6f 62 61 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 67 70 | s.the...global.version.of.the.gp |
| 8da60 | 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 73 70 65 63 69 66 69 63 20 7e 3a 63 75 72 6c 2d 61 72 67 73 | tel-backend-specific.~:curl-args |
| 8da80 | 7e 20 73 6c 6f 74 2c 0a 20 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 | ~.slot,...which.can.be.used.to.s |
| 8daa0 | 70 65 63 69 66 79 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 20 77 68 65 6e 20 75 73 69 6e 67 | pecify.Curl.arguments.when.using |
| 8dac0 | 20 61 20 73 70 65 63 69 66 69 63 0a 20 20 62 61 63 6b 65 6e 64 2e 0a 0a 2d 20 54 6f 6f 6c 73 20 | .a.specific...backend...-.Tools. |
| 8dae0 | 6e 6f 77 20 72 75 6e 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 | now.run.in.the.buffer.from.which |
| 8db00 | 20 74 68 65 20 72 65 71 75 65 73 74 20 6f 72 69 67 69 6e 61 74 65 73 2e 20 20 54 68 69 73 0a 20 | .the.request.originates...This.. |
| 8db20 | 20 63 61 6e 20 62 65 20 73 69 67 6e 69 66 69 63 61 6e 74 20 77 68 65 6e 20 74 6f 6f 6c 73 20 72 | .can.be.significant.when.tools.r |
| 8db40 | 65 61 64 20 6f 72 20 6d 61 6e 69 70 75 6c 61 74 65 20 45 6d 61 63 73 27 20 73 74 61 74 65 2e 0a | ead.or.manipulate.Emacs'.state.. |
| 8db60 | 0a 2d 20 67 70 74 65 6c 20 63 61 6e 20 61 63 63 65 73 73 20 4d 43 50 20 73 65 72 76 65 72 20 74 | .-.gptel.can.access.MCP.server.t |
| 8db80 | 6f 6f 6c 73 20 62 79 20 69 6e 74 65 67 72 61 74 69 6e 67 20 77 69 74 68 20 74 68 65 20 6d 63 70 | ools.by.integrating.with.the.mcp |
| 8dba0 | 2e 65 6c 0a 20 20 70 61 63 6b 61 67 65 2c 20 77 68 69 63 68 20 69 73 20 61 74 20 68 74 74 70 73 | .el...package,.which.is.at.https |
| 8dbc0 | 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 69 7a 71 77 65 72 73 63 6f 74 74 2f 6d 63 70 2e 65 | ://github.com/lizqwerscott/mcp.e |
| 8dbe0 | 6c 2e 0a 20 20 28 6d 63 70 2e 65 6c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 4d 45 4c | l....(mcp.el.is.available.on.MEL |
| 8dc00 | 50 41 2e 29 20 20 54 6f 20 68 65 6c 70 20 77 69 74 68 20 74 68 65 20 69 6e 74 65 67 72 61 74 69 | PA.)..To.help.with.the.integrati |
| 8dc20 | 6f 6e 2c 20 74 77 6f 0a 20 20 6e 65 77 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 70 72 6f 76 69 | on,.two...new.commands.are.provi |
| 8dc40 | 64 65 64 3a 20 7e 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 7e 20 61 6e 64 0a 20 20 7e | ded:.~gptel-mcp-connect~.and...~ |
| 8dc60 | 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 7e 2e 20 20 59 6f 75 20 63 61 6e 20 | gptel-mcp-disconnect~...You.can. |
| 8dc80 | 75 73 65 20 74 68 65 73 65 20 74 6f 20 73 74 61 72 74 20 4d 43 50 20 73 65 72 76 65 72 73 0a 20 | use.these.to.start.MCP.servers.. |
| 8dca0 | 20 73 65 6c 65 63 74 69 76 65 6c 79 20 61 6e 64 20 61 64 64 20 74 6f 6f 6c 73 20 74 6f 20 67 70 | .selectively.and.add.tools.to.gp |
| 8dcc0 | 74 65 6c 2e 20 20 54 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 61 6c 73 6f 0a 20 20 | tel...These.commands.are.also... |
| 8dce0 | 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 73 20 6d 65 6e | available.from.gptel's.tools.men |
| 8dd00 | 75 2e 0a 20 20 0a 20 20 54 68 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 63 75 72 72 65 | u.......These.commands.are.curre |
| 8dd20 | 6e 74 6c 79 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 54 | ntly.not.autoloaded.by.gptel...T |
| 8dd40 | 6f 20 61 63 63 65 73 73 0a 20 20 74 68 65 6d 2c 20 72 65 71 75 69 72 65 20 74 68 65 20 7e 67 70 | o.access...them,.require.the.~gp |
| 8dd60 | 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 7e 20 66 65 61 74 75 72 65 2e 0a 0a 2d 20 59 6f | tel-integrations~.feature...-.Yo |
| 8dd80 | 75 20 63 61 6e 20 6e 6f 77 20 64 65 66 69 6e 65 20 22 70 72 65 73 65 74 73 22 2c 20 77 68 69 63 | u.can.now.define."presets",.whic |
| 8dda0 | 68 20 61 72 65 20 61 20 62 75 6e 64 6c 65 20 6f 66 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 2c | h.are.a.bundle.of.gptel.options, |
| 8ddc0 | 0a 20 20 73 75 63 68 20 61 73 20 74 68 65 20 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 2c 20 73 | ...such.as.the.backend,.model,.s |
| 8dde0 | 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 69 6e 63 6c 75 64 65 64 20 74 6f 6f 6c 73 2c 0a 20 | ystem.message,.included.tools,.. |
| 8de00 | 20 74 65 6d 70 65 72 61 74 75 72 65 20 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 69 73 20 73 65 | .temperature.and.so.on...This.se |
| 8de20 | 74 20 6f 66 20 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 74 6f 67 65 | t.of.options.can.be.applied.toge |
| 8de40 | 74 68 65 72 2c 0a 20 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f 20 73 77 69 74 63 68 | ther,...making.it.easy.to.switch |
| 8de60 | 20 62 65 74 77 65 65 6e 20 64 69 66 66 65 72 65 6e 74 20 74 61 73 6b 73 20 75 73 69 6e 67 20 67 | .between.different.tasks.using.g |
| 8de80 | 70 74 65 6c 2e 20 20 46 72 6f 6d 0a 20 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 | ptel...From...gptel's.transient. |
| 8dea0 | 6d 65 6e 75 2c 20 79 6f 75 20 63 61 6e 20 73 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 | menu,.you.can.save.the.current.c |
| 8dec0 | 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 61 0a 20 20 70 72 65 73 65 74 20 6f 72 20 61 70 | onfiguration.as.a...preset.or.ap |
| 8dee0 | 70 6c 79 20 61 6e 6f 74 68 65 72 20 6f 6e 65 2e 20 20 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 | ply.another.one...Presets.can.be |
| 8df00 | 20 61 70 70 6c 69 65 64 20 67 6c 6f 62 61 6c 6c 79 2c 0a 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 | .applied.globally,...buffer-loca |
| 8df20 | 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 | lly.or.for.the.next.request.only |
| 8df40 | 2e 20 20 54 6f 20 70 65 72 73 69 73 74 20 70 72 65 73 65 74 73 0a 20 20 61 63 72 6f 73 73 20 45 | ...To.persist.presets...across.E |
| 8df60 | 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 2c 20 64 65 66 69 6e 65 20 70 72 65 73 65 74 73 20 69 6e | macs.sessions,.define.presets.in |
| 8df80 | 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 75 73 69 6e 67 0a 20 20 7e 67 70 74 | .your.configuration.using...~gpt |
| 8dfa0 | 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 7e 2e 0a 0a 2d 20 57 68 65 6e 20 75 73 69 6e 67 20 7e | el-make-preset~...-.When.using.~ |
| 8dfc0 | 67 70 74 65 6c 2d 73 65 6e 64 7e 20 66 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 | gptel-send~.from.anywhere.in.Ema |
| 8dfe0 | 63 73 2c 20 79 6f 75 20 63 61 6e 20 6e 6f 77 20 69 6e 63 6c 75 64 65 0a 20 20 61 20 22 63 6f 6f | cs,.you.can.now.include...a."coo |
| 8e000 | 6b 69 65 22 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 | kie".of.the.form.=@preset-name=. |
| 8e020 | 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 20 74 65 78 74 20 74 6f 20 61 70 70 6c 79 0a 20 20 74 68 | in.the.prompt.text.to.apply...th |
| 8e040 | 61 74 20 70 72 65 73 65 74 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 2e 20 20 54 68 65 20 70 | at.preset.before.sending...The.p |
| 8e060 | 72 65 73 65 74 20 69 73 20 61 70 70 6c 69 65 64 20 66 6f 72 20 74 68 61 74 20 72 65 71 75 65 73 | reset.is.applied.for.that.reques |
| 8e080 | 74 0a 20 20 6f 6e 6c 79 2e 20 20 54 68 69 73 20 69 73 20 61 6e 20 65 61 73 79 20 77 61 79 20 74 | t...only...This.is.an.easy.way.t |
| 8e0a0 | 6f 20 73 70 65 63 69 66 79 20 6d 6f 64 65 6c 73 2c 20 74 6f 6f 6c 73 2c 20 73 79 73 74 65 6d 0a | o.specify.models,.tools,.system. |
| 8e0c0 | 20 20 6d 65 73 73 61 67 65 73 20 28 65 74 63 29 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 20 49 6e | ..messages.(etc).on.the.fly...In |
| 8e0e0 | 20 63 68 61 74 20 62 75 66 66 65 72 73 20 74 68 65 20 70 72 65 73 65 74 20 63 6f 6f 6b 69 65 20 | .chat.buffers.the.preset.cookie. |
| 8e100 | 69 73 0a 20 20 66 6f 6e 74 69 66 69 65 64 20 61 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 | is...fontified.and.available.for |
| 8e120 | 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 76 69 61 20 7e 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 | .completion.via.~completion-at-p |
| 8e140 | 6f 69 6e 74 7e 2e 0a 0a 2d 20 46 6f 72 20 73 63 72 69 70 74 69 6e 67 20 70 75 72 70 6f 73 65 73 | oint~...-.For.scripting.purposes |
| 8e160 | 2c 20 70 72 6f 76 69 64 65 20 61 20 7e 67 70 74 65 6c 2d 77 69 74 68 2d 70 72 65 73 65 74 7e 20 | ,.provide.a.~gptel-with-preset~. |
| 8e180 | 6d 61 63 72 6f 20 74 6f 0a 20 20 63 72 65 61 74 65 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 | macro.to...create.an.environment |
| 8e1a0 | 20 77 69 74 68 20 61 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 2e 0a 0a 2d 20 4c 69 6e 6b 73 | .with.a.preset.applied...-.Links |
| 8e1c0 | 20 74 6f 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 20 69 6e 20 63 68 61 74 20 62 75 66 | .to.plain-text.files.in.chat.buf |
| 8e1e0 | 66 65 72 73 20 63 61 6e 20 62 65 20 66 6f 6c 6c 6f 77 65 64 2c 20 61 6e 64 20 74 68 65 69 72 0a | fers.can.be.followed,.and.their. |
| 8e200 | 20 20 63 6f 6e 74 65 6e 74 73 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 72 65 71 | ..contents.included.with.the.req |
| 8e220 | 75 65 73 74 2e 20 20 55 73 69 6e 67 20 4f 72 67 20 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 6c 69 6e | uest...Using.Org.or.Markdown.lin |
| 8e240 | 6b 73 20 69 73 0a 20 20 61 6e 20 65 61 73 79 2c 20 69 6e 74 75 69 74 69 76 65 2c 20 70 65 72 73 | ks.is...an.easy,.intuitive,.pers |
| 8e260 | 69 73 74 65 6e 74 20 61 6e 64 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 77 61 79 20 74 6f 20 73 | istent.and.buffer-local.way.to.s |
| 8e280 | 70 65 63 69 66 79 0a 20 20 63 6f 6e 74 65 78 74 2e 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 69 | pecify...context...To.enable.thi |
| 8e2a0 | 73 20 62 65 68 61 76 69 6f 72 2c 20 74 75 72 6e 20 6f 6e 20 7e 67 70 74 65 6c 2d 74 72 61 63 6b | s.behavior,.turn.on.~gptel-track |
| 8e2c0 | 2d 6d 65 64 69 61 7e 2e 20 54 68 69 73 0a 20 20 69 73 20 61 20 70 72 65 2d 65 78 69 73 74 69 6e | -media~..This...is.a.pre-existin |
| 8e2e0 | 67 20 6f 70 74 69 6f 6e 20 74 68 61 74 20 61 6c 73 6f 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 | g.option.that.also.controls.whet |
| 8e300 | 68 65 72 20 69 6d 61 67 65 2f 64 6f 63 75 6d 65 6e 74 0a 20 20 6c 69 6e 6b 73 20 61 72 65 20 66 | her.image/document...links.are.f |
| 8e320 | 6f 6c 6c 6f 77 65 64 20 61 6e 64 20 73 65 6e 74 20 28 77 68 65 6e 20 74 68 65 20 6d 6f 64 65 6c | ollowed.and.sent.(when.the.model |
| 8e340 | 20 73 75 70 70 6f 72 74 73 20 69 74 29 2e 0a 0a 2d 20 41 20 6e 65 77 20 68 6f 6f 6b 20 7e 67 70 | .supports.it)...-.A.new.hook.~gp |
| 8e360 | 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 7e 20 | tel-prompt-transform-functions~. |
| 8e380 | 69 73 20 70 72 6f 76 69 64 65 64 20 66 6f 72 0a 20 20 61 72 62 69 74 72 61 72 79 20 74 72 61 6e | is.provided.for...arbitrary.tran |
| 8e3a0 | 73 66 6f 72 6d 61 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 70 72 69 6f 72 20 | sformations.of.the.prompt.prior. |
| 8e3c0 | 74 6f 20 73 65 6e 64 69 6e 67 20 61 20 72 65 71 75 65 73 74 2e 0a 20 20 54 68 69 73 20 68 6f 6f | to.sending.a.request....This.hoo |
| 8e3e0 | 6b 20 72 75 6e 73 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 63 6f 6e | k.runs.in.a.temporary.buffer.con |
| 8e400 | 74 61 69 6e 69 6e 67 20 74 68 65 20 74 65 78 74 20 74 6f 20 62 65 20 73 65 6e 74 2e 0a 20 20 41 | taining.the.text.to.be.sent....A |
| 8e420 | 6e 79 20 61 73 70 65 63 74 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 20 28 74 68 65 20 74 65 | ny.aspect.of.the.request.(the.te |
| 8e440 | 78 74 2c 20 64 65 73 74 69 6e 61 74 69 6f 6e 2c 20 72 65 71 75 65 73 74 0a 20 20 70 61 72 61 6d | xt,.destination,.request...param |
| 8e460 | 65 74 65 72 73 2c 20 72 65 73 70 6f 6e 73 65 20 68 61 6e 64 6c 69 6e 67 20 70 72 65 66 65 72 65 | eters,.response.handling.prefere |
| 8e480 | 6e 63 65 73 29 20 63 61 6e 20 62 65 20 6d 6f 64 69 66 69 65 64 0a 20 20 62 75 66 66 65 72 2d 6c | nces).can.be.modified...buffer-l |
| 8e4a0 | 6f 63 61 6c 6c 79 20 68 65 72 65 2e 20 20 54 68 65 73 65 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f | ocally.here...These.hook.functio |
| 8e4c0 | 6e 73 20 63 61 6e 20 62 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2e 0a 0a 2d 20 54 68 65 20 75 | ns.can.be.asynchronous...-.The.u |
| 8e4e0 | 73 65 72 20 6f 70 74 69 6f 6e 20 7e 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 7e 20 63 61 6e 20 | ser.option.~gptel-use-curl~.can. |
| 8e500 | 6e 6f 77 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 61 20 43 75 72 6c 0a 20 20 | now.be.used.to.specify.a.Curl... |
| 8e520 | 70 61 74 68 2e 0a 0a 2d 20 54 68 65 20 63 75 72 72 65 6e 74 20 6b 69 6c 6c 20 63 61 6e 20 62 65 | path...-.The.current.kill.can.be |
| 8e540 | 20 61 64 64 65 64 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 54 6f 20 65 | .added.to.gptel's.context...To.e |
| 8e560 | 6e 61 62 6c 65 20 74 68 69 73 2c 0a 20 20 74 75 72 6e 20 6f 6e 20 7e 67 70 74 65 6c 2d 65 78 70 | nable.this,...turn.on.~gptel-exp |
| 8e580 | 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 7e 20 61 6e 64 20 75 73 65 20 67 70 74 65 6c 27 73 20 74 72 | ert-commands~.and.use.gptel's.tr |
| 8e5a0 | 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 20 0a 0a 2d 20 54 68 65 20 74 6f 6f 6c 73 20 6d 65 6e 75 | ansient.menu....-.The.tools.menu |
| 8e5c0 | 20 28 7e 67 70 74 65 6c 2d 74 6f 6f 6c 73 7e 29 20 68 61 73 20 62 65 65 6e 20 72 65 64 65 73 69 | .(~gptel-tools~).has.been.redesi |
| 8e5e0 | 67 6e 65 64 2e 20 20 49 74 20 6e 6f 77 20 64 69 73 70 6c 61 79 73 0a 20 20 74 6f 6f 6c 20 63 61 | gned...It.now.displays...tool.ca |
| 8e600 | 74 65 67 6f 72 69 65 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 74 6f 6f 6c 73 20 69 6e | tegories.and.associated.tools.in |
| 8e620 | 20 74 77 6f 20 63 6f 6c 75 6d 6e 73 2c 20 61 6e 64 20 69 74 20 73 68 6f 75 6c 64 0a 20 20 73 63 | .two.columns,.and.it.should...sc |
| 8e640 | 61 6c 65 20 62 65 74 74 65 72 20 74 6f 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 6f 6f 6c | ale.better.to.any.number.of.tool |
| 8e660 | 73 2e 20 20 41 73 20 61 20 62 6f 6e 75 73 2c 20 74 68 65 20 6e 65 77 20 6d 65 6e 75 0a 20 20 72 | s...As.a.bonus,.the.new.menu...r |
| 8e680 | 65 71 75 69 72 65 73 20 68 61 6c 66 20 61 73 20 6d 61 6e 79 20 6b 65 79 73 74 72 6f 6b 65 73 20 | equires.half.as.many.keystrokes. |
| 8e6a0 | 61 73 20 62 65 66 6f 72 65 20 74 6f 20 65 6e 61 62 6c 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 | as.before.to.enable.individual.. |
| 8e6c0 | 20 74 6f 6f 6c 73 20 6f 72 20 74 6f 67 67 6c 65 20 63 61 74 65 67 6f 72 69 65 73 2e 0a 0a 2a 2a | .tools.or.toggle.categories...** |
| 8e6e0 | 20 4e 6f 74 61 62 6c 65 20 42 75 67 20 66 69 78 65 73 0a 0a 2d 20 46 69 78 20 6d 6f 72 65 20 4f | .Notable.Bug.fixes..-.Fix.more.O |
| 8e700 | 72 67 20 6d 61 72 6b 75 70 20 63 6f 6e 76 65 72 73 69 6f 6e 20 65 64 67 65 20 63 61 73 65 73 20 | rg.markup.conversion.edge.cases. |
| 8e720 | 69 6e 76 6f 6c 76 69 6e 67 20 6e 65 73 74 65 64 20 4d 61 72 6b 64 6f 77 6e 0a 20 20 64 65 6c 69 | involving.nested.Markdown...deli |
| 8e740 | 6d 69 74 65 72 73 2e 0a 0a 2a 20 30 2e 39 2e 38 20 32 30 32 35 2d 30 33 2d 31 33 0a 0a 56 65 72 | miters...*.0.9.8.2025-03-13..Ver |
| 8e760 | 73 69 6f 6e 20 30 2e 39 2e 38 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 | sion.0.9.8.adds.support.for.new. |
| 8e780 | 47 65 6d 69 6e 69 2c 20 41 6e 74 68 72 6f 70 69 63 2c 20 4f 70 65 6e 41 49 2c 0a 50 65 72 70 6c | Gemini,.Anthropic,.OpenAI,.Perpl |
| 8e7a0 | 65 78 69 74 79 2c 20 61 6e 64 20 44 65 65 70 53 65 65 6b 20 6d 6f 64 65 6c 73 2c 20 69 6e 74 72 | exity,.and.DeepSeek.models,.intr |
| 8e7c0 | 6f 64 75 63 65 73 20 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 2f 66 75 6e 63 74 69 6f 6e 0a 63 61 6c | oduces.LLM.tool.use/function.cal |
| 8e7e0 | 6c 69 6e 67 2c 20 61 20 72 65 64 65 73 69 67 6e 20 6f 66 20 7e 67 70 74 65 6c 2d 6d 65 6e 75 7e | ling,.a.redesign.of.~gptel-menu~ |
| 8e800 | 2c 20 69 6e 63 6c 75 64 65 73 20 6e 65 77 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 68 6f 6f | ,.includes.new.customization.hoo |
| 8e820 | 6b 73 2c 0a 64 72 79 2d 72 75 6e 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 72 65 66 69 6e 65 64 20 | ks,.dry-run.options.and.refined. |
| 8e840 | 73 65 74 74 69 6e 67 73 2c 20 69 6d 70 72 6f 76 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 72 65 | settings,.improvements.to.the.re |
| 8e860 | 77 72 69 74 65 0a 66 65 61 74 75 72 65 20 61 6e 64 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 4c 4c 4d | write.feature.and.control.of.LLM |
| 8e880 | 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 2e 0a 0a 2a 2a 20 42 72 65 61 6b 69 | ."reasoning".content...**.Breaki |
| 8e8a0 | 6e 67 20 63 68 61 6e 67 65 73 0a 0a 2d 20 7e 67 65 6d 69 6e 69 2d 70 72 6f 7e 20 68 61 73 20 62 | ng.changes..-.~gemini-pro~.has.b |
| 8e8c0 | 65 65 6e 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 69 73 74 20 6f 66 20 47 65 6d | een.removed.from.the.list.of.Gem |
| 8e8e0 | 69 6e 69 20 6d 6f 64 65 6c 73 2c 20 61 73 0a 20 20 74 68 69 73 20 6d 6f 64 65 6c 20 69 73 20 6e | ini.models,.as...this.model.is.n |
| 8e900 | 6f 20 6c 6f 6e 67 65 72 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 47 65 6d 69 6e 69 | o.longer.supported.by.the.Gemini |
| 8e920 | 20 41 50 49 2e 0a 0a 2d 20 53 65 6e 64 69 6e 67 20 61 6e 20 61 63 74 69 76 65 20 72 65 67 69 6f | .API...-.Sending.an.active.regio |
| 8e940 | 6e 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 77 69 6c 6c 20 6e 6f 77 20 61 70 70 6c 79 20 4f 72 67 | n.in.Org.mode.will.now.apply.Org |
| 8e960 | 0a 20 20 6d 6f 64 65 2d 73 70 65 63 69 66 69 63 20 72 75 6c 65 73 20 74 6f 20 74 68 65 20 74 65 | ...mode-specific.rules.to.the.te |
| 8e980 | 78 74 2c 20 73 75 63 68 20 61 73 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 74 65 78 74 2e 0a 0a | xt,.such.as.branching.context... |
| 8e9a0 | 2d 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 62 73 6f 6c 65 74 65 20 76 61 72 69 61 62 6c | -.The.following.obsolete.variabl |
| 8e9c0 | 65 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 76 65 20 62 65 65 6e 20 72 65 6d 6f 76 | es.and.functions.have.been.remov |
| 8e9e0 | 65 64 3a 0a 20 20 2d 20 7e 67 70 74 65 6c 2d 73 65 6e 64 2d 6d 65 6e 75 7e 3a 20 55 73 65 20 7e | ed:...-.~gptel-send-menu~:.Use.~ |
| 8ea00 | 67 70 74 65 6c 2d 6d 65 6e 75 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 65 6c 2d | gptel-menu~.instead....-.~gptel- |
| 8ea20 | 68 6f 73 74 7e 3a 20 55 73 65 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 20 69 | host~:.Use.~gptel-make-openai~.i |
| 8ea40 | 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 65 6c 2d 70 6c 61 79 62 61 63 6b 7e 3a 20 55 73 | nstead....-.~gptel-playback~:.Us |
| 8ea60 | 65 20 7e 67 70 74 65 6c 2d 73 74 72 65 61 6d 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 | e.~gptel-stream~.instead....-.~g |
| 8ea80 | 70 74 65 6c 2d 2d 64 65 62 75 67 7e 3a 20 55 73 65 20 7e 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 | ptel--debug~:.Use.~gptel-log-lev |
| 8eaa0 | 65 6c 7e 20 69 6e 73 74 65 61 64 2e 0a 0a 2a 2a 20 4e 65 77 20 6d 6f 64 65 6c 73 20 61 6e 64 20 | el~.instead...**.New.models.and. |
| 8eac0 | 62 61 63 6b 65 6e 64 73 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 65 76 65 | backends..-.Add.support.for.seve |
| 8eae0 | 72 61 6c 20 6e 65 77 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 20 69 6e 63 6c 75 64 69 6e 67 0a | ral.new.Gemini.models.including. |
| 8eb00 | 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 7e 2c 20 7e 67 65 6d 69 6e 69 2d 32 2e | ..~gemini-2.0-flash~,.~gemini-2. |
| 8eb20 | 30 2d 70 72 6f 2d 65 78 70 7e 20 61 6e 64 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 | 0-pro-exp~.and...~gemini-2.0-fla |
| 8eb40 | 73 68 2d 74 68 69 6e 6b 69 6e 67 2d 65 78 70 7e 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 73 2e 0a | sh-thinking-exp~,.among.others.. |
| 8eb60 | 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 | .-.Add.support.for.the.Anthropic |
| 8eb80 | 20 6d 6f 64 65 6c 20 7e 63 6c 61 75 64 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 | .model.~claude-3-7-sonnet-202502 |
| 8eba0 | 31 39 7e 2c 0a 20 20 69 6e 63 6c 75 64 69 6e 67 20 69 74 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 | 19~,...including.its."reasoning" |
| 8ebc0 | 20 6f 75 74 70 75 74 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4f 70 65 6e | .output...-.Add.support.for.Open |
| 8ebe0 | 41 49 27 73 20 7e 6f 31 7e 2c 20 7e 6f 33 2d 6d 69 6e 69 7e 20 61 6e 64 20 7e 67 70 74 2d 34 2e | AI's.~o1~,.~o3-mini~.and.~gpt-4. |
| 8ec00 | 35 2d 70 72 65 76 69 65 77 7e 0a 20 20 6d 6f 64 65 6c 73 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 | 5-preview~...models...-.Add.supp |
| 8ec20 | 6f 72 74 20 66 6f 72 20 50 65 72 70 6c 65 78 69 74 79 2e 20 20 57 68 69 6c 65 20 67 70 74 65 6c | ort.for.Perplexity...While.gptel |
| 8ec40 | 20 73 75 70 70 6f 72 74 65 64 20 50 65 72 70 6c 65 78 69 74 79 20 69 6e 0a 20 20 65 61 72 6c 69 | .supported.Perplexity.in...earli |
| 8ec60 | 65 72 20 72 65 6c 65 61 73 65 73 20 62 79 20 72 65 75 73 69 6e 67 20 69 74 73 20 4f 70 65 6e 41 | er.releases.by.reusing.its.OpenA |
| 8ec80 | 49 20 73 75 70 70 6f 72 74 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 77 20 66 69 72 73 74 0a 20 20 | I.support,.there.is.now.first... |
| 8eca0 | 63 6c 61 73 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 50 65 72 70 6c 65 78 69 74 79 | class.support.for.the.Perplexity |
| 8ecc0 | 20 41 50 49 2c 20 69 6e 63 6c 75 64 69 6e 67 20 63 69 74 61 74 69 6f 6e 73 2e 0a 0a 2d 20 41 64 | .API,.including.citations...-.Ad |
| 8ece0 | 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 44 65 65 70 53 65 65 6b 2e 20 20 57 68 69 6c 65 20 67 | d.support.for.DeepSeek...While.g |
| 8ed00 | 70 74 65 6c 20 73 75 70 70 6f 72 74 65 64 20 44 65 65 70 53 65 65 6b 20 69 6e 20 65 61 72 6c 69 | ptel.supported.DeepSeek.in.earli |
| 8ed20 | 65 72 0a 20 20 72 65 6c 65 61 73 65 73 20 62 79 20 72 65 75 73 69 6e 67 20 69 74 73 20 4f 70 65 | er...releases.by.reusing.its.Ope |
| 8ed40 | 6e 41 49 20 73 75 70 70 6f 72 74 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 77 20 66 69 72 73 74 20 | nAI.support,.there.is.now.first. |
| 8ed60 | 63 6c 61 73 73 0a 20 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 44 65 65 70 53 65 65 6b | class...support.for.the.DeepSeek |
| 8ed80 | 20 41 50 49 2c 20 69 6e 63 6c 75 64 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 68 61 6e 64 | .API,.including.support.for.hand |
| 8eda0 | 6c 69 6e 67 0a 20 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 6f 75 74 70 75 74 2e 0a 0a 2a 2a 20 4e | ling..."reasoning".output...**.N |
| 8edc0 | 65 77 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 0a 0a 2d 20 7e 67 | ew.features.and.UI.changes..-.~g |
| 8ede0 | 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 69 74 65 72 61 | ptel-rewrite~.now.supports.itera |
| 8ee00 | 74 69 6e 67 20 6f 6e 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 2d 20 67 70 74 65 6c 20 73 75 70 70 | ting.on.responses...-.gptel.supp |
| 8ee20 | 6f 72 74 73 20 74 68 65 20 61 62 69 6c 69 74 79 20 74 6f 20 73 69 6d 75 6c 61 74 65 2f 64 72 79 | orts.the.ability.to.simulate/dry |
| 8ee40 | 2d 72 75 6e 20 72 65 71 75 65 73 74 73 20 73 6f 20 79 6f 75 20 63 61 6e 0a 20 20 73 65 65 20 65 | -run.requests.so.you.can...see.e |
| 8ee60 | 78 61 63 74 6c 79 20 77 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 2e 20 20 54 68 69 73 20 | xactly.what.will.be.sent...This. |
| 8ee80 | 70 61 79 6c 6f 61 64 20 70 72 65 76 69 65 77 20 63 61 6e 20 6e 6f 77 20 62 65 0a 20 20 65 64 69 | payload.preview.can.now.be...edi |
| 8eea0 | 74 65 64 20 69 6e 20 70 6c 61 63 65 20 61 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e | ted.in.place.and.the.request.con |
| 8eec0 | 74 69 6e 75 65 64 2e 0a 0a 2d 20 44 69 72 65 63 74 6f 72 69 65 73 20 63 61 6e 20 6e 6f 77 20 62 | tinued...-.Directories.can.now.b |
| 8eee0 | 65 20 61 64 64 65 64 20 74 6f 20 67 70 74 65 6c 27 73 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 | e.added.to.gptel's.global.contex |
| 8ef00 | 74 2e 20 20 44 6f 69 6e 67 20 73 6f 0a 20 20 77 69 6c 6c 20 61 64 64 20 61 6c 6c 20 66 69 6c 65 | t...Doing.so...will.add.all.file |
| 8ef20 | 73 20 69 6e 20 74 68 65 20 64 69 72 65 63 74 6f 72 79 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a | s.in.the.directory.recursively.. |
| 8ef40 | 0a 2d 20 22 4f 6e 65 73 68 6f 74 22 20 73 65 74 74 69 6e 67 73 3a 20 77 68 65 6e 20 75 73 69 6e | .-."Oneshot".settings:.when.usin |
| 8ef60 | 67 20 67 70 74 65 6c 27 73 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 2c 20 72 65 71 75 65 | g.gptel's.Transient.menus,.reque |
| 8ef80 | 73 74 0a 20 20 70 61 72 61 6d 65 74 65 72 73 2c 20 64 69 72 65 63 74 69 76 65 73 20 61 6e 64 20 | st...parameters,.directives.and. |
| 8efa0 | 74 6f 6f 6c 73 20 63 61 6e 20 6e 6f 77 20 62 65 20 73 65 74 20 66 6f 72 20 74 68 65 20 6e 65 78 | tools.can.now.be.set.for.the.nex |
| 8efc0 | 74 20 72 65 71 75 65 73 74 0a 20 20 6f 6e 6c 79 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 | t.request...only.in.addition.to. |
| 8efe0 | 67 6c 6f 62 61 6c 6c 79 20 61 63 72 6f 73 73 20 74 68 65 20 45 6d 61 63 73 20 73 65 73 73 69 6f | globally.across.the.Emacs.sessio |
| 8f000 | 6e 20 61 6e 64 0a 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 20 20 54 68 69 73 20 69 73 | n.and...buffer-locally...This.is |
| 8f020 | 20 75 73 65 66 75 6c 20 66 6f 72 20 6d 61 6b 69 6e 67 20 6f 6e 65 2d 6f 66 66 20 72 65 71 75 65 | .useful.for.making.one-off.reque |
| 8f040 | 73 74 73 20 77 69 74 68 0a 20 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 74 69 6e 67 73 2e 0a 0a | sts.with...different.settings... |
| 8f060 | 2d 20 7e 67 70 74 65 6c 2d 6d 6f 64 65 7e 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 69 | -.~gptel-mode~.can.now.be.used.i |
| 8f080 | 6e 20 61 6c 6c 20 6d 6f 64 65 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 7e 74 65 78 74 2d 6d | n.all.modes.derived.from.~text-m |
| 8f0a0 | 6f 64 65 7e 2e 0a 0a 2d 20 67 70 74 65 6c 20 6e 6f 77 20 74 72 69 65 73 20 74 6f 20 68 61 6e 64 | ode~...-.gptel.now.tries.to.hand |
| 8f0c0 | 6c 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 74 68 61 74 20 61 72 65 20 69 6e 20 6d 69 78 | le.LLM.responses.that.are.in.mix |
| 8f0e0 | 65 64 0a 20 20 4f 72 67 2f 4d 61 72 6b 64 6f 77 6e 20 6d 61 72 6b 75 70 20 63 6f 72 72 65 63 74 | ed...Org/Markdown.markup.correct |
| 8f100 | 6c 79 2e 0a 0a 2d 20 41 64 64 20 7e 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 | ly...-.Add.~gptel-org-convert-re |
| 8f120 | 73 70 6f 6e 73 65 7e 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 | sponse~.to.toggle.the.automatic. |
| 8f140 | 63 6f 6e 76 65 72 73 69 6f 6e 0a 20 20 6f 66 20 28 70 6f 73 73 69 62 6c 79 29 20 4d 61 72 6b 64 | conversion...of.(possibly).Markd |
| 8f160 | 6f 77 6e 2d 66 6f 72 6d 61 74 74 65 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 4f | own-formatted.LLM.responses.to.O |
| 8f180 | 72 67 20 6d 61 72 6b 75 70 20 77 68 65 72 65 0a 20 20 61 70 70 72 6f 70 72 69 61 74 65 2e 0a 0a | rg.markup.where...appropriate... |
| 8f1a0 | 2d 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 6c 6f 6f 6b 20 75 70 20 72 65 67 69 73 74 65 72 65 64 | -.You.can.now.look.up.registered |
| 8f1c0 | 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 73 20 75 73 69 6e 67 20 74 68 65 0a 20 20 7e 67 70 74 | .gptel.backends.using.the...~gpt |
| 8f1e0 | 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 7e 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 69 73 20 | el-get-backend~.function...This. |
| 8f200 | 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 6d 61 6b 65 20 73 63 72 69 70 74 69 6e 67 0a 20 20 | is.intended.to.make.scripting... |
| 8f220 | 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 67 70 74 65 6c 20 65 61 73 69 65 72 2e 20 20 7e | and.configuring.gptel.easier...~ |
| 8f240 | 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 7e 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 | gptel-get-backend~.is.a.generali |
| 8f260 | 7a 65 64 0a 20 20 76 61 72 69 61 62 6c 65 20 73 6f 20 79 6f 75 20 63 61 6e 20 28 75 6e 29 73 65 | zed...variable.so.you.can.(un)se |
| 8f280 | 74 20 62 61 63 6b 65 6e 64 73 20 77 69 74 68 20 7e 73 65 74 66 7e 2e 0a 0a 2d 20 54 6f 6f 6c 20 | t.backends.with.~setf~...-.Tool. |
| 8f2a0 | 75 73 65 3a 20 67 70 74 65 6c 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 4c 4c 4d 20 74 6f 6f 6c | use:.gptel.now.supports.LLM.tool |
| 8f2c0 | 20 75 73 65 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 69 6e 67 2e 0a 20 20 45 73 73 | .use,.or.function.calling....Ess |
| 8f2e0 | 65 6e 74 69 61 6c 6c 79 20 79 6f 75 20 63 61 6e 20 65 71 75 69 70 20 74 68 65 20 4c 4c 4d 20 77 | entially.you.can.equip.the.LLM.w |
| 8f300 | 69 74 68 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 73 75 63 68 20 61 73 0a 20 20 66 69 6c 65 | ith.capabilities.(such.as...file |
| 8f320 | 73 79 73 74 65 6d 20 61 63 63 65 73 73 2c 20 77 65 62 20 73 65 61 72 63 68 2c 20 63 6f 6e 74 72 | system.access,.web.search,.contr |
| 8f340 | 6f 6c 20 6f 66 20 45 6d 61 63 73 20 6f 72 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 6f 66 0a | ol.of.Emacs.or.introspection.of. |
| 8f360 | 20 20 45 6d 61 63 73 27 20 73 74 61 74 65 20 61 6e 64 20 6d 6f 72 65 29 20 74 68 61 74 20 69 74 | ..Emacs'.state.and.more).that.it |
| 8f380 | 20 63 61 6e 20 75 73 65 20 74 6f 20 70 65 72 66 6f 72 6d 20 74 61 73 6b 73 20 66 6f 72 20 79 6f | .can.use.to.perform.tasks.for.yo |
| 8f3a0 | 75 2e 0a 20 20 67 70 74 65 6c 20 72 75 6e 73 20 74 68 65 73 65 20 74 6f 6f 6c 73 20 75 73 69 6e | u....gptel.runs.these.tools.usin |
| 8f3c0 | 67 20 61 72 67 75 6d 65 6e 74 20 76 61 6c 75 65 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 | g.argument.values.provided.by.th |
| 8f3e0 | 65 20 4c 4c 4d 73 2e 0a 20 20 54 68 69 73 20 72 65 71 75 69 72 65 73 20 73 70 65 63 69 66 79 69 | e.LLMs....This.requires.specifyi |
| 8f400 | 6e 67 20 74 6f 6f 6c 73 2c 20 77 68 69 63 68 20 61 72 65 20 65 6c 69 73 70 20 66 75 6e 63 74 69 | ng.tools,.which.are.elisp.functi |
| 8f420 | 6f 6e 73 20 77 69 74 68 20 70 6c 61 69 6e 0a 20 20 74 65 78 74 20 64 65 73 63 72 69 70 74 69 6f | ons.with.plain...text.descriptio |
| 8f440 | 6e 73 20 6f 66 20 74 68 65 69 72 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 | ns.of.their.arguments.and.result |
| 8f460 | 73 2e 20 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 0a 20 20 69 6e 63 6c 75 64 65 20 61 6e 79 | s...gptel.does.not...include.any |
| 8f480 | 20 74 6f 6f 6c 73 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 20 79 65 74 2e 0a 0a 2d 20 59 6f | .tools.out.of.the.box.yet...-.Yo |
| 8f4a0 | 75 20 63 61 6e 20 6c 6f 6f 6b 20 75 70 20 72 65 67 69 73 74 65 72 65 64 20 67 70 74 65 6c 20 74 | u.can.look.up.registered.gptel.t |
| 8f4c0 | 6f 6f 6c 73 20 75 73 69 6e 67 20 74 68 65 20 7e 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 7e 0a | ools.using.the.~gptel-get-tool~. |
| 8f4e0 | 20 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f | ..function...This.is.intended.to |
| 8f500 | 20 6d 61 6b 65 20 73 63 72 69 70 74 69 6e 67 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 | .make.scripting.and.configuring. |
| 8f520 | 67 70 74 65 6c 0a 20 20 65 61 73 69 65 72 2e 20 20 7e 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c | gptel...easier...~gptel-get-tool |
| 8f540 | 7e 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 73 6f 20 79 | ~.is.a.generalized.variable.so.y |
| 8f560 | 6f 75 20 63 61 6e 0a 20 20 28 75 6e 29 73 65 74 20 74 6f 6f 6c 73 20 77 69 74 68 20 7e 73 65 74 | ou.can...(un)set.tools.with.~set |
| 8f580 | 66 7e 2e 0a 0a 2d 20 4e 65 77 20 68 6f 6f 6b 73 20 66 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74 69 | f~...-.New.hooks.for.customizati |
| 8f5a0 | 6f 6e 3a 0a 20 20 2b 20 7e 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f | on:...+.~gptel-prompt-filter-hoo |
| 8f5c0 | 6b 7e 20 72 75 6e 73 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 63 6f | k~.runs.in.a.temporary.buffer.co |
| 8f5e0 | 6e 74 61 69 6e 69 6e 67 0a 20 20 20 20 74 68 65 20 74 65 78 74 20 74 6f 20 62 65 20 73 65 6e 74 | ntaining.....the.text.to.be.sent |
| 8f600 | 2c 20 62 65 66 6f 72 65 20 74 68 65 20 66 75 6c 6c 20 71 75 65 72 79 20 69 73 20 63 72 65 61 74 | ,.before.the.full.query.is.creat |
| 8f620 | 65 64 2e 20 20 49 74 20 63 61 6e 20 62 65 0a 20 20 20 20 75 73 65 64 20 66 6f 72 20 61 72 62 69 | ed...It.can.be.....used.for.arbi |
| 8f640 | 74 72 61 72 79 20 74 65 78 74 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 74 6f 20 74 68 | trary.text.transformations.to.th |
| 8f660 | 65 20 73 6f 75 72 63 65 20 74 65 78 74 2e 0a 20 20 2b 20 7e 67 70 74 65 6c 2d 70 6f 73 74 2d 72 | e.source.text....+.~gptel-post-r |
| 8f680 | 65 71 75 65 73 74 2d 68 6f 6f 6b 7e 20 72 75 6e 73 20 61 66 74 65 72 20 74 68 65 20 72 65 71 75 | equest-hook~.runs.after.the.requ |
| 8f6a0 | 65 73 74 20 69 73 20 73 65 6e 74 2c 20 61 6e 64 0a 20 20 20 20 28 70 6f 73 73 69 62 6c 79 29 20 | est.is.sent,.and.....(possibly). |
| 8f6c0 | 62 65 66 6f 72 65 20 61 6e 79 20 72 65 73 70 6f 6e 73 65 20 69 73 20 72 65 63 65 69 76 65 64 2e | before.any.response.is.received. |
| 8f6e0 | 20 20 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 0a 20 20 20 20 70 72 65 70 61 | ..This.is.intended.for.....prepa |
| 8f700 | 72 61 74 6f 72 79 2f 72 65 73 65 74 20 63 6f 64 65 2e 0a 20 20 2b 20 7e 67 70 74 65 6c 2d 70 6f | ratory/reset.code....+.~gptel-po |
| 8f720 | 73 74 2d 72 65 77 72 69 74 65 2d 68 6f 6f 6b 7e 20 72 75 6e 73 20 61 66 74 65 72 20 61 20 7e 67 | st-rewrite-hook~.runs.after.a.~g |
| 8f740 | 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 20 72 65 71 75 65 73 74 20 69 73 0a 20 20 20 20 73 75 63 | ptel-rewrite~.request.is.....suc |
| 8f760 | 63 65 73 73 66 75 6c 6c 79 20 61 6e 64 20 66 75 6c 6c 79 20 72 65 63 65 69 76 65 64 2e 0a 0a 2d | cessfully.and.fully.received...- |
| 8f780 | 20 7e 67 70 74 65 6c 2d 6d 65 6e 75 7e 20 68 61 73 20 62 65 65 6e 20 72 65 64 65 73 69 67 6e 65 | .~gptel-menu~.has.been.redesigne |
| 8f7a0 | 64 2e 20 20 49 74 20 6e 6f 77 20 73 68 6f 77 73 20 61 20 76 65 72 62 6f 73 65 0a 20 20 64 65 73 | d...It.now.shows.a.verbose...des |
| 8f7c0 | 63 72 69 70 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 6e | cription.of.what.will.be.sent.an |
| 8f7e0 | 64 20 77 68 65 72 65 20 74 68 65 20 6f 75 74 70 75 74 20 77 69 6c 6c 20 67 6f 2e 20 20 54 68 69 | d.where.the.output.will.go...Thi |
| 8f800 | 73 0a 20 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 70 72 6f 76 69 64 65 20 63 6c 61 72 69 | s...is.intended.to.provide.clari |
| 8f820 | 74 79 20 6f 6e 20 67 70 74 65 6c 27 73 20 64 65 66 61 75 6c 74 20 70 72 6f 6d 70 74 69 6e 67 0a | ty.on.gptel's.default.prompting. |
| 8f840 | 20 20 62 65 68 61 76 69 6f 72 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 65 66 66 65 63 | ..behavior,.as.well.as.the.effec |
| 8f860 | 74 20 6f 66 20 74 68 65 20 76 61 72 69 6f 75 73 20 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 | t.of.the.various.prompt/response |
| 8f880 | 0a 20 20 72 65 64 69 72 65 63 74 69 6f 6e 20 69 74 20 70 72 6f 76 69 64 65 73 2e 20 20 49 6e 63 | ...redirection.it.provides...Inc |
| 8f8a0 | 6f 6d 70 61 74 69 62 6c 65 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 6f 66 20 6f 70 74 69 6f 6e | ompatible.combinations.of.option |
| 8f8c0 | 73 20 61 72 65 0a 20 20 6e 6f 77 20 64 69 73 61 6c 6c 6f 77 65 64 2e 0a 0a 2d 20 54 68 65 20 73 | s.are...now.disallowed...-.The.s |
| 8f8e0 | 70 61 63 69 6e 67 20 62 65 74 77 65 65 6e 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 72 | pacing.between.the.end.of.the.pr |
| 8f900 | 6f 6d 70 74 20 61 6e 64 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 0a 20 20 | ompt.and.the.beginning.of.the... |
| 8f920 | 72 65 73 70 6f 6e 73 65 20 69 6e 20 62 75 66 66 65 72 73 20 69 73 20 6e 6f 77 20 63 75 73 74 6f | response.in.buffers.is.now.custo |
| 8f940 | 6d 69 7a 61 62 6c 65 20 76 69 61 0a 20 20 7e 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 | mizable.via...~gptel-response-se |
| 8f960 | 70 61 72 61 74 6f 72 7e 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 73 74 72 69 6e 67 2e | parator~,.and.can.be.any.string. |
| 8f980 | 0a 0a 2d 20 7e 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 7e 20 69 | ..-.~gptel-context-remove-all~.i |
| 8f9a0 | 73 20 6e 6f 77 20 61 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 2d | s.now.an.interactive.command...- |
| 8f9c0 | 20 67 70 74 65 6c 20 6e 6f 77 20 68 61 6e 64 6c 65 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 | .gptel.now.handles."reasoning".c |
| 8f9e0 | 6f 6e 74 65 6e 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 4c 4c 4d 73 2e 20 20 53 6f 6d 65 20 4c | ontent.produced.by.LLMs...Some.L |
| 8fa00 | 4c 4d 73 0a 20 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 20 | LMs...include.in.their.response. |
| 8fa20 | 61 20 22 74 68 69 6e 6b 69 6e 67 22 20 6f 72 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 73 65 63 74 | a."thinking".or."reasoning".sect |
| 8fa40 | 69 6f 6e 2e 20 20 54 68 69 73 0a 20 20 74 65 78 74 20 69 6d 70 72 6f 76 65 73 20 74 68 65 20 71 | ion...This...text.improves.the.q |
| 8fa60 | 75 61 6c 69 74 79 20 6f 66 20 74 68 65 20 4c 4c 4d e2 80 99 73 20 66 69 6e 61 6c 20 6f 75 74 70 | uality.of.the.LLM...s.final.outp |
| 8fa80 | 75 74 2c 20 62 75 74 20 6d 61 79 20 6e 6f 74 20 62 65 0a 20 20 69 6e 74 65 72 65 73 74 69 6e 67 | ut,.but.may.not.be...interesting |
| 8faa0 | 20 74 6f 20 79 6f 75 20 62 79 20 69 74 73 65 6c 66 2e 20 20 54 68 65 20 6e 65 77 20 75 73 65 72 | .to.you.by.itself...The.new.user |
| 8fac0 | 20 6f 70 74 69 6f 6e 0a 20 20 7e 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 | .option...~gptel-include-reasoni |
| 8fae0 | 6e 67 7e 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 20 61 6e 64 20 68 6f 77 20 67 70 74 | ng~.controls.whether.and.how.gpt |
| 8fb00 | 65 6c 20 64 69 73 70 6c 61 79 73 0a 20 20 74 68 69 73 20 63 6f 6e 74 65 6e 74 2e 0a 0a 2d 20 28 | el.displays...this.content...-.( |
| 8fb20 | 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 6f 6e 6c 79 29 20 53 6f 6d 65 20 4c 4c 4d 20 62 61 63 | Anthropic.API.only).Some.LLM.bac |
| 8fb40 | 6b 65 6e 64 73 20 63 61 6e 20 63 61 63 68 65 20 63 6f 6e 74 65 6e 74 20 73 65 6e 74 20 74 6f 20 | kends.can.cache.content.sent.to. |
| 8fb60 | 69 74 0a 20 20 62 79 20 67 70 74 65 6c 2c 20 73 6f 20 74 68 61 74 20 6f 6e 6c 79 20 74 68 65 20 | it...by.gptel,.so.that.only.the. |
| 8fb80 | 6e 65 77 6c 79 20 69 6e 63 6c 75 64 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 | newly.included.part.of.the.text. |
| 8fba0 | 6e 65 65 64 73 20 74 6f 0a 20 20 62 65 20 70 72 6f 63 65 73 73 65 64 20 6f 6e 20 73 75 62 73 65 | needs.to...be.processed.on.subse |
| 8fbc0 | 71 75 65 6e 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 2e 20 20 54 68 69 73 20 | quent.conversation.turns...This. |
| 8fbe0 | 72 65 73 75 6c 74 73 20 69 6e 0a 20 20 66 61 73 74 65 72 20 61 6e 64 20 73 69 67 6e 69 66 69 63 | results.in...faster.and.signific |
| 8fc00 | 61 6e 74 6c 79 20 63 68 65 61 70 65 72 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 54 68 65 20 6e 65 | antly.cheaper.processing..The.ne |
| 8fc20 | 77 20 75 73 65 72 20 6f 70 74 69 6f 6e 0a 20 20 7e 67 70 74 65 6c 2d 63 61 63 68 65 7e 20 63 61 | w.user.option...~gptel-cache~.ca |
| 8fc40 | 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 63 61 63 68 69 6e 67 20 70 72 65 | n.be.used.to.specify.caching.pre |
| 8fc60 | 66 65 72 65 6e 63 65 73 20 66 6f 72 0a 20 20 70 72 6f 6d 70 74 73 2c 20 74 68 65 20 73 79 73 74 | ferences.for...prompts,.the.syst |
| 8fc80 | 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 2f 6f 72 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f | em.message.and/or.tool.definitio |
| 8fca0 | 6e 73 2e 20 20 54 68 69 73 20 69 73 0a 20 20 73 75 70 70 6f 72 74 65 64 20 6f 6e 6c 79 20 62 79 | ns...This.is...supported.only.by |
| 8fcc0 | 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 72 69 67 68 74 20 6e 6f 77 2e 0a 0a 2d | .the.Anthropic.API.right.now...- |
| 8fce0 | 20 28 4f 72 67 20 6d 6f 64 65 29 20 4f 72 67 20 70 72 6f 70 65 72 74 79 20 64 72 61 77 65 72 73 | .(Org.mode).Org.property.drawers |
| 8fd00 | 20 61 72 65 20 6e 6f 77 20 73 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6d 70 | .are.now.stripped.from.the.promp |
| 8fd20 | 74 0a 20 20 74 65 78 74 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 71 75 65 72 69 65 73 2e | t...text.before.sending.queries. |
| 8fd40 | 20 20 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 6f 6c 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 | ..You.can.control.this.behavior. |
| 8fd60 | 6f 72 0a 20 20 73 70 65 63 69 66 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 4f 72 67 20 65 6c 65 6d | or...specify.additional.Org.elem |
| 8fd80 | 65 6e 74 73 20 74 6f 20 69 67 6e 6f 72 65 20 76 69 61 0a 20 20 7e 67 70 74 65 6c 2d 6f 72 67 2d | ents.to.ignore.via...~gptel-org- |
| 8fda0 | 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 7e 2e 20 20 28 46 6f 72 20 6d 6f 72 65 20 63 6f 6d | ignore-elements~...(For.more.com |
| 8fdc0 | 70 6c 65 78 20 70 72 65 2d 70 72 6f 63 65 73 73 69 6e 67 20 79 6f 75 0a 20 20 63 61 6e 20 75 73 | plex.pre-processing.you...can.us |
| 8fde0 | 65 20 7e 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 7e 2e 29 0a 0a | e.~gptel-prompt-filter-hook~.).. |
| 8fe00 | 2a 2a 20 4e 6f 74 61 62 6c 65 20 42 75 67 20 66 69 78 65 73 0a 0a 2d 20 46 69 78 20 72 65 73 70 | **.Notable.Bug.fixes..-.Fix.resp |
| 8fe20 | 6f 6e 73 65 20 6d 69 78 2d 75 70 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6e 63 75 72 72 | onse.mix-up.when.running.concurr |
| 8fe40 | 65 6e 74 20 72 65 71 75 65 73 74 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 0a 20 20 62 75 66 66 65 | ent.requests.in.Org.mode...buffe |
| 8fe60 | 72 73 2e 0a 2d 20 67 70 74 65 6c 20 6e 6f 77 20 77 6f 72 6b 73 20 61 72 6f 75 6e 64 20 61 6e 20 | rs..-.gptel.now.works.around.an. |
| 8fe80 | 4f 72 67 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 62 75 67 20 77 68 65 72 65 20 73 74 72 65 | Org.fontification.bug.where.stre |
| 8fea0 | 61 6d 69 6e 67 0a 20 20 72 65 73 70 6f 6e 73 65 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 62 75 | aming...responses.in.Org.mode.bu |
| 8fec0 | 66 66 65 72 73 20 73 6f 6d 65 74 69 6d 65 73 20 63 61 75 73 65 64 20 73 6f 75 72 63 65 20 63 6f | ffers.sometimes.caused.source.co |
| 8fee0 | 64 65 20 62 6c 6f 63 6b 73 20 74 6f 0a 20 20 72 65 6d 61 69 6e 20 75 6e 66 6f 6e 74 69 66 69 65 | de.blocks.to...remain.unfontifie |
| 8ff00 | 64 2e 0a 0a 2a 20 30 2e 39 2e 37 20 32 30 32 34 2d 31 32 2d 30 34 0a 0a 56 65 72 73 69 6f 6e 20 | d...*.0.9.7.2024-12-04..Version. |
| 8ff20 | 30 2e 39 2e 37 20 61 64 64 73 20 64 79 6e 61 6d 69 63 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 | 0.9.7.adds.dynamic.directives,.a |
| 8ff40 | 20 62 65 74 74 65 72 20 72 65 77 72 69 74 65 20 69 6e 74 65 72 66 61 63 65 2c 0a 73 74 72 65 61 | .better.rewrite.interface,.strea |
| 8ff60 | 6d 69 6e 67 20 73 75 70 70 6f 72 74 20 74 6f 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 | ming.support.to.the.gptel.reques |
| 8ff80 | 74 20 41 50 49 2c 20 61 6e 64 20 6d 6f 72 65 20 66 6c 65 78 69 62 6c 65 0a 6d 6f 64 65 6c 2f 62 | t.API,.and.more.flexible.model/b |
| 8ffa0 | 61 63 6b 65 6e 64 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 0a 0a 2a 2a 20 42 72 65 61 6b 69 | ackend.configuration...**.Breaki |
| 8ffc0 | 6e 67 20 63 68 61 6e 67 65 73 0a 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 6d 65 6e 75 7e 20 | ng.changes.~gptel-rewrite-menu~. |
| 8ffe0 | 68 61 73 20 62 65 65 6e 20 6f 62 73 6f 6c 65 74 65 64 2e 20 20 55 73 65 20 7e 67 70 74 65 6c 2d | has.been.obsoleted...Use.~gptel- |
| 90000 | 72 65 77 72 69 74 65 7e 20 69 6e 73 74 65 61 64 2e 0a 0a 2a 2a 20 42 61 63 6b 65 6e 64 73 0a 2d | rewrite~.instead...**.Backends.- |
| 90020 | 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4f 70 65 6e 41 49 27 73 20 7e 6f 31 2d 70 72 | .Add.support.for.OpenAI's.~o1-pr |
| 90040 | 65 76 69 65 77 7e 20 61 6e 64 20 7e 6f 31 2d 6d 69 6e 69 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 | eview~.and.~o1-mini~...-.Add.sup |
| 90060 | 70 6f 72 74 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 63 27 73 20 43 6c 61 75 64 65 20 33 2e 35 20 | port.for.Anthropic's.Claude.3.5. |
| 90080 | 48 61 69 6b 75 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 78 41 49 2e 0a 0a | Haiku...-.Add.support.for.xAI... |
| 900a0 | 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4e 6f 76 69 74 61 20 41 49 2e 0a 0a 2a 2a | -.Add.support.for.Novita.AI...** |
| 900c0 | 20 4e 65 77 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 0a 0a 2d 20 | .New.features.and.UI.changes..-. |
| 900e0 | 67 70 74 65 6c 27 73 20 64 69 72 65 63 74 69 76 65 73 20 28 73 65 65 20 7e 67 70 74 65 6c 2d 64 | gptel's.directives.(see.~gptel-d |
| 90100 | 69 72 65 63 74 69 76 65 73 7e 29 20 63 61 6e 20 6e 6f 77 20 62 65 20 64 79 6e 61 6d 69 63 2c 20 | irectives~).can.now.be.dynamic,. |
| 90120 | 61 6e 64 0a 20 20 69 6e 63 6c 75 64 65 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 65 20 73 79 73 74 | and...include.more.than.the.syst |
| 90140 | 65 6d 20 6d 65 73 73 61 67 65 2e 20 20 59 6f 75 20 63 61 6e 20 22 70 72 65 2d 66 69 6c 6c 22 20 | em.message...You.can."pre-fill". |
| 90160 | 61 0a 20 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 63 61 6e 6e 65 64 20 75 73 65 | a...conversation.with.canned.use |
| 90180 | 72 2f 4c 4c 4d 20 6d 65 73 73 61 67 65 73 2e 20 20 44 69 72 65 63 74 69 76 65 73 20 63 61 6e 20 | r/LLM.messages...Directives.can. |
| 901a0 | 6e 6f 77 20 62 65 0a 20 20 66 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 64 79 6e 61 6d 69 63 61 | now.be...functions.that.dynamica |
| 901c0 | 6c 6c 79 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 | lly.generate.the.system.message. |
| 901e0 | 61 6e 64 0a 20 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 62 61 73 65 64 | and...conversation.history.based |
| 90200 | 20 6f 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 54 68 69 73 20 70 | .on.the.current.context...This.p |
| 90220 | 61 76 65 73 20 74 68 65 0a 20 20 77 61 79 20 66 6f 72 20 66 75 6c 6c 79 20 66 6c 65 78 69 62 6c | aves.the...way.for.fully.flexibl |
| 90240 | 65 20 74 61 73 6b 2d 73 70 65 63 69 66 69 63 20 74 65 6d 70 6c 61 74 65 73 2c 20 77 68 69 63 68 | e.task-specific.templates,.which |
| 90260 | 20 74 68 65 20 55 49 20 64 6f 65 73 0a 20 20 6e 6f 74 20 79 65 74 20 73 75 70 70 6f 72 74 20 69 | .the.UI.does...not.yet.support.i |
| 90280 | 6e 20 66 75 6c 6c 2e 0a 0a 2d 20 67 70 74 65 6c 27 73 20 72 65 77 72 69 74 65 20 69 6e 74 65 72 | n.full...-.gptel's.rewrite.inter |
| 902a0 | 66 61 63 65 20 68 61 73 20 62 65 65 6e 20 72 65 77 6f 72 6b 65 64 2e 20 20 49 66 20 75 73 69 6e | face.has.been.reworked...If.usin |
| 902c0 | 67 20 61 20 73 74 72 65 61 6d 69 6e 67 0a 20 20 65 6e 64 70 6f 69 6e 74 2c 20 74 68 65 20 72 65 | g.a.streaming...endpoint,.the.re |
| 902e0 | 77 72 69 74 74 65 6e 20 74 65 78 74 20 69 73 20 73 74 72 65 61 6d 65 64 20 69 6e 20 61 73 20 61 | written.text.is.streamed.in.as.a |
| 90300 | 20 70 72 65 76 69 65 77 20 70 6c 61 63 65 64 20 6f 76 65 72 0a 20 20 74 68 65 20 6f 72 69 67 69 | .preview.placed.over...the.origi |
| 90320 | 6e 61 6c 2e 20 20 49 6e 20 61 6c 6c 20 63 61 73 65 73 2c 20 63 6c 69 63 6b 69 6e 67 20 6f 6e 20 | nal...In.all.cases,.clicking.on. |
| 90340 | 74 68 65 20 70 72 65 76 69 65 77 20 62 72 69 6e 67 73 20 75 70 20 61 0a 20 20 64 69 73 70 61 74 | the.preview.brings.up.a...dispat |
| 90360 | 63 68 20 79 6f 75 20 63 61 6e 20 75 73 65 20 74 6f 20 65 61 73 69 6c 79 20 64 69 66 66 2c 20 65 | ch.you.can.use.to.easily.diff,.e |
| 90380 | 64 69 66 66 2c 20 6d 65 72 67 65 2c 20 61 63 63 65 70 74 20 6f 72 20 72 65 6a 65 63 74 0a 20 20 | diff,.merge,.accept.or.reject... |
| 903a0 | 74 68 65 20 63 68 61 6e 67 65 73 20 28 34 61 65 39 63 31 62 32 29 2c 20 61 6e 64 20 79 6f 75 20 | the.changes.(4ae9c1b2),.and.you. |
| 903c0 | 63 61 6e 20 63 6f 6e 66 69 67 75 72 65 20 67 70 74 65 6c 20 74 6f 20 72 75 6e 20 6f 6e 65 20 6f | can.configure.gptel.to.run.one.o |
| 903e0 | 66 0a 20 20 74 68 65 73 65 20 61 63 74 69 6f 6e 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e | f...these.actions.automatically. |
| 90400 | 20 20 53 65 65 20 74 68 65 20 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 0a 0a | ..See.the.README.for.examples... |
| 90420 | 2d 20 7e 67 70 74 65 6c 2d 61 62 6f 72 74 7e 2c 20 75 73 65 64 20 74 6f 20 63 61 6e 63 65 6c 20 | -.~gptel-abort~,.used.to.cancel. |
| 90440 | 72 65 71 75 65 73 74 73 20 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 6e 6f 77 20 77 6f 72 6b 73 20 | requests.in.progress,.now.works. |
| 90460 | 61 63 72 6f 73 73 0a 20 20 74 68 65 20 62 6f 61 72 64 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 68 | across...the.board,.including.wh |
| 90480 | 65 6e 20 6e 6f 74 20 75 73 69 6e 67 20 43 75 72 6c 20 6f 72 20 77 69 74 68 20 7e 67 70 74 65 6c | en.not.using.Curl.or.with.~gptel |
| 904a0 | 2d 72 65 77 72 69 74 65 7e 2e 0a 0a 2d 20 54 68 65 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 | -rewrite~...-.The.~gptel-request |
| 904c0 | 7e 20 41 50 49 20 6e 6f 77 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 70 6f 72 74 73 20 73 74 | ~.API.now.explicitly.supports.st |
| 904e0 | 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 2c 20 6d 61 6b 69 6e 67 20 69 74 20 | reaming.responses...,.making.it. |
| 90500 | 65 61 73 79 20 74 6f 20 77 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 68 65 6c 70 65 72 73 20 6f | easy.to.write.your.own.helpers.o |
| 90520 | 72 20 66 65 61 74 75 72 65 73 20 77 69 74 68 0a 20 20 73 74 72 65 61 6d 69 6e 67 20 73 75 70 70 | r.features.with...streaming.supp |
| 90540 | 6f 72 74 2e 20 20 54 68 65 20 41 50 49 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 7e 67 70 74 | ort...The.API.also.supports.~gpt |
| 90560 | 65 6c 2d 61 62 6f 72 74 7e 20 74 6f 20 73 74 6f 70 20 61 6e 64 0a 20 20 63 6c 65 61 6e 20 75 70 | el-abort~.to.stop.and...clean.up |
| 90580 | 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 75 6e 73 65 74 | .responses...-.You.can.now.unset |
| 905a0 | 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 2d 2d 20 64 69 66 66 65 72 65 6e 74 | .the.system.message.--.different |
| 905c0 | 20 66 72 6f 6d 20 73 65 74 74 69 6e 67 20 69 74 20 74 6f 0a 20 20 61 6e 20 65 6d 70 74 79 20 73 | .from.setting.it.to...an.empty.s |
| 905e0 | 74 72 69 6e 67 2e 20 20 67 70 74 65 6c 20 77 69 6c 6c 20 61 6c 73 6f 20 61 75 74 6f 6d 61 74 69 | tring...gptel.will.also.automati |
| 90600 | 63 61 6c 6c 79 20 64 69 73 61 62 6c 65 20 74 68 65 20 73 79 73 74 65 6d 0a 20 20 6d 65 73 73 61 | cally.disable.the.system...messa |
| 90620 | 67 65 20 77 68 65 6e 20 75 73 69 6e 67 20 6d 6f 64 65 6c 73 20 74 68 61 74 20 64 6f 6e 27 74 20 | ge.when.using.models.that.don't. |
| 90640 | 73 75 70 70 6f 72 74 20 69 74 2e 0a 0a 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 63 6c 75 | support.it...-.Support.for.inclu |
| 90660 | 64 69 6e 67 20 50 44 46 73 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 74 6f 20 41 6e 74 68 72 | ding.PDFs.with.requests.to.Anthr |
| 90680 | 6f 70 69 63 20 6d 6f 64 65 6c 73 20 68 61 73 0a 20 20 62 65 65 6e 20 61 64 64 65 64 2e 20 20 28 | opic.models.has...been.added...( |
| 906a0 | 54 68 65 73 65 20 71 75 65 72 69 65 73 20 61 72 65 20 63 61 63 68 65 64 2c 20 73 6f 20 79 6f 75 | These.queries.are.cached,.so.you |
| 906c0 | 20 70 61 79 20 6f 6e 6c 79 20 31 30 25 20 6f 66 20 74 68 65 0a 20 20 74 6f 6b 65 6e 20 63 6f 73 | .pay.only.10%.of.the...token.cos |
| 906e0 | 74 20 6f 66 20 74 68 65 20 50 44 46 20 69 6e 20 66 6f 6c 6c 6f 77 2d 75 70 20 71 75 65 72 69 65 | t.of.the.PDF.in.follow-up.querie |
| 90700 | 73 2e 29 20 20 4e 6f 74 65 20 74 68 61 74 20 64 6f 63 75 6d 65 6e 74 0a 20 20 73 75 70 70 6f 72 | s.)..Note.that.document...suppor |
| 90720 | 74 20 28 50 44 46 73 20 65 74 63 29 20 66 6f 72 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 20 68 | t.(PDFs.etc).for.Gemini.models.h |
| 90740 | 61 73 20 62 65 65 6e 20 61 76 61 69 6c 61 62 6c 65 20 73 69 6e 63 65 0a 20 20 76 30 2e 39 2e 35 | as.been.available.since...v0.9.5 |
| 90760 | 2e 0a 0a 2d 20 57 68 65 6e 20 64 65 66 69 6e 69 6e 67 20 61 20 67 70 74 65 6c 20 6d 6f 64 65 6c | ...-.When.defining.a.gptel.model |
| 90780 | 20 6f 72 20 62 61 63 6b 65 6e 64 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 72 62 | .or.backend,.you.can.specify.arb |
| 907a0 | 69 74 72 61 72 79 0a 20 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 62 65 20 73 65 6e 74 20 77 | itrary...parameters.to.be.sent.w |
| 907c0 | 69 74 68 20 65 61 63 68 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 | ith.each.request...This.includes |
| 907e0 | 20 74 68 65 20 28 6d 61 6e 79 29 0a 20 20 41 50 49 20 6f 70 74 69 6f 6e 73 20 61 63 72 6f 73 73 | .the.(many)...API.options.across |
| 90800 | 20 61 6c 6c 20 41 50 49 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 79 65 | .all.APIs.that.gptel.does.not.ye |
| 90820 | 74 20 70 72 6f 76 69 64 65 20 65 78 70 6c 69 63 69 74 0a 20 20 73 75 70 70 6f 72 74 20 66 6f 72 | t.provide.explicit...support.for |
| 90840 | 2e 0a 0a 2d 20 4e 65 77 20 74 72 61 6e 73 69 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 6f 70 74 69 6f | ...-.New.transient.command.optio |
| 90860 | 6e 20 74 6f 20 65 61 73 69 6c 79 20 72 65 6d 6f 76 65 20 61 6c 6c 20 69 6e 63 6c 75 64 65 64 20 | n.to.easily.remove.all.included. |
| 90880 | 63 6f 6e 74 65 78 74 0a 20 20 63 68 75 6e 6b 73 2e 0a 0a 2a 2a 20 4e 6f 74 61 62 6c 65 20 42 75 | context...chunks...**.Notable.Bu |
| 908a0 | 67 20 66 69 78 65 73 0a 2d 20 50 72 65 73 73 69 6e 67 20 7e 52 45 54 7e 20 6f 6e 20 69 6e 63 6c | g.fixes.-.Pressing.~RET~.on.incl |
| 908c0 | 75 64 65 64 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 20 69 6e 73 70 65 63 | uded.files.in.the.context.inspec |
| 908e0 | 74 6f 72 20 62 75 66 66 65 72 20 6e 6f 77 0a 20 20 70 6f 70 73 20 75 70 20 74 68 65 20 66 69 6c | tor.buffer.now...pops.up.the.fil |
| 90900 | 65 20 63 6f 72 72 65 63 74 6c 79 2e 0a 2d 20 41 50 49 20 6b 65 79 73 20 61 72 65 20 73 74 72 69 | e.correctly..-.API.keys.are.stri |
| 90920 | 70 70 65 64 20 6f 66 20 77 68 69 74 65 73 70 61 63 65 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e | pped.of.whitespace.before.sendin |
| 90940 | 67 2e 0a 2d 20 4d 75 6c 74 69 70 6c 65 20 55 49 2c 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 70 72 | g..-.Multiple.UI,.backend.and.pr |
| 90960 | 6f 6d 70 74 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 20 62 75 67 73 20 68 61 76 65 20 62 65 65 6e | ompt.construction.bugs.have.been |
| 90980 | 20 66 69 78 65 64 2e 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .fixed.......................... |
| 909a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 909c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 909e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90a00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2e 65 6c 00 00 | gptel-0.9.8.5/gptel-rewrite.el.. |
| 90a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90a60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 90a80 | 30 30 37 32 32 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 36 35 00 20 30 00 00 00 | 0072212.00000000000.014565..0... |
| 90aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90b00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 90b20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 90b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 90c00 | 3b 3b 3b 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2e 65 6c 20 2d 2d 2d 20 52 65 66 61 63 74 6f | ;;;.gptel-rewrite.el.---.Refacto |
| 90c20 | 72 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 | ring.functions.for.gptel..-*-.le |
| 90c40 | 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 | xical-binding:.t;.-*-..;;.Copyri |
| 90c60 | 67 68 74 20 28 43 29 20 32 30 32 34 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | ght.(C).2024..Karthik.Chikmagalu |
| 90c80 | 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | r..;;.Author:.Karthik.Chikmagalu |
| 90ca0 | 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e | r.<karthikchikmagalur@gmail.com> |
| 90cc0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 2c 20 63 6f 6e 76 65 6e | .;;.Keywords:.hypermedia,.conven |
| 90ce0 | 69 65 6e 63 65 2c 20 74 6f 6f 6c 73 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 | ience,.tools..;;.This.program.is |
| 90d00 | 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 | .free.software;.you.can.redistri |
| 90d20 | 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 | bute.it.and/or.modify.;;.it.unde |
| 90d40 | 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 | r.the.terms.of.the.GNU.General.P |
| 90d60 | 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b | ublic.License.as.published.by.;; |
| 90d80 | 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 | .the.Free.Software.Foundation,.e |
| 90da0 | 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 | ither.version.3.of.the.License,. |
| 90dc0 | 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 | or.;;.(at.your.option).any.later |
| 90de0 | 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 | .version...;;.This.program.is.di |
| 90e00 | 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 | stributed.in.the.hope.that.it.wi |
| 90e20 | 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 | ll.be.useful,.;;.but.WITHOUT.ANY |
| 90e40 | 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c | .WARRANTY;.without.even.the.impl |
| 90e60 | 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 | ied.warranty.of.;;.MERCHANTABILI |
| 90e80 | 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 | TY.or.FITNESS.FOR.A.PARTICULAR.P |
| 90ea0 | 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 | URPOSE...See.the.;;.GNU.General. |
| 90ec0 | 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e | Public.License.for.more.details. |
| 90ee0 | 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 | ..;;.You.should.have.received.a. |
| 90f00 | 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c | copy.of.the.GNU.General.Public.L |
| 90f20 | 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 | icense.;;.along.with.this.progra |
| 90f40 | 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 | m...If.not,.see.<https://www.gnu |
| 90f60 | 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 | .org/licenses/>...;;;.Commentary |
| 90f80 | 3a 0a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c | :..;;..;;;.Code:.(require.'gptel |
| 90fa0 | 2d 74 72 61 6e 73 69 65 6e 74 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 | -transient).(require.'cl-lib)..( |
| 90fc0 | 64 65 66 76 61 72 20 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 | defvar.eldoc-documentation-funct |
| 90fe0 | 69 6f 6e 73 29 0a 28 64 65 66 76 61 72 20 64 69 66 66 2d 65 6e 74 69 72 65 2d 62 75 66 66 65 72 | ions).(defvar.diff-entire-buffer |
| 91000 | 73 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 64 69 66 66 2d 6e 6f 2d 73 65 | s)..(declare-function.diff-no-se |
| 91020 | 6c 65 63 74 20 22 64 69 66 66 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 72 | lect."diff").(declare-function.r |
| 91040 | 6d 63 2d 2d 61 64 64 2d 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 22 72 6d 63 22 29 0a 0a | mc--add-key-description."rmc").. |
| 91060 | 3b 3b 20 2a 20 55 73 65 72 20 6f 70 74 69 6f 6e 73 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 | ;;.*.User.options..(defcustom.gp |
| 91080 | 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 73 2d 68 6f 6f 6b 20 6e 69 6c 0a | tel-rewrite-directives-hook.nil. |
| 910a0 | 20 20 22 48 6f 6f 6b 20 72 75 6e 20 74 6f 20 67 65 6e 65 72 61 74 65 20 67 70 74 65 6c 27 73 20 | .."Hook.run.to.generate.gptel's. |
| 910c0 | 64 65 66 61 75 6c 74 20 72 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 73 2e 0a 0a 45 61 63 | default.rewrite.directives...Eac |
| 910e0 | 68 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 6c 6c 65 | h.function.in.this.hook.is.calle |
| 91100 | 64 20 77 69 74 68 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 75 6e 74 69 6c 20 6f 6e 65 0a 72 65 | d.with.no.arguments.until.one.re |
| 91120 | 74 75 72 6e 73 20 61 20 6e 6f 6e 2d 6e 69 6c 20 76 61 6c 75 65 2c 20 74 68 65 20 62 61 73 65 20 | turns.a.non-nil.value,.the.base. |
| 91140 | 73 74 72 69 6e 67 20 74 6f 20 75 73 65 20 61 73 20 74 68 65 0a 72 65 77 72 69 74 65 20 69 6e 73 | string.to.use.as.the.rewrite.ins |
| 91160 | 74 72 75 63 74 69 6f 6e 2e 0a 0a 55 73 65 20 74 68 69 73 20 68 6f 6f 6b 20 74 6f 20 74 61 69 6c | truction...Use.this.hook.to.tail |
| 91180 | 6f 72 20 63 6f 6e 74 65 78 74 2d 73 70 65 63 69 66 69 63 20 72 65 77 72 69 74 65 20 64 69 72 65 | or.context-specific.rewrite.dire |
| 911a0 | 63 74 69 76 65 73 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 | ctives..For.example,.you.can.spe |
| 911c0 | 63 69 61 6c 69 7a 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 72 65 77 72 69 74 65 20 64 69 72 65 | cialize.the.default.rewrite.dire |
| 911e0 | 63 74 69 76 65 0a 66 6f 72 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6d 61 6a 6f 72 2d 6d 6f 64 | ctive.for.a.particular.major-mod |
| 91200 | 65 20 6f 72 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 | e.or.project."...:group.'gptel.. |
| 91220 | 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d | .:type.'hook)..(defcustom.gptel- |
| 91240 | 70 6f 73 74 2d 72 65 77 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 41 62 | post-rewrite-functions.nil..."Ab |
| 91260 | 6e 6f 72 6d 61 6c 20 68 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 61 20 60 67 70 74 65 6c 2d 72 | normal.hook.run.after.a.`gptel-r |
| 91280 | 65 77 72 69 74 65 27 20 61 63 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 | ewrite'.action...This.hook.is.ca |
| 912a0 | 6c 6c 65 64 20 61 66 74 65 72 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 66 6f 72 20 | lled.after.the.LLM.response.for. |
| 912c0 | 74 68 65 20 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 0a 68 61 73 20 62 65 65 6e 20 66 75 6c 6c | the.rewrite.action.has.been.full |
| 912e0 | 79 20 72 65 63 65 69 76 65 64 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 | y.received.in.a.temporary.buffer |
| 91300 | 2e 20 20 45 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 73 0a 63 61 6c 6c 65 64 20 77 69 74 68 20 | ...Each.function.is.called.with. |
| 91320 | 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 62 65 67 69 | two.arguments:.the.response.begi |
| 91340 | 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 0a 70 6f 73 69 74 69 6f 6e 73 2e 0a 0a 4e 6f 74 65 3a 20 | nning.and.end.positions...Note:. |
| 91360 | 74 68 69 73 20 68 6f 6f 6b 20 6f 6e 6c 79 20 72 75 6e 73 20 69 66 20 74 68 65 20 72 65 77 72 69 | this.hook.only.runs.if.the.rewri |
| 91380 | 74 65 20 72 65 71 75 65 73 74 20 73 75 63 63 65 65 64 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 | te.request.succeeds."...:type.'h |
| 913a0 | 6f 6f 6b 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d | ook...:group.'gptel)..(defcustom |
| 913c0 | 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 20 6e 69 | .gptel-rewrite-default-action.ni |
| 913e0 | 6c 0a 20 20 22 41 63 74 69 6f 6e 20 74 6f 20 74 61 6b 65 20 77 68 65 6e 20 72 65 77 72 69 74 69 | l..."Action.to.take.when.rewriti |
| 91400 | 6e 67 20 61 20 74 65 78 74 20 72 65 67 69 6f 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 0a 57 | ng.a.text.region.using.gptel...W |
| 91420 | 68 65 6e 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 77 69 74 68 20 74 68 65 20 72 65 | hen.the.LLM.response.with.the.re |
| 91440 | 77 72 69 74 74 65 6e 20 74 65 78 74 20 69 73 20 72 65 63 65 69 76 65 64 2c 20 79 6f 75 20 63 61 | written.text.is.received,.you.ca |
| 91460 | 6e 0a 2d 20 6d 65 72 67 65 20 69 74 20 77 69 74 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 | n.-.merge.it.with.the.current.re |
| 91480 | 67 69 6f 6e 2c 20 70 6f 73 73 69 62 6c 79 20 63 72 65 61 74 69 6e 67 20 61 20 6d 65 72 67 65 20 | gion,.possibly.creating.a.merge. |
| 914a0 | 63 6f 6e 66 6c 69 63 74 2c 0a 2d 20 64 69 66 66 20 6f 72 20 65 64 69 66 66 20 61 67 61 69 6e 73 | conflict,.-.diff.or.ediff.agains |
| 914c0 | 74 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 72 65 67 69 6f 6e 2c 0a 2d 20 6f 72 20 61 63 63 65 | t.the.original.region,.-.or.acce |
| 914e0 | 70 74 20 69 74 20 69 6e 20 70 6c 61 63 65 2c 20 72 65 70 6c 61 63 69 6e 67 20 74 68 65 20 6f 72 | pt.it.in.place,.replacing.the.or |
| 91500 | 69 67 69 6e 61 6c 20 72 65 67 69 6f 6e 2e 0a 2d 20 64 69 73 70 6c 61 79 20 61 20 64 69 73 70 61 | iginal.region..-.display.a.dispa |
| 91520 | 74 63 68 20 6d 65 6e 75 20 77 69 74 68 20 74 68 65 20 61 62 6f 76 65 20 63 68 6f 69 63 65 73 2e | tch.menu.with.the.above.choices. |
| 91540 | 0a 0a 49 66 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 69 73 20 6e 69 6c 20 28 74 68 65 20 64 65 66 | ..If.this.option.is.nil.(the.def |
| 91560 | 61 75 6c 74 29 2c 20 67 70 74 65 6c 20 77 61 69 74 73 20 66 6f 72 20 61 6e 20 65 78 70 6c 69 63 | ault),.gptel.waits.for.an.explic |
| 91580 | 69 74 0a 63 6f 6d 6d 61 6e 64 2e 20 20 53 65 74 20 69 74 20 74 6f 20 74 68 65 20 73 79 6d 62 6f | it.command...Set.it.to.the.symbo |
| 915a0 | 6c 20 60 6d 65 72 67 65 27 2c 20 60 64 69 66 66 27 2c 20 60 65 64 69 66 66 27 2c 20 60 61 63 63 | l.`merge',.`diff',.`ediff',.`acc |
| 915c0 | 65 70 74 27 0a 6f 72 20 60 64 69 73 70 61 74 63 68 27 20 74 6f 20 61 75 74 6f 6d 61 74 69 63 61 | ept'.or.`dispatch'.to.automatica |
| 915e0 | 6c 6c 79 20 64 6f 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 69 6e 73 74 65 | lly.do.one.of.these.things.inste |
| 91600 | 61 64 2e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 65 74 20 69 74 20 74 6f 20 61 20 66 75 | ad...You.can.also.set.it.to.a.fu |
| 91620 | 6e 63 74 69 6f 6e 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 20 66 6f 72 20 61 20 63 75 | nction.of.your.choosing.for.a.cu |
| 91640 | 73 74 6f 6d 0a 61 63 74 69 6f 6e 2e 20 20 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 63 65 | stom.action...This.function.rece |
| 91660 | 69 76 65 73 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 72 65 77 72 69 74 65 0a 6f | ives.one.argument,.the.rewrite.o |
| 91680 | 76 65 72 6c 61 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 | verlay."...:group.'gptel...:type |
| 916a0 | 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | .'(choice...........(const.:tag. |
| 916c0 | 22 57 61 69 74 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 | "Wait".nil)...........(const.:ta |
| 916e0 | 67 20 22 4d 65 72 67 65 20 77 69 74 68 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 22 20 6d 65 | g."Merge.with.current.region".me |
| 91700 | 72 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 20 22 44 69 66 | rge)...........(const.:tag.."Dif |
| 91720 | 66 20 61 67 61 69 6e 73 74 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 22 20 64 69 66 66 29 0a | f.against.current.region".diff). |
| 91740 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 45 64 69 66 66 20 61 67 61 | ..........(const.:tag."Ediff.aga |
| 91760 | 69 6e 73 74 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 22 20 65 64 69 66 66 29 0a 20 20 20 20 | inst.current.region".ediff)..... |
| 91780 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 63 63 65 70 74 20 72 65 77 72 69 74 | ......(const.:tag."Accept.rewrit |
| 917a0 | 65 22 20 61 63 63 65 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 | e".accept)...........(const.:tag |
| 917c0 | 20 22 44 69 73 70 61 74 63 68 22 20 64 69 73 70 61 74 63 68 29 0a 20 20 20 20 20 20 20 20 20 20 | ."Dispatch".dispatch)........... |
| 917e0 | 28 66 75 6e 63 74 69 6f 6e 20 3a 74 61 67 20 22 43 75 73 74 6f 6d 20 61 63 74 69 6f 6e 22 29 29 | (function.:tag."Custom.action")) |
| 91800 | 29 0a 0a 28 64 65 66 66 61 63 65 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 68 69 67 68 6c 69 | )..(defface.gptel-rewrite-highli |
| 91820 | 67 68 74 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 | ght-face...'((((class.color).(mi |
| 91840 | 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a | n-colors.88).(background.dark)). |
| 91860 | 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 30 34 31 37 31 34 22 20 3a 65 78 74 65 | .....:background."#041714".:exte |
| 91880 | 6e 64 20 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 28 28 28 63 6c | nd.t.:inherit.default).....(((cl |
| 918a0 | 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 20 28 62 61 63 6b | ass.color).(min-colors.88).(back |
| 918c0 | 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 | ground.light))......:background. |
| 918e0 | 22 6c 69 67 68 74 20 67 6f 6c 64 65 6e 72 6f 64 20 79 65 6c 6c 6f 77 22 20 3a 65 78 74 65 6e 64 | "light.goldenrod.yellow".:extend |
| 91900 | 20 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 28 74 20 3a 69 6e 68 | .t.:inherit.default).....(t.:inh |
| 91920 | 65 72 69 74 20 73 65 63 6f 6e 64 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 29 29 0a 20 20 22 46 61 | erit.secondary-selection))..."Fa |
| 91940 | 63 65 20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 72 65 67 69 6f 6e 73 20 77 69 74 68 | ce.for.highlighting.regions.with |
| 91960 | 20 70 65 6e 64 69 6e 67 20 72 65 77 72 69 74 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 | .pending.rewrites."...:group.'gp |
| 91980 | 74 65 6c 29 0a 0a 3b 3b 20 2a 20 56 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 76 61 72 2d 6b 65 | tel)..;;.*.Variables..(defvar-ke |
| 919a0 | 79 6d 61 70 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 61 63 74 69 6f 6e 73 2d 6d 61 70 0a 20 | ymap.gptel-rewrite-actions-map.. |
| 919c0 | 20 3a 64 6f 63 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 | .:doc."Keymap.for.gptel.rewrite. |
| 919e0 | 61 63 74 69 6f 6e 73 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 22 52 45 54 22 20 23 27 67 70 74 | actions.at.point."..."RET".#'gpt |
| 91a00 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 0a 20 20 22 3c 6d 6f 75 73 65 2d 31 | el--rewrite-dispatch..."<mouse-1 |
| 91a20 | 3e 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 0a 20 20 22 | >".#'gptel--rewrite-dispatch..." |
| 91a40 | 43 2d 63 20 43 2d 61 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 | C-c.C-a".#'gptel--rewrite-accept |
| 91a60 | 0a 20 20 22 43 2d 63 20 43 2d 72 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 69 74 | ..."C-c.C-r".#'gptel--rewrite-it |
| 91a80 | 65 72 61 74 65 0a 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 | erate..."C-c.C-k".#'gptel--rewri |
| 91aa0 | 74 65 2d 72 65 6a 65 63 74 0a 20 20 22 43 2d 63 20 43 2d 64 22 20 23 27 67 70 74 65 6c 2d 2d 72 | te-reject..."C-c.C-d".#'gptel--r |
| 91ac0 | 65 77 72 69 74 65 2d 64 69 66 66 0a 20 20 22 43 2d 63 20 43 2d 65 22 20 23 27 67 70 74 65 6c 2d | ewrite-diff..."C-c.C-e".#'gptel- |
| 91ae0 | 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 0a 20 20 22 43 2d 63 20 43 2d 6e 22 20 23 27 67 70 74 | -rewrite-ediff..."C-c.C-n".#'gpt |
| 91b00 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6e 65 78 74 0a 20 20 22 43 2d 63 20 43 2d 70 22 20 23 27 67 | el--rewrite-next..."C-c.C-p".#'g |
| 91b20 | 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 76 69 6f 75 73 0a 20 20 22 43 2d 63 20 43 2d | ptel--rewrite-previous..."C-c.C- |
| 91b40 | 6d 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 29 0a 0a 28 64 65 66 | m".#'gptel--rewrite-merge)..(def |
| 91b60 | 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 | var-local.gptel--rewrite-overlay |
| 91b80 | 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 72 65 77 72 69 74 65 20 | s.nil..."List.of.active.rewrite. |
| 91ba0 | 6f 76 65 72 6c 61 79 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 | overlays.in.the.buffer.")..(defv |
| 91bc0 | 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 | ar-local.gptel--rewrite-message. |
| 91be0 | 6e 69 6c 0a 20 20 22 52 65 71 75 65 73 74 2d 73 70 65 63 69 66 69 63 20 69 6e 73 74 72 75 63 74 | nil..."Request-specific.instruct |
| 91c00 | 69 6f 6e 73 20 66 6f 72 20 61 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 2e | ions.for.a.gptel-rewrite.action. |
| 91c20 | 22 29 0a 0a 3b 3b 20 41 64 64 20 74 68 65 20 72 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 | ")..;;.Add.the.rewrite.directive |
| 91c40 | 20 74 6f 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 0a 28 75 6e 6c 65 73 73 20 28 | .to.`gptel-directives'.(unless.( |
| 91c60 | 61 6c 69 73 74 2d 67 65 74 20 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 | alist-get.'rewrite.gptel-directi |
| 91c80 | 76 65 73 29 0a 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 67 70 74 65 6c 2d 64 69 72 65 63 | ves)...(add-to-list.'gptel-direc |
| 91ca0 | 74 69 76 65 73 20 60 28 72 65 77 72 69 74 65 20 2e 20 2c 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 | tives.`(rewrite...,#'gptel--rewr |
| 91cc0 | 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 64 65 66 61 75 6c 74 29 29 29 0a 0a 28 64 65 66 76 61 | ite-directive-default)))..(defva |
| 91ce0 | 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 28 6f 72 | r.gptel--rewrite-directive...(or |
| 91d00 | 20 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 69 72 65 63 | .(alist-get.'rewrite.gptel-direc |
| 91d20 | 74 69 76 65 73 29 0a 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 | tives).......#'gptel--rewrite-di |
| 91d40 | 72 65 63 74 69 76 65 2d 64 65 66 61 75 6c 74 29 0a 20 20 22 41 63 74 69 76 65 20 73 79 73 74 65 | rective-default)..."Active.syste |
| 91d60 | 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 20 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 73 2e 0a 0a | m.message.for.rewrite.actions... |
| 91d80 | 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 | This.variable.is.for.internal.us |
| 91da0 | 65 20 6f 6e 6c 79 2e 20 20 54 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 72 65 77 72 69 74 | e.only...To.customize.the.rewrit |
| 91dc0 | 65 0a 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 73 65 74 20 61 20 73 79 73 74 65 6d 20 6d | e.system.message,.set.a.system.m |
| 91de0 | 65 73 73 61 67 65 20 28 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 67 65 6e 65 72 61 74 | essage.(or.function.that.generat |
| 91e00 | 65 73 0a 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 20 61 73 20 74 68 65 20 76 61 | es.the.system.message).as.the.va |
| 91e20 | 6c 75 65 20 6f 66 20 74 68 65 20 60 72 65 77 72 69 74 65 27 20 6b 65 79 20 69 6e 0a 60 67 70 74 | lue.of.the.`rewrite'.key.in.`gpt |
| 91e40 | 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 3a 0a 0a 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 | el-directives':...(setf.(alist-g |
| 91e60 | 65 74 20 5c 5c 3d 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 | et.\\='rewrite.gptel-directives) |
| 91e80 | 0a 20 20 20 20 20 20 20 23 5c 5c 3d 27 6d 79 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 2d | ........#\\='my-rewrite-message- |
| 91ea0 | 67 65 6e 65 72 61 74 6f 72 29 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 75 73 74 6f 6d 69 | generator)..You.can.also.customi |
| 91ec0 | 7a 65 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 73 2d 68 6f 6f | ze.`gptel-rewrite-directives-hoo |
| 91ee0 | 6b 27 20 74 6f 0a 64 79 6e 61 6d 69 63 61 6c 6c 79 20 69 6e 6a 65 63 74 20 61 20 72 65 77 72 69 | k'.to.dynamically.inject.a.rewri |
| 91f00 | 74 65 2d 73 70 65 63 69 66 69 63 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 22 29 0a 0a 28 | te-specific.system.message.")..( |
| 91f20 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 64 | defun.gptel--rewrite-directive-d |
| 91f40 | 65 66 61 75 6c 74 20 28 29 0a 20 20 22 47 65 6e 65 72 69 63 20 64 69 72 65 63 74 69 76 65 20 66 | efault.()..."Generic.directive.f |
| 91f60 | 6f 72 20 72 65 77 72 69 74 69 6e 67 20 6f 72 20 72 65 66 61 63 74 6f 72 69 6e 67 2e 0a 0a 54 68 | or.rewriting.or.refactoring...Th |
| 91f80 | 65 73 65 20 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6e 6f 74 20 73 70 65 63 69 66 69 | ese.are.instructions.not.specifi |
| 91fa0 | 63 20 74 6f 20 61 6e 79 20 70 61 72 74 69 63 75 6c 61 72 20 72 65 71 75 69 72 65 64 0a 63 68 61 | c.to.any.particular.required.cha |
| 91fc0 | 6e 67 65 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 73 74 72 69 6e 67 20 69 73 20 69 6e 74 | nge...The.returned.string.is.int |
| 91fe0 | 65 72 70 72 65 74 65 64 20 61 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 | erpreted.as.the.system.message.f |
| 92000 | 6f 72 20 74 68 65 0a 72 65 77 72 69 74 65 20 72 65 71 75 65 73 74 2e 20 20 54 6f 20 75 73 65 20 | or.the.rewrite.request...To.use. |
| 92020 | 79 6f 75 72 20 6f 77 6e 2c 20 61 64 64 20 61 20 64 69 66 66 65 72 65 6e 74 20 64 69 72 65 63 74 | your.own,.add.a.different.direct |
| 92040 | 69 76 65 20 74 6f 0a 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2c 20 6f 72 20 61 64 | ive.to.`gptel-directives',.or.ad |
| 92060 | 64 20 74 6f 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 73 2d 68 | d.to.`gptel-rewrite-directives-h |
| 92080 | 6f 6f 6b 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 6f 72 20 28 73 61 76 65 2d 6d 61 | ook',.which.see."...(or.(save-ma |
| 920a0 | 72 6b 2d 61 6e 64 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f | rk-and-excursion.........(run-ho |
| 920c0 | 6f 6b 2d 77 69 74 68 2d 61 72 67 73 2d 75 6e 74 69 6c 2d 73 75 63 63 65 73 73 0a 20 20 20 20 20 | ok-with-args-until-success...... |
| 920e0 | 20 20 20 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 73 2d 68 6f | ....'gptel-rewrite-directives-ho |
| 92100 | 6f 6b 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 61 6e 67 20 28 64 6f 77 6e 63 61 73 | ok)).......(let*.((lang.(downcas |
| 92120 | 65 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 6d 61 6a 6f | e.(gptel--strip-mode-suffix.majo |
| 92140 | 72 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 74 69 63 6c 65 20 | r-mode)))..............(article. |
| 92160 | 28 69 66 20 28 61 6e 64 20 6c 61 6e 67 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 | (if.(and.lang.(not.(string-empty |
| 92180 | 2d 70 20 6c 61 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -p.lang))....................... |
| 921a0 | 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 61 72 65 66 20 6c 61 6e 67 20 30 29 20 27 28 3f | .........(memq.(aref.lang.0).'(? |
| 921c0 | 61 20 3f 65 20 3f 69 20 3f 6f 20 3f 75 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.?e.?i.?o.?u)))................ |
| 921e0 | 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 22 20 22 61 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 | ..........."an"."a"))).........( |
| 92200 | 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 6f 67 2d 6d 6f 64 65 29 0a 20 | if.(derived-mode-p.'prog-mode).. |
| 92220 | 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 59 6f 75 20 | ...........(format.(concat."You. |
| 92240 | 61 72 65 20 25 73 20 25 73 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 22 0a 20 20 20 20 20 20 20 | are.%s.%s.programmer..."........ |
| 92260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 46 6f 6c 6c 6f 77 20 6d 79 20 | ....................."Follow.my. |
| 92280 | 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 66 61 63 74 6f 72 20 25 73 20 63 6f 64 | instructions.and.refactor.%s.cod |
| 922a0 | 65 20 49 20 70 72 6f 76 69 64 65 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.I.provide.\n"................. |
| 922c0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 20 47 65 6e 65 72 61 74 65 20 4f 4e 4c 59 20 25 73 20 | ............"-.Generate.ONLY.%s. |
| 922e0 | 63 6f 64 65 20 61 73 20 6f 75 74 70 75 74 2c 20 77 69 74 68 6f 75 74 20 22 0a 20 20 20 20 20 20 | code.as.output,.without."....... |
| 92300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 79 20 65 78 70 6c 61 | ......................"any.expla |
| 92320 | 6e 61 74 69 6f 6e 20 6f 72 20 6d 61 72 6b 64 6f 77 6e 20 63 6f 64 65 20 66 65 6e 63 65 73 2e 5c | nation.or.markdown.code.fences.\ |
| 92340 | 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | n"............................." |
| 92360 | 2d 20 47 65 6e 65 72 61 74 65 20 63 6f 64 65 20 69 6e 20 66 75 6c 6c 2c 20 64 6f 20 6e 6f 74 20 | -.Generate.code.in.full,.do.not. |
| 92380 | 61 62 62 72 65 76 69 61 74 65 20 6f 72 20 6f 6d 69 74 20 63 6f 64 65 2e 5c 6e 22 0a 20 20 20 20 | abbreviate.or.omit.code.\n"..... |
| 923a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 20 44 6f 20 6e 6f | ........................"-.Do.no |
| 923c0 | 74 20 61 73 6b 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6c 61 72 69 66 69 63 61 74 69 6f 6e 2c | t.ask.for.further.clarification, |
| 923e0 | 20 61 6e 64 20 6d 61 6b 65 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .and.make."..................... |
| 92400 | 20 20 20 20 20 20 20 20 22 61 6e 79 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 79 6f 75 20 6e 65 65 | ........"any.assumptions.you.nee |
| 92420 | 64 20 74 6f 20 66 6f 6c 6c 6f 77 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 22 29 0a 20 20 20 20 | d.to.follow.instructions.")..... |
| 92440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 74 69 63 6c 65 20 6c 61 6e 67 20 6c 61 6e | ................article.lang.lan |
| 92460 | 67 20 6c 61 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 | g.lang)...........(concat....... |
| 92480 | 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 61 6e 67 29 0a 20 | .....(if.(string-empty-p.lang).. |
| 924a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 59 6f 75 20 61 72 65 20 61 6e 20 65 64 69 74 6f 72 | .............."You.are.an.editor |
| 924c0 | 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f 75 20 61 72 65 | ."..............(format."You.are |
| 924e0 | 20 25 73 20 25 73 20 65 64 69 74 6f 72 2e 22 20 61 72 74 69 63 6c 65 20 6c 61 6e 67 29 29 0a 20 | .%s.%s.editor.".article.lang)).. |
| 92500 | 20 20 20 20 20 20 20 20 20 20 22 20 20 46 6f 6c 6c 6f 77 20 6d 79 20 69 6e 73 74 72 75 63 74 69 | .........."..Follow.my.instructi |
| 92520 | 6f 6e 73 20 61 6e 64 20 69 6d 70 72 6f 76 65 20 6f 72 20 72 65 77 72 69 74 65 20 74 68 65 20 74 | ons.and.improve.or.rewrite.the.t |
| 92540 | 65 78 74 20 49 20 70 72 6f 76 69 64 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 20 47 65 | ext.I.provide."............"..Ge |
| 92560 | 6e 65 72 61 74 65 20 4f 4e 4c 59 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 74 65 78 74 | nerate.ONLY.the.replacement.text |
| 92580 | 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 77 69 74 68 6f 75 74 20 61 6e 79 20 65 78 70 6c | ,"............".without.any.expl |
| 925a0 | 61 6e 61 74 69 6f 6e 20 6f 72 20 6d 61 72 6b 64 6f 77 6e 20 63 6f 64 65 20 66 65 6e 63 65 73 2e | anation.or.markdown.code.fences. |
| 925c0 | 22 29 29 29 29 29 0a 0a 3b 3b 20 2a 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 | ")))))..;;.*.Helper.functions..( |
| 925e0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6b 65 79 2d 68 65 6c 70 20 28 63 | defun.gptel--rewrite-key-help.(c |
| 92600 | 61 6c 6c 62 61 63 6b 29 0a 20 20 22 45 6c 64 6f 63 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 | allback)..."Eldoc.documentation. |
| 92620 | 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 61 63 74 69 6f | function.for.gptel.rewrite.actio |
| 92640 | 6e 73 2e 0a 0a 43 41 4c 4c 42 41 43 4b 20 69 73 20 73 75 70 70 6c 69 65 64 20 62 79 20 45 6c 64 | ns...CALLBACK.is.supplied.by.Eld |
| 92660 | 6f 63 2c 20 73 65 65 0a 60 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e | oc,.see.`eldoc-documentation-fun |
| 92680 | 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 72 65 | ctions'."...(when.(and.gptel--re |
| 926a0 | 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 | write-overlays..............(get |
| 926c0 | 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 | -char-property.(point).'gptel-re |
| 926e0 | 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 0a | write)).......(funcall.callback. |
| 92700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 73 75 62 73 74 69 74 75 | ...............(format.(substitu |
| 92720 | 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 25 73 20 72 65 77 72 69 74 65 20 61 76 61 69 | te-command-keys."%s.rewrite.avai |
| 92740 | 6c 61 62 6c 65 3a 20 61 63 63 65 70 74 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | lable:.accept.\\[gptel--rewrite- |
| 92760 | 61 63 63 65 70 74 5d 2c 20 69 74 65 72 61 74 65 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 72 69 | accept],.iterate.\\[gptel--rewri |
| 92780 | 74 65 2d 69 74 65 72 61 74 65 5d 2c 20 63 6c 65 61 72 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 | te-iterate],.clear.\\[gptel--rew |
| 927a0 | 72 69 74 65 2d 72 65 6a 65 63 74 5d 2c 20 6d 65 72 67 65 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 | rite-reject],.merge.\\[gptel--re |
| 927c0 | 77 72 69 74 65 2d 6d 65 72 67 65 5d 2c 20 64 69 66 66 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 | write-merge],.diff.\\[gptel--rew |
| 927e0 | 72 69 74 65 2d 64 69 66 66 5d 20 6f 72 20 65 64 69 66 66 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 | rite-diff].or.ediff.\\[gptel--re |
| 92800 | 77 72 69 74 65 2d 65 64 69 66 66 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | write-ediff]").................. |
| 92820 | 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | ......(propertize.(gptel--model- |
| 92840 | 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 20 27 66 61 63 65 20 27 6d 6f 64 65 2d 6c 69 | name.gptel-model).'face.'mode-li |
| 92860 | 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | ne-emphasis)))))..(defun.gptel-- |
| 92880 | 72 65 77 72 69 74 65 2d 6d 6f 76 65 20 28 73 65 61 72 63 68 2d 66 75 6e 63 29 0a 20 20 22 4d 6f | rewrite-move.(search-func)..."Mo |
| 928a0 | 76 65 20 64 69 72 65 63 74 69 6f 6e 61 6c 6c 79 20 74 6f 20 61 20 67 70 74 65 6c 20 72 65 77 72 | ve.directionally.to.a.gptel.rewr |
| 928c0 | 69 74 65 20 6c 6f 63 61 74 69 6f 6e 20 75 73 69 6e 67 20 53 45 41 52 43 48 2d 46 55 4e 43 2e 22 | ite.location.using.SEARCH-FUNC." |
| 928e0 | 0a 20 20 28 6c 65 74 2a 20 28 28 6f 76 20 28 63 64 72 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f | ...(let*.((ov.(cdr.(get-char-pro |
| 92900 | 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c | perty-and-overlay.(point).'gptel |
| 92920 | 2d 72 65 77 72 69 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 74 20 28 73 61 76 65 2d 65 | -rewrite)))..........(pt.(save-e |
| 92940 | 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6f 76 0a 20 | xcursion................(if.ov.. |
| 92960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 0a 20 20 20 | ..................(goto-char.... |
| 92980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 | .................(funcall.search |
| 929a0 | 2d 66 75 6e 63 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 27 67 70 74 65 6c 2d | -func.(overlay-start.ov).'gptel- |
| 929c0 | 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f | rewrite))..................(goto |
| 929e0 | 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 31 2d | -char...................(max.(1- |
| 92a00 | 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 2d 66 75 6e 63 20 28 70 6f 69 6e 74 29 20 27 67 | .(funcall.search-func.(point).'g |
| 92a20 | 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-rewrite)).................. |
| 92a40 | 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ......(point-min))))............ |
| 92a60 | 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 2d 66 75 6e 63 20 28 70 6f 69 6e 74 29 | ....(funcall.search-func.(point) |
| 92a80 | 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 67 65 74 | .'gptel-rewrite)))).....(if.(get |
| 92aa0 | 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 74 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | -char-property.pt.'gptel-rewrite |
| 92ac0 | 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 74 29 0a 20 20 20 20 20 20 28 | ).........(goto-char.pt).......( |
| 92ae0 | 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 66 75 72 74 68 65 72 20 72 65 77 72 69 74 65 20 72 | user-error."No.further.rewrite.r |
| 92b00 | 65 67 69 6f 6e 73 21 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 | egions!"))))..(defun.gptel--rewr |
| 92b20 | 69 74 65 2d 6e 65 78 74 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 6e 65 78 74 20 70 65 6e 64 69 6e | ite-next.()..."Go.to.next.pendin |
| 92b40 | 67 20 4c 4c 4d 20 72 65 77 72 69 74 65 20 69 6e 20 62 75 66 66 65 72 2c 20 69 66 20 6f 6e 65 20 | g.LLM.rewrite.in.buffer,.if.one. |
| 92b60 | 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 | exists."...(interactive)...(gpte |
| 92b80 | 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 6f 76 65 20 23 27 6e 65 78 74 2d 73 69 6e 67 6c 65 2d 63 68 | l--rewrite-move.#'next-single-ch |
| 92ba0 | 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | ar-property-change))..(defun.gpt |
| 92bc0 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 47 6f 20 74 6f | el--rewrite-previous.()..."Go.to |
| 92be0 | 20 70 72 65 76 69 6f 75 73 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 77 72 69 74 65 20 69 6e | .previous.pending.LLM.rewrite.in |
| 92c00 | 20 62 75 66 66 65 72 2c 20 69 66 20 6f 6e 65 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 | .buffer,.if.one.exists."...(inte |
| 92c20 | 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 6f 76 65 20 | ractive)...(gptel--rewrite-move. |
| 92c40 | 23 27 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d | #'previous-single-char-property- |
| 92c60 | 63 68 61 6e 67 65 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | change))..(defun.gptel--rewrite- |
| 92c80 | 6f 76 65 72 6c 61 79 2d 61 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 43 68 65 | overlay-at.(&optional.pt)..."Che |
| 92ca0 | 63 6b 20 66 6f 72 20 61 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 20 61 | ck.for.a.gptel.rewrite.overlay.a |
| 92cc0 | 74 20 50 54 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 0a 49 66 20 6e 6f 20 73 75 69 74 61 | t.PT.and.return.it...If.no.suita |
| 92ce0 | 62 6c 65 20 6f 76 65 72 6c 61 79 20 69 73 20 66 6f 75 6e 64 2c 20 72 61 69 73 65 20 61 6e 20 65 | ble.overlay.is.found,.raise.an.e |
| 92d00 | 72 72 6f 72 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 | rror."...(pcase-let.((`(,respons |
| 92d20 | 65 20 2e 20 2c 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 | e...,ov)................(get-cha |
| 92d40 | 72 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 6f 72 20 70 74 20 28 70 | r-property-and-overlay.(or.pt.(p |
| 92d60 | 6f 69 6e 74 29 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 | oint)).'gptel-rewrite))......... |
| 92d80 | 20 20 20 20 20 20 28 64 69 66 66 2d 65 6e 74 69 72 65 2d 62 75 66 66 65 72 73 20 6e 69 6c 29 29 | ......(diff-entire-buffers.nil)) |
| 92da0 | 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 76 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 6f 75 | .....(unless.ov.(user-error."Cou |
| 92dc0 | 6c 64 20 6e 6f 74 20 66 69 6e 64 20 72 65 67 69 6f 6e 20 62 65 69 6e 67 20 72 65 77 72 69 74 74 | ld.not.find.region.being.rewritt |
| 92de0 | 65 6e 2e 22 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 72 65 73 70 6f 6e 73 65 20 28 75 73 65 | en.")).....(unless.response.(use |
| 92e00 | 72 2d 65 72 72 6f 72 20 22 4e 6f 20 4c 4c 4d 20 6f 75 74 70 75 74 20 61 76 61 69 6c 61 62 6c 65 | r-error."No.LLM.output.available |
| 92e20 | 20 66 6f 72 20 74 68 69 73 20 72 65 77 72 69 74 65 2e 22 29 29 0a 20 20 20 20 6f 76 29 29 0a 0a | .for.this.rewrite.")).....ov)).. |
| 92e40 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 70 61 72 65 2d 62 75 | (defun.gptel--rewrite-prepare-bu |
| 92e60 | 66 66 65 72 20 28 6f 76 73 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 50 72 65 70 | ffer.(ovs.&optional.buf)..."Prep |
| 92e80 | 61 72 65 20 6e 65 77 20 62 75 66 66 65 72 20 77 69 74 68 20 4c 4c 4d 20 63 68 61 6e 67 65 73 20 | are.new.buffer.with.LLM.changes. |
| 92ea0 | 61 70 70 6c 69 65 64 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 0a 54 68 69 73 20 69 73 20 | applied.and.return.it...This.is. |
| 92ec0 | 75 73 65 64 20 66 6f 72 20 28 65 29 64 69 66 66 20 70 75 72 70 6f 73 65 73 2e 0a 0a 52 45 53 50 | used.for.(e)diff.purposes...RESP |
| 92ee0 | 4f 4e 53 45 20 69 73 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2e 20 20 4f 56 53 20 61 | ONSE.is.the.LLM.response...OVS.a |
| 92f00 | 72 65 20 74 68 65 20 6f 76 65 72 6c 61 79 73 20 73 70 65 63 69 66 79 69 6e 67 0a 74 68 65 20 63 | re.the.overlays.specifying.the.c |
| 92f20 | 68 61 6e 67 65 64 20 72 65 67 69 6f 6e 73 2e 20 42 55 46 20 69 73 20 74 68 65 20 28 63 75 72 72 | hanged.regions..BUF.is.the.(curr |
| 92f40 | 65 6e 74 29 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 65 74 71 20 62 75 66 20 28 6f 72 20 62 75 | ent).buffer."...(setq.buf.(or.bu |
| 92f60 | 66 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 | f.(overlay-buffer.(or.(car-safe. |
| 92f80 | 6f 76 73 29 20 6f 76 73 29 29 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | ovs).ovs))))...(with-current-buf |
| 92fa0 | 66 65 72 20 62 75 66 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6d 69 6e 20 28 70 6f 69 6e 74 2d 6d | fer.buf.....(let.((pmin.(point-m |
| 92fc0 | 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | in))...........(pmax.(point-max) |
| 92fe0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 74 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 | )...........(pt...(point))...... |
| 93000 | 20 20 20 20 20 3b 3b 20 28 6d 6f 64 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 | .....;;.(mode.major-mode)....... |
| 93020 | 20 20 20 20 28 6e 65 77 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 | ....(newbuf.(get-buffer-create." |
| 93040 | 2a 67 70 74 65 6c 2d 64 69 66 66 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 | *gptel-diff*"))...........(inhib |
| 93060 | 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 | it-read-only.t)...........(inhib |
| 93080 | 69 74 2d 6d 65 73 73 61 67 65 20 74 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 | it-message.t)).......(save-restr |
| 930a0 | 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 20 20 28 | iction.........(widen).........( |
| 930c0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6e 65 77 62 75 66 0a 20 20 20 20 20 | with-current-buffer.newbuf...... |
| 930e0 | 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 | .....(erase-buffer)...........(i |
| 93100 | 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 75 66 29 29 29 0a 20 20 | nsert-buffer-substring.buf)))... |
| 93120 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6e 65 77 62 75 66 0a | ....(with-current-buffer.newbuf. |
| 93140 | 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 70 6d 69 6e 20 70 | ........(narrow-to-region.pmin.p |
| 93160 | 6d 61 78 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 74 29 0a 20 20 20 20 | max).........(goto-char.pt)..... |
| 93180 | 20 20 20 20 3b 3b 20 57 65 20 6d 6f 73 74 6c 79 20 6a 75 73 74 20 77 61 6e 74 20 66 6f 6e 74 2d | ....;;.We.mostly.just.want.font- |
| 931a0 | 6c 6f 63 6b 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 | locking.........;;.(delay-mode-h |
| 931c0 | 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 | ooks.(funcall.mode)).........;;. |
| 931e0 | 41 70 70 6c 79 20 74 68 65 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 6e 65 77 20 62 75 66 | Apply.the.changes.to.the.new.buf |
| 93200 | 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 | fer.........(save-excursion..... |
| 93220 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 20 6f 76 73 | ......(gptel--rewrite-accept.ovs |
| 93240 | 20 6e 65 77 62 75 66 29 29 29 0a 20 20 20 20 20 20 6e 65 77 62 75 66 29 29 29 0a 0a 3b 3b 20 2a | .newbuf))).......newbuf)))..;;.* |
| 93260 | 20 52 65 77 72 69 74 65 20 61 63 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 | .Rewrite.action.functions..(defu |
| 93280 | 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 72 65 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e | n.gptel--rewrite-reject.(&option |
| 932a0 | 61 6c 20 6f 76 73 29 0a 20 20 22 43 6c 65 61 72 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 | al.ovs)..."Clear.pending.LLM.res |
| 932c0 | 70 6f 6e 73 65 73 20 69 6e 20 4f 56 53 20 6f 72 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 | ponses.in.OVS.or.at.point."...(i |
| 932e0 | 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | nteractive.(list.(gptel--rewrite |
| 93300 | 2d 6f 76 65 72 6c 61 79 2d 61 74 29 29 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 28 65 6e | -overlay-at)))...(dolist.(ov.(en |
| 93320 | 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 29 29 0a 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d | sure-list.ovs)).....(setq.gptel- |
| 93340 | 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 28 64 65 6c 71 20 6f 76 20 67 70 74 65 6c | -rewrite-overlays.(delq.ov.gptel |
| 93360 | 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 | --rewrite-overlays)).....(delete |
| 93380 | 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 2d 72 | -overlay.ov))...(unless.gptel--r |
| 933a0 | 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b | ewrite-overlays.....(remove-hook |
| 933c0 | 20 27 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 20 | .'eldoc-documentation-functions. |
| 933e0 | 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6b 65 79 2d 68 65 6c 70 20 27 6c 6f 63 61 6c 29 | 'gptel--rewrite-key-help.'local) |
| 93400 | 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 43 6c 65 61 72 65 64 20 70 65 6e 64 69 6e 67 20 4c 4c | )...(message."Cleared.pending.LL |
| 93420 | 4d 20 72 65 73 70 6f 6e 73 65 28 73 29 2e 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | M.response(s)."))..(defun.gptel- |
| 93440 | 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 20 62 | -rewrite-accept.(&optional.ovs.b |
| 93460 | 75 66 29 0a 20 20 22 41 70 70 6c 79 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 | uf)..."Apply.pending.LLM.respons |
| 93480 | 65 73 20 69 6e 20 4f 56 53 20 6f 72 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 42 55 46 20 69 73 20 74 | es.in.OVS.or.at.point...BUF.is.t |
| 934a0 | 68 65 20 62 75 66 66 65 72 20 74 6f 20 6d 6f 64 69 66 79 2c 20 64 65 66 61 75 6c 74 73 20 74 6f | he.buffer.to.modify,.defaults.to |
| 934c0 | 20 74 68 65 20 6f 76 65 72 6c 61 79 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 | .the.overlay.buffer."...(interac |
| 934e0 | 74 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c | tive.(list.(gptel--rewrite-overl |
| 93500 | 61 79 2d 61 74 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 62 75 66 20 28 | ay-at)))...(when-let*.((ov-buf.( |
| 93520 | 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6f 76 73 | overlay-buffer.(or.(car-safe.ovs |
| 93540 | 29 20 6f 76 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 6f 72 20 | ).ovs)))...............(buf.(or. |
| 93560 | 62 75 66 20 6f 76 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 | buf.ov-buf))...............((buf |
| 93580 | 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 | fer-live-p.buf))).....(with-curr |
| 935a0 | 65 6e 74 2d 62 75 66 66 65 72 20 6f 76 2d 62 75 66 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 | ent-buffer.ov-buf.......(cl-loop |
| 935c0 | 20 66 6f 72 20 6f 76 20 69 6e 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 29 0a 20 20 20 | .for.ov.in.(ensure-list.ovs).... |
| 935e0 | 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6f 76 2d 62 65 67 20 3d 20 28 6f 76 65 72 6c 61 | ............for.ov-beg.=.(overla |
| 93600 | 79 2d 73 74 61 72 74 20 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6f | y-start.ov)................for.o |
| 93620 | 76 2d 65 6e 64 20 3d 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 0a 20 20 20 20 20 20 20 | v-end.=.(overlay-end.ov)........ |
| 93640 | 20 20 20 20 20 20 20 20 66 6f 72 20 72 65 73 70 6f 6e 73 65 20 3d 20 28 6f 76 65 72 6c 61 79 2d | ........for.response.=.(overlay- |
| 93660 | 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 | get.ov.'gptel-rewrite).......... |
| 93680 | 20 20 20 20 20 20 64 6f 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 62 65 66 6f 72 65 | ......do.(overlay-put.ov.'before |
| 936a0 | 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 | -string.nil)................(wit |
| 936c0 | 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 | h-current-buffer.buf............ |
| 936e0 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6f 76 2d 62 65 67 29 0a 20 20 20 20 20 20 20 | ......(goto-char.ov-beg)........ |
| 93700 | 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 6f 76 2d 62 65 67 20 | ..........(delete-region.ov-beg. |
| 93720 | 6f 76 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 | ov-end)..................(insert |
| 93740 | 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 70 6c | .response)))).....(message."Repl |
| 93760 | 61 63 65 64 20 72 65 67 69 6f 6e 28 73 29 20 77 69 74 68 20 4c 4c 4d 20 6f 75 74 70 75 74 20 69 | aced.region(s).with.LLM.output.i |
| 93780 | 6e 20 62 75 66 66 65 72 3a 20 25 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 | n.buffer:.%s."..............(buf |
| 937a0 | 66 65 72 2d 6e 61 6d 65 20 6f 76 2d 62 75 66 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 | fer-name.ov-buf))))..(defalias.' |
| 937c0 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 69 74 65 72 61 74 65 20 27 67 70 74 65 6c 2d 72 65 | gptel--rewrite-iterate.'gptel-re |
| 937e0 | 77 72 69 74 65 0a 20 20 22 49 74 65 72 61 74 65 20 6f 6e 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 | write..."Iterate.on.pending.LLM. |
| 93800 | 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | response.at.point.")..(defun.gpt |
| 93820 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 20 | el--rewrite-diff.(&optional.ovs. |
| 93840 | 73 77 69 74 63 68 65 73 29 0a 20 20 22 44 69 66 66 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 | switches)..."Diff.pending.LLM.re |
| 93860 | 73 70 6f 6e 73 65 73 20 69 6e 20 4f 56 53 20 6f 72 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 | sponses.in.OVS.or.at.point."...( |
| 93880 | 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | interactive.(list.(gptel--rewrit |
| 938a0 | 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f | e-overlay-at)))...(when-let*.((o |
| 938c0 | 76 2d 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 | v-buf.(overlay-buffer.(or.(car-s |
| 938e0 | 61 66 65 20 6f 76 73 29 20 6f 76 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | afe.ovs).ovs)))...............(( |
| 93900 | 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 6f 76 2d 62 75 66 29 29 29 0a 20 20 20 20 28 72 65 71 | buffer-live-p.ov-buf))).....(req |
| 93920 | 75 69 72 65 20 27 64 69 66 66 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 65 77 62 75 66 20 28 | uire.'diff).....(let*.((newbuf.( |
| 93940 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 70 61 72 65 2d 62 75 66 66 65 72 20 6f 76 | gptel--rewrite-prepare-buffer.ov |
| 93960 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 66 66 2d 62 75 66 20 28 64 69 66 66 2d 6e | s))............(diff-buf.(diff-n |
| 93980 | 6f 2d 73 65 6c 65 63 74 20 6f 76 2d 62 75 66 20 6e 65 77 62 75 66 20 73 77 69 74 63 68 65 73 29 | o-select.ov-buf.newbuf.switches) |
| 939a0 | 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 69 | )).......(with-current-buffer.di |
| 939c0 | 66 66 2d 62 75 66 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 64 69 66 66 2d | ff-buf.........(setq-local.diff- |
| 939e0 | 6a 75 6d 70 2d 74 6f 2d 6f 6c 64 2d 66 69 6c 65 20 74 29 29 0a 20 20 20 20 20 20 28 64 69 73 70 | jump-to-old-file.t)).......(disp |
| 93a00 | 6c 61 79 2d 62 75 66 66 65 72 20 64 69 66 66 2d 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | lay-buffer.diff-buf))))..(defun. |
| 93a20 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 | gptel--rewrite-ediff.(&optional. |
| 93a40 | 6f 76 73 29 0a 20 20 22 45 64 69 66 66 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e | ovs)..."Ediff.pending.LLM.respon |
| 93a60 | 73 65 73 20 69 6e 20 4f 56 53 20 6f 72 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 65 | ses.in.OVS.or.at.point."...(inte |
| 93a80 | 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 | ractive.(list.(gptel--rewrite-ov |
| 93aa0 | 65 72 6c 61 79 2d 61 74 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 62 75 | erlay-at)))...(when-let*.((ov-bu |
| 93ac0 | 66 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 | f.(overlay-buffer.(or.(car-safe. |
| 93ae0 | 6f 76 73 29 20 6f 76 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 66 | ovs).ovs)))...............((buff |
| 93b00 | 65 72 2d 6c 69 76 65 2d 70 20 6f 76 2d 62 75 66 29 29 29 0a 20 20 20 20 28 6c 65 74 72 65 63 20 | er-live-p.ov-buf))).....(letrec. |
| 93b20 | 28 28 6e 65 77 62 75 66 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 70 61 72 65 | ((newbuf.(gptel--rewrite-prepare |
| 93b40 | 2d 62 75 66 66 65 72 20 6f 76 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 77 63 20 | -buffer.ovs))..............(cwc. |
| 93b60 | 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 0a | (current-window-configuration)). |
| 93b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 69 64 65 73 68 6f 77 0a 20 20 20 20 20 20 20 20 20 | .............(hideshow.......... |
| 93ba0 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 73 74 6f 72 65 29 | .....(lambda.(&optional.restore) |
| 93bc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 28 65 6e | .................(dolist.(ov.(en |
| 93be0 | 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sure-list.ovs))................. |
| 93c00 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 6f 76 | ..(when-let*.((overlay-buffer.ov |
| 93c20 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 | )).....................(let.((di |
| 93c40 | 73 70 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 64 69 73 70 6c 61 79 29 29 0a 20 20 | sp.(overlay-get.ov.'display))... |
| 93c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 6f 72 65 64 20 | ........................(stored. |
| 93c80 | 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 2d 65 64 69 66 66 29 29 29 | (overlay-get.ov.'gptel--ediff))) |
| 93ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d | .......................(overlay- |
| 93cc0 | 70 75 74 20 6f 76 20 27 64 69 73 70 6c 61 79 20 28 61 6e 64 20 72 65 73 74 6f 72 65 20 73 74 6f | put.ov.'display.(and.restore.sto |
| 93ce0 | 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 | red)).......................(ove |
| 93d00 | 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 2d 65 64 69 66 66 20 28 75 6e 6c 65 73 | rlay-put.ov.'gptel--ediff.(unles |
| 93d20 | 73 20 72 65 73 74 6f 72 65 20 64 69 73 70 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | s.restore.disp)))))))........... |
| 93d40 | 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 0a 20 20 20 20 20 20 20 | ...(gptel--ediff-restore........ |
| 93d60 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(lambda.()............... |
| 93d80 | 20 20 28 77 68 65 6e 20 28 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 20 | ..(when.(window-configuration-p. |
| 93da0 | 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 | cwc)...................(set-wind |
| 93dc0 | 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 77 63 29 29 0a 20 20 20 20 20 20 20 20 20 | ow-configuration.cwc)).......... |
| 93de0 | 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 69 64 65 73 68 6f 77 20 27 72 65 73 74 6f 72 | .......(funcall.hideshow.'restor |
| 93e00 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 | e).................(remove-hook. |
| 93e20 | 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 | 'ediff-quit-hook.gptel--ediff-re |
| 93e40 | 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 69 64 65 73 68 6f | store)))).......(funcall.hidesho |
| 93e60 | 77 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 | w).......(add-hook.'ediff-quit-h |
| 93e80 | 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 | ook.gptel--ediff-restore)....... |
| 93ea0 | 28 65 64 69 66 66 2d 62 75 66 66 65 72 73 20 6f 76 2d 62 75 66 20 6e 65 77 62 75 66 29 29 29 29 | (ediff-buffers.ov-buf.newbuf)))) |
| 93ec0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 20 28 26 | ..(defun.gptel--rewrite-merge.(& |
| 93ee0 | 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 29 0a 20 20 22 49 6e 73 65 72 74 20 70 65 6e 64 69 6e 67 20 | optional.ovs)..."Insert.pending. |
| 93f00 | 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 69 6e 20 4f 56 53 20 61 73 20 6d 65 72 67 65 20 63 6f | LLM.responses.in.OVS.as.merge.co |
| 93f20 | 6e 66 6c 69 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 | nflicts."...(interactive.(list.( |
| 93f40 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 29 29 0a 20 20 28 | gptel--rewrite-overlay-at)))...( |
| 93f60 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 | when-let*.((ov-buf.(overlay-buff |
| 93f80 | 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6f 76 73 29 20 6f 76 73 29 29 29 0a 20 20 20 | er.(or.(car-safe.ovs).ovs))).... |
| 93fa0 | 20 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 6f 76 2d 62 75 | ...........((buffer-live-p.ov-bu |
| 93fc0 | 66 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 76 | f))).....(with-current-buffer.ov |
| 93fe0 | 2d 62 75 66 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 68 61 6e 67 65 64 29 29 0a 20 20 20 20 | -buf.......(let.((changed))..... |
| 94000 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 | ....(dolist.(ov.(ensure-list.ovs |
| 94020 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 | ))...........(save-excursion.... |
| 94040 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6e 65 77 2d 73 74 72 20 28 6f | .........(when-let*.((new-str.(o |
| 94060 | 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 29 0a | verlay-get.ov.'gptel-rewrite))). |
| 94080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 6d 65 72 67 65 0a 20 20 | ..............;;.Insert.merge... |
| 940a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d | ............(goto-char.(overlay- |
| 940c0 | 73 74 61 72 74 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | start.ov))...............(unless |
| 940e0 | 20 28 62 6f 6c 70 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 | .(bolp).(insert."\n")).......... |
| 94100 | 20 20 20 20 20 28 69 6e 73 65 72 74 2d 62 65 66 6f 72 65 2d 6d 61 72 6b 65 72 73 20 22 3c 3c 3c | .....(insert-before-markers."<<< |
| 94120 | 3c 3c 3c 3c 20 6f 72 69 67 69 6e 61 6c 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | <<<<.original\n")............... |
| 94140 | 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 29 0a 20 20 20 | (goto-char.(overlay-end.ov)).... |
| 94160 | 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 6c 70 29 20 28 69 6e 73 65 72 | ...........(unless.(bolp).(inser |
| 94180 | 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 | t."\n"))...............(insert.. |
| 941a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 20 6e 65 77 2d 73 74 | .............."=======\n".new-st |
| 941c0 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 3e 3e 3e 3e 3e 3e 3e 20 22 20 28 67 | r................"\n>>>>>>>.".(g |
| 941e0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | ptel-backend-name.gptel-backend) |
| 94200 | 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 68 61 6e 67 | ."\n")...............(setq.chang |
| 94220 | 65 64 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 68 61 6e 67 65 64 20 28 | ed.t)))).........(when.changed.( |
| 94240 | 73 6d 65 72 67 65 2d 6d 6f 64 65 20 31 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 | smerge-mode.1))).......(gptel--r |
| 94260 | 65 77 72 69 74 65 2d 72 65 6a 65 63 74 20 6f 76 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ewrite-reject.ovs))))..(defun.gp |
| 94280 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 20 28 26 6f 70 74 69 6f 6e 61 6c | tel--rewrite-dispatch.(&optional |
| 942a0 | 20 6f 76 20 63 69 29 0a 20 20 22 44 69 73 70 61 74 63 68 20 61 63 74 69 6f 6e 73 20 66 6f 72 20 | .ov.ci)..."Dispatch.actions.for. |
| 942c0 | 67 70 74 65 6c 20 72 65 77 72 69 74 65 73 2e 0a 0a 4f 56 20 69 73 20 74 68 65 20 72 65 77 72 69 | gptel.rewrites...OV.is.the.rewri |
| 942e0 | 74 65 20 6f 76 65 72 6c 61 79 2c 20 43 49 20 69 73 20 74 72 75 65 20 66 6f 72 20 69 6e 74 65 72 | te.overlay,.CI.is.true.for.inter |
| 94300 | 61 63 74 69 76 65 20 63 61 6c 6c 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c | active.calls."...(interactive.(l |
| 94320 | 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 20 | ist.(gptel--rewrite-overlay-at). |
| 94340 | 74 29 29 0a 20 20 28 6c 65 74 20 28 28 63 68 6f 69 63 65 29 29 0a 20 20 20 20 28 75 6e 77 69 6e | t))...(let.((choice)).....(unwin |
| 94360 | 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 63 | d-protect.........(pcase-let.((c |
| 94380 | 68 6f 69 63 65 73 20 27 28 28 3f 61 20 22 61 63 63 65 70 74 22 29 20 28 3f 6b 20 22 72 65 6a 65 | hoices.'((?a."accept").(?k."reje |
| 943a0 | 63 74 22 29 20 28 3f 72 20 22 69 74 65 72 61 74 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ct").(?r."iterate")............. |
| 943c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 6d 20 22 6d 65 72 67 65 22 29 20 | ...................(?m."merge"). |
| 943e0 | 28 3f 64 20 22 64 69 66 66 22 29 20 28 3f 65 20 22 65 64 69 66 66 22 29 29 29 0a 20 20 20 20 20 | (?d."diff").(?e."ediff")))...... |
| 94400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 69 6e 74 2d 73 74 72 20 28 63 6f 6e 63 61 74 | ...............(hint-str.(concat |
| 94420 | 20 22 5b 22 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f | ."[".(gptel--model-name.gptel-mo |
| 94440 | 64 65 6c 29 20 22 5d 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 | del)."]\n")))...........(overlay |
| 94460 | 2d 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e | -put............ov.'before-strin |
| 94480 | 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 | g............(concat............ |
| 944a0 | 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 6f 76 65 72 6c | .(unless.(eq.(char-before.(overl |
| 944c0 | 61 79 2d 73 74 61 72 74 20 6f 76 29 29 20 3f 5c 6e 29 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 | ay-start.ov)).?\n)."\n")........ |
| 944e0 | 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 52 45 57 52 49 54 45 20 52 45 41 44 59 3a | .....(propertize."REWRITE.READY: |
| 94500 | 20 22 20 27 66 61 63 65 20 27 73 75 63 63 65 73 73 29 0a 09 20 20 20 20 28 77 68 65 6e 20 28 66 | .".'face.'success)......(when.(f |
| 94520 | 62 6f 75 6e 64 70 20 23 27 72 6d 63 2d 2d 61 64 64 2d 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f | boundp.#'rmc--add-key-descriptio |
| 94540 | 6e 29 20 20 3b 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e 20 45 6d 61 63 73 20 32 39 0a 20 20 20 | n)..;.introduced.in.Emacs.29.... |
| 94560 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 65 | ...........(mapconcat.(lambda.(e |
| 94580 | 29 20 28 63 64 72 20 65 29 29 20 28 6d 61 70 63 61 72 20 23 27 72 6d 63 2d 2d 61 64 64 2d 6b 65 | ).(cdr.e)).(mapcar.#'rmc--add-ke |
| 945a0 | 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 63 68 6f 69 63 65 73 29 20 22 2c 20 22 29 29 0a 20 20 | y-description.choices).",."))... |
| 945c0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 | ..........(propertize........... |
| 945e0 | 20 20 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 | ...".".'display.`(space.:align-t |
| 94600 | 6f 20 28 2d 20 72 69 67 68 74 20 2c 28 31 2b 20 28 6c 65 6e 67 74 68 20 68 69 6e 74 2d 73 74 72 | o.(-.right.,(1+.(length.hint-str |
| 94620 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 68 69 | ))))).............(propertize.hi |
| 94640 | 6e 74 2d 73 74 72 20 27 66 61 63 65 20 27 73 75 63 63 65 73 73 29 29 29 0a 20 20 20 20 20 20 20 | nt-str.'face.'success)))........ |
| 94660 | 20 20 20 28 73 65 74 71 20 63 68 6f 69 63 65 20 28 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 2d 63 | ...(setq.choice.(read-multiple-c |
| 94680 | 68 6f 69 63 65 20 22 41 63 74 69 6f 6e 3a 20 22 20 63 68 6f 69 63 65 73 29 29 29 0a 20 20 20 20 | hoice."Action:.".choices)))..... |
| 946a0 | 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 | ..(overlay-put.ov.'before-string |
| 946c0 | 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 66 20 63 69 0a 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d | .nil)).....(if.ci.........(call- |
| 946e0 | 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 67 | interactively.(intern.(concat."g |
| 94700 | 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 63 61 64 72 20 63 68 6f 69 63 65 29 29 29 29 | ptel--rewrite-".(cadr.choice)))) |
| 94720 | 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 | .......(funcall.(intern.(concat. |
| 94740 | 22 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 63 61 64 72 20 63 68 6f 69 63 65 29 29 | "gptel--rewrite-".(cadr.choice)) |
| 94760 | 29 20 6f 76 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | ).ov))))..(defun.gptel--rewrite- |
| 94780 | 63 61 6c 6c 62 61 63 6b 20 28 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 43 61 6c 6c | callback.(response.info)..."Call |
| 947a0 | 62 61 63 6b 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 73 2e 0a | back.for.gptel.rewrite.actions.. |
| 947c0 | 0a 53 68 6f 77 20 74 68 65 20 72 65 77 72 69 74 65 20 72 65 73 75 6c 74 20 69 6e 20 61 6e 20 6f | .Show.the.rewrite.result.in.an.o |
| 947e0 | 76 65 72 6c 61 79 20 6f 76 65 72 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 2c 20 61 | verlay.over.the.original.text,.a |
| 94800 | 6e 64 0a 73 65 74 20 75 70 20 64 69 73 70 61 74 63 68 20 61 63 74 69 6f 6e 73 2e 0a 0a 52 45 53 | nd.set.up.dispatch.actions...RES |
| 94820 | 50 4f 4e 53 45 20 69 73 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 72 65 63 65 69 76 65 64 2e 20 | PONSE.is.the.response.received.. |
| 94840 | 20 49 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 74 20 28 74 6f 20 69 6e 64 69 63 61 74 65 0a 73 | .It.may.also.be.t.(to.indicate.s |
| 94860 | 75 63 63 65 73 73 29 20 6e 69 6c 20 28 74 6f 20 69 6e 64 69 63 61 74 65 20 66 61 69 6c 75 72 65 | uccess).nil.(to.indicate.failure |
| 94880 | 29 2c 20 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 20 60 61 62 6f 72 74 27 2e 0a 0a 49 4e 46 4f 20 | ),.or.the.symbol.`abort'...INFO. |
| 948a0 | 69 73 20 74 68 65 20 61 73 79 6e 63 20 63 6f 6d 6d 75 6e 69 63 61 74 69 6f 6e 20 63 68 61 6e 6e | is.the.async.communication.chann |
| 948c0 | 65 6c 20 66 6f 72 20 74 68 65 20 72 65 77 72 69 74 65 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 | el.for.the.rewrite.request."...( |
| 948e0 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 61 6e 64 2d 62 75 66 20 28 70 6c 69 73 74 2d 67 65 | when-let*.((ov-and-buf.(plist-ge |
| 94900 | 74 20 69 6e 66 6f 20 3a 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:context))............... |
| 94920 | 28 6f 76 20 28 63 61 72 20 6f 76 2d 61 6e 64 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 | (ov.(car.ov-and-buf))........... |
| 94940 | 20 20 20 20 28 70 72 6f 63 2d 62 75 66 20 28 63 64 72 20 6f 76 2d 61 6e 64 2d 62 75 66 29 29 0a | ....(proc-buf.(cdr.ov-and-buf)). |
| 94960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 | ..............(buf.(overlay-buff |
| 94980 | 65 72 20 6f 76 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 | er.ov))).....(cond......((string |
| 949a0 | 70 20 72 65 73 70 6f 6e 73 65 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 61 72 74 | p.response)................;part |
| 949c0 | 69 61 6c 20 6f 72 20 66 75 6c 6c 79 20 73 75 63 63 65 73 73 66 75 6c 20 72 65 73 75 6c 74 0a 20 | ial.or.fully.successful.result.. |
| 949e0 | 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 | .....(with-current-buffer.proc-b |
| 94a00 | 75 66 20 20 20 20 20 3b 61 75 78 69 6c 69 61 72 79 20 62 75 66 66 65 72 2c 20 69 6e 73 65 72 74 | uf.....;auxiliary.buffer,.insert |
| 94a20 | 20 74 65 78 74 20 68 65 72 65 20 61 6e 64 20 63 6f 70 79 20 74 6f 20 6f 76 65 72 6c 61 79 0a 20 | .text.here.and.copy.to.overlay.. |
| 94a40 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 | .......(let.((inhibit-modificati |
| 94a60 | 6f 6e 2d 68 6f 6f 6b 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 | on-hooks.nil)...............(inh |
| 94a80 | 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 | ibit-read-only.t))...........(wh |
| 94aa0 | 65 6e 20 28 3d 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 | en.(=.(buffer-size).0).......... |
| 94ac0 | 20 20 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a 20 20 20 20 20 20 20 | ...(buffer-disable-undo)........ |
| 94ae0 | 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 72 65 77 72 | .....(overlay-put.ov.'gptel-rewr |
| 94b00 | 69 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 62 75 66 | ite.nil).............(insert-buf |
| 94b20 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 | fer-substring.buf.(overlay-start |
| 94b40 | 20 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 | .ov).(overlay-end.ov)).......... |
| 94b60 | 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 | ...(when.(eq.(char-before.(point |
| 94b80 | 2d 6d 61 78 29 29 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | -max)).?\n)...............(plist |
| 94ba0 | 2d 70 75 74 20 69 6e 66 6f 20 3a 6e 65 77 6c 69 6e 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 | -put.info.:newline.t)).......... |
| 94bc0 | 20 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 | ...(setq.major-mode.(buffer-loca |
| 94be0 | 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 29 29 20 3b 44 6f 6e 27 74 | l-value.'major-mode.buf)).;Don't |
| 94c00 | 20 74 75 72 6e 20 6f 6e 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 23 37 33 30 2c 20 23 37 32 32 29 | .turn.on.major-mode.(#730,.#722) |
| 94c20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 | .............(add-text-propertie |
| 94c40 | 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 27 28 66 61 63 65 | s.(point-min).(point-max).'(face |
| 94c60 | 20 73 68 61 64 6f 77 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 73 68 61 64 6f 77 29 29 0a | .shadow.font-lock-face.shadow)). |
| 94c80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 | ............(goto-char.(point-mi |
| 94ca0 | 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 29 | n)))...........(insert.response) |
| 94cc0 | 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6f 62 70 29 20 28 69 67 6e 6f 72 | ...........(unless.(eobp).(ignor |
| 94ce0 | 65 2d 65 72 72 6f 72 73 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 28 6c 65 6e 67 74 68 20 72 65 | e-errors.(delete-char.(length.re |
| 94d00 | 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d | sponse))))...........(font-lock- |
| 94d20 | 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f | ensure)...........(overlay-put.o |
| 94d40 | 76 20 27 64 69 73 70 6c 61 79 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 | v.'display.(buffer-string))))... |
| 94d60 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 | ....(unless.(plist-get.info.:str |
| 94d80 | 65 61 6d 29 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 20 74 20 | eam).(gptel--rewrite-callback.t. |
| 94da0 | 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 61 62 6f 72 | info)))......((eq.response.'abor |
| 94dc0 | 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 72 65 71 75 65 73 74 20 61 62 6f 72 74 65 64 | t)..............;request.aborted |
| 94de0 | 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 63 2d 62 75 66 20 28 63 64 | .......(when-let*.((proc-buf.(cd |
| 94e00 | 72 2d 73 61 66 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 6f 6e 74 65 78 74 29 | r-safe.(plist-get.info.:context) |
| 94e20 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 | ))).........(kill-buffer.proc-bu |
| 94e40 | 66 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 0a 20 | f)).......(delete-overlay.ov)).. |
| 94e60 | 20 20 20 20 28 28 6e 75 6c 6c 20 72 65 73 70 6f 6e 73 65 29 20 20 20 20 20 20 20 20 20 20 20 20 | ....((null.response)............ |
| 94e80 | 20 20 20 20 20 20 20 3b 66 69 6e 69 73 68 65 64 20 77 69 74 68 20 65 72 72 6f 72 0a 20 20 20 20 | .......;finished.with.error..... |
| 94ea0 | 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 | ..(message.(concat."LLM.response |
| 94ec0 | 20 65 72 72 6f 72 3a 20 25 73 2e 20 52 65 77 72 69 74 65 20 69 6e 20 62 75 66 66 65 72 20 25 73 | .error:.%s..Rewrite.in.buffer.%s |
| 94ee0 | 20 63 61 6e 63 65 6c 65 64 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | .canceled.")................(pli |
| 94f00 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 20 28 70 6c 69 73 74 2d 67 65 74 20 | st-get.info.:status).(plist-get. |
| 94f20 | 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 | info.:buffer)).......(gptel--rew |
| 94f40 | 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 20 27 61 62 6f 72 74 20 69 6e 66 6f 29 29 0a 20 20 20 20 | rite-callback.'abort.info))..... |
| 94f60 | 20 28 28 63 6f 6e 73 70 20 72 65 73 70 6f 6e 73 65 29 29 20 3b 72 65 61 73 6f 6e 69 6e 67 20 6f | .((consp.response)).;reasoning.o |
| 94f80 | 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 2d 2d 20 64 6f 6e 27 74 20 63 61 72 65 20 61 6e 64 20 6e | r.tool.calls.--.don't.care.and.n |
| 94fa0 | 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 0a 20 20 20 | ot.implemented,.respectively.... |
| 94fc0 | 20 20 28 74 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 63 64 72 2d 73 61 66 65 20 28 | ..(t.(let.((proc-buf.(cdr-safe.( |
| 94fe0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 6f 6e 74 65 78 74 29 29 29 20 3b 66 69 6e 69 | plist-get.info.:context))).;fini |
| 95000 | 73 68 65 64 20 73 75 63 63 65 73 73 66 75 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | shed.successfully............... |
| 95020 | 28 6d 6b 62 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 3c 6d 6f 75 73 65 2d 31 3e 22 20 27 66 61 | (mkb.(propertize."<mouse-1>".'fa |
| 95040 | 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 | ce.'help-key-binding)))......... |
| 95060 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 0a | ..(with-current-buffer.proc-buf. |
| 95080 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d | ............(let.((inhibit-read- |
| 950a0 | 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 | only.t))...............(delete-r |
| 950c0 | 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 | egion.(point).(point-max))...... |
| 950e0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 70 6f 73 74 2d 72 65 77 72 69 74 65 2d 66 75 6e | .........;;.Run.post-rewrite-fun |
| 95100 | 63 74 69 6f 6e 73 20 6f 6e 20 72 65 77 72 69 74 74 65 6e 20 74 65 78 74 20 69 6e 20 69 74 73 20 | ctions.on.rewritten.text.in.its. |
| 95120 | 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 | buffer...............(with-demot |
| 95140 | 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 77 72 69 74 65 2d 66 75 | ed-errors."gptel-post-rewrite-fu |
| 95160 | 6e 63 74 69 6f 6e 73 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 | nctions:.%S".................(ru |
| 95180 | 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 77 | n-hook-with-args.'gptel-post-rew |
| 951a0 | 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e | rite-functions.(point-min).(poin |
| 951c0 | 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e | t-max)))...............(when.(an |
| 951e0 | 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6e 65 77 6c 69 6e 65 29 0a 20 20 20 20 | d.(plist-get.info.:newline)..... |
| 95200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 | .....................(not.(eq.(c |
| 95220 | 68 61 72 2d 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 3f 5c 6e 29 29 29 0a 20 | har-before.(point-max)).?\n))).. |
| 95240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 | ...............(insert."\n"))... |
| 95260 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 6e 73 75 72 65 29 29 0a | ............(font-lock-ensure)). |
| 95280 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 64 69 73 | ............(overlay-put.ov.'dis |
| 952a0 | 70 6c 61 79 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | play.(buffer-string))........... |
| 952c0 | 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | ..(overlay-put.ov.'gptel-rewrite |
| 952e0 | 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b | .(buffer-string)).............(k |
| 95300 | 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ill-buffer.proc-buf))........... |
| 95320 | 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 0a 20 20 20 20 20 20 | (when.(buffer-live-p.buf)....... |
| 95340 | 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 | ......(with-current-buffer.buf.. |
| 95360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 | .............(pulse-momentary-hi |
| 95380 | 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 | ghlight-region.(overlay-start.ov |
| 953a0 | 29 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ).(overlay-end.ov))............. |
| 953c0 | 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e | ..(add-hook.'eldoc-documentation |
| 953e0 | 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6b 65 79 2d | -functions.#'gptel--rewrite-key- |
| 95400 | 68 65 6c 70 20 6e 69 6c 20 27 6c 6f 63 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | help.nil.'local)...............; |
| 95420 | 3b 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | ;.(overlay-put.ov.'gptel-rewrite |
| 95440 | 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 | .response)...............(overla |
| 95460 | 79 2d 70 75 74 20 6f 76 20 27 66 61 63 65 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 68 69 | y-put.ov.'face.'gptel-rewrite-hi |
| 95480 | 67 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 09 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | ghlight-face)........(overlay-pu |
| 954a0 | 74 20 6f 76 20 27 70 72 69 6f 72 69 74 79 20 32 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t.ov.'priority.2000)............ |
| 954c0 | 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 6b 65 79 6d 61 70 20 67 70 74 65 6c | ...(overlay-put.ov.'keymap.gptel |
| 954e0 | 2d 72 65 77 72 69 74 65 2d 61 63 74 69 6f 6e 73 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 | -rewrite-actions-map)........... |
| 95500 | 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 | ....(overlay-put.ov.'mouse-face. |
| 95520 | 27 68 69 67 68 6c 69 67 68 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c | 'highlight)...............(overl |
| 95540 | 61 79 2d 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 76 20 27 68 65 6c 70 2d 65 | ay-put................ov.'help-e |
| 95560 | 63 68 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 | cho................(format.(conc |
| 95580 | 61 74 20 22 25 73 20 72 65 77 72 69 74 65 20 61 76 61 69 6c 61 62 6c 65 3a 20 25 73 20 6f 72 20 | at."%s.rewrite.available:.%s.or. |
| 955a0 | 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 5d 20 66 6f 72 20 | \\[gptel--rewrite-dispatch].for. |
| 955c0 | 6f 70 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | options")....................... |
| 955e0 | 20 28 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 | .(concat.(gptel-backend-name.gpt |
| 95600 | 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 3a 22 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 | el-backend).":".(gptel--model-na |
| 95620 | 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me.gptel-model))................ |
| 95640 | 20 20 20 20 20 20 20 20 6d 6b 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 | ........mkb))...............(pus |
| 95660 | 68 20 6f 76 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 0a 20 | h.ov.gptel--rewrite-overlays)).. |
| 95680 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 73 79 6d 20 67 70 74 65 6c 2d | ...........(if-let*.((sym.gptel- |
| 956a0 | 72 65 77 72 69 74 65 2d 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 | rewrite-default-action))........ |
| 956c0 | 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 61 63 74 69 6f 6e 20 28 69 6e 74 65 | .........(if-let*.((action.(inte |
| 956e0 | 72 6e 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 73 79 | rn.(concat."gptel--rewrite-".(sy |
| 95700 | 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbol-name.sym))))............... |
| 95720 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 61 63 74 69 6f 6e 29 29 | ............((functionp.action)) |
| 95740 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 | ).....................(funcall.a |
| 95760 | 63 74 69 6f 6e 20 6f 76 29 20 28 66 75 6e 63 61 6c 6c 20 73 79 6d 20 6f 76 29 29 0a 20 20 20 20 | ction.ov).(funcall.sym.ov))..... |
| 95780 | 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 | ..........(message.(concat...... |
| 957a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4c 4c 4d 20 72 65 77 72 69 74 65 20 | ..................."LLM.rewrite. |
| 957c0 | 6f 75 74 70 75 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | output"......................... |
| 957e0 | 28 75 6e 6c 65 73 73 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 62 75 66 | (unless.(eq.(current-buffer).buf |
| 95800 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 | )...........................(for |
| 95820 | 6d 61 74 20 22 20 69 6e 20 62 75 66 66 65 72 20 25 73 20 22 20 28 62 75 66 66 65 72 2d 6e 61 6d | mat.".in.buffer.%s.".(buffer-nam |
| 95840 | 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.buf)))........................ |
| 95860 | 20 28 63 6f 6e 63 61 74 20 22 20 72 65 61 64 79 3a 20 22 20 6d 6b 62 20 22 2c 20 22 20 28 70 72 | .(concat.".ready:.".mkb.",.".(pr |
| 95880 | 6f 70 65 72 74 69 7a 65 20 22 52 45 54 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 | opertize."RET".'face.'help-key-b |
| 958a0 | 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inding)......................... |
| 958c0 | 20 20 20 20 20 20 20 20 22 20 6f 72 20 22 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 | ........".or.".(substitute-comma |
| 958e0 | 6e 64 2d 6b 65 79 73 20 22 5c 5c 5b 67 70 74 65 6c 2d 72 65 77 72 69 74 65 5d 20 74 6f 20 63 6f | nd-keys."\\[gptel-rewrite].to.co |
| 95900 | 6e 74 69 6e 75 65 2e 22 29 29 29 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 | ntinue.")))))))))))..;;.*.Transi |
| 95920 | 65 6e 74 20 50 72 65 66 69 78 65 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 0a 0a 28 74 72 61 | ent.Prefixes.for.rewriting..(tra |
| 95940 | 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 2d 72 65 77 72 | nsient-define-prefix.gptel--rewr |
| 95960 | 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 20 28 29 0a 20 20 22 53 65 74 20 74 68 65 | ite-directive-menu.()..."Set.the |
| 95980 | 20 64 69 72 65 63 74 69 76 65 20 28 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 20 66 6f 72 20 | .directive.(system.message).for. |
| 959a0 | 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 73 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 67 70 | rewrite.actions...By.default,.gp |
| 959c0 | 74 65 6c 20 75 73 65 73 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 61 73 73 6f 63 69 61 74 65 | tel.uses.the.directive.associate |
| 959e0 | 64 20 77 69 74 68 20 74 68 65 20 60 72 65 77 72 69 74 65 27 0a 20 6b 65 79 20 69 6e 20 60 67 70 | d.with.the.`rewrite'..key.in.`gp |
| 95a00 | 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 20 20 59 6f 75 20 63 61 6e 20 61 64 64 20 6d 6f | tel-directives'...You.can.add.mo |
| 95a20 | 72 65 20 72 65 77 72 69 74 65 2d 73 70 65 63 69 66 69 63 0a 20 64 69 72 65 63 74 69 76 65 73 20 | re.rewrite-specific..directives. |
| 95a40 | 74 6f 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 20 61 6e 64 20 70 69 63 6b 20 6f | to.`gptel-directives'.and.pick.o |
| 95a60 | 6e 65 20 66 72 6f 6d 20 68 65 72 65 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 67 | ne.from.here."...[:description.g |
| 95a80 | 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d 66 6f 72 6d 61 74 0a 20 20 20 5b 28 | ptel-system-prompt--format....[( |
| 95aa0 | 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 | gptel--suffix-rewrite-directive) |
| 95ac0 | 5d 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f | ]....[(gptel--infix-variable-sco |
| 95ae0 | 70 65 29 5d 5d 0a 20 20 20 5b 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d | pe)]]....[:class.transient-colum |
| 95b00 | 6e 0a 20 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 | n.....:setup-children.....(lambd |
| 95b20 | 61 20 28 5f 29 20 28 74 72 61 6e 73 69 65 6e 74 2d 70 61 72 73 65 2d 73 75 66 66 69 78 65 73 0a | a.(_).(transient-parse-suffixes. |
| 95b40 | 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 | ............'gptel--rewrite-dire |
| 95b60 | 63 74 69 76 65 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 | ctive-menu.............(gptel--s |
| 95b80 | 65 74 75 70 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 | etup-directive-menu............. |
| 95ba0 | 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 22 52 65 77 72 | .'gptel--rewrite-directive."Rewr |
| 95bc0 | 69 74 65 20 64 69 72 65 63 74 69 76 65 22 29 29 29 0a 20 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 | ite.directive"))).....:pad-keys. |
| 95be0 | 74 5d 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 | t])..(define-obsolete-function-a |
| 95c00 | 6c 69 61 73 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 6d 65 6e 75 20 27 67 70 74 65 6c 2d | lias.'gptel-rewrite-menu.'gptel- |
| 95c20 | 72 65 77 72 69 74 65 20 22 30 2e 39 2e 36 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | rewrite."0.9.6")..;;;###autoload |
| 95c40 | 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 22 67 70 74 65 6c | .(autoload.'gptel-rewrite."gptel |
| 95c60 | 2d 72 65 77 72 69 74 65 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 | -rewrite".nil.t).(transient-defi |
| 95c80 | 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 28 29 0a 20 20 22 52 65 | ne-prefix.gptel-rewrite.()..."Re |
| 95ca0 | 77 72 69 74 65 20 6f 72 20 72 65 66 61 63 74 6f 72 20 74 65 78 74 20 72 65 67 69 6f 6e 20 75 73 | write.or.refactor.text.region.us |
| 95cc0 | 69 6e 67 20 61 6e 20 4c 4c 4d 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 | ing.an.LLM."...[:description.... |
| 95ce0 | 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 | (lambda.()......(gptel--describe |
| 95d00 | 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | -directive.......gptel--rewrite- |
| 95d20 | 64 69 72 65 63 74 69 76 65 20 28 6d 61 78 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 | directive.(max.(-.(window-width) |
| 95d40 | 20 31 34 29 20 32 30 29 20 22 20 22 29 29 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 67 70 74 65 6c | .14).20)."."))....["".....(gptel |
| 95d60 | 2d 2d 70 72 65 73 65 74 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 | --preset......:if.(lambda.().(or |
| 95d80 | 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 | .(get-char-property.(point).'gpt |
| 95da0 | 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | el-rewrite)....................( |
| 95dc0 | 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 29 0a 20 20 20 20 20 3a 6b 65 79 20 22 40 22 20 3a 66 | use-region-p)))......:key."@".:f |
| 95de0 | 6f 72 6d 61 74 20 22 25 64 22 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 | ormat."%d"......:description.... |
| 95e00 | 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f | ..(lambda.()........(concat.(pro |
| 95e20 | 70 65 72 74 69 7a 65 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 22 20 27 66 61 63 65 20 27 74 72 | pertize."Instructions".'face.'tr |
| 95e40 | 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ansient-heading)................ |
| 95e60 | 28 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 65 74 2d 73 74 72 69 6e 67 29 29 29 29 | (gptel--format-preset-string)))) |
| 95e80 | 0a 20 20 20 20 28 22 73 22 20 22 53 65 74 20 66 75 6c 6c 20 64 69 72 65 63 74 69 76 65 22 20 67 | .....("s"."Set.full.directive".g |
| 95ea0 | 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 29 0a 20 20 | ptel--rewrite-directive-menu)... |
| 95ec0 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 72 61 29 5d 5d | ..(gptel--infix-rewrite-extra)]] |
| 95ee0 | 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 61 72 65 20 72 65 71 75 69 72 69 6e 67 20 60 67 | ...;;.FIXME:.We.are.requiring.`g |
| 95f00 | 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 27 20 62 65 63 61 75 73 65 20 6f 66 20 74 68 69 73 20 | ptel-transient'.because.of.this. |
| 95f20 | 73 75 66 66 69 78 2c 20 70 65 72 68 61 70 73 0a 20 20 3b 3b 20 77 65 20 63 61 6e 20 67 65 74 20 | suffix,.perhaps...;;.we.can.get. |
| 95f40 | 66 69 6e 64 20 73 6f 6d 65 20 77 61 79 20 61 72 6f 75 6e 64 20 74 68 61 74 3f 0a 20 20 5b 3a 64 | find.some.way.around.that?...[:d |
| 95f60 | 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 74 65 78 74 20 66 6f 72 20 72 65 77 72 69 74 65 22 | escription."Context.for.rewrite" |
| 95f80 | 0a 20 20 20 3a 69 66 20 75 73 65 2d 72 65 67 69 6f 6e 2d 70 0a 20 20 20 28 67 70 74 65 6c 2d 2d | ....:if.use-region-p....(gptel-- |
| 95fa0 | 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 3a 6b 65 79 20 22 2d | infix-context-remove-all.:key."- |
| 95fc0 | 64 22 29 0a 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 | d")....(gptel--suffix-context-bu |
| 95fe0 | 66 66 65 72 20 3a 6b 65 79 20 22 43 22 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b 20 25 64 22 29 | ffer.:key."C".:format."..%k.%d") |
| 96000 | 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 69 66 66 20 4f 70 74 69 6f 6e 73 | ]...[[:description."Diff.Options |
| 96020 | 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 | ".....:if.(lambda.().gptel--rewr |
| 96040 | 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 28 22 2d 62 22 20 22 49 67 6e 6f 72 65 20 | ite-overlays).....("-b"."Ignore. |
| 96060 | 77 68 69 74 65 73 70 61 63 65 20 63 68 61 6e 67 65 73 22 20 20 20 20 20 20 28 22 2d 62 22 20 22 | whitespace.changes"......("-b"." |
| 96080 | 2d 2d 69 67 6e 6f 72 65 2d 73 70 61 63 65 2d 63 68 61 6e 67 65 22 29 29 0a 20 20 20 20 28 22 2d | --ignore-space-change")).....("- |
| 960a0 | 77 22 20 22 49 67 6e 6f 72 65 20 61 6c 6c 20 77 68 69 74 65 73 70 61 63 65 22 20 20 20 20 20 20 | w"."Ignore.all.whitespace"...... |
| 960c0 | 20 20 20 20 28 22 2d 77 22 20 22 2d 2d 69 67 6e 6f 72 65 2d 61 6c 6c 2d 73 70 61 63 65 22 29 29 | ....("-w"."--ignore-all-space")) |
| 960e0 | 0a 20 20 20 20 28 22 2d 69 22 20 22 49 67 6e 6f 72 65 20 63 61 73 65 22 20 20 20 20 20 20 20 20 | .....("-i"."Ignore.case"........ |
| 96100 | 20 20 20 20 20 20 20 20 20 20 20 20 28 22 2d 69 22 20 22 2d 2d 69 67 6e 6f 72 65 2d 63 61 73 65 | ............("-i"."--ignore-case |
| 96120 | 22 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 | ")).....(gptel--infix-rewrite-di |
| 96140 | 66 66 3a 2d 55 29 5d 0a 20 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 63 63 65 70 74 | ff:-U)]....[:description."Accept |
| 96160 | 20 61 6c 6c 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d | .all".....:if.(lambda.().gptel-- |
| 96180 | 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 | rewrite-overlays).....(gptel--su |
| 961a0 | 66 66 69 78 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d | ffix-rewrite-merge).....(gptel-- |
| 961c0 | 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 29 0a 20 20 20 20 22 52 65 6a 65 | suffix-rewrite-accept)....."Reje |
| 961e0 | 63 74 20 61 6c 6c 22 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 | ct.all".....(gptel--suffix-rewri |
| 96200 | 74 65 2d 72 65 6a 65 63 74 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 | te-reject)]]...[[:description."D |
| 96220 | 69 66 66 20 72 65 77 72 69 74 65 20 72 65 67 69 6f 6e 73 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 | iff.rewrite.regions".....:if.(la |
| 96240 | 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 | mbda.().gptel--rewrite-overlays) |
| 96260 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 | .....(gptel--suffix-rewrite-diff |
| 96280 | 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 65 64 69 | ).....(gptel--suffix-rewrite-edi |
| 962a0 | 66 66 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 77 72 69 74 65 22 | ff)]]...[[:description."Rewrite" |
| 962c0 | 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 67 65 74 2d 63 68 61 | .....:if.(lambda.().(or.(get-cha |
| 962e0 | 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 | r-property.(point).'gptel-rewrit |
| 96300 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 72 65 67 69 6f 6e | e)...................(use-region |
| 96320 | 2d 70 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 | -p))).....(gptel--suffix-rewrite |
| 96340 | 29 5d 0a 20 20 20 5b 22 44 72 79 20 52 75 6e 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 | )]....["Dry.Run".....:if.(lambda |
| 96360 | 20 28 29 20 28 61 6e 64 20 28 6f 72 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 | .().(and.(or.gptel-log-level.gpt |
| 96380 | 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | el-expert-commands)............. |
| 963a0 | 20 20 20 20 20 20 20 28 6f 72 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 | .......(or.(get-char-property.(p |
| 963c0 | 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 | oint).'gptel-rewrite)........... |
| 963e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 29 29 0a 20 | .............(use-region-p)))).. |
| 96400 | 20 20 20 28 22 49 22 20 22 49 6e 73 70 65 63 74 20 71 75 65 72 79 20 28 4c 69 73 70 29 22 0a 20 | ...("I"."Inspect.query.(Lisp)".. |
| 96420 | 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 | ....(lambda.()........"Inspect.t |
| 96440 | 68 65 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 | he.query.that.will.be.sent.as.a. |
| 96460 | 6c 69 73 70 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 | lisp.object."........(interactiv |
| 96480 | 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c | e)........(gptel--sanitize-model |
| 964a0 | 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 | )........(gptel--inspect-query.. |
| 964c0 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 67 70 | .......(gptel--suffix-rewrite.gp |
| 964e0 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 74 29 29 29 29 0a 20 20 20 20 28 | tel--rewrite-message.t)))).....( |
| 96500 | 22 4a 22 20 22 49 6e 73 70 65 63 74 20 71 75 65 72 79 20 28 4a 53 4f 4e 29 22 0a 20 20 20 20 20 | "J"."Inspect.query.(JSON)"...... |
| 96520 | 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 68 65 20 71 | (lambda.()........"Inspect.the.q |
| 96540 | 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 4a 53 4f 4e | uery.that.will.be.sent.as.a.JSON |
| 96560 | 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 | .object."........(interactive).. |
| 96580 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 | ......(gptel--sanitize-model)... |
| 965a0 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 20 20 20 20 | .....(gptel--inspect-query...... |
| 965c0 | 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d | ...(gptel--suffix-rewrite.gptel- |
| 965e0 | 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 74 29 0a 20 20 20 20 20 20 20 20 27 6a 73 6f | -rewrite-message.t).........'jso |
| 96600 | 6e 29 29 29 5d 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d | n)))]]...(interactive)...(gptel- |
| 96620 | 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 28 75 | -rewrite-sanitize-overlays)...(u |
| 96640 | 6e 6c 65 73 73 20 28 6f 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 | nless.(or.gptel--rewrite-overlay |
| 96660 | 73 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f | s.(use-region-p)).....(user-erro |
| 96680 | 72 20 22 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 27 20 72 65 71 75 69 72 65 73 20 61 6e 20 61 | r."`gptel-rewrite'.requires.an.a |
| 966a0 | 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 20 72 65 77 72 69 74 65 20 69 6e 20 70 72 6f 67 72 | ctive.region.or.rewrite.in.progr |
| 966c0 | 65 73 73 2e 22 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | ess."))...(unless.gptel--rewrite |
| 966e0 | 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | -message.....(setq.gptel--rewrit |
| 96700 | 65 2d 6d 65 73 73 61 67 65 20 22 52 65 77 72 69 74 65 3a 20 22 29 29 0a 20 20 28 74 72 61 6e 73 | e-message."Rewrite:."))...(trans |
| 96720 | 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 0a 3b 3b 20 | ient-setup.'gptel-rewrite))..;;. |
| 96740 | 2a 20 54 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 65 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e | *.Transient.infixes.for.rewritin |
| 96760 | 67 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c | g..(transient-define-infix.gptel |
| 96780 | 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 72 61 20 28 29 0a 20 20 22 43 68 61 74 | --infix-rewrite-extra.()..."Chat |
| 967a0 | 20 64 69 72 65 63 74 69 76 65 20 28 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 20 74 6f 20 75 | .directive.(system.message).to.u |
| 967c0 | 73 65 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 20 6f 72 20 72 65 66 61 63 74 6f 72 69 6e 67 2e | se.for.rewriting.or.refactoring. |
| 967e0 | 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 77 72 69 74 65 20 69 6e 73 74 72 75 | "...:description."Rewrite.instru |
| 96800 | 63 74 69 6f 6e 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 | ction"...:class.'gptel-lisp-vari |
| 96820 | 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | able...:variable.'gptel--rewrite |
| 96840 | 2d 6d 65 73 73 61 67 65 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 | -message...:set-value.#'gptel--s |
| 96860 | 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 28 4e | et-with-scope...:display-nil."(N |
| 96880 | 6f 6e 65 29 22 0a 20 20 3a 6b 65 79 20 22 64 22 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 | one)"...:key."d"...:format.".%k. |
| 968a0 | 25 64 20 25 76 22 0a 20 20 3a 70 72 6f 6d 70 74 20 28 63 6f 6e 63 61 74 20 22 49 6e 73 74 72 75 | %d.%v"...:prompt.(concat."Instru |
| 968c0 | 63 74 69 6f 6e 73 20 22 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 | ctions.".gptel--read-with-prefix |
| 968e0 | 2d 68 65 6c 70 29 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 | -help)...:reader.(lambda.(prompt |
| 96900 | 20 5f 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 | ._.history).............(let*.(( |
| 96920 | 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rewrite-directive............... |
| 96940 | 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 | ......(car-safe.(gptel--parse-di |
| 96960 | 72 65 63 74 69 76 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 | rective.gptel--rewrite-directive |
| 96980 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 969a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 72 61 77 29 29 29 0a 20 | .......................'raw))).. |
| 969c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 62 20 28 63 75 72 72 65 6e 74 2d 62 | ..................(cb.(current-b |
| 969e0 | 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 79 63 6c | uffer))....................(cycl |
| 96a00 | 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | e-prefix.....................(la |
| 96a20 | 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 | mbda.().(interactive)........... |
| 96a40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 | ............(gptel--read-with-pr |
| 96a60 | 65 66 69 78 20 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 20 | efix.rewrite-directive)))....... |
| 96a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 64 69 74 2d 69 6e 2d 62 75 66 66 65 72 0a 20 20 20 | .............(edit-in-buffer.... |
| 96aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 | .................(lambda.().(int |
| 96ac0 | 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eractive)....................... |
| 96ae0 | 28 6c 65 74 20 28 28 6f 66 66 73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6d 69 6e 69 62 75 | (let.((offset.(-.(point).(minibu |
| 96b00 | 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ffer-prompt-end))))............. |
| 96b20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 | ............(gptel--edit-directi |
| 96b40 | 76 65 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 | ve.'gptel--rewrite-message...... |
| 96b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 20 72 65 77 | .....................:prompt.rew |
| 96b80 | 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 3a 69 6e 69 74 69 61 6c 20 28 6d 69 6e 69 62 75 66 | rite-directive.:initial.(minibuf |
| 96ba0 | 66 65 72 2d 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer-contents)................... |
| 96bc0 | 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 63 62 20 3a 73 65 74 75 70 20 28 6c 61 6d 62 64 | ........:buffer.cb.:setup.(lambd |
| 96be0 | 61 20 28 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 66 6f 72 77 61 72 64 2d 63 68 61 | a.().(ignore-errors.(forward-cha |
| 96c00 | 72 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.offset)))..................... |
| 96c20 | 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......:callback................. |
| 96c40 | 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........(lambda.()............ |
| 96c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 20 | .................(run-at-time.0. |
| 96c80 | 6e 69 6c 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 72 65 77 | nil.#'transient-setup.'gptel-rew |
| 96ca0 | 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rite)........................... |
| 96cc0 | 20 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 | ..(push.(buffer-local-value.'gpt |
| 96ce0 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 63 62 29 0a 20 20 20 20 20 20 20 20 | el--rewrite-message.cb)......... |
| 96d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 | ..........................(alist |
| 96d20 | 2d 67 65 74 20 27 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 72 61 | -get.'gptel--infix-rewrite-extra |
| 96d40 | 20 74 72 61 6e 73 69 65 6e 74 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .transient-history))............ |
| 96d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 69 6e 69 62 75 66 66 | .................(when.(minibuff |
| 96d80 | 65 72 70 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 71 75 69 74 2d 72 65 63 75 72 73 69 76 65 2d | erp).(minibuffer-quit-recursive- |
| 96da0 | 65 64 69 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | edit)))))))....................( |
| 96dc0 | 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 | minibuffer-local-map............ |
| 96de0 | 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 20 28 | .........(make-composed-keymap.( |
| 96e00 | 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | define-keymap................... |
| 96e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 54 41 42 22 20 | .........................."TAB". |
| 96e40 | 63 79 63 6c 65 2d 70 72 65 66 69 78 20 22 3c 74 61 62 3e 22 20 63 79 63 6c 65 2d 70 72 65 66 69 | cycle-prefix."<tab>".cycle-prefi |
| 96e60 | 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | x............................... |
| 96e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 65 22 20 65 64 69 74 2d 69 6e 2d | .............."C-c.C-e".edit-in- |
| 96ea0 | 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer)......................... |
| 96ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 | ..................minibuffer-loc |
| 96ee0 | 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 | al-map)))...............(minibuf |
| 96f00 | 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 20 63 79 63 6c 65 2d 70 72 65 66 69 78 | fer-with-setup-hook.cycle-prefix |
| 96f20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 | .................(read-string... |
| 96f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 28 6f 72 20 67 70 74 65 6c 2d | ...............prompt.(or.gptel- |
| 96f60 | 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 22 52 65 77 72 69 74 65 3a 20 22 29 0a 20 20 | -rewrite-message."Rewrite:.")... |
| 96f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 29 29 29 29 29 0a 0a 28 74 72 | ...............history)))))..(tr |
| 96fa0 | 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 61 72 67 75 6d 65 6e 74 20 67 70 74 65 6c 2d 2d 69 | ansient-define-argument.gptel--i |
| 96fc0 | 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 3a 2d 55 20 28 29 0a 20 20 3a 64 65 73 63 72 | nfix-rewrite-diff:-U.()...:descr |
| 96fe0 | 69 70 74 69 6f 6e 20 22 43 6f 6e 74 65 78 74 20 6c 69 6e 65 73 22 0a 20 20 3a 63 6c 61 73 73 20 | iption."Context.lines"...:class. |
| 97000 | 27 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 2d | 'transient-option...:argument."- |
| 97020 | 55 22 0a 20 20 3a 72 65 61 64 65 72 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 | U"...:reader.#'transient-read-nu |
| 97040 | 6d 62 65 72 2d 4e 30 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 73 75 66 66 69 78 65 | mber-N0)..;;.*.Transient.suffixe |
| 97060 | 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 | s.for.rewriting..(transient-defi |
| 97080 | 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d | ne-suffix.gptel--suffix-rewrite- |
| 970a0 | 64 69 72 65 63 74 69 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 61 6e 63 65 6c 29 0a 20 20 22 | directive.(&optional.cancel)..." |
| 970c0 | 45 64 69 74 20 52 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 2e 0a 0a 43 41 4e 43 45 4c 20 | Edit.Rewrite.directive...CANCEL. |
| 970e0 | 69 73 20 75 73 65 64 20 74 6f 20 61 76 6f 69 64 20 74 6f 75 63 68 69 6e 67 20 64 79 6e 61 6d 69 | is.used.to.avoid.touching.dynami |
| 97100 | 63 20 72 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 73 2c 0a 67 65 6e 65 72 61 74 65 64 20 | c.rewrite.directives,.generated. |
| 97120 | 66 72 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 | from.functions."...:transient.'t |
| 97140 | 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 65 78 69 74 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e | ransient--do-exit...:description |
| 97160 | 20 22 45 64 69 74 20 66 75 6c 6c 20 72 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 22 0a 20 | ."Edit.full.rewrite.directive".. |
| 97180 | 20 3a 6b 65 79 20 22 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 | .:key."s"...(interactive....(lis |
| 971a0 | 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 70 20 67 70 74 65 | t.(and...........(functionp.gpte |
| 971c0 | 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 | l--rewrite-directive)........... |
| 971e0 | 28 6e 6f 74 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | (not.(y-or-n-p................." |
| 97200 | 52 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 20 69 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 | Rewrite.directive.is.dynamically |
| 97220 | 20 67 65 6e 65 72 61 74 65 64 3a 20 45 64 69 74 20 69 74 73 20 63 75 72 72 65 6e 74 20 76 61 6c | .generated:.Edit.its.current.val |
| 97240 | 75 65 20 69 6e 73 74 65 61 64 3f 22 29 29 29 29 29 0a 20 20 28 69 66 20 63 61 6e 63 65 6c 20 28 | ue.instead?")))))...(if.cancel.( |
| 97260 | 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 20 63 61 6e 63 65 6c 65 64 22 29 0a | progn.(message."Edit.canceled"). |
| 97280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 | ....................(call-intera |
| 972a0 | 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 28 67 | ctively.#'gptel-rewrite)).....(g |
| 972c0 | 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 72 65 77 | ptel--edit-directive.'gptel--rew |
| 972e0 | 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 23 | rite-directive.......:callback.# |
| 97300 | 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 3a 73 65 74 75 70 20 23 27 61 63 74 69 76 61 74 65 | 'gptel-rewrite.:setup.#'activate |
| 97320 | 2d 6d 61 72 6b 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 | -mark)))..(transient-define-suff |
| 97340 | 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 28 26 6f 70 74 69 6f | ix.gptel--suffix-rewrite.(&optio |
| 97360 | 6e 61 6c 20 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 64 72 79 2d 72 75 6e 29 0a 20 20 22 | nal.rewrite-message.dry-run)..." |
| 97380 | 52 65 77 72 69 74 65 20 6f 72 20 72 65 66 61 63 74 6f 72 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 | Rewrite.or.refactor.region.conte |
| 973a0 | 6e 74 73 2e 22 0a 20 20 3a 6b 65 79 20 22 72 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | nts."...:key."r"...:description. |
| 973c0 | 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 | (lambda.().(if.(get-char-propert |
| 973e0 | 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 20 22 49 74 65 72 61 | y.(point).'gptel-rewrite)."Itera |
| 97400 | 74 65 22 20 22 52 65 77 72 69 74 65 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 | te"."Rewrite"))...(interactive.( |
| 97420 | 6c 69 73 74 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 | list.gptel--rewrite-message))... |
| 97440 | 28 6c 65 74 2a 20 28 28 6e 6f 73 79 73 74 65 6d 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 | (let*.((nosystem.(gptel--model-c |
| 97460 | 61 70 61 62 6c 65 2d 70 20 27 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b | apable-p.'nosystem))..........;; |
| 97480 | 20 54 72 79 20 74 6f 20 73 65 6e 64 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 73 79 73 74 65 6d | .Try.to.send.context.with.system |
| 974a0 | 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e | .message..........(gptel-use-con |
| 974c0 | 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f | text...........(and.gptel-use-co |
| 974e0 | 6e 74 65 78 74 20 28 69 66 20 6e 6f 73 79 73 74 65 6d 20 27 75 73 65 72 20 27 73 79 73 74 65 6d | ntext.(if.nosystem.'user.'system |
| 97500 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 6c 69 73 74 20 28 6f 72 20 28 | )))..........(prompt.(list.(or.( |
| 97520 | 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c | get-char-property.(point).'gptel |
| 97540 | 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -rewrite)....................... |
| 97560 | 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 | .....(buffer-substring-no-proper |
| 97580 | 74 69 65 73 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d | ties.(region-beginning).(region- |
| 975a0 | 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 57 | end)))........................"W |
| 975c0 | 68 61 74 20 69 73 20 74 68 65 20 72 65 71 75 69 72 65 64 20 63 68 61 6e 67 65 3f 22 0a 20 20 20 | hat.is.the.required.change?".... |
| 975e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 72 65 77 72 69 74 65 2d | ....................(or.rewrite- |
| 97600 | 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 29 29 | message.gptel--rewrite-message)) |
| 97620 | 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 73 79 73 74 65 6d 0a 20 20 20 20 20 20 28 73 65 74 | )).....(when.nosystem.......(set |
| 97640 | 63 61 72 20 70 72 6f 6d 70 74 20 28 63 6f 6e 63 61 74 20 28 63 61 72 2d 73 61 66 65 20 28 67 70 | car.prompt.(concat.(car-safe.(gp |
| 97660 | 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 | tel--parse-directive............ |
| 97680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 | .............................gpt |
| 976a0 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 27 72 61 77 29 29 0a 20 20 20 | el--rewrite-directive.'raw)).... |
| 976c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 | .........................."\n\n" |
| 976e0 | 20 28 63 61 72 20 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 28 67 70 74 | .(car.prompt)))).....(prog1.(gpt |
| 97700 | 65 6c 2d 72 65 71 75 65 73 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | el-request.prompt..............: |
| 97720 | 64 72 79 2d 72 75 6e 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 79 | dry-run.dry-run..............:sy |
| 97740 | 73 74 65 6d 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 | stem.gptel--rewrite-directive... |
| 97760 | 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 0a | ...........:stream.gptel-stream. |
| 97780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 | .............:context........... |
| 977a0 | 20 20 20 28 6c 65 74 20 28 28 6f 76 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 67 65 74 2d | ...(let.((ov.(or.(cdr-safe.(get- |
| 977c0 | 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 | char-property-and-overlay.(point |
| 977e0 | 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).'gptel-rewrite)).............. |
| 97800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 72 65 67 | ..............(make-overlay.(reg |
| 97820 | 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 20 6e 69 6c 20 | ion-beginning).(region-end).nil. |
| 97840 | 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | t))))................(overlay-pu |
| 97860 | 74 20 6f 76 20 27 63 61 74 65 67 6f 72 79 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 | t.ov.'category.'gptel).......... |
| 97880 | 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 65 76 61 70 6f 72 61 74 65 | ......(overlay-put.ov.'evaporate |
| 978a0 | 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 53 77 69 74 | .t)................;;.NOTE:.Swit |
| 978c0 | 63 68 20 74 6f 20 60 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 27 20 61 66 74 65 | ch.to.`generate-new-buffer'.afte |
| 978e0 | 72 20 77 65 20 64 72 6f 70 20 45 6d 61 63 73 20 32 37 2e 31 20 28 23 37 32 34 29 0a 20 20 20 20 | r.we.drop.Emacs.27.1.(#724)..... |
| 97900 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 6f 76 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 | ...........(cons.ov.(gptel--temp |
| 97920 | 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2a 22 29 29 29 0a 20 20 | -buffer.".*gptel-rewrite*")))... |
| 97940 | 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 67 70 74 65 6c 2d 70 72 6f | ...........:transforms.gptel-pro |
| 97960 | 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 | mpt-transform-functions......... |
| 97980 | 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | .....:callback.#'gptel--rewrite- |
| 979a0 | 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 3b 3b 20 4d 6f 76 65 20 62 61 63 6b 20 73 6f 20 | callback).......;;.Move.back.so. |
| 979c0 | 74 68 61 74 20 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 6f 6e 20 74 68 65 20 6f 76 65 72 6c 61 | that.the.cursor.is.on.the.overla |
| 979e0 | 79 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d | y.when.done........(unless.(get- |
| 97a00 | 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 | char-property.(point).'gptel-rew |
| 97a20 | 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 | rite).........(when.(=.(point).( |
| 97a40 | 72 65 67 69 6f 6e 2d 65 6e 64 29 29 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 | region-end)).(backward-char.1))) |
| 97a60 | 0a 20 20 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 29 0a 0a 3b 3b 20 | .......(deactivate-mark))))..;;. |
| 97a80 | 41 6c 6c 6f 77 20 74 68 69 73 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 6e 6f 6e 2d 69 6e 74 65 | Allow.this.to.be.called.non-inte |
| 97aa0 | 72 61 63 74 69 76 65 6c 79 20 66 6f 72 20 64 72 79 20 72 75 6e 73 0a 28 70 75 74 20 27 67 70 74 | ractively.for.dry.runs.(put.'gpt |
| 97ac0 | 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 27 69 6e 74 65 72 61 63 74 69 76 65 2d | el--suffix-rewrite.'interactive- |
| 97ae0 | 6f 6e 6c 79 20 6e 69 6c 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 | only.nil)..(transient-define-suf |
| 97b00 | 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 20 28 | fix.gptel--suffix-rewrite-diff.( |
| 97b20 | 26 6f 70 74 69 6f 6e 61 6c 20 73 77 69 74 63 68 65 73 29 0a 20 20 22 44 69 66 66 20 4c 4c 4d 20 | &optional.switches)..."Diff.LLM. |
| 97b40 | 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 69 66 20 28 6c | output.against.buffer."...:if.(l |
| 97b60 | 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 | ambda.().gptel--rewrite-overlays |
| 97b80 | 29 0a 20 20 3a 6b 65 79 20 22 44 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 69 66 | )...:key."D"...:description."Dif |
| 97ba0 | 66 20 20 4c 4c 4d 20 72 65 77 72 69 74 65 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 | f..LLM.rewrites"...(interactive. |
| 97bc0 | 28 6c 69 73 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d | (list.(transient-args.transient- |
| 97be0 | 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 | current-command)))...(gptel--rew |
| 97c00 | 72 69 74 65 2d 64 69 66 66 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 | rite-diff.gptel--rewrite-overlay |
| 97c20 | 73 20 73 77 69 74 63 68 65 73 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d | s.switches))..(transient-define- |
| 97c40 | 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 65 64 69 | suffix.gptel--suffix-rewrite-edi |
| 97c60 | 66 66 20 28 29 0a 20 20 22 45 64 69 66 66 20 4c 4c 4d 20 6f 75 74 70 75 74 20 61 67 61 69 6e 73 | ff.()..."Ediff.LLM.output.agains |
| 97c80 | 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 | t.buffer."...:if.(lambda.().gpte |
| 97ca0 | 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 45 22 0a | l--rewrite-overlays)...:key."E". |
| 97cc0 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 45 64 69 66 66 20 4c 4c 4d 20 72 65 77 72 69 74 | ..:description."Ediff.LLM.rewrit |
| 97ce0 | 65 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 | es"...(interactive)...(gptel--re |
| 97d00 | 77 72 69 74 65 2d 65 64 69 66 66 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c | write-ediff.gptel--rewrite-overl |
| 97d20 | 61 79 73 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 | ays))..(transient-define-suffix. |
| 97d40 | 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 20 28 29 0a 20 | gptel--suffix-rewrite-merge.().. |
| 97d60 | 20 22 49 6e 73 65 72 74 20 4c 4c 4d 20 6f 75 74 70 75 74 20 61 73 20 6d 65 72 67 65 20 63 6f 6e | ."Insert.LLM.output.as.merge.con |
| 97d80 | 66 6c 69 63 74 73 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d | flicts"...:if.(lambda.().gptel-- |
| 97da0 | 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 4d 22 0a 20 20 3a | rewrite-overlays)...:key."M"...: |
| 97dc0 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 65 72 67 65 20 77 69 74 68 20 63 6f 6e 66 6c 69 63 74 | description."Merge.with.conflict |
| 97de0 | 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 | s"...(interactive)...(gptel--rew |
| 97e00 | 72 69 74 65 2d 6d 65 72 67 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 | rite-merge.gptel--rewrite-overla |
| 97e20 | 79 73 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 | ys))..(transient-define-suffix.g |
| 97e40 | 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 20 28 29 0a 20 | ptel--suffix-rewrite-accept.().. |
| 97e60 | 20 22 41 63 63 65 70 74 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 77 72 69 74 65 73 2e 22 0a | ."Accept.pending.LLM.rewrites.". |
| 97e80 | 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | ..:if.(lambda.().gptel--rewrite- |
| 97ea0 | 6f 76 65 72 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 41 22 0a 20 20 3a 64 65 73 63 72 69 70 74 | overlays)...:key."A"...:descript |
| 97ec0 | 69 6f 6e 20 22 41 63 63 65 70 74 20 61 6e 64 20 72 65 70 6c 61 63 65 22 0a 20 20 28 69 6e 74 65 | ion."Accept.and.replace"...(inte |
| 97ee0 | 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 | ractive)...(gptel--rewrite-accep |
| 97f00 | 74 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 0a 0a 28 74 72 | t.gptel--rewrite-overlays))..(tr |
| 97f20 | 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 | ansient-define-suffix.gptel--suf |
| 97f40 | 66 69 78 2d 72 65 77 72 69 74 65 2d 72 65 6a 65 63 74 20 28 29 0a 20 20 22 43 6c 65 61 72 20 70 | fix-rewrite-reject.()..."Clear.p |
| 97f60 | 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 77 72 69 74 65 73 2e 22 0a 20 20 3a 69 66 20 28 6c 61 6d | ending.LLM.rewrites."...:if.(lam |
| 97f80 | 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a | bda.().gptel--rewrite-overlays). |
| 97fa0 | 20 20 3a 6b 65 79 20 22 4b 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6c 65 61 72 | ..:key."K"...:description."Clear |
| 97fc0 | 20 70 65 6e 64 69 6e 67 20 72 65 77 72 69 74 65 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 | .pending.rewrites"...(interactiv |
| 97fe0 | 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 72 65 6a 65 63 74 20 67 70 74 65 | e)...(gptel--rewrite-reject.gpte |
| 98000 | 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 | l--rewrite-overlays))..(provide. |
| 98020 | 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 72 65 77 72 69 74 | 'gptel-rewrite).;;;.gptel-rewrit |
| 98040 | 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c | e.el.ends.here..;;.Local.Variabl |
| 98060 | 65 73 3a 0a 3b 3b 20 6f 75 74 6c 69 6e 65 2d 72 65 67 65 78 70 3a 20 22 5e 3b 3b 20 5c 5c 2a 2b | es:.;;.outline-regexp:."^;;.\\*+ |
| 98080 | 22 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ".;;.End:....................... |
| 980a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 980c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 980e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 981a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 981c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 981e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98200 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2e 65 6c 00 00 00 | gptel-0.9.8.5/gptel-openai.el... |
| 98220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98260 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 98280 | 30 30 37 30 34 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 37 00 20 30 00 00 00 | 0070430.00000000000.014357..0... |
| 982a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 982c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 982e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 98320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 98340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 983a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 983c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 983e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98400 | 3b 3b 3b 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2e 65 6c 20 2d 2d 2d 20 20 43 68 61 74 47 50 54 | ;;;.gptel-openai.el.---..ChatGPT |
| 98420 | 20 73 75 70 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | .suppport.for.gptel..-*-.lexical |
| 98440 | 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | -binding:.t;.-*-..;;.Copyright.( |
| 98460 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 98480 | 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | r..;;.Author:.Karthik.Chikmagalu |
| 984a0 | 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e | r.<karthikchikmagalur@gmail.com> |
| 984c0 | 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 | ..;;.This.program.is.free.softwa |
| 984e0 | 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f | re;.you.can.redistribute.it.and/ |
| 98500 | 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 | or.modify.;;.it.under.the.terms. |
| 98520 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 98540 | 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f | e.as.published.by.;;.the.Free.So |
| 98560 | 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f | ftware.Foundation,.either.versio |
| 98580 | 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f | n.3.of.the.License,.or.;;.(at.yo |
| 985a0 | 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b | ur.option).any.later.version...; |
| 985c0 | 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ;.This.program.is.distributed.in |
| 985e0 | 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c | .the.hope.that.it.will.be.useful |
| 98600 | 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 | ,.;;.but.WITHOUT.ANY.WARRANTY;.w |
| 98620 | 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 | ithout.even.the.implied.warranty |
| 98640 | 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 | .of.;;.MERCHANTABILITY.or.FITNES |
| 98660 | 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 | S.FOR.A.PARTICULAR.PURPOSE...See |
| 98680 | 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .the.;;.GNU.General.Public.Licen |
| 986a0 | 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f | se.for.more.details...;;.You.sho |
| 986c0 | 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 | uld.have.received.a.copy.of.the. |
| 986e0 | 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c | GNU.General.Public.License.;;.al |
| 98700 | 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 | ong.with.this.program...If.not,. |
| 98720 | 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 | see.<https://www.gnu.org/license |
| 98740 | 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 | s/>...;;;.Commentary:..;;.This.f |
| 98760 | 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 68 61 74 47 50 54 | ile.adds.support.for.the.ChatGPT |
| 98780 | 20 41 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 | .API.to.gptel..;;;.Code:.(requir |
| 987a0 | 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c | e.'cl-generic).(eval-when-compil |
| 987c0 | 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 69 72 65 20 | e...(require.'cl-lib)).(require. |
| 987e0 | 27 6d 61 70 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 28 64 65 66 | 'map)..(defvar.gptel-model).(def |
| 98800 | 76 61 72 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | var.gptel-stream).(defvar.gptel- |
| 98820 | 75 73 65 2d 63 75 72 6c 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | use-curl).(defvar.gptel-backend) |
| 98840 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 28 64 65 66 | .(defvar.gptel-temperature).(def |
| 98860 | 76 61 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 28 64 65 66 76 61 72 20 67 70 | var.gptel-max-tokens).(defvar.gp |
| 98880 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 28 64 65 66 76 61 72 20 6a 73 6f | tel--system-message).(defvar.jso |
| 988a0 | 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 6f 64 | n-object-type).(defvar.gptel-mod |
| 988c0 | 65 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 | e).(defvar.gptel-track-response) |
| 988e0 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 28 64 65 66 | .(defvar.gptel-track-media).(def |
| 98900 | 76 61 72 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 29 0a 28 64 65 66 76 61 72 20 67 70 74 | var.gptel-use-tools).(defvar.gpt |
| 98920 | 65 6c 2d 74 6f 6f 6c 73 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | el-tools).(declare-function.gpte |
| 98940 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 20 22 67 70 74 65 6c 2d | l-context--collect-media."gptel- |
| 98960 | 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | context").(declare-function.gpte |
| 98980 | 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 | l--base64-encode."gptel").(decla |
| 989a0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 | re-function.gptel--trim-prefixes |
| 989c0 | 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 | ."gptel").(declare-function.gpte |
| 989e0 | 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b 73 20 22 67 70 74 65 6c 22 29 0a 28 64 | l--parse-media-links."gptel").(d |
| 98a00 | 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 | eclare-function.gptel--model-cap |
| 98a20 | 61 62 6c 65 2d 70 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f | able-p."gptel").(declare-functio |
| 98a40 | 6e 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 22 67 70 74 65 6c 22 29 0a 28 64 65 | n.gptel--model-name."gptel").(de |
| 98a60 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 | clare-function.gptel--get-api-ke |
| 98a80 | 79 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f | y."gptel").(declare-function.pro |
| 98aa0 | 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 | p-match-value."text-property-sea |
| 98ac0 | 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 2d 70 72 6f | rch").(declare-function.text-pro |
| 98ae0 | 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d 70 72 6f 70 | perty-search-backward."text-prop |
| 98b00 | 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | erty-search").(declare-function. |
| 98b20 | 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | json-read."json").(declare-funct |
| 98b40 | 69 6f 6e 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 22 | ion.gptel-prompt-prefix-string." |
| 98b60 | 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d | gptel").(declare-function.gptel- |
| 98b80 | 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 22 67 70 74 65 6c 22 29 0a | response-prefix-string."gptel"). |
| 98ba0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 | (declare-function.gptel--merge-p |
| 98bc0 | 6c 69 73 74 73 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | lists."gptel").(declare-function |
| 98be0 | 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 22 67 70 | .gptel--model-request-params."gp |
| 98c00 | 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f | tel").(declare-function.gptel-co |
| 98c20 | 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 | ntext--wrap."gptel-context").(de |
| 98c40 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f | clare-function.gptel--inject-pro |
| 98c60 | 6d 70 74 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 | mpt."gptel").(declare-function.g |
| 98c80 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 22 67 70 74 65 6c 22 29 0a 0a 3b 3b 20 4a | ptel--parse-tools."gptel")..;;.J |
| 98ca0 | 53 4f 4e 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 65 6d 61 6e 74 69 63 73 20 75 73 65 64 20 62 79 | SON.conversion.semantics.used.by |
| 98cc0 | 20 67 70 74 65 6c 0a 3b 3b 20 65 6d 70 74 79 20 6f 62 6a 65 63 74 20 22 7b 7d 22 20 3d 3e 20 65 | .gptel.;;.empty.object."{}".=>.e |
| 98ce0 | 6d 70 74 79 20 6c 69 73 74 20 27 28 29 20 3d 3d 20 6e 69 6c 0a 3b 3b 20 6e 75 6c 6c 20 20 20 20 | mpty.list.'().==.nil.;;.null.... |
| 98d00 | 20 20 20 20 20 20 20 20 20 20 3d 3e 20 3a 6e 75 6c 6c 0a 3b 3b 20 66 61 6c 73 65 20 20 20 20 20 | ..........=>.:null.;;.false..... |
| 98d20 | 20 20 20 20 20 20 20 20 3d 3e 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 0a 0a 3b 3b 20 54 4f 44 4f 28 | ........=>.:json-false..;;.TODO( |
| 98d40 | 74 6f 6f 6c 29 20 45 78 63 65 70 74 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 4a 53 4f 4e 20 66 | tool).Except.when.reading.JSON.f |
| 98d60 | 72 6f 6d 20 61 20 73 74 72 69 6e 67 2c 20 77 68 65 72 65 20 6e 75 6c 6c 20 3d 3e 20 6e 69 6c 0a | rom.a.string,.where.null.=>.nil. |
| 98d80 | 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 20 28 29 0a 20 | .(defmacro.gptel--json-read.().. |
| 98da0 | 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 | .(if.(fboundp.'json-parse-buffer |
| 98dc0 | 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 0a 20 20 20 20 | ).......`(json-parse-buffer..... |
| 98de0 | 20 20 20 20 3a 6f 62 6a 65 63 74 2d 74 79 70 65 20 27 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 | ....:object-type.'plist......... |
| 98e00 | 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 20 20 20 3a 66 61 6c 73 | :null-object.:null.........:fals |
| 98e20 | 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 28 72 65 71 75 69 | e-object.:json-false).....(requi |
| 98e40 | 72 65 20 27 6a 73 6f 6e 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 | re.'json).....(defvar.json-objec |
| 98e60 | 74 2d 74 79 70 65 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6e 75 6c 6c 29 0a 20 | t-type).....(defvar.json-null).. |
| 98e80 | 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 | ...(declare-function.json-read." |
| 98ea0 | 6a 73 6f 6e 22 20 28 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 6a 73 6f 6e 2d 6f 62 6a 65 63 | json".()).....`(let.((json-objec |
| 98ec0 | 74 2d 74 79 70 65 20 27 70 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d | t-type.'plist)............(json- |
| 98ee0 | 6e 75 6c 6c 20 3a 6e 75 6c 6c 29 29 0a 20 20 20 20 20 20 28 6a 73 6f 6e 2d 72 65 61 64 29 29 29 | null.:null)).......(json-read))) |
| 98f00 | 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 | )..(defmacro.gptel--json-read-st |
| 98f20 | 72 69 6e 67 20 28 73 74 72 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e 2d | ring.(str)...(if.(fboundp.'json- |
| 98f40 | 70 61 72 73 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 70 61 72 73 65 | parse-string).......`(json-parse |
| 98f60 | 2d 73 74 72 69 6e 67 20 2c 73 74 72 0a 20 20 20 20 20 20 20 20 3a 6f 62 6a 65 63 74 2d 74 79 70 | -string.,str.........:object-typ |
| 98f80 | 65 20 27 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 6e 69 | e.'plist.........:null-object.ni |
| 98fa0 | 6c 0a 20 20 20 20 20 20 20 20 3a 66 61 6c 73 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 6f 6e 2d 66 61 | l.........:false-object.:json-fa |
| 98fc0 | 6c 73 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 20 20 20 20 28 64 65 | lse).....(require.'json).....(de |
| 98fe0 | 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 28 64 65 63 6c | fvar.json-object-type).....(decl |
| 99000 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d 73 74 72 69 | are-function.json-read-from-stri |
| 99020 | 6e 67 20 22 6a 73 6f 6e 22 20 28 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 6a 73 6f 6e 2d 6f | ng."json".()).....`(let.((json-o |
| 99040 | 62 6a 65 63 74 2d 74 79 70 65 20 27 70 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6a 73 6f 6e 2d | bject-type.'plist)).......(json- |
| 99060 | 72 65 61 64 2d 66 72 6f 6d 2d 73 74 72 69 6e 67 20 2c 73 74 72 29 29 29 29 0a 0a 28 64 65 66 6d | read-from-string.,str))))..(defm |
| 99080 | 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 6f 62 6a 65 63 74 29 | acro.gptel--json-encode.(object) |
| 990a0 | 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 29 | ...(if.(fboundp.'json-serialize) |
| 990c0 | 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 20 2c 6f 62 6a 65 63 74 0a | .......`(json-serialize.,object. |
| 990e0 | 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 | ........:null-object.:null...... |
| 99100 | 20 20 20 3a 66 61 6c 73 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 | ...:false-object.:json-false)... |
| 99120 | 20 20 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 | ..(require.'json).....(defvar.js |
| 99140 | 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6e 75 6c 6c 29 | on-false).....(defvar.json-null) |
| 99160 | 0a 20 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 65 6e 63 6f | .....(declare-function.json-enco |
| 99180 | 64 65 20 22 6a 73 6f 6e 22 20 28 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 | de."json".(object)).....`(let.(( |
| 991a0 | 6a 73 6f 6e 2d 66 61 6c 73 65 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 | json-false.:json-false)......... |
| 991c0 | 20 20 20 28 6a 73 6f 6e 2d 6e 75 6c 6c 20 20 3a 6e 75 6c 6c 29 29 0a 20 20 20 20 20 20 28 6a 73 | ...(json-null..:null)).......(js |
| 991e0 | 6f 6e 2d 65 6e 63 6f 64 65 20 2c 6f 62 6a 65 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | on-encode.,object))))..(defun.gp |
| 99200 | 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 28 6d 6f 64 65 6c 73 29 0a 20 20 22 | tel--process-models.(models)..." |
| 99220 | 43 6f 6e 76 65 72 74 20 69 74 65 6d 73 20 69 6e 20 4d 4f 44 45 4c 53 20 74 6f 20 73 79 6d 62 6f | Convert.items.in.MODELS.to.symbo |
| 99240 | 6c 73 20 77 69 74 68 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 72 6f 70 65 72 74 69 65 73 2e 22 | ls.with.appropriate.properties." |
| 99260 | 0a 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 29 0a 20 20 20 | ...(let.((models-processed)).... |
| 99280 | 20 28 64 6f 6c 69 73 74 20 28 6d 6f 64 65 6c 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 28 63 | .(dolist.(model.models).......(c |
| 992a0 | 6c 2d 65 74 79 70 65 63 61 73 65 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e | l-etypecase.model.........(strin |
| 992c0 | 67 20 28 70 75 73 68 20 28 69 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 20 6d 6f 64 65 6c 73 2d 70 72 | g.(push.(intern.model).models-pr |
| 992e0 | 6f 63 65 73 73 65 64 29 29 0a 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 70 75 73 68 20 | ocessed)).........(symbol.(push. |
| 99300 | 6d 6f 64 65 6c 20 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 29 0a 20 20 20 20 20 20 20 | model.models-processed))........ |
| 99320 | 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 74 75 72 69 6e | .(cons..........(cl-destructurin |
| 99340 | 67 2d 62 69 6e 64 20 28 6e 61 6d 65 20 2e 20 70 72 6f 70 73 29 20 6d 6f 64 65 6c 0a 20 20 20 20 | g-bind.(name...props).model..... |
| 99360 | 20 20 20 20 20 20 20 28 73 65 74 66 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 6e 61 6d 65 29 | .......(setf.(symbol-plist.name) |
| 99380 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 41 59 42 45 3a 20 4d 65 72 67 | ..................;;.MAYBE:.Merg |
| 993a0 | 69 6e 67 20 65 78 69 73 74 69 6e 67 20 73 79 6d 62 6f 6c 20 70 6c 69 73 74 73 20 69 73 20 73 61 | ing.existing.symbol.plists.is.sa |
| 993c0 | 66 65 72 2c 20 62 75 74 20 6d 61 6b 65 73 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer,.but.makes.it............... |
| 993e0 | 20 20 20 3b 3b 20 64 69 66 66 69 63 75 6c 74 20 74 6f 20 72 65 73 65 74 20 61 20 73 79 6d 62 6f | ...;;.difficult.to.reset.a.symbo |
| 99400 | 6c 20 70 6c 69 73 74 2c 20 73 69 6e 63 65 20 72 65 6d 6f 76 69 6e 67 20 6b 65 79 73 20 66 72 6f | l.plist,.since.removing.keys.fro |
| 99420 | 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 28 61 73 20 6f 70 70 | m..................;;.it.(as.opp |
| 99440 | 6f 73 65 64 20 74 6f 20 73 65 74 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 6e 69 6c 29 20 69 73 20 | osed.to.setting.them.to.nil).is. |
| 99460 | 6d 6f 72 65 20 77 6f 72 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 | more.work...................;;.. |
| 99480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 6d 61 70 2d 6d 65 72 67 65 20 27 70 | ................;;.(map-merge.'p |
| 994a0 | 6c 69 73 74 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 6e 61 6d 65 29 20 70 72 6f 70 73 29 0a | list.(symbol-plist.name).props). |
| 994c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 73 29 0a 20 20 20 20 20 20 20 20 | .................props)......... |
| 994e0 | 20 20 20 28 70 75 73 68 20 6e 61 6d 65 20 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 29 | ...(push.name.models-processed)) |
| 99500 | 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 | ))).....(nreverse.models-process |
| 99520 | 65 64 29 29 29 0a 0a 3b 3b 3b 20 43 6f 6d 6d 6f 6e 20 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 | ed)))..;;;.Common.backend.struct |
| 99540 | 20 66 6f 72 20 4c 4c 4d 20 73 75 70 70 6f 72 74 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d | .for.LLM.support.(defvar.gptel-- |
| 99560 | 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 4c | known-backends.nil..."Alist.of.L |
| 99580 | 4c 4d 20 62 61 63 6b 65 6e 64 73 20 6b 6e 6f 77 6e 20 74 6f 20 67 70 74 65 6c 2e 0a 0a 54 68 69 | LM.backends.known.to.gptel...Thi |
| 995a0 | 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 75 73 65 72 2d 70 72 6f 76 69 | s.is.an.alist.mapping.user-provi |
| 995c0 | 64 65 64 20 6e 61 6d 65 73 20 74 6f 20 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 73 2c 0a 73 65 | ded.names.to.backend.structs,.se |
| 995e0 | 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 2e 0a 0a 59 6f 75 20 63 61 6e 20 68 61 76 65 | e.`gptel-backend'...You.can.have |
| 99600 | 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 62 61 63 6b 65 6e 64 20 70 6f 69 6e 74 69 6e 67 20 | .more.than.one.backend.pointing. |
| 99620 | 74 6f 20 74 68 65 20 73 61 6d 65 20 72 65 73 6f 75 72 63 65 0a 77 69 74 68 20 64 69 66 66 65 72 | to.the.same.resource.with.differ |
| 99640 | 69 6e 67 20 73 65 74 74 69 6e 67 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 67 65 | ing.settings.")..(defun.gptel-ge |
| 99660 | 74 2d 62 61 63 6b 65 6e 64 20 28 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 67 70 74 65 6c | t-backend.(name)..."Return.gptel |
| 99680 | 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 54 68 72 6f 77 20 61 6e 20 65 72 | .backend.with.NAME...Throw.an.er |
| 996a0 | 72 6f 72 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6d 61 74 63 68 2e 22 0a 20 20 28 6f 72 | ror.if.there.is.no.match."...(or |
| 996c0 | 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 | .(alist-get.name.gptel--known-ba |
| 996e0 | 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 28 75 | ckends.nil.nil.#'equal).......(u |
| 99700 | 73 65 72 2d 65 72 72 6f 72 20 22 42 61 63 6b 65 6e 64 20 25 73 20 69 73 20 6e 6f 74 20 6b 6e 6f | ser-error."Backend.%s.is.not.kno |
| 99720 | 77 6e 20 74 6f 20 62 65 20 64 65 66 69 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | wn.to.be.defined"............... |
| 99740 | 20 20 20 20 6e 61 6d 65 29 29 29 0a 0a 28 67 76 2d 64 65 66 69 6e 65 2d 73 65 74 74 65 72 20 67 | ....name)))..(gv-define-setter.g |
| 99760 | 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 28 76 61 6c 20 6e 61 6d 65 29 0a 20 20 60 28 | ptel-get-backend.(val.name)...`( |
| 99780 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 2c 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f | setf.(alist-get.,name.gptel--kno |
| 997a0 | 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 23 27 65 71 | wn-backends...........nil.t.#'eq |
| 997c0 | 75 61 6c 29 0a 20 20 20 20 2c 76 61 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 0a 20 | ual).....,val))..(cl-defstruct.. |
| 997e0 | 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 | ...(gptel-backend.(:constructor. |
| 99800 | 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | gptel--make-backend)............ |
| 99820 | 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 2d 63 6f 70 79 2d 62 61 63 | ........(:copier.gptel--copy-bac |
| 99840 | 6b 65 6e 64 29 29 0a 20 20 6e 61 6d 65 20 68 6f 73 74 20 68 65 61 64 65 72 20 70 72 6f 74 6f 63 | kend))...name.host.header.protoc |
| 99860 | 6f 6c 20 73 74 72 65 61 6d 0a 20 20 65 6e 64 70 6f 69 6e 74 20 6b 65 79 20 6d 6f 64 65 6c 73 20 | ol.stream...endpoint.key.models. |
| 99880 | 75 72 6c 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 63 75 72 6c 2d 61 72 67 73 0a 20 | url.request-params...curl-args.. |
| 998a0 | 20 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 6e 69 6c 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 | .(coding-system.nil.:documentati |
| 998c0 | 6f 6e 20 22 43 61 6e 20 62 65 20 73 65 74 20 74 6f 20 60 62 69 6e 61 72 79 27 20 69 66 20 74 68 | on."Can.be.set.to.`binary'.if.th |
| 998e0 | 65 20 62 61 63 6b 65 6e 64 20 65 78 70 65 63 74 73 20 6e 6f 6e 20 55 54 46 2d 38 20 6f 75 74 70 | e.backend.expects.non.UTF-8.outp |
| 99900 | 75 74 2e 22 29 29 0a 0a 3b 3b 3b 20 4f 70 65 6e 41 49 20 28 43 68 61 74 47 50 54 29 0a 28 63 6c | ut."))..;;;.OpenAI.(ChatGPT).(cl |
| 99920 | 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6f 70 65 6e 61 69 20 28 3a 63 6f 6e 73 74 | -defstruct.(gptel-openai.(:const |
| 99940 | 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 | ructor.gptel--make-openai)...... |
| 99960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 | .......................(:copier. |
| 99980 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nil)............................ |
| 999a0 | 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 3b 3b 20 | .(:include.gptel-backend)))..;;. |
| 999c0 | 48 6f 77 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 77 6f 72 6b 73 | How.the.following.function.works |
| 999e0 | 3a 0a 3b 3b 0a 3b 3b 20 54 68 65 20 4f 70 65 6e 41 49 20 41 50 49 20 72 65 74 75 72 6e 73 20 61 | :.;;.;;.The.OpenAI.API.returns.a |
| 99a00 | 20 73 74 72 65 61 6d 20 6f 66 20 64 61 74 61 20 63 68 75 6e 6b 73 2e 20 20 45 61 63 68 20 64 61 | .stream.of.data.chunks...Each.da |
| 99a20 | 74 61 20 63 68 75 6e 6b 20 68 61 73 20 61 0a 3b 3b 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 68 61 74 | ta.chunk.has.a.;;.component.that |
| 99a40 | 20 63 61 6e 20 62 65 20 70 61 72 73 65 64 20 61 73 20 4a 53 4f 4e 2e 20 20 42 65 73 69 64 65 73 | .can.be.parsed.as.JSON...Besides |
| 99a60 | 20 6d 65 74 61 64 61 74 61 2c 20 65 61 63 68 20 63 68 75 6e 6b 20 68 61 73 0a 3b 3b 20 65 69 74 | .metadata,.each.chunk.has.;;.eit |
| 99a80 | 68 65 72 20 73 6f 6d 65 20 74 65 78 74 20 6f 72 20 70 61 72 74 20 6f 66 20 61 20 74 6f 6f 6c 20 | her.some.text.or.part.of.a.tool. |
| 99aa0 | 63 61 6c 6c 2e 0a 3b 3b 0a 3b 3b 20 49 66 20 77 65 20 66 69 6e 64 20 74 65 78 74 2c 20 77 65 20 | call..;;.;;.If.we.find.text,.we. |
| 99ac0 | 63 6f 6c 6c 65 63 74 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2c 20 63 6f 6e 63 61 74 20 74 68 65 | collect.it.in.a.list,.concat.the |
| 99ae0 | 6d 20 61 74 20 74 68 65 20 65 6e 64 20 61 6e 64 20 72 65 74 75 72 6e 0a 3b 3b 20 69 74 2e 0a 3b | m.at.the.end.and.return.;;.it..; |
| 99b00 | 3b 0a 3b 3b 20 49 66 20 77 65 20 66 69 6e 64 20 70 61 72 74 20 6f 66 20 61 20 74 6f 6f 6c 20 63 | ;.;;.If.we.find.part.of.a.tool.c |
| 99b20 | 61 6c 6c 2c 20 77 65 20 62 65 67 69 6e 20 63 6f 6c 6c 65 63 74 69 6e 67 20 74 68 65 20 70 69 65 | all,.we.begin.collecting.the.pie |
| 99b40 | 63 65 73 20 69 6e 0a 3b 3b 20 49 4e 46 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 2e 0a 3b 3b 0a | ces.in.;;.INFO.->.:tool-use..;;. |
| 99b60 | 3b 3b 20 54 6f 6f 6c 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 74 68 65 6d 73 | ;;.Tool.call.arguments.are.thems |
| 99b80 | 65 6c 76 65 73 20 4a 53 4f 4e 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 73 20 63 61 6e 20 62 | elves.JSON.encoded.strings.can.b |
| 99ba0 | 65 20 73 70 72 65 61 64 20 61 63 72 6f 73 73 0a 3b 3b 20 63 68 75 6e 6b 73 2e 20 20 57 65 20 63 | e.spread.across.;;.chunks...We.c |
| 99bc0 | 6f 6c 6c 65 63 74 20 74 68 65 6d 20 69 6e 20 49 4e 46 4f 20 2d 3e 20 3a 70 61 72 74 69 61 6c 5f | ollect.them.in.INFO.->.:partial_ |
| 99be0 | 6a 73 6f 6e 2e 20 20 54 68 65 20 65 6e 64 20 6f 66 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 0a 3b 3b | json...The.end.of.a.tool.call.;; |
| 99c00 | 20 63 68 75 6e 6b 20 69 73 20 6d 61 72 6b 65 64 20 62 79 20 74 68 65 20 62 65 67 69 6e 6e 69 6e | .chunk.is.marked.by.the.beginnin |
| 99c20 | 67 20 6f 66 20 61 6e 6f 74 68 65 72 2c 20 6f 72 20 62 79 20 74 68 65 20 65 6e 64 20 6f 66 20 74 | g.of.another,.or.by.the.end.of.t |
| 99c40 | 68 65 20 73 74 72 65 61 6d 2e 20 20 49 6e 0a 3b 3b 20 65 69 74 68 65 72 20 63 61 73 65 20 77 65 | he.stream...In.;;.either.case.we |
| 99c60 | 20 66 6c 61 74 65 6e 20 74 68 65 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 77 65 20 68 61 76 | .flaten.the.:partial_json.we.hav |
| 99c80 | 65 20 74 68 75 73 20 66 61 72 2c 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 74 6f 6f 6c 0a 3b | e.thus.far,.add.it.to.the.tool.; |
| 99ca0 | 3b 20 63 61 6c 6c 20 73 70 65 63 20 69 6e 20 3a 74 6f 6f 6c 2d 75 73 65 20 61 6e 64 20 72 65 73 | ;.call.spec.in.:tool-use.and.res |
| 99cc0 | 65 74 20 69 74 2e 20 20 46 69 6e 61 6c 6c 79 20 77 65 20 61 70 70 65 6e 64 20 74 68 65 20 74 6f | et.it...Finally.we.append.the.to |
| 99ce0 | 6f 6c 20 63 61 6c 6c 73 20 74 6f 20 74 68 65 0a 3b 3b 20 28 49 4e 46 4f 20 2d 3e 20 3a 64 61 74 | ol.calls.to.the.;;.(INFO.->.:dat |
| 99d00 | 61 20 2d 3e 20 3a 6d 65 73 73 61 67 65 73 29 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e | a.->.:messages).list.of.prompts. |
| 99d20 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 | ..(cl-defmethod.gptel-curl--pars |
| 99d40 | 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 | e-stream.((_backend.gptel-openai |
| 99d60 | 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 41 50 49 20 64 | ).info)..."Parse.an.OpenAI.API.d |
| 99d80 | 61 74 61 20 73 74 72 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 72 65 73 | ata.stream...Return.the.text.res |
| 99da0 | 70 6f 6e 73 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 | ponse.accumulated.since.the.last |
| 99dc0 | 20 63 61 6c 6c 20 74 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f | .call.to.this.function...Additio |
| 99de0 | 6e 61 6c 6c 79 2c 20 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 | nally,.mutate.state.INFO.to.add. |
| 99e00 | 74 6f 6f 6c 2d 75 73 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 73 74 72 65 | tool-use.information.if.the.stre |
| 99e20 | 61 6d 20 63 6f 6e 74 61 69 6e 73 20 69 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 | am.contains.it."...(let*.((conte |
| 99e40 | 6e 74 2d 73 74 72 73 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 | nt-strs)).....(condition-case.ni |
| 99e60 | 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 | l.........(while.(re-search-forw |
| 99e80 | 61 72 64 20 22 5e 64 61 74 61 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 | ard."^data:".nil.t)...........(s |
| 99ea0 | 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | ave-match-data.............(if.( |
| 99ec0 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 2a 5c 5c 5b 44 4f 4e 45 5c 5c 5d 22 29 0a 20 20 20 20 20 | looking-at.".*\\[DONE\\]")...... |
| 99ee0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 73 74 72 65 61 6d 20 68 61 73 20 65 6e 64 | ...........;;.The.stream.has.end |
| 99f00 | 65 64 2c 20 73 6f 20 77 65 20 64 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 69 6e 67 | ed,.so.we.do.the.following.thing |
| 99f20 | 20 28 69 66 20 77 65 20 66 6f 75 6e 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 | .(if.we.found.tool.calls)....... |
| 99f40 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2d 20 70 61 63 6b 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 69 | ..........;;.-.pack.tool.calls.i |
| 99f60 | 6e 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 20 74 6f | nto.the.messages.prompts.list.to |
| 99f80 | 20 73 65 6e 64 20 28 49 4e 46 4f 20 2d 3e 20 3a 64 61 74 61 20 2d 3e 20 3a 6d 65 73 73 61 67 65 | .send.(INFO.->.:data.->.:message |
| 99fa0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2d 20 63 6f 6c 6c 65 63 74 20 | s).................;;.-.collect. |
| 99fc0 | 74 6f 6f 6c 20 63 61 6c 6c 73 20 28 66 6f 72 6d 61 74 74 65 64 20 64 69 66 66 65 72 65 6e 74 6c | tool.calls.(formatted.differentl |
| 99fe0 | 79 29 20 69 6e 74 6f 20 28 49 4e 46 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 | y).into.(INFO.->.:tool-use)..... |
| 9a000 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 75 73 | ............(when-let*.((tool-us |
| 9a020 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 | e.(plist-get.info.:tool-use))... |
| 9a040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 | ..........................(args. |
| 9a060 | 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 28 70 6c 69 73 74 | (apply.#'concat.(nreverse.(plist |
| 9a080 | 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 29 0a 20 20 20 20 | -get.info.:partial_json))))..... |
| 9a0a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 20 28 70 | ........................(func.(p |
| 9a0c0 | 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 74 6f 6f 6c 2d 75 73 65 29 20 3a 66 75 6e 63 74 69 6f | list-get.(car.tool-use).:functio |
| 9a0e0 | 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | n)))...................(plist-pu |
| 9a100 | 74 20 66 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 61 72 67 73 29 20 3b 55 70 64 61 74 65 20 | t.func.:arguments.args).;Update. |
| 9a120 | 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 6c 61 73 74 20 72 65 63 6f 72 64 65 64 20 74 6f 6f 6c | arguments.for.last.recorded.tool |
| 9a140 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 | ...................(gptel--injec |
| 9a160 | 74 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | t-prompt....................(pli |
| 9a180 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 28 70 6c 69 73 74 2d 67 65 74 | st-get.info.:backend).(plist-get |
| 9a1a0 | 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:data).................... |
| 9a1c0 | 60 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 3a 6e 75 | `(:role."assistant".:content.:nu |
| 9a1e0 | 6c 6c 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 2c 28 76 63 6f 6e 63 61 74 20 74 6f 6f 6c 2d 75 73 | ll.:tool_calls.,(vconcat.tool-us |
| 9a200 | 65 29 29 29 20 3b 20 3a 72 65 66 75 73 61 6c 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 | e))).;.:refusal.:null........... |
| 9a220 | 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(cl-loop................ |
| 9a240 | 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 63 61 6c 6c 20 69 6e 20 74 6f 6f 6c 2d 75 73 65 20 3b 20 | ....for.tool-call.in.tool-use.;. |
| 9a260 | 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 61 6c 6c 20 73 70 65 63 73 20 66 6f 72 20 72 75 6e | Construct.the.call.specs.for.run |
| 9a280 | 6e 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 | ning.the.function.calls......... |
| 9a2a0 | 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 70 65 63 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 | ...........for.spec.=.(plist-get |
| 9a2c0 | 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 | .tool-call.:function)........... |
| 9a2e0 | 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 69 64 20 28 70 6c 69 73 | .........collect.(list.:id.(plis |
| 9a300 | 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t-get.tool-call.:id)............ |
| 9a320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 70 6c 69 | ......................:name.(pli |
| 9a340 | 73 74 2d 67 65 74 20 73 70 65 63 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | st-get.spec.:name).............. |
| 9a360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 28 69 67 6e 6f 72 | ....................:args.(ignor |
| 9a380 | 65 2d 65 72 72 6f 72 73 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 72 69 6e | e-errors.(gptel--json-read-strin |
| 9a3a0 | 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g............................... |
| 9a3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | .........................(plist- |
| 9a3e0 | 67 65 74 20 73 70 65 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 | get.spec.:arguments))))......... |
| 9a400 | 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 63 61 6c 6c 2d 73 70 65 63 73 0a 20 20 20 20 20 | ...........into.call-specs...... |
| 9a420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 70 6c 69 73 74 2d 70 75 74 | ..............finally.(plist-put |
| 9a440 | 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 20 63 61 6c 6c 2d 73 70 65 63 73 29 29 29 0a 20 20 | .info.:tool-use.call-specs)))... |
| 9a460 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 73 70 6f 6e 73 | ............(when-let*.((respons |
| 9a480 | 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 | e.(gptel--json-read))........... |
| 9a4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 74 61 20 28 6d 61 70 2d 6e 65 73 74 | ................(delta.(map-nest |
| 9a4c0 | 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 64 65 | ed-elt.response.'(:choices.0.:de |
| 9a4e0 | 6c 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a | lta)))).................(if-let* |
| 9a500 | 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 6f 6e | .((content.(plist-get.delta.:con |
| 9a520 | 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tent)).......................... |
| 9a540 | 20 28 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c 29 20 28 73 | .((not.(or.(eq.content.:null).(s |
| 9a560 | 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 63 6f 6e 74 65 6e 74 29 29 29 29 29 0a 20 20 20 20 20 | tring-empty-p.content)))))...... |
| 9a580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 63 6f 6e | ...............(push.content.con |
| 9a5a0 | 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | tent-strs)...................;;. |
| 9a5c0 | 4e 6f 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2c 20 73 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 6f 6f | No.text.content,.so.look.for.too |
| 9a5e0 | 6c 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d | l.calls...................(when- |
| 9a600 | 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 63 61 6c 6c 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 | let*.((tool-call.(map-nested-elt |
| 9a620 | 20 64 65 6c 74 61 20 27 28 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 30 29 29 29 0a 20 20 20 20 20 20 | .delta.'(:tool_calls.0)))....... |
| 9a640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 20 28 70 | ........................(func.(p |
| 9a660 | 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 29 0a | list-get.tool-call.:function))). |
| 9a680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 67 | ....................(if.(plist-g |
| 9a6a0 | 65 74 20 66 75 6e 63 20 3a 6e 61 6d 65 29 20 3b 6e 65 77 20 74 6f 6f 6c 20 62 6c 6f 63 6b 20 62 | et.func.:name).;new.tool.block.b |
| 9a6c0 | 65 67 69 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | egins.........................(p |
| 9a6e0 | 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | rogn...........................( |
| 9a700 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 61 72 74 69 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | when-let*.((partial.(plist-get.i |
| 9a720 | 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | nfo.:partial_json)))............ |
| 9a740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 65 76 2d 74 6f | .................(let*.((prev-to |
| 9a760 | 6f 6c 2d 63 61 6c 6c 20 28 63 61 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f | ol-call.(car.(plist-get.info.:to |
| 9a780 | 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol-use)))....................... |
| 9a7a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 66 75 6e 63 20 28 70 6c 69 73 74 2d 67 | .............(prev-func.(plist-g |
| 9a7c0 | 65 74 20 70 72 65 76 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 | et.prev-tool-call.:function))).. |
| 9a7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | .............................(pl |
| 9a800 | 69 73 74 2d 70 75 74 20 70 72 65 76 2d 66 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 3b 75 70 | ist-put.prev-func.:arguments.;up |
| 9a820 | 64 61 74 65 20 61 72 67 73 20 66 6f 72 20 6f 6c 64 20 74 6f 6f 6c 20 62 6c 6f 63 6b 0a 20 20 20 | date.args.for.old.tool.block.... |
| 9a840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9a860 | 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 | ......(apply.#'concat.(nreverse. |
| 9a880 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 | (plist-get.info.:partial_json))) |
| 9a8a0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )).............................( |
| 9a8c0 | 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 6e 69 6c | plist-put.info.:partial_json.nil |
| 9a8e0 | 29 29 20 3b 63 6c 65 61 72 20 6f 75 74 20 66 69 6e 69 73 68 65 64 20 63 68 61 69 6e 20 6f 66 20 | )).;clear.out.finished.chain.of. |
| 9a900 | 70 61 72 74 69 61 6c 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | partial.args.................... |
| 9a920 | 20 20 20 20 20 20 20 3b 3b 20 53 74 61 72 74 20 6e 65 77 20 63 68 61 69 6e 20 6f 66 20 70 61 72 | .......;;.Start.new.chain.of.par |
| 9a940 | 74 69 61 6c 20 61 72 67 75 6d 65 6e 74 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 | tial.argument.strings........... |
| 9a960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 | ................(plist-put.info. |
| 9a980 | 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 28 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 66 | :partial_json.(list.(plist-get.f |
| 9a9a0 | 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | unc.:arguments)))............... |
| 9a9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 44 6f 20 4e 4f 54 20 75 73 65 20 | ............;;.NOTE:.Do.NOT.use. |
| 9a9e0 | 60 70 75 73 68 27 20 66 6f 72 20 74 68 69 73 2c 20 69 74 20 70 72 65 70 65 6e 64 73 20 61 6e 64 | `push'.for.this,.it.prepends.and |
| 9aa00 | 20 77 65 20 6c 6f 73 65 20 74 68 65 20 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 20 | .we.lose.the.reference.......... |
| 9aa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | .................(plist-put.info |
| 9aa40 | 20 3a 74 6f 6f 6c 2d 75 73 65 20 28 63 6f 6e 73 20 74 6f 6f 6c 2d 63 61 6c 6c 20 28 70 6c 69 73 | .:tool-use.(cons.tool-call.(plis |
| 9aa60 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 | t-get.info.:tool-use))))........ |
| 9aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6c 64 20 74 6f 6f 6c 20 62 6c 6f 63 6b | ...............;;.old.tool.block |
| 9aaa0 | 20 63 6f 6e 74 69 6e 75 65 73 2c 20 73 6f 20 63 6f 6e 74 69 6e 75 65 20 63 6f 6c 6c 65 63 74 69 | .continues,.so.continue.collecti |
| 9aac0 | 6e 67 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 0a 20 | ng.arguments.in.:partial_json... |
| 9aae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 70 6c 69 73 | .....................(push.(plis |
| 9ab00 | 74 2d 67 65 74 20 66 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 20 28 70 6c 69 73 74 2d 67 65 | t-get.func.:arguments).(plist-ge |
| 9ab20 | 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 29 29 0a 20 20 20 20 20 20 | t.info.:partial_json)))))....... |
| 9ab40 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 | ..........;;.Check.for.reasoning |
| 9ab60 | 20 62 6c 6f 63 6b 73 2c 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 62 79 20 | .blocks,.currently.only.used.by. |
| 9ab80 | 4f 70 65 6e 72 6f 75 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 41 | Openrouter.................;;.MA |
| 9aba0 | 59 42 45 3a 20 53 68 6f 75 6c 64 20 74 68 69 73 20 62 65 20 6d 6f 76 65 64 20 74 6f 20 61 20 64 | YBE:.Should.this.be.moved.to.a.d |
| 9abc0 | 65 64 69 63 61 74 65 64 20 4f 70 65 6e 72 6f 75 74 65 72 20 62 61 63 6b 65 6e 64 3f 0a 20 20 20 | edicated.Openrouter.backend?.... |
| 9abe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 65 71 20 28 70 6c | .............(unless.(or.(eq.(pl |
| 9ac00 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 | ist-get.info.:reasoning-block).' |
| 9ac20 | 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | done)........................... |
| 9ac40 | 20 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 64 65 6c 74 61 20 3a 72 65 61 73 | ..(not.(plist-member.delta.:reas |
| 9ac60 | 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c | oning)))...................(if-l |
| 9ac80 | 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 28 70 6c 69 73 74 2d 67 65 74 | et*.((reasoning-chunk.(plist-get |
| 9aca0 | 20 64 65 6c 74 61 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 20 3b 66 6f 72 20 6f 70 65 6e 72 6f 75 | .delta.:reasoning)).;for.openrou |
| 9acc0 | 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ter............................. |
| 9ace0 | 28 28 6e 6f 74 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 3a 6e 75 6c 6c 29 | ((not.(eq.reasoning-chunk.:null) |
| 9ad00 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ))).......................(plist |
| 9ad20 | 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | -put.info.:reasoning............ |
| 9ad40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 | ......................(concat.(p |
| 9ad60 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 61 73 6f 6e | list-get.info.:reasoning).reason |
| 9ad80 | 69 6e 67 2d 63 68 75 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-chunk))..................... |
| 9ada0 | 3b 3b 20 44 6f 6e 65 20 77 69 74 68 20 72 65 61 73 6f 6e 69 6e 67 20 69 66 20 77 65 20 67 65 74 | ;;.Done.with.reasoning.if.we.get |
| 9adc0 | 20 6e 6f 6e 2d 65 6d 70 74 79 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .non-empty.content.............. |
| 9ade0 | 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 20 28 70 6c 69 73 74 2d 67 65 74 20 64 | .......(if-let*.((c.(plist-get.d |
| 9ae00 | 65 6c 74 61 20 3a 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elta.:content))................. |
| 9ae20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 20 3a 6e | ..............((not.(or.(eq.c.:n |
| 9ae40 | 75 6c 6c 29 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 63 29 29 29 29 29 0a 20 20 20 20 | ull).(string-empty-p.c)))))..... |
| 9ae60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 6d | ....................(if.(plist-m |
| 9ae80 | 65 6d 62 65 72 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 3b 49 73 20 74 68 69 73 20 | ember.info.:reasoning).;Is.this. |
| 9aea0 | 61 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.reasoning.model?.............. |
| 9aec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 9aee0 | 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 20 3b 45 6e 64 20 6f 66 20 73 74 72 65 61 | reasoning-block.t).;End.of.strea |
| 9af00 | 6d 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 | ming.reasoning.block............ |
| 9af20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 9af40 | 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 29 29 29 29 29 29 29 29 20 3b | reasoning-block.'done))))))))).; |
| 9af60 | 4e 6f 74 20 75 73 69 6e 67 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 0a 20 20 20 20 | Not.using.a.reasoning.model..... |
| 9af80 | 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e | ..(error.(goto-char.(match-begin |
| 9afa0 | 6e 69 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 | ning.0)))).....(apply.#'concat.( |
| 9afc0 | 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 | nreverse.content-strs))))..(cl-d |
| 9afe0 | 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 | efmethod.gptel--parse-response.( |
| 9b000 | 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 72 65 73 70 6f 6e 73 65 | (_backend.gptel-openai).response |
| 9b020 | 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 28 6e 6f 6e 2d 73 | .info)..."Parse.an.OpenAI.(non-s |
| 9b040 | 74 72 65 61 6d 69 6e 67 29 20 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 75 72 6e 20 72 65 | treaming).RESPONSE.and.return.re |
| 9b060 | 73 70 6f 6e 73 65 20 74 65 78 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 | sponse.text...Mutate.state.INFO. |
| 9b080 | 77 69 74 68 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 6c 65 74 2a | with.response.metadata."...(let* |
| 9b0a0 | 20 28 28 63 68 6f 69 63 65 30 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f | .((choice0.(map-nested-elt.respo |
| 9b0c0 | 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 | nse.'(:choices.0)))..........(me |
| 9b0e0 | 73 73 61 67 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 6d 65 73 73 61 67 | ssage.(plist-get.choice0.:messag |
| 9b100 | 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 | e))..........(content.(plist-get |
| 9b120 | 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d | .message.:content))).....(plist- |
| 9b140 | 70 75 74 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 | put.info.:stop-reason........... |
| 9b160 | 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 66 69 6e 69 73 68 5f | .....(plist-get.choice0.:finish_ |
| 9b180 | 72 65 61 73 6f 6e 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6f 75 | reason)).....(plist-put.info.:ou |
| 9b1a0 | 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d | tput-tokens................(map- |
| 9b1c0 | 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 63 6f | nested-elt.response.'(:usage.:co |
| 9b1e0 | 6d 70 6c 65 74 69 6f 6e 5f 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 41 49 | mpletion_tokens))).....;;.OpenAI |
| 9b200 | 20 72 65 74 75 72 6e 73 20 65 69 74 68 65 72 20 6e 6f 6e 2d 62 6c 61 6e 6b 20 74 65 78 74 20 63 | .returns.either.non-blank.text.c |
| 9b220 | 6f 6e 74 65 6e 74 20 6f 72 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 2c 20 6e 6f 74 20 62 6f 74 68 2e | ontent.or.a.tool.call,.not.both. |
| 9b240 | 0a 20 20 20 20 3b 3b 20 48 6f 77 65 76 65 72 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c | .....;;.However.OpenAI-compatibl |
| 9b260 | 65 20 41 50 49 73 20 6c 69 6b 65 20 6c 6c 61 6d 61 2e 63 70 70 20 63 61 6e 20 69 6e 63 6c 75 64 | e.APIs.like.llama.cpp.can.includ |
| 9b280 | 65 20 62 6f 74 68 20 28 23 38 31 39 29 2c 20 73 6f 0a 20 20 20 20 3b 3b 20 77 65 20 63 68 65 63 | e.both.(#819),.so.....;;.we.chec |
| 9b2a0 | 6b 20 66 6f 72 20 62 6f 74 68 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 6e 64 20 72 65 73 70 6f 6e | k.for.both.tool.calls.and.respon |
| 9b2c0 | 73 65 73 20 69 6e 64 65 70 65 6e 64 65 6e 74 6c 79 2e 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 | ses.independently......(when-let |
| 9b2e0 | 2a 20 28 28 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 | *.((tool-calls.(plist-get.messag |
| 9b300 | 65 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.:tool_calls))................. |
| 9b320 | 28 28 6e 6f 74 20 28 65 71 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 | ((not.(eq.tool-calls.:null)))).. |
| 9b340 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 20 20 20 20 20 | .....(gptel--inject-prompt...... |
| 9b360 | 20 20 3b 20 46 69 72 73 74 20 61 64 64 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 74 6f 20 74 | ..;.First.add.the.tool.call.to.t |
| 9b380 | 68 65 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 | he.prompts.list........(plist-ge |
| 9b3a0 | 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | t.info.:backend).(plist-get.info |
| 9b3c0 | 20 3a 64 61 74 61 29 20 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 | .:data).message).......(cl-loop. |
| 9b3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 54 68 65 6e 20 63 61 70 74 75 72 65 20 74 68 65 20 74 6f | ............;Then.capture.the.to |
| 9b400 | 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 74 6f 6f | ol.call.data.for.running.the.too |
| 9b420 | 6c 0a 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 63 61 6c 6c 20 61 63 72 6f 73 73 20 74 6f | l........for.tool-call.across.to |
| 9b440 | 6f 6c 2d 63 61 6c 6c 73 20 20 3b 72 65 70 6c 61 63 65 20 22 3a 61 72 67 75 6d 65 6e 74 73 22 20 | ol-calls..;replace.":arguments". |
| 9b460 | 77 69 74 68 20 22 3a 61 72 67 73 22 0a 20 20 20 20 20 20 20 66 6f 72 20 63 61 6c 6c 2d 73 70 65 | with.":args"........for.call-spe |
| 9b480 | 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f | c.=.(copy-sequence.(plist-get.to |
| 9b4a0 | 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 64 6f 20 28 69 | ol-call.:function))........do.(i |
| 9b4c0 | 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 | gnore-errors.(plist-put.call-spe |
| 9b4e0 | 63 20 3a 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | c.:args......................... |
| 9b500 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 | ............(gptel--json-read-st |
| 9b520 | 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ring............................ |
| 9b540 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a | ..........(plist-get.call-spec.: |
| 9b560 | 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | arguments))))........(plist-put. |
| 9b580 | 63 61 6c 6c 2d 73 70 65 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 | call-spec.:arguments.nil)....... |
| 9b5a0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 69 64 20 28 70 6c 69 73 74 | .(plist-put.call-spec.:id.(plist |
| 9b5c0 | 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 29 0a 20 20 20 20 20 20 20 63 6f 6c 6c | -get.tool-call.:id))........coll |
| 9b5e0 | 65 63 74 20 63 61 6c 6c 2d 73 70 65 63 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 | ect.call-spec.into.tool-use..... |
| 9b600 | 20 20 20 66 69 6e 61 6c 6c 79 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c | ...finally.(plist-put.info.:tool |
| 9b620 | 2d 75 73 65 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 | -use.tool-use))).....(when.(and. |
| 9b640 | 63 6f 6e 74 65 6e 74 20 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 | content.(not.(or.(eq.content.:nu |
| 9b660 | 6c 6c 29 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 63 6f 6e 74 65 6e 74 29 29 29 29 0a | ll).(string-empty-p.content)))). |
| 9b680 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c | ......(when-let*.((reasoning.(pl |
| 9b6a0 | 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 20 3b 6c 6f | ist-get.message.:reasoning)).;lo |
| 9b6c0 | 6f 6b 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 | ok.for.reasoning.blocks......... |
| 9b6e0 | 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 | ..........((and.(stringp.reasoni |
| 9b700 | 6e 67 29 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 61 73 6f 6e 69 | ng).(not.(string-empty-p.reasoni |
| 9b720 | 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 | ng))))).........(plist-put.info. |
| 9b740 | 3a 72 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 63 6f 6e | :reasoning.reasoning)).......con |
| 9b760 | 74 65 6e 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 | tent)))..(cl-defmethod.gptel--re |
| 9b780 | 71 75 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 | quest-data.((backend.gptel-opena |
| 9b7a0 | 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 | i).prompts)..."JSON.encode.PROMP |
| 9b7c0 | 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 77 | TS.for.sending.to.ChatGPT."...(w |
| 9b7e0 | 68 65 6e 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 28 70 | hen.gptel--system-message.....(p |
| 9b800 | 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 73 79 73 74 65 6d 22 0a 20 20 20 20 20 20 20 | ush.(list.:role."system"........ |
| 9b820 | 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d | .........:content.gptel--system- |
| 9b840 | 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 28 | message)...........prompts))...( |
| 9b860 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a | let.((prompts-plist..........`(: |
| 9b880 | 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | model.,(gptel--model-name.gptel- |
| 9b8a0 | 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 70 | model)............:messages.[,@p |
| 9b8c0 | 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 | rompts]............:stream.,(or. |
| 9b8e0 | 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 0a 20 20 20 20 | gptel-stream.:json-false)))..... |
| 9b900 | 20 20 20 20 28 72 65 61 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 20 3b 20 54 4f 44 4f 3a 20 45 | ....(reasoning-model-p.;.TODO:.E |
| 9b920 | 6d 62 65 64 20 74 68 69 73 20 63 61 70 61 62 69 6c 69 74 79 20 69 6e 20 74 68 65 20 6d 6f 64 65 | mbed.this.capability.in.the.mode |
| 9b940 | 6c 27 73 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 67 70 | l's.properties..........(memq.gp |
| 9b960 | 74 65 6c 2d 6d 6f 64 65 6c 20 27 28 6f 31 20 6f 31 2d 70 72 65 76 69 65 77 20 6f 31 2d 6d 69 6e | tel-model.'(o1.o1-preview.o1-min |
| 9b980 | 69 20 6f 33 2d 6d 69 6e 69 20 6f 33 20 6f 34 2d 6d 69 6e 69 29 29 29 29 0a 20 20 20 20 28 77 68 | i.o3-mini.o3.o4-mini)))).....(wh |
| 9b9a0 | 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 28 6e 6f 74 20 72 | en.(and.gptel-temperature.(not.r |
| 9b9c0 | 65 61 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d | easoning-model-p)).......(plist- |
| 9b9e0 | 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 | put.prompts-plist.:temperature.g |
| 9ba00 | 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 | ptel-temperature)).....(when.gpt |
| 9ba20 | 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 | el-use-tools.......(when.(eq.gpt |
| 9ba40 | 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 27 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 28 70 6c | el-use-tools.'force).........(pl |
| 9ba60 | 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 5f 63 68 6f 69 | ist-put.prompts-plist.:tool_choi |
| 9ba80 | 63 65 20 22 72 65 71 75 69 72 65 64 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 | ce."required")).......(when.gpte |
| 9baa0 | 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 | l-tools.........(plist-put.promp |
| 9bac0 | 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ts-plist.:tools................. |
| 9bae0 | 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 62 61 63 6b 65 6e 64 20 67 | ...(gptel--parse-tools.backend.g |
| 9bb00 | 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 65 61 | ptel-tools)).........(unless.rea |
| 9bb20 | 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | soning-model-p...........(plist- |
| 9bb40 | 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 70 61 72 61 6c 6c 65 6c 5f 74 6f 6f 6c | put.prompts-plist.:parallel_tool |
| 9bb60 | 5f 63 61 6c 6c 73 20 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 | _calls.t)))).....(when.gptel-max |
| 9bb80 | 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 3b 3b 20 48 41 43 4b 3a 20 54 68 65 20 4f 70 65 6e 41 | -tokens.......;;.HACK:.The.OpenA |
| 9bba0 | 49 20 41 50 49 20 68 61 73 20 64 65 70 72 65 63 61 74 65 64 20 6d 61 78 5f 74 6f 6b 65 6e 73 2c | I.API.has.deprecated.max_tokens, |
| 9bbc0 | 20 62 75 74 20 77 65 20 73 74 69 6c 6c 20 6e 65 65 64 20 69 74 0a 20 20 20 20 20 20 3b 3b 20 66 | .but.we.still.need.it.......;;.f |
| 9bbe0 | 6f 72 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 73 20 6c 69 6b 65 20 47 | or.OpenAI-compatible.APIs.like.G |
| 9bc00 | 50 54 34 41 6c 6c 20 28 23 34 38 35 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 | PT4All.(#485).......(plist-put.p |
| 9bc20 | 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | rompts-plist..................(i |
| 9bc40 | 66 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 20 3a 6d 61 78 5f 63 6f 6d 70 6c 65 74 | f.reasoning-model-p.:max_complet |
| 9bc60 | 69 6f 6e 5f 74 6f 6b 65 6e 73 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 20 20 20 | ion_tokens.:max_tokens)......... |
| 9bc80 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 | .........gptel-max-tokens))..... |
| 9bca0 | 3b 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 20 77 69 74 68 20 6d 6f 64 | ;;.Merge.request.params.with.mod |
| 9bcc0 | 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 6d 73 2e 0a 20 20 20 20 28 67 70 74 65 | el.and.backend.params......(gpte |
| 9bce0 | 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 | l--merge-plists......prompts-pli |
| 9bd00 | 73 74 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 72 65 71 75 65 73 74 2d 70 | st......(gptel-backend-request-p |
| 9bd20 | 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 28 67 70 74 65 6c | arams.gptel-backend)......(gptel |
| 9bd40 | 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 67 70 74 65 6c 2d 6d 6f | --model-request-params..gptel-mo |
| 9bd60 | 64 65 6c 29 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 67 70 74 65 6c 2d 2d 70 61 72 | del))))..;;.NOTE:.No.`gptel--par |
| 9bd80 | 73 65 2d 74 6f 6f 6c 73 27 20 6d 65 74 68 6f 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 67 70 | se-tools'.method.required.for.gp |
| 9bda0 | 74 65 6c 2d 6f 70 65 6e 61 69 2c 20 73 69 6e 63 65 20 74 68 69 73 20 69 73 0a 3b 3b 20 68 61 6e | tel-openai,.since.this.is.;;.han |
| 9bdc0 | 64 6c 65 64 20 62 79 20 69 74 73 20 64 65 66 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 | dled.by.its.defgeneric.implement |
| 9bde0 | 61 74 69 6f 6e 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 | ation..(cl-defmethod.gptel--pars |
| 9be00 | 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | e-tool-results.((_backend.gptel- |
| 9be20 | 6f 70 65 6e 61 69 29 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 70 72 | openai).tool-use)..."Return.a.pr |
| 9be40 | 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 | ompt.containing.tool.call.result |
| 9be60 | 73 20 69 6e 20 54 4f 4f 4c 2d 55 53 45 2e 22 0a 20 20 3b 3b 20 28 64 65 63 6c 61 72 65 20 28 73 | s.in.TOOL-USE."...;;.(declare.(s |
| 9be80 | 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6d 61 70 63 61 72 0a 20 20 | ide-effect-free.t))...(mapcar... |
| 9bea0 | 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 28 6c 69 73 74 0a | .(lambda.(tool-call)......(list. |
| 9bec0 | 20 20 20 20 20 20 3a 72 6f 6c 65 20 22 74 6f 6f 6c 22 0a 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 | ......:role."tool".......:tool_c |
| 9bee0 | 61 6c 6c 5f 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 | all_id.(plist-get.tool-call.:id) |
| 9bf00 | 0a 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d | .......:content.(plist-get.tool- |
| 9bf20 | 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 29 0a 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 0a 0a 3b | call.:result)))....tool-use))..; |
| 9bf40 | 3b 20 54 4f 44 4f 3a 20 52 65 6d 6f 76 65 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 | ;.TODO:.Remove.these.functions.( |
| 9bf60 | 23 37 39 32 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 66 6f 72 6d 61 | #792).(defun.gptel--openai-forma |
| 9bf80 | 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 22 46 6f 72 6d 61 74 20 54 4f | t-tool-id.(tool-id)..."Format.TO |
| 9bfa0 | 4f 4c 2d 49 44 20 66 6f 72 20 4f 70 65 6e 41 49 2e 0a 0a 49 66 20 74 68 65 20 49 44 20 68 61 73 | OL-ID.for.OpenAI...If.the.ID.has |
| 9bfc0 | 20 74 68 65 20 66 6f 72 6d 61 74 20 75 73 65 64 20 62 79 20 61 20 64 69 66 66 65 72 65 6e 74 20 | .the.format.used.by.a.different. |
| 9bfe0 | 62 61 63 6b 65 6e 64 2c 20 75 73 65 20 61 73 2d 69 73 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 | backend,.use.as-is."...(unless.t |
| 9c000 | 6f 6f 6c 2d 69 64 0a 20 20 20 20 28 73 65 74 71 20 74 6f 6f 6c 2d 69 64 20 28 73 75 62 73 74 72 | ool-id.....(setq.tool-id.(substr |
| 9c020 | 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 64 35 20 28 66 6f 72 | ing....................(md5.(for |
| 9c040 | 6d 61 74 20 22 25 73 25 73 22 20 28 72 61 6e 64 6f 6d 29 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 | mat."%s%s".(random).(float-time) |
| 9c060 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 32 34 29 29 29 0a | ))....................nil.24))). |
| 9c080 | 20 20 28 69 66 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 74 6f 6f 6c | ..(if.(or.(string-prefix-p."tool |
| 9c0a0 | 75 5f 22 20 74 6f 6f 6c 2d 69 64 29 20 3b 23 37 34 37 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 | u_".tool-id).;#747...........(st |
| 9c0c0 | 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 63 61 6c 6c 5f 22 20 20 74 6f 6f 6c 2d 69 64 29 29 | ring-prefix-p."call_"..tool-id)) |
| 9c0e0 | 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 63 61 6c 6c | .......tool-id.....(format."call |
| 9c100 | 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f | _%s".tool-id)))..(defun.gptel--o |
| 9c120 | 70 65 6e 61 69 2d 75 6e 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 | penai-unformat-tool-id.(tool-id) |
| 9c140 | 0a 20 20 28 6f 72 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 63 61 6c 6c 5f | ...(or.(and.(string-match."call_ |
| 9c160 | 5c 5c 28 2e 2b 5c 5c 29 22 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d | \\(.+\\)".tool-id)............(m |
| 9c180 | 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f | atch-string.1.tool-id)).......to |
| 9c1a0 | 6f 6c 2d 69 64 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 67 70 74 65 6c 2d 2d 69 6e 6a | ol-id))..;;.NOTE:.No.`gptel--inj |
| 9c1c0 | 65 63 74 2d 70 72 6f 6d 70 74 27 20 6d 65 74 68 6f 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 | ect-prompt'.method.required.for. |
| 9c1e0 | 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2c 20 73 69 6e 63 65 20 74 68 69 73 0a 3b 3b 20 69 73 20 68 | gptel-openai,.since.this.;;.is.h |
| 9c200 | 61 6e 64 6c 65 64 20 62 79 20 69 74 73 20 64 65 66 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 | andled.by.its.defgeneric.impleme |
| 9c220 | 6e 74 61 74 69 6f 6e 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 | ntation..(cl-defmethod.gptel--pa |
| 9c240 | 72 73 65 2d 6c 69 73 74 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 | rse-list.((backend.gptel-openai) |
| 9c260 | 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 | .prompt-list)...(if.(consp.(car. |
| 9c280 | 70 72 6f 6d 70 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d | prompt-list)).......(let.((full- |
| 9c2a0 | 70 72 6f 6d 70 74 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 64 | prompt))..............;.Advanced |
| 9c2c0 | 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 28 | .format,.list.of.lists.........( |
| 9c2e0 | 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 | dolist.(entry.prompt-list)...... |
| 9c300 | 20 20 20 20 20 28 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 | .....(pcase.entry.............(` |
| 9c320 | 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | (prompt...,msg)..............(pu |
| 9c340 | 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 28 | sh.(list.:role."user".:content.( |
| 9c360 | 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 20 66 75 6c 6c 2d 70 72 6f | or.(car-safe.msg).msg)).full-pro |
| 9c380 | 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 | mpt)).............(`(response... |
| 9c3a0 | 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a | ,msg)..............(push.(list.: |
| 9c3c0 | 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 28 6f 72 20 28 63 | role."assistant".:content.(or.(c |
| 9c3e0 | 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 | ar-safe.msg).msg)).full-prompt)) |
| 9c400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 | .............(`(tool...,call)... |
| 9c420 | 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 | ...........(unless.(plist-get.ca |
| 9c440 | 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | ll.:id)................(plist-pu |
| 9c460 | 74 20 63 61 6c 6c 20 3a 69 64 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 66 6f 72 6d 61 74 | t.call.:id.(gptel--openai-format |
| 9c480 | 2d 74 6f 6f 6c 2d 69 64 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | -tool-id.nil)))..............(pu |
| 9c4a0 | 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 | sh...............(list.......... |
| 9c4c0 | 20 20 20 20 20 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 | ......:role."assistant"......... |
| 9c4e0 | 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......:tool_calls.............. |
| 9c500 | 20 20 28 76 65 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 | ..(vector.................(list. |
| 9c520 | 3a 74 79 70 65 20 22 66 75 6e 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :type."function"................ |
| 9c540 | 20 20 20 20 20 20 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 69 64 29 0a | .......:id.(plist-get.call.:id). |
| 9c560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 75 6e 63 74 69 6f 6e 20 | ......................:function. |
| 9c580 | 60 28 20 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 | `(.:name.,(plist-get.call.:name) |
| 9c5a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9c5c0 | 20 20 20 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 | ....:arguments.,(gptel--json-enc |
| 9c5e0 | 6f 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 29 29 29 0a | ode.(plist-get.call.:args)))))). |
| 9c600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 | ..............full-prompt)...... |
| 9c620 | 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 | ........(push.(car.(gptel--parse |
| 9c640 | 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 28 63 64 72 | -tool-results.backend.(list.(cdr |
| 9c660 | 20 65 6e 74 72 79 29 29 29 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 20 20 20 | .entry)))).full-prompt))))...... |
| 9c680 | 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 28 | ...(nreverse.full-prompt)).....( |
| 9c6a0 | 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 | cl-loop.for.text.in.prompt-list. |
| 9c6c0 | 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 73 74 72 69 | ...;.Simple.format,.list.of.stri |
| 9c6e0 | 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 | ngs..............for.role.=.t.th |
| 9c700 | 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65 | en.(not.role)..............if.te |
| 9c720 | 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 72 | xt.collect..............(list.:r |
| 9c740 | 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 | ole.(if.role."user"."assistant") |
| 9c760 | 20 3a 63 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f | .:content.text))))..(cl-defmetho |
| 9c780 | 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 62 61 63 6b 65 6e 64 20 | d.gptel--parse-buffer.((backend. |
| 9c7a0 | 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 | gptel-openai).&optional.max-entr |
| 9c7c0 | 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 20 28 70 72 65 76 2d 70 74 20 | ies)...(let.((prompts).(prev-pt. |
| 9c7e0 | 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 | (point))).....(if.(or.gptel-mode |
| 9c800 | 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 28 | .gptel-track-response).........( |
| 9c820 | 77 68 69 6c 65 20 28 61 6e 64 20 28 6f 72 20 28 6e 6f 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 | while.(and.(or.(not.max-entries) |
| 9c840 | 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .(>=.max-entries.0))............ |
| 9c860 | 20 20 20 20 20 20 20 20 20 28 2f 3d 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | .........(/=.prev-pt.(point-min) |
| 9c880 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | ).....................(goto-char |
| 9c8a0 | 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 | .(previous-single-property-chang |
| 9c8c0 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e............................... |
| 9c8e0 | 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | ..(point).'gptel.nil.(point-min) |
| 9c900 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 | )))...........(pcase.(get-char-p |
| 9c920 | 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 | roperty.(point).'gptel)......... |
| 9c940 | 20 20 20 20 28 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | ....('response..............(whe |
| 9c960 | 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 | n-let*.((content.(gptel--trim-pr |
| 9c980 | 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | efixes.......................... |
| 9c9a0 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 | ..........(buffer-substring-no-p |
| 9c9c0 | 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 | roperties.(point).prev-pt))))... |
| 9c9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 | .............(push.(list.:role." |
| 9ca00 | 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f | assistant".:content.content).pro |
| 9ca20 | 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 69 | mpts))).............(`(tool...,i |
| 9ca40 | 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a | d)..............(save-excursion. |
| 9ca60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e | ...............(condition-case.n |
| 9ca80 | 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f | il....................(let*.((to |
| 9caa0 | 6f 6c 2d 63 61 6c 6c 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 | ol-call.(read.(current-buffer))) |
| 9cac0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 | ...........................(name |
| 9cae0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 | .(plist-get.tool-call.:name))... |
| 9cb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e | ........................(argumen |
| 9cb20 | 74 73 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 70 6c 69 73 74 2d 67 65 | ts.(gptel--json-encode.(plist-ge |
| 9cb40 | 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | t.tool-call.:args))))........... |
| 9cb60 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 | ...........(plist-put.tool-call. |
| 9cb80 | 3a 69 64 20 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | :id.id)......................(pl |
| 9cba0 | 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 0a 20 20 20 20 20 20 | ist-put.tool-call.:result....... |
| 9cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e | ..........................(strin |
| 9cbe0 | 67 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 | g-trim.(buffer-substring-no-prop |
| 9cc00 | 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erties.......................... |
| 9cc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 | .....................(point).pre |
| 9cc40 | 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | v-pt)))......................(pu |
| 9cc60 | 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c | sh.(car.(gptel--parse-tool-resul |
| 9cc80 | 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 29 0a 20 20 | ts.backend.(list.tool-call)))... |
| 9cca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 | .........................prompts |
| 9ccc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 | )......................(push.(li |
| 9cce0 | 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 | st.:role."assistant"............ |
| 9cd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c | ......................:tool_call |
| 9cd20 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s............................... |
| 9cd40 | 20 20 20 28 76 65 63 74 6f 72 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 66 75 6e 63 74 69 6f 6e | ...(vector.(list.:type."function |
| 9cd60 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "............................... |
| 9cd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 64 20 69 64 0a 20 20 20 20 20 20 20 20 | .................:id.id......... |
| 9cda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9cdc0 | 20 20 20 20 20 20 20 3a 66 75 6e 63 74 69 6f 6e 20 60 28 20 3a 6e 61 6d 65 20 2c 6e 61 6d 65 0a | .......:function.`(.:name.,name. |
| 9cde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9ce00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 | ............................:arg |
| 9ce20 | 75 6d 65 6e 74 73 20 2c 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | uments.,arguments))))........... |
| 9ce40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 | .................prompts))...... |
| 9ce60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 | ............((end-of-file.invali |
| 9ce80 | 64 2d 72 65 61 64 2d 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d-read-syntax).................. |
| 9cea0 | 20 28 6d 65 73 73 61 67 65 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 | .(message.(format."Could.not.par |
| 9cec0 | 73 65 20 74 6f 6f 6c 2d 63 61 6c 6c 20 25 73 20 6f 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 | se.tool-call.%s.on.line.%s"..... |
| 9cee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 | ...............................i |
| 9cf00 | 64 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 29 | d.(line-number-at-pos.(point)))) |
| 9cf20 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 | )))).............('ignore)...... |
| 9cf40 | 20 20 20 20 20 20 20 28 27 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6d | .......('nil..............(and.m |
| 9cf60 | 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 | ax-entries.(cl-decf.max-entries) |
| 9cf80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d | )..............(if.gptel-track-m |
| 9cfa0 | 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a | edia..................(when-let* |
| 9cfc0 | 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d | .((content.(gptel--openai-parse- |
| 9cfe0 | 6d 75 6c 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | multipart....................... |
| 9d000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d | .................(gptel--parse-m |
| 9d020 | 65 64 69 61 2d 6c 69 6e 6b 73 20 6d 61 6a 6f 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 | edia-links.major-mode........... |
| 9d040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9d060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 | .......................(point).p |
| 9d080 | 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | rev-pt))))....................(w |
| 9d0a0 | 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 | hen.(>.(length.content).0)...... |
| 9d0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c | ................(push.(list.:rol |
| 9d0e0 | 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 | e."user".:content.content).promp |
| 9d100 | 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | ts)))................(when-let*. |
| 9d120 | 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 | ((content.(gptel--trim-prefixes. |
| 9d140 | 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a | (buffer-substring-no-properties. |
| 9d160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9d180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e | ...........................(poin |
| 9d1a0 | 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t).prev-pt)))).................. |
| 9d1c0 | 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e | (push.(list.:role."user".:conten |
| 9d1e0 | 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | t.content).prompts)))))......... |
| 9d200 | 20 20 28 73 65 74 71 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 | ..(setq.prev-pt.(point)))....... |
| 9d220 | 28 6c 65 74 20 28 28 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 75 66 | (let.((content.(string-trim.(buf |
| 9d240 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 | fer-substring-no-properties..... |
| 9d260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9d280 | 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 | (point-min).(point-max)))))..... |
| 9d2a0 | 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f | ....(push.(list.:role."user".:co |
| 9d2c0 | 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 70 72 | ntent.content).prompts))).....pr |
| 9d2e0 | 6f 6d 70 74 73 29 29 0a 0a 3b 3b 20 54 4f 44 4f 20 54 68 69 73 20 63 6f 75 6c 64 20 62 65 20 61 | ompts))..;;.TODO.This.could.be.a |
| 9d300 | 20 67 65 6e 65 72 69 63 20 66 75 6e 63 74 69 6f 6e 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | .generic.function.(defun.gptel-- |
| 9d320 | 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 | openai-parse-multipart.(parts).. |
| 9d340 | 20 22 43 6f 6e 76 65 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 | ."Convert.a.multipart.prompt.PAR |
| 9d360 | 54 53 20 74 6f 20 74 68 65 20 4f 70 65 6e 41 49 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 | TS.to.the.OpenAI.API.format...Th |
| 9d380 | 65 20 69 6e 70 75 74 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a | e.input.is.an.alist.of.the.form. |
| 9d3a0 | 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 | .((:text.\"some.text\")...(:medi |
| 9d3c0 | 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c | a.\"/path/to/media.png\".:mime.\ |
| 9d3e0 | 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 | "image/png\")...(:text.\"More.te |
| 9d400 | 78 74 5c 22 29 29 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 | xt\"))...The.output.is.a.vector. |
| 9d420 | 6f 66 20 65 6e 74 72 69 65 73 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 | of.entries.in.a.backend-appropri |
| 9d440 | 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 | ate.format."...(cl-loop....for.p |
| 9d460 | 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 | art.in.parts....for.n.upfrom.1.. |
| 9d480 | 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 74 73 29 0a 20 20 20 | ..with.last.=.(length.parts).... |
| 9d4a0 | 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 | for.text.=.(plist-get.part.:text |
| 9d4c0 | 29 0a 20 20 20 66 6f 72 20 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 | )....for.media.=.(plist-get.part |
| 9d4e0 | 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 | .:media)....if.text.do....(and.( |
| 9d500 | 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 | or.(=.n.1).(=.n.last)).(setq.tex |
| 9d520 | 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 0a | t.(gptel--trim-prefixes.text))). |
| 9d540 | 20 20 20 61 6e 64 20 69 66 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 60 28 3a 74 79 70 | ...and.if.text....collect.`(:typ |
| 9d560 | 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 74 65 78 74 29 20 69 6e 74 6f 20 70 61 72 74 73 | e."text".:text.,text).into.parts |
| 9d580 | 2d 61 72 72 61 79 20 65 6e 64 0a 20 20 20 65 6c 73 65 20 69 66 20 6d 65 64 69 61 20 63 6f 6c 6c | -array.end....else.if.media.coll |
| 9d5a0 | 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 20 22 69 6d 61 67 65 5f 75 72 6c 22 0a 20 20 20 20 20 | ect....`(:type."image_url"...... |
| 9d5c0 | 3a 69 6d 61 67 65 5f 75 72 6c 20 28 3a 75 72 6c 20 2c 28 63 6f 6e 63 61 74 20 22 64 61 74 61 3a | :image_url.(:url.,(concat."data: |
| 9d5e0 | 22 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 0a 20 20 20 20 20 20 20 | ".(plist-get.part.:mime)........ |
| 9d600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3b 62 61 73 65 36 34 2c 22 20 28 67 70 74 | .................";base64,".(gpt |
| 9d620 | 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 29 29 0a 20 20 20 69 | el--base64-encode.media))))....i |
| 9d640 | 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 65 6c 73 65 20 69 66 20 28 70 6c 69 73 | nto.parts-array....else.if.(plis |
| 9d660 | 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 20 63 6f 6c 6c 65 63 74 0a 20 20 | t-get.part.:textfile).collect... |
| 9d680 | 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 0a 20 20 20 20 20 3a 74 65 78 74 20 2c 28 77 69 74 | .`(:type."text"......:text.,(wit |
| 9d6a0 | 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | h-temp-buffer...............(gpt |
| 9d6c0 | 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 | el--insert-file-string.(plist-ge |
| 9d6e0 | 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.part.:textfile)).............. |
| 9d700 | 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 | .(buffer-string)))....into.parts |
| 9d720 | 2d 61 72 72 61 79 20 65 6e 64 20 61 6e 64 0a 20 20 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 | -array.end.and....if.(plist-get. |
| 9d740 | 70 61 72 74 20 3a 75 72 6c 29 0a 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 | part.:url)....collect....`(:type |
| 9d760 | 20 22 69 6d 61 67 65 5f 75 72 6c 22 0a 20 20 20 20 20 3a 69 6d 61 67 65 5f 75 72 6c 20 28 3a 75 | ."image_url"......:image_url.(:u |
| 9d780 | 72 6c 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 75 72 6c 29 29 29 0a 20 20 20 69 | rl.,(plist-get.part.:url)))....i |
| 9d7a0 | 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 | nto.parts-array....finally.retur |
| 9d7c0 | 6e 20 28 76 63 6f 6e 63 61 74 20 70 61 72 74 73 2d 61 72 72 61 79 29 29 29 0a 0a 3b 3b 20 54 4f | n.(vconcat.parts-array)))..;;.TO |
| 9d7e0 | 44 4f 3a 20 44 6f 65 73 20 74 68 69 73 20 6e 65 65 64 20 74 6f 20 62 65 20 61 20 67 65 6e 65 72 | DO:.Does.this.need.to.be.a.gener |
| 9d800 | 69 63 20 66 75 6e 63 74 69 6f 6e 3f 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c | ic.function?.(cl-defmethod.gptel |
| 9d820 | 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 | --wrap-user-prompt.((_backend.gp |
| 9d840 | 74 65 6c 2d 6f 70 65 6e 61 69 29 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel-openai).prompts............. |
| 9d860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 | ...........................&opti |
| 9d880 | 6f 6e 61 6c 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c | onal.inject-media)..."Wrap.the.l |
| 9d8a0 | 61 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 | ast.user.prompt.in.PROMPTS.with. |
| 9d8c0 | 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 2e 0a 0a 49 66 20 49 4e 4a 45 43 54 2d 4d | the.context.string...If.INJECT-M |
| 9d8e0 | 45 44 49 41 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 77 72 61 70 20 69 74 20 77 69 74 68 20 62 61 73 | EDIA.is.non-nil.wrap.it.with.bas |
| 9d900 | 65 36 34 2d 65 6e 63 6f 64 65 64 20 6d 65 64 69 61 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 | e64-encoded.media.files.in.the.c |
| 9d920 | 6f 6e 74 65 78 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 | ontext."...(if.inject-media..... |
| 9d940 | 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 | ..;;.Wrap.the.first.user.prompt. |
| 9d960 | 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 6d 65 64 69 61 20 66 69 6c 65 73 2f 63 6f 6e 74 65 78 | with.included.media.files/contex |
| 9d980 | 74 73 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 | ts.......(when-let*.((media-list |
| 9d9a0 | 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 | .(gptel-context--collect-media)) |
| 9d9c0 | 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 | ).........(cl-callf.(lambda.(cur |
| 9d9e0 | 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 | rent).....................(vconc |
| 9da00 | 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | at......................(gptel-- |
| 9da20 | 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 6d 65 64 69 61 2d 6c 69 73 | openai-parse-multipart.media-lis |
| 9da40 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 74 79 70 65 | t)......................(cl-type |
| 9da60 | 63 61 73 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | case.current.................... |
| 9da80 | 20 20 20 20 28 73 74 72 69 6e 67 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 | ....(string.`((:type."text".:tex |
| 9daa0 | 74 20 2c 63 75 72 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.,current)))................... |
| 9dac0 | 20 20 20 20 20 28 76 65 63 74 6f 72 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 | .....(vector.current)........... |
| 9dae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 63 75 72 72 65 6e 74 29 29 29 29 0a 20 20 20 20 | .............(t.current))))..... |
| 9db00 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 | ........(plist-get.(car.prompts) |
| 9db20 | 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 6c 61 73 | .:content))).....;;.Wrap.the.las |
| 9db40 | 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 74 65 78 74 | t.user.prompt.with.included.text |
| 9db60 | 20 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 | .contexts.....(cl-callf.(lambda. |
| 9db80 | 28 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 65 74 | (current).................(cl-et |
| 9dba0 | 79 70 65 63 61 73 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ypecase.current................. |
| 9dbc0 | 20 20 28 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 63 | ..(string.(gptel-context--wrap.c |
| 9dbe0 | 75 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 | urrent))...................(vect |
| 9dc00 | 6f 72 20 28 69 66 2d 6c 65 74 2a 20 28 28 77 72 61 70 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e | or.(if-let*.((wrapped.(gptel-con |
| 9dc20 | 74 65 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | text--wrap.nil)))............... |
| 9dc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 60 28 28 3a 74 79 70 | ................(vconcat.`((:typ |
| 9dc60 | 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 29 0a 20 20 20 20 20 20 | e."text".:text.,wrapped))....... |
| 9dc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9dca0 | 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .current)....................... |
| 9dcc0 | 20 20 20 20 20 20 63 75 72 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ......current)))).........(plist |
| 9dce0 | 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 | -get.(car.(last.prompts)).:conte |
| 9dd00 | 6e 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e | nt))))..;;;###autoload.(cl-defun |
| 9dd20 | 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 | .gptel-make-openai.....(name.&ke |
| 9dd40 | 79 20 63 75 72 6c 2d 61 72 67 73 20 6d 6f 64 65 6c 73 20 73 74 72 65 61 6d 20 6b 65 79 20 72 65 | y.curl-args.models.stream.key.re |
| 9dd60 | 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 0a 20 | quest-params...........(header.. |
| 9dd80 | 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | ..........(lambda.().(when-let*. |
| 9dda0 | 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 0a 20 20 20 | ((key.(gptel--get-api-key))).... |
| 9ddc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f | ................`(("Authorizatio |
| 9dde0 | 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 | n"...,(concat."Bearer.".key))))) |
| 9de00 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f | )...........(host."api.openai.co |
| 9de20 | 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 29 | m")...........(protocol."https") |
| 9de40 | 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 | ...........(endpoint."/v1/chat/c |
| 9de60 | 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 4f 70 65 | ompletions"))..."Register.an.Ope |
| 9de80 | 6e 41 49 20 41 50 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 | nAI.API-compatible.backend.for.g |
| 9dea0 | 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e | ptel.with.NAME...Keyword.argumen |
| 9dec0 | 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c | ts:..CURL-ARGS.(optional).is.a.l |
| 9dee0 | 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 | ist.of.additional.Curl.arguments |
| 9df00 | 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f | ...HOST.(optional).is.the.API.ho |
| 9df20 | 73 74 2c 20 74 79 70 69 63 61 6c 6c 79 20 5c 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 5c 22 | st,.typically.\"api.openai.com\" |
| 9df40 | 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 | ...MODELS.is.a.list.of.available |
| 9df60 | 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 64 64 69 74 69 | .model.names,.as.symbols..Additi |
| 9df80 | 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 70 6f 72 74 65 | onally,.you.can.specify.supporte |
| 9dfa0 | 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 69 6f 6e 20 6f | d.LLM.capabilities.like.vision.o |
| 9dfc0 | 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 6c 69 73 74 20 | r.tool-use.by.appending.a.plist. |
| 9dfe0 | 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 | to.the.model.with.more.informati |
| 9e000 | 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 20 2e 20 | on,.in.the.form...(model-name... |
| 9e020 | 70 6c 69 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 6c 79 20 | plist)..For.a.list.of.currently. |
| 9e040 | 72 65 63 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 2c 20 73 65 65 0a 60 67 70 74 65 | recognized.plist.keys,.see.`gpte |
| 9e060 | 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 27 2e 20 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f | l--openai-models'...An.example.o |
| 9e080 | 66 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 69 6e | f.a.model.specification.includin |
| 9e0a0 | 67 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 63 73 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a | g.both.kinds.of.specs:..:models. |
| 9e0c0 | 5c 5c 3d 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \\='(gpt-3.5-turbo.............. |
| 9e0e0 | 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d 70 6c 65 20 73 70 65 63 73 0a 20 20 67 70 74 2d 34 | ...........;Simple.specs...gpt-4 |
| 9e100 | 2d 74 75 72 62 6f 0a 20 20 28 67 70 74 2d 34 6f 2d 6d 69 6e 69 20 20 20 20 20 20 20 20 20 20 20 | -turbo...(gpt-4o-mini........... |
| 9e120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 | ...............;Full.spec....:de |
| 9e140 | 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 5c 22 41 66 66 6f 72 64 61 62 6c 65 20 61 6e 64 20 69 6e | scription....\"Affordable.and.in |
| 9e160 | 74 65 6c 6c 69 67 65 6e 74 20 73 6d 61 6c 6c 20 6d 6f 64 65 6c 20 66 6f 72 20 6c 69 67 68 74 77 | telligent.small.model.for.lightw |
| 9e180 | 65 69 67 68 74 20 74 61 73 6b 73 5c 22 0a 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 | eight.tasks\"....:capabilities.( |
| 9e1a0 | 6d 65 64 69 61 20 74 6f 6f 6c 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 | media.tool.json.url)....:mime-ty |
| 9e1c0 | 70 65 73 0a 20 20 20 28 5c 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 | pes....(\"image/jpeg\".\"image/p |
| 9e1e0 | 6e 67 5c 22 20 5c 22 69 6d 61 67 65 2f 67 69 66 5c 22 20 5c 22 69 6d 61 67 65 2f 77 65 62 70 5c | ng\".\"image/gif\".\"image/webp\ |
| 9e200 | 22 29 29 29 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 | ")))..STREAM.is.a.boolean.to.tog |
| 9e220 | 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 | gle.streaming.responses,.default |
| 9e240 | 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 | s.to.false...PROTOCOL.(optional) |
| 9e260 | 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 73 20 62 | .specifies.the.protocol,.https.b |
| 9e280 | 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 | y.default...ENDPOINT.(optional). |
| 9e2a0 | 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 | is.the.API.endpoint.for.completi |
| 9e2c0 | 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 | ons,.defaults.to.\"/v1/chat/comp |
| 9e2e0 | 6c 65 74 69 6f 6e 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 | letions\"...HEADER.(optional).is |
| 9e300 | 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 | .for.additional.headers.to.send. |
| 9e320 | 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 | with.each.request...It.should.be |
| 9e340 | 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 | .an.alist.or.a.function.that.ret |
| 9e360 | 75 72 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e | urns.an.alist,.like:..((\"Conten |
| 9e380 | 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 | t-Type\"...\"application/json\") |
| 9e3a0 | 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 | )..KEY.(optional).is.a.variable. |
| 9e3c0 | 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 | whose.value.is.the.API.key,.or.f |
| 9e3e0 | 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 | unction.that.returns.the.key...R |
| 9e400 | 45 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c | EQUEST-PARAMS.(optional).is.a.pl |
| 9e420 | 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 | ist.of.additional.HTTP.request.p |
| 9e440 | 61 72 61 6d 65 74 65 72 73 20 28 61 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 | arameters.(as.plist.keys).and.va |
| 9e460 | 6c 75 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a | lues.supported.by.the.API...Use. |
| 9e480 | 74 68 65 73 65 20 74 6f 20 73 65 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 | these.to.set.parameters.that.gpt |
| 9e4a0 | 65 6c 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 | el.does.not.provide.user.options |
| 9e4c0 | 0a 66 6f 72 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 | .for."...(declare.(indent.1))... |
| 9e4e0 | 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e | (let.((backend.(gptel--make-open |
| 9e500 | 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 | ai...................:curl-args. |
| 9e520 | 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | curl-args...................:nam |
| 9e540 | 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 | e.name...................:host.h |
| 9e560 | 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 | ost...................:header.he |
| 9e580 | 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a | ader...................:key.key. |
| 9e5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c | ..................:models.(gptel |
| 9e5c0 | 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 | --process-models.models)........ |
| 9e5e0 | 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 | ...........:protocol.protocol... |
| 9e600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 | ................:endpoint.endpoi |
| 9e620 | 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 | nt...................:stream.str |
| 9e640 | 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 | eam...................:request-p |
| 9e660 | 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | arams.request-params............ |
| 9e680 | 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 | .......:url.(if.protocol........ |
| 9e6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 | ....................(concat.prot |
| 9e6c0 | 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 | ocol."://".host.endpoint)....... |
| 9e6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 | ...................(concat.host. |
| 9e700 | 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 | endpoint))))).....(prog1.backend |
| 9e720 | 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 | .......(setf.(alist-get.name.gpt |
| 9e740 | 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | el--known-backends.............. |
| 9e760 | 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 | ..........nil.nil.#'equal)...... |
| 9e780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 3b 3b 3b 20 41 7a | .............backend))))..;;;.Az |
| 9e7a0 | 75 72 65 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 | ure.;;;###autoload.(cl-defun.gpt |
| 9e7c0 | 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 | el-make-azure.....(name.&key.cur |
| 9e7e0 | 6c 2d 61 72 67 73 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 | l-args.host...........(protocol. |
| 9e800 | 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 | "https")...........(header.(lamb |
| 9e820 | 64 61 20 28 29 20 60 28 28 22 61 70 69 2d 6b 65 79 22 20 2e 20 2c 28 67 70 74 65 6c 2d 2d 67 65 | da.().`(("api-key"...,(gptel--ge |
| 9e840 | 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 65 79 20 27 67 | t-api-key)))))...........(key.'g |
| 9e860 | 70 74 65 6c 2d 61 70 69 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 73 20 73 | ptel-api-key)...........models.s |
| 9e880 | 74 72 65 61 6d 20 65 6e 64 70 6f 69 6e 74 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 29 0a 20 | tream.endpoint.request-params).. |
| 9e8a0 | 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 41 7a 75 72 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 | ."Register.an.Azure.backend.for. |
| 9e8c0 | 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 | gptel.with.NAME...Keyword.argume |
| 9e8e0 | 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 | nts:..CURL-ARGS.(optional).is.a. |
| 9e900 | 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 | list.of.additional.Curl.argument |
| 9e920 | 73 2e 0a 0a 48 4f 53 54 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 2e 0a 0a 4d 4f 44 45 4c | s...HOST.is.the.API.host...MODEL |
| 9e940 | 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e | S.is.a.list.of.available.model.n |
| 9e960 | 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 | ames,.as.symbols...STREAM.is.a.b |
| 9e980 | 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f | oolean.to.toggle.streaming.respo |
| 9e9a0 | 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 | nses,.defaults.to.false...PROTOC |
| 9e9c0 | 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 | OL.(optional).specifies.the.prot |
| 9e9e0 | 6f 63 6f 6c 2c 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e | ocol,.https.by.default...ENDPOIN |
| 9ea00 | 54 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 | T.is.the.API.endpoint.for.comple |
| 9ea20 | 74 69 6f 6e 73 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 | tions...HEADER.(optional).is.for |
| 9ea40 | 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 | .additional.headers.to.send.with |
| 9ea60 | 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 | .each.request...It.should.be.an. |
| 9ea80 | 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 | alist.or.a.function.that.retuns. |
| 9eaa0 | 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 | an.alist,.like:..((\"Content-Typ |
| 9eac0 | 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 | e\"...\"application/json\"))..KE |
| 9eae0 | 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 | Y.(optional).is.a.variable.whose |
| 9eb00 | 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 | .value.is.the.API.key,.or.functi |
| 9eb20 | 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 45 51 55 45 53 | on.that.returns.the.key...REQUES |
| 9eb40 | 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f | T-PARAMS.(optional).is.a.plist.o |
| 9eb60 | 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 | f.additional.HTTP.request.parame |
| 9eb80 | 74 65 72 73 20 28 61 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 | ters.(as.plist.keys).and.values. |
| 9eba0 | 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 | supported.by.the.API...Use.these |
| 9ebc0 | 20 74 6f 20 73 65 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f | .to.set.parameters.that.gptel.do |
| 9ebe0 | 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e | es.not.provide.user.options.for. |
| 9ec00 | 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d 2d 2d 2d 2d 2d 0a 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 | ..Example:.-------...(gptel-make |
| 9ec20 | 2d 61 7a 75 72 65 0a 20 20 5c 22 41 7a 75 72 65 2d 31 5c 22 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c | -azure...\"Azure-1\"...:protocol |
| 9ec40 | 20 5c 22 68 74 74 70 73 5c 22 0a 20 20 3a 68 6f 73 74 20 5c 22 52 45 53 4f 55 52 43 45 5f 4e 41 | .\"https\"...:host.\"RESOURCE_NA |
| 9ec60 | 4d 45 2e 6f 70 65 6e 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 5c 22 0a 20 20 3a 65 6e 64 70 6f 69 6e | ME.openai.azure.com\"...:endpoin |
| 9ec80 | 74 0a 20 20 5c 22 2f 6f 70 65 6e 61 69 2f 64 65 70 6c 6f 79 6d 65 6e 74 73 2f 44 45 50 4c 4f 59 | t...\"/openai/deployments/DEPLOY |
| 9eca0 | 4d 45 4e 54 5f 4e 41 4d 45 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f | MENT_NAME/completions?api-versio |
| 9ecc0 | 6e 3d 32 30 32 33 2d 30 35 2d 31 35 5c 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f | n=2023-05-15\"...:stream.t...:mo |
| 9ece0 | 64 65 6c 73 20 5c 5c 3d 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 67 70 74 2d 34 29 29 22 | dels.\\='(gpt-3.5-turbo.gpt-4))" |
| 9ed00 | 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 | ...(declare.(indent.1))...(let.( |
| 9ed20 | 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 | (backend.(gptel--make-openai.... |
| 9ed40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 | ...............:curl-args.curl-a |
| 9ed60 | 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 | rgs...................:name.name |
| 9ed80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 | ...................:host.host... |
| 9eda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 | ................:header.header.. |
| 9edc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 | .................:key.key....... |
| 9ede0 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 | ............:models.(gptel--proc |
| 9ee00 | 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ess-models.models).............. |
| 9ee20 | 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 | .....:protocol.protocol......... |
| 9ee40 | 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 | ..........:endpoint.endpoint.... |
| 9ee60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 | ...............:stream.stream... |
| 9ee80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 | ................:request-params. |
| 9eea0 | 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | request-params.................. |
| 9eec0 | 20 3a 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:url.(if.protocol.............. |
| 9eee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 | ..............(concat.protocol." |
| 9ef00 | 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ://".host.endpoint)............. |
| 9ef20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 | .............(concat.host.endpoi |
| 9ef40 | 6e 74 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 | nt))))).....(prog1.backend...... |
| 9ef60 | 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e | .(setf.(alist-get.name.gptel--kn |
| 9ef80 | 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | own-backends.................... |
| 9efa0 | 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ....nil.nil.#'equal)............ |
| 9efc0 | 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 3b 3b 20 47 50 54 34 41 6c 6c 0a 3b 3b 3b 23 23 23 61 | .backend))))..;;.GPT4All.;;;###a |
| 9efe0 | 75 74 6f 6c 6f 61 64 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 | utoload.(defalias.'gptel-make-gp |
| 9f000 | 74 34 61 6c 6c 20 27 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 22 52 65 67 69 | t4all.'gptel-make-openai..."Regi |
| 9f020 | 73 74 65 72 20 61 20 47 50 54 34 41 6c 6c 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c | ster.a.GPT4All.backend.for.gptel |
| 9f040 | 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a | .with.NAME...Keyword.arguments:. |
| 9f060 | 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 | .CURL-ARGS.(optional).is.a.list. |
| 9f080 | 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 | of.additional.Curl.arguments...H |
| 9f0a0 | 4f 53 54 20 69 73 20 77 68 65 72 65 20 47 50 54 34 41 6c 6c 20 72 75 6e 73 20 28 77 69 74 68 20 | OST.is.where.GPT4All.runs.(with. |
| 9f0c0 | 70 6f 72 74 29 2c 20 74 79 70 69 63 61 6c 6c 79 20 6c 6f 63 61 6c 68 6f 73 74 3a 34 38 39 31 0a | port),.typically.localhost:4891. |
| 9f0e0 | 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d | .MODELS.is.a.list.of.available.m |
| 9f100 | 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 0a 53 54 52 45 41 4d 20 | odel.names,.as.symbols...STREAM. |
| 9f120 | 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 | is.a.boolean.to.toggle.streaming |
| 9f140 | 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a | .responses,.defaults.to.false... |
| 9f160 | 50 52 4f 54 4f 43 4f 4c 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c | PROTOCOL.specifies.the.protocol, |
| 9f180 | 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 | .https.by.default...ENDPOINT.(op |
| 9f1a0 | 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 | tional).is.the.API.endpoint.for. |
| 9f1c0 | 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f | completions,.defaults.to.\"/api/ |
| 9f1e0 | 76 31 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 5c 22 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e | v1/completions\"..HEADER.(option |
| 9f200 | 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f | al).is.for.additional.headers.to |
| 9f220 | 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 | .send.with.each.request..It.shou |
| 9f240 | 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 | ld.be.an.alist.or.a.function.tha |
| 9f260 | 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e | t.retuns.an.alist,.like:.((\"Con |
| 9f280 | 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e | tent-Type\"...\"application/json |
| 9f2a0 | 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 | \"))..KEY.(optional).is.a.variab |
| 9f2c0 | 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f | le.whose.value.is.the.API.key,.o |
| 9f2e0 | 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e | r.function.that.returns.the.key. |
| 9f300 | 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 | .This.is.typically.not.required. |
| 9f320 | 66 6f 72 0a 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 6c 69 6b 65 20 47 50 54 34 41 6c 6c 2e 0a 0a | for.local.models.like.GPT4All... |
| 9f340 | 52 45 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 | REQUEST-PARAMS.(optional).is.a.p |
| 9f360 | 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a | list.of.additional.HTTP.request. |
| 9f380 | 70 61 72 61 6d 65 74 65 72 73 20 28 61 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 | parameters.(as.plist.keys).and.v |
| 9f3a0 | 61 6c 75 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 | alues.supported.by.the.API...Use |
| 9f3c0 | 0a 74 68 65 73 65 20 74 6f 20 73 65 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 | .these.to.set.parameters.that.gp |
| 9f3e0 | 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e | tel.does.not.provide.user.option |
| 9f400 | 73 0a 66 6f 72 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 67 70 74 65 6c | s.for...Example:.-------..(gptel |
| 9f420 | 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 0a 20 5c 22 47 50 54 34 41 6c 6c 5c 22 0a 20 3a 70 72 6f | -make-gpt4all..\"GPT4All\"..:pro |
| 9f440 | 74 6f 63 6f 6c 20 5c 22 68 74 74 70 5c 22 0a 20 3a 68 6f 73 74 20 5c 22 6c 6f 63 61 6c 68 6f 73 | tocol.\"http\"..:host.\"localhos |
| 9f460 | 74 3a 34 38 39 31 5c 22 0a 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 6d 69 73 74 72 61 6c 2d 37 | t:4891\"..:models.\\='(mistral-7 |
| 9f480 | 62 2d 6f 70 65 6e 6f 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 29 29 22 29 0a 0a 28 70 72 6f 76 69 | b-openorca.Q4_0.gguf))")..(provi |
| 9f4a0 | 64 65 20 27 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 70 65 6e | de.'gptel-openai).;;;.gptel-open |
| 9f4c0 | 61 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 | ai.el.ends.here..;;.Local.Variab |
| 9f4e0 | 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 | les:.;;.byte-compile-warnings:.( |
| 9f500 | 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 | not.docstrings).;;.End:......... |
| 9f520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f600 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 00 00 00 00 | gptel-0.9.8.5/.dir-locals.el.... |
| 9f620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f660 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 9f680 | 30 30 30 30 32 32 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 30 37 34 00 20 30 00 00 00 | 0000224.00000000000.014074..0... |
| 9f6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f700 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 9f720 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 9f740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f800 | 28 28 6e 69 6c 20 2e 20 28 28 69 6e 64 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 20 2e 20 6e 69 6c | ((nil...((indent-tabs-mode...nil |
| 9f820 | 29 0a 09 20 28 73 65 6e 74 65 6e 63 65 2d 65 6e 64 2d 64 6f 75 62 6c 65 2d 73 70 61 63 65 20 2e | )...(sentence-end-double-space.. |
| 9f840 | 20 74 29 0a 09 20 28 62 75 67 2d 72 65 66 65 72 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 74 20 | .t)...(bug-reference-url-format. |
| 9f860 | 2e 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 | .."https://github.com/karthink/g |
| 9f880 | 70 74 65 6c 2f 69 73 73 75 65 73 2f 25 73 22 29 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 | ptel/issues/%s"))))............. |
| 9f8a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f8c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f8e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9f9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fa00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2e 35 2f 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 00 00 00 00 00 00 | gptel-0.9.8.5/gptel-org.el...... |
| 9fa20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fa40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fa60 | 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 | ....0000644.0000000.0000000.0000 |
| 9fa80 | 30 31 30 31 30 34 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 35 00 20 30 00 00 00 | 0101042.00000000000.013665..0... |
| 9faa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fb00 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 9fb20 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 9fb40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fb60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fb80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fbc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fbe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 9fc00 | 3b 3b 3b 20 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 20 2d 2d 2d 20 4f 72 67 20 66 75 6e 63 74 69 6f | ;;;.gptel-org.el.---.Org.functio |
| 9fc20 | 6e 73 20 66 6f 72 20 67 70 74 65 6c 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ns.for.gptel.........-*-.lexical |
| 9fc40 | 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 | -binding:.t;.-*-..;;.Copyright.( |
| 9fc60 | 43 29 20 32 30 32 34 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b | C).2024..Karthik.Chikmagalur..;; |
| 9fc80 | 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 | .Author:.Karthik.Chikmagalur.<ka |
| 9fca0 | 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b | rthikchikmagalur@gmail.com>.;;.K |
| 9fcc0 | 65 79 77 6f 72 64 73 3a 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 | eywords:..;;.This.program.is.fre |
| 9fce0 | 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 | e.software;.you.can.redistribute |
| 9fd00 | 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 | .it.and/or.modify.;;.it.under.th |
| 9fd20 | 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 | e.terms.of.the.GNU.General.Publi |
| 9fd40 | 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 | c.License.as.published.by.;;.the |
| 9fd60 | 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 | .Free.Software.Foundation,.eithe |
| 9fd80 | 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b | r.version.3.of.the.License,.or.; |
| 9fda0 | 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 | ;.(at.your.option).any.later.ver |
| 9fdc0 | 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 | sion...;;.This.program.is.distri |
| 9fde0 | 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 | buted.in.the.hope.that.it.will.b |
| 9fe00 | 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 | e.useful,.;;.but.WITHOUT.ANY.WAR |
| 9fe20 | 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 | RANTY;.without.even.the.implied. |
| 9fe40 | 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f | warranty.of.;;.MERCHANTABILITY.o |
| 9fe60 | 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f | r.FITNESS.FOR.A.PARTICULAR.PURPO |
| 9fe80 | 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | SE...See.the.;;.GNU.General.Publ |
| 9fea0 | 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b | ic.License.for.more.details...;; |
| 9fec0 | 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 | .You.should.have.received.a.copy |
| 9fee0 | 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .of.the.GNU.General.Public.Licen |
| 9ff00 | 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 | se.;;.along.with.this.program... |
| 9ff20 | 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 | If.not,.see.<https://www.gnu.org |
| 9ff40 | 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b | /licenses/>...;;;.Commentary:..; |
| 9ff60 | 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 | ;..;;;.Code:.(eval-when-compile. |
| 9ff80 | 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c | (require.'gptel)).(require.'cl-l |
| 9ffa0 | 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 29 0a 28 72 65 71 75 | ib).(require.'org-element).(requ |
| 9ffc0 | 69 72 65 20 27 6f 75 74 6c 69 6e 65 29 0a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 | ire.'outline)..;;.Functions.used |
| 9ffe0 | 20 66 6f 72 20 73 61 76 69 6e 67 2f 72 65 73 74 6f 72 69 6e 67 20 67 70 74 65 6c 20 73 74 61 74 | .for.saving/restoring.gptel.stat |
| a0000 | 65 20 69 6e 20 4f 72 67 20 62 75 66 66 65 72 73 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d | e.in.Org.buffers.(defvar.gptel-- |
| a0020 | 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 0a 28 64 65 66 76 61 72 20 6f 72 | num-messages-to-send).(defvar.or |
| a0040 | 67 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 79 2d 69 6e 68 65 72 69 74 65 64 2d 66 72 6f 6d 29 | g-entry-property-inherited-from) |
| a0060 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 28 64 65 66 76 61 72 20 | .(defvar.gptel-backend).(defvar. |
| a0080 | 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 29 0a 28 64 65 66 76 61 72 20 67 | gptel--known-backends).(defvar.g |
| a00a0 | 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 28 64 65 66 76 61 72 20 67 70 | ptel--system-message).(defvar.gp |
| a00c0 | 74 65 6c 2d 6d 6f 64 65 6c 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 | tel-model).(defvar.gptel-tempera |
| a00e0 | 74 75 72 65 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a | ture).(defvar.gptel-max-tokens). |
| a0100 | 0a 28 64 65 66 76 61 72 20 6f 72 67 2d 6c 69 6e 6b 2d 61 6e 67 6c 65 2d 72 65 29 0a 28 64 65 66 | .(defvar.org-link-angle-re).(def |
| a0120 | 76 61 72 20 6f 72 67 2d 6c 69 6e 6b 2d 62 72 61 63 6b 65 74 2d 72 65 29 0a 28 64 65 63 6c 61 72 | var.org-link-bracket-re).(declar |
| a0140 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d | e-function.mailcap-file-name-to- |
| a0160 | 6d 69 6d 65 2d 74 79 70 65 20 22 6d 61 69 6c 63 61 70 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 | mime-type."mailcap").(declare-fu |
| a0180 | 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 22 67 | nction.gptel--model-capable-p."g |
| a01a0 | 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d | ptel").(declare-function.gptel-- |
| a01c0 | 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d 70 20 22 67 70 74 65 6c 22 29 0a 28 64 | model-mime-capable-p."gptel").(d |
| a01e0 | 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d | eclare-function.gptel--model-nam |
| a0200 | 65 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 | e."gptel").(declare-function.gpt |
| a0220 | 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d | el--to-string."gptel").(declare- |
| a0240 | 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 72 20 22 67 70 74 65 6c | function.gptel--to-number."gptel |
| a0260 | 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 69 6e 74 65 | ").(declare-function.gptel--inte |
| a0280 | 72 6e 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 | rn."gptel").(declare-function.gp |
| a02a0 | 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 20 22 67 70 74 65 6c 22 29 0a | tel--get-buffer-bounds."gptel"). |
| a02c0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d | (declare-function.gptel-backend- |
| a02e0 | 6e 61 6d 65 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | name."gptel").(declare-function. |
| a0300 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 22 67 70 74 65 6c 22 29 0a 28 64 65 | gptel--parse-buffer."gptel").(de |
| a0320 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 | clare-function.gptel--parse-dire |
| a0340 | 63 74 69 76 65 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ctive."gptel").(declare-function |
| a0360 | 20 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 70 72 6f 70 73 20 22 67 70 74 65 6c 22 29 0a 28 | .gptel--restore-props."gptel").( |
| a0380 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 | declare-function.gptel--with-buf |
| a03a0 | 66 65 72 2d 63 6f 70 79 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | fer-copy."gptel").(declare-funct |
| a03c0 | 69 6f 6e 20 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 22 67 70 74 65 6c 22 | ion.gptel--file-binary-p."gptel" |
| a03e0 | 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6e 74 72 79 2d 67 65 | ).(declare-function.org-entry-ge |
| a0400 | 74 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 | t."org").(declare-function.org-e |
| a0420 | 6e 74 72 79 2d 70 75 74 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f | ntry-put."org").(declare-functio |
| a0440 | 6e 20 6f 72 67 2d 77 69 74 68 2d 77 69 64 65 2d 62 75 66 66 65 72 20 22 6f 72 67 2d 6d 61 63 73 | n.org-with-wide-buffer."org-macs |
| a0460 | 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 73 65 74 2d 70 72 6f | ").(declare-function.org-set-pro |
| a0480 | 70 65 72 74 79 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f | perty."org").(declare-function.o |
| a04a0 | 72 67 2d 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 65 73 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 | rg-property-values."org").(decla |
| a04c0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 6f 70 65 6e 2d 6c 69 6e 65 20 22 6f 72 67 22 29 | re-function.org-open-line."org") |
| a04e0 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e | .(declare-function.org-at-headin |
| a0500 | 67 2d 70 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 | g-p."org").(declare-function.org |
| a0520 | 2d 67 65 74 2d 68 65 61 64 69 6e 67 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | -get-heading."org").(declare-fun |
| a0540 | 63 74 69 6f 6e 20 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e 67 2d 70 20 22 6f 72 67 22 29 0a 0a 3b | ction.org-at-heading-p."org")..; |
| a0560 | 3b 20 42 75 6e 64 6c 65 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 | ;.Bundle.`org-element-lineage-ma |
| a0580 | 70 27 20 69 66 20 69 74 27 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 28 66 6f 72 20 4f 72 | p'.if.it's.not.available.(for.Or |
| a05a0 | 67 20 39 2e 36 37 20 6f 72 20 6f 6c 64 65 72 29 0a 28 65 76 61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 | g.9.67.or.older).(eval-and-compi |
| a05c0 | 6c 65 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c | le...(if.(fboundp.'org-element-l |
| a05e0 | 69 6e 65 61 67 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c 61 72 | ineage-map).......(progn.(declar |
| a0600 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d | e-function.org-element-lineage-m |
| a0620 | 61 70 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 | ap."org-element-ast")........... |
| a0640 | 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 | ...(defalias.'gptel-org--element |
| a0660 | 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 | -lineage-map.'org-element-lineag |
| a0680 | 65 2d 6d 61 70 29 29 0a 20 20 20 20 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c | e-map)).....(defun.gptel-org--el |
| a06a0 | 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 28 64 61 74 75 6d 20 66 75 6e 20 26 6f 70 | ement-lineage-map.(datum.fun.&op |
| a06c0 | 74 69 6f 6e 61 6c 20 74 79 70 65 73 20 77 69 74 68 2d 73 65 6c 66 20 66 69 72 73 74 2d 6d 61 74 | tional.types.with-self.first-mat |
| a06e0 | 63 68 29 0a 20 20 20 20 20 20 22 4d 61 70 20 46 55 4e 20 61 63 72 6f 73 73 20 61 6e 63 65 73 74 | ch)......."Map.FUN.across.ancest |
| a0700 | 6f 72 73 20 6f 66 20 44 41 54 55 4d 2c 20 66 72 6f 6d 20 63 6c 6f 73 65 73 74 20 74 6f 20 66 75 | ors.of.DATUM,.from.closest.to.fu |
| a0720 | 72 74 68 65 73 74 2e 0a 0a 44 41 54 55 4d 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 20 6f 72 20 65 | rthest...DATUM.is.an.object.or.e |
| a0740 | 6c 65 6d 65 6e 74 2e 20 20 46 6f 72 20 54 59 50 45 53 2c 20 57 49 54 48 2d 53 45 4c 46 20 61 6e | lement...For.TYPES,.WITH-SELF.an |
| a0760 | 64 0a 46 49 52 53 54 2d 4d 41 54 43 48 20 73 65 65 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c | d.FIRST-MATCH.see.`org-element-l |
| a0780 | 69 6e 65 61 67 65 2d 6d 61 70 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 70 | ineage-map'...This.function.is.p |
| a07a0 | 72 6f 76 69 64 65 64 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f | rovided.for.compatibility.with.o |
| a07c0 | 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 4f 72 67 2e 22 0a 20 20 20 20 20 20 28 64 65 | lder.versions.of.Org.".......(de |
| a07e0 | 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 75 | clare.(indent.2)).......(setq.fu |
| a0800 | 6e 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 75 6e 29 20 66 75 6e 20 60 28 6c 61 6d 62 | n.(if.(functionp.fun).fun.`(lamb |
| a0820 | 64 61 20 28 6e 6f 64 65 29 20 2c 66 75 6e 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 75 | da.(node).,fun))).......(let.((u |
| a0840 | 70 20 28 69 66 20 77 69 74 68 2d 73 65 6c 66 20 64 61 74 75 6d 20 28 6f 72 67 2d 65 6c 65 6d 65 | p.(if.with-self.datum.(org-eleme |
| a0860 | 6e 74 2d 70 61 72 65 6e 74 20 64 61 74 75 6d 29 29 29 0a 09 20 20 20 20 61 63 63 20 72 74 6e 29 | nt-parent.datum)))......acc.rtn) |
| a0880 | 0a 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 3a 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 0a 20 | .........(catch.:--first-match.. |
| a08a0 | 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .........(while.up.............( |
| a08c0 | 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 74 79 70 65 73 29 20 28 6f 72 67 2d 65 6c 65 6d 65 6e | when.(or.(not.types).(org-elemen |
| a08e0 | 74 2d 74 79 70 65 2d 70 20 75 70 20 74 79 70 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t-type-p.up.types))............. |
| a0900 | 20 20 28 73 65 74 71 20 72 74 6e 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 20 75 70 29 29 0a 20 20 | ..(setq.rtn.(funcall.fun.up))... |
| a0920 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 66 69 72 73 74 2d 6d 61 74 63 68 | ............(if.(and.first-match |
| a0940 | 20 72 74 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 3a | .rtn)...................(throw.: |
| a0960 | 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 20 72 74 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | --first-match.rtn).............. |
| a0980 | 20 20 20 28 77 68 65 6e 20 72 74 6e 20 28 70 75 73 68 20 72 74 6e 20 61 63 63 29 29 29 29 0a 20 | ...(when.rtn.(push.rtn.acc)))).. |
| a09a0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 75 70 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 | ...........(setq.up.(org-element |
| a09c0 | 2d 70 61 72 65 6e 74 20 75 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 | -parent.up)))...........(nrevers |
| a09e0 | 65 20 61 63 63 29 29 29 29 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 | e.acc)))))...(if.(fboundp.'org-e |
| a0a00 | 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c | lement-begin).......(progn.(decl |
| a0a20 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 22 | are-function.org-element-begin." |
| a0a40 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6c | org-element")..............(decl |
| a0a60 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 22 6f 72 | are-function.org-element-end."or |
| a0a80 | 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 6c 69 | g-element")..............(defali |
| a0aa0 | 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 27 6f 72 | as.'gptel-org--element-begin.'or |
| a0ac0 | 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | g-element-begin)..............(d |
| a0ae0 | 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 | efalias.'gptel-org--element-end. |
| a0b00 | 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 29 29 0a 20 20 20 20 28 64 65 66 75 6e 20 67 70 | 'org-element-end)).....(defun.gp |
| a0b20 | 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 28 6e 6f 64 65 29 0a 20 20 | tel-org--element-begin.(node)... |
| a0b40 | 20 20 20 20 22 47 65 74 20 60 3a 62 65 67 69 6e 27 20 70 72 6f 70 65 72 74 79 20 6f 66 20 4e 4f | ...."Get.`:begin'.property.of.NO |
| a0b60 | 44 45 2e 22 0a 20 20 20 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 | DE.".......(org-element-property |
| a0b80 | 20 3a 62 65 67 69 6e 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | .:begin.node)).....(defun.gptel- |
| a0ba0 | 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 22 47 | org--element-end.(node)......."G |
| a0bc0 | 65 74 20 60 3a 65 6e 64 27 20 70 72 6f 70 65 72 74 79 20 6f 66 20 4e 4f 44 45 2e 22 0a 20 20 20 | et.`:end'.property.of.NODE.".... |
| a0be0 | 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 65 6e 64 20 6e 6f | ...(org-element-property.:end.no |
| a0c00 | 64 65 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 55 73 65 72 20 6f 70 74 69 6f 6e 73 0a 28 64 65 66 63 | de))))....;;;.User.options.(defc |
| a0c20 | 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 | ustom.gptel-org-branching-contex |
| a0c40 | 74 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 65 20 6c 69 6e 65 61 67 65 20 6f 66 20 74 68 65 20 | t.nil..."Use.the.lineage.of.the. |
| a0c60 | 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 20 61 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 66 | current.heading.as.the.context.f |
| a0c80 | 6f 72 20 67 70 74 65 6c 20 69 6e 20 4f 72 67 20 62 75 66 66 65 72 73 2e 0a 0a 54 68 69 73 20 6d | or.gptel.in.Org.buffers...This.m |
| a0ca0 | 61 6b 65 73 20 65 61 63 68 20 73 61 6d 65 20 6c 65 76 65 6c 20 68 65 61 64 69 6e 67 20 61 20 73 | akes.each.same.level.heading.a.s |
| a0cc0 | 65 70 61 72 61 74 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 0a 62 72 61 6e 63 68 2e 0a 0a 42 79 | eparate.conversation.branch...By |
| a0ce0 | 20 64 65 66 61 75 6c 74 2c 20 67 70 74 65 6c 20 75 73 65 73 20 61 20 6c 69 6e 65 61 72 20 63 6f | .default,.gptel.uses.a.linear.co |
| a0d00 | 6e 74 65 78 74 3a 20 61 6c 6c 20 74 68 65 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 65 0a 63 75 | ntext:.all.the.text.up.to.the.cu |
| a0d20 | 72 73 6f 72 20 69 73 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 45 6e 61 62 6c 69 | rsor.is.sent.to.the.LLM...Enabli |
| a0d40 | 6e 67 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6d 61 6b 65 73 20 74 68 65 0a 63 6f 6e 74 65 78 74 | ng.this.option.makes.the.context |
| a0d60 | 20 74 68 65 20 68 69 65 72 61 72 63 68 69 63 61 6c 20 6c 69 6e 65 61 67 65 20 6f 66 20 74 68 65 | .the.hierarchical.lineage.of.the |
| a0d80 | 20 63 75 72 72 65 6e 74 20 4f 72 67 20 68 65 61 64 69 6e 67 2e 20 20 49 6e 0a 74 68 69 73 20 65 | .current.Org.heading...In.this.e |
| a0da0 | 78 61 6d 70 6c 65 3a 0a 0a 2d 2d 2d 2d 2d 0a 54 6f 70 20 6c 65 76 65 6c 20 74 65 78 74 0a 0a 2a | xample:..-----.Top.level.text..* |
| a0dc0 | 20 48 65 61 64 69 6e 67 20 31 0a 68 65 61 64 69 6e 67 20 31 20 74 65 78 74 0a 0a 2a 20 48 65 61 | .Heading.1.heading.1.text..*.Hea |
| a0de0 | 64 69 6e 67 20 32 0a 68 65 61 64 69 6e 67 20 32 20 74 65 78 74 0a 0a 2a 2a 20 48 65 61 64 69 6e | ding.2.heading.2.text..**.Headin |
| a0e00 | 67 20 32 2e 31 0a 68 65 61 64 69 6e 67 20 32 2e 31 20 74 65 78 74 0a 2a 2a 20 48 65 61 64 69 6e | g.2.1.heading.2.1.text.**.Headin |
| a0e20 | 67 20 32 2e 32 0a 68 65 61 64 69 6e 67 20 32 2e 32 20 74 65 78 74 0a 2d 2d 2d 2d 2d 0a 0a 57 69 | g.2.2.heading.2.2.text.-----..Wi |
| a0e40 | 74 68 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 | th.the.cursor.at.the.end.of.the. |
| a0e60 | 62 75 66 66 65 72 2c 20 74 68 65 20 74 65 78 74 20 73 65 6e 74 20 74 6f 20 74 68 65 0a 4c 4c 4d | buffer,.the.text.sent.to.the.LLM |
| a0e80 | 20 77 69 6c 6c 20 62 65 20 6c 69 6d 69 74 65 64 20 74 6f 0a 0a 2d 2d 2d 2d 2d 0a 54 6f 70 20 6c | .will.be.limited.to..-----.Top.l |
| a0ea0 | 65 76 65 6c 20 74 65 78 74 0a 0a 2a 20 48 65 61 64 69 6e 67 20 32 0a 68 65 61 64 69 6e 67 20 32 | evel.text..*.Heading.2.heading.2 |
| a0ec0 | 20 74 65 78 74 0a 0a 2a 2a 20 48 65 61 64 69 6e 67 20 32 2e 32 0a 68 65 61 64 69 6e 67 20 32 2e | .text..**.Heading.2.2.heading.2. |
| a0ee0 | 32 20 74 65 78 74 0a 2d 2d 2d 2d 2d 0a 0a 54 68 69 73 20 6d 61 6b 65 73 20 69 74 20 66 65 61 73 | 2.text.-----..This.makes.it.feas |
| a0f00 | 69 62 6c 65 20 74 6f 20 68 61 76 65 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6e 76 65 72 73 61 74 69 | ible.to.have.multiple.conversati |
| a0f20 | 6f 6e 20 62 72 61 6e 63 68 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 | on.branches."...:type.'boolean.. |
| a0f40 | 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 | .:group.'gptel)..(defcustom.gpte |
| a0f60 | 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 20 27 28 70 72 6f 70 65 72 74 79 | l-org-ignore-elements.'(property |
| a0f80 | 2d 64 72 61 77 65 72 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 4f 72 67 20 65 6c 65 6d 65 6e 74 73 | -drawer)..."List.of.Org.elements |
| a0fa0 | 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 73 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 | .that.should.be.stripped.from.th |
| a0fc0 | 65 20 70 72 6f 6d 70 74 0a 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 69 74 2e 0a 0a 42 79 20 | e.prompt.before.sending.it...By. |
| a0fe0 | 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 77 69 6c 6c 20 72 65 6d 6f 76 65 20 4f 72 67 20 70 72 | default.gptel.will.remove.Org.pr |
| a1000 | 6f 70 65 72 74 79 20 64 72 61 77 65 72 73 20 66 72 6f 6d 20 74 68 65 0a 70 72 6f 6d 70 74 2e 20 | operty.drawers.from.the.prompt.. |
| a1020 | 20 46 6f 72 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 | .For.the.full.list.of.available. |
| a1040 | 65 6c 65 6d 65 6e 74 73 2c 20 70 6c 65 61 73 65 20 73 65 65 0a 60 6f 72 67 2d 65 6c 65 6d 65 6e | elements,.please.see.`org-elemen |
| a1060 | 74 2d 61 6c 6c 2d 65 6c 65 6d 65 6e 74 73 27 2e 0a 0a 50 6c 65 61 73 65 20 6e 6f 74 65 3a 20 52 | t-all-elements'...Please.note:.R |
| a1080 | 65 6d 6f 76 69 6e 67 20 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 20 65 6c 65 6d 65 6e 74 73 | emoving.property-drawer.elements |
| a10a0 | 20 69 73 20 66 61 73 74 2c 20 62 75 74 0a 61 64 64 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 74 6f | .is.fast,.but.adding.elements.to |
| a10c0 | 20 74 68 69 73 20 6c 69 73 74 20 63 61 6e 20 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 73 6c 6f | .this.list.can.significantly.slo |
| a10e0 | 77 20 64 6f 77 6e 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 | w.down.`gptel-send'."...:group.' |
| a1100 | 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 79 6d 62 6f 6c 29 29 0a | gptel...:type.'(repeat.symbol)). |
| a1120 | 0a 0c 0a 3b 3b 3b 20 53 65 74 74 69 6e 67 20 63 6f 6e 74 65 78 74 20 61 6e 64 20 63 72 65 61 74 | ...;;;.Setting.context.and.creat |
| a1140 | 69 6e 67 20 71 75 65 72 69 65 73 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 67 65 | ing.queries.(defun.gptel-org--ge |
| a1160 | 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 20 28 29 0a 20 20 22 49 66 20 61 20 63 6f 6e 76 65 72 73 | t-topic-start.()..."If.a.convers |
| a1180 | 61 74 69 6f 6e 20 74 6f 70 69 63 20 69 73 20 73 65 74 2c 20 72 65 74 75 72 6e 20 69 74 2e 22 0a | ation.topic.is.set,.return.it.". |
| a11a0 | 20 20 28 77 68 65 6e 20 28 6f 72 67 2d 65 6e 74 72 79 2d 67 65 74 20 28 70 6f 69 6e 74 29 20 22 | ..(when.(org-entry-get.(point)." |
| a11c0 | 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 27 69 6e 68 65 72 69 74 29 0a 20 20 20 20 28 6d 61 72 6b | GPTEL_TOPIC".'inherit).....(mark |
| a11e0 | 65 72 2d 70 6f 73 69 74 69 6f 6e 20 6f 72 67 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 79 2d 69 | er-position.org-entry-property-i |
| a1200 | 6e 68 65 72 69 74 65 64 2d 66 72 6f 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f | nherited-from)))..(defun.gptel-o |
| a1220 | 72 67 2d 73 65 74 2d 74 6f 70 69 63 20 28 74 6f 70 69 63 29 0a 20 20 22 53 65 74 20 61 20 54 4f | rg-set-topic.(topic)..."Set.a.TO |
| a1240 | 50 49 43 20 61 6e 64 20 6c 69 6d 69 74 20 74 68 69 73 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 | PIC.and.limit.this.conversation. |
| a1260 | 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 2e 0a 0a 54 68 69 73 20 6c 69 | to.the.current.heading...This.li |
| a1280 | 6d 69 74 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d | mits.the.context.sent.to.the.LLM |
| a12a0 | 20 74 6f 20 74 68 65 20 74 65 78 74 20 62 65 74 77 65 65 6e 20 74 68 65 0a 63 75 72 72 65 6e 74 | .to.the.text.between.the.current |
| a12c0 | 20 68 65 61 64 69 6e 67 20 61 6e 64 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e | .heading.and.the.cursor.position |
| a12e0 | 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 | ."...(interactive....(list.....( |
| a1300 | 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6f 72 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 | progn.......(or.(derived-mode-p. |
| a1320 | 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 | 'org-mode)...........(user-error |
| a1340 | 20 22 53 75 70 70 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 74 6f 70 69 63 73 20 70 65 | ."Support.for.multiple.topics.pe |
| a1360 | 72 20 62 75 66 66 65 72 20 69 73 20 6f 6e 6c 79 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 66 6f 72 | r.buffer.is.only.implemented.for |
| a1380 | 20 60 6f 72 67 2d 6d 6f 64 65 27 22 29 29 0a 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 | .`org-mode'")).......(completing |
| a13a0 | 2d 72 65 61 64 20 22 53 65 74 20 74 6f 70 69 63 20 61 73 3a 20 22 0a 20 20 20 20 20 20 20 20 20 | -read."Set.topic.as:.".......... |
| a13c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 | ..............(org-property-valu |
| a13e0 | 65 73 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | es."GPTEL_TOPIC")............... |
| a1400 | 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 28 64 6f 77 6e 63 61 73 65 0a 20 20 20 20 20 | .........nil.nil.(downcase...... |
| a1420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e | ...........................(trun |
| a1440 | 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 | cate-string-to-width............ |
| a1460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 | ......................(substring |
| a1480 | 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -no-properties.................. |
| a14a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 | .................(replace-regexp |
| a14c0 | 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -in-string...................... |
| a14e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 73 2d 2b 22 20 22 2d 22 0a 20 20 20 20 20 20 | .............."\\s-+"."-"....... |
| a1500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 | .............................(or |
| a1520 | 67 2d 65 6e 74 72 79 2d 67 65 74 20 6e 69 6c 20 22 49 54 45 4d 22 29 29 29 0a 20 20 20 20 20 20 | g-entry-get.nil."ITEM")))....... |
| a1540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 35 30 29 29 29 | ...........................50))) |
| a1560 | 29 29 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 74 6f 70 69 63 29 20 28 6f 72 67 | )))...(when.(stringp.topic).(org |
| a1580 | 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 74 6f 70 69 | -set-property."GPTEL_TOPIC".topi |
| a15a0 | 63 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 54 68 69 73 20 63 61 6e 20 62 65 20 63 6f 6e 76 65 | c)))..;;.NOTE:.This.can.be.conve |
| a15c0 | 72 74 65 64 20 74 6f 20 61 20 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 66 6f 72 0a 3b 3b 20 60 67 | rted.to.a.cl-defmethod.for.;;.`g |
| a15e0 | 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 27 20 28 63 6f 6e | ptel--create-prompt-buffer'.(con |
| a1600 | 63 65 70 74 75 61 6c 6c 79 20 63 6c 65 61 6e 65 72 29 2c 20 62 75 74 20 77 69 6c 6c 20 63 61 75 | ceptually.cleaner),.but.will.cau |
| a1620 | 73 65 0a 3b 3b 20 6c 6f 61 64 2d 6f 72 64 65 72 20 69 73 73 75 65 73 20 69 6e 20 67 70 74 65 6c | se.;;.load-order.issues.in.gptel |
| a1640 | 2e 65 6c 20 61 6e 64 20 6d 69 67 68 74 20 62 65 20 68 61 72 64 65 72 20 74 6f 20 64 65 62 75 67 | .el.and.might.be.harder.to.debug |
| a1660 | 2e 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 | ..(defun.gptel-org--create-promp |
| a1680 | 74 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a | t-buffer.(&optional.prompt-end). |
| a16a0 | 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 63 6f 6e 76 | .."Return.a.buffer.with.the.conv |
| a16c0 | 65 72 73 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 62 65 20 73 65 6e 74 2e 0a 0a 49 66 20 | ersation.prompt.to.be.sent...If. |
| a16e0 | 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 20 6c 69 6d 69 74 20 74 68 65 20 70 | the.region.is.active.limit.the.p |
| a1700 | 72 6f 6d 70 74 20 74 65 78 74 20 74 6f 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 | rompt.text.to.the.region.content |
| a1720 | 73 2e 0a 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 70 72 6f 6d 70 74 20 74 65 78 74 20 69 73 20 | s..Otherwise.the.prompt.text.is. |
| a1740 | 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 | constructed.from.the.contents.of |
| a1760 | 20 74 68 65 0a 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 70 6f 69 6e 74 2c | .the.current.buffer.up.to.point, |
| a1780 | 20 6f 72 20 50 52 4f 4d 50 54 2d 45 4e 44 20 69 66 20 70 72 6f 76 69 64 65 64 2e 20 20 49 74 73 | .or.PROMPT-END.if.provided...Its |
| a17a0 | 20 63 6f 6e 74 65 6e 74 73 0a 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 | .contents.depend.on.the.value.of |
| a17c0 | 20 60 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 27 2c 20 | .`gptel-org-branching-context',. |
| a17e0 | 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d | which.see."...(when.(use-region- |
| a1800 | 70 29 0a 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e | p).....(narrow-to-region.(region |
| a1820 | 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 28 69 66 | -beginning).(region-end)))...(if |
| a1840 | 20 70 72 6f 6d 70 74 2d 65 6e 64 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 6f | .prompt-end.......(goto-char.pro |
| a1860 | 6d 70 74 2d 65 6e 64 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 70 | mpt-end).....(setq.prompt-end.(p |
| a1880 | 6f 69 6e 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 74 6f 70 69 63 2d 73 74 61 72 74 20 28 67 70 | oint)))...(let.((topic-start.(gp |
| a18a0 | 74 65 6c 2d 6f 72 67 2d 2d 67 65 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 | tel-org--get-topic-start)))..... |
| a18c0 | 28 77 68 65 6e 20 74 6f 70 69 63 2d 73 74 61 72 74 0a 20 20 20 20 20 20 3b 3b 20 6e 61 72 72 6f | (when.topic-start.......;;.narro |
| a18e0 | 77 20 74 6f 20 47 50 54 45 4c 5f 54 4f 50 49 43 20 70 72 6f 70 65 72 74 79 20 73 63 6f 70 65 0a | w.to.GPTEL_TOPIC.property.scope. |
| a1900 | 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 74 6f 70 69 63 2d 73 74 | ......(narrow-to-region.topic-st |
| a1920 | 61 72 74 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 67 70 | art.prompt-end)).....(if.(and.gp |
| a1940 | 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 | tel-org-branching-context....... |
| a1960 | 20 20 20 20 20 20 20 28 6f 72 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 | .......(or.(fboundp.'org-element |
| a1980 | 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -lineage-map)..................( |
| a19a0 | 70 72 6f 67 31 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 | prog1.nil....................(di |
| a19c0 | 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | splay-warning................... |
| a19e0 | 20 20 27 28 67 70 74 65 6c 20 6f 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..'(gptel.org).................. |
| a1a00 | 20 20 20 22 55 73 69 6e 67 20 60 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 | ..."Using.`gptel-org-branching-c |
| a1a20 | 6f 6e 74 65 78 74 27 20 72 65 71 75 69 72 65 73 20 4f 72 67 20 76 65 72 73 69 6f 6e 20 39 2e 37 | ontext'.requires.Org.version.9.7 |
| a1a40 | 20 6f 72 20 68 69 67 68 65 72 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 2e 22 | .or.higher,.it.will.be.ignored." |
| a1a60 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 43 72 65 61 74 65 20 70 72 6f 6d 70 74 20 66 72 | )))).........;;.Create.prompt.fr |
| a1a80 | 6f 6d 20 64 69 72 65 63 74 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20 70 6f 69 6e 74 0a 20 20 20 | om.direct.ancestors.of.point.... |
| a1aa0 | 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 | .....(save-excursion...........( |
| a1ac0 | 6c 65 74 2a 20 28 28 6f 72 67 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 | let*.((org-buf.(current-buffer)) |
| a1ae0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 61 6c 6c | ..................;;.Collect.all |
| a1b00 | 20 68 65 61 64 69 6e 67 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 | .heading.start.positions.in.the. |
| a1b20 | 6c 69 6e 65 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 2d 62 | lineage..................(full-b |
| a1b40 | 6f 75 6e 64 73 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 | ounds.(gptel-org--element-lineag |
| a1b60 | 65 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-map........................... |
| a1b80 | 20 20 20 20 20 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 29 20 23 | ........(org-element-at-point).# |
| a1ba0 | 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 0a 20 20 20 20 20 20 | 'gptel-org--element-begin....... |
| a1bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 68 65 61 64 | ..........................'(head |
| a1be0 | 6c 69 6e 65 29 20 27 77 69 74 68 2d 73 65 6c 66 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | line).'with-self).)............. |
| a1c00 | 20 20 20 20 20 3b 3b 20 6c 69 6e 65 61 67 65 2d 6d 61 70 20 72 65 74 75 72 6e 73 20 74 68 65 20 | .....;;.lineage-map.returns.the. |
| a1c20 | 66 75 6c 6c 20 6c 69 6e 65 61 67 65 20 69 6e 20 74 68 65 20 75 6e 6e 61 72 72 6f 77 65 64 0a 20 | full.lineage.in.the.unnarrowed.. |
| a1c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 20 20 52 65 6d 6f | ................;;.buffer...Remo |
| a1c60 | 76 65 20 68 65 61 64 69 6e 67 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 62 65 66 6f 72 | ve.heading.start.positions.befor |
| a1c80 | 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | e.(point-min)..................; |
| a1ca0 | 3b 20 74 68 61 74 20 61 72 65 20 69 6e 76 61 6c 69 64 20 64 75 65 20 74 6f 20 6e 61 72 72 6f 77 | ;.that.are.invalid.due.to.narrow |
| a1cc0 | 69 6e 67 2c 20 61 6e 64 20 61 64 64 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 69 66 0a 20 20 20 20 | ing,.and.add.(point-min).if..... |
| a1ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 27 73 20 6e 6f 74 20 61 6c 72 65 61 64 79 | .............;;.it's.not.already |
| a1d00 | 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6c 69 6e 65 61 67 65 0a 20 20 20 20 20 20 20 | .included.in.the.lineage........ |
| a1d20 | 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 | ..........(start-bounds......... |
| a1d40 | 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 20 28 | ..........(nconc.(cl-delete-if.( |
| a1d60 | 6c 61 6d 62 64 61 20 28 70 29 20 28 3c 20 70 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 | lambda.(p).(<.p.(point-min)))... |
| a1d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a1da0 | 20 20 20 20 20 66 75 6c 6c 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....full-bounds)............... |
| a1dc0 | 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 | ...........(unless.(save-excursi |
| a1de0 | 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 | on.(goto-char.(point-min))...... |
| a1e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a1e20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 6f 75 74 6c 69 6e | ............(looking-at-p.outlin |
| a1e40 | 65 2d 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-regexp))...................... |
| a1e60 | 20 20 20 20 20 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 20 20 | ......(list.(point-min)))))..... |
| a1e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 | .............(end-bounds........ |
| a1ea0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(cl-loop............. |
| a1ec0 | 20 20 20 20 20 20 20 3b 3b 20 28 63 61 72 20 73 74 61 72 74 2d 62 6f 75 6e 64 73 29 20 69 73 20 | .......;;.(car.start-bounds).is. |
| a1ee0 | 74 68 65 20 62 65 67 69 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 6c 65 6d | the.begining.of.the.current.elem |
| a1f00 | 65 6e 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 74 20 72 | ent,....................;;.not.r |
| a1f20 | 65 6c 65 76 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 | elevant....................for.p |
| a1f40 | 6f 73 20 69 6e 20 28 63 64 72 20 73 74 61 72 74 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 | os.in.(cdr.start-bounds)........ |
| a1f60 | 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 20 28 | ............do.(goto-char.pos).( |
| a1f80 | 6f 75 74 6c 69 6e 65 2d 6e 65 78 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 | outline-next-heading)........... |
| a1fa0 | 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 70 6f 69 6e 74 29 20 69 6e 74 6f 20 65 6e | .........collect.(point).into.en |
| a1fc0 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 | ds....................finally.re |
| a1fe0 | 74 75 72 6e 20 28 63 6f 6e 73 20 70 72 6f 6d 70 74 2d 65 6e 64 20 65 6e 64 73 29 29 29 29 0a 20 | turn.(cons.prompt-end.ends)))).. |
| a2000 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 | ...........(gptel--with-buffer-c |
| a2020 | 6f 70 79 20 6f 72 67 2d 62 75 66 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | opy.org-buf.nil.nil............. |
| a2040 | 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 73 74 61 72 74 20 69 6e 20 73 74 61 72 74 2d 62 6f | ..(cl-loop.for.start.in.start-bo |
| a2060 | 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 | unds........................for. |
| a2080 | 65 6e 64 20 69 6e 20 65 6e 64 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end.in.end-bounds............... |
| a20a0 | 20 20 20 20 20 20 20 20 20 64 6f 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 | .........do.(insert-buffer-subst |
| a20c0 | 72 69 6e 67 20 6f 72 67 2d 62 75 66 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | ring.org-buf.start.end)......... |
| a20e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 | ...............(goto-char.(point |
| a2100 | 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | -min)))...............(goto-char |
| a2120 | 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | .(point-max))...............(gpt |
| a2140 | 65 6c 2d 6f 72 67 2d 2d 75 6e 65 73 63 61 70 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 29 0a 20 | el-org--unescape-tool-results).. |
| a2160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 62 | .............(gptel-org--strip-b |
| a2180 | 6c 6f 63 6b 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | lock-headers)...............(whe |
| a21a0 | 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 20 28 67 70 74 | n.gptel-org-ignore-elements.(gpt |
| a21c0 | 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 | el-org--strip-elements))........ |
| a21e0 | 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 | .......(current-buffer))))...... |
| a2200 | 20 3b 3b 20 43 72 65 61 74 65 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 75 61 6c 20 77 61 79 0a | .;;.Create.prompt.the.usual.way. |
| a2220 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 72 67 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 | ......(let.((org-buf.(current-bu |
| a2240 | 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 70 6f 69 6e 74 2d 6d | ffer)).............(beg.(point-m |
| a2260 | 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 | in))).........(gptel--with-buffe |
| a2280 | 72 2d 63 6f 70 79 20 6f 72 67 2d 62 75 66 20 62 65 67 20 70 72 6f 6d 70 74 2d 65 6e 64 0a 20 20 | r-copy.org-buf.beg.prompt-end... |
| a22a0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 75 6e 65 73 63 61 70 65 2d 74 6f 6f | ........(gptel-org--unescape-too |
| a22c0 | 6c 2d 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d | l-results)...........(gptel-org- |
| a22e0 | 2d 73 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 | -strip-block-headers)........... |
| a2300 | 28 77 68 65 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 20 | (when.gptel-org-ignore-elements. |
| a2320 | 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 | (gptel-org--strip-elements)).... |
| a2340 | 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 0a 0a 28 64 | .......(current-buffer))))))..(d |
| a2360 | 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 20 28 | efun.gptel-org--strip-elements.( |
| a2380 | 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 73 20 69 6e 20 60 67 70 74 | )..."Remove.all.elements.in.`gpt |
| a23a0 | 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 27 20 66 72 6f 6d 20 74 68 65 | el-org-ignore-elements'.from.the |
| a23c0 | 0a 70 72 6f 6d 70 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6f | .prompt."...(let.((major-mode.'o |
| a23e0 | 72 67 2d 6d 6f 64 65 29 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 72 73 29 0a 20 20 20 20 28 69 | rg-mode).element-markers).....(i |
| a2400 | 66 20 28 65 71 75 61 6c 20 27 28 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 29 20 67 70 74 65 | f.(equal.'(property-drawer).gpte |
| a2420 | 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 28 | l-org-ignore-elements).........( |
| a2440 | 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 | save-excursion...........(goto-c |
| a2460 | 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c | har.(point-min))...........(whil |
| a2480 | 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6f 72 67 2d 70 72 6f 70 65 72 74 | e.(re-search-forward.org-propert |
| a24a0 | 79 2d 64 72 61 77 65 72 2d 72 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b | y-drawer-re.nil.t).............; |
| a24c0 | 3b 20 3b 3b 20 53 6c 6f 77 65 72 20 62 75 74 20 61 63 63 75 72 61 74 65 0a 20 20 20 20 20 20 20 | ;.;;.Slower.but.accurate........ |
| a24e0 | 20 20 20 20 20 3b 3b 20 28 6c 65 74 20 28 28 64 72 61 77 65 72 20 28 6f 72 67 2d 65 6c 65 6d 65 | .....;;.(let.((drawer.(org-eleme |
| a2500 | 6e 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 | nt-at-point))).............;;... |
| a2520 | 28 77 68 65 6e 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 2d 70 20 64 72 61 77 65 72 | (when.(org-element-type-p.drawer |
| a2540 | 20 27 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b | .'property-drawer).............; |
| a2560 | 3b 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6f 72 67 2d 65 6c 65 6d 65 6e | ;.....(delete-region.(org-elemen |
| a2580 | 74 2d 62 65 67 69 6e 20 64 72 61 77 65 72 29 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 | t-begin.drawer).(org-element-end |
| a25a0 | 20 64 72 61 77 65 72 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 61 73 74 | .drawer))))..............;;.Fast |
| a25c0 | 20 62 75 74 20 69 6e 65 78 61 63 74 2c 20 63 61 6e 20 68 61 76 65 20 66 61 6c 73 65 20 70 6f 73 | .but.inexact,.can.have.false.pos |
| a25e0 | 69 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f | itives.............(delete-regio |
| a2600 | 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 | n.(match-beginning.0).(match-end |
| a2620 | 20 30 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 50 61 72 73 69 6e 67 20 74 68 | .0)))).......;;.NOTE:.Parsing.th |
| a2640 | 65 20 62 75 66 66 65 72 20 69 73 20 65 78 74 72 65 6d 65 6c 79 20 73 6c 6f 77 2e 20 20 41 76 6f | e.buffer.is.extremely.slow...Avo |
| a2660 | 69 64 20 74 68 69 73 20 70 61 74 68 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 3b 3b 20 72 65 71 | id.this.path.unless.......;;.req |
| a2680 | 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 60 6f 72 67 2d 65 6c 65 6d 65 | uired........;;.NOTE:.`org-eleme |
| a26a0 | 6e 74 2d 6d 61 70 27 20 74 61 6b 65 73 20 61 20 74 68 69 72 64 20 4b 45 45 50 2d 44 45 46 45 52 | nt-map'.takes.a.third.KEEP-DEFER |
| a26c0 | 52 45 44 20 61 72 67 75 6d 65 6e 74 20 69 6e 20 6e 65 77 65 72 0a 20 20 20 20 20 20 3b 3b 20 4f | RED.argument.in.newer.......;;.O |
| a26e0 | 72 67 20 76 65 72 73 69 6f 6e 73 0a 20 20 20 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6d | rg.versions.......(org-element-m |
| a2700 | 61 70 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 27 65 6c | ap.(org-element-parse-buffer.'el |
| a2720 | 65 6d 65 6e 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6f 72 67 2d 69 | ement.nil)...........gptel-org-i |
| a2740 | 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | gnore-elements.........(lambda.( |
| a2760 | 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 28 67 70 74 | node)...........(push.(list.(gpt |
| a2780 | 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 6e 6f 64 65 29 0a 20 20 20 20 | el-org--element-begin.node)..... |
| a27a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c | ..................(gptel-org--el |
| a27c0 | 65 6d 65 6e 74 2d 65 6e 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ement-end.node))................ |
| a27e0 | 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 72 73 29 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 | .element-markers))).......(dolis |
| a2800 | 74 20 28 62 6f 75 6e 64 73 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 72 73 29 0a 20 20 20 20 20 | t.(bounds.element-markers)...... |
| a2820 | 20 20 20 28 61 70 70 6c 79 20 23 27 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 6f 75 6e 64 73 | ...(apply.#'delete-region.bounds |
| a2840 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 62 | )))))..(defun.gptel-org--strip-b |
| a2860 | 6c 6f 63 6b 2d 68 65 61 64 65 72 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 67 70 | lock-headers.()..."Remove.all.gp |
| a2880 | 74 65 6c 2d 73 70 65 63 69 66 69 63 20 62 6c 6f 63 6b 20 68 65 61 64 65 72 73 20 61 6e 64 20 66 | tel-specific.block.headers.and.f |
| a28a0 | 6f 6f 74 65 72 73 2e 0a 45 76 65 72 79 20 6c 69 6e 65 20 74 68 61 74 20 6d 61 74 63 68 65 73 20 | ooters..Every.line.that.matches. |
| a28c0 | 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 65 6e 74 69 72 65 6c 79 2e 0a 0a 54 68 69 73 20 | will.be.removed.entirely...This. |
| a28e0 | 72 65 6d 6f 76 61 6c 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 61 76 6f 69 64 20 61 75 | removal.is.necessary.to.avoid.au |
| a2900 | 74 6f 2d 6d 69 6d 69 63 72 79 20 62 79 20 4c 4c 4d 73 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 | to-mimicry.by.LLMs."...(save-exc |
| a2920 | 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e | ursion.....(goto-char.(point-min |
| a2940 | 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 | )).....(while.(re-search-forward |
| a2960 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 6c 69 6e 65 2d 73 74 61 72 74 20 28 6c 69 74 | .............(rx.line-start.(lit |
| a2980 | 65 72 61 6c 20 22 23 2b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | eral."#+").................(or.( |
| a29a0 | 6c 69 74 65 72 61 6c 20 22 62 65 67 69 6e 22 29 20 28 6c 69 74 65 72 61 6c 20 22 65 6e 64 22 29 | literal."begin").(literal."end") |
| a29c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6c 69 74 65 72 61 6c 20 22 | ).................(or.(literal." |
| a29e0 | 5f 74 6f 6f 6c 22 29 20 28 6c 69 74 65 72 61 6c 20 22 5f 72 65 61 73 6f 6e 69 6e 67 22 29 29 29 | _tool").(literal."_reasoning"))) |
| a2a00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 | .............nil.t).......(delet |
| a2a20 | 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 0a 20 20 20 | e-region.(match-beginning.0).... |
| a2a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 20 28 70 6f 69 6e 74 2d 6d 61 | ..................(min.(point-ma |
| a2a60 | 78 29 20 28 31 2b 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 29 29 | x).(1+.(line-end-position))))))) |
| a2a80 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 75 6e 65 73 63 61 70 65 2d 74 6f 6f | ..(defun.gptel-org--unescape-too |
| a2aa0 | 6c 2d 72 65 73 75 6c 74 73 20 28 29 0a 20 20 22 55 6e 64 6f 20 65 73 63 61 70 65 73 20 64 6f 6e | l-results.()..."Undo.escapes.don |
| a2ac0 | 65 20 74 6f 20 6b 65 65 70 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 65 73 63 61 70 69 6e 67 20 | e.to.keep.results.from.escaping. |
| a2ae0 | 62 6c 6f 63 6b 73 2e 0a 53 63 61 6e 73 20 62 61 63 6b 77 61 72 64 20 66 6f 72 20 67 70 74 65 6c | blocks..Scans.backward.for.gptel |
| a2b00 | 20 74 6f 6f 6c 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 2c 20 72 65 61 64 73 20 74 68 65 20 61 | .tool.text.property,.reads.the.a |
| a2b20 | 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 6e 0a 75 6e 65 73 63 61 70 65 73 20 74 68 65 20 72 65 6d | rguments,.then.unescapes.the.rem |
| a2b40 | 61 69 6e 64 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 | ainder."...(save-excursion.....( |
| a2b60 | 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 6c 65 74 20 | goto-char.(point-max)).....(let. |
| a2b80 | 28 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 | ((prev-pt.(point))).......(while |
| a2ba0 | 20 28 3e 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 | .(>.prev-pt.(point-min))........ |
| a2bc0 | 20 28 67 6f 74 6f 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 73 | .(goto-char..........(previous-s |
| a2be0 | 69 6e 67 6c 65 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e | ingle-char-property-change.(poin |
| a2c00 | 74 29 20 27 67 70 74 65 6c 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 20 | t).'gptel)).........(let.((prop. |
| a2c20 | 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 | (get-text-property.(point).'gpte |
| a2c40 | 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 70 72 6f 67 | l))...............(backward-prog |
| a2c60 | 72 65 73 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | ress.(point)))...........(when.( |
| a2c80 | 65 71 20 28 63 61 72 2d 73 61 66 65 20 70 72 6f 70 29 20 27 74 6f 6f 6c 29 0a 20 20 20 20 20 20 | eq.(car-safe.prop).'tool)....... |
| a2ca0 | 20 20 20 20 20 20 3b 3b 20 55 73 65 72 20 65 64 69 74 73 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 | ......;;.User.edits.to.clean.up. |
| a2cc0 | 63 61 6e 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 69 6e 73 65 72 74 20 61 20 74 6f 6f 6c 2d 63 61 | can.potentially.insert.a.tool-ca |
| a2ce0 | 6c 6c 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 20 69 73 | ll.header.............;;.that.is |
| a2d00 | 20 70 72 6f 70 65 72 74 69 7a 65 64 2e 20 20 54 6f 6f 6c 20 63 61 6c 6c 20 68 65 61 64 65 72 73 | .propertized...Tool.call.headers |
| a2d20 | 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 | .should.not.be.............;;.pr |
| a2d40 | 6f 70 65 72 74 69 7a 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f | opertized..............(when.(lo |
| a2d60 | 6f 6b 69 6e 67 2d 61 74 2d 70 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 2a 23 5c 5c 2b 62 65 67 69 | oking-at-p."[[:space:]]*#\\+begi |
| a2d80 | 6e 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | n_tool")...............(goto-cha |
| a2da0 | 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | r.(match-end.0))).............(c |
| a2dc0 | 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ondition-case.nil............... |
| a2de0 | 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 | ..(read.(current-buffer))....... |
| a2e00 | 20 20 20 20 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 | ........((end-of-file.invalid-re |
| a2e20 | 61 64 2d 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 | ad-syntax)................(messa |
| a2e40 | 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 74 6f 6f 6c 20 61 72 67 75 6d 65 6e 74 | ge."Could.not.read.tool.argument |
| a2e60 | 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 20 74 68 69 73 20 63 | s"))).............;;.TODO.this.c |
| a2e80 | 6f 64 65 20 69 73 20 61 62 6c 65 20 74 6f 20 70 75 74 20 74 68 65 20 70 6f 69 6e 74 20 62 65 68 | ode.is.able.to.put.the.point.beh |
| a2ea0 | 69 6e 64 20 70 72 65 76 2d 70 74 2c 20 77 68 69 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b | ind.prev-pt,.which.............; |
| a2ec0 | 3b 20 6d 61 6b 65 73 20 74 68 65 20 72 65 67 69 6f 6e 20 69 6e 76 65 72 74 65 64 2e 20 20 54 68 | ;.makes.the.region.inverted...Th |
| a2ee0 | 65 20 60 6d 61 78 27 20 63 61 74 63 68 65 73 20 74 68 69 73 2c 20 62 75 74 20 72 65 61 6c 6c 79 | e.`max'.catches.this,.but.really |
| a2f00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 72 65 61 64 27 20 61 6e 64 20 60 6c 6f 6f 6b | .............;;.`read'.and.`look |
| a2f20 | 69 6e 67 2d 61 74 27 20 61 72 65 20 74 68 65 20 63 75 6c 70 72 69 74 73 2e 20 20 42 61 64 6c 79 | ing-at'.are.the.culprits...Badly |
| a2f40 | 20 66 6f 72 6d 65 64 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 6c 6f 63 | .formed.tool.............;;.bloc |
| a2f60 | 6b 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 74 68 69 73 20 62 65 69 6e 67 20 6e 65 63 65 73 73 | ks.can.lead.to.this.being.necess |
| a2f80 | 61 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 75 6e 65 73 63 61 70 65 2d 63 | ary..............(org-unescape-c |
| a2fa0 | 6f 64 65 2d 69 6e 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 20 | ode-in-region..............(min. |
| a2fc0 | 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 20 70 72 65 76 2d 70 74 29 29 0a 20 20 20 20 20 | prev-pt.(point)).prev-pt))...... |
| a2fe0 | 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 73 65 74 71 20 70 72 65 76 2d 70 74 20 62 61 | .....(goto-char.(setq.prev-pt.ba |
| a3000 | 63 6b 77 61 72 64 2d 70 72 6f 67 72 65 73 73 29 29 29 29 29 29 29 0a 0a 3b 3b 20 48 61 6e 64 6c | ckward-progress)))))))..;;.Handl |
| a3020 | 65 20 6d 65 64 69 61 20 6c 69 6e 6b 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 0a 28 63 6c 2d | e.media.links.in.the.buffer.(cl- |
| a3040 | 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e | defmethod.gptel--parse-media-lin |
| a3060 | 6b 73 20 28 28 5f 6d 6f 64 65 20 28 65 71 6c 20 27 6f 72 67 2d 6d 6f 64 65 29 29 20 62 65 67 20 | ks.((_mode.(eql.'org-mode)).beg. |
| a3080 | 65 6e 64 29 0a 20 20 22 50 61 72 73 65 20 74 65 78 74 20 61 6e 64 20 61 63 74 69 6f 6e 61 62 6c | end)..."Parse.text.and.actionabl |
| a30a0 | 65 20 6c 69 6e 6b 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 0a 52 65 | e.links.between.BEG.and.END...Re |
| a30c0 | 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 | turn.a.list.of.the.form..((:text |
| a30e0 | 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 61 74 | .\"some.text\")...(:media.\"/pat |
| a3100 | 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 70 | h/to/media.png\".:mime.\"image/p |
| a3120 | 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 0a 66 | ng\")...(:text.\"More.text\")).f |
| a3140 | 6f 72 20 69 6e 63 6c 75 73 69 6f 6e 20 69 6e 74 6f 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d 70 | or.inclusion.into.the.user.promp |
| a3160 | 74 20 66 6f 72 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 72 65 71 | t.for.the.gptel.request."...(req |
| a3180 | 75 69 72 65 20 27 6d 61 69 6c 63 61 70 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uire.'mailcap).................. |
| a31a0 | 20 20 3b 46 49 58 4d 45 20 41 76 6f 69 64 20 74 68 69 73 20 73 6f 6d 65 68 6f 77 0a 20 20 28 6c | ..;FIXME.Avoid.this.somehow...(l |
| a31c0 | 65 74 20 28 28 70 61 72 74 73 29 20 28 66 72 6f 6d 2d 70 74 29 20 28 6d 69 6d 65 29 0a 20 20 20 | et.((parts).(from-pt).(mime).... |
| a31e0 | 20 20 20 20 20 28 6c 69 6e 6b 2d 72 65 67 65 78 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 3f 3a 22 | .....(link-regex.(concat."\\(?:" |
| a3200 | 20 6f 72 67 2d 6c 69 6e 6b 2d 62 72 61 63 6b 65 74 2d 72 65 20 22 5c 5c 7c 22 0a 20 20 20 20 20 | .org-link-bracket-re."\\|"...... |
| a3220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 72 67 2d 6c 69 6e 6b 2d | .......................org-link- |
| a3240 | 61 6e 67 6c 65 2d 72 65 20 22 5c 5c 29 22 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 | angle-re."\\)"))).....(save-excu |
| a3260 | 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 67 6f 74 6f 2d | rsion.......(setq.from-pt.(goto- |
| a3280 | 63 68 61 72 20 62 65 67 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 | char.beg)).......(while.(re-sear |
| a32a0 | 63 68 2d 66 6f 72 77 61 72 64 20 6c 69 6e 6b 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 | ch-forward.link-regex.end.t).... |
| a32c0 | 20 20 20 20 20 28 73 65 74 71 20 6d 69 6d 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 77 68 | .....(setq.mime.nil).........(wh |
| a32e0 | 65 6e 2d 6c 65 74 2a 20 28 28 6c 69 6e 6b 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 63 6f 6e 74 | en-let*.((link.(org-element-cont |
| a3300 | 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 70 74 65 | ext)).....................((gpte |
| a3320 | 6c 2d 6f 72 67 2d 2d 6c 69 6e 6b 2d 73 74 61 6e 64 61 6c 6f 6e 65 2d 70 20 6c 69 6e 6b 29 29 0a | l-org--link-standalone-p.link)). |
| a3340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 61 77 2d 6c 69 6e 6b 20 28 6f | ....................(raw-link.(o |
| a3360 | 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 72 61 77 2d 6c 69 6e 6b 20 6c 69 | rg-element-property.:raw-link.li |
| a3380 | 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 | nk)).....................(path.( |
| a33a0 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 70 61 74 68 20 6c 69 6e 6b 29 | org-element-property.:path.link) |
| a33c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 79 70 65 20 28 6f 72 67 | ).....................(type.(org |
| a33e0 | 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 74 79 70 65 20 6c 69 6e 6b 29 29 0a 20 | -element-property.:type.link)).. |
| a3400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 54 68 69 73 | ...................;;.FIXME.This |
| a3420 | 20 69 73 20 6e 6f 74 20 61 20 67 6f 6f 64 20 70 6c 61 63 65 20 74 6f 20 63 68 65 63 6b 20 66 6f | .is.not.a.good.place.to.check.fo |
| a3440 | 72 20 75 72 6c 20 63 61 70 61 62 69 6c 69 74 79 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.url.capability!............... |
| a3460 | 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 74 79 70 65 20 60 28 22 61 74 74 61 63 68 6d 65 6e | ......((member.type.`("attachmen |
| a3480 | 74 22 20 22 66 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t"."file"....................... |
| a34a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 | ..............,@(and.(gptel--mod |
| a34c0 | 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-capable-p.'url).............. |
| a34e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 68 74 74 | ..........................'("htt |
| a3500 | 70 22 20 22 68 74 74 70 73 22 20 22 66 74 70 22 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | p"."https"."ftp")))))).......... |
| a3520 | 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 74 79 70 65 20 | .(cond............((member.type. |
| a3540 | 27 28 22 66 69 6c 65 22 20 22 61 74 74 61 63 68 6d 65 6e 74 22 29 29 0a 20 20 20 20 20 20 20 20 | '("file"."attachment"))......... |
| a3560 | 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 70 61 74 68 29 0a 20 | ....(if.(file-readable-p.path).. |
| a3580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 28 67 70 74 65 6c | .............(if.(or.(not.(gptel |
| a35a0 | 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 | --file-binary-p.path)).......... |
| a35c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 6d 69 6d 65 20 28 6d 61 | .............(and.(setq.mime.(ma |
| a35e0 | 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 6d 65 2d 74 79 70 65 20 70 61 74 | ilcap-file-name-to-mime-type.pat |
| a3600 | 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | h))............................( |
| a3620 | 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d 70 20 6d 69 6d 65 | gptel--model-mime-capable-p.mime |
| a3640 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 20 20 20 | )))...................(progn.... |
| a3660 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 65 78 74 20 66 69 6c 65 20 6f 72 20 73 75 70 70 6f | ............;.text.file.or.suppo |
| a3680 | 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rted.binary.file................ |
| a36a0 | 20 20 20 20 20 3b 3b 20 63 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 6c 69 6e 6b 0a | .....;;.collect.text.up.to.link. |
| a36c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | ....................(when-let*.( |
| a36e0 | 28 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 | (text.(buffer-substring-no-prope |
| a3700 | 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rties........................... |
| a3720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d 2d 70 74 20 28 67 70 74 65 6c 2d 6f 72 67 2d | .............from-pt.(gptel-org- |
| a3740 | 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 6c 69 6e 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 | -element-begin.link))))......... |
| a3760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 62 6c | ..............(unless.(string-bl |
| a3780 | 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 65 78 74 20 74 65 | ank-p.text).(push.(list.:text.te |
| a37a0 | 78 74 29 20 70 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt).parts))).................... |
| a37c0 | 20 3b 3b 20 63 6f 6c 6c 65 63 74 20 6c 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .;;.collect.link................ |
| a37e0 | 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 6d 69 6d 65 20 28 6c 69 73 74 20 3a 6d 65 64 69 61 | .....(push.(if.mime.(list.:media |
| a3800 | 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 20 28 6c 69 73 74 20 3a 74 65 78 74 66 69 6c | .path.:mime.mime).(list.:textfil |
| a3820 | 65 20 70 61 74 68 29 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.path)).parts)................. |
| a3840 | 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 | ....(setq.from-pt.(point)))..... |
| a3860 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 6e 6f 72 69 6e 67 20 75 | ............(message."Ignoring.u |
| a3880 | 6e 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 5c 22 25 73 5c 22 2e 22 20 | nsupported.binary.file.\"%s\".". |
| a38a0 | 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 | path))...............(message."I |
| a38c0 | 67 6e 6f 72 69 6e 67 20 69 6e 61 63 63 65 73 73 69 62 6c 65 20 66 69 6c 65 20 5c 22 25 73 5c 22 | gnoring.inaccessible.file.\"%s\" |
| a38e0 | 2e 22 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6d 65 6d | .".path)))............((and.(mem |
| a3900 | 62 65 72 20 74 79 70 65 20 27 28 22 68 74 74 70 22 20 22 68 74 74 70 73 22 20 22 66 74 70 22 29 | ber.type.'("http"."https"."ftp") |
| a3920 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 69 6d 65 20 28 6d | )..................(setq.mime.(m |
| a3940 | 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 6d 65 2d 74 79 70 65 20 70 61 | ailcap-file-name-to-mime-type.pa |
| a3960 | 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f | th))..................(gptel--mo |
| a3980 | 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | del-capable-p.mime))............ |
| a39a0 | 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 69 73 20 69 6d 61 67 | .;;.Collect.text.up.to.this.imag |
| a39c0 | 65 2c 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 20 75 72 6c 0a 20 20 | e,.and.collect.this.image.url... |
| a39e0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 65 78 74 20 28 62 75 66 | ..........(when-let*.((text.(buf |
| a3a00 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 | fer-substring-no-properties..... |
| a3a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 72 6f 6d 2d | ...........................from- |
| a3a40 | 70 74 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 6c 69 6e | pt.(gptel-org--element-begin.lin |
| a3a60 | 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 | k))))...............(unless.(str |
| a3a80 | 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 | ing-blank-p.text).(push.(list.:t |
| a3aa0 | 65 78 74 20 74 65 78 74 29 20 70 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ext.text).parts))).............( |
| a3ac0 | 70 75 73 68 20 28 6c 69 73 74 20 3a 75 72 6c 20 72 61 77 2d 6c 69 6e 6b 20 3a 6d 69 6d 65 20 6d | push.(list.:url.raw-link.:mime.m |
| a3ae0 | 69 6d 65 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 72 | ime).parts).............(setq.fr |
| a3b00 | 6f 6d 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | om-pt.(point)))))).......(unless |
| a3b20 | 20 28 3d 20 66 72 6f 6d 2d 70 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 | .(=.from-pt.end).........(push.( |
| a3b40 | 6c 69 73 74 20 3a 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d | list.:text.(buffer-substring-no- |
| a3b60 | 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 2d 70 74 20 65 6e 64 29 29 20 70 61 72 74 73 29 29 | properties.from-pt.end)).parts)) |
| a3b80 | 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 61 72 74 73 29 29 29 0a 0a 28 64 65 66 75 6e | ).....(nreverse.parts)))..(defun |
| a3ba0 | 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 6c 69 6e 6b 2d 73 74 61 6e 64 61 6c 6f 6e 65 2d 70 20 28 6f | .gptel-org--link-standalone-p.(o |
| a3bc0 | 62 6a 65 63 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 6c 69 6e 6b 20 4f 42 4a 45 43 54 20 69 | bject)..."Check.if.link.OBJECT.i |
| a3be0 | 73 20 6f 6e 20 61 20 6c 69 6e 65 20 62 79 20 69 74 73 65 6c 66 2e 22 0a 20 20 3b 3b 20 53 70 65 | s.on.a.line.by.itself."...;;.Spe |
| a3c00 | 63 69 66 79 20 61 6e 63 65 73 74 6f 72 20 54 59 50 45 53 20 61 73 20 6c 69 73 74 20 28 23 32 34 | cify.ancestor.TYPES.as.list.(#24 |
| a3c20 | 35 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 61 72 20 28 6f 72 67 2d 65 6c 65 6d 65 | 5)...(when-let*.((par.(org-eleme |
| a3c40 | 6e 74 2d 6c 69 6e 65 61 67 65 20 6f 62 6a 65 63 74 20 27 28 70 61 72 61 67 72 61 70 68 29 29 29 | nt-lineage.object.'(paragraph))) |
| a3c60 | 29 0a 20 20 20 20 28 61 6e 64 20 28 3d 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e | ).....(and.(=.(gptel-org--elemen |
| a3c80 | 74 2d 62 65 67 69 6e 20 6f 62 6a 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 | t-begin.object).............(sav |
| a3ca0 | 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d | e-excursion...............(goto- |
| a3cc0 | 63 68 61 72 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 63 6f 6e 74 | char.(org-element-property.:cont |
| a3ce0 | 65 6e 74 73 2d 62 65 67 69 6e 20 70 61 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ents-begin.par))...............( |
| a3d00 | 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 5c 74 20 22 29 0a 20 20 20 20 20 20 | skip-chars-forward."\t.")....... |
| a3d20 | 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(point)))............... |
| a3d40 | 20 20 3b 61 63 63 6f 75 6e 74 20 66 6f 72 20 6c 65 61 64 69 6e 67 20 73 70 61 63 65 20 62 65 66 | ..;account.for.leading.space.bef |
| a3d60 | 6f 72 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 20 28 3c 3d 20 28 2d 20 28 6f 72 67 2d | ore.object..........(<=.(-.(org- |
| a3d80 | 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 63 6f 6e 74 65 6e 74 73 2d 65 6e 64 20 70 | element-property.:contents-end.p |
| a3da0 | 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 | ar).................(org-element |
| a3dc0 | 2d 70 72 6f 70 65 72 74 79 20 3a 65 6e 64 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 | -property.:end.object))......... |
| a3de0 | 20 20 20 20 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 | .....1))))..(defun.gptel-org--se |
| a3e00 | 6e 64 2d 77 69 74 68 2d 70 72 6f 70 73 20 28 73 65 6e 64 2d 66 75 6e 20 26 72 65 73 74 20 61 72 | nd-with-props.(send-fun.&rest.ar |
| a3e20 | 67 73 29 0a 20 20 22 43 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 6d 6f 64 69 66 79 20 53 45 4e 44 | gs)..."Conditionally.modify.SEND |
| a3e40 | 2d 46 55 4e 27 73 20 63 61 6c 6c 69 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 49 66 20 | -FUN's.calling.environment...If. |
| a3e60 | 69 6e 20 61 6e 20 4f 72 67 20 62 75 66 66 65 72 20 75 6e 64 65 72 20 61 20 68 65 61 64 69 6e 67 | in.an.Org.buffer.under.a.heading |
| a3e80 | 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 73 74 6f 72 65 64 20 67 70 74 65 6c 0a 63 6f 6e 66 69 | .containing.a.stored.gptel.confi |
| a3ea0 | 67 75 72 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 61 74 20 66 6f 72 20 72 65 71 75 65 73 74 73 20 | guration,.use.that.for.requests. |
| a3ec0 | 69 6e 73 74 65 61 64 2e 20 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 0a 73 79 73 74 | instead...This.includes.the.syst |
| a3ee0 | 65 6d 20 6d 65 73 73 61 67 65 2c 20 6d 6f 64 65 6c 20 61 6e 64 20 70 72 6f 76 69 64 65 72 20 28 | em.message,.model.and.provider.( |
| a3f00 | 62 61 63 6b 65 6e 64 29 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 0a 70 61 72 61 6d 65 74 65 72 73 | backend),.among.other.parameters |
| a3f20 | 2e 0a 0a 41 52 47 53 20 61 72 65 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 66 75 6e 63 74 69 6f | ...ARGS.are.the.original.functio |
| a3f40 | 6e 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 28 69 66 20 28 64 65 72 69 76 65 | n.call.arguments."...(if.(derive |
| a3f60 | 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 | d-mode-p.'org-mode).......(pcase |
| a3f80 | 2d 6c 65 74 20 28 28 60 28 2c 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 | -let.((`(,gptel--system-message. |
| a3fa0 | 2c 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 2c 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 | ,gptel-backend.,gptel-model..... |
| a3fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 | .................,gptel-temperat |
| a3fe0 | 75 72 65 20 2c 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 20 20 20 20 | ure.,gptel-max-tokens).......... |
| a4000 | 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6d 61 70 6e 20 28 6c 61 6d 62 64 61 20 28 61 20 62 | ..........(seq-mapn.(lambda.(a.b |
| a4020 | 29 20 28 6f 72 20 61 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).(or.a.b))..................... |
| a4040 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 72 79 2d 70 72 6f 70 65 | .........(gptel-org--entry-prope |
| a4060 | 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rties).......................... |
| a4080 | 20 20 20 20 28 6c 69 73 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 | ....(list.gptel--system-message. |
| a40a0 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 | gptel-backend.gptel-model....... |
| a40c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 | .............................gpt |
| a40e0 | 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 | el-temperature.gptel-max-tokens) |
| a4100 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 73 65 6e 64 2d 66 75 6e 20 61 72 67 73 | ))).........(apply.send-fun.args |
| a4120 | 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 73 65 6e 64 2d 66 75 6e 20 61 72 67 73 29 29 29 0a 0a | )).....(apply.send-fun.args))).. |
| a4140 | 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 73 65 6e 64 20 3a 61 72 6f 75 6e 64 20 | (advice-add.'gptel-send.:around. |
| a4160 | 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 73 29 0a 28 61 | #'gptel-org--send-with-props).(a |
| a4180 | 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 3a 61 | dvice-add.'gptel--suffix-send.:a |
| a41a0 | 72 6f 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f | round.#'gptel-org--send-with-pro |
| a41c0 | 70 73 29 0a 0a 3b 3b 20 3b 3b 20 4e 4f 54 45 3a 20 42 61 73 69 63 20 75 73 65 73 20 69 6e 20 6f | ps)..;;.;;.NOTE:.Basic.uses.in.o |
| a41e0 | 72 67 2d 6d 6f 64 65 20 61 72 65 20 63 6f 76 65 72 65 64 20 62 79 20 61 64 76 69 73 69 6e 67 20 | rg-mode.are.covered.by.advising. |
| a4200 | 67 70 74 65 6c 2d 73 65 6e 64 20 61 6e 64 0a 3b 3b 20 3b 3b 20 67 70 74 65 6c 2d 2d 73 75 66 66 | gptel-send.and.;;.;;.gptel--suff |
| a4220 | 69 78 2d 73 65 6e 64 2e 20 20 46 6f 72 20 63 75 73 74 6f 6d 20 63 6f 6d 6d 61 6e 64 73 20 69 74 | ix-send...For.custom.commands.it |
| a4240 | 20 6d 69 67 68 74 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 61 64 76 69 73 65 0a 3b 3b | .might.be.necessary.to.advise.;; |
| a4260 | 20 3b 3b 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 69 6e 73 74 65 61 64 2e 0a 3b 3b 20 28 61 | .;;.gptel-request.instead..;;.(a |
| a4280 | 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 3a 61 72 6f 75 6e 64 | dvice-add.'gptel-request.:around |
| a42a0 | 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 73 29 0a 0a | .#'gptel-org--send-with-props).. |
| a42c0 | 0c 0a 3b 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 73 74 61 74 65 | ..;;;.Saving.and.restoring.state |
| a42e0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 | .(defun.gptel-org--entry-propert |
| a4300 | 69 65 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 46 69 6e 64 20 67 70 74 65 6c | ies.(&optional.pt)..."Find.gptel |
| a4320 | 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 73 74 6f 72 65 64 | .configuration.properties.stored |
| a4340 | 20 61 74 20 50 54 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 0a 20 20 20 20 20 20 28 28 60 28 | .at.PT."...(pcase-let.......((`( |
| a4360 | 2c 73 79 73 74 65 6d 20 2c 62 61 63 6b 65 6e 64 20 2c 6d 6f 64 65 6c 20 2c 74 65 6d 70 65 72 61 | ,system.,backend.,model.,tempera |
| a4380 | 74 75 72 65 20 2c 74 6f 6b 65 6e 73 20 2c 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 | ture.,tokens.,num)..........(map |
| a43a0 | 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 70 29 20 28 6f 72 | car...........(lambda.(prop).(or |
| a43c0 | 67 2d 65 6e 74 72 79 2d 67 65 74 20 28 6f 72 20 70 74 20 28 70 6f 69 6e 74 29 29 20 70 72 6f 70 | g-entry-get.(or.pt.(point)).prop |
| a43e0 | 20 27 73 65 6c 65 63 74 69 76 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 28 22 47 50 54 45 4c | .'selective))...........'("GPTEL |
| a4400 | 5f 53 59 53 54 45 4d 22 20 22 47 50 54 45 4c 5f 42 41 43 4b 45 4e 44 22 20 22 47 50 54 45 4c 5f | _SYSTEM"."GPTEL_BACKEND"."GPTEL_ |
| a4420 | 4d 4f 44 45 4c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 50 54 45 4c 5f 54 45 4d 50 45 52 | MODEL"............."GPTEL_TEMPER |
| a4440 | 41 54 55 52 45 22 20 22 47 50 54 45 4c 5f 4d 41 58 5f 54 4f 4b 45 4e 53 22 0a 20 20 20 20 20 20 | ATURE"."GPTEL_MAX_TOKENS"....... |
| a4460 | 20 20 20 20 20 20 22 47 50 54 45 4c 5f 4e 55 4d 5f 4d 45 53 53 41 47 45 53 5f 54 4f 5f 53 45 4e | ......"GPTEL_NUM_MESSAGES_TO_SEN |
| a4480 | 44 22 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 79 73 74 65 6d 0a 20 20 20 20 20 20 28 73 | D")))).....(when.system.......(s |
| a44a0 | 65 74 71 20 73 79 73 74 65 6d 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 5c 6e 22 | etq.system.(string-replace."\\n" |
| a44c0 | 20 22 5c 6e 22 20 73 79 73 74 65 6d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 62 61 63 6b 65 6e | ."\n".system))).....(when.backen |
| a44e0 | 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 61 63 6b 65 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 | d.......(setq.backend.(alist-get |
| a4500 | 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 | .backend.gptel--known-backends.. |
| a4520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 | ..............................ni |
| a4540 | 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6d 6f 64 65 6c | l.nil.#'equal))).....(when.model |
| a4560 | 20 28 73 65 74 71 20 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d 69 6e 74 65 72 6e 20 6d 6f 64 65 | .(setq.model.(gptel--intern.mode |
| a4580 | 6c 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 | l))).....(when.temperature...... |
| a45a0 | 20 28 73 65 74 71 20 74 65 6d 70 65 72 61 74 75 72 65 20 28 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 | .(setq.temperature.(gptel--to-nu |
| a45c0 | 6d 62 65 72 20 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 6f | mber.temperature))).....(when.to |
| a45e0 | 6b 65 6e 73 20 28 73 65 74 71 20 74 6f 6b 65 6e 73 20 28 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d | kens.(setq.tokens.(gptel--to-num |
| a4600 | 62 65 72 20 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 75 6d 20 28 73 65 74 | ber.tokens))).....(when.num.(set |
| a4620 | 71 20 6e 75 6d 20 28 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 72 20 6e 75 6d 29 29 29 0a 20 | q.num.(gptel--to-number.num))).. |
| a4640 | 20 20 20 28 6c 69 73 74 20 73 79 73 74 65 6d 20 62 61 63 6b 65 6e 64 20 6d 6f 64 65 6c 20 74 65 | ...(list.system.backend.model.te |
| a4660 | 6d 70 65 72 61 74 75 72 65 20 74 6f 6b 65 6e 73 20 6e 75 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 | mperature.tokens.num)))..(defun. |
| a4680 | 67 70 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 | gptel-org--restore-state.()..."R |
| a46a0 | 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 66 6f 72 20 4f 72 67 20 62 75 66 66 65 | estore.gptel.state.for.Org.buffe |
| a46c0 | 72 73 20 77 68 65 6e 20 74 75 72 6e 69 6e 67 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e | rs.when.turning.on.`gptel-mode'. |
| a46e0 | 22 0a 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 | "...(save-restriction.....(let.( |
| a4700 | 28 6d 6f 64 69 66 69 65 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 29 29 0a | (modified.(buffer-modified-p))). |
| a4720 | 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 | ......(widen).......(condition-c |
| a4740 | 61 73 65 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 | ase.status...........(progn..... |
| a4760 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 62 6f 75 6e 64 73 20 28 6f 72 67 | ........(when-let*.((bounds.(org |
| a4780 | 2d 65 6e 74 72 79 2d 67 65 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 22 47 50 54 45 4c 5f 42 4f | -entry-get.(point-min)."GPTEL_BO |
| a47a0 | 55 4e 44 53 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 | UNDS")))...............(gptel--r |
| a47c0 | 65 73 74 6f 72 65 2d 70 72 6f 70 73 20 28 72 65 61 64 20 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 | estore-props.(read.bounds))).... |
| a47e0 | 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 73 79 73 74 65 6d 20 | .........(pcase-let.((`(,system. |
| a4800 | 2c 62 61 63 6b 65 6e 64 20 2c 6d 6f 64 65 6c 20 2c 74 65 6d 70 65 72 61 74 75 72 65 20 2c 74 6f | ,backend.,model.,temperature.,to |
| a4820 | 6b 65 6e 73 20 2c 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | kens.,num)...................... |
| a4840 | 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 69 65 73 | ....(gptel-org--entry-properties |
| a4860 | 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | .(point-min))))...............(w |
| a4880 | 68 65 6e 20 73 79 73 74 65 6d 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 73 79 | hen.system.(setq-local.gptel--sy |
| a48a0 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 | stem-message.system))........... |
| a48c0 | 20 20 20 20 28 69 66 20 62 61 63 6b 65 6e 64 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 | ....(if.backend.(setq-local.gpte |
| a48e0 | 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-backend.backend).............. |
| a4900 | 20 20 20 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 | ...(message..................(su |
| a4920 | 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 | bstitute-command-keys........... |
| a4940 | 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(concat................. |
| a4960 | 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 61 63 74 69 76 61 74 65 20 67 70 74 65 6c 20 62 61 63 | ..."Could.not.activate.gptel.bac |
| a4980 | 6b 65 6e 64 20 5c 22 25 73 5c 22 21 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | kend.\"%s\"!.."................. |
| a49a0 | 20 20 20 22 53 77 69 74 63 68 20 62 61 63 6b 65 6e 64 73 20 77 69 74 68 20 5c 5c 5b 75 6e 69 76 | ..."Switch.backends.with.\\[univ |
| a49c0 | 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 5c 5c 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 0a | ersal-argument].\\[gptel-send]". |
| a49e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 62 65 66 6f 72 65 20 75 73 69 6e | ...................".before.usin |
| a4a00 | 67 20 67 70 74 65 6c 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 | g.gptel."))..................bac |
| a4a20 | 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6d 6f 64 65 6c | kend))...............(when.model |
| a4a40 | 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 | .(setq-local.gptel-model.model)) |
| a4a60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 65 6d 70 65 72 61 74 75 72 65 | ...............(when.temperature |
| a4a80 | 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 74 | .(setq-local.gptel-temperature.t |
| a4aa0 | 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | emperature))...............(when |
| a4ac0 | 20 74 6f 6b 65 6e 73 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f | .tokens.(setq-local.gptel-max-to |
| a4ae0 | 6b 65 6e 73 20 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | kens.tokens))...............(whe |
| a4b00 | 6e 20 6e 75 6d 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 | n.num.(setq-local.gptel--num-mes |
| a4b20 | 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 6e 75 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 3a | sages-to-send.num)))).........(: |
| a4b40 | 73 75 63 63 65 73 73 20 28 6d 65 73 73 61 67 65 20 22 67 70 74 65 6c 20 63 68 61 74 20 72 65 73 | success.(message."gptel.chat.res |
| a4b60 | 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 61 67 | tored.")).........(error.(messag |
| a4b80 | 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 | e."Could.not.restore.gptel.state |
| a4ba0 | 2c 20 73 6f 72 72 79 21 20 45 72 72 6f 72 3a 20 25 73 22 20 73 74 61 74 75 73 29 29 29 0a 20 20 | ,.sorry!.Error:.%s".status)))... |
| a4bc0 | 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6d 6f 64 69 66 | ....(set-buffer-modified-p.modif |
| a4be0 | 69 65 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 | ied))))..(defun.gptel-org-set-pr |
| a4c00 | 6f 70 65 72 74 69 65 73 20 28 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 73 67 29 0a 20 20 22 53 | operties.(pt.&optional.msg)..."S |
| a4c20 | 74 6f 72 65 20 74 68 65 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 | tore.the.active.gptel.configurat |
| a4c40 | 69 6f 6e 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 2e 0a 0a | ion.under.the.current.heading... |
| a4c60 | 54 68 65 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 | The.active.gptel.configuration.i |
| a4c80 | 6e 63 6c 75 64 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 73 74 65 6d 0a 6d 65 73 73 61 | ncludes.the.current.system.messa |
| a4ca0 | 67 65 2c 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 61 6e 64 20 70 72 6f 76 69 64 65 72 20 | ge,.language.model.and.provider. |
| a4cc0 | 28 62 61 63 6b 65 6e 64 29 2c 20 61 6e 64 20 61 64 64 69 74 69 6f 6e 61 6c 0a 73 65 74 74 69 6e | (backend),.and.additional.settin |
| a4ce0 | 67 73 20 77 68 65 6e 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 0a 50 54 20 69 73 20 74 68 65 20 63 | gs.when.applicable...PT.is.the.c |
| a4d00 | 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 49 66 20 4d | ursor.position.by.default...If.M |
| a4d20 | 53 47 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 20 28 64 65 66 61 75 6c 74 29 2c 20 64 69 73 70 6c 61 79 | SG.is.non-nil.(default),.display |
| a4d40 | 20 61 20 6d 65 73 73 61 67 65 20 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 | .a.message.afterwards."...(inter |
| a4d60 | 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 29 20 74 29 29 0a 20 20 28 6f 72 67 2d | active.(list.(point).t))...(org- |
| a4d80 | 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 4d 4f 44 45 4c 22 20 28 67 70 74 65 | entry-put.pt."GPTEL_MODEL".(gpte |
| a4da0 | 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 28 6f | l--model-name.gptel-model))...(o |
| a4dc0 | 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 42 41 43 4b 45 4e 44 22 20 | rg-entry-put.pt."GPTEL_BACKEND". |
| a4de0 | 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | (gptel-backend-name.gptel-backen |
| a4e00 | 64 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 | d))...(unless.(equal.(default-va |
| a4e20 | 6c 75 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 20 67 70 74 65 6c 2d 74 65 | lue.'gptel-temperature).gptel-te |
| a4e40 | 6d 70 65 72 61 74 75 72 65 29 0a 20 20 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 | mperature).....(org-entry-put.pt |
| a4e60 | 20 22 47 50 54 45 4c 5f 54 45 4d 50 45 52 41 54 55 52 45 22 0a 20 20 20 20 20 20 20 20 20 20 20 | ."GPTEL_TEMPERATURE"............ |
| a4e80 | 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 67 70 74 65 6c 2d | ........(number-to-string.gptel- |
| a4ea0 | 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 28 77 68 65 6e 20 28 6e 61 74 6e 75 6d 70 20 | temperature)))...(when.(natnump. |
| a4ec0 | 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 0a 20 20 20 | gptel--num-messages-to-send).... |
| a4ee0 | 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 4e 55 4d 5f 4d 45 | .(org-entry-put.pt."GPTEL_NUM_ME |
| a4f00 | 53 53 41 47 45 53 5f 54 4f 5f 53 45 4e 44 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | SSAGES_TO_SEND"................. |
| a4f20 | 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d | ...(number-to-string.gptel--num- |
| a4f40 | 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 29 29 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 | messages-to-send)))...(org-entry |
| a4f60 | 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 53 59 53 54 45 4d 22 0a 20 20 20 20 20 20 20 20 20 | -put.pt."GPTEL_SYSTEM".......... |
| a4f80 | 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 6d 73 67 20 28 63 61 72 2d 73 61 66 | ........(and-let*.((msg.(car-saf |
| a4fa0 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e............................... |
| a4fc0 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 | ....(gptel--parse-directive..... |
| a4fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 | ...............................g |
| a5000 | 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 20 20 20 | ptel--system-message))))........ |
| a5020 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 | ............(string-replace."\n" |
| a5040 | 20 22 5c 5c 6e 22 20 6d 73 67 29 29 29 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d | ."\\n".msg)))...(when.gptel-max- |
| a5060 | 74 6f 6b 65 6e 73 0a 20 20 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 0a 20 20 20 20 20 70 | tokens.....(org-entry-put......p |
| a5080 | 74 20 22 47 50 54 45 4c 5f 4d 41 58 5f 54 4f 4b 45 4e 53 22 20 28 6e 75 6d 62 65 72 2d 74 6f 2d | t."GPTEL_MAX_TOKENS".(number-to- |
| a50a0 | 73 74 72 69 6e 67 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 28 77 68 | string.gptel-max-tokens)))...(wh |
| a50c0 | 65 6e 20 6d 73 67 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 64 64 65 64 20 67 70 74 65 6c | en.msg.....(message."Added.gptel |
| a50e0 | 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 63 75 72 72 65 6e 74 20 68 65 61 64 6c 69 | .configuration.to.current.headli |
| a5100 | 6e 65 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d | ne.")))..(defun.gptel-org--save- |
| a5120 | 73 74 61 74 65 20 28 29 0a 20 20 22 57 72 69 74 65 20 74 68 65 20 67 70 74 65 6c 20 73 74 61 74 | state.()..."Write.the.gptel.stat |
| a5140 | 65 20 74 6f 20 74 68 65 20 4f 72 67 20 62 75 66 66 65 72 20 61 73 20 4f 72 67 20 70 72 6f 70 65 | e.to.the.Org.buffer.as.Org.prope |
| a5160 | 72 74 69 65 73 2e 22 0a 20 20 28 6f 72 67 2d 77 69 74 68 2d 77 69 64 65 2d 62 75 66 66 65 72 0a | rties."...(org-with-wide-buffer. |
| a5180 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 28 77 | ...(goto-char.(point-min))....(w |
| a51a0 | 68 65 6e 20 28 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e 67 2d 70 29 0a 20 20 20 20 20 28 6f 72 67 | hen.(org-at-heading-p)......(org |
| a51c0 | 2d 6f 70 65 6e 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 | -open-line.1))....(gptel-org-set |
| a51e0 | 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 3b 3b 20 53 | -properties.(point-min))....;;.S |
| a5200 | 61 76 65 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 0a 20 20 20 28 6c 65 74 72 | ave.response.boundaries....(letr |
| a5220 | 65 63 20 28 28 77 72 69 74 65 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ec.((write-bounds..............( |
| a5240 | 6c 61 6d 62 64 61 20 28 61 74 74 65 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.(attempts)............... |
| a5260 | 20 28 6c 65 74 2a 20 28 28 62 6f 75 6e 64 73 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 | .(let*.((bounds.(gptel--get-buff |
| a5280 | 65 72 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er-bounds))..................... |
| a52a0 | 20 20 3b 3b 20 66 69 72 73 74 20 76 61 6c 75 65 20 6f 66 20 28 28 70 72 6f 70 20 2e 20 28 28 62 | ..;;.first.value.of.((prop...((b |
| a52c0 | 65 67 20 65 6e 64 20 76 61 6c 29 2e 2e 2e 29 29 2e 2e 2e 29 0a 20 20 20 20 20 20 20 20 20 20 20 | eg.end.val)...))...)............ |
| a52e0 | 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 63 61 61 64 61 72 20 62 6f 75 6e 64 | ...........(offset.(caadar.bound |
| a5300 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 | s)).......................(offse |
| a5320 | 74 2d 6d 61 72 6b 65 72 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 | t-marker.(set-marker.(make-marke |
| a5340 | 72 29 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | r).offset)))..................(o |
| a5360 | 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 22 47 50 54 45 4c 5f | rg-entry-put.(point-min)."GPTEL_ |
| a5380 | 42 4f 55 4e 44 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | BOUNDS"......................... |
| a53a0 | 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d | ........(prin1-to-string.(gptel- |
| a53c0 | 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -get-buffer-bounds)))........... |
| a53e0 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 3d 20 28 6d 61 72 6b 65 | .......(when.(and.(not.(=.(marke |
| a5400 | 72 2d 70 6f 73 69 74 69 6f 6e 20 6f 66 66 73 65 74 2d 6d 61 72 6b 65 72 29 20 6f 66 66 73 65 74 | r-position.offset-marker).offset |
| a5420 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )).............................( |
| a5440 | 3e 20 61 74 74 65 6d 70 74 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | >.attempts.0)).................. |
| a5460 | 20 20 28 66 75 6e 63 61 6c 6c 20 77 72 69 74 65 2d 62 6f 75 6e 64 73 20 28 31 2d 20 61 74 74 65 | ..(funcall.write-bounds.(1-.atte |
| a5480 | 6d 70 74 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 77 72 69 74 65 2d | mpts)))))))......(funcall.write- |
| a54a0 | 62 6f 75 6e 64 73 20 36 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 54 72 61 6e 73 66 6f 72 6d 69 6e 67 | bounds.6))))....;;;.Transforming |
| a54c0 | 20 72 65 73 70 6f 6e 73 65 73 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e | .responses.;;;###autoload.(defun |
| a54e0 | 20 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 28 73 | .gptel--convert-markdown->org.(s |
| a5500 | 74 72 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 74 72 69 6e 67 20 53 54 52 20 66 72 6f 6d 20 6d | tr)..."Convert.string.STR.from.m |
| a5520 | 61 72 6b 64 6f 77 6e 20 74 6f 20 6f 72 67 20 6d 61 72 6b 75 70 2e 0a 0a 54 68 69 73 20 69 73 20 | arkdown.to.org.markup...This.is. |
| a5540 | 61 20 76 65 72 79 20 62 61 73 69 63 20 63 6f 6e 76 65 72 74 65 72 20 74 68 61 74 20 68 61 6e 64 | a.very.basic.converter.that.hand |
| a5560 | 6c 65 73 20 6f 6e 6c 79 20 61 20 66 65 77 20 6d 61 72 6b 75 70 0a 65 6c 65 6d 65 6e 74 73 2e 22 | les.only.a.few.markup.elements." |
| a5580 | 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 69 6e 73 65 72 74 | ...(with-temp-buffer.....(insert |
| a55a0 | 20 73 74 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | .str).....(goto-char.(point-min) |
| a55c0 | 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 | ).....(while.(re-search-forward. |
| a55e0 | 22 60 2b 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c 7d 5c 5c 7c 5f 5c 5c 7c 5e 23 2b 22 20 6e 69 | "`+\\|\\*\\{1,2\\}\\|_\\|^#+".ni |
| a5600 | 6c 20 74 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 | l.t).......(pcase.(match-string. |
| a5620 | 30 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 62 61 63 6b 74 69 63 6b 73 0a 20 | 0).........;;.Handle.backticks.. |
| a5640 | 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 67 75 61 72 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 | .......((and.(guard.(eq.(char-be |
| a5660 | 66 6f 72 65 29 20 3f 60 29 29 20 74 69 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 | fore).?`)).ticks)..........(gpte |
| a5680 | 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 28 6c 65 6e 67 74 68 | l--replace-source-marker.(length |
| a56a0 | 20 74 69 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 | .ticks))..........(save-match-da |
| a56c0 | 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27 62 6c 6f 63 6b 2d 65 6e 64 0a | ta............(catch.'block-end. |
| a56e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 | .............(while.(search-forw |
| a5700 | 61 72 64 20 74 69 63 6b 73 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ard.ticks.nil.t)................ |
| a5720 | 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 6d 61 | (unless.(or.(eq.(char-before.(ma |
| a5740 | 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 20 3f 60 29 0a 20 20 20 20 20 20 20 20 20 20 | tch-beginning.0)).?`)........... |
| a5760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 | .................(eq.(char-after |
| a5780 | 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | ).?`))..................(gptel-- |
| a57a0 | 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 28 6c 65 6e 67 74 68 20 74 69 | replace-source-marker.(length.ti |
| a57c0 | 63 6b 73 29 20 27 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 | cks).'end)..................(thr |
| a57e0 | 6f 77 20 27 62 6c 6f 63 6b 2d 65 6e 64 20 6e 69 6c 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ow.'block-end.nil))))))......... |
| a5800 | 3b 3b 20 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 | ;;.Handle.headings.........((and |
| a5820 | 20 28 67 75 61 72 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 23 29 29 20 68 | .(guard.(eq.(char-before).?#)).h |
| a5840 | 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 | eading)..........(cond.......... |
| a5860 | 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 20 20 20 3b | .((looking-at."[[:space:]]")...; |
| a5880 | 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 | Handle.headings............(dele |
| a58a0 | 74 65 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 | te-region.(line-beginning-positi |
| a58c0 | 6f 6e 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | on).(point))............(insert. |
| a58e0 | 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6c 65 6e 67 74 68 20 68 65 61 64 69 6e 67 29 20 3f 2a | (make-string.(length.heading).?* |
| a5900 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b 62 | )))...........((looking-at."\\+b |
| a5920 | 65 67 69 6e 5f 73 72 63 22 29 20 3b 4f 76 65 72 65 61 67 65 72 20 4c 4c 4d 20 73 77 69 74 63 68 | egin_src").;Overeager.LLM.switch |
| a5940 | 65 64 20 74 6f 20 75 73 69 6e 67 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 | ed.to.using.Org.src.blocks...... |
| a5960 | 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 20 28 72 65 2d 73 65 61 72 63 | ......(save-match-data.(re-searc |
| a5980 | 68 2d 66 6f 72 77 61 72 64 20 22 5e 23 5c 5c 2b 65 6e 64 5f 73 72 63 22 20 6e 69 6c 20 74 29 29 | h-forward."^#\\+end_src".nil.t)) |
| a59a0 | 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 65 6d 70 68 61 73 69 73 0a 20 | ))).........;;.Handle.emphasis.. |
| a59c0 | 20 20 20 20 20 20 20 28 22 2a 2a 22 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......("**".(cond.............. |
| a59e0 | 20 20 3b 3b 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 6f | ..;;.((looking-at."\\*\\(?:[[:wo |
| a5a00 | 72 64 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | rd:]]\\|\s\\)")................; |
| a5a20 | 3b 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ;..(delete-char.1))............. |
| a5a40 | 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a | ...((looking-back."\\(?:[[:word: |
| a5a60 | 5d 5b 3a 70 75 6e 63 74 3a 5d 5c 6e 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 | ][:punct:]\n]\\|\s\\)\\*\\{2\\}" |
| a5a80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| a5aa0 | 6d 61 78 20 28 2d 20 28 70 6f 69 6e 74 29 20 33 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a | max.(-.(point).3).(point-min))). |
| a5ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 | ................(delete-char.-1) |
| a5ae0 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 22 2a 22 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a | ))).........("*"..........(cond. |
| a5b00 | 20 20 20 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 | ..........((save-match-data..... |
| a5b20 | 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 28 70 6f 69 6e 74 29 20 32 29 0a | .........(and.(or.(=.(point).2). |
| a5b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 | ......................(looking-b |
| a5b60 | 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 28 | ack."\\(?:[[:space:]]\\|\s\\)\\( |
| a5b80 | 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?:_\\|\\*\\)"................... |
| a5ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f 69 6e 74 | ..................(max.(-.(point |
| a5bc0 | 29 20 32 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ).2).(point-min))))............. |
| a5be0 | 20 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 | ......(not.(looking-at."[[:space |
| a5c00 | 3a 5d 5d 5c 5c 7c 5c 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 73 | :]]\\|\s"))))............;;.Poss |
| a5c20 | 69 62 6c 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 6d 70 68 61 73 69 73 0a 20 20 20 20 20 | ible.beginning.of.emphasis...... |
| a5c40 | 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 | ......(and.............(save-exc |
| a5c60 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 | ursion...............(when.(and. |
| a5c80 | 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 | (re-search-forward.(regexp-quote |
| a5ca0 | 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(match-string.0)).............. |
| a5cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| a5ce0 | 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 | line-end-position).t)........... |
| a5d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 | ...............(looking-at."[[:s |
| a5d20 | 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 5c 73 22 29 0a 20 20 20 20 20 20 20 20 | pace:][:punct:]]\\|\s")......... |
| a5d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 62 | .................(not.(looking-b |
| a5d60 | 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 5d 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 28 3f | ack."\\(?:[[:space]]\\|\s\\)\\(? |
| a5d80 | 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :_\\|\\*\\)".................... |
| a5da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d | .........................(max.(- |
| a5dc0 | 20 28 70 6f 69 6e 74 29 20 32 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 20 20 | .(point).2).(point-min)))))..... |
| a5de0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e | ............(delete-char.-1).(in |
| a5e00 | 73 65 72 74 20 22 2f 22 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e | sert."/").t)).............(progn |
| a5e20 | 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2f 22 29 29 29 | .(delete-char.-1).(insert."/"))) |
| a5e40 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 | )...........((save-excursion.... |
| a5e60 | 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 | ..........(ignore-errors.(backwa |
| a5e80 | 72 64 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e | rd-char.2))..............(or.(an |
| a5ea0 | 64 20 28 62 6f 62 70 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5b 5b 3a 73 70 61 63 | d.(bobp).(looking-at."\\*[[:spac |
| a5ec0 | 65 3a 5d 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e | e:]]"))..................(lookin |
| a5ee0 | 67 2d 61 74 20 22 5c 5c 28 3f 3a 24 5c 5c 7c 5c 5c 60 5c 5c 29 5c 6e 5c 5c 2a 5b 5b 3a 73 70 61 | g-at."\\(?:$\\|\\`\\)\n\\*[[:spa |
| a5f00 | 63 65 3a 5d 5d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 6c 6c 65 74 20 70 | ce:]]")))............;;.Bullet.p |
| a5f20 | 6f 69 6e 74 2c 20 72 65 70 6c 61 63 65 20 77 69 74 68 20 68 79 70 68 65 6e 0a 20 20 20 20 20 20 | oint,.replace.with.hyphen....... |
| a5f40 | 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2d | .....(delete-char.-1).(insert."- |
| a5f60 | 22 29 29 29 29 29 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28 | ")))))).....(buffer-string)))..( |
| a5f80 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b | defun.gptel--replace-source-mark |
| a5fa0 | 65 72 20 28 6e 75 6d 2d 74 69 63 6b 73 20 26 6f 70 74 69 6f 6e 61 6c 20 65 6e 64 29 0a 20 20 22 | er.(num-ticks.&optional.end)..." |
| a5fc0 | 52 65 70 6c 61 63 65 20 6d 61 72 6b 64 6f 77 6e 20 73 74 79 6c 65 20 62 61 63 6b 74 69 63 6b 73 | Replace.markdown.style.backticks |
| a5fe0 | 20 77 69 74 68 20 4f 72 67 20 65 71 75 69 76 61 6c 65 6e 74 73 2e 0a 0a 4e 55 4d 2d 54 49 43 4b | .with.Org.equivalents...NUM-TICK |
| a6000 | 53 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 61 63 6b 74 69 63 6b 73 20 62 65 69 | S.is.the.number.of.backticks.bei |
| a6020 | 6e 67 20 72 65 70 6c 61 63 65 64 2e 20 20 49 66 20 45 4e 44 20 69 73 0a 74 72 75 65 20 74 68 65 | ng.replaced...If.END.is.true.the |
| a6040 | 73 65 20 61 72 65 20 5c 22 65 6e 64 69 6e 67 5c 22 20 62 61 63 6b 74 69 63 6b 73 2e 0a 0a 54 68 | se.are.\"ending\".backticks...Th |
| a6060 | 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 68 65 20 6d 61 | is.is.intended.for.use.in.the.ma |
| a6080 | 72 6b 64 6f 77 6e 20 74 6f 20 6f 72 67 20 73 74 72 65 61 6d 20 63 6f 6e 76 65 72 74 65 72 2e 22 | rkdown.to.org.stream.converter." |
| a60a0 | 0a 20 20 28 6c 65 74 20 28 28 66 72 6f 6d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 | ...(let.((from.(match-beginning. |
| a60c0 | 30 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 66 72 6f 6d 20 28 70 6f | 0))).....(delete-region.from.(po |
| a60e0 | 69 6e 74 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3d 20 6e 75 6d 2d 74 69 63 6b 73 20 | int)).....(if.(and.(=.num-ticks. |
| a6100 | 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 | 3)..............(save-excursion. |
| a6120 | 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (beginning-of-line)............. |
| a6140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 | .................(skip-chars-for |
| a6160 | 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ward.".\t")..................... |
| a6180 | 20 20 20 20 20 20 20 20 20 28 65 71 20 28 70 6f 69 6e 74 29 20 66 72 6f 6d 29 29 29 0a 20 20 20 | .........(eq.(point).from))).... |
| a61a0 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 69 66 20 65 6e 64 20 22 23 2b 65 6e 64 5f 73 72 63 22 | .....(insert.(if.end."#+end_src" |
| a61c0 | 20 22 23 2b 62 65 67 69 6e 5f 73 72 63 20 22 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | ."#+begin_src.")).......(insert. |
| a61e0 | 22 3d 22 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 | "="))))..;;;###autoload.(defun.g |
| a6200 | 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f | ptel--stream-convert-markdown->o |
| a6220 | 72 67 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 4d 61 | rg.(start-marker)..."Return.a.Ma |
| a6240 | 72 6b 64 6f 77 6e 20 74 6f 20 4f 72 67 20 63 6f 6e 76 65 72 74 65 72 2e 0a 0a 54 68 69 73 20 66 | rkdown.to.Org.converter...This.f |
| a6260 | 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 4d 61 72 6b 64 | unction.parses.a.stream.of.Markd |
| a6280 | 6f 77 6e 20 74 65 78 74 20 74 6f 20 4f 72 67 0a 63 6f 6e 74 69 6e 75 6f 75 73 6c 79 20 77 68 65 | own.text.to.Org.continuously.whe |
| a62a0 | 6e 20 69 74 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 69 76 65 20 63 | n.it.is.called.with.successive.c |
| a62c0 | 68 75 6e 6b 73 20 6f 66 20 74 68 65 0a 74 65 78 74 20 73 74 72 65 61 6d 2e 0a 0a 53 54 41 52 54 | hunks.of.the.text.stream...START |
| a62e0 | 2d 4d 41 52 4b 45 52 20 69 73 20 75 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 | -MARKER.is.used.to.identify.the. |
| a6300 | 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 70 72 6f 63 65 73 73 20 77 68 65 6e 0a 63 6c 65 61 6e | corresponding.process.when.clean |
| a6320 | 69 6e 67 20 75 70 20 61 66 74 65 72 2e 22 0a 20 20 28 6c 65 74 72 65 63 20 28 28 69 6e 2d 73 72 | ing.up.after."...(letrec.((in-sr |
| a6340 | 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 20 20 20 20 20 20 20 20 20 20 20 3b 65 78 70 6c 69 63 69 74 | c-block.nil)...........;explicit |
| a6360 | 20 6e 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 42 55 47 20 23 31 38 33 0a 20 20 20 20 20 20 20 | .nil.to.address.BUG.#183........ |
| a6380 | 20 20 20 20 28 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 20 20 20 | ....(in-org-src-block.nil)...... |
| a63a0 | 20 20 20 20 20 20 28 74 65 6d 70 2d 62 75 66 20 3b 20 4e 4f 54 45 3a 20 53 77 69 74 63 68 20 74 | ......(temp-buf.;.NOTE:.Switch.t |
| a63c0 | 6f 20 60 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 27 20 61 66 74 65 72 20 77 65 | o.`generate-new-buffer'.after.we |
| a63e0 | 20 64 72 6f 70 20 45 6d 61 63 73 20 32 37 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | .drop.Emacs.27.1.............(gp |
| a6400 | 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d 74 65 6d 70 2a 22 | tel--temp-buffer.".*gptel-temp*" |
| a6420 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 74 20 28 6d 61 6b 65 2d 6d 61 | ))............(start-pt.(make-ma |
| a6440 | 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 69 63 6b 73 2d 74 6f 74 61 6c 20 30 | rker))............(ticks-total.0 |
| a6460 | 29 20 20 20 20 20 20 3b 4d 41 59 42 45 20 73 68 6f 75 6c 64 20 77 65 20 6c 65 74 2d 62 69 6e 64 | )......;MAYBE.should.we.let-bind |
| a6480 | 20 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 68 65 72 65 3f 0a 20 20 20 20 20 20 20 20 | .case-fold-search.here?......... |
| a64a0 | 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | ...(cleanup-fn.............(lamb |
| a64c0 | 64 61 20 28 62 65 67 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | da.(beg._)...............(when.( |
| a64e0 | 61 6e 64 20 28 65 71 75 61 6c 20 62 65 67 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 | and.(equal.beg.(marker-position. |
| a6500 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | start-marker)).................. |
| a6520 | 20 20 20 20 20 20 20 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 6d 61 | ........(eq.(current-buffer).(ma |
| a6540 | 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 | rker-buffer.start-marker)))..... |
| a6560 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 | ............(when.(buffer-live-p |
| a6580 | 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 | .(get-buffer.temp-buf))......... |
| a65a0 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 6e | ..........(set-marker.start-pt.n |
| a65c0 | 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 | il)...................(kill-buff |
| a65e0 | 65 72 20 74 65 6d 70 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 | er.temp-buf)).................(r |
| a6600 | 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d | emove-hook.'gptel-post-response- |
| a6620 | 66 75 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 29 29 29 29 0a 20 20 20 20 28 61 | functions.cleanup-fn))))).....(a |
| a6640 | 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e | dd-hook.'gptel-post-response-fun |
| a6660 | 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | ctions.cleanup-fn).....(lambda.( |
| a6680 | 73 74 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 6f 70 2d 70 29 20 28 74 69 63 6b 73 | str).......(let.((noop-p).(ticks |
| a66a0 | 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | .0)).........(with-current-buffe |
| a66c0 | 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 | r.(get-buffer.temp-buf)......... |
| a66e0 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f | ..(save-excursion.(goto-char.(po |
| a6700 | 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e 73 65 72 74 20 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 | int-max)).(insert.str))......... |
| a6720 | 20 20 28 77 68 65 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 70 | ..(when.(marker-position.start-p |
| a6740 | 74 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 2d 70 74 29 29 0a 20 20 20 20 20 20 20 | t).(goto-char.start-pt))........ |
| a6760 | 20 20 20 28 77 68 65 6e 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 73 65 74 71 20 74 69 63 6b | ...(when.in-src-block.(setq.tick |
| a6780 | 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | s.ticks-total))...........(save- |
| a67a0 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 | excursion.............(while.(re |
| a67c0 | 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 60 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c | -search-forward."`\\|\\*\\{1,2\\ |
| a67e0 | 7d 5c 5c 7c 5f 5c 5c 7c 5e 23 2b 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | }\\|_\\|^#+".nil.t)............. |
| a6800 | 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 0a 20 20 20 20 20 20 | ..(pcase.(match-string.0)....... |
| a6820 | 20 20 20 20 20 20 20 20 20 20 28 22 60 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........("`".................. |
| a6840 | 3b 3b 20 43 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6e 73 65 63 75 74 69 76 65 20 62 | ;;.Count.number.of.consecutive.b |
| a6860 | 61 63 6b 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 | ackticks..................(backw |
| a6880 | 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c | ard-char)..................(whil |
| a68a0 | 65 20 28 61 6e 64 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 28 65 71 20 28 63 68 61 72 2d 61 66 | e.(and.(char-after).(eq.(char-af |
| a68c0 | 74 65 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | ter).?`))....................(fo |
| a68e0 | 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | rward-char)....................( |
| a6900 | 69 66 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 63 6c 2d 64 65 63 66 20 74 69 63 6b 73 29 20 | if.in-src-block.(cl-decf.ticks). |
| a6920 | 28 63 6c 2d 69 6e 63 66 20 74 69 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cl-incf.ticks)))............... |
| a6940 | 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 76 65 72 62 61 74 69 6d 20 73 74 61 74 65 20 6f 66 20 | ...;;.Set.the.verbatim.state.of. |
| a6960 | 74 68 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | the.parser..................(if. |
| a6980 | 28 61 6e 64 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (and.(eobp)..................... |
| a69a0 | 20 20 20 20 20 20 3b 3b 20 53 70 65 63 69 61 6c 20 63 61 73 65 20 68 65 75 72 69 73 74 69 63 3a | ......;;.Special.case.heuristic: |
| a69c0 | 20 49 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 65 6e 64 73 20 77 69 74 68 0a 20 20 20 20 20 | .If.the.response.ends.with...... |
| a69e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 5e 60 60 60 20 77 65 20 | .....................;;.^```.we. |
| a6a00 | 64 6f 6e 27 74 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 65 20 69 6e 70 75 74 2e 0a 20 20 20 20 20 | don't.wait.for.more.input....... |
| a6a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 | .....................;;.FIXME:.T |
| a6a40 | 68 69 73 20 63 61 6e 20 68 61 76 65 20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 73 2e 0a 20 20 | his.can.have.false.positives.... |
| a6a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 61 | ........................(not.(sa |
| a6a80 | 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 | ve-excursion.(beginning-of-line) |
| a6aa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 60 60 | ................(looking-at."^`` |
| a6ae0 | 60 24 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | `$"))))......................;;. |
| a6b00 | 45 6e 64 20 6f 66 20 69 6e 70 75 74 20 3d 3e 20 74 68 65 72 65 20 63 6f 75 6c 64 20 62 65 20 6d | End.of.input.=>.there.could.be.m |
| a6b20 | 6f 72 65 20 62 61 63 6b 74 69 63 6b 73 20 63 6f 6d 69 6e 67 2c 0a 20 20 20 20 20 20 20 20 20 20 | ore.backticks.coming,........... |
| a6b40 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 | ...........;;.so.we.wait.for.mor |
| a6b60 | 65 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | e.input......................(pr |
| a6b80 | 6f 67 6e 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 | ogn.(setq.noop-p.t).(set-marker. |
| a6ba0 | 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 | start-pt.(match-beginning.0))).. |
| a6bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 72 65 61 63 68 65 64 20 | ..................;;.We.reached. |
| a6be0 | 61 20 63 68 61 72 61 63 74 65 72 20 6f 74 68 65 72 20 74 68 61 6e 20 61 20 62 61 63 6b 74 69 63 | a.character.other.than.a.backtic |
| a6c00 | 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | k....................(cond...... |
| a6c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 69 63 6b 73 20 62 61 6c 61 6e 63 65 64 | ...............;;.Ticks.balanced |
| a6c40 | 2c 20 65 6e 64 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,.end.src.block................. |
| a6c60 | 20 20 20 20 28 28 3d 20 74 69 63 6b 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....((=.ticks.0)................ |
| a6c80 | 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 | ......(progn.(setq.in-src-block. |
| a6ca0 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nil)............................ |
| a6cc0 | 20 28 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 74 | .(gptel--replace-source-marker.t |
| a6ce0 | 69 63 6b 73 2d 74 6f 74 61 6c 20 27 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | icks-total.'end))).............. |
| a6d00 | 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 63 | .......;;.Positive.number.of.tic |
| a6d20 | 6b 73 2c 20 73 74 61 72 74 20 61 6e 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 | ks,.start.an.src.block.......... |
| a6d40 | 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 20 74 69 63 6b 73 20 30 29 20 28 6e 6f | ...........((and.(>.ticks.0).(no |
| a6d60 | 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.in-src-block))................ |
| a6d80 | 20 20 20 20 20 20 28 73 65 74 71 20 74 69 63 6b 73 2d 74 6f 74 61 6c 20 74 69 63 6b 73 0a 20 20 | ......(setq.ticks-total.ticks... |
| a6da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 2d 73 72 63 2d | .........................in-src- |
| a6dc0 | 62 6c 6f 63 6b 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | block.t)......................(g |
| a6de0 | 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 74 69 63 6b | ptel--replace-source-marker.tick |
| a6e00 | 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | s-total)).....................;; |
| a6e20 | 20 4e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 63 6b 73 20 6f 72 20 69 6e 20 | .Negative.number.of.ticks.or.in. |
| a6e40 | 61 20 73 72 63 20 62 6c 6f 63 6b 20 61 6c 72 65 61 64 79 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | a.src.block.already,............ |
| a6e60 | 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 | .........;;.reset.ticks......... |
| a6e80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 74 69 63 6b 73 20 74 69 63 6b 73 | ............(t.(setq.ticks.ticks |
| a6ea0 | 2d 74 6f 74 61 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 | -total))))).................;;.H |
| a6ec0 | 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 20 61 6e 64 20 6d 69 73 67 75 69 64 65 64 20 23 2b 62 | andle.headings.and.misguided.#+b |
| a6ee0 | 65 67 69 6e 5f 73 72 63 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | egin_src.text.................(( |
| a6f00 | 61 6e 64 20 28 67 75 61 72 64 20 28 61 6e 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 | and.(guard.(and.(eq.(char-before |
| a6f20 | 29 20 3f 23 29 20 28 6f 72 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 20 69 6e 2d | ).?#).(or.(not.in-src-block).in- |
| a6f40 | 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | org-src-block)))................ |
| a6f60 | 20 20 20 20 20 20 20 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......heading)................. |
| a6f80 | 20 28 69 66 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 | .(if.in-org-src-block........... |
| a6fa0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 69 6e 73 69 64 65 20 61 | ...........;;.If.we.are.inside.a |
| a6fc0 | 6e 20 4f 72 67 2d 73 74 79 6c 65 20 73 72 63 20 62 6c 6f 63 6b 2c 20 6c 6f 6f 6b 20 66 6f 72 20 | n.Org-style.src.block,.look.for. |
| a6fe0 | 23 2b 65 6e 64 5f 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | #+end_src......................( |
| a7000 | 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 28 | cond.......................((<.( |
| a7020 | 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 29 29 20 38 29 20 3b 6e 6f 74 20 65 | -.(point-max).(point)).8).;not.e |
| a7040 | 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 63 6c 6f 73 65 20 4f 72 67 20 73 | nough.information.to.close.Org.s |
| a7060 | 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rc.block........................ |
| a7080 | 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 | (setq.noop-p.t).(set-marker.star |
| a70a0 | 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 | t-pt.(match-beginning.0)))...... |
| a70c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c | .................((looking-at."\ |
| a70e0 | 5c 2b 65 6e 64 5f 73 72 63 22 29 20 3b 43 6c 6f 73 65 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b | \+end_src").;Close.Org.src.block |
| a7100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e | ........................(setq.in |
| a7120 | 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 20 | -src-block.nil.in-org-src-block. |
| a7140 | 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 74 68 | nil)))....................;;.Oth |
| a7160 | 65 72 77 69 73 65 20 63 68 65 63 6b 20 66 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 68 65 61 64 69 6e | erwise.check.for.Markdown.headin |
| a7180 | 67 73 2c 20 6f 72 20 66 6f 72 20 23 2b 62 65 67 69 6e 5f 73 72 63 0a 20 20 20 20 20 20 20 20 20 | gs,.or.for.#+begin_src.......... |
| a71a0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(cond................. |
| a71c0 | 20 20 20 20 28 28 65 6f 62 70 29 20 20 20 20 20 20 20 3b 20 4e 6f 74 20 65 6e 6f 75 67 68 20 69 | ....((eobp).......;.Not.enough.i |
| a71e0 | 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 68 65 61 64 69 6e 67 20 79 65 74 | nformation.about.the.heading.yet |
| a7200 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 6f 70 | ......................(setq.noop |
| a7220 | 2d 70 20 74 29 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 | -p.t).(set-marker.start-pt.(matc |
| a7240 | 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h-beginning.0)))................ |
| a7260 | 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 | .....((looking-at."[[:space:]]") |
| a7280 | 20 3b 20 43 6f 6e 76 65 72 74 20 6d 61 72 6b 64 6f 77 6e 20 68 65 61 64 69 6e 67 20 74 6f 20 4f | .;.Convert.markdown.heading.to.O |
| a72a0 | 72 67 20 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rg.heading...................... |
| a72c0 | 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 | (delete-region.(line-beginning-p |
| a72e0 | 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | osition).(point))............... |
| a7300 | 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6c 65 6e | .......(insert.(make-string.(len |
| a7320 | 67 74 68 20 68 65 61 64 69 6e 67 29 20 3f 2a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gth.heading).?*))).............. |
| a7340 | 20 20 20 20 20 20 20 28 28 3c 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 | .......((<.(-.(point-max).(point |
| a7360 | 29 29 20 31 31 29 20 3b 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 | )).11).;Not.enough.information.t |
| a7380 | 6f 20 63 68 65 63 6b 20 69 66 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 | o.check.if.Org.src.block........ |
| a73a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 | ..............(setq.noop-p.t).(s |
| a73c0 | 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e | et-marker.start-pt.(match-beginn |
| a73e0 | 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c | ing.0))).....................((l |
| a7400 | 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b 62 65 67 69 6e 5f 73 72 63 20 22 29 20 3b 4f 76 65 72 | ooking-at."\\+begin_src.").;Over |
| a7420 | 65 61 67 65 72 20 4c 4c 4d 20 73 77 69 74 63 68 65 64 20 74 6f 20 75 73 69 6e 67 20 4f 72 67 20 | eager.LLM.switched.to.using.Org. |
| a7440 | 73 72 63 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | src.blocks...................... |
| a7460 | 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 20 69 6e 2d 6f 72 67 2d 73 72 63 2d | (setq.in-src-block.t.in-org-src- |
| a7480 | 62 6c 6f 63 6b 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | block.t))))).................;;. |
| a74a0 | 48 61 6e 64 6c 65 20 6f 74 68 65 72 20 63 68 61 72 73 3a 20 65 6d 70 68 61 73 69 73 2c 20 62 6f | Handle.other.chars:.emphasis,.bo |
| a74c0 | 6c 64 20 61 6e 64 20 62 75 6c 6c 65 74 20 69 74 65 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ld.and.bullet.items............. |
| a74e0 | 20 20 20 20 28 28 61 6e 64 20 22 2a 2a 22 20 28 67 75 61 72 64 20 28 6e 6f 74 20 69 6e 2d 73 72 | ....((and."**".(guard.(not.in-sr |
| a7500 | 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | c-block)))..................(con |
| a7520 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 20 4e 6f 74 20 | d...................;;.TODO.Not. |
| a7540 | 73 75 72 65 20 77 68 79 20 74 68 69 73 20 62 72 61 6e 63 68 20 77 61 73 20 6e 65 65 64 65 64 0a | sure.why.this.branch.was.needed. |
| a7560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 | ..................;;.((looking-a |
| a7580 | 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 22 29 20 | t."\\*\\(?:[[:word:]]\\|\s\\)"). |
| a75a0 | 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (delete-char.1))................ |
| a75c0 | 20 20 20 20 3b 3b 20 4c 6f 6f 6b 69 6e 67 20 62 61 63 6b 20 61 74 20 22 77 2a 2a 22 20 6f 72 20 | ....;;.Looking.back.at."w**".or. |
| a75e0 | 22 20 2a 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e | ".**"...................((lookin |
| a7600 | 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5c | g-back."\\(?:[[:word:][:punct:]\ |
| a7620 | 6e 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 | n]\\|\s\\)\\*\\{2\\}"........... |
| a7640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 | .......................(max.(-.( |
| a7660 | 70 6f 69 6e 74 29 20 33 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 | point).3).(point-min)))......... |
| a7680 | 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 29 29 29 0a 20 | ...........(delete-char.-1)))).. |
| a76a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 2a 22 20 28 67 75 61 72 64 20 | ...............((and."*".(guard. |
| a76c0 | 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (not.in-src-block)))............ |
| a76e0 | 20 20 20 20 20 20 28 69 66 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(if.(eobp)................ |
| a7700 | 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 | ......;;.Not.enough.information. |
| a7720 | 61 62 6f 75 74 20 74 68 65 20 22 2a 22 20 79 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | about.the."*".yet............... |
| a7740 | 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 | .......(progn.(setq.noop-p.t).(s |
| a7760 | 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e | et-marker.start-pt.(match-beginn |
| a7780 | 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 22 | ing.0)))....................;;." |
| a77a0 | 2a 22 20 69 73 20 65 69 74 68 65 72 20 65 6d 70 68 61 73 69 73 20 6f 72 20 61 20 62 75 6c 6c 65 | *".is.either.emphasis.or.a.bulle |
| a77c0 | 74 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 | t.point....................(save |
| a77e0 | 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -match-data..................... |
| a7800 | 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(save-excursion................ |
| a7820 | 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 72 64 | ........(ignore-errors.(backward |
| a7840 | 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -char.2))....................... |
| a7860 | 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(cond.........................( |
| a7880 | 28 61 6e 64 20 20 20 20 20 3b 20 41 74 20 62 6f 62 2c 20 75 6e 64 65 72 73 63 6f 72 65 2f 61 73 | (and.....;.At.bob,.underscore/as |
| a78a0 | 74 65 72 69 73 6b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 77 6f 72 64 0a 20 20 20 20 20 20 20 20 | terisk.followed.by.word......... |
| a78c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 62 6f 62 70 | ..................(or.(and.(bobp |
| a78e0 | 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c 5c | ).(looking-at."\\(?:_\\|\\*\\)\\ |
| a7900 | 28 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 29 | ([^[:space:][:punct:]]\\|$\\)")) |
| a7920 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| a7940 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 77 6f 72 64 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 75 6e | looking-at.;.word.followed.by.un |
| a7960 | 64 65 72 73 63 6f 72 65 2f 61 73 74 65 72 69 73 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | derscore/asterisk............... |
| a7980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5c 6e 5d | ................."[^[:space:]\n] |
| a79a0 | 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5b 3a | \\(?:_\\|\\*\\)\\(?:[[:space:][: |
| a79c0 | 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | punct:]]\\|$\\)")............... |
| a79e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 75 6e | ................(looking-at.;.un |
| a7a00 | 64 65 72 73 63 6f 72 65 2f 61 73 74 65 72 69 73 6b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 77 6f | derscore/asterisk.followed.by.wo |
| a7a20 | 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rd.............................. |
| a7a40 | 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c 5c | .."\\(?:[[:space:]]\\)\\(?:_\\|\ |
| a7a60 | 5c 2a 5c 5c 29 5c 5c 28 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 29 0a 20 | \*\\)\\([^[:space:]]\\|$\\)")).. |
| a7a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6c | .........................(not.(l |
| a7aa0 | 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 28 3f 3a 5f 5c 5c 7c 5c | ooking-at."[[:punct:]]\\(?:_\\|\ |
| a7ac0 | 5c 2a 5c 5c 29 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | \*\\)[[:punct:]]")))............ |
| a7ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6d 70 68 61 73 69 73 2c 20 72 65 70 6c 61 | ..............;;.Emphasis,.repla |
| a7b00 | 63 65 20 77 69 74 68 20 73 6c 61 73 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce.with.slashes................. |
| a7b20 | 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 28 69 66 20 28 62 6f 62 70 | .........(forward-char.(if.(bobp |
| a7b40 | 29 20 31 20 32 29 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 72 74 | ).1.2)).(delete-char.-1).(insert |
| a7b60 | 20 22 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ."/")).........................( |
| a7b80 | 28 6f 72 20 28 61 6e 64 20 28 62 6f 62 70 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a | (or.(and.(bobp).(looking-at."\\* |
| a7ba0 | 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | [[:space:]]")).................. |
| a7bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 24 5c | ............(looking-at."\\(?:$\ |
| a7be0 | 5c 7c 5c 5c 60 5c 5c 29 5c 6e 5c 5c 2a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 29 0a 20 20 20 20 | \|\\`\\)\n\\*[[:space:]]"))..... |
| a7c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 75 6c 6c 65 74 20 70 | .....................;;.Bullet.p |
| a7c20 | 6f 69 6e 74 2c 20 72 65 70 6c 61 63 65 20 77 69 74 68 20 68 79 70 68 65 6e 0a 20 20 20 20 20 20 | oint,.replace.with.hyphen....... |
| a7c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 | ...................(forward-char |
| a7c60 | 20 28 69 66 20 28 62 6f 62 70 29 20 31 20 32 29 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d | .(if.(bobp).1.2)).(delete-char.- |
| a7c80 | 31 29 20 28 69 6e 73 65 72 74 20 22 2d 22 29 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | 1).(insert."-"))))))))))........ |
| a7ca0 | 20 20 20 28 69 66 20 6e 6f 6f 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 | ...(if.noop-p...............(buf |
| a7cc0 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 74 29 0a | fer-substring.(point).start-pt). |
| a7ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 | ............(prog1.(buffer-subst |
| a7d00 | 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 | ring.(point).(point-max))....... |
| a7d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 | .............(set-marker.start-p |
| a7d40 | 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 | t.(point-max)))))))))..(provide. |
| a7d60 | 27 67 70 74 65 6c 2d 6f 72 67 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 20 65 6e 64 | 'gptel-org).;;;.gptel-org.el.end |
| a7d80 | 73 20 68 65 72 65 0a 0a 3b 3b 20 53 69 6c 65 6e 63 65 20 77 61 72 6e 69 6e 67 73 20 61 62 6f 75 | s.here..;;.Silence.warnings.abou |
| a7da0 | 74 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 2d 70 27 20 61 6e 64 20 60 6f 72 67 2d | t.`org-element-type-p'.and.`org- |
| a7dc0 | 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 27 2c 20 73 65 65 20 23 32 39 34 2e 0a 3b 3b 20 4c 6f | element-parent',.see.#294..;;.Lo |
| a7de0 | 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 | cal.Variables:.;;.byte-compile-w |
| a7e00 | 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 75 6e 72 65 73 6f 6c 76 65 64 29 0a 3b 3b 20 45 6e 64 | arnings:.(not.unresolved).;;.End |
| a7e20 | 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | :............................... |
| a7e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a7fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a80a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a80c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a80e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a81a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a81c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a81e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a82a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a82c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a82e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a83a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a83c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a83e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a84a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a84c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a84e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a85a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a85c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a85e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a86a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a86c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a86e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a87a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a87c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a87e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a88a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a88c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a88e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a89a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a89c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a89e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a90a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a90c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a90e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a92a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a92c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a92e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a94a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a94c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a94e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a96a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a96c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a96e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a97a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a97c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a97e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a98a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a98c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a98e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a99a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a99c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a99e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |