| ofs | hex dump | ascii |
|---|
| 0000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/.................... |
| 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 33 30 32 00 20 35 00 00 00 | 0000000.00000000000.011302..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 2f 52 45 41 44 4d 45 2e 6f 72 67 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/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 31 30 33 30 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 34 37 00 20 30 00 00 00 | 0210303.00000000000.012747..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 20 5b 5b 68 74 74 70 73 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c | gptel.svg]].[[https://stable.mel |
| 04a0 | 70 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 73 74 61 | pa.org/#/gptel][file:https://sta |
| 04c0 | 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 67 70 74 65 6c 2d 62 61 64 | ble.melpa.org/packages/gptel-bad |
| 04e0 | 67 65 2e 73 76 67 5d 5d 20 5b 5b 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 67 | ge.svg]].[[https://melpa.org/#/g |
| 0500 | 70 74 65 6c 5d 5b 66 69 6c 65 3a 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 | ptel][file:https://melpa.org/pac |
| 0520 | 6b 61 67 65 73 2f 67 70 74 65 6c 2d 62 61 64 67 65 2e 73 76 67 5d 5d 0a 0a 67 70 74 65 6c 20 69 | kages/gptel-badge.svg]]..gptel.i |
| 0540 | 73 20 61 20 73 69 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 67 65 20 4d 6f 64 65 6c 20 | s.a.simple.Large.Language.Model. |
| 0560 | 63 68 61 74 20 63 6c 69 65 6e 74 20 66 6f 72 20 45 6d 61 63 73 2c 20 77 69 74 68 20 73 75 70 70 | chat.client.for.Emacs,.with.supp |
| 0580 | 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 6d 6f 64 65 6c 73 20 61 6e 64 20 62 61 63 6b | ort.for.multiple.models.and.back |
| 05a0 | 65 6e 64 73 2e 20 20 49 74 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 73 70 69 72 69 74 20 6f 66 | ends...It.works.in.the.spirit.of |
| 05c0 | 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 69 6d 65 20 61 6e | .Emacs,.available.at.any.time.an |
| 05e0 | 64 20 75 6e 69 66 6f 72 6d 6c 79 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 2e 0a 0a 23 2b 68 74 | d.uniformly.in.any.buffer...#+ht |
| 0600 | 6d 6c 3a 20 3c 64 69 76 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 7c 20 4c 4c 4d 20 42 | ml:.<div.align="center">.|.LLM.B |
| 0620 | 61 63 6b 65 6e 64 20 20 20 20 20 20 20 20 7c 20 53 75 70 70 6f 72 74 73 20 7c 20 52 65 71 75 69 | ackend........|.Supports.|.Requi |
| 0640 | 72 65 73 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 | res...................|.|------- |
| 0660 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d | -------------+----------+------- |
| 0680 | 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 43 68 61 74 47 50 54 | ---------------------|.|.ChatGPT |
| 06a0 | 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 74 74 | ............|............|.[[htt |
| 06c0 | 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 61 63 63 6f 75 6e 74 | ps://platform.openai.com/account |
| 06e0 | 2f 61 70 69 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 | /api-keys][API.key]]............ |
| 0700 | 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 75 64 65 29 20 7c | ........|.|.Anthropic.(Claude).| |
| 0720 | 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 61 6e 74 68 | ............|.[[https://www.anth |
| 0740 | 72 6f 70 69 63 2e 63 6f 6d 2f 61 70 69 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 | ropic.com/api][API.key]]........ |
| 0760 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 47 65 6d 69 6e 69 20 20 20 20 20 20 20 20 20 20 | ............|.|.Gemini.......... |
| 0780 | 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 6d 61 6b 65 | ...|............|.[[https://make |
| 07a0 | 72 73 75 69 74 65 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 61 70 70 2f 61 70 69 6b 65 79 5d 5b 41 50 | rsuite.google.com/app/apikey][AP |
| 07c0 | 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 4f | I.key]]....................|.|.O |
| 07e0 | 6c 6c 61 6d 61 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 | llama.............|............| |
| 0800 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 6f 6c 6c 61 6d 61 2e 61 69 2f 5d 5b 4f 6c 6c 61 6d 61 20 72 75 | .[[https://ollama.ai/][Ollama.ru |
| 0820 | 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 20 20 20 20 7c 0a 7c 20 4c 6c 61 6d 61 2e 63 70 | nning.locally]].....|.|.Llama.cp |
| 0840 | 70 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 | p..........|............|.[[http |
| 0860 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 67 67 65 72 67 61 6e 6f 76 2f 6c 6c 61 6d 61 2e 63 | s://github.com/ggerganov/llama.c |
| 0880 | 70 70 2f 74 72 65 65 2f 6d 61 73 74 65 72 2f 65 78 61 6d 70 6c 65 73 2f 73 65 72 76 65 72 23 71 | pp/tree/master/examples/server#q |
| 08a0 | 75 69 63 6b 2d 73 74 61 72 74 5d 5b 4c 6c 61 6d 61 2e 63 70 70 20 72 75 6e 6e 69 6e 67 20 6c 6f | uick-start][Llama.cpp.running.lo |
| 08c0 | 63 61 6c 6c 79 5d 5d 20 20 7c 0a 7c 20 4c 6c 61 6d 61 66 69 6c 65 20 20 20 20 20 20 20 20 20 20 | cally]]..|.|.Llamafile.......... |
| 08e0 | 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 62 2e | |............|.[[https://github. |
| 0900 | 63 6f 6d 2f 4d 6f 7a 69 6c 6c 61 2d 4f 63 68 6f 2f 6c 6c 61 6d 61 66 69 6c 65 23 71 75 69 63 6b | com/Mozilla-Ocho/llamafile#quick |
| 0920 | 73 74 61 72 74 5d 5b 4c 6f 63 61 6c 20 4c 6c 61 6d 61 66 69 6c 65 20 73 65 72 76 65 72 5d 5d 20 | start][Local.Llamafile.server]]. |
| 0940 | 20 20 20 20 7c 0a 7c 20 47 50 54 34 41 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 | ....|.|.GPT4All............|.... |
| 0960 | 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 70 74 34 61 6c 6c 2e 69 6f 2f 69 | ........|.[[https://gpt4all.io/i |
| 0980 | 6e 64 65 78 2e 68 74 6d 6c 5d 5b 47 50 54 34 41 6c 6c 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c | ndex.html][GPT4All.running.local |
| 09a0 | 6c 79 5d 5d 20 20 20 20 7c 0a 7c 20 4b 61 67 69 20 46 61 73 74 47 50 54 20 20 20 20 20 20 20 7c | ly]]....|.|.Kagi.FastGPT.......| |
| 09c0 | 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 6d | ............|.[[https://kagi.com |
| 09e0 | 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 20 | /settings?p=api][API.key]]...... |
| 0a00 | 20 20 20 20 20 20 20 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 | ..............|.|.Kagi.Summarize |
| 0a20 | 72 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 6b 61 | r....|............|.[[https://ka |
| 0a40 | 67 69 2e 63 6f 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 | gi.com/settings?p=api][API.key]] |
| 0a60 | 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 7a 75 72 65 20 20 20 | ....................|.|.Azure... |
| 0a80 | 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 44 65 70 6c 6f 79 | ...........|............|.Deploy |
| 0aa0 | 6d 65 6e 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 | ment.and.API.key.....|.|.Groq... |
| 0ac0 | 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 74 74 | ............|............|.[[htt |
| 0ae0 | 70 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 | ps://console.groq.com/keys][API. |
| 0b00 | 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 50 65 72 | key]]....................|.|.Per |
| 0b20 | 70 6c 65 78 69 74 79 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 | plexity.........|............|.[ |
| 0b40 | 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 69 2f 64 6f 63 73 | [https://docs.perplexity.ai/docs |
| 0b60 | 2f 67 65 74 74 69 6e 67 2d 73 74 61 72 74 65 64 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 | /getting-started][API.key]]..... |
| 0b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4f 70 65 6e 52 6f 75 74 65 72 20 20 20 | ...............|.|.OpenRouter... |
| 0ba0 | 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 6f | ......|............|.[[https://o |
| 0bc0 | 70 65 6e 72 6f 75 74 65 72 2e 61 69 2f 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 | penrouter.ai/keys][API.key]].... |
| 0be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 74 6f 67 65 74 68 65 72 2e 61 69 20 | ................|.|.together.ai. |
| 0c00 | 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:// |
| 0c20 | 61 70 69 2e 74 6f 67 65 74 68 65 72 2e 78 79 7a 2f 73 65 74 74 69 6e 67 73 2f 61 70 69 2d 6b 65 | api.together.xyz/settings/api-ke |
| 0c40 | 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 20 20 20 | ys][API.key]]................... |
| 0c60 | 20 7c 0a 7c 20 41 6e 79 73 63 61 6c 65 20 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 | .|.|.Anyscale...........|....... |
| 0c80 | 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 65 6e 64 70 6f 69 6e 74 73 2e | .....|.[[https://docs.endpoints. |
| 0ca0 | 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 2f 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 | anyscale.com/][API.key]]........ |
| 0cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 50 72 69 76 61 74 65 47 50 54 20 20 20 20 20 20 | ............|.|.PrivateGPT...... |
| 0ce0 | 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 67 69 74 68 | ...|............|.[[https://gith |
| 0d00 | 75 62 2e 63 6f 6d 2f 7a 79 6c 6f 6e 2d 61 69 2f 70 72 69 76 61 74 65 2d 67 70 74 23 2d 64 6f 63 | ub.com/zylon-ai/private-gpt#-doc |
| 0d20 | 75 6d 65 6e 74 61 74 69 6f 6e 5d 5b 50 72 69 76 61 74 65 47 50 54 20 72 75 6e 6e 69 6e 67 20 6c | umentation][PrivateGPT.running.l |
| 0d40 | 6f 63 61 6c 6c 79 5d 5d 20 7c 0a 7c 20 44 65 65 70 53 65 65 6b 20 20 20 20 20 20 20 20 20 20 20 | ocally]].|.|.DeepSeek........... |
| 0d60 | 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 70 6c 61 74 66 6f 72 | |............|.[[https://platfor |
| 0d80 | 6d 2e 64 65 65 70 73 65 65 6b 2e 63 6f 6d 2f 61 70 69 5f 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 | m.deepseek.com/api_keys][API.key |
| 0da0 | 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 43 65 72 65 62 72 | ]]....................|.|.Cerebr |
| 0dc0 | 61 73 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 | as...........|............|.[[ht |
| 0de0 | 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 65 | tps://cloud.cerebras.ai/][API.ke |
| 0e00 | 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 75 | y]]....................|.|.Githu |
| 0e20 | 62 20 4d 6f 64 65 6c 73 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 | b.Models......|............|.[[h |
| 0e40 | 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 6b 65 6e | ttps://github.com/settings/token |
| 0e60 | 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 20 20 20 | s][Token]]...................... |
| 0e80 | 7c 0a 7c 20 4e 6f 76 69 74 61 20 41 49 20 20 20 20 20 20 20 20 20 20 7c 20 e2 9c 93 20 20 20 20 | |.|.Novita.AI..........|........ |
| 0ea0 | 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 6f 64 65 6c 2d | ....|.[[https://novita.ai/model- |
| 0ec0 | 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 72 63 65 3d 67 | api/product/llm-api?utm_source=g |
| 0ee0 | 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 75 62 5f 72 65 | ithub_gptel&utm_medium=github_re |
| 0f00 | 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 65 6e 5d 5d 20 | adme&utm_campaign=link][Token]]. |
| 0f20 | 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 49 20 20 20 20 | .....................|.|.xAI.... |
| 0f40 | 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 74 74 | ............|............|.[[htt |
| 0f60 | 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 72 63 65 3d 67 69 74 | ps://console.x.ai?utm_source=git |
| 0f80 | 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 75 62 5f 72 65 61 64 | hub_gptel&utm_medium=github_read |
| 0fa0 | 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 20 6b 65 79 5d 5d 20 | me&utm_campaign=link][API.key]]. |
| 0fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 | ...................|.#+html:.</d |
| 0fe0 | 69 76 3e 0a 0a 2a 47 65 6e 65 72 61 6c 20 75 73 61 67 65 2a 3a 20 28 5b 5b 68 74 74 70 73 3a 2f | iv>..*General.usage*:.([[https:/ |
| 1000 | 2f 77 77 77 2e 79 6f 75 74 75 62 65 2e 63 6f 6d 2f 77 61 74 63 68 3f 76 3d 62 73 52 6e 68 5f 62 | /www.youtube.com/watch?v=bsRnh_b |
| 1020 | 72 67 67 4d 5d 5b 59 6f 75 54 75 62 65 20 44 65 6d 6f 5d 5d 29 0a 0a 68 74 74 70 73 3a 2f 2f 75 | rggM][YouTube.Demo]])..https://u |
| 1040 | 73 65 72 2d 69 6d 61 67 65 73 2e 67 69 74 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f 6d | ser-images.githubusercontent.com |
| 1060 | 2f 38 36 30 37 35 33 32 2f 32 33 30 35 31 36 38 31 32 2d 38 36 35 31 30 61 30 39 2d 61 32 66 62 | /8607532/230516812-86510a09-a2fb |
| 1080 | 2d 34 63 62 64 2d 62 35 33 66 2d 63 63 32 35 32 32 64 30 35 61 31 33 2e 6d 70 34 0a 0a 68 74 74 | -4cbd-b53f-cc2522d05a13.mp4..htt |
| 10a0 | 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 65 72 63 6f 6e 74 65 | ps://user-images.githubuserconte |
| 10c0 | 6e 74 2e 63 6f 6d 2f 38 36 30 37 35 33 32 2f 32 33 30 35 31 36 38 31 36 2d 61 65 34 61 36 31 33 | nt.com/8607532/230516816-ae4a613 |
| 10e0 | 61 2d 34 64 30 31 2d 34 30 37 33 2d 61 64 33 66 2d 62 36 36 66 61 37 33 63 36 65 34 35 2e 6d 70 | a-4d01-4073-ad3f-b66fa73c6e45.mp |
| 1100 | 34 0a 0a 2a 49 6e 2d 70 6c 61 63 65 20 75 73 61 67 65 2a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 | 4..*In-place.usage*..#+html:.<p. |
| 1120 | 61 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 | align="center">.https://github.c |
| 1140 | 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 65 63 31 31 | om/user-attachments/assets/cec11 |
| 1160 | 61 65 63 2d 35 32 66 36 2d 34 31 32 65 2d 39 65 37 61 2d 39 33 35 38 65 38 62 39 62 31 62 66 0a | aec-52f6-412e-9e7a-9358e8b9b1bf. |
| 1180 | 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 2a 54 6f 6f 6c 20 75 73 65 2a 20 28 65 78 70 65 72 69 | #+html:.</p>..*Tool.use*.(experi |
| 11a0 | 6d 65 6e 74 61 6c 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 | mental)..#+html:.<p.align="cente |
| 11c0 | 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 61 | r">.https://github.com/user-atta |
| 11e0 | 63 68 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 | chments/assets/5f993659-4cfd-49f |
| 1200 | 61 2d 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 | a-b5cd-19c55766b9b2.#+html:.</p> |
| 1220 | 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 |
| 1240 | 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 |
| 1260 | 2f 61 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 | /assets/8f57c20b-e1b0-4d86-b972- |
| 1280 | 66 34 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 | f46fb90ae1e7.#+html:.</p>..See.a |
| 12a0 | 6c 73 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 | lso.[[https://youtu.be/g1VMGhC5g |
| 12c0 | 52 55 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 | RU][this.youtube.demo.(2.minutes |
| 12e0 | 29 5d 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 | )]].by.Armin.Darvish...#.*Media. |
| 1300 | 73 75 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 | support*..#.#+html:.<p.align="ce |
| 1320 | 6e 74 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 | nter">.#.https://github.com/user |
| 1340 | 2d 61 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 | -attachments/assets/1fd947e1-226 |
| 1360 | 62 2d 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 | b-4be2-bc68-7b22b2e3215f.#.#+htm |
| 1380 | 6c 3a 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 | l:.</p>..#.*Multi-LLM.support.de |
| 13a0 | 6d 6f 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 | mo*:..#.https://github-productio |
| 13c0 | 6e 2d 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 | n-user-asset-6210df.s3.amazonaws |
| 13e0 | 2e 63 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 | .com/8607532/278854024-ae1336c4- |
| 1400 | 35 62 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 | 5b87-41f2-83e9-e415349d6a43.mp4. |
| 1420 | 0a 2d 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 | .------..-.gptel.is.async.and.fa |
| 1440 | 73 74 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 | st,.streams.responses..-.Interac |
| 1460 | 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 20 45 6d 61 | t.with.LLMs.from.anywhere.in.Ema |
| 1480 | 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 75 66 66 65 | cs.(any.buffer,.shell,.minibuffe |
| 14a0 | 72 2c 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 | r,.wherever)..-.LLM.responses.ar |
| 14c0 | 65 20 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 | e.in.Markdown.or.Org.markup..-.S |
| 14e0 | 75 70 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 | upports.multiple.independent.con |
| 1500 | 76 65 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 | versations.and.one-off.ad.hoc.in |
| 1520 | 74 65 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 | teractions..-.Supports.tool-use. |
| 1540 | 74 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 | to.equip.LLMs.with.agentic.capab |
| 1560 | 69 6c 69 74 69 65 73 20 28 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 66 65 61 74 75 72 65 29 2e 0a | ilities.(experimental.feature).. |
| 1580 | 2d 20 53 75 70 70 6f 72 74 73 20 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 69 6e 70 75 74 20 28 69 6e | -.Supports.multi-modal.input.(in |
| 15a0 | 63 6c 75 64 65 20 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 29 2e 0a 2d 20 53 61 76 65 | clude.images,.documents)..-.Save |
| 15c0 | 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 2f 4f 72 67 2f 54 | .chats.as.regular.Markdown/Org/T |
| 15e0 | 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 6c 61 74 65 72 2e | ext.files.and.resume.them.later. |
| 1600 | 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 70 74 73 20 6f 72 | .-.Edit.your.previous.prompts.or |
| 1620 | 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 75 69 6e 67 20 61 | .LLM.responses.when.continuing.a |
| 1640 | 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 62 65 20 66 65 64 | .conversation..These.will.be.fed |
| 1660 | 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 6f 72 74 73 20 69 | .back.to.the.model..-.Supports.i |
| 1680 | 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 65 65 20 2f 65 78 | ntrospection,.so.you.can.see./ex |
| 16a0 | 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 20 49 6e 73 70 65 | actly/.what.will.be.sent...Inspe |
| 16c0 | 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 72 65 20 73 65 6e | ct.and.modify.queries.before.sen |
| 16e0 | 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 74 61 67 65 20 72 | ding.them..-.Pause.multi-stage.r |
| 1700 | 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 20 73 74 61 67 65 | equests.at.an.intermediate.stage |
| 1720 | 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 44 6f 6e 27 74 20 | .and.resume.them.later..-.Don't. |
| 1740 | 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 20 69 74 20 74 6f | like.gptel's.workflow?.Use.it.to |
| 1760 | 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 75 70 70 6f 72 74 | .create.your.own.for.any.support |
| 1780 | 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 68 74 74 70 73 3a | ed.model/backend.with.a.[[https: |
| 17a0 | 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 77 69 6b 69 | //github.com/karthink/gptel/wiki |
| 17c0 | 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 6d 61 6e 64 73 5d | /Defining-custom-gptel-commands] |
| 17e0 | 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 20 43 75 72 6c 20 | [simple.API]]...gptel.uses.Curl. |
| 1800 | 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 63 6b 20 74 6f 20 | if.available,.but.falls.back.to. |
| 1820 | 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 74 6f 20 77 6f 72 | the.built-in.url-retrieve.to.wor |
| 1840 | 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 6e 63 69 65 73 2e | k.without.external.dependencies. |
| 1860 | 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 23 62 72 65 61 6b | ..**.Contents.:toc:...-.[[#break |
| 1880 | 69 6e 67 2d 63 68 61 6e 67 65 73 5d 5b 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 21 5d 5d | ing-changes][Breaking.changes!]] |
| 18a0 | 0a 20 20 2d 20 5b 5b 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 | ...-.[[#installation][Installati |
| 18c0 | 6f 6e 5d 5d 0a 20 20 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 | on]].......-.[[#straight][Straig |
| 18e0 | 68 74 5d 5d 0a 20 20 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 | ht]].......-.[[#manual][Manual]] |
| 1900 | 0a 20 20 20 20 20 20 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 | .......-.[[#doom-emacs][Doom.Ema |
| 1920 | 63 73 5d 5d 0a 20 20 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 | cs]].......-.[[#spacemacs][Space |
| 1940 | 6d 61 63 73 5d 5d 0a 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 | macs]]...-.[[#setup][Setup]].... |
| 1960 | 20 2d 20 5b 5b 23 63 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 | .-.[[#chatgpt][ChatGPT]].....-.[ |
| 1980 | 5b 23 6f 74 68 65 72 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 | [#other-llm-backends][Other.LLM. |
| 19a0 | 62 61 63 6b 65 6e 64 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 | backends]].......-.[[#azure][Azu |
| 19c0 | 72 65 5d 5d 0a 20 20 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 | re]].......-.[[#gpt4all][GPT4All |
| 19e0 | 5d 5d 0a 20 20 20 20 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 | ]].......-.[[#ollama][Ollama]].. |
| 1a00 | 20 20 20 20 20 2d 20 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 | .....-.[[#gemini][Gemini]]...... |
| 1a20 | 20 2d 20 5b 5b 23 6c 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 | .-.[[#llamacpp-or-llamafile][Lla |
| 1a40 | 6d 61 2e 63 70 70 20 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 | ma.cpp.or.Llamafile]].......-.[[ |
| 1a60 | 23 6b 61 67 69 2d 66 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 | #kagi-fastgpt--summarizer][Kagi. |
| 1a80 | 28 46 61 73 74 47 50 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 | (FastGPT.&.Summarizer)]].......- |
| 1aa0 | 20 5b 5b 23 74 6f 67 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 | .[[#togetherai][together.ai]]... |
| 1ac0 | 20 20 20 20 2d 20 5b 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 | ....-.[[#anyscale][Anyscale]]... |
| 1ae0 | 20 20 20 20 2d 20 5b 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 | ....-.[[#perplexity][Perplexity] |
| 1b00 | 5d 0a 20 20 20 20 20 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 | ].......-.[[#anthropic-claude][A |
| 1b20 | 6e 74 68 72 6f 70 69 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 | nthropic.(Claude)]].......-.[[#g |
| 1b40 | 72 6f 71 5d 5b 47 72 6f 71 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6f 70 65 6e 72 6f 75 74 65 | roq][Groq]].......-.[[#openroute |
| 1b60 | 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 5b 23 70 72 69 76 61 | r][OpenRouter]].......-.[[#priva |
| 1b80 | 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 20 2d 20 5b 5b 23 64 | tegpt][PrivateGPT]].......-.[[#d |
| 1ba0 | 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 20 2d 20 5b 5b 23 63 | eepseek][DeepSeek]].......-.[[#c |
| 1bc0 | 65 72 65 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 | erebras][Cerebras]].......-.[[#g |
| 1be0 | 69 74 68 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 | ithub-models][Github.Models]]... |
| 1c00 | 20 20 20 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 | ....-.[[#novita-ai][Novita.AI]]. |
| 1c20 | 20 20 20 20 20 20 2d 20 5b 5b 23 78 61 69 5d 5b 78 41 49 5d 5d 0a 20 20 2d 20 5b 5b 23 75 73 61 | ......-.[[#xai][xAI]]...-.[[#usa |
| 1c40 | 67 65 5d 5b 55 73 61 67 65 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 69 6e 2d 61 6e 79 2d 62 75 66 66 | ge][Usage]].....-.[[#in-any-buff |
| 1c60 | 65 72 5d 5b 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 69 6e | er][In.any.buffer:]].....-.[[#in |
| 1c80 | 2d 61 2d 64 65 64 69 63 61 74 65 64 2d 63 68 61 74 2d 62 75 66 66 65 72 5d 5b 49 6e 20 61 20 64 | -a-dedicated-chat-buffer][In.a.d |
| 1ca0 | 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 3a 5d 5d 0a 20 20 20 20 20 20 2d 20 | edicated.chat.buffer:]].......-. |
| 1cc0 | 5b 5b 23 69 6e 63 6c 75 64 69 6e 67 2d 6d 65 64 69 61 2d 69 6d 61 67 65 73 2d 64 6f 63 75 6d 65 | [[#including-media-images-docume |
| 1ce0 | 6e 74 73 2d 77 69 74 68 2d 72 65 71 75 65 73 74 73 5d 5b 49 6e 63 6c 75 64 69 6e 67 20 6d 65 64 | nts-with-requests][Including.med |
| 1d00 | 69 61 20 28 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 29 20 77 69 74 68 20 72 65 71 75 | ia.(images,.documents).with.requ |
| 1d20 | 65 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 | ests]].......-.[[#save-and-resto |
| 1d40 | 72 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 | re-your-chat-sessions][Save.and. |
| 1d60 | 72 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 | restore.your.chat.sessions]].... |
| 1d80 | 20 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 | .-.[[#setting-options-backend-mo |
| 1da0 | 64 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 | del-request-parameters-system-pr |
| 1dc0 | 6f 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 | ompts-and-more][Setting.options. |
| 1de0 | 28 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 | (backend,.model,.request.paramet |
| 1e00 | 65 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 | ers,.system.prompts.and.more)]]. |
| 1e20 | 20 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 | ....-.[[#include-more-context-wi |
| 1e40 | 74 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 | th-requests][Include.more.contex |
| 1e60 | 74 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 | t.with.requests]].....-.[[#handl |
| 1e80 | 65 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 | e-reasoning-content][Handle."rea |
| 1ea0 | 73 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 | soning".content]].....-.[[#tool- |
| 1ec0 | 75 73 65 2d 65 78 70 65 72 69 6d 65 6e 74 61 6c 5d 5b 54 6f 6f 6c 20 75 73 65 20 28 65 78 70 65 | use-experimental][Tool.use.(expe |
| 1ee0 | 72 69 6d 65 6e 74 61 6c 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 64 65 66 69 6e 69 6e 67 2d | rimental)]].......-.[[#defining- |
| 1f00 | 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 6f 6f 6c | gptel-tools][Defining.gptel.tool |
| 1f20 | 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 73 5d 5b | s]].......-.[[#selecting-tools][ |
| 1f40 | 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 72 65 77 72 69 | Selecting.tools]].....-.[[#rewri |
| 1f60 | 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 5d | te-refactor-or-fill-in-a-region] |
| 1f80 | 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 20 | [Rewrite,.refactor.or.fill.in.a. |
| 1fa0 | 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 65 | region]].....-.[[#extra-org-mode |
| 1fc0 | 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 6f | -conveniences][Extra.Org.mode.co |
| 1fe0 | 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 20 | nveniences]]...-.[[#faq][FAQ]].. |
| 2000 | 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 66 | ...-.[[#chat-buffer-ui][Chat.buf |
| 2020 | 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 77 | fer.UI]].......-.[[#i-want-the-w |
| 2040 | 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 73 | indow-to-scroll-automatically-as |
| 2060 | 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 6e | -the-response-is-inserted][I.wan |
| 2080 | 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 63 | t.the.window.to.scroll.automatic |
| 20a0 | 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 64 | ally.as.the.response.is.inserted |
| 20c0 | 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 2d | ]].......-.[[#i-want-the-cursor- |
| 20e0 | 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 72 | to-move-to-the-next-prompt-after |
| 2100 | 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 6e | -the-response-is-inserted][I.wan |
| 2120 | 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 74 | t.the.cursor.to.move.to.the.next |
| 2140 | 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 6e | .prompt.after.the.response.is.in |
| 2160 | 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 68 | serted]].......-.[[#i-want-to-ch |
| 2180 | 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 70 | ange-the-formatting-of-the-promp |
| 21a0 | 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 68 | t-and-llm-response][I.want.to.ch |
| 21c0 | 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 70 | ange.the.formatting.of.the.promp |
| 21e0 | 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 23 | t.and.LLM.response]].......-.[[# |
| 2200 | 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 65 | how-does-gptel-distinguish-betwe |
| 2220 | 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 65 | en-user-prompts-and-llm-response |
| 2240 | 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 65 | s][How.does.gptel.distinguish.be |
| 2260 | 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 6f | tween.user.prompts.and.LLM.respo |
| 2280 | 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 2d | nses?]].....-.[[#transient-menu- |
| 22a0 | 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 6f | behavior][Transient.menu.behavio |
| 22c0 | 72 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 74 72 61 6e 73 69 | r]].......-.[[#i-want-the-transi |
| 22e0 | 65 6e 74 2d 6d 65 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 | ent-menu-options-to-be-saved-so- |
| 2300 | 69 2d 6f 6e 6c 79 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 | i-only-need-to-set-them-once][I. |
| 2320 | 77 61 6e 74 20 74 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 | want.the.transient.menu.options. |
| 2340 | 74 6f 20 62 65 20 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 | to.be.saved.so.I.only.need.to.se |
| 2360 | 74 20 74 68 65 6d 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 | t.them.once]].......-.[[#using-t |
| 2380 | 68 65 2d 74 72 61 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 | he-transient-menu-leaves-behind- |
| 23a0 | 65 78 74 72 61 2d 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 | extra-windows][Using.the.transie |
| 23c0 | 6e 74 20 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 | nt.menu.leaves.behind.extra.wind |
| 23e0 | 6f 77 73 5d 5d 0a 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 | ows]].......-.[[#can-i-change-th |
| 2400 | 65 2d 74 72 61 6e 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 | e-transient-menu-key-bindings][C |
| 2420 | 61 6e 20 49 20 63 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 | an.I.change.the.transient.menu.k |
| 2440 | 65 79 20 62 69 6e 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 | ey.bindings?]].......-.[[#doom-e |
| 2460 | 6d 61 63 73 2d 73 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 | macs-sending-a-query-from-the-gp |
| 2480 | 74 65 6c 2d 6d 65 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 | tel-menu-fails-because-of-a-key- |
| 24a0 | 63 6f 6e 66 6c 69 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 | conflict-with-org-mode][(Doom.Em |
| 24c0 | 61 63 73 29 20 53 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 | acs).Sending.a.query.from.the.gp |
| 24e0 | 74 65 6c 20 6d 65 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 | tel.menu.fails.because.of.a.key. |
| 2500 | 63 6f 6e 66 6c 69 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 | conflict.with.Org.mode]].....-.[ |
| 2520 | 5b 23 6d 69 73 63 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 | [#miscellaneous][Miscellaneous]] |
| 2540 | 0a 20 20 20 20 20 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 | .......-.[[#i-want-to-use-gptel- |
| 2560 | 69 6e 2d 61 2d 77 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 | in-a-way-thats-not-supported-by- |
| 2580 | 67 70 74 65 6c 2d 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 | gptel-send-or-the-options-menu][ |
| 25a0 | 49 20 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 | I.want.to.use.gptel.in.a.way.tha |
| 25c0 | 74 27 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 | t's.not.supported.by.=gptel-send |
| 25e0 | 3d 20 6f 72 20 74 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 | =.or.the.options.menu]].......-. |
| 2600 | 5b 5b 23 63 68 61 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 | [[#chatgpt-i-get-the-error-http2 |
| 2620 | 2d 34 32 39 2d 79 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 | -429-you-exceeded-your-current-q |
| 2640 | 75 6f 74 61 5d 5b 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 | uota][(ChatGPT).I.get.the.error. |
| 2660 | 22 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 72 20 | "(HTTP/2.429).You.exceeded.your. |
| 2680 | 63 75 72 72 65 6e 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 | current.quota"]].......-.[[#why- |
| 26a0 | 61 6e 6f 74 68 65 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 | another-llm-client][Why.another. |
| 26c0 | 4c 4c 4d 20 63 6c 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 | LLM.client?]]...-.[[#additional- |
| 26e0 | 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 67 | configuration][Additional.Config |
| 2700 | 75 72 61 74 69 6f 6e 5d 5d 0a 20 20 2d 20 5b 5b 23 61 6c 74 65 72 6e 61 74 69 76 65 73 5d 5b 41 | uration]]...-.[[#alternatives][A |
| 2720 | 6c 74 65 72 6e 61 74 69 76 65 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 70 61 63 6b 61 67 65 73 2d | lternatives]].....-.[[#packages- |
| 2740 | 75 73 69 6e 67 2d 67 70 74 65 6c 5d 5b 50 61 63 6b 61 67 65 73 20 75 73 69 6e 67 20 67 70 74 65 | using-gptel][Packages.using.gpte |
| 2760 | 6c 5d 5d 0a 20 20 2d 20 5b 5b 23 61 63 6b 6e 6f 77 6c 65 64 67 6d 65 6e 74 73 5d 5b 41 63 6b 6e | l]]...-.[[#acknowledgments][Ackn |
| 2780 | 6f 77 6c 65 64 67 6d 65 6e 74 73 5d 5d 0a 0a 2a 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 | owledgments]]..**.Breaking.chang |
| 27a0 | 65 73 21 0a 0a 2d 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 6c 3d 20 69 73 20 6e 6f 77 20 65 78 70 65 | es!..-.=gptel-model=.is.now.expe |
| 27c0 | 63 74 65 64 20 74 6f 20 62 65 20 61 20 73 79 6d 62 6f 6c 2c 20 6e 6f 74 20 61 20 73 74 72 69 6e | cted.to.be.a.symbol,.not.a.strin |
| 27e0 | 67 2e 20 20 50 6c 65 61 73 65 20 75 70 64 61 74 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 | g...Please.update.your.configura |
| 2800 | 74 69 6f 6e 2e 0a 0a 2a 2a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 67 70 74 65 6c 20 63 61 | tion...**.Installation..gptel.ca |
| 2820 | 6e 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 20 45 6d 61 63 73 20 6f 75 74 20 6f 66 20 74 | n.be.installed.in.Emacs.out.of.t |
| 2840 | 68 65 20 62 6f 78 20 77 69 74 68 20 3d 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c | he.box.with.=M-x.package-install |
| 2860 | 3d 20 e2 8f 8e 20 3d 67 70 74 65 6c 3d 2e 20 20 54 68 69 73 20 69 6e 73 74 61 6c 6c 73 20 74 68 | =.....=gptel=...This.installs.th |
| 2880 | 65 20 6c 61 74 65 73 74 20 63 6f 6d 6d 69 74 2e 0a 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 68 | e.latest.commit...If.you.want.th |
| 28a0 | 65 20 73 74 61 62 6c 65 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 65 61 64 2c 20 61 64 64 20 4e 6f | e.stable.version.instead,.add.No |
| 28c0 | 6e 47 4e 55 2d 64 65 76 65 6c 20 45 4c 50 41 20 6f 72 20 4d 45 4c 50 41 2d 73 74 61 62 6c 65 20 | nGNU-devel.ELPA.or.MELPA-stable. |
| 28e0 | 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 73 20 | to.your.list.of.package.sources. |
| 2900 | 28 3d 70 61 63 6b 61 67 65 2d 61 72 63 68 69 76 65 73 3d 29 2c 20 74 68 65 6e 20 69 6e 73 74 61 | (=package-archives=),.then.insta |
| 2920 | 6c 6c 20 67 70 74 65 6c 20 77 69 74 68 20 3d 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 | ll.gptel.with.=M-x.package-insta |
| 2940 | 6c 6c e2 8f 8e 3d 20 3d 67 70 74 65 6c 3d 20 66 72 6f 6d 20 74 68 65 73 65 20 73 6f 75 72 63 65 | ll...=.=gptel=.from.these.source |
| 2960 | 73 2e 0a 0a 28 4f 70 74 69 6f 6e 61 6c 3a 20 49 6e 73 74 61 6c 6c 20 3d 6d 61 72 6b 64 6f 77 6e | s...(Optional:.Install.=markdown |
| 2980 | 2d 6d 6f 64 65 3d 2e 29 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d | -mode=.)..#+html:.<details><summ |
| 29a0 | 61 72 79 3e 0a 2a 2a 2a 2a 20 53 74 72 61 69 67 68 74 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d | ary>.****.Straight.#+html:.</sum |
| 29c0 | 6d 61 72 79 3e 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 28 | mary>.#+begin_src.emacs-lisp...( |
| 29e0 | 73 74 72 61 69 67 68 74 2d 75 73 65 2d 70 61 63 6b 61 67 65 20 27 67 70 74 65 6c 29 0a 23 2b 65 | straight-use-package.'gptel).#+e |
| 2a00 | 6e 64 5f 73 72 63 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 | nd_src.#+html:.</details>.#+html |
| 2a20 | 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 4d 61 6e 75 61 6c | :.<details><summary>.****.Manual |
| 2a40 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 43 6c 6f 6e 65 20 6f 72 20 64 6f 77 | .#+html:.</summary>.Clone.or.dow |
| 2a60 | 6e 6c 6f 61 64 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 61 6e 64 20 72 75 6e 20 3d 4d | nload.this.repository.and.run.=M |
| 2a80 | 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 2d 66 69 6c 65 e2 8f 8e 3d 20 6f 6e 20 74 | -x.package-install-file...=.on.t |
| 2aa0 | 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 64 69 72 65 63 74 6f 72 79 2e 0a 23 2b 68 74 6d 6c 3a | he.repository.directory..#+html: |
| 2ac0 | 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 |
| 2ae0 | 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 6f 6f 6d 20 45 6d 61 63 73 0a 23 2b 68 74 6d 6c 3a 20 3c | mmary>.****.Doom.Emacs.#+html:.< |
| 2b00 | 2f 73 75 6d 6d 61 72 79 3e 0a 49 6e 20 3d 70 61 63 6b 61 67 65 73 2e 65 6c 3d 0a 23 2b 62 65 67 | /summary>.In.=packages.el=.#+beg |
| 2b20 | 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 70 61 63 6b 61 67 65 21 20 67 70 74 65 | in_src.emacs-lisp.(package!.gpte |
| 2b40 | 6c 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 49 6e 20 3d 63 6f 6e 66 69 67 2e 65 6c 3d 0a 23 2b 62 | l).#+end_src..In.=config.el=.#+b |
| 2b60 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 75 73 65 2d 70 61 63 6b 61 67 65 | egin_src.emacs-lisp.(use-package |
| 2b80 | 21 20 67 70 74 65 6c 0a 20 3a 63 6f 6e 66 69 67 0a 20 28 73 65 74 71 21 20 67 70 74 65 6c 2d 61 | !.gptel..:config..(setq!.gptel-a |
| 2ba0 | 70 69 2d 6b 65 79 20 22 79 6f 75 72 20 6b 65 79 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 22 79 | pi-key."your.key")).#+end_src."y |
| 2bc0 | 6f 75 72 20 6b 65 79 22 20 63 61 6e 20 62 65 20 74 68 65 20 41 50 49 20 6b 65 79 20 69 74 73 65 | our.key".can.be.the.API.key.itse |
| 2be0 | 6c 66 2c 20 6f 72 20 28 73 61 66 65 72 29 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 | lf,.or.(safer).a.function.that.r |
| 2c00 | 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 53 65 74 74 69 6e 67 20 3d 67 70 74 65 6c 2d | eturns.the.key...Setting.=gptel- |
| 2c20 | 61 70 69 2d 6b 65 79 3d 20 69 73 20 6f 70 74 69 6f 6e 61 6c 2c 20 79 6f 75 20 77 69 6c 6c 20 62 | api-key=.is.optional,.you.will.b |
| 2c40 | 65 20 61 73 6b 65 64 20 66 6f 72 20 61 20 6b 65 79 20 69 66 20 69 74 27 73 20 6e 6f 74 20 66 6f | e.asked.for.a.key.if.it's.not.fo |
| 2c60 | 75 6e 64 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 | und...#+html:.</details>.#+html: |
| 2c80 | 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 53 70 61 63 65 6d 61 | .<details><summary>.****.Spacema |
| 2ca0 | 63 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 49 6e 20 79 6f 75 72 20 3d 2e | cs.#+html:.</summary>.In.your.=. |
| 2cc0 | 73 70 61 63 65 6d 61 63 73 3d 20 66 69 6c 65 2c 20 61 64 64 20 3d 6c 6c 6d 2d 63 6c 69 65 6e 74 | spacemacs=.file,.add.=llm-client |
| 2ce0 | 3d 20 74 6f 20 3d 64 6f 74 73 70 61 63 65 6d 61 63 73 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e | =.to.=dotspacemacs-configuration |
| 2d00 | 2d 6c 61 79 65 72 73 3d 2e 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 | -layers=..#+begin_src.emacs-lisp |
| 2d20 | 0a 28 6c 6c 6d 2d 63 6c 69 65 6e 74 20 3a 76 61 72 69 61 62 6c 65 73 0a 20 20 20 20 20 20 20 20 | .(llm-client.:variables......... |
| 2d40 | 20 20 20 20 6c 6c 6d 2d 63 6c 69 65 6e 74 2d 65 6e 61 62 6c 65 2d 67 70 74 65 6c 20 74 29 0a 23 | ....llm-client-enable-gptel.t).# |
| 2d60 | 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 20 53 | +end_src.#+html:.</details>.**.S |
| 2d80 | 65 74 75 70 0a 2a 2a 2a 20 43 68 61 74 47 50 54 0a 50 72 6f 63 75 72 65 20 61 6e 20 5b 5b 68 74 | etup.***.ChatGPT.Procure.an.[[ht |
| 2da0 | 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 61 63 63 6f 75 6e | tps://platform.openai.com/accoun |
| 2dc0 | 74 2f 61 70 69 2d 6b 65 79 73 5d 5b 4f 70 65 6e 41 49 20 41 50 49 20 6b 65 79 5d 5d 2e 0a 0a 4f | t/api-keys][OpenAI.API.key]]...O |
| 2de0 | 70 74 69 6f 6e 61 6c 3a 20 53 65 74 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 74 6f 20 | ptional:.Set.=gptel-api-key=.to. |
| 2e00 | 74 68 65 20 6b 65 79 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 6d 61 79 20 | the.key..Alternatively,.you.may. |
| 2e20 | 63 68 6f 6f 73 65 20 61 20 6d 6f 72 65 20 73 65 63 75 72 65 20 6d 65 74 68 6f 64 20 73 75 63 68 | choose.a.more.secure.method.such |
| 2e40 | 20 61 73 3a 0a 0a 2d 20 53 74 6f 72 69 6e 67 20 69 6e 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d | .as:..-.Storing.in.=~/.authinfo= |
| 2e60 | 2e 20 42 79 20 64 65 66 61 75 6c 74 2c 20 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 22 20 69 | ..By.default,."api.openai.com".i |
| 2e80 | 73 20 75 73 65 64 20 61 73 20 48 4f 53 54 20 61 6e 64 20 22 61 70 69 6b 65 79 22 20 61 73 20 55 | s.used.as.HOST.and."apikey".as.U |
| 2ea0 | 53 45 52 2e 0a 20 20 23 2b 62 65 67 69 6e 5f 73 72 63 20 61 75 74 68 69 6e 66 6f 0a 6d 61 63 68 | SER....#+begin_src.authinfo.mach |
| 2ec0 | 69 6e 65 20 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 20 6c 6f 67 69 6e 20 61 70 69 6b 65 79 20 | ine.api.openai.com.login.apikey. |
| 2ee0 | 70 61 73 73 77 6f 72 64 20 54 4f 4b 45 4e 0a 20 20 23 2b 65 6e 64 5f 73 72 63 0a 2d 20 53 65 74 | password.TOKEN...#+end_src.-.Set |
| 2f00 | 74 69 6e 67 20 69 74 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 | ting.it.to.a.function.that.retur |
| 2f20 | 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 2a 2a 2a 20 4f 74 68 65 72 20 4c 4c 4d 20 62 61 63 6b 65 | ns.the.key...***.Other.LLM.backe |
| 2f40 | 6e 64 73 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 | nds.#+html:.<details><summary>.* |
| 2f60 | 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 3e 0a 0a 52 65 | ***.Azure.#+html:.</summary>..Re |
| 2f80 | 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 5f 73 72 | gister.a.backend.with.#+begin_sr |
| 2fa0 | 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 75 72 65 20 22 | c.emacs-lisp.(gptel-make-azure." |
| 2fc0 | 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 20 77 68 61 74 | Azure-1".............;Name,.what |
| 2fe0 | 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 20 22 68 74 74 | ever.you'd.like...:protocol."htt |
| 3000 | 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 74 69 6f 6e 61 | ps".....................;Optiona |
| 3020 | 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 20 3a 68 6f 73 | l.--.https.is.the.default...:hos |
| 3040 | 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 69 2e 61 7a 75 | t."YOUR_RESOURCE_NAME.openai.azu |
| 3060 | 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 69 2f 64 65 70 | re.com"...:endpoint."/openai/dep |
| 3080 | 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 4d 45 2f 63 68 | loyments/YOUR_DEPLOYMENT_NAME/ch |
| 30a0 | 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 32 30 32 33 2d | at/completions?api-version=2023- |
| 30c0 | 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 72 65 61 6d 20 | 05-15".;or.equivalent...:stream. |
| 30e0 | 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 20 3b 45 | t.............................;E |
| 3100 | 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 20 3a 6b 65 79 | nable.streaming.responses...:key |
| 3120 | 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 27 28 67 70 74 | .#'gptel-api-key...:models.'(gpt |
| 3140 | 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 63 0a 52 65 66 | -3.5-turbo.gpt-4)).#+end_src.Ref |
| 3160 | 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 67 70 74 65 | er.to.the.documentation.of.=gpte |
| 3180 | 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 61 72 61 6d 65 | l-make-azure=.to.set.more.parame |
| 31a0 | 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 63 6b 65 6e 64 | ters...You.can.pick.this.backend |
| 31c0 | 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 6c 2e | .from.the.menu.when.using.gptel. |
| 31e0 | 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 2a | .(see.[[#usage][Usage]])...***** |
| 3200 | 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 |
| 3220 | 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 |
| 3240 | 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 |
| 3260 | 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 |
| 3280 | 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 |
| 32a0 | 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 |
| 32c0 | 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. |
| 32e0 | 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 |
| 3300 | 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 |
| 3320 | 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 62 6f 0a 20 67 | q..gptel-model.'gpt-3.5-turbo..g |
| 3340 | 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 75 72 65 20 22 | ptel-backend.(gptel-make-azure." |
| 3360 | 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 70 72 6f 74 6f | Azure-1"..................:proto |
| 3380 | 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 20 20 3a 68 6f | col."https"..................:ho |
| 33a0 | 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 69 2e 61 7a | st."YOUR_RESOURCE_NAME.openai.az |
| 33c0 | 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 65 6e 64 70 6f | ure.com"..................:endpo |
| 33e0 | 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 55 52 5f 44 45 | int."/openai/deployments/YOUR_DE |
| 3400 | 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 6f 6e 73 3f 61 | PLOYMENT_NAME/chat/completions?a |
| 3420 | 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 20 20 20 20 20 | pi-version=2023-05-15".......... |
| 3440 | 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 20 20 20 20 20 | ........:stream.t............... |
| 3460 | 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 20 20 20 20 20 | ...:key.#'gptel-api-key......... |
| 3480 | 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 74 75 72 62 6f | .........:models.'(gpt-3.5-turbo |
| 34a0 | 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 20 3c 2f 64 65 | .gpt-4))).#+end_src.#+html:.</de |
| 34c0 | 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 6d 61 72 | tails>..#+html:.<details><summar |
| 34e0 | 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 75 6d 6d 61 72 | y>.****.GPT4All.#+html:.</summar |
| 3500 | 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 65 | y>..Register.a.backend.with.#+be |
| 3520 | 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 61 6b 65 2d 67 | gin_src.emacs-lisp.(gptel-make-g |
| 3540 | 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 3b 4e 61 6d 65 | pt4all."GPT4All"...........;Name |
| 3560 | 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 6c 20 22 68 74 | .of.your.choosing..:protocol."ht |
| 3580 | 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 20 20 20 20 20 | tp"..:host."localhost:4891"..... |
| 35a0 | 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 6e 69 6e 67 0a | ............;Where.it's.running. |
| 35c0 | 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 72 63 61 2e 51 | .:models.'(mistral-7b-openorca.Q |
| 35e0 | 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 73 0a 23 2b 65 | 4_0.gguf)).;Available.models.#+e |
| 3600 | 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 65 64 20 70 61 | nd_src.These.are.the.required.pa |
| 3620 | 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 6d 65 6e 74 61 | rameters,.refer.to.the.documenta |
| 3640 | 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 3d 20 66 6f 72 | tion.of.=gptel-make-gpt4all=.for |
| 3660 | 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 61 63 6b 65 6e | .more...You.can.pick.this.backen |
| 3680 | 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 6c | d.from.the.menu.when.using.gptel |
| 36a0 | 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 2a | .(see.[[#usage][Usage]])...***** |
| 36c0 | 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 |
| 36e0 | 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 |
| 3700 | 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 |
| 3720 | 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 |
| 3740 | 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 |
| 3760 | 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 |
| 3780 | 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. |
| 37a0 | 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 75 20 6d 61 79 | the.above...Additionally.you.may |
| 37c0 | 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 6e 73 65 20 74 | .want.to.increase.the.response.t |
| 37e0 | 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 73 20 76 65 72 | oken.size.since.GPT4All.uses.ver |
| 3800 | 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 65 73 70 6f 6e | y.short.(often.truncated).respon |
| 3820 | 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 20 65 6d 61 63 | ses.by.default..#+begin_src.emac |
| 3840 | 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 |
| 3860 | 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 30 0a 20 67 70 | .(setq..gptel-max-tokens.500..gp |
| 3880 | 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 72 63 61 2e 51 | tel-model.'mistral-7b-openorca.Q |
| 38a0 | 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 74 65 6c 2d 6d | 4_0.gguf..gptel-backend.(gptel-m |
| 38c0 | 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 20 20 20 20 20 | ake-gpt4all."GPT4All"........... |
| 38e0 | 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 20 20 20 | .......:protocol."http"......... |
| 3900 | 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 38 39 31 22 0a | .........:host."localhost:4891". |
| 3920 | 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 6d 69 73 74 72 | .................:models.'(mistr |
| 3940 | 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 0a 23 2b 65 6e | al-7b-openorca.Q4_0.gguf))).#+en |
| 3960 | 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 2b 68 74 6d | d_src..#+html:.</details>..#+htm |
| 3980 | 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 4f 6c 6c 61 6d | l:.<details><summary>.****.Ollam |
| 39a0 | 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 74 65 72 20 61 | a.#+html:.</summary>..Register.a |
| 39c0 | 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 2d | .backend.with.#+begin_src.emacs- |
| 39e0 | 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 6c 61 6d 61 22 | lisp.(gptel-make-ollama."Ollama" |
| 3a00 | 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 6f 75 72 20 63 | .............;Any.name.of.your.c |
| 3a20 | 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 31 31 34 33 34 | hoosing...:host."localhost:11434 |
| 3a40 | 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 20 72 75 6e 6e | "...............;Where.it's.runn |
| 3a60 | 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 20 20 20 20 20 | ing...:stream.t................. |
| 3a80 | 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 65 73 0a 20 20 | ............;Stream.responses... |
| 3aa0 | 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 20 20 20 20 20 | :models.'(mistral:latest))...... |
| 3ac0 | 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 72 63 0a 54 68 | ....;List.of.models.#+end_src.Th |
| 3ae0 | 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, |
| 3b00 | 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.= |
| 3b20 | 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 2e 0a 0a 59 6f | gptel-make-ollama=.for.more...Yo |
| 3b40 | 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 |
| 3b60 | 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 |
| 3b80 | 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) |
| 3ba0 | 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 |
| 3bc0 | 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 |
| 3be0 | 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 |
| 3c00 | 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 |
| 3c20 | 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 |
| 3c40 | 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=.. |
| 3c60 | 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.. |
| 3c80 | 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 |
| 3ca0 | 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 |
| 3cc0 | 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 62 61 63 6b 65 | del.'mistral:latest..gptel-backe |
| 3ce0 | 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 6d 61 22 0a 20 | nd.(gptel-make-ollama."Ollama".. |
| 3d00 | 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 6c 68 6f 73 74 | ................:host."localhost |
| 3d20 | 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 74 72 65 61 6d | :11434"..................:stream |
| 3d40 | 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 20 27 28 6d 69 | .t..................:models.'(mi |
| 3d60 | 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 23 2b 68 74 6d | stral:latest))).#+end_src..#+htm |
| 3d80 | 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 73 3e | l:.</details>..#+html:.<details> |
| 3da0 | 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 6c 3a 20 3c 2f | <summary>.****.Gemini.#+html:.</ |
| 3dc0 | 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 74 | summary>..Register.a.backend.wit |
| 3de0 | 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 3a 6b 65 79 | h.#+begin_src.emacs-lisp.;;.:key |
| 3e00 | 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 75 72 6e 73 20 | .can.be.a.function.that.returns. |
| 3e20 | 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 6d 69 6e 69 20 | the.API.key..(gptel-make-gemini. |
| 3e40 | 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 41 50 49 5f 4b | "Gemini".:key."YOUR_GEMINI_API_K |
| 3e60 | 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 65 73 65 20 61 | EY".:stream.t).#+end_src.These.a |
| 3e80 | 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 20 72 65 66 65 | re.the.required.parameters,.refe |
| 3ea0 | 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 67 70 74 65 6c | r.to.the.documentation.of.=gptel |
| 3ec0 | 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 75 20 63 61 6e | -make-gemini=.for.more...You.can |
| 3ee0 | 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 75 | .pick.this.backend.from.the.menu |
| 3f00 | 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 5d | .when.using.gptel.(see.[[#usage] |
| 3f20 | 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 20 53 65 74 20 | [Usage]])..*****.(Optional).Set. |
| 3f40 | 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 64 0a 0a 54 68 | as.the.default.gptel.backend..Th |
| 3f60 | 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 65 6e 64 20 61 | e.above.code.makes.the.backend.a |
| 3f80 | 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 20 77 61 6e 74 | vailable.to.select...If.you.want |
| 3fa0 | 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 6e 64 20 66 6f | .it.to.be.the.default.backend.fo |
| 3fc0 | 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 73 20 74 68 65 | r.gptel,.you.can.set.this.as.the |
| 3fe0 | 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 20 55 73 65 20 | .value.of.=gptel-backend=...Use. |
| 4000 | 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 23 2b 62 65 67 | this.instead.of.the.above..#+beg |
| 4020 | 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 63 6f | in_src.emacs-lisp.;;.OPTIONAL.co |
| 4040 | 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 64 65 6c 20 27 | nfiguration.(setq..gptel-model.' |
| 4060 | 67 65 6d 69 6e 69 2d 70 72 6f 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c | gemini-pro..gptel-backend.(gptel |
| 4080 | 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 20 22 47 65 6d 69 6e 69 22 0a 20 20 20 20 20 20 20 20 20 20 | -make-gemini."Gemini"........... |
| 40a0 | 20 20 20 20 20 20 20 3a 6b 65 79 20 22 59 4f 55 52 5f 47 45 4d 49 4e 49 5f 41 50 49 5f 4b 45 59 | .......:key."YOUR_GEMINI_API_KEY |
| 40c0 | 22 0a 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 74 29 29 0a 23 | "..................:stream.t)).# |
| 40e0 | 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 2b | +end_src..#+html:.</details>..#+ |
| 4100 | 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 73 75 6d 6d 61 72 79 | html:.<details>.#+html:.<summary |
| 4120 | 3e 0a 2a 2a 2a 2a 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 4c 6c 61 6d 61 66 69 6c 65 0a 23 2b | >.****.Llama.cpp.or.Llamafile.#+ |
| 4140 | 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 28 49 66 20 75 73 69 6e 67 20 61 20 6c 6c | html:.</summary>..(If.using.a.ll |
| 4160 | 61 6d 61 66 69 6c 65 2c 20 72 75 6e 20 61 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | amafile,.run.a.[[https://github. |
| 4180 | 63 6f 6d 2f 4d 6f 7a 69 6c 6c 61 2d 4f 63 68 6f 2f 6c 6c 61 6d 61 66 69 6c 65 23 6f 74 68 65 72 | com/Mozilla-Ocho/llamafile#other |
| 41a0 | 2d 65 78 61 6d 70 6c 65 2d 6c 6c 61 6d 61 66 69 6c 65 73 5d 5b 73 65 72 76 65 72 20 6c 6c 61 6d | -example-llamafiles][server.llam |
| 41c0 | 61 66 69 6c 65 5d 5d 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 22 63 6f 6d 6d 61 6e 64 2d 6c 69 | afile]].instead.of.a."command-li |
| 41e0 | 6e 65 20 6c 6c 61 6d 61 66 69 6c 65 22 2c 20 61 6e 64 20 61 20 6d 6f 64 65 6c 20 74 68 61 74 20 | ne.llamafile",.and.a.model.that. |
| 4200 | 73 75 70 70 6f 72 74 73 20 74 65 78 74 20 67 65 6e 65 72 61 74 69 6f 6e 2e 29 0a 0a 52 65 67 69 | supports.text.generation.)..Regi |
| 4220 | 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 5f 73 72 63 20 | ster.a.backend.with.#+begin_src. |
| 4240 | 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 66 66 65 72 73 20 61 | emacs-lisp.;;.Llama.cpp.offers.a |
| 4260 | 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d | n.OpenAI.compatible.API.(gptel-m |
| 4280 | 61 6b 65 2d 6f 70 65 6e 61 69 20 22 6c 6c 61 6d 61 2d 63 70 70 22 20 20 20 20 20 20 20 20 20 20 | ake-openai."llama-cpp".......... |
| 42a0 | 3b 41 6e 79 20 6e 61 6d 65 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 | ;Any.name...:stream.t........... |
| 42c0 | 20 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 | ..................;Stream.respon |
| 42e0 | 73 65 73 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 3a 68 6f 73 74 20 22 | ses...:protocol."http"...:host." |
| 4300 | 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 30 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | localhost:8000"................; |
| 4320 | 4c 6c 61 6d 61 2e 63 70 70 20 73 65 72 76 65 72 20 6c 6f 63 61 74 69 6f 6e 0a 20 20 3a 6d 6f 64 | Llama.cpp.server.location...:mod |
| 4340 | 65 6c 73 20 27 28 74 65 73 74 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | els.'(test)).................... |
| 4360 | 3b 41 6e 79 20 6e 61 6d 65 73 2c 20 64 6f 65 73 6e 27 74 20 6d 61 74 74 65 72 20 66 6f 72 20 4c | ;Any.names,.doesn't.matter.for.L |
| 4380 | 6c 61 6d 61 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 | lama.#+end_src.These.are.the.req |
| 43a0 | 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 20 74 68 65 20 64 | uired.parameters,.refer.to.the.d |
| 43c0 | 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 65 2d 6f 70 65 6e | ocumentation.of.=gptel-make-open |
| 43e0 | 61 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 74 68 69 73 | ai=.for.more...You.can.pick.this |
| 4400 | 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 |
| 4420 | 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]]). |
| 4440 | 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 |
| 4460 | 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 |
| 4480 | 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 |
| 44a0 | 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. |
| 44c0 | 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 |
| 44e0 | 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. |
| 4500 | 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 |
| 4520 | 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 |
| 4540 | 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 |
| 4560 | 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 74 65 73 74 0a 20 67 70 | n.(setq..gptel-model...'test..gp |
| 4580 | 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 | tel-backend.(gptel-make-openai." |
| 45a0 | 6c 6c 61 6d 61 2d 63 70 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 | llama-cpp"..................:str |
| 45c0 | 65 61 6d 20 74 0a 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 | eam.t..................:protocol |
| 45e0 | 20 22 68 74 74 70 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 | ."http"..................:host." |
| 4600 | 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 30 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | localhost:8000"................. |
| 4620 | 20 3a 6d 6f 64 65 6c 73 20 27 28 74 65 73 74 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b | .:models.'(test))).#+end_src..#+ |
| 4640 | 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 |
| 4660 | 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 4b 61 67 69 20 28 46 61 73 74 47 50 54 20 26 | s><summary>.****.Kagi.(FastGPT.& |
| 4680 | 20 53 75 6d 6d 61 72 69 7a 65 72 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a | .Summarizer).#+html:.</summary>. |
| 46a0 | 0a 4b 61 67 69 27 73 20 46 61 73 74 47 50 54 20 6d 6f 64 65 6c 20 61 6e 64 20 74 68 65 20 55 6e | .Kagi's.FastGPT.model.and.the.Un |
| 46c0 | 69 76 65 72 73 61 6c 20 53 75 6d 6d 61 72 69 7a 65 72 20 61 72 65 20 62 6f 74 68 20 73 75 70 70 | iversal.Summarizer.are.both.supp |
| 46e0 | 6f 72 74 65 64 2e 20 20 41 20 63 6f 75 70 6c 65 20 6f 66 20 6e 6f 74 65 73 3a 0a 0a 31 2e 20 55 | orted...A.couple.of.notes:..1..U |
| 4700 | 6e 69 76 65 72 73 61 6c 20 53 75 6d 6d 61 72 69 7a 65 72 3a 20 49 66 20 74 68 65 72 65 20 69 73 | niversal.Summarizer:.If.there.is |
| 4720 | 20 61 20 55 52 4c 20 61 74 20 70 6f 69 6e 74 2c 20 74 68 65 20 73 75 6d 6d 61 72 69 7a 65 72 20 | .a.URL.at.point,.the.summarizer. |
| 4740 | 77 69 6c 6c 20 73 75 6d 6d 61 72 69 7a 65 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 | will.summarize.the.contents.of.t |
| 4760 | 68 65 20 55 52 4c 2e 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 | he.URL...Otherwise.the.context.s |
| 4780 | 65 6e 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 20 | ent.to.the.model.is.the.same.as. |
| 47a0 | 61 6c 77 61 79 73 3a 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 75 70 74 6f 20 70 6f 69 | always:.the.buffer.text.upto.poi |
| 47c0 | 6e 74 2c 20 6f 72 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 72 65 67 69 6f | nt,.or.the.contents.of.the.regio |
| 47e0 | 6e 20 69 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2e 0a 0a 32 2e 20 4b | n.if.the.region.is.active...2..K |
| 4800 | 61 67 69 20 6d 6f 64 65 6c 73 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 6d 75 6c 74 69 2d | agi.models.do.not.support.multi- |
| 4820 | 74 75 72 6e 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2c 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 | turn.conversations,.interactions |
| 4840 | 20 61 72 65 20 22 6f 6e 65 2d 73 68 6f 74 22 2e 20 20 54 68 65 79 20 61 6c 73 6f 20 64 6f 20 6e | .are."one-shot"...They.also.do.n |
| 4860 | 6f 74 20 73 75 70 70 6f 72 74 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2e 0a | ot.support.streaming.responses.. |
| 4880 | 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 |
| 48a0 | 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 6b 61 67 69 | _src.emacs-lisp.(gptel-make-kagi |
| 48c0 | 20 22 4b 61 67 69 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 61 6e 79 20 | ."Kagi"....................;any. |
| 48e0 | 6e 61 6d 65 0a 20 20 3a 6b 65 79 20 22 59 4f 55 52 5f 4b 41 47 49 5f 41 50 49 5f 4b 45 59 22 29 | name...:key."YOUR_KAGI_API_KEY") |
| 4900 | 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 74 69 | ................;can.be.a.functi |
| 4920 | 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 2b 65 6e 64 5f 73 72 | on.that.returns.the.key.#+end_sr |
| 4940 | 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 |
| 4960 | 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. |
| 4980 | 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 3d 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a | of.=gptel-make-kagi=.for.more... |
| 49a0 | 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 61 6e 64 20 74 68 | You.can.pick.this.backend.and.th |
| 49c0 | 65 20 6d 6f 64 65 6c 20 28 66 61 73 74 67 70 74 2f 73 75 6d 6d 61 72 69 7a 65 72 29 20 66 72 6f | e.model.(fastgpt/summarizer).fro |
| 49e0 | 6d 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 | m.the.transient.menu.when.using. |
| 4a00 | 67 70 74 65 6c 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 | gptel...*****.(Optional).Set.as. |
| 4a20 | 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 |
| 4a40 | 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 |
| 4a60 | 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 |
| 4a80 | 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 |
| 4aa0 | 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 |
| 4ac0 | 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 |
| 4ae0 | 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_ |
| 4b00 | 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 |
| 4b20 | 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 66 61 73 | guration.(setq..gptel-model.'fas |
| 4b40 | 74 67 70 74 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 | tgpt..gptel-backend.(gptel-make- |
| 4b60 | 6b 61 67 69 20 22 4b 61 67 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 | kagi."Kagi"..................:ke |
| 4b80 | 79 20 22 59 4f 55 52 5f 4b 41 47 49 5f 41 50 49 5f 4b 45 59 22 29 29 0a 23 2b 65 6e 64 5f 73 72 | y."YOUR_KAGI_API_KEY")).#+end_sr |
| 4ba0 | 63 0a 0a 54 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 74 6f 20 3d 66 61 73 74 67 70 74 3d | c..The.alternatives.to.=fastgpt= |
| 4bc0 | 20 69 6e 63 6c 75 64 65 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 63 65 63 69 6c 3d 2c 20 3d 73 75 6d | .include.=summarize:cecil=,.=sum |
| 4be0 | 6d 61 72 69 7a 65 3a 61 67 6e 65 73 3d 2c 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 64 61 70 68 6e 65 | marize:agnes=,.=summarize:daphne |
| 4c00 | 3d 20 61 6e 64 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 6d 75 72 69 65 6c 3d 2e 20 20 54 68 65 20 64 | =.and.=summarize:muriel=...The.d |
| 4c20 | 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 20 73 75 6d 6d 61 72 69 7a 65 72 | ifference.between.the.summarizer |
| 4c40 | 20 65 6e 67 69 6e 65 73 20 69 73 20 5b 5b 68 74 74 70 73 3a 2f 2f 68 65 6c 70 2e 6b 61 67 69 2e | .engines.is.[[https://help.kagi. |
| 4c60 | 63 6f 6d 2f 6b 61 67 69 2f 61 70 69 2f 73 75 6d 6d 61 72 69 7a 65 72 2e 68 74 6d 6c 23 73 75 6d | com/kagi/api/summarizer.html#sum |
| 4c80 | 6d 61 72 69 7a 61 74 69 6f 6e 2d 65 6e 67 69 6e 65 73 5d 5b 64 6f 63 75 6d 65 6e 74 65 64 20 68 | marization-engines][documented.h |
| 4ca0 | 65 72 65 5d 5d 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 | ere]]...#+html:.</details>.#+htm |
| 4cc0 | 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 74 6f 67 65 74 | l:.<details><summary>.****.toget |
| 4ce0 | 68 65 72 2e 61 69 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 | her.ai.#+html:.</summary>..Regis |
| 4d00 | 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 |
| 4d20 | 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 54 6f 67 65 74 68 65 72 2e 61 69 20 6f 66 66 65 72 73 20 | macs-lisp.;;.Together.ai.offers. |
| 4d40 | 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d | an.OpenAI.compatible.API.(gptel- |
| 4d60 | 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 54 6f 67 65 74 68 65 72 41 49 22 20 20 20 20 20 20 20 20 | make-openai."TogetherAI"........ |
| 4d80 | 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 74 20 22 61 70 69 | .;Any.name.you.want...:host."api |
| 4da0 | 2e 74 6f 67 65 74 68 65 72 2e 78 79 7a 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d | .together.xyz"...:key."your-api- |
| 4dc0 | 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 65 20 61 | key"...................;can.be.a |
| 4de0 | 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 20 | .function.that.returns.the.key.. |
| 4e00 | 20 3a 73 74 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 | .:stream.t...:models.'(;;.has.ma |
| 4e20 | 6e 79 20 6d 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 | ny.more,.check.together.ai...... |
| 4e40 | 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 42 2d 49 6e | .......mistralai/Mixtral-8x7B-In |
| 4e60 | 73 74 72 75 63 74 2d 76 30 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d | struct-v0.1.............codellam |
| 4e80 | 61 2f 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 | a/CodeLlama-13b-Instruct-hf..... |
| 4ea0 | 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 33 34 62 2d | ........codellama/CodeLlama-34b- |
| 4ec0 | 49 6e 73 74 72 75 63 74 2d 68 66 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e | Instruct-hf)).#+end_src..You.can |
| 4ee0 | 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 75 | .pick.this.backend.from.the.menu |
| 4f00 | 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 5d | .when.using.gptel.(see.[[#usage] |
| 4f20 | 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 20 53 65 74 20 | [Usage]])..*****.(Optional).Set. |
| 4f40 | 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 64 0a 0a 54 68 | as.the.default.gptel.backend..Th |
| 4f60 | 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 65 6e 64 20 61 | e.above.code.makes.the.backend.a |
| 4f80 | 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 20 77 61 6e 74 | vailable.to.select...If.you.want |
| 4fa0 | 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 6e 64 20 66 6f | .it.to.be.the.default.backend.fo |
| 4fc0 | 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 73 20 74 68 65 | r.gptel,.you.can.set.this.as.the |
| 4fe0 | 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 20 55 73 65 20 | .value.of.=gptel-backend=...Use. |
| 5000 | 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 23 2b 62 65 67 | this.instead.of.the.above..#+beg |
| 5020 | 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 63 6f | in_src.emacs-lisp.;;.OPTIONAL.co |
| 5040 | 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 64 65 6c 20 20 | nfiguration.(setq..gptel-model.. |
| 5060 | 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 6e 73 74 72 75 63 | .'mistralai/Mixtral-8x7B-Instruc |
| 5080 | 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 74 65 6c 2d 6d 61 | t-v0.1..gptel-backend..(gptel-ma |
| 50a0 | 6b 65 2d 6f 70 65 6e 61 69 20 22 54 6f 67 65 74 68 65 72 41 49 22 20 20 20 20 20 20 20 20 20 0a | ke-openai."TogetherAI".......... |
| 50c0 | 20 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 22 0a 20 20 20 3a | ...:host."api.together.xyz"....: |
| 50e0 | 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 20 20 20 20 20 | key."your-api-key".............. |
| 5100 | 20 20 20 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 | .........:stream.t....:models.'( |
| 5120 | 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 6b 20 74 6f 67 65 74 68 65 72 | ;;.has.many.more,.check.together |
| 5140 | 2e 61 69 0a 20 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 | .ai..............mistralai/Mixtr |
| 5160 | 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 75 63 74 2d 76 30 2e 31 0a 20 20 20 20 20 20 20 20 20 20 | al-8x7B-Instruct-v0.1........... |
| 5180 | 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 31 33 62 2d 49 6e 73 74 72 | ...codellama/CodeLlama-13b-Instr |
| 51a0 | 75 63 74 2d 68 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f | uct-hf..............codellama/Co |
| 51c0 | 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 29 0a 23 2b 65 6e 64 | deLlama-34b-Instruct-hf))).#+end |
| 51e0 | 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 6c 3a | _src..#+html:.</details>.#+html: |
| 5200 | 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 6e 79 73 63 61 6c | .<details><summary>.****.Anyscal |
| 5220 | 65 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 | e.#+html:.</summary>..Register.a |
| 5240 | 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 2d | .backend.with.#+begin_src.emacs- |
| 5260 | 6c 69 73 70 0a 3b 3b 20 41 6e 79 73 63 61 6c 65 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 | lisp.;;.Anyscale.offers.an.OpenA |
| 5280 | 49 20 63 6f 6d 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 | I.compatible.API.(gptel-make-ope |
| 52a0 | 6e 61 69 20 22 41 6e 79 73 63 61 6c 65 22 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 | nai."Anyscale"...........;Any.na |
| 52c0 | 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 65 6e 64 70 6f 69 6e | me.you.want...:host."api.endpoin |
| 52e0 | 74 73 2e 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 | ts.anyscale.com"...:key."your-ap |
| 5300 | 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 65 | i-key"...................;can.be |
| 5320 | 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 |
| 5340 | 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 6f 72 65 2c 20 63 | ...:models.'(;;.has.many.more,.c |
| 5360 | 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 6d 69 73 74 72 61 | heck.anyscale.............mistra |
| 5380 | 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 29 29 | lai/Mixtral-8x7B-Instruct-v0.1)) |
| 53a0 | 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 |
| 53c0 | 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 |
| 53e0 | 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]])..** |
| 5400 | 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 |
| 5420 | 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. |
| 5440 | 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 |
| 5460 | 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 |
| 5480 | 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. |
| 54a0 | 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 |
| 54c0 | 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. |
| 54e0 | 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- |
| 5500 | 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.( |
| 5520 | 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 |
| 5540 | 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 |
| 5560 | 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 41 6e | -backend..(gptel-make-openai."An |
| 5580 | 79 73 63 61 6c 65 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 | yscale"..................:host." |
| 55a0 | 61 70 69 2e 65 6e 64 70 6f 69 6e 74 73 2e 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 22 0a 20 20 20 20 | api.endpoints.anyscale.com"..... |
| 55c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 | .............:key."your-api-key" |
| 55e0 | 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 3b 3b 20 68 | ..................:models.'(;;.h |
| 5600 | 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 0a 20 20 20 | as.many.more,.check.anyscale.... |
| 5620 | 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 69 73 74 72 61 6c 61 | ........................mistrala |
| 5640 | 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 29 29 29 0a | i/Mixtral-8x7B-Instruct-v0.1))). |
| 5660 | 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 23 2b | #+end_src..#+html:.</details>.#+ |
| 5680 | 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 50 65 | html:.<details><summary>.****.Pe |
| 56a0 | 72 70 6c 65 78 69 74 79 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 | rplexity.#+html:.</summary>..Reg |
| 56c0 | 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 5f 73 72 63 | ister.a.backend.with.#+begin_src |
| 56e0 | 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 65 72 70 6c 65 78 69 | .emacs-lisp.(gptel-make-perplexi |
| 5700 | 74 79 20 22 50 65 72 70 6c 65 78 69 74 79 22 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f | ty."Perplexity".....;Any.name.yo |
| 5720 | 75 20 77 61 6e 74 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 | u.want...:key."your-api-key".... |
| 5740 | 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 74 69 6f | ...............;can.be.a.functio |
| 5760 | 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 72 65 61 6d | n.that.returns.the.key...:stream |
| 5780 | 20 74 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 20 20 20 3b | .t)............................; |
| 57a0 | 49 66 20 79 6f 75 20 77 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 62 65 20 73 74 72 65 | If.you.want.responses.to.be.stre |
| 57c0 | 61 6d 65 64 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 | amed.#+end_src..You.can.pick.thi |
| 57e0 | 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 73 69 | s.backend.from.the.menu.when.usi |
| 5800 | 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 5d 29 | ng.gptel.(see.[[#usage][Usage]]) |
| 5820 | 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 20 64 65 | ..*****.(Optional).Set.as.the.de |
| 5840 | 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 65 20 63 | fault.gptel.backend..The.above.c |
| 5860 | 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 6c 65 20 | ode.makes.the.backend.available. |
| 5880 | 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 20 62 65 | to.select...If.you.want.it.to.be |
| 58a0 | 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 6c 2c 20 | .the.default.backend.for.gptel,. |
| 58c0 | 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 20 6f 66 | you.can.set.this.as.the.value.of |
| 58e0 | 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 6e 73 74 | .=gptel-backend=...Use.this.inst |
| 5900 | 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 20 65 6d | ead.of.the.above..#+begin_src.em |
| 5920 | 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 61 74 69 | acs-lisp.;;.OPTIONAL.configurati |
| 5940 | 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 73 6f 6e 61 72 0a 20 | on.(setq..gptel-model...'sonar.. |
| 5960 | 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 70 65 72 70 6c 65 | gptel-backend.(gptel-make-perple |
| 5980 | 78 69 74 79 20 22 50 65 72 70 6c 65 78 69 74 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xity."Perplexity"............... |
| 59a0 | 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 3a 73 74 72 65 61 6d 20 74 | ...:key."your-api-key".:stream.t |
| 59c0 | 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 6c 73 3e | )).#+end_src..#+html:.</details> |
| 59e0 | 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>.**** |
| 5a00 | 20 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 75 64 65 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 | .Anthropic.(Claude).#+html:.</su |
| 5a20 | 6d 6d 61 72 79 3e 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 | mmary>.Register.a.backend.with.# |
| 5a40 | 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 61 6b | +begin_src.emacs-lisp.(gptel-mak |
| 5a60 | 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 64 65 22 20 20 20 20 20 20 20 20 20 20 3b 41 | e-anthropic."Claude"..........;A |
| 5a80 | 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 | ny.name.you.want...:stream.t.... |
| 5aa0 | 20 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 74 72 65 61 6d | .........................;Stream |
| 5ac0 | 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b | ing.responses...:key."your-api-k |
| 5ae0 | 65 79 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 54 68 65 20 3d 3a 6b 65 79 3d 20 63 61 6e 20 62 65 | ey").#+end_src.The.=:key=.can.be |
| 5b00 | 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 |
| 5b20 | 20 28 6d 6f 72 65 20 73 65 63 75 72 65 29 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 | .(more.secure)...You.can.pick.th |
| 5b40 | 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 73 | is.backend.from.the.menu.when.us |
| 5b60 | 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 5d | ing.gptel.(see.[[#usage][Usage]] |
| 5b80 | 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 20 | )...*****.(Optional).Set.as.the. |
| 5ba0 | 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 65 | default.gptel.backend..The.above |
| 5bc0 | 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 6c | .code.makes.the.backend.availabl |
| 5be0 | 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 20 | e.to.select...If.you.want.it.to. |
| 5c00 | 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 6c | be.the.default.backend.for.gptel |
| 5c20 | 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 20 | ,.you.can.set.this.as.the.value. |
| 5c40 | 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 6e | of.=gptel-backend=...Use.this.in |
| 5c60 | 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 20 | stead.of.the.above..#+begin_src. |
| 5c80 | 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 61 | emacs-lisp.;;.OPTIONAL.configura |
| 5ca0 | 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 63 6c 61 75 64 65 2d | tion.(setq..gptel-model.'claude- |
| 5cc0 | 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 20 3b 20 20 22 63 6c 61 75 64 65 2d 33 2d 6f | 3-sonnet-20240229.;.."claude-3-o |
| 5ce0 | 70 75 73 2d 32 30 32 34 30 32 32 39 22 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 0a 20 67 70 | pus-20240229".also.available..gp |
| 5d00 | 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 6e 74 68 72 6f 70 69 | tel-backend.(gptel-make-anthropi |
| 5d20 | 63 20 22 43 6c 61 75 64 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 | c."Claude"..................:str |
| 5d40 | 65 61 6d 20 74 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 29 0a 23 2b 65 6e | eam.t.:key."your-api-key")).#+en |
| 5d60 | 64 5f 73 72 63 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 49 6e 74 65 72 69 6d 20 | d_src..*****.(Optional).Interim. |
| 5d80 | 73 75 70 70 6f 72 74 20 66 6f 72 20 43 6c 61 75 64 65 20 33 2e 37 20 53 6f 6e 6e 65 74 0a 0a 67 | support.for.Claude.3.7.Sonnet..g |
| 5da0 | 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20 73 75 70 70 6f 72 74 20 73 70 65 63 69 66 | ptel.does.not.yet.support.specif |
| 5dc0 | 79 69 6e 67 20 4c 4c 4d 20 22 72 65 61 73 6f 6e 69 6e 67 22 2f 22 74 68 69 6e 6b 69 6e 67 22 20 | ying.LLM."reasoning"/"thinking". |
| 5de0 | 62 65 68 61 76 69 6f 72 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 74 68 72 6f 75 67 68 20 69 74 | behaviors.dynamically.through.it |
| 5e00 | 73 20 69 6e 74 65 72 66 61 63 65 2e 20 20 54 68 69 73 20 65 66 66 6f 72 74 20 69 73 20 6f 6e 67 | s.interface...This.effort.is.ong |
| 5e20 | 6f 69 6e 67 2c 20 62 75 74 20 69 6e 20 74 68 65 20 6d 65 61 6e 74 69 6d 65 20 79 6f 75 20 75 73 | oing,.but.in.the.meantime.you.us |
| 5e40 | 65 20 74 68 65 20 43 6c 61 75 64 65 20 33 2e 37 20 53 6f 6e 6e 65 74 20 6d 6f 64 65 6c 20 69 6e | e.the.Claude.3.7.Sonnet.model.in |
| 5e60 | 20 69 74 73 20 22 74 68 69 6e 6b 69 6e 67 22 20 6d 6f 64 65 20 62 79 20 64 65 66 69 6e 69 6e 67 | .its."thinking".mode.by.defining |
| 5e80 | 20 61 20 73 65 63 6f 6e 64 20 43 6c 61 75 64 65 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 73 65 6c | .a.second.Claude.backend.and.sel |
| 5ea0 | 65 63 74 69 6e 67 20 69 74 20 69 6e 20 76 69 61 20 74 68 65 20 55 49 20 6f 72 20 65 6c 69 73 70 | ecting.it.in.via.the.UI.or.elisp |
| 5ec0 | 3a 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 67 70 74 65 6c | :..#+begin_src.emacs-lisp.(gptel |
| 5ee0 | 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 64 65 2d 74 68 69 6e 6b 69 6e 67 | -make-anthropic."Claude-thinking |
| 5f00 | 22 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 20 22 79 6f 75 | ".;Any.name.you.want...:key."you |
| 5f20 | 72 2d 41 50 49 2d 6b 65 79 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 | r-API-key"...:stream.t...:models |
| 5f40 | 20 27 28 63 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 29 0a 20 | .'(claude-3-7-sonnet-20250219).. |
| 5f60 | 20 3a 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | .:header.(lambda.().(when-let*.( |
| 5f80 | 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 20 | (key.(gptel--get-api-key)))..... |
| 5fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 78 2d 61 70 69 2d 6b 65 79 22 20 2e 20 2c | ..............`(("x-api-key"..., |
| 5fc0 | 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 28 22 61 6e 74 68 72 | key).....................("anthr |
| 5fe0 | 6f 70 69 63 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 32 30 32 33 2d 30 36 2d 30 31 22 29 0a 20 20 | opic-version"..."2023-06-01")... |
| 6000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 | ..................("anthropic-be |
| 6020 | 74 61 22 20 2e 20 22 70 64 66 73 2d 32 30 32 34 2d 30 39 2d 32 35 22 29 0a 20 20 20 20 20 20 20 | ta"..."pdfs-2024-09-25")........ |
| 6040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e | .............("anthropic-beta".. |
| 6060 | 20 22 6f 75 74 70 75 74 2d 31 32 38 6b 2d 32 30 32 35 2d 30 32 2d 31 39 22 29 0a 20 20 20 20 20 | ."output-128k-2025-02-19")...... |
| 6080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 | ...............("anthropic-beta" |
| 60a0 | 20 2e 20 22 70 72 6f 6d 70 74 2d 63 61 63 68 69 6e 67 2d 32 30 32 34 2d 30 37 2d 33 31 22 29 29 | ..."prompt-caching-2024-07-31")) |
| 60c0 | 29 29 0a 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 27 28 3a 74 68 69 6e 6b 69 6e 67 | ))...:request-params.'(:thinking |
| 60e0 | 20 28 3a 74 79 70 65 20 22 65 6e 61 62 6c 65 64 22 20 3a 62 75 64 67 65 74 5f 74 6f 6b 65 6e 73 | .(:type."enabled".:budget_tokens |
| 6100 | 20 32 30 34 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 5f | .2048).....................:max_ |
| 6120 | 74 6f 6b 65 6e 73 20 34 30 39 36 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e | tokens.4096)).#+end_src..You.can |
| 6140 | 20 73 65 74 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 75 64 67 65 74 20 74 6f 6b 65 6e 73 | .set.the.reasoning.budget.tokens |
| 6160 | 20 61 6e 64 20 6d 61 78 20 74 6f 6b 65 6e 73 20 66 6f 72 20 74 68 69 73 20 75 73 61 67 65 20 76 | .and.max.tokens.for.this.usage.v |
| 6180 | 69 61 20 74 68 65 20 3d 3a 62 75 64 67 65 74 5f 74 6f 6b 65 6e 73 3d 20 61 6e 64 20 3d 3a 6d 61 | ia.the.=:budget_tokens=.and.=:ma |
| 61a0 | 78 5f 74 6f 6b 65 6e 73 3d 20 6b 65 79 73 20 68 65 72 65 2c 20 72 65 73 70 65 63 74 69 76 65 6c | x_tokens=.keys.here,.respectivel |
| 61c0 | 79 2e 0a 0a 4f 6e 63 65 20 70 72 6f 70 65 72 20 73 75 70 70 6f 72 74 20 66 6f 72 20 73 70 65 63 | y...Once.proper.support.for.spec |
| 61e0 | 69 66 79 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 20 62 65 68 61 76 69 6f 72 73 20 69 73 20 61 64 | ifying.reasoning.behaviors.is.ad |
| 6200 | 64 65 64 20 74 6f 20 67 70 74 65 6c 27 73 20 55 49 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 75 | ded.to.gptel's.UI.this.will.be.u |
| 6220 | 6e 6e 65 63 65 73 73 61 72 79 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a | nnecessary...#+html:.</details>. |
| 6240 | 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>.****. |
| 6260 | 47 72 6f 71 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 | Groq.#+html:.</summary>..Registe |
| 6280 | 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 |
| 62a0 | 63 73 2d 6c 69 73 70 0a 3b 3b 20 47 72 6f 71 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 | cs-lisp.;;.Groq.offers.an.OpenAI |
| 62c0 | 20 63 6f 6d 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 | .compatible.API.(gptel-make-open |
| 62e0 | 61 69 20 22 47 72 6f 71 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d | ai."Groq"...............;Any.nam |
| 6300 | 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 67 72 6f 71 2e 63 6f 6d | e.you.want...:host."api.groq.com |
| 6320 | 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 69 2f 76 31 2f 63 68 61 74 2f 63 | "...:endpoint."/openai/v1/chat/c |
| 6340 | 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 | ompletions"...:stream.t...:key." |
| 6360 | 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 20 | your-api-key"................... |
| 6380 | 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 20 | ;can.be.a.function.that.returns. |
| 63a0 | 74 68 65 20 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 | the.key...:models.'(llama-3.1-70 |
| 63c0 | 62 2d 76 65 72 73 61 74 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 2d 33 2e | b-versatile.............llama-3. |
| 63e0 | 31 2d 38 62 2d 69 6e 73 74 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d | 1-8b-instant.............llama3- |
| 6400 | 37 30 62 2d 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 38 62 2d 38 | 70b-8192.............llama3-8b-8 |
| 6420 | 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 | 192.............mixtral-8x7b-327 |
| 6440 | 36 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6d 6d 61 2d 37 62 2d 69 74 29 29 0a 23 2b 65 | 68.............gemma-7b-it)).#+e |
| 6460 | 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 6e | nd_src..You.can.pick.this.backen |
| 6480 | 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 6c | d.from.the.menu.when.using.gptel |
| 64a0 | 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 20 20 4e 6f 74 65 20 | .(see.[[#usage][Usage]])...Note. |
| 64c0 | 74 68 61 74 20 47 72 6f 71 20 69 73 20 66 61 73 74 20 65 6e 6f 75 67 68 20 74 68 61 74 20 79 6f | that.Groq.is.fast.enough.that.yo |
| 64e0 | 75 20 63 6f 75 6c 64 20 65 61 73 69 6c 79 20 73 65 74 20 3d 3a 73 74 72 65 61 6d 20 6e 69 6c 3d | u.could.easily.set.=:stream.nil= |
| 6500 | 20 61 6e 64 20 73 74 69 6c 6c 20 67 65 74 20 6e 65 61 72 2d 69 6e 73 74 61 6e 74 20 72 65 73 70 | .and.still.get.near-instant.resp |
| 6520 | 6f 6e 73 65 73 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 | onses...*****.(Optional).Set.as. |
| 6540 | 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 |
| 6560 | 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 |
| 6580 | 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 |
| 65a0 | 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 |
| 65c0 | 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 |
| 65e0 | 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 |
| 6600 | 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_ |
| 6620 | 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 |
| 6640 | 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 6d 69 | guration.(setq.gptel-model...'mi |
| 6660 | 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 | xtral-8x7b-32768.......gptel-bac |
| 6680 | 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 69 20 22 47 | kend.......(gptel-make-openai."G |
| 66a0 | 72 6f 71 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 67 72 6f 71 2e 63 6f 6d | roq".........:host."api.groq.com |
| 66c0 | 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 69 2f 76 31 2f | ".........:endpoint."/openai/v1/ |
| 66e0 | 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 74 72 65 61 | chat/completions".........:strea |
| 6700 | 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 0a | m.t.........:key."your-api-key". |
| 6720 | 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d | ........:models.'(llama-3.1-70b- |
| 6740 | 76 65 72 73 61 74 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d | versatile...................llam |
| 6760 | 61 2d 33 2e 31 2d 38 62 2d 69 6e 73 74 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a-3.1-8b-instant................ |
| 6780 | 20 20 20 6c 6c 61 6d 61 33 2d 37 30 62 2d 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...llama3-70b-8192.............. |
| 67a0 | 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 20 20 | .....llama3-8b-8192............. |
| 67c0 | 20 20 20 20 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 | ......mixtral-8x7b-32768........ |
| 67e0 | 20 20 20 20 20 20 20 20 20 20 20 67 65 6d 6d 61 2d 37 62 2d 69 74 29 29 29 0a 23 2b 65 6e 64 5f | ...........gemma-7b-it))).#+end_ |
| 6800 | 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: |
| 6820 | 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 4f 70 65 6e 52 6f 75 | .<details><summary>.****.OpenRou |
| 6840 | 74 65 72 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 | ter.#+html:.</summary>..Register |
| 6860 | 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 |
| 6880 | 73 2d 6c 69 73 70 0a 3b 3b 20 4f 70 65 6e 52 6f 75 74 65 72 20 6f 66 66 65 72 73 20 61 6e 20 4f | s-lisp.;;.OpenRouter.offers.an.O |
| 68a0 | 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 | penAI.compatible.API.(gptel-make |
| 68c0 | 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"............ |
| 68e0 | 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 74 20 22 6f | ...;Any.name.you.want...:host."o |
| 6900 | 70 65 6e 72 6f 75 74 65 72 2e 61 69 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f | penrouter.ai"...:endpoint."/api/ |
| 6920 | 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 65 61 6d 20 74 | v1/chat/completions"...:stream.t |
| 6940 | 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 20 | ...:key."your-api-key".......... |
| 6960 | 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 74 | .........;can.be.a.function.that |
| 6980 | 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 6f 70 65 | .returns.the.key...:models.'(ope |
| 69a0 | 6e 61 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 6d 69 | nai/gpt-3.5-turbo.............mi |
| 69c0 | 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 74 0a 20 20 | stralai/mixtral-8x7b-instruct... |
| 69e0 | 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 33 | ..........meta-llama/codellama-3 |
| 6a00 | 34 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d | 4b-instruct.............codellam |
| 6a20 | 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 | a/codellama-70b-instruct........ |
| 6a40 | 20 20 20 20 20 67 6f 6f 67 6c 65 2f 70 61 6c 6d 2d 32 2d 63 6f 64 65 63 68 61 74 2d 62 69 73 6f | .....google/palm-2-codechat-biso |
| 6a60 | 6e 2d 33 32 6b 0a 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 | n-32k.............google/gemini- |
| 6a80 | 70 72 6f 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 | pro))..#+end_src..You.can.pick.t |
| 6aa0 | 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 |
| 6ac0 | 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] |
| 6ae0 | 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 |
| 6b00 | 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 |
| 6b20 | 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 |
| 6b40 | 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 |
| 6b60 | 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 |
| 6b80 | 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 |
| 6ba0 | 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 |
| 6bc0 | 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 |
| 6be0 | 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 |
| 6c00 | 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 6d 69 78 74 72 | ation.(setq.gptel-model...'mixtr |
| 6c20 | 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | al-8x7b-32768.......gptel-backen |
| 6c40 | 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 69 20 22 4f 70 65 6e | d.......(gptel-make-openai."Open |
| 6c60 | 52 6f 75 74 65 72 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 | Router"...............;Any.name. |
| 6c80 | 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6f 70 65 6e 72 6f 75 74 | you.want.........:host."openrout |
| 6ca0 | 65 72 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 61 70 69 2f 76 | er.ai".........:endpoint."/api/v |
| 6cc0 | 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 74 72 | 1/chat/completions".........:str |
| 6ce0 | 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 | eam.t.........:key."your-api-key |
| 6d00 | 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 66 75 | "...................;can.be.a.fu |
| 6d20 | 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 20 20 | nction.that.returns.the.key..... |
| 6d40 | 20 20 20 20 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 | ....:models.'(openai/gpt-3.5-tur |
| 6d60 | 62 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 6d | bo...................mistralai/m |
| 6d80 | 69 78 74 72 61 6c 2d 38 78 37 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ixtral-8x7b-instruct............ |
| 6da0 | 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 33 34 62 2d | .......meta-llama/codellama-34b- |
| 6dc0 | 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 63 6f 64 65 6c | instruct...................codel |
| 6de0 | 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 | lama/codellama-70b-instruct..... |
| 6e00 | 20 20 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 63 6f 64 65 | ..............google/palm-2-code |
| 6e20 | 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 20 20 20 20 20 | chat-bison-32k.................. |
| 6e40 | 20 67 6f 6f 67 6c 65 2f 67 65 6d 69 6e 69 2d 70 72 6f 29 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 63 | .google/gemini-pro)))..#+end_src |
| 6e60 | 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 |
| 6e80 | 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 50 72 69 76 61 74 65 47 50 54 0a | tails><summary>.****.PrivateGPT. |
| 6ea0 | 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 62 | #+html:.</summary>..Register.a.b |
| 6ec0 | 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 |
| 6ee0 | 73 70 0a 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 | sp.(gptel-make-privategpt."priva |
| 6f00 | 74 65 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 | teGPT"...............;Any.name.y |
| 6f20 | 6f 75 20 77 61 6e 74 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 3a 68 6f | ou.want...:protocol."http"...:ho |
| 6f40 | 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a | st."localhost:8001"...:stream.t. |
| 6f60 | 20 20 3a 63 6f 6e 74 65 78 74 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:context.t.................... |
| 6f80 | 20 20 20 20 20 20 20 20 3b 55 73 65 20 63 6f 6e 74 65 78 74 20 70 72 6f 76 69 64 65 64 20 62 79 | ........;Use.context.provided.by |
| 6fa0 | 20 65 6d 62 65 64 64 69 6e 67 73 0a 20 20 3a 73 6f 75 72 63 65 73 20 74 20 20 20 20 20 20 20 20 | .embeddings...:sources.t........ |
| 6fc0 | 20 20 20 20 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 | ....................;Return.info |
| 6fe0 | 72 6d 61 74 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 | rmation.about.source.documents.. |
| 7000 | 20 3a 6d 6f 64 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 0a 0a 23 2b 65 6e 64 5f | .:models.'(private-gpt))..#+end_ |
| 7020 | 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 |
| 7040 | 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 |
| 7060 | 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 |
| 7080 | 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 |
| 70a0 | 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. |
| 70c0 | 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. |
| 70e0 | 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 |
| 7100 | 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 |
| 7120 | 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 |
| 7140 | 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 |
| 7160 | 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.; |
| 7180 | 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 |
| 71a0 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 70 72 69 76 61 74 65 2d 67 70 74 0a 20 20 20 20 20 20 | ptel-model...'private-gpt....... |
| 71c0 | 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 2d | gptel-backend.......(gptel-make- |
| 71e0 | 70 72 69 76 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 | privategpt."privateGPT"......... |
| 7200 | 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 20 20 20 20 20 | ......;Any.name.you.want........ |
| 7220 | 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 | .:protocol."http".........:host. |
| 7240 | 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d | "localhost:8001".........:stream |
| 7260 | 20 74 0a 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 20 74 20 20 20 20 20 20 20 20 20 20 20 | .t.........:context.t........... |
| 7280 | 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 74 20 70 72 | .................;Use.context.pr |
| 72a0 | 6f 76 69 64 65 64 20 62 79 20 65 6d 62 65 64 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 3a 73 6f | ovided.by.embeddings.........:so |
| 72c0 | 75 72 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 | urces.t......................... |
| 72e0 | 20 20 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 | ...;Return.information.about.sou |
| 7300 | 72 63 65 20 64 6f 63 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 | rce.documents.........:models.'( |
| 7320 | 70 72 69 76 61 74 65 2d 67 70 74 29 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d | private-gpt)))..#+end_src..#+htm |
| 7340 | 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>< |
| 7360 | 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 65 65 70 53 65 65 6b 0a 23 2b 68 74 6d 6c 3a 20 3c | summary>.****.DeepSeek.#+html:.< |
| 7380 | 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 |
| 73a0 | 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 67 70 74 65 6c | th.#+begin_src.emacs-lisp.(gptel |
| 73c0 | 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 70 53 65 65 6b 22 20 20 20 20 20 20 20 | -make-deepseek."DeepSeek"....... |
| 73e0 | 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 | ;Any.name.you.want...:stream.t.. |
| 7400 | 20 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 66 6f 72 20 73 74 | .........................;for.st |
| 7420 | 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 79 6f 75 72 2d 61 | reaming.responses...:key."your-a |
| 7440 | 70 69 2d 6b 65 79 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 | pi-key")...............;can.be.a |
| 7460 | 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.# |
| 7480 | 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 |
| 74a0 | 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 |
| 74c0 | 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]])...*** |
| 74e0 | 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 |
| 7500 | 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 |
| 7520 | 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 |
| 7540 | 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. |
| 7560 | 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 |
| 7580 | 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 |
| 75a0 | 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 |
| 75c0 | 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 |
| 75e0 | 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 |
| 7600 | 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 64 65 65 70 73 65 65 6b 2d 72 65 61 73 | etq.gptel-model...'deepseek-reas |
| 7620 | 6f 6e 65 72 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 | oner.......gptel-backend.(gptel- |
| 7640 | 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 70 53 65 65 6b 22 0a 20 20 20 20 20 20 20 | make-deepseek."DeepSeek"........ |
| 7660 | 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........ |
| 7680 | 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 2d 61 70 69 2d 6b 65 | ...............:key."your-api-ke |
| 76a0 | 79 22 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 6c | y")).#+end_src..#+html:.</detail |
| 76c0 | 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 2a | s>.#+html:.<details><summary>.** |
| 76e0 | 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 0a 0a | **.Cerebras.#+html:.</summary>.. |
| 7700 | 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 5f | Register.a.backend.with.#+begin_ |
| 7720 | 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 65 72 | src.emacs-lisp.;;.Cerebras.offer |
| 7740 | 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 20 41 | s.an.instant.OpenAI.compatible.A |
| 7760 | 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 73 22 | PI.(gptel-make-openai."Cerebras" |
| 7780 | 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 65 6e | ...:host."api.cerebras.ai"...:en |
| 77a0 | 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 20 20 | dpoint."/v1/chat/completions"... |
| 77c0 | 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 20 20 | :stream.t....................... |
| 77e0 | 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 72 61 | ......;optionally.nil.as.Cerebra |
| 7800 | 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 70 69 | s.is.instant.AI...:key."your-api |
| 7820 | 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 65 20 | -key"...................;can.be. |
| 7840 | 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 0a | a.function.that.returns.the.key. |
| 7860 | 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 20 20 | ..:models.'(llama3.1-70b........ |
| 7880 | 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 59 6f | .....llama3.1-8b)).#+end_src..Yo |
| 78a0 | 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 |
| 78c0 | 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 |
| 78e0 | 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 6c | sage][Usage]])...*****.(Optional |
| 7900 | 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 |
| 7920 | 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 |
| 7940 | 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 |
| 7960 | 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 |
| 7980 | 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. |
| 79a0 | 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=. |
| 79c0 | 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. |
| 79e0 | 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 |
| 7a00 | 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 6f | NAL.configuration.(setq.gptel-mo |
| 7a20 | 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 2d 62 | del...'llama3.1-8b.......gptel-b |
| 7a40 | 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 69 20 | ackend.......(gptel-make-openai. |
| 7a60 | 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 63 65 | "Cerebras".........:host."api.ce |
| 7a80 | 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 2f 76 | rebras.ai".........:endpoint."/v |
| 7aa0 | 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 74 72 | 1/chat/completions".........:str |
| 7ac0 | 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 2d 6b | eam.nil.........:key."your-api-k |
| 7ae0 | 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 2d 37 | ey".........:models.'(llama3.1-7 |
| 7b00 | 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 38 62 | 0b...................llama3.1-8b |
| 7b20 | 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 6c 73 | ))).#+end_src..#+html:.</details |
| 7b40 | 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>.*** |
| 7b60 | 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 61 72 | *.Github.Models.#+html:.</summar |
| 7b80 | 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 65 | y>..Register.a.backend.with.#+be |
| 7ba0 | 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 68 75 62 20 4d | gin_src.emacs-lisp...;;.Github.M |
| 7bc0 | 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 61 74 69 62 6c | odels.offers.an.OpenAI.compatibl |
| 7be0 | 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 22 47 69 74 68 | e.API...(gptel-make-openai."Gith |
| 7c00 | 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... |
| 7c20 | 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 69 2e 61 7a 75 | ..:host."models.inference.ai.azu |
| 7c40 | 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 74 2f 63 6f 6d | re.com".....:endpoint."/chat/com |
| 7c60 | 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 35 2d 30 31 2d | pletions?api-version=2024-05-01- |
| 7c80 | 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 3a 6b 65 79 20 | preview".....:stream.t.....:key. |
| 7ca0 | 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 64 65 6c 73 20 | "your-github-token".....:models. |
| 7cc0 | 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 69 6c 6c 20 6e | '(gpt-4o)).#+end_src..You.will.n |
| 7ce0 | 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 74 70 73 3a 2f | eed.to.create.a.github.[[https:/ |
| 7d00 | 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 61 6c 2d 61 63 | /github.com/settings/personal-ac |
| 7d20 | 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 61 6c 6c 20 74 | cess-tokens][token]]...For.all.t |
| 7d40 | 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 74 68 65 20 5b | he.available.models,.check.the.[ |
| 7d60 | 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 6c 61 63 65 2f | [https://github.com/marketplace/ |
| 7d80 | 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 20 63 61 6e 20 | models][marketplace]]...You.can. |
| 7da0 | 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 75 20 | pick.this.backend.from.the.menu. |
| 7dc0 | 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 73 61 67 65 5d | when.using.(see.[[#usage][Usage] |
| 7de0 | 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 |
| 7e00 | 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 |
| 7e20 | 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 |
| 7e40 | 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 |
| 7e60 | 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 |
| 7e80 | 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 |
| 7ea0 | 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 |
| 7ec0 | 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 |
| 7ee0 | 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 6f 6e 66 69 67 | .emacs-lisp...;;.OPTIONAL.config |
| 7f00 | 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 20 20 27 67 70 | uration...(setq.gptel-model..'gp |
| 7f20 | 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 20 20 20 20 20 | t-4o.........gptel-backend...... |
| 7f40 | 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 75 62 20 4d 6f | ...(gptel-make-openai."Github.Mo |
| 7f60 | 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 20 20 20 20 20 | dels".;Any.name.you.want........ |
| 7f80 | 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 69 2e 61 7a | ...:host."models.inference.ai.az |
| 7fa0 | 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 74 20 22 2f 63 | ure.com"...........:endpoint."/c |
| 7fc0 | 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 32 30 32 34 | hat/completions?api-version=2024 |
| 7fe0 | 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 73 74 72 65 61 | -05-01-preview"...........:strea |
| 8000 | 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 74 68 75 62 2d | m.t...........:key."your-github- |
| 8020 | 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 67 70 74 2d 34 | token"...........:models.'(gpt-4 |
| 8040 | 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 74 61 69 6c 73 | o)).#+end_src..#+html:.</details |
| 8060 | 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>.*** |
| 8080 | 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 72 79 3e 0a 0a | *.Novita.AI.#+html:.</summary>.. |
| 80a0 | 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 5f | Register.a.backend.with.#+begin_ |
| 80c0 | 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 20 6f 66 66 65 | src.emacs-lisp.;;.Novita.AI.offe |
| 80e0 | 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 0a 28 67 70 74 | rs.an.OpenAI.compatible.API.(gpt |
| 8100 | 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 20 20 20 | el-make-openai."NovitaAI"....... |
| 8120 | 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 74 20 22 61 70 | ..;Any.name.you.want...:host."ap |
| 8140 | 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 76 33 2f 6f 70 | i.novita.ai"...:endpoint."/v3/op |
| 8160 | 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 20 20 20 20 20 | enai"...:key."your-api-key"..... |
| 8180 | 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 74 69 6f 6e | ..............;can.be.a.function |
| 81a0 | 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 72 65 61 6d 20 | .that.returns.the.key...:stream. |
| 81c0 | 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 6f 72 65 2c 20 | t...:models.'(;;.has.many.more,. |
| 81e0 | 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 2d 61 70 69 0a | check.https://novita.ai/llm-api. |
| 8200 | 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 2d 6c 32 2d 31 | ............gryphe/mythomax-l2-1 |
| 8220 | 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 6c 61 6d 61 2d | 3b.............meta-llama/llama- |
| 8240 | 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 6d 65 74 61 2d | 3-70b-instruct.............meta- |
| 8260 | 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 0a 23 | llama/llama-3.1-70b-instruct)).# |
| 8280 | 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 |
| 82a0 | 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 |
| 82c0 | 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]])..**** |
| 82e0 | 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. |
| 8300 | 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 |
| 8320 | 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 |
| 8340 | 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 |
| 8360 | 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 |
| 8380 | 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 |
| 83a0 | 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 |
| 83c0 | 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 |
| 83e0 | 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 65 | sp.;;.OPTIONAL.configuration.(se |
| 8400 | 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 79 74 68 6f 6d | tq..gptel-model...'gryphe/mythom |
| 8420 | 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 67 70 74 65 6c | ax-l2-13b..gptel-backend..(gptel |
| 8440 | 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 20 20 20 20 20 | -make-openai."NovitaAI"......... |
| 8460 | 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 20 20 3a 65 6e | ....:host."api.novita.ai"....:en |
| 8480 | 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 20 22 79 6f 75 | dpoint."/v3/openai"....:key."you |
| 84a0 | 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 20 0a 20 20 | r-api-key"...................... |
| 84c0 | 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 68 61 73 20 6d | .:stream.t....:models.'(;;.has.m |
| 84e0 | 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 69 74 61 2e 61 | any.more,.check.https://novita.a |
| 8500 | 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 72 61 6c 61 69 | i/llm-api..............mistralai |
| 8520 | 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 20 20 20 | /Mixtral-8x7B-Instruct-v0.1..... |
| 8540 | 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 2d 37 30 62 2d | .........meta-llama/llama-3-70b- |
| 8560 | 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 6c 6c 61 6d 61 | instruct..............meta-llama |
| 8580 | 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 23 2b 65 6e 64 | /llama-3.1-70b-instruct))).#+end |
| 85a0 | 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 2b 68 74 6d 6c | _src..#+html:.</details>..#+html |
| 85c0 | 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 41 49 0a 23 2b | :.<details><summary>.****.xAI.#+ |
| 85e0 | 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 62 61 63 | html:.</summary>..Register.a.bac |
| 8600 | 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 73 70 | kend.with.#+begin_src.emacs-lisp |
| 8620 | 0a 3b 3b 20 78 41 49 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 | .;;.xAI.offers.an.OpenAI.compati |
| 8640 | 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 78 41 49 22 | ble.API.(gptel-make-openai."xAI" |
| 8660 | 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 20 | ...........;Any.name.you.want... |
| 8680 | 3a 68 6f 73 74 20 22 61 70 69 2e 78 2e 61 69 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 | :host."api.x.ai"...:key."your-ap |
| 86a0 | 69 2d 6b 65 79 22 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 | i-key"..............;can.be.a.fu |
| 86c0 | 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 65 | nction.that.returns.the.key...:e |
| 86e0 | 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 20 | ndpoint."/v1/chat/completions".. |
| 8700 | 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 78 41 49 20 6e 6f | .:stream.t...:models.'(;;.xAI.no |
| 8720 | 77 20 6f 6e 6c 79 20 6f 66 66 65 72 73 20 60 67 72 6f 6b 2d 62 65 74 61 60 20 61 73 20 6f 66 20 | w.only.offers.`grok-beta`.as.of. |
| 8740 | 74 68 65 20 74 69 6d 65 20 6f 66 20 74 68 69 73 20 77 72 69 74 69 6e 67 0a 20 20 20 20 20 20 20 | the.time.of.this.writing........ |
| 8760 | 20 20 20 20 20 67 72 6f 6b 2d 62 65 74 61 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 | .....grok-beta)).#+end_src..You. |
| 8780 | 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 6d | can.pick.this.backend.from.the.m |
| 87a0 | 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 73 61 | enu.when.using.gptel.(see.[[#usa |
| 87c0 | 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 20 53 | ge][Usage]])..*****.(Optional).S |
| 87e0 | 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 64 0a | et.as.the.default.gptel.backend. |
| 8800 | 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 65 6e | .The.above.code.makes.the.backen |
| 8820 | 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 20 77 | d.available.to.select...If.you.w |
| 8840 | 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 6e 64 | ant.it.to.be.the.default.backend |
| 8860 | 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 73 20 | .for.gptel,.you.can.set.this.as. |
| 8880 | 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 20 55 | the.value.of.=gptel-backend=...U |
| 88a0 | 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 23 2b | se.this.instead.of.the.above..#+ |
| 88c0 | 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 41 4c | begin_src.emacs-lisp.;;.OPTIONAL |
| 88e0 | 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 64 65 | .configuration.(setq..gptel-mode |
| 8900 | 6c 20 20 20 27 67 72 6f 6b 2d 62 65 74 61 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 28 | l...'grok-beta..gptel-backend..( |
| 8920 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 78 41 49 22 20 20 20 20 20 20 20 20 20 | gptel-make-openai."xAI"......... |
| 8940 | 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 3a 68 6f 73 74 20 22 61 | ..;Any.name.you.want....:host."a |
| 8960 | 70 69 2e 78 2e 61 69 22 0a 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 | pi.x.ai"....:key."your-api-key". |
| 8980 | 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 74 69 6f 6e 20 | .............;can.be.a.function. |
| 89a0 | 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 20 3a 65 6e 64 70 6f 69 6e | that.returns.the.key....:endpoin |
| 89c0 | 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 20 3a 73 74 72 | t."/v1/chat/completions"....:str |
| 89e0 | 65 61 6d 20 74 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 78 41 49 20 6e 6f 77 20 6f 6e | eam.t....:models.'(;;.xAI.now.on |
| 8a00 | 6c 79 20 6f 66 66 65 72 73 20 60 67 72 6f 6b 2d 62 65 74 61 60 20 61 73 20 6f 66 20 74 68 65 20 | ly.offers.`grok-beta`.as.of.the. |
| 8a20 | 74 69 6d 65 20 6f 66 20 74 68 69 73 20 77 72 69 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | time.of.this.writing............ |
| 8a40 | 20 20 67 72 6f 6b 2d 62 65 74 61 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c | ..grok-beta))).#+end_src..#+html |
| 8a60 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 2a 2a 20 55 73 61 67 65 0a 0a 67 70 74 65 6c 20 70 72 | :.</details>..**.Usage..gptel.pr |
| 8a80 | 6f 76 69 64 65 73 20 61 20 66 65 77 20 70 6f 77 65 72 66 75 6c 2c 20 67 65 6e 65 72 61 6c 20 70 | ovides.a.few.powerful,.general.p |
| 8aa0 | 75 72 70 6f 73 65 20 61 6e 64 20 66 6c 65 78 69 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 59 | urpose.and.flexible.commands...Y |
| 8ac0 | 6f 75 20 63 61 6e 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 74 77 65 61 6b 20 74 68 65 69 72 20 62 | ou.can.dynamically.tweak.their.b |
| 8ae0 | 65 68 61 76 69 6f 72 20 74 6f 20 74 68 65 20 6e 65 65 64 73 20 6f 66 20 79 6f 75 72 20 74 61 73 | ehavior.to.the.needs.of.your.tas |
| 8b00 | 6b 20 77 69 74 68 20 2f 64 69 72 65 63 74 69 76 65 73 2f 2c 20 72 65 64 69 72 65 63 74 69 6f 6e | k.with./directives/,.redirection |
| 8b20 | 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 6d 6f 72 65 2e 20 20 54 68 65 72 65 20 69 73 20 61 20 5b | .options.and.more...There.is.a.[ |
| 8b40 | 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 74 63 68 3f 76 | [https://www.youtube.com/watch?v |
| 8b60 | 3d 62 73 52 6e 68 5f 62 72 67 67 4d 5d 5b 76 69 64 65 6f 20 64 65 6d 6f 5d 5d 20 73 68 6f 77 69 | =bsRnh_brggM][video.demo]].showi |
| 8b80 | 6e 67 20 76 61 72 69 6f 75 73 20 75 73 65 73 20 6f 66 20 67 70 74 65 6c 20 2d 2d 20 62 75 74 20 | ng.various.uses.of.gptel.--.but. |
| 8ba0 | 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 6d 69 67 68 74 20 62 65 20 61 6c 6c 20 79 6f 75 20 6e 65 | =gptel-send=.might.be.all.you.ne |
| 8bc0 | 65 64 2e 0a 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 2d | ed...|-------------------+------ |
| 8be0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8c00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8c20 | 2d 2d 2d 2d 2d 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 | -----------------------------|.| |
| 8c40 | 20 2a 54 6f 20 73 65 6e 64 20 71 75 65 72 69 65 73 2a 20 7c 20 44 65 73 63 72 69 70 74 69 6f 6e | .*To.send.queries*.|.Description |
| 8c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8ca0 | 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 | .......................|.|------ |
| 8cc0 | 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 | -------------+------------------ |
| 8ce0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8d00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8d20 | 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 65 6e 64 | -----------------|.|.=gptel-send |
| 8d40 | 3d 20 20 20 20 20 20 7c 20 53 65 6e 64 20 61 6c 6c 20 74 65 78 74 20 75 70 20 74 6f 20 3d 28 70 | =......|.Send.all.text.up.to.=(p |
| 8d60 | 6f 69 6e 74 29 3d 2c 20 6f 72 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 66 20 72 65 67 69 | oint)=,.or.the.selection.if.regi |
| 8d80 | 6f 6e 20 69 73 20 61 63 74 69 76 65 2e 20 20 57 6f 72 6b 73 20 61 6e 79 77 68 65 72 65 20 69 6e | on.is.active...Works.anywhere.in |
| 8da0 | 20 45 6d 61 63 73 2e 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 3d 20 20 20 20 20 20 20 20 20 20 | .Emacs.....|.|.=gptel=.......... |
| 8dc0 | 20 7c 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 | .|.Create.a.new.dedicated.chat.b |
| 8de0 | 75 66 66 65 72 2e 20 20 4e 6f 74 20 72 65 71 75 69 72 65 64 20 74 6f 20 75 73 65 20 67 70 74 65 | uffer...Not.required.to.use.gpte |
| 8e00 | 6c 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 20 20 20 20 20 20 | l............................... |
| 8e20 | 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 3d 20 20 20 7c 20 52 65 77 | .....|.|.=gptel-rewrite=...|.Rew |
| 8e40 | 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 20 63 68 61 6e 67 65 20 74 68 65 20 73 65 6c | rite,.refactor.or.change.the.sel |
| 8e60 | 65 63 74 65 64 20 72 65 67 69 6f 6e 2e 20 20 43 61 6e 20 64 69 66 66 2f 65 64 69 66 66 20 63 68 | ected.region...Can.diff/ediff.ch |
| 8e80 | 61 6e 67 65 73 20 62 65 66 6f 72 65 20 6d 65 72 67 69 6e 67 2f 61 70 70 6c 79 69 6e 67 2e 20 7c | anges.before.merging/applying..| |
| 8ea0 | 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 2d 2d 2d 2d 2d | .|-------------------+---------- |
| 8ec0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8ee0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8f00 | 2d 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 0a 7c 2d 2d 2d | -------------------------|..|--- |
| 8f20 | 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 2d 2d 2d 2d | ------------------+------------- |
| 8f40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 8f60 | 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 74 77 65 61 6b 20 | ------------------|.|.*To.tweak. |
| 8f80 | 62 65 68 61 76 69 6f 72 2a 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | behavior*.|..................... |
| 8fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8fc0 | 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 2d | ..........|.|------------------- |
| 8fe0 | 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 | --+----------------------------- |
| 9000 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9020 | 2d 2d 7c 0a 7c 20 3d 43 2d 75 3d 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 20 7c 20 54 72 61 6e | --|.|.=C-u=.=gptel-send=..|.Tran |
| 9040 | 73 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 70 72 65 66 65 72 65 6e 63 65 73 2c 20 69 6e 70 75 | sient.menu.for.preferences,.inpu |
| 9060 | 74 2f 6f 75 74 70 75 74 20 72 65 64 69 72 65 63 74 69 6f 6e 20 65 74 63 2e 20 7c 0a 7c 20 3d 67 | t/output.redirection.etc..|.|.=g |
| 9080 | 70 74 65 6c 2d 6d 65 6e 75 3d 20 20 20 20 20 20 20 20 7c 20 2f 28 53 61 6d 65 29 2f 20 20 20 20 | ptel-menu=........|./(Same)/.... |
| 90a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 90c0 | 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 2d 2d | ..................|.|----------- |
| 90e0 | 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 | ----------+--------------------- |
| 9100 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9120 | 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 2d 2d | ----------|..|------------------ |
| 9140 | 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 2d | +------------------------------- |
| 9160 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9180 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 91a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 54 6f 20 61 64 64 20 63 6f 6e 74 65 78 74 2a 20 7c 20 | ---------|.|.*To.add.context*.|. |
| 91c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 91e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9220 | 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 2b 2d 2d 2d | .......|.|------------------+--- |
| 9240 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9260 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9280 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 92a0 | 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 64 64 3d 20 20 20 20 20 20 7c 20 41 64 64 2f | -----|.|.=gptel-add=......|.Add/ |
| 92c0 | 72 65 6d 6f 76 65 20 61 20 72 65 67 69 6f 6e 20 6f 72 20 62 75 66 66 65 72 20 74 6f 20 67 70 74 | remove.a.region.or.buffer.to.gpt |
| 92e0 | 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 49 6e 20 44 69 72 65 64 2c 20 61 64 64 2f 72 65 6d | el's.context...In.Dired,.add/rem |
| 9300 | 6f 76 65 20 6d 61 72 6b 65 64 20 66 69 6c 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ove.marked.files................ |
| 9320 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 3d 20 7c 20 41 64 64 20 61 20 | ...|.|.=gptel-add-file=.|.Add.a. |
| 9340 | 66 69 6c 65 20 28 74 65 78 74 20 6f 72 20 73 75 70 70 6f 72 74 65 64 20 6d 65 64 69 61 20 74 79 | file.(text.or.supported.media.ty |
| 9360 | 70 65 29 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 41 6c 73 6f 20 61 76 | pe).to.gptel's.context...Also.av |
| 9380 | 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e | ailable.from.the.transient.menu. |
| 93a0 | 20 7c 0a 7c 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 | .|.|------------------+--------- |
| 93c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 93e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9400 | 2d 2d 2d 2d 2d 2d 2d 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 | -------------------------------| |
| 9420 | 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 2b | ..|----------------------------+ |
| 9440 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9460 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9480 | 2d 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 4f 72 | -------------------------|.|.*Or |
| 94a0 | 67 20 6d 6f 64 65 20 62 6f 6e 75 73 65 73 2a 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 | g.mode.bonuses*.........|....... |
| 94c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 94e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9500 | 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 2d 2d | ..................|.|----------- |
| 9520 | 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 2d 2d 2d 2d 2d | -----------------+-------------- |
| 9540 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9560 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 9580 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f | -----------|.|.=gptel-org-set-to |
| 95a0 | 70 69 63 3d 20 20 20 20 20 20 7c 20 4c 69 6d 69 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 | pic=......|.Limit.conversation.c |
| 95c0 | 6f 6e 74 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 2e 20 20 28 46 6f 72 20 | ontext.to.an.Org.heading...(For. |
| 95e0 | 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 73 65 65 20 62 65 6c 6f | branching.conversations.see.belo |
| 9600 | 77 2e 29 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 | w.).|.|.=gptel-org-set-propertie |
| 9620 | 73 3d 20 7c 20 57 72 69 74 65 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 | s=.|.Write.gptel.configuration.a |
| 9640 | 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 2c 20 66 6f 72 20 70 65 72 2d 68 65 61 64 69 6e | s.Org.properties,.for.per-headin |
| 9660 | 67 20 63 68 61 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 20 20 20 20 20 20 20 20 7c 0a 7c | g.chat.configuration.........|.| |
| 9680 | 2d 2d 2d 2d 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 2d 2d | ----------------------------+--- |
| 96a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 96c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 96e0 | 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 2a 2a 2a 20 49 6e 20 | ----------------------|..***.In. |
| 9700 | 61 6e 79 20 62 75 66 66 65 72 3a 0a 0a 31 2e 20 43 61 6c 6c 20 3d 4d 2d 78 20 67 70 74 65 6c 2d | any.buffer:..1..Call.=M-x.gptel- |
| 9720 | 73 65 6e 64 3d 20 74 6f 20 73 65 6e 64 20 74 68 65 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 65 | send=.to.send.the.text.up.to.the |
| 9740 | 20 63 75 72 73 6f 72 2e 20 54 68 65 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 20 69 6e | .cursor..The.response.will.be.in |
| 9760 | 73 65 72 74 65 64 20 62 65 6c 6f 77 2e 20 20 43 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 6f 6e 76 | serted.below...Continue.the.conv |
| 9780 | 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 20 72 65 73 | ersation.by.typing.below.the.res |
| 97a0 | 70 6f 6e 73 65 2e 0a 0a 32 2e 20 49 66 20 61 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 | ponse...2..If.a.region.is.select |
| 97c0 | 65 64 2c 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 6c 69 6d | ed,.the.conversation.will.be.lim |
| 97e0 | 69 74 65 64 20 74 6f 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 2e 0a 0a 33 2e 20 43 61 6c 6c 20 3d | ited.to.its.contents...3..Call.= |
| 9800 | 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 3d 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 | M-x.gptel-send=.with.a.prefix.ar |
| 9820 | 67 75 6d 65 6e 74 20 28 7e 43 2d 75 7e 29 0a 20 20 20 2d 20 74 6f 20 73 65 74 20 63 68 61 74 20 | gument.(~C-u~)....-.to.set.chat. |
| 9840 | 70 61 72 61 6d 65 74 65 72 73 20 28 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 | parameters.(model,.backend,.syst |
| 9860 | 65 6d 20 6d 65 73 73 61 67 65 20 65 74 63 29 20 66 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 2c | em.message.etc).for.this.buffer, |
| 9880 | 0a 20 20 20 2d 20 69 6e 63 6c 75 64 65 20 71 75 69 63 6b 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 | ....-.include.quick.instructions |
| 98a0 | 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 2c 0a 20 20 20 2d | .for.the.next.request.only,....- |
| 98c0 | 20 74 6f 20 61 64 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 2d 2d 20 72 65 | .to.add.additional.context.--.re |
| 98e0 | 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 2d 2d 20 74 6f 20 67 70 | gions,.buffers.or.files.--.to.gp |
| 9900 | 74 65 6c 2c 0a 20 20 20 2d 20 74 6f 20 72 65 61 64 20 74 68 65 20 70 72 6f 6d 70 74 20 66 72 6f | tel,....-.to.read.the.prompt.fro |
| 9920 | 6d 20 6f 72 20 72 65 64 69 72 65 63 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 65 6c 73 65 77 | m.or.redirect.the.response.elsew |
| 9940 | 68 65 72 65 2c 0a 20 20 20 2d 20 6f 72 20 74 6f 20 72 65 70 6c 61 63 65 20 74 68 65 20 70 72 6f | here,....-.or.to.replace.the.pro |
| 9960 | 6d 70 74 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 | mpt.with.the.response...#+html:. |
| 9980 | 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 6b 61 72 | <img.src="https://github.com/kar |
| 99a0 | 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 37 35 33 32 2f 33 35 36 32 61 | think/gptel/assets/8607532/3562a |
| 99c0 | 36 65 32 2d 37 61 35 63 2d 34 66 37 65 2d 38 65 35 37 2d 62 66 33 63 31 31 35 38 39 63 37 33 22 | 6e2-7a5c-4f7e-8e57-bf3c11589c73" |
| 99e0 | 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 6f 77 69 | .align="center".alt="Image.showi |
| 9a00 | 6e 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 77 69 74 68 20 73 6f 6d 65 20 6f 66 20 74 68 65 | ng.gptel's.menu.with.some.of.the |
| 9a20 | 20 61 76 61 69 6c 61 62 6c 65 20 71 75 65 72 79 20 6f 70 74 69 6f 6e 73 2e 22 3e 0a 0a 2a 2a 2a | .available.query.options.">..*** |
| 9a40 | 20 49 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 3a 0a 0a 2a 4e | .In.a.dedicated.chat.buffer:..*N |
| 9a60 | 6f 74 65 2a 3a 20 67 70 74 65 6c 20 77 6f 72 6b 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d | ote*:.gptel.works.anywhere.in.Em |
| 9a80 | 61 63 73 2e 20 20 54 68 65 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 20 | acs...The.dedicated.chat.buffer. |
| 9aa0 | 6f 6e 6c 79 20 61 64 64 73 20 73 6f 6d 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 2e 0a 0a 31 2e | only.adds.some.conveniences...1. |
| 9ac0 | 20 52 75 6e 20 3d 4d 2d 78 20 67 70 74 65 6c 3d 20 74 6f 20 73 74 61 72 74 20 6f 72 20 73 77 69 | .Run.=M-x.gptel=.to.start.or.swi |
| 9ae0 | 74 63 68 20 74 6f 20 74 68 65 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 49 74 20 77 69 6c 6c 20 | tch.to.the.chat.buffer..It.will. |
| 9b00 | 61 73 6b 20 79 6f 75 20 66 6f 72 20 74 68 65 20 6b 65 79 20 69 66 20 79 6f 75 20 73 6b 69 70 70 | ask.you.for.the.key.if.you.skipp |
| 9b20 | 65 64 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 73 74 65 70 2e 20 52 75 6e 20 69 74 20 77 69 74 | ed.the.previous.step..Run.it.wit |
| 9b40 | 68 20 61 20 70 72 65 66 69 78 2d 61 72 67 20 28 3d 43 2d 75 20 4d 2d 78 20 67 70 74 65 6c 3d 29 | h.a.prefix-arg.(=C-u.M-x.gptel=) |
| 9b60 | 20 74 6f 20 73 74 61 72 74 20 61 20 6e 65 77 20 73 65 73 73 69 6f 6e 2e 0a 0a 32 2e 20 49 6e 20 | .to.start.a.new.session...2..In. |
| 9b80 | 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2c 20 73 65 6e 64 20 79 6f 75 72 20 70 72 6f 6d | the.gptel.buffer,.send.your.prom |
| 9ba0 | 70 74 20 77 69 74 68 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 73 65 6e 64 3d 2c 20 62 6f 75 6e 64 20 | pt.with.=M-x.gptel-send=,.bound. |
| 9bc0 | 74 6f 20 3d 43 2d 63 20 52 45 54 3d 2e 0a 0a 33 2e 20 53 65 74 20 63 68 61 74 20 70 61 72 61 6d | to.=C-c.RET=...3..Set.chat.param |
| 9be0 | 65 74 65 72 73 20 28 4c 4c 4d 20 70 72 6f 76 69 64 65 72 2c 20 6d 6f 64 65 6c 2c 20 64 69 72 65 | eters.(LLM.provider,.model,.dire |
| 9c00 | 63 74 69 76 65 73 20 65 74 63 29 20 66 6f 72 20 74 68 65 20 73 65 73 73 69 6f 6e 20 62 79 20 63 | ctives.etc).for.the.session.by.c |
| 9c20 | 61 6c 6c 69 6e 67 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 77 69 74 68 20 61 20 70 72 65 66 69 | alling.=gptel-send=.with.a.prefi |
| 9c40 | 78 20 61 72 67 75 6d 65 6e 74 20 28 3d 43 2d 75 20 43 2d 63 20 52 45 54 3d 29 3a 0a 20 20 20 0a | x.argument.(=C-u.C-c.RET=):..... |
| 9c60 | 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 62 | #+html:.<img.src="https://github |
| 9c80 | 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 37 35 | .com/karthink/gptel/assets/86075 |
| 9ca0 | 33 32 2f 65 62 34 38 36 37 65 35 2d 33 30 61 63 2d 34 35 35 66 2d 39 39 39 66 2d 65 31 37 31 32 | 32/eb4867e5-30ac-455f-999f-e1712 |
| 9cc0 | 33 61 66 62 38 31 30 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 | 3afb810".align="center".alt="Ima |
| 9ce0 | 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 68 20 73 6f 6d | ge.showing.gptel's.menu.with.som |
| 9d00 | 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 74 69 6f 6e 73 | e.of.the.available.query.options |
| 9d20 | 2e 22 3e 0a 0a 54 68 61 74 27 73 20 69 74 2e 20 59 6f 75 20 63 61 6e 20 67 6f 20 62 61 63 6b 20 | .">..That's.it..You.can.go.back. |
| 9d40 | 61 6e 64 20 65 64 69 74 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 | and.edit.previous.prompts.and.re |
| 9d60 | 73 70 6f 6e 73 65 73 20 69 66 20 79 6f 75 20 77 61 6e 74 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c | sponses.if.you.want...The.defaul |
| 9d80 | 74 20 6d 6f 64 65 20 69 73 20 3d 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 3d 20 69 66 20 61 76 61 | t.mode.is.=markdown-mode=.if.ava |
| 9da0 | 69 6c 61 62 6c 65 2c 20 65 6c 73 65 20 3d 74 65 78 74 2d 6d 6f 64 65 3d 2e 20 20 59 6f 75 20 63 | ilable,.else.=text-mode=...You.c |
| 9dc0 | 61 6e 20 73 65 74 20 3d 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 3d 20 74 6f 20 3d | an.set.=gptel-default-mode=.to.= |
| 9de0 | 6f 72 67 2d 6d 6f 64 65 3d 20 69 66 20 64 65 73 69 72 65 64 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c | org-mode=.if.desired...#+html:.< |
| 9e00 | 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 75 64 69 6e 67 | details><summary>.****.Including |
| 9e20 | 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 29 20 77 69 74 68 20 | .media.(images,.documents).with. |
| 9e40 | 72 65 71 75 65 73 74 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 | requests.#+html:.</summary>..gpt |
| 9e60 | 65 6c 20 73 75 70 70 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 | el.supports.sending.media.in.Mar |
| 9e80 | 6b 64 6f 77 6e 20 61 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 | kdown.and.Org.chat.buffers,.but. |
| 9ea0 | 74 68 69 73 20 66 65 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 | this.feature.is.disabled.by.defa |
| 9ec0 | 75 6c 74 2e 0a 0a 2d 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 | ult...-.You.can.enable.it.global |
| 9ee0 | 6c 79 2c 20 66 6f 72 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 | ly,.for.all.models.that.support. |
| 9f00 | 69 74 2c 20 62 79 20 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 | it,.by.setting.=gptel-track-medi |
| 9f20 | 61 3d 2e 20 20 0a 2d 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 | a=....-.Or.you.can.set.it.locall |
| 9f40 | 79 2c 20 6a 75 73 74 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 | y,.just.for.the.chat.buffer,.via |
| 9f60 | 20 74 68 65 20 68 65 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 | .the.header.line:..#+html:.<img. |
| 9f80 | 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 74 74 | src="https://github.com/user-att |
| 9fa0 | 61 63 68 6d 65 6e 74 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 | achments/assets/91f6aaab-2ea4-48 |
| 9fc0 | 30 36 2d 39 63 63 39 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 | 06-9cc9-39b4b46a8e6c".align="cen |
| 9fe0 | 74 65 72 22 20 61 6c 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 | ter".alt="Image.showing.a.gptel. |
| a000 | 63 68 61 74 20 62 75 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 | chat.buffer's.header.line.with.t |
| a020 | 68 65 20 62 75 74 74 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 | he.button.to.toggle.media.suppor |
| a040 | 74 22 3e 0a 0a 2d 2d 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 | t">..-----..There.are.two.ways.t |
| a060 | 6f 20 69 6e 63 6c 75 64 65 20 6d 65 64 69 61 20 77 69 74 68 20 72 65 71 75 65 73 74 73 3a 0a 0a | o.include.media.with.requests:.. |
| a080 | 31 2e 20 41 64 64 69 6e 67 20 6d 65 64 69 61 20 66 69 6c 65 73 20 74 6f 20 74 68 65 20 63 6f 6e | 1..Adding.media.files.to.the.con |
| a0a0 | 74 65 78 74 20 77 69 74 68 20 3d 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 3d 2c 20 64 65 73 63 | text.with.=gptel-add-file=,.desc |
| a0c0 | 72 69 62 65 64 20 66 75 72 74 68 65 72 20 62 65 6c 6f 77 2e 0a 32 2e 20 49 6e 63 6c 75 64 69 6e | ribed.further.below..2..Includin |
| a0e0 | 67 20 6c 69 6e 6b 73 20 74 6f 20 6d 65 64 69 61 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 | g.links.to.media.in.chat.buffers |
| a100 | 2c 20 64 65 73 63 72 69 62 65 64 20 68 65 72 65 3a 0a 0a 54 6f 20 73 65 6e 64 20 6d 65 64 69 61 | ,.described.here:..To.send.media |
| a120 | 20 2d 2d 20 69 6d 61 67 65 73 20 6f 72 20 6f 74 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 66 69 | .--.images.or.other.supported.fi |
| a140 | 6c 65 20 74 79 70 65 73 20 2d 2d 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 69 6e 20 63 68 61 | le.types.--.with.requests.in.cha |
| a160 | 74 20 62 75 66 66 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 | t.buffers,.you.can.include.links |
| a180 | 20 74 6f 20 74 68 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 | .to.them.in.the.chat.buffer...Su |
| a1a0 | 63 68 20 61 20 6c 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 | ch.a.link.must.be."standalone",. |
| a1c0 | 69 2e 65 2e 20 6f 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 | i.e..on.a.line.by.itself.surroun |
| a1e0 | 64 65 64 20 62 79 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 | ded.by.whitespace...In.Org.mode, |
| a200 | 20 66 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 61 72 65 20 | .for.example,.the.following.are. |
| a220 | 61 6c 6c 20 2a 76 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 | all.*valid*.ways.of.including.an |
| a240 | 20 69 6d 61 67 65 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 | .image.with.the.request:..-."Sta |
| a260 | 6e 64 61 6c 6f 6e 65 22 20 66 69 6c 65 20 6c 69 6e 6b 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 0a | ndalone".file.link:.#+begin_src. |
| a280 | 44 65 73 63 72 69 62 65 20 74 68 69 73 20 70 69 63 74 75 72 65 0a 0a 5b 5b 66 69 6c 65 3a 2f 70 | Describe.this.picture..[[file:/p |
| a2a0 | 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5d 0a 0a 46 6f 63 75 73 20 73 | ath/to/screenshot.png]]..Focus.s |
| a2c0 | 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 2e | pecifically.on.the.text.content. |
| a2e0 | 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 20 66 69 6c 65 20 | .#+end_src..-."Standalone".file. |
| a300 | 6c 69 6e 6b 20 77 69 74 68 20 64 65 73 63 72 69 70 74 69 6f 6e 3a 0a 23 2b 62 65 67 69 6e 5f 73 | link.with.description:.#+begin_s |
| a320 | 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 20 70 69 63 74 75 72 65 0a 0a 5b 5b 66 69 6c | rc..Describe.this.picture..[[fil |
| a340 | 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 73 6f 6d 65 20 | e:/path/to/screenshot.png][some. |
| a360 | 70 69 63 74 75 72 65 5d 5d 0a 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e | picture]]..Focus.specifically.on |
| a380 | 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 20 | .the.text.content..#+end_src..-. |
| a3a0 | 22 53 74 61 6e 64 61 6c 6f 6e 65 22 2c 20 61 6e 67 6c 65 20 66 69 6c 65 20 6c 69 6e 6b 3a 0a 23 | "Standalone",.angle.file.link:.# |
| a3c0 | 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 70 69 63 74 75 72 | +begin_src..Describe.this.pictur |
| a3e0 | 65 0a 0a 3c 66 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 | e..<file:/path/to/screenshot.png |
| a400 | 3e 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 68 65 20 74 65 78 | >..Focus.specifically.on.the.tex |
| a420 | 74 20 63 6f 6e 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 | t.content..#+end_src..The.follow |
| a440 | 69 6e 67 20 6c 69 6e 6b 73 20 61 72 65 20 2a 6e 6f 74 20 76 61 6c 69 64 2a 2c 20 61 6e 64 20 74 | ing.links.are.*not.valid*,.and.t |
| a460 | 68 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 6c 69 6e 6b 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 | he.text.of.the.link.will.be.sent |
| a480 | 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 66 69 6c 65 20 63 6f 6e 74 65 6e 74 73 3a 0a 0a | .instead.of.the.file.contents:.. |
| a4a0 | 2d 20 49 6e 6c 69 6e 65 20 6c 69 6e 6b 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 | -.Inline.link:.#+begin_src..Desc |
| a4c0 | 72 69 62 65 20 74 68 69 73 20 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e | ribe.this.[[file:/path/to/screen |
| a4e0 | 73 68 6f 74 2e 70 6e 67 5d 5b 70 69 63 74 75 72 65 5d 5d 2e 0a 0a 46 6f 63 75 73 20 73 70 65 63 | shot.png][picture]]...Focus.spec |
| a500 | 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..#+ |
| a520 | 65 6e 64 5f 73 72 63 0a 0a 2d 20 4c 69 6e 6b 20 6e 6f 74 20 22 73 74 61 6e 64 61 6c 6f 6e 65 22 | end_src..-.Link.not."standalone" |
| a540 | 3a 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 20 70 69 63 74 | :.#+begin_src.Describe.this.pict |
| a560 | 75 72 65 3a 20 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 | ure:..[[file:/path/to/screenshot |
| a580 | 2e 70 6e 67 5d 5d 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e 20 74 68 65 | .png]].Focus.specifically.on.the |
| a5a0 | 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 4e 6f 74 20 | .text.content..#+end_src..-.Not. |
| a5c0 | 61 20 76 61 6c 69 64 20 4f 72 67 20 6c 69 6e 6b 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 | a.valid.Org.link:.#+begin_src..D |
| a5e0 | 65 73 63 72 69 62 65 20 74 68 65 20 70 69 63 74 75 72 65 0a 0a 66 69 6c 65 3a 2f 70 61 74 68 2f | escribe.the.picture..file:/path/ |
| a600 | 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 53 69 6d | to/screenshot.png.#+end_src..Sim |
| a620 | 69 6c 61 72 20 63 72 69 74 65 72 69 61 20 61 70 70 6c 79 20 74 6f 20 4d 61 72 6b 64 6f 77 6e 20 | ilar.criteria.apply.to.Markdown. |
| a640 | 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 | chat.buffers...#+html:.</details |
| a660 | 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>.*** |
| a680 | 2a 20 53 61 76 65 20 61 6e 64 20 72 65 73 74 6f 72 65 20 79 6f 75 72 20 63 68 61 74 20 73 65 73 | *.Save.and.restore.your.chat.ses |
| a6a0 | 73 69 6f 6e 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 53 61 76 69 6e 67 | sions.#+html:.</summary>..Saving |
| a6c0 | 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 73 61 76 65 20 74 68 65 20 73 74 61 74 65 20 6f 66 | .the.file.will.save.the.state.of |
| a6e0 | 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 61 73 20 77 65 6c 6c 2e 20 20 54 6f 20 72 | .the.conversation.as.well...To.r |
| a700 | 65 73 75 6d 65 20 74 68 65 20 63 68 61 74 2c 20 6f 70 65 6e 20 74 68 65 20 66 69 6c 65 20 61 6e | esume.the.chat,.open.the.file.an |
| a720 | 64 20 74 75 72 6e 20 6f 6e 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 3d 20 62 65 66 6f 72 65 20 65 64 | d.turn.on.=gptel-mode=.before.ed |
| a740 | 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 | iting.the.buffer...#+html:.</det |
| a760 | 61 69 6c 73 3e 0a 2a 2a 2a 20 53 65 74 74 69 6e 67 20 6f 70 74 69 6f 6e 73 20 28 62 61 63 6b 65 | ails>.***.Setting.options.(backe |
| a780 | 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 72 73 2c 20 73 | nd,.model,.request.parameters,.s |
| a7a0 | 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 6d 6f 72 65 29 0a 0a 4d 6f 73 74 20 67 70 | ystem.prompts.and.more)..Most.gp |
| a7c0 | 74 65 6c 20 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 65 74 20 66 72 6f 6d 20 67 70 74 65 | tel.options.can.be.set.from.gpte |
| a7e0 | 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2c 20 61 76 61 69 6c 61 62 6c 65 20 62 79 | l's.transient.menu,.available.by |
| a800 | 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 68 20 61 20 70 72 65 | .calling.=gptel-send=.with.a.pre |
| a820 | 66 69 78 2d 61 72 67 75 6d 65 6e 74 2c 20 6f 72 20 76 69 61 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 | fix-argument,.or.via.=gptel-menu |
| a840 | 3d 2e 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 65 69 72 20 64 65 66 61 75 6c 74 20 76 61 6c 75 | =...To.change.their.default.valu |
| a860 | 65 73 20 69 6e 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 73 65 65 20 5b 5b | es.in.your.configuration,.see.[[ |
| a880 | 23 61 64 64 69 74 69 6f 6e 61 6c 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5b 41 64 64 69 74 | #additional-configuration][Addit |
| a8a0 | 69 6f 6e 61 6c 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5d 2e 20 20 43 68 61 74 20 62 75 66 | ional.Configuration]]...Chat.buf |
| a8c0 | 66 65 72 2d 73 70 65 63 69 66 69 63 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 6c 73 6f 20 61 76 | fer-specific.options.are.also.av |
| a8e0 | 61 69 6c 61 62 6c 65 20 76 69 61 20 74 68 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 20 69 6e 20 63 | ailable.via.the.header-line.in.c |
| a900 | 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 23 20 54 4f 44 4f 20 52 65 6d 6f 76 65 20 74 68 69 73 | hat.buffers...#.TODO.Remove.this |
| a920 | 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 6d 61 6e 75 61 6c 2e 0a 53 65 6c 65 63 74 | .when.writing.the.manual..Select |
| a940 | 69 6e 67 20 61 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 63 61 6e 20 62 65 20 64 | ing.a.model.and.backend.can.be.d |
| a960 | 6f 6e 65 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 76 69 61 20 74 68 65 20 3d 2d 6d 3d 20 63 | one.interactively.via.the.=-m=.c |
| a980 | 6f 6d 6d 61 6e 64 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 3d 2e 20 20 41 76 61 69 6c 61 62 | ommand.of.=gptel-menu=...Availab |
| a9a0 | 6c 65 20 72 65 67 69 73 74 65 72 65 64 20 6d 6f 64 65 6c 73 20 61 72 65 20 70 72 65 66 69 78 65 | le.registered.models.are.prefixe |
| a9c0 | 64 20 62 79 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 69 72 20 62 61 63 6b 65 6e 64 20 77 | d.by.the.name.of.their.backend.w |
| a9e0 | 69 74 68 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20 3d 43 68 61 74 47 50 54 3a 67 70 74 2d 34 | ith.a.string.like.=ChatGPT:gpt-4 |
| aa00 | 6f 2d 6d 69 6e 69 3d 2c 20 77 68 65 72 65 20 3d 43 68 61 74 47 50 54 3d 20 69 73 20 74 68 65 20 | o-mini=,.where.=ChatGPT=.is.the. |
| aa20 | 62 61 63 6b 65 6e 64 20 6e 61 6d 65 20 79 6f 75 20 75 73 65 64 20 74 6f 20 72 65 67 69 73 74 65 | backend.name.you.used.to.registe |
| aa40 | 72 20 69 74 20 61 6e 64 20 3d 67 70 74 2d 34 6f 2d 6d 69 6e 69 3d 20 69 73 20 74 68 65 20 6e 61 | r.it.and.=gpt-4o-mini=.is.the.na |
| aa60 | 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2a 2a 2a 20 49 6e 63 6c 75 64 65 20 6d 6f | me.of.the.model...***.Include.mo |
| aa80 | 72 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 71 75 65 73 74 73 0a 0a 42 79 20 64 65 66 | re.context.with.requests..By.def |
| aaa0 | 61 75 6c 74 2c 20 67 70 74 65 6c 20 77 69 6c 6c 20 71 75 65 72 79 20 74 68 65 20 4c 4c 4d 20 77 | ault,.gptel.will.query.the.LLM.w |
| aac0 | 69 74 68 20 74 68 65 20 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 20 74 68 65 20 62 75 66 | ith.the.active.region.or.the.buf |
| aae0 | 66 65 72 20 63 6f 6e 74 65 6e 74 73 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 | fer.contents.up.to.the.cursor... |
| ab00 | 4f 66 74 65 6e 20 69 74 20 63 61 6e 20 62 65 20 68 65 6c 70 66 75 6c 20 74 6f 20 70 72 6f 76 69 | Often.it.can.be.helpful.to.provi |
| ab20 | 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 | de.the.LLM.with.additional.conte |
| ab40 | 78 74 20 66 72 6f 6d 20 6f 75 74 73 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 | xt.from.outside.the.current.buff |
| ab60 | 65 72 2e 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 68 65 6e 20 79 6f 75 27 72 65 20 69 6e 20 | er..For.example,.when.you're.in. |
| ab80 | 61 20 63 68 61 74 20 62 75 66 66 65 72 20 62 75 74 20 77 61 6e 74 20 74 6f 20 61 73 6b 20 71 75 | a.chat.buffer.but.want.to.ask.qu |
| aba0 | 65 73 74 69 6f 6e 73 20 61 62 6f 75 74 20 61 20 28 70 6f 73 73 69 62 6c 79 20 63 68 61 6e 67 69 | estions.about.a.(possibly.changi |
| abc0 | 6e 67 29 20 63 6f 64 65 20 62 75 66 66 65 72 20 61 6e 64 20 61 75 78 69 6c 69 61 72 79 20 70 72 | ng).code.buffer.and.auxiliary.pr |
| abe0 | 6f 6a 65 63 74 20 66 69 6c 65 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 61 64 | oject.files...You.can.include.ad |
| ac00 | 64 69 74 69 6f 6e 61 6c 20 74 65 78 74 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 20 6f | ditional.text.regions,.buffers.o |
| ac20 | 72 20 66 69 6c 65 73 20 77 69 74 68 20 67 70 74 65 6c 27 73 20 71 75 65 72 69 65 73 2e 20 20 54 | r.files.with.gptel's.queries...T |
| ac40 | 68 69 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 69 73 20 22 6c 69 76 65 22 | his.additional.context.is."live" |
| ac60 | 20 61 6e 64 20 6e 6f 74 20 61 20 73 6e 61 70 73 68 6f 74 2e 20 20 4f 6e 63 65 20 61 64 64 65 64 | .and.not.a.snapshot...Once.added |
| ac80 | 2c 20 74 68 65 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 | ,.the.regions,.buffers.or.files. |
| aca0 | 61 72 65 20 73 63 61 6e 6e 65 64 20 61 6e 64 20 69 6e 63 6c 75 64 65 64 20 61 74 20 74 68 65 20 | are.scanned.and.included.at.the. |
| acc0 | 74 69 6d 65 20 6f 66 20 65 61 63 68 20 71 75 65 72 79 2e 20 20 57 68 65 6e 20 75 73 69 6e 67 20 | time.of.each.query...When.using. |
| ace0 | 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 6d 6f 64 65 6c 73 2c 20 61 64 64 65 64 20 66 69 6c 65 73 20 | multi-modal.models,.added.files. |
| ad00 | 63 61 6e 20 62 65 20 6f 66 20 61 6e 79 20 73 75 70 70 6f 72 74 65 64 20 74 79 70 65 20 2d 2d 20 | can.be.of.any.supported.type.--. |
| ad20 | 74 79 70 69 63 61 6c 6c 79 20 69 6d 61 67 65 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 61 64 64 20 61 | typically.images...You.can.add.a |
| ad40 | 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 20 66 69 6c 65 | .selected.region,.buffer.or.file |
| ad60 | 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 65 20 6d 65 6e | .to.gptel's.context.from.the.men |
| ad80 | 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 20 61 64 64 20 | u,.or.call.=gptel-add=...To.add. |
| ada0 | 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 69 72 65 64 2c | a.file.use.=gptel-add=.in.Dired, |
| adc0 | 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 6c 2d 61 64 64 | .or.use.the.dedicated.=gptel-add |
| ade0 | 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 73 20 77 69 6c | -file=.command...Directories.wil |
| ae00 | 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 63 75 72 73 69 | l.have.their.files.added.recursi |
| ae20 | 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 6e 66 69 72 6d | vely.after.prompting.for.confirm |
| ae40 | 61 74 69 6f 6e 2e 0a 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 | ation...You.can.examine.the.acti |
| ae60 | 76 65 20 63 6f 6e 74 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 | ve.context.from.the.menu:.#+html |
| ae80 | 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 63 6f 6d 2f 6b | :.<img.src="https://github.com/k |
| aea0 | 61 72 74 68 69 6e 6b 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 | arthink/gptel/assets/8607532/63c |
| aec0 | 64 37 66 63 38 2d 36 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 | d7fc8-6b3e-42ae-b6ca-06ff935bae9 |
| aee0 | 63 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 6f | c".align="center".alt="Image.sho |
| af00 | 77 69 6e 67 20 67 70 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 | wing.gptel's.menu.with.the."insp |
| af20 | 65 63 74 20 63 6f 6e 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 | ect.context".command.">..And.the |
| af40 | 6e 20 62 72 6f 77 73 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 | n.browse.through.or.remove.conte |
| af60 | 78 74 20 66 72 6f 6d 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 | xt.from.the.context.buffer:.#+ht |
| af80 | 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 63 6f 6d | ml:.<img.src="https://github.com |
| afa0 | 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 37 35 33 32 2f 37 | /karthink/gptel/assets/8607532/7 |
| afc0 | 39 61 35 66 66 65 38 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 | 9a5ffe8-3d63-4bf7-9bf6-0457ab61b |
| afe0 | 66 32 61 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 | f2a".align="center".alt="Image.s |
| b000 | 68 6f 77 69 6e 67 20 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 | howing.gptel's.context.buffer."> |
| b020 | 0a 0a 2a 2a 2a 20 48 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 | ..***.Handle."reasoning".content |
| b040 | 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 65 69 72 20 72 65 73 | ..Some.LLMs.include.in.their.res |
| b060 | 70 6f 6e 73 65 20 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 | ponse.a."thinking".or."reasoning |
| b080 | 22 20 62 6c 6f 63 6b 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 | ".block...This.text.improves.the |
| b0a0 | 20 71 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 | .quality.of.the.LLM...s.final.ou |
| b0c0 | 74 70 75 74 2c 20 62 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 | tput,.but.may.not.be.interesting |
| b0e0 | 20 74 6f 20 79 6f 75 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 | .to.you.by.itself...You.can.deci |
| b100 | 64 65 20 68 6f 77 20 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 | de.how.you.would.like.this."reas |
| b120 | 6f 6e 69 6e 67 22 20 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 | oning".content.to.be.handled.by. |
| b140 | 67 70 74 65 6c 20 62 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 | gptel.by.setting.the.user.option |
| b160 | 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 2e 20 20 59 6f 75 | .=gptel-include-reasoning=...You |
| b180 | 20 63 61 6e 20 69 6e 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 | .can.include.it.in.the.LLM.respo |
| b1a0 | 6e 73 65 20 28 74 68 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 | nse.(the.default),.omit.it.entir |
| b1c0 | 65 6c 79 2c 20 69 6e 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 | ely,.include.it.in.the.buffer.bu |
| b1e0 | 74 20 69 67 6e 6f 72 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 | t.ignore.it.on.subsequent.conver |
| b200 | 73 61 74 69 6f 6e 20 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 | sation.turns,.or.redirect.it.to. |
| b220 | 61 6e 6f 74 68 65 72 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 | another.buffer...As.with.most.op |
| b240 | 74 69 6f 6e 73 2c 20 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 | tions,.you.can.specify.this.behv |
| b260 | 61 69 6f 72 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 | aior.from.gptel's.transient.menu |
| b280 | 20 67 6c 6f 62 61 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 | .globally,.buffer-locally.or.for |
| b2a0 | 20 74 68 65 20 6e 65 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 | .the.next.request.only...When.in |
| b2c0 | 63 6c 75 64 65 64 20 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 | cluded.with.the.response,.reason |
| b2e0 | 69 6e 67 20 63 6f 6e 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 | ing.content.will.be.delimited.by |
| b300 | 20 4f 72 67 20 62 6c 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 | .Org.blocks.or.markdown.backtick |
| b320 | 73 2e 0a 0a 2a 2a 2a 20 54 6f 6f 6c 20 75 73 65 20 28 65 78 70 65 72 69 6d 65 6e 74 61 6c 29 0a | s...***.Tool.use.(experimental). |
| b340 | 0a 67 70 74 65 6c 20 63 61 6e 20 70 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 | .gptel.can.provide.the.LLM.with. |
| b360 | 63 6c 69 65 6e 74 2d 73 69 64 65 20 65 6c 69 73 70 20 22 74 6f 6f 6c 73 22 2c 20 6f 72 20 66 75 | client-side.elisp."tools",.or.fu |
| b380 | 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 2c 20 61 6c 6f 6e 67 20 77 69 74 | nction.specifications,.along.wit |
| b3a0 | 68 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 49 66 20 74 68 65 20 4c 4c 4d 20 64 65 63 69 64 | h.the.request...If.the.LLM.decid |
| b3c0 | 65 73 20 74 6f 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 2c 20 69 74 20 73 75 70 70 6c 69 65 73 20 | es.to.run.the.tool,.it.supplies. |
| b3e0 | 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 2c 20 77 68 69 63 68 20 67 | the.tool.call.arguments,.which.g |
| b400 | 70 74 65 6c 20 75 73 65 73 20 74 6f 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 20 69 6e 20 79 6f 75 | ptel.uses.to.run.the.tool.in.you |
| b420 | 72 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 | r.Emacs.session...The.result.is. |
| b440 | 6f 70 74 69 6f 6e 61 6c 6c 79 20 72 65 74 75 72 6e 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 20 74 | optionally.returned.to.the.LLM.t |
| b460 | 6f 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 74 61 73 6b 2e 0a 0a 54 68 69 73 20 65 78 63 68 61 | o.complete.the.task...This.excha |
| b480 | 6e 67 65 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 65 71 75 69 70 20 74 68 65 20 4c 4c 4d | nge.can.be.used.to.equip.the.LLM |
| b4a0 | 20 77 69 74 68 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6f 72 20 6b 6e 6f 77 6c 65 64 67 65 20 | .with.capabilities.or.knowledge. |
| b4c0 | 62 65 79 6f 6e 64 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 | beyond.what.is.available.out.of. |
| b4e0 | 74 68 65 20 62 6f 78 20 2d 2d 20 66 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 63 61 6e | the.box.--.for.instance,.you.can |
| b500 | 20 67 65 74 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 6f 6e 74 72 6f 6c 20 79 6f 75 72 20 45 6d 61 | .get.the.LLM.to.control.your.Ema |
| b520 | 63 73 20 66 72 61 6d 65 2c 20 63 72 65 61 74 65 20 6f 72 20 6d 6f 64 69 66 79 20 66 69 6c 65 73 | cs.frame,.create.or.modify.files |
| b540 | 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 6f 72 20 6c 6f 6f 6b 20 75 70 20 69 6e 66 | .and.directories,.or.look.up.inf |
| b560 | 6f 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 6e 74 20 74 6f 20 79 6f 75 72 20 72 65 71 75 65 73 | ormation.relevant.to.your.reques |
| b580 | 74 20 76 69 61 20 77 65 62 20 73 65 61 72 63 68 20 6f 72 20 69 6e 20 61 20 6c 6f 63 61 6c 20 64 | t.via.web.search.or.in.a.local.d |
| b5a0 | 61 74 61 62 61 73 65 2e 20 20 48 65 72 65 20 69 73 20 61 20 76 65 72 79 20 73 69 6d 70 6c 65 20 | atabase...Here.is.a.very.simple. |
| b5c0 | 65 78 61 6d 70 6c 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 | example:..#+html:.<p.align="cent |
| b5e0 | 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 |
| b600 | 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 64 31 66 38 65 32 61 63 2d 36 32 62 62 2d 34 39 | achments/assets/d1f8e2ac-62bb-49 |
| b620 | 62 63 2d 38 35 30 64 2d 30 61 36 37 61 61 30 63 64 34 63 33 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 | bc-850d-0a67aa0cd4c3.#+html:.</p |
| b640 | 3e 0a 0a 54 68 69 73 20 66 65 61 74 75 72 65 20 69 73 20 63 75 72 72 65 6e 74 6c 79 20 65 78 70 | >..This.feature.is.currently.exp |
| b660 | 65 72 69 6d 65 6e 74 61 6c 2e 0a 0a 54 6f 20 75 73 65 20 74 6f 6f 6c 73 20 69 6e 20 67 70 74 65 | erimental...To.use.tools.in.gpte |
| b680 | 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 6f | l,.you.need.-.a.model.that.suppo |
| b6a0 | 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 69 | rts.this.usage...All.the.flagshi |
| b6c0 | 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 6f | p.models.support.tool.use,.as.do |
| b6e0 | 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 73 | .many.of.the.smaller.open.models |
| b700 | 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 74 | ..-.Tool.specifications.that.gpt |
| b720 | 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 20 | el.understands...gptel.does.not. |
| b740 | 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 20 | currently.include.any.tools.out. |
| b760 | 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 73 | of.the.box...#+html:.<details><s |
| b780 | 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 6c | ummary>.****.Defining.gptel.tool |
| b7a0 | 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 61 | s.#+html:.</summary>..Defining.a |
| b7c0 | 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 75 | .gptel.tool.requires.an.elisp.fu |
| b7e0 | 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 20 | nction.and.associated.metadata.. |
| b800 | 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 69 | .Here.are.two.simple.tool.defini |
| b820 | 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 66 | tions:..*To.read.the.contents.of |
| b840 | 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 20 | .an.Emacs.buffer*:..#+begin_src. |
| b860 | 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 61 | emacs-lisp.(gptel-make-tool..:na |
| b880 | 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 20 | me."read_buffer"................ |
| b8a0 | 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 73 | ....;.javascript-style.snake_cas |
| b8c0 | 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 65 | e.name..:function.(lambda.(buffe |
| b8e0 | 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 69 | r)..................;.the.functi |
| b900 | 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 75 | on.that.will.run..............(u |
| b920 | 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 72 | nless.(buffer-live-p.(get-buffer |
| b940 | 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 20 | .buffer))................(error. |
| b960 | 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 20 | "error:.buffer.%s.is.not.live.". |
| b980 | 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 72 | buffer))..............(with-curr |
| b9a0 | 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 20 | ent-buffer..buffer.............. |
| b9c0 | 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 65 | ..(buffer-substring-no-propertie |
| b9e0 | 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 64 | s.(point-min).(point-max))))..:d |
| ba00 | 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 20 | escription."return.the.contents. |
| ba20 | 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 74 | of.an.emacs.buffer"..:args.(list |
| ba40 | 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 20 | .'(:name."buffer"............... |
| ba60 | 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 65 | .:type.string............;.:type |
| ba80 | 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 20 | .value.must.be.a.symbol......... |
| baa0 | 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 66 | .......:description."the.name.of |
| bac0 | 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 74 | .the.buffer.whose.contents.are.t |
| bae0 | 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 6d | o.be.retrieved"))..:category."em |
| bb00 | 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 61 | acs").....................;.An.a |
| bb20 | 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 6e | rbitrary.label.for.grouping.#+en |
| bb40 | 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 65 | d_src..Besides.the.function.itse |
| bb60 | 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 6d | lf,.which.can.be.named.or.anonym |
| bb80 | 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 69 | ous.(as.above),.the.tool.specifi |
| bba0 | 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 73 | cation.requires.a.=:name=,.=:des |
| bbc0 | 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 74 | cription=.and.a.list.of.argument |
| bbe0 | 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 63 | .specifications.in.=:args=...Eac |
| bc00 | 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 6c | h.argument.specification.is.a.pl |
| bc20 | 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 65 | ist.with.atleast.the.keys.=:name |
| bc40 | 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 0a | =,.=:type=.and.=:description=... |
| bc60 | 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 69 | *To.create.a.text.file*:..#+begi |
| bc80 | 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 6f | n_src.emacs-lisp.(gptel-make-too |
| bca0 | 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 20 | l..:name."create_file".......... |
| bcc0 | 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 6e | ..........;.javascript-style..sn |
| bce0 | 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 61 | ake_case.name..:function.(lambda |
| bd00 | 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 65 | .(path.filename.content)...;.the |
| bd20 | 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 20 | .function.that.runs............. |
| bd40 | 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 6e | .(let.((full-path.(expand-file-n |
| bd60 | 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 20 | ame.filename.path)))............ |
| bd80 | 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 20 | ....(with-temp-buffer........... |
| bda0 | 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 20 | .......(insert.content)......... |
| bdc0 | 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 29 | .........(write-file.full-path)) |
| bde0 | 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 64 | ................(format."Created |
| be00 | 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 29 | .file.%s.in.%s".filename.path))) |
| be20 | 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 6c | ..:description."Create.a.new.fil |
| be40 | 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 3a | e.with.the.specified.content"..: |
| be60 | 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 20 | args.(list.'(:name."path"....... |
| be80 | 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 69 | ......;.a.list.of.argument.speci |
| bea0 | 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 09 | fications.........:type.string.. |
| bec0 | 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 6f | .......:description."The.directo |
| bee0 | 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 20 | ry.where.to.create.the.file")... |
| bf00 | 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 20 | ...........'(:name."filename"... |
| bf20 | 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 63 | ......:type.string.........:desc |
| bf40 | 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 6f | ription."The.name.of.the.file.to |
| bf60 | 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 22 | .create")..............'(:name." |
| bf80 | 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 20 | content".........:type.string... |
| bfa0 | 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 20 | ......:description."The.content. |
| bfc0 | 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 6f | to.write.to.the.file"))..:catego |
| bfe0 | 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 20 | ry."filesystem")................ |
| c000 | 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 6e | ;.An.arbitrary.label.for.groupin |
| c020 | 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 67 | g.#+end_src..With.some.prompting |
| c040 | 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 68 | ,.you.can.get.an.LLM.to.write.th |
| c060 | 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 6c | ese.tools.for.you...Tools.can.al |
| c080 | 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 6c | so.be.asynchronous,.use.optional |
| c0a0 | 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 6f | .arguments.and.arguments.with.mo |
| c0c0 | 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 6a | re.structure.(enums,.arrays,.obj |
| c0e0 | 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 6c | ects.etc)...See.=gptel-make-tool |
| c100 | 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 6c | =.for.details...#+html:.</detail |
| c120 | 73 3e 0a 2a 2a 2a 2a 20 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 0a 0a 4f 6e 63 65 20 64 65 | s>.****.Selecting.tools..Once.de |
| c140 | 66 69 6e 65 64 2c 20 74 6f 6f 6c 73 20 63 61 6e 20 62 65 20 73 65 6c 65 63 74 65 64 20 28 67 6c | fined,.tools.can.be.selected.(gl |
| c160 | 6f 62 61 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 | obally,.buffer-locally.or.for.th |
| c180 | 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 29 20 66 72 6f 6d 20 67 70 74 65 6c 27 | e.next.request.only).from.gptel' |
| c1a0 | 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 3c 69 6d 67 20 | s.transient.menu:..#+html:.<img. |
| c1c0 | 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 74 74 | src="https://github.com/user-att |
| c1e0 | 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 64 38 37 38 35 39 36 2d 62 33 31 33 2d 34 33 | achments/assets/fd878596-b313-43 |
| c200 | 38 35 2d 62 36 37 35 2d 33 64 36 35 34 36 39 30 39 64 38 62 22 20 61 6c 69 67 6e 3d 22 63 65 6e | 85-b675-3d6546909d8b".align="cen |
| c220 | 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 74 65 6c 27 73 20 | ter".alt="Image.showing.gptel's. |
| c240 | 74 6f 6f 6c 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 2e 22 3e 0a 0a 46 72 6f 6d 20 68 65 72 | tool.selection.menu.">..From.her |
| c260 | 65 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 65 71 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 74 | e.you.can.also.require.confirmat |
| c280 | 69 6f 6e 20 66 6f 72 20 61 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 2c 20 61 6e 64 20 64 65 63 69 | ion.for.all.tool.calls,.and.deci |
| c2a0 | 64 65 20 69 66 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 | de.if.tool.call.results.should.b |
| c2c0 | 65 20 69 6e 63 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 2e 20 | e.included.in.the.LLM.response.. |
| c2e0 | 20 53 65 65 20 5b 5b 23 61 64 64 69 74 69 6f 6e 61 6c 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e | .See.[[#additional-configuration |
| c300 | 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 6e 5d 5d 20 66 6f 72 | ][Additional.Configuration]].for |
| c320 | 20 64 6f 69 6e 67 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 76 69 61 20 65 6c 69 73 70 2e 0a 0a | .doing.these.things.via.elisp... |
| c340 | 2a 2a 2a 20 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 | ***.Rewrite,.refactor.or.fill.in |
| c360 | 20 61 20 72 65 67 69 6f 6e 0a 0a 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 20 77 69 74 68 20 61 | .a.region..In.any.buffer:.with.a |
| c380 | 20 72 65 67 69 6f 6e 20 73 65 6c 65 63 74 65 64 2c 20 79 6f 75 20 63 61 6e 20 6d 6f 64 69 66 79 | .region.selected,.you.can.modify |
| c3a0 | 20 74 65 78 74 2c 20 72 65 77 72 69 74 65 20 70 72 6f 73 65 20 6f 72 20 72 65 66 61 63 74 6f 72 | .text,.rewrite.prose.or.refactor |
| c3c0 | 20 63 6f 64 65 20 77 69 74 68 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 3d 2e 20 20 45 78 61 | .code.with.=gptel-rewrite=...Exa |
| c3e0 | 6d 70 6c 65 20 77 69 74 68 20 70 72 6f 73 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 | mple.with.prose:..#+html:.<p.ali |
| c400 | 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 6d 2f | gn="center">.https://github.com/ |
| c420 | 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 65 33 62 34 33 36 62 33 | user-attachments/assets/e3b436b3 |
| c440 | 2d 39 62 64 65 2d 34 63 31 66 2d 62 32 63 65 2d 33 66 37 64 66 31 39 38 34 39 33 33 0a 23 2b 68 | -9bde-4c1f-b2ce-3f7df1984933.#+h |
| c460 | 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 70 72 65 76 69 65 77 | tml:.</p>..The.result.is.preview |
| c480 | 65 64 20 6f 76 65 72 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 20 74 65 78 74 2e 20 20 42 79 20 64 | ed.over.the.original.text...By.d |
| c4a0 | 65 66 61 75 6c 74 2c 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 6e 6f 74 20 6d 6f 64 69 66 69 | efault,.the.buffer.is.not.modifi |
| c4c0 | 65 64 2e 0a 0a 50 72 65 73 73 69 6e 67 20 3d 52 45 54 3d 20 6f 72 20 63 6c 69 63 6b 69 6e 67 20 | ed...Pressing.=RET=.or.clicking. |
| c4e0 | 69 6e 20 74 68 65 20 72 65 77 72 69 74 74 65 6e 20 72 65 67 69 6f 6e 20 73 68 6f 75 6c 64 20 67 | in.the.rewritten.region.should.g |
| c500 | 69 76 65 20 79 6f 75 20 61 20 6c 69 73 74 20 6f 66 20 6f 70 74 69 6f 6e 73 3a 20 79 6f 75 20 63 | ive.you.a.list.of.options:.you.c |
| c520 | 61 6e 20 2a 69 74 65 72 61 74 65 2a 20 6f 6e 2c 20 2a 64 69 66 66 2a 2c 20 2a 65 64 69 66 66 2a | an.*iterate*.on,.*diff*,.*ediff* |
| c540 | 2c 20 2a 6d 65 72 67 65 2a 20 6f 72 20 2a 61 63 63 65 70 74 2a 20 74 68 65 20 72 65 70 6c 61 63 | ,.*merge*.or.*accept*.the.replac |
| c560 | 65 6d 65 6e 74 2e 20 20 45 78 61 6d 70 6c 65 20 77 69 74 68 20 63 6f 64 65 3a 0a 0a 23 2b 68 74 | ement...Example.with.code:..#+ht |
| c580 | 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 3a 2f 2f 67 | ml:.<p.align="center">.https://g |
| c5a0 | 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 73 73 65 74 | ithub.com/user-attachments/asset |
| c5c0 | 73 2f 34 30 36 37 66 64 62 38 2d 38 35 64 33 2d 34 32 36 34 2d 39 62 36 34 2d 64 37 32 37 33 35 | s/4067fdb8-85d3-4264-9b64-d72735 |
| c5e0 | 33 66 36 38 66 39 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 2a 41 63 74 69 6e 67 20 6f 6e 20 | 3f68f9.#+html:.</p>..*Acting.on. |
| c600 | 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 3a 0a 0a 49 66 20 79 6f 75 20 77 6f 75 6c 64 | the.LLM.response*:..If.you.would |
| c620 | 20 6c 69 6b 65 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 20 74 68 69 6e 67 73 20 74 6f 20 68 61 70 | .like.one.of.these.things.to.hap |
| c640 | 70 65 6e 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 63 75 73 74 6f | pen.automatically,.you.can.custo |
| c660 | 6d 69 7a 65 20 3d 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 | mize.=gptel-rewrite-default-acti |
| c680 | 6f 6e 3d 2e 0a 0a 54 68 65 73 65 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 61 6c 73 6f 20 61 76 61 | on=...These.options.are.also.ava |
| c6a0 | 69 6c 61 62 6c 65 20 66 72 6f 6d 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 3d 3a 0a 0a 23 2b | ilable.from.=gptel-rewrite=:..#+ |
| c6c0 | 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 63 | html:.<img.src="https://github.c |
| c6e0 | 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 35 38 39 37 38 | om/user-attachments/assets/58978 |
| c700 | 35 62 39 2d 61 61 33 66 2d 34 31 34 61 2d 39 38 64 64 2d 64 32 36 62 37 35 30 39 64 65 30 38 22 | 5b9-aa3f-414a-98dd-d26b7509de08" |
| c720 | 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 41 6e 64 20 79 6f 75 20 63 61 6e 20 | .align="center"./>..And.you.can. |
| c740 | 63 61 6c 6c 20 74 68 65 6d 20 64 69 72 65 63 74 6c 79 20 77 68 65 6e 20 74 68 65 20 63 75 72 73 | call.them.directly.when.the.curs |
| c760 | 6f 72 20 69 73 20 69 6e 20 74 68 65 20 72 65 77 72 69 74 74 65 6e 20 72 65 67 69 6f 6e 3a 0a 0a | or.is.in.the.rewritten.region:.. |
| c780 | 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 62 | #+html:.<img.src="https://github |
| c7a0 | 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 35 62 | .com/user-attachments/assets/f5b |
| c7c0 | 33 63 61 34 37 2d 65 31 34 36 2d 34 35 66 65 2d 38 35 38 34 2d 66 31 31 30 33 35 66 61 34 64 62 | 3ca47-e146-45fe-8584-f11035fa4db |
| c7e0 | 63 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 2a 2a 2a 20 45 78 74 72 61 20 | c".align="center"./>..***.Extra. |
| c800 | 4f 72 67 20 6d 6f 64 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 0a 0a 67 70 74 65 6c 20 6f 66 66 | Org.mode.conveniences..gptel.off |
| c820 | 65 72 73 20 61 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 | ers.a.few.extra.conveniences.in. |
| c840 | 4f 72 67 20 6d 6f 64 65 2e 0a 0a 2a 2a 2a 2a 2a 20 4c 69 6d 69 74 20 63 6f 6e 76 65 72 73 61 74 | Org.mode...*****.Limit.conversat |
| c860 | 69 6f 6e 20 63 6f 6e 74 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 0a 0a 59 | ion.context.to.an.Org.heading..Y |
| c880 | 6f 75 20 63 61 6e 20 6c 69 6d 69 74 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f | ou.can.limit.the.conversation.co |
| c8a0 | 6e 74 65 78 74 20 74 6f 20 61 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 20 77 69 74 68 20 74 68 65 | ntext.to.an.Org.heading.with.the |
| c8c0 | 20 63 6f 6d 6d 61 6e 64 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 3d 2e 0a | .command.=gptel-org-set-topic=.. |
| c8e0 | 0a 28 54 68 69 73 20 73 65 74 73 20 61 6e 20 4f 72 67 20 70 72 6f 70 65 72 74 79 20 28 3d 47 50 | .(This.sets.an.Org.property.(=GP |
| c900 | 54 45 4c 5f 54 4f 50 49 43 3d 29 20 75 6e 64 65 72 20 74 68 65 20 68 65 61 64 69 6e 67 2e 20 20 | TEL_TOPIC=).under.the.heading... |
| c920 | 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 64 64 20 74 68 69 73 20 70 72 6f 70 65 72 74 79 20 6d | You.can.also.add.this.property.m |
| c940 | 61 6e 75 61 6c 6c 79 20 69 6e 73 74 65 61 64 2e 29 0a 20 20 0a 2a 2a 2a 2a 2a 20 55 73 65 20 62 | anually.instead.)....*****.Use.b |
| c960 | 72 61 6e 63 68 69 6e 67 20 63 6f 6e 74 65 78 74 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 28 74 72 | ranching.context.in.Org.mode.(tr |
| c980 | 65 65 20 6f 66 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 29 0a 0a 59 6f 75 20 63 61 6e 20 68 61 | ee.of.conversations)..You.can.ha |
| c9a0 | 76 65 20 62 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 | ve.branching.conversations.in.Or |
| c9c0 | 67 20 6d 6f 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 20 | g.mode,.where.each.hierarchical. |
| c9e0 | 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 6e | outline.path.through.the.documen |
| ca00 | 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 61 | t.is.a.separate.conversation.bra |
| ca20 | 6e 63 68 2e 20 20 54 68 69 73 20 69 73 20 61 6c 73 6f 20 75 73 65 66 75 6c 20 66 6f 72 20 6c 69 | nch...This.is.also.useful.for.li |
| ca40 | 6d 69 74 69 6e 67 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 69 7a 65 20 6f 66 20 65 61 63 68 20 | miting.the.context.size.of.each. |
| ca60 | 71 75 65 72 79 2e 20 20 53 65 65 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 3d 67 70 74 65 6c 2d | query...See.the.variable.=gptel- |
| ca80 | 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 2e 0a 0a 49 66 20 74 68 69 73 | org-branching-context=...If.this |
| caa0 | 20 76 61 72 69 61 62 6c 65 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 79 6f 75 20 73 68 6f 75 6c 64 | .variable.is.non-nil,.you.should |
| cac0 | 20 70 72 6f 62 61 62 6c 79 20 65 64 69 74 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 | .probably.edit.=gptel-prompt-pre |
| cae0 | 66 69 78 2d 61 6c 69 73 74 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 | fix-alist=.and.=gptel-response-p |
| cb00 | 72 65 66 69 78 2d 61 6c 69 73 74 3d 20 73 6f 20 74 68 61 74 20 74 68 65 20 70 72 65 66 69 78 20 | refix-alist=.so.that.the.prefix. |
| cb20 | 73 74 72 69 6e 67 73 20 66 6f 72 20 6f 72 67 2d 6d 6f 64 65 20 61 72 65 20 6e 6f 74 20 4f 72 67 | strings.for.org-mode.are.not.Org |
| cb40 | 20 68 65 61 64 69 6e 67 73 2c 20 65 2e 67 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | .headings,.e.g...#+begin_src.ema |
| cb60 | 63 73 2d 6c 69 73 70 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 | cs-lisp...(setf.(alist-get.'org- |
| cb80 | 6d 6f 64 65 20 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 29 20 | mode.gptel-prompt-prefix-alist). |
| cba0 | 22 40 75 73 65 72 5c 6e 22 29 0a 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 6f | "@user\n")...(setf.(alist-get.'o |
| cbc0 | 72 67 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c | rg-mode.gptel-response-prefix-al |
| cbe0 | 69 73 74 29 20 22 40 61 73 73 69 73 74 61 6e 74 5c 6e 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | ist)."@assistant\n").#+end_src.. |
| cc00 | 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 20 70 72 6f 6d 70 74 20 70 72 | Otherwise,.the.default.prompt.pr |
| cc20 | 65 66 69 78 20 77 69 6c 6c 20 6d 61 6b 65 20 73 75 63 63 65 73 73 69 76 65 20 70 72 6f 6d 70 74 | efix.will.make.successive.prompt |
| cc40 | 73 20 73 69 62 6c 69 6e 67 20 68 65 61 64 69 6e 67 73 2c 20 61 6e 64 20 74 68 65 72 65 66 6f 72 | s.sibling.headings,.and.therefor |
| cc60 | 65 20 6f 6e 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 72 61 6e | e.on.different.conversation.bran |
| cc80 | 63 68 65 73 2c 20 77 68 69 63 68 20 70 72 6f 62 61 62 6c 79 20 69 73 6e 27 74 20 77 68 61 74 20 | ches,.which.probably.isn't.what. |
| cca0 | 79 6f 75 20 77 61 6e 74 2e 0a 0a 4e 6f 74 65 3a 20 75 73 69 6e 67 20 74 68 69 73 20 6f 70 74 69 | you.want...Note:.using.this.opti |
| ccc0 | 6f 6e 20 72 65 71 75 69 72 65 73 20 4f 72 67 20 39 2e 37 20 6f 72 20 68 69 67 68 65 72 20 74 6f | on.requires.Org.9.7.or.higher.to |
| cce0 | 20 62 65 20 61 76 61 69 6c 61 62 6c 65 2e 20 20 54 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 | .be.available...The.[[https://gi |
| cd00 | 74 68 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 | thub.com/ultronozm/ai-org-chat.e |
| cd20 | 6c 5d 5b 61 69 2d 6f 72 67 2d 63 68 61 74 5d 5d 20 70 61 63 6b 61 67 65 20 75 73 65 73 20 67 70 | l][ai-org-chat]].package.uses.gp |
| cd40 | 74 65 6c 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 69 73 20 62 72 61 6e 63 68 69 6e 67 20 63 6f | tel.to.provide.this.branching.co |
| cd60 | 6e 76 65 72 73 61 74 69 6f 6e 20 62 65 68 61 76 69 6f 72 20 66 6f 72 20 6f 6c 64 65 72 20 76 65 | nversation.behavior.for.older.ve |
| cd80 | 72 73 69 6f 6e 73 20 6f 66 20 4f 72 67 2e 0a 20 20 0a 2a 2a 2a 2a 2a 20 53 61 76 65 20 67 70 74 | rsions.of.Org.....*****.Save.gpt |
| cda0 | 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 20 4f 72 67 20 68 65 61 64 69 6e 67 73 20 28 72 | el.parameters.to.Org.headings.(r |
| cdc0 | 65 70 72 6f 64 75 63 69 62 6c 65 20 63 68 61 74 73 29 0a 0a 59 6f 75 20 63 61 6e 20 64 65 63 6c | eproducible.chats)..You.can.decl |
| cde0 | 61 72 65 20 74 68 65 20 67 70 74 65 6c 20 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 74 65 | are.the.gptel.model,.backend,.te |
| ce00 | 6d 70 65 72 61 74 75 72 65 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 6f 74 | mperature,.system.message.and.ot |
| ce20 | 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 | her.parameters.as.Org.properties |
| ce40 | 20 77 69 74 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 | .with.the.command.=gptel-org-set |
| ce60 | 2d 70 72 6f 70 65 72 74 69 65 73 3d 2e 20 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 20 75 6e 64 | -properties=...gptel.queries.und |
| ce80 | 65 72 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 68 65 61 64 69 6e 67 20 77 69 6c | er.the.corresponding.heading.wil |
| cea0 | 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 6c | l.always.use.these.settings,.all |
| cec0 | 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 6f | owing.you.to.create.mostly.repro |
| cee0 | 64 75 63 69 62 6c 65 20 4c 4c 4d 20 63 68 61 74 20 6e 6f 74 65 62 6f 6f 6b 73 2c 20 61 6e 64 20 | ducible.LLM.chat.notebooks,.and. |
| cf00 | 74 6f 20 68 61 76 65 20 73 69 6d 75 6c 74 61 6e 65 6f 75 73 20 63 68 61 74 73 20 77 69 74 68 20 | to.have.simultaneous.chats.with. |
| cf20 | 64 69 66 66 65 72 65 6e 74 20 6d 6f 64 65 6c 73 2c 20 6d 6f 64 65 6c 20 73 65 74 74 69 6e 67 73 | different.models,.model.settings |
| cf40 | 20 61 6e 64 20 64 69 72 65 63 74 69 76 65 73 20 75 6e 64 65 72 20 64 69 66 66 65 72 65 6e 74 20 | .and.directives.under.different. |
| cf60 | 4f 72 67 20 68 65 61 64 69 6e 67 73 2e 0a 0a 2a 2a 20 46 41 51 0a 2a 2a 2a 20 43 68 61 74 20 62 | Org.headings...**.FAQ.***.Chat.b |
| cf80 | 75 66 66 65 72 20 55 49 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 | uffer.UI.#+html:.<details><summa |
| cfa0 | 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 68 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 63 | ry>.****.I.want.the.window.to.sc |
| cfc0 | 72 6f 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 73 20 74 68 65 20 72 65 73 70 6f 6e | roll.automatically.as.the.respon |
| cfe0 | 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 | se.is.inserted.#+html:.</summary |
| d000 | 3e 0a 0a 54 6f 20 62 65 20 6d 69 6e 69 6d 61 6c 6c 79 20 61 6e 6e 6f 79 69 6e 67 2c 20 67 70 74 | >..To.be.minimally.annoying,.gpt |
| d020 | 65 6c 20 64 6f 65 73 20 6e 6f 74 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 20 62 79 20 64 | el.does.not.move.the.cursor.by.d |
| d040 | 65 66 61 75 6c 74 2e 20 20 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f | efault...Add.the.following.to.yo |
| d060 | 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 65 6e 61 62 6c 65 20 61 75 74 6f 2d | ur.configuration.to.enable.auto- |
| d080 | 73 63 72 6f 6c 6c 69 6e 67 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | scrolling...#+begin_src.emacs-li |
| d0a0 | 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 73 74 72 65 61 6d 2d | sp.(add-hook.'gptel-post-stream- |
| d0c0 | 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 61 75 74 6f 2d 73 63 72 6f 6c 6c 29 0a 23 2b 65 6e 64 5f 73 | hook.'gptel-auto-scroll).#+end_s |
| d0e0 | 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 6c 3a 20 3c | rc..#+html:.</details>.#+html:.< |
| d100 | 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 77 61 6e 74 20 74 68 | details><summary>.****.I.want.th |
| d120 | 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 74 20 70 72 6f | e.cursor.to.move.to.the.next.pro |
| d140 | 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 6e 73 65 72 74 | mpt.after.the.response.is.insert |
| d160 | 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 20 6d 69 6e | ed.#+html:.</summary>..To.be.min |
| d180 | 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 6e 6f 74 20 | imally.annoying,.gptel.does.not. |
| d1a0 | 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 20 41 64 64 | move.the.cursor.by.default...Add |
| d1c0 | 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 67 75 72 61 | .the.following.to.your.configura |
| d1e0 | 74 69 6f 6e 20 74 6f 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 3a 0a 0a 23 2b 62 65 67 69 | tion.to.move.the.cursor:..#+begi |
| d200 | 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 | n_src.emacs-lisp.(add-hook.'gpte |
| d220 | 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 20 27 67 70 74 65 6c | l-post-response-functions.'gptel |
| d240 | 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 | -end-of-response).#+end_src..You |
| d260 | 20 63 61 6e 20 61 6c 73 6f 20 63 61 6c 6c 20 3d 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 | .can.also.call.=gptel-end-of-res |
| d280 | 70 6f 6e 73 65 3d 20 61 73 20 61 20 63 6f 6d 6d 61 6e 64 20 61 74 20 61 6e 79 20 74 69 6d 65 2e | ponse=.as.a.command.at.any.time. |
| d2a0 | 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 |
| d2c0 | 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 6f 20 63 | tails><summary>.****.I.want.to.c |
| d2e0 | 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 |
| d300 | 70 74 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 | pt.and.LLM.response.#+html:.</su |
| d320 | 6d 6d 61 72 79 3e 0a 0a 46 6f 72 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 | mmary>..For.dedicated.chat.buffe |
| d340 | 72 73 3a 20 63 75 73 74 6f 6d 69 7a 65 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 | rs:.customize.=gptel-prompt-pref |
| d360 | 69 78 2d 61 6c 69 73 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 | ix-alist=.and.=gptel-response-pr |
| d380 | 65 66 69 78 2d 61 6c 69 73 74 3d 2e 20 20 59 6f 75 20 63 61 6e 20 73 65 74 20 61 20 64 69 66 66 | efix-alist=...You.can.set.a.diff |
| d3a0 | 65 72 65 6e 74 20 70 61 69 72 20 66 6f 72 20 65 61 63 68 20 6d 61 6a 6f 72 2d 6d 6f 64 65 2e 0a | erent.pair.for.each.major-mode.. |
| d3c0 | 0a 41 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 3a 20 55 73 65 20 3d 67 70 74 65 6c 2d 70 | .Anywhere.in.Emacs:.Use.=gptel-p |
| d3e0 | 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d 20 61 6e 64 20 3d 67 70 74 65 6c 2d 70 6f 73 | re-response-hook=.and.=gptel-pos |
| d400 | 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 2c 20 77 68 69 63 68 20 73 65 65 | t-response-functions=,.which.see |
| d420 | 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 20 3c 64 | ...#+html:.</details>.#+html:.<d |
| d440 | 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 48 6f 77 20 64 6f 65 73 20 67 | etails><summary>.****.How.does.g |
| d460 | 70 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 70 72 | ptel.distinguish.between.user.pr |
| d480 | 6f 6d 70 74 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 3f 0a 23 2b 68 74 6d 6c 3a | ompts.and.LLM.responses?.#+html: |
| d4a0 | 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 67 70 74 65 6c 20 75 73 65 73 20 5b 5b 68 74 74 70 73 3a | .</summary>..gptel.uses.[[https: |
| d4c0 | 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 73 6f 66 74 77 61 72 65 2f 65 6d 61 63 73 2f 6d 61 6e | //www.gnu.org/software/emacs/man |
| d4e0 | 75 61 6c 2f 68 74 6d 6c 5f 6e 6f 64 65 2f 65 6c 69 73 70 2f 54 65 78 74 2d 50 72 6f 70 65 72 74 | ual/html_node/elisp/Text-Propert |
| d500 | 69 65 73 2e 68 74 6d 6c 5d 5b 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 5d 5d 20 74 6f 20 77 | ies.html][text-properties]].to.w |
| d520 | 61 74 65 72 6d 61 72 6b 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 75 73 20 74 68 | atermark.LLM.responses...Thus.th |
| d540 | 69 73 20 74 65 78 74 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 72 65 73 70 | is.text.is.interpreted.as.a.resp |
| d560 | 6f 6e 73 65 20 65 76 65 6e 20 69 66 20 79 6f 75 20 63 6f 70 79 20 69 74 20 69 6e 74 6f 20 61 6e | onse.even.if.you.copy.it.into.an |
| d580 | 6f 74 68 65 72 20 62 75 66 66 65 72 2e 20 20 49 6e 20 72 65 67 75 6c 61 72 20 62 75 66 66 65 72 | other.buffer...In.regular.buffer |
| d5a0 | 73 20 28 62 75 66 66 65 72 73 20 77 69 74 68 6f 75 74 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 3d 20 | s.(buffers.without.=gptel-mode=. |
| d5c0 | 65 6e 61 62 6c 65 64 29 2c 20 79 6f 75 20 63 61 6e 20 74 75 72 6e 20 6f 66 66 20 74 68 69 73 20 | enabled),.you.can.turn.off.this. |
| d5e0 | 74 72 61 63 6b 69 6e 67 20 62 79 20 75 6e 73 65 74 74 69 6e 67 20 3d 67 70 74 65 6c 2d 74 72 61 | tracking.by.unsetting.=gptel-tra |
| d600 | 63 6b 2d 72 65 73 70 6f 6e 73 65 3d 2e 0a 0a 57 68 65 6e 20 72 65 73 74 6f 72 69 6e 67 20 61 20 | ck-response=...When.restoring.a. |
| d620 | 63 68 61 74 20 73 74 61 74 65 20 66 72 6f 6d 20 61 20 66 69 6c 65 20 6f 6e 20 64 69 73 6b 2c 20 | chat.state.from.a.file.on.disk,. |
| d640 | 67 70 74 65 6c 20 77 69 6c 6c 20 61 70 70 6c 79 20 74 68 65 73 65 20 70 72 6f 70 65 72 74 69 65 | gptel.will.apply.these.propertie |
| d660 | 73 20 66 72 6f 6d 20 73 61 76 65 64 20 6d 65 74 61 64 61 74 61 20 69 6e 20 74 68 65 20 66 69 6c | s.from.saved.metadata.in.the.fil |
| d680 | 65 20 77 68 65 6e 20 79 6f 75 20 74 75 72 6e 20 6f 6e 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 3d 2e | e.when.you.turn.on.=gptel-mode=. |
| d6a0 | 0a 0a 67 70 74 65 6c 20 64 6f 65 73 20 2f 6e 6f 74 2f 20 75 73 65 20 61 6e 79 20 70 72 65 66 69 | ..gptel.does./not/.use.any.prefi |
| d6c0 | 78 20 6f 72 20 73 65 6d 61 6e 74 69 63 2f 73 79 6e 74 61 78 20 65 6c 65 6d 65 6e 74 20 69 6e 20 | x.or.semantic/syntax.element.in. |
| d6e0 | 74 68 65 20 62 75 66 66 65 72 20 28 73 75 63 68 20 61 73 20 68 65 61 64 69 6e 67 73 29 20 74 6f | the.buffer.(such.as.headings).to |
| d700 | 20 73 65 70 61 72 61 74 65 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 2e | .separate.prompts.and.responses. |
| d720 | 20 20 54 68 65 20 72 65 61 73 6f 6e 20 66 6f 72 20 74 68 69 73 20 69 73 20 74 68 61 74 20 67 70 | ..The.reason.for.this.is.that.gp |
| d740 | 74 65 6c 20 61 69 6d 73 20 74 6f 20 69 6e 74 65 67 72 61 74 65 20 61 73 20 73 65 61 6d 6c 65 73 | tel.aims.to.integrate.as.seamles |
| d760 | 73 6c 79 20 61 73 20 70 6f 73 73 69 62 6c 65 20 69 6e 74 6f 20 79 6f 75 72 20 72 65 67 75 6c 61 | sly.as.possible.into.your.regula |
| d780 | 72 20 45 6d 61 63 73 20 75 73 61 67 65 3a 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 69 | r.Emacs.usage:.LLM.interaction.i |
| d7a0 | 73 20 6e 6f 74 20 74 68 65 20 6f 62 6a 65 63 74 69 76 65 2c 20 69 74 27 73 20 6a 75 73 74 20 61 | s.not.the.objective,.it's.just.a |
| d7c0 | 6e 6f 74 68 65 72 20 74 6f 6f 6c 20 61 74 20 79 6f 75 72 20 64 69 73 70 6f 73 61 6c 2e 20 20 53 | nother.tool.at.your.disposal...S |
| d7e0 | 6f 20 72 65 71 75 69 72 69 6e 67 20 61 20 62 75 6e 63 68 20 6f 66 20 22 75 73 65 72 22 20 61 6e | o.requiring.a.bunch.of."user".an |
| d800 | 64 20 22 61 73 73 69 73 74 61 6e 74 22 20 74 61 67 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 | d."assistant".tags.in.the.buffer |
| d820 | 20 69 73 20 6e 6f 69 73 79 20 61 6e 64 20 72 65 73 74 72 69 63 74 69 76 65 2e 20 49 66 20 79 6f | .is.noisy.and.restrictive..If.yo |
| d840 | 75 20 77 61 6e 74 20 74 68 65 73 65 20 64 65 6d 61 72 63 61 74 69 6f 6e 73 2c 20 79 6f 75 20 63 | u.want.these.demarcations,.you.c |
| d860 | 61 6e 20 63 75 73 74 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 | an.customize.=gptel-prompt-prefi |
| d880 | 78 2d 61 6c 69 73 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 | x-alist=.and.=gptel-response-pre |
| d8a0 | 66 69 78 2d 61 6c 69 73 74 3d 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 20 70 72 65 | fix-alist=...Note.that.these.pre |
| d8c0 | 66 69 78 65 73 20 61 72 65 20 66 6f 72 20 79 6f 75 72 20 72 65 61 64 61 62 69 6c 69 74 79 20 6f | fixes.are.for.your.readability.o |
| d8e0 | 6e 6c 79 20 61 6e 64 20 70 75 72 65 6c 79 20 63 6f 73 6d 65 74 69 63 2e 0a 0a 23 2b 68 74 6d 6c | nly.and.purely.cosmetic...#+html |
| d900 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 2a 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 | :.</details>.***.Transient.menu. |
| d920 | 62 65 68 61 76 69 6f 72 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 | behavior.#+html:.<details><summa |
| d940 | 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 65 6e 74 20 6d 65 | ry>.****.I.want.the.transient.me |
| d960 | 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 49 20 6f 6e 6c 79 | nu.options.to.be.saved.so.I.only |
| d980 | 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 74 6d 6c 3a 20 3c | .need.to.set.them.once.#+html:.< |
| d9a0 | 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 6e 73 20 79 6f 75 | /summary>..Any.model.options.you |
| d9c0 | 20 73 65 74 20 61 72 65 20 73 61 76 65 64 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 | .set.are.saved.for.the.current.b |
| d9e0 | 75 66 66 65 72 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 | uffer...But.the.redirection.opti |
| da00 | 6f 6e 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 | ons.in.the.menu.are.set.for.the. |
| da20 | 6e 65 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 | next.query.only:..#+html:.<img.s |
| da40 | 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 2f | rc="https://github.com/karthink/ |
| da60 | 67 70 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 | gptel/assets/8607532/2ecc6be9-aa |
| da80 | 35 32 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 | 52-4287-a739-ba06e1369ec2".alt=" |
| daa0 | 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 |
| dac0 | 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 2d 34 | l/assets/8607532/2ecc6be9-aa52-4 |
| dae0 | 32 38 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 | 287-a739-ba06e1369ec2">..You.can |
| db00 | 20 6d 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 | .make.them.persistent.across.thi |
| db20 | 73 20 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 | s.Emacs.session.by.pressing.~C-x |
| db40 | 20 43 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 | .C-s~:..#+html:.<img.src="https: |
| db60 | 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 65 | //github.com/karthink/gptel/asse |
| db80 | 74 73 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 | ts/8607532/b8bcb6ad-c974-41e1-93 |
| dba0 | 33 36 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 | 36-fdba0098a2fe".alt="https://gi |
| dbc0 | 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 38 | thub.com/karthink/gptel/assets/8 |
| dbe0 | 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 2d 66 | 607532/b8bcb6ad-c974-41e1-9336-f |
| dc00 | 64 62 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 | dba0098a2fe">..(You.can.also.cyc |
| dc20 | 6c 65 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 | le.through.presets.you've.saved. |
| dc40 | 77 69 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 | with.~C-x.p~.and.~C-x.n~.)..Now. |
| dc60 | 74 68 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 | these.will.be.enabled.whenever.y |
| dc80 | 6f 75 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 | ou.send.a.query.from.the.transie |
| dca0 | 6e 74 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 | nt.menu...If.you.want.to.use.the |
| dcc0 | 73 65 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 | se.saved.options.without.invokin |
| dce0 | 67 20 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 | g.the.transient.menu,.you.can.us |
| dd00 | 65 20 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 | e.a.keyboard.macro:..#+begin_src |
| dd20 | 20 65 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 | .emacs-lisp.;;.Replace.with.your |
| dd40 | 20 6b 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 | .key.to.invoke.the.transient.men |
| dd60 | 75 3a 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 | u:.(keymap-global-set."<f6>"."C- |
| dd80 | 75 20 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 | u.C-c.<return>.<return>").#+end_ |
| dda0 | 73 72 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 | src..Or.see.this.[[https://githu |
| ddc0 | 62 2e 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 | b.com/karthink/gptel/wiki/Common |
| dde0 | 6c 79 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 | ly-requested-features#save-trans |
| de00 | 69 65 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 | ient-flags][wiki.entry]]...#+htm |
| de20 | 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>< |
| de40 | 73 75 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 | summary>.****.Using.the.transien |
| de60 | 74 20 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 | t.menu.leaves.behind.extra.windo |
| de80 | 77 73 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 | ws.#+html:.</summary>..If.using. |
| dea0 | 67 70 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 | gptel's.transient.menus.causes.n |
| dec0 | 65 77 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 | ew/extra.window.splits.to.be.cre |
| dee0 | 61 74 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 | ated,.check.your.value.of.=trans |
| df00 | 69 65 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 | ient-display-buffer-action=...[[ |
| df20 | 68 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 | https://github.com/magit/transie |
| df40 | 6e 74 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 | nt/discussions/358][See.this.dis |
| df60 | 63 75 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 | cussion]].for.more.context...If. |
| df80 | 79 6f 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 | you.are.using.Helm,.see.[[https: |
| dfa0 | 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 2f 64 69 73 | //github.com/magit/transient/dis |
| dfc0 | 63 75 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 | cussions/361][Transient#361]]... |
| dfe0 | 49 6e 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 | In.general,.do.not.customize.thi |
| e000 | 73 20 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 | s.Transient.option.unless.you.kn |
| e020 | 6f 77 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 | ow.what.you're.doing!..#+html:.< |
| e040 | 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 6d 6d | /details>.#+html:.<details><summ |
| e060 | 61 72 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 | ary>.****.Can.I.change.the.trans |
| e080 | 69 65 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 | ient.menu.key.bindings?.#+html:. |
| e0a0 | 3c 2f 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 | </summary>..Yes,.see.=transient- |
| e0c0 | 73 75 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 | suffix-put=...This.changes.the.k |
| e0e0 | 65 79 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 | ey.to.select.a.backend/model.fro |
| e100 | 6d 20 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 | m."-m".to."M".in.gptel's.menu:.# |
| e120 | 2b 62 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 | +begin_src.emacs-lisp.(transient |
| e140 | 2d 73 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 | -suffix-put.'gptel-menu.(kbd."-m |
| e160 | 22 29 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 | ").:key."M").#+end_src..#+html:. |
| e180 | 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 6d | </details>.#+html:.<details><sum |
| e1a0 | 6d 61 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 | mary>.****.(Doom.Emacs).Sending. |
| e1c0 | 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 6e 75 20 66 61 69 6c | a.query.from.the.gptel.menu.fail |
| e1e0 | 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 63 74 20 77 69 74 68 | s.because.of.a.key.conflict.with |
| e200 | 20 4f 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 | .Org.mode.#+html:.</summary>..Do |
| e220 | 6f 6d 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 | om.binds.~RET~.in.Org.mode.to.=+ |
| e240 | 6f 72 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 | org/dwim-at-point=,.which.appear |
| e260 | 73 20 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 | s.to.conflict.with.gptel's.trans |
| e280 | 69 65 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 | ient.menu.bindings.for.some.reas |
| e2a0 | 6f 6e 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 | on...Two.solutions:.-.Press.~C-m |
| e2c0 | 7e 20 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 | ~.instead.of.the.return.key..-.C |
| e2e0 | 68 61 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 | hange.the.send.key.from.return.t |
| e300 | 6f 20 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 | o.a.key.of.your.choice:...#+begi |
| e320 | 6e 5f 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 | n_src.emacs-lisp...(transient-su |
| e340 | 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 52 45 54 22 29 | ffix-put.'gptel-menu.(kbd."RET") |
| e360 | 20 3a 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 | .:key."<f8>")...#+end_src..#+htm |
| e380 | 6c 3a 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 | l:.</details>.***.Miscellaneous. |
| e3a0 | 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>.****. |
| e3c0 | 49 20 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 | I.want.to.use.gptel.in.a.way.tha |
| e3e0 | 74 27 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 | t's.not.supported.by.=gptel-send |
| e400 | 3d 20 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 | =.or.the.options.menu.#+html:.</ |
| e420 | 73 75 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 | summary>..gptel's.default.usage. |
| e440 | 70 61 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 | pattern.is.simple,.and.will.stay |
| e460 | 20 74 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 | .this.way:.Read.input.in.any.buf |
| e480 | 66 65 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 | fer.and.insert.the.response.belo |
| e4a0 | 77 20 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 | w.it...Some.custom.behavior.is.p |
| e4c0 | 6f 73 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 | ossible.with.the.transient.menu. |
| e4e0 | 28 3d 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 | (=C-u.M-x.gptel-send=)...For.mor |
| e500 | 65 20 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 | e.programmable.usage,.gptel.prov |
| e520 | 69 64 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 | ides.a.general.=gptel-request=.f |
| e540 | 75 6e 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 | unction.that.accepts.a.custom.pr |
| e560 | 6f 6d 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 | ompt.and.a.callback.to.act.on.th |
| e580 | 65 20 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 | e.response..You.can.use.this.to. |
| e5a0 | 62 75 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 | build.custom.workflows.not.suppo |
| e5c0 | 72 74 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 | rted.by.=gptel-send=...See.the.d |
| e5e0 | 6f 63 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 | ocumentation.of.=gptel-request=, |
| e600 | 20 61 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 | .and.the.[[https://github.com/ka |
| e620 | 72 74 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 | rthink/gptel/wiki/Defining-custo |
| e640 | 6d 2d 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 | m-gptel-commands][wiki]].for.exa |
| e660 | 6d 70 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 | mples...#+html:.</details>.#+htm |
| e680 | 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 28 43 68 61 74 | l:.<details><summary>.****.(Chat |
| e6a0 | 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 2f 32 20 34 32 | GPT).I.get.the.error."(HTTP/2.42 |
| e6c0 | 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 74 20 71 75 6f | 9).You.exceeded.your.current.quo |
| e6e0 | 74 61 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 | ta".#+html:</summary>..#+begin_q |
| e700 | 75 6f 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 | uote.(HTTP/2.429).You.exceeded.y |
| e720 | 6f 75 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 | our.current.quota,.please.check. |
| e740 | 79 6f 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 | your.plan.and.billing.details..# |
| e760 | 2b 65 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 | +end_quote..Using.the.ChatGPT.(o |
| e780 | 72 20 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 | r.any.OpenAI).API.requires.[[htt |
| e7a0 | 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 61 63 63 6f 75 6e 74 | ps://platform.openai.com/account |
| e7c0 | 2f 62 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 | /billing/overview][adding.credit |
| e7e0 | 20 74 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 | .to.your.account]]...#+html:.</d |
| e800 | 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 |
| e820 | 79 3e 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 | y>.****.Why.another.LLM.client?. |
| e840 | 23 2b 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 | #+html:.</summary>..Other.Emacs. |
| e860 | 63 6c 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 | clients.for.LLMs.prescribe.the.f |
| e880 | 6f 72 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 | ormat.of.the.interaction.(a.comi |
| e8a0 | 6e 74 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 | nt.shell,.org-babel.blocks,.etc) |
| e8c0 | 2e 20 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 | ...I.wanted:..1..Something.that. |
| e8e0 | 69 73 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 | is.as.free-form.as.possible:.que |
| e900 | 72 79 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 | ry.the.model.using.any.text.in.a |
| e920 | 6e 79 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 | ny.buffer,.and.redirect.the.resp |
| e940 | 6f 6e 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 | onse.as.required...Using.a.dedic |
| e960 | 61 74 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 | ated.=gptel=.buffer.just.adds.so |
| e980 | 6d 65 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 | me.visual.flair.to.the.interacti |
| e9a0 | 6f 6e 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 | on..2..Integration.with.org-mode |
| e9c0 | 2c 20 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 | ,.not.using.a.walled-off.org-bab |
| e9e0 | 65 6c 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 | el.block,.but.as.regular.text... |
| ea00 | 54 68 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 | This.way.the.model.can.generate. |
| ea20 | 63 6f 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 | code.blocks.that.I.can.run...#+h |
| ea40 | 74 6d 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 | tml:.</details>..**.Additional.C |
| ea60 | 6f 6e 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 | onfiguration.:PROPERTIES:.:ID:.. |
| ea80 | 20 20 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 | .....f885adac-58a3-4eba-a6b7-91e |
| eaa0 | 39 65 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 | 9e7a17829.:END:.#+html:.</summar |
| eac0 | 79 3e 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 | y>..#+begin_src.emacs-lisp.:expo |
| eae0 | 72 74 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 | rts.none.:results.list.(let.((al |
| eb00 | 6c 29 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 | l))...(mapatoms.(lambda.(sym)... |
| eb20 | 20 20 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 | ............(when.(and.(string-m |
| eb40 | 61 74 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 | atch-p."^gptel-[^-]".(symbol-nam |
| eb60 | 65 20 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 | e.sym))......................... |
| eb80 | 20 28 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 | .(get.sym.'variable-documentatio |
| eba0 | 6e 29 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 | n)).................(push.sym.al |
| ebc0 | 6c 29 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 | l))))...all).#+end_src..|------- |
| ebe0 | 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 | ---------------+---------------- |
| ec00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ec20 | 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 43 6f 6e 6e 65 63 74 | --------------------|.|.*Connect |
| ec40 | 69 6f 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 | ion.options*.|.................. |
| ec60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ec80 | 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 2d 2d | ..................|.|----------- |
| eca0 | 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 2d | -----------+-------------------- |
| ecc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ece0 | 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 75 73 65 2d 63 | ----------------|.|.=gptel-use-c |
| ed00 | 75 72 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 | url=.....|.Use.Curl.(default),.f |
| ed20 | 61 6c 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 | allback.to.Emacs'.built-in.=url= |
| ed40 | 2e 20 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 | ..............|.|.=gptel-proxy=. |
| ed60 | 20 20 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 | .......|.Proxy.server.for.reques |
| ed80 | 74 73 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 | ts,.passed.to.curl.via.=--proxy= |
| eda0 | 2e 20 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 | ............|.|.=gptel-api-key=. |
| edc0 | 20 20 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 | .....|.Variable/function.that.re |
| ede0 | 74 75 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 | turns.the.API.key.for.the.active |
| ee00 | 20 62 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 | .backend..|.|------------------- |
| ee20 | 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 | ---+---------------------------- |
| ee40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ee60 | 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 2d 2d 2d 2d | --------|..|-------------------- |
| ee80 | 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 | ---+---------------------------- |
| eea0 | 2d 2d 2d 2d 2d 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 | -----------------------------|.| |
| eec0 | 20 2a 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 | .*LLM.request.options*.|./(Note: |
| eee0 | 20 6e 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 | .not.supported.uniformly.across. |
| ef00 | 4c 4c 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 | LLMs)/...........|.|------------ |
| ef20 | 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 2d | -----------+-------------------- |
| ef40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ef60 | 2d 2d 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 | -----|.|.=gptel-backend=.......| |
| ef80 | 20 44 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 | .Default.LLM.Backend............ |
| efa0 | 20 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 67 70 | .........................|.|.=gp |
| efc0 | 74 65 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 | tel-model=.........|.Default.mod |
| efe0 | 65 6c 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 | el.to.use,.depends.on.the.backen |
| f000 | 64 2e 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 | d............|.|.=gptel-stream=. |
| f020 | 20 20 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 | .......|.Enable.streaming.respon |
| f040 | 73 65 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 | ses,.if.the.backend.supports.it. |
| f060 | 20 7c 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 | .|.|.=gptel-directives=....|.Ali |
| f080 | 73 74 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 | st.of.system.directives,.can.swi |
| f0a0 | 74 63 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 | tch.on.the.fly.......|.|.=gptel- |
| f0c0 | 6d 61 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 | max-tokens=....|.Maximum.token.c |
| f0e0 | 6f 75 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 | ount.(in.query.+.response)...... |
| f100 | 20 20 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 | .........|.|.=gptel-temperature= |
| f120 | 20 20 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 | ...|.Randomness.in.response.text |
| f140 | 2c 20 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 | ,.0.to.2.....................|.| |
| f160 | 20 3d 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 | .=gptel-cache=.........|.Cache.p |
| f180 | 72 6f 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 | rompts,.system.message.or.tools. |
| f1a0 | 28 41 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 | (Anthropic.only).|.|.=gptel-use- |
| f1c0 | 63 6f 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 | context=...|.How/whether.to.incl |
| f1e0 | 75 64 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 | ude.additional.context.......... |
| f200 | 20 20 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 | .....|.|.=gptel-use-tools=.....| |
| f220 | 20 44 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 | .Disable,.allow.or.force.LLM.too |
| f240 | 6c 2d 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 | l-use....................|.|.=gp |
| f260 | 74 65 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 | tel-tools=.........|.List.of.too |
| f280 | 6c 73 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 | ls.to.include.with.requests..... |
| f2a0 | 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 2d 2d | .............|.|---------------- |
| f2c0 | 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 2d | -------+------------------------ |
| f2e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| f300 | 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 2d 2d 2d | -|..|--------------------------- |
| f320 | 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 2d | ----+--------------------------- |
| f340 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| f360 | 2d 2d 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 | -----|.|.*Chat.UI.options*...... |
| f380 | 20 20 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 | .......|........................ |
| f3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| f3c0 | 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 2d 2d | ........|.|--------------------- |
| f3e0 | 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 | ----------+--------------------- |
| f400 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| f420 | 2d 2d 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 | -----------|.|.=gptel-default-mo |
| f440 | 64 65 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 | de=..........|.Major.mode.for.de |
| f460 | 64 69 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 | dicated.chat.buffers............ |
| f480 | 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 70 72 6f 6d 70 74 2d | ..............|.|.=gptel-prompt- |
| f4a0 | 70 72 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 | prefix-alist=...|.Text.inserted. |
| f4c0 | 62 65 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 | before.queries.................. |
| f4e0 | 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 73 70 | .................|.|.=gptel-resp |
| f500 | 6f 6e 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 | onse-prefix-alist=.|.Text.insert |
| f520 | 65 64 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 | ed.before.responses............. |
| f540 | 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 6c 2d 74 | ....................|.|.=gptel-t |
| f560 | 72 61 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 | rack-response=........|.Distingu |
| f580 | 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 4c | ish.between.user.messages.and.LL |
| f5a0 | 4d 20 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 | M.responses?...........|.|.=gpte |
| f5c0 | 6c 2d 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 | l-track-media=...........|.Send. |
| f5e0 | 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 69 6e 6b 73 | images.or.other.media.from.links |
| f600 | 3f 20 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 67 | ?.........................|.|.=g |
| f620 | 70 74 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 | ptel-confirm-tool-calls=....|.Co |
| f640 | 6e 66 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 | nfirm.all.tool.calls?........... |
| f660 | 20 20 20 20 20 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 | .............................|.| |
| f680 | 20 3d 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 | .=gptel-include-tool-results=..| |
| f6a0 | 20 49 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 | .Include.tool.results.in.the.LLM |
| f6c0 | 20 72 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 | .response?...................... |
| f6e0 | 7c 0a 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 | |.|.=gptel-use-header-line=..... |
| f700 | 20 20 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 | ..|.Display.status.messages.in.h |
| f720 | 65 61 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 | eader-line.(default).or.minibuff |
| f740 | 65 72 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 | er.|.|.=gptel-display-buffer-act |
| f760 | 69 6f 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 | ion=.|.Placement.of.the.gptel.ch |
| f780 | 61 74 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 | at.buffer....................... |
| f7a0 | 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 | ......|.|----------------------- |
| f7c0 | 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 | --------+----------------------- |
| f7e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| f800 | 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 2d 2d 2d | ---------|..|------------------- |
| f820 | 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 | ------------+------------------- |
| f840 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| f860 | 2d 2d 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 | ----|.|.*Org.mode.UI.options*... |
| f880 | 20 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 | ......|......................... |
| f8a0 | 20 20 20 20 20 20 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 | ..............................|. |
| f8c0 | 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 2d 2d | |------------------------------- |
| f8e0 | 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 2d | +------------------------------- |
| f900 | 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 |
| f920 | 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 20 7c 20 4d 61 6b 65 | el-org-branching-context=.|.Make |
| f940 | 20 65 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 | .each.outline.path.a.separate.co |
| f960 | 6e 76 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 | nversation.branch.|.|.=gptel-org |
| f980 | 2d 69 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 | -ignore-elements=...|.Ignore.par |
| f9a0 | 74 73 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 | ts.of.the.buffer.when.sending.a. |
| f9c0 | 71 75 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 | query.......|.|----------------- |
| f9e0 | 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 2d | --------------+----------------- |
| fa00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| fa20 | 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 | ------|..|---------------------- |
| fa40 | 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 2d | -----------+-------------------- |
| fa60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| fa80 | 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 7a | ---------|.|.*Hooks.for.customiz |
| faa0 | 61 74 69 6f 6e 2a 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ation*.......|.................. |
| fac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| fae0 | 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 | ...........|.|------------------ |
| fb00 | 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 | ---------------+---------------- |
| fb20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| fb40 | 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 61 76 65 2d 73 74 61 | -------------|.|.=gptel-save-sta |
| fb60 | 74 65 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 62 65 66 6f 72 65 20 73 | te-hook=.........|.Runs.before.s |
| fb80 | 61 76 69 6e 67 20 74 68 65 20 63 68 61 74 20 73 74 61 74 65 20 74 6f 20 61 20 66 69 6c 65 20 6f | aving.the.chat.state.to.a.file.o |
| fba0 | 6e 20 64 69 73 6b 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 | n.disk.........|.|.=gptel-prompt |
| fbc0 | 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 7c 20 52 75 6e 73 20 69 6e 20 61 20 74 | -filter-hook=......|.Runs.in.a.t |
| fbe0 | 65 6d 70 20 62 75 66 66 65 72 20 74 6f 20 74 72 61 6e 73 66 6f 72 6d 20 74 65 78 74 20 62 65 66 | emp.buffer.to.transform.text.bef |
| fc00 | 6f 72 65 20 73 65 6e 64 69 6e 67 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 | ore.sending......|.|.=gptel-post |
| fc20 | 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 69 6d 6d 65 | -request-hook=.......|.Runs.imme |
| fc40 | 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 64 69 73 70 61 74 63 68 69 6e 67 20 61 20 3d 67 70 74 | diately.after.dispatching.a.=gpt |
| fc60 | 65 6c 2d 72 65 71 75 65 73 74 3d 2e 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 | el-request=........|.|.=gptel-pr |
| fc80 | 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 62 65 | e-response-hook=.......|.Runs.be |
| fca0 | 66 6f 72 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 | fore.inserting.the.LLM.response. |
| fcc0 | 69 6e 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d | into.the.buffer......|.|.=gptel- |
| fce0 | 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 7c 20 52 75 6e 73 20 | post-response-functions=.|.Runs. |
| fd00 | 61 66 74 65 72 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 66 75 6c 6c 20 4c 4c 4d 20 72 65 73 | after.inserting.the.full.LLM.res |
| fd20 | 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 62 75 66 66 65 72 20 20 7c 0a 7c 20 3d 67 70 74 65 | ponse.into.the.buffer..|.|.=gpte |
| fd40 | 6c 2d 70 6f 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 7c 20 52 75 6e | l-post-stream-hook=........|.Run |
| fd60 | 73 20 61 66 74 65 72 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 | s.after.each.streaming.insertion |
| fd80 | 20 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 67 70 | .........................|.|.=gp |
| fda0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 72 61 70 2d 66 75 6e 63 74 69 6f 6e 3d 20 20 20 7c 20 54 | tel-context-wrap-function=...|.T |
| fdc0 | 6f 20 69 6e 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 | o.include.additional.context.for |
| fde0 | 6d 61 74 74 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 | matted.your.way............|.|.= |
| fe00 | 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 3d 20 20 7c | gptel-rewrite-default-action=..| |
| fe20 | 20 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 | .Automatically.diff,.ediff,.merg |
| fe40 | 65 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 | e.or.replace.refactored.text.|.| |
| fe60 | 20 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 | .=gptel-post-rewrite-functions=. |
| fe80 | 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 3d 20 | .|.Runs.after.a.=gptel-rewrite=. |
| fea0 | 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 20 7c | request.succeeds...............| |
| fec0 | 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 2d | .|------------------------------ |
| fee0 | 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 | ---+---------------------------- |
| ff00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ff20 | 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 20 43 4f 4d 4d 45 | -|..#+html:.</details>..**.COMME |
| ff40 | 4e 54 20 57 69 6c 6c 20 79 6f 75 20 61 64 64 20 66 65 61 74 75 72 65 20 58 3f 0a 0a 4d 61 79 62 | NT.Will.you.add.feature.X?..Mayb |
| ff60 | 65 2c 20 49 27 64 20 6c 69 6b 65 20 74 6f 20 65 78 70 65 72 69 6d 65 6e 74 20 61 20 62 69 74 20 | e,.I'd.like.to.experiment.a.bit. |
| ff80 | 6d 6f 72 65 20 66 69 72 73 74 2e 20 20 46 65 61 74 75 72 65 73 20 61 64 64 65 64 20 73 69 6e 63 | more.first...Features.added.sinc |
| ffa0 | 65 20 74 68 65 20 69 6e 63 65 70 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 | e.the.inception.of.this.package. |
| ffc0 | 69 6e 63 6c 75 64 65 0a 2d 20 43 75 72 6c 20 73 75 70 70 6f 72 74 20 28 3d 67 70 74 65 6c 2d 75 | include.-.Curl.support.(=gptel-u |
| ffe0 | 73 65 2d 63 75 72 6c 3d 29 2e 0a 2d 20 53 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 | se-curl=)..-.Streaming.responses |
| 10000 | 20 28 3d 67 70 74 65 6c 2d 73 74 72 65 61 6d 3d 29 2e 0a 2d 20 43 61 6e 63 65 6c 6c 69 6e 67 20 | .(=gptel-stream=)..-.Cancelling. |
| 10020 | 72 65 71 75 65 73 74 73 20 69 6e 20 70 72 6f 67 72 65 73 73 20 28 3d 67 70 74 65 6c 2d 61 62 6f | requests.in.progress.(=gptel-abo |
| 10040 | 72 74 3d 29 0a 2d 20 47 65 6e 65 72 61 6c 20 41 50 49 20 66 6f 72 20 77 72 69 74 69 6e 67 20 79 | rt=).-.General.API.for.writing.y |
| 10060 | 6f 75 72 20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 20 28 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 | our.own.commands.(=gptel-request |
| 10080 | 3d 2c 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 | =,.[[https://github.com/karthink |
| 100a0 | 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 67 70 74 65 | /gptel/wiki/Defining-custom-gpte |
| 100c0 | 6c 2d 63 6f 6d 6d 61 6e 64 73 5d 5b 77 69 6b 69 5d 5d 29 0a 2d 20 44 69 73 70 61 74 63 68 20 6d | l-commands][wiki]]).-.Dispatch.m |
| 100e0 | 65 6e 75 73 20 75 73 69 6e 67 20 54 72 61 6e 73 69 65 6e 74 20 28 3d 67 70 74 65 6c 2d 73 65 6e | enus.using.Transient.(=gptel-sen |
| 10100 | 64 3d 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 29 2e 0a 2d 20 53 70 65 63 69 66 79 | d=.with.a.prefix.arg)..-.Specify |
| 10120 | 69 6e 67 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 73 69 7a | ing.the.conversation.context.siz |
| 10140 | 65 2e 0a 2d 20 47 50 54 2d 34 20 73 75 70 70 6f 72 74 2e 0a 2d 20 52 65 73 70 6f 6e 73 65 20 72 | e..-.GPT-4.support..-.Response.r |
| 10160 | 65 64 69 72 65 63 74 69 6f 6e 20 28 74 6f 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 2c 20 61 6e | edirection.(to.the.echo.area,.an |
| 10180 | 6f 74 68 65 72 20 62 75 66 66 65 72 2c 20 65 74 63 29 2e 0a 2d 20 41 20 62 75 69 6c 74 2d 69 6e | other.buffer,.etc)..-.A.built-in |
| 101a0 | 20 72 65 66 61 63 74 6f 72 2f 72 65 77 72 69 74 65 20 70 72 6f 6d 70 74 2e 0a 2d 20 4c 69 6d 69 | .refactor/rewrite.prompt..-.Limi |
| 101c0 | 74 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 63 6f 6e 74 65 78 74 20 74 6f 20 4f 72 67 | ting.conversation.context.to.Org |
| 101e0 | 20 68 65 61 64 69 6e 67 73 20 75 73 69 6e 67 20 70 72 6f 70 65 72 74 69 65 73 20 28 23 35 38 29 | .headings.using.properties.(#58) |
| 10200 | 2e 0a 2d 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 63 68 61 74 73 20 28 | ..-.Saving.and.restoring.chats.( |
| 10220 | 23 31 37 29 2e 0a 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 20 6c 6f 63 61 6c 20 4c 4c 4d 73 2e 0a | #17)..-.Support.for.local.LLMs.. |
| 10240 | 0a 46 65 61 74 75 72 65 73 20 62 65 69 6e 67 20 63 6f 6e 73 69 64 65 72 65 64 20 6f 72 20 69 6e | .Features.being.considered.or.in |
| 10260 | 20 74 68 65 20 70 69 70 65 6c 69 6e 65 3a 0a 2d 20 46 75 6c 6c 79 20 73 74 61 74 65 6c 65 73 73 | .the.pipeline:.-.Fully.stateless |
| 10280 | 20 64 65 73 69 67 6e 20 28 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 | .design.([[https://github.com/ka |
| 102a0 | 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 64 69 73 63 75 73 73 69 6f 6e 73 2f 31 31 39 5d 5b 64 69 | rthink/gptel/discussions/119][di |
| 102c0 | 73 63 75 73 73 69 6f 6e 20 23 31 31 39 5d 5d 29 2e 0a 0a 2a 2a 20 41 6c 74 65 72 6e 61 74 69 76 | scussion.#119]])...**.Alternativ |
| 102e0 | 65 73 0a 0a 4f 74 68 65 72 20 45 6d 61 63 73 20 63 6c 69 65 6e 74 73 20 66 6f 72 20 4c 4c 4d 73 | es..Other.Emacs.clients.for.LLMs |
| 10300 | 20 69 6e 63 6c 75 64 65 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | .include..-.[[https://github.com |
| 10320 | 2f 61 68 79 61 74 74 2f 6c 6c 6d 5d 5b 6c 6c 6d 5d 5d 3a 20 6c 6c 6d 20 70 72 6f 76 69 64 65 73 | /ahyatt/llm][llm]]:.llm.provides |
| 10340 | 20 61 20 75 6e 69 66 6f 72 6d 20 41 50 49 20 61 63 72 6f 73 73 20 6c 61 6e 67 75 61 67 65 20 6d | .a.uniform.API.across.language.m |
| 10360 | 6f 64 65 6c 20 70 72 6f 76 69 64 65 72 73 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 20 4c 4c 4d 20 | odel.providers.for.building.LLM. |
| 10380 | 63 6c 69 65 6e 74 73 20 69 6e 20 45 6d 61 63 73 2c 20 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 | clients.in.Emacs,.and.is.intende |
| 103a0 | 64 20 61 73 20 61 20 6c 69 62 72 61 72 79 20 66 6f 72 20 75 73 65 20 62 79 20 70 61 63 6b 61 67 | d.as.a.library.for.use.by.packag |
| 103c0 | 65 20 61 75 74 68 6f 72 73 2e 20 20 46 6f 72 20 73 69 6d 69 6c 61 72 20 73 63 72 69 70 74 69 6e | e.authors...For.similar.scriptin |
| 103e0 | 67 20 70 75 72 70 6f 73 65 73 2c 20 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 63 | g.purposes,.gptel.provides.the.c |
| 10400 | 6f 6d 6d 61 6e 64 20 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 3d 2c 20 77 68 69 63 68 20 73 65 | ommand.=gptel-request=,.which.se |
| 10420 | 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 2f 73 2d 6b 6f 73 74 | e..-.[[https://github.com/s-kost |
| 10440 | 79 61 65 76 2f 65 6c 6c 61 6d 61 5d 5b 45 6c 6c 61 6d 61 5d 5d 3a 20 41 20 66 75 6c 6c 2d 66 6c | yaev/ellama][Ellama]]:.A.full-fl |
| 10460 | 65 64 67 65 64 20 4c 4c 4d 20 63 6c 69 65 6e 74 20 62 75 69 6c 74 20 6f 6e 20 6c 6c 6d 2c 20 74 | edged.LLM.client.built.on.llm,.t |
| 10480 | 68 61 74 20 73 75 70 70 6f 72 74 73 20 6d 61 6e 79 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 20 | hat.supports.many.LLM.providers. |
| 104a0 | 28 4f 6c 6c 61 6d 61 2c 20 4f 70 65 6e 20 41 49 2c 20 56 65 72 74 65 78 2c 20 47 50 54 34 41 6c | (Ollama,.Open.AI,.Vertex,.GPT4Al |
| 104c0 | 6c 20 61 6e 64 20 6d 6f 72 65 29 2e 20 20 49 74 73 20 75 73 61 67 65 20 64 69 66 66 65 72 73 20 | l.and.more)...Its.usage.differs. |
| 104e0 | 66 72 6f 6d 20 67 70 74 65 6c 20 69 6e 20 74 68 61 74 20 69 74 20 70 72 6f 76 69 64 65 73 20 73 | from.gptel.in.that.it.provides.s |
| 10500 | 65 70 61 72 61 74 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 64 6f 7a 65 6e 73 20 6f 66 20 63 | eparate.commands.for.dozens.of.c |
| 10520 | 6f 6d 6d 6f 6e 20 74 61 73 6b 73 2c 20 6c 69 6b 65 20 67 65 6e 65 72 61 6c 20 63 68 61 74 2c 20 | ommon.tasks,.like.general.chat,. |
| 10540 | 73 75 6d 6d 61 72 69 7a 69 6e 67 20 63 6f 64 65 2f 74 65 78 74 2c 20 72 65 66 61 63 74 6f 72 69 | summarizing.code/text,.refactori |
| 10560 | 6e 67 20 63 6f 64 65 2c 20 69 6d 70 72 6f 76 69 6e 67 20 67 72 61 6d 6d 61 72 2c 20 74 72 61 6e | ng.code,.improving.grammar,.tran |
| 10580 | 73 6c 61 74 69 6f 6e 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 | slation.and.so.on..-.[[https://g |
| 105a0 | 69 74 68 75 62 2e 63 6f 6d 2f 78 65 6e 6f 64 69 75 6d 2f 63 68 61 74 67 70 74 2d 73 68 65 6c 6c | ithub.com/xenodium/chatgpt-shell |
| 105c0 | 5d 5b 63 68 61 74 67 70 74 2d 73 68 65 6c 6c 5d 5d 3a 20 63 6f 6d 69 6e 74 2d 73 68 65 6c 6c 20 | ][chatgpt-shell]]:.comint-shell. |
| 105e0 | 62 61 73 65 64 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 77 69 74 68 20 43 68 61 74 47 50 54 2e 20 | based.interaction.with.ChatGPT.. |
| 10600 | 20 41 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 44 41 4c 4c 2d 45 2c 20 65 78 65 63 75 74 61 62 6c | .Also.supports.DALL-E,.executabl |
| 10620 | 65 20 63 6f 64 65 20 62 6c 6f 63 6b 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 73 2c 20 | e.code.blocks.in.the.responses,. |
| 10640 | 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 |
| 10660 | 2f 72 6b 73 6d 2f 6f 72 67 2d 61 69 5d 5b 6f 72 67 2d 61 69 5d 5d 3a 20 49 6e 74 65 72 61 63 74 | /rksm/org-ai][org-ai]]:.Interact |
| 10680 | 69 6f 6e 20 74 68 72 6f 75 67 68 20 73 70 65 63 69 61 6c 20 3d 23 2b 62 65 67 69 6e 5f 61 69 20 | ion.through.special.=#+begin_ai. |
| 106a0 | 2e 2e 2e 20 23 2b 65 6e 64 5f 61 69 3d 20 4f 72 67 2d 6d 6f 64 65 20 62 6c 6f 63 6b 73 2e 20 20 | ....#+end_ai=.Org-mode.blocks... |
| 106c0 | 41 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 44 41 4c 4c 2d 45 2c 20 71 75 65 72 79 69 6e 67 20 43 | Also.supports.DALL-E,.querying.C |
| 106e0 | 68 61 74 47 50 54 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 70 72 6f 6a | hatGPT.with.the.contents.of.proj |
| 10700 | 65 63 74 20 66 69 6c 65 73 2c 20 61 6e 64 20 6d 6f 72 65 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 | ect.files,.and.more...There.are. |
| 10720 | 73 65 76 65 72 61 6c 20 6d 6f 72 65 3a 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | several.more:.[[https://github.c |
| 10740 | 6f 6d 2f 4d 69 63 68 61 65 6c 42 75 72 67 65 2f 6c 65 61 66 79 2d 6d 6f 64 65 5d 5b 6c 65 61 66 | om/MichaelBurge/leafy-mode][leaf |
| 10760 | 79 2d 6d 6f 64 65 5d 5d 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 69 | y-mode]],.[[https://github.com/i |
| 10780 | 77 61 68 62 65 2f 63 68 61 74 2e 65 6c 5d 5b 63 68 61 74 2e 65 6c 5d 5d 2c 20 5b 5b 68 74 74 70 | wahbe/chat.el][chat.el]],.[[http |
| 107a0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 74 75 68 6c 6d 75 65 6c 6c 65 72 2f 67 70 74 2e | s://github.com/stuhlmueller/gpt. |
| 107c0 | 65 6c 5d 5b 67 70 74 2e 65 6c 5d 5d 2c 20 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | el][gpt.el]],..[[https://github. |
| 107e0 | 63 6f 6d 2f 41 6e 73 65 6c 6d 43 2f 6c 65 2d 67 70 74 2e 65 6c 5d 5b 6c 65 2d 67 70 74 5d 5d 2c | com/AnselmC/le-gpt.el][le-gpt]], |
| 10800 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 74 65 76 65 6d 6f 6c 69 74 | .[[https://github.com/stevemolit |
| 10820 | 6f 72 2f 72 6f 62 62 79 5d 5b 72 6f 62 62 79 5d 5d 2e 0a 0a 2a 2a 2a 20 50 61 63 6b 61 67 65 73 | or/robby][robby]]...***.Packages |
| 10840 | 20 75 73 69 6e 67 20 67 70 74 65 6c 0a 0a 67 70 74 65 6c 20 69 73 20 61 20 67 65 6e 65 72 61 6c | .using.gptel..gptel.is.a.general |
| 10860 | 2d 70 75 72 70 6f 73 65 20 70 61 63 6b 61 67 65 20 66 6f 72 20 63 68 61 74 20 61 6e 64 20 61 64 | -purpose.package.for.chat.and.ad |
| 10880 | 2d 68 6f 63 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e 2e 20 20 54 68 65 20 66 6f 6c 6c 6f | -hoc.LLM.interaction...The.follo |
| 108a0 | 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 75 73 65 20 67 70 74 65 6c 20 74 6f 20 70 72 6f 76 69 | wing.packages.use.gptel.to.provi |
| 108c0 | 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 72 20 73 70 65 63 69 61 6c 69 7a 65 64 20 66 75 6e | de.additional.or.specialized.fun |
| 108e0 | 63 74 69 6f 6e 61 6c 69 74 79 3a 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | ctionality:..-.[[https://github. |
| 10900 | 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2d 71 75 69 63 6b 5d 5b 67 70 74 65 6c 2d | com/karthink/gptel-quick][gptel- |
| 10920 | 71 75 69 63 6b 5d 5d 3a 20 51 75 69 63 6b 6c 79 20 6c 6f 6f 6b 20 75 70 20 74 68 65 20 72 65 67 | quick]]:.Quickly.look.up.the.reg |
| 10940 | 69 6f 6e 20 6f 72 20 74 65 78 74 20 61 74 20 70 6f 69 6e 74 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a | ion.or.text.at.point..-.[[https: |
| 10960 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 61 65 64 73 69 64 6f 67 2f 65 76 65 64 65 6c 5d 5b 45 | //github.com/daedsidog/evedel][E |
| 10980 | 76 65 64 65 6c 5d 5d 3a 20 49 6e 73 74 72 75 63 74 65 64 20 4c 4c 4d 20 50 72 6f 67 72 61 6d 6d | vedel]]:.Instructed.LLM.Programm |
| 109a0 | 65 72 2f 41 73 73 69 73 74 61 6e 74 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 | er/Assistant..-.[[https://github |
| 109c0 | 2e 63 6f 6d 2f 6c 61 6e 63 65 62 65 72 67 65 2f 65 6c 79 73 69 75 6d 5d 5b 45 6c 79 73 69 75 6d | .com/lanceberge/elysium][Elysium |
| 109e0 | 5d 5d 3a 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 70 70 6c 79 20 41 49 2d 67 65 6e 65 72 | ]]:.Automatically.apply.AI-gener |
| 10a00 | 61 74 65 64 20 63 68 61 6e 67 65 73 20 61 73 20 79 6f 75 20 63 6f 64 65 2e 0a 2d 20 5b 5b 68 74 | ated.changes.as.you.code..-.[[ht |
| 10a20 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 6d 75 73 68 61 64 65 6e 65 73 2f 61 69 | tps://github.com/kamushadenes/ai |
| 10a40 | 2d 62 6c 6f 67 2e 65 6c 5d 5b 61 69 2d 62 6c 6f 67 2e 65 6c 5d 5d 3a 20 53 74 72 65 61 6d 6c 69 | -blog.el][ai-blog.el]]:.Streamli |
| 10a60 | 6e 65 20 67 65 6e 65 72 61 74 69 6f 6e 20 6f 66 20 62 6c 6f 67 20 70 6f 73 74 73 20 69 6e 20 48 | ne.generation.of.blog.posts.in.H |
| 10a80 | 75 67 6f 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 6f 75 6f | ugo..-.[[https://github.com/douo |
| 10aa0 | 2f 6d 61 67 69 74 2d 67 70 74 63 6f 6d 6d 69 74 5d 5b 6d 61 67 69 74 2d 67 70 74 63 6f 6d 6d 69 | /magit-gptcommit][magit-gptcommi |
| 10ac0 | 74 5d 5d 3a 20 47 65 6e 65 72 61 74 65 20 43 6f 6d 6d 69 74 20 4d 65 73 73 61 67 65 73 20 77 69 | t]]:.Generate.Commit.Messages.wi |
| 10ae0 | 74 68 69 6e 20 6d 61 67 69 74 2d 73 74 61 74 75 73 20 42 75 66 66 65 72 20 75 73 69 6e 67 20 67 | thin.magit-status.Buffer.using.g |
| 10b00 | 70 74 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 61 72 6d | ptel..-.[[https://github.com/arm |
| 10b20 | 69 6e 64 61 72 76 69 73 68 2f 63 6f 6e 73 75 6c 74 2d 6f 6d 6e 69 5d 5b 63 6f 6e 73 75 6c 74 2d | indarvish/consult-omni][consult- |
| 10b40 | 6f 6d 6e 69 5d 5d 3a 20 56 65 72 73 61 74 69 6c 65 20 6d 75 6c 74 69 2d 73 6f 75 72 63 65 20 73 | omni]]:.Versatile.multi-source.s |
| 10b60 | 65 61 72 63 68 20 70 61 63 6b 61 67 65 2e 20 20 49 74 20 69 6e 63 6c 75 64 65 73 20 67 70 74 65 | earch.package...It.includes.gpte |
| 10b80 | 6c 20 61 73 20 6f 6e 65 20 6f 66 20 69 74 73 20 6d 61 6e 79 20 73 6f 75 72 63 65 73 2e 0a 2d 20 | l.as.one.of.its.many.sources..-. |
| 10ba0 | 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 6c 74 72 6f 6e 6f 7a 6d 2f 61 | [[https://github.com/ultronozm/a |
| 10bc0 | 69 2d 6f 72 67 2d 63 68 61 74 2e 65 6c 5d 5b 61 69 2d 6f 72 67 2d 63 68 61 74 5d 5d 3a 20 50 72 | i-org-chat.el][ai-org-chat]]:.Pr |
| 10be0 | 6f 76 69 64 65 73 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 69 | ovides.branching.conversations.i |
| 10c00 | 6e 20 4f 72 67 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 20 20 28 4e 6f 74 | n.Org.buffers.using.gptel...(Not |
| 10c20 | 65 20 74 68 61 74 20 67 70 74 65 6c 20 69 6e 63 6c 75 64 65 73 20 74 68 69 73 20 66 65 61 74 75 | e.that.gptel.includes.this.featu |
| 10c40 | 72 65 20 61 73 20 77 65 6c 6c 20 28 73 65 65 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 | re.as.well.(see.=gptel-org-branc |
| 10c60 | 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 29 2c 20 62 75 74 20 72 65 71 75 69 72 65 73 20 61 20 72 | hing-context=),.but.requires.a.r |
| 10c80 | 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 4f 72 67 20 6d 6f 64 65 20 39 2e 37 20 6f 72 | ecent.version.of.Org.mode.9.7.or |
| 10ca0 | 20 6c 61 74 65 72 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 2e 29 0a 2d 20 5b 5b 68 74 74 | .later.to.be.installed.).-.[[htt |
| 10cc0 | 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 6f 62 31 33 37 2f 43 6f 72 73 61 69 72 5d 5b | ps://github.com/rob137/Corsair][ |
| 10ce0 | 43 6f 72 73 61 69 72 5d 5d 3a 20 48 65 6c 70 73 20 67 61 74 68 65 72 20 74 65 78 74 20 74 6f 20 | Corsair]]:.Helps.gather.text.to. |
| 10d00 | 70 6f 70 75 6c 61 74 65 20 4c 4c 4d 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 67 70 74 65 6c 2e 0a | populate.LLM.prompts.for.gptel.. |
| 10d20 | 0a 2a 2a 20 43 4f 4d 4d 45 4e 54 20 4f 6c 64 65 72 20 42 72 65 61 6b 69 6e 67 20 43 68 61 6e 67 | .**.COMMENT.Older.Breaking.Chang |
| 10d40 | 65 73 0a 0a 2d 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d | es..-.=gptel-post-response-hook= |
| 10d60 | 20 68 61 73 20 62 65 65 6e 20 72 65 6e 61 6d 65 64 20 74 6f 20 3d 67 70 74 65 6c 2d 70 6f 73 74 | .has.been.renamed.to.=gptel-post |
| 10d80 | 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 2c 20 61 6e 64 20 66 75 6e 63 74 69 | -response-functions=,.and.functi |
| 10da0 | 6f 6e 73 20 69 6e 20 74 68 69 73 20 68 6f 6f 6b 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 65 64 20 | ons.in.this.hook.are.now.called. |
| 10dc0 | 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 73 74 61 72 74 20 61 6e | with.two.arguments:.the.start.an |
| 10de0 | 64 20 65 6e 64 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 | d.end.buffer.positions.of.the.re |
| 10e00 | 73 70 6f 6e 73 65 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20 6d 61 6b 65 20 69 74 20 65 61 73 | sponse...This.should.make.it.eas |
| 10e20 | 79 20 74 6f 20 61 63 74 20 6f 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 77 69 | y.to.act.on.the.response.text.wi |
| 10e40 | 74 68 6f 75 74 20 68 61 76 69 6e 67 20 74 6f 20 6c 6f 63 61 74 65 20 69 74 20 66 69 72 73 74 2e | thout.having.to.locate.it.first. |
| 10e60 | 0a 0a 2d 20 50 6f 73 73 69 62 6c 65 20 62 72 65 61 6b 61 67 65 2c 20 73 65 65 20 23 31 32 30 3a | ..-.Possible.breakage,.see.#120: |
| 10e80 | 20 49 66 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 73 74 6f 70 20 77 6f 72 | .If.streaming.responses.stop.wor |
| 10ea0 | 6b 69 6e 67 20 66 6f 72 20 79 6f 75 20 61 66 74 65 72 20 75 70 67 72 61 64 69 6e 67 20 74 6f 20 | king.for.you.after.upgrading.to. |
| 10ec0 | 76 30 2e 35 2c 20 74 72 79 20 72 65 69 6e 73 74 61 6c 6c 69 6e 67 20 67 70 74 65 6c 20 61 6e 64 | v0.5,.try.reinstalling.gptel.and |
| 10ee0 | 20 64 65 6c 65 74 69 6e 67 20 69 74 73 20 6e 61 74 69 76 65 20 63 6f 6d 70 20 65 6c 6e 20 63 61 | .deleting.its.native.comp.eln.ca |
| 10f00 | 63 68 65 20 69 6e 20 3d 6e 61 74 69 76 65 2d 63 6f 6d 70 2d 65 6c 6e 2d 6c 6f 61 64 2d 70 61 74 | che.in.=native-comp-eln-load-pat |
| 10f20 | 68 3d 2e 0a 0a 2d 20 54 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 3d 67 70 74 65 6c 2d 68 6f | h=...-.The.user.option.=gptel-ho |
| 10f40 | 73 74 3d 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e 20 20 49 66 20 74 68 65 20 64 65 66 61 75 | st=.is.deprecated...If.the.defau |
| 10f60 | 6c 74 73 20 64 6f 6e 27 74 20 77 6f 72 6b 20 66 6f 72 20 79 6f 75 2c 20 75 73 65 20 3d 67 70 74 | lts.don't.work.for.you,.use.=gpt |
| 10f80 | 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 3d 20 28 77 68 69 63 68 20 73 65 65 29 20 74 6f 20 63 | el-make-openai=.(which.see).to.c |
| 10fa0 | 75 73 74 6f 6d 69 7a 65 20 73 65 72 76 65 72 20 73 65 74 74 69 6e 67 73 2e 0a 0a 2d 20 3d 67 70 | ustomize.server.settings...-.=gp |
| 10fc0 | 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 3d 20 6e 6f | tel-api-key-from-auth-source=.no |
| 10fe0 | 77 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 74 68 65 20 41 50 49 20 6b 65 79 20 75 73 69 6e 67 | w.searches.for.the.API.key.using |
| 11000 | 20 74 68 65 20 68 6f 73 74 20 61 64 64 72 65 73 73 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 | .the.host.address.for.the.active |
| 11020 | 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 2c 20 2f 69 2e 65 2e 2f 20 22 61 70 69 2e 6f 70 65 6e 61 69 | .LLM.backend,./i.e./."api.openai |
| 11040 | 2e 63 6f 6d 22 20 77 68 65 6e 20 75 73 69 6e 67 20 43 68 61 74 47 50 54 2e 20 20 59 6f 75 20 6d | .com".when.using.ChatGPT...You.m |
| 11060 | 61 79 20 6e 65 65 64 20 74 6f 20 75 70 64 61 74 65 20 79 6f 75 72 20 3d 7e 2f 2e 61 75 74 68 69 | ay.need.to.update.your.=~/.authi |
| 11080 | 6e 66 6f 3d 2e 0a 0a 2a 2a 20 41 63 6b 6e 6f 77 6c 65 64 67 6d 65 6e 74 73 0a 0a 2d 20 5b 5b 68 | nfo=...**.Acknowledgments..-.[[h |
| 110a0 | 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 20 | ttps://github.com/pabl0][Henrik. |
| 110c0 | 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 61 | Ahlgren]].for.a.keen.eye.to.deta |
| 110e0 | 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 73 | il.and.polish.applied.to.gptel's |
| 11100 | 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 6f 73 69 | .UI..-.[[https://github.com/posi |
| 11120 | 74 72 6f 6e 2d 73 6f 6c 75 74 69 6f 6e 73 2f 5d 5b 50 6f 73 69 74 72 6f 6e 20 53 6f 6c 75 74 69 | tron-solutions/][Positron.Soluti |
| 11140 | 6f 6e 73 5d 5d 20 66 6f 72 20 65 78 74 65 6e 73 69 76 65 20 74 65 73 74 69 6e 67 20 6f 66 20 74 | ons]].for.extensive.testing.of.t |
| 11160 | 68 65 20 74 6f 6f 6c 20 75 73 65 20 66 65 61 74 75 72 65 20 61 6e 64 20 74 68 65 20 64 65 73 69 | he.tool.use.feature.and.the.desi |
| 11180 | 67 6e 20 6f 66 20 67 70 74 65 6c 27 73 20 69 6e 2d 62 75 66 66 65 72 20 74 6f 6f 6c 20 75 73 65 | gn.of.gptel's.in-buffer.tool.use |
| 111a0 | 20 72 65 63 6f 72 64 73 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | .records..-.[[https://github.com |
| 111c0 | 2f 6a 64 74 73 6d 69 74 68 5d 5b 4a 44 20 53 6d 69 74 68 5d 5d 20 66 6f 72 20 66 65 65 64 62 61 | /jdtsmith][JD.Smith]].for.feedba |
| 111e0 | 63 6b 20 61 6e 64 20 63 6f 64 65 20 61 73 73 69 73 74 61 6e 63 65 20 77 69 74 68 20 67 70 74 65 | ck.and.code.assistance.with.gpte |
| 11200 | 6c 2d 6d 65 6e 75 27 73 20 72 65 64 65 73 69 67 6e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 | l-menu's.redesign.-.[[https://gi |
| 11220 | 74 68 75 62 2e 63 6f 6d 2f 6d 65 61 69 6e 5d 5b 41 62 69 6e 20 53 69 6d 6f 6e 5d 5d 20 66 6f 72 | thub.com/meain][Abin.Simon]].for |
| 11240 | 20 65 78 74 65 6e 73 69 76 65 20 66 65 65 64 62 61 63 6b 20 6f 6e 20 69 6d 70 72 6f 76 69 6e 67 | .extensive.feedback.on.improving |
| 11260 | 20 67 70 74 65 6c 27 73 20 64 69 72 65 63 74 69 76 65 73 20 61 6e 64 20 55 49 2e 0a 2d 20 5b 5b | .gptel's.directives.and.UI..-.[[ |
| 11280 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 6c 67 61 6c 5d 5b 41 6c 65 78 69 73 | https://github.com/algal][Alexis |
| 112a0 | 20 47 61 6c 6c 61 67 68 65 72 5d 5d 20 61 6e 64 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 | .Gallagher]].and.[[https://githu |
| 112c0 | 62 2e 63 6f 6d 2f 64 31 65 67 6f 61 7a 5d 5b 44 69 65 67 6f 20 41 6c 76 61 72 65 7a 5d 5d 20 66 | b.com/d1egoaz][Diego.Alvarez]].f |
| 112e0 | 6f 72 20 66 69 78 69 6e 67 20 61 20 6e 61 73 74 79 20 6d 75 6c 74 69 2d 62 79 74 65 20 62 75 67 | or.fixing.a.nasty.multi-byte.bug |
| 11300 | 20 77 69 74 68 20 3d 75 72 6c 2d 72 65 74 72 69 65 76 65 3d 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a | .with.=url-retrieve=..-.[[https: |
| 11320 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 74 61 72 73 69 75 73 5d 5b 4a 6f 6e 61 73 20 42 65 72 6e | //github.com/tarsius][Jonas.Bern |
| 11340 | 6f 75 6c 6c 69 5d 5d 20 66 6f 72 20 74 68 65 20 54 72 61 6e 73 69 65 6e 74 20 6c 69 62 72 61 72 | oulli]].for.the.Transient.librar |
| 11360 | 79 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 61 65 64 73 69 | y..-.[[https://github.com/daedsi |
| 11380 | 64 6f 67 5d 5b 64 61 65 64 73 69 64 6f 67 5d 5d 20 66 6f 72 20 61 64 64 69 6e 67 20 63 6f 6e 74 | dog][daedsidog]].for.adding.cont |
| 113a0 | 65 78 74 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 | ext.support.to.gptel..-.[[https: |
| 113c0 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 41 71 75 61 6e 31 34 31 32 5d 5b 41 71 75 61 6e 31 34 31 | //github.com/Aquan1412][Aquan141 |
| 113e0 | 32 5d 5d 20 66 6f 72 20 61 64 64 69 6e 67 20 50 72 69 76 61 74 65 47 50 54 20 73 75 70 70 6f 72 | 2]].for.adding.PrivateGPT.suppor |
| 11400 | 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 69 74 68 75 62 2e 63 | t.to.gptel..-.[[https://github.c |
| 11420 | 6f 6d 2f 72 30 6d 61 6e 5d 5b 72 30 6d 61 6e 5d 5d 20 66 6f 72 20 69 6d 70 72 6f 76 69 6e 67 20 | om/r0man][r0man]].for.improving. |
| 11440 | 67 70 74 65 6c 27 73 20 43 75 72 6c 20 69 6e 74 65 67 72 61 74 69 6f 6e 2e 0a 0a 23 20 4c 6f 63 | gptel's.Curl.integration...#.Loc |
| 11460 | 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 23 20 74 6f 63 2d 6f 72 67 2d 6d 61 78 2d 64 65 70 74 | al.Variables:.#.toc-org-max-dept |
| 11480 | 68 3a 20 34 0a 23 20 65 76 61 6c 3a 20 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 74 6f 63 2d | h:.4.#.eval:.(and.(fboundp.'toc- |
| 114a0 | 6f 72 67 2d 6d 6f 64 65 29 20 28 74 6f 63 2d 6f 72 67 2d 6d 6f 64 65 20 31 29 29 0a 23 20 45 6e | org-mode).(toc-org-mode.1)).#.En |
| 114c0 | 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 00 | d:.............................. |
| 114e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 115a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 115c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 115e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11600 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 00 00 00 00 00 00 00 | gptel-0.9.8/gptel-kagi.el....... |
| 11620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11660 | 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 |
| 11680 | 30 30 31 37 31 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 30 00 20 30 00 00 00 | 0017163.00000000000.013660..0... |
| 116a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 116c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 116e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11700 | 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................... |
| 11720 | 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................... |
| 11740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 117a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 117c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 117e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 11800 | 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 |
| 11820 | 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 |
| 11840 | 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 |
| 11860 | 30 32 33 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 75 74 | 023..Karthik.Chikmagalur..;;.Aut |
| 11880 | 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 68 69 | hor:.Karthik.Chikmagalur.<karthi |
| 118a0 | 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 77 6f | kchikmagalur@gmail.com>.;;.Keywo |
| 118c0 | 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 6f 67 72 61 6d | rds:.hypermedia..;;.This.program |
| 118e0 | 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 72 65 64 69 73 | .is.free.software;.you.can.redis |
| 11900 | 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 20 69 74 20 75 | tribute.it.and/or.modify.;;.it.u |
| 11920 | 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 65 6e 65 72 61 | nder.the.terms.of.the.GNU.Genera |
| 11940 | 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 65 64 20 62 79 | l.Public.License.as.published.by |
| 11960 | 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 61 74 69 6f 6e | .;;.the.Free.Software.Foundation |
| 11980 | 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 69 63 65 6e 73 | ,.either.version.3.of.the.Licens |
| 119a0 | 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 6e 79 20 6c 61 | e,.or.;;.(at.your.option).any.la |
| 119c0 | 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 61 6d 20 69 73 | ter.version...;;.This.program.is |
| 119e0 | 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 61 74 20 69 74 | .distributed.in.the.hope.that.it |
| 11a00 | 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 48 4f 55 54 20 | .will.be.useful,.;;.but.WITHOUT. |
| 11a20 | 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 74 68 65 20 69 | ANY.WARRANTY;.without.even.the.i |
| 11a40 | 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 41 4e 54 41 42 | mplied.warranty.of.;;.MERCHANTAB |
| 11a60 | 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 49 43 55 4c 41 | ILITY.or.FITNESS.FOR.A.PARTICULA |
| 11a80 | 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 47 65 6e 65 72 | R.PURPOSE...See.the.;;.GNU.Gener |
| 11aa0 | 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 64 65 74 61 69 | al.Public.License.for.more.detai |
| 11ac0 | 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 65 69 76 65 64 | ls...;;.You.should.have.received |
| 11ae0 | 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 50 75 62 6c 69 | .a.copy.of.the.GNU.General.Publi |
| 11b00 | 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 73 20 70 72 6f | c.License.;;.along.with.this.pro |
| 11b20 | 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 2f 77 77 77 2e | gram...If.not,.see.<https://www. |
| 11b40 | 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 6d 6d 65 6e 74 | gnu.org/licenses/>...;;;.Comment |
| 11b60 | 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 70 6f 72 74 20 | ary:..;;.This.file.adds.support. |
| 11b80 | 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 49 20 74 6f 20 | for.the.Kagi.FastGPT.LLM.API.to. |
| 11ba0 | 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 74 65 6c | gptel..;;;.Code:.(require.'gptel |
| 11bc0 | 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 61 6c 2d 77 68 | ).(require.'cl-generic).(eval-wh |
| 11be0 | 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 69 62 29 29 0a | en-compile...(require.'cl-lib)). |
| 11c00 | 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 |
| 11c20 | 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 3b 20 4b 61 67 | --wrap."gptel-context")..;;;.Kag |
| 11c40 | 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 20 28 3a 63 6f | i.(cl-defstruct.(gptel-kagi.(:co |
| 11c60 | 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 0a 20 20 20 20 | nstructor.gptel--make-kagi)..... |
| 11c80 | 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 65 72 | ........................(:copier |
| 11ca0 | 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 20 20 | .nil)........................... |
| 11cc0 | 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 28 63 | ..(:include.gptel-backend)))..(c |
| 11ce0 | 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 73 70 6f 6e 73 | l-defmethod.gptel--parse-respons |
| 11d00 | 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 73 70 6f 6e 73 | e.((_backend.gptel-kagi).respons |
| 11d20 | 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 73 74 2d 67 65 | e.info)...(let*.((data.(plist-ge |
| 11d40 | 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 20 28 6f 75 74 | t.response.:data))..........(out |
| 11d60 | 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 29 29 0a 20 20 | put.(plist-get.data.:output))... |
| 11d80 | 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 65 74 20 64 61 | .......(references.(plist-get.da |
| 11da0 | 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 65 71 20 72 65 | ta.:references))).....(if.(eq.re |
| 11dc0 | 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 65 6e 63 65 73 | ferences.:null).(setq.references |
| 11de0 | 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 6e 75 6c 6c 29 | .nil)).....(if.(eq.output.:null) |
| 11e00 | 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 65 6e 20 72 65 | .(setq.output.nil)).....(when.re |
| 11e20 | 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 6e 63 65 73 0a | ferences.......(setq.references. |
| 11e40 | 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 69 6e 6b 65 72 | ............(cl-loop.with.linker |
| 11e60 | 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 61 73 65 20 28 | .=......................(pcase.( |
| 11e80 | 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 6f 64 65 0a 20 | buffer-local-value.'major-mode.. |
| 11ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 11ec0 | 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 3a | ...............(plist-get.info.: |
| 11ee0 | 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 20 20 20 20 20 | buffer))........................ |
| 11f00 | 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 20 20 20 20 20 | ('org-mode...................... |
| 11f20 | 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 20 20 20 20 20 | ...(lambda.(text.url)........... |
| 11f40 | 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 25 73 5d 5b 25 | ................(format."[[%s][% |
| 11f60 | 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 20 20 20 20 20 | s]]".url.text)))................ |
| 11f80 | 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 20 20 20 20 20 | ........('markdown-mode......... |
| 11fa0 | 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 78 74 20 75 72 | ................(lambda.(text.ur |
| 11fc0 | 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 28 66 6f | l)...........................(fo |
| 11fe0 | 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 0a 20 20 20 20 | rmat."[%s](%s)".text.url)))..... |
| 12000 | 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 64 61 20 28 74 | ...................(_.(lambda.(t |
| 12020 | 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 20 20 20 20 20 | ext.url)........................ |
| 12040 | 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 20 20 | .....(buttonize................. |
| 12060 | 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 64 61 74 61 29 | .............text.(lambda.(data) |
| 12080 | 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 20 20 20 20 20 | .(browse-url.data))............. |
| 120a0 | 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 20 20 20 20 20 | .................url))))........ |
| 120c0 | 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 73 20 72 65 66 | ..............for.ref.across.ref |
| 120e0 | 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 20 20 66 6f 72 | erences......................for |
| 12100 | 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 74 6c 65 29 0a | .title.=.(plist-get.ref.:title). |
| 12120 | 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 69 70 70 65 74 | .....................for.snippet |
| 12140 | 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 0a 20 20 20 20 | .=.(plist-get.ref.:snippet)..... |
| 12160 | 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 28 70 6c 69 73 | .................for.url.=.(plis |
| 12180 | 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 20 20 20 20 20 | t-get.ref.:url)................. |
| 121a0 | 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 20 20 20 20 20 | .....for.n.upfrom.1............. |
| 121c0 | 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 20 20 20 20 | .........collect................ |
| 121e0 | 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 20 22 20 6e 29 | ......(concat.(format."[%d].".n) |
| 12200 | 0a 20 20 20 20 20 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 |
| 12220 | 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 20 22 0a 20 20 | uncall.linker.title.url).":."... |
| 12240 | 20 20 20 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 70 6c | ...........................(repl |
| 12260 | 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 20 20 20 20 20 | ace-regexp-in-string............ |
| 12280 | 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 22 2a 22 20 73 | ..................."</?b>"."*".s |
| 122a0 | 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 20 20 20 69 6e | nippet))......................in |
| 122c0 | 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 20 20 20 20 20 | to.ref-strings.................. |
| 122e0 | 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 20 20 20 20 20 | ....finally.return.............. |
| 12300 | 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 63 6f 6e 63 61 | ........(concat."\n\n".(mapconca |
| 12320 | 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 6e 22 29 29 29 | t.#'identity.ref-strings."\n"))) |
| 12340 | 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 65 6e 63 65 73 | )).....(concat.output.references |
| 12360 | 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 20 62 61 63 6b | )))..;;.TODO:.Add.model.and.back |
| 12380 | 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 20 73 75 70 70 | end-specific.request-params.supp |
| 123a0 | 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 71 75 65 73 74 | ort.(cl-defmethod.gptel--request |
| 123c0 | 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 29 20 70 72 6f | -data.((_backend.gptel-kagi).pro |
| 123e0 | 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 53 20 66 6f 72 | mpts)..."JSON.encode.PROMPTS.for |
| 12400 | 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 20 28 67 70 74 | .Kagi."...(pcase-exhaustive.(gpt |
| 12420 | 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 20 20 20 | el--model-name.gptel-model)..... |
| 12440 | 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 20 3a 77 65 62 | ("fastgpt"......`(,@prompts.:web |
| 12460 | 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 61 6e 64 20 6d | _search.t.:cache.t)).....((and.m |
| 12480 | 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 70 20 22 73 75 | odel.(guard.(string-prefix-p."su |
| 124a0 | 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 70 72 6f 6d 70 | mmarize".model)))......`(,@promp |
| 124c0 | 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 6c 20 31 30 29 | ts.:engine.,(substring.model.10) |
| 124e0 | 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 73 65 | ))))..(cl-defmethod.gptel--parse |
| 12500 | 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 67 69 29 20 26 | -buffer.((_backend.gptel-kagi).& |
| 12520 | 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 65 74 20 28 28 | optional._max-entries)...(let.(( |
| 12540 | 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 6c 29 0a 20 20 | url.(or.(thing-at-point.'url)... |
| 12560 | 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 6f 70 65 72 74 | ...............(get-text-propert |
| 12580 | 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 20 20 20 20 20 | y.(point).'shr-url)............. |
| 125a0 | 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 69 6e 74 29 20 | .....(get-text-property.(point). |
| 125c0 | 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 69 6c 65 6e 61 | 'image-url))).........;;.(filena |
| 125e0 | 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 67 2d 66 69 6c | me.(thing-at-point.'existing-fil |
| 12600 | 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 70 6f 72 74 20 | ename)).;no.file.upload.support. |
| 12620 | 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 70 65 72 74 79 | yet.........(prop.(text-property |
| 12640 | 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 20 20 20 20 20 | -search-backward................ |
| 12660 | 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 20 20 20 20 20 | 'gptel.'response................ |
| 12680 | 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 61 78 20 28 70 | (when.(get-char-property.(max.(p |
| 126a0 | 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 20 20 20 20 20 | oint-min).(1-.(point)))......... |
| 126c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 126e0 | 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 29 29 29 0a 20 | 'gptel)..................t)))).. |
| 12700 | 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 66 69 78 2d 70 | ...(if.(and.url.(string-prefix-p |
| 12720 | 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 6e 61 6d 65 20 | ."summarize".(gptel--model-name. |
| 12740 | 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 74 20 3a 75 72 | gptel-model))).........(list.:ur |
| 12760 | 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 70 74 65 6c 2d | l.url).......(if.(and.(or.gptel- |
| 12780 | 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 20 20 20 | mode.gptel-track-response)...... |
| 127a0 | 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 70 29 0a 20 20 | ..........(prop-match-p.prop)... |
| 127c0 | 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 6c 75 65 20 70 | .............(prop-match-value.p |
| 127e0 | 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 20 22 4e 6f 20 | rop))...........(user-error."No. |
| 12800 | 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 20 20 28 6c 65 | user.prompt.found!").........(le |
| 12820 | 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 28 69 66 20 28 | t.((prompts................(if.( |
| 12840 | 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 70 6f 6e | or.gptel-mode.gptel-track-respon |
| 12860 | 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 28 67 70 74 65 | se)....................(or.(gpte |
| 12880 | 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 20 20 20 20 20 | l--trim-prefixes................ |
| 128a0 | 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 |
| 128c0 | 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 69 6e 67 20 70 | operties.(prop-match-beginning.p |
| 128e0 | 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 20 20 20 20 20 | rop)............................ |
| 12900 | 20 20 20 20 20 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 | .............................(pr |
| 12920 | 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 20 20 20 20 20 | op-match-end.prop)))............ |
| 12940 | 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 20 20 20 20 20 | ............"")................. |
| 12960 | 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 69 6e 67 2d | .(string-trim.(buffer-substring- |
| 12980 | 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 70 6f 69 6e 74 | no-properties.(point-min).(point |
| 129a0 | 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 2d 65 78 68 61 | -max))))))...........(pcase-exha |
| 129c0 | 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 70 74 65 6c 2d | ustive.(gptel--model-name.gptel- |
| 129e0 | 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 74 22 20 28 73 | model).............("fastgpt".(s |
| 12a00 | 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 66 20 28 70 72 | etq.prompts.(list.:query.(if.(pr |
| 12a20 | 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 29 29 29 29 0a | op-match-p.prop).prompts."")))). |
| 12a40 | 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 61 72 64 20 28 | ............((and.model.(guard.( |
| 12a60 | 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 20 6d 6f 64 65 | string-prefix-p."summarize".mode |
| 12a80 | 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 20 65 6e 74 69 | l)))..............;;.If.the.enti |
| 12aa0 | 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 6f 6f 6b 73 20 | re.contents.of.the.prompt.looks. |
| 12ac0 | 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 20 20 20 20 20 | like.a.url,.send.the.url........ |
| 12ae0 | 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 20 6f 66 20 74 | ......;;.Else.send.the.text.of.t |
| 12b00 | 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 71 20 70 72 6f | he.region..............(setq.pro |
| 12b20 | 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 2d 6c 65 74 2a | mpts....................(if-let* |
| 12b40 | 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 20 20 20 20 20 | .(((prop-match-p.prop))......... |
| 12b60 | 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 65 20 28 73 75 | .....................(engine.(su |
| 12b80 | 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 20 20 20 20 20 | bstring.model.10)))............. |
| 12ba0 | 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 20 6f 66 20 74 | ...........;;.It's.a.region.of.t |
| 12bc0 | 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 28 6c 69 73 74 | ext........................(list |
| 12be0 | 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 20 20 20 20 20 | .:text.prompts)................. |
| 12c00 | 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 74 73 29 29 29 | .....""))))...........prompts))) |
| 12c20 | 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 61 70 2d 75 73 | ))..(cl-defmethod.gptel--wrap-us |
| 12c40 | 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 6b 61 67 69 29 | er-prompt.((_backend.gptel-kagi) |
| 12c60 | 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 74 2d 67 65 74 | .prompts)...(cond....((plist-get |
| 12c80 | 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 20 22 49 67 6e | .prompts.:url).....(message."Ign |
| 12ca0 | 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 20 73 75 6d 6d | oring.gptel.context.for.URL.summ |
| 12cc0 | 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 67 65 74 20 70 | ary.request."))....((plist-get.p |
| 12ce0 | 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 66 20 67 70 74 | rompts.:query).....(cl-callf.gpt |
| 12d00 | 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 6f 6d | el-context--wrap.(plist-get.prom |
| 12d20 | 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 74 20 70 72 6f | pts.:query)))....((plist-get.pro |
| 12d40 | 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 70 74 65 6c 2d | mpts.:text).....(cl-callf.gptel- |
| 12d60 | 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 6f 6d 70 74 73 | context--wrap.(plist-get.prompts |
| 12d80 | 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 0a 28 63 6c 2d | .:text)))))..;;;###autoload.(cl- |
| 12da0 | 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 6e 61 6d 65 20 | defun.gptel-make-kagi.....(name. |
| 12dc0 | 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 20 20 20 20 20 | &key.curl-args.stream.key....... |
| 12de0 | 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 20 20 20 20 20 | ....(host."kagi.com")........... |
| 12e00 | 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 6f 72 69 7a 61 | (header.(lambda.().`(("Authoriza |
| 12e20 | 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 74 65 6c 2d 2d | tion"...,(concat."Bot.".(gptel-- |
| 12e40 | 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 20 28 6d 6f 64 | get-api-key))))))...........(mod |
| 12e60 | 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 73 20 28 6e 6f | els.'((fastgpt.:capabilities.(no |
| 12e80 | 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 28 73 75 | system)).....................(su |
| 12ea0 | 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 20 28 6e 6f 73 | mmarize:cecil.:capabilities.(nos |
| 12ec0 | 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 28 73 75 6d | ystem)).....................(sum |
| 12ee0 | 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 28 6e 6f 73 79 | marize:agnes.:capabilities.(nosy |
| 12f00 | 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 28 73 75 6d 6d | stem)).....................(summ |
| 12f20 | 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 28 6e 6f 73 79 | arize:daphne.:capabilities.(nosy |
| 12f40 | 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 28 73 75 6d 6d | stem)).....................(summ |
| 12f60 | 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 28 6e 6f 73 79 | arize:muriel.:capabilities.(nosy |
| 12f80 | 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 6c 20 22 68 74 | stem))))...........(protocol."ht |
| 12fa0 | 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 2f 61 70 69 2f | tps")...........(endpoint."/api/ |
| 12fc0 | 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 61 73 74 47 50 | v0/"))..."Register.a.Kagi.FastGP |
| 12fe0 | 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 4d 45 2e 0a 0a | T.backend.for.gptel.with.NAME... |
| 13000 | 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 47 53 20 28 6f | Keyword.arguments:..CURL-ARGS.(o |
| 13020 | 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 69 6f 6e 61 6c | ptional).is.a.list.of.additional |
| 13040 | 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 68 65 20 4b 61 | .Curl.arguments...HOST.is.the.Ka |
| 13060 | 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 74 73 20 74 6f | gi.host.(with.port),.defaults.to |
| 13080 | 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 20 6c 69 73 74 | .\"kagi.com\"...MODELS.is.a.list |
| 130a0 | 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 6f 6e 6c 79 20 | .of.available.Kagi.models:.only. |
| 130c0 | 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 41 4d 20 69 73 | fastgpt.is.supported...STREAM.is |
| 130e0 | 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 20 72 | .a.boolean.to.toggle.streaming.r |
| 13100 | 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 20 20 4b 61 | esponses,.defaults.to.false...Ka |
| 13120 | 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 6d 69 6e 67 20 | gi.does.not.support.a.streaming. |
| 13140 | 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 6c 29 20 73 70 | API.yet...PROTOCOL.(optional).sp |
| 13160 | 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 79 20 64 | ecifies.the.protocol,.https.by.d |
| 13180 | 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 69 73 20 | efault...ENDPOINT.(optional).is. |
| 131a0 | 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 6f 6e 73 | the.API.endpoint.for.completions |
| 131c0 | 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 74 67 70 74 5c | ,.defaults.to.\"/api/v0/fastgpt\ |
| 131e0 | 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 72 20 61 64 64 | "...HEADER.(optional).is.for.add |
| 13200 | 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 20 65 61 63 | itional.headers.to.send.with.eac |
| 13220 | 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 61 6c 69 73 | h.request...It.should.be.an.alis |
| 13240 | 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 61 6e 0a 61 | t.or.a.function.that.retuns.an.a |
| 13260 | 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 65 5c 22 20 | list,.like:..((\"Content-Type\". |
| 13280 | 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 59 20 28 6f | ..\"application/json\"))..KEY.(o |
| 132a0 | 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 20 76 61 6c | ptional).is.a.variable.whose.val |
| 132c0 | 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 6f 6e 20 74 | ue.is.the.API.key,.or.function.t |
| 132e0 | 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 6c 65 3a 0a 2d | hat.returns.the.key...Example:.- |
| 13300 | 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 22 4b 61 67 69 | ------...(gptel-make-kagi.\"Kagi |
| 13320 | 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 63 6c 61 72 65 | \".:key.my-kagi-key)"...(declare |
| 13340 | 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 20 20 20 20 20 | .(indent.1))...stream........... |
| 13360 | 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 63 65 20 62 79 | .....................;Silence.by |
| 13380 | 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 64 20 28 67 70 | te-compiler...(let.((backend.(gp |
| 133a0 | 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 20 20 20 20 20 | tel--make-kagi.................. |
| 133c0 | 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 20 20 20 20 | .:curl-args.curl-args........... |
| 133e0 | 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 20 20 20 | ........:name.name.............. |
| 13400 | 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 20 20 20 | .....:host.host................. |
| 13420 | 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 20 20 20 | ..:header.header................ |
| 13440 | 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 20 20 3a 6d | ...:key.key...................:m |
| 13460 | 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 20 6d 6f 64 | odels.(gptel--process-models.mod |
| 13480 | 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 6f 63 6f 6c | els)...................:protocol |
| 134a0 | 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 3a 65 6e 64 | .protocol...................:end |
| 134c0 | 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 20 20 20 20 | point.endpoint.................. |
| 134e0 | 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 6d 62 64 61 20 | .:url...................(lambda. |
| 13500 | 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 63 61 74 20 70 | ().....................(concat.p |
| 13520 | 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 0a 20 20 20 20 | rotocol."://".host.endpoint..... |
| 13540 | 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 65 71 75 | ........................(if.(equ |
| 13560 | 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 20 20 20 20 20 | al.gptel-model.'fastgpt)........ |
| 13580 | 20 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 61 73 74 67 70 | ........................."fastgp |
| 135a0 | 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 72 6f 67 31 20 | t"."summarize")))))).....(prog1. |
| 135c0 | 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 67 65 74 20 6e | backend.......(setf.(alist-get.n |
| 135e0 | 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 20 20 20 20 20 | ame.gptel--known-backends....... |
| 13600 | 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 65 71 75 61 6c | .................nil.nil.#'equal |
| 13620 | 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 29 29 29 29 0a | )...................backend)))). |
| 13640 | 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 67 70 74 65 6c | .(provide.'gptel-kagi).;;;.gptel |
| 13660 | 2d 6b 61 67 69 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 | -kagi.el.ends.here.............. |
| 13680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 136a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 136c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 136e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 137a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 137c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 137e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13800 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 00 00 00 00 00 | gptel-0.9.8/gptel-ollama.el..... |
| 13820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13860 | 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 |
| 13880 | 30 30 33 32 30 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 31 37 37 00 20 30 00 00 00 | 0032011.00000000000.014177..0... |
| 138a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 138c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 138e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13900 | 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................... |
| 13920 | 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................... |
| 13940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 139a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 139c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 139e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 13a00 | 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 |
| 13a20 | 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 |
| 13a40 | 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.( |
| 13a60 | 43 29 20 32 30 32 33 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).2023..Karthik.Chikmagalur..;; |
| 13a80 | 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 |
| 13aa0 | 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 |
| 13ac0 | 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 6f | eywords:.hypermedia..;;.This.pro |
| 13ae0 | 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 72 | gram.is.free.software;.you.can.r |
| 13b00 | 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 20 | edistribute.it.and/or.modify.;;. |
| 13b20 | 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 65 | it.under.the.terms.of.the.GNU.Ge |
| 13b40 | 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 65 | neral.Public.License.as.publishe |
| 13b60 | 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 61 | d.by.;;.the.Free.Software.Founda |
| 13b80 | 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 69 | tion,.either.version.3.of.the.Li |
| 13ba0 | 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 6e | cense,.or.;;.(at.your.option).an |
| 13bc0 | 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 61 | y.later.version...;;.This.progra |
| 13be0 | 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 61 | m.is.distributed.in.the.hope.tha |
| 13c00 | 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 48 | t.it.will.be.useful,.;;.but.WITH |
| 13c20 | 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 74 | OUT.ANY.WARRANTY;.without.even.t |
| 13c40 | 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 41 | he.implied.warranty.of.;;.MERCHA |
| 13c60 | 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 49 | NTABILITY.or.FITNESS.FOR.A.PARTI |
| 13c80 | 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 47 | CULAR.PURPOSE...See.the.;;.GNU.G |
| 13ca0 | 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 64 | eneral.Public.License.for.more.d |
| 13cc0 | 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 65 | etails...;;.You.should.have.rece |
| 13ce0 | 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 50 | ived.a.copy.of.the.GNU.General.P |
| 13d00 | 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 73 | ublic.License.;;.along.with.this |
| 13d20 | 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 2f | .program...If.not,.see.<https:// |
| 13d40 | 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 6d | www.gnu.org/licenses/>...;;;.Com |
| 13d60 | 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 70 | mentary:..;;.This.file.adds.supp |
| 13d80 | 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 74 6f 20 67 70 | ort.for.the.Ollama.LLM.API.to.gp |
| 13da0 | 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 74 65 6c 29 0a | tel..;;;.Code:.(require.'gptel). |
| 13dc0 | 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 6c 61 72 65 2d | (require.'cl-generic)..(declare- |
| 13de0 | 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 28 64 | function.json-read."json".()).(d |
| 13e00 | 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 2d 2d 77 | eclare-function.gptel-context--w |
| 13e20 | 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 72 65 2d 66 75 | rap."gptel-context").(declare-fu |
| 13e40 | 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 63 74 2d 6d 65 | nction.gptel-context--collect-me |
| 13e60 | 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 72 20 6a 73 6f | dia."gptel-context").(defvar.jso |
| 13e80 | 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 28 63 6c 2d 64 | n-object-type)..;;;.Ollama.(cl-d |
| 13ea0 | 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 6e 73 74 72 75 | efstruct.(gptel-ollama.(:constru |
| 13ec0 | 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 20 20 20 20 20 | ctor.gptel--make-ollama)........ |
| 13ee0 | 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 6e 69 | .....................(:copier.ni |
| 13f00 | 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 28 | l).............................( |
| 13f20 | 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 46 49 | :include.gptel-backend)))..;;.FI |
| 13f40 | 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 6c 65 0a 28 64 | XME(fsm).Remove.this.variable.(d |
| 13f60 | 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 6f 6b 65 6e 2d | efvar-local.gptel--ollama-token- |
| 13f80 | 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 6f 6c 6c 61 6d | count.0..."Token.count.for.ollam |
| 13fa0 | 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 61 62 6c 65 20 | a.conversations...This.variable. |
| 13fc0 | 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 20 66 6f 72 20 | holds.the.total.token.count.for. |
| 13fe0 | 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 6f 64 65 6c 73 | conversations.with.Ollama.models |
| 14000 | 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 65 20 6f 6e 6c | ...Intended.for.internal.use.onl |
| 14020 | 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 75 72 6c 2d 2d | y.")..(cl-defmethod.gptel-curl-- |
| 14040 | 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 65 6c 2d 6f 6c | parse-stream.((_backend.gptel-ol |
| 14060 | 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 73 65 20 73 74 | lama).info)..."Parse.response.st |
| 14080 | 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 20 28 77 68 65 | ream.for.the.Ollama.API."...(whe |
| 140a0 | 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 72 77 61 72 64 | n.(and.(bobp).(re-search-forward |
| 140c0 | 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 6c 69 6e 65 20 | ."^{".nil.t)).....(forward-line. |
| 140e0 | 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 20 28 63 6f 6e | 0))...(let*.((content-strs).(con |
| 14100 | 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 6e 64 69 74 69 | tent).(pt.(point))).....(conditi |
| 14120 | 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 73 65 74 71 | on-case.nil.........(while.(setq |
| 14140 | 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 29 0a 20 20 20 | .content.(gptel--json-read)).... |
| 14160 | 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 20 20 20 20 20 | .......(setq.pt.(point))........ |
| 14180 | 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 74 65 6e 74 20 | ...(let.((done.(map-elt.content. |
| 141a0 | 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 73 70 6f 6e 73 | :done)).................(respons |
| 141c0 | 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 28 3a 6d 65 73 | e.(map-nested-elt.content.'(:mes |
| 141e0 | 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 20 20 20 28 77 | sage.:content)))).............(w |
| 14200 | 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 72 65 73 70 6f | hen.(and.response.(not.(eq.respo |
| 14220 | 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 28 70 75 73 68 | nse.:null)))...............(push |
| 14240 | 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 20 20 20 20 20 | .response.content-strs))........ |
| 14260 | 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 2d 66 61 6c 73 | .....(unless.(eq.done.:json-fals |
| 14280 | 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 65 6e 74 2d 62 | e)...............(with-current-b |
| 142a0 | 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).. |
| 142c0 | 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 65 6c 2d 2d 6f | ...............(cl-incf.gptel--o |
| 142e0 | 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 20 20 20 20 20 | llama-token-count............... |
| 14300 | 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 63 6f 6e 74 65 | ...........(+.(or.(map-elt.conte |
| 14320 | 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 20 20 20 20 20 | nt.:prompt_eval_count).0)....... |
| 14340 | 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 6d 61 70 2d 65 | ......................(or.(map-e |
| 14360 | 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 29 29 0a 20 20 | lt.content.:eval_count).0))))... |
| 14380 | 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 61 | ............(goto-char.(point-ma |
| 143a0 | 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 68 61 72 20 70 | x))))).......(error.(goto-char.p |
| 143c0 | 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 72 65 76 65 72 | t))).....(apply.#'concat.(nrever |
| 143e0 | 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 65 74 68 | se.content-strs))))..(cl-defmeth |
| 14400 | 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 |
| 14420 | 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 69 6e 66 6f 29 | end.gptel-ollama).response.info) |
| 14440 | 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 53 45 20 66 72 | ..."Parse.a.one-shot.RESPONSE.fr |
| 14460 | 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 6e 20 74 65 78 | om.the.Ollama.API.and.return.tex |
| 14480 | 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 20 69 6e 20 73 | t...Store.response.metadata.in.s |
| 144a0 | 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 66 6f 20 3a 73 | tate.INFO."...(plist-put.info.:s |
| 144c0 | 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 65 20 3a | top-reason.(plist-get.response.: |
| 144e0 | 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 69 6e 66 6f 20 | done_reason))...(plist-put.info. |
| 14500 | 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 65 73 70 6f 6e | :output-tokens.(plist-get.respon |
| 14520 | 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 6d 65 73 73 61 | se.:eval_count))...(let*.((messa |
| 14540 | 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 73 61 67 65 29 | ge.(plist-get.response.:message) |
| 14560 | 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 20 6d | )..........(content.(plist-get.m |
| 14580 | 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 28 61 6e 64 20 | essage.:content))).....(if.(and. |
| 145a0 | 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 |
| 145c0 | 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)))). |
| 145e0 | 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 31 20 6e 69 6c | ........content.......(prog1.nil |
| 14600 | 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 6f 6f 6b 20 66 | ........................;.Look.f |
| 14620 | 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 6e 74 65 6e 74 | or.tool.calls.only.if.no.content |
| 14640 | 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 63 61 6c 6c 73 | .........(when-let*.((tool-calls |
| 14660 | 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 61 6c 6c 73 29 | .(plist-get.message.:tool_calls) |
| 14680 | 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 68 65 20 74 6f | ))...........;;.First.add.the.to |
| 146a0 | 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 0a 20 20 20 20 | ol.call.to.the.prompts.list..... |
| 146c0 | 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 69 6e | ......(let*.((data.(plist-get.in |
| 146e0 | 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 20 28 70 72 6f | fo.:data))..................(pro |
| 14700 | 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 67 65 73 29 29 | mpts.(plist-get.data.:messages)) |
| 14720 | 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 74 61 20 3a 6d | ).............(plist-put.data.:m |
| 14740 | 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 2c 6d 65 73 73 | essages.(vconcat.prompts.`(,mess |
| 14760 | 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 61 70 74 75 72 | age))))...........;;.Then.captur |
| 14780 | 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 67 | e.the.tool.call.data.for.running |
| 147a0 | 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 70 0a 20 20 20 | .the.tool...........(cl-loop.... |
| 147c0 | 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 73 20 74 6f 6f | ........for.tool-call.across.too |
| 147e0 | 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 73 22 20 77 69 | l-calls.;replace.":arguments".wi |
| 14800 | 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 61 6c 6c 2d 73 | th.":args"............for.call-s |
| 14820 | 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 2d 67 65 74 20 | pec.=.(copy-sequence.(plist-get. |
| 14840 | 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 20 20 20 20 20 | tool-call.:function))........... |
| 14860 | 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 72 67 73 0a 20 | .do.(plist-put.call-spec.:args.. |
| 14880 | 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 |
| 148a0 | 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 20 20 20 20 20 | et.call-spec.:arguments))....... |
| 148c0 | 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 61 72 67 75 6d | .....(plist-put.call-spec.:argum |
| 148e0 | 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 74 20 63 61 6c | ents.nil)............collect.cal |
| 14900 | 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 20 20 20 20 20 | l-spec.into.tool-use............ |
| 14920 | 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 2d 75 73 | finally.(plist-put.info.:tool-us |
| 14940 | 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 65 74 68 6f 64 | e.tool-use)))))))..(cl-defmethod |
| 14960 | 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 65 6e 64 20 67 | .gptel--request-data.((backend.g |
| 14980 | 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 4f 4e 20 65 6e | ptel-ollama).prompts)..."JSON.en |
| 149a0 | 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 20 43 68 61 74 | code.PROMPTS.for.sending.to.Chat |
| 149c0 | 47 50 54 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 6d 65 73 73 | GPT."...(when.gptel--system-mess |
| 149e0 | 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 79 73 74 65 | age.....(push.(list.:role."syste |
| 14a00 | 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 67 70 74 65 | m".................:content.gpte |
| 14a20 | 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 70 72 6f | l--system-message)...........pro |
| 14a40 | 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 73 74 0a 20 | mpts))...(let*.((prompts-plist.. |
| 14a60 | 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 73 0a 20 20 | .........(gptel--merge-plists... |
| 14a80 | 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 6f 64 65 6c | .........`(:model.,(gptel--model |
| 14aa0 | 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 20 20 20 20 | -name.gptel-model).............. |
| 14ac0 | 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 20 20 20 20 | :messages.[,@prompts]........... |
| 14ae0 | 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 20 3a 6a 73 | ...:stream.,(or.gptel-stream.:js |
| 14b00 | 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 2d 62 61 63 | on-false))............(gptel-bac |
| 14b20 | 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 63 6b 65 6e | kend-request-params.gptel-backen |
| 14b40 | 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 72 65 71 75 | d)............(gptel--model-requ |
| 14b60 | 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 20 20 20 20 | est-params..gptel-model)))...... |
| 14b80 | 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 69 66 20 61 | ....;;.the.initial.options.(if.a |
| 14ba0 | 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 20 20 20 20 | ny).from.request.params......... |
| 14bc0 | 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 72 6f 6d 70 | .(options-plist.(plist-get.promp |
| 14be0 | 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 68 65 6e 20 | ts-plist.:options)))......(when. |
| 14c00 | 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 6f 6f 6c 73 | (and.gptel-use-tools.gptel-tools |
| 14c20 | 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 6f 75 74 20 | ).......;;.TODO(tool):.Find.out. |
| 14c40 | 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 6c 61 6d 61 | how.to.force.tool.use.for.Ollama |
| 14c60 | 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 69 73 74 20 | .......(plist-put.prompts-plist. |
| 14c80 | 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 65 6c 2d 2d | :tools..................(gptel-- |
| 14ca0 | 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 6f 6c 73 29 | parse-tools.backend.gptel-tools) |
| 14cc0 | 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 6c 69 73 74 | ).......(plist-put.prompts-plist |
| 14ce0 | 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 3b 20 69 66 | .:stream.:json-false)).....;;.if |
| 14d00 | 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 65 6e 73 20 | .the.temperature.and.max-tokens. |
| 14d20 | 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 2f 6d 6f 64 | aren't.set.as.....;;.backend/mod |
| 14d40 | 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 73 65 74 74 | el-specific,.use.the.global.sett |
| 14d60 | 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 6d 70 65 72 | ings.....(when.(and.gptel-temper |
| 14d80 | 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 73 2d 70 6c | ature.(not.(plist-get.options-pl |
| 14da0 | 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 65 74 71 20 | ist.:temperature))).......(setq. |
| 14dc0 | 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 6c 69 73 74 | options-plist.............(plist |
| 14de0 | 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 75 72 65 20 | -put.options-plist.:temperature. |
| 14e00 | 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 65 6e 20 28 | gptel-temperature))).....(when.( |
| 14e20 | 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 6c 69 73 74 | and.gptel-max-tokens.(not.(plist |
| 14e40 | 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 69 63 74 29 | -get.options-plist.:num_predict) |
| 14e60 | 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 0a 20 20 20 | )).......(setq.options-plist.... |
| 14e80 | 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 70 6c 69 73 | .........(plist-put.options-plis |
| 14ea0 | 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 65 6e 73 29 | t.:num_predict.gptel-max-tokens) |
| 14ec0 | 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 69 73 74 20 | )).....(plist-put.prompts-plist. |
| 14ee0 | 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 3b 20 4e 4f | :options.options-plist)))..;;.NO |
| 14f00 | 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 6d 65 74 68 | TE:.No.`gptel--parse-tools'.meth |
| 14f20 | 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 2c 20 73 69 | od.required.for.gptel-ollama,.si |
| 14f40 | 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 73 20 64 65 | nce.this.is.;;.handled.by.its.de |
| 14f60 | 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 2d 64 65 66 | fgeneric.implementation..(cl-def |
| 14f80 | 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 75 6c 74 73 | method.gptel--parse-tool-results |
| 14fa0 | 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 6f 6c 2d 75 | .((_backend.gptel-ollama).tool-u |
| 14fc0 | 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 69 6e 69 6e | se)..."Return.a.prompt.containin |
| 14fe0 | 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 55 53 45 2e | g.tool.call.results.in.TOOL-USE. |
| 15000 | 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 6c 6c 29 0a | "...(mapcar.(lambda.(tool-call). |
| 15020 | 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 6c 22 20 3a | ............(list.:role."tool".: |
| 15040 | 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 20 3a 72 65 | content.(plist-get.tool-call.:re |
| 15060 | 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 0a 0a 3b 3b | sult)))...........tool-use))..;; |
| 15080 | 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 6d 70 74 27 | .NOTE:.No.`gptel--inject-prompt' |
| 150a0 | 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 6c 6c 61 6d | .method.required.for.gptel-ollam |
| 150c0 | 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 62 79 20 69 | a,.since.this.is.;;.handled.by.i |
| 150e0 | 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 0a 0a 28 63 | ts.defgeneric.implementation..(c |
| 15100 | 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 28 28 | l-defmethod.gptel--parse-list.(( |
| 15120 | 5f 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 2d 6c 69 | _backend.gptel-ollama).prompt-li |
| 15140 | 73 74 29 0a 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 70 | st)...(cl-loop.for.text.in.promp |
| 15160 | 74 2d 6c 69 73 74 0a 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 | t-list............for.role.=.t.t |
| 15180 | 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 20 69 66 20 74 65 78 | hen.(not.role)............if.tex |
| 151a0 | 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 | t.collect............(list.:role |
| 151c0 | 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 20 3a 63 | .(if.role."user"."assistant").:c |
| 151e0 | 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 | ontent.text)))..(cl-defmethod.gp |
| 15200 | 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 67 70 74 65 | tel--parse-buffer.((backend.gpte |
| 15220 | 6c 2d 6f 6c 6c 61 6d 61 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 | l-ollama).&optional.max-entries) |
| 15240 | 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 28 70 6f 69 | ...(let.((prompts).(prev-pt.(poi |
| 15260 | 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 20 28 61 6e 64 | nt)).........(include-media.(and |
| 15280 | 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 6f 72 20 28 67 70 74 65 6c 2d 2d 6d | .gptel-track-media.(or.(gptel--m |
| 152a0 | 6f 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 | odel-capable-p.'media).......... |
| 152c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 152e0 | 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 |
| 15300 | 20 27 75 72 6c 29 29 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 | .'url))))).....(if.(or.gptel-mod |
| 15320 | 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 20 20 20 20 20 20 | e.gptel-track-response)......... |
| 15340 | 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 6e 74 72 69 65 73 | (while.(and.(or.(not.max-entries |
| 15360 | 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 20 20 20 20 20 20 | ).(>=.max-entries.0))........... |
| 15380 | 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 69 6f 75 73 2d 73 | ..........(goto-char.(previous-s |
| 153a0 | 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 20 20 20 20 | ingle-property-change........... |
| 153c0 | 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 67 | ......................(point).'g |
| 153e0 | 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 20 20 20 20 20 20 | ptel.nil.(point-min))).......... |
| 15400 | 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 20 70 72 65 76 2d | ...........(not.(=.(point).prev- |
| 15420 | 70 74 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 | pt)))...........(pcase.(get-char |
| 15440 | 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 0a 20 20 20 20 20 20 | -property.(point).'gptel)....... |
| 15460 | 20 20 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 | ......('response..............(w |
| 15480 | 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 72 69 6d 2d | hen-let*.((content.(gptel--trim- |
| 154a0 | 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 20 20 20 20 | prefixes........................ |
| 154c0 | 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 6e 6f | ............(buffer-substring-no |
| 154e0 | 2d 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 | -properties.(point).prev-pt)))). |
| 15500 | 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 65 | ...............(push.(list.:role |
| 15520 | 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 65 6e 74 29 20 70 | ."assistant".:content.content).p |
| 15540 | 72 6f 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 | rompts))).............(`(tool... |
| 15560 | 2c 5f 69 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 | ,_id)..............(save-excursi |
| 15580 | 6f 6e 0a 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 | on................(condition-cas |
| 155a0 | 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 28 6c 65 74 2a 20 28 | e.nil....................(let*.( |
| 155c0 | 28 74 6f 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 | (tool-call.(read.(current-buffer |
| 155e0 | 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 6e | )))...........................(n |
| 15600 | 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 6d 65 29 29 | ame.(plist-get.tool-call.:name)) |
| 15620 | 0a 20 20 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 | ...........................(argu |
| 15640 | 6d 65 6e 74 73 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 | ments.(plist-get.tool-call.:args |
| 15660 | 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 6c 69 73 74 2d | )))......................(plist- |
| 15680 | 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 20 20 20 20 | put.tool-call.:result........... |
| 156a0 | 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 74 72 | ......................(string-tr |
| 156c0 | 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 72 74 69 | im.(buffer-substring-no-properti |
| 156e0 | 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 20 | es.............................. |
| 15700 | 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 70 74 | .................(point).prev-pt |
| 15720 | 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 73 68 20 28 | )))......................(push.( |
| 15740 | 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 74 73 20 62 | car.(gptel--parse-tool-results.b |
| 15760 | 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 20 20 20 20 | ackend.(list.tool-call)))....... |
| 15780 | 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 29 0a 20 20 | .....................prompts)... |
| 157a0 | 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 20 3a | ...................(push.(list.: |
| 157c0 | 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 20 20 20 | role."assistant"................ |
| 157e0 | 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 22 22 0a 20 20 | ..................:content.""... |
| 15800 | 20 20 20 20 20 20 20 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 | ...............................: |
| 15820 | 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 3a 6e 61 6d 65 20 2c | tool_calls.`[(:function.(:name., |
| 15840 | 6e 61 6d 65 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 61 72 67 75 6d 65 6e 74 73 29 29 5d 29 0a 20 | name.:arguments.,arguments))]).. |
| 15860 | 20 20 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 |
| 15880 | 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 66 69 | s))..................((end-of-fi |
| 158a0 | 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 20 20 | le.invalid-read-syntax)......... |
| 158c0 | 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 75 6c | ..........(message.(format."Coul |
| 158e0 | 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 25 73 | d.not.parse.tool-call.on.line.%s |
| 15900 | 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 | "............................... |
| 15920 | 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 74 29 | .....(line-number-at-pos.(point) |
| 15940 | 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 20 20 | ))))))).............('ignore)... |
| 15960 | 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 69 66 | ..........('nil..............(if |
| 15980 | 20 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .include-media.................. |
| 159a0 | 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 6f 6c 6c | (when-let*.((content.(gptel--oll |
| 159c0 | 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ama-parse-multipart............. |
| 159e0 | 20 20 20 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 | ...........................(gpte |
| 15a00 | 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 2d 6d 6f 64 65 20 | l--parse-media-links.major-mode. |
| 15a20 | 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 20 20 20 20 20 20 | (point).prev-pt))))............. |
| 15a40 | 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 6e 74 65 6e 74 29 | .......(when.(>.(length.content) |
| 15a60 | 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 70 75 73 68 20 28 | .0)......................(push.( |
| 15a80 | 61 70 70 65 6e 64 20 27 28 3a 72 6f 6c 65 20 22 75 73 65 72 22 29 20 63 6f 6e 74 65 6e 74 29 20 | append.'(:role."user").content). |
| 15aa0 | 70 72 6f 6d 70 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 | prompts)))................(when- |
| 15ac0 | 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 65 66 | let*.((content.(gptel--trim-pref |
| 15ae0 | 69 78 65 73 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 | ixes.(buffer-substring-no-proper |
| 15b00 | 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 20 | ties............................ |
| 15b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 15b40 | 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 20 20 20 20 20 20 | (point).prev-pt))))............. |
| 15b60 | 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 |
| 15b80 | 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 29 29 0a 20 20 20 | ontent.content).prompts))))).... |
| 15ba0 | 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 20 20 | .......(setq.prev-pt.(point))... |
| 15bc0 | 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 65 63 | ........(and.max-entries.(cl-dec |
| 15be0 | 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 63 6f | f.max-entries))).......(let.((co |
| 15c00 | 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 73 74 | ntent.(string-trim.(buffer-subst |
| 15c20 | 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 20 20 | ring-no-properties.............. |
| 15c40 | 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 69 6e | ......................(point-min |
| 15c60 | 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 68 20 | ).(point-max))))).........(push. |
| 15c80 | 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 63 6f 6e 74 | (list.:role."user".:content.cont |
| 15ca0 | 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 | ent).prompts))).....prompts))..( |
| 15cc0 | 64 65 66 75 6e 20 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 | defun.gptel--ollama-parse-multip |
| 15ce0 | 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 61 | art.(parts)..."Convert.a.multipa |
| 15d00 | 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 | rt.prompt.PARTS.to.the.Ollama.AP |
| 15d20 | 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 6e 20 61 6c 69 73 74 | I.format...The.input.is.an.alist |
| 15d40 | 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 | .of.the.form..((:text.\"some.tex |
| 15d60 | 74 5c 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 | t\")...(:media.\"/path/to/media. |
| 15d80 | 70 6e 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 | png\".:mime.\"image/png\")...(:t |
| 15da0 | 65 78 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 | ext.\"More.text\"))...The.output |
| 15dc0 | 20 69 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 61 20 62 61 63 | .is.a.vector.of.entries.in.a.bac |
| 15de0 | 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 6c 2d | kend-appropriate.format."...(cl- |
| 15e00 | 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 6f 72 | loop....for.part.in.parts....for |
| 15e20 | 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 6e 67 | .n.upfrom.1....with.last.=.(leng |
| 15e40 | 74 68 20 70 61 72 74 73 29 0a 20 20 20 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 | th.parts)....for.text.=.(plist-g |
| 15e60 | 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f 72 20 6d 65 64 69 61 20 3d 20 28 70 | et.part.:text)....for.media.=.(p |
| 15e80 | 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 78 74 | list-get.part.:media)....if.text |
| 15ea0 | 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c 61 73 | .do....(and.(or.(=.n.1).(=.n.las |
| 15ec0 | 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 | t)).(setq.text.(gptel--trim-pref |
| 15ee0 | 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 63 | ixes.text))).and....if.text....c |
| 15f00 | 6f 6c 6c 65 63 74 20 74 65 78 74 20 69 6e 74 6f 20 74 65 78 74 2d 61 72 72 61 79 20 65 6e 64 0a | ollect.text.into.text-array.end. |
| 15f20 | 20 20 20 65 6c 73 65 20 69 66 20 6d 65 64 69 61 0a 20 20 20 63 6f 6c 6c 65 63 74 20 28 67 70 74 | ...else.if.media....collect.(gpt |
| 15f40 | 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 20 69 6e 74 6f 20 6d 65 | el--base64-encode.media).into.me |
| 15f60 | 64 69 61 2d 61 72 72 61 79 20 65 6e 64 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a | dia-array.end....finally.return. |
| 15f80 | 20 20 20 60 28 2c 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 | ...`(,@(and.text-array..(list.:c |
| 15fa0 | 6f 6e 74 65 6e 74 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 | ontent.(mapconcat.#'identity.tex |
| 15fc0 | 74 2d 61 72 72 61 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 | t-array.".")))......,@(and.media |
| 15fe0 | 2d 61 72 72 61 79 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 | -array.(list.:images..(vconcat.m |
| 16000 | 65 64 69 61 2d 61 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 | edia-array))))))..(cl-defmethod. |
| 16020 | 67 70 74 65 6c 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 | gptel--wrap-user-prompt.((_backe |
| 16040 | 6e 64 20 67 70 74 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 | nd.gptel-ollama).prompts........ |
| 16060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 16080 | 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 20 22 57 72 61 70 20 | &optional.inject-media)..."Wrap. |
| 160a0 | 74 68 65 20 6c 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 | the.last.user.prompt.in.PROMPTS. |
| 160c0 | 77 69 74 68 20 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 | with.the.context.string...If.INJ |
| 160e0 | 45 43 54 2d 4d 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 | ECT-MEDIA.is.non-nil.wrap.it.wit |
| 16100 | 68 20 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 64 20 6d 65 64 69 61 20 66 69 6c 65 73 20 69 6e 20 | h.base64-encoded.media.files.in. |
| 16120 | 74 68 65 20 63 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 | the.context."...(if.inject-media |
| 16140 | 0a 20 20 20 20 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 | .......;;.Wrap.the.first.user.pr |
| 16160 | 6f 6d 70 74 20 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 | ompt.with.included.media.files/c |
| 16180 | 6f 6e 74 65 78 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 | ontexts.......(when-let*.((media |
| 161a0 | 2d 6c 69 73 74 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 | -list.(gptel-context--collect-me |
| 161c0 | 64 69 61 29 29 0a 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 | dia))...................(media-p |
| 161e0 | 72 6f 63 65 73 73 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 | rocessed.(gptel--ollama-parse-mu |
| 16200 | 6c 74 69 70 61 72 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 | ltipart.media-list))).........(c |
| 16220 | 6c 2d 63 61 6c 6c 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 | l-callf.(lambda.(images)........ |
| 16240 | 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 73 74 2d 67 65 74 | .............(vconcat.(plist-get |
| 16260 | 20 6d 65 64 69 61 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 | .media-processed.:images)....... |
| 16280 | 20 20 20 20 20 20 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 | .......................images)). |
| 162a0 | 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 64 72 20 70 72 6f | ............(plist-get.(cadr.pro |
| 162c0 | 6d 70 74 73 29 20 3a 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 | mpts).:images))).....;;.Wrap.the |
| 162e0 | 20 6c 61 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 64 20 | .last.user.prompt.with.included. |
| 16300 | 74 65 78 74 20 63 6f 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 | text.contexts.....(cl-callf.gpte |
| 16320 | 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 28 63 61 72 20 | l-context--wrap.(plist-get.(car. |
| 16340 | 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 3b | (last.prompts)).:content))))..;; |
| 16360 | 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 |
| 16380 | 65 2d 6f 6c 6c 61 6d 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 | e-ollama.....(name.&key.curl-arg |
| 163a0 | 73 20 68 65 61 64 65 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 | s.header.key.models.stream.reque |
| 163c0 | 73 74 2d 70 61 72 61 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 | st-params...........(host."local |
| 163e0 | 68 6f 73 74 3a 31 31 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 | host:11434")...........(protocol |
| 16400 | 20 22 68 74 74 70 22 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 | ."http")...........(endpoint."/a |
| 16420 | 70 69 2f 63 68 61 74 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 | pi/chat"))..."Register.an.Ollama |
| 16440 | 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 4d 45 2e 0a 0a 4b | .backend.for.gptel.with.NAME...K |
| 16460 | 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 47 53 20 28 6f 70 | eyword.arguments:..CURL-ARGS.(op |
| 16480 | 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 69 6f 6e 61 6c 20 | tional).is.a.list.of.additional. |
| 164a0 | 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 77 68 65 72 65 20 4f | Curl.arguments...HOST.is.where.O |
| 164c0 | 6c 6c 61 6d 61 20 72 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 | llama.runs.(with.port),.defaults |
| 164e0 | 20 74 6f 20 6c 6f 63 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 | .to.localhost:11434..MODELS.is.a |
| 16500 | 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 61 6d 65 73 2c 20 | .list.of.available.model.names,. |
| 16520 | 61 73 20 73 79 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 | as.symbols..Additionally,.you.ca |
| 16540 | 6e 20 73 70 65 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 | n.specify.supported.LLM.capabili |
| 16560 | 74 69 65 73 20 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 | ties.like.vision.or.tool-use.by. |
| 16580 | 61 70 70 65 6e 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 | appending.a.plist.to.the.model.w |
| 165a0 | 69 74 68 20 6d 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 | ith.more.information,.in.the.for |
| 165c0 | 6d 0a 0a 20 28 6d 6f 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 | m...(model-name...plist)..Curren |
| 165e0 | 74 6c 79 20 72 65 63 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 | tly.recognized.plist.keys.are.:d |
| 16600 | 65 73 63 72 69 70 74 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 | escription,.:capabilities.and.:m |
| 16620 | 69 6d 65 2d 74 79 70 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 | ime-types...An.example.of.a.mode |
| 16640 | 6c 20 73 70 65 63 69 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 | l.specification.including.both.k |
| 16660 | 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 28 6d 69 73 | inds.of.specs:..:models.\\='(mis |
| 16680 | 74 72 61 6c 3a 6c 61 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 | tral:latest..................... |
| 166a0 | 20 20 20 3b 53 69 6d 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 | ...;Simple.specs...openhermes:la |
| 166c0 | 74 65 73 74 0a 20 20 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 | test...(llava:13b............... |
| 166e0 | 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 |
| 16700 | 72 69 70 74 69 6f 6e 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 | ription....\"Llava.1.6:.Large.La |
| 16720 | 6e 75 61 67 65 20 61 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 | nuage.and.Vision.Assistant\".... |
| 16740 | 3a 63 61 70 61 62 69 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 | :capabilities.(media)....:mime-t |
| 16760 | 79 70 65 73 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 6e 67 | ypes.(\"image/jpeg\".\"image/png |
| 16780 | 5c 22 29 29 29 0a 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 | \")))...STREAM.is.a.boolean.to.t |
| 167a0 | 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 64 65 66 61 75 | oggle.streaming.responses,.defau |
| 167c0 | 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 74 69 6f 6e 61 | lts.to.false...PROTOCOL.(optiona |
| 167e0 | 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 20 | l).specifies.the.protocol,.http. |
| 16800 | 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 29 | by.default...ENDPOINT.(optional) |
| 16820 | 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 74 | .is.the.API.endpoint.for.complet |
| 16840 | 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 67 65 6e 65 72 61 74 | ions,.defaults.to.\"/api/generat |
| 16860 | 65 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 72 20 61 | e\"...HEADER.(optional).is.for.a |
| 16880 | 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 20 65 | dditional.headers.to.send.with.e |
| 168a0 | 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 61 6c | ach.request...It.should.be.an.al |
| 168c0 | 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 61 6e | ist.or.a.function.that.retuns.an |
| 168e0 | 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 65 5c | .alist,.like:..((\"Content-Type\ |
| 16900 | 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 59 20 | "...\"application/json\"))..KEY. |
| 16920 | 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 20 76 | (optional).is.a.variable.whose.v |
| 16940 | 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 6f 6e | alue.is.the.API.key,.or.function |
| 16960 | 20 74 68 61 74 20 72 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 | .that.returns.the.key...This.is. |
| 16980 | 74 79 70 69 63 61 6c 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 | typically.not.required.for.local |
| 169a0 | 20 6d 6f 64 65 6c 73 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 | .models.like.Ollama...REQUEST-PA |
| 169c0 | 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 20 61 64 | RAMS.(optional).is.a.plist.of.ad |
| 169e0 | 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 65 72 73 | ditional.HTTP.request.parameters |
| 16a00 | 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 75 70 70 | .(as.plist.keys).and.values.supp |
| 16a20 | 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 74 6f 20 | orted.by.the.API...Use.these.to. |
| 16a40 | 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 73 20 6e | set.parameters.that.gptel.does.n |
| 16a60 | 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 0a 0a 45 78 | ot.provide.user.options.for...Ex |
| 16a80 | 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 2d 6f 6c 6c | ample:.-------...(gptel-make-oll |
| 16aa0 | 61 6d 61 0a 20 20 20 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 | ama....\"Ollama\"....:host.\"loc |
| 16ac0 | 61 6c 68 6f 73 74 3a 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 | alhost:11434\"....:models.\\='(m |
| 16ae0 | 69 73 74 72 61 6c 3a 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 | istral:latest)....:stream.t)"... |
| 16b00 | 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 |
| 16b20 | 63 6b 65 6e 64 20 28 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 | ckend.(gptel--make-ollama....... |
| 16b40 | 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 73 | ............:curl-args.curl-args |
| 16b60 | 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 20 | ...................:name.name... |
| 16b80 | 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 20 | ................:host.host...... |
| 16ba0 | 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 20 | .............:header.header..... |
| 16bc0 | 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 20 | ..............:key.key.......... |
| 16be0 | 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 73 | .........:models.(gptel--process |
| 16c00 | 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 20 | -models.models)................. |
| 16c20 | 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 20 | ..:protocol.protocol............ |
| 16c40 | 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 20 | .......:endpoint.endpoint....... |
| 16c60 | 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 20 | ............:stream.stream...... |
| 16c80 | 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 71 | .............:request-params.req |
| 16ca0 | 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 75 | uest-params...................:u |
| 16cc0 | 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 20 | rl.(if.protocol................. |
| 16ce0 | 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 2f | ...........(concat.protocol.":// |
| 16d00 | 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 20 | ".host.endpoint)................ |
| 16d20 | 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 29 | ..........(concat.host.endpoint) |
| 16d40 | 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 73 | )))).....(prog1.backend.......(s |
| 16d60 | 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 6e | etf.(alist-get.name.gptel--known |
| 16d80 | 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 20 | -backends....................... |
| 16da0 | 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 20 | .nil.nil.#'equal)............... |
| 16dc0 | 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 6c | ....backend))))..(provide.'gptel |
| 16de0 | 2d 6f 6c 6c 61 6d 61 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 | -ollama).;;;.gptel-ollama.el.end |
| 16e00 | 73 20 68 65 72 65 0a 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 | s.here.......................... |
| 16e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 00 00 00 00 00 00 00 | gptel-0.9.8/gptel-curl.el....... |
| 17020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17060 | 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 |
| 17080 | 30 30 35 30 34 33 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 31 33 00 20 30 00 00 00 | 0050437.00000000000.013713..0... |
| 170a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 170c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 170e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17100 | 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................... |
| 17120 | 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................... |
| 17140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 171a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 171c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 171e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 17200 | 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 |
| 17220 | 72 74 20 66 6f 72 20 47 50 54 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 |
| 17240 | 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.( |
| 17260 | 43 29 20 32 30 32 33 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).2023..Karthik.Chikmagalur..;; |
| 17280 | 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 3b 3b 20 3c | .Author:.Karthik.Chikmagalur;;.< |
| 172a0 | 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 3b 3b | karthikchikmagalur@gmail.com>.;; |
| 172c0 | 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 44 58 2d | .Keywords:.convenience..;;.SPDX- |
| 172e0 | 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 72 2d 6c | License-Identifier:.GPL-3.0-or-l |
| 17300 | 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 20 73 6f | ater..;;.This.program.is.free.so |
| 17320 | 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 69 74 20 | ftware;.you.can.redistribute.it. |
| 17340 | 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 20 74 65 | and/or.modify.;;.it.under.the.te |
| 17360 | 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 20 4c 69 | rms.of.the.GNU.General.Public.Li |
| 17380 | 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 46 72 65 | cense.as.published.by.;;.the.Fre |
| 173a0 | 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 20 76 65 | e.Software.Foundation,.either.ve |
| 173c0 | 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 20 28 61 | rsion.3.of.the.License,.or.;;.(a |
| 173e0 | 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 69 6f 6e | t.your.option).any.later.version |
| 17400 | 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 75 74 65 | ...;;.This.program.is.distribute |
| 17420 | 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 20 75 73 | d.in.the.hope.that.it.will.be.us |
| 17440 | 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 41 4e 54 | eful,.;;.but.WITHOUT.ANY.WARRANT |
| 17460 | 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 61 72 72 | Y;.without.even.the.implied.warr |
| 17480 | 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 20 46 49 | anty.of.;;.MERCHANTABILITY.or.FI |
| 174a0 | 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 45 2e 20 | TNESS.FOR.A.PARTICULAR.PURPOSE.. |
| 174c0 | 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 63 20 4c | .See.the.;;.GNU.General.Public.L |
| 174e0 | 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 59 6f 75 | icense.for.more.details...;;.You |
| 17500 | 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. |
| 17520 | 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 3b | the.GNU.General.Public.License.; |
| 17540 | 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 66 20 6e | ;.along.with.this.program...If.n |
| 17560 | 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 63 | ot,.see.<https://www.gnu.org/lic |
| 17580 | 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 20 43 75 | enses/>...;;;.Commentary:..;;.Cu |
| 175a0 | 72 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 47 50 54 65 6c 2e 20 20 55 74 69 6c 69 74 79 20 66 | rl.support.for.GPTel...Utility.f |
| 175c0 | 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 69 72 65 20 27 | unctions...;;;.Code:..(require.' |
| 175e0 | 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 20 20 28 72 65 | gptel)..(eval-when-compile...(re |
| 17600 | 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 73 75 62 72 2d | quire.'cl-lib)...(require.'subr- |
| 17620 | 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 65 2d 66 75 6e | x)).(require.'map)..(declare-fun |
| 17640 | 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 28 64 65 66 76 | ction.json-read."json".()).(defv |
| 17660 | 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 66 | ar.json-object-type)..(declare-f |
| 17680 | 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 72 74 2d 6d 61 | unction.gptel--stream-convert-ma |
| 176a0 | 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 64 65 66 63 6f | rkdown->org."gptel-org")..(defco |
| 176c0 | 6e 73 74 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 28 69 | nst.gptel-curl--common-args...(i |
| 176e0 | 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 64 6f 77 73 2d 6e 74 | f.(memq.system-type.'(windows-nt |
| 17700 | 20 6d 73 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c 65 22 20 22 2d | .ms-dos)).......'("--disable"."- |
| 17720 | 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 58 50 4f 53 54 22 0a 20 | -location"."--silent"."-XPOST".. |
| 17740 | 20 20 20 20 20 20 20 22 2d 79 33 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 0a 20 20 20 20 | ......."-y300"."-Y1"."-D-")..... |
| 17760 | 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 2d 2d 73 69 | '("--disable"."--location"."--si |
| 17780 | 6c 65 6e 74 22 20 22 2d 2d 63 6f 6d 70 72 65 73 73 65 64 22 0a 20 20 20 20 20 20 22 2d 58 50 4f | lent"."--compressed"......."-XPO |
| 177a0 | 53 54 22 20 22 2d 79 33 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 29 0a 20 20 22 41 72 67 | ST"."-y300"."-Y1"."-D-"))..."Arg |
| 177c0 | 75 6d 65 6e 74 73 20 61 6c 77 61 79 73 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 66 6f 72 | uments.always.passed.to.Curl.for |
| 177e0 | 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | .gptel.queries.")..(defun.gptel- |
| 17800 | 63 75 72 6c 2d 2d 67 65 74 2d 61 72 67 73 20 28 69 6e 66 6f 20 74 6f 6b 65 6e 29 0a 20 20 22 50 | curl--get-args.(info.token)..."P |
| 17820 | 72 6f 64 75 63 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 63 61 6c | roduce.list.of.arguments.for.cal |
| 17840 | 6c 69 6e 67 20 43 75 72 6c 2e 0a 0a 52 45 51 55 45 53 54 2d 44 41 54 41 20 69 73 20 74 68 65 20 | ling.Curl...REQUEST-DATA.is.the. |
| 17860 | 64 61 74 61 20 74 6f 20 73 65 6e 64 2c 20 54 4f 4b 45 4e 20 69 73 20 61 20 75 6e 69 71 75 65 20 | data.to.send,.TOKEN.is.a.unique. |
| 17880 | 69 64 65 6e 74 69 66 69 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 | identifier."...(let*.((data.(pli |
| 178a0 | 73 74 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 3b 3b 20 | st-get.info.:data))..........;;. |
| 178c0 | 57 65 20 68 61 76 65 20 74 6f 20 6c 65 74 2d 62 69 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | We.have.to.let-bind.the.followin |
| 178e0 | 67 20 74 77 6f 20 76 61 72 69 61 62 6c 65 73 20 73 69 6e 63 65 20 74 68 65 69 72 20 64 79 6e 61 | g.two.variables.since.their.dyna |
| 17900 | 6d 69 63 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 76 61 6c 75 65 73 20 61 72 65 20 75 73 65 64 20 | mic..........;;.values.are.used. |
| 17920 | 66 6f 72 20 6b 65 79 20 6c 6f 6f 6b 75 70 20 61 6e 64 20 75 72 6c 20 72 65 73 6f 6c 6f 75 74 69 | for.key.lookup.and.url.resolouti |
| 17940 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 | on..........(gptel-backend.(plis |
| 17960 | 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 28 | t-get.info.:backend))..........( |
| 17980 | 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 | gptel-stream.(plist-get.info.:st |
| 179a0 | 72 65 61 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 20 28 6c 65 74 20 28 28 62 61 63 6b | ream))..........(url.(let.((back |
| 179c0 | 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 20 67 70 74 65 6c | end-url.(gptel-backend-url.gptel |
| 179e0 | 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 20 20 28 69 66 20 | -backend))).................(if. |
| 17a00 | 28 66 75 6e 63 74 69 6f 6e 70 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 | (functionp.backend-url)......... |
| 17a20 | 20 20 20 20 20 20 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 | ............(funcall.backend-url |
| 17a40 | 29 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d | ).backend-url)))..........(data- |
| 17a60 | 6a 73 6f 6e 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 67 70 74 65 | json.(encode-coding-string.(gpte |
| 17a80 | 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 64 61 74 61 29 20 27 75 74 66 2d 38 29 29 0a 20 20 | l--json-encode.data).'utf-8))... |
| 17aa0 | 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e | .......(headers...........(appen |
| 17ac0 | 64 20 27 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 | d.'(("Content-Type"..."applicati |
| 17ae0 | 6f 6e 2f 6a 73 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 | on/json"))...................(wh |
| 17b00 | 65 6e 2d 6c 65 74 2a 20 28 28 68 65 61 64 65 72 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d | en-let*.((header.(gptel-backend- |
| 17b20 | 68 65 61 64 65 72 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 | header.gptel-backend)))......... |
| 17b40 | 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 68 65 61 64 65 | ............(if.(functionp.heade |
| 17b60 | 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 28 66 75 6e 63 | r).........................(func |
| 17b80 | 61 6c 6c 20 68 65 61 64 65 72 29 20 68 65 61 64 65 72 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 | all.header).header))))).....(whe |
| 17ba0 | 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 | n.gptel-log-level.......(when.(e |
| 17bc0 | 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 20 20 20 20 | q.gptel-log-level.'debug)....... |
| 17be0 | 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 6e 63 6f 64 | ..(gptel--log.(gptel--json-encod |
| 17c00 | 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 61 72 20 28 | e......................(mapcar.( |
| 17c20 | 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 28 63 61 72 | lambda.(pair).(cons.(intern.(car |
| 17c40 | 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 20 20 20 20 | .pair)).(cdr.pair)))............ |
| 17c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 | ..................headers))..... |
| 17c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 65 73 74 20 68 65 61 64 65 72 73 | ................"request.headers |
| 17ca0 | 22 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 64 61 74 61 2d 6a 73 6f 6e 20 | ")).......(gptel--log.data-json. |
| 17cc0 | 22 72 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 | "request.body")).....(append.... |
| 17ce0 | 20 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 20 20 20 28 | ..gptel-curl--common-args......( |
| 17d00 | 67 70 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 | gptel-backend-curl-args.gptel-ba |
| 17d20 | 63 6b 65 6e 64 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 73 | ckend)......(list.(format."-w(%s |
| 17d40 | 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 20 | ...%%{size_header})".token)).... |
| 17d60 | 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 63 | ..(if.(length<.data-json.gptel-c |
| 17d80 | 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 20 | url-file-size-threshold)........ |
| 17da0 | 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 6e | ..(list.(format."-d%s".data-json |
| 17dc0 | 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 74 | ))........(letrec............((t |
| 17de0 | 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 70 | emp-filename.(make-temp-file."gp |
| 17e00 | 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 2d | tel-curl-data".nil.".json".data- |
| 17e20 | 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 28 | json)).............(cleanup-fn.( |
| 17e40 | 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 20 | lambda.(&rest._)................ |
| 17e60 | 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 20 | ...........(when.(file-exists-p. |
| 17e80 | 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 20 | temp-filename).................. |
| 17ea0 | 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 6c | ...........(delete-file.temp-fil |
| 17ec0 | 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 20 | ename).......................... |
| 17ee0 | 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 70 | ...(remove-hook.'gptel-post-resp |
| 17f00 | 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 20 | onse-functions.cleanup-fn))))).. |
| 17f20 | 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 65 | ........(add-hook.'gptel-post-re |
| 17f40 | 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 20 | sponse-functions.cleanup-fn).... |
| 17f60 | 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 20 | ......(list."--data-binary"..... |
| 17f80 | 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 69 | ...........(format."@%s".temp-fi |
| 17fa0 | 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 69 | lename))))......(when.(not.(stri |
| 17fc0 | 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 20 | ng-empty-p.gptel-proxy))........ |
| 17fe0 | 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 20 | (list."--proxy".gptel-proxy..... |
| 18000 | 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 20 | ........."--proxy-negotiate".... |
| 18020 | 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 20 | .........."--proxy-user".":")).. |
| 18040 | 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 20 | ....(cl-loop.for.(key...val).in. |
| 18060 | 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 66 | headers...............collect.(f |
| 18080 | 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 20 | ormat."-H%s:.%s".key.val))...... |
| 180a0 | 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 6e | (list.url))))..;;TODO:.The.:tran |
| 180c0 | 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 65 | sformer.argument.here.is.an.alte |
| 180e0 | 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 6c | rnate.implementation.of.;;`gptel |
| 18100 | 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 65 | -response-filter-functions'..The |
| 18120 | 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 61 | .two.need.to.be.unified..;;;###a |
| 18140 | 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 65 | utoload.(defun.gptel-curl-get-re |
| 18160 | 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 74 | sponse.(fsm)..."Fetch.response.t |
| 18180 | 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 4c | o.prompt.in.state.FSM.from.the.L |
| 181a0 | 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 65 | LM.using.Curl...FSM.is.the.state |
| 181c0 | 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 0a | .machine.driving.this.request... |
| 181e0 | 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 67 | FSM.is.the.state.machine.driving |
| 18200 | 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 6f | .this.request...Its.INFO.slot.co |
| 18220 | 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 74 | ntains.the.data.required.for.set |
| 18240 | 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 0a | ting.up.the.request...INFO.is.a. |
| 18260 | 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 61 | plist.with.the.following.keys,.a |
| 18280 | 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 61 | mong.others:.-.:data.....(the.da |
| 182a0 | 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 20 | ta.being.sent).-.:buffer...(the. |
| 182c0 | 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 65 | gptel.buffer).-.:position.(marke |
| 182e0 | 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 73 | r.at.which.to.insert.the.respons |
| 18300 | 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 72 | e)..-.:callback.(optional,.the.r |
| 18320 | 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 20 | equest.callback)..Call.CALLBACK. |
| 18340 | 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 72 | with.the.response.and.INFO.after |
| 18360 | 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 20 | wards...If.omitted.the.response. |
| 18380 | 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 66 | is.inserted.into.the.current.buf |
| 183a0 | 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 65 | fer.after.point."...(let*.((toke |
| 183c0 | 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 20 | n.(md5.(format."%s%s%s%s"....... |
| 183e0 | 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 20 | .......................(random). |
| 18400 | 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 20 | (emacs-pid).(user-full-name).... |
| 18420 | 20 20 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 6e | ..........................(recen |
| 18440 | 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 6c | t-keys))))..........(info.(gptel |
| 18460 | 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 61 72 67 73 20 28 | -fsm-info.fsm))..........(args.( |
| 18480 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 61 72 67 73 20 69 6e 66 6f 20 74 6f 6b 65 6e 29 | gptel-curl--get-args.info.token) |
| 184a0 | 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | )..........(stream.(plist-get.in |
| 184c0 | 66 6f 20 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 20 28 | fo.:stream))..........(process.( |
| 184e0 | 61 70 70 6c 79 20 23 27 73 74 61 72 74 2d 70 72 6f 63 65 73 73 20 22 67 70 74 65 6c 2d 63 75 72 | apply.#'start-process."gptel-cur |
| 18500 | 6c 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 28 67 65 6e | l"..........................(gen |
| 18520 | 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 2a 67 70 74 65 6c 2d 63 75 72 6c 2a 22 29 | erate-new-buffer."*gptel-curl*") |
| 18540 | 20 22 63 75 72 6c 22 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 | ."curl".args))).....(when.(memq. |
| 18560 | 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 2d 64 6f 73 29 | system-type.'(windows-nt.ms-dos) |
| 18580 | 29 0a 20 20 20 20 20 20 3b 3b 20 44 6f 6e 27 74 20 74 72 79 20 74 6f 20 63 6f 6e 76 65 72 74 20 | ).......;;.Don't.try.to.convert. |
| 185a0 | 63 72 2d 6c 66 20 74 6f 20 63 72 20 6f 6e 20 57 69 6e 64 6f 77 73 20 73 6f 20 74 68 61 74 20 63 | cr-lf.to.cr.on.Windows.so.that.c |
| 185c0 | 75 72 6c 27 73 20 22 68 65 61 64 65 72 20 73 69 7a 65 0a 20 20 20 20 20 20 3b 3b 20 69 6e 20 62 | url's."header.size.......;;.in.b |
| 185e0 | 79 74 65 73 22 20 73 74 61 79 73 20 63 6f 72 72 65 63 74 0a 20 20 20 20 20 20 28 73 65 74 2d 70 | ytes".stays.correct.......(set-p |
| 18600 | 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 75 74 | rocess-coding-system.process.'ut |
| 18620 | 66 2d 38 2d 75 6e 69 78 20 27 75 74 66 2d 38 2d 75 6e 69 78 29 29 0a 20 20 20 20 28 77 68 65 6e | f-8-unix.'utf-8-unix)).....(when |
| 18640 | 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 20 | .(eq.gptel-log-level.'debug).... |
| 18660 | 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c | ...(gptel--log.(mapconcat.#'shel |
| 18680 | 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 28 63 6f 6e 73 20 22 63 75 72 6c 22 20 61 72 | l-quote-argument.(cons."curl".ar |
| 186a0 | 67 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 | gs).".\\\n")..................." |
| 186c0 | 72 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 | request.Curl.command".'no-json)) |
| 186e0 | 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 28 70 72 6f 63 65 | .....(with-current-buffer.(proce |
| 18700 | 73 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 73 65 74 2d 70 72 | ss-buffer.process).......(set-pr |
| 18720 | 6f 63 65 73 73 2d 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 | ocess-query-on-exit-flag.process |
| 18740 | 20 6e 69 6c 29 0a 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 | .nil).......(if.(plist-get.info. |
| 18760 | 3a 74 6f 6b 65 6e 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 | :token).......;not.the.first.run |
| 18780 | 2c 20 73 65 74 20 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 | ,.set.only.the.token...........( |
| 187a0 | 70 6c 69 73 74 2d 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 | plist-put.info.:token.token).... |
| 187c0 | 20 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 20 66 73 6d 29 20 | .....(setf.(gptel-fsm-info.fsm). |
| 187e0 | 20 20 20 20 20 3b 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 | .....;fist.run,.set.all.process. |
| 18800 | 70 61 72 61 6d 65 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 | parameters...............(nconc. |
| 18820 | 28 6c 69 73 74 20 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 | (list.:token.token.............. |
| 18840 | 20 20 20 20 20 20 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 | ..............:transformer...... |
| 18860 | 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 77 69 74 | ......................(when.(wit |
| 18880 | 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 6f | h-current-buffer.(plist-get.info |
| 188a0 | 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 20 20 20 20 20 20 | .:buffer)....................... |
| 188c0 | 20 20 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 | .............(and.(derived-mode- |
| 188e0 | 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).................... |
| 18900 | 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 6f 72 67 2d 63 | .....................gptel-org-c |
| 18920 | 6f 6e 76 65 72 74 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 | onvert-response))............... |
| 18940 | 20 20 20 20 20 20 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 | ...............(gptel--stream-co |
| 18960 | 6e 76 65 72 74 2d 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 | nvert-markdown->org............. |
| 18980 | 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 6e 66 | ..................(plist-get.inf |
| 189a0 | 6f 20 3a 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 20 20 20 20 | o.:position))))................. |
| 189c0 | 20 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 63 61 | .....(unless.(plist-get.info.:ca |
| 189e0 | 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 20 20 20 28 | llback)........................( |
| 18a00 | 6c 69 73 74 20 3a 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 | list.:callback.(if.stream....... |
| 18a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 18a40 | 20 20 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 | .....#'gptel-curl--stream-insert |
| 18a60 | 2d 72 65 73 70 6f 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 | -response....................... |
| 18a80 | 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 |
| 18aa0 | 72 74 2d 72 65 73 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 | rt-response))).................. |
| 18ac0 | 20 20 20 20 69 6e 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 | ....info))).......(if.stream.... |
| 18ae0 | 20 20 20 20 20 20 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 | .......(progn.(set-process-senti |
| 18b00 | 6e 65 6c 20 70 72 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 | nel.process.#'gptel-curl--stream |
| 18b20 | 2d 63 6c 65 61 6e 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 | -cleanup)..................(set- |
| 18b40 | 70 72 6f 63 65 73 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 | process-filter.process.#'gptel-c |
| 18b60 | 75 72 6c 2d 2d 73 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 | url--stream-filter)).........(se |
| 18b80 | 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 67 70 74 | t-process-sentinel.process.#'gpt |
| 18ba0 | 65 6c 2d 63 75 72 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 | el-curl--sentinel)).......(setf. |
| 18bc0 | 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 |
| 18be0 | 74 2d 61 6c 69 73 74 29 20 66 73 6d 29 29 29 29 0a 0a 3b 3b 20 3b 3b 20 41 68 65 61 64 2d 4f 66 | t-alist).fsm))))..;;.;;.Ahead-Of |
| 18c00 | 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 65 20 70 61 72 73 | -Time.dispatch.code.for.the.pars |
| 18c20 | 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 2d 2d 67 65 6e 65 | ers.;;.:parser.;.FIXME.`cl--gene |
| 18c40 | 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 6f 6e 73 0a 3b 3b | ric-*'.are.internal.functions.;; |
| 18c60 | 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 69 6f 6e 0a 3b 3b | .(cl--generic-method-function.;; |
| 18c80 | 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 6f 6f 70 0a 3b 3b | ..(if.stream.;;......(cl-loop.;; |
| 18ca0 | 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 20 20 28 63 6c 2d | .......for.type.in.;;.......(cl- |
| 18cc0 | 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 70 65 2d 6f 66 20 | -class-allparents.(get.(type-of. |
| 18ce0 | 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 20 20 20 20 20 77 | backend).'cl--class)).;;.......w |
| 18d00 | 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 2d 6d 65 74 68 6f | ith.methods.=.(cl--generic-metho |
| 18d20 | 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 20 20 20 20 20 20 | d-table.;;...................... |
| 18d40 | 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 2d 70 61 72 73 65 | .(cl--generic.'gptel-curl--parse |
| 18d60 | 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 6c 2d 2d 67 65 6e | -stream)).;;.......when.(cl--gen |
| 18d80 | 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 20 74 29 20 6e 69 | eric-member-method.`(,type.t).ni |
| 18da0 | 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 20 28 63 61 72 20 | l.methods).;;.......return.(car. |
| 18dc0 | 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 20 66 6f 72 20 74 | it)).;;....(cl-loop.;;.....for.t |
| 18de0 | 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 6c 6c 70 61 72 65 | ype.in.;;.....(cl--class-allpare |
| 18e00 | 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 20 27 63 6c 2d 2d | nts.(get.(type-of.backend).'cl-- |
| 18e20 | 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 73 20 3d 20 28 63 | class)).;;.....with.methods.=.(c |
| 18e40 | 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 20 20 20 20 20 20 | l--generic-method-table.;;...... |
| 18e60 | 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 63 20 27 67 70 74 | ...............(cl--generic.'gpt |
| 18e80 | 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 20 20 77 68 65 6e | el--parse-response)).;;.....when |
| 18ea0 | 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 64 20 60 28 2c 74 | .(cl--generic-member-method.`(,t |
| 18ec0 | 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 20 20 20 72 65 74 | ype.t.t).nil.methods).;;.....ret |
| 18ee0 | 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 74 65 6c 2d 63 75 | urn.(car.it))))..(defun.gptel-cu |
| 18f00 | 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 20 70 72 6f 63 2d | rl--log-response.(proc-buf.proc- |
| 18f20 | 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 66 66 65 72 20 50 | info)..."Parse.response.buffer.P |
| 18f40 | 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 0a 50 52 4f 43 2d | ROC-BUF.and.log.response...PROC- |
| 18f60 | 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 6e 67 20 70 72 6f | INFO.is.the.plist.containing.pro |
| 18f80 | 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 72 72 65 6e 74 2d | cess.metadata."...(with-current- |
| 18fa0 | 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 65 78 63 75 72 73 | buffer.proc-buf.....(save-excurs |
| 18fc0 | 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 74 2d 6d 69 6e 29 | ion.......(goto-char.(point-min) |
| 18fe0 | 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 6f 72 77 61 72 64 | ).......(when.(re-search-forward |
| 19000 | 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 20 28 77 68 65 6e | .".?\n.?\n".nil.t).........(when |
| 19020 | 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 20 | .(eq.gptel-log-level.'debug).... |
| 19040 | 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 2d 6a 73 6f 6e 2d | .......(gptel--log.(gptel--json- |
| 19060 | 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 20 20 20 20 28 62 | encode........................(b |
| 19080 | 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... |
| 190a0 | 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 69 6e | ......................(point-min |
| 190c0 | 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 20 20 20 20 20 20 | ).(1-.(point))))................ |
| 190e0 | 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 29 0a 20 20 20 20 | ......."response.headers"))..... |
| 19100 | 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 20 20 20 20 20 20 | ....(let.((p.(point))).......... |
| 19120 | 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 69 73 74 2d 67 65 | .(when.(search-forward.(plist-ge |
| 19140 | 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 0a 20 20 20 20 20 | t.proc-info.:token).nil.t)...... |
| 19160 | 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 63 68 2d 62 65 67 | .......(goto-char.(1-.(match-beg |
| 19180 | 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 70 74 65 6c 2d 2d | inning.0))).............(gptel-- |
| 191a0 | 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 72 6f 70 65 72 74 | log.(buffer-substring-no-propert |
| 191c0 | 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 20 20 20 20 20 20 | ies.p.(point)).................. |
| 191e0 | 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 29 29 29 0a 0a 3b | ......."response.body")))))))..; |
| 19200 | 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 61 67 69 6e 67 20 | ;.TODO:.Separate.user-messaging. |
| 19220 | 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 67 70 74 65 6c 2d | from.this.function.(defun.gptel- |
| 19240 | 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 65 73 73 20 5f 73 | curl--stream-cleanup.(process._s |
| 19260 | 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 20 66 6f 72 20 47 | tatus)..."Process.sentinel.for.G |
| 19280 | 50 54 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 50 52 4f 43 45 53 53 20 61 6e 64 | PTel.curl.requests...PROCESS.and |
| 192a0 | 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 65 74 65 72 73 2e | ._STATUS.are.process.parameters. |
| 192c0 | 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 73 73 2d 62 75 66 | "...(let.((proc-buf.(process-buf |
| 192e0 | 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 28 66 73 6d 20 28 | fer.process))).....(let*.((fsm.( |
| 19300 | 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 74 | alist-get.process.gptel--request |
| 19320 | 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 6c | -alist))............(info.(gptel |
| 19340 | 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 28 68 74 74 70 | -fsm-info.fsm))............(http |
| 19360 | 2d 73 74 61 74 75 73 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 | -status.(plist-get.info.:http-st |
| 19380 | 61 74 75 73 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 | atus))).......(when.gptel-log-le |
| 193a0 | 76 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 | vel.(gptel-curl--log-response.pr |
| 193c0 | 6f 63 2d 62 75 66 20 69 6e 66 6f 29 29 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 28 69 66 | oc-buf.info)).;logging.......(if |
| 193e0 | 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 30 22 20 22 31 30 | .(member.http-status.'("200"."10 |
| 19400 | 30 22 29 29 20 3b 46 69 6e 69 73 68 20 68 61 6e 64 6c 69 6e 67 20 72 65 73 70 6f 6e 73 65 0a 20 | 0")).;Finish.handling.response.. |
| 19420 | 20 20 20 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 6f 6e 65 | .........;;.Run.the.callback.one |
| 19440 | 20 6c 61 73 74 20 74 69 6d 65 20 74 6f 20 73 69 67 6e 61 6c 20 74 68 61 74 20 74 68 65 20 70 72 | .last.time.to.signal.that.the.pr |
| 19460 | 6f 63 65 73 73 20 68 61 73 20 65 6e 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d | ocess.has.ended...........(with- |
| 19480 | 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 65 | demoted-errors."gptel.callback.e |
| 194a0 | 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 28 | rror:.%S".............(funcall.( |
| 194c0 | 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 74 20 69 6e 66 6f | plist-get.info.:callback).t.info |
| 194e0 | 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 72 20 | )).........(with-current-buffer. |
| 19500 | 70 72 6f 63 2d 62 75 66 20 20 20 3b 20 4f 72 20 43 61 70 74 75 72 65 20 65 72 72 6f 72 20 6d 65 | proc-buf...;.Or.Capture.error.me |
| 19520 | 73 73 61 67 65 0a 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 | ssage...........(goto-char.(poin |
| 19540 | 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 | t-max))...........(search-backwa |
| 19560 | 72 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 29 0a 20 20 20 20 | rd.(plist-get.info.:token))..... |
| 19580 | 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 | ......(backward-char)........... |
| 195a0 | 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e 20 2c 68 65 61 64 65 72 2d 73 69 7a | (pcase-let*.((`(,_...,header-siz |
| 195c0 | 65 29 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 20 20 | e).(read.(current-buffer)))..... |
| 195e0 | 20 20 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 70 72 | ...................(response.(pr |
| 19600 | 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 72 2d 73 69 7a 65 29 0a 20 20 20 20 | ogn.(goto-char.header-size)..... |
| 19620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 19640 | 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 20 28 67 70 74 65 6c 2d 2d | ....(condition-case.nil.(gptel-- |
| 19660 | 6a 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 | json-read)...................... |
| 19680 | 20 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 20 27 6a 73 6f | .....................(error.'jso |
| 196a0 | 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-read-error))))................ |
| 196c0 | 20 20 20 20 20 20 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 72 | ........(error-data.(plist-get.r |
| 196e0 | 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 20 20 20 20 20 28 63 | esponse.:error))).............(c |
| 19700 | 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 64 61 74 61 0a 20 20 20 | ond..............(error-data.... |
| 19720 | 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 65 72 72 6f | ...........(plist-put.info.:erro |
| 19740 | 72 20 65 72 72 6f 72 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 | r.error-data))..............((eq |
| 19760 | 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 20 20 20 | .response.'json-read-error)..... |
| 19780 | 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 65 72 72 6f 72 | ..........(plist-put.info.:error |
| 197a0 | 20 22 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 2e 22 29 29 | ."Malformed.JSON.in.response.")) |
| 197c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | ..............(t.(plist-put.info |
| 197e0 | 20 3a 65 72 72 6f 72 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 | .:error."Could.not.parse.HTTP.re |
| 19800 | 73 70 6f 6e 73 65 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f | sponse."))))).........(with-demo |
| 19820 | 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 65 72 72 6f 72 | ted-errors."gptel.callback.error |
| 19840 | 3a 20 25 53 22 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 | :.%S"...........(funcall.(plist- |
| 19860 | 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 20 6e 69 6c 20 69 6e 66 6f 29 29 29 0a | get.info.:callback).nil.info))). |
| 19880 | 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 |
| 198a0 | 29 29 20 20 20 20 20 20 3b 20 4d 6f 76 65 20 74 6f 20 6e 65 78 74 20 73 74 61 74 65 0a 20 20 20 | ))......;.Move.to.next.state.... |
| 198c0 | 20 28 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 | .(setf.(alist-get.process.gptel- |
| 198e0 | 2d 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 | -request-alist.nil.'remove).nil) |
| 19900 | 0a 20 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 | .....(kill-buffer.proc-buf)))..( |
| 19920 | 64 65 66 75 6e 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 | defun.gptel-curl--stream-insert- |
| 19940 | 72 65 73 70 6f 6e 73 65 20 28 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 | response.(response.info.&optiona |
| 19960 | 6c 20 72 61 77 29 0a 20 20 22 49 6e 73 65 72 74 20 73 74 72 65 61 6d 69 6e 67 20 52 45 53 50 4f | l.raw)..."Insert.streaming.RESPO |
| 19980 | 4e 53 45 20 66 72 6f 6d 20 61 6e 20 4c 4c 4d 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 | NSE.from.an.LLM.into.the.gptel.b |
| 199a0 | 75 66 66 65 72 2e 0a 0a 49 4e 46 4f 20 69 73 20 61 20 6d 75 74 61 62 6c 65 20 70 6c 69 73 74 20 | uffer...INFO.is.a.mutable.plist. |
| 199c0 | 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 20 | containing.information.relevant. |
| 199e0 | 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 2d | to.this.buffer..See.`gptel--url- |
| 19a00 | 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 69 | get-response'.for.details...Opti |
| 19a20 | 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 65 | onal.RAW.disables.text.propertie |
| 19a40 | 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 70 63 61 73 65 20 | s.and.transformation."...(pcase. |
| 19a60 | 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 28 28 70 72 65 64 20 73 74 72 69 6e 67 70 29 0a 20 20 20 | response.....((pred.stringp).... |
| 19a80 | 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 | ..(let.((start-marker.(plist-get |
| 19aa0 | 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 72 | .info.:position))............(tr |
| 19ac0 | 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 20 3a 74 | acking-marker.(plist-get.info.:t |
| 19ae0 | 72 61 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 20 28 74 72 61 | racking-marker))............(tra |
| 19b00 | 6e 73 66 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 | nsformer.(plist-get.info.:transf |
| 19b20 | 6f 72 6d 65 72 29 29 29 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | ormer)))........(with-current-bu |
| 19b40 | 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 | ffer.(marker-buffer.start-marker |
| 19b60 | 29 0a 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 20 20 | )..........(save-excursion...... |
| 19b80 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 | ......(unless.tracking-marker... |
| 19ba0 | 20 20 20 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 72 6b | ...........(goto-char.start-mark |
| 19bc0 | 65 72 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 | er)..............(unless.(or.(bo |
| 19be0 | 62 70 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 29 0a | bp).(plist-get.info.:in-place)). |
| 19c00 | 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 2d 72 65 73 | ...............(insert.gptel-res |
| 19c20 | 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 20 20 20 20 20 20 20 | ponse-separator)................ |
| 19c40 | 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 20 20 20 20 20 20 20 | (when.gptel-mode................ |
| 19c60 | 20 20 3b 3b 20 50 75 74 20 70 72 65 66 69 78 20 62 65 66 6f 72 65 20 41 49 20 72 65 73 70 6f 6e | ..;;.Put.prefix.before.AI.respon |
| 19c80 | 73 65 2e 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 20 28 67 70 | se...................(insert.(gp |
| 19ca0 | 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 0a 20 20 | tel-response-prefix-string)))... |
| 19cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d | .............(move-marker.start- |
| 19ce0 | 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | marker.(point)))..............(s |
| 19d00 | 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 | etq.tracking-marker.(set-marker. |
| 19d20 | 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | (make-marker).(point)))......... |
| 19d40 | 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 2d 69 6e 73 65 72 74 69 6f 6e 2d 74 79 70 65 20 | .....(set-marker-insertion-type. |
| 19d60 | 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tracking-marker.t).............. |
| 19d80 | 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 | (plist-put.info.:tracking-marker |
| 19da0 | 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 20 20 20 20 20 28 67 | .tracking-marker))............(g |
| 19dc0 | 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 20 20 20 20 20 20 | oto-char.tracking-marker)....... |
| 19de0 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 61 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | .....(unless.raw..............(w |
| 19e00 | 68 65 6e 20 74 72 61 6e 73 66 6f 72 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | hen.transformer................( |
| 19e20 | 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 66 75 6e 63 61 6c 6c 20 74 72 61 6e 73 66 6f 72 6d | setq.response.(funcall.transform |
| 19e40 | 65 72 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 | er.response)))..............(add |
| 19e60 | 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 20 20 20 20 20 20 30 | -text-properties...............0 |
| 19e80 | 20 28 6c 65 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 | .(length.response).'(gptel.respo |
| 19ea0 | 6e 73 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 0a 20 20 20 20 20 20 | nse.front-sticky.(gptel))....... |
| 19ec0 | 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b | ........response))............;; |
| 19ee0 | 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 65 2d 73 74 72 65 61 6d 2d 68 6f | .(run-hooks.'gptel-pre-stream-ho |
| 19f00 | 6f 6b 29 0a 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 | ok)............(insert.response) |
| 19f20 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 6f | ............(run-hooks.'gptel-po |
| 19f40 | 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 29 29 29 29 29 0a 20 20 20 20 28 60 28 72 65 61 73 6f | st-stream-hook))))).....(`(reaso |
| 19f60 | 6e 69 6e 67 20 2e 20 2c 74 65 78 74 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c | ning...,text)......(gptel--displ |
| 19f80 | 61 79 2d 72 65 61 73 6f 6e 69 6e 67 2d 73 74 72 65 61 6d 20 74 65 78 74 20 69 6e 66 6f 29 29 0a | ay-reasoning-stream.text.info)). |
| 19fa0 | 20 20 20 20 28 60 28 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 2c 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a | ....(`(tool-call...,tool-calls). |
| 19fc0 | 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 63 61 6c 6c 73 20 | .....(gptel--display-tool-calls. |
| 19fe0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 29 29 0a 20 20 20 20 28 60 28 74 6f 6f 6c 2d 72 65 | tool-calls.info)).....(`(tool-re |
| 1a000 | 73 75 6c 74 20 2e 20 2c 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 28 67 70 74 65 | sult...,tool-results)......(gpte |
| 1a020 | 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 |
| 1a040 | 75 6c 74 73 20 69 6e 66 6f 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c | ults.info))))..(defun.gptel-curl |
| 1a060 | 2d 2d 73 74 72 65 61 6d 2d 66 69 6c 74 65 72 20 28 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 29 | --stream-filter.(process.output) |
| 1a080 | 0a 20 20 28 6c 65 74 2a 20 28 28 66 73 6d 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 | ...(let*.((fsm.(alist-get.proces |
| 1a0a0 | 73 20 67 70 74 65 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 | s.gptel--request-alist))........ |
| 1a0c0 | 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 66 73 6d | ..(proc-info.(gptel-fsm-info.fsm |
| 1a0e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 6c 6c 62 61 63 6b 20 28 6f 72 20 28 70 6c 69 73 74 | ))..........(callback.(or.(plist |
| 1a100 | 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 | -get.proc-info.:callback)....... |
| 1a120 | 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 63 75 72 6c 2d 2d 73 | .................#'gptel-curl--s |
| 1a140 | 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 28 77 69 | tream-insert-response))).....(wi |
| 1a160 | 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 73 2d 62 75 66 66 65 | th-current-buffer.(process-buffe |
| 1a180 | 72 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 6f 75 74 70 75 | r.process).......;;.Insert.outpu |
| 1a1a0 | 74 0a 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 20 20 20 20 | t.......(save-excursion......... |
| 1a1c0 | 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 65 73 73 | (goto-char.(process-mark.process |
| 1a1e0 | 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 | )).........(insert.output)...... |
| 1a200 | 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f | ...(set-marker.(process-mark.pro |
| 1a220 | 63 65 73 73 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3b 3b 20 | cess).(point)))..............;;. |
| 1a240 | 46 69 6e 64 20 48 54 54 50 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 | Find.HTTP.status.......(unless.( |
| 1a260 | 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 2d 73 74 61 74 75 73 | plist-get.proc-info.:http-status |
| 1a280 | 29 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 20 20 | ).........(save-excursion....... |
| 1a2a0 | 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 20 | ....(goto-char.(point-min))..... |
| 1a2c0 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 28 6e 6f 74 20 28 3d 20 28 6c 69 6e 65 | ......(when-let*.(((not.(=.(line |
| 1a2e0 | 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 29 29 0a 20 20 | -end-position).(point-max))))... |
| 1a300 | 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 6d 73 67 20 28 62 | ....................(http-msg.(b |
| 1a320 | 75 66 66 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 | uffer-substring.(line-beginning- |
| 1a340 | 70 6f 73 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 | position)....................... |
| 1a360 | 20 20 20 20 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 |
| 1a380 | 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-end-position)))............... |
| 1a3a0 | 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 20 | ........(http-status............ |
| 1a3c0 | 20 20 20 20 20 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 | ............(save-match-data.... |
| 1a3e0 | 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 73 74 72 69 | ......................(and.(stri |
| 1a400 | 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 2d 39 5d | ng-match."HTTP/[.0-9]+.+\\([0-9] |
| 1a420 | 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 20 20 20 | +\\)".http-msg)................. |
| 1a440 | 20 20 20 20 20 20 20 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 | ..............(match-string.1.ht |
| 1a460 | 74 70 2d 6d 73 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 | tp-msg))))).............(plist-p |
| 1a480 | 75 74 20 70 72 6f 63 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 | ut.proc-info.:http-status.http-s |
| 1a4a0 | 74 61 74 75 73 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 70 72 | tatus).............(plist-put.pr |
| 1a4c0 | 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 68 74 74 | oc-info.:status.(string-trim.htt |
| 1a4e0 | 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d | p-msg)).............(gptel--fsm- |
| 1a500 | 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 29 29 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 | transition.fsm)))).............. |
| 1a520 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 68 74 74 70 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 | (when-let*.((http-msg.(plist-get |
| 1a540 | 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .proc-info.:status))............ |
| 1a560 | 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 70 | .......(http-status.(plist-get.p |
| 1a580 | 72 6f 63 2d 69 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 20 | roc-info.:http-status)))........ |
| 1a5a0 | 20 3b 3b 20 46 69 6e 64 20 64 61 74 61 20 63 68 75 6e 6b 28 73 29 20 61 6e 64 20 72 75 6e 20 63 | .;;.Find.data.chunk(s).and.run.c |
| 1a5c0 | 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 | allback.........;;.FIXME.Handle. |
| 1a5e0 | 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f | the.case.where.HTTP.100.is.follo |
| 1a600 | 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 | wed.by.HTTP.(not.200).BUG.#194.. |
| 1a620 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 | .......(when.(member.http-status |
| 1a640 | 20 27 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 28 6c 65 74 20 | .'("200"."100"))...........(let. |
| 1a660 | 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 | ((response.(gptel-curl--parse-st |
| 1a680 | 72 65 61 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 20 | ream............................ |
| 1a6a0 | 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 70 | (plist-get.proc-info.:backend).p |
| 1a6c0 | 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 28 72 65 61 73 | roc-info)).................(reas |
| 1a6e0 | 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f | oning-block.(plist-get.proc-info |
| 1a700 | 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .:reasoning-block)))............ |
| 1a720 | 20 3b 3b 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 41 50 49 2c 20 74 68 65 72 65 20 | .;;.Depending.on.the.API,.there. |
| 1a740 | 61 72 65 20 74 77 6f 20 6d 6f 64 65 73 20 74 68 61 74 20 72 65 61 73 6f 6e 69 6e 67 20 6f 72 0a | are.two.modes.that.reasoning.or. |
| 1a760 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 61 69 6e 2d 6f 66 2d 74 68 6f 75 67 68 74 20 | ............;;.chain-of-thought. |
| 1a780 | 63 6f 6e 74 65 6e 74 20 61 70 70 65 61 72 73 3a 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 | content.appears:.as.part.of.the. |
| 1a7a0 | 6d 61 69 6e 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 74 | main.response.............;;.but |
| 1a7c0 | 20 73 75 72 72 6f 75 6e 64 65 64 20 62 79 20 3c 74 68 69 6e 6b 3e 2e 2e 2e 3c 2f 74 68 69 6e 6b | .surrounded.by.<think>...</think |
| 1a7e0 | 3e 20 74 61 67 73 2c 20 6f 72 20 61 73 20 61 20 73 65 70 61 72 61 74 65 0a 20 20 20 20 20 20 20 | >.tags,.or.as.a.separate........ |
| 1a800 | 20 20 20 20 20 3b 3b 20 4a 53 4f 4e 20 66 69 65 6c 64 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e | .....;;.JSON.field.in.the.respon |
| 1a820 | 73 65 20 73 74 72 65 61 6d 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 | se.stream..............;;....... |
| 1a840 | 20 20 20 20 20 20 3b 3b 20 54 68 65 73 65 20 63 61 73 65 73 20 61 72 65 20 68 61 6e 64 6c 65 64 | ......;;.These.cases.are.handled |
| 1a860 | 20 75 73 69 6e 67 20 74 77 6f 20 50 52 4f 43 2d 49 4e 46 4f 20 6b 65 79 73 3a 0a 20 20 20 20 20 | .using.two.PROC-INFO.keys:...... |
| 1a880 | 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 3a 72 65 61 73 6f 6e | .......;;.............;;.:reason |
| 1a8a0 | 69 6e 67 2d 62 6c 6f 63 6b 20 69 73 20 6e 69 6c 20 62 65 66 6f 72 65 20 63 68 65 63 6b 69 6e 67 | ing-block.is.nil.before.checking |
| 1a8c0 | 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 2c 20 27 69 6e 20 77 68 65 6e 0a 20 20 20 20 20 20 20 | .for.reasoning,.'in.when........ |
| 1a8e0 | 20 20 20 20 20 3b 3b 20 69 6e 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 2c 20 74 20 | .....;;.in.a.reasoning.block,.t. |
| 1a900 | 77 68 65 6e 20 77 65 20 72 65 61 63 68 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 6c 6f | when.we.reach.the.end.of.the.blo |
| 1a920 | 63 6b 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 27 64 6f 6e 65 20 61 66 74 | ck,.and.............;;.'done.aft |
| 1a940 | 65 72 77 61 72 64 73 20 6f 72 20 69 66 20 6e 6f 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b | erwards.or.if.no.reasoning.block |
| 1a960 | 20 69 73 20 66 6f 75 6e 64 2e 20 20 54 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | .is.found...This.............;;. |
| 1a980 | 61 70 70 6c 69 65 73 20 74 6f 20 62 6f 74 68 20 74 68 65 20 6d 6f 64 65 73 20 61 62 6f 76 65 2e | applies.to.both.the.modes.above. |
| 1a9a0 | 0a 20 20 20 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 3a | .............;;.............;;.: |
| 1a9c0 | 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 | reasoning.contains.the.reasoning |
| 1a9e0 | 20 74 65 78 74 20 70 61 72 73 65 64 20 66 72 6f 6d 20 74 68 65 20 73 65 70 61 72 61 74 65 0a 20 | .text.parsed.from.the.separate.. |
| 1aa00 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4a 53 4f 4e 20 66 69 65 6c 64 2e 0a 20 20 20 20 20 20 | ...........;;.JSON.field........ |
| 1aa20 | 20 20 20 20 20 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 57 65 | ......;;.............;;.NOTE:.We |
| 1aa40 | 20 61 73 73 75 6d 65 20 68 65 72 65 20 74 68 61 74 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 | .assume.here.that.the.reasoning. |
| 1aa60 | 62 6c 6f 63 6b 20 61 6c 77 61 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 65 63 | block.always.............;;.prec |
| 1aa80 | 65 64 65 73 20 74 68 65 20 6d 61 69 6e 20 72 65 73 70 6f 6e 73 65 20 62 6c 6f 63 6b 2e 0a 20 20 | edes.the.main.response.block.... |
| 1aaa0 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d | ..........(unless.(eq.reasoning- |
| 1aac0 | 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 | block.'done)...............(let. |
| 1aae0 | 28 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 | ((reasoning.(plist-get.proc-info |
| 1ab00 | 20 3a 72 65 61 73 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 28 | .:reasoning))).................( |
| 1ab20 | 63 6f 6e 64 0a 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 | cond..................((stringp. |
| 1ab40 | 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 3b 3b 20 | reasoning)...................;;. |
| 1ab60 | 4f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 73 65 70 61 72 61 74 65 20 4a 53 4f 4e 20 66 69 65 6c | Obtained.from.separate.JSON.fiel |
| 1ab80 | 64 20 69 6e 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.in.response................... |
| 1aba0 | 28 66 75 6e 63 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 | (funcall.callback.(cons.'reasoni |
| 1abc0 | 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 | ng.reasoning).proc-info)........ |
| 1abe0 | 20 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 | ...........(plist-put.proc-info. |
| 1ac00 | 3a 72 65 61 73 6f 6e 69 6e 67 20 6e 69 6c 29 29 20 3b 52 65 73 65 74 20 66 6f 72 20 6e 65 78 74 | :reasoning.nil)).;Reset.for.next |
| 1ac20 | 20 70 61 72 73 69 6e 67 20 72 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .parsing.round.................. |
| 1ac40 | 28 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 28 6c 65 | ((and.(null.reasoning-block).(le |
| 1ac60 | 6e 67 74 68 3e 20 72 65 73 70 6f 6e 73 65 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ngth>.response.0)).............. |
| 1ac80 | 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 5e 20 2a 3c 74 68 | .....(if.(string-match-p."^.*<th |
| 1aca0 | 69 6e 6b 3e 22 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 20 | ink>".response)................. |
| 1acc0 | 20 20 20 20 20 20 3b 3b 20 4f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 6d 61 69 6e 20 72 65 73 70 | ......;;.Obtained.from.main.resp |
| 1ace0 | 6f 6e 73 65 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 20 20 | onse.stream..................... |
| 1ad00 | 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 63 6f 6e 73 20 27 72 | ..(progn.(setq.response.(cons.'r |
| 1ad20 | 65 61 73 6f 6e 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | easoning.response))............. |
| 1ad40 | 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 70 72 6f 63 | .................(plist-put.proc |
| 1ad60 | 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 6e 29 29 0a 20 20 20 | -info.:reasoning-block.'in)).... |
| 1ad80 | 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 70 72 6f 63 | .................(plist-put.proc |
| 1ada0 | 2d 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 29 0a | -info.:reasoning-block.'done))). |
| 1adc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 65 6e 67 74 68 3e 20 72 65 73 70 6f | .................((length>.respo |
| 1ade0 | 6e 73 65 20 30 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 65 74 | nse.0)...................(if-let |
| 1ae00 | 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 3c 2f 74 68 69 6e 6b | *.((idx.(string-match-p."</think |
| 1ae20 | 3e 22 20 72 65 73 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 | >".response))).................. |
| 1ae40 | 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 20 20 20 | .....(progn..................... |
| 1ae60 | 20 20 20 20 28 66 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 | ....(funcall.callback........... |
| 1ae80 | 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 73 20 27 72 65 | .......................(cons.'re |
| 1aea0 | 61 73 6f 6e 69 6e 67 20 3b 6c 61 73 74 20 72 65 61 73 6f 6e 69 6e 67 20 63 68 75 6e 6b 0a 20 20 | asoning.;last.reasoning.chunk... |
| 1aec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1aee0 | 20 20 20 20 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 | .....(string-trim-left.......... |
| 1af00 | 20 20 20 20 20 20 20 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 | ...............................( |
| 1af20 | 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 6e 69 6c 20 28 2b 20 69 64 78 20 38 29 | substring.response.nil.(+.idx.8) |
| 1af40 | 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 20 20 | )))............................. |
| 1af60 | 20 20 20 20 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 | .....proc-info)................. |
| 1af80 | 20 20 20 20 20 20 20 20 3b 3b 20 53 69 67 6e 61 6c 20 65 6e 64 20 6f 66 20 72 65 61 73 6f 6e 69 | ........;;.Signal.end.of.reasoni |
| 1afa0 | 6e 67 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 20 20 20 20 | ng.stream....................... |
| 1afc0 | 20 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 | ..(funcall.callback.'(reasoning. |
| 1afe0 | 2e 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 | ..t).proc-info)................. |
| 1b000 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 20 28 73 75 62 73 74 72 69 6e | ........(setq.response.(substrin |
| 1b020 | 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 | g.response.(+.idx.8))).......... |
| 1b040 | 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 70 72 6f 63 2d 69 | ...............(plist-put.proc-i |
| 1b060 | 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 0a 20 20 20 | nfo.:reasoning-block.'done)).... |
| 1b080 | 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 65 20 | .................(setq.response. |
| 1b0a0 | 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 29 29 29 0a 20 | (cons.'reasoning.response))))).. |
| 1b0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 72 65 61 73 6f 6e 69 | ...............(when.(eq.reasoni |
| 1b0e0 | 6e 67 2d 62 6c 6f 63 6b 20 74 29 20 3b 45 6e 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c | ng-block.t).;End.of.reasoning.bl |
| 1b100 | 6f 63 6b 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 63 | ock...................(funcall.c |
| 1b120 | 61 6c 6c 62 61 63 6b 20 27 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 29 20 70 72 6f 63 2d 69 6e | allback.'(reasoning...t).proc-in |
| 1b140 | 66 6f 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 | fo)...................(plist-put |
| 1b160 | 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 64 6f 6e | .proc-info.:reasoning-block.'don |
| 1b180 | 65 29 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 65 71 75 61 6c | e)))).............(unless.(equal |
| 1b1a0 | 20 72 65 73 70 6f 6e 73 65 20 22 22 29 20 3b 52 65 73 70 6f 6e 73 65 20 63 61 6c 6c 62 61 63 6b | .response."").;Response.callback |
| 1b1c0 | 0a 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 |
| 1b1e0 | 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 29 29 29 29 0a 0a 28 63 6c | .response.proc-info))))))))..(cl |
| 1b200 | 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 | -defgeneric.gptel-curl--parse-st |
| 1b220 | 72 65 61 6d 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 53 74 72 65 | ream.(backend.proc-info)..."Stre |
| 1b240 | 61 6d 20 70 61 72 73 65 72 20 66 6f 72 20 67 70 74 65 6c 2d 63 75 72 6c 2e 0a 0a 49 6d 70 6c 65 | am.parser.for.gptel-curl...Imple |
| 1b260 | 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 20 | mentations.of.this.function.run. |
| 1b280 | 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 0a 66 69 6c 74 65 72 20 66 6f | as.part.of.the.process.filter.fo |
| 1b2a0 | 72 20 74 68 65 20 61 63 74 69 76 65 20 71 75 65 72 79 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 70 | r.the.active.query,.and.return.p |
| 1b2c0 | 61 72 74 69 61 6c 20 72 65 73 70 6f 6e 73 65 73 20 66 72 6f 6d 0a 74 68 65 20 4c 4c 4d 2e 0a 0a | artial.responses.from.the.LLM... |
| 1b2e0 | 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 |
| 1b300 | 65 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 70 72 | e...PROC-INFO.is.a.plist.with.pr |
| 1b320 | 6f 63 65 73 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 6f 74 68 65 72 20 63 6f 6e 74 | ocess.information.and.other.cont |
| 1b340 | 65 78 74 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e | ext..See.`gptel-curl--get-respon |
| 1b360 | 73 65 27 20 66 6f 72 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 | se'.for.its.contents.")..(defun. |
| 1b380 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 65 6e 74 69 6e 65 6c 20 28 70 72 6f 63 65 73 73 20 5f 73 | gptel-curl--sentinel.(process._s |
| 1b3a0 | 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 20 66 6f 72 20 67 | tatus)..."Process.sentinel.for.g |
| 1b3c0 | 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 53 53 20 61 6e 64 | ptel.curl.requests...PROCESS.and |
| 1b3e0 | 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 65 74 65 72 73 2e | ._STATUS.are.process.parameters. |
| 1b400 | 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 73 73 2d 62 75 66 | "...(let.((proc-buf.(process-buf |
| 1b420 | 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | fer.process))).....(when-let*.(( |
| 1b440 | 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 65 73 73 29 20 27 65 78 | (eq.(process-status.process).'ex |
| 1b460 | 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 73 6d 20 28 61 6c 69 73 74 | it)).................(fsm.(alist |
| 1b480 | 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 |
| 1b4a0 | 74 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 69 6e 66 6f 20 28 | t)).................(proc-info.( |
| 1b4c0 | 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 20 20 | gptel-fsm-info.fsm))............ |
| 1b4e0 | 20 20 20 20 20 28 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 70 | .....(proc-callback.(plist-get.p |
| 1b500 | 72 6f 63 2d 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 | roc-info.:callback))).......(whe |
| 1b520 | 6e 20 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 | n.gptel-log-level.(gptel-curl--l |
| 1b540 | 6f 67 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 62 75 66 20 70 72 6f 63 2d 69 6e 66 6f 29 29 | og-response.proc-buf.proc-info)) |
| 1b560 | 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c | .;logging.......(pcase-let.((`(, |
| 1b580 | 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 6d 73 67 20 | response.,http-status.,http-msg. |
| 1b5a0 | 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 28 77 69 74 68 | ,error)....................(with |
| 1b5c0 | 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 20 20 20 20 20 20 20 | -current-buffer.proc-buf........ |
| 1b5e0 | 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 70 61 72 73 65 | ..............(gptel-curl--parse |
| 1b600 | 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 | -response.proc-info))))......... |
| 1b620 | 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 | (plist-put.proc-info.:http-statu |
| 1b640 | 73 20 68 74 74 70 2d 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | s.http-status).........(plist-pu |
| 1b660 | 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 | t.proc-info.:status.http-msg)... |
| 1b680 | 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 |
| 1b6a0 | 29 20 20 20 20 20 3b 57 41 49 54 20 2d 3e 20 54 59 50 45 0a 20 20 20 20 20 20 20 20 28 77 68 65 | ).....;WAIT.->.TYPE.........(whe |
| 1b6c0 | 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 65 72 | n.error.(plist-put.proc-info.:er |
| 1b6e0 | 72 6f 72 20 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 65 73 70 6f 6e | ror.error)).........(when.respon |
| 1b700 | 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4c 6f 6f 6b 20 66 6f 72 20 61 20 | se..................;Look.for.a. |
| 1b720 | 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 28 69 66 20 28 73 | reasoning.block...........(if.(s |
| 1b740 | 74 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 | tring-match-p."^.*<think>\n".res |
| 1b760 | 70 6f 6e 73 65 29 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 | ponse)...............(when-let*. |
| 1b780 | 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 73 65 61 72 63 68 20 22 3c 2f 74 68 69 6e 6b 3e 5c 6e | ((idx.(string-search."</think>\n |
| 1b7a0 | 22 20 72 65 73 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 28 77 | ".response))).................(w |
| 1b7c0 | 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 6c 6c 62 61 | ith-demoted-errors."gptel.callba |
| 1b7e0 | 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ck.error:.%S"................... |
| 1b800 | 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 | (funcall.proc-callback.......... |
| 1b820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 | ..................(cons.'reasoni |
| 1b840 | 6e 67 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 2b 20 69 64 | ng.(substring.response.nil.(+.id |
| 1b860 | 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 20 20 20 20 | x.8))).......................... |
| 1b880 | 20 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 28 73 | ..proc-info)).................(s |
| 1b8a0 | 65 74 71 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | etq.response.................... |
| 1b8c0 | 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 6c 65 66 74 20 28 73 75 62 73 74 72 69 6e 67 20 | ...(string-trim-left.(substring. |
| 1b8e0 | 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | response.(+.idx.8))))).......... |
| 1b900 | 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 69 73 74 | ...(when-let*.((reasoning.(plist |
| 1b920 | 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 0a 20 20 20 20 | -get.proc-info.:reasoning))..... |
| 1b940 | 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 72 65 | ....................((stringp.re |
| 1b960 | 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c | asoning)))...............(funcal |
| 1b980 | 6c 20 70 72 6f 63 2d 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 | l.proc-callback.(cons.'reasoning |
| 1b9a0 | 20 72 65 61 73 6f 6e 69 6e 67 29 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 | .reasoning).proc-info))))....... |
| 1b9c0 | 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 73 70 6f 6e 73 65 20 28 6e 6f 74 20 28 6d 65 6d 62 65 | ..(when.(or.response.(not.(membe |
| 1b9e0 | 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 29 29 29 29 0a | r.http-status.'("200"."100")))). |
| 1ba00 | 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 20 22 | ..........(with-demoted-errors." |
| 1ba20 | 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 20 20 | gptel.callback.error:.%S"....... |
| 1ba40 | 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 20 72 65 73 | ......(funcall.proc-callback.res |
| 1ba60 | 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c | ponse.proc-info)))).......(gptel |
| 1ba80 | 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 29 20 20 20 20 20 20 3b 54 59 50 | --fsm-transition.fsm))......;TYP |
| 1baa0 | 45 20 2d 3e 20 6e 65 78 74 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 | E.->.next.....(setf.(alist-get.p |
| 1bac0 | 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 74 20 6e 69 6c 20 | rocess.gptel--request-alist.nil. |
| 1bae0 | 27 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 | 'remove).nil).....(kill-buffer.p |
| 1bb00 | 72 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 70 | roc-buf)))..(defun.gptel-curl--p |
| 1bb20 | 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 50 61 72 | arse-response.(proc-info)..."Par |
| 1bb40 | 73 65 20 74 68 65 20 62 75 66 66 65 72 20 42 55 46 20 77 69 74 68 20 63 75 72 6c 27 73 20 72 65 | se.the.buffer.BUF.with.curl's.re |
| 1bb60 | 73 70 6f 6e 73 65 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 | sponse...PROC-INFO.is.a.plist.wi |
| 1bb80 | 74 68 20 63 6f 6e 74 65 78 74 75 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 28 6c | th.contextual.information."...(l |
| 1bba0 | 65 74 20 28 28 74 6f 6b 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 | et.((token.(plist-get.proc-info. |
| 1bbc0 | 3a 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d | :token))).....(goto-char.(point- |
| 1bbe0 | 6d 61 78 29 29 0a 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 74 6f 6b 65 6e | max)).....(search-backward.token |
| 1bc00 | 29 0a 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 28 70 63 61 73 65 | ).....(backward-char).....(pcase |
| 1bc20 | 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e 20 2c 68 65 61 64 65 72 2d 73 69 7a 65 29 20 28 72 65 | -let*.((`(,_...,header-size).(re |
| 1bc40 | 61 64 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 20 28 67 6f | ad.(current-buffer)))).......(go |
| 1bc60 | 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 69 66 2d | to-char.(point-min))........(if- |
| 1bc80 | 6c 65 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 0a 20 20 20 | let*.((http-msg.(string-trim.... |
| 1bca0 | 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- |
| 1bcc0 | 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 69 74 69 | substring.(line-beginning-positi |
| 1bce0 | 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 20 20 | on)............................. |
| 1bd00 | 20 20 20 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 | .................(line-end-posit |
| 1bd20 | 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 | ion)))).................(http-st |
| 1bd40 | 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 | atus..................(save-matc |
| 1bd60 | 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 28 61 6e 64 20 28 | h-data....................(and.( |
| 1bd80 | 73 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 | string-match."HTTP/[.0-9]+.+\\([ |
| 1bda0 | 30 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 | 0-9]+\\)".http-msg)............. |
| 1bdc0 | 20 20 20 20 20 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 | ............(match-string.1.http |
| 1bde0 | 2d 6d 73 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e | -msg)))).................(respon |
| 1be00 | 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 72 2d 73 69 7a 65 | se.(progn.(goto-char.header-size |
| 1be20 | 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 | )............................... |
| 1be40 | 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 20 20 20 20 | ...(condition-case.nil.......... |
| 1be60 | 20 20 20 20 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 |
| 1be80 | 65 6c 2d 2d 6a 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 | el--json-read).................. |
| 1bea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 | ..................(error.'json-r |
| 1bec0 | 65 61 64 2d 65 72 72 6f 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 | ead-error)))))...........(cond.. |
| 1bee0 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 | ..........;;.FIXME.Handle.the.ca |
| 1bf00 | 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 | se.where.HTTP.100.is.followed.by |
| 1bf20 | 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 | .HTTP.(not.200).BUG.#194........ |
| 1bf40 | 20 20 20 20 28 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 30 22 | ....((member.http-status.'("200" |
| 1bf60 | 20 22 31 30 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 61 6e 64 2d | ."100")).............(list.(and- |
| 1bf80 | 6c 65 74 2a 20 28 28 72 65 73 70 20 3b 3b 20 28 66 75 6e 63 61 6c 6c 20 70 61 72 73 65 72 20 6e | let*.((resp.;;.(funcall.parser.n |
| 1bfa0 | 69 6c 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 | il.response.proc-info).......... |
| 1bfc0 | 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 61 72 | .....................(gptel--par |
| 1bfe0 | 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f | se-response.(plist-get.proc-info |
| 1c000 | 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 20 20 20 20 | .:backend)...................... |
| 1c020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1c040 | 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | response.proc-info)))........... |
| 1c060 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 72 65 73 70 29 29 0a 20 20 | ..........(string-trim.resp))... |
| 1c080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 | ................http-status.http |
| 1c0a0 | 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 72 65 | -msg))............((plist-get.re |
| 1c0c0 | 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | sponse.:error).............(list |
| 1c0e0 | 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 |
| 1c100 | 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 20 | -get.response.:error)))......... |
| 1c120 | 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 2d 65 72 72 6f | ...((eq.response.'json-read-erro |
| 1c140 | 72 29 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 | r).............(list.nil.http-st |
| 1c160 | 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 4d 61 6c | atus.(concat."(".http-msg.").Mal |
| 1c180 | 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 | formed.JSON.in.response.")...... |
| 1c1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 | ............."Malformed.JSON.in. |
| 1c1c0 | 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 | response"))............(t.(list. |
| 1c1e0 | 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 70 | nil.http-status.(concat."(".http |
| 1c200 | 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 73 | -msg.").Could.not.parse.HTTP.res |
| 1c220 | 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 20 20 22 43 6f | ponse.")....................."Co |
| 1c240 | 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 29 29 | uld.not.parse.HTTP.response."))) |
| 1c260 | 0a 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 75 73 20 28 | .........(list.nil.http-status.( |
| 1c280 | 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 6e 6f 74 | concat."(".http-msg.").Could.not |
| 1c2a0 | 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 20 20 20 | .parse.HTTP.response.")......... |
| 1c2c0 | 20 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 | ......"Could.not.parse.HTTP.resp |
| 1c2e0 | 6f 6e 73 65 2e 22 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 63 75 72 | onse.")))))..(provide.'gptel-cur |
| 1c300 | 6c 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 | l).;;;.gptel-curl.el.ends.here.. |
| 1c320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c400 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/gptel.el............ |
| 1c420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c460 | 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 |
| 1c480 | 30 34 31 34 37 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 35 34 00 20 30 00 00 00 | 0414752.00000000000.012754..0... |
| 1c4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c500 | 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................... |
| 1c520 | 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................... |
| 1c540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1c600 | 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 |
| 1c620 | 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 |
| 1c640 | 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 |
| 1c660 | 68 74 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | ht.(C).2023..Karthik.Chikmagalur |
| 1c680 | 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 |
| 1c6a0 | 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 2e 63 6f 6d 3e | .<karthik.chikmagalur@gmail.com> |
| 1c6c0 | 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 39 2e 38 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 | .;;.Version:.0.9.8.;;.Package-Re |
| 1c6e0 | 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 74 72 61 6e 73 69 65 | quires:.((emacs."27.1").(transie |
| 1c700 | 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 2e 34 2e 31 22 29 29 | nt."0.7.4").(compat."29.1.4.1")) |
| 1c720 | 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 2c 20 74 6f 6f 6c 73 | .;;.Keywords:.convenience,.tools |
| 1c740 | 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 6f 6d 2f 6b 61 72 74 | .;;.URL:.https://github.com/kart |
| 1c760 | 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 73 65 2d 49 64 65 6e | hink/gptel..;;.SPDX-License-Iden |
| 1c780 | 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 0a 3b 3b 20 54 68 69 | tifier:.GPL-3.0-or-later..;;.Thi |
| 1c7a0 | 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. |
| 1c7c0 | 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 |
| 1c7e0 | 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 |
| 1c800 | 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 |
| 1c820 | 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 |
| 1c840 | 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 |
| 1c860 | 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 |
| 1c880 | 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 |
| 1c8a0 | 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 |
| 1c8c0 | 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 |
| 1c8e0 | 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 |
| 1c900 | 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 |
| 1c920 | 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. |
| 1c940 | 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.;;. |
| 1c960 | 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 |
| 1c980 | 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 |
| 1c9a0 | 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 |
| 1c9c0 | 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 |
| 1c9e0 | 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 |
| 1ca00 | 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/>...;; |
| 1ca20 | 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 20 47 4e 55 20 45 6d | .This.file.is.NOT.part.of.GNU.Em |
| 1ca40 | 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 20 67 70 74 65 6c 20 | acs...;;;.Commentary:..;;.gptel. |
| 1ca60 | 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 65 20 4d 6f 64 65 6c | is.a.simple.Large.Language.Model |
| 1ca80 | 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 74 20 66 6f 72 20 6d | .chat.client,.with.support.for.m |
| 1caa0 | 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 6b 65 6e 64 73 2e 0a | ultiple.;;.models.and.backends.. |
| 1cac0 | 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 72 69 74 20 6f 66 20 | ;;.;;.It.works.in.the.spirit.of. |
| 1cae0 | 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 69 6d 65 20 61 6e 64 | Emacs,.available.at.any.time.and |
| 1cb00 | 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 65 6c 20 73 75 70 70 | .in.any.buffer..;;.;;.gptel.supp |
| 1cb20 | 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 73 20 43 68 61 74 47 | orts:.;;.;;.-.The.services.ChatG |
| 1cb40 | 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 70 69 63 20 41 49 2c | PT,.Azure,.Gemini,.Anthropic.AI, |
| 1cb60 | 20 41 6e 79 73 63 61 6c 65 2c 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 0a 3b 3b 20 20 20 50 65 72 | .Anyscale,.Together.ai,.;;...Per |
| 1cb80 | 70 6c 65 78 69 74 79 2c 20 41 6e 79 73 63 61 6c 65 2c 20 4f 70 65 6e 52 6f 75 74 65 72 2c 20 47 | plexity,.Anyscale,.OpenRouter,.G |
| 1cba0 | 72 6f 71 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 | roq,.PrivateGPT,.DeepSeek,.Cereb |
| 1cbc0 | 72 61 73 2c 0a 3b 3b 20 20 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 2c 20 4e 6f 76 69 74 61 20 | ras,.;;...Github.Models,.Novita. |
| 1cbe0 | 41 49 2c 20 78 41 49 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 | AI,.xAI.and.Kagi.(FastGPT.&.Summ |
| 1cc00 | 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 |
| 1cc20 | 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. |
| 1cc40 | 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. |
| 1cc60 | 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 |
| 1cc80 | 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 |
| 1cca0 | 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 |
| 1ccc0 | 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 |
| 1cce0 | 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 |
| 1cd00 | 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 |
| 1cd20 | 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 |
| 1cd40 | 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. |
| 1cd60 | 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 |
| 1cd80 | 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 |
| 1cda0 | 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 |
| 1cdc0 | 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 |
| 1cde0 | 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 |
| 1ce00 | 6c 69 74 69 65 73 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 6d 75 6c 74 69 2d 6d 6f 64 61 | lities..;;.-.Supports.multi-moda |
| 1ce20 | 6c 20 6d 6f 64 65 6c 73 20 28 73 65 6e 64 20 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 | l.models.(send.images,.documents |
| 1ce40 | 29 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e | )..;;.-.Supports."reasoning".con |
| 1ce60 | 74 65 6e 74 20 69 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 3b 3b 20 2d 20 53 61 76 65 | tent.in.LLM.responses..;;.-.Save |
| 1ce80 | 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 2f 4f 72 67 2f 54 | .chats.as.regular.Markdown/Org/T |
| 1cea0 | 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 6c 61 74 65 72 2e | ext.files.and.resume.them.later. |
| 1cec0 | 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 67 6f 20 62 61 63 6b 20 61 6e 64 20 65 64 69 74 20 79 | .;;.-.You.can.go.back.and.edit.y |
| 1cee0 | 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 74 73 20 6f 72 20 4c 4c 4d 20 72 65 73 70 | our.previous.prompts.or.LLM.resp |
| 1cf00 | 6f 6e 73 65 73 20 77 68 65 6e 0a 3b 3b 20 20 20 63 6f 6e 74 69 6e 75 69 6e 67 20 61 20 63 6f 6e | onses.when.;;...continuing.a.con |
| 1cf20 | 76 65 72 73 61 74 69 6f 6e 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 62 65 20 66 65 64 20 62 61 | versation...These.will.be.fed.ba |
| 1cf40 | 63 6b 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 3b 3b 20 2d 20 52 65 64 69 72 65 63 74 20 70 | ck.to.the.model..;;.-.Redirect.p |
| 1cf60 | 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 65 61 73 69 6c 79 0a 3b 3b 20 2d | rompts.and.responses.easily.;;.- |
| 1cf80 | 20 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 72 65 | .Rewrite,.refactor.or.fill.in.re |
| 1cfa0 | 67 69 6f 6e 73 20 69 6e 20 62 75 66 66 65 72 73 2e 0a 3b 3b 20 2d 20 57 72 69 74 65 20 79 6f 75 | gions.in.buffers..;;.-.Write.you |
| 1cfc0 | 72 20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 63 75 73 74 6f 6d 20 74 61 73 6b 73 20 | r.own.commands.for.custom.tasks. |
| 1cfe0 | 77 69 74 68 20 61 20 73 69 6d 70 6c 65 20 41 50 49 2e 0a 3b 3b 0a 3b 3b 20 52 65 71 75 69 72 65 | with.a.simple.API..;;.;;.Require |
| 1d000 | 6d 65 6e 74 73 20 66 6f 72 20 43 68 61 74 47 50 54 2c 20 41 7a 75 72 65 2c 20 47 65 6d 69 6e 69 | ments.for.ChatGPT,.Azure,.Gemini |
| 1d020 | 20 6f 72 20 4b 61 67 69 3a 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 6e 65 65 64 20 61 6e 20 61 70 | .or.Kagi:.;;.;;.-.You.need.an.ap |
| 1d040 | 70 72 6f 70 72 69 61 74 65 20 41 50 49 20 6b 65 79 2e 20 20 53 65 74 20 74 68 65 20 76 61 72 69 | propriate.API.key...Set.the.vari |
| 1d060 | 61 62 6c 65 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 74 6f 20 74 68 65 0a 3b 3b 20 20 | able.`gptel-api-key'.to.the.;;.. |
| 1d080 | 20 6b 65 79 20 6f 72 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6e 6f 20 61 72 67 75 | .key.or.to.a.function.of.no.argu |
| 1d0a0 | 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 28 49 74 | ments.that.returns.the.key...(It |
| 1d0c0 | 20 74 72 69 65 73 20 74 6f 0a 3b 3b 20 20 20 75 73 65 20 60 61 75 74 68 2d 73 6f 75 72 63 65 27 | .tries.to.;;...use.`auth-source' |
| 1d0e0 | 20 62 79 20 64 65 66 61 75 6c 74 29 0a 3b 3b 0a 3b 3b 20 43 68 61 74 47 50 54 20 69 73 20 63 6f | .by.default).;;.;;.ChatGPT.is.co |
| 1d100 | 6e 66 69 67 75 72 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 2e 20 20 46 6f 72 20 74 68 | nfigured.out.of.the.box...For.th |
| 1d120 | 65 20 6f 74 68 65 72 20 73 6f 75 72 63 65 73 3a 0a 3b 3b 0a 3b 3b 20 2d 20 46 6f 72 20 41 7a 75 | e.other.sources:.;;.;;.-.For.Azu |
| 1d140 | 72 65 3a 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 | re:.define.a.gptel-backend.with. |
| 1d160 | 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b | `gptel-make-azure',.which.see..; |
| 1d180 | 3b 20 2d 20 46 6f 72 20 47 65 6d 69 6e 69 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 | ;.-.For.Gemini:.define.a.gptel-b |
| 1d1a0 | 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 27 2c | ackend.with.`gptel-make-gemini', |
| 1d1c0 | 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 41 6e 74 68 72 6f 70 69 63 20 28 | .which.see..;;.-.For.Anthropic.( |
| 1d1e0 | 43 6c 61 75 64 65 29 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 | Claude):.define.a.gptel-backend. |
| 1d200 | 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 27 2c 0a 3b 3b 20 | with.`gptel-make-anthropic',.;;. |
| 1d220 | 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 54 6f 67 65 74 68 65 72 2e 61 | ..which.see..;;.-.For.Together.a |
| 1d240 | 69 2c 20 41 6e 79 73 63 61 6c 65 2c 20 47 72 6f 71 2c 20 4f 70 65 6e 52 6f 75 74 65 72 2c 20 44 | i,.Anyscale,.Groq,.OpenRouter,.D |
| 1d260 | 65 65 70 53 65 65 6b 2c 20 43 65 72 65 62 72 61 73 20 6f 72 0a 3b 3b 20 20 20 47 69 74 68 75 62 | eepSeek,.Cerebras.or.;;...Github |
| 1d280 | 20 4d 6f 64 65 6c 73 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 | .Models:.define.a.gptel-backend. |
| 1d2a0 | 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2c 20 77 68 69 63 68 20 | with.`gptel-make-openai',.which. |
| 1d2c0 | 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 50 72 69 76 61 74 65 47 50 54 3a 20 64 65 66 69 6e 65 | see..;;.-.For.PrivateGPT:.define |
| 1d2e0 | 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 72 69 76 | .a.backend.with.`gptel-make-priv |
| 1d300 | 61 74 65 67 70 74 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 50 65 72 | ategpt',.which.see..;;.-.For.Per |
| 1d320 | 70 6c 65 78 69 74 79 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 | plexity:.define.a.backend.with.` |
| 1d340 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 27 2c 20 77 68 69 63 68 20 73 65 | gptel-make-perplexity',.which.se |
| 1d360 | 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 44 65 65 70 73 65 65 6b 3a 20 64 65 66 69 6e 65 20 61 20 62 | e..;;.-.For.Deepseek:.define.a.b |
| 1d380 | 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b | ackend.with.`gptel-make-deepseek |
| 1d3a0 | 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 4b 61 67 69 3a 20 64 65 66 | ',.which.see..;;.-.For.Kagi:.def |
| 1d3c0 | 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 74 65 6c 2d | ine.a.gptel-backend.with.`gptel- |
| 1d3e0 | 6d 61 6b 65 2d 6b 61 67 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 0a 3b 3b 20 46 6f 72 | make-kagi',.which.see..;;.;;.For |
| 1d400 | 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 75 73 69 6e 67 20 4f 6c 6c 61 6d 61 2c 20 4c 6c 61 6d | .local.models.using.Ollama,.Llam |
| 1d420 | 61 2e 63 70 70 20 6f 72 20 47 50 54 34 41 6c 6c 3a 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 6d 6f | a.cpp.or.GPT4All:.;;.;;.-.The.mo |
| 1d440 | 64 65 6c 20 68 61 73 20 74 6f 20 62 65 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 61 6e 20 61 63 63 65 | del.has.to.be.running.on.an.acce |
| 1d460 | 73 73 69 62 6c 65 20 61 64 64 72 65 73 73 20 28 6f 72 20 6c 6f 63 61 6c 68 6f 73 74 29 0a 3b 3b | ssible.address.(or.localhost).;; |
| 1d480 | 20 2d 20 44 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 | .-.Define.a.gptel-backend.with.` |
| 1d4a0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 20 6f 72 20 60 67 70 74 65 6c 2d 6d 61 6b | gptel-make-ollama'.or.`gptel-mak |
| 1d4c0 | 65 2d 67 70 74 34 61 6c 6c 27 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d | e-gpt4all',.;;...which.see..;;.- |
| 1d4e0 | 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 4c 6c 61 6d 61 66 69 6c 65 73 3a 20 44 65 66 69 6e 65 | .Llama.cpp.or.Llamafiles:.Define |
| 1d500 | 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 |
| 1d520 | 65 2d 6f 70 65 6e 61 69 27 2e 0a 3b 3b 0a 3b 3b 20 43 6f 6e 73 75 6c 74 20 74 68 65 20 70 61 63 | e-openai'..;;.;;.Consult.the.pac |
| 1d540 | 6b 61 67 65 20 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 20 61 6e 64 20 6d 6f 72 | kage.README.for.examples.and.mor |
| 1d560 | 65 20 68 65 6c 70 20 77 69 74 68 20 63 6f 6e 66 69 67 75 72 69 6e 67 0a 3b 3b 20 62 61 63 6b 65 | e.help.with.configuring.;;.backe |
| 1d580 | 6e 64 73 2e 0a 3b 3b 0a 3b 3b 20 55 73 61 67 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 63 61 | nds..;;.;;.Usage:.;;.;;.gptel.ca |
| 1d5a0 | 6e 20 62 65 20 75 73 65 64 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 20 6f 72 20 69 6e 20 61 20 | n.be.used.in.any.buffer.or.in.a. |
| 1d5c0 | 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 54 68 65 0a 3b 3b 20 69 | dedicated.chat.buffer...The.;;.i |
| 1d5e0 | 6e 74 65 72 61 63 74 69 6f 6e 20 6d 6f 64 65 6c 20 69 73 20 73 69 6d 70 6c 65 3a 20 54 79 70 65 | nteraction.model.is.simple:.Type |
| 1d600 | 20 69 6e 20 61 20 71 75 65 72 79 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 77 69 6c | .in.a.query.and.the.response.wil |
| 1d620 | 6c 20 62 65 0a 3b 3b 20 69 6e 73 65 72 74 65 64 20 62 65 6c 6f 77 2e 20 20 59 6f 75 20 63 61 6e | l.be.;;.inserted.below...You.can |
| 1d640 | 20 63 6f 6e 74 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 | .continue.the.conversation.by.ty |
| 1d660 | 70 69 6e 67 20 62 65 6c 6f 77 20 74 68 65 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b | ping.below.the.;;.response..;;.; |
| 1d680 | 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 0a 3b 3b 0a | ;.To.use.this.in.any.buffer:.;;. |
| 1d6a0 | 3b 3b 20 2d 20 43 61 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 74 6f 20 73 65 6e 64 20 74 | ;;.-.Call.`gptel-send'.to.send.t |
| 1d6c0 | 68 65 20 62 75 66 66 65 72 27 73 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f | he.buffer's.text.up.to.the.curso |
| 1d6e0 | 72 2e 20 20 53 65 6c 65 63 74 20 61 0a 3b 3b 20 20 20 72 65 67 69 6f 6e 20 74 6f 20 73 65 6e 64 | r...Select.a.;;...region.to.send |
| 1d700 | 20 6f 6e 6c 79 20 74 68 65 20 72 65 67 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 | .only.the.region..;;.;;.-.You.ca |
| 1d720 | 6e 20 73 65 6c 65 63 74 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 | n.select.previous.prompts.and.re |
| 1d740 | 73 70 6f 6e 73 65 73 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 | sponses.to.continue.the.conversa |
| 1d760 | 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 43 61 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 | tion..;;.;;.-.Call.`gptel-send'. |
| 1d780 | 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 61 63 63 65 73 73 | with.a.prefix.argument.to.access |
| 1d7a0 | 20 61 20 6d 65 6e 75 20 77 68 65 72 65 20 79 6f 75 20 63 61 6e 20 73 65 74 0a 3b 3b 20 20 20 79 | .a.menu.where.you.can.set.;;...y |
| 1d7c0 | 6f 75 72 20 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 | our.backend,.model.and.other.par |
| 1d7e0 | 61 6d 65 74 65 72 73 2c 20 6f 72 20 74 6f 20 72 65 64 69 72 65 63 74 20 74 68 65 0a 3b 3b 20 20 | ameters,.or.to.redirect.the.;;.. |
| 1d800 | 20 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 74 | .prompt/response..;;.;;.To.use.t |
| 1d820 | 68 69 73 20 69 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 62 75 66 66 65 72 3a 0a 3b 3b 20 0a 3b | his.in.a.dedicated.buffer:.;;..; |
| 1d840 | 3b 20 2d 20 4d 2d 78 20 67 70 74 65 6c 3a 20 53 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 | ;.-.M-x.gptel:.Start.a.chat.sess |
| 1d860 | 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 49 6e 20 74 68 65 20 63 68 61 74 20 73 65 73 73 69 6f 6e | ion..;;.;;.-.In.the.chat.session |
| 1d880 | 3a 20 50 72 65 73 73 20 60 43 2d 63 20 52 45 54 27 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 29 | :.Press.`C-c.RET'.(`gptel-send') |
| 1d8a0 | 20 74 6f 20 73 65 6e 64 20 79 6f 75 72 20 70 72 6f 6d 70 74 2e 0a 3b 3b 20 20 20 55 73 65 20 61 | .to.send.your.prompt..;;...Use.a |
| 1d8c0 | 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 28 60 43 2d 75 20 43 2d 63 20 52 45 54 27 29 | .prefix.argument.(`C-u.C-c.RET') |
| 1d8e0 | 20 74 6f 20 61 63 63 65 73 73 20 61 20 6d 65 6e 75 2e 20 20 49 6e 20 74 68 69 73 20 6d 65 6e 75 | .to.access.a.menu...In.this.menu |
| 1d900 | 20 79 6f 75 0a 3b 3b 20 20 20 63 61 6e 20 73 65 74 20 63 68 61 74 20 70 61 72 61 6d 65 74 65 72 | .you.;;...can.set.chat.parameter |
| 1d920 | 73 20 6c 69 6b 65 20 74 68 65 20 73 79 73 74 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 63 | s.like.the.system.directives,.ac |
| 1d940 | 74 69 76 65 20 62 61 63 6b 65 6e 64 20 6f 72 0a 3b 3b 20 20 20 6d 6f 64 65 6c 2c 20 6f 72 20 63 | tive.backend.or.;;...model,.or.c |
| 1d960 | 68 6f 6f 73 65 20 74 6f 20 72 65 64 69 72 65 63 74 20 74 68 65 20 69 6e 70 75 74 20 6f 72 20 6f | hoose.to.redirect.the.input.or.o |
| 1d980 | 75 74 70 75 74 20 65 6c 73 65 77 68 65 72 65 20 28 73 75 63 68 20 61 73 20 74 6f 20 74 68 65 0a | utput.elsewhere.(such.as.to.the. |
| 1d9a0 | 3b 3b 20 20 20 6b 69 6c 6c 20 72 69 6e 67 20 6f 72 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 29 | ;;...kill.ring.or.the.echo.area) |
| 1d9c0 | 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 73 61 76 65 20 74 68 69 73 20 62 75 66 66 | ..;;.;;.-.You.can.save.this.buff |
| 1d9e0 | 65 72 20 74 6f 20 61 20 66 69 6c 65 2e 20 20 57 68 65 6e 20 6f 70 65 6e 69 6e 67 20 74 68 69 73 | er.to.a.file...When.opening.this |
| 1da00 | 20 66 69 6c 65 2c 20 74 75 72 6e 20 6f 6e 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 | .file,.turn.on.;;...`gptel-mode' |
| 1da20 | 20 62 65 66 6f 72 65 20 65 64 69 74 69 6e 67 20 69 74 20 74 6f 20 72 65 73 74 6f 72 65 20 74 68 | .before.editing.it.to.restore.th |
| 1da40 | 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 73 74 61 74 65 20 61 6e 64 0a 3b 3b 20 20 20 63 6f | e.conversation.state.and.;;...co |
| 1da60 | 6e 74 69 6e 75 65 20 63 68 61 74 74 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 2d 20 54 6f 20 69 6e 63 6c | ntinue.chatting..;;.;;.-.To.incl |
| 1da80 | 75 64 65 20 6d 65 64 69 61 20 66 69 6c 65 73 20 77 69 74 68 20 79 6f 75 72 20 72 65 71 75 65 73 | ude.media.files.with.your.reques |
| 1daa0 | 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 | t,.you.can.add.them.to.the.conte |
| 1dac0 | 78 74 0a 3b 3b 20 20 20 28 64 65 73 63 72 69 62 65 64 20 6e 65 78 74 29 2c 20 6f 72 20 69 6e 63 | xt.;;...(described.next),.or.inc |
| 1dae0 | 6c 75 64 65 20 74 68 65 6d 20 61 73 20 6c 69 6e 6b 73 20 69 6e 20 4f 72 67 20 6f 72 20 4d 61 72 | lude.them.as.links.in.Org.or.Mar |
| 1db00 | 6b 64 6f 77 6e 20 6d 6f 64 65 20 63 68 61 74 0a 3b 3b 20 20 20 62 75 66 66 65 72 73 2e 20 20 53 | kdown.mode.chat.;;...buffers...S |
| 1db20 | 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 69 73 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 | ending.media.is.disabled.by.defa |
| 1db40 | 75 6c 74 2c 20 79 6f 75 20 63 61 6e 20 74 75 72 6e 20 69 74 20 6f 6e 20 67 6c 6f 62 61 6c 6c 79 | ult,.you.can.turn.it.on.globally |
| 1db60 | 0a 3b 3b 20 20 20 76 69 61 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 27 2c 20 6f | .;;...via.`gptel-track-media',.o |
| 1db80 | 72 20 6c 6f 63 61 6c 6c 79 20 69 6e 20 61 20 63 68 61 74 20 62 75 66 66 65 72 20 76 69 61 20 74 | r.locally.in.a.chat.buffer.via.t |
| 1dba0 | 68 65 20 68 65 61 64 65 72 20 6c 69 6e 65 2e 0a 3b 3b 20 0a 3b 3b 20 49 6e 63 6c 75 64 65 20 6d | he.header.line..;;..;;.Include.m |
| 1dbc0 | 6f 72 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 71 75 65 73 74 73 3a 0a 3b 3b 0a 3b 3b | ore.context.with.requests:.;;.;; |
| 1dbe0 | 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 | .If.you.want.to.provide.the.LLM. |
| 1dc00 | 77 69 74 68 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 61 | with.more.context,.you.can.add.a |
| 1dc20 | 72 62 69 74 72 61 72 79 0a 3b 3b 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 2c 20 66 69 | rbitrary.;;.regions,.buffers,.fi |
| 1dc40 | 6c 65 73 20 6f 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 | les.or.directories.to.the.query. |
| 1dc60 | 77 69 74 68 20 60 67 70 74 65 6c 2d 61 64 64 27 2e 20 20 54 6f 20 61 64 64 0a 3b 3b 20 74 65 78 | with.`gptel-add'...To.add.;;.tex |
| 1dc80 | 74 20 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2c 20 63 61 6c 6c 20 60 67 70 74 65 6c 2d 61 64 | t.or.media.files,.call.`gptel-ad |
| 1dca0 | 64 27 20 69 6e 20 44 69 72 65 64 20 6f 72 20 75 73 65 20 74 68 65 20 64 65 64 69 63 61 74 65 64 | d'.in.Dired.or.use.the.dedicated |
| 1dcc0 | 0a 3b 3b 20 60 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 27 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 | .;;.`gptel-add-file'..;;.;;.You. |
| 1dce0 | 63 61 6e 20 61 6c 73 6f 20 61 64 64 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 67 70 74 65 6c 27 | can.also.add.context.from.gptel' |
| 1dd00 | 73 20 6d 65 6e 75 20 69 6e 73 74 65 61 64 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 | s.menu.instead.(`gptel-send'.wit |
| 1dd20 | 68 20 61 0a 3b 3b 20 70 72 65 66 69 78 20 61 72 67 29 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 65 | h.a.;;.prefix.arg),.as.well.as.e |
| 1dd40 | 78 61 6d 69 6e 65 20 6f 72 20 6d 6f 64 69 66 79 20 63 6f 6e 74 65 78 74 2e 0a 3b 3b 0a 3b 3b 20 | xamine.or.modify.context..;;.;;. |
| 1dd60 | 57 68 65 6e 20 63 6f 6e 74 65 78 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 67 70 74 65 6c | When.context.is.available,.gptel |
| 1dd80 | 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 69 74 20 77 69 74 68 20 65 61 63 68 20 4c 4c 4d 20 71 | .will.include.it.with.each.LLM.q |
| 1dda0 | 75 65 72 79 2e 0a 3b 3b 0a 3b 3b 20 52 65 77 72 69 74 65 20 69 6e 74 65 72 66 61 63 65 0a 3b 3b | uery..;;.;;.Rewrite.interface.;; |
| 1ddc0 | 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 67 69 6f 6e | .;;.In.any.buffer:.with.a.region |
| 1dde0 | 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 72 6f 73 65 | .selected,.you.can.rewrite.prose |
| 1de00 | 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 6e 20 74 68 | ,.refactor.code.;;.or.fill.in.th |
| 1de20 | 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 65 20 76 69 | e.region...This.is.accessible.vi |
| 1de40 | 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 66 72 6f 6d | a.`gptel-rewrite',.and.also.from |
| 1de60 | 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 3b 0a 3b 3b | .;;.the.`gptel-send'.menu..;;.;; |
| 1de80 | 20 67 70 74 65 6c 20 69 6e 20 4f 72 67 20 6d 6f 64 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 | .gptel.in.Org.mode:.;;.;;.gptel. |
| 1dea0 | 6f 66 66 65 72 73 20 61 20 66 65 77 20 65 78 74 72 61 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 20 | offers.a.few.extra.conveniences. |
| 1dec0 | 69 6e 20 4f 72 67 20 6d 6f 64 65 3a 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 6c 69 6d | in.Org.mode:.;;.;;.-.You.can.lim |
| 1dee0 | 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 20 61 | it.the.conversation.context.to.a |
| 1df00 | 6e 20 4f 72 67 20 68 65 61 64 69 6e 67 20 77 69 74 68 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6f | n.Org.heading.with.;;...`gptel-o |
| 1df20 | 72 67 2d 73 65 74 2d 74 6f 70 69 63 27 2e 0a 3b 3b 20 20 20 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 | rg-set-topic'..;;....;;.-.You.ca |
| 1df40 | 6e 20 68 61 76 65 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 69 | n.have.branching.conversations.i |
| 1df60 | 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 77 68 65 72 65 20 65 61 63 68 20 68 69 65 72 61 72 63 68 69 | n.Org.mode,.where.each.hierarchi |
| 1df80 | 63 61 6c 0a 3b 3b 20 20 20 6f 75 74 6c 69 6e 65 20 70 61 74 68 20 74 68 72 6f 75 67 68 20 74 68 | cal.;;...outline.path.through.th |
| 1dfa0 | 65 20 64 6f 63 75 6d 65 6e 74 20 69 73 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 76 65 72 73 | e.document.is.a.separate.convers |
| 1dfc0 | 61 74 69 6f 6e 20 62 72 61 6e 63 68 2e 0a 3b 3b 20 20 20 53 65 65 20 74 68 65 20 76 61 72 69 61 | ation.branch..;;...See.the.varia |
| 1dfe0 | 62 6c 65 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 | ble.`gptel-org-branching-context |
| 1e000 | 27 2e 0a 3b 3b 20 20 20 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 64 65 63 6c 61 72 65 20 74 68 | '..;;....;;.-.You.can.declare.th |
| 1e020 | 65 20 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 | e.gptel.model,.backend,.temperat |
| 1e040 | 75 72 65 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 3b 3b 20 20 20 6f 74 68 | ure,.system.message.and.;;...oth |
| 1e060 | 65 72 20 70 61 72 61 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 | er.parameters.as.Org.properties. |
| 1e080 | 77 69 74 68 20 74 68 65 20 63 6f 6d 6d 61 6e 64 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6f 72 67 | with.the.command.;;...`gptel-org |
| 1e0a0 | 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 73 27 2e 20 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 | -set-properties'...gptel.queries |
| 1e0c0 | 20 75 6e 64 65 72 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 68 65 61 64 69 6e 67 | .under.the.corresponding.heading |
| 1e0e0 | 0a 3b 3b 20 20 20 77 69 6c 6c 20 61 6c 77 61 79 73 20 75 73 65 20 74 68 65 73 65 20 73 65 74 74 | .;;...will.always.use.these.sett |
| 1e100 | 69 6e 67 73 2c 20 61 6c 6c 6f 77 69 6e 67 20 79 6f 75 20 74 6f 20 63 72 65 61 74 65 20 6d 6f 73 | ings,.allowing.you.to.create.mos |
| 1e120 | 74 6c 79 20 72 65 70 72 6f 64 75 63 69 62 6c 65 0a 3b 3b 20 20 20 4c 4c 4d 20 63 68 61 74 20 6e | tly.reproducible.;;...LLM.chat.n |
| 1e140 | 6f 74 65 62 6f 6f 6b 73 2e 0a 3b 3b 0a 3b 3b 20 46 69 6e 61 6c 6c 79 2c 20 67 70 74 65 6c 20 6f | otebooks..;;.;;.Finally,.gptel.o |
| 1e160 | 66 66 65 72 73 20 61 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 41 50 49 20 66 6f 72 20 | ffers.a.general.purpose.API.for. |
| 1e180 | 77 72 69 74 69 6e 67 20 4c 4c 4d 20 69 6e 65 72 61 63 74 69 6f 6e 73 20 74 68 61 74 0a 3b 3b 20 | writing.LLM.ineractions.that.;;. |
| 1e1a0 | 73 75 69 74 20 79 6f 75 72 20 77 6f 72 6b 66 6c 6f 77 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d | suit.your.workflow...See.`gptel- |
| 1e1c0 | 72 65 71 75 65 73 74 27 2c 20 61 6e 64 20 60 67 70 74 65 6c 2d 66 73 6d 27 20 66 6f 72 20 6d 6f | request',.and.`gptel-fsm'.for.mo |
| 1e1e0 | 72 65 20 61 64 76 61 6e 63 65 64 0a 3b 3b 20 75 73 61 67 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a | re.advanced.;;.usage...;;;.Code: |
| 1e200 | 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 6d 6f 64 65 | .(declare-function.markdown-mode |
| 1e220 | 20 22 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | ."markdown-mode").(declare-funct |
| 1e240 | 69 6f 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 22 67 70 74 | ion.gptel-curl-get-response."gpt |
| 1e260 | 65 6c 2d 63 75 72 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 | el-curl").(declare-function.gpte |
| 1e280 | 6c 2d 6d 65 6e 75 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 | l-menu."gptel-transient").(decla |
| 1e2a0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 20 | re-function.gptel-system-prompt. |
| 1e2c0 | 22 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 | "gptel-transient").(declare-func |
| 1e2e0 | 74 69 6f 6e 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e | tion.gptel-tools."gptel-transien |
| 1e300 | 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 75 6c 73 65 2d 6d 6f 6d 65 | t").(declare-function.pulse-mome |
| 1e320 | 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 22 70 75 6c 73 65 22 29 0a | ntary-highlight-region."pulse"). |
| 1e340 | 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 6d 61 6b 65 2d 63 6c | .(declare-function.ediff-make-cl |
| 1e360 | 6f 6e 65 64 2d 62 75 66 66 65 72 20 22 65 64 69 66 66 2d 75 74 69 6c 22 29 0a 28 64 65 63 6c 61 | oned-buffer."ediff-util").(decla |
| 1e380 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e | re-function.ediff-regions-intern |
| 1e3a0 | 61 6c 20 22 65 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 68 6c | al."ediff").(declare-function.hl |
| 1e3c0 | 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 20 22 68 6c 2d 6c 69 6e 65 22 29 0a 0a 28 64 65 63 | -line-highlight."hl-line")..(dec |
| 1e3e0 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 73 63 61 70 65 2d 63 6f 64 65 2d 69 6e | lare-function.org-escape-code-in |
| 1e400 | 2d 73 74 72 69 6e 67 20 22 6f 72 67 2d 73 72 63 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | -string."org-src").(declare-func |
| 1e420 | 74 69 6f 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 74 20 22 67 | tion.gptel-org--create-prompt."g |
| 1e440 | 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 70 74 | ptel-org").(declare-function.gpt |
| 1e460 | 65 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 | el-org-set-topic."gptel-org").(d |
| 1e480 | 65 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 | eclare-function.gptel-org--save- |
| 1e4a0 | 73 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 | state."gptel-org").(declare-func |
| 1e4c0 | 74 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 | tion.gptel-org--restore-state."g |
| 1e4e0 | 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 70 74 | ptel-org").(declare-function.gpt |
| 1e500 | 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 72 67 | el--stream-convert-markdown->org |
| 1e520 | 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 69 6f 6e 20 | ."gptel-org").(declare-function. |
| 1e540 | 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 22 67 70 | gptel--convert-markdown->org."gp |
| 1e560 | 74 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 | tel-org").(define-obsolete-funct |
| 1e580 | 69 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 | ion-alias...'gptel-set-topic.'gp |
| 1e5a0 | 74 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 | tel-org-set-topic."0.7.5")..(eva |
| 1e5c0 | 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 73 75 62 72 2d | l-when-compile...(require.'subr- |
| 1e5e0 | 78 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 | x)).(require.'cl-lib).(require.' |
| 1e600 | 63 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 | compat.nil.t).(require.'url).(re |
| 1e620 | 71 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 | quire.'map).(require.'text-prope |
| 1e640 | 72 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 | rty-search).(require.'cl-generic |
| 1e660 | 29 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 | ).(require.'gptel-openai)....;;; |
| 1e680 | 20 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 | .User.options..(defgroup.gptel.n |
| 1e6a0 | 69 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 | il..."Interact.with.LLMs.from.an |
| 1e6c0 | 79 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 | ywhere.in.Emacs."...:group.'hype |
| 1e6e0 | 72 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 | rmedia)..(defcustom.gptel-proxy. |
| 1e700 | 22 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 | ""..."Path.to.a.proxy.to.use.for |
| 1e720 | 20 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 | .gptel.interactions..Passed.to.c |
| 1e740 | 75 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 | url.via.--proxy.arg,.for.example |
| 1e760 | 20 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 | .\"proxy.yourorg.com:80\".Leave. |
| 1e780 | 69 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 | it.empty.if.you.don't.use.a.prox |
| 1e7a0 | 79 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 | y."...:type.'string)..(defcustom |
| 1e7c0 | 20 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 | .gptel-api-key.#'gptel-api-key-f |
| 1e7e0 | 72 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 | rom-auth-source..."An.API.key.(s |
| 1e800 | 74 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 | tring).for.the.default.LLM.backe |
| 1e820 | 6e 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 | nd...OpenAI.by.default...Can.als |
| 1e840 | 6f 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 | o.be.a.function.of.no.arguments. |
| 1e860 | 74 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 | that.returns.an.API.key.(more.se |
| 1e880 | 63 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 | cure).for.the.active.backend.".. |
| 1e8a0 | 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 73 74 72 69 6e | .:type.'(choice...........(strin |
| 1e8c0 | 67 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 | g.:tag."API.key")...........(fun |
| 1e8e0 | 63 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 | ction.:tag."Function.that.return |
| 1e900 | 73 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 | s.the.API.key")))..(defcustom.gp |
| 1e920 | 74 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 | tel-stream.t..."Stream.responses |
| 1e940 | 20 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 | .from.the.LLM.as.they.are.receiv |
| 1e960 | 65 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 | ed...This.option.is.ignored.unle |
| 1e980 | 73 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 | ss.-.the.LLM.backend.supports.st |
| 1e9a0 | 72 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 | reaming,.and.-.Curl.is.in.use.(s |
| 1e9c0 | 65 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 | ee.`gptel-use-curl')..When.set.t |
| 1e9e0 | 6f 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 | o.nil,.Emacs.waits.for.the.full. |
| 1ea00 | 72 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 | response.and.inserts.it.all.at.o |
| 1ea20 | 6e 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 | nce...This.wait.is.asynchronous. |
| 1ea40 | 0a 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 | ..\='tis.a.bit.silly."...:type.' |
| 1ea60 | 62 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 | boolean)..(defcustom.gptel-use-c |
| 1ea80 | 75 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 | url.(and.(executable-find."curl" |
| 1eaa0 | 29 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 | ).t)..."Whether.gptel.should.pre |
| 1eac0 | 66 65 72 20 43 75 72 6c 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 | fer.Curl.when.available."...:typ |
| 1eae0 | 65 20 27 62 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 6f 72 | e.'boolean)..(defcustom.gptel-or |
| 1eb00 | 67 2d 63 6f 6e 76 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 | g-convert-response.t..."Whether. |
| 1eb20 | 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 63 6f 6e 76 65 72 74 20 4d 61 72 6b 64 6f 77 6e 20 72 65 | gptel.should.convert.Markdown.re |
| 1eb40 | 73 70 6f 6e 73 65 73 20 74 6f 20 4f 72 67 20 6d 61 72 6b 75 70 2e 0a 0a 54 68 69 73 20 6f 6e 6c | sponses.to.Org.markup...This.onl |
| 1eb60 | 79 20 61 66 66 65 63 74 73 20 72 65 71 75 65 73 74 73 20 6f 72 69 67 69 6e 61 74 69 6e 67 20 66 | y.affects.requests.originating.f |
| 1eb80 | 72 6f 6d 20 4f 72 67 20 6d 6f 64 65 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 | rom.Org.mode.buffers."...:type.' |
| 1eba0 | 62 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 63 75 72 6c 2d | boolean)..(defcustom.gptel-curl- |
| 1ebc0 | 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f 6c 64 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 | file-size-threshold...(if.(memq. |
| 1ebe0 | 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 2d 64 6f 73 29 | system-type.'(windows-nt.ms-dos) |
| 1ec00 | 29 20 33 32 37 36 36 20 31 33 30 30 30 30 29 0a 20 20 22 53 69 7a 65 20 74 68 72 65 73 68 6f 6c | ).32766.130000)..."Size.threshol |
| 1ec20 | 64 20 66 6f 72 20 75 73 69 6e 67 20 66 69 6c 65 20 69 6e 70 75 74 20 77 69 74 68 20 43 75 72 6c | d.for.using.file.input.with.Curl |
| 1ec40 | 2e 0a 0a 53 70 65 63 69 66 69 65 73 20 74 68 65 20 73 69 7a 65 20 74 68 72 65 73 68 6f 6c 64 20 | ...Specifies.the.size.threshold. |
| 1ec60 | 66 6f 72 20 77 68 65 6e 20 74 6f 20 75 73 65 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 | for.when.to.use.a.temporary.file |
| 1ec80 | 20 74 6f 20 70 61 73 73 20 64 61 74 61 20 74 6f 0a 43 75 72 6c 20 69 6e 20 47 50 54 65 6c 20 71 | .to.pass.data.to.Curl.in.GPTel.q |
| 1eca0 | 75 65 72 69 65 73 2e 20 20 49 66 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 64 61 74 61 | ueries...If.the.size.of.the.data |
| 1ecc0 | 20 74 6f 20 62 65 20 73 65 6e 74 20 65 78 63 65 65 64 73 20 74 68 69 73 0a 74 68 72 65 73 68 6f | .to.be.sent.exceeds.this.thresho |
| 1ece0 | 6c 64 2c 20 74 68 65 20 64 61 74 61 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 61 20 74 65 6d | ld,.the.data.is.written.to.a.tem |
| 1ed00 | 70 6f 72 61 72 79 20 66 69 6c 65 20 61 6e 64 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 75 | porary.file.and.passed.to.Curl.u |
| 1ed20 | 73 69 6e 67 20 74 68 65 0a 60 2d 2d 64 61 74 61 2d 62 69 6e 61 72 79 27 20 6f 70 74 69 6f 6e 20 | sing.the.`--data-binary'.option. |
| 1ed40 | 77 69 74 68 20 61 20 66 69 6c 65 20 72 65 66 65 72 65 6e 63 65 2e 20 20 4f 74 68 65 72 77 69 73 | with.a.file.reference...Otherwis |
| 1ed60 | 65 2c 20 74 68 65 20 64 61 74 61 20 69 73 20 70 61 73 73 65 64 0a 64 69 72 65 63 74 6c 79 20 61 | e,.the.data.is.passed.directly.a |
| 1ed80 | 73 20 61 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 54 68 65 20 | s.a.command-line.argument...The. |
| 1eda0 | 76 61 6c 75 65 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 69 6e 67 | value.is.an.integer.representing |
| 1edc0 | 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 62 79 74 65 73 2e 0a 0a 41 64 6a 75 73 74 69 6e 67 | .the.number.of.bytes...Adjusting |
| 1ede0 | 20 74 68 69 73 20 76 61 6c 75 65 20 6d 61 79 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 64 65 70 | .this.value.may.be.necessary.dep |
| 1ee00 | 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 61 6e 64 20 74 68 | ending.on.the.environment.and.th |
| 1ee20 | 65 20 74 79 70 69 63 61 6c 20 73 69 7a 65 20 6f 66 20 74 68 65 20 64 61 74 61 20 62 65 69 6e 67 | e.typical.size.of.the.data.being |
| 1ee40 | 20 73 65 6e 74 20 69 6e 20 47 50 54 65 6c 20 71 75 65 72 69 65 73 2e 0a 41 20 6c 61 72 67 65 72 | .sent.in.GPTel.queries..A.larger |
| 1ee60 | 20 76 61 6c 75 65 20 6d 61 79 20 69 6d 70 72 6f 76 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 | .value.may.improve.performance.b |
| 1ee80 | 79 20 61 76 6f 69 64 69 6e 67 20 74 68 65 20 6f 76 65 72 68 65 61 64 20 6f 66 20 63 72 65 61 74 | y.avoiding.the.overhead.of.creat |
| 1eea0 | 69 6e 67 0a 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 73 20 66 6f 72 20 73 6d 61 6c 6c 20 64 61 | ing.temporary.files.for.small.da |
| 1eec0 | 74 61 20 70 61 79 6c 6f 61 64 73 2c 20 77 68 69 6c 65 20 61 20 73 6d 61 6c 6c 65 72 20 76 61 6c | ta.payloads,.while.a.smaller.val |
| 1eee0 | 75 65 20 6d 61 79 20 62 65 20 6e 65 65 64 65 64 0a 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d | ue.may.be.needed.if.the.command- |
| 1ef00 | 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 20 73 69 7a 65 20 69 73 20 6c 69 6d 69 74 65 64 20 62 79 | line.argument.size.is.limited.by |
| 1ef20 | 20 74 68 65 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 0a 54 68 65 20 64 65 66 61 | .the.operating.system...The.defa |
| 1ef40 | 75 6c 74 20 66 6f 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 | ult.for.windows.comes.from.Micro |
| 1ef60 | 73 6f 66 74 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6c 6f 63 61 74 65 64 20 68 65 72 65 3a | soft.documentation.located.here: |
| 1ef80 | 0a 68 74 74 70 73 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 | .https://learn.microsoft.com/en- |
| 1efa0 | 75 73 2f 77 69 6e 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 | us/windows/win32/api/processthre |
| 1efc0 | 61 64 73 61 70 69 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 | adsapi/nf-processthreadsapi-crea |
| 1efe0 | 74 65 70 72 6f 63 65 73 73 61 22 0a 20 20 3a 74 79 70 65 20 27 6e 61 74 6e 75 6d 29 0a 0a 28 64 | teprocessa"...:type.'natnum)..(d |
| 1f000 | 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f | efcustom.gptel-prompt-filter-hoo |
| 1f020 | 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 74 6f 20 6d 6f 64 69 66 79 20 74 68 65 20 | k.nil..."Hook.run.to.modify.the. |
| 1f040 | 62 75 66 66 65 72 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 2e 0a 0a 54 68 69 73 20 68 6f 6f | buffer.before.sending...This.hoo |
| 1f060 | 6b 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 61 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 | k.is.called.in.a.temporary.buffe |
| 1f080 | 72 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 74 65 78 74 20 74 6f 0a 62 65 20 73 65 6e 74 | r.containing.the.text.to.be.sent |
| 1f0a0 | 2c 20 77 69 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 | ,.with.the.cursor.at.the.end.of. |
| 1f0c0 | 74 68 65 20 70 72 6f 6d 70 74 2e 20 20 59 6f 75 20 63 61 6e 20 75 73 65 0a 69 74 20 74 6f 20 6d | the.prompt...You.can.use.it.to.m |
| 1f0e0 | 6f 64 69 66 79 20 74 68 65 20 62 75 66 66 65 72 20 61 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 45 | odify.the.buffer.as.required...E |
| 1f100 | 78 61 6d 70 6c 65 3a 20 41 20 74 79 70 69 63 61 6c 20 75 73 65 20 63 61 73 65 20 6d 69 67 68 74 | xample:.A.typical.use.case.might |
| 1f120 | 20 62 65 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 | .be.to.search.for.occurrences.of |
| 1f140 | 0a 24 28 63 6d 64 29 20 61 6e 64 20 72 65 70 6c 61 63 65 20 69 74 20 77 69 74 68 20 74 68 65 20 | .$(cmd).and.replace.it.with.the. |
| 1f160 | 6f 75 74 70 75 74 20 6f 66 20 74 68 65 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 63 6d 64 2c | output.of.the.shell.command.cmd, |
| 1f180 | 0a 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f 20 73 65 6e 64 20 74 68 65 20 6f 75 74 70 | .making.it.easy.to.send.the.outp |
| 1f1a0 | 75 74 20 6f 66 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 74 68 65 20 4c 4c 4d 2e | ut.of.shell.commands.to.the.LLM. |
| 1f1c0 | 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 68 6f 6f 6b 29 | "...:group.'gptel...:type.'hook) |
| 1f1e0 | 0a 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 | ..(defcustom.gptel-post-request- |
| 1f200 | 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 73 65 6e 64 69 | hook.nil..."Hook.run.after.sendi |
| 1f220 | 6e 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 | ng.a.gptel.request...This.runs.( |
| 1f240 | 70 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 | possibly).before.any.response.is |
| 1f260 | 20 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 | .received."...:type.'hook)..;;.T |
| 1f280 | 4f 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 | ODO(v1.0):.Remove.this..(defvar. |
| 1f2a0 | 67 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 | gptel-response-filter-functions. |
| 1f2c0 | 6e 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 | nil).(make-obsolete-variable..'g |
| 1f2e0 | 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 0a 20 | ptel-response-filter-functions.. |
| 1f300 | 22 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 | "Response.filtering.is.no.longer |
| 1f320 | 20 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 | .supported.in.gptel...To.toggle. |
| 1f340 | 6d 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 | markdown.to.Org.conversion,.see. |
| 1f360 | 60 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 | `gptel-org-convert-response'...T |
| 1f380 | 6f 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 | o.filter.LLM.response.text,.eith |
| 1f3a0 | 65 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 | er.use.`gptel-request'.with.a.cu |
| 1f3c0 | 73 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 | stom.callback,.or.use.`gptel-pos |
| 1f3e0 | 74 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 | t-response-functions'.".."0.9.7" |
| 1f400 | 29 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 | )..(defcustom.gptel-pre-response |
| 1f420 | 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 72 65 20 69 6e 73 | -hook.nil..."Hook.run.before.ins |
| 1f440 | 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 74 6f 20 74 68 65 | erting.the.LLM.response.into.the |
| 1f460 | 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 6b 20 69 73 20 63 | .current.buffer...This.hook.is.c |
| 1f480 | 61 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 | alled.in.the.buffer.where.the.LL |
| 1f4a0 | 4d 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 | M.response.will.be.inserted...No |
| 1f4c0 | 74 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 | te:.this.hook.only.runs.if.the.r |
| 1f4e0 | 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 6f 6f 6b 29 | equest.succeeds."...:type.'hook) |
| 1f500 | 0a 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 | ..(define-obsolete-variable-alia |
| 1f520 | 73 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 | s...'gptel-post-response-hook.'g |
| 1f540 | 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 0a 20 20 22 | ptel-post-response-functions..." |
| 1f560 | 30 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 | 0.6.0"..."Post-response.function |
| 1f580 | 73 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 | s.are.now.called.with.two.argume |
| 1f5a0 | 6e 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 | nts:.the.start.and.end.buffer.po |
| 1f5c0 | 73 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 | sitions.of.the.response.")..(def |
| 1f5e0 | 63 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 | custom.gptel-post-response-funct |
| 1f600 | 69 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 | ions.nil..."Abnormal.hook.run.af |
| 1f620 | 74 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 | ter.inserting.the.LLM.response.i |
| 1f640 | 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 54 68 69 73 20 68 6f | nto.the.current.buffer...This.ho |
| 1f660 | 6f 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 | ok.is.called.in.the.buffer.to.wh |
| 1f680 | 69 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 | ich.the.LLM.response.is.sent,.an |
| 1f6a0 | 64 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 | d.after.the.full.response.has.be |
| 1f6c0 | 65 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 | en.inserted...Each.function.is.c |
| 1f6e0 | 61 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 | alled.with.two.arguments:.the.re |
| 1f700 | 73 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 | sponse.beginning.and.end.positio |
| 1f720 | 6e 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 | ns...Note:.this.hook.runs.even.i |
| 1f740 | 66 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 | f.the.request.fails...In.this.ca |
| 1f760 | 73 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 | se.the.response.beginning.and.en |
| 1f780 | 64 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 | d.positions.are.both.the.cursor. |
| 1f7a0 | 70 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 | position.at.the.time.of.the.requ |
| 1f7c0 | 65 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 | est."...:type.'hook)..;;.(defcus |
| 1f7e0 | 74 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 | tom.gptel-pre-stream-insert-hook |
| 1f800 | 20 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 | .nil.;;..."Hook.run.before.each. |
| 1f820 | 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 61 6d 69 6e 67 | insertion.of.the.LLM's.streaming |
| 1f840 | 20 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 | .response...;;.This.hook.is.call |
| 1f860 | 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 65 20 | ed.in.the.buffer.from.which.the. |
| 1f880 | 70 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 | prompt.was.sent.;;.to.the.LLM,.i |
| 1f8a0 | 6d 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 | mmediately.before.text.insertion |
| 1f8c0 | 2e 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 | .".;;...:group.'gptel.;;...:type |
| 1f8e0 | 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 70 6f 73 74 2d 73 | .'hook)..(defcustom.gptel-post-s |
| 1f900 | 74 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 | tream-hook.nil..."Hook.run.after |
| 1f920 | 20 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 | .each.insertion.of.the.LLM's.str |
| 1f940 | 65 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 | eaming.response...This.hook.is.c |
| 1f960 | 61 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 | alled.in.the.buffer.from.which.t |
| 1f980 | 68 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 | he.prompt.was.sent.to.the.LLM,.a |
| 1f9a0 | 6e 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 | nd.after.a.text.insertion."...:t |
| 1f9c0 | 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 73 61 76 | ype.'hook)..(defcustom.gptel-sav |
| 1f9e0 | 65 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 | e-state-hook.nil..."Hook.run.bef |
| 1fa00 | 6f 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 | ore.gptel.saves.model.parameters |
| 1fa20 | 20 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 | .to.a.file...You.can.use.this.ho |
| 1fa40 | 6f 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 | ok.to.store.additional.conversat |
| 1fa60 | 69 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 | ion.state.or.model.parameters.to |
| 1fa80 | 20 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 | .the.chat.buffer,.or.to.modify.t |
| 1faa0 | 68 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 | he.buffer.in.some.other.way."... |
| 1fac0 | 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 64 | :type.'hook)..(defcustom.gptel-d |
| 1fae0 | 65 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 | efault-mode.(if.(fboundp.'markdo |
| 1fb00 | 77 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 | wn-mode).......'markdown-mode... |
| 1fb20 | 09 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 | ..'text-mode)..."The.default.maj |
| 1fb40 | 6f 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 | or.mode.for.dedicated.chat.buffe |
| 1fb60 | 72 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 | rs...If.`markdown-mode'.is.avail |
| 1fb80 | 61 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 | able,.it.is.used...Otherwise.gpt |
| 1fba0 | 65 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 | el.defaults.to.`text-mode'."...: |
| 1fbc0 | 74 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 | type.'function)..;;.TODO:.Handle |
| 1fbe0 | 20 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 | .`prog-mode'.using.the.`comment- |
| 1fc00 | 73 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 | start'.variable.(defcustom.gptel |
| 1fc20 | 2d 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 | -prompt-prefix-alist...'((markdo |
| 1fc40 | 77 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 | wn-mode..."###.").....(org-mode. |
| 1fc60 | 2e 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 | .."***.").....(text-mode..."###. |
| 1fc80 | 22 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 | "))..."String.used.as.a.prefix.t |
| 1fca0 | 6f 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 | o.the.query.being.sent.to.the.LL |
| 1fcc0 | 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 74 | M...This.is.meant.for.the.user.t |
| 1fce0 | 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 6e | o.distinguish.between.queries.an |
| 1fd00 | 64 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 | d.responses,.and.is.removed.from |
| 1fd20 | 20 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 | .the.query.before.it.is.sent...T |
| 1fd40 | 68 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 | his.is.an.alist.mapping.major.mo |
| 1fd60 | 64 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 | des.to.the.prefix.strings...This |
| 1fd80 | 0a 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 | .is.only.inserted.in.dedicated.g |
| 1fda0 | 70 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 | ptel.buffers."...:type.'(alist.: |
| 1fdc0 | 6b 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 | key-type.symbol.:value-type.stri |
| 1fde0 | 6e 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 | ng))..(defcustom.gptel-response- |
| 1fe00 | 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 6e 2d 6d 6f 64 65 20 | prefix-alist...'((markdown-mode. |
| 1fe20 | 2e 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 | .."").....(org-mode..."").....(t |
| 1fe40 | 65 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 | ext-mode...""))..."String.insert |
| 1fe60 | 65 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 | ed.before.the.response.from.the. |
| 1fe80 | 4c 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 | LLM...This.is.meant.for.the.user |
| 1fea0 | 20 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 | .to.distinguish.between.queries. |
| 1fec0 | 61 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 | and.responses...This.is.an.alist |
| 1fee0 | 20 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 | .mapping.major.modes.to.the.repl |
| 1ff00 | 79 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 | y.prefix.strings...This.is.only. |
| 1ff20 | 69 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 | inserted.in.dedicated.gptel.buff |
| 1ff40 | 65 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 | ers.before.the.AI's.response.".. |
| 1ff60 | 20 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 | .:type.'(alist.:key-type.symbol. |
| 1ff80 | 3a 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 | :value-type.string))..(defcustom |
| 1ffa0 | 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 20 22 5c 6e 5c 6e 22 | .gptel-response-separator."\n\n" |
| 1ffc0 | 0a 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 | ..."String.inserted.before.respo |
| 1ffe0 | 6e 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 | nses...Also.inserted.before.and. |
| 20000 | 61 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 | after.non-consecutive.tool.calls |
| 20020 | 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. |
| 20040 | 67 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 | gptel-use-header-line.t..."Wheth |
| 20060 | 65 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 | er.`gptel-mode'.should.use.heade |
| 20080 | 72 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 | r-line.for.status.information... |
| 200a0 | 57 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 | When.set.to.nil,.use.the.mode.li |
| 200c0 | 6e 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 | ne.for.(minimal).status.informat |
| 200e0 | 69 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 | ion.and.the.echo.area.for.messag |
| 20100 | 65 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 | es."...:type.'boolean)..;;.Set.m |
| 20120 | 69 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 | inimally.to.avoid.display-buffer |
| 20140 | 20 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 | .action.alist.conflicts.(#533).( |
| 20160 | 64 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 | defcustom.gptel-display-buffer-a |
| 20180 | 63 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 | ction.`(nil.(body-function...,#' |
| 201a0 | 73 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 | select-window))..."The.action.us |
| 201c0 | 65 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 | ed.to.display.gptel.chat.buffers |
| 201e0 | 2e 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 | ...The.gptel.buffer.is.displayed |
| 20200 | 20 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 | .in.a.window.using....(display-b |
| 20220 | 75 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 | uffer.BUFFER.gptel-display-buffe |
| 20240 | 72 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 | r-action)..The.value.of.this.opt |
| 20260 | 69 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 | ion.has.the.form.(FUNCTION...ALI |
| 20280 | 53 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 | ST),.where.FUNCTION.is.a.functio |
| 202a0 | 6e 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 | n.or.a.list.of.functions...Each. |
| 202c0 | 73 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 | such.function.should.accept.two. |
| 202e0 | 61 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 | arguments:.a.buffer.to.display.a |
| 20300 | 6e 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 | nd.an.alist.of.the.same.form.as. |
| 20320 | 41 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 | ALIST...See.info.node.`(elisp)Ch |
| 20340 | 6f 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 | oosing.Window'.for.details."...: |
| 20360 | 74 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 | type.display-buffer--action-cust |
| 20380 | 6f 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 | om-type)..(defcustom.gptel-crowd |
| 203a0 | 73 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 | sourced-prompts-file...(let.((ca |
| 203c0 | 63 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 | che-dir.(or.(eval-when-compile.. |
| 203e0 | 09 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 | ...(require.'xdg).....(xdg-cache |
| 20400 | 2d 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 | -home))........................u |
| 20420 | 73 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 | ser-emacs-directory))).....(expa |
| 20440 | 6e 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 | nd-file-name."gptel-crowdsourced |
| 20460 | 2d 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 | -prompts.csv".cache-dir))..."Fil |
| 20480 | 65 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 | e.used.to.store.crowdsourced.sys |
| 204a0 | 74 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 | tem.prompts...These.are.prompts. |
| 204c0 | 63 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 | cached.from.an.online.source.(se |
| 204e0 | 65 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 | e.`gptel--crowdsourced-prompts-u |
| 20500 | 72 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 | rl'),.and.can.be.set.from.the.tr |
| 20520 | 61 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 | ansient.menu.interface.provided. |
| 20540 | 62 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 | by.`gptel-menu'."...:type.'file) |
| 20560 | 0a 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 | ..;;.Model.and.interaction.param |
| 20580 | 65 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 | eters.(defcustom.gptel-directive |
| 205a0 | 73 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 | s...'((default......."You.are.a. |
| 205c0 | 6c 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 | large.language.model.living.in.E |
| 205e0 | 6d 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 | macs.and.a.helpful.assistant..Re |
| 20600 | 73 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 | spond.concisely.").....(programm |
| 20620 | 69 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 | ing..."You.are.a.large.language. |
| 20640 | 6d 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 | model.and.a.careful.programmer.. |
| 20660 | 50 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 | Provide.code.and.only.code.as.ou |
| 20680 | 74 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 | tput.without.any.additional.text |
| 206a0 | 2c 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 | ,.prompt.or.note.").....(writing |
| 206c0 | 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 |
| 206e0 | 20 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 | .model.and.a.writing.assistant.. |
| 20700 | 52 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 | Respond.concisely.").....(chat.. |
| 20720 | 20 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 | ........"You.are.a.large.languag |
| 20740 | 65 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 | e.model.and.a.conversation.partn |
| 20760 | 65 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 | er..Respond.concisely."))..."Sys |
| 20780 | 74 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 | tem.prompts.or.directives.for.th |
| 207a0 | 65 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 | e.LLM...Each.entry.in.this.alist |
| 207c0 | 20 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 | .maps.a.symbol.naming.the.direct |
| 207e0 | 69 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 | ive.to.the.directive.itself...By |
| 20800 | 20 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 | .default,.gptel.uses.the.directi |
| 20820 | 76 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 | ve.with.the.key.\\+`default'...T |
| 20840 | 6f 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 | o.set.the.directive.for.a.chat.s |
| 20860 | 65 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 | ession.interactively.call.`gptel |
| 20880 | 2d 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 | -send'.with.a.prefix.argument,.o |
| 208a0 | 72 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 | r.call.`gptel-menu'...A.\"direct |
| 208c0 | 69 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 | ive\".is.typically.the.system.me |
| 208e0 | 73 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 | ssage.(also.called.system.prompt |
| 20900 | 20 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 | .or.system.instruction).sent.at. |
| 20920 | 74 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 | the.beginning.of.each.request.to |
| 20940 | 20 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 | .the.LLM...It.is.used.to.set.gen |
| 20960 | 65 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 | eral.instructions,.expectations. |
| 20980 | 61 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 | and.the.overall.tone...gptel's.i |
| 209a0 | 64 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 | dea.of.the.directive.is.more.gen |
| 209c0 | 65 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 | eral...A.directive.in.`gptel-dir |
| 209e0 | 65 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 | ectives'.can.be..-.A.string,.int |
| 20a00 | 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 2e 0a | erpreted.as.the.system.message.. |
| 20a20 | 0a 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 | .-.A.list.of.strings,.whose.firs |
| 20a40 | 74 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 | t.(possibly.nil).element.is...in |
| 20a60 | 74 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 | terpreted.as.the.system.message, |
| 20a80 | 20 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 | .and.the.remaining.elements...as |
| 20aa0 | 20 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 | .(possibly.nil).alternating.user |
| 20ac0 | 20 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 | .prompts.and.LLM.responses....Th |
| 20ae0 | 69 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 | is.can.be.used.to.template.the.i |
| 20b00 | 6e 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 | nitial.part.of.a.conversation... |
| 20b20 | 2d 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 | -.A.function.that.returns.a.stri |
| 20b40 | 6e 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 | ng.or.a.list.of.strings,...inter |
| 20b60 | 70 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 | preted.as.the.above...This.can.b |
| 20b80 | 65 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 | e.used.to.dynamically...generate |
| 20ba0 | 20 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 | .a.system.message.and/or.convers |
| 20bc0 | 61 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 | ation.template.based.on...the.cu |
| 20be0 | 72 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 | rrent.context...See.the.definiti |
| 20c00 | 6f 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 | on.of...`gptel--rewrite-directiv |
| 20c20 | 65 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 | e-default'.for.an.example."...:s |
| 20c40 | 61 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 | afe.#'always...:type.'(alist.:ke |
| 20c60 | 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 67 | y-type.symbol.:value-type.string |
| 20c80 | 29 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 | ))..(defcustom.gptel-max-tokens. |
| 20ca0 | 6e 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 | nil..."Max.tokens.per.response.. |
| 20cc0 | 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 77 | .This.is.roughly.the.number.of.w |
| 20ce0 | 6f 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 | ords.in.the.response...100-300.i |
| 20d00 | 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 |
| 20d20 | 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 |
| 20d40 | 65 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 | esponses...To.set.the.target.tok |
| 20d60 | 65 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 | en.count.for.a.chat.session.inte |
| 20d80 | 72 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 | ractively.call.`gptel-send'.with |
| 20da0 | 20 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 | .a.prefix.argument."...:safe.#'a |
| 20dc0 | 6c 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 | lways...:type.'(choice.(natnum.: |
| 20de0 | 74 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 | tag."Specify.Token.count")...... |
| 20e00 | 20 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 | ............(const.:tag."Default |
| 20e20 | 22 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 | ".nil)))..(defcustom.gptel-tempe |
| 20e40 | 72 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 | rature.1.0..."\"Temperature\".of |
| 20e60 | 20 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 | .the.LLM.response...This.is.a.nu |
| 20e80 | 6d 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 | mber.between.0.0.and.2.0.that.co |
| 20ea0 | 6e 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 | ntrols.the.randomness.of.the.res |
| 20ec0 | 70 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 | ponse,.with.2.0.being.the.most.r |
| 20ee0 | 61 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 | andom...To.set.the.temperature.f |
| 20f00 | 6f 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 | or.a.chat.session.interactively. |
| 20f20 | 63 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 | call.`gptel-send'.with.a.prefix. |
| 20f40 | 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 | argument."...:safe.#'always...:t |
| 20f60 | 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 | ype.'number)..(defcustom.gptel-c |
| 20f80 | 61 63 68 65 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 74 68 65 20 4c 4c 4d 20 73 68 6f 75 | ache.nil..."Whether.the.LLM.shou |
| 20fa0 | 6c 64 20 63 61 63 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74 65 6e 74 2e 0a 0a 53 6f 6d 65 20 | ld.cache.request.content...Some. |
| 20fc0 | 4c 4c 4d 20 62 61 63 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 | LLM.backends.can.cache.content.s |
| 20fe0 | 65 6e 74 20 74 6f 20 69 74 20 62 79 20 67 70 74 65 6c 2c 20 73 6f 20 74 68 61 74 0a 6f 6e 6c 79 | ent.to.it.by.gptel,.so.that.only |
| 21000 | 20 74 68 65 20 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 | .the.newly.included.part.of.the. |
| 21020 | 74 65 78 74 20 6e 65 65 64 73 20 74 6f 20 62 65 20 70 72 6f 63 65 73 73 65 64 20 6f 6e 0a 73 75 | text.needs.to.be.processed.on.su |
| 21040 | 62 73 65 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 | bsequent.conversation.turns...Th |
| 21060 | 69 73 20 72 65 73 75 6c 74 73 20 69 6e 20 66 61 73 74 65 72 20 61 6e 64 0a 73 69 67 6e 69 66 69 | is.results.in.faster.and.signifi |
| 21080 | 63 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 0a 0a 4e 4f 54 45 | cantly.cheaper.processing...NOTE |
| 210a0 | 3a 20 4d 61 6e 75 61 6c 20 6f 72 20 63 6c 69 65 6e 74 2d 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 | :.Manual.or.client-configurable. |
| 210c0 | 63 61 63 68 69 6e 67 20 69 73 20 63 75 72 72 65 6e 74 6c 79 0a 73 75 70 70 6f 72 74 65 64 20 6f | caching.is.currently.supported.o |
| 210e0 | 6e 6c 79 20 62 79 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 61 6e 64 20 74 68 75 | nly.by.the.Anthropic.API.and.thu |
| 21100 | 73 20 74 68 65 0a 60 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 27 20 62 61 63 6b 65 6e 64 2e | s.the.`gptel-anthropic'.backend. |
| 21120 | 20 20 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e | ..This.variable.has.no.effect.on |
| 21140 | 20 74 68 65 0a 62 65 68 61 76 69 6f 72 20 6f 66 20 6f 74 68 65 72 20 62 61 63 6b 65 6e 64 73 2e | .the.behavior.of.other.backends. |
| 21160 | 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 63 6f 6e 74 72 6f 6c 73 20 77 68 69 63 68 20 70 | ..This.variable.controls.which.p |
| 21180 | 61 72 74 73 20 6f 66 20 74 68 65 20 71 75 65 72 79 20 77 69 6c 6c 20 62 65 20 63 61 63 68 65 64 | arts.of.the.query.will.be.cached |
| 211a0 | 2c 0a 61 6e 64 20 63 61 6e 20 62 65 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 74 20 6f 72 20 6e 69 | ,.and.can.be.the.symbols.t.or.ni |
| 211c0 | 6c 20 74 6f 20 63 61 63 68 65 20 65 76 65 72 79 74 68 69 6e 67 20 6f 72 20 6e 6f 74 68 69 6e 67 | l.to.cache.everything.or.nothing |
| 211e0 | 0a 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 | .respectively..It.can.also.be.a. |
| 21200 | 6c 69 73 74 20 6f 66 20 73 79 6d 62 6f 6c 73 3a 0a 0a 2d 20 6d 65 73 73 61 67 65 3a 20 43 61 63 | list.of.symbols:..-.message:.Cac |
| 21220 | 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 6d 65 73 73 61 67 65 73 0a 2d 20 73 79 73 74 65 | he.conversation.messages.-.syste |
| 21240 | 6d 3a 20 43 61 63 68 65 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 2d 20 74 6f | m:.Cache.the.system.message.-.to |
| 21260 | 6f 6c 3a 20 43 61 63 68 65 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 0a 45 78 61 6d | ol:.Cache.tool.definitions..Exam |
| 21280 | 70 6c 65 73 3a 0a 0a 53 65 74 74 69 6e 67 20 69 74 20 74 6f 20 28 6d 65 73 73 61 67 65 20 73 79 | ples:..Setting.it.to.(message.sy |
| 212a0 | 73 74 65 6d 29 20 77 69 6c 6c 20 63 61 63 68 65 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 | stem).will.cache.the.system.mess |
| 212c0 | 61 67 65 20 61 6e 64 0a 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 65 78 74 2e 0a 0a | age.and.the.conversation.text... |
| 212e0 | 53 65 74 74 69 6e 67 20 69 74 20 74 6f 20 28 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 20 74 6f | Setting.it.to.(message.system.to |
| 21300 | 6f 6c 29 20 77 69 6c 6c 20 63 61 63 68 65 20 65 76 65 72 79 74 68 69 6e 67 20 61 6e 64 20 69 73 | ol).will.cache.everything.and.is |
| 21320 | 0a 74 68 65 20 73 61 6d 65 20 61 73 20 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 | .the.same.as.t."...:type.'(choic |
| 21340 | 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 43 61 63 68 65 20 65 | e...........(const.:tag."Cache.e |
| 21360 | 76 65 72 79 74 68 69 6e 67 22 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a | verything".t)...........(const.: |
| 21380 | 74 61 67 20 22 44 6f 20 6e 6f 74 20 63 61 63 68 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 | tag."Do.not.cache".nil)......... |
| 213a0 | 20 20 28 72 65 70 65 61 74 20 73 79 6d 62 6f 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 | ..(repeat.symbol))...:group.'gpt |
| 213c0 | 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e | el)..(defvar.gptel--known-backen |
| 213e0 | 64 73 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 | ds)..(defconst.gptel--openai-mod |
| 21400 | 65 6c 73 0a 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 | els...'((gpt-4o......:descriptio |
| 21420 | 6e 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 61 | n."Advanced.model.for.complex.ta |
| 21440 | 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 54 | sks;.cheaper.&.faster.than.GPT-T |
| 21460 | 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 20 | urbo"......:capabilities.(media. |
| 21480 | 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 79 | tool-use.json.url)......:mime-ty |
| 214a0 | 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 69 | pes.("image/jpeg"."image/png"."i |
| 214c0 | 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 6f | mage/gif"."image/webp")......:co |
| 214e0 | 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 |
| 21500 | 74 20 32 2e 35 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 | t.2.50......:output-cost.10..... |
| 21520 | 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 67 70 | .:cutoff-date."2023-10").....(gp |
| 21540 | 74 2d 34 6f 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 43 68 65 | t-4o-mini......:description."Che |
| 21560 | 61 70 20 6d 6f 64 65 6c 20 66 6f 72 20 66 61 73 74 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 | ap.model.for.fast.tasks;.cheaper |
| 21580 | 20 26 20 6d 6f 72 65 20 63 61 70 61 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 33 2e 35 20 54 75 72 | .&.more.capable.than.GPT-3.5.Tur |
| 215a0 | 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 20 74 6f | bo"......:capabilities.(media.to |
| 215c0 | 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 65 | ol-use.json.url)......:mime-type |
| 215e0 | 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 |
| 21600 | 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 |
| 21620 | 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. |
| 21640 | 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 20 20 | 0.15......:output-cost.0.60..... |
| 21660 | 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 67 70 | .:cutoff-date."2023-10").....(gp |
| 21680 | 74 2d 34 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 50 72 65 | t-4-turbo......:description."Pre |
| 216a0 | 76 69 6f 75 73 20 68 69 67 68 2d 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 6d 6f 64 65 6c 22 0a 20 | vious.high-intelligence.model".. |
| 216c0 | 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 |
| 216e0 | 65 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 67 65 2f | e.url)......:mime-types.("image/ |
| 21700 | 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 22 69 | jpeg"."image/png"."image/gif"."i |
| 21720 | 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 6f 77 | mage/webp")......:context-window |
| 21740 | 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 6f | .128......:input-cost.10......:o |
| 21760 | 75 74 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 | utput-cost.30......:cutoff-date. |
| 21780 | 22 32 30 32 33 2d 31 32 22 29 0a 20 20 20 20 3b 3b 20 70 6f 69 6e 74 73 20 74 6f 20 67 70 74 2d | "2023-12").....;;.points.to.gpt- |
| 217a0 | 34 2d 30 36 31 33 0a 20 20 20 20 28 67 70 74 2d 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 | 4-0613.....(gpt-4......:descript |
| 217c0 | 69 6f 6e 20 22 47 50 54 2d 34 20 73 6e 61 70 73 68 6f 74 20 66 72 6f 6d 20 4a 75 6e 65 20 32 30 | ion."GPT-4.snapshot.from.June.20 |
| 217e0 | 32 33 20 77 69 74 68 20 69 6d 70 72 6f 76 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 69 6e | 23.with.improved.function.callin |
| 21800 | 67 20 73 75 70 70 6f 72 74 22 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d | g.support"......:mime-types.("im |
| 21820 | 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 66 | age/jpeg"."image/png"."image/gif |
| 21840 | 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 | "."image/webp")......:capabiliti |
| 21860 | 65 73 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 63 6f | es.(media.tool-use.url)......:co |
| 21880 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 38 2e 31 39 32 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 | ntext-window.8.192......:input-c |
| 218a0 | 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 36 30 0a 20 20 20 20 | ost.30......:output-cost.60..... |
| 218c0 | 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 30 39 22 29 0a 20 20 20 20 28 67 70 | .:cutoff-date."2023-09").....(gp |
| 218e0 | 74 2d 34 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 | t-4-turbo-preview......:descript |
| 21900 | 69 6f 6e 20 22 50 6f 69 6e 74 73 20 74 6f 20 67 70 74 2d 34 2d 30 31 32 35 2d 70 72 65 76 69 65 | ion."Points.to.gpt-4-0125-previe |
| 21920 | 77 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 | w"......:capabilities.(media.too |
| 21940 | 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 73 20 28 22 69 6d | l-use.url)......:mime-types.("im |
| 21960 | 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 66 | age/jpeg"."image/png"."image/gif |
| 21980 | 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 77 69 | "."image/webp")......:context-wi |
| 219a0 | 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 31 30 0a 20 20 20 | ndow.128......:input-cost.10.... |
| 219c0 | 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 | ..:output-cost.30......:cutoff-d |
| 219e0 | 61 74 65 20 22 32 30 32 33 2d 31 32 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2d 30 31 32 35 2d 70 | ate."2023-12").....(gpt-4-0125-p |
| 21a00 | 72 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 47 50 54 2d 34 20 | review......:description."GPT-4. |
| 21a20 | 54 75 72 62 6f 20 70 72 65 76 69 65 77 20 6d 6f 64 65 6c 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 | Turbo.preview.model.intended.to. |
| 21a40 | 72 65 64 75 63 65 20 63 61 73 65 73 20 6f 66 20 e2 80 9c 6c 61 7a 69 6e 65 73 73 e2 80 9d 22 0a | reduce.cases.of....laziness...". |
| 21a60 | 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 |
| 21a80 | 73 65 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 67 65 | se.url)......:mime-types.("image |
| 21aa0 | 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 22 | /jpeg"."image/png"."image/gif"." |
| 21ac0 | 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 6f | image/webp")......:context-windo |
| 21ae0 | 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a | w.128......:input-cost.10......: |
| 21b00 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 | output-cost.30......:cutoff-date |
| 21b20 | 20 22 32 30 32 33 2d 31 32 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 35 2d 70 72 65 76 69 65 77 | ."2023-12").....(gpt-4.5-preview |
| 21b40 | 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 20 61 6e 64 20 | ......:description."Largest.and. |
| 21b60 | 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 61 74 65 22 0a | most.capable.GPT.model.to.date". |
| 21b80 | 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 |
| 21ba0 | 73 65 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 67 65 | se.url)......:mime-types.("image |
| 21bc0 | 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 22 | /jpeg"."image/png"."image/gif"." |
| 21be0 | 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 6f | image/webp")......:context-windo |
| 21c00 | 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a | w.128......:input-cost.75......: |
| 21c20 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 | output-cost.150......:cutoff-dat |
| 21c40 | 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 6f 31 0a 20 20 20 20 20 3a 64 65 73 63 72 | e."2023-10").....(o1......:descr |
| 21c60 | 69 70 74 69 6f 6e 20 22 52 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 20 64 65 73 69 67 6e 65 64 | iption."Reasoning.model.designed |
| 21c80 | 20 74 6f 20 73 6f 6c 76 65 20 68 61 72 64 20 70 72 6f 62 6c 65 6d 73 20 61 63 72 6f 73 73 20 64 | .to.solve.hard.problems.across.d |
| 21ca0 | 6f 6d 61 69 6e 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f 73 79 | omains"......:capabilities.(nosy |
| 21cc0 | 73 74 65 6d 20 6d 65 64 69 61 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 3a 6d 69 6d 65 | stem.media.reasoning)......:mime |
| 21ce0 | 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" |
| 21d00 | 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")...... |
| 21d20 | 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 2d | :context-window.200......:input- |
| 21d40 | 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 36 30 0a 20 20 20 | cost.15......:output-cost.60.... |
| 21d60 | 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 20 3a 72 | ..:cutoff-date."2023-10"......:r |
| 21d80 | 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 6f 6e 2d 66 61 6c | equest-params.(:stream.:json-fal |
| 21da0 | 73 65 29 29 0a 20 20 20 20 28 6f 31 2d 70 72 65 76 69 65 77 0a 20 20 20 20 20 3a 64 65 73 63 72 | se)).....(o1-preview......:descr |
| 21dc0 | 69 70 74 69 6f 6e 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 50 4c 45 41 53 45 20 55 53 45 20 6f | iption."DEPRECATED:.PLEASE.USE.o |
| 21de0 | 31 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f 73 79 73 74 65 6d 20 | 1"......:capabilities.(nosystem. |
| 21e00 | 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/ |
| 21e20 | 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 22 69 | jpeg"."image/png"."image/gif"."i |
| 21e40 | 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 6f 77 | mage/webp")......:context-window |
| 21e60 | 20 31 32 38 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 | .128......:input-cost.15......:o |
| 21e80 | 75 74 70 75 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 | utput-cost.60......:cutoff-date. |
| 21ea0 | 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 |
| 21ec0 | 73 79 73 74 65 6d 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d | system.reasoning)......:request- |
| 21ee0 | 70 61 72 61 6d 73 20 28 3a 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 | params.(:stream.:json-false))... |
| 21f00 | 20 20 28 6f 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 46 61 | ..(o1-mini......:description."Fa |
| 21f20 | 73 74 65 72 20 61 6e 64 20 63 68 65 61 70 65 72 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c | ster.and.cheaper.reasoning.model |
| 21f40 | 20 67 6f 6f 64 20 61 74 20 63 6f 64 69 6e 67 2c 20 6d 61 74 68 2c 20 61 6e 64 20 73 63 69 65 6e | .good.at.coding,.math,.and.scien |
| 21f60 | 63 65 22 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 20 20 20 | ce"......:context-window.128.... |
| 21f80 | 20 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 | ..:input-cost.3......:output-cos |
| 21fa0 | 74 20 31 32 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 | t.12......:cutoff-date."2023-10" |
| 21fc0 | 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f 73 79 73 74 65 6d 20 72 65 | ......:capabilities.(nosystem.re |
| 21fe0 | 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 28 3a | asoning)......:request-params.(: |
| 22000 | 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 28 6f 33 2d 6d 69 6e | stream.:json-false)).....(o3-min |
| 22020 | 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 6c 6c | i......:description."High.intell |
| 22040 | 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 74 65 | igence.at.the.same.cost.and.late |
| 22060 | 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 63 6f | ncy.targets.of.o1-mini"......:co |
| 22080 | 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 6f 73 | ntext-window.200......:input-cos |
| 220a0 | 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 20 20 3a 63 | t.3......:output-cost.12......:c |
| 220c0 | 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 20 3a 63 61 70 61 62 | utoff-date."2023-10"......:capab |
| 220e0 | 69 6c 69 74 69 65 73 20 28 6e 6f 73 79 73 74 65 6d 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 | ilities.(nosystem.reasoning).... |
| 22100 | 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 6f 6e | ..:request-params.(:stream.:json |
| 22120 | 2d 66 61 6c 73 65 29 29 0a 20 20 20 20 3b 3b 20 6c 69 6d 69 74 65 64 20 69 6e 66 6f 72 6d 61 74 | -false)).....;;.limited.informat |
| 22140 | 69 6f 6e 20 61 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 28 67 70 74 2d 34 2d 33 32 6b 0a 20 20 20 | ion.available.....(gpt-4-32k.... |
| 22160 | 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 20 20 20 20 20 | ..:capabilities.(tool-use)...... |
| 22180 | 3a 69 6e 70 75 74 2d 63 6f 73 74 20 36 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | :input-cost.60......:output-cost |
| 221a0 | 20 31 32 30 29 0a 20 20 20 20 28 67 70 74 2d 34 2d 31 31 30 36 2d 70 72 65 76 69 65 77 0a 20 20 | .120).....(gpt-4-1106-preview... |
| 221c0 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 72 65 76 69 65 77 20 6d 6f 64 65 6c 20 77 | ...:description."Preview.model.w |
| 221e0 | 69 74 68 20 69 6d 70 72 6f 76 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 69 6e 67 20 73 75 | ith.improved.function.calling.su |
| 22200 | 70 70 6f 72 74 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 | pport"......:capabilities.(tool- |
| 22220 | 75 73 65 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 20 20 | use)......:context-window.128... |
| 22240 | 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 | ...:input-cost.10......:output-c |
| 22260 | 6f 73 74 20 33 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 30 | ost.30......:cutoff-date."2023-0 |
| 22280 | 34 22 29 0a 20 20 20 20 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 0a 20 20 20 20 20 3a 64 65 73 | 4").....(gpt-3.5-turbo......:des |
| 222a0 | 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 20 6c 65 73 73 20 | cription."More.expensive.&.less. |
| 222c0 | 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 75 73 65 20 74 68 | capable.than.GPT-4o-mini;.use.th |
| 222e0 | 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 74 69 65 73 20 28 | at.instead"......:capabilities.( |
| 22300 | 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 6e 64 6f 77 20 31 | tool-use)......:context-window.1 |
| 22320 | 36 2e 33 35 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 35 30 0a 20 20 20 20 | 6.358......:input-cost.0.50..... |
| 22340 | 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 35 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d | .:output-cost.1.50......:cutoff- |
| 22360 | 64 61 74 65 20 22 32 30 32 31 2d 30 39 22 29 0a 20 20 20 20 28 67 70 74 2d 33 2e 35 2d 74 75 72 | date."2021-09").....(gpt-3.5-tur |
| 22380 | 62 6f 2d 31 36 6b 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 72 65 20 65 | bo-16k......:description."More.e |
| 223a0 | 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 61 6e 20 47 50 54 | xpensive.&.less.capable.than.GPT |
| 223c0 | 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 22 0a 20 20 20 20 | -4o-mini;.use.that.instead"..... |
| 223e0 | 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 20 20 20 20 20 3a | .:capabilities.(tool-use)......: |
| 22400 | 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 36 2e 33 38 35 0a 20 20 20 20 20 3a 69 6e 70 75 | context-window.16.385......:inpu |
| 22420 | 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 34 0a 20 20 20 | t-cost.3......:output-cost.4.... |
| 22440 | 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 31 2d 30 39 22 29 29 0a 20 20 22 4c 69 | ..:cutoff-date."2021-09"))..."Li |
| 22460 | 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 61 6e | st.of.available.OpenAI.models.an |
| 22480 | 64 20 61 73 73 6f 63 69 61 74 65 64 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 4b 65 79 73 3a 0a 0a | d.associated.properties..Keys:.. |
| 224a0 | 2d 20 60 3a 64 65 73 63 72 69 70 74 69 6f 6e 27 3a 20 61 20 62 72 69 65 66 20 64 65 73 63 72 69 | -.`:description':.a.brief.descri |
| 224c0 | 70 74 69 6f 6e 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 63 61 70 61 62 69 6c | ption.of.the.model...-.`:capabil |
| 224e0 | 69 74 69 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 73 | ities':.a.list.of.capabilities.s |
| 22500 | 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 6d 69 6d 65 | upported.by.the.model...-.`:mime |
| 22520 | 2d 74 79 70 65 73 27 3a 20 61 20 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 4d 49 4d | -types':.a.list.of.supported.MIM |
| 22540 | 45 20 74 79 70 65 73 20 66 6f 72 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 0a 0a 2d 20 60 3a 63 6f | E.types.for.media.files...-.`:co |
| 22560 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 27 3a 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 6e 64 6f | ntext-window':.the.context.windo |
| 22580 | 77 20 73 69 7a 65 2c 20 69 6e 20 74 68 6f 75 73 61 6e 64 73 20 6f 66 20 74 6f 6b 65 6e 73 2e 0a | w.size,.in.thousands.of.tokens.. |
| 225a0 | 0a 2d 20 60 3a 69 6e 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 69 6e 70 75 74 20 63 6f 73 74 | .-.`:input-cost':.the.input.cost |
| 225c0 | 2c 20 69 6e 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 | ,.in.US.dollars.per.million.toke |
| 225e0 | 6e 73 2e 0a 0a 2d 20 60 3a 6f 75 74 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 6f 75 74 70 75 | ns...-.`:output-cost':.the.outpu |
| 22600 | 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 6c 69 6f | t.cost,.in.US.dollars.per.millio |
| 22620 | 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 63 75 74 6f 66 66 2d 64 61 74 65 27 3a 20 74 68 65 | n.tokens...-.`:cutoff-date':.the |
| 22640 | 20 6b 6e 6f 77 6c 65 64 67 65 20 63 75 74 6f 66 66 20 64 61 74 65 2e 0a 0a 2d 20 60 3a 72 65 71 | .knowledge.cutoff.date...-.`:req |
| 22660 | 75 65 73 74 2d 70 61 72 61 6d 73 27 3a 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f | uest-params':.a.plist.of.additio |
| 22680 | 6e 61 6c 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 0a 20 20 69 6e 63 6c | nal.request.parameters.to...incl |
| 226a0 | 75 64 65 20 77 68 65 6e 20 75 73 69 6e 67 20 74 68 69 73 20 6d 6f 64 65 6c 2e 0a 0a 49 6e 66 6f | ude.when.using.this.model...Info |
| 226c0 | 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 | rmation.about.the.OpenAI.models. |
| 226e0 | 77 61 73 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a | was.obtained.from.the.following. |
| 22700 | 73 6f 75 72 63 65 73 3a 0a 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 | sources:..-.<https://platform.op |
| 22720 | 65 6e 61 69 2e 63 6f 6d 2f 64 6f 63 73 2f 70 72 69 63 69 6e 67 3e 0a 2d 20 3c 68 74 74 70 73 3a | enai.com/docs/pricing>.-.<https: |
| 22740 | 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f 64 6f 63 73 2f 6d 6f 64 65 6c | //platform.openai.com/docs/model |
| 22760 | 73 3e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 70 | s>")..(defcustom.gptel-model.'gp |
| 22780 | 74 2d 34 6f 2d 6d 69 6e 69 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 4d 6f 64 65 6c 20 66 6f | t-4o-mini...(concat...."Model.fo |
| 227a0 | 72 20 63 68 61 74 2e 0a 0a 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2c 20 | r.chat...The.name.of.the.model,. |
| 227c0 | 61 73 20 61 20 73 79 6d 62 6f 6c 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d 65 20 61 | as.a.symbol...This.is.the.name.a |
| 227e0 | 73 20 65 78 70 65 63 74 65 64 0a 62 79 20 74 68 65 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 27 73 | s.expected.by.the.LLM.provider's |
| 22800 | 20 41 50 49 2e 0a 0a 54 6f 20 73 65 74 20 74 68 65 20 6d 6f 64 65 6c 20 66 6f 72 20 61 20 63 68 | .API...To.set.the.model.for.a.ch |
| 22820 | 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 61 6c 6c 0a 60 67 | at.session.interactively.call.`g |
| 22840 | 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 72 67 75 6d 65 6e | ptel-send'.with.a.prefix.argumen |
| 22860 | 74 2e 22 29 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 | t.")...:safe.#'always...:type.`( |
| 22880 | 63 68 6f 69 63 65 0a 09 20 20 28 73 79 6d 62 6f 6c 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 | choice....(symbol.:tag."Specify. |
| 228a0 | 6d 6f 64 65 6c 20 6e 61 6d 65 22 29 0a 09 20 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 | model.name")....,@(mapcar.(lambd |
| 228c0 | 61 20 28 6d 6f 64 65 6c 29 0a 09 09 20 20 20 20 20 20 28 6c 69 73 74 20 27 63 6f 6e 73 74 20 3a | a.(model).........(list.'const.: |
| 228e0 | 74 61 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 6d 6f 64 65 6c 29 29 0a 09 09 | tag.(symbol-name.(car.model))... |
| 22900 | 09 20 20 20 20 28 63 61 72 20 6d 6f 64 65 6c 29 29 29 0a 09 09 20 20 20 20 67 70 74 65 6c 2d 2d | .....(car.model))).......gptel-- |
| 22920 | 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | openai-models)))..(defvar.gptel- |
| 22940 | 2d 6f 70 65 6e 61 69 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 | -openai...(gptel-make-openai.... |
| 22960 | 20 20 20 22 43 68 61 74 47 50 54 22 0a 20 20 20 20 3a 6b 65 79 20 27 67 70 74 65 6c 2d 61 70 69 | ..."ChatGPT".....:key.'gptel-api |
| 22980 | 2d 6b 65 79 0a 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 3a 6d 6f 64 65 6c 73 20 67 | -key.....:stream.t.....:models.g |
| 229a0 | 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 29 29 0a 0a 28 64 65 66 63 75 73 74 6f | ptel--openai-models))..(defcusto |
| 229c0 | 6d 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 | m.gptel-backend.gptel--openai... |
| 229e0 | 22 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 74 6f 20 75 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 | "LLM.backend.to.use...This.is.th |
| 22a00 | 65 20 64 65 66 61 75 6c 74 20 5c 22 62 61 63 6b 65 6e 64 5c 22 2c 20 61 6e 20 6f 62 6a 65 63 74 | e.default.\"backend\",.an.object |
| 22a20 | 20 6f 66 20 74 79 70 65 0a 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 63 6f 6e 74 61 69 6e | .of.type.`gptel-backend'.contain |
| 22a40 | 69 6e 67 20 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 | ing.connection,.authentication.a |
| 22a60 | 6e 64 20 6d 6f 64 65 6c 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 41 20 62 61 63 6b 65 6e 64 | nd.model.information...A.backend |
| 22a80 | 20 66 6f 72 20 43 68 61 74 47 50 54 20 69 73 20 70 72 65 2d 64 65 66 69 6e 65 64 20 62 79 20 67 | .for.ChatGPT.is.pre-defined.by.g |
| 22aa0 | 70 74 65 6c 2e 20 20 42 61 63 6b 65 6e 64 73 20 66 6f 72 0a 6f 74 68 65 72 20 4c 4c 4d 20 70 72 | ptel...Backends.for.other.LLM.pr |
| 22ac0 | 6f 76 69 64 65 72 73 20 28 6c 6f 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 6d 61 79 20 62 65 | oviders.(local.or.remote).may.be |
| 22ae0 | 20 63 6f 6e 73 74 72 75 63 74 65 64 20 75 73 69 6e 67 0a 6f 6e 65 20 6f 66 20 74 68 65 20 61 76 | .constructed.using.one.of.the.av |
| 22b00 | 61 69 6c 61 62 6c 65 20 62 61 63 6b 65 6e 64 20 63 72 65 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f | ailable.backend.creation.functio |
| 22b20 | 6e 73 3a 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 0a 2d 20 60 67 70 74 | ns:.-.`gptel-make-openai'.-.`gpt |
| 22b40 | 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c | el-make-azure'.-.`gptel-make-oll |
| 22b60 | 61 6d 61 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 0a 2d 20 60 67 | ama'.-.`gptel-make-gpt4all'.-.`g |
| 22b80 | 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 27 0a 53 65 65 20 74 68 65 69 72 20 64 6f 63 75 | ptel-make-gemini'.See.their.docu |
| 22ba0 | 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 | mentation.for.more.information.a |
| 22bc0 | 6e 64 20 74 68 65 20 70 61 63 6b 61 67 65 0a 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c | nd.the.package.README.for.exampl |
| 22be0 | 65 73 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 | es."...:safe.#'always...:type.`( |
| 22c00 | 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 43 68 | choice...........(const.:tag."Ch |
| 22c20 | 61 74 47 50 54 22 20 2c 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 | atGPT".,gptel--openai).......... |
| 22c40 | 20 28 72 65 73 74 72 69 63 74 65 64 2d 73 65 78 70 20 3a 6d 61 74 63 68 2d 61 6c 74 65 72 6e 61 | .(restricted-sexp.:match-alterna |
| 22c60 | 74 69 76 65 73 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 70 20 27 6e 69 6c 29 0a 09 09 09 | tives.(gptel-backend-p.'nil).... |
| 22c80 | 20 20 20 3a 74 61 67 20 22 4f 74 68 65 72 20 62 61 63 6b 65 6e 64 22 29 29 29 0a 0a 28 64 65 66 | ...:tag."Other.backend")))..(def |
| 22ca0 | 76 61 72 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 20 6e 69 6c 0a 20 20 | var.gptel-expert-commands.nil... |
| 22cc0 | 22 57 68 65 74 68 65 72 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 67 70 74 65 6c 20 6f 70 74 69 | "Whether.experimental.gptel.opti |
| 22ce0 | 6f 6e 73 20 73 68 6f 75 6c 64 20 62 65 20 65 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 6f 70 65 | ons.should.be.enabled...This.ope |
| 22d00 | 6e 73 20 75 70 20 61 64 76 61 6e 63 65 64 20 6f 70 74 69 6f 6e 73 20 69 6e 20 60 67 70 74 65 6c | ns.up.advanced.options.in.`gptel |
| 22d20 | 2d 6d 65 6e 75 27 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d | -menu'.")..(defvar-local.gptel-- |
| 22d40 | 62 6f 75 6e 64 73 20 6e 69 6c 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 | bounds.nil).(put.'gptel--bounds. |
| 22d60 | 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 0a | 'safe-local-variable.#'always).. |
| 22d80 | 28 64 65 66 76 61 72 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 | (defvar.gptel--num-messages-to-s |
| 22da0 | 65 6e 64 20 6e 69 6c 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 | end.nil).(put.'gptel--num-messag |
| 22dc0 | 65 73 2d 74 6f 2d 73 65 6e 64 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 | es-to-send.'safe-local-variable. |
| 22de0 | 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6c 6f 67 2d | #'always)..(defcustom.gptel-log- |
| 22e00 | 6c 65 76 65 6c 20 6e 69 6c 0a 20 20 22 4c 6f 67 67 69 6e 67 20 6c 65 76 65 6c 20 66 6f 72 20 67 | level.nil..."Logging.level.for.g |
| 22e20 | 70 74 65 6c 2e 0a 0a 54 68 69 73 20 69 73 20 6f 6e 65 20 6f 66 20 6e 69 6c 20 6f 72 20 74 68 65 | ptel...This.is.one.of.nil.or.the |
| 22e40 | 20 73 79 6d 62 6f 6c 73 20 69 6e 66 6f 20 61 6e 64 20 64 65 62 75 67 3a 0a 0a 6e 69 6c 3a 20 44 | .symbols.info.and.debug:..nil:.D |
| 22e60 | 6f 6e 27 74 20 6c 6f 67 20 72 65 73 70 6f 6e 73 65 73 0a 69 6e 66 6f 3a 20 4c 6f 67 20 72 65 71 | on't.log.responses.info:.Log.req |
| 22e80 | 75 65 73 74 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 0a 64 65 62 75 67 3a 20 | uest.and.response.bodies.debug:. |
| 22ea0 | 4c 6f 67 20 72 65 71 75 65 73 74 2f 72 65 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 2c 20 68 65 61 | Log.request/response.bodies,.hea |
| 22ec0 | 64 65 72 73 20 61 6e 64 20 61 6c 6c 20 6f 74 68 65 72 0a 20 20 20 20 20 20 20 63 6f 6e 6e 65 63 | ders.and.all.other........connec |
| 22ee0 | 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 2e 0a 0a 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e | tion.settings...When.non-nil,.in |
| 22f00 | 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 6c 6f 67 67 65 64 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c | formation.is.logged.to.`gptel--l |
| 22f20 | 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a | og-buffer-name',.which.see."...: |
| 22f40 | 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 6e 73 74 20 3a | type.'(choice...........(const.: |
| 22f60 | 74 61 67 20 22 4e 6f 20 6c 6f 67 67 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | tag."No.logging".nil)........... |
| 22f80 | 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69 6d 69 74 65 64 22 20 69 6e 66 6f 29 0a 20 20 20 20 | (const.:tag."Limited".info)..... |
| 22fa0 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 46 75 6c 6c 22 20 64 65 62 75 67 29 29 | ......(const.:tag."Full".debug)) |
| 22fc0 | 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 72 65 73 70 6f 6e | )..(defcustom.gptel-track-respon |
| 22fe0 | 73 65 20 74 0a 20 20 22 44 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 | se.t..."Distinguish.between.user |
| 23000 | 20 6d 65 73 73 61 67 65 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 57 68 | .messages.and.LLM.responses...Wh |
| 23020 | 65 6e 20 63 72 65 61 74 69 6e 67 20 61 20 70 72 6f 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 6f 20 | en.creating.a.prompt.to.send.to. |
| 23040 | 74 68 65 20 4c 4c 4d 2c 20 67 70 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 65 73 0a 62 65 74 | the.LLM,.gptel.distinguishes.bet |
| 23060 | 77 65 65 6e 20 74 65 78 74 20 65 6e 74 65 72 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 6e | ween.text.entered.by.the.user.an |
| 23080 | 64 20 70 61 73 74 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 69 73 0a 64 69 73 74 | d.past.LLM.responses...This.dist |
| 230a0 | 69 6e 63 74 69 6f 6e 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 66 6f 72 20 62 61 63 6b 2d 61 6e | inction.is.necessary.for.back-an |
| 230c0 | 64 2d 66 6f 72 74 68 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 6e 0a 4c 4c 4d | d-forth.conversation.with.an.LLM |
| 230e0 | 2e 0a 0a 49 6e 20 72 65 67 75 6c 61 72 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 20 79 6f 75 20 | ...In.regular.Emacs.buffers.you. |
| 23100 | 63 61 6e 20 74 75 72 6e 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 6f 66 66 20 62 79 0a 73 65 | can.turn.this.behavior.off.by.se |
| 23120 | 74 74 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 20 74 6f 20 | tting.`gptel-track-response'.to. |
| 23140 | 6e 69 6c 2e 20 20 41 6c 6c 20 74 65 78 74 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 70 61 73 74 20 4c | nil...All.text,.including.past.L |
| 23160 | 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2c 20 69 73 20 74 68 65 6e 20 74 72 65 61 74 65 64 20 61 73 | LM.responses,.is.then.treated.as |
| 23180 | 20 75 73 65 72 20 69 6e 70 75 74 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 0a 71 75 65 72 69 65 73 | .user.input.when.sending.queries |
| 231a0 | 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 | ...This.variable.has.no.effect.i |
| 231c0 | 6e 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 | n.dedicated.chat.buffers.(buffer |
| 231e0 | 73 0a 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 65 6e 61 62 6c 65 64 29 2c 20 77 68 | s.with.`gptel-mode'.enabled),.wh |
| 23200 | 65 72 65 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 61 | ere.user.prompts.and.responses.a |
| 23220 | 72 65 0a 61 6c 77 61 79 73 20 68 61 6e 64 6c 65 64 20 73 65 70 61 72 61 74 65 6c 79 2e 22 0a 20 | re.always.handled.separately.".. |
| 23240 | 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 6f 6d 20 67 70 74 | .:type.'boolean)..(defcustom.gpt |
| 23260 | 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 73 75 | el-track-media.nil..."Whether.su |
| 23280 | 70 70 6f 72 74 65 64 20 6d 65 64 69 61 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 73 68 | pported.media.in.chat.buffers.sh |
| 232a0 | 6f 75 6c 64 20 62 65 20 73 65 6e 74 2e 0a 0a 57 68 65 6e 20 74 68 65 20 61 63 74 69 76 65 20 60 | ould.be.sent...When.the.active.` |
| 232c0 | 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 73 75 70 70 6f 72 74 73 20 69 74 2c 20 67 70 74 65 6c 20 | gptel-model'.supports.it,.gptel. |
| 232e0 | 63 61 6e 20 73 65 6e 64 20 69 6d 61 67 65 73 0a 6f 72 20 6f 74 68 65 72 20 6d 65 64 69 61 20 66 | can.send.images.or.other.media.f |
| 23300 | 72 6f 6d 20 6c 69 6e 6b 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 74 6f 20 74 68 65 | rom.links.in.chat.buffers.to.the |
| 23320 | 20 4c 4c 4d 2e 20 20 54 6f 20 75 73 65 0a 74 68 69 73 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e | .LLM...To.use.this,.the.followin |
| 23340 | 67 20 73 74 65 70 73 20 61 72 65 20 72 65 71 75 69 72 65 64 2e 0a 0a 31 2e 20 60 67 70 74 65 6c | g.steps.are.required...1..`gptel |
| 23360 | 2d 74 72 61 63 6b 2d 6d 65 64 69 61 27 20 28 74 68 69 73 20 76 61 72 69 61 62 6c 65 29 20 73 68 | -track-media'.(this.variable).sh |
| 23380 | 6f 75 6c 64 20 62 65 20 6e 6f 6e 2d 6e 69 6c 0a 0a 32 2e 20 54 68 65 20 4c 4c 4d 20 73 68 6f 75 | ould.be.non-nil..2..The.LLM.shou |
| 233a0 | 6c 64 20 70 72 6f 76 69 64 65 20 76 69 73 69 6f 6e 20 6f 72 20 64 6f 63 75 6d 65 6e 74 20 73 75 | ld.provide.vision.or.document.su |
| 233c0 | 70 70 6f 72 74 2e 20 20 43 75 72 72 65 6e 74 6c 79 2c 0a 6f 6e 6c 79 20 74 68 65 20 4f 70 65 6e | pport...Currently,.only.the.Open |
| 233e0 | 41 49 2c 20 41 6e 74 68 72 6f 70 69 63 20 61 6e 64 20 4f 6c 6c 61 6d 61 20 41 50 49 73 20 61 72 | AI,.Anthropic.and.Ollama.APIs.ar |
| 23400 | 65 20 73 75 70 70 6f 72 74 65 64 2e 20 20 53 65 65 0a 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 | e.supported...See.the.documentat |
| 23420 | 69 6f 6e 20 6f 66 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2c 20 60 67 70 74 | ion.of.`gptel-make-openai',.`gpt |
| 23440 | 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 27 0a 61 6e 64 20 60 67 70 74 65 6c 2d 6d 61 | el-make-anthropic'.and.`gptel-ma |
| 23460 | 6b 65 2d 6f 6c 6c 61 6d 61 27 20 72 65 73 70 2e 20 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 | ke-ollama'.resp..for.details.on. |
| 23480 | 68 6f 77 20 74 6f 20 73 70 65 63 69 66 79 20 6d 65 64 69 61 0a 73 75 70 70 6f 72 74 20 66 6f 72 | how.to.specify.media.support.for |
| 234a0 | 20 6d 6f 64 65 6c 73 2e 0a 0a 33 2e 20 4f 6e 6c 79 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 | .models...3..Only.\"standalone\" |
| 234c0 | 20 6c 69 6e 6b 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 61 72 65 20 63 6f 6e 73 69 | .links.in.chat.buffers.are.consi |
| 234e0 | 64 65 72 65 64 2e 0a 54 68 65 73 65 20 61 72 65 20 6c 69 6e 6b 73 20 6f 6e 20 74 68 65 69 72 20 | dered..These.are.links.on.their. |
| 23500 | 6f 77 6e 20 6c 69 6e 65 20 77 69 74 68 20 6e 6f 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 | own.line.with.no.surrounding.tex |
| 23520 | 74 2e 0a 46 75 72 74 68 65 72 3a 0a 0a 2d 20 49 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 6f 6e 6c 79 | t..Further:..-.In.Org.mode,.only |
| 23540 | 20 66 69 6c 65 73 20 6f 72 20 55 52 4c 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 5b 5b 2f | .files.or.URLs.of.the.form...[[/ |
| 23560 | 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 5d 5b 62 72 61 63 6b 65 74 20 6c 69 6e 6b 73 5d 5d 20 61 | path/to/media][bracket.links]].a |
| 23580 | 6e 64 20 3c 61 6e 67 6c 65 2f 6c 69 6e 6b 2f 70 61 74 68 3e 0a 20 20 61 72 65 20 73 65 6e 74 2e | nd.<angle/link/path>...are.sent. |
| 235a0 | 0a 0a 2d 20 49 6e 20 4d 61 72 6b 64 6f 77 6e 20 6d 6f 64 65 2c 20 6f 6e 6c 79 20 66 69 6c 65 73 | ..-.In.Markdown.mode,.only.files |
| 235c0 | 20 6f 72 20 55 52 4c 53 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 5b 62 72 61 63 6b 65 74 20 | .or.URLS.of.the.form...[bracket. |
| 235e0 | 6c 69 6e 6b 5d 28 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 29 20 61 6e 64 20 3c 61 6e 67 6c 65 | link](/path/to/media).and.<angle |
| 23600 | 2f 6c 69 6e 6b 2f 70 61 74 68 3e 0a 20 20 61 72 65 20 73 65 6e 74 2e 0a 0a 54 68 69 73 20 6f 70 | /link/path>...are.sent...This.op |
| 23620 | 74 69 6f 6e 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 6e 20 6e 6f 6e 2d 63 68 61 74 20 62 | tion.has.no.effect.in.non-chat.b |
| 23640 | 75 66 66 65 72 73 2e 20 20 54 6f 20 69 6e 63 6c 75 64 65 0a 6d 65 64 69 61 20 28 69 6e 63 6c 75 | uffers...To.include.media.(inclu |
| 23660 | 64 69 6e 67 20 69 6d 61 67 65 73 29 20 6d 6f 72 65 20 67 65 6e 65 72 61 6c 6c 79 2c 20 75 73 65 | ding.images).more.generally,.use |
| 23680 | 20 60 67 70 74 65 6c 2d 61 64 64 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 | .`gptel-add'."...:type.'boolean) |
| 236a0 | 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 | ..(defcustom.gptel-use-context.' |
| 236c0 | 73 79 73 74 65 6d 0a 20 20 22 57 68 65 72 65 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 | system..."Where.in.the.request.t |
| 236e0 | 6f 20 69 6e 6a 65 63 74 20 67 70 74 65 6c 27 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 | o.inject.gptel's.additional.cont |
| 23700 | 65 78 74 2e 0a 0a 67 70 74 65 6c 20 61 6c 77 61 79 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 | ext...gptel.always.includes.the. |
| 23720 | 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 20 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 | active.region.or.the.buffer.up.t |
| 23740 | 6f 20 74 68 65 0a 63 75 72 73 6f 72 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 74 | o.the.cursor.in.the.request.to.t |
| 23760 | 68 65 20 4c 4c 4d 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 | he.LLM...Additionally,.you.can.a |
| 23780 | 64 64 0a 6f 74 68 65 72 20 62 75 66 66 65 72 73 20 6f 72 20 74 68 65 69 72 20 72 65 67 69 6f 6e | dd.other.buffers.or.their.region |
| 237a0 | 73 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 0a 60 67 70 74 65 6c 2d 61 64 64 | s.to.the.context.with.`gptel-add |
| 237c0 | 2d 63 6f 6e 74 65 78 74 27 2c 20 6f 72 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2e | -context',.or.from.gptel's.menu. |
| 237e0 | 20 20 54 68 69 73 20 64 61 74 61 20 77 69 6c 6c 20 62 65 0a 73 65 6e 74 20 77 69 74 68 20 65 76 | ..This.data.will.be.sent.with.ev |
| 23800 | 65 72 79 20 72 65 71 75 65 73 74 2e 0a 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 63 6f 6e 74 72 6f | ery.request...This.option.contro |
| 23820 | 6c 73 20 77 68 65 74 68 65 72 20 61 6e 64 20 77 68 65 72 65 20 74 68 69 73 20 61 64 64 69 74 69 | ls.whether.and.where.this.additi |
| 23840 | 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 69 73 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 | onal.context.is.included.in.the. |
| 23860 | 72 65 71 75 65 73 74 2e 0a 0a 43 75 72 72 65 6e 74 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 70 | request...Currently.supported.op |
| 23880 | 74 69 6f 6e 73 20 61 72 65 3a 0a 0a 20 20 20 20 6e 69 6c 20 20 20 20 20 2d 20 44 6f 20 6e 6f 74 | tions.are:......nil.....-.Do.not |
| 238a0 | 20 75 73 65 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 0a 20 20 20 20 73 79 73 74 65 6d 20 20 2d 20 | .use.the.context......system..-. |
| 238c0 | 49 6e 63 6c 75 64 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 74 68 65 20 73 79 73 | Include.the.context.with.the.sys |
| 238e0 | 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 20 20 20 20 75 73 65 72 20 20 20 20 2d 20 49 6e 63 6c 75 | tem.message......user....-.Inclu |
| 23900 | 64 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 74 68 65 20 75 73 65 72 20 70 72 6f | de.the.context.with.the.user.pro |
| 23920 | 6d 70 74 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 | mpt."...:group.'gptel...:type.'( |
| 23940 | 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 44 6f | choice...........(const.:tag."Do |
| 23960 | 6e 27 74 20 69 6e 63 6c 75 64 65 20 63 6f 6e 74 65 78 74 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 | n't.include.context".nil)....... |
| 23980 | 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 57 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 | ....(const.:tag."With.system.mes |
| 239a0 | 73 61 67 65 22 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a | sage".system)...........(const.: |
| 239c0 | 74 61 67 20 22 57 69 74 68 20 75 73 65 72 20 70 72 6f 6d 70 74 22 20 75 73 65 72 29 29 29 0a 0a | tag."With.user.prompt".user))).. |
| 239e0 | 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 | (defcustom.gptel-include-reasoni |
| 23a00 | 6e 67 20 74 0a 20 20 22 48 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 4c 4c 4d 20 72 65 61 73 6f 6e | ng.t..."How.to.handle.LLM.reason |
| 23a20 | 69 6e 67 20 6f 72 20 5c 22 74 68 69 6e 6b 69 6e 67 5c 22 20 74 65 78 74 20 62 6c 6f 63 6b 73 2e | ing.or.\"thinking\".text.blocks. |
| 23a40 | 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 65 69 72 20 72 65 73 | ..Some.LLMs.include.in.their.res |
| 23a60 | 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 69 6f 6e 2e 20 20 54 | ponse.a.\"thinking\".section...T |
| 23a80 | 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 6c 69 74 79 20 6f 66 | his.text.improves.the.quality.of |
| 23aa0 | 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 62 75 74 20 6d 61 79 | .the.LLM's.final.output,.but.may |
| 23ac0 | 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 75 20 62 79 20 69 74 | .not.be.interesting.to.you.by.it |
| 23ae0 | 73 65 6c 66 2e 0a 0a 53 75 70 70 6f 72 74 65 64 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 74 68 65 | self...Supported.options.are.the |
| 23b00 | 20 73 79 6d 62 6f 6c 73 0a 0a 20 20 20 20 74 20 20 20 20 20 20 20 2d 20 49 6e 63 6c 75 64 65 20 | .symbols......t.......-.Include. |
| 23b20 | 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 0a 20 | with.the.response,.the.default.. |
| 23b40 | 20 20 20 6e 69 6c 20 20 20 20 20 2d 20 44 6f 20 6e 6f 74 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 | ...nil.....-.Do.not.include..... |
| 23b60 | 69 67 6e 6f 72 65 20 20 2d 20 49 6e 63 6c 75 64 65 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f | ignore..-.Include.with.the.respo |
| 23b80 | 6e 73 65 20 62 75 74 20 69 67 6e 6f 72 65 20 6f 6e 20 73 75 62 73 65 71 75 65 6e 74 0a 20 20 20 | nse.but.ignore.on.subsequent.... |
| 23ba0 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 0a 0a 49 | ...........conversation.turns..I |
| 23bc0 | 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 61 20 | t.can.also.be.a.string.naming.a. |
| 23be0 | 62 75 66 66 65 72 2c 20 69 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 0a 72 65 61 73 6f 6e | buffer,.in.which.case.the.reason |
| 23c00 | 69 6e 67 20 74 65 78 74 20 77 69 6c 6c 20 62 65 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 | ing.text.will.be.inserted.at.the |
| 23c20 | 20 65 6e 64 20 6f 66 20 74 68 61 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 | .end.of.that.buffer."...:group.' |
| 23c40 | 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 20 20 20 20 20 20 | gptel...:type.'(choice.......... |
| 23c60 | 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 77 69 74 68 20 72 65 73 70 6f | .(const.:tag."Include.with.respo |
| 23c80 | 6e 73 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 44 | nse".t)...........(const.:tag."D |
| 23ca0 | 6f 6e 27 74 20 69 6e 63 6c 75 64 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f | on't.include".nil)...........(co |
| 23cc0 | 6e 73 74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 62 75 74 20 69 67 6e 6f 72 65 22 20 69 67 | nst.:tag."Include.but.ignore".ig |
| 23ce0 | 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 49 6e | nore)...........(string.:tag."In |
| 23d00 | 63 6c 75 64 65 20 69 6e 20 62 75 66 66 65 72 22 29 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 | clude.in.buffer")))..(defvar-loc |
| 23d20 | 61 6c 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 0a | al.gptel--old-header-line.nil).. |
| 23d40 | 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c | (defvar.gptel-context--alist.nil |
| 23d60 | 0a 20 20 22 4c 69 73 74 20 6f 66 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 | ..."List.of.gptel's.context.sour |
| 23d80 | 63 65 73 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a | ces...Each.entry.is.of.the.form. |
| 23da0 | 20 28 62 75 66 66 65 72 20 2e 20 28 6f 76 65 72 6c 61 79 31 20 6f 76 65 72 6c 61 79 32 20 2e 2e | .(buffer...(overlay1.overlay2... |
| 23dc0 | 2e 29 29 0a 6f 72 0a 20 28 5c 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 2e 22 29 0a 0a 28 | .)).or..(\"path/to/file\").")..( |
| 23de0 | 64 65 66 76 61 72 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 | defvar.gptel--request-alist.nil. |
| 23e00 | 22 41 6c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e | "Alist.of.active.gptel.requests. |
| 23e20 | 22 29 0a 0a 0c 0a 3b 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 | ")....;;;.Utility.functions..(de |
| 23e40 | 66 75 6e 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 | fun.gptel-api-key-from-auth-sour |
| 23e60 | 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 6f 73 74 20 75 73 65 72 29 0a 20 20 22 4c 6f 6f 6b | ce.(&optional.host.user)..."Look |
| 23e80 | 75 70 20 61 70 69 20 6b 65 79 20 69 6e 20 74 68 65 20 61 75 74 68 20 73 6f 75 72 63 65 2e 0a 42 | up.api.key.in.the.auth.source..B |
| 23ea0 | 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 4c 4c 4d 20 68 6f 73 74 20 66 6f 72 20 74 68 65 20 | y.default,.the.LLM.host.for.the. |
| 23ec0 | 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 69 73 20 75 73 65 64 20 61 73 20 48 4f 53 54 2c 0a | active.backend.is.used.as.HOST,. |
| 23ee0 | 61 6e 64 20 5c 22 61 70 69 6b 65 79 5c 22 20 61 73 20 55 53 45 52 2e 22 0a 20 20 28 69 66 2d 6c | and.\"apikey\".as.USER."...(if-l |
| 23f00 | 65 74 2a 20 28 28 73 65 63 72 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | et*.((secret..............(plist |
| 23f20 | 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 61 75 74 68 2d 73 6f | -get...............(car.(auth-so |
| 23f40 | 75 72 63 65 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | urce-search..................... |
| 23f60 | 3a 68 6f 73 74 20 28 6f 72 20 68 6f 73 74 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 68 6f | :host.(or.host.(gptel-backend-ho |
| 23f80 | 73 74 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 20 20 20 | st.gptel-backend)).............. |
| 23fa0 | 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 6f 72 20 75 73 65 72 20 22 61 70 69 6b 65 79 22 29 0a | .......:user.(or.user."apikey"). |
| 23fc0 | 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 20 27 28 3a | ....................:require.'(: |
| 23fe0 | 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 63 72 65 74 29 | secret)))...............:secret) |
| 24000 | 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 65 63 72 65 74 29 0a | )).......(if.(functionp.secret). |
| 24020 | 20 20 20 20 20 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 20 | ..........(encode-coding-string. |
| 24040 | 28 66 75 6e 63 61 6c 6c 20 73 65 63 72 65 74 29 20 27 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 | (funcall.secret).'utf-8)........ |
| 24060 | 20 73 65 63 72 65 74 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 60 67 70 | .secret).....(user-error."No.`gp |
| 24080 | 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 61 75 74 68 20 73 | tel-api-key'.found.in.the.auth.s |
| 240a0 | 6f 75 72 63 65 22 29 29 29 0a 0a 3b 3b 20 46 49 58 4d 45 20 53 68 6f 75 6c 64 20 77 65 20 75 74 | ource")))..;;.FIXME.Should.we.ut |
| 240c0 | 66 2d 38 20 65 6e 63 6f 64 65 20 74 68 65 20 61 70 69 2d 6b 65 79 20 68 65 72 65 3f 0a 28 64 65 | f-8.encode.the.api-key.here?.(de |
| 240e0 | 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 20 28 26 6f 70 74 69 6f 6e 61 | fun.gptel--get-api-key.(&optiona |
| 24100 | 6c 20 6b 65 79 29 0a 20 20 22 47 65 74 20 61 70 69 20 6b 65 79 20 66 72 6f 6d 20 4b 45 59 2c 20 | l.key)..."Get.api.key.from.KEY,. |
| 24120 | 6f 72 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 2e 22 0a 20 20 28 77 68 65 | or.from.`gptel-api-key'."...(whe |
| 24140 | 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 2d 73 79 6d 20 28 6f 72 20 6b 65 79 20 28 67 70 74 65 6c 2d | n-let*.((key-sym.(or.key.(gptel- |
| 24160 | 62 61 63 6b 65 6e 64 2d 6b 65 79 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 | backend-key.gptel-backend))))... |
| 24180 | 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 6b 65 79 2d 73 79 6d 0a 20 20 20 20 20 20 28 66 75 | ..(cl-typecase.key-sym.......(fu |
| 241a0 | 6e 63 74 69 6f 6e 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 72 69 67 68 74 20 28 66 75 6e 63 61 | nction.(string-trim-right.(funca |
| 241c0 | 6c 6c 20 6b 65 79 2d 73 79 6d 29 20 22 5b 5c 6e 5c 72 5d 2b 22 29 29 0a 20 20 20 20 20 20 28 73 | ll.key-sym)."[\n\r]+")).......(s |
| 241e0 | 74 72 69 6e 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 72 69 67 68 74 20 6b 65 79 2d 73 79 6d | tring.(string-trim-right.key-sym |
| 24200 | 20 22 5b 5c 6e 5c 72 5d 2b 22 29 29 0a 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 69 66 2d 6c | ."[\n\r]+")).......(symbol.(if-l |
| 24220 | 65 74 2a 20 28 28 76 61 6c 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 6b 65 79 2d 73 79 6d 29 | et*.((val.(symbol-value.key-sym) |
| 24240 | 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 65 6c 2d 2d 67 65 74 | ))...................(gptel--get |
| 24260 | 2d 61 70 69 2d 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 | -api-key.val).................(e |
| 24280 | 72 72 6f 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 | rror."`gptel-api-key'.is.not.val |
| 242a0 | 69 64 22 29 29 29 0a 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 61 | id"))).......(t.(error."`gptel-a |
| 242c0 | 70 69 2d 6b 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 29 29 29 29 0a 0a 28 64 65 66 | pi-key'.is.not.valid")))))..(def |
| 242e0 | 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 76 61 6c 29 0a 20 20 22 | subst.gptel--to-number.(val)..." |
| 24300 | 45 6e 73 75 72 65 20 56 41 4c 20 69 73 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 63 6f 6e 64 | Ensure.VAL.is.a.number."...(cond |
| 24320 | 0a 20 20 20 28 28 6e 75 6d 62 65 72 70 20 76 61 6c 29 20 76 61 6c 29 0a 20 20 20 28 28 73 74 72 | ....((numberp.val).val)....((str |
| 24340 | 69 6e 67 70 20 76 61 6c 29 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 61 6c 29 | ingp.val).(string-to-number.val) |
| 24360 | 29 0a 20 20 20 28 28 65 72 72 6f 72 20 22 25 53 20 63 61 6e 6e 6f 74 20 62 65 20 63 6f 6e 76 65 | )....((error."%S.cannot.be.conve |
| 24380 | 72 74 65 64 20 74 6f 20 61 20 6e 75 6d 62 65 72 22 20 76 61 6c 29 29 29 29 0a 0a 28 64 65 66 73 | rted.to.a.number".val))))..(defs |
| 243a0 | 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 28 73 29 0a 20 20 22 43 6f 6e | ubst.gptel--to-string.(s)..."Con |
| 243c0 | 76 65 72 74 20 53 20 74 6f 20 61 20 73 74 72 69 6e 67 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e | vert.S.to.a.string,.if.possible. |
| 243e0 | 22 0a 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 73 0a 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 | "...(cl-typecase.s.....(symbol.( |
| 24400 | 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 29 29 0a 20 20 20 20 28 73 74 72 69 6e 67 20 73 29 0a 20 | symbol-name.s)).....(string.s).. |
| 24420 | 20 20 20 28 6f 74 68 65 72 77 69 73 65 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 73 | ...(otherwise.(prin1-to-string.s |
| 24440 | 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 69 6e 74 65 72 6e 20 28 73 | ))))..(defsubst.gptel--intern.(s |
| 24460 | 29 0a 20 20 22 49 6e 74 65 72 6e 20 53 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 28 | )..."Intern.S,.if.possible."...( |
| 24480 | 63 6c 2d 65 74 79 70 65 63 61 73 65 20 73 0a 20 20 20 20 28 73 79 6d 62 6f 6c 20 73 29 0a 20 20 | cl-etypecase.s.....(symbol.s)... |
| 244a0 | 20 20 28 73 74 72 69 6e 67 20 28 69 6e 74 65 72 6e 20 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | ..(string.(intern.s))))..(defun. |
| 244c0 | 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 20 28 26 72 65 73 74 20 70 6c 69 73 74 | gptel--merge-plists.(&rest.plist |
| 244e0 | 73 29 0a 20 20 22 4d 65 72 67 65 20 50 4c 49 53 54 53 2c 20 61 6c 74 65 72 69 6e 67 20 74 68 65 | s)..."Merge.PLISTS,.altering.the |
| 24500 | 20 66 69 72 73 74 20 6f 6e 65 2e 0a 0a 4c 61 74 65 72 20 70 6c 69 73 74 73 20 69 6e 20 74 68 65 | .first.one...Later.plists.in.the |
| 24520 | 20 73 65 71 75 65 6e 63 65 20 74 61 6b 65 20 70 72 65 63 65 64 65 6e 63 65 20 6f 76 65 72 20 65 | .sequence.take.precedence.over.e |
| 24540 | 61 72 6c 69 65 72 20 6f 6e 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 3b 3b 20 28 72 74 6e 20 28 63 | arlier.ones."...(let.(;;.(rtn.(c |
| 24560 | 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6f 70 20 70 6c 69 73 74 73 29 29 29 0a 20 20 20 20 | opy-sequence.(pop.plists)))..... |
| 24580 | 20 20 20 20 28 72 74 6e 20 28 70 6f 70 20 70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 20 20 70 | ....(rtn.(pop.plists)).........p |
| 245a0 | 20 76 20 6c 73 29 0a 20 20 20 20 28 77 68 69 6c 65 20 70 6c 69 73 74 73 0a 20 20 20 20 20 20 28 | .v.ls).....(while.plists.......( |
| 245c0 | 73 65 74 71 20 6c 73 20 28 70 6f 70 20 70 6c 69 73 74 73 29 29 0a 20 20 20 20 20 20 28 77 68 69 | setq.ls.(pop.plists)).......(whi |
| 245e0 | 6c 65 20 6c 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 20 28 70 6f 70 20 6c 73 29 20 76 | le.ls.........(setq.p.(pop.ls).v |
| 24600 | 20 28 70 6f 70 20 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 74 6e 20 28 70 6c | .(pop.ls)).........(setq.rtn.(pl |
| 24620 | 69 73 74 2d 70 75 74 20 72 74 6e 20 70 20 76 29 29 29 29 0a 20 20 20 20 72 74 6e 29 29 0a 0a 28 | ist-put.rtn.p.v)))).....rtn))..( |
| 24640 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 75 74 6f 2d 73 63 72 6f 6c 6c 20 28 29 0a 20 20 22 53 63 | defun.gptel-auto-scroll.()..."Sc |
| 24660 | 72 6f 6c 6c 20 77 69 6e 64 6f 77 20 69 66 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 | roll.window.if.LLM.response.cont |
| 24680 | 69 6e 75 65 73 20 62 65 6c 6f 77 20 76 69 65 77 70 6f 72 74 2e 0a 0a 4e 6f 74 65 3a 20 54 68 69 | inues.below.viewport...Note:.Thi |
| 246a0 | 73 20 77 69 6c 6c 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 2e 22 0a 20 20 28 77 68 65 6e | s.will.move.the.cursor."...(when |
| 246c0 | 2d 6c 65 74 2a 20 28 28 77 69 6e 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 | -let*.((win.(get-buffer-window.( |
| 246e0 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 27 76 69 73 69 62 6c 65 29 29 0a 20 20 20 20 20 | current-buffer).'visible))...... |
| 24700 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 70 6f 73 2d 76 69 73 69 62 6c 65 2d 69 6e 2d 77 | .........((not.(pos-visible-in-w |
| 24720 | 69 6e 64 6f 77 2d 70 20 28 70 6f 69 6e 74 29 20 77 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 | indow-p.(point).win))).......... |
| 24740 | 20 20 20 20 20 28 73 63 72 6f 6c 6c 2d 65 72 72 6f 72 2d 74 6f 70 2d 62 6f 74 74 6f 6d 20 74 29 | .....(scroll-error-top-bottom.t) |
| 24760 | 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 20 | ).....(condition-case.nil....... |
| 24780 | 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 77 69 6e 0a 20 20 20 20 | ..(with-selected-window.win..... |
| 247a0 | 20 20 20 20 20 20 28 73 63 72 6f 6c 6c 2d 75 70 2d 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 | ......(scroll-up-command))...... |
| 247c0 | 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 | .(error.nil))))..(defun.gptel-be |
| 247e0 | 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 6f 6e 61 6c 20 5f | ginning-of-response.(&optional._ |
| 24800 | 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 68 65 20 62 65 67 | ._.arg)..."Move.point.to.the.beg |
| 24820 | 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 20 41 52 47 20 74 | inning.of.the.LLM.response.ARG.t |
| 24840 | 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 20 | imes."...(interactive.(list.nil. |
| 24860 | 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 78 | nil......................(prefix |
| 24880 | 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 72 | -numeric-value.current-prefix-ar |
| 248a0 | 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 6e 73 65 20 6e 69 | g)))...(gptel-end-of-response.ni |
| 248c0 | 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 65 66 75 6e 20 67 | l.nil.(-.(or.arg.1))))..(defun.g |
| 248e0 | 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 69 6f 6e 61 6c 20 | ptel-end-of-response.(&optional. |
| 24900 | 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 68 65 20 65 6e | _._.arg)..."Move.point.to.the.en |
| 24920 | 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 74 69 6d 65 73 2e | d.of.the.LLM.response.ARG.times. |
| 24940 | 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 20 6e 69 6c 0a 20 | "...(interactive.(list.nil.nil.. |
| 24960 | 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 78 2d 6e 75 6d 65 | ....................(prefix-nume |
| 24980 | 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 72 67 29 29 29 0a | ric-value.current-prefix-arg))). |
| 249a0 | 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 29 0a 20 20 28 6c | ..(unless.arg.(setq.arg.1))...(l |
| 249c0 | 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 20 20 20 20 20 20 | et.((search.(if.(>.arg.0)....... |
| 249e0 | 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 72 74 79 2d 73 65 | ..............#'text-property-se |
| 24a00 | 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 20 20 20 20 20 23 | arch-forward...................# |
| 24a20 | 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 77 61 72 64 29 29 | 'text-property-search-backward)) |
| 24a40 | 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 29 29 0a 20 20 20 | ).....(dotimes.(_.(abs.arg)).... |
| 24a60 | 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 27 72 65 73 70 6f | ...(funcall.search.'gptel.'respo |
| 24a80 | 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 0a 20 20 20 20 20 | nse.t).......(if.(>.arg.0)...... |
| 24aa0 | 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 61 74 20 22 | .....(when.(looking-at.(concat." |
| 24ac0 | 5c 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 | \n\\{1,2\\}".................... |
| 24ae0 | 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 20 | .................(regexp-quote.. |
| 24b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 24b20 | 20 20 20 20 28 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 | ....(gptel-prompt-prefix-string) |
| 24b40 | 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 | )............................... |
| 24b60 | 20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 | ......"?")).............(goto-ch |
| 24b80 | 61 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 28 77 68 65 6e | ar.(match-end.0))).........(when |
| 24ba0 | 20 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 |
| 24bc0 | 75 6f 74 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 | uote............................ |
| 24be0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 | ..........(gptel-response-prefix |
| 24c00 | 2d 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 | -string))....................... |
| 24c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............."?").............. |
| 24c40 | 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 29 0a 20 20 20 20 | ...............(point-min))..... |
| 24c60 | 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 |
| 24c80 | 67 20 30 29 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 61 74 2d | g.0)))))))..(defmacro.gptel--at- |
| 24ca0 | 77 6f 72 64 2d 65 6e 64 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 63 75 74 65 | word-end.(&rest.body)..."Execute |
| 24cc0 | 20 42 4f 44 59 20 61 74 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 6f 72 64 | .BODY.at.end.of.the.current.word |
| 24ce0 | 20 6f 72 20 70 75 6e 63 74 75 61 74 69 6f 6e 2e 22 0a 20 20 60 28 73 61 76 65 2d 65 78 63 75 72 | .or.punctuation."...`(save-excur |
| 24d00 | 73 69 6f 6e 0a 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 | sion......(skip-syntax-forward." |
| 24d20 | 77 2e 22 29 0a 20 20 20 20 20 2c 28 6d 61 63 72 6f 65 78 70 2d 70 72 6f 67 6e 20 62 6f 64 79 29 | w.")......,(macroexp-progn.body) |
| 24d40 | 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 | ))..(defmacro.gptel--with-buffer |
| 24d60 | 2d 63 6f 70 79 20 28 62 75 66 20 73 74 61 72 74 20 65 6e 64 20 26 72 65 73 74 20 62 6f 64 79 29 | -copy.(buf.start.end.&rest.body) |
| 24d80 | 0a 20 20 22 43 6f 70 79 20 67 70 74 65 6c 27 73 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 73 | ..."Copy.gptel's.local.variables |
| 24da0 | 20 66 72 6f 6d 20 42 55 46 20 74 6f 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 61 6e 64 20 72 | .from.BUF.to.a.temp.buffer.and.r |
| 24dc0 | 75 6e 20 42 4f 44 59 2e 0a 0a 49 66 20 70 6f 73 69 74 69 6f 6e 73 20 53 54 41 52 54 20 61 6e 64 | un.BODY...If.positions.START.and |
| 24de0 | 20 45 4e 44 20 61 72 65 20 70 72 6f 76 69 64 65 64 2c 20 69 6e 73 65 72 74 20 74 68 61 74 20 70 | .END.are.provided,.insert.that.p |
| 24e00 | 61 72 74 20 6f 66 20 42 55 46 20 66 69 72 73 74 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 | art.of.BUF.first."...(declare.(i |
| 24e20 | 6e 64 65 6e 74 20 33 29 29 0a 20 20 60 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 | ndent.3))...`(with-temp-buffer.. |
| 24e40 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 79 6d 20 27 28 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | ....(dolist.(sym.'(.gptel-backen |
| 24e60 | 64 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 6d 6f | d.gptel--system-message.gptel-mo |
| 24e80 | 64 65 6c 0a 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 6d | del......................gptel-m |
| 24ea0 | 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 74 | ode.gptel-track-response.gptel-t |
| 24ec0 | 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 20 | rack-media...................... |
| 24ee0 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 | gptel-prompt-filter-hook))...... |
| 24f00 | 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 79 6d 29 0a | .(set.(make-local-variable.sym). |
| 24f20 | 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 73 79 6d 20 2c | .......(buffer-local-value.sym., |
| 24f40 | 62 75 66 29 29 29 0a 20 20 20 20 20 2c 28 77 68 65 6e 20 28 61 6e 64 20 73 74 61 72 74 20 65 6e | buf)))......,(when.(and.start.en |
| 24f60 | 64 29 0a 20 20 20 20 20 20 20 60 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 | d)........`(insert-buffer-substr |
| 24f80 | 69 6e 67 20 2c 62 75 66 20 2c 73 74 61 72 74 20 2c 65 6e 64 29 29 0a 20 20 20 20 20 28 6c 65 74 | ing.,buf.,start.,end))......(let |
| 24fa0 | 20 28 28 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 | .((major-mode.(buffer-local-valu |
| 24fc0 | 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 2c 62 75 66 29 29 29 0a 20 20 20 20 20 20 2c 40 62 6f | e.'major-mode.,buf))).......,@bo |
| 24fe0 | 64 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 | dy)))..(defun.gptel-prompt-prefi |
| 25000 | 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 73 65 | x-string.()..."Prefix.before.use |
| 25020 | 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 28 6f | r.prompts.in.`gptel-mode'."...(o |
| 25040 | 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 2d 70 72 | r.(alist-get.major-mode.gptel-pr |
| 25060 | 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 75 6e 20 | ompt-prefix-alist).""))..(defun. |
| 25080 | 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 6e 67 20 28 29 0a | gptel-response-prefix-string.(). |
| 250a0 | 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 6e 73 65 73 20 69 | .."Prefix.before.LLM.responses.i |
| 250c0 | 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 | n.`gptel-mode'."...(or.(alist-ge |
| 250e0 | 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 73 65 2d 70 72 65 66 | t.major-mode.gptel-response-pref |
| 25100 | 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d | ix-alist).""))..(defsubst.gptel- |
| 25120 | 2d 74 72 69 6d 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 | -trim-prefixes.(s)..."Remove.pro |
| 25140 | 6d 70 74 2f 72 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 | mpt/response.prefixes.from.strin |
| 25160 | 67 20 53 2e 0a 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 | g.S...Return.nil.if.string.colla |
| 25180 | 70 73 65 73 20 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 | pses.to.empty.string."...(let*.( |
| 251a0 | 28 74 72 69 6d 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 | (trimmed.(string-trim-left...... |
| 251c0 | 20 20 20 20 20 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 | ..............s.(format."[\t\r\n |
| 251e0 | 20 5d 2a 5c 5c 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 | .]*\\(?:%s\\)?[\t\r\n.]*"....... |
| 25200 | 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 |
| 25220 | 75 6f 74 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 | uote............................ |
| 25240 | 20 20 20 28 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 | ...(gptel-prompt-prefix-string)) |
| 25260 | 29 29 29 0a 20 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 | )))..........(trimmed.(string-tr |
| 25280 | 69 6d 2d 72 69 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 | im-right....................trim |
| 252a0 | 6d 65 64 20 28 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 | med.(format."[\t\r\n.]*\\(?:%s\\ |
| 252c0 | 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 20 20 20 20 20 20 20 | )?[\t\r\n.]*"................... |
| 252e0 | 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 20 | .................(regexp-quote.. |
| 25300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 25320 | 20 20 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 69 6e 67 | ...(gptel-response-prefix-string |
| 25340 | 29 29 29 29 29 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 | )))))).....(unless.(string-empty |
| 25360 | 2d 70 20 74 72 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 | -p.trimmed).......trimmed)))..(d |
| 25380 | 65 66 73 75 62 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 | efsubst.gptel--link-standalone-p |
| 253a0 | 20 28 62 65 67 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 | .(beg.end)..."Return.non-nil.if. |
| 253c0 | 70 6f 73 69 74 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 | positions.BEG.and.END.are.isolat |
| 253e0 | 65 64 2e 0a 0a 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 | ed...This.means.the.extent.from. |
| 25400 | 42 45 47 20 74 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 | BEG.to.END.is.the.only.non-white |
| 25420 | 73 70 61 63 65 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 | space.content.on.this.line."...( |
| 25440 | 73 61 76 65 2d 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 | save-excursion.....(and.(=.beg.( |
| 25460 | 70 72 6f 67 6e 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 | progn.(goto-char.beg).(beginning |
| 25480 | 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 20 20 20 | -of-line)....................... |
| 254a0 | 20 28 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 | .(skip-chars-forward."\t.")..... |
| 254c0 | 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 20 | ...................(point))).... |
| 254e0 | 20 20 20 20 20 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 | ......(=.end.(progn.(goto-char.e |
| 25500 | 6e 64 29 20 28 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 | nd).(end-of-line)............... |
| 25520 | 20 20 20 20 20 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 | .........(skip-chars-backward."\ |
| 25540 | 74 20 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 28 70 6f 69 | t.")........................(poi |
| 25560 | 6e 74 29 29 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 2d 62 | nt))))))..(defvar-local.gptel--b |
| 25580 | 61 63 6b 65 6e 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 | ackend-name.nil..."Store.to.pers |
| 255a0 | 69 73 74 20 62 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 | ist.backend.name.across.Emacs.se |
| 255c0 | 73 73 69 6f 6e 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 | ssions...Note:.Changing.this.var |
| 255e0 | 69 61 62 6c 65 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 | iable.does.not.affect.gptel\\='s |
| 25600 | 20 62 65 68 61 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 | .behavior.in.any.way.").(put.'gp |
| 25620 | 74 65 6c 2d 2d 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 | tel--backend-name.'safe-local-va |
| 25640 | 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 3b 3b 3b 3b 20 4d 6f 64 65 6c 20 69 6e 74 | riable.#'always)..;;;;.Model.int |
| 25660 | 65 72 66 61 63 65 0a 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 | erface.;;.NOTE:.This.interface.w |
| 25680 | 6f 75 6c 64 20 62 65 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 | ould.be.simpler.to.implement.as. |
| 256a0 | 61 20 64 65 66 73 74 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 | a.defstruct...But.then.;;.users. |
| 256c0 | 63 61 6e 6e 6f 74 20 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 | cannot.set.`gptel-model'.to.a.sy |
| 256e0 | 6d 62 6f 6c 2f 73 74 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 | mbol/string.directly,.or.we'd.ne |
| 25700 | 65 64 0a 3b 3b 20 61 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 | ed.;;.another.map.from.these.sym |
| 25720 | 62 6f 6c 73 20 74 6f 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 | bols.to.the.actual.model.structs |
| 25740 | 2e 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 6e 61 6d 65 20 28 | ...(defsubst.gptel--model-name.( |
| 25760 | 6d 6f 64 65 6c 29 0a 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 | model)..."Get.name.of.gptel.MODE |
| 25780 | 4c 2e 22 0a 20 20 28 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 | L."...(gptel--to-string.model)). |
| 257a0 | 0a 28 64 65 66 73 75 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 | .(defsubst.gptel--model-capabili |
| 257c0 | 74 69 65 73 20 28 6d 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 | ties.(model)..."Get.MODEL.capabi |
| 257e0 | 6c 69 74 69 65 73 2e 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 | lities."...(get.model.:capabilit |
| 25800 | 69 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 6d 69 | ies))..(defsubst.gptel--model-mi |
| 25820 | 6d 65 73 20 28 6d 6f 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 | mes.(model)..."Get.supported.mim |
| 25840 | 65 2d 74 79 70 65 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 | e-types.for.MODEL."...(get.model |
| 25860 | 20 3a 6d 69 6d 65 2d 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 | .:mime-types))..(defsubst.gptel- |
| 25880 | 2d 6d 6f 64 65 6c 2d 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 | -model-capable-p.(cap.&optional. |
| 258a0 | 6d 6f 64 65 6c 29 0a 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 | model)..."Return.non-nil.if.MODE |
| 258c0 | 4c 20 73 75 70 70 6f 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 | L.supports.capability.CAP."...(m |
| 258e0 | 65 6d 71 20 63 61 70 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 | emq.cap.(gptel--model-capabiliti |
| 25900 | 65 73 0a 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 74 65 6c 2d | es..............(or.model.gptel- |
| 25920 | 6d 6f 64 65 6c 29 29 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 | model))))..;;.TODO.Handle.model. |
| 25940 | 6d 69 6d 65 20 73 70 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 | mime.specifications.like."image/ |
| 25960 | 2a 22 0a 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 2d 63 | *".(defsubst.gptel--model-mime-c |
| 25980 | 61 70 61 62 6c 65 2d 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 | apable-p.(mime.&optional.model). |
| 259a0 | 20 20 22 52 65 74 75 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 | .."Return.non.nil.if.MODEL.can.u |
| 259c0 | 6e 64 65 72 73 74 61 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 | nderstand.MIME.type."...(car-saf |
| 259e0 | 65 20 28 6d 65 6d 62 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 | e.(member.mime.(gptel--model-mim |
| 25a00 | 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 6f 72 20 6d | es.........................(or.m |
| 25a20 | 6f 64 65 6c 20 67 70 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 | odel.gptel-model)))))..(defsubst |
| 25a40 | 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 28 6d 6f | .gptel--model-request-params.(mo |
| 25a60 | 64 65 6c 29 0a 20 20 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 | del)..."Get.model-specific.reque |
| 25a80 | 73 74 20 70 61 72 61 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 | st.parameters.for.MODEL."...(get |
| 25aa0 | 20 6d 6f 64 65 6c 20 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 | .model.:request-params))..;;;;.F |
| 25ac0 | 69 6c 65 20 68 61 6e 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 | ile.handling.(defun.gptel--base6 |
| 25ae0 | 34 2d 65 6e 63 6f 64 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 | 4-encode.(file)..."Encode.FILE.a |
| 25b00 | 73 20 61 20 62 61 73 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 | s.a.base64.string...FILE.is.assu |
| 25b20 | 6d 65 64 20 74 6f 20 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 | med.to.exist.and.be.a.regular.fi |
| 25b40 | 6c 65 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 20 28 69 6e | le."...(with-temp-buffer.....(in |
| 25b60 | 73 65 72 74 2d 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 | sert-file-contents-literally.fil |
| 25b80 | 65 29 0a 20 20 20 20 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 | e).....(base64-encode-region.(po |
| 25ba0 | 69 6e 74 2d 6d 69 6e 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 | int-min).(point-max)............ |
| 25bc0 | 20 20 20 20 20 20 20 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 | ...............:no-line-break).. |
| 25be0 | 20 20 20 28 62 75 66 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 | ...(buffer-string)))..;;;;.Respo |
| 25c00 | 6e 73 65 20 74 65 78 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 | nse.text.recognition..(defun.gpt |
| 25c20 | 65 6c 2d 2d 67 65 74 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 | el--get-buffer-bounds.()..."Retu |
| 25c40 | 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 61 72 69 65 73 | rn.the.gptel.response.boundaries |
| 25c60 | 20 69 6e 20 74 68 65 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 | .in.the.buffer.as.an.alist."...( |
| 25c80 | 73 61 76 65 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 | save-excursion.....(save-restric |
| 25ca0 | 74 69 6f 6e 0a 20 20 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 | tion.......(widen).......(goto-c |
| 25cc0 | 68 61 72 20 28 70 6f 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 | har.(point-max)).......(let.((bo |
| 25ce0 | 75 6e 64 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 20 20 20 | unds).(prev-pt.(point)))........ |
| 25d00 | 20 28 77 68 69 6c 65 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 | .(while.(and.(/=.prev-pt.(point- |
| 25d20 | 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 28 67 6f 74 6f 2d | min)).....................(goto- |
| 25d40 | 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 79 2d 63 | char.(previous-single-property-c |
| 25d60 | 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 20 20 20 | hange........................... |
| 25d80 | 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 6e 74 2d | ......(point).'gptel.nil.(point- |
| 25da0 | 6d 69 6e 29 29 29 29 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 | min))))...........(when-let*.((p |
| 25dc0 | 72 6f 70 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 | rop.(get-char-property.(point).' |
| 25de0 | 67 70 74 65 6c 29 29 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 | gptel))).............(let*.((pro |
| 25e00 | 70 2d 6e 61 6d 65 20 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 | p-name.(if.(symbolp.prop).prop.( |
| 25e20 | 63 61 72 20 70 72 6f 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 | car.prop)))....................( |
| 25e40 | 76 61 6c 20 28 77 68 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 | val.(when.(consp.prop).(cdr.prop |
| 25e60 | 29 29 29 0a 20 20 20 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 | )))....................(bound.(i |
| 25e80 | 66 20 76 61 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 20 20 | f.val........................... |
| 25ea0 | 20 20 20 20 28 6c 69 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 | ....(list.(point).prev-pt.val).. |
| 25ec0 | 20 20 20 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 73 74 | ...........................(list |
| 25ee0 | 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 20 20 20 20 20 | .(point).prev-pt))))............ |
| 25f00 | 20 20 20 28 70 75 73 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 | ...(push.bound.(alist-get.prop-n |
| 25f20 | 61 6d 65 20 62 6f 75 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 | ame.bounds))))...........(setq.p |
| 25f40 | 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 62 6f 75 6e 64 73 29 | rev-pt.(point))).........bounds) |
| 25f60 | 29 29 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 | )))..(define-obsolete-function-a |
| 25f80 | 6c 69 61 73 0a 20 20 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 | lias...'gptel--get-bounds.'gptel |
| 25fa0 | 2d 2d 67 65 74 2d 72 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 | --get-response-bounds."0.9.8").. |
| 25fc0 | 28 64 65 66 75 6e 20 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 | (defun.gptel--get-response-bound |
| 25fe0 | 73 20 28 29 0a 20 20 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 | s.()..."Return.the.gptel.respons |
| 26000 | 65 20 62 6f 75 6e 64 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 | e.boundaries.around.point."...(l |
| 26020 | 65 74 20 28 70 72 6f 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 | et.(prop).....(save-excursion... |
| 26040 | 20 20 20 20 28 77 68 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 | ....(when.(text-property-search- |
| 26060 | 62 61 63 6b 77 61 72 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 | backward..............'gptel.'re |
| 26080 | 73 70 6f 6e 73 65 20 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 | sponse.t).........(when.(setq.pr |
| 260a0 | 6f 70 20 28 74 65 78 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 | op.(text-property-search-forward |
| 260c0 | 0a 20 20 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 65 | ...........................'gpte |
| 260e0 | 6c 20 27 72 65 73 70 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 | l.'response.t))...........(cons. |
| 26100 | 28 70 72 6f 70 2d 6d 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 | (prop-match-beginning.prop)..... |
| 26120 | 20 20 20 20 20 20 20 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 | ............(prop-match-end.prop |
| 26140 | 29 29 29 29 29 29 29 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 | )))))))..(defun.gptel--in-respon |
| 26160 | 73 65 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 | se-p.(&optional.pt)..."Check.if. |
| 26180 | 70 6f 73 69 74 69 6f 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 | position.PT.is.inside.a.gptel.re |
| 261a0 | 73 70 6f 6e 73 65 2e 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 | sponse."...(eq.(get-char-propert |
| 261c0 | 79 20 28 6f 72 20 70 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 | y.(or.pt.(point)).'gptel).'respo |
| 261e0 | 6e 73 65 29 29 0a 0a 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 | nse))..(defun.gptel--at-response |
| 26200 | 2d 68 69 73 74 6f 72 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 | -history-p.(&optional.pt)..."Che |
| 26220 | 63 6b 20 69 66 20 67 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 | ck.if.gptel.response.at.position |
| 26240 | 20 50 54 20 68 61 73 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 | .PT.has.variants."...(get-char-p |
| 26260 | 72 6f 70 65 72 74 79 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 | roperty.(or.pt.(point)).'gptel-h |
| 26280 | 69 73 74 6f 72 79 29 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 | istory))..(defvar.gptel--mode-de |
| 262a0 | 73 63 72 69 70 74 69 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 | scription-alist...'((js2-mode... |
| 262c0 | 20 20 20 2e 20 22 4a 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 | ....."Javascript").....(sh-mode. |
| 262e0 | 20 20 20 20 20 20 2e 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 | ........"Shell").....(enh-ruby-m |
| 26300 | 6f 64 65 20 2e 20 22 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 | ode..."Ruby").....(yaml-mode.... |
| 26320 | 20 2e 20 22 59 61 6d 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 | ..."Yaml").....(yaml-ts-mode.... |
| 26340 | 22 59 61 6d 6c 22 29 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 | "Yaml").....(rustic-mode....."Ru |
| 26360 | 73 74 22 29 29 0a 20 20 22 4d 61 70 70 69 6e 67 20 66 72 6f 6d 20 75 6e 63 6f 6e 76 65 6e 74 69 | st"))..."Mapping.from.unconventi |
| 26380 | 6f 6e 61 6c 6c 79 20 6e 61 6d 65 64 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 6c 61 6e 67 | onally.named.major.modes.to.lang |
| 263a0 | 75 61 67 65 73 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 77 68 65 6e 20 67 65 6e 65 72 61 | uages...This.is.used.when.genera |
| 263c0 | 74 69 6e 67 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e | ting.system.prompts.for.rewritin |
| 263e0 | 67 20 61 6e 64 0a 77 68 65 6e 20 69 6e 63 6c 75 64 69 6e 67 20 63 6f 6e 74 65 78 74 20 66 72 6f | g.and.when.including.context.fro |
| 26400 | 6d 20 74 68 65 73 65 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 | m.these.major.modes.")..(defun.g |
| 26420 | 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 28 6d 6f 64 65 2d 73 79 | ptel--strip-mode-suffix.(mode-sy |
| 26440 | 6d 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 2d 6d 6f 64 65 20 73 75 66 66 69 78 20 66 72 | m)..."Remove.the.-mode.suffix.fr |
| 26460 | 6f 6d 20 4d 4f 44 45 2d 53 59 4d 2e 0a 0a 4d 4f 44 45 2d 53 59 4d 20 69 73 20 74 79 70 69 63 61 | om.MODE-SYM...MODE-SYM.is.typica |
| 26480 | 6c 6c 79 20 61 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 73 79 6d 62 6f 6c 2e 22 0a 20 20 28 6f 72 20 | lly.a.major-mode.symbol."...(or. |
| 264a0 | 28 61 6c 69 73 74 2d 67 65 74 20 6d 6f 64 65 2d 73 79 6d 20 67 70 74 65 6c 2d 2d 6d 6f 64 65 2d | (alist-get.mode-sym.gptel--mode- |
| 264c0 | 64 65 73 63 72 69 70 74 69 6f 6e 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 | description-alist).......(let.(( |
| 264e0 | 6d 6f 64 65 2d 6e 61 6d 65 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 20 20 20 20 20 20 20 | mode-name.(thread-last.......... |
| 26500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6d 6f 64 | ................(symbol-name.mod |
| 26520 | 65 2d 73 79 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 | e-sym).......................... |
| 26540 | 28 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 22 2d 6d 6f 64 65 22 29 0a 20 | (string-remove-suffix."-mode").. |
| 26560 | 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 67 2d | ........................(string- |
| 26580 | 72 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 22 2d 74 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 | remove-suffix."-ts"))))......... |
| 265a0 | 3b 3b 20 4e 4f 54 45 3a 20 54 68 65 20 61 64 76 65 72 74 69 73 65 64 20 63 61 6c 6c 69 6e 67 20 | ;;.NOTE:.The.advertised.calling. |
| 265c0 | 63 6f 6e 76 65 6e 74 69 6f 6e 20 6f 66 20 70 72 6f 76 69 64 65 64 2d 6d 6f 64 65 2d 64 65 72 69 | convention.of.provided-mode-deri |
| 265e0 | 76 65 64 2d 70 0a 20 20 20 20 20 20 20 20 3b 3b 20 68 61 73 20 63 68 61 6e 67 65 64 20 69 6e 20 | ved-p.........;;.has.changed.in. |
| 26600 | 45 6d 61 63 73 20 33 30 2c 20 74 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 75 70 64 61 74 | Emacs.30,.this.needs.to.be.updat |
| 26620 | 65 64 20 65 76 65 6e 74 75 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 70 72 6f 76 69 | ed.eventually.........(if.(provi |
| 26640 | 64 65 64 2d 6d 6f 64 65 2d 64 65 72 69 76 65 64 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ded-mode-derived-p.............. |
| 26660 | 6d 6f 64 65 2d 73 79 6d 20 27 70 72 6f 67 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 20 27 | mode-sym.'prog-mode.'text-mode.' |
| 26680 | 74 65 78 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 2d 6e 61 6d 65 20 | tex-mode).............mode-name. |
| 266a0 | 22 22 29 29 29 29 0a 0a 3b 3b 3b 3b 20 44 69 72 65 63 74 69 76 65 20 68 61 6e 64 6c 69 6e 67 0a | ""))))..;;;;.Directive.handling. |
| 266c0 | 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a | ..(defvar.gptel--system-message. |
| 266e0 | 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 27 64 65 66 61 75 6c 74 20 67 70 74 65 6c 2d | ..(or.(alist-get.'default.gptel- |
| 26700 | 64 69 72 65 63 74 69 76 65 73 29 0a 20 20 20 20 20 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 | directives)......."You.are.a.lar |
| 26720 | 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 61 63 | ge.language.model.living.in.Emac |
| 26740 | 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 70 6f | s.and.a.helpful.assistant..Respo |
| 26760 | 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 0a 20 20 22 54 68 65 20 73 79 73 74 65 6d 20 6d 65 | nd.concisely.")..."The.system.me |
| 26780 | 73 73 61 67 65 20 75 73 65 64 20 62 79 20 67 70 74 65 6c 2e 22 29 0a 28 70 75 74 20 27 67 70 74 | ssage.used.by.gptel.").(put.'gpt |
| 267a0 | 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 | el--system-message.'safe-local-v |
| 267c0 | 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | ariable.#'always)..(defun.gptel- |
| 267e0 | 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 20 28 64 69 72 65 63 74 69 76 65 20 77 | -describe-directive.(directive.w |
| 26800 | 69 64 74 68 20 26 6f 70 74 69 6f 6e 61 6c 20 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a 20 20 22 46 | idth.&optional.replacement)..."F |
| 26820 | 69 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 20 66 6f 72 20 44 49 52 45 43 54 49 56 45 2c 20 74 | ind.description.for.DIRECTIVE,.t |
| 26840 | 72 75 6e 63 61 74 65 64 20 20 74 6f 20 57 49 44 54 48 2e 0a 0a 44 49 52 45 43 54 49 56 45 20 69 | runcated..to.WIDTH...DIRECTIVE.i |
| 26860 | 73 20 61 20 67 70 74 65 6c 20 64 69 72 65 63 74 69 76 65 2c 20 61 6e 64 20 63 61 6e 20 62 65 20 | s.a.gptel.directive,.and.can.be. |
| 26880 | 61 20 73 74 72 69 6e 67 2c 20 61 20 66 75 6e 63 74 69 6f 6e 0a 6f 72 20 61 20 6c 69 73 74 20 6f | a.string,.a.function.or.a.list.o |
| 268a0 | 66 20 73 74 72 69 6e 67 73 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 | f.strings...See.`gptel-directive |
| 268c0 | 73 27 2e 0a 0a 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 61 20 73 74 72 69 6e 67 20 69 6e 74 65 | s'...The.result.is.a.string.inte |
| 268e0 | 6e 64 65 64 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 20 20 4e 65 77 6c 69 6e 65 73 20 61 72 65 0a | nded.for.display...Newlines.are. |
| 26900 | 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 52 45 50 4c 41 43 45 4d 45 4e 54 2e 22 0a 20 20 28 63 | replaced.with.REPLACEMENT."...(c |
| 26920 | 6c 2d 74 79 70 65 63 61 73 65 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 28 73 74 72 69 6e 67 | l-typecase.directive.....(string |
| 26940 | 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c | ......(concat.......(string-repl |
| 26960 | 61 63 65 20 22 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 | ace."\n".(or.replacement.".")... |
| 26980 | 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 2d 73 74 | ....................(truncate-st |
| 269a0 | 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 20 20 20 | ring-to-width................... |
| 269c0 | 20 20 20 20 20 64 69 72 65 63 74 69 76 65 20 77 69 64 74 68 20 6e 69 6c 20 6e 69 6c 20 74 29 29 | .....directive.width.nil.nil.t)) |
| 269e0 | 29 29 0a 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 | )).....(function......(concat... |
| 26a00 | 20 20 20 20 22 ce bb 3a 20 22 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 | ...."..:.".......(string-replace |
| 26a20 | 0a 20 20 20 20 20 20 20 22 5c 6e 22 20 28 6f 72 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 22 20 22 | ........"\n".(or.replacement."." |
| 26a40 | 29 0a 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 69 64 | )........(truncate-string-to-wid |
| 26a60 | 74 68 0a 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 64 6f 63 20 28 | th.........(or.(and-let*.((doc.( |
| 26a80 | 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 | documentation.directive)))...... |
| 26aa0 | 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 6f 63 20 6e 69 6c 20 28 73 74 72 | .........(substring.doc.nil.(str |
| 26ac0 | 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5c 6e 22 20 64 6f 63 29 29 29 0a 20 20 20 20 20 20 20 20 | ing-match-p."\n".doc)))......... |
| 26ae0 | 20 20 20 20 22 5b 44 79 6e 61 6d 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 3b 20 6e 6f 20 | ...."[Dynamically.generated;.no. |
| 26b00 | 70 72 65 76 69 65 77 20 61 76 61 69 6c 61 62 6c 65 5d 22 29 0a 20 20 20 20 20 20 20 20 77 69 64 | preview.available]").........wid |
| 26b20 | 74 68 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 61 6e 64 2d | th.nil.nil.t)))).....(list.(and- |
| 26b40 | 6c 65 74 2a 20 28 28 66 72 6f 6d 2d 74 65 6d 70 6c 61 74 65 20 28 63 61 72 20 64 69 72 65 63 74 | let*.((from-template.(car.direct |
| 26b60 | 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 | ive))).............(gptel--descr |
| 26b80 | 69 62 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 66 72 6f 6d 2d | ibe-directive..............from- |
| 26ba0 | 74 65 6d 70 6c 61 74 65 20 77 69 64 74 68 29 29 29 0a 20 20 20 20 28 74 20 22 22 29 29 29 0a 0a | template.width))).....(t.""))).. |
| 26bc0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 28 64 | (defun.gptel--parse-directive.(d |
| 26be0 | 69 72 65 63 74 69 76 65 20 26 6f 70 74 69 6f 6e 61 6c 20 72 61 77 29 0a 20 20 22 50 61 72 73 65 | irective.&optional.raw)..."Parse |
| 26c00 | 20 44 49 52 45 43 54 49 56 45 20 69 6e 74 6f 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 | .DIRECTIVE.into.a.backend-approp |
| 26c20 | 72 69 61 74 65 20 66 6f 72 6d 2e 0a 0a 44 49 52 45 43 54 49 56 45 20 69 73 20 61 20 67 70 74 65 | riate.form...DIRECTIVE.is.a.gpte |
| 26c40 | 6c 20 64 69 72 65 63 74 69 76 65 3a 20 69 74 20 63 61 6e 20 62 65 20 61 20 73 74 72 69 6e 67 2c | l.directive:.it.can.be.a.string, |
| 26c60 | 20 61 20 6c 69 73 74 20 6f 72 20 61 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 | .a.list.or.a.function.that.retur |
| 26c80 | 6e 73 20 65 69 74 68 65 72 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 | ns.either,.see.`gptel-directives |
| 26ca0 | 27 2e 0a 0a 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 63 6f 6e 73 69 73 74 69 6e | '...Return.a.cons.cell.consistin |
| 26cc0 | 67 20 6f 66 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 | g.of.the.system.message.(a.strin |
| 26ce0 | 67 29 0a 61 6e 64 20 61 20 74 65 6d 70 6c 61 74 65 20 63 6f 6e 73 69 73 74 69 6e 67 20 6f 66 20 | g).and.a.template.consisting.of. |
| 26d00 | 61 6c 74 65 72 6e 61 74 69 6e 67 20 75 73 65 72 2f 4c 4c 4d 0a 72 65 63 6f 72 64 73 20 28 61 20 | alternating.user/LLM.records.(a. |
| 26d20 | 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 6f 72 20 6e 69 6c 29 2e 0a 0a 49 66 20 52 41 57 | list.of.strings.or.nil)...If.RAW |
| 26d40 | 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 75 73 65 72 2f 4c 4c 4d 20 72 65 63 6f 72 64 | .is.non-nil,.the.user/LLM.record |
| 26d60 | 73 20 61 72 65 20 6e 6f 74 20 70 72 6f 63 65 73 73 65 64 20 61 6e 64 20 61 72 65 0a 72 65 74 75 | s.are.not.processed.and.are.retu |
| 26d80 | 72 6e 65 64 20 61 73 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2e 22 0a 20 20 28 61 | rned.as.a.list.of.strings."...(a |
| 26da0 | 6e 64 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 | nd.directive........(cl-etypecas |
| 26dc0 | 65 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 20 20 28 | e.directive..........(string...( |
| 26de0 | 6c 69 73 74 20 64 69 72 65 63 74 69 76 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 74 | list.directive))..........(funct |
| 26e00 | 69 6f 6e 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 28 66 75 6e | ion.(gptel--parse-directive.(fun |
| 26e20 | 63 61 6c 6c 20 64 69 72 65 63 74 69 76 65 29 20 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 28 | call.directive).raw))..........( |
| 26e40 | 63 6f 6e 73 20 20 20 20 20 28 69 66 20 72 61 77 20 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 | cons.....(if.raw.directive...... |
| 26e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 61 72 20 64 69 72 65 63 | ................(cons.(car.direc |
| 26e80 | 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 20 20 20 20 | tive)........................... |
| 26ea0 | 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(gptel--parse-list............. |
| 26ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 63 | ................gptel-backend.(c |
| 26ee0 | 64 72 20 64 69 72 65 63 74 69 76 65 29 29 29 29 29 29 29 29 0a 0a 0a 0c 0a 3b 3b 3b 20 4c 6f 67 | dr.directive)))))))).....;;;.Log |
| 26f00 | 67 69 6e 67 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 | ging..(defconst.gptel--log-buffe |
| 26f20 | 72 2d 6e 61 6d 65 20 22 2a 67 70 74 65 6c 2d 6c 6f 67 2a 22 0a 20 20 22 4c 6f 67 20 62 75 66 66 | r-name."*gptel-log*"..."Log.buff |
| 26f40 | 65 72 20 66 6f 72 20 67 70 74 65 6c 2e 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | er.for.gptel.")..(declare-functi |
| 26f60 | 6f 6e 20 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 22 6a 73 6f 6e 22 29 0a 0a 28 64 | on.json-pretty-print."json")..(d |
| 26f80 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c 20 | efun.gptel--log.(data.&optional. |
| 26fa0 | 74 79 70 65 20 6e 6f 2d 6a 73 6f 6e 29 0a 20 20 22 4c 6f 67 20 44 41 54 41 20 74 6f 20 60 67 70 | type.no-json)..."Log.DATA.to.`gp |
| 26fc0 | 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 27 2e 0a 0a 54 59 50 45 20 69 73 20 | tel--log-buffer-name'...TYPE.is. |
| 26fe0 | 61 20 6c 61 62 65 6c 20 66 6f 72 20 64 61 74 61 20 62 65 69 6e 67 20 6c 6f 67 67 65 64 2e 20 20 | a.label.for.data.being.logged... |
| 27000 | 44 41 54 41 20 69 73 20 61 73 73 75 6d 65 64 20 74 6f 20 62 65 0a 56 61 6c 69 64 20 4a 53 4f 4e | DATA.is.assumed.to.be.Valid.JSON |
| 27020 | 20 75 6e 6c 65 73 73 20 4e 4f 2d 4a 53 4f 4e 20 69 73 20 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 | .unless.NO-JSON.is.t."...(with-c |
| 27040 | 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 65 | urrent-buffer.(get-buffer-create |
| 27060 | 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6c 65 | .gptel--log-buffer-name).....(le |
| 27080 | 74 20 28 28 70 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a | t.((p.(goto-char.(point-max)))). |
| 270a0 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 22 5c 6e | ......(unless.(bobp).(insert."\n |
| 270c0 | 22 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 7b 5c 22 67 70 | ")).......(insert.(format."{\"gp |
| 270e0 | 74 65 6c 5c 22 3a 20 5c 22 25 73 5c 22 2c 20 22 20 28 6f 72 20 74 79 70 65 20 22 6e 6f 6e 65 22 | tel\":.\"%s\",.".(or.type."none" |
| 27100 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 | ))...............(format-time-st |
| 27120 | 72 69 6e 67 20 22 5c 22 74 69 6d 65 73 74 61 6d 70 5c 22 3a 20 5c 22 25 59 2d 25 6d 2d 25 64 20 | ring."\"timestamp\":.\"%Y-%m-%d. |
| 27140 | 25 48 3a 25 4d 3a 25 53 5c 22 7d 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 | %H:%M:%S\"}\n")...............da |
| 27160 | 74 61 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 2d 6a 73 6f 6e 20 28 69 67 6e 6f 72 | ta).......(unless.no-json.(ignor |
| 27180 | 65 2d 65 72 72 6f 72 73 20 28 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 70 20 28 70 | e-errors.(json-pretty-print.p.(p |
| 271a0 | 6f 69 6e 74 29 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 | oint)))))))....;;;.Saving.and.re |
| 271c0 | 73 74 6f 72 69 6e 67 20 73 74 61 74 65 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 | storing.state..(defun.gptel--res |
| 271e0 | 74 6f 72 65 2d 70 72 6f 70 73 20 28 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 0a 20 20 22 52 65 73 | tore-props.(bounds-alist)..."Res |
| 27200 | 74 6f 72 65 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 20 42 4f 55 4e 44 53 | tore.text.properties.from.BOUNDS |
| 27220 | 2d 41 4c 49 53 54 2e 0a 42 4f 55 4e 44 53 2d 41 4c 49 53 54 20 69 73 20 28 50 52 4f 50 20 2e 20 | -ALIST..BOUNDS-ALIST.is.(PROP... |
| 27240 | 42 4f 55 4e 44 53 29 2e 20 20 42 4f 55 4e 44 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 42 4f | BOUNDS)...BOUNDS.is.a.list.of.BO |
| 27260 | 55 4e 44 2e 20 20 45 61 63 68 20 42 4f 55 4e 44 0a 69 73 20 65 69 74 68 65 72 20 28 42 45 47 20 | UND...Each.BOUND.is.either.(BEG. |
| 27280 | 45 4e 44 20 56 41 4c 29 20 6f 72 20 28 42 45 47 20 45 4e 44 29 2e 0a 0a 46 6f 72 20 28 42 45 47 | END.VAL).or.(BEG.END)...For.(BEG |
| 272a0 | 20 45 4e 44 20 56 41 4c 29 20 66 6f 72 6d 73 2c 20 65 76 65 6e 20 69 66 20 56 41 4c 20 69 73 20 | .END.VAL).forms,.even.if.VAL.is. |
| 272c0 | 6e 69 6c 2c 20 74 68 65 20 67 70 74 65 6c 20 70 72 6f 70 65 72 74 79 20 77 69 6c 6c 20 62 65 0a | nil,.the.gptel.property.will.be. |
| 272e0 | 73 65 74 20 74 6f 20 28 50 52 4f 50 20 2e 20 56 41 4c 29 2e 20 20 46 6f 72 20 28 42 45 47 20 45 | set.to.(PROP...VAL)...For.(BEG.E |
| 27300 | 4e 44 29 20 66 6f 72 6d 73 2c 20 65 78 63 65 70 74 20 77 68 65 6e 20 50 52 4f 50 20 69 73 20 72 | ND).forms,.except.when.PROP.is.r |
| 27320 | 65 73 70 6f 6e 73 65 2c 0a 74 68 65 20 67 70 74 65 6c 20 70 72 6f 70 65 72 74 79 20 69 73 20 73 | esponse,.the.gptel.property.is.s |
| 27340 | 65 74 20 74 6f 20 6a 75 73 74 20 50 52 4f 50 2e 0a 0a 54 68 65 20 6c 65 67 61 63 79 20 73 74 72 | et.to.just.PROP...The.legacy.str |
| 27360 | 75 63 74 75 72 65 2c 20 61 20 6c 69 73 74 20 6f 66 20 28 42 45 47 20 2e 20 45 4e 44 29 20 69 73 | ucture,.a.list.of.(BEG...END).is |
| 27380 | 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 65 64 20 61 6e 64 20 77 69 6c 6c 20 62 65 0a 61 70 70 6c | .also.supported.and.will.be.appl |
| 273a0 | 69 65 64 20 62 65 66 6f 72 65 20 62 65 69 6e 67 20 72 65 2d 70 65 72 73 69 73 74 65 64 20 69 6e | ied.before.being.re-persisted.in |
| 273c0 | 20 74 68 65 20 6e 65 77 20 73 74 72 75 63 74 75 72 65 2e 22 0a 20 20 28 69 66 20 28 73 79 6d 62 | .the.new.structure."...(if.(symb |
| 273e0 | 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 28 | olp.(caar.bounds-alist)).......( |
| 27400 | 6d 61 70 63 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 6f 75 6e 64 73 29 0a 20 20 20 | mapc........(lambda.(bounds).... |
| 27420 | 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 75 6e 64 73 29 29 | ......(let*.((prop.(pop.bounds)) |
| 27440 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | )............(mapc.............( |
| 27460 | 6c 61 6d 62 64 61 20 28 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 | lambda.(bound)...............(le |
| 27480 | 74 20 28 28 70 72 6f 70 2d 68 61 73 2d 76 61 6c 20 28 3e 20 28 6c 65 6e 67 74 68 20 62 6f 75 6e | t.((prop-has-val.(>.(length.boun |
| 274a0 | 64 29 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 | d).2))).................(add-tex |
| 274c0 | 74 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 28 70 | t-properties..................(p |
| 274e0 | 6f 70 20 62 6f 75 6e 64 29 20 28 70 6f 70 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 | op.bound).(pop.bound)........... |
| 27500 | 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 70 72 6f 70 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 | .......(if.(eq.prop.'response).. |
| 27520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c 20 72 65 73 70 | ....................'(gptel.resp |
| 27540 | 6f 6e 73 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 0a 20 20 20 20 20 | onse.front-sticky.(gptel))...... |
| 27560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 67 70 74 65 6c 0a 20 20 20 20 20 | ..............(list.'gptel...... |
| 27580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 70 72 6f 70 2d 68 61 73 | ....................(if.prop-has |
| 275a0 | 2d 76 61 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 20 20 20 | -val............................ |
| 275c0 | 20 20 28 63 6f 6e 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 | ..(cons.prop.(pop.bound))....... |
| 275e0 | 20 20 20 20 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 | .....................prop)))))). |
| 27600 | 20 20 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 62 6f 75 | ............bounds)))........bou |
| 27620 | 6e 64 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 62 6f | nds-alist).....(mapc.(lambda.(bo |
| 27640 | 75 6e 64 29 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 | und).............(add-text-prope |
| 27660 | 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 62 6f 75 6e 64 29 20 28 | rties..............(car.bound).( |
| 27680 | 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 65 20 66 72 6f 6e | cdr.bound).'(gptel.response.fron |
| 276a0 | 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 20 20 20 20 62 6f | t-sticky.(gptel))))...........bo |
| 276c0 | 75 6e 64 73 2d 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 | unds-alist)))..(defun.gptel--res |
| 276e0 | 74 6f 72 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 | tore-state.()..."Restore.gptel.s |
| 27700 | 74 61 74 65 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 | tate.when.turning.on.`gptel-mode |
| 27720 | 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 | '."...(when.(buffer-file-name).. |
| 27740 | 20 20 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 64 65 | ...(if.(derived-mode-p.'org-mode |
| 27760 | 29 0a 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 28 72 65 71 75 | ).........(progn...........(requ |
| 27780 | 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 20 28 67 70 74 65 6c | ire.'gptel-org)...........(gptel |
| 277a0 | 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 | -org--restore-state)).......(whe |
| 277c0 | 6e 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | n.gptel--bounds.........(gptel-- |
| 277e0 | 72 65 73 74 6f 72 65 2d 70 72 6f 70 73 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 29 0a 20 20 20 | restore-props.gptel--bounds).... |
| 27800 | 20 20 20 20 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 74 6f 72 | .....(message."gptel.chat.restor |
| 27820 | 65 64 2e 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e | ed.")).......(when.gptel--backen |
| 27840 | 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e | d-name.........(if-let*.((backen |
| 27860 | 64 20 28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.(alist-get.................... |
| 27880 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 | .........gptel--backend-name.gpt |
| 278a0 | 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.............. |
| 278c0 | 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 29 | ...............nil.nil.#'equal)) |
| 278e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d | ).............(setq-local.gptel- |
| 27900 | 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 28 6d 65 73 73 | backend.backend)...........(mess |
| 27920 | 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 | age............(substitute-comma |
| 27940 | 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 | nd-keys.............(concat..... |
| 27960 | 20 20 20 20 20 20 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 | ........."Could.not.activate.gpt |
| 27980 | 65 6c 20 62 61 63 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 | el.backend.\"%s\"!.."........... |
| 279a0 | 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 |
| 279c0 | 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]". |
| 279e0 | 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 67 20 67 70 74 65 | .............".before.using.gpte |
| 27a00 | 6c 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d | l."))............gptel--backend- |
| 27a20 | 6e 61 6d 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 | name))))))..(defun.gptel--save-s |
| 27a40 | 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 65 | tate.()..."Write.the.gptel.state |
| 27a60 | 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 73 61 76 65 73 20 63 68 61 74 | .to.the.buffer...This.saves.chat |
| 27a80 | 20 6d 65 74 61 64 61 74 61 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 | .metadata.when.writing.the.buffe |
| 27aa0 | 72 20 74 6f 20 64 69 73 6b 2e 20 20 54 6f 0a 72 65 73 74 6f 72 65 20 61 20 63 68 61 74 20 73 65 | r.to.disk...To.restore.a.chat.se |
| 27ac0 | 73 73 69 6f 6e 2c 20 74 75 72 6e 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 61 66 74 65 | ssion,.turn.on.`gptel-mode'.afte |
| 27ae0 | 72 20 6f 70 65 6e 69 6e 67 20 74 68 65 0a 66 69 6c 65 2e 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b | r.opening.the.file."...(run-hook |
| 27b00 | 73 20 27 67 70 74 65 6c 2d 73 61 76 65 2d 73 74 61 74 65 2d 68 6f 6f 6b 29 0a 20 20 28 69 66 20 | s.'gptel-save-state-hook)...(if. |
| 27b20 | 28 64 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 | (derived-mode-p.'org-mode)...... |
| 27b40 | 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d | .(progn.........(require.'gptel- |
| 27b60 | 6f 72 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d 73 74 | org).........(gptel-org--save-st |
| 27b80 | 61 74 65 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 69 6e 74 2d 65 73 63 61 70 65 2d 6e 65 | ate)).....(let.((print-escape-ne |
| 27ba0 | 77 6c 69 6e 65 73 20 74 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | wlines.t)).......(save-excursion |
| 27bc0 | 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 | .........(save-restriction...... |
| 27be0 | 20 20 20 20 20 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 | .....(add-file-local-variable.'g |
| 27c00 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 | ptel-model.gptel-model)......... |
| 27c20 | 20 20 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 | ..(add-file-local-variable.'gpte |
| 27c40 | 6c 2d 2d 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 | l--backend-name................. |
| 27c60 | 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 61 63 6b 65 6e | ...................(gptel-backen |
| 27c80 | 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 20 20 20 | d-name.gptel-backend)).......... |
| 27ca0 | 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 6c 75 65 20 27 | .(unless.(equal.(default-value.' |
| 27cc0 | 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 6d 70 65 72 61 | gptel-temperature).gptel-tempera |
| 27ce0 | 74 75 72 65 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 | ture).............(add-file-loca |
| 27d00 | 6c 2d 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 65 20 67 70 | l-variable.'gptel-temperature.gp |
| 27d20 | 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c | tel-temperature))...........(unl |
| 27d40 | 65 73 73 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c | ess.(equal.(default-value.'gptel |
| 27d60 | 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 20 | --system-message)............... |
| 27d80 | 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 73 73 61 | .............gptel--system-messa |
| 27da0 | 67 65 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 2d | ge).............(add-file-local- |
| 27dc0 | 76 61 72 69 61 62 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 73 79 | variable..............'gptel--sy |
| 27de0 | 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 28 63 61 72 2d 73 | stem-message..............(car-s |
| 27e00 | 61 66 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 | afe.(gptel--parse-directive.gpte |
| 27e20 | 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 20 20 20 | l--system-message))))........... |
| 27e40 | 28 77 68 65 6e 20 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 | (when.gptel-max-tokens.......... |
| 27e60 | 20 20 20 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 | ...(add-file-local-variable.'gpt |
| 27e80 | 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 | el-max-tokens.gptel-max-tokens)) |
| 27ea0 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 61 74 6e 75 6d 70 20 67 70 74 65 6c 2d | ...........(when.(natnump.gptel- |
| 27ec0 | 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 20 20 20 20 20 20 | -num-messages-to-send).......... |
| 27ee0 | 20 20 20 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 | ...(add-file-local-variable.'gpt |
| 27f00 | 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 20 20 20 20 20 | el--num-messages-to-send........ |
| 27f20 | 20 20 20 20 20 20 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 | ..............................gp |
| 27f40 | 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 29 0a 20 20 20 20 | tel--num-messages-to-send))..... |
| 27f60 | 20 20 20 20 20 20 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 | ......(add-file-local-variable.' |
| 27f80 | 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 | gptel--bounds.(gptel--get-buffer |
| 27fa0 | 2d 62 6f 75 6e 64 73 29 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 4d 69 6e 6f 72 20 6d 6f 64 65 | -bounds)))))))....;;;.Minor.mode |
| 27fc0 | 20 61 6e 64 20 55 49 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 49 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 | .and.UI..;;.NOTE:.It's.not.clear |
| 27fe0 | 20 74 68 61 74 20 74 68 69 73 20 69 73 20 74 68 65 20 62 65 73 74 20 73 74 72 61 74 65 67 79 3a | .that.this.is.the.best.strategy: |
| 28000 | 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 64 65 66 | .(add-to-list.'text-property-def |
| 28020 | 61 75 6c 74 2d 6e 6f 6e 73 74 69 63 6b 79 20 27 28 67 70 74 65 6c 20 2e 20 74 29 29 0a 0a 3b 3b | ault-nonsticky.'(gptel...t))..;; |
| 28040 | 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 | ;###autoload.(define-minor-mode. |
| 28060 | 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 74 | gptel-mode..."Minor.mode.for.int |
| 28080 | 65 72 61 63 74 69 6e 67 20 77 69 74 68 20 4c 4c 4d 73 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 | eracting.with.LLMs."...:lighter. |
| 280a0 | 22 20 47 50 54 22 0a 20 20 3a 6b 65 79 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d | ".GPT"...:keymap...(let.((map.(m |
| 280c0 | 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 | ake-sparse-keymap))).....(define |
| 280e0 | 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 52 45 54 22 29 20 23 27 67 70 74 65 6c | -key.map.(kbd."C-c.RET").#'gptel |
| 28100 | 2d 73 65 6e 64 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 28 69 66 20 67 70 74 65 6c 2d 6d 6f 64 65 | -send).....map)...(if.gptel-mode |
| 28120 | 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 64 | .......(progn.........(unless.(d |
| 28140 | 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 20 27 6d 61 72 6b 64 6f 77 | erived-mode-p.'org-mode.'markdow |
| 28160 | 6e 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 | n-mode.'text-mode)...........(gp |
| 28180 | 74 65 6c 2d 6d 6f 64 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 | tel-mode.-1)...........(user-err |
| 281a0 | 6f 72 20 28 66 6f 72 6d 61 74 20 22 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 69 73 20 6e 6f 74 20 | or.(format."`gptel-mode'.is.not. |
| 281c0 | 73 75 70 70 6f 72 74 65 64 20 69 6e 20 60 25 73 27 2e 22 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 | supported.in.`%s'.".major-mode)) |
| 281e0 | 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 73 61 76 65 | ).........(add-hook.'before-save |
| 28200 | 2d 68 6f 6f 6b 20 23 27 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 6e 69 6c 20 74 29 | -hook.#'gptel--save-state.nil.t) |
| 28220 | 0a 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 2d 70 20 27 | .........(when.(derived-mode-p.' |
| 28240 | 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 6f 72 6b 20 61 72 6f 75 | org-mode)...........;;.Work.arou |
| 28260 | 6e 64 20 62 75 67 20 69 6e 20 60 6f 72 67 2d 66 6f 6e 74 69 66 79 2d 65 78 74 65 6e 64 2d 72 65 | nd.bug.in.`org-fontify-extend-re |
| 28280 | 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 | gion'............(add-hook.'gpte |
| 282a0 | 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 20 23 27 66 6f 6e 74 | l-post-response-functions.#'font |
| 282c0 | 2d 6c 6f 63 6b 2d 66 6c 75 73 68 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 | -lock-flush.nil.t)).........(gpt |
| 282e0 | 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 67 | el--restore-state).........(if.g |
| 28300 | 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 20 20 28 | ptel-use-header-line...........( |
| 28320 | 73 65 74 71 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 68 65 61 64 | setq.gptel--old-header-line.head |
| 28340 | 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 20 20 68 | er-line-format.................h |
| 28360 | 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............... |
| 28380 | 20 20 28 6c 69 73 74 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 | ..(list.'(:eval.(concat.(propert |
| 283a0 | 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 61 6c 69 67 6e 2d | ize.".".'display.'(space.:align- |
| 283c0 | 74 6f 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 20 20 20 20 20 | to.0)).......................... |
| 283e0 | 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e | ......(format."%s".(gptel-backen |
| 28400 | 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 | d-name.gptel-backend))))........ |
| 28420 | 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 20 52 65 61 | ...............(propertize.".Rea |
| 28440 | 64 79 22 20 27 66 61 63 65 20 27 73 75 63 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | dy".'face.'success)............. |
| 28460 | 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........'(:eval............... |
| 28480 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d | ..........(let*.((model.(gptel-- |
| 284a0 | 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 20 20 20 20 20 | model-name.gptel-model))........ |
| 284c0 | 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 79 73 74 65 6d 0a 20 | .......................(system.. |
| 284e0 | 20 20 20 20 20 20 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 |
| 28500 | 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 20 20 20 | ropertize....................... |
| 28520 | 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............ |
| 28540 | 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 5b | ......................(format."[ |
| 28560 | 50 72 6f 6d 70 74 3a 20 25 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Prompt:.%s]".................... |
| 28580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 28 72 61 | ...............(or.(car-safe.(ra |
| 285a0 | 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c | ssoc.gptel--system-message.gptel |
| 285c0 | 2d 64 69 72 65 63 74 69 76 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -directives))................... |
| 285e0 | 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 64 65 73 63 72 69 62 | .................(gptel--describ |
| 28600 | 65 2d 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 | e-directive.gptel--system-messag |
| 28620 | 65 20 31 35 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 | e.15)))......................... |
| 28640 | 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 67 70 74 65 | .........(lambda.(&rest._).(gpte |
| 28660 | 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-system-prompt))).............. |
| 28680 | 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 65 20 27 | ...................'mouse-face.' |
| 286a0 | 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 20 20 20 | highlight....................... |
| 286c0 | 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 53 79 73 74 65 6d 20 6d 65 73 | ..........'help-echo."System.mes |
| 286e0 | 73 61 67 65 20 66 6f 72 20 73 65 73 73 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | sage.for.session"))............. |
| 28700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 | ..................(context...... |
| 28720 | 20 20 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 67 | ..........................(and.g |
| 28740 | 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 20 20 20 20 20 | ptel-context--alist............. |
| 28760 | 20 20 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 | ....................(cl-loop.for |
| 28780 | 20 65 6e 74 72 79 20 69 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 | .entry.in.gptel-context--alist.. |
| 287a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 287c0 | 69 66 20 28 62 75 66 66 65 72 70 20 28 63 61 72 20 65 6e 74 72 79 29 29 20 63 6f 75 6e 74 20 69 | if.(bufferp.(car.entry)).count.i |
| 287e0 | 74 20 69 6e 74 6f 20 62 75 66 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.into.bufs..................... |
| 28800 | 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 69 6e 67 70 | .............else.count.(stringp |
| 28820 | 20 28 63 61 72 20 65 6e 74 72 79 29 29 20 69 6e 74 6f 20 66 69 6c 65 73 0a 20 20 20 20 20 20 20 | .(car.entry)).into.files........ |
| 28840 | 20 20 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 69 6e 61 6c 6c | ..........................finall |
| 28860 | 79 20 72 65 74 75 72 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 | y.return........................ |
| 28880 | 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........... |
| 288a0 | 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 69 | ........................(buttoni |
| 288c0 | 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 20 | ze.............................. |
| 288e0 | 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5b 43 6f 6e 74 65 78 74 3a 20 22 0a 20 20 20 20 20 | ......(concat."[Context:."...... |
| 28900 | 20 20 20 20 20 20 20 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 | ...............................( |
| 28920 | 61 6e 64 20 28 3e 20 62 75 66 73 20 30 29 20 28 66 6f 72 6d 61 74 20 22 25 64 20 62 75 66 22 20 | and.(>.bufs.0).(format."%d.buf". |
| 28940 | 62 75 66 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 | bufs)).......................... |
| 28960 | 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 31 29 20 22 73 22 29 0a | ...........(and.(>.bufs.1)."s"). |
| 28980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 289a0 | 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 30 29 20 28 3e 20 66 69 6c 65 73 20 30 29 20 | ....(and.(>.bufs.0).(>.files.0). |
| 289c0 | 22 2c 20 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 | ",.")........................... |
| 289e0 | 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 66 69 6c 65 73 20 30 29 20 28 66 6f 72 6d | ..........(and.(>.files.0).(form |
| 28a00 | 61 74 20 22 25 64 20 66 69 6c 65 22 20 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | at."%d.file".files))............ |
| 28a20 | 20 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.(> |
| 28a40 | 20 66 69 6c 65 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 | .files.1)."s").................. |
| 28a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5d 22 29 0a 20 20 20 20 20 20 20 20 | ..................."]")......... |
| 28a80 | 20 20 20 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 |
| 28aa0 | 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 20 20 20 20 20 | da.(&rest._).................... |
| 28ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 | ..................(require.'gpte |
| 28ae0 | 6c 2d 63 6f 6e 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 | l-context)...................... |
| 28b00 | 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 74 2d 2d | ................(gptel-context-- |
| 28b20 | 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer-setup)))................. |
| 28b40 | 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 65 20 27 68 | ..................'mouse-face.'h |
| 28b60 | 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 20 20 20 20 | ighlight........................ |
| 28b80 | 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 41 63 74 69 76 65 20 67 70 | ...........'help-echo."Active.gp |
| 28ba0 | 74 65 6c 20 63 6f 6e 74 65 78 74 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel.context"))))................ |
| 28bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 | ...............(toggle-track-med |
| 28be0 | 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 20 | ia.............................. |
| 28c00 | 20 20 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 | ..(lambda.(&rest._)............. |
| 28c20 | 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 2d 6c 6f 63 61 6c | .....................(setq-local |
| 28c40 | 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 20 | .gptel-track-media.............. |
| 28c60 | 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 67 70 74 65 6c 2d | .....................(not.gptel- |
| 28c80 | 74 72 61 63 6b 2d 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 | track-media))................... |
| 28ca0 | 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 74 72 61 63 6b 2d 6d | ...............(if.gptel-track-m |
| 28cc0 | 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 20 20 | edia............................ |
| 28ce0 | 20 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 20 20 | ..........(message.............. |
| 28d00 | 20 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 | .........................(concat |
| 28d20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 28d40 | 20 20 20 20 20 20 20 20 22 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 66 72 6f 6d 20 69 6e 63 6c | ........"Sending.media.from.incl |
| 28d60 | 75 64 65 64 20 6c 69 6e 6b 73 2e 20 20 54 6f 20 69 6e 63 6c 75 64 65 20 6d 65 64 69 61 2c 20 63 | uded.links...To.include.media,.c |
| 28d80 | 72 65 61 74 65 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 | reate."......................... |
| 28da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 | ..............."a.\"standalone\" |
| 28dc0 | 20 6c 69 6e 6b 20 69 6e 20 61 20 70 61 72 61 67 72 61 70 68 20 62 79 20 69 74 73 65 6c 66 2c 20 | .link.in.a.paragraph.by.itself,. |
| 28de0 | 73 65 70 61 72 61 74 65 64 20 66 72 6f 6d 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 74 2e | separated.from.surrounding.text. |
| 28e00 | 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 20 20 20 20 | "))............................. |
| 28e20 | 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 69 6d 61 67 65 20 | .......(message."Ignoring.image. |
| 28e40 | 6c 69 6e 6b 73 2e 20 20 4f 6e 6c 79 20 6c 69 6e 6b 20 74 65 78 74 20 77 69 6c 6c 20 62 65 20 73 | links...Only.link.text.will.be.s |
| 28e60 | 65 6e 74 2e 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 | ent."))......................... |
| 28e80 | 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 66 6f | .........(run-at-time.0.nil.#'fo |
| 28ea0 | 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 | rce-mode-line-update)))......... |
| 28ec0 | 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 61 63 6b 2d 6d 65 64 | ......................(track-med |
| 28ee0 | 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 20 | ia.............................. |
| 28f00 | 20 20 28 61 6e 64 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 | ..(and.(gptel--model-capable-p.' |
| 28f20 | 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 20 20 20 20 20 20 20 | media).......................... |
| 28f40 | 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.... |
| 28f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 28f80 | 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 20 | .(propertize.................... |
| 28fa0 | 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 22 5b 53 | ..................(buttonize."[S |
| 28fc0 | 65 6e 64 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 6f 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 69 | ending.media]".toggle-track-medi |
| 28fe0 | 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 20 20 20 20 20 20 20 | a).............................. |
| 29000 | 20 20 20 20 20 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 | ........'mouse-face.'highlight.. |
| 29020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29040 | 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....'help-echo.................. |
| 29060 | 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 6d 65 64 | ...................."Sending.med |
| 29080 | 69 61 20 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e 65 20 6c 69 6e 6b 73 2f 75 72 6c 73 20 77 68 | ia.from.standalone.links/urls.wh |
| 290a0 | 65 6e 20 73 75 70 70 6f 72 74 65 64 2e 5c 6e 43 6c 69 63 6b 20 74 6f 20 74 6f 67 67 6c 65 22 29 | en.supported.\nClick.to.toggle") |
| 290c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 290e0 | 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 20 | ...(propertize.................. |
| 29100 | 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 22 5b 49 | ..................(buttonize."[I |
| 29120 | 67 6e 6f 72 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 6f 67 67 6c 65 2d 74 72 61 63 6b 2d 6d 65 64 | gnoring.media]".toggle-track-med |
| 29140 | 69 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 20 20 20 20 20 20 | ia)............................. |
| 29160 | 20 20 20 20 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 | .......'mouse-face.'highlight... |
| 29180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 291a0 | 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'help-echo..................... |
| 291c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 49 67 6e 6f 72 69 6e 67 20 69 6d 61 67 65 73 20 | ..............."Ignoring.images. |
| 291e0 | 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e 65 20 6c 69 6e 6b 73 2f 75 72 6c 73 2e 5c 6e 43 6c 69 | from.standalone.links/urls.\nCli |
| 29200 | 63 6b 20 74 6f 20 74 6f 67 67 6c 65 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ck.to.toggle"))))............... |
| 29220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 67 67 6c 65 2d 74 6f 6f 6c 73 20 28 6c | ................(toggle-tools.(l |
| 29240 | 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 | ambda.(&rest._).(interactive)... |
| 29260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29280 | 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 6e 69 6c 0a 20 | ............(run-at-time.0.nil.. |
| 292a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 292c0 | 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 63 61 6c 6c 2d 69 | ..............(lambda.().(call-i |
| 292e0 | 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 29 29 0a | nteractively.#'gptel-tools))))). |
| 29300 | 20 20 20 20 20 20 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 |
| 29320 | 6f 6f 6c 73 20 28 77 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 | ools.(when.(and.gptel-use-tools. |
| 29340 | 67 70 74 65 6c 2d 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 | gptel-tools).................... |
| 29360 | 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 65 0a 20 | ...................(propertize.. |
| 29380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 293a0 | 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 70 63 61 73 65 20 28 6c 65 6e 67 74 68 20 | ......(buttonize.(pcase.(length. |
| 293c0 | 67 70 74 65 6c 2d 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 | gptel-tools).................... |
| 293e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29400 | 28 30 20 22 5b 4e 6f 20 74 6f 6f 6c 73 5d 22 29 20 28 31 20 22 5b 31 20 74 6f 6f 6c 5d 22 29 0a | (0."[No.tools]").(1."[1.tool]"). |
| 29420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 20 28 66 6f 72 6d 61 74 20 | ...................(len.(format. |
| 29460 | 22 5b 25 64 20 74 6f 6f 6c 73 5d 22 20 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | "[%d.tools]".len)))............. |
| 29480 | 20 20 20 20 20 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 67 67 | ............................togg |
| 294a0 | 6c 65 2d 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 | le-tools)....................... |
| 294c0 | 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 65 20 27 68 69 | .................'mouse-face.'hi |
| 294e0 | 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 20 20 20 20 20 | ghlight......................... |
| 29500 | 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 22 53 65 6c 65 63 | ...............'help-echo."Selec |
| 29520 | 74 20 74 6f 6f 6c 73 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 | t.tools")))).................... |
| 29540 | 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 20 20 | ......(concat................... |
| 29560 | 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 20 20 | ........(propertize............. |
| 29580 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 27 64 69 73 70 6c 61 79 0a 20 20 20 20 | ...............".".'display..... |
| 295a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 73 70 61 63 65 20 3a | .......................`(space.: |
| 295c0 | 61 6c 69 67 6e 2d 74 6f 20 28 2d 20 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | align-to.(-.right............... |
| 295e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29600 | 2c 28 2b 20 35 20 28 6c 65 6e 67 74 68 20 6d 6f 64 65 6c 29 20 28 6c 65 6e 67 74 68 20 73 79 73 | ,(+.5.(length.model).(length.sys |
| 29620 | 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 20 20 20 20 20 | tem)............................ |
| 29640 | 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 72 61 | .....................(length.tra |
| 29660 | 63 6b 2d 6d 65 64 69 61 29 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 78 74 29 20 28 6c 65 6e 67 | ck-media).(length.context).(leng |
| 29680 | 74 68 20 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 20 | th.tools)))))................... |
| 296a0 | 20 20 20 20 20 20 20 20 74 6f 6f 6c 73 20 28 61 6e 64 20 74 72 61 63 6b 2d 6d 65 64 69 61 20 22 | ........tools.(and.track-media." |
| 296c0 | 20 22 29 20 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 61 6e 64 20 63 6f 6e 74 65 78 74 20 22 20 22 | .").track-media.(and.context."." |
| 296e0 | 29 20 63 6f 6e 74 65 78 74 20 22 20 22 20 73 79 73 74 65 6d 20 22 20 22 0a 20 20 20 20 20 20 20 | ).context.".".system."."........ |
| 29700 | 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 65 0a 20 | ...................(propertize.. |
| 29720 | 20 20 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 | ..........................(butto |
| 29740 | 6e 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 6d 6f 64 65 6c 20 22 5d 22 29 0a 20 20 20 20 | nize.(concat."[".model."]")..... |
| 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 28 6c 61 6d 62 64 61 20 | ........................(lambda. |
| 29780 | 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 0a 20 20 20 20 20 20 20 | (&rest._).(gptel-menu)))........ |
| 297a0 | 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 65 20 | ....................'mouse-face. |
| 297c0 | 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 20 20 | 'highlight...................... |
| 297e0 | 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 4d 6f 64 65 6c 20 69 6e 20 75 73 65 22 29 | ......'help-echo."Model.in.use") |
| 29800 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d | )))))...........(setq.mode-line- |
| 29820 | 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 | process.................'(:eval. |
| 29840 | 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 20 20 20 | (concat."."..................... |
| 29860 | 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 61 | .....(buttonize.(gptel--model-na |
| 29880 | 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 20 | me.gptel-model)................. |
| 298a0 | 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 67 | ............(lambda.(&rest._).(g |
| 298c0 | 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f | ptel-menu)))))))).....(remove-ho |
| 298e0 | 6f 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 | ok.'before-save-hook.#'gptel--sa |
| 29900 | 76 65 2d 73 74 61 74 65 20 74 29 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 | ve-state.t).....(if.gptel-use-he |
| 29920 | 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c | ader-line.........(setq.header-l |
| 29940 | 69 6e 65 2d 66 6f 72 6d 61 74 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e | ine-format.gptel--old-header-lin |
| 29960 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 | e...............gptel--old-heade |
| 29980 | 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e | r-line.nil).......(setq.mode-lin |
| 299a0 | 65 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c | e-process.nil))))..(defvar.gptel |
| 299c0 | 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 44 65 66 69 | --fsm-last)................;Defi |
| 299e0 | 6e 65 64 20 66 75 72 74 68 65 72 20 62 65 6c 6f 77 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | ned.further.below.(defun.gptel-- |
| 29a00 | 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d 73 67 20 66 61 63 | update-status.(&optional.msg.fac |
| 29a20 | 65 29 0a 20 20 22 55 70 64 61 74 65 20 73 74 61 74 75 73 20 4d 53 47 20 69 6e 20 46 41 43 45 2e | e)..."Update.status.MSG.in.FACE. |
| 29a40 | 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 28 69 66 20 67 70 74 | "...(when.gptel-mode.....(if.gpt |
| 29a60 | 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 61 6e 64 20 | el-use-header-line.........(and. |
| 29a80 | 28 63 6f 6e 73 70 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 | (consp.header-line-format)...... |
| 29aa0 | 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6e 74 68 20 31 20 68 65 61 64 65 72 2d 6c 69 6e 65 | ........(setf.(nth.1.header-line |
| 29ac0 | 2d 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 20 28 74 68 72 | -format)....................(thr |
| 29ae0 | 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d | ead-first......................m |
| 29b00 | 73 67 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 74 74 6f 6e 69 | sg......................(buttoni |
| 29b20 | 7a 65 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 | ze.(lambda.(_).(gptel--inspect-f |
| 29b40 | 73 6d 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 72 6f 70 | sm)))......................(prop |
| 29b60 | 65 72 74 69 7a 65 20 27 66 61 63 65 20 66 61 63 65 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 | ertize.'face.face.'mouse-face.'h |
| 29b80 | 69 67 68 6c 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 6d | ighlight)))).......(if.(member.m |
| 29ba0 | 73 67 20 27 28 22 20 54 79 70 69 6e 67 2e 2e 2e 22 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 29 | sg.'(".Typing...".".Waiting...") |
| 29bc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 | )...........(setq.mode-line-proc |
| 29be0 | 65 73 73 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 | ess.(propertize.msg.'face.face)) |
| 29c00 | 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 | .........(setq.mode-line-process |
| 29c20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 | ...............'(:eval.(concat." |
| 29c40 | 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 28 62 75 74 74 6f | ."........................(butto |
| 29c60 | 6e 69 7a 65 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 | nize.(gptel--model-name.gptel-mo |
| 29c80 | 64 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 20 20 | del)............................ |
| 29ca0 | 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 6d 65 6e 75 29 29 | .(lambda.(&rest._).(gptel-menu)) |
| 29cc0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 70 72 6f 70 65 72 74 69 7a | )))).........(message.(propertiz |
| 29ce0 | 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 29 29 0a 20 20 20 20 28 66 6f 72 63 65 2d | e.msg.'face.face)))).....(force- |
| 29d00 | 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 | mode-line-update)))..(declare-fu |
| 29d20 | 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 70 74 65 | nction.gptel-context--wrap."gpte |
| 29d40 | 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 0c 0a 3b 3b 3b 20 54 6f 6f 6c 20 75 73 65 0a 0a 28 64 65 | l-context")....;;;.Tool.use..(de |
| 29d60 | 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 74 0a 20 20 22 57 68 65 | fcustom.gptel-use-tools.t..."Whe |
| 29d80 | 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 75 73 65 20 74 6f 6f 6c 73 2e 0a 0a 54 6f | ther.gptel.should.use.tools...To |
| 29da0 | 6f 6c 73 20 61 72 65 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 70 72 6f 76 69 64 65 64 20 62 79 | ols.are.capabilities.provided.by |
| 29dc0 | 20 79 6f 75 20 74 6f 20 74 68 65 20 4c 4c 4d 20 61 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 6e 0a | .you.to.the.LLM.as.functions.an. |
| 29de0 | 4c 4c 4d 20 63 61 6e 20 63 68 6f 6f 73 65 20 74 6f 20 63 61 6c 6c 2e 20 20 67 70 74 65 6c 20 72 | LLM.can.choose.to.call...gptel.r |
| 29e00 | 75 6e 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 6f 6e 20 79 6f 75 72 0a 6d 61 | uns.the.function.call.on.your.ma |
| 29e20 | 63 68 69 6e 65 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 2c 20 61 6e 79 20 74 6f 6f 6c 73 20 73 | chine...If.set.to.t,.any.tools.s |
| 29e40 | 65 6c 65 63 74 65 64 20 69 6e 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 20 77 69 6c 6c 20 62 65 | elected.in.`gptel-tools'.will.be |
| 29e60 | 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 54 68 69 | .made.available.to.the.LLM...Thi |
| 29e80 | 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 20 20 49 74 20 68 61 73 20 6e 6f 20 65 66 66 | s.is.the.default...It.has.no.eff |
| 29ea0 | 65 63 74 20 69 66 0a 6e 6f 20 74 6f 6f 6c 73 20 61 72 65 20 73 65 6c 65 63 74 65 64 2e 0a 0a 49 | ect.if.no.tools.are.selected...I |
| 29ec0 | 66 20 73 65 74 20 74 6f 20 66 6f 72 63 65 2c 20 67 70 74 65 6c 20 77 69 6c 6c 20 74 72 79 20 74 | f.set.to.force,.gptel.will.try.t |
| 29ee0 | 6f 20 66 6f 72 63 65 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 61 6c 6c 20 6f 6e 65 20 6f 72 0a 6d | o.force.the.LLM.to.call.one.or.m |
| 29f00 | 6f 72 65 20 6f 66 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 74 6f 6f 6c 73 2e 20 20 53 75 70 70 | ore.of.the.provided.tools...Supp |
| 29f20 | 6f 72 74 20 66 6f 72 20 74 68 69 73 20 66 65 61 74 75 72 65 20 64 65 70 65 6e 64 73 20 6f 6e 0a | ort.for.this.feature.depends.on. |
| 29f40 | 74 68 65 20 62 61 63 6b 65 6e 64 2f 41 50 49 2c 20 61 6e 64 20 67 70 74 65 6c 20 77 69 6c 6c 20 | the.backend/API,.and.gptel.will. |
| 29f60 | 66 61 6c 6c 20 62 61 63 6b 20 74 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f | fall.back.to.the.default.behavio |
| 29f80 | 72 0a 77 68 65 6e 20 66 6f 72 63 69 6e 67 20 74 6f 6f 6c 20 75 73 65 20 69 73 20 75 6e 73 75 70 | r.when.forcing.tool.use.is.unsup |
| 29fa0 | 70 6f 72 74 65 64 2e 0a 0a 49 66 20 6e 69 6c 2c 20 74 6f 6f 6c 20 75 73 65 20 69 73 20 74 75 72 | ported...If.nil,.tool.use.is.tur |
| 29fc0 | 6e 65 64 20 6f 66 66 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 | ned.off."...:type.'(choice...... |
| 29fe0 | 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 45 6e 61 62 6c 65 22 20 74 29 0a 20 20 20 | .....(const.:tag."Enable".t).... |
| 2a000 | 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 46 6f 72 63 65 20 74 6f 6f 6c 20 75 | .......(const.:tag."Force.tool.u |
| 2a020 | 73 65 22 20 66 6f 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 | se".force)...........(const.:tag |
| 2a040 | 20 22 54 75 72 6e 20 4f 66 66 22 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 | ."Turn.Off".nil)))..(defcustom.g |
| 2a060 | 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 27 61 75 74 6f 0a 20 20 | ptel-confirm-tool-calls.'auto... |
| 2a080 | 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 68 6f 75 6c 64 20 77 61 69 74 20 | "Whether.tool.calls.should.wait. |
| 2a0a0 | 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 20 74 68 65 6d 2e 0a 0a 49 66 20 73 65 | for.the.user.to.run.them...If.se |
| 2a0c0 | 74 20 74 6f 20 74 20 6f 72 20 6e 69 6c 2c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 6c 77 61 79 73 | t.to.t.or.nil,.tool.calls.always |
| 2a0e0 | 20 6f 72 20 6e 65 76 65 72 20 73 65 65 6b 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 0a 66 72 6f 6d | .or.never.seek.confirmation.from |
| 2a100 | 20 74 68 65 20 75 73 65 72 20 62 65 66 6f 72 65 20 72 75 6e 6e 69 6e 67 2e 0a 0a 49 66 20 73 65 | .the.user.before.running...If.se |
| 2a120 | 74 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 75 74 6f 20 28 74 68 65 20 64 65 66 61 75 6c | t.to.the.symbol.auto.(the.defaul |
| 2a140 | 74 29 2c 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 77 69 6c 6c 20 73 65 65 6b 0a 63 6f 6e 66 69 72 | t),.a.tool.call.will.seek.confir |
| 2a160 | 6d 61 74 69 6f 6e 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 | mation.only.when.the.correspondi |
| 2a180 | 6e 67 20 74 6f 6f 6c 20 73 70 65 63 20 68 61 73 20 61 20 6e 6f 6e 2d 6e 69 6c 0a 3a 63 6f 6e 66 | ng.tool.spec.has.a.non-nil.:conf |
| 2a1a0 | 69 72 6d 20 73 6c 6f 74 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 | irm.slot...See.`gptel-make-tool' |
| 2a1c0 | 2e 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 | ."...:type.'(choice...........(c |
| 2a1e0 | 6f 6e 73 74 20 3a 74 61 67 20 22 54 6f 6f 6c 20 64 65 63 69 64 65 73 22 20 61 75 74 6f 29 0a 20 | onst.:tag."Tool.decides".auto).. |
| 2a200 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6c 77 61 79 73 22 20 74 29 | .........(const.:tag."Always".t) |
| 2a220 | 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 65 76 65 72 22 20 6e | ...........(const.:tag."Never".n |
| 2a240 | 69 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d | il)))..(defcustom.gptel-include- |
| 2a260 | 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 27 61 75 74 6f 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f | tool-results.'auto..."Whether.to |
| 2a280 | 6f 6c 20 63 61 6c 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 | ol.call.results.should.be.includ |
| 2a2a0 | 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 73 65 74 20 74 6f 20 74 20 6f | ed.in.the.buffer...If.set.to.t.o |
| 2a2c0 | 72 20 6e 69 6c 2c 20 72 65 73 75 6c 74 73 20 6f 66 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 72 65 | r.nil,.results.of.tool.calls.are |
| 2a2e0 | 20 61 6c 77 61 79 73 20 6f 72 20 6e 65 76 65 72 0a 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 | .always.or.never.included.in.the |
| 2a300 | 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 0a 0a 49 66 | .LLM.response,.respectively...If |
| 2a320 | 20 73 65 74 20 74 6f 20 74 68 65 20 73 79 6d 62 6f 6c 20 61 75 74 6f 20 28 74 68 65 20 64 65 66 | .set.to.the.symbol.auto.(the.def |
| 2a340 | 61 75 6c 74 29 2c 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 20 69 73 0a 69 6e 63 | ault),.a.tool.call.result.is.inc |
| 2a360 | 6c 75 64 65 64 20 6f 6e 6c 79 20 77 68 65 6e 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e | luded.only.when.the.correspondin |
| 2a380 | 67 20 74 6f 6f 6c 20 73 70 65 63 20 68 61 73 20 61 20 6e 6f 6e 2d 6e 69 6c 0a 3a 69 6e 63 6c 75 | g.tool.spec.has.a.non-nil.:inclu |
| 2a3a0 | 64 65 20 73 6c 6f 74 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2e | de.slot...See.`gptel-make-tool'. |
| 2a3c0 | 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 |
| 2a3e0 | 6e 73 74 20 3a 74 61 67 20 22 54 6f 6f 6c 20 64 65 63 69 64 65 73 22 20 61 75 74 6f 29 0a 20 20 | nst.:tag."Tool.decides".auto)... |
| 2a400 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 41 6c 77 61 79 73 22 20 74 29 0a | ........(const.:tag."Always".t). |
| 2a420 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 65 76 65 72 22 20 6e 69 | ..........(const.:tag."Never".ni |
| 2a440 | 6c 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c | l)))..(defcustom.gptel-tools.nil |
| 2a460 | 0a 20 20 22 41 20 6c 69 73 74 20 6f 66 20 74 6f 6f 6c 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 77 | ..."A.list.of.tools.to.include.w |
| 2a480 | 69 74 68 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 45 61 63 68 20 74 6f 6f 6c 20 73 | ith.gptel.requests...Each.tool.s |
| 2a4a0 | 68 6f 75 6c 64 20 62 65 20 61 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 20 73 74 72 75 63 74 2c 20 | hould.be.a.`gptel-tool'.struct,. |
| 2a4c0 | 77 68 69 63 68 20 73 65 65 2e 20 20 54 6f 20 73 70 65 63 69 66 79 0a 61 20 74 6f 6f 6c 2c 20 75 | which.see...To.specify.a.tool,.u |
| 2a4e0 | 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2c 20 77 68 69 63 68 20 73 65 65 2e | se.`gptel-make-tool',.which.see. |
| 2a500 | 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 65 | "...:group.'gptel...:type.'(repe |
| 2a520 | 61 74 20 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 | at.gptel-tool))..(cl-defstruct.( |
| 2a540 | 67 70 74 65 6c 2d 74 6f 6f 6c 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d | gptel-tool.(:constructor.gptel-- |
| 2a560 | 6d 61 6b 65 2d 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 | make-tool)...................... |
| 2a580 | 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 74 6f 6f 6c 29 29 | .....(:copier.gptel--copy-tool)) |
| 2a5a0 | 0a 20 20 22 53 74 72 75 63 74 20 74 6f 20 73 70 65 63 69 66 79 20 74 6f 6f 6c 73 20 66 6f 72 20 | ..."Struct.to.specify.tools.for. |
| 2a5c0 | 4c 4c 4d 73 20 74 6f 20 72 75 6e 2e 0a 0a 41 20 74 6f 6f 6c 20 69 73 20 61 20 66 75 6e 63 74 69 | LLMs.to.run...A.tool.is.a.functi |
| 2a5e0 | 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d | on.specification.sent.to.the.LLM |
| 2a600 | 20 61 6c 6f 6e 67 20 77 69 74 68 0a 61 20 28 70 6c 61 69 6e 20 6c 61 6e 67 75 61 67 65 29 20 74 | .along.with.a.(plain.language).t |
| 2a620 | 61 73 6b 2e 20 20 49 66 20 74 68 65 20 4c 4c 4d 20 64 65 63 69 64 65 73 20 74 6f 20 75 73 65 20 | ask...If.the.LLM.decides.to.use. |
| 2a640 | 74 68 65 20 74 6f 6f 6c 20 74 6f 0a 61 63 63 6f 6d 70 6c 69 73 68 20 74 68 65 20 74 61 73 6b 2c | the.tool.to.accomplish.the.task, |
| 2a660 | 20 67 70 74 65 6c 20 77 69 6c 6c 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 20 61 6e 64 20 28 6f 70 | .gptel.will.run.the.tool.and.(op |
| 2a680 | 74 69 6f 6e 61 6c 6c 79 29 0a 66 65 65 64 20 74 68 65 20 4c 4c 4d 20 74 68 65 20 72 65 73 75 6c | tionally).feed.the.LLM.the.resul |
| 2a6a0 | 74 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 64 64 20 74 6f 6f 6c 73 20 76 69 61 0a 60 67 70 74 65 | ts...You.can.add.tools.via.`gpte |
| 2a6c0 | 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 66 75 6e 63 | l-make-tool',.which.see."...func |
| 2a6e0 | 74 69 6f 6e 20 6e 61 6d 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 61 72 67 73 20 61 73 79 6e 63 | tion.name.description.args.async |
| 2a700 | 20 63 61 74 65 67 6f 72 79 20 63 6f 6e 66 69 72 6d 20 69 6e 63 6c 75 64 65 29 0a 0a 28 64 65 66 | .category.confirm.include)..(def |
| 2a720 | 69 6e 65 2d 61 64 76 69 63 65 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 28 3a 66 69 | ine-advice.gptel--make-tool.(:fi |
| 2a740 | 6c 74 65 72 2d 61 72 67 73 20 28 72 65 73 74 29 20 70 72 65 70 72 6f 63 65 73 73 2d 61 72 67 73 | lter-args.(rest).preprocess-args |
| 2a760 | 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 79 6d 62 6f 6c 20 3a 74 79 70 65 20 76 61 6c 75 65 73 | )..."Convert.symbol.:type.values |
| 2a780 | 20 74 6f 20 73 74 72 69 6e 67 73 20 69 6e 20 74 68 65 20 61 72 67 73 20 69 6e 20 52 45 53 54 2e | .to.strings.in.the.args.in.REST. |
| 2a7a0 | 22 0a 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d | "...(cl-callf.gptel--preprocess- |
| 2a7c0 | 74 6f 6f 6c 2d 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 74 20 3a 61 72 67 73 29 | tool-args.(plist-get.rest.:args) |
| 2a7e0 | 29 0a 20 20 72 65 73 74 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 | )...rest)..(defun.gptel--preproc |
| 2a800 | 65 73 73 2d 74 6f 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 | ess-tool-args.(spec)..."Convert. |
| 2a820 | 73 79 6d 62 6f 6c 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 | symbol.:type.values.in.tool.SPEC |
| 2a840 | 20 74 6f 20 73 74 72 69 6e 67 73 20 64 65 73 74 72 75 63 74 69 76 65 6c 79 2e 22 0a 20 20 28 63 | .to.strings.destructively."...(c |
| 2a860 | 6f 6e 64 20 28 28 6e 6f 74 20 28 6c 69 73 74 70 20 73 70 65 63 29 29 20 73 70 65 63 29 0a 20 20 | ond.((not.(listp.spec)).spec)... |
| 2a880 | 20 20 20 20 20 20 28 28 6b 65 79 77 6f 72 64 70 20 28 63 61 72 20 73 70 65 63 29 29 0a 20 20 20 | ......((keywordp.(car.spec)).... |
| 2a8a0 | 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 20 20 20 20 20 20 | ......(let.((tail.spec))........ |
| 2a8c0 | 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 20 20 20 28 77 68 | ....(while.tail..............(wh |
| 2a8e0 | 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 |
| 2a900 | 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)))............ |
| 2a920 | 20 20 20 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 | ....(setcar.(cdr.tail).(symbol-n |
| 2a940 | 61 6d 65 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 20 20 20 | ame.(cadr.tail)))).............. |
| 2a960 | 28 77 68 65 6e 20 28 6c 69 73 74 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 0a 20 20 20 20 20 20 | (when.(listp.(cadr.tail))....... |
| 2a980 | 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 2d 74 6f 6f 6c | .........(gptel--preprocess-tool |
| 2a9a0 | 2d 61 72 67 73 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 20 | -args.(cadr.tail)))............. |
| 2a9c0 | 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 0a 20 20 20 20 20 20 | .(setq.tail.(cddr.tail)))....... |
| 2a9e0 | 20 20 20 20 20 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 28 74 20 28 64 6f 6c 69 73 74 20 28 | .....spec)).........(t.(dolist.( |
| 2aa00 | 65 6c 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 28 77 68 65 6e | element.spec)..............(when |
| 2aa20 | 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 20 20 20 20 20 20 | .(listp.element)................ |
| 2aa40 | 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 65 | (gptel--preprocess-tool-args.ele |
| 2aa60 | 6d 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 70 65 63 29 29 29 0a 0a 28 64 65 66 | ment)))............spec)))..(def |
| 2aa80 | 76 61 72 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 | var.gptel--known-tools.nil..."Al |
| 2aaa0 | 69 73 74 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 | ist.of.gptel.tools.arranged.by.c |
| 2aac0 | 61 74 65 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 | ategory...A.\"tool\".is.a.functi |
| 2aae0 | 6f 6e 20 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 | on.spec.(definition.and.descript |
| 2ab00 | 69 6f 6e 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 | ion).provided.by.gptel.to.an.LLM |
| 2ab20 | 2e 20 20 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 | ...See.`gptel-tool'...Each.tool. |
| 2ab40 | 69 73 0a 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 | is.assigned.a.category.when.it.i |
| 2ab60 | 73 20 63 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 | s.created,.with.a.category.of.\" |
| 2ab80 | 6d 69 73 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 | misc\".if.none.is.specified...Th |
| 2aba0 | 69 73 20 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 | is.is.a.two-level.alist.mapping. |
| 2abc0 | 63 61 74 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 | categories.and.tool.names.to.the |
| 2abe0 | 20 74 6f 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 | .tool.itself...It.is.used.as.a.g |
| 2ac00 | 6c 6f 62 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 | lobal.register.of.available.tool |
| 2ac20 | 73 20 61 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 | s.and.in.gptel's.UI,.see.`gptel- |
| 2ac40 | 74 6f 6f 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 | tools'...In.this.example.structu |
| 2ac60 | 72 65 2c 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 | re,.cat-tool.and.the.rest.are.cl |
| 2ac80 | 2d 73 74 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 | -structs.of.type.`gptel-tool':.. |
| 2aca0 | 20 20 20 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 | ...CATEGORY.........TOOL.NAME... |
| 2acc0 | 20 20 20 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 | .......TOOL..((\"filesystem\"... |
| 2ace0 | 28 28 5c 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 | ((\"read_file\"........cat-tool) |
| 2ad00 | 0a 20 20 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 | ....................(\"list_dire |
| 2ad20 | 63 74 6f 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 | ctory\"...ls-tool)))...(\"emacs\ |
| 2ad40 | 22 20 20 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 | "........((\"read_buffer\"...... |
| 2ad60 | 62 75 66 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 | buffer-substring-tool).......... |
| 2ad80 | 20 20 20 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 | ..........(\"send_message\"..... |
| 2ada0 | 6d 65 73 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 | message-tool))))..This.variable. |
| 2adc0 | 69 73 20 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 | is.for.internal.use.only,.to.def |
| 2ade0 | 69 6e 65 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 | ine.a.tool.use.`gptel-make-tool' |
| 2ae00 | 2e 22 29 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 | .")..(defun.gptel-get-tool.(path |
| 2ae20 | 29 0a 20 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 | )..."Find.tool.in.gptel's.tool.r |
| 2ae40 | 65 67 69 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 | egistry.at.PATH...PATH.can.be.sp |
| 2ae60 | 65 63 69 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 | ecified.-.as.a.string.representi |
| 2ae80 | 6e 67 20 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 | ng.the.tool.name,.like.\"search_ |
| 2aea0 | 64 62 5c 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 | db\",.-.or.as.a.list.representin |
| 2aec0 | 67 20 61 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 | g.a.category.and.tool.name,...li |
| 2aee0 | 6b 65 20 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 | ke.\\='(\"emacs\".\"read_buffer\ |
| 2af00 | 22 29 2e 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 | ")..In.both.cases,.the.first.mat |
| 2af20 | 63 68 69 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 | ching.gptel-tool.is.returned...- |
| 2af40 | 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 61 20 63 61 74 65 | .as.a.string.representing.a.cate |
| 2af60 | 67 6f 72 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 | gory,.like.\"filesystem\"..In.th |
| 2af80 | 69 73 20 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 | is.case.a.list.of.all.gptel-tool |
| 2afa0 | 73 20 77 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 | s.with.this.category.is.returned |
| 2afc0 | 2e 22 0a 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 | ."...(or.(cl-etypecase.path..... |
| 2afe0 | 20 20 20 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 | ....(cons.(let.((tc.(map-nested- |
| 2b000 | 65 6c 74 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 | elt.gptel--known-tools.path))).. |
| 2b020 | 20 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 74 63 29 20 28 6d | ...............(if.(consp.tc).(m |
| 2b040 | 61 70 2d 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 | ap-values.tc).tc))).........(str |
| 2b060 | 69 6e 67 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 | ing.(if-let*.((category.(assoc.p |
| 2b080 | 61 74 68 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 | ath.gptel--known-tools)))....... |
| 2b0a0 | 20 20 20 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 | ..............(map-values.(cdr.c |
| 2b0c0 | 61 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 28 63 6c 2d | ategory))...................(cl- |
| 2b0e0 | 6c 6f 6f 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 | loop.for.(_...tools).in.gptel--k |
| 2b100 | 6e 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 | nown-tools...................... |
| 2b120 | 20 20 20 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 | ......if.(assoc.path.tools)..... |
| 2b140 | 20 20 20 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 | .......................return.(c |
| 2b160 | 64 72 20 69 74 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f | dr.it))))).......(user-error."No |
| 2b180 | 20 74 6f 6f 6c 20 6d 61 74 63 68 65 73 20 66 6f 72 20 25 53 22 20 70 61 74 68 29 29 29 0a 0a 28 | .tool.matches.for.%S".path)))..( |
| 2b1a0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 28 26 72 65 73 74 20 73 6c 6f | defun.gptel-make-tool.(&rest.slo |
| 2b1c0 | 74 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 67 70 74 65 6c 20 74 6f 6f 6c 20 66 6f 72 20 4c 4c 4d | ts)..."Make.a.gptel.tool.for.LLM |
| 2b1e0 | 20 75 73 65 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 77 6f 72 64 20 61 72 67 | .use...The.following.keyword.arg |
| 2b200 | 75 6d 65 6e 74 73 20 61 72 65 20 61 76 61 69 6c 61 62 6c 65 2c 20 6f 66 20 77 68 69 63 68 20 74 | uments.are.available,.of.which.t |
| 2b220 | 68 65 20 66 69 72 73 74 0a 66 6f 75 72 20 61 72 65 20 72 65 71 75 69 72 65 64 2e 0a 0a 4e 41 4d | he.first.four.are.required...NAM |
| 2b240 | 45 3a 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 6f 6f 6c 2c 20 72 65 63 6f 6d 6d 65 | E:.The.name.of.the.tool,.recomme |
| 2b260 | 6e 64 65 64 20 74 6f 20 62 65 20 69 6e 20 4a 61 76 61 73 63 72 69 70 74 20 73 74 79 6c 65 20 73 | nded.to.be.in.Javascript.style.s |
| 2b280 | 6e 61 6b 65 5f 63 61 73 65 2e 0a 0a 46 55 4e 43 54 49 4f 4e 3a 20 54 68 65 20 66 75 6e 63 74 69 | nake_case...FUNCTION:.The.functi |
| 2b2a0 | 6f 6e 20 69 74 73 65 6c 66 20 28 6c 61 6d 62 64 61 20 6f 72 20 73 79 6d 62 6f 6c 29 20 74 68 61 | on.itself.(lambda.or.symbol).tha |
| 2b2c0 | 74 20 72 75 6e 73 20 74 68 65 20 74 6f 6f 6c 2e 0a 0a 44 45 53 43 52 49 50 54 49 4f 4e 3a 20 41 | t.runs.the.tool...DESCRIPTION:.A |
| 2b2e0 | 20 76 65 72 62 6f 73 65 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 77 68 61 74 20 74 68 65 | .verbose.description.of.what.the |
| 2b300 | 20 74 6f 6f 6c 20 64 6f 65 73 2c 20 68 6f 77 20 74 6f 0a 63 61 6c 6c 20 69 74 20 61 6e 64 20 77 | .tool.does,.how.to.call.it.and.w |
| 2b320 | 68 61 74 20 69 74 20 72 65 74 75 72 6e 73 2e 0a 0a 41 52 47 53 3a 20 41 20 6c 69 73 74 20 6f 66 | hat.it.returns...ARGS:.A.list.of |
| 2b340 | 20 70 6c 69 73 74 73 20 73 70 65 63 69 66 79 69 6e 67 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 | .plists.specifying.the.arguments |
| 2b360 | 2c 20 6f 72 20 6e 69 6c 20 66 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 74 61 6b | ,.or.nil.for.a.function.that.tak |
| 2b380 | 65 73 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 20 20 45 61 63 68 20 70 6c 69 73 74 20 69 6e 20 | es.no.arguments...Each.plist.in. |
| 2b3a0 | 41 52 47 53 20 72 65 71 75 69 72 65 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 | ARGS.requires.the.following.keys |
| 2b3c0 | 3a 0a 2d 20 61 72 67 75 6d 65 6e 74 20 3a 6e 61 6d 65 20 61 6e 64 20 3a 64 65 73 63 72 69 70 74 | :.-.argument.:name.and.:descript |
| 2b3e0 | 69 6f 6e 2c 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 2d 20 61 72 67 75 6d 65 6e 74 20 3a 74 79 70 | ion,.as.strings..-.argument.:typ |
| 2b400 | 65 2c 20 61 73 20 61 20 73 79 6d 62 6f 6c 2e 20 20 41 6c 6c 6f 77 65 64 20 74 79 70 65 73 20 61 | e,.as.a.symbol...Allowed.types.a |
| 2b420 | 72 65 20 74 68 6f 73 65 20 75 6e 64 65 72 73 74 6f 6f 64 20 62 79 20 74 68 65 20 4a 53 4f 4e 0a | re.those.understood.by.the.JSON. |
| 2b440 | 20 20 73 63 68 65 6d 61 3a 20 73 74 72 69 6e 67 2c 20 6e 75 6d 62 65 72 2c 20 69 6e 74 65 67 65 | ..schema:.string,.number,.intege |
| 2b460 | 72 2c 20 62 6f 6f 6c 65 61 6e 2c 20 61 72 72 61 79 2c 20 6f 62 6a 65 63 74 20 6f 72 20 6e 75 6c | r,.boolean,.array,.object.or.nul |
| 2b480 | 6c 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6c 69 73 74 20 6b 65 79 73 20 61 72 65 20 | l..The.following.plist.keys.are. |
| 2b4a0 | 63 6f 6e 64 69 74 69 6f 6e 61 6c 2f 6f 70 74 69 6f 6e 61 6c 3a 0a 2d 20 3a 6f 70 74 69 6f 6e 61 | conditional/optional:.-.:optiona |
| 2b4c0 | 6c 2c 20 62 6f 6f 6c 65 61 6e 20 69 6e 64 69 63 61 74 69 6e 67 20 69 66 20 61 72 67 75 6d 65 6e | l,.boolean.indicating.if.argumen |
| 2b4e0 | 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c 0a 2d 20 3a 65 6e 75 6d 20 66 6f 72 20 65 6e 75 6d 65 72 | t.is.optional.-.:enum.for.enumer |
| 2b500 | 61 74 65 64 20 74 79 70 65 73 2c 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 61 20 76 65 63 | ated.types,.whose.value.is.a.vec |
| 2b520 | 74 6f 72 20 6f 66 20 73 74 72 69 6e 67 73 20 72 65 70 72 65 73 65 6e 74 69 6e 67 0a 20 20 61 6c | tor.of.strings.representing...al |
| 2b540 | 6c 6f 77 65 64 20 76 61 6c 75 65 73 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 3a 74 79 70 65 20 69 | lowed.values...Note.that.:type.i |
| 2b560 | 73 20 73 74 69 6c 6c 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 65 6e 75 6d 73 2e 0a 2d 20 3a 69 | s.still.required.for.enums..-.:i |
| 2b580 | 74 65 6d 73 2c 20 69 66 20 74 68 65 20 3a 74 79 70 65 20 69 73 20 61 72 72 61 79 2e 20 20 49 74 | tems,.if.the.:type.is.array...It |
| 2b5a0 | 73 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 70 6c 69 73 74 20 69 6e 63 6c 75 64 69 6e | s.value.must.be.a.plist.includin |
| 2b5c0 | 67 20 61 74 20 6c 65 61 73 74 0a 20 20 74 68 65 20 69 74 65 6d 27 73 20 3a 74 79 70 65 2e 0a 2d | g.at.least...the.item's.:type..- |
| 2b5e0 | 20 3a 70 72 6f 70 65 72 74 69 65 73 2c 20 69 66 20 74 68 65 20 74 79 70 65 20 69 73 20 6f 62 6a | .:properties,.if.the.type.is.obj |
| 2b600 | 65 63 74 2e 20 20 49 74 73 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 70 6c 69 73 74 20 | ect...Its.value.must.be.a.plist. |
| 2b620 | 74 68 61 74 20 63 61 6e 20 62 65 0a 20 20 73 65 72 69 61 6c 69 7a 65 64 20 69 6e 74 6f 20 61 20 | that.can.be...serialized.into.a. |
| 2b640 | 4a 53 4f 4e 20 6f 62 6a 65 63 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 62 79 20 60 6a 73 | JSON.object.specification.by.`js |
| 2b660 | 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 27 2e 0a 0a 41 53 59 4e 43 3a 20 62 6f 6f 6c 65 61 6e 20 69 | on-serialize'...ASYNC:.boolean.i |
| 2b680 | 6e 64 69 63 61 74 69 6e 67 20 69 66 20 74 68 65 20 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 20 | ndicating.if.the.elisp.function. |
| 2b6a0 | 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2e 0a 49 66 20 41 53 59 4e 43 20 69 73 20 74 2c 20 | is.asynchronous..If.ASYNC.is.t,. |
| 2b6c0 | 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 74 61 6b 65 20 61 20 63 61 6c 6c 62 | the.function.should.take.a.callb |
| 2b6e0 | 61 63 6b 20 61 73 20 69 74 73 20 66 69 72 73 74 0a 61 72 67 75 6d 65 6e 74 2c 20 61 6c 6f 6e 67 | ack.as.its.first.argument,.along |
| 2b700 | 20 77 69 74 68 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 73 70 65 63 69 66 69 65 64 20 69 6e | .with.the.arguments.specified.in |
| 2b720 | 20 41 52 47 53 2c 20 61 6e 64 20 72 75 6e 20 74 68 65 0a 63 61 6c 6c 62 61 63 6b 20 77 69 74 68 | .ARGS,.and.run.the.callback.with |
| 2b740 | 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 20 77 68 65 6e 20 69 74 27 73 20 | .the.tool.call.result.when.it's. |
| 2b760 | 72 65 61 64 79 2e 20 20 54 68 65 20 63 61 6c 6c 62 61 63 6b 0a 69 74 73 65 6c 66 20 69 73 20 61 | ready...The.callback.itself.is.a |
| 2b780 | 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 74 61 69 6c 20 61 6e 64 20 6d 75 73 74 | n.implementation.detail.and.must |
| 2b7a0 | 20 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a 41 52 47 53 2e 0a 0a 54 68 65 20 66 | .not.be.included.in.ARGS...The.f |
| 2b7c0 | 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 20 61 72 65 20 6f 70 74 69 6f 6e 61 6c 0a 0a 43 41 54 45 | ollowing.keys.are.optional..CATE |
| 2b7e0 | 47 4f 52 59 3a 20 41 20 73 74 72 69 6e 67 20 69 6e 64 69 63 61 74 69 6e 67 20 61 20 63 61 74 65 | GORY:.A.string.indicating.a.cate |
| 2b800 | 67 6f 72 79 20 66 6f 72 20 74 68 65 20 74 6f 6f 6c 2e 20 20 54 68 69 73 20 69 73 0a 75 73 65 64 | gory.for.the.tool...This.is.used |
| 2b820 | 20 6f 6e 6c 79 20 66 6f 72 20 67 72 6f 75 70 69 6e 67 20 69 6e 20 67 70 74 65 6c 27 73 20 55 49 | .only.for.grouping.in.gptel's.UI |
| 2b840 | 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 6d 69 73 63 5c 22 2e 0a 0a 43 4f 4e 46 49 52 | ...Defaults.to.\"misc\"...CONFIR |
| 2b860 | 4d 3a 20 57 68 65 74 68 65 72 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 68 6f 75 6c 64 20 | M:.Whether.the.tool.call.should. |
| 2b880 | 77 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 0a 69 74 2e 20 20 49 66 | wait.for.the.user.to.run.it...If |
| 2b8a0 | 20 74 72 75 65 2c 20 74 68 65 20 75 73 65 72 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 | .true,.the.user.will.be.prompted |
| 2b8c0 | 20 77 69 74 68 20 74 68 65 20 70 72 6f 70 6f 73 65 64 20 74 6f 6f 6c 0a 63 61 6c 6c 2c 20 77 68 | .with.the.proposed.tool.call,.wh |
| 2b8e0 | 69 63 68 20 63 61 6e 20 62 65 20 65 78 61 6d 69 6e 65 64 2c 20 61 63 63 65 70 74 65 64 2c 20 64 | ich.can.be.examined,.accepted,.d |
| 2b900 | 65 66 65 72 72 65 64 20 6f 72 20 63 61 6e 63 65 6c 65 64 2e 0a 0a 49 4e 43 4c 55 44 45 3a 20 57 | eferred.or.canceled...INCLUDE:.W |
| 2b920 | 68 65 74 68 65 72 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 | hether.the.tool.results.should.b |
| 2b940 | 65 20 69 6e 63 6c 75 64 65 64 20 61 73 20 70 61 72 74 20 6f 66 0a 74 68 65 20 4c 4c 4d 20 6f 75 | e.included.as.part.of.the.LLM.ou |
| 2b960 | 74 70 75 74 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f 72 20 6c 6f 67 67 69 6e | tput...This.is.useful.for.loggin |
| 2b980 | 67 20 61 6e 64 20 61 73 20 63 6f 6e 74 65 78 74 20 66 6f 72 0a 73 75 62 73 65 71 75 65 6e 74 20 | g.and.as.context.for.subsequent. |
| 2b9a0 | 72 65 71 75 65 73 74 73 20 69 6e 20 74 68 65 20 73 61 6d 65 20 62 75 66 66 65 72 2e 20 20 54 68 | requests.in.the.same.buffer...Th |
| 2b9c0 | 69 73 20 69 73 20 70 72 69 6d 61 72 69 6c 79 20 75 73 65 66 75 6c 0a 69 6e 20 63 68 61 74 20 62 | is.is.primarily.useful.in.chat.b |
| 2b9e0 | 75 66 66 65 72 73 2e 0a 0a 48 65 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 64 65 66 69 | uffers...Here.is.an.example.defi |
| 2ba00 | 6e 69 74 69 6f 6e 3a 0a 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 0a 20 20 20 3a | nition:....(gptel-make-tool....: |
| 2ba20 | 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 | function.(lambda.(location.unit) |
| 2ba40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 | .................(url-retrieve-s |
| 2ba60 | 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 5c 22 61 70 69 2e 77 65 61 74 68 65 72 2e 63 6f 6d 2f 2e | ynchronously.\"api.weather.com/. |
| 2ba80 | 2e 2e 5c 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 | ..\"............................ |
| 2baa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 29 | .................location.unit)) |
| 2bac0 | 0a 20 20 20 3a 6e 61 6d 65 20 5c 22 67 65 74 5f 77 65 61 74 68 65 72 5c 22 0a 20 20 20 3a 64 65 | ....:name.\"get_weather\"....:de |
| 2bae0 | 73 63 72 69 70 74 69 6f 6e 20 5c 22 47 65 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 65 61 74 | scription.\"Get.the.current.weat |
| 2bb00 | 68 65 72 20 69 6e 20 61 20 67 69 76 65 6e 20 6c 6f 63 61 74 69 6f 6e 5c 22 0a 20 20 20 3a 61 72 | her.in.a.given.location\"....:ar |
| 2bb20 | 67 73 20 28 6c 69 73 74 20 5c 5c 3d 27 28 3a 6e 61 6d 65 20 5c 22 6c 6f 63 61 74 69 6f 6e 5c 22 | gs.(list.\\='(:name.\"location\" |
| 2bb40 | 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 74 72 69 6e 67 0a 20 | ..................:type.string.. |
| 2bb60 | 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 6e 20 5c 22 54 | ................:description.\"T |
| 2bb80 | 68 65 20 63 69 74 79 20 61 6e 64 20 73 74 61 74 65 2c 20 65 2e 67 2e 20 53 61 6e 20 46 72 61 6e | he.city.and.state,.e.g..San.Fran |
| 2bba0 | 63 69 73 63 6f 2c 20 43 41 5c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 5c 3d 27 | cisco,.CA\")................\\=' |
| 2bbc0 | 28 3a 6e 61 6d 65 20 5c 22 75 6e 69 74 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (:name.\"unit\"................. |
| 2bbe0 | 20 3a 74 79 70 65 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 3a | .:type.string..................: |
| 2bc00 | 65 6e 75 6d 20 5b 5c 22 63 65 6c 73 69 75 73 5c 22 20 5c 22 66 61 72 65 6e 68 65 69 74 5c 22 5d | enum.[\"celsius\".\"farenheit\"] |
| 2bc20 | 0a 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 6e 0a 20 | ..................:description.. |
| 2bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 22 54 68 65 20 75 6e 69 74 20 6f 66 20 74 65 | ................\"The.unit.of.te |
| 2bc60 | 6d 70 65 72 61 74 75 72 65 2c 20 65 69 74 68 65 72 20 5c 5c 3d 27 63 65 6c 73 69 75 73 5c 5c 3d | mperature,.either.\\='celsius\\= |
| 2bc80 | 27 20 6f 72 20 5c 5c 3d 27 66 61 68 72 65 6e 68 65 69 74 5c 5c 3d 27 5c 22 0a 20 20 20 20 20 20 | '.or.\\='fahrenheit\\='\"....... |
| 2bca0 | 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 74 69 6f 6e 61 6c 20 74 29 29 29 0a 0a 49 66 20 74 68 | ...........:optional.t)))..If.th |
| 2bcc0 | 65 20 74 6f 6f 6c 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 74 68 65 20 66 75 6e 63 | e.tool.is.asynchronous,.the.func |
| 2bce0 | 74 69 6f 6e 20 69 73 20 6d 6f 64 69 66 69 65 64 20 74 6f 20 74 61 6b 65 20 61 0a 63 61 6c 6c 62 | tion.is.modified.to.take.a.callb |
| 2bd00 | 61 63 6b 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2c 20 77 68 69 63 68 | ack.as.its.first.argument,.which |
| 2bd20 | 20 69 74 20 72 75 6e 73 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 3a 0a 0a 20 20 20 28 6c | .it.runs.with.the.result:.....(l |
| 2bd40 | 61 6d 62 64 61 20 28 63 61 6c 6c 62 61 63 6b 20 6c 6f 63 61 74 69 6f 6e 20 75 6e 69 74 29 0a 20 | ambda.(callback.location.unit).. |
| 2bd60 | 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 20 5c 22 61 70 69 2e 77 65 61 74 68 65 72 2e | ....(url-retrieve.\"api.weather. |
| 2bd80 | 63 6f 6d 2f 2e 2e 2e 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | com/...\"....................(la |
| 2bda0 | 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | mbda.(_)......................(l |
| 2bdc0 | 65 74 20 28 28 72 65 73 75 6c 74 20 28 70 61 72 73 65 2d 74 68 69 73 2d 62 75 66 66 65 72 29 29 | et.((result.(parse-this-buffer)) |
| 2bde0 | 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 66 75 6e 63 61 6c | )........................(funcal |
| 2be00 | 6c 20 63 61 6c 6c 62 61 63 6b 20 72 65 73 75 6c 74 29 29 29 29 29 22 0a 20 20 28 6c 65 74 2a 20 | l.callback.result)))))"...(let*. |
| 2be20 | 28 28 74 6f 6f 6c 20 28 61 70 70 6c 79 20 23 27 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c | ((tool.(apply.#'gptel--make-tool |
| 2be40 | 20 73 6c 6f 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 61 74 65 67 6f 72 79 20 28 6f 72 20 | .slots))..........(category.(or. |
| 2be60 | 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 20 74 6f 6f 6c 29 20 22 6d 69 73 63 | (gptel-tool-category.tool)."misc |
| 2be80 | 22 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 | "))).....(setf.(alist-get....... |
| 2bea0 | 20 20 20 20 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 20 | .....(gptel-tool-name.tool)..... |
| 2bec0 | 20 20 20 20 20 20 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 | .......(alist-get.category.gptel |
| 2bee0 | 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 | --known-tools.nil.nil.#'equal).. |
| 2bf00 | 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)...... |
| 2bf20 | 20 20 20 20 20 74 6f 6f 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 | .....tool)))..(cl-defgeneric.gpt |
| 2bf40 | 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 28 5f 62 61 63 6b 65 6e 64 20 74 6f 6f 6c 73 29 | el--parse-tools.(_backend.tools) |
| 2bf60 | 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 |
| 2bf80 | 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f | t.of.prompts...TOOLS.is.a.list.o |
| 2bfa0 | 66 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 20 73 74 72 75 63 74 73 2c 20 77 68 69 63 68 20 73 65 | f.`gptel-tool'.structs,.which.se |
| 2bfc0 | 65 2e 0a 0a 5f 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 | e..._BACKEND.is.the.LLM.backend. |
| 2bfe0 | 69 6e 20 75 73 65 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 0a 69 6d 70 | in.use...This.is.the.default.imp |
| 2c000 | 6c 65 6d 65 6e 74 61 74 69 6f 6e 2c 20 75 73 65 64 20 62 79 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 | lementation,.used.by.OpenAI-comp |
| 2c020 | 61 74 69 62 6c 65 20 41 50 49 73 20 61 6e 64 20 4f 6c 6c 61 6d 61 2e 22 0a 20 20 28 76 63 6f 6e | atible.APIs.and.Ollama."...(vcon |
| 2c040 | 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 6f 6f 6c | cat....(mapcar.....(lambda.(tool |
| 2c060 | 29 0a 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 3a 74 79 70 65 20 22 66 75 6e 63 | ).......(list........:type."func |
| 2c080 | 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 3a 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 28 61 | tion"........:function........(a |
| 2c0a0 | 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 3a 6e 61 | ppend.........(list..........:na |
| 2c0c0 | 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 20 20 20 | me.(gptel-tool-name.tool)....... |
| 2c0e0 | 20 20 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 | ...:description.(gptel-tool-desc |
| 2c100 | 72 69 70 74 69 6f 6e 20 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 67 70 74 | ription.tool)).........(and.(gpt |
| 2c120 | 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 20 20 20 20 20 3b 6e 6f 20 70 61 72 61 6d | el-tool-args.tool).....;no.param |
| 2c140 | 65 74 65 72 73 20 69 66 20 61 72 67 73 20 69 73 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | eters.if.args.is.nil............ |
| 2c160 | 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 61 6d 65 74 65 72 | ..(list...............:parameter |
| 2c180 | 73 0a 20 20 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 | s...............(list.:type."obj |
| 2c1a0 | 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 | ect".....................:proper |
| 2c1c0 | 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 63 6c 2d 6c 6f 6f | ties.....................(cl-loo |
| 2c1e0 | 70 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 61 72 67 20 69 | p......................for.arg.i |
| 2c200 | 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 | n.(gptel-tool-args.tool)........ |
| 2c220 | 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- |
| 2c240 | 67 65 74 20 61 72 67 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 | get.arg.:name).................. |
| 2c260 | 20 20 20 20 66 6f 72 20 74 79 70 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 | ....for.type.=.(plist-get.arg.:t |
| 2c280 | 79 70 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 6e 65 | ype)......................for.ne |
| 2c2a0 | 77 6e 61 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 | wname.=.(or.(and.(keywordp.name) |
| 2c2c0 | 20 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 20 | .name).......................... |
| 2c2e0 | 20 20 20 20 20 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 | ..............(make-symbol.(conc |
| 2c300 | 61 74 20 22 3a 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 | at.":".name))).................. |
| 2c320 | 20 20 20 20 66 6f 72 20 65 6e 75 6d 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 65 | ....for.enum.=.(plist-get.arg.:e |
| 2c340 | 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 61 70 70 65 6e 64 | num)......................append |
| 2c360 | 0a 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 6e 65 77 6e | ......................(list.newn |
| 2c380 | 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 20 20 60 | ame............................` |
| 2c3a0 | 28 3a 74 79 70 65 20 2c 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (:type.,type.................... |
| 2c3c0 | 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 2c 28 70 6c 69 73 74 2d 67 | ..........:description.,(plist-g |
| 2c3e0 | 65 74 20 61 72 67 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 | et.arg.:description)............ |
| 2c400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 69 66 20 65 6e 75 6d 20 28 6c 69 | ..................,@(if.enum.(li |
| 2c420 | 73 74 20 3a 65 6e 75 6d 20 28 76 63 6f 6e 63 61 74 20 65 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 | st.:enum.(vconcat.enum)))....... |
| 2c440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 63 6f 6e 64 0a 20 | .......................,@(cond.. |
| 2c460 | 20 20 20 20 20 20 20 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 | ...............................( |
| 2c480 | 28 65 71 75 61 6c 20 74 79 70 65 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 | (equal.type."object")........... |
| 2c4a0 | 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 70 72 | .......................(list.:pr |
| 2c4c0 | 6f 70 65 72 74 69 65 73 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 70 72 6f 70 65 72 74 | operties.(plist-get.arg.:propert |
| 2c4e0 | 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 20 20 | ies)............................ |
| 2c500 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 20 28 6f 72 20 28 70 6c 69 73 74 | ............:required.(or.(plist |
| 2c520 | 2d 67 65 74 20 61 72 67 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -get.arg.:required)............. |
| 2c540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2c560 | 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(vector)).............. |
| 2c580 | 20 20 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 64 64 69 74 | ..........................:addit |
| 2c5a0 | 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 0a 20 20 | ionalProperties.:json-false))... |
| 2c5c0 | 20 20 20 20 20 20 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 | ..............................(( |
| 2c5e0 | 65 71 75 61 6c 20 74 79 70 65 20 22 61 72 72 61 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | equal.type."array")............. |
| 2c600 | 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 4f 28 74 6f 6f | .....................;;.TODO(too |
| 2c620 | 6c 29 20 49 66 20 74 68 65 20 69 74 65 6d 20 74 79 70 65 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 | l).If.the.item.type.is.an.object |
| 2c640 | 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,............................... |
| 2c660 | 20 20 20 3b 3b 20 61 64 64 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 | ...;;.add.:additionalProperties. |
| 2c680 | 74 6f 20 69 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 | to.it........................... |
| 2c6a0 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 69 74 65 6d 73 20 28 70 6c 69 73 74 2d 67 65 74 20 61 | .......(list.:items.(plist-get.a |
| 2c6c0 | 72 67 20 3a 69 74 65 6d 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rg.:items)))))))................ |
| 2c6e0 | 20 20 20 20 20 3a 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 | .....:required.................. |
| 2c700 | 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 20 20 20 20 20 20 20 | ...(vconcat..................... |
| 2c720 | 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 20 20 | .(delq.nil.(mapcar.............. |
| 2c740 | 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 72 67 29 | ...................(lambda.(arg) |
| 2c760 | 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 70 74 69 6f | .(and.(not.(plist-get.arg.:optio |
| 2c780 | 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 20 20 20 20 | nal))........................... |
| 2c7a0 | 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 61 | ....................(plist-get.a |
| 2c7c0 | 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 20 20 | rg.:name)))..................... |
| 2c7e0 | 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 |
| 2c800 | 6c 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 3a 61 64 64 69 74 | l)))).....................:addit |
| 2c820 | 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 29 | ionalProperties.:json-false))))) |
| 2c840 | 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 29 29 29 0a 0a 28 63 | ).....(ensure-list.tools))))..(c |
| 2c860 | 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 74 6f 6f 6c 2d 72 | l-defgeneric.gptel--parse-tool-r |
| 2c880 | 65 73 75 6c 74 73 20 28 62 61 63 6b 65 6e 64 20 72 65 73 75 6c 74 73 29 0a 20 20 22 52 65 74 75 | esults.(backend.results)..."Retu |
| 2c8a0 | 72 6e 20 61 20 42 41 43 4b 45 4e 44 2d 61 70 70 72 6f 70 72 69 61 74 65 20 70 72 6f 6d 70 74 20 | rn.a.BACKEND-appropriate.prompt. |
| 2c8c0 | 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 52 45 53 55 4c 54 53 2e 0a 0a 54 | containing.tool.call.RESULTS...T |
| 2c8e0 | 68 69 73 20 77 69 6c 6c 20 62 65 20 69 6e 6a 65 63 74 65 64 20 69 6e 74 6f 20 74 68 65 20 6d 65 | his.will.be.injected.into.the.me |
| 2c900 | 73 73 61 67 65 73 20 6c 69 73 74 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 0a 73 65 6e | ssages.list.in.the.prompt.to.sen |
| 2c920 | 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 22 29 0a 0a 3b 3b 20 46 49 58 4d 45 28 66 73 6d 29 20 75 | d.to.the.LLM.")..;;.FIXME(fsm).u |
| 2c940 | 6e 69 66 79 20 74 68 69 73 20 77 69 74 68 20 60 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 | nify.this.with.`gptel--wrap-user |
| 2c960 | 2d 70 72 6f 6d 70 74 27 2c 20 77 68 69 63 68 20 69 73 20 61 20 6d 65 73 73 0a 28 63 6c 2d 64 65 | -prompt',.which.is.a.mess.(cl-de |
| 2c980 | 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 0a 20 20 | fgeneric.gptel--inject-prompt... |
| 2c9a0 | 28 5f 62 61 63 6b 65 6e 64 20 64 61 74 61 20 6e 65 77 2d 70 72 6f 6d 70 74 20 26 6f 70 74 69 6f | (_backend.data.new-prompt.&optio |
| 2c9c0 | 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 4f | nal._position)..."Append.NEW-PRO |
| 2c9e0 | 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 79 | MPT.to.existing.prompts.in.query |
| 2ca00 | 20 44 41 54 41 2e 0a 0a 4e 45 57 2d 50 52 4f 4d 50 54 20 63 61 6e 20 62 65 20 61 20 73 69 6e 67 | .DATA...NEW-PROMPT.can.be.a.sing |
| 2ca20 | 6c 65 20 6d 65 73 73 61 67 65 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 73 | le.message.or.a.list.of.messages |
| 2ca40 | 2e 0a 0a 4e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 3a 20 69 66 20 50 4f 53 49 54 49 4f 4e 20 | ...Not.implemented:.if.POSITION. |
| 2ca60 | 69 73 0a 2d 20 61 20 6e 6f 6e 2d 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 2c 20 69 6e 73 65 | is.-.a.non-negative.number,.inse |
| 2ca80 | 72 74 20 69 74 20 61 74 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 50 52 4f 4d 50 54 | rt.it.at.that.position.in.PROMPT |
| 2caa0 | 53 2e 0a 2d 20 61 20 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 | S..-.a.negative.number,.insert.i |
| 2cac0 | 74 20 74 68 65 72 65 20 63 6f 75 6e 74 69 6e 67 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 2e 0a 0a | t.there.counting.from.the.end... |
| 2cae0 | 54 68 69 73 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 68 61 6e 64 | This.generic.implementation.hand |
| 2cb00 | 6c 65 73 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 2c 0a 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 | les.the.Anthropic,.OpenAI-compat |
| 2cb20 | 69 62 6c 65 20 61 6e 64 20 4f 6c 6c 61 6d 61 20 6d 65 73 73 61 67 65 20 66 6f 72 6d 61 74 73 2e | ible.and.Ollama.message.formats. |
| 2cb40 | 22 0a 20 20 3b 3b 20 3b 54 4f 44 4f 28 66 73 6d 29 3a 20 69 6d 70 6c 65 6d 65 6e 74 20 5f 50 4f | "...;;.;TODO(fsm):.implement._PO |
| 2cb60 | 53 49 54 49 4f 4e 0a 20 20 28 77 68 65 6e 20 28 6b 65 79 77 6f 72 64 70 20 28 63 61 72 2d 73 61 | SITION...(when.(keywordp.(car-sa |
| 2cb80 | 66 65 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 20 3b 49 73 20 6e 65 77 2d 70 72 6f 6d 70 74 20 6f | fe.new-prompt)).;Is.new-prompt.o |
| 2cba0 | 6e 65 20 6f 72 20 6d 61 6e 79 3f 0a 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 70 72 6f 6d 70 74 | ne.or.many?.....(setq.new-prompt |
| 2cbc0 | 20 28 6c 69 73 74 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72 | .(list.new-prompt)))...(let.((pr |
| 2cbe0 | 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 67 65 73 29 | ompts.(plist-get.data.:messages) |
| 2cc00 | 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 | )).....(plist-put.data.:messages |
| 2cc20 | 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 29 | .(vconcat.prompts.new-prompt)))) |
| 2cc40 | 0a 0a 0c 0a 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 64 72 69 76 69 6e | ....;;;.State.machine.for.drivin |
| 2cc60 | 67 20 72 65 71 75 65 73 74 73 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 72 65 71 75 65 73 | g.requests..(defvar.gptel-reques |
| 2cc80 | 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 0a 20 20 60 28 28 49 4e 49 54 20 2e 20 28 28 74 20 20 | t--transitions...`((INIT...((t.. |
| 2cca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 57 41 49 54 29 29 29 0a 20 | .......................WAIT))).. |
| 2ccc0 | 20 20 20 28 57 41 49 54 20 2e 20 28 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...(WAIT...((t.................. |
| 2cce0 | 20 20 20 20 20 2e 20 54 59 50 45 29 29 29 0a 20 20 20 20 28 54 59 50 45 20 2e 20 28 28 2c 23 27 | .......TYPE))).....(TYPE...((,#' |
| 2cd00 | 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 20 | gptel--error-p.........ERRS).... |
| 2cd20 | 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 75 73 65 2d 70 20 | ..........(,#'gptel--tool-use-p. |
| 2cd40 | 20 20 20 2e 20 54 4f 4f 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 | .....TOOL)..............(t...... |
| 2cd60 | 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 0a 20 20 20 20 28 | ...................DONE))).....( |
| 2cd80 | 54 4f 4f 4c 20 2e 20 28 28 2c 23 27 67 70 74 65 6c 2d 2d 65 72 72 6f 72 2d 70 20 20 20 20 20 20 | TOOL...((,#'gptel--error-p...... |
| 2cda0 | 20 2e 20 45 52 52 53 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 23 27 67 70 74 65 6c 2d | ...ERRS)..............(,#'gptel- |
| 2cdc0 | 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 2d 70 20 2e 20 57 41 49 54 29 0a 20 20 20 20 20 20 20 20 20 | -tool-result-p...WAIT).......... |
| 2cde0 | 20 20 20 20 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 44 | ....(t.........................D |
| 2ce00 | 4f 4e 45 29 29 29 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 20 67 70 74 65 | ONE))))..."Alist.specifying.gpte |
| 2ce20 | 6c 27 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 20 74 61 62 | l's.default.state.transition.tab |
| 2ce40 | 6c 65 20 66 6f 72 20 72 65 71 75 65 73 74 73 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 | le.for.requests...Each.entry.is. |
| 2ce60 | 61 20 6c 69 73 74 20 77 68 6f 73 65 20 63 61 72 20 69 73 20 61 20 72 65 71 75 65 73 74 20 73 74 | a.list.whose.car.is.a.request.st |
| 2ce80 | 61 74 65 20 28 61 6e 79 20 73 79 6d 62 6f 6c 29 0a 61 6e 64 20 77 68 6f 73 65 20 63 64 72 20 69 | ate.(any.symbol).and.whose.cdr.i |
| 2cea0 | 73 20 61 6e 20 61 6c 69 73 74 20 6c 69 73 74 69 6e 67 20 70 6f 73 73 69 62 6c 65 20 6e 65 78 74 | s.an.alist.listing.possible.next |
| 2cec0 | 20 73 74 61 74 65 73 2e 20 20 45 61 63 68 20 6b 65 79 0a 69 73 20 65 69 74 68 65 72 20 61 20 70 | .states...Each.key.is.either.a.p |
| 2cee0 | 72 65 64 69 63 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 60 74 27 2e 20 20 57 68 65 6e 20 | redicate.function.or.`t'...When. |
| 2cf00 | 60 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 74 27 20 69 73 0a 63 61 6c 6c 65 64 2c 20 74 68 65 | `gptel--fsm-next'.is.called,.the |
| 2cf20 | 20 70 72 65 64 69 63 61 74 65 73 20 61 72 65 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 6f 72 | .predicates.are.called.in.the.or |
| 2cf40 | 64 65 72 20 74 68 65 79 20 61 70 70 65 61 72 20 68 65 72 65 0a 74 6f 20 66 69 6e 64 20 74 68 65 | der.they.appear.here.to.find.the |
| 2cf60 | 20 6e 65 78 74 20 73 74 61 74 65 2e 20 20 45 61 63 68 20 70 72 65 64 69 63 61 74 65 20 69 73 20 | .next.state...Each.predicate.is. |
| 2cf80 | 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 74 61 74 65 0a 6d 61 63 68 69 6e 65 27 73 20 | called.with.the.state.machine's. |
| 2cfa0 | 49 4e 46 4f 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 66 73 6d 27 2e 20 20 41 20 70 72 65 64 69 63 | INFO,.see.`gptel-fsm'...A.predic |
| 2cfc0 | 61 74 65 20 6f 66 20 60 74 27 20 69 73 0a 63 6f 6e 73 69 64 65 72 65 64 20 61 20 73 75 63 63 65 | ate.of.`t'.is.considered.a.succe |
| 2cfe0 | 73 73 20 61 6e 64 20 61 63 74 73 20 61 73 20 61 20 64 65 66 61 75 6c 74 2e 22 29 0a 0a 28 64 65 | ss.and.acts.as.a.default.")..(de |
| 2d000 | 66 76 61 72 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 0a 20 20 60 | fvar.gptel-request--handlers...` |
| 2d020 | 28 28 57 41 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 | ((WAIT.,#'gptel--handle-wait)... |
| 2d040 | 20 20 28 54 4f 4f 4c 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 | ..(TOOL.,#'gptel--handle-tool-us |
| 2d060 | 65 29 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 20 68 61 6e 64 6c 65 72 73 | e))..."Alist.specifying.handlers |
| 2d080 | 20 66 6f 72 20 67 70 74 65 6c 27 73 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 74 72 61 6e 73 | .for.gptel's.default.state.trans |
| 2d0a0 | 69 74 69 6f 6e 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 | itions...Each.entry.is.a.list.wh |
| 2d0c0 | 6f 73 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 20 73 79 | ose.car.is.a.request.state.(a.sy |
| 2d0e0 | 6d 62 6f 6c 29 20 61 6e 64 0a 77 68 6f 73 65 20 63 64 72 20 69 73 20 61 20 6c 69 73 74 20 6f 66 | mbol).and.whose.cdr.is.a.list.of |
| 2d100 | 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c 65 64 20 77 68 65 6e 0a 74 | .handler.functions.called.when.t |
| 2d120 | 72 61 6e 73 69 74 69 6f 6e 69 6e 67 20 74 6f 20 74 68 61 74 20 73 74 61 74 65 2e 20 20 54 68 65 | ransitioning.to.that.state...The |
| 2d140 | 20 68 61 6e 64 6c 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 0a 73 65 71 75 | .handlers.are.called.in.the.sequ |
| 2d160 | 65 6e 63 65 20 74 68 61 74 20 74 68 65 79 20 61 70 70 65 61 72 20 69 6e 20 74 68 65 20 6c 69 73 | ence.that.they.appear.in.the.lis |
| 2d180 | 74 2c 20 61 6e 64 20 65 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 72 65 63 65 69 76 65 73 0a 74 68 | t,.and.each.function.receives.th |
| 2d1a0 | 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 61 73 20 69 74 73 20 6f 6e 6c 79 20 61 72 67 75 | e.state.machine.as.its.only.argu |
| 2d1c0 | 6d 65 6e 74 2e 20 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 0a 72 65 71 | ment...Information.about.the.req |
| 2d1e0 | 75 65 73 74 20 73 74 61 74 65 20 63 61 6e 20 62 65 20 72 65 74 72 69 65 76 65 64 20 76 69 61 20 | uest.state.can.be.retrieved.via. |
| 2d200 | 74 68 65 20 6d 61 63 68 69 6e 65 27 73 20 49 4e 46 4f 20 73 6c 6f 74 2c 20 73 65 65 0a 60 67 70 | the.machine's.INFO.slot,.see.`gp |
| 2d220 | 74 65 6c 2d 66 73 6d 27 2e 0a 0a 48 61 6e 64 6c 65 72 73 20 61 72 65 20 72 65 73 70 6f 6e 73 69 | tel-fsm'...Handlers.are.responsi |
| 2d240 | 62 6c 65 20 66 6f 72 20 64 6f 69 6e 67 20 73 74 61 74 65 2d 72 65 6c 61 74 65 64 20 74 61 73 6b | ble.for.doing.state-related.task |
| 2d260 | 73 20 28 6c 69 6b 65 0a 6c 6f 67 67 69 6e 67 20 65 72 72 6f 72 73 20 6f 72 20 69 6e 73 65 72 74 | s.(like.logging.errors.or.insert |
| 2d280 | 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 29 20 61 6e 64 20 74 72 61 6e 73 69 74 69 6f 6e 69 6e 67 | ing.responses).and.transitioning |
| 2d2a0 | 20 74 6f 20 74 68 65 0a 6e 65 78 74 20 73 74 61 74 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 60 67 | .to.the.next.state.by.calling.`g |
| 2d2c0 | 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 27 2e 0a 0a 48 61 6e 64 6c 65 72 73 | ptel--fsm-transition'...Handlers |
| 2d2e0 | 20 63 61 6e 20 62 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 69 6e 20 77 68 69 63 68 20 63 | .can.be.asynchronous,.in.which.c |
| 2d300 | 61 73 65 20 74 68 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 63 61 6c 6c 0a 73 68 6f 75 6c 64 20 74 | ase.the.transition.call.should.t |
| 2d320 | 79 70 69 63 61 6c 6c 79 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 69 74 73 20 63 61 6c 6c 62 61 | ypically.be.placed.in.its.callba |
| 2d340 | 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 73 65 6e 64 2d 2d 68 61 6e 64 6c | ck.")..(defvar.gptel-send--handl |
| 2d360 | 65 72 73 0a 20 20 60 28 28 57 41 49 54 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 77 | ers...`((WAIT.,#'gptel--handle-w |
| 2d380 | 61 69 74 29 0a 20 20 20 20 28 54 59 50 45 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d | ait).....(TYPE.,#'gptel--handle- |
| 2d3a0 | 70 72 65 2d 69 6e 73 65 72 74 29 0a 20 20 20 20 28 45 52 52 53 20 2c 23 27 67 70 74 65 6c 2d 2d | pre-insert).....(ERRS.,#'gptel-- |
| 2d3c0 | 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 2c 23 27 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 | handle-error.,#'gptel--fsm-last) |
| 2d3e0 | 0a 20 20 20 20 28 54 4f 4f 4c 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c | .....(TOOL.,#'gptel--handle-tool |
| 2d400 | 2d 75 73 65 29 0a 20 20 20 20 28 44 4f 4e 45 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 | -use).....(DONE.,#'gptel--handle |
| 2d420 | 2d 70 6f 73 74 2d 69 6e 73 65 72 74 20 2c 23 27 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 | -post-insert.,#'gptel--fsm-last) |
| 2d440 | 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 20 68 61 6e 64 6c 65 72 73 20 66 | )..."Alist.specifying.handlers.f |
| 2d460 | 6f 72 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e | or.`gptel-send'.state.transition |
| 2d480 | 73 2e 0a 0a 53 65 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 | s...See.`gptel-request--handlers |
| 2d4a0 | 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 | '.for.details.")..(cl-defstruct. |
| 2d4c0 | 28 67 70 74 65 6c 2d 66 73 6d 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 6d | (gptel-fsm.(:constructor.gptel-m |
| 2d4e0 | 61 6b 65 2d 66 73 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 | ake-fsm)........................ |
| 2d500 | 20 20 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 63 6f 70 79 2d 66 73 6d 29 29 0a 20 20 22 53 | ..(:copier.gptel-copy-fsm))..."S |
| 2d520 | 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e | tate.machine.for.gptel.requests. |
| 2d540 | 0a 0a 53 54 41 54 45 3a 20 54 68 65 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f 66 20 74 68 | ..STATE:.The.current.state.of.th |
| 2d560 | 65 20 6d 61 63 68 69 6e 65 2c 20 63 61 6e 20 62 65 20 61 6e 79 20 73 79 6d 62 6f 6c 2e 0a 0a 54 | e.machine,.can.be.any.symbol...T |
| 2d580 | 41 42 4c 45 3a 20 41 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 73 74 61 74 65 73 20 74 6f 20 70 6f | ABLE:.Alist.mapping.states.to.po |
| 2d5a0 | 73 73 69 62 6c 65 20 6e 65 78 74 20 73 74 61 74 65 73 0a 61 6c 6f 6e 67 20 77 69 74 68 20 70 72 | ssible.next.states.along.with.pr |
| 2d5c0 | 65 64 69 63 61 74 65 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6e 65 78 74 20 73 | edicates.to.determine.the.next.s |
| 2d5e0 | 74 61 74 65 2e 20 20 53 65 65 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 | tate...See.`gptel-request--trans |
| 2d600 | 69 74 69 6f 6e 73 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 2e 0a 0a 48 41 4e 44 4c 45 52 | itions'.for.an.example...HANDLER |
| 2d620 | 53 3a 20 41 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 73 74 61 74 65 73 20 74 6f 20 73 74 61 74 65 | S:.Alist.mapping.states.to.state |
| 2d640 | 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 48 61 6e 64 6c 65 72 73 20 61 72 65 | .handler.functions..Handlers.are |
| 2d660 | 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 65 6e 74 65 72 69 6e 67 20 65 61 63 68 20 73 74 61 74 65 | .called.when.entering.each.state |
| 2d680 | 2e 20 20 53 65 65 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 27 | ...See.`gptel-request--handlers' |
| 2d6a0 | 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 0a 0a 49 4e 46 4f 3a 20 54 68 65 20 73 74 61 74 65 | .for.an.example..INFO:.The.state |
| 2d6c0 | 20 6d 61 63 68 69 6e 65 27 73 20 63 75 72 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 54 68 69 | .machine's.current.context...Thi |
| 2d6e0 | 73 20 69 73 20 61 20 70 6c 69 73 74 0a 68 6f 6c 64 69 6e 67 20 61 6c 6c 20 74 68 65 20 69 6e 66 | s.is.a.plist.holding.all.the.inf |
| 2d700 | 6f 72 6d 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 74 68 65 20 6f 6e 67 6f 69 6e | ormation.required.for.the.ongoin |
| 2d720 | 67 20 72 65 71 75 65 73 74 2c 20 61 6e 64 0a 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 74 77 | g.request,.and.can.be.used.to.tw |
| 2d740 | 65 61 6b 20 61 6e 64 20 72 65 73 75 6d 65 20 61 20 70 61 75 73 65 64 20 72 65 71 75 65 73 74 2e | eak.and.resume.a.paused.request. |
| 2d760 | 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20 62 65 0a 63 61 6c 6c 65 64 20 5c 22 63 6f 6e 74 65 78 | ..This.should.be.called.\"contex |
| 2d780 | 74 5c 22 2c 20 62 75 74 20 63 6f 6e 74 65 78 74 20 6d 65 61 6e 73 20 74 6f 6f 20 6d 61 6e 79 20 | t\",.but.context.means.too.many. |
| 2d7a0 | 74 68 69 6e 67 73 20 61 6c 72 65 61 64 79 20 69 6e 0a 67 70 74 65 6c 27 73 20 63 6f 64 65 21 0a | things.already.in.gptel's.code!. |
| 2d7c0 | 0a 45 61 63 68 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 69 73 20 70 61 73 73 65 64 20 61 6e | .Each.gptel.request.is.passed.an |
| 2d7e0 | 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 69 73 0a 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 | .instance.of.this.state.machine. |
| 2d800 | 61 6e 64 20 64 72 69 76 65 6e 20 62 79 20 69 74 2e 22 0a 20 20 28 73 74 61 74 65 20 27 49 4e 49 | and.driven.by.it."...(state.'INI |
| 2d820 | 54 29 0a 20 20 28 74 61 62 6c 65 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 | T)...(table.gptel-request--trans |
| 2d840 | 69 74 69 6f 6e 73 29 0a 20 20 28 68 61 6e 64 6c 65 72 73 20 67 70 74 65 6c 2d 72 65 71 75 65 73 | itions)...(handlers.gptel-reques |
| 2d860 | 74 2d 2d 68 61 6e 64 6c 65 72 73 29 20 69 6e 66 6f 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | t--handlers).info)..(defun.gptel |
| 2d880 | 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 28 6d 61 63 68 69 6e 65 20 26 6f 70 74 69 6f | --fsm-transition.(machine.&optio |
| 2d8a0 | 6e 61 6c 20 6e 65 77 2d 73 74 61 74 65 29 0a 20 20 22 4d 6f 76 65 20 4d 41 43 48 49 4e 45 20 74 | nal.new-state)..."Move.MACHINE.t |
| 2d8c0 | 6f 20 69 74 73 20 6e 65 78 74 20 73 74 61 74 65 2e 0a 0a 4d 41 43 48 49 4e 45 20 69 73 20 61 6e | o.its.next.state...MACHINE.is.an |
| 2d8e0 | 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 60 67 70 74 65 6c 2d 66 73 6d 27 2e 0a 0a 54 68 65 20 6e | .instance.of.`gptel-fsm'...The.n |
| 2d900 | 65 78 74 20 73 74 61 74 65 20 69 73 20 4e 45 57 2d 53 54 41 54 45 20 69 66 20 67 69 76 65 6e 2e | ext.state.is.NEW-STATE.if.given. |
| 2d920 | 20 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 64 65 74 65 72 6d 69 6e 65 64 0a 61 75 74 | ..Otherwise.it.is.determined.aut |
| 2d940 | 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 4d 41 43 48 49 4e 45 27 73 20 74 72 61 6e 73 69 | omatically.from.MACHINE's.transi |
| 2d960 | 74 69 6f 6e 20 74 61 62 6c 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 6e 65 77 2d 73 74 61 74 65 | tion.table."...(unless.new-state |
| 2d980 | 20 28 73 65 74 71 20 6e 65 77 2d 73 74 61 74 65 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 | .(setq.new-state.(gptel--fsm-nex |
| 2d9a0 | 74 20 6d 61 63 68 69 6e 65 29 29 29 0a 20 20 28 70 75 73 68 20 28 67 70 74 65 6c 2d 66 73 6d 2d | t.machine)))...(push.(gptel-fsm- |
| 2d9c0 | 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 | state.machine).........(plist-ge |
| 2d9e0 | 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 6d 61 63 68 69 6e 65 29 20 3a 68 69 73 74 | t.(gptel-fsm-info.machine).:hist |
| 2da00 | 6f 72 79 29 29 0a 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d | ory))...(setf.(gptel-fsm-state.m |
| 2da20 | 61 63 68 69 6e 65 29 20 6e 65 77 2d 73 74 61 74 65 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | achine).new-state)...(when-let*. |
| 2da40 | 28 28 68 61 6e 64 6c 65 72 73 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 65 77 2d 73 74 61 74 65 20 | ((handlers.(alist-get.new-state. |
| 2da60 | 28 67 70 74 65 6c 2d 66 73 6d 2d 68 61 6e 64 6c 65 72 73 20 6d 61 63 68 69 6e 65 29 29 29 29 0a | (gptel-fsm-handlers.machine)))). |
| 2da80 | 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 68 29 20 28 66 75 6e 63 61 6c 6c 20 68 | ....(mapc.(lambda.(h).(funcall.h |
| 2daa0 | 20 6d 61 63 68 69 6e 65 29 29 20 68 61 6e 64 6c 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 | .machine)).handlers)))..(defun.g |
| 2dac0 | 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 74 20 28 6d 61 63 68 69 6e 65 29 0a 20 20 22 44 65 74 65 | ptel--fsm-next.(machine)..."Dete |
| 2dae0 | 72 6d 69 6e 65 20 4d 41 43 48 49 4e 45 27 73 20 6e 65 78 74 20 73 74 61 74 65 20 61 63 63 6f 72 | rmine.MACHINE's.next.state.accor |
| 2db00 | 64 69 6e 67 20 74 6f 20 69 74 73 20 74 72 61 6e 73 69 74 69 6f 6e 20 74 61 62 6c 65 2e 0a 0a 4d | ding.to.its.transition.table...M |
| 2db20 | 41 43 48 49 4e 45 20 69 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 60 67 70 74 65 6c 2d | ACHINE.is.an.instance.of.`gptel- |
| 2db40 | 66 73 6d 27 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 67 70 74 65 6c 2d 66 | fsm'"...(let*.((current.(gptel-f |
| 2db60 | 73 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 | sm-state.machine))..........(tra |
| 2db80 | 6e 73 69 74 69 6f 6e 73 20 28 61 6c 69 73 74 2d 67 65 74 20 63 75 72 72 65 6e 74 20 28 67 70 74 | nsitions.(alist-get.current.(gpt |
| 2dba0 | 65 6c 2d 66 73 6d 2d 74 61 62 6c 65 20 6d 61 63 68 69 6e 65 29 29 29 29 0a 20 20 20 20 28 63 6c | el-fsm-table.machine)))).....(cl |
| 2dbc0 | 2d 6c 6f 6f 70 0a 20 20 20 20 20 77 69 74 68 20 69 6e 66 6f 20 3d 20 28 67 70 74 65 6c 2d 66 73 | -loop......with.info.=.(gptel-fs |
| 2dbe0 | 6d 2d 69 6e 66 6f 20 6d 61 63 68 69 6e 65 29 0a 20 20 20 20 20 66 6f 72 20 28 70 72 65 64 20 2e | m-info.machine)......for.(pred.. |
| 2dc00 | 20 6e 65 78 74 29 20 69 6e 20 74 72 61 6e 73 69 74 69 6f 6e 73 0a 20 20 20 20 20 77 68 65 6e 20 | .next).in.transitions......when. |
| 2dc20 | 28 6f 72 20 28 65 71 20 70 72 65 64 20 74 29 20 28 66 75 6e 63 61 6c 6c 20 70 72 65 64 20 69 6e | (or.(eq.pred.t).(funcall.pred.in |
| 2dc40 | 66 6f 29 29 0a 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 78 74 29 29 29 0a 0a 28 64 65 66 76 61 | fo))......return.next)))..(defva |
| 2dc60 | 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 6e 69 6c 0a 20 20 22 53 | r-local.gptel--fsm-last.nil..."S |
| 2dc80 | 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 6c 61 74 65 73 74 20 72 65 71 75 65 73 74 20 | tate.machine.for.latest.request. |
| 2dca0 | 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 2d | in.the.buffer.")..(defun.gptel-- |
| 2dcc0 | 66 73 6d 2d 6c 61 73 74 20 28 66 73 6d 29 0a 20 20 20 20 22 43 61 70 74 75 72 65 20 74 68 65 20 | fsm-last.(fsm)....."Capture.the. |
| 2dce0 | 6c 61 74 65 73 74 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 46 53 4d 20 66 6f 72 20 69 6e 74 | latest.request.state.FSM.for.int |
| 2dd00 | 72 6f 73 70 65 63 74 69 6f 6e 2e 22 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 | rospection.".....(let.((info.(gp |
| 2dd20 | 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 | tel-fsm-info.fsm))).......(unles |
| 2dd40 | 73 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 | s.gptel-log-level.........(let.( |
| 2dd60 | 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 29 29 29 0a 20 | (data.(plist-get.info.:data))).. |
| 2dd80 | 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 27 28 3a 6d 65 73 73 61 67 65 | .........(dolist.(key.'(:message |
| 2dda0 | 73 20 3a 63 6f 6e 74 65 6e 74 73 20 3a 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | s.:contents.:query))............ |
| 2ddc0 | 20 28 73 65 74 66 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 6b 65 79 29 20 6e 69 6c 29 | .(setf.(plist-get.data.key).nil) |
| 2dde0 | 29 29 29 0a 20 20 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 20 | ))).......(setf.(gptel-fsm-info. |
| 2de00 | 66 73 6d 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 69 6e 66 6f | fsm).............(plist-put.info |
| 2de20 | 20 3a 65 6e 64 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 29 | .:end-time.(current-time-string) |
| 2de40 | 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 28 70 | )).......(with-current-buffer.(p |
| 2de60 | 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 20 20 28 | list-get.info.:buffer).........( |
| 2de80 | 73 65 74 71 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 66 73 6d 29 29 29 29 0a 0a 28 64 | setq.gptel--fsm-last.fsm))))..(d |
| 2dea0 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d 20 28 26 6f 70 74 69 6f 6e | efun.gptel--inspect-fsm.(&option |
| 2dec0 | 61 6c 20 66 73 6d 29 0a 20 20 22 49 6e 73 70 65 63 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 | al.fsm)..."Inspect.gptel.request |
| 2dee0 | 20 73 74 61 74 65 20 46 53 4d 2e 0a 0a 46 53 4d 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 | .state.FSM...FSM.defaults.to.the |
| 2df00 | 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 72 65 71 75 65 73 74 20 69 6e 20 74 68 | .state.of.the.last.request.in.th |
| 2df20 | 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 66 73 6d | e.current.buffer."...(unless.fsm |
| 2df40 | 0a 20 20 20 20 28 73 65 74 71 20 66 73 6d 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 63 6c | .....(setq.fsm.(or.(cdr-safe.(cl |
| 2df60 | 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 20 | -find-if........................ |
| 2df80 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 | ......(lambda.(proc-list)....... |
| 2dfa0 | 20 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 71 20 28 74 68 | .........................(eq.(th |
| 2dfc0 | 72 65 61 64 2d 66 69 72 73 74 20 28 63 64 72 20 70 72 6f 63 2d 6c 69 73 74 29 0a 20 20 20 20 20 | read-first.(cdr.proc-list)...... |
| 2dfe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e000 | 20 20 20 20 20 20 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 | ............(gptel-fsm-info).... |
| 2e020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e040 | 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 3a 62 75 66 66 65 72 | ..............(plist-get.:buffer |
| 2e060 | 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 | )).............................. |
| 2e080 | 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 20 20 20 20 | ......(current-buffer)))........ |
| 2e0a0 | 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 72 65 71 | ......................gptel--req |
| 2e0c0 | 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 20 20 20 20 20 67 | uest-alist))...................g |
| 2e0e0 | 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 63 6c 2d | ptel--fsm-last)))...(unless.(cl- |
| 2e100 | 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 6d | typep.gptel--fsm-last.'gptel-fsm |
| 2e120 | 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 71 75 | ).....(user-error."No.gptel.requ |
| 2e140 | 65 73 74 20 6c 6f 67 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 20 79 65 74 21 22 29 29 0a 20 | est.log.in.this.buffer.yet!")).. |
| 2e160 | 20 28 72 65 71 75 69 72 65 20 27 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 29 0a 20 20 28 77 69 | .(require.'tabulated-list)...(wi |
| 2e180 | 74 68 2d 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 | th-current-buffer.(get-buffer-cr |
| 2e1a0 | 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 64 69 61 67 6e 6f 73 74 69 63 2a 22 29 0a 20 20 20 20 28 | eate."*gptel-diagnostic*").....( |
| 2e1c0 | 73 65 74 71 20 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 66 6f 72 6d 61 74 20 5b 28 22 52 65 | setq.tabulated-list-format.[("Re |
| 2e1e0 | 71 75 65 73 74 20 61 74 74 72 69 62 75 74 65 22 20 33 30 20 74 29 20 28 22 56 61 6c 75 65 22 20 | quest.attribute".30.t).("Value". |
| 2e200 | 33 30 29 5d 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 62 20 28 6c 61 6d 62 64 61 20 28 73 29 | 30)]).....(let*.((pb.(lambda.(s) |
| 2e220 | 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- |
| 2e240 | 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 73 20 28 | builtin-face)))............(ps.( |
| 2e260 | 6c 61 6d 62 64 61 20 28 73 29 20 28 70 72 6f 70 65 72 74 69 7a 65 20 73 20 27 66 61 63 65 20 27 | lambda.(s).(propertize.s.'face.' |
| 2e280 | 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 20 | font-lock-string-face)))........ |
| 2e2a0 | 20 20 20 20 28 66 6d 74 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 63 6f 6e 64 20 28 28 6d 65 6d | ....(fmt.(lambda.(s).(cond.((mem |
| 2e2c0 | 71 20 28 63 61 72 2d 73 61 66 65 20 73 29 20 27 28 63 6c 6f 73 75 72 65 20 6c 61 6d 62 64 61 29 | q.(car-safe.s).'(closure.lambda) |
| 2e2e0 | 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 | )............................... |
| 2e300 | 28 66 6f 72 6d 61 74 20 22 23 3c 6c 61 6d 62 64 61 20 25 23 78 3e 22 20 28 73 78 68 61 73 68 20 | (format."#<lambda.%#x>".(sxhash. |
| 2e320 | 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 20 20 20 20 20 20 20 | s)))............................ |
| 2e340 | 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e 2d 70 20 73 29 0a 20 20 20 20 | ..((byte-code-function-p.s)..... |
| 2e360 | 20 20 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 6d 61 | ..........................(forma |
| 2e380 | 74 20 22 23 3c 63 6f 6d 70 69 6c 65 64 20 25 23 78 3e 22 20 28 73 78 68 61 73 68 20 73 29 29 29 | t."#<compiled.%#x>".(sxhash.s))) |
| 2e3a0 | 0a 20 20 20 20 20 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 | ..............................(( |
| 2e3c0 | 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 | stringp.s).(string-replace."\n". |
| 2e3e0 | 22 e2 ae 90 20 22 20 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 | "....".s))...................... |
| 2e400 | 20 20 20 20 20 20 20 20 28 74 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 73 29 29 29 | ........(t.(prin1-to-string.s))) |
| 2e420 | 29 29 0a 20 20 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 | ))............(inhibit-read-only |
| 2e440 | 20 74 29 0a 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 | .t)............(info.(gptel-fsm- |
| 2e460 | 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 2d 69 | info.fsm))............(entries-i |
| 2e480 | 6e 66 6f 0a 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 | nfo.............(cl-loop........ |
| 2e4a0 | 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 33 0a 20 20 20 20 20 20 20 20 20 | ......for.idx.upfrom.3.......... |
| 2e4c0 | 20 20 20 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 29 20 6f 6e 20 69 6e 66 6f 20 62 79 20 23 27 63 | ....for.(key.val).on.info.by.#'c |
| 2e4e0 | 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 65 | ddr..............unless.(memq.ke |
| 2e500 | 79 20 27 28 3a 64 61 74 61 20 3a 68 69 73 74 6f 72 79 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 | y.'(:data.:history.:tools....... |
| 2e520 | 20 20 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 70 61 72 74 69 | ..........................:parti |
| 2e540 | 61 6c 5f 74 65 78 74 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 | al_text.:partial_json))......... |
| 2e560 | 20 20 20 20 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 | .....collect..............(list. |
| 2e580 | 69 64 78 20 60 5b 2c 28 66 75 6e 63 61 6c 6c 20 70 62 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 | idx.`[,(funcall.pb.(symbol-name. |
| 2e5a0 | 6b 65 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 2c | key)).........................., |
| 2e5c0 | 28 66 75 6e 63 61 6c 6c 20 70 73 20 28 66 75 6e 63 61 6c 6c 20 66 6d 74 20 76 61 6c 29 29 5d 29 | (funcall.ps.(funcall.fmt.val))]) |
| 2e5e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 2d 64 61 74 61 0a 20 20 20 20 | ))............(entries-data..... |
| 2e600 | 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 6f | ........(cl-loop..............fo |
| 2e620 | 72 20 69 64 78 20 75 70 66 72 6f 6d 20 35 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | r.idx.upfrom.50..............for |
| 2e640 | 20 28 6b 65 79 20 76 61 6c 29 20 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 | .(key.val).on.(plist-get.info.:d |
| 2e660 | 61 74 61 29 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 | ata).by.#'cddr..............unle |
| 2e680 | 73 73 20 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 6d 65 73 73 61 67 65 73 20 3a 73 74 72 65 61 6d | ss.(memq.key.'(:messages.:stream |
| 2e6a0 | 20 3a 63 6f 6e 74 65 6e 74 73 20 3a 71 75 65 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:contents.:query))............. |
| 2e6c0 | 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 69 64 78 20 | .collect..............(list.idx. |
| 2e6e0 | 60 5b 2c 28 66 75 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 | `[,(funcall.pb.(symbol-name.key) |
| 2e700 | 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 2c 28 66 75 6e | )..........................,(fun |
| 2e720 | 63 61 6c 6c 20 70 73 20 28 66 75 6e 63 61 6c 6c 20 66 6d 74 20 76 61 6c 29 29 5d 29 29 29 29 0a | call.ps.(funcall.fmt.val))])))). |
| 2e740 | 20 20 20 20 20 20 28 73 65 74 71 20 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 65 6e 74 72 69 | ......(setq.tabulated-list-entri |
| 2e760 | 65 73 0a 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 60 28 32 20 | es.............(nconc.(list.`(2. |
| 2e780 | 5b 2c 28 66 75 6e 63 61 6c 6c 20 70 62 20 22 3a 73 74 61 74 65 22 29 0a 20 20 20 20 20 20 20 20 | [,(funcall.pb.":state")......... |
| 2e7a0 | 20 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 | ......................,(funcall. |
| 2e7c0 | 70 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 | ps.............................. |
| 2e7e0 | 20 20 20 28 6d 61 70 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 | ...(mapconcat................... |
| 2e800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6d 74 20 28 72 65 76 65 72 73 65 20 28 63 6f 6e | ...............fmt.(reverse.(con |
| 2e820 | 73 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 | s.(gptel-fsm-state.fsm)......... |
| 2e840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2e860 | 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 68 69 73 74 6f 72 79 29 | .......(plist-get.info.:history) |
| 2e880 | 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 | )).............................. |
| 2e8a0 | 20 20 20 20 22 20 e2 86 92 20 22 29 29 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...."....."))]))................ |
| 2e8c0 | 20 20 20 20 65 6e 74 72 69 65 73 2d 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....entries-info................ |
| 2e8e0 | 20 20 20 20 65 6e 74 72 69 65 73 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 | ....entries-data)).......(tabula |
| 2e900 | 74 65 64 2d 6c 69 73 74 2d 70 72 69 6e 74 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 74 65 64 | ted-list-print).......(tabulated |
| 2e920 | 2d 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 | -list-mode).......(tabulated-lis |
| 2e940 | 74 2d 69 6e 69 74 2d 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 6d 6f | t-init-header).......(hl-line-mo |
| 2e960 | 64 65 20 31 29 0a 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 | de.1).......(display-buffer..... |
| 2e980 | 20 20 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 27 28 28 64 69 | ...(current-buffer)........'((di |
| 2e9a0 | 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 69 6e 2d 73 69 64 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 | splay-buffer-in-side-window).... |
| 2e9c0 | 20 20 20 20 20 20 28 73 69 64 65 20 2e 20 62 6f 74 74 6f 6d 29 0a 20 20 20 20 20 20 20 20 20 28 | ......(side...bottom)..........( |
| 2e9e0 | 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 2e 20 66 69 74 2d 77 69 6e 64 6f 77 2d 74 6f 2d 62 75 | window-height...fit-window-to-bu |
| 2ea00 | 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 73 6c 6f 74 20 2e 20 31 30 29 0a 20 20 20 20 20 | ffer)..........(slot...10)...... |
| 2ea20 | 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 73 65 6c 65 63 74 2d 77 69 6e 64 | ....(body-function...select-wind |
| 2ea40 | 6f 77 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 68 61 6e | ow))))))..;;;;.State.machine.han |
| 2ea60 | 64 6c 65 72 73 0a 3b 3b 20 54 68 65 20 6e 65 78 74 20 66 65 77 20 66 75 6e 63 74 69 6f 6e 73 20 | dlers.;;.The.next.few.functions. |
| 2ea80 | 61 72 65 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 20 67 | are.default.state.handlers.for.g |
| 2eaa0 | 70 74 65 6c 27 73 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 2c 0a 3b 3b 20 73 65 65 20 60 67 70 | ptel's.state.machine,.;;.see.`gp |
| 2eac0 | 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 27 2e 0a 0a 28 64 65 66 75 6e 20 | tel-request--handlers'...(defun. |
| 2eae0 | 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 77 61 69 74 20 28 66 73 6d 29 0a 20 20 22 46 69 72 65 | gptel--handle-wait.(fsm)..."Fire |
| 2eb00 | 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 73 74 61 74 65 20 | .the.request.contained.in.state. |
| 2eb20 | 6d 61 63 68 69 6e 65 20 46 53 4d 27 73 20 69 6e 66 6f 2e 22 0a 20 20 3b 3b 20 52 65 73 65 74 20 | machine.FSM's.info."...;;.Reset. |
| 2eb40 | 73 6f 6d 65 20 66 6c 61 67 73 20 69 6e 20 69 6e 66 6f 2e 20 20 54 68 69 73 20 69 73 20 6e 65 63 | some.flags.in.info...This.is.nec |
| 2eb60 | 65 73 73 61 72 79 20 77 68 65 6e 20 72 65 75 73 69 6e 67 20 66 73 6d 27 73 20 63 6f 6e 74 65 78 | essary.when.reusing.fsm's.contex |
| 2eb80 | 74 20 66 6f 72 0a 20 20 3b 3b 20 61 20 73 65 63 6f 6e 64 20 6e 65 74 77 6f 72 6b 20 72 65 71 75 | t.for...;;.a.second.network.requ |
| 2eba0 | 65 73 74 3a 20 67 70 74 65 6c 20 74 65 73 74 73 20 66 6f 72 20 74 68 65 20 70 72 65 73 65 6e 63 | est:.gptel.tests.for.the.presenc |
| 2ebc0 | 65 20 6f 66 20 74 68 65 73 65 20 66 6c 61 67 73 20 74 6f 0a 20 20 3b 3b 20 68 61 6e 64 6c 65 20 | e.of.these.flags.to...;;.handle. |
| 2ebe0 | 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 73 2e 20 20 28 4e 4f 54 45 3a 20 44 6f 6e 27 74 | state.transitions...(NOTE:.Don't |
| 2ec00 | 20 61 64 64 20 3a 74 6f 6b 65 6e 20 74 6f 20 74 68 69 73 2e 29 0a 20 20 28 6c 65 74 20 28 28 69 | .add.:token.to.this.)...(let.((i |
| 2ec20 | 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 28 | nfo.(gptel-fsm-info.fsm))).....( |
| 2ec40 | 64 6f 6c 69 73 74 20 28 6b 65 79 20 27 28 3a 74 6f 6f 6c 2d 73 75 63 63 65 73 73 20 3a 74 6f 6f | dolist.(key.'(:tool-success.:too |
| 2ec60 | 6c 2d 75 73 65 20 3a 65 72 72 6f 72 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 | l-use.:error.:http-status))..... |
| 2ec80 | 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 29 0a 20 20 20 | ..(when.(plist-get.info.key).... |
| 2eca0 | 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 6c 29 29 29 29 | .....(plist-put.info.key.nil)))) |
| 2ecc0 | 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 65 2d 63 75 72 | ...(funcall....(if.gptel-use-cur |
| 2ece0 | 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 65 73 70 6f 6e | l........#'gptel-curl-get-respon |
| 2ed00 | 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 73 70 6f 6e 73 | se......#'gptel--url-get-respons |
| 2ed20 | 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 74 65 6c 2d 70 | e)....fsm)...(run-hooks.'gptel-p |
| 2ed40 | 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 75 72 72 65 6e | ost-request-hook)...(with-curren |
| 2ed60 | 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 66 73 6d 2d 69 | t-buffer.(plist-get.(gptel-fsm-i |
| 2ed80 | 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 6c 2d 2d 75 70 | nfo.fsm).:buffer).....(gptel--up |
| 2eda0 | 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 77 61 72 6e 69 | date-status.".Waiting...".'warni |
| 2edc0 | 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 2d 70 72 65 2d | ng)))..(defun.gptel--handle-pre- |
| 2ede0 | 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 65 20 69 6e 73 | insert.(fsm)..."Tasks.before.ins |
| 2ee00 | 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 20 73 74 61 74 | erting.the.LLM.response.for.stat |
| 2ee20 | 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 66 66 65 72 73 | e.FSM...Handle.read-only.buffers |
| 2ee40 | 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 20 28 62 75 74 | .and.run.pre-response.hooks.(but |
| 2ee60 | 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 64 65 64 29 2e | .only.if.the.request.succeeded). |
| 2ee80 | 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 2d 69 6e 66 6f | "...(let*.((info.(gptel-fsm-info |
| 2eea0 | 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 65 72 20 28 70 | .fsm))..........(start-marker.(p |
| 2eec0 | 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 28 | list-get.info.:position))).....( |
| 2eee0 | 77 68 65 6e 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 | when.(with-current-buffer.(plist |
| 2ef00 | 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 20 20 28 | -get.info.:buffer).............( |
| 2ef20 | 6f 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 | or.buffer-read-only............. |
| 2ef40 | 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 2d 6d 61 72 | ....(get-char-property.start-mar |
| 2ef60 | 6b 65 72 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 | ker.'read-only))).......(message |
| 2ef80 | 20 22 42 75 66 66 65 72 20 69 73 20 72 65 61 64 20 6f 6e 6c 79 2c 20 64 69 73 70 6c 61 79 69 6e | ."Buffer.is.read.only,.displayin |
| 2efa0 | 67 20 72 65 70 6c 79 20 69 6e 20 62 75 66 66 65 72 20 5c 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 | g.reply.in.buffer.\"*LLM.respons |
| 2efc0 | 65 2a 5c 22 22 29 0a 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 | e*\"").......(display-buffer.... |
| 2efe0 | 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 67 65 74 2d 62 75 | ....(with-current-buffer.(get-bu |
| 2f000 | 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 22 29 0a 20 20 | ffer-create."*LLM.response*")... |
| 2f020 | 20 20 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 | .......(visual-line-mode.1)..... |
| 2f040 | 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 29 0a 20 20 20 | .....(goto-char.(point-max)).... |
| 2f060 | 20 20 20 20 20 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 | ......(move-marker.start-marker. |
| 2f080 | 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 20 | (point).(current-buffer))....... |
| 2f0a0 | 20 20 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 27 28 28 64 | ...(current-buffer))........'((d |
| 2f0c0 | 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 | isplay-buffer-reuse-window...... |
| 2f0e0 | 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f | .....display-buffer-pop-up-windo |
| 2f100 | 77 29 0a 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 | w)..........(reusable-frames...v |
| 2f120 | 69 73 69 62 6c 65 29 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 | isible)))).....(with-current-buf |
| 2f140 | 66 65 72 20 28 6d 61 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 | fer.(marker-buffer.start-marker) |
| 2f160 | 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 3a 73 74 | .......(when.(plist-get.info.:st |
| 2f180 | 72 65 61 6d 29 0a 20 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 | ream).........(gptel--update-sta |
| 2f1a0 | 74 75 73 20 22 20 54 79 70 69 6e 67 2e 2e 2e 22 20 27 73 75 63 63 65 73 73 29 29 0a 20 20 20 20 | tus.".Typing...".'success))..... |
| 2f1c0 | 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 28 67 6f 74 6f 2d | ..(save-excursion.........(goto- |
| 2f1e0 | 63 68 61 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e | char.start-marker).........(when |
| 2f200 | 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 68 | .(and.(member.(plist-get.info.:h |
| 2f220 | 74 74 70 2d 73 74 61 74 75 73 29 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 20 | ttp-status).'("200"."100"))..... |
| 2f240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 | ...............gptel-pre-respons |
| 2f260 | 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 | e-hook)...........(run-hooks.'gp |
| 2f280 | 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 29 29 29 29 29 29 0a 0a 28 64 65 | tel-pre-response-hook))))))..(de |
| 2f2a0 | 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 70 6f 73 74 2d 69 6e 73 65 72 74 20 28 66 | fun.gptel--handle-post-insert.(f |
| 2f2c0 | 73 6d 29 0a 20 20 22 54 61 73 6b 73 20 61 66 74 65 72 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 | sm)..."Tasks.after.successfully. |
| 2f2e0 | 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 77 69 74 68 20 | inserting.the.LLM.response.with. |
| 2f300 | 73 74 61 74 65 20 46 53 4d 2e 0a 0a 49 6e 64 69 63 61 74 65 20 67 70 74 65 6c 20 73 74 61 74 75 | state.FSM...Indicate.gptel.statu |
| 2f320 | 73 2c 20 70 75 6c 73 65 20 74 68 65 20 69 6e 73 65 72 74 65 64 20 74 65 78 74 20 61 6e 64 20 72 | s,.pulse.the.inserted.text.and.r |
| 2f340 | 75 6e 20 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 20 68 6f 6f 6b 73 2e 0a 0a 4e 6f 20 73 74 61 74 | un.post-response.hooks...No.stat |
| 2f360 | 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 68 65 72 65 20 73 69 6e 63 65 20 74 68 61 74 27 73 20 68 | e.transition.here.since.that's.h |
| 2f380 | 61 6e 64 6c 65 64 20 62 79 20 74 68 65 20 70 72 6f 63 65 73 73 20 73 65 6e 74 69 6e 65 6c 73 2e | andled.by.the.process.sentinels. |
| 2f3a0 | 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 2d 69 6e 66 6f | "...(let*.((info.(gptel-fsm-info |
| 2f3c0 | 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 65 72 20 28 70 | .fsm))..........(start-marker.(p |
| 2f3e0 | 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 20 20 | list-get.info.:position))....... |
| 2f400 | 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 | ...(tracking-marker.(or.(plist-g |
| 2f420 | 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 0a 20 20 20 20 20 20 | et.info.:tracking-marker)....... |
| 2f440 | 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 74 61 72 74 2d 6d 61 | ........................start-ma |
| 2f460 | 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 | rker))..........;;.start-marker. |
| 2f480 | 6d 61 79 20 68 61 76 65 20 62 65 65 6e 20 6d 6f 76 65 64 20 69 66 20 3a 62 75 66 66 65 72 20 77 | may.have.been.moved.if.:buffer.w |
| 2f4a0 | 61 73 20 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 | as.read-only..........(gptel-buf |
| 2f4c0 | 66 65 72 20 28 6d 61 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 | fer.(marker-buffer.start-marker) |
| 2f4e0 | 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 67 70 74 65 | )).....(with-current-buffer.gpte |
| 2f500 | 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 | l-buffer.......(if.(not.tracking |
| 2f520 | 2d 6d 61 72 6b 65 72 29 20 20 20 20 20 20 20 20 20 3b 45 6d 70 74 79 20 72 65 73 70 6f 6e 73 65 | -marker).........;Empty.response |
| 2f540 | 0a 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 20 28 67 70 74 | ...........(when.gptel-mode.(gpt |
| 2f560 | 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 45 6d 70 74 79 20 72 65 73 70 6f 6e | el--update-status.".Empty.respon |
| 2f580 | 73 65 22 20 27 73 75 63 63 65 73 73 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 6c 73 65 2d 6d 6f | se".'success)).........(pulse-mo |
| 2f5a0 | 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 73 74 61 72 74 2d 6d | mentary-highlight-region.start-m |
| 2f5c0 | 61 72 6b 65 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 20 28 | arker.tracking-marker).........( |
| 2f5e0 | 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | when.gptel-mode...........(save- |
| 2f600 | 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 | excursion.(goto-char.tracking-ma |
| 2f620 | 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 20 20 20 20 20 20 20 | rker)........................... |
| 2f640 | 28 69 6e 73 65 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 | (insert.gptel-response-separator |
| 2f660 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2f680 | 20 20 20 28 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 | ...(gptel-prompt-prefix-string)) |
| 2f6a0 | 29 0a 20 20 20 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 | )...........(gptel--update-statu |
| 2f6c0 | 73 20 20 22 20 52 65 61 64 79 22 20 27 73 75 63 63 65 73 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 | s..".Ready".'success)))).....;;. |
| 2f6e0 | 52 75 6e 20 68 6f 6f 6b 20 69 6e 20 76 69 73 69 62 6c 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 65 | Run.hook.in.visible.window.to.se |
| 2f700 | 74 20 77 69 6e 64 6f 77 2d 70 6f 69 6e 74 2c 20 42 55 47 20 23 32 36 39 0a 20 20 20 20 28 69 66 | t.window-point,.BUG.#269.....(if |
| 2f720 | 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 66 66 65 72 | -let*.((gptel-window.(get-buffer |
| 2f740 | 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 65 29 29 29 | -window.gptel-buffer.'visible))) |
| 2f760 | 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 6f 77 20 67 | .........(with-selected-window.g |
| 2f780 | 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 6f 6f 6b 2d | ptel-window...........(run-hook- |
| 2f7a0 | 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 70 6f 73 74 | with-args............'gptel-post |
| 2f7c0 | 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 20 20 20 28 | -response-functions............( |
| 2f7e0 | 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 29 20 28 6d | marker-position.start-marker).(m |
| 2f800 | 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 65 72 29 29 | arker-position.tracking-marker)) |
| 2f820 | 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 67 70 74 | ).......(with-current-buffer.gpt |
| 2f840 | 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 77 69 74 68 | el-buffer.........(run-hook-with |
| 2f860 | 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 65 73 70 6f | -args..........'gptel-post-respo |
| 2f880 | 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 65 72 2d 70 | nse-functions..........(marker-p |
| 2f8a0 | 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 72 2d 70 6f | osition.start-marker).(marker-po |
| 2f8c0 | 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 0a 0a 28 64 | sition.tracking-marker))))))..(d |
| 2f8e0 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 28 66 73 6d 29 0a 20 | efun.gptel--handle-error.(fsm).. |
| 2f900 | 20 22 43 68 65 63 6b 20 66 6f 72 20 65 72 72 6f 72 73 20 69 6e 20 72 65 71 75 65 73 74 20 73 74 | ."Check.for.errors.in.request.st |
| 2f920 | 61 74 65 20 46 53 4d 20 70 65 72 66 6f 72 6d 20 55 49 20 75 70 64 61 74 65 73 2e 0a 0a 52 75 6e | ate.FSM.perform.UI.updates...Run |
| 2f940 | 20 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 20 68 6f 6f 6b 73 2e 22 0a 20 20 28 77 68 65 6e 2d 6c | .post-response.hooks."...(when-l |
| 2f960 | 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 6d 29 29 | et*.((info.(gptel-fsm-info.fsm)) |
| 2f980 | 0a 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 28 70 6c 69 73 | ...............(error-data.(plis |
| 2f9a0 | 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 20 20 | t-get.info.:error))............. |
| 2f9c0 | 20 20 28 68 74 74 70 2d 6d 73 67 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 | ..(http-msg...(plist-get.info.:s |
| 2f9e0 | 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 | tatus))...............(gptel-buf |
| 2fa00 | 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 29 0a 20 20 | fer.(plist-get.info.:buffer))... |
| 2fa20 | 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 70 6c 69 73 74 | ............(start-marker.(plist |
| 2fa40 | 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 20 20 20 20 20 20 | -get.info.:position))........... |
| 2fa60 | 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 6f 72 20 28 70 6c 69 73 74 2d | ....(tracking-marker.(or.(plist- |
| 2fa80 | 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 0a 20 20 20 20 20 | get.info.:tracking-marker)...... |
| 2faa0 | 20 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 74 61 72 74 2d 6d | .........................start-m |
| 2fac0 | 61 72 6b 65 72 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 2d 6e | arker))...............(backend-n |
| 2fae0 | 61 6d 65 0a 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 | ame................(gptel-backen |
| 2fb00 | 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c | d-name.................(buffer-l |
| 2fb20 | 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | ocal-value.'gptel-backend.gptel- |
| 2fb40 | 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 65 72 72 6f | buffer)))).....(if.(stringp.erro |
| 2fb60 | 72 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 | r-data).........(message."%s.err |
| 2fb80 | 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d | or:.(%s).%s".backend-name.http-m |
| 2fba0 | 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 64 61 74 61 29 29 0a 20 20 20 | sg.(string-trim.error-data)).... |
| 2fbc0 | 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 65 72 72 6f 72 2d 74 79 70 65 20 28 70 6c 69 73 | ...(when-let*.((error-type.(plis |
| 2fbe0 | 74 2d 67 65 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 74 79 70 65 29 29 29 0a 20 20 20 20 20 20 | t-get.error-data.:type)))....... |
| 2fc00 | 20 20 28 73 65 74 71 20 68 74 74 70 2d 6d 73 67 20 28 63 6f 6e 63 61 74 20 22 28 22 20 20 68 74 | ..(setq.http-msg.(concat."("..ht |
| 2fc20 | 74 70 2d 6d 73 67 20 22 29 20 22 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 74 | tp-msg.").".(string-trim.error-t |
| 2fc40 | 79 70 65 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 65 72 72 6f 72 | ype)))).......(when-let*.((error |
| 2fc60 | 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 6d 65 73 73 | -msg.(plist-get.error-data.:mess |
| 2fc80 | 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f | age))).........(message."%s.erro |
| 2fca0 | 72 3a 20 28 25 73 29 20 25 73 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 | r:.(%s).%s".backend-name.http-ms |
| 2fcc0 | 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 6d 73 67 29 29 29 29 0a 20 20 20 | g.(string-trim.error-msg)))).... |
| 2fce0 | 20 28 77 69 74 68 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 | .(with-current-buffer.gptel-buff |
| 2fd00 | 65 72 0a 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 | er.......(when.gptel-mode....... |
| 2fd20 | 20 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 20 20 | ..(gptel--update-status......... |
| 2fd40 | 20 28 66 6f 72 6d 61 74 20 22 20 45 72 72 6f 72 3a 20 25 73 22 20 68 74 74 70 2d 6d 73 67 29 20 | .(format.".Error:.%s".http-msg). |
| 2fd60 | 27 65 72 72 6f 72 29 29 29 0a 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 77 | 'error))).....(if-let*.((gptel-w |
| 2fd80 | 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 2d 62 | indow.(get-buffer-window.gptel-b |
| 2fda0 | 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 68 2d | uffer.'visible))).........(with- |
| 2fdc0 | 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 20 20 | selected-window.gptel-window.... |
| 2fde0 | 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 20 20 | .......(run-hook-with-args...... |
| 2fe00 | 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 63 74 | ......'gptel-post-response-funct |
| 2fe20 | 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 6f 6e | ions............(marker-position |
| 2fe40 | 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 6e 20 | .start-marker).(marker-position. |
| 2fe60 | 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 2d 63 | tracking-marker))).......(with-c |
| 2fe80 | 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 20 | urrent-buffer.gptel-buffer...... |
| 2fea0 | 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 20 20 | ...(run-hook-with-args.......... |
| 2fec0 | 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 0a 20 | 'gptel-post-response-functions.. |
| 2fee0 | 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 2d 6d | ........(marker-position.start-m |
| 2ff00 | 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 6e 67 | arker).(marker-position.tracking |
| 2ff20 | 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 61 6e | -marker))))))..(defun.gptel--han |
| 2ff40 | 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 20 28 66 73 6d 29 0a 20 20 22 52 75 6e 20 74 6f 6f 6c 20 63 | dle-tool-use.(fsm)..."Run.tool.c |
| 2ff60 | 61 6c 6c 73 20 63 61 70 74 75 72 65 64 20 69 6e 20 46 53 4d 2c 20 61 6e 64 20 61 64 76 61 6e 63 | alls.captured.in.FSM,.and.advanc |
| 2ff80 | 65 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 77 69 74 68 20 74 68 65 20 72 65 73 | e.the.state.machine.with.the.res |
| 2ffa0 | 75 6c 74 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 70 74 65 | ults."...(when-let*.((info.(gpte |
| 2ffc0 | 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 20 20 28 | l-fsm-info.fsm))...............( |
| 2ffe0 | 62 61 63 6b 65 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 | backend.(plist-get.info.:backend |
| 30000 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 66 75 6e 63 74 69 6f | ))...............;;.This.functio |
| 30020 | 6e 20 6d 69 67 68 74 20 72 75 6e 20 6d 61 6e 79 20 74 69 6d 65 73 2c 20 73 6f 20 6f 6e 6c 79 20 | n.might.run.many.times,.so.only. |
| 30040 | 61 63 74 20 6f 6e 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e | act.on.the.remaining.tool.calls. |
| 30060 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 75 73 65 20 28 63 6c 2d 72 65 6d | ...............(tool-use.(cl-rem |
| 30080 | 6f 76 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 74 63 29 20 28 70 6c 69 73 74 2d 67 65 74 20 74 | ove-if.(lambda.(tc).(plist-get.t |
| 300a0 | 63 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 20 20 20 20 20 20 | c.:result))..................... |
| 300c0 | 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 6e 66 | ..................(plist-get.inf |
| 300e0 | 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 28 6e 74 | o.:tool-use)))...............(nt |
| 30100 | 6f 6f 6c 73 20 28 6c 65 6e 67 74 68 20 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 | ools.(length.tool-use))......... |
| 30120 | 20 20 20 20 20 20 28 74 6f 6f 6c 2d 69 64 78 20 30 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 | ......(tool-idx.0)).....(with-cu |
| 30140 | 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 62 75 | rrent-buffer.(plist-get.info.:bu |
| 30160 | 66 66 65 72 29 0a 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 | ffer).......(when.gptel-mode.... |
| 30180 | 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 0a 20 20 20 20 20 | .....(gptel--update-status...... |
| 301a0 | 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 43 61 6c 6c 69 6e 67 20 74 6f 6f 6c 2e 2e 2e 22 20 29 | ....(format.".Calling.tool...".) |
| 301c0 | 20 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 29 0a 0a 20 20 20 20 28 6c 65 | .'mode-line-emphasis)))......(le |
| 301e0 | 74 20 28 28 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 20 28 70 65 6e 64 69 6e 67 2d 63 61 6c 6c 73 | t.((result-alist).(pending-calls |
| 30200 | 29 29 0a 20 20 20 20 20 20 28 6d 61 70 63 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )).......(mapc.................. |
| 30220 | 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 6f 6e 73 74 72 75 63 74 20 66 75 6e 63 74 69 6f 6e 20 | ...........;.Construct.function. |
| 30240 | 63 61 6c 6c 73 0a 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 29 | calls........(lambda.(tool-call) |
| 30260 | 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 61 72 67 73 20 28 70 6c 69 73 74 2d | ..........(letrec.((args.(plist- |
| 30280 | 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | get.tool-call.:args))........... |
| 302a0 | 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 63 61 | ........(name.(plist-get.tool-ca |
| 302c0 | 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 20 20 28 61 72 | ll.:name))...................(ar |
| 302e0 | 67 2d 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 28 74 6f 6f | g-values)...................(too |
| 30300 | 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 28 63 6c 2d 66 69 | l-spec....................(cl-fi |
| 30320 | 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 28 6c 61 6d 62 64 | nd-if.....................(lambd |
| 30340 | 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 6e 61 6d 65 20 74 | a.(ts).(equal.(gptel-tool-name.t |
| 30360 | 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 20 20 20 20 28 70 | s).name)).....................(p |
| 30380 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 | list-get.info.:tools)))......... |
| 303a0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 0a 20 | ..........(process-tool-result.. |
| 303c0 | 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 72 65 73 75 6c | ..................(lambda.(resul |
| 303e0 | 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 70 6c 69 73 74 2d 70 | t)......................(plist-p |
| 30400 | 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 73 75 63 63 65 73 73 20 74 29 0a 20 20 20 20 20 20 20 | ut.info.:tool-success.t)........ |
| 30420 | 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 20 28 67 70 74 | ..............(let.((result.(gpt |
| 30440 | 65 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 | el--to-string.result)))......... |
| 30460 | 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 6f 6f 6c 2d 63 | ...............(plist-put.tool-c |
| 30480 | 61 6c 6c 20 3a 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | all.:result.result)............. |
| 304a0 | 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 70 65 63 | ...........(push.(list.tool-spec |
| 304c0 | 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 | .args.result).result-alist)).... |
| 304e0 | 20 20 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 74 6f 6f 6c 2d | ..................(cl-incf.tool- |
| 30500 | 69 64 78 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 68 65 6e 20 | idx)......................(when. |
| 30520 | 28 3e 3d 20 74 6f 6f 6c 2d 69 64 78 20 6e 74 6f 6f 6c 73 29 20 3b 20 41 6c 6c 20 74 6f 6f 6c 73 | (>=.tool-idx.ntools).;.All.tools |
| 30540 | 20 68 61 76 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .have.run....................... |
| 30560 | 20 28 67 70 74 65 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 | .(gptel--inject-prompt.......... |
| 30580 | 20 20 20 20 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 | ...............backend.(plist-ge |
| 305a0 | 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 20 20 20 20 | t.info.:data)................... |
| 305c0 | 20 20 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 | ......(gptel--parse-tool-results |
| 305e0 | 0a 20 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 |
| 30600 | 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))).. |
| 30620 | 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 28 | ......................(funcall.( |
| 30640 | 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 20 | plist-get.info.:callback)....... |
| 30660 | 20 20 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 73 20 | ..........................(cons. |
| 30680 | 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 6e 66 6f 29 | 'tool-result.result-alist).info) |
| 306a0 | 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 67 70 74 65 6c 2d 2d | ........................(gptel-- |
| 306c0 | 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 20 20 20 20 20 20 | fsm-transition.fsm)))))......... |
| 306e0 | 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 74 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 | ...(if.(null.tool-spec)......... |
| 30700 | 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 55 6e 6b 6e 6f 77 6e 20 74 6f 6f 6c 20 63 61 | .......(message."Unknown.tool.ca |
| 30720 | 6c 6c 65 64 20 62 79 20 6d 6f 64 65 6c 3a 20 25 73 22 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 | lled.by.model:.%s".name)........ |
| 30740 | 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 2d 76 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 | ......(setq.arg-values.......... |
| 30760 | 20 20 20 20 20 20 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 | ..........(mapcar............... |
| 30780 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......(lambda.(arg)............. |
| 307a0 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6b 65 79 20 28 69 6e 74 65 72 6e 20 28 63 6f | ..........(let.((key.(intern.(co |
| 307c0 | 6e 63 61 74 20 22 3a 22 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 | ncat.":".(plist-get.arg.:name))) |
| 307e0 | 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 73 | )).........................(plis |
| 30800 | 74 2d 67 65 74 20 61 72 67 73 20 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.args.key)))............... |
| 30820 | 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 6c 2d 73 70 65 63 | ......(gptel-tool-args.tool-spec |
| 30840 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 74 6f 6f | )))..............;;.Check.if.too |
| 30860 | 6c 20 72 65 71 75 69 72 65 73 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 | l.requires.confirmation......... |
| 30880 | 20 20 20 20 20 28 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 | .....(if.(and.gptel-confirm-tool |
| 308a0 | 2d 63 61 6c 6c 73 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 | -calls.(or.(eq.gptel-confirm-too |
| 308c0 | 6c 2d 63 61 6c 6c 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 | l-calls.t)...................... |
| 308e0 | 20 20 20 20 20 20 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 |
| 30900 | 70 74 65 6c 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 | ptel-tool-confirm.tool-spec))).. |
| 30920 | 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 74 6f 6f 6c | ................(push.(list.tool |
| 30940 | 2d 73 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 | -spec.arg-values.process-tool-re |
| 30960 | 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 70 65 6e | sult)........................pen |
| 30980 | 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 3b 3b 20 49 66 | ding-calls)................;;.If |
| 309a0 | 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 20 20 | .not,.run.the.tool.............. |
| 309c0 | 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 2d 73 70 65 | ..(if.(gptel-tool-async.tool-spe |
| 309e0 | 63 29 0a 20 20 20 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 | c)....................(apply.(gp |
| 30a00 | 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 63 29 0a 20 20 20 | tel-tool-function.tool-spec).... |
| 30a20 | 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 63 65 73 73 2d 74 | .......................process-t |
| 30a40 | 6f 6f 6c 2d 72 65 73 75 6c 74 20 61 72 67 2d 76 61 6c 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 | ool-result.arg-values).......... |
| 30a60 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 | ........(let.((result........... |
| 30a80 | 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 65 72 | ..............(condition-case.er |
| 30aa0 | 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 20 20 20 20 | rdata........................... |
| 30ac0 | 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 |
| 30ae0 | 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)............ |
| 30b00 | 20 20 20 20 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 | ...............(error.(mapconcat |
| 30b20 | 20 23 27 67 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 | .#'gptel--to-string.errdata.".") |
| 30b40 | 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 66 75 6e 63 61 6c 6c | ))))....................(funcall |
| 30b60 | 20 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 29 | .process-tool-result.result))))) |
| 30b80 | 29 29 0a 20 20 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 | ))........tool-use).......(when. |
| 30ba0 | 70 65 6e 64 69 6e 67 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 | pending-calls.........(with-curr |
| 30bc0 | 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 |
| 30be0 | 65 72 29 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 | er)...........(setq.gptel--fsm-l |
| 30c00 | 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 |
| 30c20 | 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....... |
| 30c40 | 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.". |
| 30c60 | 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 |
| 30c80 | 73 29 29 29 0a 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 74 | s))).........(funcall.(plist-get |
| 30ca0 | 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 20 | .info.:callback)................ |
| 30cc0 | 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 6c 6c 73 | ..(cons.'tool-call.pending-calls |
| 30ce0 | 29 20 69 6e 66 6f 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 | ).info)))))..;;;;.State.machine. |
| 30d00 | 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 64 20 74 6f | predicates.;;.Predicates.used.to |
| 30d20 | 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 73 69 74 69 | .find.the.next.state.to.transiti |
| 30d40 | 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 2d 2d 74 72 | on.to,.see.;;.`gptel-request--tr |
| 30d60 | 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 72 72 6f 72 | ansitions'...(defun.gptel--error |
| 30d80 | 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 72 72 6f 72 | -p.(info).(plist-get.info.:error |
| 30da0 | 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 20 28 69 6e | ))..(defun.gptel--tool-use-p.(in |
| 30dc0 | 66 6f 29 0a 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 28 70 6c 69 73 | fo)...(and.gptel-use-tools.(plis |
| 30de0 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 | t-get.info.:tool-use)))..(defun. |
| 30e00 | 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 2d 70 20 28 69 6e 66 6f 29 0a 20 20 28 61 | gptel--tool-result-p.(info)...(a |
| 30e20 | 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | nd.gptel-use-tools.(plist-get.in |
| 30e40 | 66 6f 20 3a 74 6f 6f 6c 2d 73 75 63 63 65 73 73 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 53 65 6e 64 20 | fo.:tool-success)))....;;;.Send. |
| 30e60 | 71 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 | queries,.handle.responses.(cl-de |
| 30e80 | 66 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 | fun.gptel-request.....(&optional |
| 30ea0 | 20 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 | .prompt.&key.callback........... |
| 30ec0 | 20 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 | .....(buffer.(current-buffer)).. |
| 30ee0 | 20 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 | ..............position.context.d |
| 30f00 | 72 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 | ry-run................(stream.ni |
| 30f20 | 6c 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 | l).(in-place.nil)............... |
| 30f40 | 20 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 | .(system.gptel--system-message). |
| 30f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 73 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d | ...............(fsm.(gptel-make- |
| 30f80 | 66 73 6d 29 29 29 0a 20 20 22 52 65 71 75 65 73 74 20 61 20 72 65 73 70 6f 6e 73 65 20 66 72 6f | fsm)))..."Request.a.response.fro |
| 30fa0 | 6d 20 74 68 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 66 6f 72 20 50 52 4f 4d 50 54 | m.the.`gptel-backend'.for.PROMPT |
| 30fc0 | 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 | ...The.request.is.asynchronous,. |
| 30fe0 | 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 69 6d 6d 65 64 69 61 74 65 6c | this.function.returns.immediatel |
| 31000 | 79 2e 0a 0a 49 66 20 50 52 4f 4d 50 54 20 69 73 0a 2d 20 61 20 73 74 72 69 6e 67 2c 20 69 74 20 | y...If.PROMPT.is.-.a.string,.it. |
| 31020 | 69 73 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 66 75 6c 6c 20 70 72 6f 6d 70 74 20 | is.used.to.create.a.full.prompt. |
| 31040 | 73 75 69 74 61 62 6c 65 20 66 6f 72 0a 20 20 73 65 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 4c 4c | suitable.for...sending.to.the.LL |
| 31060 | 4d 2e 0a 2d 20 41 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 20 69 74 20 69 73 20 69 6e | M..-.A.list.of.strings,.it.is.in |
| 31080 | 74 65 72 70 72 65 74 65 64 20 61 73 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2c 20 69 2e 65 | terpreted.as.a.conversation,.i.e |
| 310a0 | 2e 20 61 0a 20 20 73 65 72 69 65 73 20 6f 66 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 75 73 65 72 | ..a...series.of.alternating.user |
| 310c0 | 20 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 2d 20 6e 69 | .prompts.and.LLM.responses..-.ni |
| 310e0 | 6c 20 62 75 74 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 72 65 67 69 | l.but.region.is.active,.the.regi |
| 31100 | 6f 6e 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 75 73 65 64 2e 0a 2d 20 6e 69 6c 2c 20 74 68 65 | on.contents.are.used..-.nil,.the |
| 31120 | 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 27 73 20 63 6f 6e 74 65 6e 74 73 20 75 70 20 74 6f | .current.buffer's.contents.up.to |
| 31140 | 20 28 70 6f 69 6e 74 29 20 61 72 65 20 75 73 65 64 2e 0a 20 20 50 72 65 76 69 6f 75 73 20 72 65 | .(point).are.used....Previous.re |
| 31160 | 73 70 6f 6e 73 65 73 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 61 72 65 20 69 64 65 6e 74 69 66 | sponses.from.the.LLM.are.identif |
| 31180 | 69 65 64 20 61 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d | ied.as.responses...Keyword.argum |
| 311a0 | 65 6e 74 73 3a 0a 0a 43 41 4c 4c 42 41 43 4b 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 69 73 | ents:..CALLBACK,.if.supplied,.is |
| 311c0 | 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 63 61 | .a.function.of.two.arguments,.ca |
| 311e0 | 6c 6c 65 64 0a 77 69 74 68 20 74 68 65 20 52 45 53 50 4f 4e 53 45 20 28 75 73 75 61 6c 6c 79 20 | lled.with.the.RESPONSE.(usually. |
| 31200 | 61 20 73 74 72 69 6e 67 29 20 61 6e 64 20 49 4e 46 4f 20 28 61 20 70 6c 69 73 74 29 3a 0a 0a 20 | a.string).and.INFO.(a.plist):... |
| 31220 | 28 66 75 6e 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 52 45 53 50 4f 4e 53 45 20 49 4e 46 4f 29 | (funcall.CALLBACK.RESPONSE.INFO) |
| 31240 | 0a 0a 52 45 53 50 4f 4e 53 45 20 69 73 0a 0a 2d 20 41 20 73 74 72 69 6e 67 20 69 66 20 74 68 65 | ..RESPONSE.is..-.A.string.if.the |
| 31260 | 20 72 65 71 75 65 73 74 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 0a 2d 20 6e 69 6c 20 69 66 | .request.was.successful.-.nil.if |
| 31280 | 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 6f 72 20 61 6e 20 65 72 72 | .there.was.no.response.or.an.err |
| 312a0 | 6f 72 2e 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 6f 6e 6c 79 20 74 77 6f 20 63 61 73 65 | or...These.are.the.only.two.case |
| 312c0 | 73 20 79 6f 75 20 74 79 70 69 63 61 6c 6c 79 20 6e 65 65 64 20 74 6f 20 63 6f 6e 73 69 64 65 72 | s.you.typically.need.to.consider |
| 312e0 | 2c 0a 75 6e 6c 65 73 73 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 61 66 | ,.unless.you.need.to.clean.up.af |
| 31300 | 74 65 72 20 61 62 6f 72 74 65 64 20 72 65 71 75 65 73 74 73 2c 20 75 73 65 20 4c 4c 4d 0a 74 6f | ter.aborted.requests,.use.LLM.to |
| 31320 | 6f 6c 73 2c 20 68 61 6e 64 6c 65 20 5c 22 72 65 61 73 6f 6e 69 6e 67 5c 22 20 63 6f 6e 74 65 6e | ols,.handle.\"reasoning\".conten |
| 31340 | 74 20 73 70 65 63 69 61 6c 6c 79 20 6f 72 20 73 74 72 65 61 6d 0a 72 65 73 70 6f 6e 73 65 73 20 | t.specially.or.stream.responses. |
| 31360 | 28 73 65 65 20 53 54 52 45 41 4d 29 2e 20 20 49 6e 20 74 68 65 73 65 20 63 61 73 65 73 2c 20 52 | (see.STREAM)...In.these.cases,.R |
| 31380 | 45 53 50 4f 4e 53 45 20 63 61 6e 20 62 65 0a 0a 2d 20 54 68 65 20 73 79 6d 62 6f 6c 20 60 61 62 | ESPONSE.can.be..-.The.symbol.`ab |
| 313a0 | 6f 72 74 27 20 69 66 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 61 62 6f 72 74 65 64 2c 20 | ort'.if.the.request.is.aborted,. |
| 313c0 | 73 65 65 20 60 67 70 74 65 6c 2d 61 62 6f 72 74 27 2e 0a 0a 2d 20 41 20 63 6f 6e 73 20 63 65 6c | see.`gptel-abort'...-.A.cons.cel |
| 313e0 | 6c 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 0a 20 20 28 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 28 28 | l.of.the.form....(tool-call...(( |
| 31400 | 54 4f 4f 4c 20 41 52 47 53 20 43 42 29 20 2e 2e 2e 29 29 0a 0a 20 20 77 68 65 72 65 20 54 4f 4f | TOOL.ARGS.CB)....))....where.TOO |
| 31420 | 4c 20 69 73 20 61 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 | L.is.a.gptel-tool.struct,.ARGS.i |
| 31440 | 73 20 61 20 70 6c 69 73 74 20 6f 66 0a 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 43 42 | s.a.plist.of...arguments,.and.CB |
| 31460 | 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 | .is.a.function.for.handling.the. |
| 31480 | 72 65 73 75 6c 74 73 2e 20 20 59 6f 75 0a 20 20 63 61 6e 20 63 61 6c 6c 20 43 42 20 77 69 74 68 | results...You...can.call.CB.with |
| 314a0 | 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 74 6f 6f 6c 20 | .the.result.of.calling.the.tool. |
| 314c0 | 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 0a 20 20 72 65 71 75 65 73 74 2e 0a 0a 2d 20 41 20 | to.continue.the...request...-.A. |
| 314e0 | 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 6f 6c 2d 72 | cons.cell.of.the.form....(tool-r |
| 31500 | 65 73 75 6c 74 20 2e 20 28 28 54 4f 4f 4c 20 41 52 47 53 20 52 45 53 55 4c 54 29 20 2e 2e 2e 29 | esult...((TOOL.ARGS.RESULT)....) |
| 31520 | 29 0a 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 | )....where.TOOL.is.a.gptel-tool. |
| 31540 | 73 74 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 | struct,.ARGS.is.a.plist.of...arg |
| 31560 | 75 6d 65 6e 74 73 2c 20 61 6e 64 20 52 45 53 55 4c 54 20 77 61 73 20 72 65 74 75 72 6e 65 64 20 | uments,.and.RESULT.was.returned. |
| 31580 | 66 72 6f 6d 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 66 75 6e 63 74 69 6f 6e | from.calling.the.tool...function |
| 315a0 | 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 6d 0a 0a 20 20 | ...-.A.cons.cell.of.the.form.... |
| 315c0 | 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 65 78 74 29 0a 0a 20 20 77 68 65 72 65 20 74 65 78 74 | (reasoning...text)....where.text |
| 315e0 | 20 69 73 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 72 65 61 73 6f 6e 69 6e | .is.the.contents.of.the.reasonin |
| 31600 | 67 20 62 6c 6f 63 6b 2e 20 20 28 41 6c 73 6f 20 73 65 65 0a 20 20 53 54 52 45 41 4d 20 69 66 20 | g.block...(Also.see...STREAM.if. |
| 31620 | 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 73 74 72 65 61 6d 69 6e 67 2e 29 0a 0a 53 65 65 20 60 | you.are.using.streaming.)..See.` |
| 31640 | 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 61 6e 20 65 | gptel--insert-response'.for.an.e |
| 31660 | 78 61 6d 70 6c 65 20 63 61 6c 6c 62 61 63 6b 20 68 61 6e 64 6c 69 6e 67 20 61 6c 6c 0a 63 61 73 | xample.callback.handling.all.cas |
| 31680 | 65 73 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 20 64 65 | es...STREAM.is.a.boolean.that.de |
| 316a0 | 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 6c 64 20 | termines.if.the.response.should. |
| 316c0 | 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 65 61 6d | be.streamed,.as.in.`gptel-stream |
| 316e0 | 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 6e 64 20 | '...If.the.model.or.the.backend. |
| 31700 | 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 68 69 73 | does.not.support.streaming,.this |
| 31720 | 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 6d 69 6e | .will.be.ignored...When.streamin |
| 31740 | 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 62 65 20 | g.responses..-.CALLBACK.will.be. |
| 31760 | 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 45 53 50 | called.repeatedly.with.each.RESP |
| 31780 | 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 61 73 20 | ONSE.text...chunk.(a.string).as. |
| 317a0 | 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 54 50 20 | it.is.received..-.When.the.HTTP. |
| 317c0 | 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 4c 4c 42 | request.ends.successfully,.CALLB |
| 317e0 | 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 45 53 50 | ACK.will.be...called.with.a.RESP |
| 31800 | 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 65 20 73 | ONSE.argument.of.t.to.indicate.s |
| 31820 | 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 20 77 69 | uccess..-.Similarly,.CALLBACK.wi |
| 31840 | 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 67 20 2e | ll.be.called.with...(reasoning.. |
| 31860 | 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 6e 67 20 | .text-chunk).for.each.reasoning. |
| 31880 | 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 74 6f 20 | chunk,.and...(reasoning...t).to. |
| 318a0 | 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 6e 69 6e | indicate.the.end.of.the.reasonin |
| 318c0 | 67 20 62 6c 6f 63 6b 2e 0a 0a 54 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 68 61 73 20 28 61 74 | g.block...The.INFO.plist.has.(at |
| 318e0 | 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 73 3a 0a 3a 64 61 74 | .least).the.following.keys:.:dat |
| 31900 | 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 61 74 61 20 69 6e 63 | a.........-.The.request.data.inc |
| 31920 | 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 69 74 69 6f 6e 20 20 | luded.with.the.query.:position.. |
| 31940 | 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 74 68 65 20 72 65 71 | ...-.marker.at.the.point.the.req |
| 31960 | 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 20 20 20 20 20 20 20 | uest.was.sent,.unless........... |
| 31980 | 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 65 64 2e 0a 3a 62 75 | ......POSITION.is.specified..:bu |
| 319a0 | 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 75 72 72 65 6e 74 20 | ffer.......-.The.buffer.current. |
| 319c0 | 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 2c 0a 20 20 20 20 20 | when.the.request.was.sent,...... |
| 319e0 | 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 69 73 20 73 70 65 63 | ...........unless.BUFFER.is.spec |
| 31a00 | 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 6f 72 74 20 73 74 72 | ified..:status.......-.Short.str |
| 31a20 | 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 20 6f 66 20 74 68 65 | ing.describing.the.result.of.the |
| 31a40 | 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 20 69 6e 63 6c 75 64 | .request,.................includ |
| 31a60 | 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 0a 0a 45 78 61 6d 70 | ing.possible.HTTP.errors...Examp |
| 31a80 | 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 73 61 67 65 73 20 74 | le.of.a.callback.that.messages.t |
| 31aa0 | 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 0a 61 6e 64 20 69 6e | he.user.with.the.response.and.in |
| 31ac0 | 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 6e 66 6f 29 0a 20 20 | fo:...(lambda.(response.info)... |
| 31ae0 | 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 20 20 20 20 28 6c 65 | (if.(stringp.response).......(le |
| 31b00 | 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 20 28 70 6c 69 73 74 | t.((posn.(marker-position.(plist |
| 31b20 | 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 20 20 20 20 20 | -get.info.:position))).......... |
| 31b40 | 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 69 73 74 2d 67 65 74 | ...(buf..(buffer-name.(plist-get |
| 31b60 | 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 20 28 6d 65 73 73 61 | .info.:buffer)))).........(messa |
| 31b80 | 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 20 66 72 6f 6d 20 25 | ge.\"Response.for.request.from.% |
| 31ba0 | 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 20 20 20 20 20 20 62 | S.at.%d:.%s\"..................b |
| 31bc0 | 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 65 73 73 61 67 65 20 | uf.posn.response)).....(message. |
| 31be0 | 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 74 68 20 6d 65 73 73 | \"gptel-request.failed.with.mess |
| 31c00 | 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 6c 69 73 74 2d 67 65 | age:.%s\"..............(plist-ge |
| 31c20 | 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 6f 72 20 6a 75 73 74 | t.info.:status))))..Or,.for.just |
| 31c40 | 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 28 72 65 73 70 6f 6e | .the.response:...(lambda.(respon |
| 31c60 | 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 69 74 68 20 72 65 73 | se._)...;;.Do.something.with.res |
| 31c80 | 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 74 72 69 6e 67 20 72 | ponse...(message.(rot13-string.r |
| 31ca0 | 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 73 20 6f 6d 69 74 74 | esponse)))..If.CALLBACK.is.omitt |
| 31cc0 | 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 74 65 64 20 61 74 20 | ed,.the.response.is.inserted.at. |
| 31ce0 | 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 20 73 65 6e 74 2e 0a | the.point.the.request.was.sent.. |
| 31d00 | 0a 42 55 46 46 45 52 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e 20 61 72 65 20 74 68 65 20 62 75 66 | .BUFFER.and.POSITION.are.the.buf |
| 31d20 | 66 65 72 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 28 69 6e 74 65 67 65 72 20 6f 72 0a 6d 61 72 | fer.and.position.(integer.or.mar |
| 31d40 | 6b 65 72 29 20 61 74 20 77 68 69 63 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e | ker).at.which.the.response.is.in |
| 31d60 | 73 65 72 74 65 64 2e 20 20 49 66 20 61 20 43 41 4c 4c 42 41 43 4b 20 69 73 0a 73 70 65 63 69 66 | serted...If.a.CALLBACK.is.specif |
| 31d80 | 69 65 64 2c 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 61 6e 64 | ied,.no.response.is.inserted.and |
| 31da0 | 20 74 68 65 73 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 0a 69 67 6e 6f 72 65 64 2c 20 62 75 | .these.arguments.are.ignored,.bu |
| 31dc0 | 74 20 74 68 65 79 20 61 72 65 20 73 74 69 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 | t.they.are.still.available.in.th |
| 31de0 | 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 70 61 73 73 65 64 0a 74 6f 20 43 41 4c 4c 42 41 43 4b 20 | e.INFO.plist.passed.to.CALLBACK. |
| 31e00 | 66 6f 72 20 79 6f 75 20 74 6f 20 75 73 65 2e 0a 0a 42 55 46 46 45 52 20 64 65 66 61 75 6c 74 73 | for.you.to.use...BUFFER.defaults |
| 31e20 | 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 61 6e 64 20 50 4f 53 49 | .to.the.current.buffer,.and.POSI |
| 31e40 | 54 49 4f 4e 20 74 6f 20 74 68 65 20 76 61 6c 75 65 0a 6f 66 20 28 70 6f 69 6e 74 29 20 6f 72 20 | TION.to.the.value.of.(point).or. |
| 31e60 | 28 72 65 67 69 6f 6e 2d 65 6e 64 29 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 | (region-end),.depending.on.wheth |
| 31e80 | 65 72 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 0a 61 63 74 69 76 65 2e 0a 0a 43 4f 4e 54 45 58 | er.the.region.is.active...CONTEX |
| 31ea0 | 54 20 69 73 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 61 20 6e 65 65 64 65 64 20 | T.is.any.additional.data.needed. |
| 31ec0 | 66 6f 72 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 74 6f 20 72 75 6e 2e 20 49 74 0a 69 73 20 69 | for.the.callback.to.run..It.is.i |
| 31ee0 | 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 | ncluded.in.the.INFO.argument.to. |
| 31f00 | 74 68 65 20 63 61 6c 6c 62 61 63 6b 2e 0a 4e 6f 74 65 3a 20 54 68 69 73 20 69 73 20 69 6e 74 65 | the.callback..Note:.This.is.inte |
| 31f20 | 6e 64 65 64 20 66 6f 72 20 73 74 6f 72 69 6e 67 20 45 6d 61 63 73 20 73 74 61 74 65 20 74 6f 20 | nded.for.storing.Emacs.state.to. |
| 31f40 | 62 65 20 75 73 65 64 20 62 79 0a 43 41 4c 4c 42 41 43 4b 2c 20 61 6e 64 20 75 6e 72 65 6c 61 74 | be.used.by.CALLBACK,.and.unrelat |
| 31f60 | 65 64 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 75 70 70 6c 69 65 64 20 74 6f 20 74 68 | ed.to.the.context.supplied.to.th |
| 31f80 | 65 20 4c 4c 4d 2e 0a 0a 53 59 53 54 45 4d 20 69 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 | e.LLM...SYSTEM.is.the.system.mes |
| 31fa0 | 73 61 67 65 20 6f 72 20 65 78 74 65 6e 64 65 64 20 63 68 61 74 20 64 69 72 65 63 74 69 76 65 20 | sage.or.extended.chat.directive. |
| 31fc0 | 73 65 6e 74 20 74 6f 0a 74 68 65 20 4c 4c 4d 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 61 20 | sent.to.the.LLM...This.can.be.a. |
| 31fe0 | 73 74 72 69 6e 67 2c 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 6f 72 20 61 20 66 | string,.a.list.of.strings.or.a.f |
| 32000 | 75 6e 63 74 69 6f 6e 0a 74 68 61 74 20 72 65 74 75 72 6e 73 20 65 69 74 68 65 72 3b 20 73 65 65 | unction.that.returns.either;.see |
| 32020 | 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 20 66 6f 72 20 6d 6f 72 65 0a 69 6e 66 | .`gptel-directives'.for.more.inf |
| 32040 | 6f 72 6d 61 74 69 6f 6e 2e 20 49 66 20 53 59 53 54 45 4d 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 | ormation..If.SYSTEM.is.omitted,. |
| 32060 | 74 68 65 20 76 61 6c 75 65 20 6f 66 0a 60 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | the.value.of.`gptel--system-mess |
| 32080 | 61 67 65 27 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 75 | age'.for.the.current.buffer.is.u |
| 320a0 | 73 65 64 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 77 6f 72 64 73 20 61 72 65 | sed...The.following.keywords.are |
| 320c0 | 20 6d 61 69 6e 6c 79 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 3a 0a 0a 49 4e 2d 50 4c | .mainly.for.internal.use:..IN-PL |
| 320e0 | 41 43 45 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 75 73 65 64 20 62 79 20 74 68 65 20 64 65 66 | ACE.is.a.boolean.used.by.the.def |
| 32100 | 61 75 6c 74 20 63 61 6c 6c 62 61 63 6b 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 0a 74 68 65 | ault.callback.when.inserting.the |
| 32120 | 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 64 65 6c 69 6d 69 | .response.to.determine.if.delimi |
| 32140 | 74 65 72 73 20 61 72 65 20 6e 65 65 64 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 0a 70 72 6f 6d | ters.are.needed.between.the.prom |
| 32160 | 70 74 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 49 66 20 44 52 59 2d 52 55 4e | pt.and.the.response...If.DRY-RUN |
| 32180 | 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 6f 6e 73 74 72 75 63 74 20 61 6e 64 20 72 65 74 75 72 | .is.non-nil,.construct.and.retur |
| 321a0 | 6e 20 74 68 65 20 66 75 6c 6c 20 71 75 65 72 79 20 64 61 74 61 0a 61 73 20 75 73 75 61 6c 2c 20 | n.the.full.query.data.as.usual,. |
| 321c0 | 62 75 74 20 64 6f 20 6e 6f 74 20 73 65 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a 46 53 | but.do.not.send.the.request...FS |
| 321e0 | 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 67 20 74 | M.is.the.state.machine.driving.t |
| 32200 | 68 65 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 0a 74 6f | he.request...This.can.be.used.to |
| 32220 | 20 64 65 66 69 6e 65 20 61 20 63 75 73 74 6f 6d 20 72 65 71 75 65 73 74 20 63 6f 6e 74 72 6f 6c | .define.a.custom.request.control |
| 32240 | 20 66 6c 6f 77 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 66 73 6d 27 20 66 6f 72 0a 64 65 74 61 69 | .flow,.see.`gptel-fsm'.for.detai |
| 32260 | 6c 73 2e 20 20 59 6f 75 20 63 61 6e 20 73 61 66 65 6c 79 20 69 67 6e 6f 72 65 20 74 68 69 73 20 | ls...You.can.safely.ignore.this. |
| 32280 | 2d 2d 20 46 53 4d 20 69 73 20 61 6e 20 75 6e 73 74 61 62 6c 65 0a 66 65 61 74 75 72 65 20 61 6e | --.FSM.is.an.unstable.feature.an |
| 322a0 | 64 20 73 75 62 6a 65 63 74 20 74 6f 20 63 68 61 6e 67 65 2e 0a 0a 4e 6f 74 65 3a 0a 0a 31 2e 20 | d.subject.to.change...Note:..1.. |
| 322c0 | 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6e 6f 74 20 66 75 6c 6c 79 20 73 65 6c 66 2d | This.function.is.not.fully.self- |
| 322e0 | 63 6f 6e 74 61 69 6e 65 64 2e 20 20 43 6f 6e 73 69 64 65 72 0a 6c 65 74 2d 62 69 6e 64 69 6e 67 | contained...Consider.let-binding |
| 32300 | 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 2c | .the.parameters.`gptel-backend', |
| 32320 | 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 2c 0a 60 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 | .`gptel-model',.`gptel-use-tools |
| 32340 | 27 20 61 6e 64 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 27 20 61 72 6f 75 6e 64 | '.and.`gptel-use-context'.around |
| 32360 | 20 63 61 6c 6c 73 20 74 6f 20 69 74 20 61 73 0a 72 65 71 75 69 72 65 64 2e 0a 0a 32 2e 20 54 68 | .calls.to.it.as.required...2..Th |
| 32380 | 65 20 72 65 74 75 72 6e 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | e.return.value.of.this.function. |
| 323a0 | 69 73 20 61 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 74 68 61 74 20 6d 61 79 0a 62 65 20 75 | is.a.state.machine.that.may.be.u |
| 323c0 | 73 65 64 20 74 6f 20 72 65 72 75 6e 20 6f 72 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 20 72 65 71 | sed.to.rerun.or.continue.the.req |
| 323e0 | 75 65 73 74 20 61 74 20 61 20 6c 61 74 65 72 20 74 69 6d 65 2e 22 0a 20 20 28 64 65 63 6c 61 72 | uest.at.a.later.time."...(declar |
| 32400 | 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 3b 3b 20 54 4f 44 4f 20 52 65 6d 6f 76 65 20 74 | e.(indent.1))...;;.TODO.Remove.t |
| 32420 | 68 69 73 20 63 68 65 63 6b 20 69 6e 20 76 65 72 73 69 6f 6e 20 31 2e 30 0a 20 20 28 67 70 74 65 | his.check.in.version.1.0...(gpte |
| 32440 | 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 69 72 | l--sanitize-model)...(let*.((dir |
| 32460 | 65 63 74 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 73 | ective.(gptel--parse-directive.s |
| 32480 | 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 44 49 52 45 43 54 49 56 45 20 63 6f | ystem))..........;;.DIRECTIVE.co |
| 324a0 | 6e 74 61 69 6e 73 20 62 6f 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 | ntains.both.the.system.message.a |
| 324c0 | 6e 64 20 74 68 65 20 74 65 6d 70 6c 61 74 65 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 | nd.the.template.prompts......... |
| 324e0 | 20 28 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 | .(gptel--system-message......... |
| 32500 | 20 20 3b 3b 20 41 64 64 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 73 20 74 6f 20 73 79 73 74 65 | ..;;.Add.context.chunks.to.syste |
| 32520 | 6d 20 6d 65 73 73 61 67 65 20 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 | m.message.if.required........... |
| 32540 | 28 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 | (unless.(gptel--model-capable-p. |
| 32560 | 27 6e 6f 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 | 'nosystem).............(if.(and. |
| 32580 | 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 20 20 20 20 | gptel-context--alist............ |
| 325a0 | 20 20 20 20 20 20 20 20 20 20 28 65 71 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 | ..........(eq.gptel-use-context. |
| 325c0 | 27 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 28 67 70 74 65 6c | 'system)).................(gptel |
| 325e0 | 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 63 61 72 20 64 69 72 65 63 74 69 76 65 29 29 0a | -context--wrap.(car.directive)). |
| 32600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 64 69 72 65 63 74 69 76 65 29 29 29 29 | ..............(car.directive)))) |
| 32620 | 0a 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 | ..........;;.TODO(tool).Limit.to |
| 32640 | 6f 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 | ol.use.to.capable.models.after.d |
| 32660 | 6f 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 | ocumenting.:capabilities........ |
| 32680 | 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 70 74 65 | ..;;.(gptel-use-tools.(and.(gpte |
| 326a0 | 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 20 67 70 | l--model-capable-p.'tool-use).gp |
| 326c0 | 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 28 73 74 72 65 61 6d | tel-use-tools))..........(stream |
| 326e0 | 20 28 61 6e 64 20 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 20 20 20 | .(and.stream.gptel-use-curl..... |
| 32700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b 28 74 6f 6f 6c 29 3a | ..................;;.HACK(tool): |
| 32720 | 20 6e 6f 20 73 74 72 65 61 6d 20 69 66 20 4f 6c 6c 61 6d 61 20 2b 20 74 6f 6f 6c 73 2e 20 20 4e | .no.stream.if.Ollama.+.tools...N |
| 32740 | 65 65 64 20 74 6f 20 66 69 6e 64 20 61 20 62 65 74 74 65 72 20 77 61 79 0a 20 20 20 20 20 20 20 | eed.to.find.a.better.way........ |
| 32760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 65 71 20 28 74 79 | ...............(not.(and.(eq.(ty |
| 32780 | 70 65 2d 6f 66 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 | pe-of.gptel-backend).'gptel-olla |
| 327a0 | 6d 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 20 20 20 20 20 20 | ma)............................. |
| 327c0 | 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 29 | ....gptel-tools.gptel-use-tools) |
| 327e0 | 29 0a 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 43 68 65 63 6b | ).......................;;.Check |
| 32800 | 20 6d 6f 64 65 6c 2d 73 70 65 63 69 66 69 63 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 66 | .model-specific.request-params.f |
| 32820 | 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 70 72 65 66 65 72 65 6e 63 65 0a 20 20 20 20 20 20 20 20 | or.streaming.preference......... |
| 32840 | 20 20 20 20 20 20 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 | ..............(let*.((model-para |
| 32860 | 6d 73 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 | ms.(gptel--model-request-params. |
| 32880 | 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 20 20 20 | gptel-model))................... |
| 328a0 | 20 20 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 | ...........(stream-spec.(plist-g |
| 328c0 | 65 74 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 | et.model-params.:stream)))...... |
| 328e0 | 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 72 65 | ...................;;.If.not.pre |
| 32900 | 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 69 63 | sent,.there.is.no.model-specific |
| 32920 | 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 20 20 | .preference..................... |
| 32940 | 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 20 6d 6f 64 65 6c | ....(or.(not.(memq.:stream.model |
| 32960 | 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 20 20 20 20 20 20 | -params))....................... |
| 32980 | 20 20 20 20 20 20 3b 3b 20 49 66 20 70 72 65 73 65 6e 74 2c 20 69 74 20 6d 75 73 74 20 6e 6f 74 | ......;;.If.present,.it.must.not |
| 329a0 | 20 62 65 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 20 6f 72 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 | .be.:json-false.or.nil.......... |
| 329c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 73 74 72 65 61 6d 2d 73 | ...................(and.stream-s |
| 329e0 | 70 65 63 20 28 6e 6f 74 20 28 65 71 20 73 74 72 65 61 6d 2d 73 70 65 63 20 3a 6a 73 6f 6e 2d 66 | pec.(not.(eq.stream-spec.:json-f |
| 32a00 | 61 6c 73 65 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 | alse)))))....................... |
| 32a20 | 3b 3b 20 43 68 65 63 6b 20 62 61 63 6b 65 6e 64 2d 73 70 65 63 69 66 69 63 20 73 74 72 65 61 6d | ;;.Check.backend-specific.stream |
| 32a40 | 69 6e 67 20 73 65 74 74 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing.settings.................... |
| 32a60 | 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 62 | ...(gptel-backend-stream.gptel-b |
| 32a80 | 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 73 74 72 65 61 6d | ackend)))..........(gptel-stream |
| 32aa0 | 20 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 0a | .stream)..........(start-marker. |
| 32ac0 | 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 28 28 6e 75 6c | ..........(cond............((nul |
| 32ae0 | 6c 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 | l.position).............(if.(use |
| 32b00 | 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 28 73 65 74 2d | -region-p).................(set- |
| 32b20 | 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 | marker.(make-marker).(region-end |
| 32b40 | 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 61 74 2d 77 6f 72 64 | ))...............(gptel--at-word |
| 32b60 | 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | -end.(point-marker)))).......... |
| 32b80 | 20 20 28 28 6d 61 72 6b 65 72 70 20 70 6f 73 69 74 69 6f 6e 29 20 70 6f 73 69 74 69 6f 6e 29 0a | ..((markerp.position).position). |
| 32ba0 | 20 20 20 20 20 20 20 20 20 20 20 28 28 69 6e 74 65 67 65 72 70 20 70 6f 73 69 74 69 6f 6e 29 0a | ...........((integerp.position). |
| 32bc0 | 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 6d 61 6b 65 2d 6d 61 | ............(set-marker.(make-ma |
| 32be0 | 72 6b 65 72 29 20 70 6f 73 69 74 69 6f 6e 20 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 | rker).position.buffer))))....... |
| 32c00 | 20 20 20 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 | ...(full-prompt...........(nconc |
| 32c20 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 64 69 72 65 63 74 69 76 65 29 20 20 20 20 20 | ............(cdr.directive)..... |
| 32c40 | 20 20 20 20 20 20 3b 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 | ......;prompt.constructed.from.d |
| 32c60 | 69 72 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 20 28 63 6f | irective/template............(co |
| 32c80 | 6e 64 20 20 20 20 20 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 | nd.....................;prompt.f |
| 32ca0 | 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 70 70 6c 69 65 | rom.buffer.or.explicitly.supplie |
| 32cc0 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 70 72 6f 6d 70 74 29 0a 20 20 20 | d.............((null.prompt).... |
| 32ce0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 | ..........(gptel--create-prompt. |
| 32d00 | 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 28 28 73 74 72 | start-marker)).............((str |
| 32d20 | 69 6e 67 70 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | ingp.prompt)..............(gptel |
| 32d40 | 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 6e 69 | --with-buffer-copy.buffer.nil.ni |
| 32d60 | 6c 0a 20 20 20 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 | l................(insert.prompt) |
| 32d80 | 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 73 69 6f 6e 20 | ................(save-excursion. |
| 32da0 | 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d | (run-hooks.'gptel-prompt-filter- |
| 32dc0 | 68 6f 6f 6b 29 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 77 72 | hook))................(gptel--wr |
| 32de0 | 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 2d 6d 61 79 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ap-user-prompt-maybe............ |
| 32e00 | 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 20 20 20 20 20 | .....(gptel--parse-buffer....... |
| 32e20 | 20 20 20 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 | ...........gptel-backend.(and.gp |
| 32e40 | 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 20 20 20 20 | tel--num-messages-to-send....... |
| 32e60 | 20 20 20 20 20 20 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 2a | ..............................(* |
| 32e80 | 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 29 | .2.gptel--num-messages-to-send)) |
| 32ea0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 70 72 6f 6d 70 74 29 | )))).............((consp.prompt) |
| 32ec0 | 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 62 61 63 6b 65 6e | .(gptel--parse-list.gptel-backen |
| 32ee0 | 64 20 70 72 6f 6d 70 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 6c 69 | d.prompt)))))..........(info.(li |
| 32f00 | 73 74 20 3a 64 61 74 61 20 28 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 67 70 | st.:data.(gptel--request-data.gp |
| 32f20 | 74 65 6c 2d 62 61 63 6b 65 6e 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 | tel-backend.full-prompt)........ |
| 32f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 | ..............:buffer.buffer.... |
| 32f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 | ..................:position.star |
| 32f80 | 74 2d 6d 61 72 6b 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 | t-marker......................:b |
| 32fa0 | 61 63 6b 65 6e 64 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 | ackend.gptel-backend))).....(whe |
| 32fc0 | 6e 20 73 74 72 65 61 6d 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d | n.stream.(plist-put.info.:stream |
| 32fe0 | 20 74 29 29 0a 20 20 20 20 3b 3b 20 54 68 69 73 20 63 6f 6e 74 65 78 74 20 73 68 6f 75 6c 64 20 | .t)).....;;.This.context.should. |
| 33000 | 6e 6f 74 20 62 65 20 63 6f 6e 66 75 73 65 64 20 77 69 74 68 20 74 68 65 20 63 6f 6e 74 65 78 74 | not.be.confused.with.the.context |
| 33020 | 20 61 67 67 72 65 67 61 74 69 6f 6e 20 63 6f 6e 74 65 78 74 21 0a 20 20 20 20 28 77 68 65 6e 20 | .aggregation.context!.....(when. |
| 33040 | 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 | callback.(plist-put.info.:callba |
| 33060 | 63 6b 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 78 74 20 | ck.callback)).....(when.context. |
| 33080 | 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 | (plist-put.info.:context.context |
| 330a0 | 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 70 6c 61 63 65 20 28 70 6c 69 73 74 2d 70 75 74 | )).....(when.in-place.(plist-put |
| 330c0 | 20 69 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 20 69 6e 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 28 | .info.:in-place.in-place)).....( |
| 330e0 | 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 20 20 20 | when.gptel-include-reasoning.... |
| 33100 | 20 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 | ...;Required.for.next-request-on |
| 33120 | 6c 79 20 73 63 6f 70 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ly.scope.......(plist-put.info.: |
| 33140 | 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 64 65 2d | include-reasoning.gptel-include- |
| 33160 | 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c | reasoning)).....(when.(and.gptel |
| 33180 | 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 20 28 70 | -use-tools.gptel-tools).......(p |
| 331a0 | 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 | list-put.info.:tools.gptel-tools |
| 331c0 | 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 65 20 6d 61 63 68 | )).....;;.Add.info.to.state.mach |
| 331e0 | 69 6e 65 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 6d | ine.context.....(setf.(gptel-fsm |
| 33200 | 2d 69 6e 66 6f 20 66 73 6d 29 20 69 6e 66 6f 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 64 72 79 2d | -info.fsm).info))...(unless.dry- |
| 33220 | 72 75 6e 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 29 | run.(gptel--fsm-transition.fsm)) |
| 33240 | 20 3b 49 4e 49 54 20 2d 3e 20 57 41 49 54 0a 20 20 66 73 6d 29 0a 0a 28 64 65 66 75 6e 20 67 70 | .;INIT.->.WAIT...fsm)..(defun.gp |
| 33260 | 74 65 6c 2d 61 62 6f 72 74 20 28 62 75 66 29 0a 20 20 22 53 74 6f 70 20 61 6e 79 20 61 63 74 69 | tel-abort.(buf)..."Stop.any.acti |
| 33280 | 76 65 20 67 70 74 65 6c 20 70 72 6f 63 65 73 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 | ve.gptel.process.associated.with |
| 332a0 | 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 42 55 46 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 | .buffer.BUF...BUF.defaults.to.th |
| 332c0 | 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 | e.current.buffer."...(interactiv |
| 332e0 | 65 20 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 28 77 68 | e.(list.(current-buffer)))...(wh |
| 33300 | 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 63 2d 61 74 74 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 | en-let*.((proc-attrs............ |
| 33320 | 20 20 20 20 28 63 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 | ....(cl-find-if................. |
| 33340 | 28 6c 61 6d 62 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 | (lambda.(proc-list)............. |
| 33360 | 20 20 20 20 20 20 28 65 71 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 20 28 63 64 72 20 70 72 6f | ......(eq.(thread-first.(cdr.pro |
| 33380 | 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 20 20 20 20 20 20 20 | c-list)......................... |
| 333a0 | 20 20 20 20 20 20 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 | ............(gptel-fsm-info).... |
| 333c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 333e0 | 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 20 20 20 | .(plist-get.:buffer))........... |
| 33400 | 20 20 20 20 20 20 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 | ............buf))............... |
| 33420 | 20 20 67 70 74 65 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 | ..gptel--request-alist))........ |
| 33440 | 20 20 20 20 20 20 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 | .......(proc.(car.proc-attrs)).. |
| 33460 | 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 |
| 33480 | 66 6f 20 28 63 64 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 29 29 0a 20 20 20 20 3b 3b 20 52 75 | fo.(cdr.proc-attrs)))).....;;.Ru |
| 334a0 | 6e 20 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 | n.callback.with.abort.signal.... |
| 334c0 | 20 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 | .(with-demoted-errors."Callback. |
| 334e0 | 65 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 | error:.%S".......(and-let*.((cb. |
| 33500 | 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 29 0a 20 20 20 20 | (plist-get.info.:callback))..... |
| 33520 | 20 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 | .............((functionp.cb))).. |
| 33540 | 20 20 20 20 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 | ..........(funcall.cb.'abort.inf |
| 33560 | 6f 29 29 29 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 20 20 20 | o))).....(if.gptel-use-curl..... |
| 33580 | 20 20 20 20 28 70 72 6f 67 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(progn...................... |
| 335a0 | 20 20 3b 43 6c 65 61 6e 20 75 70 20 43 75 72 6c 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 | ..;Clean.up.Curl.process........ |
| 335c0 | 20 20 20 28 73 65 74 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 | ...(setf.(alist-get.proc.gptel-- |
| 335e0 | 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). |
| 33600 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 | ..........(set-process-sentinel. |
| 33620 | 70 72 6f 63 20 23 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 | proc.#'ignore)...........(delete |
| 33640 | 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 | -process.proc)...........(kill-b |
| 33660 | 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 29 29 0a 20 20 | uffer.(process-buffer.proc)))... |
| 33680 | 20 20 20 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 23 27 | ....(plist-put.info.:callback.#' |
| 336a0 | 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 2d | ignore).......(let.(kill-buffer- |
| 336c0 | 71 75 65 72 79 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 | query-functions).........(kill-b |
| 336e0 | 75 66 66 65 72 20 70 72 6f 63 29 29 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 43 61 6e 27 74 20 | uffer.proc)))............;Can't. |
| 33700 | 73 74 6f 70 20 75 72 6c 2d 72 65 74 72 69 65 76 65 20 70 72 6f 63 65 73 73 0a 20 20 20 20 28 77 | stop.url-retrieve.process.....(w |
| 33720 | 69 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 | ith-current-buffer.buf.......(wh |
| 33740 | 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 61 | en.gptel-mode.(gptel--update-sta |
| 33760 | 74 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 | tus..".Abort".'error))).....(mes |
| 33780 | 73 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 | sage."Stopped.gptel.request.in.b |
| 337a0 | 75 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 | uffer.%S".(buffer-name.buf)))).. |
| 337c0 | 3b 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 | ;;.TODO:.Handle.multiple.request |
| 337e0 | 73 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 | s(#15)..(Only.one.request.from.o |
| 33800 | 6e 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 | ne.buffer.at.a.time?).;;;###auto |
| 33820 | 6c 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 | load.(defun.gptel-send.(&optiona |
| 33840 | 6c 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 | l.arg)..."Submit.this.prompt.to. |
| 33860 | 74 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 | the.current.LLM.backend...By.def |
| 33880 | 61 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 | ault,.the.contents.of.the.buffer |
| 338a0 | 20 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 | .up.to.the.cursor.position.are.s |
| 338c0 | 65 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 | ent...If.the.region.is.active,.i |
| 338e0 | 74 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 | ts.contents.are.sent.instead...T |
| 33900 | 68 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 | he.response.from.the.LLM.is.inse |
| 33920 | 72 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 | rted.below.the.cursor.position.a |
| 33940 | 74 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 | t.the.time.of.sending...To.chang |
| 33960 | 65 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 | e.this.behavior.or.model.paramet |
| 33980 | 65 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 | ers,.use.prefix.arg.ARG.activate |
| 339a0 | 20 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 | .a.transient.menu.with.more.opti |
| 339c0 | 6f 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 | ons.instead...This.command.is.as |
| 339e0 | 79 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 | ynchronous,.you.can.continue.to. |
| 33a00 | 75 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 | use.Emacs.while.waiting.for.the. |
| 33a20 | 72 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 | response."...(interactive."P").. |
| 33a40 | 20 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 | .(if.(and.arg.(require.'gptel-tr |
| 33a60 | 61 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 | ansient.nil.t)).......(call-inte |
| 33a80 | 72 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 6d 65 73 | ractively.#'gptel-menu).....(mes |
| 33aa0 | 73 61 67 65 20 22 51 75 65 72 79 69 6e 67 20 25 73 2e 2e 2e 22 20 28 67 70 74 65 6c 2d 62 61 63 | sage."Querying.%s...".(gptel-bac |
| 33ac0 | 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 28 67 | kend-name.gptel-backend)).....(g |
| 33ae0 | 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 28 67 70 74 65 6c | ptel--sanitize-model).....(gptel |
| 33b00 | 2d 72 65 71 75 65 73 74 20 6e 69 6c 0a 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 67 70 74 65 6c | -request.nil.......:stream.gptel |
| 33b20 | 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 3a 66 73 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 | -stream.......:fsm.(gptel-make-f |
| 33b40 | 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 |
| 33b60 | 73 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 74 75 73 20 22 20 | s)).....(gptel--update-status.". |
| 33b80 | 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 64 65 63 6c 61 72 | Waiting...".'warning)))..(declar |
| 33ba0 | 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 6e 74 2d 62 75 66 | e-function.json-pretty-print-buf |
| 33bc0 | 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 69 6e 73 70 65 63 | fer."json").(defun.gptel--inspec |
| 33be0 | 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 2d 66 73 6d 20 66 | t-query.(&optional.request-fsm.f |
| 33c00 | 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 4d 20 71 75 65 72 | ormat)..."Show.the.full.LLM.quer |
| 33c20 | 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 75 66 66 65 72 2e | y.that.will.be.sent.in.a.buffer. |
| 33c40 | 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 72 75 6e 20 6f 66 | ..This.functions.as.a.dry.run.of |
| 33c60 | 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 74 20 64 61 74 61 | .`gptel-send'...The.request.data |
| 33c80 | 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 72 79 20 63 6f 6e | .may.be.edited.and.the.query.con |
| 33ca0 | 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 52 45 51 55 45 53 | tinued.from.this.buffer...REQUES |
| 33cc0 | 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 72 65 71 75 65 73 | T-FSM.is.the.state.of.the.reques |
| 33ce0 | 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 65 71 75 65 73 74 | t,.as.returned.by.`gptel-request |
| 33d00 | 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 6c 20 6a 73 6f 6e | '...If.FORMAT.is.the.symbol.json |
| 33d20 | 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 65 72 79 20 69 6e | ,.show.the.encoded.JSON.query.in |
| 33d40 | 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 65 20 67 70 74 65 | stead.of.the.Lisp.structure.gpte |
| 33d60 | 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 2d 66 73 6d 20 28 | l.uses."...(unless.request-fsm.( |
| 33d80 | 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 6d 2d 6c 61 73 74 | setq.request-fsm.gptel--fsm-last |
| 33da0 | 29 29 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 65 74 2d 62 | ))...(with-current-buffer.(get-b |
| 33dc0 | 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a 22 29 0a 20 20 | uffer-create."*gptel-query*")... |
| 33de0 | 20 20 28 6c 65 74 2a 20 28 28 73 74 61 6e 64 61 72 64 2d 6f 75 74 70 75 74 20 28 63 75 72 72 65 | ..(let*.((standard-output.(curre |
| 33e00 | 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d | nt-buffer))............(inhibit- |
| 33e20 | 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 65 73 74 | read-only.t)............(request |
| 33e40 | 2d 64 61 74 61 0a 20 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 | -data.............(plist-get.(gp |
| 33e60 | 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 3a 64 61 74 61 29 | tel-fsm-info.request-fsm).:data) |
| 33e80 | 29 29 0a 20 20 20 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 | )).......(buffer-disable-undo).. |
| 33ea0 | 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 28 69 66 20 28 65 | .....(erase-buffer).......(if.(e |
| 33ec0 | 71 20 66 6f 72 6d 61 74 20 27 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e | q.format.'json)...........(progn |
| 33ee0 | 20 28 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 | .(fundamental-mode)............. |
| 33f00 | 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 |
| 33f20 | 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))................. |
| 33f40 | 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 20 20 | .(json-pretty-print-buffer)).... |
| 33f60 | 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 20 20 28 70 | .....(lisp-data-mode).........(p |
| 33f80 | 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 20 28 70 70 2d 62 | rin1.request-data).........(pp-b |
| 33fa0 | 75 66 66 65 72 29 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 | uffer)).......(setq-local.gptel- |
| 33fc0 | 2d 66 73 6d 2d 6c 61 73 74 20 72 65 71 75 65 73 74 2d 66 73 6d 29 0a 20 20 20 20 20 20 28 67 6f | -fsm-last.request-fsm).......(go |
| 33fe0 | 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 20 28 76 69 65 77 | to-char.(point-min)).......(view |
| 34000 | 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f | -mode.1).......(setq.buffer-undo |
| 34020 | 2d 6c 69 73 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 0a | -list.nil).......(use-local-map. |
| 34040 | 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 20 20 | .......(make-composed-keymap.... |
| 34060 | 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 22 43 | .....(define-keymap..........."C |
| 34080 | 2d 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 0a | -c.C-c".#'gptel--continue-query. |
| 340a0 | 20 20 20 20 20 20 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 | .........."C-c.C-k".#'quit-windo |
| 340c0 | 77 29 0a 20 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 | w).........(current-local-map))) |
| 340e0 | 0a 20 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 | .......(unless.header-line-forma |
| 34100 | 74 0a 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 | t.........(setq.header-line-form |
| 34120 | 61 74 0a 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 6f 6d | at...............(substitute-com |
| 34140 | 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 28 63 6f 6e 63 61 74 | mand-keys................(concat |
| 34160 | 0a 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 75 65 73 74 3a 20 | ................."Edit.request:. |
| 34180 | 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 20 20 20 20 20 20 | \\[read-only-mode],"............ |
| 341a0 | 20 20 20 20 20 22 20 53 65 6e 64 20 72 65 71 75 65 73 74 3a 20 5c 5c 5b 67 70 74 65 6c 2d 2d 63 | .....".Send.request:.\\[gptel--c |
| 341c0 | 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 5d 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontinue-query],"................ |
| 341e0 | 20 22 20 51 75 69 74 3a 20 5c 5c 5b 71 75 69 74 2d 77 69 6e 64 6f 77 5d 22 29 29 29 29 0a 20 20 | .".Quit:.\\[quit-window]"))))... |
| 34200 | 20 20 20 20 28 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 | ....(display-buffer.(current-buf |
| 34220 | 66 65 72 29 20 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 6e | fer).gptel-display-buffer-action |
| 34240 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 | ))))..(defun.gptel--continue-que |
| 34260 | 72 79 20 28 29 0a 20 20 22 43 6f 6e 74 69 6e 75 65 20 73 65 6e 64 69 6e 67 20 74 68 65 20 67 70 | ry.()..."Continue.sending.the.gp |
| 34280 | 74 65 6c 20 71 75 65 72 79 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 69 73 20 62 75 66 66 | tel.query.displayed.in.this.buff |
| 342a0 | 65 72 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 20 63 6f 6e 74 69 6e 75 65 64 20 77 69 | er...The.request.is.continued.wi |
| 342c0 | 74 68 20 74 68 65 20 73 61 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 6f 72 69 67 69 6e | th.the.same.parameters.as.origin |
| 342e0 | 61 6c 6c 79 0a 73 70 65 63 69 66 69 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 | ally.specified."...(interactive. |
| 34300 | 6e 69 6c 20 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 20 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d | nil.lisp-data-mode.fundamental-m |
| 34320 | 6f 64 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 62 75 66 66 65 72 2d 6e 61 | ode)...(unless.(equal.(buffer-na |
| 34340 | 6d 65 29 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a 22 29 0a 20 20 20 20 28 75 73 65 72 2d 65 | me)."*gptel-query*").....(user-e |
| 34360 | 72 72 6f 72 20 22 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 | rror."This.command.is.meant.for. |
| 34380 | 75 73 65 20 69 6e 20 61 20 67 70 74 65 6c 20 64 72 79 2d 72 75 6e 20 62 75 66 66 65 72 2e 22 29 | use.in.a.gptel.dry-run.buffer.") |
| 343a0 | 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 | )...(save-excursion.....(goto-ch |
| 343c0 | 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 | ar.(point-min)).....(condition-c |
| 343e0 | 61 73 65 2d 75 6e 6c 65 73 73 2d 64 65 62 75 67 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 | ase-unless-debug.nil.........(wh |
| 34400 | 65 6e 2d 6c 65 74 2a 20 28 28 64 61 74 61 20 28 69 66 20 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 | en-let*.((data.(if.(eq.major-mod |
| 34420 | 65 20 27 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.'lisp-data-mode).............. |
| 34440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d | .................(read.(current- |
| 34460 | 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 20 20 20 20 20 | buffer))........................ |
| 34480 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 29 29 0a 20 20 20 20 20 | .....(gptel--json-read))))...... |
| 344a0 | 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 63 6c 2d 74 79 70 65 70 20 67 70 74 65 6c 2d | .....(cl-assert.(cl-typep.gptel- |
| 344c0 | 2d 66 73 6d 2d 6c 61 73 74 20 27 67 70 74 65 6c 2d 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 | -fsm-last.'gptel-fsm)).......... |
| 344e0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 67 70 74 65 | .(plist-put.(gptel-fsm-info.gpte |
| 34500 | 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 3a 64 61 74 61 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 | l--fsm-last).:data.data)........ |
| 34520 | 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 67 70 74 65 6c 2d | ...(gptel--fsm-transition.gptel- |
| 34540 | 2d 66 73 6d 2d 6c 61 73 74 29 20 20 20 3b 49 4e 49 54 20 2d 3e 20 57 41 49 54 0a 20 20 20 20 20 | -fsm-last)...;INIT.->.WAIT...... |
| 34560 | 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 | .....(quit-window)).......(error |
| 34580 | 0a 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 61 6e 20 6e 6f 74 20 72 65 73 | ........(user-error."Can.not.res |
| 345a0 | 75 6d 65 20 72 65 71 75 65 73 74 3a 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 64 61 74 61 | ume.request:.could.not.read.data |
| 345c0 | 20 66 72 6f 6d 20 62 75 66 66 65 72 21 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | .from.buffer!")))))..(defun.gpte |
| 345e0 | 6c 2d 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 6e 66 | l--insert-response.(response.inf |
| 34600 | 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 74 68 65 20 4c | o.&optional.raw)..."Insert.the.L |
| 34620 | 4c 4d 20 52 45 53 50 4f 4e 53 45 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 | LM.RESPONSE.into.the.gptel.buffe |
| 34640 | 72 2e 0a 0a 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 | r...INFO.is.a.plist.containing.i |
| 34660 | 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 6e 74 20 74 6f 20 74 68 69 73 20 62 75 66 66 | nformation.relevant.to.this.buff |
| 34680 | 65 72 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 | er..See.`gptel--url-get-response |
| 346a0 | 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 20 52 41 57 20 64 69 73 | '.for.details...Optional.RAW.dis |
| 346c0 | 61 62 6c 65 73 20 74 65 78 74 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 74 72 61 6e 73 66 | ables.text.properties.and.transf |
| 346e0 | 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 62 75 66 66 65 | ormation."...(let*.((gptel-buffe |
| 34700 | 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 29 0a 20 20 20 20 | r.(plist-get.info.:buffer))..... |
| 34720 | 20 20 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 | .....(start-marker.(plist-get.in |
| 34740 | 66 6f 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 | fo.:position))..........(trackin |
| 34760 | 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 63 6b 69 | g-marker.(plist-get.info.:tracki |
| 34780 | 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 72 65 73 70 6f 6e 73 65 | ng-marker))).....(pcase.response |
| 347a0 | 0a 20 20 20 20 20 20 28 28 70 72 65 64 20 73 74 72 69 6e 67 70 29 20 20 20 20 20 20 20 20 20 20 | .......((pred.stringp).......... |
| 347c0 | 20 20 20 20 20 20 3b 52 65 73 70 6f 6e 73 65 20 74 65 78 74 0a 20 20 20 20 20 20 20 28 77 69 74 | ......;Response.text........(wit |
| 347e0 | 68 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 | h-current-buffer.gptel-buffer... |
| 34800 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 20 20 20 | .......(when.tracking-marker.... |
| 34820 | 20 20 20 20 20 20 20 3b 73 65 70 61 72 61 74 65 20 66 72 6f 6d 20 70 72 65 76 69 6f 75 73 20 72 | .......;separate.from.previous.r |
| 34840 | 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 | esponse............(setq.respons |
| 34860 | 65 20 28 63 6f 6e 63 61 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 | e.(concat.gptel-response-separat |
| 34880 | 6f 72 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 | or.response)))..........(save-ex |
| 348a0 | 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | cursion............(with-current |
| 348c0 | 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 74 2d 6d 61 72 | -buffer.(marker-buffer.start-mar |
| 348e0 | 6b 65 72 29 0a 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 6f 72 | ker)..............(goto-char.(or |
| 34900 | 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a | .tracking-marker.start-marker)). |
| 34920 | 20 20 20 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 | .............;;.(run-hooks.'gpte |
| 34940 | 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 20 20 20 20 20 20 | l-pre-response-hook)............ |
| 34960 | 20 20 28 75 6e 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 | ..(unless.(or.(bobp).(plist-get. |
| 34980 | 69 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:in-place)................. |
| 349a0 | 20 20 20 20 20 20 20 20 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 | .........tracking-marker)....... |
| 349c0 | 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 73 65 2d | .........(insert.gptel-response- |
| 349e0 | 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | separator)................(when. |
| 34a00 | 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 20 28 69 6e 73 | gptel-mode..................(ins |
| 34a20 | 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 73 74 72 69 6e | ert.(gptel-response-prefix-strin |
| 34a40 | 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 61 72 6b 65 72 | g)))................(move-marker |
| 34a60 | 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 20 20 20 20 20 | .start-marker.(point)))......... |
| 34a80 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 61 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(unless.raw................ |
| 34aa0 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 72 61 6e 73 66 6f 72 6d 65 72 20 28 70 6c 69 73 74 2d | (when-let*.((transformer.(plist- |
| 34ac0 | 67 65 74 20 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 | get.info.:transformer)))........ |
| 34ae0 | 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 6c | ..........(setq.response.(funcal |
| 34b00 | 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 20 | l.transformer.response)))....... |
| 34b20 | 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 73 0a 20 20 | .........(add-text-properties... |
| 34b40 | 20 20 20 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 | ..............0.(length.response |
| 34b60 | 29 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 74 69 63 6b 79 20 | ).'(gptel.response.front-sticky. |
| 34b80 | 28 67 70 74 65 6c 29 29 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (gptel)).response))............. |
| 34ba0 | 20 28 69 6e 73 65 72 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 | .(insert.response).............. |
| 34bc0 | 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 | (plist-put.info.:tracking-marker |
| 34be0 | 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 6f 69 6e 74 2d 6d 61 | .(setq.tracking-marker.(point-ma |
| 34c00 | 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 75 6e 69 66 | rker)))..............;;.for.unif |
| 34c20 | 6f 72 6d 69 74 79 20 77 69 74 68 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a | ormity.with.streaming.responses. |
| 34c40 | 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 65 72 74 69 | .............(set-marker-inserti |
| 34c60 | 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 29 29 29 29 0a 20 | on-type.tracking-marker.t))))).. |
| 34c80 | 20 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 | .....(`(reasoning...,text)...... |
| 34ca0 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 63 6c 75 64 65 20 28 70 6c 69 73 74 2d 67 65 | ..(when-let*.((include.(plist-ge |
| 34cc0 | 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 | t.info.:include-reasoning))).... |
| 34ce0 | 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 69 6e 63 6c 75 64 65 29 0a 20 20 20 20 | ......(if.(stringp.include)..... |
| 34d00 | 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 28 67 | .........(with-current-buffer.(g |
| 34d20 | 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et-buffer-create................ |
| 34d40 | 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 |
| 34d60 | 6e 66 6f 20 3a 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 | nfo.:include-reasoning))........ |
| 34d80 | 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 2d 63 68 | ........(save-excursion.(goto-ch |
| 34da0 | 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 29 29 0a | ar.(point-max)).(insert.text))). |
| 34dc0 | 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. |
| 34de0 | 28 6d 61 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 0a 20 20 20 | (marker-buffer.start-marker).... |
| 34e00 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 6c 6f 63 6b 73 20 28 69 66 20 28 64 65 72 | ..........(let.((blocks.(if.(der |
| 34e20 | 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 20 | ived-mode-p.'org-mode).......... |
| 34e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 22 23 2b 62 65 67 69 6e | ......................`("#+begin |
| 34e60 | 5f 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 5c 6e 23 2b 65 6e | _reasoning\n"...,(concat."\n#+en |
| 34e80 | 64 5f 72 65 61 73 6f 6e 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d_reasoning".................... |
| 34ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 34ec0 | 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 6f 72 | ........gptel-response-separator |
| 34ee0 | 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 | )).............................. |
| 34f00 | 3b 3b 20 54 4f 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 | ;;.TODO(reasoning).remove.proper |
| 34f20 | 74 69 65 73 20 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 | ties.and.strip.instead.......... |
| 34f40 | 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 70 72 6f 70 65 | ....................(cons.(prope |
| 34f60 | 72 74 69 7a 65 20 22 60 60 60 20 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 20 27 67 70 74 65 6c 20 27 | rtize."```.reasoning\n".'gptel.' |
| 34f80 | 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 20 20 20 20 20 20 | ignore)......................... |
| 34fa0 | 20 20 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 | ...........(concat.(propertize." |
| 34fc0 | 5c 6e 60 60 60 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 | \n```".'gptel.'ignore).......... |
| 34fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 35000 | 20 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 29 29 29 29 0a | ..gptel-response-separator))))). |
| 35020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 69 6e 63 6c 75 64 65 20 27 | ...............(if.(eq.include.' |
| 35040 | 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 20 28 70 72 6f 67 | ignore)....................(prog |
| 35060 | 6e 0a 20 20 20 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 | n......................(add-text |
| 35080 | 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 20 20 20 | -properties..................... |
| 350a0 | 20 20 30 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 27 28 67 70 74 65 6c 20 69 67 6e 6f 72 65 | ..0.(length.text).'(gptel.ignore |
| 350c0 | 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 20 74 65 78 74 29 0a 20 20 20 | .front-sticky.(gptel)).text).... |
| 350e0 | 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 |
| 35100 | 2d 72 65 73 70 6f 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 | -response....................... |
| 35120 | 28 63 6f 6e 63 61 74 20 28 63 61 72 20 62 6c 6f 63 6b 73 29 20 74 65 78 74 20 28 63 64 72 20 62 | (concat.(car.blocks).text.(cdr.b |
| 35140 | 6c 6f 63 6b 73 29 29 20 69 6e 66 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | locks)).info.t))................ |
| 35160 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 20 62 | ..(gptel--insert-response.(car.b |
| 35180 | 6c 6f 63 6b 73 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 | locks).info.t).................. |
| 351a0 | 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 |
| 351c0 | 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 |
| 351e0 | 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) |
| 35200 | 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- |
| 35220 | 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... |
| 35240 | 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.. |
| 35260 | 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 |
| 35280 | 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)). |
| 352a0 | 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 |
| 352c0 | 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 |
| 352e0 | 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.( |
| 35300 | 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") |
| 35320 | 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 |
| 35340 | 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..., |
| 35360 | 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 |
| 35380 | 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)). |
| 353a0 | 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 |
| 353c0 | 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 |
| 353e0 | 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))))) |
| 35400 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 | ..(defun.gptel--wrap-user-prompt |
| 35420 | 2d 6d 61 79 62 65 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 52 65 74 75 72 6e 20 50 52 4f 4d 50 | -maybe.(prompts)..."Return.PROMP |
| 35440 | 54 53 20 77 72 61 70 70 65 64 20 77 69 74 68 20 74 65 78 74 20 61 6e 64 20 6d 65 64 69 61 20 63 | TS.wrapped.with.text.and.media.c |
| 35460 | 6f 6e 74 65 78 74 2e 0a 0a 54 68 69 73 20 64 65 6c 65 67 61 74 65 73 20 74 6f 20 62 61 63 6b 65 | ontext...This.delegates.to.backe |
| 35480 | 6e 64 2d 73 70 65 63 69 66 69 63 20 77 72 61 70 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 28 | nd-specific.wrap.functions."...( |
| 354a0 | 70 72 6f 67 31 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 63 6f | prog1.prompts.....(when.gptel-co |
| 354c0 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 3b 3b 20 49 6e 6a 65 63 74 20 63 6f 6e | ntext--alist.......;;.Inject.con |
| 354e0 | 74 65 78 74 20 63 68 75 6e 6b 73 20 69 6e 74 6f 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 | text.chunks.into.the.last.user.p |
| 35500 | 72 6f 6d 70 74 20 69 66 20 72 65 71 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3b 3b 20 54 68 69 73 | rompt.if.required........;;.This |
| 35520 | 20 69 73 20 61 6c 73 6f 20 74 68 65 20 66 61 6c 6c 62 61 63 6b 20 66 6f 72 20 77 68 65 6e 20 60 | .is.also.the.fallback.for.when.` |
| 35540 | 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 27 20 69 73 20 73 65 74 20 74 6f 0a 20 20 20 | gptel-use-context'.is.set.to.... |
| 35560 | 20 20 20 3b 3b 20 27 73 79 73 74 65 6d 20 62 75 74 20 74 68 65 20 6d 6f 64 65 6c 20 64 6f 65 73 | ...;;.'system.but.the.model.does |
| 35580 | 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 2e 0a 20 20 | .not.support.system.messages.... |
| 355a0 | 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 | ....(when.(and.gptel-use-context |
| 355c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d | ..................(or.(eq.gptel- |
| 355e0 | 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 75 73 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | use-context.'user).............. |
| 35600 | 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 20 | ........(gptel--model-capable-p. |
| 35620 | 27 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 28 3e 20 | 'nosystem))..................(>. |
| 35640 | 28 6c 65 6e 67 74 68 20 70 72 6f 6d 70 74 73 29 20 30 29 29 20 3b 46 49 58 4d 45 20 63 6f 6e 74 | (length.prompts).0)).;FIXME.cont |
| 35660 | 65 78 74 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 6a 65 63 74 65 64 0a 20 20 20 20 20 20 20 20 20 | ext.should.be.injected.......... |
| 35680 | 20 20 20 20 20 20 20 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 | ...............................; |
| 356a0 | 65 76 65 6e 20 77 68 65 6e 20 74 68 65 72 65 20 61 72 65 20 6e 6f 20 70 72 6f 6d 70 74 73 0a 20 | even.when.there.are.no.prompts.. |
| 356c0 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 | .......(gptel--wrap-user-prompt. |
| 356e0 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 3b 3b | gptel-backend.prompts)).......;; |
| 35700 | 20 49 6e 6a 65 63 74 20 6d 65 64 69 61 20 63 68 75 6e 6b 73 20 69 6e 74 6f 20 74 68 65 20 66 69 | .Inject.media.chunks.into.the.fi |
| 35720 | 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 66 20 72 65 71 75 69 72 65 64 2e 20 20 4d 65 | rst.user.prompt.if.required...Me |
| 35740 | 64 69 61 0a 20 20 20 20 20 20 3b 3b 20 63 68 75 6e 6b 73 20 61 72 65 20 61 6c 77 61 79 73 20 69 | dia.......;;.chunks.are.always.i |
| 35760 | 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 6d 65 73 73 | ncluded.with.the.first.user.mess |
| 35780 | 61 67 65 2c 0a 20 20 20 20 20 20 3b 3b 20 69 72 72 65 73 70 65 63 74 69 76 65 20 6f 66 20 74 68 | age,.......;;.irrespective.of.th |
| 357a0 | 65 20 70 72 65 66 65 72 65 6e 63 65 20 69 6e 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 | e.preference.in.`gptel-use-conte |
| 357c0 | 78 74 27 2e 20 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 3b 3b 20 62 65 63 61 75 73 65 20 6d | xt'...This.is.......;;.because.m |
| 357e0 | 65 64 69 61 20 63 61 6e 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 28 69 6e 20 67 65 6e 65 | edia.cannot.be.included.(in.gene |
| 35800 | 72 61 6c 29 20 77 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 2e 0a 20 20 20 20 20 | ral).with.system.messages....... |
| 35820 | 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 67 70 | .(when.(and.gptel-use-context.gp |
| 35840 | 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 20 20 20 20 | tel-track-media................. |
| 35860 | 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 64 69 61 29 | .(gptel--model-capable-p.'media) |
| 35880 | 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d | ).........(gptel--wrap-user-prom |
| 358a0 | 70 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 73 20 3a 6d 65 64 69 61 29 | pt.gptel-backend.prompts.:media) |
| 358c0 | 29 29 29 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 | ))))..(defun.gptel--create-promp |
| 358e0 | 74 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 65 74 75 | t.(&optional.prompt-end)..."Retu |
| 35900 | 72 6e 20 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 | rn.a.full.conversation.prompt.fr |
| 35920 | 6f 6d 20 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 | om.the.contents.of.this.buffer.. |
| 35940 | 0a 49 66 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 | .If.`gptel--num-messages-to-send |
| 35960 | 27 20 69 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 | '.is.set,.limit.to.that.many.rec |
| 35980 | 65 6e 74 20 65 78 63 68 61 6e 67 65 73 2e 0a 0a 49 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 | ent.exchanges...If.the.region.is |
| 359a0 | 20 61 63 74 69 76 65 20 6c 69 6d 69 74 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 | .active.limit.the.prompt.to.the. |
| 359c0 | 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 0a 69 6e 73 74 65 61 64 2e 0a 0a 49 66 20 60 67 70 | region.contents.instead...If.`gp |
| 359e0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 61 | tel-context--alist'.is.non-nil.a |
| 35a00 | 6e 64 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 0a 63 6f 6e 74 65 78 74 20 6e 65 65 64 73 20 | nd.the.additional.context.needs. |
| 35a20 | 74 6f 20 62 65 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 | to.be.included.with.the.user.pro |
| 35a40 | 6d 70 74 2c 20 61 64 64 20 69 74 2e 0a 0a 49 66 20 50 52 4f 4d 50 54 2d 45 4e 44 20 28 61 20 6d | mpt,.add.it...If.PROMPT-END.(a.m |
| 35a60 | 61 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 | arker).is.provided,.end.the.prom |
| 35a80 | 70 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 | pt.contents.there...This.default |
| 35aa0 | 73 20 74 6f 20 28 70 6f 69 6e 74 29 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | s.to.(point)."...(save-excursion |
| 35ac0 | 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 20 20 20 20 28 6c 65 | .....(save-restriction.......(le |
| 35ae0 | 74 2a 20 28 28 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 6e 75 6d | t*.((max-entries.(and.gptel--num |
| 35b00 | 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 20 20 20 20 20 | -messages-to-send............... |
| 35b20 | 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 75 6d | .................(*.2.gptel--num |
| 35b40 | 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 20 20 20 20 20 | -messages-to-send)))............ |
| 35b60 | 20 20 28 62 75 66 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 | ..(buf.(current-buffer))........ |
| 35b80 | 20 20 20 20 20 20 28 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ......(prompts...............(co |
| 35ba0 | 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 | nd................((derived-mode |
| 35bc0 | 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 28 72 | -p.'org-mode).................(r |
| 35be0 | 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 20 20 20 20 | equire.'gptel-org).............. |
| 35c00 | 20 20 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 | ...;;.Also.handles.regions.in.Or |
| 35c20 | 67 20 6d 6f 64 65 0a 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 | g.mode.................(gptel-or |
| 35c40 | 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 | g--create-prompt.prompt-end))... |
| 35c60 | 20 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 70 29 0a 20 20 20 | .............((use-region-p).... |
| 35c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 62 20 28 72 65 67 69 6f 6e 2d 62 | .............(let.((rb.(region-b |
| 35ca0 | 65 67 69 6e 6e 69 6e 67 29 29 20 28 72 65 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 | eginning)).(re.(region-end)))... |
| 35cc0 | 20 20 20 20 20 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 | ................(gptel--with-buf |
| 35ce0 | 66 65 72 2d 63 6f 70 79 20 62 75 66 20 72 62 20 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer-copy.buf.rb.re.............. |
| 35d00 | 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 72 75 6e 2d 68 6f 6f 6b | .......(save-excursion.(run-hook |
| 35d20 | 73 20 27 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 29 29 0a 20 20 | s.'gptel-prompt-filter-hook))... |
| 35d40 | 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 61 72 73 65 2d | ..................(gptel--parse- |
| 35d60 | 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 | buffer.gptel-backend.max-entries |
| 35d80 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 75 6e 6c 65 73 73 20 70 | ))))................(t.(unless.p |
| 35da0 | 72 6f 6d 70 74 2d 65 6e 64 20 28 73 65 74 71 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 70 6f 69 6e | rompt-end.(setq.prompt-end.(poin |
| 35dc0 | 74 29 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 65 6c 2d 2d 77 | t)))...................(gptel--w |
| 35de0 | 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 62 75 66 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 | ith-buffer-copy.buf.(point-min). |
| 35e00 | 70 72 6f 6d 70 74 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | prompt-end.....................( |
| 35e20 | 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c | save-excursion.(run-hooks.'gptel |
| 35e40 | 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -prompt-filter-hook))........... |
| 35e60 | 20 20 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 20 67 | ..........(gptel--parse-buffer.g |
| 35e80 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 29 29 29 0a 20 | ptel-backend.max-entries)))))).. |
| 35ea0 | 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 70 72 6f 6d 70 74 73 20 69 73 20 6d 6f 64 69 66 | .......;;.NOTE:.prompts.is.modif |
| 35ec0 | 69 65 64 20 69 6e 20 70 6c 61 63 65 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c | ied.in.place.here.........(gptel |
| 35ee0 | 2d 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 2d 6d 61 79 62 65 20 70 72 6f 6d 70 74 73 | --wrap-user-prompt-maybe.prompts |
| 35f00 | 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 2d 70 61 72 | )))))..(cl-defgeneric.gptel--par |
| 35f20 | 73 65 2d 62 75 66 66 65 72 20 28 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a | se-buffer.(backend.max-entries). |
| 35f40 | 20 20 22 50 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 62 61 63 6b 77 61 72 64 | .."Parse.current.buffer.backward |
| 35f60 | 73 20 66 72 6f 6d 20 70 6f 69 6e 74 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f | s.from.point.and.return.a.list.o |
| 35f80 | 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 | f.prompts...BACKEND.is.the.LLM.b |
| 35fa0 | 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 4d 41 58 2d 45 4e 54 52 49 45 53 20 69 73 20 74 | ackend.in.use...MAX-ENTRIES.is.t |
| 35fc0 | 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 71 75 65 72 69 65 73 2f 72 65 73 70 6f 6e 73 65 73 20 74 | he.number.of.queries/responses.t |
| 35fe0 | 6f 20 69 6e 63 6c 75 64 65 20 66 6f 72 0a 63 6f 6e 74 65 78 62 74 2e 22 29 0a 0a 28 63 6c 2d 64 | o.include.for.contexbt.")..(cl-d |
| 36000 | 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 20 28 62 61 63 | efgeneric.gptel--parse-list.(bac |
| 36020 | 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 50 52 4f 4d 50 | kend.prompt-list)..."Parse.PROMP |
| 36040 | 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 20 70 72 6f 6d | T-LIST.and.return.a.list.of.prom |
| 36060 | 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 50 52 4f 4d 50 | pts.suitable.for.BACKEND...PROMP |
| 36080 | 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 63 6f 6e 76 65 | T-LIST.is.interpreted.as.a.conve |
| 360a0 | 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 67 0a 73 65 72 | rsation,.i.e..an.alternating.ser |
| 360c0 | 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 20 72 65 73 70 | ies.of.user.prompts.and.LLM.resp |
| 360e0 | 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 75 72 65 0a 69 | onses...The.returned.structure.i |
| 36100 | 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 20 74 68 65 20 | s.suitable.for.including.in.the. |
| 36120 | 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 73 20 74 68 65 | request.payload...BACKEND.is.the |
| 36140 | 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 2d 64 65 66 67 | .LLM.backend.in.use.")..(cl-defg |
| 36160 | 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 69 6e 6b 73 20 | eneric.gptel--parse-media-links. |
| 36180 | 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 61 20 6c 69 6e | (mode.beg.end)..."Find.media.lin |
| 361a0 | 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 44 45 20 69 73 | ks.between.BEG.and.END...MODE.is |
| 361c0 | 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 65 72 2e 0a 0a | .the.major-mode.of.the.buffer... |
| 361e0 | 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 65 6e 74 72 79 | Returns.a.plist.where.each.entry |
| 36200 | 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 73 6f 6d 65 20 | .is.of.the.form...(:text.\"some. |
| 36220 | 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 61 20 75 72 69 | text\").or...(:media.\"media.uri |
| 36240 | 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 65 20 6d 6f 64 | .or.file.path\")."...(ignore.mod |
| 36260 | 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 3b 62 79 74 65 | e).........................;byte |
| 36280 | 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 28 62 75 66 66 | -compiler...(list.`(:text.,(buff |
| 362a0 | 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 20 | er-substring-no-properties...... |
| 362c0 | 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 64 65 66 76 61 | .............beg.end))))..(defva |
| 362e0 | 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 65 29 0a 28 64 | r.markdown-regex-link-inline).(d |
| 36300 | 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 75 72 69 29 0a | efvar.markdown-regex-angle-uri). |
| 36320 | 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 6c 69 6e 6b 2d | (declare-function.markdown-link- |
| 36340 | 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 63 6c 61 72 65 | at-pos."markdown-mode").(declare |
| 36360 | 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 6d | -function.mailcap-file-name-to-m |
| 36380 | 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 66 6d 65 74 68 | ime-type."mailcap")..(cl-defmeth |
| 363a0 | 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 20 28 28 5f 6d | od.gptel--parse-media-links.((_m |
| 363c0 | 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 65 67 20 65 6e | ode.(eql.'markdown-mode)).beg.en |
| 363e0 | 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 65 20 | d)..."Parse.text.and.actionable. |
| 36400 | 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 74 75 | links.between.BEG.and.END...Retu |
| 36420 | 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 20 5c | rn.a.list.of.the.form..((:text.\ |
| 36440 | 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 68 2f | "some.text\")...(:media.\"/path/ |
| 36460 | 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 6e 67 | to/media.png\".:mime.\"image/png |
| 36480 | 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 6f 72 | \")...(:text.\"More.text\")).for |
| 364a0 | 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 74 20 | .inclusion.into.the.user.prompt. |
| 364c0 | 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 75 69 | for.the.gptel.request."...(requi |
| 364e0 | 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 20 20 | re.'mailcap).................... |
| 36500 | 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 65 74 | ;FIXME.Avoid.this.somehow...(let |
| 36520 | 20 28 28 70 61 72 74 73 29 20 28 66 72 6f 6d 2d 70 74 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 | .((parts).(from-pt)).....(save-e |
| 36540 | 78 63 75 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 | xcursion.......(setq.from-pt.(go |
| 36560 | 74 6f 2d 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 | to-char.beg)).......(while.(re-s |
| 36580 | 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 20 28 63 6f 6e | earch-forward...............(con |
| 365a0 | 63 61 74 20 22 5c 5c 28 3f 3a 22 20 6d 61 72 6b 64 6f 77 6e 2d 72 65 67 65 78 2d 6c 69 6e 6b 2d | cat."\\(?:".markdown-regex-link- |
| 365c0 | 69 6e 6c 69 6e 65 20 22 5c 5c 7c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inline."\\|".................... |
| 365e0 | 20 20 20 6d 61 72 6b 64 6f 77 6e 2d 72 65 67 65 78 2d 61 6e 67 6c 65 2d 75 72 69 20 22 5c 5c 29 | ...markdown-regex-angle-uri."\\) |
| 36600 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 | ")...............end.t)......... |
| 36620 | 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 6b 64 6f 77 | (when-let*.((link-at-pt.(markdow |
| 36640 | 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 20 20 20 20 | n-link-at-pos.(point)))......... |
| 36660 | 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 61 6e 64 61 | ............((gptel--link-standa |
| 36680 | 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 20 28 63 61 | lone-p.......................(ca |
| 366a0 | 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 70 74 29 29 | r.link-at-pt).(cadr.link-at-pt)) |
| 366c0 | 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 6e 74 68 | ).....................(path.(nth |
| 366e0 | 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 20 20 20 20 | .3.link-at-pt))................. |
| 36700 | 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 66 69 78 20 | ....(path.(string-remove-prefix. |
| 36720 | 22 66 69 6c 65 3a 2f 2f 22 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "file://".path))................ |
| 36740 | 20 20 20 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 | .....(mime.(mailcap-file-name-to |
| 36760 | 2d 6d 69 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 20 20 | -mime-type.path))............... |
| 36780 | 20 20 20 20 20 20 28 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 | ......((gptel--model-mime-capabl |
| 367a0 | 65 2d 70 20 6d 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 | e-p.mime)))...........(cond..... |
| 367c0 | 20 20 20 20 20 20 20 28 28 73 65 71 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 70 29 20 28 73 | .......((seq-some.(lambda.(p).(s |
| 367e0 | 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 70 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 | tring-prefix-p.p.path))......... |
| 36800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 22 68 74 74 70 73 3a 22 20 22 68 74 74 70 3a 22 | ..............'("https:"."http:" |
| 36820 | 20 22 66 74 70 3a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 | ."ftp:")).............;;.Collect |
| 36840 | 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 6c 6c | .text.up.to.this.image,.and.coll |
| 36860 | 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ect.this.image.url.............( |
| 36880 | 77 68 65 6e 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 75 72 | when.(gptel--model-capable-p.'ur |
| 368a0 | 6c 29 20 3b 20 46 49 58 4d 45 20 54 68 69 73 20 69 73 20 6e 6f 74 20 61 20 67 6f 6f 64 20 70 6c | l).;.FIXME.This.is.not.a.good.pl |
| 368c0 | 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 20 20 20 | ace............................. |
| 368e0 | 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 20 66 | ....................;.to.check.f |
| 36900 | 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 20 20 | or.url.capability!.............. |
| 36920 | 20 28 70 75 73 68 20 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 | .(push.(list.:text.(buffer-subst |
| 36940 | 72 69 6e 67 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 | ring-no-properties.from-pt.(car. |
| 36960 | 6c 69 6e 6b 2d 61 74 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 | link-at-pt)))................... |
| 36980 | 20 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 | ..parts)...............(push.(li |
| 369a0 | 73 74 20 3a 75 72 6c 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 20 70 61 72 74 73 29 0a | st.:url.path.:mime.mime).parts). |
| 369c0 | 20 20 20 20 20 20 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 | ..............(setq.from-pt.(cad |
| 369e0 | 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 66 69 | r.link-at-pt))))............((fi |
| 36a00 | 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | le-readable-p.path)............. |
| 36a20 | 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 |
| 36a40 | 2c 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 0a 20 20 20 20 20 20 20 | ,.and.collect.this.image........ |
| 36a60 | 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 | .....(push.(list.:text.(buffer-s |
| 36a80 | 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 66 72 6f 6d 2d 70 74 20 28 | ubstring-no-properties.from-pt.( |
| 36aa0 | 63 61 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | car.link-at-pt)))............... |
| 36ac0 | 20 20 20 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 | ....parts).............(push.(li |
| 36ae0 | 73 74 20 3a 6d 65 64 69 61 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 20 70 61 72 74 73 | st.:media.path.:mime.mime).parts |
| 36b00 | 29 0a 20 20 20 20 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 | ).............(setq.from-pt.(cad |
| 36b20 | 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 | r.link-at-pt))))))).....(unless. |
| 36b40 | 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 28 6c 69 73 | (=.from-pt.end).......(push.(lis |
| 36b60 | 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 70 72 6f | t.:text.(buffer-substring-no-pro |
| 36b80 | 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 0a 20 20 | perties.from-pt.end)).parts))... |
| 36ba0 | 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 66 67 65 6e | ..(nreverse.parts)))..(cl-defgen |
| 36bc0 | 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 20 28 62 61 | eric.gptel--wrap-user-prompt.(ba |
| 36be0 | 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 6c 61 73 74 | ckend._prompts)..."Wrap.the.last |
| 36c00 | 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 6c 27 73 20 | .prompt.in.PROMPTS.with.gptel's. |
| 36c20 | 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 74 75 72 65 | context...PROMPTS.is.a.structure |
| 36c40 | 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 65 2d 62 75 | .as.returned.by.`gptel--parse-bu |
| 36c60 | 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 69 73 74 20 | ffer'..Typically.this.is.a.list. |
| 36c80 | 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 70 74 65 6c | of.plists...BACKEND.is.the.gptel |
| 36ca0 | 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 2d 77 61 72 | .backend.in.use."...(display-war |
| 36cc0 | 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 28 66 6f 72 | ning....'(gptel.context)....(for |
| 36ce0 | 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 6c 65 6d 65 | mat."Context.support.not.impleme |
| 36d00 | 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 67 20 63 6f | nted.for.backend.%s,.ignoring.co |
| 36d20 | 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 6b 65 6e 64 | ntext"............(gptel-backend |
| 36d40 | 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 6e 65 72 69 | -name.backend))))..(cl-defgeneri |
| 36d60 | 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 6e 64 20 70 | c.gptel--request-data.(backend.p |
| 36d80 | 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 6f 66 20 61 | rompts)..."Generate.a.plist.of.a |
| 36da0 | 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 41 43 4b 45 | ll.data.for.an.LLM.query...BACKE |
| 36dc0 | 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 0a 0a 50 | ND.is.the.LLM.backend.in.use...P |
| 36de0 | 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 6f 75 73 20 | ROMPTS.is.the.plist.of.previous. |
| 36e00 | 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 65 73 2e 22 | user.queries.and.LLM.responses." |
| 36e20 | 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 70 6f 6e 73 | )..(defun.gptel--url-get-respons |
| 36e40 | 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 20 70 72 6f | e.(fsm)..."Fetch.response.to.pro |
| 36e60 | 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 4d 2e 0a 0a | mpt.in.state.FSM.from.the.LLM... |
| 36e80 | 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 67 | FSM.is.the.state.machine.driving |
| 36ea0 | 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 6f | .this.request...Its.INFO.slot.co |
| 36ec0 | 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 74 | ntains.the.data.required.for.set |
| 36ee0 | 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 0a | ting.up.the.request...INFO.is.a. |
| 36f00 | 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 61 | plist.with.the.following.keys,.a |
| 36f20 | 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 61 | mong.others:.-.:data.....(the.da |
| 36f40 | 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 20 | ta.being.sent).-.:buffer...(the. |
| 36f60 | 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 65 | gptel.buffer).-.:position.(marke |
| 36f80 | 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 73 | r.at.which.to.insert.the.respons |
| 36fa0 | 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 72 | e)..-.:callback.(optional,.the.r |
| 36fc0 | 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 20 | equest.callback)..Call.CALLBACK. |
| 36fe0 | 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 72 | with.the.response.and.INFO.after |
| 37000 | 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 20 | wards...If.omitted.the.response. |
| 37020 | 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 66 | is.inserted.into.the.current.buf |
| 37040 | 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 69 6e 68 69 | fer.after.point."...(let*.((inhi |
| 37060 | 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 73 61 67 65 | bit-message.t)..........(message |
| 37080 | 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 72 65 71 75 | -log-max.nil)..........(url-requ |
| 370a0 | 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 28 75 72 6c | est-method."POST")..........(url |
| 370c0 | 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 20 20 20 20 | -request-extra-headers.......... |
| 370e0 | 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 20 22 61 70 | .(append.'(("Content-Type"..."ap |
| 37100 | 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 20 20 20 20 | plication/json"))............... |
| 37120 | 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 65 6c 2d 62 | ....(when-let*.((header.(gptel-b |
| 37140 | 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 29 29 0a 20 | ackend-header.gptel-backend))).. |
| 37160 | 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 74 69 6f 6e | ...................(if.(function |
| 37180 | 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 20 20 20 20 | p.header)....................... |
| 371a0 | 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 29 0a 20 20 | ..(funcall.header).header))))... |
| 371c0 | 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 20 66 73 6d | .......(info.(gptel-fsm-info.fsm |
| 371e0 | 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 67 65 74 20 | ))..........(backend.(plist-get. |
| 37200 | 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 6c 6c 62 61 | info.:backend))..........(callba |
| 37220 | 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 62 61 63 6b | ck.(or.(plist-get.info.:callback |
| 37240 | 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 20 20 20 20 | ).;if.not.the.first.run......... |
| 37260 | 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 72 74 2d 72 | ...............#'gptel--insert-r |
| 37280 | 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 20 20 20 20 | esponse)).;default.callback..... |
| 372a0 | 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 20 20 20 20 | .....(url-request-data.......... |
| 372c0 | 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 20 20 20 20 | .(encode-coding-string.......... |
| 372e0 | 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 2d 67 65 74 | ..(gptel--json-encode.(plist-get |
| 37300 | 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 66 2d 38 29 | .info.:data))............'utf-8) |
| 37320 | 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 75 66 66 65 | )).....(when.(with-current-buffe |
| 37340 | 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 20 20 20 20 | r.(plist-get.info.:buffer)...... |
| 37360 | 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 |
| 37380 | 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 6c 2d 6f 72 | -mode)..................gptel-or |
| 373a0 | 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 70 6c 69 73 | g-convert-response)).......(plis |
| 373c0 | 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 74 65 6c 2d | t-put.info.:transformer.#'gptel- |
| 373e0 | 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 20 28 70 6c | -convert-markdown->org)).....(pl |
| 37400 | 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 61 63 6b 29 | ist-put.info.:callback.callback) |
| 37420 | 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 20 20 20 20 | .....(when.gptel-log-level...... |
| 37440 | 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 6e 20 28 65 | .........;logging.......(when.(e |
| 37460 | 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 20 20 20 20 | q.gptel-log-level.'debug)....... |
| 37480 | 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 6e 63 6f 64 | ..(gptel--log.(gptel--json-encod |
| 374a0 | 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 61 72 20 28 | e......................(mapcar.( |
| 374c0 | 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 28 63 61 72 | lambda.(pair).(cons.(intern.(car |
| 374e0 | 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 20 20 20 20 | .pair)).(cdr.pair)))............ |
| 37500 | 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 74 2d 65 78 | ..................url-request-ex |
| 37520 | 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 20 20 20 20 | tra-headers))................... |
| 37540 | 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 28 67 70 74 | .."request.headers")).......(gpt |
| 37560 | 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 71 75 65 73 | el--log.url-request-data."reques |
| 37580 | 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 66 0a 20 20 | t.body")).....(let.((proc-buf... |
| 375a0 | 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 28 28 62 61 | .........(url-retrieve.(let.((ba |
| 375c0 | 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 20 67 70 74 | ckend-url.(gptel-backend-url.gpt |
| 375e0 | 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 20 20 20 20 | el-backend)))................... |
| 37600 | 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 65 6e 64 2d | .........(if.(functionp.backend- |
| 37620 | 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 20 20 20 | url)............................ |
| 37640 | 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 20 62 61 63 6b 65 6e | ....(funcall.backend-url).backen |
| 37660 | 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 20 20 20 20 20 20 | d-url))......................... |
| 37680 | 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(lambda.(_).................... |
| 376a0 | 20 20 20 20 20 20 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 65 | ........(pcase-let.((`(,response |
| 376c0 | 20 2c 68 74 74 70 2d 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 | .,http-status.,http-msg.,error). |
| 376e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 37700 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e | ........(gptel--url-parse-respon |
| 37720 | 73 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | se.backend.info))............... |
| 37740 | 20 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 20 28 63 | .........................(buf.(c |
| 37760 | 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 20 | urrent-buffer)))................ |
| 37780 | 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 68 | ..............(plist-put.info.:h |
| 377a0 | 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 20 | ttp-status.http-status)......... |
| 377c0 | 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. |
| 377e0 | 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 | info.:status.http-msg).......... |
| 37800 | 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 66 73 6d 2d | ....................(gptel--fsm- |
| 37820 | 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 3b 57 41 49 54 20 2d 3e 20 54 59 50 45 0a 20 20 | transition.fsm).;WAIT.->.TYPE... |
| 37840 | 20 20 20 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 68 65 6e | ...........................(when |
| 37860 | 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 20 65 72 | .error.(plist-put.info.:error.er |
| 37880 | 72 6f 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 20 | ror))........................... |
| 378a0 | 20 20 20 28 77 68 65 6e 20 72 65 73 70 6f 6e 73 65 20 3b 4c 6f 6f 6b 20 66 6f 72 20 61 20 72 65 | ...(when.response.;Look.for.a.re |
| 378c0 | 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 20 | asoning.block................... |
| 378e0 | 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 68 2d 70 | .............(if.(string-match-p |
| 37900 | 20 22 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 | ."^.*<think>\n".response)....... |
| 37920 | 20 20 20 20 20 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 68 | .............................(wh |
| 37940 | 65 6e 2d 6c 65 74 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 73 65 61 72 63 68 20 22 3c 2f | en-let*.((idx.(string-search."</ |
| 37960 | 74 68 69 6e 6b 3e 5c 6e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | think>\n".response)))........... |
| 37980 | 20 20 20 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 |
| 379a0 | 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. |
| 379c0 | 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | error:.%S"...................... |
| 379e0 | 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 |
| 37a00 | 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 20 20 20 20 | ack............................. |
| 37a20 | 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 27 72 65 61 73 6f | ....................(cons.'reaso |
| 37a40 | 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 20 20 20 20 | ning............................ |
| 37a60 | 20 20 20 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 | ...........................(subs |
| 37a80 | 74 72 69 6e 67 20 72 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 | tring.response.nil.(+.idx.8))).. |
| 37aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 37ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ...............info))........... |
| 37ae0 | 20 20 20 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 | ...........................(setq |
| 37b00 | 20 72 65 73 70 6f 6e 73 65 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 6c 65 66 74 0a 20 20 20 20 | .response.(string-trim-left..... |
| 37b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 37b40 | 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 20 72 65 73 70 | .................(substring.resp |
| 37b60 | 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse.(+.idx.8))))).............. |
| 37b80 | 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*.( |
| 37ba0 | 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 | (reasoning.(plist-get.info.:reas |
| 37bc0 | 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 20 20 20 20 20 | oning))......................... |
| 37be0 | 20 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 72 | .....................((stringp.r |
| 37c00 | 65 61 73 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 20 20 | easoning)))..................... |
| 37c20 | 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 |
| 37c40 | 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 69 6e 66 | .(cons.'reasoning.reasoning).inf |
| 37c60 | 6f 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 | o))))........................... |
| 37c80 | 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 73 70 6f 6e 73 65 20 28 6e 6f 74 20 28 6d 65 6d 62 | ...(when.(or.response.(not.(memb |
| 37ca0 | 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 29 29 29 29 | er.http-status.'("200"."100")))) |
| 37cc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 37ce0 | 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 6c 6c | (with-demoted-errors."gptel.call |
| 37d00 | 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 20 20 20 20 20 20 | back.error:.%S"................. |
| 37d20 | 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 |
| 37d40 | 63 6b 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ck.response.info)))............. |
| 37d60 | 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 66 73 6d 2d 74 72 61 | .................(gptel--fsm-tra |
| 37d80 | 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 3b 54 59 50 45 20 2d 3e 20 6e 65 78 74 0a 20 20 20 20 20 | nsition.fsm).;TYPE.->.next...... |
| 37da0 | 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 66 20 28 61 | ........................(setf.(a |
| 37dc0 | 6c 69 73 74 2d 67 65 74 20 62 75 66 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 | list-get.buf.gptel--request-alis |
| 37de0 | 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t.nil.'remove).nil)............. |
| 37e00 | 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 65 72 20 62 75 | .................(kill-buffer.bu |
| 37e20 | 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 20 20 6e 69 | f)))..........................ni |
| 37e40 | 6c 20 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 74 72 | l.t.nil))).......;;.TODO:.Add.tr |
| 37e60 | 61 6e 73 66 6f 72 6d 65 72 20 68 65 72 65 2e 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 | ansformer.here........(setf.(ali |
| 37e80 | 73 74 2d 67 65 74 20 70 72 6f 63 2d 62 75 66 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 | st-get.proc-buf.gptel--request-a |
| 37ea0 | 6c 69 73 74 29 20 66 73 6d 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 | list).fsm))))..(cl-defgeneric.gp |
| 37ec0 | 74 65 6c 2d 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 | tel--parse-response.(backend.res |
| 37ee0 | 70 6f 6e 73 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 | ponse.proc-info)..."Response.ext |
| 37f00 | 72 61 63 74 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 | ractor.for.LLM.requests...BACKEN |
| 37f20 | 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 0a 0a 52 45 | D.is.the.LLM.backend.in.use...RE |
| 37f40 | 53 50 4f 4e 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 | SPONSE.is.the.parsed.JSON.of.the |
| 37f60 | 20 72 65 73 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 | .response,.as.a.plist...PROC-INF |
| 37f80 | 4f 20 69 73 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 | O.is.a.plist.with.process.inform |
| 37fa0 | 61 74 69 6f 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 | ation.and.other.context..See.`gp |
| 37fc0 | 74 65 6c 2d 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 | tel-curl--get-response'.for.its. |
| 37fe0 | 63 6f 6e 74 65 6e 74 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e | contents.")..(defvar.url-http-en |
| 38000 | 64 2d 6f 66 2d 68 65 61 64 65 72 73 29 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 72 | d-of-headers).(defvar.url-http-r |
| 38020 | 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 | esponse-status).(defun.gptel--ur |
| 38040 | 6c 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 70 72 6f 63 2d 69 | l-parse-response.(backend.proc-i |
| 38060 | 6e 66 6f 29 0a 20 20 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 | nfo)..."Parse.response.from.BACK |
| 38080 | 45 4e 44 20 77 69 74 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 | END.with.PROC-INFO."...(when.gpt |
| 380a0 | 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e | el-log-level.............;loggin |
| 380c0 | 67 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 67 6f 74 | g.....(save-excursion.......(got |
| 380e0 | 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 65 72 73 29 0a | o-char.url-http-end-of-headers). |
| 38100 | 20 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 | ......(when.(eq.gptel-log-level. |
| 38120 | 27 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 | 'debug).........(gptel--log.(gpt |
| 38140 | 65 6c 2d 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 | el--json-encode.(buffer-substrin |
| 38160 | 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 70 6f 69 | g-no-properties.(point-min).(poi |
| 38180 | 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 22 72 65 73 70 6f | nt)))....................."respo |
| 381a0 | 6e 73 65 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 | nse.headers")).......(gptel--log |
| 381c0 | 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 |
| 381e0 | 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 20 20 20 20 | .(point).(point-max))........... |
| 38200 | 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 0a 20 20 28 69 66 | ........"response.body")))...(if |
| 38220 | 2d 6c 65 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 | -let*.((http-msg.(string-trim.(b |
| 38240 | 75 66 66 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 | uffer-substring.(line-beginning- |
| 38260 | 70 6f 73 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 | position)....................... |
| 38280 | 20 20 20 20 20 20 20 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 | ...............................( |
| 382a0 | 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 20 20 20 | line-end-position))))........... |
| 382c0 | 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 20 20 20 28 73 61 76 | ..(http-status..............(sav |
| 382e0 | 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 28 61 6e 64 | e-match-data................(and |
| 38300 | 20 28 73 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 | .(string-match."HTTP/[.0-9]+.+\\ |
| 38320 | 28 5b 30 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 | ([0-9]+\\)".http-msg)........... |
| 38340 | 20 20 20 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 | ..........(match-string.1.http-m |
| 38360 | 73 67 29 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 | sg)))).............(response.(pr |
| 38380 | 6f 67 6e 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 | ogn.(goto-char.url-http-end-of-h |
| 383a0 | 65 61 64 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 | eaders)......................... |
| 383c0 | 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 20 20 20 20 20 20 20 | .....(condition-case.nil........ |
| 383e0 | 20 20 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 |
| 38400 | 2d 2d 6a 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 | --json-read).................... |
| 38420 | 20 20 20 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 | ............(error.'json-read-er |
| 38440 | 72 6f 72 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 | ror))))).......(cond........;;.F |
| 38460 | 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 20 48 54 54 50 20 | IXME.Handle.the.case.where.HTTP. |
| 38480 | 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 6f 74 20 32 30 30 | 100.is.followed.by.HTTP.(not.200 |
| 384a0 | 29 20 42 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 | ).BUG.#194........((or.(memq.url |
| 384c0 | 2d 68 74 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 | -http-response-status.'(200.100) |
| 384e0 | 29 0a 20 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 | ).............(string-match-p."\ |
| 38500 | 5c 28 3f 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 | \(?:1\\|2\\)00.OK".http-msg))... |
| 38520 | 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 |
| 38540 | 74 65 6c 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 | tel--parse-response.backend.resp |
| 38560 | 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse.proc-info)))............... |
| 38580 | 20 20 28 73 74 72 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 | ..(string-trim.resp))........... |
| 385a0 | 20 20 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 | ....http-status.http-msg))...... |
| 385c0 | 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 0a 20 | ..((plist-get.response.:error).. |
| 385e0 | 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 68 74 74 | .......(list.nil.http-status.htt |
| 38600 | 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 3a 65 72 72 6f 72 | p-msg.(plist-get.response.:error |
| 38620 | 29 29 29 0a 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 | )))........((eq.response.'json-r |
| 38640 | 65 61 64 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 | ead-error).........(list.nil.htt |
| 38660 | 70 2d 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 | p-status.(concat."(".http-msg.") |
| 38680 | 20 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 2e 22 29 20 22 | .Malformed.JSON.in.response.")." |
| 386a0 | 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 22 29 29 0a 20 20 20 20 20 20 20 28 74 20 28 6c 69 | json-read-error"))........(t.(li |
| 386c0 | 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 28 22 20 68 | st.nil.http-status.(concat."(".h |
| 386e0 | 74 74 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 | ttp-msg.").Could.not.parse.HTTP. |
| 38700 | 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 22 43 6f 75 | response.")................."Cou |
| 38720 | 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 29 29 0a | ld.not.parse.HTTP.response."))). |
| 38740 | 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d | ....(list.nil.(concat."(".http-m |
| 38760 | 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 73 70 6f | sg.").Could.not.parse.HTTP.respo |
| 38780 | 6e 73 65 2e 22 29 0a 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 | nse.")..........."Could.not.pars |
| 387a0 | 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 | e.HTTP.response.")))..(cl-defun. |
| 387c0 | 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 20 28 26 6b 65 79 20 28 62 61 63 | gptel--sanitize-model.(&key.(bac |
| 387e0 | 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 20 20 20 20 20 20 | kend.gptel-backend)............. |
| 38800 | 20 20 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 6f 64 65 6c | ..........................(model |
| 38820 | 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 20 20 20 | .gptel-model)................... |
| 38840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f 6f 73 68 20 74 29 29 0a | ....................(shoosh.t)). |
| 38860 | 20 20 22 43 68 65 63 6b 20 69 66 20 4d 4f 44 45 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 | .."Check.if.MODEL.is.available.i |
| 38880 | 6e 20 42 41 43 4b 45 4e 44 2c 20 61 64 6a 75 73 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 0a | n.BACKEND,.adjust.accordingly... |
| 388a0 | 49 66 20 53 48 4f 4f 53 48 20 69 73 20 74 72 75 65 2c 20 64 6f 6e 27 74 20 69 73 73 75 65 20 61 | If.SHOOSH.is.true,.don't.issue.a |
| 388c0 | 20 77 61 72 6e 69 6e 67 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 76 61 69 6c 61 62 6c 65 20 28 67 | .warning."...(let.((available.(g |
| 388e0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 29 29 0a 20 | ptel-backend-models.backend))).. |
| 38900 | 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 28 | ...(when.(stringp.model).......( |
| 38920 | 75 6e 6c 65 73 73 20 73 68 6f 6f 73 68 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 | unless.shoosh.........(display-w |
| 38940 | 61 72 6e 69 6e 67 0a 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 | arning..........'gptel.......... |
| 38960 | 28 66 6f 72 6d 61 74 20 22 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 65 78 70 65 63 74 73 20 61 | (format."`gptel-model'.expects.a |
| 38980 | 20 73 79 6d 62 6f 6c 2c 20 66 6f 75 6e 64 20 73 74 72 69 6e 67 20 5c 22 25 73 5c 22 0a 20 20 20 | .symbol,.found.string.\"%s\".... |
| 389a0 | 52 65 73 65 74 74 69 6e 67 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 74 6f 20 25 73 22 0a 20 | Resetting.`gptel-model'.to.%s".. |
| 389c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 29 0a 20 | ................model.model))).. |
| 389e0 | 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d 69 | .....(setq.gptel-model.(gptel--i |
| 38a00 | 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 67 | ntern.model).............model.g |
| 38a20 | 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 | ptel-model)).....(unless.(member |
| 38a40 | 20 6d 6f 64 65 6c 20 61 76 61 69 6c 61 62 6c 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 | .model.available).......(let.((f |
| 38a60 | 61 6c 6c 62 61 63 6b 20 28 63 61 72 20 61 76 61 69 6c 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 | allback.(car.available)))....... |
| 38a80 | 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 6f 73 68 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 | ..(unless.shoosh...........(disp |
| 38aa0 | 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 0a 20 20 | lay-warning............'gptel... |
| 38ac0 | 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 50 72 65 66 65 72 | .........(format.(concat."Prefer |
| 38ae0 | 72 65 64 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 5c 22 25 73 5c 22 20 6e 6f 74 22 0a 20 20 | red.`gptel-model'.\"%s\".not"... |
| 38b00 | 20 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 73 75 70 70 6f 72 | ........................."suppor |
| 38b20 | 74 65 64 20 69 6e 20 5c 22 25 73 5c 22 2c 20 75 73 69 6e 67 20 5c 22 25 73 5c 22 20 69 6e 73 74 | ted.in.\"%s\",.using.\"%s\".inst |
| 38b40 | 65 61 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 28 | ead")....................model.( |
| 38b60 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 20 66 61 6c 6c | gptel-backend-name.backend).fall |
| 38b80 | 62 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 | back))).........(setq-local.gpte |
| 38ba0 | 6c 2d 6d 6f 64 65 6c 20 66 61 6c 6c 62 61 63 6b 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 | l-model.fallback)))))..;;;###aut |
| 38bc0 | 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e | oload.(defun.gptel.(name.&option |
| 38be0 | 61 6c 20 5f 20 69 6e 69 74 69 61 6c 20 69 6e 74 65 72 61 63 74 69 76 65 70 29 0a 20 20 22 53 77 | al._.initial.interactivep)..."Sw |
| 38c00 | 69 74 63 68 20 74 6f 20 6f 72 20 73 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 | itch.to.or.start.a.chat.session. |
| 38c20 | 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 41 73 6b 20 66 6f 72 20 41 50 49 2d 4b 45 59 20 69 66 20 60 | with.NAME...Ask.for.API-KEY.if.` |
| 38c40 | 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 69 73 20 75 6e 73 65 74 2e 0a 0a 49 66 20 72 65 67 | gptel-api-key'.is.unset...If.reg |
| 38c60 | 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 75 73 65 20 69 74 20 61 73 20 74 68 65 20 49 4e 49 | ion.is.active,.use.it.as.the.INI |
| 38c80 | 54 49 41 4c 20 70 72 6f 6d 70 74 2e 20 20 52 65 74 75 72 6e 73 20 74 68 65 0a 62 75 66 66 65 72 | TIAL.prompt...Returns.the.buffer |
| 38ca0 | 20 63 72 65 61 74 65 64 20 6f 72 20 73 77 69 74 63 68 65 64 20 74 6f 2e 0a 0a 49 4e 54 45 52 41 | .created.or.switched.to...INTERA |
| 38cc0 | 43 54 49 56 45 50 20 69 73 20 74 20 77 68 65 6e 20 67 70 74 65 6c 20 69 73 20 63 61 6c 6c 65 64 | CTIVEP.is.t.when.gptel.is.called |
| 38ce0 | 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a | .interactively."...(interactive. |
| 38d00 | 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e 64 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 | ...(let*.((backend.(default-valu |
| 38d20 | 65 20 27 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 28 62 61 | e.'gptel-backend))...........(ba |
| 38d40 | 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2a | ckend-name............(format."* |
| 38d60 | 25 73 2a 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 | %s*".(gptel-backend-name.backend |
| 38d80 | 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 | ))))......(list.(read-buffer.... |
| 38da0 | 20 20 20 20 20 20 20 20 20 22 43 72 65 61 74 65 20 6f 72 20 63 68 6f 6f 73 65 20 67 70 74 65 6c | ........."Create.or.choose.gptel |
| 38dc0 | 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e | .buffer:.".............backend-n |
| 38de0 | 61 6d 65 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 20 | ame.nil......................... |
| 38e00 | 3b 20 44 45 46 41 55 4c 54 20 61 6e 64 20 52 45 51 55 49 52 45 2d 4d 41 54 43 48 0a 20 20 20 20 | ;.DEFAULT.and.REQUIRE-MATCH..... |
| 38e20 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 29 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(lambda.(b)............. |
| 38e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 50 52 45 44 49 43 41 54 | ......................;.PREDICAT |
| 38e60 | 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 62 75 66 66 65 72 20 | E...............;;.NOTE:.buffer. |
| 38e80 | 63 68 65 63 6b 20 69 73 20 72 65 71 75 69 72 65 64 20 28 23 34 35 30 29 0a 20 20 20 20 20 20 20 | check.is.required.(#450)........ |
| 38ea0 | 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 | .......(and-let*.((buf.(get-buff |
| 38ec0 | 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 62 29 20 62 29 29 29 29 0a 20 20 20 20 20 20 | er.(or.(car-safe.b).b))))....... |
| 38ee0 | 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 |
| 38f00 | 70 74 65 6c 2d 6d 6f 64 65 20 62 75 66 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ptel-mode.buf))))............(co |
| 38f20 | 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 20 | ndition-case.nil................ |
| 38f40 | 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (gptel--get-api-key............. |
| 38f60 | 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6b 65 79 20 62 61 63 6b 65 6e 64 29 29 | ....(gptel-backend-key.backend)) |
| 38f80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 | ..............((error.user-error |
| 38fa0 | 29 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 2d 61 70 69 2d | )...............(setq.gptel-api- |
| 38fc0 | 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 | key.....................(read-pa |
| 38fe0 | 73 73 77 64 0a 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 | sswd......................(forma |
| 39000 | 74 20 22 25 73 20 41 50 49 20 6b 65 79 3a 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 | t."%s.API.key:.".backend-name))) |
| 39020 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 | ))............(and.(use-region-p |
| 39040 | 29 0a 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 |
| 39060 | 69 6e 67 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 | ing.(region-beginning).......... |
| 39080 | 20 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 | .........................(region |
| 390a0 | 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 77 69 74 68 2d | -end)))............t)))...(with- |
| 390c0 | 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 |
| 390e0 | 65 20 6e 61 6d 65 29 0a 20 20 20 20 28 63 6f 6e 64 20 3b 53 65 74 20 6d 61 6a 6f 72 20 6d 6f 64 | e.name).....(cond.;Set.major.mod |
| 39100 | 65 0a 20 20 20 20 20 28 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 64 65 66 | e......((eq.major-mode.gptel-def |
| 39120 | 61 75 6c 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 28 28 65 71 20 67 70 74 65 6c 2d 64 65 66 61 | ault-mode))......((eq.gptel-defa |
| 39140 | 75 6c 74 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 65 78 74 | ult-mode.'text-mode).......(text |
| 39160 | 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 | -mode).......(visual-line-mode.1 |
| 39180 | 29 29 0a 20 20 20 20 20 28 74 20 28 66 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 64 65 66 61 75 6c | ))......(t.(funcall.gptel-defaul |
| 391a0 | 74 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d | t-mode))).....(gptel--sanitize-m |
| 391c0 | 6f 64 65 6c 20 3a 62 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 | odel.:backend.(default-value.'gp |
| 391e0 | 74 65 6c 2d 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 20 20 | tel-backend).................... |
| 39200 | 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 | ........:model.(default-value.'g |
| 39220 | 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 20 20 20 20 20 | ptel-model)..................... |
| 39240 | 20 20 20 20 20 20 20 3a 73 68 6f 6f 73 68 20 6e 69 6c 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 | .......:shoosh.nil).....(unless. |
| 39260 | 67 70 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 28 | gptel-mode.(gptel-mode.1)).....( |
| 39280 | 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 6b 69 70 | goto-char.(point-max)).....(skip |
| 392a0 | 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 5c 74 5c 72 5c 6e 22 29 0a 20 20 20 20 28 69 | -chars-backward."\t\r\n").....(i |
| 392c0 | 66 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 67 70 | f.(bobp).(insert.(or.initial.(gp |
| 392e0 | 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 0a 20 20 20 | tel-prompt-prefix-string)))).... |
| 39300 | 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 65 70 0a 20 20 20 20 20 20 28 64 69 73 70 6c | .(when.interactivep.......(displ |
| 39320 | 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 20 67 70 74 65 6c | ay-buffer.(current-buffer).gptel |
| 39340 | 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6d | -display-buffer-action).......(m |
| 39360 | 65 73 73 61 67 65 20 22 53 65 6e 64 20 79 6f 75 72 20 71 75 65 72 79 20 77 69 74 68 20 25 73 21 | essage."Send.your.query.with.%s! |
| 39380 | 22 0a 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 6f 6d | "................(substitute-com |
| 393a0 | 6d 61 6e 64 2d 6b 65 79 73 20 22 5c 5c 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 29 29 29 0a 20 20 | mand-keys."\\[gptel-send]")))... |
| 393c0 | 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 61 73 | ..(current-buffer)))....;;;.Reas |
| 393e0 | 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 20 55 49 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | oning.content.UI.(declare-functi |
| 39400 | 6f 6e 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 65 73 | on.gptel-curl--stream-insert-res |
| 39420 | 70 6f 6e 73 65 20 22 67 70 74 65 6c 2d 63 75 72 6c 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | ponse."gptel-curl")..(defun.gpte |
| 39440 | 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 28 74 65 78 | l--display-reasoning-stream.(tex |
| 39460 | 74 20 69 6e 66 6f 29 0a 20 20 22 53 68 6f 77 20 72 65 61 73 6f 6e 69 6e 67 20 54 45 58 54 20 69 | t.info)..."Show.reasoning.TEXT.i |
| 39480 | 6e 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 6c 6f 63 61 74 69 6f 6e 2e 0a 0a 49 4e 46 4f | n.an.appropriate.location...INFO |
| 394a0 | 20 69 73 20 74 68 65 20 72 65 71 75 65 73 74 20 49 4e 46 4f 2c 20 73 65 65 20 60 67 70 74 65 6c | .is.the.request.INFO,.see.`gptel |
| 394c0 | 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 2e 20 20 54 68 69 73 20 69 73 0a 66 6f | --url-get-response'...This.is.fo |
| 394e0 | 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 6f 6e 6c 79 2e 22 0a 20 20 28 | r.streaming.responses.only."...( |
| 39500 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 63 6c 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | when-let*.((include.(plist-get.i |
| 39520 | 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 28 69 | nfo.:include-reasoning))).....(i |
| 39540 | 66 20 28 73 74 72 69 6e 67 70 20 69 6e 63 6c 75 64 65 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c | f.(stringp.include).........(unl |
| 39560 | 65 73 73 20 28 65 71 20 74 65 78 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d | ess.(eq.text.t)...........(with- |
| 39580 | 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 |
| 395a0 | 65 20 69 6e 63 6c 75 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 | e.include).............(save-exc |
| 395c0 | 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 61 78 29 29 0a 20 | ursion.(goto-char.(point-max)).. |
| 395e0 | 20 20 20 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 65 | ...........................(inse |
| 39600 | 72 74 20 74 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e | rt.text)))).......(let*.((reason |
| 39620 | 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 72 65 61 73 | ing-marker.(plist-get.info.:reas |
| 39640 | 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 | oning-marker))..............(tra |
| 39660 | 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 20 3a 74 72 | cking-marker.(plist-get.info.:tr |
| 39680 | 61 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 20 20 20 28 73 74 | acking-marker))..............(st |
| 396a0 | 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 73 69 | art-marker.(plist-get.info.:posi |
| 396c0 | 74 69 6f 6e 29 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 | tion))).........(with-current-bu |
| 396e0 | 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 | ffer.(marker-buffer.start-marker |
| 39700 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 74 65 78 74 20 74 29 20 20 20 20 20 | )...........(if.(eq.text.t)..... |
| 39720 | 20 20 20 20 20 20 20 20 20 20 3b 65 6e 64 20 6f 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 | ..........;end.of.stream........ |
| 39740 | 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 28 67 | .......(progn.................(g |
| 39760 | 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 6e 73 | ptel-curl--stream-insert-respons |
| 39780 | 65 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 69 66 20 28 | e..................(concat.(if.( |
| 397a0 | 64 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 | derived-mode-p.'org-mode)....... |
| 397c0 | 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 23 2b 65 6e 64 5f | ......................."\n#+end_ |
| 397e0 | 72 65 61 73 6f 6e 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | reasoning"...................... |
| 39800 | 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 72 65 6d 6f 76 65 20 | ......;;.TODO(reasoning).remove. |
| 39820 | 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 65 61 64 0a 20 20 20 | properties.and.strip.instead.... |
| 39840 | 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 74 | ........................(propert |
| 39860 | 69 7a 65 20 22 5c 6e 60 60 60 22 20 27 67 70 74 65 6c 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 | ize."\n```".'gptel.'ignore)).... |
| 39880 | 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 72 65 73 70 | ......................gptel-resp |
| 398a0 | 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse-separator)................. |
| 398c0 | 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 28 77 68 65 6e 20 28 | .info.t).................(when.( |
| 398e0 | 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 | derived-mode-p.'org-mode).;fold. |
| 39900 | 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d | block...................(ignore- |
| 39920 | 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 28 73 61 76 65 | errors.....................(save |
| 39940 | 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 20 20 20 20 | -excursion...................... |
| 39960 | 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 20 20 20 | .(goto-char.tracking-marker).... |
| 39980 | 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 |
| 399a0 | 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 |
| 399c0 | 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 20 20 20 28 77 68 65 | er.t).......................(whe |
| 399e0 | 6e 20 28 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 | n.(looking-at."^#\\+end_reasonin |
| 39a00 | 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 20 20 20 28 6f 72 67 | g").........................(org |
| 39a20 | 2d 63 79 63 6c 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | -cycle)))))).............(unless |
| 39a40 | 20 28 61 6e 64 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d | .(and.reasoning-marker.tracking- |
| 39a60 | 6d 61 72 6b 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 | marker.......................... |
| 39a80 | 28 3d 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 | (=.reasoning-marker.tracking-mar |
| 39aa0 | 6b 65 72 29 29 0a 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 | ker))...............(gptel-curl- |
| 39ac0 | 2d 73 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 | -stream-insert-response......... |
| 39ae0 | 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 70 20 27 6f 72 67 2d | .......(if.(derived-mode-p.'org- |
| 39b00 | 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 22 23 2b 62 65 67 69 | mode)...................."#+begi |
| 39b20 | 6e 5f 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n_reasoning\n".................. |
| 39b40 | 3b 3b 20 54 4f 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 | ;;.TODO(reasoning).remove.proper |
| 39b60 | 74 69 65 73 20 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 | ties.and.strip.instead.......... |
| 39b80 | 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 61 73 6f 6e 69 | ........(propertize."```.reasoni |
| 39ba0 | 6e 67 5c 6e 22 20 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 | ng\n".'gptel.'ignore)).......... |
| 39bc0 | 20 20 20 20 20 20 69 6e 66 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | ......info.t)).............(if.( |
| 39be0 | 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 20 | eq.include.'ignore)............. |
| 39c00 | 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 20 28 61 64 | ....(progn...................(ad |
| 39c20 | 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 20 20 20 20 20 20 | d-text-properties............... |
| 39c40 | 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 27 28 67 70 74 65 6c 20 69 67 6e | .....0.(length.text).'(gptel.ign |
| 39c60 | 6f 72 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 20 74 65 78 74 29 0a | ore.front-sticky.(gptel)).text). |
| 39c80 | 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 75 72 6c 2d 2d 73 | ..................(gptel-curl--s |
| 39ca0 | 74 72 65 61 6d 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 6f 20 | tream-insert-response.text.info. |
| 39cc0 | 74 29 29 0a 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 | t))...............(gptel-curl--s |
| 39ce0 | 74 72 65 61 6d 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 6f 29 | tream-insert-response.text.info) |
| 39d00 | 29 29 0a 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 | ))...........(setq.tracking-mark |
| 39d20 | 65 72 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 | er.(plist-get.info.:tracking-mar |
| 39d40 | 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 | ker))...........(if.reasoning-ma |
| 39d60 | 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 | rker...............(move-marker. |
| 39d80 | 72 65 61 73 6f 6e 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 | reasoning-marker.tracking-marker |
| 39da0 | 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 69 6e 66 6f 20 3a 72 | ).............(plist-put.info.:r |
| 39dc0 | 65 61 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 20 20 | easoning-marker................. |
| 39de0 | 20 20 20 20 20 20 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 | .......(copy-marker.tracking-mar |
| 39e00 | 6b 65 72 20 6e 69 6c 29 29 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 54 6f 6f 6c 20 75 73 65 20 | ker.nil))))))))....;;;.Tool.use. |
| 39e20 | 55 49 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 2d 63 61 | UI.(defun.gptel--display-tool-ca |
| 39e40 | 6c 6c 73 20 28 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 75 | lls.(tool-calls.info.&optional.u |
| 39e60 | 73 65 2d 6d 69 6e 69 62 75 66 66 65 72 29 0a 20 20 22 48 61 6e 64 6c 65 20 74 6f 6f 6c 20 63 61 | se-minibuffer)..."Handle.tool.ca |
| 39e80 | 6c 6c 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 0a 54 4f 4f 4c 2d 43 41 4c 4c 53 20 73 68 6f | ll.confirmation...TOOL-CALLS.sho |
| 39ea0 | 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 70 65 63 69 | uld.be.a.list.of.tool.call.speci |
| 39ec0 | 66 69 63 61 74 69 6f 6e 73 20 6f 72 20 72 65 73 75 6c 74 73 2c 0a 73 74 72 75 63 74 75 72 65 64 | fications.or.results,.structured |
| 39ee0 | 20 61 73 3a 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 63 61 6c 6c 62 61 63 6b 29 20 2e 2e 2e | .as:...((tool.args.callback).... |
| 39f00 | 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 | )..for.tool.call.specifications. |
| 39f20 | 74 6f 20 62 65 20 63 6f 6e 66 69 72 6d 65 64 2e 20 20 49 4e 46 4f 20 63 6f 6e 74 61 69 6e 73 20 | to.be.confirmed...INFO.contains. |
| 39f40 | 74 68 65 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 54 6f 20 70 72 | the.state.of.the.request...To.pr |
| 39f60 | 6f 6d 70 74 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2c | ompt.for.tool.call.confirmation, |
| 39f80 | 20 75 73 65 0a 65 69 74 68 65 72 20 61 6e 20 6f 76 65 72 6c 61 79 20 69 6e 20 74 68 65 20 72 65 | .use.either.an.overlay.in.the.re |
| 39fa0 | 71 75 65 73 74 20 62 75 66 66 65 72 20 6f 72 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 28 | quest.buffer.or.the.minibuffer.( |
| 39fc0 | 69 66 0a 55 53 45 2d 4d 49 4e 49 42 55 46 46 45 52 20 69 73 20 6e 6f 6e 2d 6e 69 6c 29 2e 22 0a | if.USE-MINIBUFFER.is.non-nil).". |
| 39fe0 | 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 | ..(let*.((start-marker.(plist-ge |
| 3a000 | 74 20 69 6e 66 6f 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 | t.info.:position))..........(tra |
| 3a020 | 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 20 3a 74 72 | cking-marker.(plist-get.info.:tr |
| 3a040 | 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 70 65 6e 64 69 6e 67 20 | acking-marker))).....;;.pending. |
| 3a060 | 74 6f 6f 6c 20 63 61 6c 6c 73 20 6c 6f 6f 6b 20 6c 69 6b 65 20 28 28 74 6f 6f 6c 20 63 61 6c 6c | tool.calls.look.like.((tool.call |
| 3a080 | 62 61 63 6b 20 61 72 67 73 29 20 2e 2e 2e 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e | back.args)....).....(with-curren |
| 3a0a0 | 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 72 | t-buffer.(plist-get.info.:buffer |
| 3a0c0 | 29 0a 20 20 20 20 20 20 28 69 66 20 75 73 65 2d 6d 69 6e 69 62 75 66 66 65 72 20 20 20 20 20 20 | ).......(if.use-minibuffer...... |
| 3a0e0 | 20 20 20 20 20 20 3b 70 72 6f 6d 70 74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 | ......;prompt.for.confirmation.f |
| 3a100 | 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 | rom.the.minibuffer...........(le |
| 3a120 | 74 2a 20 28 28 6d 69 6e 69 62 75 66 66 65 72 2d 61 6c 6c 6f 77 2d 74 65 78 74 2d 70 72 6f 70 65 | t*.((minibuffer-allow-text-prope |
| 3a140 | 72 74 69 65 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 | rties.t)..................(backe |
| 3a160 | 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 6c 69 | nd-name.(gptel-backend-name.(pli |
| 3a180 | 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 20 20 | st-get.info.:backend)))......... |
| 3a1a0 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 66 6f 72 6d 61 74 20 22 25 73 20 77 61 6e | .........(prompt.(format."%s.wan |
| 3a1c0 | 74 73 20 74 6f 20 72 75 6e 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 | ts.to.run.".backend-name)))..... |
| 3a1e0 | 20 20 20 20 20 20 20 20 28 6d 61 70 2d 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 | ........(map-y-or-n-p........... |
| 3a200 | 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 2d 73 70 65 63 29 0a 20 20 20 20 | ...(lambda.(tool-call-spec)..... |
| 3a220 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 20 28 70 72 6f 70 65 | ...........(concat.prompt.(prope |
| 3a240 | 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 74 6f 6f 6c | rtize.(gptel-tool-name.(car.tool |
| 3a260 | 2d 63 61 6c 6c 2d 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -call-spec)).................... |
| 3a280 | 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 61 63 65 20 27 66 6f | .......................'face.'fo |
| 3a2a0 | 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 | nt-lock-keyword-face)........... |
| 3a2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3a 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .............":."))............. |
| 3a2e0 | 20 28 6c 61 6d 62 64 61 20 28 74 63 73 29 20 28 67 70 74 65 6c 2d 2d 61 63 63 65 70 74 2d 74 6f | .(lambda.(tcs).(gptel--accept-to |
| 3a300 | 6f 6c 2d 63 61 6c 6c 73 20 28 6c 69 73 74 20 74 63 73 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 | ol-calls.(list.tcs).nil))....... |
| 3a320 | 20 20 20 20 20 20 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 27 28 22 74 6f 6f 6c 20 63 61 6c 6c 22 20 | .......tool-calls.'("tool.call". |
| 3a340 | 22 74 6f 6f 6c 20 63 61 6c 6c 73 22 20 22 72 75 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | "tool.calls"."run")............. |
| 3a360 | 20 60 28 28 3f 69 20 2c 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 73 61 76 65 2d 77 69 6e 64 6f 77 | .`((?i.,(lambda.(_).(save-window |
| 3a380 | 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 20 20 20 20 | -excursion...................... |
| 3a3a0 | 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 6f 77 0a 20 20 | ........(with-selected-window... |
| 3a3c0 | 20 20 20 20 20 20 20 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 | ...............................( |
| 3a3e0 | 67 70 74 65 6c 2d 2d 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 | gptel--inspect-fsm.gptel--fsm-la |
| 3a400 | 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 20 20 20 20 20 | st)............................. |
| 3a420 | 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 20 20 | ...(goto-char.(point-min))...... |
| 3a440 | 20 20 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 68 65 6e 20 | ..........................(when. |
| 3a460 | 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 22 5e 3a 74 6f 6f 6c 2d 75 | (search-forward-regexp."^:tool-u |
| 3a480 | 73 65 22 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 20 | se".nil.t)...................... |
| 3a4a0 | 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 30 29 20 28 68 6c | ............(forward-line.0).(hl |
| 3a4c0 | 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -line-highlight))............... |
| 3a4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 6c 2d 6d 61 70 0a | .................(use-local-map. |
| 3a500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3a520 | 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 20 20 20 20 20 | (make-composed-keymap........... |
| 3a540 | 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 65 66 69 6e 65 2d 6b | .......................(define-k |
| 3a560 | 65 79 6d 61 70 20 22 71 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 | eymap."q".(lambda.().(interactiv |
| 3a580 | 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 20 | e).............................. |
| 3a5a0 | 20 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 71 75 69 74 2d 77 | .........................(quit-w |
| 3a5c0 | 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 20 20 20 20 20 20 20 | indow).......................... |
| 3a5e0 | 20 20 20 20 20 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 78 | .............................(ex |
| 3a600 | 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | it-recursive-edit)))............ |
| 3a620 | 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 72 65 6e 74 2d 6c | ......................(current-l |
| 3a640 | 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocal-map)))..................... |
| 3a660 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 20 6e 69 6c 29 | ...........(recursive-edit).nil) |
| 3a680 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 73 70 65 63 74 20 63 | ))...................."inspect.c |
| 3a6a0 | 61 6c 6c 28 73 29 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 72 6f 6d 70 74 20 66 6f | all(s)")))).........;;.Prompt.fo |
| 3a6c0 | 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 63 68 61 74 20 62 75 66 | r.confirmation.from.the.chat.buf |
| 3a6e0 | 66 65 72 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 | fer.........(let*.((backend-name |
| 3a700 | 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 | .(gptel-backend-name.(plist-get. |
| 3a720 | 69 6e 66 6f 20 3a 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 | info.:backend)))................ |
| 3a740 | 28 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (actions-string................. |
| 3a760 | 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 52 75 6e 20 74 6f 6f 6c 73 3a 20 | (concat.(propertize."Run.tools:. |
| 3a780 | 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 2d 66 61 63 65 29 0a | ".'face.'font-lock-string-face). |
| 3a7a0 | 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 74 | ........................(propert |
| 3a7c0 | 69 7a 65 20 22 43 2d 63 20 43 2d 63 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 | ize."C-c.C-c".'face.'help-key-bi |
| 3a7e0 | 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 28 | nding).........................( |
| 3a800 | 70 72 6f 70 65 72 74 69 7a 65 20 22 2c 20 43 61 6e 63 65 6c 20 72 65 71 75 65 73 74 3a 20 22 20 | propertize.",.Cancel.request:.". |
| 3a820 | 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)... |
| 3a840 | 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 |
| 3a860 | 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 |
| 3a880 | 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 28 70 72 | ing).........................(pr |
| 3a8a0 | 6f 70 65 72 74 69 7a 65 20 22 2c 20 49 6e 73 70 65 63 74 3a 20 22 20 27 66 61 63 65 20 27 66 6f | opertize.",.Inspect:.".'face.'fo |
| 3a8c0 | 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | nt-lock-string-face)............ |
| 3a8e0 | 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 43 2d 63 20 43 2d | .............(propertize."C-c.C- |
| 3a900 | 69 22 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 29 0a 20 20 | i".'face.'help-key-binding)))... |
| 3a920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 66 69 72 6d 2d 73 74 72 69 6e 67 73 0a 20 20 | .............(confirm-strings... |
| 3a940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 63 61 74 20 22 5c 6e 22 | ..............(list.(concat."\n" |
| 3a960 | 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .actions-string................. |
| 3a980 | 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 5c 6e 22 20 27 | ..............(propertize."\n".' |
| 3a9a0 | 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 | face.'(:inherit.font-lock-string |
| 3a9c0 | 2d 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 20 | -face........................... |
| 3a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3aa00 | 20 20 20 20 20 20 3a 75 6e 64 65 72 6c 69 6e 65 20 74 20 3a 65 78 74 65 6e 64 20 74 29 29 0a 20 | ......:underline.t.:extend.t)).. |
| 3aa20 | 20 20 20 20 20 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 | .............................(fo |
| 3aa40 | 72 6d 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 25 73 20 77 61 6e 74 73 20 74 6f 20 | rmat.(propertize."\n%s.wants.to. |
| 3aa60 | 72 75 6e 3a 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 | run:\n"......................... |
| 3aa80 | 20 20 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 61 63 65 20 | ..........................'face. |
| 3aaa0 | 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 20 20 20 20 20 20 | 'font-lock-string-face)......... |
| 3aac0 | 20 20 20 20 20 20 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 | ..............................ba |
| 3aae0 | 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | ckend-name))))................;; |
| 3ab00 | 20 46 49 58 4d 45 28 74 6f 6f 6c 29 20 75 73 65 20 61 20 77 72 61 70 70 65 72 20 69 6e 73 74 65 | .FIXME(tool).use.a.wrapper.inste |
| 3ab20 | 61 64 20 6f 66 20 61 20 6d 61 6e 75 61 6c 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 73 65 61 | ad.of.a.manual.text-property.sea |
| 3ab40 | 72 63 68 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 69 73 20 66 | rch,................;;.this.is.f |
| 3ab60 | 72 61 67 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 2d 73 74 61 72 74 20 | ragile................(ov-start. |
| 3ab80 | 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 20 | (save-excursion................. |
| 3aba0 | 20 20 20 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 72 6b | ...........(goto-char.start-mark |
| 3abc0 | 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 28 | er)............................( |
| 3abe0 | 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 27 67 | text-property-search-backward.'g |
| 3ac00 | 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 20 20 20 20 20 | ptel.'response)................. |
| 3ac20 | 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 20 20 20 | ...........(point)))............ |
| 3ac40 | 20 20 20 20 28 6f 76 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 67 65 74 2d 63 68 61 72 2d | ....(ov.(or.(cdr-safe.(get-char- |
| 3ac60 | 70 72 6f 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 | property-and-overlay............ |
| 3ac80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 2d 6d 61 72 | .......................start-mar |
| 3aca0 | 6b 65 72 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ker.'gptel-tool))............... |
| 3acc0 | 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 6f 76 2d 73 74 61 72 74 20 | .........(make-overlay.ov-start. |
| 3ace0 | 28 6f 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 | (or.tracking-marker.start-marker |
| 3ad00 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 63 75 72 73 6f 72 | )))))...........;;.If.the.cursor |
| 3ad20 | 20 69 73 20 61 74 20 74 68 65 20 6f 76 65 72 6c 61 79 2d 65 6e 64 2c 20 69 74 20 65 6e 64 73 20 | .is.at.the.overlay-end,.it.ends. |
| 3ad40 | 75 70 20 6f 75 74 73 69 64 65 2c 20 73 6f 20 6d 6f 76 65 20 69 74 20 62 61 63 6b 0a 20 20 20 20 | up.outside,.so.move.it.back..... |
| 3ad60 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 | ......(unless.tracking-marker... |
| 3ad80 | 20 20 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 73 74 61 72 74 | ..........(when.(=.(point).start |
| 3ada0 | 2d 6d 61 72 6b 65 72 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 72 | -marker).(ignore-errors.(backwar |
| 3adc0 | 64 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 64 6f 6c 69 | d-char))))...........(pcase-doli |
| 3ade0 | 73 74 20 28 60 28 2c 74 6f 6f 6c 2d 73 70 65 63 20 2c 61 72 67 2d 76 61 6c 75 65 73 20 5f 29 20 | st.(`(,tool-spec.,arg-values._). |
| 3ae00 | 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 | tool-calls).............(push.(g |
| 3ae20 | 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 67 70 74 65 6c 2d 74 6f | ptel--format-tool-call.(gptel-to |
| 3ae40 | 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 2d 73 70 65 63 29 20 61 72 67 2d 76 61 6c 75 65 73 29 0a 20 | ol-name.tool-spec).arg-values).. |
| 3ae60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 69 72 6d 2d 73 74 72 69 6e 67 73 | .................confirm-strings |
| 3ae80 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 | ))...........(push.(concat.(prop |
| 3aea0 | 65 72 74 69 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 | ertize."\n".'face.'(:inherit.fon |
| 3aec0 | 74 2d 6c 6f 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 | t-lock-string-face.............. |
| 3aee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3af00 | 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 65 6e | .............:underline.t.:exten |
| 3af20 | 64 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 69 72 6d 2d 73 | d.t))).................confirm-s |
| 3af40 | 74 72 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 63 6f 6e 66 69 72 6d | trings)...........;;.Add.confirm |
| 3af60 | 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 | ation.prompt.to.the.overlay..... |
| 3af80 | 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 61 66 74 65 72 2d 73 74 72 | ......(overlay-put.ov.'after-str |
| 3afa0 | 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 28 61 70 70 6c | ing........................(appl |
| 3afc0 | 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 66 69 72 6d 2d 73 74 72 | y.#'concat.(nreverse.confirm-str |
| 3afe0 | 69 6e 67 73 29 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 | ings)))...........(overlay-put.o |
| 3b000 | 76 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 0a 20 20 20 20 20 20 | v.'mouse-face.'highlight)....... |
| 3b020 | 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 74 6f 6f 6c 20 | ....(overlay-put.ov.'gptel-tool. |
| 3b040 | 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 | tool-calls)...........(overlay-p |
| 3b060 | 75 74 20 6f 76 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ut.ov.'help-echo................ |
| 3b080 | 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 54 6f 6f 6c 20 63 61 6c 6c 28 73 29 20 72 65 | ........(concat."Tool.call(s).re |
| 3b0a0 | 71 75 65 73 74 65 64 3a 20 22 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 | quested:.".actions-string))..... |
| 3b0c0 | 20 20 20 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 0a 20 20 | ......(overlay-put.ov.'keymap... |
| 3b0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 | .....................(define-key |
| 3b100 | 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 22 3c 6d | map.........................."<m |
| 3b120 | 6f 75 73 65 2d 31 3e 22 20 23 27 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 2d 74 6f 6f 6c 2d | ouse-1>".#'gptel--dispatch-tool- |
| 3b140 | 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 20 20 20 20 22 | calls.........................." |
| 3b160 | 43 2d 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 2d 61 63 63 65 70 74 2d 74 6f 6f 6c 2d 63 61 | C-c.C-c".#'gptel--accept-tool-ca |
| 3b180 | 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 20 20 20 20 22 43 2d | lls.........................."C- |
| 3b1a0 | 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f 6c 2d 63 61 6c 6c | c.C-k".#'gptel--reject-tool-call |
| 3b1c0 | 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 22 43 2d 63 20 | s.........................."C-c. |
| 3b1e0 | 43 2d 69 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 28 6c | C-i"..........................(l |
| 3b200 | 61 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 | ambda.().(interactive).......... |
| 3b220 | 20 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 | ..................(with-selected |
| 3b240 | 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 20 20 20 20 | -window......................... |
| 3b260 | 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 6c | .......(gptel--inspect-fsm.gptel |
| 3b280 | 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 20 | --fsm-last)..................... |
| 3b2a0 | 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 6e 29 29 | .........(goto-char.(point-min)) |
| 3b2c0 | 0a 20 20 20 20 20 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 | ..............................(w |
| 3b2e0 | 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 22 5e 3a 74 6f | hen.(search-forward-regexp."^:to |
| 3b300 | 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 20 20 20 20 20 | ol-use".nil.t).................. |
| 3b320 | 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 30 29 0a 20 | ..............(forward-line.0).. |
| 3b340 | 20 20 20 20 20 20 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 68 | ..............................(h |
| 3b360 | 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 | l-line-highlight)))))))))))..(de |
| 3b380 | 66 75 6e 20 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 | fun.gptel--display-tool-results. |
| 3b3a0 | 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 0a 20 20 22 49 6e 73 65 72 74 20 54 4f | (tool-results.info)..."Insert.TO |
| 3b3c0 | 4f 4c 2d 52 45 53 55 4c 54 53 20 69 6e 74 6f 20 62 75 66 66 65 72 2e 0a 0a 54 4f 4f 4c 2d 52 45 | OL-RESULTS.into.buffer...TOOL-RE |
| 3b3e0 | 53 55 4c 54 53 20 69 73 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 2e | SULTS.is...((tool.args.result).. |
| 3b400 | 2e 2e 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 2e 20 20 49 4e 46 | ..)..for.tool.call.results...INF |
| 3b420 | 4f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 72 65 71 75 | O.contains.the.state.of.the.requ |
| 3b440 | 65 73 74 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 28 70 6c | est."...(let*.((start-marker.(pl |
| 3b460 | 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 20 20 20 | ist-get.info.:position))........ |
| 3b480 | 20 20 28 74 6f 6f 6c 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 | ..(tool-marker.(plist-get.info.: |
| 3b4a0 | 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 | tool-marker))..........(tracking |
| 3b4c0 | 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 63 6b 69 6e | -marker.(plist-get.info.:trackin |
| 3b4e0 | 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 74 6f 6f 6c 20 72 | g-marker))).....;;.Insert.tool.r |
| 3b500 | 65 73 75 6c 74 73 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 | esults.....(when.gptel-include-t |
| 3b520 | 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | ool-results.......(with-current- |
| 3b540 | 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 74 2d 6d 61 72 6b | buffer.(marker-buffer.start-mark |
| 3b560 | 65 72 29 0a 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 66 6f | er).........(cl-loop..........fo |
| 3b580 | 72 20 28 74 6f 6f 6c 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 69 6e 20 74 6f 6f 6c 2d 72 65 73 | r.(tool.args.result).in.tool-res |
| 3b5a0 | 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 77 69 74 68 20 69 6e 63 6c 75 64 65 2d 6e 61 6d 65 73 | ults..........with.include-names |
| 3b5c0 | 20 3d 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c | .=..........(mapcar.#'gptel-tool |
| 3b5e0 | 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 | -name..................(cl-remov |
| 3b600 | 65 2d 69 66 2d 6e 6f 74 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 69 6e 63 6c 75 64 65 20 28 70 | e-if-not.#'gptel-tool-include.(p |
| 3b620 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 | list-get.info.:tools)))......... |
| 3b640 | 20 69 66 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 | .if.(or.(eq.gptel-include-tool-r |
| 3b660 | 65 73 75 6c 74 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 | esults.t).................(membe |
| 3b680 | 72 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 20 69 6e 63 6c 75 64 65 | r.(gptel-tool-name.tool).include |
| 3b6a0 | 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 66 75 6e 63 61 6c 6c 0a 20 20 | -names))..........do.(funcall... |
| 3b6c0 | 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 63 61 6c 6c | ...........(plist-get.info.:call |
| 3b6e0 | 62 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 | back)..............(let*.((name. |
| 3b700 | 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 | (gptel-tool-name.tool))......... |
| 3b720 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 70 61 72 61 74 6f 72 20 28 69 66 20 28 61 6e 64 20 | ............(separator.(if.(and. |
| 3b740 | 74 6f 6f 6c 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 | tool-marker.tracking-marker..... |
| 3b760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3b780 | 20 20 20 20 28 3d 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b | ....(=.tracking-marker.tool-mark |
| 3b7a0 | 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 20 20 | er))............................ |
| 3b7c0 | 20 20 20 20 20 20 20 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 | ........"\n".................... |
| 3b7e0 | 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 70 | ..............gptel-response-sep |
| 3b800 | 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 20 20 20 20 28 74 6f | arator)).....................(to |
| 3b820 | 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 20 20 3b 3b 20 54 | ol-use......................;;.T |
| 3b840 | 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 73 69 6e 63 65 20 | ODO(tool).also.check.args.since. |
| 3b860 | 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 20 20 20 20 20 20 | there.may.be.more.than.......... |
| 3b880 | 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 73 75 6c 74 20 66 | ............;;.one.call/result.f |
| 3b8a0 | 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 20 20 20 20 20 20 | or.the.same.tool................ |
| 3b8c0 | 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 20 20 20 20 20 20 | ......(cl-find-if............... |
| 3b8e0 | 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 6c 20 28 70 6c 69 | ........(lambda.(tu).(equal.(pli |
| 3b900 | 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 20 20 20 20 20 20 | st-get.tu.:name).name))......... |
| 3b920 | 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 3a 74 | ..............(plist-get.info.:t |
| 3b940 | 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 20 20 20 20 20 28 | ool-use))).....................( |
| 3b960 | 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 29 29 0a 20 20 20 | id.(plist-get.tool-use.:id)).... |
| 3b980 | 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 63 61 6c 6c 20 28 | .................(display-call.( |
| 3b9a0 | 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 20 20 20 20 20 20 | format."(%s.%s)".name........... |
| 3b9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3b9e0 | 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 69 6e 67 20 61 72 | (string-trim.(prin1-to-string.ar |
| 3ba00 | 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 20 20 20 20 20 20 | gs)."(".")"))).................. |
| 3ba20 | 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 60 28 3a 6e 61 6d | ...(call.(prin1-to-string.`(:nam |
| 3ba40 | 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 20 20 20 20 20 20 | e.,name.:args.,args))).......... |
| 3ba60 | 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 20 28 74 72 75 6e | ...........(truncated-call.(trun |
| 3ba80 | 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............ |
| 3baa0 | 20 20 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 69 73 70 6c 61 | ..........................displa |
| 3bac0 | 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 20 20 20 20 20 20 | y-call.......................... |
| 3bae0 | 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 64 6f 77 2d 77 69 | ............(floor.(*.(window-wi |
| 3bb00 | 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 29 0a 20 20 20 20 | dth).0.6)).0.nil."....)")))..... |
| 3bb20 | 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 70 20 27 | ...........(if.(derived-mode-p.' |
| 3bb40 | 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 28 63 6f | org-mode)....................(co |
| 3bb60 | 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 65 70 61 72 61 74 | ncat.....................separat |
| 3bb80 | 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 62 65 67 69 6e 5f | or....................."#+begin_ |
| 3bba0 | 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 20 74 72 75 6e 63 | tool.".....................trunc |
| 3bbc0 | 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 20 20 20 20 28 70 | ated-call.....................(p |
| 3bbe0 | 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 20 20 28 | ropertize......................( |
| 3bc00 | 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 72 67 2d 65 73 63 | concat."\n".call."\n\n".(org-esc |
| 3bc20 | 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 29 0a 20 20 20 20 | ape-code-in-string.result))..... |
| 3bc40 | 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.. |
| 3bc60 | 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 20 22 5c 6e 23 2b | .,id))....................."\n#+ |
| 3bc80 | 65 6e 64 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 | end_tool")..................;;.T |
| 3bca0 | 4f 44 4f 28 74 6f 6f 6c 29 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 68 61 6e 64 6c 69 6e | ODO(tool).else.branch.is.handlin |
| 3bcc0 | 67 20 61 6c 6c 20 66 72 6f 6e 74 2d 65 6e 64 73 20 61 73 20 6d 61 72 6b 64 6f 77 6e 2e 0a 20 20 | g.all.front-ends.as.markdown.... |
| 3bce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 74 20 6c 65 61 73 74 20 65 73 63 61 70 | ...............;;.At.least.escap |
| 3bd00 | 65 20 6d 61 72 6b 64 6f 77 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | e.markdown...................(co |
| 3bd20 | 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 70 61 72 61 74 6f 72 | ncat...................separator |
| 3bd40 | 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 6c 29 | ...................;;.TODO(tool) |
| 3bd60 | 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 6e 73 | .remove.properties.and.strip.ins |
| 3bd80 | 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 20 20 | tead.of.ignoring................ |
| 3bda0 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 60 60 60 20 74 6f 6f 6c | ...(propertize.(format."```.tool |
| 3bdc0 | 20 25 73 22 20 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c 29 20 27 67 70 74 65 6c 20 27 69 67 6e | .%s".truncated-call).'gptel.'ign |
| 3bde0 | 6f 72 65 29 0a 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 | ore)...................(properti |
| 3be00 | 7a 65 0a 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 4f 28 74 6f | ze....................;;.TODO(to |
| 3be20 | 6f 6c 29 20 65 73 63 61 70 65 20 6d 61 72 6b 64 6f 77 6e 20 69 6e 20 72 65 73 75 6c 74 0a 20 20 | ol).escape.markdown.in.result... |
| 3be40 | 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 5c 6e 22 20 63 61 | .................(concat."\n".ca |
| 3be60 | 6c 6c 20 22 5c 6e 5c 6e 22 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll."\n\n".result)............... |
| 3be80 | 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f 6c 20 2e 20 2c 69 64 29 29 0a 20 20 20 20 20 | .....'gptel.`(tool...,id))...... |
| 3bea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 72 65 6d 6f 76 | .............;;.TODO(tool).remov |
| 3bec0 | 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 65 61 64 20 6f | e.properties.and.strip.instead.o |
| 3bee0 | 66 20 69 67 6e 6f 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | f.ignoring...................(pr |
| 3bf00 | 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 72 65 29 | opertize."\n```".'gptel.'ignore) |
| 3bf20 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 | )))..............info........... |
| 3bf40 | 20 20 20 27 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 | ...'raw)..........;;.tool-result |
| 3bf60 | 20 69 6e 73 65 72 74 69 6f 6e 20 68 61 73 20 75 70 64 61 74 65 64 20 74 68 65 20 74 72 61 63 6b | .insertion.has.updated.the.track |
| 3bf80 | 69 6e 67 20 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 | ing.marker..........(unless.trac |
| 3bfa0 | 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 | king-marker............(setq.tra |
| 3bfc0 | 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 20 3a 74 72 | cking-marker.(plist-get.info.:tr |
| 3bfe0 | 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 74 6f | acking-marker)))..........(if.to |
| 3c000 | 6f 6c 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d | ol-marker................(move-m |
| 3c020 | 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 | arker.tool-marker.tracking-marke |
| 3c040 | 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 6f 6c 2d 6d 61 72 6b 65 | r)..............(setq.tool-marke |
| 3c060 | 72 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 6e | r.(copy-marker.tracking-marker.n |
| 3c080 | 69 6c 29 29 0a 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 | il))..............(plist-put.inf |
| 3c0a0 | 6f 20 3a 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 | o.:tool-marker.tool-marker)).... |
| 3c0c0 | 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 2d 70 20 27 6f 72 67 | ......(when.(derived-mode-p.'org |
| 3c0e0 | 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 64 72 61 77 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 | -mode).;fold.drawer............( |
| 3c100 | 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 | ignore-errors..............(save |
| 3c120 | 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 28 67 6f 74 6f 2d | -excursion................(goto- |
| 3c140 | 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 20 20 20 | char.tracking-marker)........... |
| 3c160 | 20 20 20 20 20 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 | .....(beginning-of-line)........ |
| 3c180 | 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 20 22 5e 23 5c 5c 2b | ........(when.(looking-at."^#\\+ |
| 3c1a0 | 65 6e 64 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 | end_tool")..................(org |
| 3c1c0 | 2d 63 79 63 6c 65 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | -cycle))))))))))..(defun.gptel-- |
| 3c1e0 | 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 6e 61 6d 65 20 61 72 67 2d 76 61 6c 75 65 | format-tool-call.(name.arg-value |
| 3c200 | 73 29 0a 20 20 22 46 6f 72 6d 61 74 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 66 6f 72 20 64 69 73 | s)..."Format.a.tool.call.for.dis |
| 3c220 | 70 6c 61 79 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 4e 41 4d 45 20 61 6e 64 20 41 52 | play.in.the.buffer...NAME.and.AR |
| 3c240 | 47 2d 56 41 4c 55 45 53 20 61 72 65 20 74 68 65 20 6e 61 6d 65 20 61 6e 64 20 61 72 67 75 6d 65 | G-VALUES.are.the.name.and.argume |
| 3c260 | 6e 74 73 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 28 25 | nts.for.the.call."...(format."(% |
| 3c280 | 73 20 25 73 29 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6e | s.%s)\n"...........(propertize.n |
| 3c2a0 | 61 6d 65 20 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 | ame.'face.'font-lock-keyword-fac |
| 3c2c0 | 65 29 0a 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 | e)...........(propertize........ |
| 3c2e0 | 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 61 72 67 29 0a 20 20 20 | ....(mapconcat.(lambda.(arg).... |
| 3c300 | 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 20 28 28 73 74 72 | .....................(cond.((str |
| 3c320 | 69 6e 67 70 20 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 | ingp.arg)....................... |
| 3c340 | 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 | .........(prin1-to-string....... |
| 3c360 | 20 20 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 70 6c 61 | ..........................(repla |
| 3c380 | 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 20 20 20 20 20 20 | ce-regexp-in-string............. |
| 3c3a0 | 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 22 e2 ae 90 22 20 | ....................."\n"."...". |
| 3c3c0 | 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....... |
| 3c3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3c400 | 20 20 20 20 20 61 72 67 20 28 66 6c 6f 6f 72 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 32 | .....arg.(floor.(window-width).2 |
| 3c420 | 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 | )............................... |
| 3c440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 29 0a 20 20 20 20 20 | .............nil.nil.t))))...... |
| 3c460 | 20 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 20 28 70 72 69 | .........................(t.(pri |
| 3c480 | 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | n1-to-string.arg))))............ |
| 3c4a0 | 20 20 20 20 20 20 20 20 20 20 20 61 72 67 2d 76 61 6c 75 65 73 20 22 20 22 29 0a 20 20 20 20 20 | ...........arg-values.".")...... |
| 3c4c0 | 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d | ......'face.'font-lock-constant- |
| 3c4e0 | 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 63 63 65 70 74 2d 74 6f | face)))..(defun.gptel--accept-to |
| 3c500 | 6f 6c 2d 63 61 6c 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 73 70 6f 6e 73 65 20 6f 76 29 | ol-calls.(&optional.response.ov) |
| 3c520 | 0a 20 20 28 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 | ...(interactive.(pcase-let.((`(, |
| 3c540 | 72 65 73 70 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 | resp...,o).(get-char-property-an |
| 3c560 | 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 20 20 20 20 | d-overlay....................... |
| 3c580 | 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 67 70 | .....................(point).'gp |
| 3c5a0 | 74 65 6c 2d 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 | tel-tool)))..................(li |
| 3c5c0 | 73 74 20 72 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 | st.resp.o)))...(gptel--update-st |
| 3c5e0 | 61 74 75 73 20 22 20 43 61 6c 6c 69 6e 67 20 74 6f 6f 6c 2e 2e 2e 22 20 27 6d 6f 64 65 2d 6c 69 | atus.".Calling.tool...".'mode-li |
| 3c600 | 6e 65 2d 65 6d 70 68 61 73 69 73 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 6e 74 69 6e 75 | ne-emphasis)...(message."Continu |
| 3c620 | 69 6e 67 20 71 75 65 72 79 2e 2e 2e 22 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 74 | ing.query...")...(cl-loop.for.(t |
| 3c640 | 6f 6f 6c 2d 73 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 | ool-spec.arg-values.process-tool |
| 3c660 | 2d 72 65 73 75 6c 74 29 20 69 6e 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 | -result).in.response............ |
| 3c680 | 64 6f 0a 20 20 20 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 73 | do............(if.(gptel-tool-as |
| 3c6a0 | 79 6e 63 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 28 61 | ync.tool-spec)................(a |
| 3c6c0 | 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 6f 6c 2d 73 | pply.(gptel-tool-function.tool-s |
| 3c6e0 | 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 20 70 72 6f 63 65 | pec).......................proce |
| 3c700 | 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 20 20 20 20 | ss-tool-result.arg-values)...... |
| 3c720 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 | ........(let.((result........... |
| 3c740 | 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 65 72 72 64 61 74 | ..........(condition-case.errdat |
| 3c760 | 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 28 61 70 70 6c 79 | a.........................(apply |
| 3c780 | 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 63 29 | .(gptel-tool-function.tool-spec) |
| 3c7a0 | 20 61 72 67 2d 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 20 | .arg-values).................... |
| 3c7c0 | 20 20 20 28 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 | ...(error.(mapconcat.#'gptel--to |
| 3c7e0 | 2d 73 74 72 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 | -string.errdata.".")))))........ |
| 3c800 | 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 72 65 | ........(funcall.process-tool-re |
| 3c820 | 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 70 | sult.result))))...(and.(overlayp |
| 3c840 | 20 6f 76 29 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 0a 0a 28 64 65 66 | .ov).(delete-overlay.ov)))..(def |
| 3c860 | 75 6e 20 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 26 6f 70 | un.gptel--reject-tool-calls.(&op |
| 3c880 | 74 69 6f 6e 61 6c 20 5f 72 65 73 70 6f 6e 73 65 20 6f 76 29 0a 20 20 28 69 6e 74 65 72 61 63 74 | tional._response.ov)...(interact |
| 3c8a0 | 69 76 65 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 20 2e 20 2c 6f 29 20 28 | ive.(pcase-let.((`(,resp...,o).( |
| 3c8c0 | 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... |
| 3c8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3c900 | 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 29 0a | .........(point).'gptel-tool))). |
| 3c920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 65 73 70 20 6f 29 29 29 | .................(list.resp.o))) |
| 3c940 | 0a 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 54 6f 6f 6c 73 | ...(gptel--update-status.".Tools |
| 3c960 | 20 63 61 6e 63 65 6c 6c 65 64 22 20 27 65 72 72 6f 72 29 0a 20 20 28 6d 65 73 73 61 67 65 20 28 | .cancelled".'error)...(message.( |
| 3c980 | 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 20 20 20 20 20 20 | substitute-command-keys......... |
| 3c9a0 | 20 20 20 20 22 54 6f 6f 6c 20 63 61 6c 6c 73 20 63 61 6e 63 65 6c 65 64 2e 20 20 5c 5c 5b 67 70 | ...."Tool.calls.canceled...\\[gp |
| 3c9c0 | 74 65 6c 2d 6d 65 6e 75 5d 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 6d 21 22 29 29 0a 20 | tel-menu].to.continue.them!")).. |
| 3c9e0 | 20 28 61 6e 64 20 28 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 | .(and.(overlayp.ov).(delete-over |
| 3ca00 | 6c 61 79 20 6f 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 | lay.ov)))..(defun.gptel--dispatc |
| 3ca20 | 68 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 63 68 6f 69 63 65 29 0a 20 20 28 69 6e 74 65 72 61 63 | h-tool-calls.(choice)...(interac |
| 3ca40 | 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 6c 65 74 20 28 28 63 68 6f 69 63 65 73 | tive....(list.....(let.((choices |
| 3ca60 | 20 27 28 28 3f 79 20 22 79 65 73 22 29 20 28 3f 6e 20 22 64 6f 20 6e 6f 74 68 69 6e 67 22 29 0a | .'((?y."yes").(?n."do.nothing"). |
| 3ca80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 6b 20 22 63 61 6e 63 65 6c | .....................(?k."cancel |
| 3caa0 | 20 72 65 71 75 65 73 74 22 29 20 28 3f 69 20 22 69 6e 73 70 65 63 74 20 63 61 6c 6c 28 73 29 22 | .request").(?i."inspect.call(s)" |
| 3cac0 | 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 2d 63 68 6f 69 63 65 | )))).......(read-multiple-choice |
| 3cae0 | 20 22 52 75 6e 20 74 6f 6f 6c 20 63 61 6c 6c 73 3f 20 22 20 63 68 6f 69 63 65 73 29 29 29 29 0a | ."Run.tool.calls?.".choices)))). |
| 3cb00 | 20 20 28 70 63 61 73 65 20 28 63 61 72 20 63 68 6f 69 63 65 29 0a 20 20 20 20 28 3f 79 20 28 63 | ..(pcase.(car.choice).....(?y.(c |
| 3cb20 | 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 61 63 63 65 70 | all-interactively.#'gptel--accep |
| 3cb40 | 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 6b 20 28 63 61 6c 6c 2d 69 6e 74 | t-tool-calls)).....(?k.(call-int |
| 3cb60 | 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f 6c 2d | eractively.#'gptel--reject-tool- |
| 3cb80 | 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 69 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d | calls)).....(?i.(gptel--inspect- |
| 3cba0 | 66 73 6d 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 | fsm.gptel--fsm-last))))....;;;.R |
| 3cbc0 | 65 73 70 6f 6e 73 65 20 74 77 65 61 6b 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 0a 0a 28 64 65 66 75 | esponse.tweaking.commands..(defu |
| 3cbe0 | 6e 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 | n.gptel--attach-response-history |
| 3cc00 | 20 28 68 69 73 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 41 74 74 61 | .(history.&optional.buf)..."Atta |
| 3cc20 | 63 68 20 48 49 53 54 4f 52 59 20 74 6f 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 73 | ch.HISTORY.to.the.next.gptel.res |
| 3cc40 | 70 6f 6e 73 65 20 69 6e 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 48 49 53 54 4f 52 59 20 69 73 | ponse.in.buffer.BUF...HISTORY.is |
| 3cc60 | 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 74 79 70 69 63 61 6c 6c 79 20 63 6f 6e | .a.list.of.strings.typically.con |
| 3cc80 | 74 61 69 6e 69 6e 67 20 74 65 78 74 20 72 65 70 6c 61 63 65 64 0a 62 79 20 67 70 74 65 6c 2e 20 | taining.text.replaced.by.gptel.. |
| 3cca0 | 20 42 55 46 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 66 20 6e 6f | .BUF.is.the.current.buffer.if.no |
| 3ccc0 | 74 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 6d 61 | t.specified...This.is.used.to.ma |
| 3cce0 | 69 6e 74 61 69 6e 20 76 61 72 69 61 6e 74 73 20 6f 66 20 70 72 6f 6d 70 74 73 20 6f 72 20 72 65 | intain.variants.of.prompts.or.re |
| 3cd00 | 73 70 6f 6e 73 65 73 20 74 6f 20 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 66 20 72 65 71 75 69 | sponses.to.diff.against.if.requi |
| 3cd20 | 72 65 64 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 6f 72 | red."...(with-current-buffer.(or |
| 3cd40 | 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 72 | .buf.(current-buffer)).....(letr |
| 3cd60 | 65 63 20 28 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 | ec.((gptel--attach-after........ |
| 3cd80 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .......(lambda.(b.e)............ |
| 3cda0 | 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(when.(and.b.e)............ |
| 3cdc0 | 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 20 | .......(add-text-properties..... |
| 3cde0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 20 65 20 60 28 67 70 74 65 6c 2d 68 69 73 74 6f | ...............b.e.`(gptel-histo |
| 3ce00 | 72 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 2c 28 61 70 | ry..........................,(ap |
| 3ce20 | 70 65 6e 64 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 | pend.(ensure-list.history)...... |
| 3ce40 | 20 20 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 63 68 61 72 2d | ......................(get-char- |
| 3ce60 | 70 72 6f 70 65 72 74 79 20 28 31 2d 20 65 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 | property.(1-.e).'gptel-history)) |
| 3ce80 | 0a 20 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 6e 74 2d | ..........................front- |
| 3cea0 | 73 74 69 63 6b 79 20 28 67 70 74 65 6c 20 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 29 29 0a | sticky.(gptel.gptel-history)))). |
| 3cec0 | 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 67 70 | ................(remove-hook.'gp |
| 3cee0 | 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 20 20 | tel-post-response-functions..... |
| 3cf00 | 20 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-- |
| 3cf20 | 61 74 74 61 63 68 2d 61 66 74 65 72 20 27 6c 6f 63 61 6c 29 29 29 29 0a 20 20 20 20 20 20 28 61 | attach-after.'local)))).......(a |
| 3cf40 | 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 |
| 3cf60 | 63 74 69 6f 6e 73 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 20 | ctions.gptel--attach-after...... |
| 3cf80 | 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6c 6f 63 61 6c 29 29 29 29 0a 0a 28 64 65 66 75 | ...........nil.'local))))..(defu |
| 3cfa0 | 6e 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 62 6f | n.gptel--ediff.(&optional.arg.bo |
| 3cfc0 | 75 6e 64 73 2d 66 75 6e 63 29 0a 20 20 22 45 64 69 66 66 20 72 65 73 70 6f 6e 73 65 20 61 74 20 | unds-func)..."Ediff.response.at. |
| 3cfe0 | 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 20 70 72 65 76 69 6f 75 73 20 67 70 74 65 6c 20 72 65 73 | point.against.previous.gptel.res |
| 3d000 | 70 6f 6e 73 65 73 2e 0a 0a 49 66 20 70 72 65 66 69 78 20 41 52 47 20 69 73 20 6e 6f 6e 2d 6e 69 | ponses...If.prefix.ARG.is.non-ni |
| 3d020 | 6c 2c 20 73 65 6c 65 63 74 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 20 | l,.select.the.previous.response. |
| 3d040 | 74 6f 20 65 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 0a | to.ediff.against.interactively.. |
| 3d060 | 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 42 4f 55 4e 44 53 2d 46 55 4e 43 20 74 | .If.specified,.use.BOUNDS-FUNC.t |
| 3d080 | 6f 20 63 6f 6d 70 75 74 65 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 0a 72 65 73 70 | o.compute.the.bounds.of.the.resp |
| 3d0a0 | 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 64 | onse.at.point...This.can.be.used |
| 3d0c0 | 20 74 6f 20 69 6e 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 0a 63 6f 6e 74 65 78 74 20 66 | .to.include.additional.context.f |
| 3d0e0 | 6f 72 20 74 68 65 20 65 64 69 66 66 20 73 65 73 73 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 | or.the.ediff.session."...(intera |
| 3d100 | 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 77 68 65 6e 20 28 67 70 74 65 6c 2d 2d 61 74 2d 72 65 | ctive."P")...(when.(gptel--at-re |
| 3d120 | 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 | sponse-history-p).....(pcase-let |
| 3d140 | 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 20 | *.((`(,beg...,end).(funcall.(or. |
| 3d160 | 62 6f 75 6e 64 73 2d 66 75 6e 63 20 23 27 67 70 74 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 | bounds-func.#'gptel--get-respons |
| 3d180 | 65 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | e-bounds)))..................(pr |
| 3d1a0 | 65 76 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | ev-response...................(i |
| 3d1c0 | 66 20 61 72 67 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 6d | f.arg.......................(com |
| 3d1e0 | 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 43 68 6f 6f 73 65 20 72 65 73 70 6f 6e 73 65 20 76 61 | pleting-read."Choose.response.va |
| 3d200 | 72 69 61 6e 74 20 74 6f 20 64 69 66 66 20 61 67 61 69 6e 73 74 3a 20 22 0a 20 20 20 20 20 20 20 | riant.to.diff.against:."........ |
| 3d220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3d240 | 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 65 | (get-char-property.(point).'gpte |
| 3d260 | 6c 2d 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 | l-history)...................... |
| 3d280 | 20 20 20 20 20 20 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 20 | ..................nil.t)........ |
| 3d2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 65 74 2d 63 68 61 72 | .............(car-safe.(get-char |
| 3d2c0 | 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 68 69 73 74 6f 72 79 | -property.(point).'gptel-history |
| 3d2e0 | 29 29 29 29 0a 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 6d 6f | ))))..................(buffer-mo |
| 3d300 | 64 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | de.major-mode).................. |
| 3d320 | 28 62 75 66 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 | (bufname.(buffer-name))......... |
| 3d340 | 20 20 20 20 20 20 20 20 20 28 60 28 2c 6e 65 77 2d 62 75 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e | .........(`(,new-buf.,new-beg.,n |
| 3d360 | 65 77 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d | ew-end)...................(with- |
| 3d380 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | current-buffer.................. |
| 3d3a0 | 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 28 63 6f 6e 63 61 74 20 | .....(get-buffer-create.(concat. |
| 3d3c0 | 62 75 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 | bufname."-PREVIOUS-*"))......... |
| 3d3e0 | 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- |
| 3d400 | 6f 6e 6c 79 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 28 | only.t)).......................( |
| 3d420 | 65 72 61 73 65 2d 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 | erase-buffer)................... |
| 3d440 | 20 20 20 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 62 | ....(delay-mode-hooks.(funcall.b |
| 3d460 | 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uffer-mode)).................... |
| 3d480 | 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 | ...(visual-line-mode)........... |
| 3d4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 | ............(insert.prev-respons |
| 3d4c0 | 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 67 6f 74 6f 2d 63 | e).......................(goto-c |
| 3d4e0 | 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 20 20 20 20 20 | har.(point-min))................ |
| 3d500 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 | .......(list.(current-buffer).(p |
| 3d520 | 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 29 0a 20 20 20 20 20 | oint-min).(point-max))))))...... |
| 3d540 | 20 28 75 6e 6c 65 73 73 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 20 28 75 73 65 72 2d 65 72 72 | .(unless.prev-response.(user-err |
| 3d560 | 6f 72 20 22 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 69 73 20 61 64 64 69 74 69 76 65 3a 20 | or."gptel.response.is.additive:. |
| 3d580 | 6e 6f 20 63 68 61 6e 67 65 73 20 74 6f 20 65 64 69 66 66 22 29 29 0a 20 20 20 20 20 20 28 72 65 | no.changes.to.ediff")).......(re |
| 3d5a0 | 71 75 69 72 65 20 27 65 64 69 66 66 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 63 77 | quire.'ediff).......(letrec.((cw |
| 3d5c0 | 63 20 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 | c.(current-window-configuration) |
| 3d5e0 | 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 65 64 69 66 66 2d 72 | )................(gptel--ediff-r |
| 3d600 | 65 73 74 6f 72 65 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 | estore.................(lambda.( |
| 3d620 | 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 77 69 6e 64 6f | )...................(when.(windo |
| 3d640 | 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 20 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 | w-configuration-p.cwc).......... |
| 3d660 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 | ...........(set-window-configura |
| 3d680 | 74 69 6f 6e 20 63 77 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 | tion.cwc))...................(ki |
| 3d6a0 | 6c 6c 2d 62 75 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 | ll-buffer.(get-buffer.(concat.bu |
| 3d6c0 | 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 | fname."-PREVIOUS-*"))).......... |
| 3d6e0 | 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 66 66 65 | .........(kill-buffer.(get-buffe |
| 3d700 | 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 | r.(concat.bufname."-CURRENT-*")) |
| 3d720 | 29 0a 20 20 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 | )...................(remove-hook |
| 3d740 | 20 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 | .'ediff-quit-hook.gptel--ediff-r |
| 3d760 | 65 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 | estore)))).........(add-hook.'ed |
| 3d780 | 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 73 74 6f | iff-quit-hook.gptel--ediff-resto |
| 3d7a0 | 72 65 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 23 27 65 64 | re).........(apply..........#'ed |
| 3d7c0 | 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 28 67 | iff-regions-internal..........(g |
| 3d7e0 | 65 74 2d 62 75 66 66 65 72 20 28 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 | et-buffer.(ediff-make-cloned-buf |
| 3d800 | 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 43 55 52 52 45 4e 54 2d 2a | fer.(current-buffer)."-CURRENT-* |
| 3d820 | 22 29 29 0a 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e 64 20 6e 65 77 2d 62 75 66 20 6e 65 77 | "))..........beg.end.new-buf.new |
| 3d840 | 2d 62 65 67 20 6e 65 77 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 | -beg.new-end..........nil....... |
| 3d860 | 20 20 20 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 | ...(list.'ediff-regions-wordwise |
| 3d880 | 20 27 77 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 28 69 66 | .'word-wise.nil)..........;;.(if |
| 3d8a0 | 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 2d 76 61 6c 75 65 20 22 2d 77 22 20 61 72 67 73 29 | .(transient-arg-value."-w".args) |
| 3d8c0 | 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 | ..........;;.....(list.'ediff-re |
| 3d8e0 | 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 20 | gions-wordwise.'word-wise.nil).. |
| 3d900 | 20 20 20 20 20 20 20 20 3b 3b 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e | ........;;...(list.'ediff-region |
| 3d920 | 73 2d 6c 69 6e 65 77 69 73 65 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 29 29 | s-linewise.nil.nil))..........)) |
| 3d940 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 | )))..(defun.gptel--mark-response |
| 3d960 | 20 28 29 0a 20 20 22 4d 61 72 6b 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f | .()..."Mark.gptel.response.at.po |
| 3d980 | 69 6e 74 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 | int,.if.any."...(interactive)... |
| 3d9a0 | 28 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 | (unless.(gptel--in-response-p).( |
| 3d9c0 | 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 | user-error."No.gptel.response.at |
| 3d9e0 | 20 70 6f 69 6e 74 22 29 29 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 62 65 67 20 | .point"))...(pcase-let.((`(,beg. |
| 3da00 | 2e 20 2c 65 6e 64 29 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 | ..,end).(gptel--get-response-bou |
| 3da20 | 6e 64 73 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 20 28 70 75 73 68 | nds))).....(goto-char.beg).(push |
| 3da40 | 2d 6d 61 72 6b 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 20 28 61 63 74 69 76 61 74 65 | -mark).(goto-char.end).(activate |
| 3da60 | 2d 6d 61 72 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 | -mark)))..(defun.gptel--previous |
| 3da80 | 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 | -variant.(&optional.arg)..."Swit |
| 3daa0 | 63 68 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 | ch.to.previous.gptel-response.at |
| 3dac0 | 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 | .this.point,.if.it.exists."...(i |
| 3dae0 | 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 | nteractive."p")...(pcase-let*.(( |
| 3db00 | 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 74 2d 72 65 73 70 6f | `(,beg...,end).(gptel--get-respo |
| 3db20 | 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 20 20 20 28 68 69 73 | nse-bounds))................(his |
| 3db40 | 74 6f 72 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 | tory.(get-char-property.(point). |
| 3db60 | 27 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 | 'gptel-history))................ |
| 3db80 | 28 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 2d 73 61 66 65 20 68 69 73 74 6f 72 79 29 | (alt-response.(car-safe.history) |
| 3dba0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 | )................(offset)).....( |
| 3dbc0 | 75 6e 6c 65 73 73 20 28 61 6e 64 20 68 69 73 74 6f 72 79 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 | unless.(and.history.alt-response |
| 3dbe0 | 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 76 61 72 69 61 6e 74 20 | ).......(user-error."No.variant. |
| 3dc00 | 72 65 73 70 6f 6e 73 65 73 20 61 76 61 69 6c 61 62 6c 65 22 29 29 0a 20 20 20 20 28 69 66 20 28 | responses.available")).....(if.( |
| 3dc20 | 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 69 73 74 6f 72 79 20 28 | >.arg.0).........(setq.history.( |
| 3dc40 | 61 70 70 65 6e 64 20 28 63 64 72 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 | append.(cdr.history)............ |
| 3dc60 | 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 62 75 66 66 65 72 | ...................(list.(buffer |
| 3dc80 | 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 67 20 65 6e 64 | -substring-no-properties.beg.end |
| 3dca0 | 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 20 20 61 6c 74 2d 72 65 73 70 | )))).......(setq........alt-resp |
| 3dcc0 | 6f 6e 73 65 20 28 63 61 72 20 28 6c 61 73 74 20 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 | onse.(car.(last.history))....... |
| 3dce0 | 20 68 69 73 74 6f 72 79 20 28 63 6f 6e 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 | .history.(cons.(buffer-substring |
| 3dd00 | 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | -no-properties.beg.end)......... |
| 3dd20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 62 75 74 6c 61 73 74 20 68 69 73 74 6f 72 79 29 29 | .............(nbutlast.history)) |
| 3dd40 | 29 29 0a 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 | )).....(add-text-properties..... |
| 3dd60 | 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 | .........0.(length.alt-response) |
| 3dd80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 67 | ..............`(gptel.response.g |
| 3dda0 | 70 74 65 6c 2d 68 69 73 74 6f 72 79 20 2c 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 | ptel-history.,history).......... |
| 3ddc0 | 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 73 65 74 71 20 6f 66 66 73 | ....alt-response).....(setq.offs |
| 3dde0 | 65 74 20 28 6d 69 6e 20 28 2d 20 28 70 6f 69 6e 74 29 20 62 65 67 29 20 28 31 2d 20 28 6c 65 6e | et.(min.(-.(point).beg).(1-.(len |
| 3de00 | 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 | gth.alt-response)))).....(delete |
| 3de20 | 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 61 6c 74 | -region.beg.end).....(insert.alt |
| 3de40 | 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 62 65 67 | -response).....(goto-char.(+.beg |
| 3de60 | 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 70 75 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 | .offset)).....(pulse-momentary-h |
| 3de80 | 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 2b 20 62 65 67 20 28 6c 65 6e 67 | ighlight-region.beg.(+.beg.(leng |
| 3dea0 | 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | th.alt-response)))))..(defun.gpt |
| 3dec0 | 65 6c 2d 2d 6e 65 78 74 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 | el--next-variant.(&optional.arg) |
| 3dee0 | 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 | ..."Switch.to.next.gptel-respons |
| 3df00 | 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 20 65 78 69 73 74 73 2e 22 0a | e.at.this.point,.if.it.exists.". |
| 3df20 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 67 70 74 65 6c 2d 2d 70 72 | ..(interactive."p")...(gptel--pr |
| 3df40 | 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 2d 20 61 72 67 29 29 29 0a 0a 28 70 72 6f 76 69 | evious-variant.(-.arg)))..(provi |
| 3df60 | 64 65 20 27 67 70 74 65 6c 29 0a 3b 3b 3b 20 67 70 74 65 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 | de.'gptel).;;;.gptel.el.ends.her |
| 3df80 | 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 75 67 2d 72 65 | e..;;.Local.Variables:.;;.bug-re |
| 3dfa0 | 66 65 72 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 74 3a 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 | ference-url-format:."https://git |
| 3dfc0 | 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 69 73 73 75 65 73 2f 25 73 | hub.com/karthink/gptel/issues/%s |
| 3dfe0 | 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:....................... |
| 3e000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2e 65 6c 00 00 | gptel-0.9.8/gptel-anthropic.el.. |
| 3e020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e060 | 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 |
| 3e080 | 30 30 36 37 30 35 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 33 37 00 20 30 00 00 00 | 0067053.00000000000.014737..0... |
| 3e0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e100 | 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................... |
| 3e120 | 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................... |
| 3e140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 3e200 | 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 |
| 3e220 | 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..-*- |
| 3e240 | 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 |
| 3e260 | 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 | yright.(C).2023..Karthik.Chikmag |
| 3e280 | 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 67 | alur..;;.Author:.Karthik.Chikmag |
| 3e2a0 | 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 61 69 6c 2e 63 | alur.<karthikchikmagalur@gmail.c |
| 3e2c0 | 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 65 20 73 6f 66 | om>..;;.This.program.is.free.sof |
| 3e2e0 | 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 69 74 20 61 | tware;.you.can.redistribute.it.a |
| 3e300 | 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 20 74 65 72 | nd/or.modify.;;.it.under.the.ter |
| 3e320 | 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 20 4c 69 63 | ms.of.the.GNU.General.Public.Lic |
| 3e340 | 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 46 72 65 65 | ense.as.published.by.;;.the.Free |
| 3e360 | 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 20 76 65 72 | .Software.Foundation,.either.ver |
| 3e380 | 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 20 28 61 74 | sion.3.of.the.License,.or.;;.(at |
| 3e3a0 | 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 69 6f 6e 2e | .your.option).any.later.version. |
| 3e3c0 | 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 75 74 65 64 | ..;;.This.program.is.distributed |
| 3e3e0 | 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 20 75 73 65 | .in.the.hope.that.it.will.be.use |
| 3e400 | 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 41 4e 54 59 | ful,.;;.but.WITHOUT.ANY.WARRANTY |
| 3e420 | 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 61 72 72 61 | ;.without.even.the.implied.warra |
| 3e440 | 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 20 46 49 54 | nty.of.;;.MERCHANTABILITY.or.FIT |
| 3e460 | 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 45 2e 20 20 | NESS.FOR.A.PARTICULAR.PURPOSE... |
| 3e480 | 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 63 20 4c 69 | See.the.;;.GNU.General.Public.Li |
| 3e4a0 | 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 59 6f 75 20 | cense.for.more.details...;;.You. |
| 3e4c0 | 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 74 | should.have.received.a.copy.of.t |
| 3e4e0 | 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 3b 3b | he.GNU.General.Public.License.;; |
| 3e500 | 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 6e 6f | .along.with.this.program...If.no |
| 3e520 | 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 63 65 | t,.see.<https://www.gnu.org/lice |
| 3e540 | 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 20 54 68 69 | nses/>...;;;.Commentary:..;;.Thi |
| 3e560 | 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 68 72 6f 70 69 | s.file.adds.support.for.Anthropi |
| 3e580 | 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 3b 3b 3b 20 43 | c's.Messages.API.to.gptel..;;;.C |
| 3e5a0 | 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 28 65 76 61 6c | ode:.(require.'cl-generic).(eval |
| 3e5c0 | 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 69 62 | -when-compile...(require.'cl-lib |
| 3e5e0 | 29 29 0a 28 72 65 71 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 | )).(require.'map).(require.'gpte |
| 3e600 | 6c 29 0a 0a 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 | l)..(defvar.json-object-type)..( |
| 3e620 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 | declare-function.prop-match-valu |
| 3e640 | 65 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 | e."text-property-search").(decla |
| 3e660 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 | re-function.text-property-search |
| 3e680 | 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 | -backward."text-property-search" |
| 3e6a0 | 29 0a 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 6a | ).(declare-function.json-read."j |
| 3e6c0 | 73 6f 6e 22 20 28 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 | son".()).(declare-function.gptel |
| 3e6e0 | 2d 63 6f 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 | -context--wrap."gptel-context"). |
| 3e700 | 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 2d | (declare-function.gptel-context- |
| 3e720 | 2d 63 6f 6c 6c 65 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 | -collect-media."gptel-context"). |
| 3e740 | 0a 3b 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 28 4d 65 73 73 61 67 65 73 20 41 50 49 29 0a 28 63 | .;;;.Anthropic.(Messages.API).(c |
| 3e760 | 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 20 28 3a 63 | l-defstruct.(gptel-anthropic.(:c |
| 3e780 | 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 | onstructor.gptel--make-anthropic |
| 3e7a0 | 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 | )............................... |
| 3e7c0 | 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 20 20 20 20 | .(:copier.nil).................. |
| 3e7e0 | 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 65 6c 2d 62 61 | ..............(:include.gptel-ba |
| 3e800 | 63 6b 65 6e 64 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 20 74 68 65 20 63 72 75 63 69 61 6c 20 64 69 | ckend)))..;;.NOTE.the.crucial.di |
| 3e820 | 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 0a 3b 3b 20 2d 20 28 70 75 73 68 20 76 61 6c 20 | fference.between.;;.-.(push.val. |
| 3e840 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6b 65 79 29 29 20 61 6e 64 0a 3b 3b 20 20 20 | (plist-get.info.:key)).and.;;... |
| 3e860 | 28 70 6c 69 73 74 2d 70 75 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6b 65 79 29 | (plist-put.(plist-get.info.:key) |
| 3e880 | 20 28 63 6f 6e 73 20 76 61 6c 20 2e 2e 2e 29 29 0a 3b 3b 0a 3b 3b 20 2d 20 28 73 65 74 66 20 28 | .(cons.val....)).;;.;;.-.(setf.( |
| 3e8a0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6b 65 79 29 20 76 61 6c 29 20 61 6e 64 0a 3b 3b | plist-get.info.:key).val).and.;; |
| 3e8c0 | 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6b 65 79 20 76 61 6c 29 0a 3b 3b 0a | ...(plist-put.info.:key.val).;;. |
| 3e8e0 | 3b 3b 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 | ;;.in.the.following.function...T |
| 3e900 | 68 65 20 66 69 72 73 74 20 76 61 72 69 61 6e 74 20 63 6f 6e 73 65 73 20 61 74 20 74 68 65 20 68 | he.first.variant.conses.at.the.h |
| 3e920 | 65 61 64 20 6f 66 20 69 6e 66 6f 2c 20 74 68 65 0a 3b 3b 20 73 65 63 6f 6e 64 20 6f 6e 65 20 61 | ead.of.info,.the.;;.second.one.a |
| 3e940 | 74 20 74 68 65 20 74 61 69 6c 2e 20 20 54 68 69 73 20 6d 65 61 6e 73 20 6f 6e 6c 79 20 74 68 65 | t.the.tail...This.means.only.the |
| 3e960 | 20 73 65 63 6f 6e 64 20 6f 70 74 69 6f 6e 20 69 73 20 76 69 61 62 6c 65 20 66 6f 72 0a 3b 3b 20 | .second.option.is.viable.for.;;. |
| 3e980 | 6d 75 74 61 74 69 6e 67 20 61 20 70 6c 69 73 74 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 | mutating.a.plist.function.argume |
| 3e9a0 | 6e 74 20 74 68 61 74 27 73 20 70 61 73 73 65 64 20 62 79 20 72 65 66 65 72 65 6e 63 65 2e 0a 3b | nt.that's.passed.by.reference..; |
| 3e9c0 | 3b 20 44 6f 20 4e 4f 54 20 63 68 61 6e 67 65 20 74 68 65 20 70 6c 69 73 74 2d 70 75 74 20 74 6f | ;.Do.NOT.change.the.plist-put.to |
| 3e9e0 | 20 70 75 73 68 20 6f 72 20 73 65 74 66 21 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 54 68 65 20 73 74 72 | .push.or.setf!..;;.NOTE:.The.str |
| 3ea00 | 65 61 6d 20 70 61 72 73 65 72 20 6c 6f 6f 6b 73 20 63 6f 6d 70 6c 69 63 61 74 65 64 20 6f 6e 6c | eam.parser.looks.complicated.onl |
| 3ea20 | 79 20 62 65 63 61 75 73 65 20 69 74 20 68 61 6e 64 6c 65 73 20 73 74 72 65 61 6d 69 6e 67 0a 3b | y.because.it.handles.streaming.; |
| 3ea40 | 3b 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e 20 20 53 74 72 65 61 6d 20 70 61 72 73 69 6e 67 20 69 73 | ;.tool.calls...Stream.parsing.is |
| 3ea60 | 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 6e 67 20 74 68 69 | .simple:.if.you.are.studying.thi |
| 3ea80 | 73 20 63 6f 64 65 2c 20 6c 6f 6f 6b 20 61 74 0a 3b 3b 20 61 20 63 6f 6d 6d 69 74 20 66 72 6f 6d | s.code,.look.at.;;.a.commit.from |
| 3eaa0 | 20 62 65 66 6f 72 65 20 74 6f 6f 6c 2d 75 73 65 20 73 75 70 70 6f 72 74 20 77 61 73 20 61 64 64 | .before.tool-use.support.was.add |
| 3eac0 | 65 64 20 74 6f 20 67 70 74 65 6c 2e 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c | ed.to.gptel..(cl-defmethod.gptel |
| 3eae0 | 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 65 6e 64 20 67 | -curl--parse-stream.((_backend.g |
| 3eb00 | 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 | ptel-anthropic).info)..."Parse.a |
| 3eb20 | 6e 20 41 6e 74 68 72 6f 70 69 63 20 64 61 74 61 20 73 74 72 65 61 6d 2e 0a 0a 52 65 74 75 72 6e | n.Anthropic.data.stream...Return |
| 3eb40 | 20 74 68 65 20 74 65 78 74 20 72 65 73 70 6f 6e 73 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 73 | .the.text.response.accumulated.s |
| 3eb60 | 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c 20 74 6f 20 74 68 69 73 0a 66 75 6e 63 74 | ince.the.last.call.to.this.funct |
| 3eb80 | 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 6d 75 74 61 74 65 20 73 74 61 74 65 | ion...Additionally,.mutate.state |
| 3eba0 | 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 74 6f 6f 6c 2d 75 73 65 0a 69 6e 66 6f 72 6d 61 74 69 6f | .INFO.to.add.tool-use.informatio |
| 3ebc0 | 6e 20 69 66 20 74 68 65 20 73 74 72 65 61 6d 20 63 6f 6e 74 61 69 6e 73 20 69 74 2e 20 20 4e 6f | n.if.the.stream.contains.it...No |
| 3ebe0 | 74 20 6d 79 20 62 65 73 74 20 77 6f 72 6b 2c 20 49 20 6b 6e 6f 77 2e 22 0a 20 20 28 6c 65 74 2a | t.my.best.work,.I.know."...(let* |
| 3ec00 | 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 20 20 20 28 70 74 20 28 70 | .((content-strs)..........(pt.(p |
| 3ec20 | 6f 69 6e 74 29 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 | oint))).....(condition-case.nil. |
| 3ec40 | 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 61 72 | ........(while.(re-search-forwar |
| 3ec60 | 64 20 22 5e 65 76 65 6e 74 3a 20 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 | d."^event:.".nil.t)...........(s |
| 3ec80 | 65 74 71 20 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 | etq.pt.(match-beginning.0))..... |
| 3eca0 | 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 | ......(if.(equal.(line-end-posit |
| 3ecc0 | 69 6f 6e 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 20 | ion).(point-max))............... |
| 3ece0 | 28 65 72 72 6f 72 20 22 44 61 74 61 20 62 6c 6f 63 6b 20 69 6e 63 6f 6d 70 6c 65 74 65 22 29 29 | (error."Data.block.incomplete")) |
| 3ed00 | 0a 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 28 28 6c 6f | ...........(cond............((lo |
| 3ed20 | 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 5f 64 65 6c 74 61 22 29 20 | oking-at."content_block_delta"). |
| 3ed40 | 3b 63 6f 6c 6c 65 63 74 20 69 6e 63 72 65 6d 65 6e 74 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | ;collect.incremental............ |
| 3ed60 | 20 28 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 | .(forward-line.1).(forward-char. |
| 3ed80 | 35 29 20 20 3b 74 65 78 74 2c 20 74 6f 6f 6c 20 6f 72 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 | 5)..;text,.tool.or.thinking.bloc |
| 3eda0 | 6b 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 64 65 6c 74 61 | k.............(when-let*.((delta |
| 3edc0 | 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).: |
| 3ede0 | 64 65 6c 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 | delta)))...............(if-let*. |
| 3ee00 | 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 74 65 78 74 | ((content.(plist-get.delta.:text |
| 3ee20 | 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 28 6e 6f 74 | )).........................((not |
| 3ee40 | 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | .(eq.content.:null)))).......... |
| 3ee60 | 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 74 65 6e 74 2d 73 | .........(push.content.content-s |
| 3ee80 | 74 72 73 29 20 3b 63 6f 6c 6c 65 63 74 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | trs).;collect.text.............. |
| 3eea0 | 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 61 72 74 69 61 6c 2d 6a 73 6f 6e 20 28 70 6c 69 73 | ...(if-let*.((partial-json.(plis |
| 3eec0 | 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 0a 20 20 20 | t-get.delta.:partial_json))).... |
| 3eee0 | 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 20 20 20 20 | .................(plist-put..... |
| 3ef00 | 20 20 20 20 20 3b 63 6f 6c 6c 65 63 74 20 70 61 72 74 69 61 6c 20 74 6f 6f 6c 20 69 6e 70 75 74 | .....;collect.partial.tool.input |
| 3ef20 | 0a 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 20 3a 70 61 72 74 | ......................info.:part |
| 3ef40 | 69 61 6c 5f 6a 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ial_json......................(c |
| 3ef60 | 6f 6e 73 20 70 61 72 74 69 61 6c 2d 6a 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | ons.partial-json.(plist-get.info |
| 3ef80 | 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 20 20 20 | .:partial_json)))............... |
| 3efa0 | 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 74 68 69 6e 6b 69 6e 67 20 28 70 6c 69 73 74 2d 67 | ....(if-let*.((thinking.(plist-g |
| 3efc0 | 65 74 20 64 65 6c 74 61 20 3a 74 68 69 6e 6b 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | et.delta.:thinking)))........... |
| 3efe0 | 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 61 | ............(plist-put.info.:rea |
| 3f000 | 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 20 20 | soning.......................... |
| 3f020 | 20 20 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 69 6e 66 6f 20 | ........(concat.(plist-get.info. |
| 3f040 | 3a 72 65 61 73 6f 6e 69 6e 67 29 20 74 68 69 6e 6b 69 6e 67 29 29 29 29 29 29 29 0a 20 20 20 20 | :reasoning).thinking)))))))..... |
| 3f060 | 20 20 20 20 20 20 20 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 | ...................((looking-at. |
| 3f080 | 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 5f 73 74 61 72 74 22 29 20 3b 49 73 20 74 68 65 20 66 | "content_block_start").;Is.the.f |
| 3f0a0 | 6f 6c 6c 6f 77 69 6e 67 20 62 6c 6f 63 6b 20 74 65 78 74 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 3f | ollowing.block.text.or.tool-use? |
| 3f0c0 | 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 28 66 | .............(forward-line.1).(f |
| 3f0e0 | 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | orward-char.5).............(when |
| 3f100 | 2d 6c 65 74 2a 20 28 28 63 62 6c 6f 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c | -let*.((cblock.(plist-get.(gptel |
| 3f120 | 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 20 3a 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 29 29 29 0a 20 | --json-read).:content_block))).. |
| 3f140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 | .............(pcase.(plist-get.c |
| 3f160 | 62 6c 6f 63 6b 20 3a 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 | block.:type).................("t |
| 3f180 | 65 78 74 22 20 28 70 75 73 68 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 65 | ext".(push.(plist-get.cblock.:te |
| 3f1a0 | 78 74 29 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 20 | xt).content-strs)).............. |
| 3f1c0 | 20 20 20 28 22 74 6f 6f 6c 5f 75 73 65 22 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...("tool_use".(plist-put.info.: |
| 3f1e0 | 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 20 20 20 20 | tool-use........................ |
| 3f200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 3a 69 64 20 | ................(cons.(list.:id. |
| 3f220 | 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 | (plist-get.cblock.:id).......... |
| 3f240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3f260 | 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 | ..........:name.(plist-get.cbloc |
| 3f280 | 6b 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 20 20 20 20 20 20 | k.:name))....................... |
| 3f2a0 | 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 |
| 3f2c0 | 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 20 20 20 20 | t.info.:tool-use))))............ |
| 3f2e0 | 20 20 20 20 20 28 22 74 68 69 6e 6b 69 6e 67 22 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | .....("thinking".(plist-put.info |
| 3f300 | 20 3a 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 | .:reasoning.(plist-get.cblock.:t |
| 3f320 | 68 69 6e 6b 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 | hinking))..................(plis |
| 3f340 | 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 6b 20 27 69 6e 29 | t-put.info.:reasoning-block.'in) |
| 3f360 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f | ))))........................((lo |
| 3f380 | 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 74 6f 70 22 29 0a 20 | oking-at."content_block_stop").. |
| 3f3a0 | 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 20 20 20 20 28 28 | ...........(cond..............(( |
| 3f3c0 | 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 20 20 20 | plist-get.info.:partial_json)... |
| 3f3e0 | 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 20 20 20 20 20 20 20 | ;End.of.tool.block.............. |
| 3f400 | 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 |
| 3f420 | 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 6e 70 75 74 73 0a 20 | l.;Combine.partial.tool.inputs.. |
| 3f440 | 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 61 72 67 73 2d 6a 73 | .................(let*.((args-js |
| 3f460 | 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 72 73 65 20 28 70 6c | on.(apply.#'concat.(nreverse.(pl |
| 3f480 | 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 29 0a 20 | ist-get.info.:partial_json)))).. |
| 3f4a0 | 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 2d 64 65 | ........................(args-de |
| 3f4c0 | 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 6d 65 6e 74 20 73 74 | coded..;Handle.blank.argument.st |
| 3f4e0 | 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 20 20 20 20 20 20 20 | rings........................... |
| 3f500 | 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 6a 73 6f 6e 29 0a 20 | (if.(string-empty-p.args-json).. |
| 3f520 | 20 20 20 20 20 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 |
| 3f540 | 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 20 61 72 67 73 2d 6a | .(gptel--json-read-string.args-j |
| 3f560 | 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 20 20 20 3b 3b 20 41 | son)))).....................;;.A |
| 3f580 | 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 63 61 6c 6c 20 73 70 | dd.the.input.to.the.tool-call.sp |
| 3f5a0 | 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 6c 69 73 74 2d 70 75 | ec.....................(plist-pu |
| 3f5c0 | 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 6f 6f 6c 2d 75 73 65 | t.(car.(plist-get.info.:tool-use |
| 3f5e0 | 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 20 20 20 20 20 20 20 | )).:input.args-decoded))........ |
| 3f600 | 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 61 6e 20 65 72 72 6f | .........;;.If.there.was.an.erro |
| 3f620 | 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 65 20 69 67 6e 6f 72 | r.in.reading.that.tool,.we.ignor |
| 3f640 | 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 54 4f 44 4f 28 74 6f | e.it:.................;;.TODO(to |
| 3f660 | 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 74 65 72 0a 20 20 20 | ol).handle.this.error.better.... |
| 3f680 | 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 28 70 6c 69 73 74 2d | .............(error.(pop.(plist- |
| 3f6a0 | 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 4f 44 4f 3a 20 6e 72 | get.info.:tool-use)))).;TODO:.nr |
| 3f6c0 | 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 20 20 20 20 20 20 20 | everse.:tool-use.list........... |
| 3f6e0 | 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 5f 6a 73 6f | ....(plist-put.info.:partial_jso |
| 3f700 | 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 71 20 28 70 6c 69 73 | n.nil))...............((eq.(plis |
| 3f720 | 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 69 6e | t-get.info.:reasoning-block).'in |
| 3f740 | 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 0a 20 20 20 20 20 20 | ).;End.of.reasoning.block....... |
| 3f760 | 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 69 | ........(plist-put.info.:reasoni |
| 3f780 | 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 64 20 6f 66 20 72 65 | ng-block.t)))).;Signal.end.of.re |
| 3f7a0 | 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 20 20 20 20 20 20 20 | asoning.stream.to.filter........ |
| 3f7c0 | 20 20 20 20 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 | ................((looking-at."me |
| 3f7e0 | 73 73 61 67 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 | ssage_delta").............;;.col |
| 3f800 | 6c 65 63 74 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 | lect.stop_reason,.usage_tokens.a |
| 3f820 | 6e 64 20 70 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 | nd.prepare.tools.............(fo |
| 3f840 | 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 0a 20 | rward-line.1).(forward-char.5).. |
| 3f860 | 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 65 | ...........(when-let*.((tool-use |
| 3f880 | 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 20 | .(plist-get.info.:tool-use)))... |
| 3f8a0 | 20 20 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 | ............(let*.((data.(plist- |
| 3f8c0 | 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 20 20 20 20 | get.info.:data))................ |
| 3f8e0 | 20 20 20 20 20 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 | ......(prompts.(plist-get.data.: |
| 3f900 | 6d 65 73 73 61 67 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | messages))).................(pli |
| 3f920 | 73 74 2d 70 75 74 20 3b 20 41 70 70 65 6e 64 20 61 20 43 4f 50 59 20 6f 66 20 72 65 73 70 6f 6e | st-put.;.Append.a.COPY.of.respon |
| 3f940 | 73 65 20 74 65 78 74 20 2b 20 74 6f 6f 6c 2d 75 73 65 20 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 | se.text.+.tool-use.to.the.prompt |
| 3f960 | 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 3a 6d 65 | s.list..................data.:me |
| 3f980 | 73 73 61 67 65 73 0a 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 | ssages..................(vconcat |
| 3f9a0 | 0a 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 0a 20 20 20 20 20 | ...................prompts...... |
| 3f9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 | .............`((:role."assistant |
| 3f9e0 | 22 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 6e 74 20 | "......................:content. |
| 3fa00 | 2c 28 76 63 6f 6e 63 61 74 20 3b 49 6e 73 65 72 74 20 61 6e 79 20 4c 4c 4d 20 74 65 78 74 0a 20 | ,(vconcat.;Insert.any.LLM.text.. |
| 3fa20 | 20 20 20 20 20 20 20 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 | ...............................( |
| 3fa40 | 61 6e 64 2d 6c 65 74 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 | and-let*.((strs.(plist-get.info. |
| 3fa60 | 3a 70 61 72 74 69 61 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 | :partial_text)))................ |
| 3fa80 | 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 6c 69 73 74 20 3a 74 | ..................(list.(list.:t |
| 3faa0 | 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 | ype."text".:text.(apply.#'concat |
| 3fac0 | 20 28 6e 72 65 76 65 72 73 65 20 73 74 72 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .(nreverse.strs)))))............ |
| 3fae0 | 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 |
| 3fb00 | 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 20 3b 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 | mbda.(tool-call).;followed.by.th |
| 3fb20 | 65 20 74 6f 6f 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 20 | e.tool.calls.................... |
| 3fb40 | 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 70 70 65 6e 64 20 28 | .......................(append.( |
| 3fb60 | 6c 69 73 74 20 3a 74 79 70 65 20 22 74 6f 6f 6c 5f 75 73 65 22 29 0a 20 20 20 20 20 20 20 20 20 | list.:type."tool_use").......... |
| 3fb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3fba0 | 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 29 0a 20 20 | ..(copy-sequence.tool-call)))... |
| 3fbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 | ...............................t |
| 3fbe0 | 6f 6f 6c 2d 75 73 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | ool-use)))))).................(p |
| 3fc00 | 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 20 6e 69 6c 29 | list-put.info.:partial_text.nil) |
| 3fc20 | 20 3b 20 43 6c 65 61 72 20 61 6e 79 20 63 61 70 74 75 72 65 64 20 74 65 78 74 0a 20 20 20 20 20 | .;.Clear.any.captured.text...... |
| 3fc40 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 6e 20 73 68 61 70 65 20 74 68 65 20 74 6f 6f | ...........;;.Then.shape.the.too |
| 3fc60 | 6c 2d 75 73 65 20 62 6c 6f 63 6b 20 62 79 20 61 64 64 69 6e 67 20 61 72 67 73 20 73 6f 20 77 65 | l-use.block.by.adding.args.so.we |
| 3fc80 | 20 63 61 6e 20 63 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 | .can.call.the.functions......... |
| 3fca0 | 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 2d 63 61 6c 6c | ........(mapc.(lambda.(tool-call |
| 3fcc0 | 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 |
| 3fce0 | 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 | -put.tool-call.:args.(plist-get. |
| 3fd00 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 6e 70 75 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-call.:input)).............. |
| 3fd20 | 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. |
| 3fd40 | 3a 69 6e 70 75 74 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 | :input.nil)..................... |
| 3fd60 | 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 69 64 20 28 67 70 | ....(plist-put.tool-call.:id.(gp |
| 3fd80 | 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 75 6e 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 0a | tel--anthropic-unformat-tool-id. |
| 3fda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3fdc0 | 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 |
| 3fde0 | 6c 2d 63 61 6c 6c 20 3a 69 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-call.:id)))).................. |
| 3fe00 | 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 | .....tool-use))).............(wh |
| 3fe20 | 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 6e 2d | en-let*.((response.(gptel--json- |
| 3fe40 | 72 65 61 64 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 | read)))...............(plist-put |
| 3fe60 | 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 20 20 | .info.:output-tokens............ |
| 3fe80 | 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 20 72 65 | ..............(map-nested-elt.re |
| 3fea0 | 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 73 29 29 | sponse.'(:usage.:output_tokens)) |
| 3fec0 | 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 66 6f 20 | )...............(plist-put.info. |
| 3fee0 | 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 20 20 20 | :stop-reason.................... |
| 3ff00 | 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.' |
| 3ff20 | 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 20 20 20 | (:delta.:stop_reason)))))))..... |
| 3ff40 | 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 20 28 6c | ..(error.(goto-char.pt))).....(l |
| 3ff60 | 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 6f 6e 63 | et.((response-text.(apply.#'conc |
| 3ff80 | 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 0a 20 20 | at.(nreverse.content-strs))))... |
| 3ffa0 | 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 65 73 70 | ....(unless.(string-empty-p.resp |
| 3ffc0 | 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 20 69 6e | onse-text).........(plist-put.in |
| 3ffe0 | 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 20 20 20 | fo.:partial_text................ |
| 40000 | 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 74 2d 67 | ....(cons.response-text.(plist-g |
| 40020 | 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 20 20 20 | et.info.:partial_text))))....... |
| 40040 | 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. |
| 40060 | 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 |
| 40080 | 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) |
| 400a0 | 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 |
| 400c0 | 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 |
| 400e0 | 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 |
| 40100 | 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 |
| 40120 | 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. |
| 40140 | 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 |
| 40160 | 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........ |
| 40180 | 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.' |
| 401a0 | 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- |
| 401c0 | 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 |
| 401e0 | 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 |
| 40200 | 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.=. |
| 40220 | 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.( |
| 40240 | 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 |
| 40260 | 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 |
| 40280 | 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 |
| 402a0 | 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. |
| 402c0 | 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 |
| 402e0 | 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 |
| 40300 | 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 |
| 40320 | 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..... |
| 40340 | 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 |
| 40360 | 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 |
| 40380 | 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.... |
| 403a0 | 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 |
| 403c0 | 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 |
| 403e0 | 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 |
| 40400 | 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 |
| 40420 | 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))). |
| 40440 | 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.: |
| 40460 | 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 |
| 40480 | 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. |
| 404a0 | 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 |
| 404c0 | 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 |
| 404e0 | 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 |
| 40500 | 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 |
| 40520 | 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 |
| 40540 | 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 |
| 40560 | 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))....... |
| 40580 | 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)..... |
| 405a0 | 20 20 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 | ..(plist-put.call.:id.(gptel--an |
| 405c0 | 74 68 72 6f 70 69 63 2d 75 6e 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 20 20 20 | thropic-unformat-tool-id........ |
| 405e0 | 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 63 | ....................(plist-get.c |
| 40600 | 61 6c 6c 20 3a 69 64 29 29 29 0a 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 63 61 6c 6c 20 69 6e | all.:id))).......collect.call.in |
| 40620 | 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 74 | to.calls.......finally.do.(plist |
| 40640 | 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 20 | -put.info.:tool-use.calls))).... |
| 40660 | 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 73 | finally.return....(and.content-s |
| 40680 | 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 73 | trs.(apply.#'concat.content-strs |
| 406a0 | 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 65 | ))))..(cl-defmethod.gptel--reque |
| 406c0 | 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 69 | st-data.((backend.gptel-anthropi |
| 406e0 | 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 50 | c).prompts)..."JSON.encode.PROMP |
| 40700 | 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 6c | TS.for.sending.to.ChatGPT."...(l |
| 40720 | 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 6d | et.((prompts-plist..........`(:m |
| 40740 | 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 6d | odel.,(gptel--model-name.gptel-m |
| 40760 | 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 70 | odel)............:stream.,(or.gp |
| 40780 | 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 20 | tel-stream.:json-false)......... |
| 407a0 | 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 6f | ...:max_tokens.,(or.gptel-max-to |
| 407c0 | 6b 65 6e 73 20 31 30 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 73 73 61 67 65 73 20 | kens.1024)............:messages. |
| 407e0 | 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 2d | [,@prompts]))).....(when.gptel-- |
| 40800 | 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 6f | system-message.......(if.(and.(o |
| 40820 | 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 74 | r.(eq.gptel-cache.t).(memq.'syst |
| 40840 | 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 20 | em.gptel-cache))................ |
| 40860 | 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 29 | (gptel--model-capable-p.'cache)) |
| 40880 | 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 73 | ...........;;.gptel--system-mess |
| 408a0 | 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 67 | age.is.guaranteed.to.be.a.string |
| 408c0 | 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 6c | ...........(plist-put.prompts-pl |
| 408e0 | 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 20 | ist.:system..................... |
| 40900 | 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 73 | .`[(:type."text".:text.,gptel--s |
| 40920 | 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 20 | ystem-message................... |
| 40940 | 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 68 | ......:cache_control.(:type."eph |
| 40960 | 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 70 | emeral"))]).........(plist-put.p |
| 40980 | 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 74 | rompts-plist.:system.gptel--syst |
| 409a0 | 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 65 | em-message))).....(when.gptel-te |
| 409c0 | 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 70 | mperature.......(plist-put.promp |
| 409e0 | 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 70 | ts-plist.:temperature.gptel-temp |
| 40a00 | 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 6f | erature)).....(when.gptel-use-to |
| 40a20 | 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 6f | ols.......(when.(eq.gptel-use-to |
| 40a40 | 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 70 | ols.'force).........(plist-put.p |
| 40a60 | 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 70 | rompts-plist.:tool_choice.'(:typ |
| 40a80 | 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 6f | e."any"))).......(when.gptel-too |
| 40aa0 | 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 67 | ls.........(let.((tools-array.(g |
| 40ac0 | 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 2d | ptel--parse-tools.backend.gptel- |
| 40ae0 | 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 72 | tools)))...........(plist-put.pr |
| 40b00 | 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 0a | ompts-plist.:tools.tools-array). |
| 40b20 | 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 74 | ..........(when.(and.(or.(eq.gpt |
| 40b40 | 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 61 | el-cache.t).(memq.'tool.gptel-ca |
| 40b60 | 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 65 | che))......................(gpte |
| 40b80 | 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 20 | l--model-capable-p.'cache))..... |
| 40ba0 | 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 79 | ........(nconc.(aref.tools-array |
| 40bc0 | 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 20 | .(1-.(length.tools-array)))..... |
| 40be0 | 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 20 | ...............'(:cache_control. |
| 40c00 | 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 3b | (:type."ephemeral"))))))).....;; |
| 40c20 | 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 6c | .Merge.request.params.with.model |
| 40c40 | 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 2d | .and.backend.params......(gptel- |
| 40c60 | 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 74 | -merge-plists......prompts-plist |
| 40c80 | 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 72 | ......(gptel-backend-request-par |
| 40ca0 | 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 2d | ams.gptel-backend)......(gptel-- |
| 40cc0 | 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 65 | model-request-params..gptel-mode |
| 40ce0 | 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 73 | l))))..(cl-defmethod.gptel--pars |
| 40d00 | 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 70 | e-tools.((_backend.gptel-anthrop |
| 40d20 | 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 65 | ic).tools)..."Parse.TOOLS.to.the |
| 40d40 | 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 73 | .Anthropic.API.tool.definition.s |
| 40d60 | 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 2d | pec...TOOLS.is.a.list.of.`gptel- |
| 40d80 | 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 63 | tool'.structs,.which.see."...(vc |
| 40da0 | 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 6f | oncat....(mapcar.....(lambda.(to |
| 40dc0 | 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 6f | ol).......(list.:name.(gptel-too |
| 40de0 | 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 69 | l-name.tool).............:descri |
| 40e00 | 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 6f | ption.(gptel-tool-description.to |
| 40e20 | 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 4e | ol).............:input_schema.;N |
| 40e40 | 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 65 | OTE:.Anthropic.wants."{}".if.the |
| 40e60 | 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 6c | .function.takes.no.args,.not.nul |
| 40e80 | 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 63 | l.............(list.:type."objec |
| 40ea0 | 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 | t"...................:properties |
| 40ec0 | 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 70 0a 20 20 20 20 | ...................(cl-loop..... |
| 40ee0 | 20 20 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 | ...............for.arg.in.(gptel |
| 40f00 | 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 20 20 | -tool-args.tool)................ |
| 40f20 | 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e | ....for.name.=.(plist-get.arg.:n |
| 40f40 | 61 6d 65 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 74 79 70 65 | ame)....................for.type |
| 40f60 | 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 0a 20 20 20 20 20 20 20 | .=.(plist-get.arg.:type)........ |
| 40f80 | 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 72 20 28 61 | ............for.newname.=.(or.(a |
| 40fa0 | 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 20 20 20 20 | nd.(keywordp.name).name)........ |
| 40fc0 | 20 20 20 20 20 20 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 |
| 40fe0 | 61 6b 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 | ake-symbol.(concat.":".name))).. |
| 41000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 65 6e 75 6d 20 3d 20 28 70 6c | ..................for.enum.=.(pl |
| 41020 | 69 73 74 2d 67 65 74 20 61 72 67 20 3a 65 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ist-get.arg.:enum).............. |
| 41040 | 20 20 20 20 20 20 61 70 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 0a 20 20 20 20 20 | ......append.(list.newname...... |
| 41060 | 20 20 20 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 28 3a 74 79 | ...........................`(:ty |
| 41080 | 70 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 0a 20 20 20 20 20 20 | pe.,(plist-get.arg.:type)....... |
| 410a0 | 20 20 20 20 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 64 65 73 | ............................:des |
| 410c0 | 63 72 69 70 74 69 6f 6e 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 64 65 73 63 72 69 | cription.,(plist-get.arg.:descri |
| 410e0 | 70 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 | ption).......................... |
| 41100 | 20 20 20 20 20 20 20 20 20 2c 40 28 69 66 20 65 6e 75 6d 20 28 6c 69 73 74 20 3a 65 6e 75 6d 20 | .........,@(if.enum.(list.:enum. |
| 41120 | 28 76 63 6f 6e 63 61 74 20 65 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (vconcat.enum)))................ |
| 41140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 63 6f 6e 64 0a 20 20 20 20 20 | ...................,@(cond...... |
| 41160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 41180 | 28 28 65 71 75 61 6c 20 74 79 70 65 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 | ((equal.type."object").......... |
| 411a0 | 20 20 20 20 20 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 |
| 411c0 | 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.............................. |
| 411e0 | 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 20 28 70 6c 69 73 74 2d 67 65 74 | ..........:properties.(plist-get |
| 41200 | 20 61 72 67 20 3a 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .arg.:properties)............... |
| 41220 | 20 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 72 65 71 75 69 72 | .........................:requir |
| 41240 | 65 64 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 72 65 71 75 69 72 65 64 29 | ed.(or.(plist-get.arg.:required) |
| 41260 | 20 5b 5d 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 | .[]))).......................... |
| 41280 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 74 79 70 65 20 22 61 72 72 61 79 22 | ............((equal.type."array" |
| 412a0 | 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 | )............................... |
| 412c0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 69 74 65 6d 73 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........(list.:items.(plist-get. |
| 412e0 | 61 72 67 20 3a 69 74 65 6d 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arg.:items)))))))............... |
| 41300 | 20 20 20 20 3a 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 | ....:required................... |
| 41320 | 28 76 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 28 64 65 6c | (vconcat....................(del |
| 41340 | 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 20 20 20 20 20 20 20 | q.nil.(mapcar................... |
| 41360 | 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 28 | ............(lambda.(arg).(and.( |
| 41380 | 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 20 | not.(plist-get.arg.:optional)).. |
| 413a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 413c0 | 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 20 3a 6e 61 6d 65 29 | ...........(plist-get.arg.:name) |
| 413e0 | 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 | )).............................. |
| 41400 | 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 29 29 29 29 29 29 0a 20 20 | .(gptel-tool-args.tool)))))))... |
| 41420 | 20 20 28 65 6e 73 75 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 | ..(ensure-list.tools))))..(cl-de |
| 41440 | 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 75 6c 74 | fmethod.gptel--parse-tool-result |
| 41460 | 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 70 69 63 29 20 74 6f | s.((_backend.gptel-anthropic).to |
| 41480 | 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 |
| 414a0 | 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- |
| 414c0 | 55 53 45 2e 0a 0a 54 4f 4f 4c 2d 55 53 45 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 | USE...TOOL-USE.is.a.list.of.plis |
| 414e0 | 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 6e 61 6d 65 73 2c 20 61 72 67 75 6d 65 | ts.containing.tool.names,.argume |
| 41500 | 6e 74 73 20 61 6e 64 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 2e 22 0a 20 20 3b 3b 20 28 64 65 63 | nts.and.call.results."...;;.(dec |
| 41520 | 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 20 28 6c 69 | lare.(side-effect-free.t))...(li |
| 41540 | 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 6e 74 65 6e 74 0a 20 | st....:role."user"....:content.. |
| 41560 | 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 20 20 20 28 6c 61 6d | ..(vconcat.....(mapcar......(lam |
| 41580 | 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 | bda.(tool-call)........(let*.((r |
| 415a0 | 65 73 75 6c 74 20 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 | esult.(plist-get.tool-call.:resu |
| 415c0 | 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 74 65 64 0a 20 20 | lt))...............(formatted... |
| 415e0 | 20 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 74 6f 6f 6c 5f 72 | .............(list.:type."tool_r |
| 41600 | 65 73 75 6c 74 22 0a 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 | esult"......................:too |
| 41620 | 6c 5f 75 73 65 5f 69 64 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 | l_use_id.(gptel--anthropic-forma |
| 41640 | 74 2d 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-tool-id....................... |
| 41660 | 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 6c 2d 63 61 6c | .............(plist-get.tool-cal |
| 41680 | 6c 20 3a 69 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 3a 63 6f | l.:id))......................:co |
| 416a0 | 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 20 72 65 73 75 6c | ntent.(if.(stringp.result).resul |
| 416c0 | 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............................... |
| 416e0 | 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 29 29 29 29 0a 20 | ..(prin1-to-string.result))))).. |
| 41700 | 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 20 20 20 20 20 20 | ........(prog1.formatted........ |
| 41720 | 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 63 61 6c 6c 20 3a | ....(when.(plist-get.tool-call.: |
| 41740 | 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 2d 70 75 74 20 66 | error)..............(plist-put.f |
| 41760 | 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 20 20 20 20 20 74 | ormatted.:is_error.t)))))......t |
| 41780 | 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 67 70 74 65 6c 2d | ool-use))))..;;.NOTE:.No.`gptel- |
| 417a0 | 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 75 69 72 65 64 20 | -inject-prompt'.method.required. |
| 417c0 | 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 0a 3b 3b 20 74 68 | for.gptel-anthropic,.since.;;.th |
| 417e0 | 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 6e 65 72 69 63 20 | is.is.handled.by.its.defgeneric. |
| 41800 | 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 6e | implementation..(defun.gptel--an |
| 41820 | 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 | thropic-format-tool-id.(tool-id) |
| 41840 | 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 74 6f 6f 6c 75 5f 22 | ...(if.(string-prefix-p."toolu_" |
| 41860 | 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 28 66 6f 72 | .tool-id).......tool-id.....(for |
| 41880 | 6d 61 74 20 22 74 6f 6f 6c 75 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 29 29 29 0a 0a 28 64 65 66 75 | mat."toolu_%s".tool-id)))..(defu |
| 418a0 | 6e 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 75 6e 66 6f 72 6d 61 74 2d 74 6f 6f 6c | n.gptel--anthropic-unformat-tool |
| 418c0 | 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 28 6f 72 20 28 61 6e 64 20 28 73 74 72 69 6e 67 | -id.(tool-id)...(or.(and.(string |
| 418e0 | 2d 6d 61 74 63 68 20 22 74 6f 6f 6c 75 5f 5c 5c 28 2e 2b 5c 5c 29 22 20 74 6f 6f 6c 2d 69 64 29 | -match."toolu_\\(.+\\)".tool-id) |
| 41900 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 74 6f 6f 6c | ............(match-string.1.tool |
| 41920 | 2d 69 64 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 | -id)).......(progn.........(mess |
| 41940 | 61 67 65 20 22 55 6e 65 78 70 65 63 74 65 64 20 74 6f 6f 6c 5f 63 61 6c 6c 5f 69 64 20 66 6f 72 | age."Unexpected.tool_call_id.for |
| 41960 | 6d 61 74 3a 20 25 73 22 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 69 | mat:.%s".tool-id).........tool-i |
| 41980 | 64 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 | d)))..(cl-defmethod.gptel--parse |
| 419a0 | 2d 6c 69 73 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 | -list.((_backend.gptel-anthropic |
| 419c0 | 29 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 | ).prompt-list)...(cl-loop.for.te |
| 419e0 | 78 74 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | xt.in.prompt-list............for |
| 41a00 | 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 20 20 20 20 | .role.=.t.then.(not.role)....... |
| 41a20 | 20 20 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 | .....if.text............collect. |
| 41a40 | 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 72 22 20 22 61 73 73 | (list.:role.(if.role."user"."ass |
| 41a60 | 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 20 20 | istant")........................ |
| 41a80 | 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 78 74 | ..:content.`[(:type."text".:text |
| 41aa0 | 20 2c 74 65 78 74 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 70 72 6f 6d 70 74 | .,text)])............into.prompt |
| 41ac0 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 0a 20 20 20 20 20 20 20 20 | s............finally.do......... |
| 41ae0 | 20 20 20 3b 3b 20 63 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 | ...;;.cache.messages.if.required |
| 41b00 | 3a 20 61 64 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 | :.add.cache_control.to.the.last. |
| 41b20 | 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 | message............(if.(and.(or. |
| 41b40 | 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 6d 65 73 73 61 67 | (eq.gptel-cache.t).(memq.'messag |
| 41b60 | 65 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 20 20 | e.gptel-cache))................. |
| 41b80 | 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 63 61 63 | ....(gptel--model-capable-p.'cac |
| 41ba0 | 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 | he))................(nconc.(aref |
| 41bc0 | 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 74 73 29 29 | .(plist-get.(car.(last.prompts)) |
| 41be0 | 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 20 20 20 20 20 | .:content).0)................... |
| 41c00 | 20 20 20 20 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 | ....'(:cache_control.(:type."eph |
| 41c20 | 65 6d 65 72 61 6c 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 | emeral"))))............finally.r |
| 41c40 | 65 74 75 72 6e 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 | eturn.prompts))..(cl-defmethod.g |
| 41c60 | 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 67 70 74 | ptel--parse-buffer.((backend.gpt |
| 41c80 | 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 61 78 2d 65 6e 74 72 | el-anthropic).&optional.max-entr |
| 41ca0 | 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. |
| 41cc0 | 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 20 | (point)).........(include-media. |
| 41ce0 | 28 61 6e 64 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 6f 72 20 28 67 70 74 65 | (and.gptel-track-media.(or.(gpte |
| 41d00 | 6c 2d 2d 6d 6f 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 | l--model-capable-p.'media)...... |
| 41d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 41d40 | 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 63 61 70 61 62 | .............(gptel--model-capab |
| 41d60 | 6c 65 2d 70 20 27 75 72 6c 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 67 70 74 65 6c | le-p.'url))))).....(if.(or.gptel |
| 41d80 | 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 20 20 | -mode.gptel-track-response)..... |
| 41da0 | 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 6e 74 | ....(while.(and.(or.(not.max-ent |
| 41dc0 | 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 20 20 | ries).(>=.max-entries.0))....... |
| 41de0 | 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 69 6f | ..............(goto-char.(previo |
| 41e00 | 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....... |
| 41e20 | 20 20 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 | ..........................(point |
| 41e40 | 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 20 20 | ).'gptel.nil.(point-min)))...... |
| 41e60 | 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 20 70 | ...............(not.(=.(point).p |
| 41e80 | 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 74 69 | rev-pt)))...........;;.HACK.Unti |
| 41ea0 | 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 6c 75 | l.we.can.find.a.more.robust.solu |
| 41ec0 | 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 72 65 | tion.for.editing...........;;.re |
| 41ee0 | 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 6e 69 | sponses,.ignore.prompts.containi |
| 41f00 | 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 20 20 | ng.only.whitespace,.as.the...... |
| 41f20 | 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 6e 64 | .....;;.Anthropic.API.can't.hand |
| 41f40 | 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 23 33 | le.it...See.#452,.#409,.#406,.#3 |
| 41f60 | 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 65 63 | 51.and.#321...........;;.We.chec |
| 41f80 | 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 67 20 | k.for.blank.prompts.by.skipping. |
| 41fa0 | 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 20 20 | whitespace.and.comparing........ |
| 41fc0 | 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 75 73 | ...;;.point.against.the.previous |
| 41fe0 | 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 72 73 | ............(unless.(save-excurs |
| 42000 | 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 28 3e | ion.(skip-syntax-forward.".").(> |
| 42020 | 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 20 20 | =.(point).prev-pt))............. |
| 42040 | 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 6e 74 | (pcase.(get-char-property.(point |
| 42060 | 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 6f 6e | ).'gptel)...............('respon |
| 42080 | 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 28 63 | se................(when-let*.((c |
| 420a0 | 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 20 20 | ontent.......................... |
| 420c0 | 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 20 20 | ...(gptel--trim-prefixes........ |
| 420e0 | 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 75 | ......................(buffer-su |
| 42100 | 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 70 72 | bstring-no-properties.(point).pr |
| 42120 | 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 65 6e | ev-pt))))..................(when |
| 42140 | 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 29 0a | .(not.(string-blank-p.content)). |
| 42160 | 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 20 3a | ...................(push.(list.: |
| 42180 | 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 65 6e | role."assistant".:content.conten |
| 421a0 | 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 60 28 | t).prompts))))...............(`( |
| 421c0 | 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 76 65 | tool...,id)................(save |
| 421e0 | 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 6f 6e | -excursion..................(con |
| 42200 | 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 20 20 | dition-case.nil................. |
| 42220 | 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 63 75 | .....(let*.((tool-call.(read.(cu |
| 42240 | 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 20 20 | rrent-buffer)))................. |
| 42260 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 64 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 | ............(id.(gptel--anthropi |
| 42280 | 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 20 20 20 20 20 | c-format-tool-id.id))........... |
| 422a0 | 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 69 73 74 2d 67 | ..................(name.(plist-g |
| 422c0 | 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 20 20 20 20 20 | et.tool-call.:name))............ |
| 422e0 | 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 28 70 6c 69 | .................(arguments.(pli |
| 42300 | 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 20 20 20 20 20 | st-get.tool-call.:args)))....... |
| 42320 | 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 6f 6f 6c | .................(plist-put.tool |
| 42340 | 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 20 20 20 20 20 | -call.:id.id)................... |
| 42360 | 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 73 75 6c | .....(plist-put.tool-call.:resul |
| 42380 | 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............................... |
| 423a0 | 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 69 | ....(string-trim.(buffer-substri |
| 423c0 | 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 20 | ng-no-properties................ |
| 423e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 42400 | 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 20 20 | .(point).prev-pt)))............. |
| 42420 | 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 72 73 65 2d 74 | ...........(push.(gptel--parse-t |
| 42440 | 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 2d 63 | ool-results.backend.(list.tool-c |
| 42460 | 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 20 20 20 20 20 | all))........................... |
| 42480 | 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 20 | ...prompts)..................... |
| 424a0 | 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 74 61 6e 74 22 | ...(push.(list.:role."assistant" |
| 424c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 424e0 | 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 6c 5f 75 73 65 | ....:content.`[(.:type."tool_use |
| 42500 | 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 20 20 20 20 20 | ".:id.,id.:name.,name........... |
| 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 20 20 20 20 | ................................ |
| 42540 | 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 20 20 20 20 20 | ......:input.,arguments)])...... |
| 42560 | 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 29 | ........................prompts) |
| 42580 | 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 6f 66 2d 66 69 | )....................((end-of-fi |
| 425a0 | 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 20 20 | le.invalid-read-syntax)......... |
| 425c0 | 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 |
| 425e0 | 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 6f 6e 20 6c 69 | uld.not.parse.tool-call.%s.on.li |
| 42600 | 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 20 20 20 20 20 | ne.%s".......................... |
| 42620 | 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 2d 61 74 2d 70 | ............id.(line-number-at-p |
| 42640 | 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 20 20 20 20 20 | os.(point))))))))............... |
| 42660 | 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 69 6c 20 20 20 | ('ignore)...............('nil... |
| 42680 | 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 6c 65 3a 20 70 | ..................;.user.role:.p |
| 426a0 | 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 20 20 20 20 20 | ossibly.with.media.............. |
| 426c0 | 20 20 28 69 66 20 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..(if.include-media............. |
| 426e0 | 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 74 20 28 67 70 74 | .......(when-let*.((content.(gpt |
| 42700 | 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 0a 20 20 | el--anthropic-parse-multipart... |
| 42720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 42740 | 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 6e 6b 73 | .......(gptel--parse-media-links |
| 42760 | 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 70 74 29 29 29 29 0a | .major-mode.(point).prev-pt)))). |
| 42780 | 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 3e 20 28 6c | .....................(when.(>.(l |
| 427a0 | 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 20 20 20 20 20 | ength.content).0)............... |
| 427c0 | 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 75 73 65 72 | .........(push.(list.:role."user |
| 427e0 | 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 29 29 0a 20 | ".:content.content).prompts))).. |
| 42800 | 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 |
| 42820 | 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 20 | tent.(gptel--trim-prefixes...... |
| 42840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 42860 | 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 65 | ..(buffer-substring-no-propertie |
| 42880 | 73 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 20 20 20 20 | s.(point).prev-pt))))........... |
| 428a0 | 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 75 73 65 72 | .........(push.(list.:role."user |
| 428c0 | 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 29 29 29 29 | ".:content.content).prompts))))) |
| 428e0 | 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 28 70 6f 69 6e 74 | )...........(setq.prev-pt.(point |
| 42900 | 29 29 0a 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 | ))...........(and.max-entries.(c |
| 42920 | 6c 2d 64 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 77 68 65 | l-decf.max-entries))).......(whe |
| 42940 | 6e 2d 6c 65 74 2a 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 | n-let*.((content.(string-trim.(b |
| 42960 | 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... |
| 42980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 429a0 | 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 29 29 | .......(point-min).(point-max))) |
| 429c0 | 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 58 58 58 20 66 61 69 6c 73 20 69 66 20 63 6f 6e 74 65 | )).........;;.XXX.fails.if.conte |
| 429e0 | 6e 74 20 69 73 20 65 6d 70 74 79 2e 20 20 54 68 65 20 63 6f 72 72 65 63 74 20 65 72 72 6f 72 20 | nt.is.empty...The.correct.error. |
| 42a00 | 62 65 68 61 76 69 6f 72 20 69 73 20 6c 65 66 74 20 74 6f 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 | behavior.is.left.to.........;;.a |
| 42a20 | 20 66 75 74 75 72 65 20 64 69 73 63 75 73 73 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 28 70 75 73 | .future.discussion..........(pus |
| 42a40 | 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 63 6f | h.(list.:role."user".:content.co |
| 42a60 | 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 3b 3b 20 43 61 63 68 65 20 6d | ntent).prompts))).....;;.Cache.m |
| 42a80 | 65 73 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 | essages.if.required:.add.cache_c |
| 42aa0 | 6f 6e 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 | ontrol.to.the.last.message.....( |
| 42ac0 | 69 66 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 | if.(and.(or.(eq.gptel-cache.t).( |
| 42ae0 | 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))..... |
| 42b00 | 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 |
| 42b20 | 20 27 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 61 73 74 2d 6d 65 | .'cache)).........(let.((last-me |
| 42b40 | 73 73 61 67 65 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 | ssage.(plist-get.(car.(last.prom |
| 42b60 | 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | pts)).:content)))...........(if. |
| 42b80 | 28 73 74 72 69 6e 67 70 20 6c 61 73 74 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 | (stringp.last-message).......... |
| 42ba0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .....(plist-put................( |
| 42bc0 | 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 0a 20 20 20 | car.(last.prompts)).:content.... |
| 42be0 | 20 20 20 20 20 20 20 20 20 20 20 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 | ............`[(:type."text".:tex |
| 42c00 | 74 20 2c 6c 61 73 74 2d 6d 65 73 73 61 67 65 20 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 | t.,last-message.:cache_control.( |
| 42c20 | 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 | :type."ephemeral"))])........... |
| 42c40 | 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 | ..(nconc.(aref.(plist-get.(car.( |
| 42c60 | 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 | last.prompts)).:content).0)..... |
| 42c80 | 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 20 | ...............'(:cache_control. |
| 42ca0 | 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 29 29 29 29 29 29 0a 20 20 20 20 70 72 6f | (:type."ephemeral")))))).....pro |
| 42cc0 | 6d 70 74 73 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 | mpts))..(defun.gptel--anthropic- |
| 42ce0 | 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 |
| 42d00 | 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 |
| 42d20 | 68 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 65 20 69 6e | he.Anthropic.API.format...The.in |
| 42d40 | 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 20 28 28 3a | put.is.an.alist.of.the.form..((: |
| 42d60 | 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 61 20 5c 22 | text.\"some.text\")...(:media.\" |
| 42d80 | 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 22 69 6d 61 | /path/to/media.png\".:mime.\"ima |
| 42da0 | 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 78 74 5c 22 | ge/png\")...(:text.\"More.text\" |
| 42dc0 | 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 6f 66 20 65 | ))...The.output.is.a.vector.of.e |
| 42de0 | 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 61 74 65 0a | ntries.in.a.backend-appropriate. |
| 42e00 | 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 61 72 74 20 | format."...(cl-loop....for.part. |
| 42e20 | 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 20 20 77 69 | in.parts....for.n.upfrom.1....wi |
| 42e40 | 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 77 69 74 68 | th.last.=.(length.parts)....with |
| 42e60 | 20 74 79 70 65 0a 20 20 20 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 | .type....for.text.=.(plist-get.p |
| 42e80 | 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f 72 20 6d 69 6d 65 20 3d 20 28 70 6c 69 73 74 2d | art.:text)....for.mime.=.(plist- |
| 42ea0 | 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 0a 20 20 20 66 6f 72 20 6d 65 64 69 61 20 3d 20 28 | get.part.:mime)....for.media.=.( |
| 42ec0 | 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 78 | plist-get.part.:media)....if.tex |
| 42ee0 | 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c 61 | t.do....(and.(or.(=.n.1).(=.n.la |
| 42f00 | 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 | st)).(setq.text.(gptel--trim-pre |
| 42f20 | 66 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 | fixes.text))).and....if.text.... |
| 42f40 | 63 6f 6c 6c 65 63 74 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 74 65 | collect.`(:type."text".:text.,te |
| 42f60 | 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 65 | xt).into.parts-array.end....else |
| 42f80 | 20 69 66 20 6d 65 64 69 61 0a 20 20 20 64 6f 0a 20 20 20 28 73 65 74 71 20 74 79 70 65 20 28 63 | .if.media....do....(setq.type.(c |
| 42fa0 | 6f 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 43 75 72 72 65 6e 74 | ond.....................;Current |
| 42fc0 | 6c 79 20 73 75 70 70 6f 72 74 65 64 3a 20 49 6d 61 67 65 73 20 61 6e 64 20 50 44 46 73 0a 20 20 | ly.supported:.Images.and.PDFs... |
| 42fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 | .............((equal.(substring. |
| 43000 | 6d 69 6d 65 20 30 20 35 29 20 22 69 6d 61 67 65 22 29 20 22 69 6d 61 67 65 22 29 0a 20 20 20 20 | mime.0.5)."image")."image")..... |
| 43020 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 4f 6e 6c 79 20 43 6c 61 75 64 65 20 | ...........;;.NOTE:.Only.Claude. |
| 43040 | 33 2e 35 20 53 6f 6e 6e 65 74 20 73 75 70 70 6f 72 74 73 20 50 44 46 20 64 6f 63 75 6d 65 6e 74 | 3.5.Sonnet.supports.PDF.document |
| 43060 | 73 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 6d 69 6d 65 20 22 | s:................((equal.mime." |
| 43080 | 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 20 22 64 6f 63 75 6d 65 6e 74 22 29 0a 20 20 | application/pdf")."document")... |
| 430a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 28 63 6f 6e 63 61 74 20 22 | .............(t.(error.(concat." |
| 430c0 | 28 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 52 65 71 75 65 73 74 20 61 62 6f 72 74 65 | (gptel-anthropic).Request.aborte |
| 430e0 | 64 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 20 | d:."............................ |
| 43100 | 20 20 20 20 20 20 22 74 72 79 69 6e 67 20 74 6f 20 73 65 6e 64 20 75 6e 73 75 70 70 6f 72 74 65 | ......"trying.to.send.unsupporte |
| 43120 | 64 20 4d 49 4d 45 20 74 79 70 65 20 25 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.MIME.type.%s")................ |
| 43140 | 20 20 20 20 20 20 20 20 20 20 6d 69 6d 65 29 29 29 29 0a 20 20 20 61 6e 64 20 63 6f 6c 6c 65 63 | ..........mime))))....and.collec |
| 43160 | 74 0a 20 20 20 60 28 3a 74 79 70 65 20 2c 74 79 70 65 0a 20 20 20 20 20 3a 73 6f 75 72 63 65 20 | t....`(:type.,type......:source. |
| 43180 | 28 3a 74 79 70 65 20 22 62 61 73 65 36 34 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d | (:type."base64"...............:m |
| 431a0 | 65 64 69 61 5f 74 79 70 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 69 6d 65 | edia_type.,(plist-get.part.:mime |
| 431c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 2c 28 67 70 74 65 6c 2d 2d 62 | )...............:data.,(gptel--b |
| 431e0 | 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 0a 20 20 20 20 20 3b 3b 20 54 4f 44 | ase64-encode.media))......;;.TOD |
| 43200 | 4f 20 4d 61 6b 65 20 6d 65 64 69 61 20 63 61 63 68 69 6e 67 20 61 20 75 73 65 72 20 6f 70 74 69 | O.Make.media.caching.a.user.opti |
| 43220 | 6f 6e 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 | on......,@(and.(gptel--model-cap |
| 43240 | 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 20 27 28 3a 63 61 63 68 65 5f | able-p.'cache).........'(:cache_ |
| 43260 | 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 0a 20 | control.(:type."ephemeral")))).. |
| 43280 | 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 |
| 432a0 | 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 |
| 432c0 | 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 |
| 432e0 | 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). |
| 43300 | 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......................... |
| 43320 | 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- |
| 43340 | 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 |
| 43360 | 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. |
| 43380 | 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- |
| 433a0 | 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. |
| 433c0 | 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."...( |
| 433e0 | 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 |
| 43400 | 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 |
| 43420 | 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 |
| 43440 | 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 |
| 43460 | 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 |
| 43480 | 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)....... |
| 434a0 | 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.......... |
| 434c0 | 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 |
| 434e0 | 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)....... |
| 43500 | 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 |
| 43520 | 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 |
| 43540 | 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 |
| 43560 | 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 |
| 43580 | 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).................... |
| 435a0 | 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)))).............( |
| 435c0 | 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 |
| 435e0 | 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 |
| 43600 | 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 |
| 43620 | 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) |
| 43640 | 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 |
| 43660 | 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 |
| 43680 | 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)). |
| 436a0 | 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 |
| 436c0 | 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 |
| 436e0 | 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)))........................ |
| 43700 | 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". |
| 43720 | 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))................ |
| 43740 | 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) |
| 43760 | 0a 20 20 20 20 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 |
| 43780 | 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 |
| 437a0 | 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))))..; |
| 437c0 | 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 |
| 437e0 | 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 |
| 43800 | 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 |
| 43820 | 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).;;............... |
| 43840 | 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.;;...... |
| 43860 | 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 |
| 43880 | 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)).;;....... |
| 438a0 | 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.`(( |
| 438c0 | 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)).; |
| 438e0 | 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 | ;............................... |
| 43900 | 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)).;;.............. |
| 43920 | 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))).;;.... |
| 43940 | 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 |
| 43960 | 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 |
| 43980 | 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- |
| 439a0 | 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 |
| 439c0 | 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 |
| 439e0 | 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 |
| 43a00 | 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 |
| 43a20 | 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 |
| 43a40 | 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 |
| 43a60 | 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 |
| 43a80 | 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 |
| 43aa0 | 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...... |
| 43ac0 | 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 |
| 43ae0 | 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 2d 35 2d 73 6f 6e | e."2025-02").....(claude-3-5-son |
| 43b00 | 6e 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 | net-20241022......:description." |
| 43b20 | 48 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 | Highest.level.of.intelligence.an |
| 43b40 | 64 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 | d.capability"......:capabilities |
| 43b60 | 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 |
| 43b80 | 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 |
| 43ba0 | 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 |
| 43bc0 | 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 |
| 43be0 | 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...... |
| 43c00 | 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 |
| 43c20 | 65 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 | e."2024-04").....(claude-3-5-son |
| 43c40 | 6e 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 | net-20240620......:description." |
| 43c60 | 48 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 | Highest.level.of.intelligence.an |
| 43c80 | 64 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 | d.capability.(earlier.version)". |
| 43ca0 | 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 |
| 43cc0 | 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 |
| 43ce0 | 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" |
| 43d00 | 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 |
| 43d20 | 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...... |
| 43d40 | 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 |
| 43d60 | 65 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 | e."2024-04").....(claude-3-5-hai |
| 43d80 | 6b 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 | ku-20241022......:description."I |
| 43da0 | 6e 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 | ntelligence.at.blazing.speeds".. |
| 43dc0 | 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 63 61 63 68 | ....:capabilities.(tool-use.cach |
| 43de0 | 65 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 | e)......:context-window.200..... |
| 43e00 | 20 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 | .:input-cost.1.00......:output-c |
| 43e20 | 6f 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 | ost.5.00......:cutoff-date."2024 |
| 43e40 | 2d 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 | -07").....(claude-3-opus-2024022 |
| 43e60 | 39 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 | 9......:description."Top-level.p |
| 43e80 | 65 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 | erformance,.intelligence,.fluenc |
| 43ea0 | 79 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 | y,.and.understanding"......:capa |
| 43ec0 | 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 63 61 63 68 65 29 0a | bilities.(media.tool-use.cache). |
| 43ee0 | 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"." |
| 43f00 | 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 |
| 43f20 | 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 20 20 | bp")......:context-window.200... |
| 43f40 | 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 74 2d 63 | ...:input-cost.15......:output-c |
| 43f60 | 6f 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 | ost.75......:cutoff-date."2023-0 |
| 43f80 | 38 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 | 8").....(claude-3-sonnet-2024022 |
| 43fa0 | 39 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 | 9......:description."Balance.of. |
| 43fc0 | 69 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 | intelligence.and.speed.(legacy.m |
| 43fe0 | 6f 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 | odel)"......:capabilities.(media |
| 44000 | 20 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 | .tool-use)......:mime-types.("im |
| 44020 | 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 66 | age/jpeg"."image/png"."image/gif |
| 44040 | 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 77 69 | "."image/webp")......:context-wi |
| 44060 | 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 20 20 20 | ndow.200......:input-cost.3..... |
| 44080 | 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 2d 64 61 | .:output-cost.15......:cutoff-da |
| 440a0 | 74 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 | te."2023-08").....(claude-3-haik |
| 440c0 | 75 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 | u-20240307......:description."Fa |
| 440e0 | 73 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 | st.and.most.compact.model.for.ne |
| 44100 | 61 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 | ar-instant.responsiveness"...... |
| 44120 | 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 29 0a 20 | :capabilities.(tool-use.cache).. |
| 44140 | 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 6e | ....:context-window.200......:in |
| 44160 | 70 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 | put-cost.0.25......:output-cost. |
| 44180 | 31 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 | 1.25......:cutoff-date."2023-08" |
| 441a0 | 29 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 | ))..."List.of.available.Anthropi |
| 441c0 | 63 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 | c.models.and.associated.properti |
| 441e0 | 65 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 | es..Keys:..-.`:description':.a.b |
| 44200 | 72 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 | rief.description.of.the.model... |
| 44220 | 2d 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 | -.`:capabilities':.a.list.of.cap |
| 44240 | 61 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 | abilities.supported.by.the.model |
| 44260 | 2e 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 | ...-.`:mime-types':.a.list.of.su |
| 44280 | 70 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 | pported.MIME.types.for.media.fil |
| 442a0 | 65 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 | es...-.`:context-window':.the.co |
| 442c0 | 6e 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 | ntext.window.size,.in.thousands. |
| 442e0 | 6f 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 | of.tokens...-.`:input-cost':.the |
| 44300 | 20 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 | .input.cost,.in.US.dollars.per.m |
| 44320 | 69 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 | illion.tokens...-.`:output-cost' |
| 44340 | 3a 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 | :.the.output.cost,.in.US.dollars |
| 44360 | 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 63 75 74 6f 66 66 | .per.million.tokens...-.`:cutoff |
| 44380 | 2d 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 | -date':.the.knowledge.cutoff.dat |
| 443a0 | 65 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 | e...-.`:request-params':.a.plist |
| 443c0 | 20 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 | .of.additional.request.parameter |
| 443e0 | 73 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 | s.to...include.when.using.this.m |
| 44400 | 6f 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 | odel...Information.about.the.Ant |
| 44420 | 68 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 | hropic.models.was.obtained.from. |
| 44440 | 74 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 | the.following.comparison.table:. |
| 44460 | 0a 3c 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 65 6e 2f | .<https://docs.anthropic.com/en/ |
| 44480 | 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 6c 2d 63 | docs/about-claude/models#model-c |
| 444a0 | 6f 6d 70 61 72 69 73 6f 6e 2d 74 61 62 6c 65 3e 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f | omparison-table>")..;;;###autolo |
| 444c0 | 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 6f 70 69 | ad.(cl-defun.gptel-make-anthropi |
| 444e0 | 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 72 65 61 | c.....(name.&key.curl-args.strea |
| 44500 | 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 20 20 28 | m.key.request-params...........( |
| 44520 | 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 28 77 68 | header............(lambda.().(wh |
| 44540 | 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 2d 6b 65 | en-let*.((key.(gptel--get-api-ke |
| 44560 | 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 2d 61 70 | y)))....................`(("x-ap |
| 44580 | 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 20 20 20 | i-key"...,key).................. |
| 445a0 | 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 30 32 33 | ....("anthropic-version"..."2023 |
| 445c0 | 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 20 28 22 | -06-01")......................(" |
| 445e0 | 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 30 39 2d | anthropic-beta"..."pdfs-2024-09- |
| 44600 | 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 6e 74 68 | 25")......................("anth |
| 44620 | 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 2d 32 30 | ropic-beta"..."prompt-caching-20 |
| 44640 | 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 65 6c 73 | 24-07-31")))))...........(models |
| 44660 | 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 20 20 20 | .gptel--anthropic-models)....... |
| 44680 | 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 29 0a 20 | ....(host."api.anthropic.com").. |
| 446a0 | 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 20 20 20 | .........(protocol."https")..... |
| 446c0 | 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 22 29 29 | ......(endpoint."/v1/messages")) |
| 446e0 | 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 2d 63 6f | ..."Register.an.Anthropic.API-co |
| 44700 | 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 74 68 20 | mpatible.backend.for.gptel.with. |
| 44720 | 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 52 4c 2d | NAME...Keyword.arguments:..CURL- |
| 44740 | 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 61 64 64 | ARGS.(optional).is.a.list.of.add |
| 44760 | 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 20 28 6f | itional.Curl.arguments...HOST.(o |
| 44780 | 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 70 69 2e | ptional).is.the.API.host,.\"api. |
| 447a0 | 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 4d 4f 44 | anthropic.com\".by.default...MOD |
| 447c0 | 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 64 65 6c | ELS.is.a.list.of.available.model |
| 447e0 | 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 6c 6c 79 | .names,.as.symbols..Additionally |
| 44800 | 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 4c 4d 20 | ,.you.can.specify.supported.LLM. |
| 44820 | 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 6f 6f 6c | capabilities.like.vision.or.tool |
| 44840 | 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 74 68 65 | -use.by.appending.a.plist.to.the |
| 44860 | 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 20 69 6e | .model.with.more.information,.in |
| 44880 | 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 73 74 29 | .the.form...(model-name...plist) |
| 448a0 | 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 6f 67 6e | ..For.a.list.of.currently.recogn |
| 448c0 | 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 61 6e 74 | ized.plist.keys,.see.`gptel--ant |
| 448e0 | 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 20 61 20 | hropic-models'..An.example.of.a. |
| 44900 | 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 |
| 44920 | 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.\\=' |
| 44940 | 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 20 20 20 | (claude-3-haiku-20240307........ |
| 44960 | 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 2d 33 2d | .......;Simple.specs...claude-3- |
| 44980 | 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 6f 6e 6e | opus-20240229...(claude-3-5-sonn |
| 449a0 | 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 70 65 63 | et-20240620...........;Full.spec |
| 449c0 | 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 66 20 69 | ....:description..\"Balance.of.i |
| 449e0 | 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 61 70 61 | ntelligence.and.speed\"....:capa |
| 44a00 | 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 20 3a 6d | bilities.(media.tool.json)....:m |
| 44a20 | 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 5c 22 69 | ime-types....(\"image/jpeg\".\"i |
| 44a40 | 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 61 67 65 | mage/png\".\"image/gif\".\"image |
| 44a60 | 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 61 6e 20 | /webp\")))..STREAM.is.a.boolean. |
| 44a80 | 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 64 | to.toggle.streaming.responses,.d |
| 44aa0 | 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 74 | efaults.to.false...PROTOCOL.(opt |
| 44ac0 | 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 68 | ional).specifies.the.protocol,.h |
| 44ae0 | 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 69 | ttps.by.default...ENDPOINT.(opti |
| 44b00 | 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 6f | onal).is.the.API.endpoint.for.co |
| 44b20 | 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 73 | mpletions,.defaults.to.\"/v1/mes |
| 44b40 | 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 66 | sages\"...HEADER.(optional).is.f |
| 44b60 | 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 |
| 44b80 | 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 20 61 | th.each.request...It.should.be.a |
| 44ba0 | 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 |
| 44bc0 | 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 74 2d 54 | s.an.alist,.like:..((\"Content-T |
| 44be0 | 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 29 0a 0a | ype\"...\"application/json\")).. |
| 44c00 | 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 20 69 73 | KEY.is.a.variable.whose.value.is |
| 44c20 | 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 74 0a 72 | .the.API.key,.or.function.that.r |
| 44c40 | 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 20 | eturns.the.key...REQUEST-PARAMS. |
| 44c60 | 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 6f | (optional).is.a.plist.of.additio |
| 44c80 | 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 20 | nal.HTTP.request.parameters.(as. |
| 44ca0 | 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 64 | plist.keys).and.values.supported |
| 44cc0 | 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 70 | .by.the.API...Use.these.to.set.p |
| 44ce0 | 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 72 | arameters.that.gptel.does.not.pr |
| 44d00 | 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 6c | ovide.user.options.for."...(decl |
| 44d20 | 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 64 | are.(indent.1))...(let.((backend |
| 44d40 | 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 20 20 20 | .(gptel--make-anthropic......... |
| 44d60 | 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 73 0a 20 | ..........:curl-args.curl-args.. |
| 44d80 | 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 20 20 20 | .................:name.name..... |
| 44da0 | 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 20 20 20 | ..............:host.host........ |
| 44dc0 | 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 20 20 20 | ...........:header.header....... |
| 44de0 | 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 20 20 20 | ............:key.key............ |
| 44e00 | 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 73 2d 6d | .......:models.(gptel--process-m |
| 44e20 | 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 20 20 20 | odels.models)................... |
| 44e40 | 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 20 20 20 | :protocol.protocol.............. |
| 44e60 | 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 20 20 20 | .....:endpoint.endpoint......... |
| 44e80 | 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 20 20 20 | ..........:stream.stream........ |
| 44ea0 | 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 71 75 65 | ...........:request-params.reque |
| 44ec0 | 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 75 72 6c | st-params...................:url |
| 44ee0 | 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 20 20 20 | .(if.protocol................... |
| 44f00 | 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 2f 22 20 | .........(concat.protocol."://". |
| 44f20 | 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 20 20 20 | host.endpoint).................. |
| 44f40 | 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 29 29 29 | ........(concat.host.endpoint))) |
| 44f60 | 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 74 | )).....(prog1.backend.......(set |
| 44f80 | 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 62 | f.(alist-get.name.gptel--known-b |
| 44fa0 | 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 6e | ackends........................n |
| 44fc0 | 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 20 20 20 | il.nil.#'equal)................. |
| 44fe0 | 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 6c 2d 61 | ..backend))))..(provide.'gptel-a |
| 45000 | 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 2e 65 6c | nthropic).;;;.gptel-anthropic.el |
| 45020 | 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 00 00 00 00 00 00 | .ends.here...................... |
| 45040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 450a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 450c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 450e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 451a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 451c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 451e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45200 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/LICENSE............. |
| 45220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45260 | 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 |
| 45280 | 30 31 30 34 35 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 33 31 31 00 20 30 00 00 00 | 0104511.00000000000.012311..0... |
| 452a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 452c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 452e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45300 | 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................... |
| 45320 | 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................... |
| 45340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 453a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 453c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 453e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 45400 | 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. |
| 45420 | 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.................. |
| 45440 | 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... |
| 45460 | 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 |
| 45480 | 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 |
| 454a0 | 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 |
| 454c0 | 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 |
| 454e0 | 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 |
| 45500 | 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.... |
| 45520 | 20 20 20 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 |
| 45540 | 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 |
| 45560 | 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 |
| 45580 | 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 |
| 455a0 | 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 |
| 455c0 | 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 |
| 455e0 | 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 |
| 45600 | 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. |
| 45620 | 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 |
| 45640 | 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 |
| 45660 | 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 |
| 45680 | 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 |
| 456a0 | 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 |
| 456c0 | 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 |
| 456e0 | 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 |
| 45700 | 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 |
| 45720 | 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 |
| 45740 | 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 |
| 45760 | 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 |
| 45780 | 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 |
| 457a0 | 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 |
| 457c0 | 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 |
| 457e0 | 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 |
| 45800 | 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 |
| 45820 | 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 |
| 45840 | 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 |
| 45860 | 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 |
| 45880 | 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 |
| 458a0 | 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. |
| 458c0 | 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. |
| 458e0 | 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 |
| 45900 | 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 |
| 45920 | 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 |
| 45940 | 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 |
| 45960 | 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 |
| 45980 | 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 |
| 459a0 | 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 |
| 459c0 | 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. |
| 459e0 | 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 |
| 45a00 | 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 |
| 45a20 | 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 |
| 45a40 | 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 |
| 45a60 | 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 |
| 45a80 | 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 |
| 45aa0 | 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. |
| 45ac0 | 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 |
| 45ae0 | 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 |
| 45b00 | 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 |
| 45b20 | 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 |
| 45b40 | 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 |
| 45b60 | 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 |
| 45b80 | 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 |
| 45ba0 | 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 |
| 45bc0 | 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 |
| 45be0 | 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). |
| 45c00 | 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 |
| 45c20 | 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 |
| 45c40 | 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. |
| 45c60 | 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 |
| 45c80 | 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 |
| 45ca0 | 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. |
| 45cc0 | 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 |
| 45ce0 | 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. |
| 45d00 | 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. |
| 45d20 | 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 |
| 45d40 | 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 |
| 45d60 | 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 |
| 45d80 | 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 |
| 45da0 | 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 |
| 45dc0 | 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 |
| 45de0 | 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 |
| 45e00 | 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 |
| 45e20 | 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. |
| 45e40 | 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 |
| 45e60 | 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 |
| 45e80 | 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 |
| 45ea0 | 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 |
| 45ec0 | 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 |
| 45ee0 | 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 |
| 45f00 | 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 |
| 45f20 | 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. |
| 45f40 | 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 |
| 45f60 | 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.. |
| 45f80 | 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 |
| 45fa0 | 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 |
| 45fc0 | 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. |
| 45fe0 | 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 |
| 46000 | 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 |
| 46020 | 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 |
| 46040 | 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 |
| 46060 | 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 |
| 46080 | 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 |
| 460a0 | 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 |
| 460c0 | 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 |
| 460e0 | 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 |
| 46100 | 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. |
| 46120 | 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 |
| 46140 | 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 |
| 46160 | 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 |
| 46180 | 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 |
| 461a0 | 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 |
| 461c0 | 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 |
| 461e0 | 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 |
| 46200 | 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 |
| 46220 | 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........................ |
| 46240 | 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 |
| 46260 | 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 |
| 46280 | 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 |
| 462a0 | 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 |
| 462c0 | 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 |
| 462e0 | 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 |
| 46300 | 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 |
| 46320 | 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 |
| 46340 | 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 |
| 46360 | 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. |
| 46380 | 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 |
| 463a0 | 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 |
| 463c0 | 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. |
| 463e0 | 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 |
| 46400 | 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 |
| 46420 | 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 |
| 46440 | 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. |
| 46460 | 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 |
| 46480 | 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 |
| 464a0 | 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. |
| 464c0 | 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 |
| 464e0 | 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 |
| 46500 | 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 |
| 46520 | 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... |
| 46540 | 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 |
| 46560 | 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 |
| 46580 | 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 |
| 465a0 | 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 |
| 465c0 | 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 |
| 465e0 | 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 |
| 46600 | 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 |
| 46620 | 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 |
| 46640 | 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 |
| 46660 | 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. |
| 46680 | 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. |
| 466a0 | 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. |
| 466c0 | 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 |
| 466e0 | 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 |
| 46700 | 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. |
| 46720 | 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 |
| 46740 | 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 |
| 46760 | 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 |
| 46780 | 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 |
| 467a0 | 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 |
| 467c0 | 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" |
| 467e0 | 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. |
| 46800 | 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 |
| 46820 | 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 |
| 46840 | 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,. |
| 46860 | 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 |
| 46880 | 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 |
| 468a0 | 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 |
| 468c0 | 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 |
| 468e0 | 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 |
| 46900 | 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 |
| 46920 | 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 |
| 46940 | 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 |
| 46960 | 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, |
| 46980 | 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 |
| 469a0 | 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 |
| 469c0 | 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. |
| 469e0 | 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. |
| 46a00 | 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 |
| 46a20 | 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 |
| 46a40 | 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.. |
| 46a60 | 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. |
| 46a80 | 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 |
| 46aa0 | 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 |
| 46ac0 | 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. |
| 46ae0 | 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 |
| 46b00 | 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 |
| 46b20 | 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. |
| 46b40 | 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 |
| 46b60 | 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 |
| 46b80 | 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 |
| 46ba0 | 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 |
| 46bc0 | 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 |
| 46be0 | 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 |
| 46c00 | 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 |
| 46c20 | 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 |
| 46c40 | 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 |
| 46c60 | 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 |
| 46c80 | 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 |
| 46ca0 | 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 |
| 46cc0 | 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 |
| 46ce0 | 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 |
| 46d00 | 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 |
| 46d20 | 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 |
| 46d40 | 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 |
| 46d60 | 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 |
| 46d80 | 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 |
| 46da0 | 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 |
| 46dc0 | 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 |
| 46de0 | 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 |
| 46e00 | 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 |
| 46e20 | 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. |
| 46e40 | 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 |
| 46e60 | 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, |
| 46e80 | 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 |
| 46ea0 | 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. |
| 46ec0 | 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 |
| 46ee0 | 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 |
| 46f00 | 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' |
| 46f20 | 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 |
| 46f40 | 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 |
| 46f60 | 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 |
| 46f80 | 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. |
| 46fa0 | 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 |
| 46fc0 | 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 |
| 46fe0 | 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 |
| 47000 | 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 |
| 47020 | 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, |
| 47040 | 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. |
| 47060 | 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 |
| 47080 | 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 |
| 470a0 | 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,. |
| 470c0 | 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 |
| 470e0 | 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 |
| 47100 | 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 |
| 47120 | 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 |
| 47140 | 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 |
| 47160 | 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 |
| 47180 | 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. |
| 471a0 | 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 |
| 471c0 | 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 |
| 471e0 | 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 |
| 47200 | 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. |
| 47220 | 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 |
| 47240 | 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 |
| 47260 | 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,. |
| 47280 | 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 |
| 472a0 | 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 |
| 472c0 | 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 |
| 472e0 | 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 |
| 47300 | 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 |
| 47320 | 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 |
| 47340 | 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 |
| 47360 | 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,. |
| 47380 | 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 |
| 473a0 | 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 |
| 473c0 | 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 |
| 473e0 | 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 |
| 47400 | 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 |
| 47420 | 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 |
| 47440 | 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 |
| 47460 | 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. |
| 47480 | 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 |
| 474a0 | 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 |
| 474c0 | 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 |
| 474e0 | 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 |
| 47500 | 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 |
| 47520 | 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 |
| 47540 | 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. |
| 47560 | 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 |
| 47580 | 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 |
| 475a0 | 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 |
| 475c0 | 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 |
| 475e0 | 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 |
| 47600 | 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 |
| 47620 | 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 |
| 47640 | 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 |
| 47660 | 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. |
| 47680 | 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 |
| 476a0 | 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 |
| 476c0 | 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 |
| 476e0 | 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 |
| 47700 | 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 |
| 47720 | 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 |
| 47740 | 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. |
| 47760 | 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 |
| 47780 | 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 |
| 477a0 | 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 |
| 477c0 | 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 |
| 477e0 | 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 |
| 47800 | 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. |
| 47820 | 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 |
| 47840 | 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 |
| 47860 | 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 |
| 47880 | 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 |
| 478a0 | 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 |
| 478c0 | 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 |
| 478e0 | 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 |
| 47900 | 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 |
| 47920 | 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 |
| 47940 | 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 |
| 47960 | 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 |
| 47980 | 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. |
| 479a0 | 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. |
| 479c0 | 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 |
| 479e0 | 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 |
| 47a00 | 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 |
| 47a20 | 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 |
| 47a40 | 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 |
| 47a60 | 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 |
| 47a80 | 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 |
| 47aa0 | 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 |
| 47ac0 | 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 |
| 47ae0 | 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 |
| 47b00 | 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 |
| 47b20 | 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 |
| 47b40 | 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 |
| 47b60 | 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 |
| 47b80 | 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 |
| 47ba0 | 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 |
| 47bc0 | 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 |
| 47be0 | 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 |
| 47c00 | 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. |
| 47c20 | 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. |
| 47c40 | 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 |
| 47c60 | 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 |
| 47c80 | 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. |
| 47ca0 | 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 |
| 47cc0 | 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. |
| 47ce0 | 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 |
| 47d00 | 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. |
| 47d20 | 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 |
| 47d40 | 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 |
| 47d60 | 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 |
| 47d80 | 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. |
| 47da0 | 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. |
| 47dc0 | 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 |
| 47de0 | 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 |
| 47e00 | 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. |
| 47e20 | 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). |
| 47e40 | 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 |
| 47e60 | 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 |
| 47e80 | 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 |
| 47ea0 | 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. |
| 47ec0 | 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 |
| 47ee0 | 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 |
| 47f00 | 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". |
| 47f20 | 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 |
| 47f40 | 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 |
| 47f60 | 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 |
| 47f80 | 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 |
| 47fa0 | 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 |
| 47fc0 | 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 |
| 47fe0 | 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 |
| 48000 | 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 |
| 48020 | 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 |
| 48040 | 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 |
| 48060 | 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 |
| 48080 | 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, |
| 480a0 | 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. |
| 480c0 | 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 |
| 480e0 | 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 |
| 48100 | 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 |
| 48120 | 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 |
| 48140 | 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 |
| 48160 | 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 |
| 48180 | 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 |
| 481a0 | 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,. |
| 481c0 | 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 |
| 481e0 | 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 |
| 48200 | 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 |
| 48220 | 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. |
| 48240 | 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 |
| 48260 | 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 |
| 48280 | 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 |
| 482a0 | 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 |
| 482c0 | 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 |
| 482e0 | 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 |
| 48300 | 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. |
| 48320 | 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. |
| 48340 | 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 |
| 48360 | 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 |
| 48380 | 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 |
| 483a0 | 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 |
| 483c0 | 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 |
| 483e0 | 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 |
| 48400 | 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 |
| 48420 | 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 |
| 48440 | 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 |
| 48460 | 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 |
| 48480 | 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,. |
| 484a0 | 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 |
| 484c0 | 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 |
| 484e0 | 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. |
| 48500 | 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:.. |
| 48520 | 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 |
| 48540 | 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 |
| 48560 | 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 |
| 48580 | 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 |
| 485a0 | 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 |
| 485c0 | 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 |
| 485e0 | 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 |
| 48600 | 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 |
| 48620 | 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 |
| 48640 | 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 |
| 48660 | 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. |
| 48680 | 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 |
| 486a0 | 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. |
| 486c0 | 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.... |
| 486e0 | 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 |
| 48700 | 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 |
| 48720 | 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 |
| 48740 | 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 |
| 48760 | 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 |
| 48780 | 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 |
| 487a0 | 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 |
| 487c0 | 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 |
| 487e0 | 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 |
| 48800 | 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 |
| 48820 | 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. |
| 48840 | 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 |
| 48860 | 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 |
| 48880 | 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 |
| 488a0 | 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 |
| 488c0 | 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 |
| 488e0 | 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 |
| 48900 | 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 |
| 48920 | 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 |
| 48940 | 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. |
| 48960 | 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 |
| 48980 | 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 |
| 489a0 | 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 |
| 489c0 | 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. |
| 489e0 | 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 |
| 48a00 | 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 |
| 48a20 | 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 |
| 48a40 | 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 |
| 48a60 | 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 |
| 48a80 | 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 |
| 48aa0 | 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. |
| 48ac0 | 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.... |
| 48ae0 | 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 |
| 48b00 | 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... |
| 48b20 | 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 |
| 48b40 | 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 |
| 48b60 | 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. |
| 48b80 | 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 |
| 48ba0 | 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 |
| 48bc0 | 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. |
| 48be0 | 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 |
| 48c00 | 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,. |
| 48c20 | 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. |
| 48c40 | 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 |
| 48c60 | 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..... |
| 48c80 | 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 |
| 48ca0 | 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 |
| 48cc0 | 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. |
| 48ce0 | 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.. |
| 48d00 | 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 |
| 48d20 | 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 |
| 48d40 | 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 |
| 48d60 | 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 |
| 48d80 | 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. |
| 48da0 | 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. |
| 48dc0 | 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. |
| 48de0 | 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 |
| 48e00 | 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 |
| 48e20 | 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 |
| 48e40 | 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 |
| 48e60 | 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 |
| 48e80 | 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 |
| 48ea0 | 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 |
| 48ec0 | 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 |
| 48ee0 | 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 |
| 48f00 | 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 |
| 48f20 | 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 |
| 48f40 | 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 |
| 48f60 | 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 |
| 48f80 | 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 |
| 48fa0 | 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 |
| 48fc0 | 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 |
| 48fe0 | 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 |
| 49000 | 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. |
| 49020 | 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 |
| 49040 | 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 |
| 49060 | 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 |
| 49080 | 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 |
| 490a0 | 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 |
| 490c0 | 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. |
| 490e0 | 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 |
| 49100 | 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 |
| 49120 | 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 |
| 49140 | 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.. |
| 49160 | 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 |
| 49180 | 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 |
| 491a0 | 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 |
| 491c0 | 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,. |
| 491e0 | 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 |
| 49200 | 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 |
| 49220 | 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 |
| 49240 | 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 |
| 49260 | 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 |
| 49280 | 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 |
| 492a0 | 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 |
| 492c0 | 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 |
| 492e0 | 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 |
| 49300 | 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 |
| 49320 | 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 |
| 49340 | 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. |
| 49360 | 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 |
| 49380 | 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 |
| 493a0 | 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 |
| 493c0 | 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 |
| 493e0 | 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. |
| 49400 | 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 |
| 49420 | 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 |
| 49440 | 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 |
| 49460 | 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 |
| 49480 | 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 |
| 494a0 | 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 |
| 494c0 | 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 |
| 494e0 | 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 |
| 49500 | 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 |
| 49520 | 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 |
| 49540 | 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 |
| 49560 | 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 |
| 49580 | 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 |
| 495a0 | 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 |
| 495c0 | 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 |
| 495e0 | 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 |
| 49600 | 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 |
| 49620 | 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 |
| 49640 | 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 |
| 49660 | 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 |
| 49680 | 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 |
| 496a0 | 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 |
| 496c0 | 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 |
| 496e0 | 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 |
| 49700 | 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 |
| 49720 | 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 |
| 49740 | 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. |
| 49760 | 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 |
| 49780 | 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 |
| 497a0 | 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 |
| 497c0 | 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 |
| 497e0 | 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 |
| 49800 | 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 |
| 49820 | 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 |
| 49840 | 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 |
| 49860 | 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 |
| 49880 | 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 |
| 498a0 | 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 |
| 498c0 | 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 |
| 498e0 | 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 |
| 49900 | 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 |
| 49920 | 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 |
| 49940 | 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. |
| 49960 | 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... |
| 49980 | 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 |
| 499a0 | 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 |
| 499c0 | 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 |
| 499e0 | 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 |
| 49a00 | 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.. |
| 49a20 | 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. |
| 49a40 | 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 |
| 49a60 | 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 |
| 49a80 | 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,. |
| 49aa0 | 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 |
| 49ac0 | 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 |
| 49ae0 | 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 |
| 49b00 | 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. |
| 49b20 | 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 |
| 49b40 | 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 |
| 49b60 | 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. |
| 49b80 | 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 |
| 49ba0 | 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 |
| 49bc0 | 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 |
| 49be0 | 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 |
| 49c00 | 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 |
| 49c20 | 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. |
| 49c40 | 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 |
| 49c60 | 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 |
| 49c80 | 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 |
| 49ca0 | 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 |
| 49cc0 | 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 |
| 49ce0 | 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 |
| 49d00 | 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 |
| 49d20 | 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 |
| 49d40 | 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. |
| 49d60 | 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, |
| 49d80 | 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 |
| 49da0 | 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. |
| 49dc0 | 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 |
| 49de0 | 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. |
| 49e00 | 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:..... |
| 49e20 | 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 |
| 49e40 | 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. |
| 49e60 | 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 |
| 49e80 | 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). |
| 49ea0 | 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 |
| 49ec0 | 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. |
| 49ee0 | 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. |
| 49f00 | 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 |
| 49f20 | 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 |
| 49f40 | 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 |
| 49f60 | 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 |
| 49f80 | 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.. |
| 49fa0 | 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 |
| 49fc0 | 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 |
| 49fe0 | 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 |
| 4a000 | 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 |
| 4a020 | 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 |
| 4a040 | 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 |
| 4a060 | 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 |
| 4a080 | 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 |
| 4a0a0 | 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. |
| 4a0c0 | 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, |
| 4a0e0 | 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 |
| 4a100 | 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 |
| 4a120 | 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. |
| 4a140 | 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. |
| 4a160 | 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 |
| 4a180 | 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 |
| 4a1a0 | 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. |
| 4a1c0 | 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 |
| 4a1e0 | 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 |
| 4a200 | 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... |
| 4a220 | 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... |
| 4a240 | 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 |
| 4a260 | 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 |
| 4a280 | 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 |
| 4a2a0 | 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 |
| 4a2c0 | 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 |
| 4a2e0 | 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 |
| 4a300 | 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 |
| 4a320 | 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. |
| 4a340 | 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 |
| 4a360 | 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 |
| 4a380 | 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 |
| 4a3a0 | 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 |
| 4a3c0 | 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 |
| 4a3e0 | 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 |
| 4a400 | 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. |
| 4a420 | 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 |
| 4a440 | 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. |
| 4a460 | 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 |
| 4a480 | 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 |
| 4a4a0 | 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. |
| 4a4c0 | 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 |
| 4a4e0 | 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, |
| 4a500 | 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 |
| 4a520 | 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,. |
| 4a540 | 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. |
| 4a560 | 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 |
| 4a580 | 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 |
| 4a5a0 | 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 |
| 4a5c0 | 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. |
| 4a5e0 | 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 |
| 4a600 | 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 |
| 4a620 | 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.... |
| 4a640 | 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 |
| 4a660 | 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 |
| 4a680 | 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. |
| 4a6a0 | 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 |
| 4a6c0 | 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 |
| 4a6e0 | 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 |
| 4a700 | 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 |
| 4a720 | 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 |
| 4a740 | 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 |
| 4a760 | 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 |
| 4a780 | 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 |
| 4a7a0 | 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 |
| 4a7c0 | 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 |
| 4a7e0 | 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 |
| 4a800 | 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. |
| 4a820 | 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 |
| 4a840 | 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 |
| 4a860 | 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 |
| 4a880 | 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 |
| 4a8a0 | 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 |
| 4a8c0 | 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. |
| 4a8e0 | 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. |
| 4a900 | 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 |
| 4a920 | 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 |
| 4a940 | 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. |
| 4a960 | 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 |
| 4a980 | 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 |
| 4a9a0 | 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 |
| 4a9c0 | 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 |
| 4a9e0 | 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,. |
| 4aa00 | 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 |
| 4aa20 | 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 |
| 4aa40 | 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. |
| 4aa60 | 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 |
| 4aa80 | 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 |
| 4aaa0 | 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 |
| 4aac0 | 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 |
| 4aae0 | 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 |
| 4ab00 | 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 |
| 4ab20 | 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 |
| 4ab40 | 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 |
| 4ab60 | 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 |
| 4ab80 | 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. |
| 4aba0 | 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 |
| 4abc0 | 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 |
| 4abe0 | 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 |
| 4ac00 | 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 |
| 4ac20 | 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 |
| 4ac40 | 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 |
| 4ac60 | 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 |
| 4ac80 | 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 |
| 4aca0 | 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 |
| 4acc0 | 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 |
| 4ace0 | 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 |
| 4ad00 | 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 |
| 4ad20 | 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 |
| 4ad40 | 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 |
| 4ad60 | 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 |
| 4ad80 | 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,. |
| 4ada0 | 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. |
| 4adc0 | 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 |
| 4ade0 | 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. |
| 4ae00 | 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 |
| 4ae20 | 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 |
| 4ae40 | 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 |
| 4ae60 | 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,. |
| 4ae80 | 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 |
| 4aea0 | 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. |
| 4aec0 | 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 |
| 4aee0 | 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 |
| 4af00 | 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 |
| 4af20 | 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 |
| 4af40 | 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 |
| 4af60 | 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 |
| 4af80 | 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 |
| 4afa0 | 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 |
| 4afc0 | 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 |
| 4afe0 | 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 |
| 4b000 | 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 |
| 4b020 | 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 |
| 4b040 | 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 |
| 4b060 | 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 |
| 4b080 | 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 |
| 4b0a0 | 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 |
| 4b0c0 | 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 |
| 4b0e0 | 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 |
| 4b100 | 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 |
| 4b120 | 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 |
| 4b140 | 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 |
| 4b160 | 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. |
| 4b180 | 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 |
| 4b1a0 | 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 |
| 4b1c0 | 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 |
| 4b1e0 | 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. |
| 4b200 | 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 |
| 4b220 | 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. |
| 4b240 | 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 |
| 4b260 | 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 |
| 4b280 | 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 |
| 4b2a0 | 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) |
| 4b2c0 | 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. |
| 4b2e0 | 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 |
| 4b300 | 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 |
| 4b320 | 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 |
| 4b340 | 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." |
| 4b360 | 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 |
| 4b380 | 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 |
| 4b3a0 | 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 |
| 4b3c0 | 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. |
| 4b3e0 | 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 |
| 4b400 | 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 |
| 4b420 | 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." |
| 4b440 | 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 |
| 4b460 | 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 |
| 4b480 | 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 |
| 4b4a0 | 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 |
| 4b4c0 | 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 |
| 4b4e0 | 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 |
| 4b500 | 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 |
| 4b520 | 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,. |
| 4b540 | 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 |
| 4b560 | 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 |
| 4b580 | 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. |
| 4b5a0 | 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 |
| 4b5c0 | 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 |
| 4b5e0 | 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 |
| 4b600 | 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 |
| 4b620 | 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 |
| 4b640 | 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 |
| 4b660 | 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 |
| 4b680 | 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 |
| 4b6a0 | 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 |
| 4b6c0 | 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. |
| 4b6e0 | 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, |
| 4b700 | 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 |
| 4b720 | 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. |
| 4b740 | 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 |
| 4b760 | 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 |
| 4b780 | 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 |
| 4b7a0 | 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 |
| 4b7c0 | 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. |
| 4b7e0 | 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 |
| 4b800 | 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 |
| 4b820 | 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 |
| 4b840 | 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 |
| 4b860 | 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 |
| 4b880 | 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 |
| 4b8a0 | 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 |
| 4b8c0 | 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 |
| 4b8e0 | 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 |
| 4b900 | 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 |
| 4b920 | 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 |
| 4b940 | 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 |
| 4b960 | 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 |
| 4b980 | 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 |
| 4b9a0 | 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 |
| 4b9c0 | 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 |
| 4b9e0 | 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. |
| 4ba00 | 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 |
| 4ba20 | 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 |
| 4ba40 | 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 |
| 4ba60 | 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 |
| 4ba80 | 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). |
| 4baa0 | 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. |
| 4bac0 | 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 |
| 4bae0 | 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 |
| 4bb00 | 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..." |
| 4bb20 | 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 |
| 4bb40 | 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 |
| 4bb60 | 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 |
| 4bb80 | 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 |
| 4bba0 | 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 |
| 4bbc0 | 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 |
| 4bbe0 | 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 |
| 4bc00 | 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 |
| 4bc20 | 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 |
| 4bc40 | 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 |
| 4bc60 | 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 |
| 4bc80 | 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 |
| 4bca0 | 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 |
| 4bcc0 | 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 |
| 4bce0 | 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 |
| 4bd00 | 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 |
| 4bd20 | 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, |
| 4bd40 | 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 |
| 4bd60 | 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 |
| 4bd80 | 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 |
| 4bda0 | 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 |
| 4bdc0 | 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 |
| 4bde0 | 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. |
| 4be00 | 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 |
| 4be20 | 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 |
| 4be40 | 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 |
| 4be60 | 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 |
| 4be80 | 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. |
| 4bea0 | 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 |
| 4bec0 | 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 |
| 4bee0 | 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. |
| 4bf00 | 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 |
| 4bf20 | 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 |
| 4bf40 | 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 |
| 4bf60 | 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 |
| 4bf80 | 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 |
| 4bfa0 | 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. |
| 4bfc0 | 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 |
| 4bfe0 | 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 |
| 4c000 | 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 |
| 4c020 | 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 |
| 4c040 | 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 |
| 4c060 | 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 |
| 4c080 | 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 |
| 4c0a0 | 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 |
| 4c0c0 | 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 |
| 4c0e0 | 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 |
| 4c100 | 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 |
| 4c120 | 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 |
| 4c140 | 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. |
| 4c160 | 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 |
| 4c180 | 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 |
| 4c1a0 | 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 |
| 4c1c0 | 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 |
| 4c1e0 | 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 |
| 4c200 | 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 |
| 4c220 | 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 |
| 4c240 | 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 |
| 4c260 | 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 |
| 4c280 | 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 |
| 4c2a0 | 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 |
| 4c2c0 | 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 |
| 4c2e0 | 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 |
| 4c300 | 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 |
| 4c320 | 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 |
| 4c340 | 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 |
| 4c360 | 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 |
| 4c380 | 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 |
| 4c3a0 | 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. |
| 4c3c0 | 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, |
| 4c3e0 | 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 |
| 4c400 | 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 |
| 4c420 | 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 |
| 4c440 | 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. |
| 4c460 | 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 |
| 4c480 | 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, |
| 4c4a0 | 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. |
| 4c4c0 | 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 |
| 4c4e0 | 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 |
| 4c500 | 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 |
| 4c520 | 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 |
| 4c540 | 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 |
| 4c560 | 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 |
| 4c580 | 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 |
| 4c5a0 | 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 |
| 4c5c0 | 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 |
| 4c5e0 | 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 |
| 4c600 | 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 |
| 4c620 | 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 |
| 4c640 | 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 |
| 4c660 | 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 |
| 4c680 | 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 |
| 4c6a0 | 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 |
| 4c6c0 | 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 |
| 4c6e0 | 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 |
| 4c700 | 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 |
| 4c720 | 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 |
| 4c740 | 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 |
| 4c760 | 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. |
| 4c780 | 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. |
| 4c7a0 | 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 |
| 4c7c0 | 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 |
| 4c7e0 | 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 |
| 4c800 | 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 |
| 4c820 | 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 |
| 4c840 | 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 |
| 4c860 | 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 |
| 4c880 | 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 |
| 4c8a0 | 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 |
| 4c8c0 | 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. |
| 4c8e0 | 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 |
| 4c900 | 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" |
| 4c920 | 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 |
| 4c940 | 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 |
| 4c960 | 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 |
| 4c980 | 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 |
| 4c9a0 | 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 |
| 4c9c0 | 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 |
| 4c9e0 | 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 |
| 4ca00 | 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 |
| 4ca20 | 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 |
| 4ca40 | 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 |
| 4ca60 | 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 |
| 4ca80 | 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 |
| 4caa0 | 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 |
| 4cac0 | 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. |
| 4cae0 | 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 |
| 4cb00 | 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 |
| 4cb20 | 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 |
| 4cb40 | 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 |
| 4cb60 | 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. |
| 4cb80 | 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 |
| 4cba0 | 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 |
| 4cbc0 | 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 |
| 4cbe0 | 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. |
| 4cc00 | 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. |
| 4cc20 | 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 |
| 4cc40 | 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. |
| 4cc60 | 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,. |
| 4cc80 | 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 |
| 4cca0 | 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 |
| 4ccc0 | 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 |
| 4cce0 | 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 |
| 4cd00 | 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 |
| 4cd20 | 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. |
| 4cd40 | 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, |
| 4cd60 | 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 |
| 4cd80 | 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 |
| 4cda0 | 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 |
| 4cdc0 | 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. |
| 4cde0 | 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 |
| 4ce00 | 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. |
| 4ce20 | 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 |
| 4ce40 | 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 |
| 4ce60 | 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... |
| 4ce80 | 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... |
| 4cea0 | 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 |
| 4cec0 | 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. |
| 4cee0 | 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 |
| 4cf00 | 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 |
| 4cf20 | 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 |
| 4cf40 | 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 |
| 4cf60 | 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 |
| 4cf80 | 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 |
| 4cfa0 | 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. |
| 4cfc0 | 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 |
| 4cfe0 | 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 |
| 4d000 | 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 |
| 4d020 | 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 |
| 4d040 | 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 |
| 4d060 | 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. |
| 4d080 | 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 |
| 4d0a0 | 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 |
| 4d0c0 | 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. |
| 4d0e0 | 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..... |
| 4d100 | 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 |
| 4d120 | 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 |
| 4d140 | 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 |
| 4d160 | 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. |
| 4d180 | 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 |
| 4d1a0 | 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 |
| 4d1c0 | 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 |
| 4d1e0 | 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 |
| 4d200 | 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 |
| 4d220 | 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 |
| 4d240 | 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 |
| 4d260 | 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 |
| 4d280 | 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. |
| 4d2a0 | 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 |
| 4d2c0 | 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........ |
| 4d2e0 | 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 |
| 4d300 | 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 |
| 4d320 | 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 |
| 4d340 | 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 |
| 4d360 | 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. |
| 4d380 | 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 |
| 4d3a0 | 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 |
| 4d3c0 | 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 |
| 4d3e0 | 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 |
| 4d400 | 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 |
| 4d420 | 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. |
| 4d440 | 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 |
| 4d460 | 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. |
| 4d480 | 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 |
| 4d4a0 | 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 |
| 4d4c0 | 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 |
| 4d4e0 | 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 |
| 4d500 | 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 |
| 4d520 | 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 |
| 4d540 | 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.( |
| 4d560 | 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}..... |
| 4d580 | 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:. |
| 4d5a0 | 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 |
| 4d5c0 | 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. |
| 4d5e0 | 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 |
| 4d600 | 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 |
| 4d620 | 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. |
| 4d640 | 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 |
| 4d660 | 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..... |
| 4d680 | 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 |
| 4d6a0 | 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 |
| 4d6c0 | 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;. |
| 4d6e0 | 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 |
| 4d700 | 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 |
| 4d720 | 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 |
| 4d740 | 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 |
| 4d760 | 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 |
| 4d780 | 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. |
| 4d7a0 | 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.. |
| 4d7c0 | 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. |
| 4d7e0 | 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 |
| 4d800 | 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. |
| 4d820 | 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 |
| 4d840 | 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 |
| 4d860 | 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, |
| 4d880 | 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 |
| 4d8a0 | 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 |
| 4d8c0 | 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}.. |
| 4d8e0 | 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} |
| 4d900 | 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 |
| 4d920 | 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 |
| 4d940 | 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 |
| 4d960 | 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 |
| 4d980 | 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 |
| 4d9a0 | 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 |
| 4d9c0 | 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 |
| 4d9e0 | 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 |
| 4da00 | 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 |
| 4da20 | 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 |
| 4da40 | 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 |
| 4da60 | 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 |
| 4da80 | 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 |
| 4daa0 | 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 |
| 4dac0 | 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 |
| 4dae0 | 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 |
| 4db00 | 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 |
| 4db20 | 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 |
| 4db40 | 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. |
| 4db60 | 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. |
| 4db80 | 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 |
| 4dba0 | 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 |
| 4dbc0 | 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 |
| 4dbe0 | 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 |
| 4dc00 | 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 |
| 4dc20 | 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. |
| 4dc40 | 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 |
| 4dc60 | 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 |
| 4dc80 | 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 |
| 4dca0 | 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 |
| 4dcc0 | 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 |
| 4dce0 | 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 |
| 4dd00 | 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 |
| 4dd20 | 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 |
| 4dd40 | 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>......................... |
| 4dd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ddc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 | gptel-0.9.8/gptel-pkg.el........ |
| 4de20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4de60 | 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 |
| 4de80 | 30 30 30 30 37 35 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 32 31 00 20 30 00 00 00 | 0000751.00000000000.013521..0... |
| 4dea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4df00 | 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................... |
| 4df20 | 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................... |
| 4df40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4df60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4df80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4dfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e000 | 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 |
| 4e020 | 20 66 72 6f 6d 20 67 70 74 65 6c 2e 65 6c 20 20 2d 2a 2d 20 6d 6f 64 65 3a 20 6c 69 73 70 2d 64 | .from.gptel.el..-*-.mode:.lisp-d |
| 4e040 | 61 74 61 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 | ata;.no-byte-compile:.t.-*-.(def |
| 4e060 | 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 67 70 74 65 6c 22 20 22 30 2e 39 2e 38 22 20 22 49 6e 74 | ine-package."gptel"."0.9.8"."Int |
| 4e080 | 65 72 61 63 74 20 77 69 74 68 20 43 68 61 74 47 50 54 20 6f 72 20 6f 74 68 65 72 20 4c 4c 4d 73 | eract.with.ChatGPT.or.other.LLMs |
| 4e0a0 | 22 20 27 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 29 20 28 74 72 61 6e 73 69 65 6e 74 20 22 30 | ".'((emacs."27.1").(transient."0 |
| 4e0c0 | 2e 37 2e 34 22 29 20 28 63 6f 6d 70 61 74 20 22 32 39 2e 31 2e 34 2e 31 22 29 29 20 3a 63 6f 6d | .7.4").(compat."29.1.4.1")).:com |
| 4e0e0 | 6d 69 74 20 22 34 63 35 66 37 65 36 39 35 33 63 33 65 34 64 61 63 33 36 62 34 63 39 63 66 34 62 | mit."4c5f7e6953c3e4dac36b4c9cf4b |
| 4e100 | 34 61 32 63 38 35 34 66 65 62 66 61 64 22 20 3a 61 75 74 68 6f 72 73 20 27 28 28 22 4b 61 72 74 | 4a2c854febfad".:authors.'(("Kart |
| 4e120 | 68 69 6b 20 43 68 69 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 | hik.Chikmagalur"..."karthik.chik |
| 4e140 | 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 | magalur@gmail.com")).:maintainer |
| 4e160 | 20 27 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 22 20 2e 20 22 6b 61 72 74 | .'("Karthik.Chikmagalur"..."kart |
| 4e180 | 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 22 29 20 3a 6b 65 79 | hik.chikmagalur@gmail.com").:key |
| 4e1a0 | 77 6f 72 64 73 20 27 28 22 63 6f 6e 76 65 6e 69 65 6e 63 65 22 20 22 74 6f 6f 6c 73 22 29 20 3a | words.'("convenience"."tools").: |
| 4e1c0 | 75 72 6c 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 | url."https://github.com/karthink |
| 4e1e0 | 2f 67 70 74 65 6c 22 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | /gptel")........................ |
| 4e200 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 00 00 00 00 00 | gptel-0.9.8/gptel-gemini.el..... |
| 4e220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e260 | 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 |
| 4e280 | 30 30 35 32 30 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 31 33 00 20 30 00 00 00 | 0052036.00000000000.014213..0... |
| 4e2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e300 | 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................... |
| 4e320 | 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................... |
| 4e340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4e400 | 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. |
| 4e420 | 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- |
| 4e440 | 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 |
| 4e460 | 29 20 32 30 32 33 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 | ).2023..Karthik.Chikmagalur..;;. |
| 4e480 | 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 72 | Author:.Karthik.Chikmagalur.<kar |
| 4e4a0 | 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 0a 3b 3b 20 54 | thikchikmagalur@gmail.com>..;;.T |
| 4e4c0 | 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 3b 20 79 6f | his.program.is.free.software;.yo |
| 4e4e0 | 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 6f 64 | u.can.redistribute.it.and/or.mod |
| 4e500 | 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 20 74 68 65 | ify.;;.it.under.the.terms.of.the |
| 4e520 | 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 73 20 70 | .GNU.General.Public.License.as.p |
| 4e540 | 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 77 61 72 65 | ublished.by.;;.the.Free.Software |
| 4e560 | 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 33 20 6f 66 | .Foundation,.either.version.3.of |
| 4e580 | 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 20 6f 70 74 | .the.License,.or.;;.(at.your.opt |
| 4e5a0 | 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 54 68 69 73 | ion).any.later.version...;;.This |
| 4e5c0 | 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 68 65 20 68 | .program.is.distributed.in.the.h |
| 4e5e0 | 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 3b 3b 20 62 | ope.that.it.will.be.useful,.;;.b |
| 4e600 | 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 68 6f 75 74 | ut.WITHOUT.ANY.WARRANTY;.without |
| 4e620 | 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 66 0a 3b 3b | .even.the.implied.warranty.of.;; |
| 4e640 | 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 46 4f 52 20 | .MERCHANTABILITY.or.FITNESS.FOR. |
| 4e660 | 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 68 65 0a 3b | A.PARTICULAR.PURPOSE...See.the.; |
| 4e680 | 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 20 66 6f 72 | ;.GNU.General.Public.License.for |
| 4e6a0 | 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 64 20 68 61 | .more.details...;;.You.should.ha |
| 4e6c0 | 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 55 20 47 65 | ve.received.a.copy.of.the.GNU.Ge |
| 4e6e0 | 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 67 20 77 69 | neral.Public.License.;;.along.wi |
| 4e700 | 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 65 20 3c 68 | th.this.program...If.not,.see.<h |
| 4e720 | 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 3e 2e 0a 0a | ttps://www.gnu.org/licenses/>... |
| 4e740 | 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 65 20 61 64 | ;;;.Commentary:..;;.This.file.ad |
| 4e760 | 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 50 49 20 74 6f | ds.support.for.the.Gemini.API.to |
| 4e780 | 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 74 65 | .gptel..;;;.Code:.(require.'gpte |
| 4e7a0 | 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 65 71 75 69 72 | l).(require.'cl-generic).(requir |
| 4e7c0 | 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 28 72 65 71 75 | e.'map).(eval-when-compile.(requ |
| 4e7e0 | 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 63 74 69 6f 6e | ire.'cl-lib))..(declare-function |
| 4e800 | 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 70 65 72 74 79 | .prop-match-value."text-property |
| 4e820 | 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 74 65 78 74 | -search").(declare-function.text |
| 4e840 | 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 74 65 78 74 2d | -property-search-backward."text- |
| 4e860 | 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 |
| 4e880 | 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 61 72 65 2d 66 | ion.json-read."json").(declare-f |
| 4e8a0 | 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 70 74 | unction.gptel-context--wrap."gpt |
| 4e8c0 | 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 20 67 | el-context").(declare-function.g |
| 4e8e0 | 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 70 74 | ptel-context--collect-media."gpt |
| 4e900 | 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 62 6a 65 63 74 | el-context").(defvar.json-object |
| 4e920 | 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 74 72 75 63 74 | -type)..;;;.Gemini.(cl-defstruct |
| 4e940 | 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 75 63 74 6f 72 | .....(gptel-gemini.(:constructor |
| 4e960 | 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 20 20 20 20 20 | .gptel--make-gemini)............ |
| 4e980 | 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)............ |
| 4e9a0 | 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)) |
| 4e9c0 | 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 6e 20 74 68 65 | )..;;.TODO:.Using.alt=sse.in.the |
| 4e9e0 | 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 6e 41 49 20 73 | .query.url.generates.an.OpenAI.s |
| 4ea00 | 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 20 77 69 74 68 | tyle.streaming.;;.response,.with |
| 4ea20 | 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 61 79 62 65 20 | .more.immediate.updates...Maybe. |
| 4ea40 | 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 64 0a 3b 3b 20 | we.should.switch.to.that.and.;;. |
| 4ea60 | 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 28 63 6c 2d 64 | rewrite.the.stream.parser?.(cl-d |
| 4ea80 | 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 |
| 4eaa0 | 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 69 6e 66 6f 29 | m.((_backend.gptel-gemini).info) |
| 4eac0 | 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 65 61 6d 2e 0a | ..."Parse.a.Gemini.data.stream.. |
| 4eae0 | 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 63 63 75 6d 75 | .Return.the.text.response.accumu |
| 4eb00 | 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 6f 20 74 68 69 | lated.since.the.last.call.to.thi |
| 4eb20 | 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 6d 75 74 61 74 | s.function...Additionally,.mutat |
| 4eb40 | 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 65 0a 69 6e 66 | e.state.INFO.to.add.tool-use.inf |
| 4eb60 | 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 61 69 6e 73 20 | ormation.if.the.stream.contains. |
| 4eb80 | 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 29 29 0a 20 20 | it."...(let*.((content-strs))... |
| 4eba0 | 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 28 77 | ..(condition-case.nil.........(w |
| 4ebc0 | 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 20 22 7b 22 20 | hile.(prog1.(search-forward."{". |
| 4ebe0 | 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 20 32 39 2e 31 | nil.t).;.while-let.is.Emacs.29.1 |
| 4ec00 | 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 63 6b 77 61 72 | +.only..................(backwar |
| 4ec20 | 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 6d 61 74 63 68 | d-char.1))...........(save-match |
| 4ec40 | 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 2a 20 28 28 72 | -data.............(when-let*.((r |
| 4ec60 | 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 0a 20 20 20 20 | esponse.(gptel--json-read))..... |
| 4ec80 | 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 67 70 74 65 6c | ....................(text.(gptel |
| 4eca0 | 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 20 20 20 | --parse-response................ |
| 4ecc0 | 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. |
| 4ece0 | 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 20 20 20 20 20 | :backend)....................... |
| 4ed00 | 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 6c 75 64 65 29 | .........response.info.'include) |
| 4ed20 | 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 20 63 6f 6e 74 | ))...............(push.text.cont |
| 4ed40 | 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 20 20 20 20 20 | ent-strs)))).......(error....... |
| 4ed60 | 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 67 20 30 29 29 | .(goto-char.(match-beginning.0)) |
| 4ed80 | 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 76 65 72 73 65 | )).....(apply.#'concat.(nreverse |
| 4eda0 | 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 65 74 68 6f 64 | .content-strs))))..(cl-defmethod |
| 4edc0 | 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 65 6e | .gptel--parse-response.((_backen |
| 4ede0 | 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 66 6f 0a 20 20 | d.gptel-gemini).response.info... |
| 4ee00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4ee20 | 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 20 20 22 50 61 | ...&optional.include-text)..."Pa |
| 4ee40 | 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 67 29 20 52 45 | rse.an.Gemini.(non-streaming).RE |
| 4ee60 | 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 74 2e | SPONSE.and.return.response.text. |
| 4ee80 | 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 6e 73 | ..Mutate.state.INFO.with.respons |
| 4eea0 | 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 54 20 69 73 20 | e.metadata...If.INCLUDE-TEXT.is. |
| 4eec0 | 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 65 78 74 20 69 | non-nil,.include.response.text.i |
| 4eee0 | 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 2a 20 28 28 63 | n.the.prompts.list."...(let*.((c |
| 4ef00 | 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 73 65 20 27 28 | and0.(map-nested-elt.response.'( |
| 4ef20 | 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 70 61 72 74 73 | :candidates.0)))..........(parts |
| 4ef40 | 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 6f 6e 74 65 6e | .(map-nested-elt.cand0.'(:conten |
| 4ef60 | 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 20 69 6e 66 6f | t.:parts)))).....(plist-put.info |
| 4ef80 | 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 6e 64 30 20 3a | .:stop-reason.(plist-get.cand0.: |
| 4efa0 | 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 75 74 20 69 6e | finishReason)).....(plist-put.in |
| 4efc0 | 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 20 20 20 20 20 | fo.:output-tokens............... |
| 4efe0 | 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 20 20 20 20 20 | .(map-nested-elt................ |
| 4f000 | 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 3a 63 61 6e 64 | .response.'(:usageMetadata.:cand |
| 4f020 | 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 2d 6c 6f 6f 70 | idatesTokenCount))).....(cl-loop |
| 4f040 | 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 0a 20 20 20 20 | ......for.part.across.parts..... |
| 4f060 | 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 74 65 78 74 29 | .for.tx.=.(plist-get.part.:text) |
| 4f080 | 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 78 20 3a 6e 75 | ......if.(and.tx.(not.(eq.tx.:nu |
| 4f0a0 | 6c 6c 29 29 29 20 63 6f 6c 6c 65 63 74 20 74 78 20 69 6e 74 6f 20 63 6f 6e 74 65 6e 74 2d 73 74 | ll))).collect.tx.into.content-st |
| 4f0c0 | 72 73 0a 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 | rs......else.if.(plist-get.part. |
| 4f0e0 | 3a 66 75 6e 63 74 69 6f 6e 43 61 6c 6c 29 0a 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 70 | :functionCall)......collect.(cop |
| 4f100 | 79 2d 73 65 71 75 65 6e 63 65 20 69 74 29 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 | y-sequence.it).into.tool-use.... |
| 4f120 | 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..finally.do.................... |
| 4f140 | 20 20 20 20 20 3b 41 64 64 20 74 65 78 74 20 61 6e 64 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f | .....;Add.text.and.tool-calls.to |
| 4f160 | 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 74 6f 6f | .prompts.list......(when.(or.too |
| 4f180 | 6c 2d 75 73 65 20 69 6e 63 6c 75 64 65 2d 74 65 78 74 29 0a 20 20 20 20 20 20 20 28 6c 65 74 2a | l-use.include-text)........(let* |
| 4f1a0 | 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 29 29 0a | .((data.(plist-get.info.:data)). |
| 4f1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 73 20 28 70 6c 69 73 74 2d 67 65 | ..............(prompts.(plist-ge |
| 4f1e0 | 74 20 64 61 74 61 20 3a 63 6f 6e 74 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.data.:contents)).............. |
| 4f200 | 20 28 6c 61 73 74 2d 70 72 6f 6d 70 74 20 28 61 72 65 66 20 70 72 6f 6d 70 74 73 20 28 31 2d 20 | .(last-prompt.(aref.prompts.(1-. |
| 4f220 | 28 6c 65 6e 67 74 68 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 | (length.prompts)))))..........(i |
| 4f240 | 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 | f.(equal.(plist-get.last-prompt. |
| 4f260 | 3a 72 6f 6c 65 29 20 22 6d 6f 64 65 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | :role)."model")..............;;. |
| 4f280 | 57 68 65 6e 20 73 74 72 65 61 6d 69 6e 67 2c 20 74 68 65 20 6c 61 73 74 20 70 72 6f 6d 70 74 20 | When.streaming,.the.last.prompt. |
| 4f2a0 | 6d 61 79 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 74 68 65 20 72 6f 6c 65 0a 20 20 20 20 20 20 | may.already.have.the.role....... |
| 4f2c0 | 20 20 20 20 20 20 20 3b 3b 20 22 6d 6f 64 65 6c 22 20 66 72 6f 6d 20 70 72 69 6f 72 20 63 61 6c | .......;;."model".from.prior.cal |
| 4f2e0 | 6c 73 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 20 20 41 70 70 65 6e 64 20 74 6f 20 | ls.to.this.function...Append.to. |
| 4f300 | 69 74 73 20 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 74 65 61 | its.parts..............;;.instea |
| 4f320 | 64 20 6f 66 20 61 64 64 69 6e 67 20 61 20 6e 65 77 20 6d 6f 64 65 6c 20 72 6f 6c 65 20 74 68 65 | d.of.adding.a.new.model.role.the |
| 4f340 | 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 6c 61 73 74 2d | n...............(plist-put.last- |
| 4f360 | 70 72 6f 6d 70 74 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 | prompt.:parts................... |
| 4f380 | 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 6c 61 73 74 2d 70 | ......(vconcat.(plist-get.last-p |
| 4f3a0 | 72 6f 6d 70 74 20 3a 70 61 72 74 73 29 20 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | rompt.:parts).parts))........... |
| 4f3c0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6f | .(plist-put...................;o |
| 4f3e0 | 74 68 65 72 77 69 73 65 20 63 72 65 61 74 65 20 61 20 6e 65 77 20 22 6d 6f 64 65 6c 22 20 72 6f | therwise.create.a.new."model".ro |
| 4f400 | 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 3a 63 6f 6e 74 65 6e 74 73 0a 20 20 | le.............data.:contents... |
| 4f420 | 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 60 28 28 3a 72 | ..........(vconcat.prompts.`((:r |
| 4f440 | 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 74 73 20 2c 70 61 72 74 73 29 29 29 29 29 29 29 | ole."model".:parts.,parts))))))) |
| 4f460 | 0a 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6f 6c 2d 75 73 65 20 20 20 20 20 20 20 20 20 20 20 20 | ......(when.tool-use............ |
| 4f480 | 20 20 20 20 20 20 20 20 3b 43 61 70 74 75 72 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 | ........;Capture.tool.call.data. |
| 4f4a0 | 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | for.running.tools........(plist- |
| 4f4c0 | 70 75 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 | put.info.:tool-use.............. |
| 4f4e0 | 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f | .....(nconc.(plist-get.info.:too |
| 4f500 | 6c 2d 75 73 65 29 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 | l-use).tool-use)))......finally. |
| 4f520 | 72 65 74 75 72 6e 0a 20 20 20 20 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 20 28 61 | return......(and.content-strs.(a |
| 4f540 | 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 73 29 29 29 29 29 0a | pply.#'concat.content-strs))))). |
| 4f560 | 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 61 | .(cl-defmethod.gptel--request-da |
| 4f580 | 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 70 72 6f 6d 70 | ta.((backend.gptel-gemini).promp |
| 4f5a0 | 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 53 20 66 6f 72 20 73 | ts)..."JSON.encode.PROMPTS.for.s |
| 4f5c0 | 65 6e 64 69 6e 67 20 74 6f 20 47 65 6d 69 6e 69 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d | ending.to.Gemini."...(let.((prom |
| 4f5e0 | 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a 63 6f 6e 74 65 6e 74 73 20 5b | pts-plist..........`(:contents.[ |
| 4f600 | 2c 40 70 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 66 65 74 79 53 65 74 | ,@prompts]............:safetySet |
| 4f620 | 74 69 6e 67 73 20 5b 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 | tings.[(:category."HARM_CATEGORY |
| 4f640 | 5f 48 41 52 41 53 53 4d 45 4e 54 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _HARASSMENT".................... |
| 4f660 | 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 4e 4f 4e 45 | ..........:threshold."BLOCK_NONE |
| 4f680 | 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 28 | ").............................( |
| 4f6a0 | 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 53 45 58 55 41 4c 4c | :category."HARM_CATEGORY_SEXUALL |
| 4f6c0 | 59 5f 45 58 50 4c 49 43 49 54 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Y_EXPLICIT"..................... |
| 4f6e0 | 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 4e 4f 4e 45 22 | .........:threshold."BLOCK_NONE" |
| 4f700 | 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 3a | ).............................(: |
| 4f720 | 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 44 41 4e 47 45 52 4f 55 | category."HARM_CATEGORY_DANGEROU |
| 4f740 | 53 5f 43 4f 4e 54 45 4e 54 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | S_CONTENT"...................... |
| 4f760 | 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 4e 4f 4e 45 22 29 | ........:threshold."BLOCK_NONE") |
| 4f780 | 0a 20 20 20 20 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 |
| 4f7a0 | 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 48 41 54 45 5f 53 50 45 45 | ategory."HARM_CATEGORY_HATE_SPEE |
| 4f7c0 | 43 48 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 | CH"............................. |
| 4f7e0 | 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 5d 29 29 0a 20 20 20 | .:threshold."BLOCK_NONE")])).... |
| 4f800 | 20 20 20 20 20 70 61 72 61 6d 73 29 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 2d 73 79 73 74 | .....params).....(if.gptel--syst |
| 4f820 | 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 | em-message.........(plist-put.pr |
| 4f840 | 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d 5f 69 6e 73 74 72 75 63 74 69 6f 6e 0a | ompts-plist.:system_instruction. |
| 4f860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 70 61 72 74 73 20 28 3a 74 65 | ...................`(:parts.(:te |
| 4f880 | 78 74 20 2c 67 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 | xt.,gptel--system-message))))... |
| 4f8a0 | 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 28 77 | ..(when.gptel-use-tools.......(w |
| 4f8c0 | 68 65 6e 20 28 65 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 0a | hen.(eq.gptel-use-tools.'force). |
| 4f8e0 | 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 6c 69 73 74 | ........(plist-put.prompts-plist |
| 4f900 | 20 3a 74 6f 6f 6c 5f 63 6f 6e 66 69 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:tool_config................... |
| 4f920 | 20 27 28 3a 66 75 6e 63 74 69 6f 6e 5f 63 61 6c 6c 69 6e 67 5f 63 6f 6e 66 69 67 20 28 3a 6d 6f | .'(:function_calling_config.(:mo |
| 4f940 | 64 65 20 22 41 4e 59 22 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 | de."ANY")))).......(when.gptel-t |
| 4f960 | 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 74 73 2d | ools.........(plist-put.prompts- |
| 4f980 | 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 20 20 20 | plist.:tools.................... |
| 4f9a0 | 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 70 74 65 | (gptel--parse-tools.backend.gpte |
| 4f9c0 | 6c 2d 74 6f 6f 6c 73 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 | l-tools)))).....(when.gptel-temp |
| 4f9e0 | 65 72 61 74 75 72 65 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 | erature.......(setq.params...... |
| 4fa00 | 20 20 20 20 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 | .......(plist-put.params........ |
| 4fa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 28 6d 61 | ................:temperature.(ma |
| 4fa40 | 78 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 31 2e 30 29 29 29 29 0a 20 20 20 20 | x.gptel-temperature.1.0))))..... |
| 4fa60 | 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 28 73 65 | (when.gptel-max-tokens.......(se |
| 4fa80 | 74 71 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 | tq.params.............(plist-put |
| 4faa0 | 20 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 20 20 20 20 20 3a | .params........................: |
| 4fac0 | 6d 61 78 4f 75 74 70 75 74 54 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 | maxOutputTokens.gptel-max-tokens |
| 4fae0 | 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 28 70 6c 69 73 | ))).....(when.params.......(plis |
| 4fb00 | 74 2d 70 75 74 20 70 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 | t-put.prompts-plist............. |
| 4fb20 | 20 20 20 20 20 3a 67 65 6e 65 72 61 74 69 6f 6e 43 6f 6e 66 69 67 20 70 61 72 61 6d 73 29 29 0a | .....:generationConfig.params)). |
| 4fb40 | 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 77 69 74 68 | ....;;.Merge.request.params.with |
| 4fb60 | 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 20 20 20 28 | .model.and.backend.params......( |
| 4fb80 | 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 6d 70 74 73 | gptel--merge-plists......prompts |
| 4fba0 | 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 65 71 75 65 | -plist......(gptel-backend-reque |
| 4fbc0 | 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 20 20 28 67 | st-params.gptel-backend)......(g |
| 4fbe0 | 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 67 70 74 65 | ptel--model-request-params..gpte |
| 4fc00 | 6c 2d 6d 6f 64 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 | l-model))))..(cl-defmethod.gptel |
| 4fc20 | 2d 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 | --parse-tools.((_backend.gptel-g |
| 4fc40 | 65 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 | emini).tools)..."Parse.TOOLS.to. |
| 4fc60 | 74 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 | the.Gemini.API.tool.definition.s |
| 4fc80 | 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 2d | pec...TOOLS.is.a.list.of.`gptel- |
| 4fca0 | 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 63 6c | tool'.structs,.which.see."...(cl |
| 4fcc0 | 2d 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 | -loop....for.tool.in.(ensure-lis |
| 4fce0 | 74 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 | t.tools)....collect....(list.... |
| 4fd00 | 20 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 | .:name.(gptel-tool-name.tool)... |
| 4fd20 | 20 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 | ..:description.(gptel-tool-descr |
| 4fd40 | 69 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 | iption.tool).....:parameters.... |
| 4fd60 | 20 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 | .(if.(not.(gptel-tool-args.tool) |
| 4fd80 | 29 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 | )..........:null...........;NOTE |
| 4fda0 | 3a 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 | :.Gemini.wants.:null.if.the.func |
| 4fdc0 | 74 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 | tion.takes.no.args.......(list.: |
| 4fde0 | 74 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 3a 70 72 6f 70 65 | type."object".............:prope |
| 4fe00 | 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 70 0a 20 20 20 20 20 | rties.............(cl-loop...... |
| 4fe20 | 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 6c 2d 61 | ........for.arg.in.(gptel-tool-a |
| 4fe40 | 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 72 20 6e 61 6d 65 20 | rgs.tool)..............for.name. |
| 4fe60 | 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 | =.(plist-get.arg.:name)......... |
| 4fe80 | 20 20 20 20 20 66 6f 72 20 74 79 70 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a | .....for.type.=.(plist-get.arg.: |
| 4fea0 | 74 79 70 65 29 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 | type)..............for.newname.= |
| 4fec0 | 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 6d 65 29 0a | .(or.(and.(keywordp.name).name). |
| 4fee0 | 20 20 20 20 20 20 20 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 | ...............................( |
| 4ff00 | 6d 61 6b 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 | make-symbol.(concat.":".name))). |
| 4ff20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 65 6e 75 6d 20 3d 20 28 70 6c 69 73 74 2d 67 | .............for.enum.=.(plist-g |
| 4ff40 | 65 74 20 61 72 67 20 3a 65 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 70 70 65 6e | et.arg.:enum)..............appen |
| 4ff60 | 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.(list.newname................. |
| 4ff80 | 20 20 20 20 20 20 20 20 20 20 60 28 3a 74 79 70 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 61 72 | ..........`(:type.,(plist-get.ar |
| 4ffa0 | 67 20 3a 74 79 70 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 | g.:type)........................ |
| 4ffc0 | 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 61 72 | .....:description.,(plist-get.ar |
| 4ffe0 | 67 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.:description)................. |
| 50000 | 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 69 66 20 65 6e 75 6d 20 28 6c 69 73 74 20 3a 65 6e | ............,@(if.enum.(list.:en |
| 50020 | 75 6d 20 28 76 63 6f 6e 63 61 74 20 65 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | um.(vconcat.enum)))............. |
| 50040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 | ................,@(cond......... |
| 50060 | 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 65 71 75 61 6c 20 74 | .......................((equal.t |
| 50080 | 79 70 65 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 20 20 20 20 | ype."object")................... |
| 500a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 70 61 72 61 6d 65 74 65 72 73 20 | ..............(list.:parameters. |
| 500c0 | 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 70 61 72 61 6d 65 74 65 72 73 29 29 29 0a 20 20 | (plist-get.arg.:parameters)))... |
| 500e0 | 20 20 20 20 20 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 65 | .............................((e |
| 50100 | 71 75 61 6c 20 74 79 70 65 20 22 61 72 72 61 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | qual.type."array").............. |
| 50120 | 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 69 74 65 6d 73 20 | ...................(list.:items. |
| 50140 | 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 69 74 65 6d 73 29 29 29 29 29 29 29 0a 20 20 20 | (plist-get.arg.:items))))))).... |
| 50160 | 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 20 20 20 20 20 28 | .........:required.............( |
| 50180 | 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 | vconcat..............(delq.nil.( |
| 501a0 | 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 20 20 20 20 28 | mapcar.........................( |
| 501c0 | 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 69 73 74 2d 67 65 | lambda.(arg).(and.(not.(plist-ge |
| 501e0 | 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 20 20 20 20 20 20 | t.arg.:optional))............... |
| 50200 | 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 |
| 50220 | 65 74 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 | et.arg.:name)))................. |
| 50240 | 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 6c 29 29 29 | ........(gptel-tool-args.tool))) |
| 50260 | 29 29 29 29 0a 20 20 20 69 6e 74 6f 20 74 6f 6f 6c 2d 73 70 65 63 73 0a 20 20 20 66 69 6e 61 6c | ))))....into.tool-specs....final |
| 50280 | 6c 79 20 72 65 74 75 72 6e 20 60 5b 28 3a 66 75 6e 63 74 69 6f 6e 5f 64 65 63 6c 61 72 61 74 69 | ly.return.`[(:function_declarati |
| 502a0 | 6f 6e 73 20 2c 28 76 63 6f 6e 63 61 74 20 74 6f 6f 6c 2d 73 70 65 63 73 29 29 5d 29 29 0a 0a 28 | ons.,(vconcat.tool-specs))]))..( |
| 502c0 | 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 2d 72 | cl-defmethod.gptel--parse-tool-r |
| 502e0 | 65 73 75 6c 74 73 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 | esults.((_backend.gptel-gemini). |
| 50300 | 74 6f 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 | tool-use)..."Return.a.prompt.con |
| 50320 | 74 61 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 | taining.tool.call.results.in.TOO |
| 50340 | 4c 2d 55 53 45 2e 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 | L-USE."...(list....:role."user". |
| 50360 | 20 20 20 3a 70 61 72 74 73 0a 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 28 6d 61 70 63 61 | ...:parts....(vconcat.....(mapca |
| 50380 | 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)...... |
| 503a0 | 20 20 28 6c 65 74 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 2d | ..(let.((result.(plist-get.tool- |
| 503c0 | 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 28 6e 61 6d | call.:result))..............(nam |
| 503e0 | 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 6d 65 29 29 29 0a | e.(plist-get.tool-call.:name))). |
| 50400 | 20 20 20 20 20 20 20 20 20 60 28 3a 66 75 6e 63 74 69 6f 6e 52 65 73 70 6f 6e 73 65 0a 20 20 20 | .........`(:functionResponse.... |
| 50420 | 20 20 20 20 20 20 20 20 28 3a 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 72 65 73 70 6f 6e 73 65 0a 20 | ........(:name.,name.:response.. |
| 50440 | 20 20 20 20 20 20 20 20 20 20 20 28 3a 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 63 6f 6e 74 65 6e 74 | ...........(:name.,name.:content |
| 50460 | 20 2c 72 65 73 75 6c 74 29 29 29 29 29 0a 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a | .,result)))))......tool-use)))). |
| 50480 | 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f | .(cl-defmethod.gptel--inject-pro |
| 504a0 | 6d 70 74 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 64 61 74 | mpt.((_backend.gptel-gemini).dat |
| 504c0 | 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 6f 6e | a.new-prompt.&optional._position |
| 504e0 | 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 74 69 | )..."Append.NEW-PROMPT.to.existi |
| 50500 | 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 53 65 65 20 67 | ng.prompts.in.query.DATA...See.g |
| 50520 | 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 66 75 6c 6c 20 64 | eneric.implementation.for.full.d |
| 50540 | 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 | ocumentation."...(let.((prompts. |
| 50560 | 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 29 0a 20 20 20 | (plist-get.data.:contents))).... |
| 50580 | 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 74 61 20 3a 63 6f 6e 74 65 6e 74 73 20 28 76 63 6f 6e | .(plist-put.data.:contents.(vcon |
| 505a0 | 63 61 74 20 70 72 6f 6d 70 74 73 20 28 6c 69 73 74 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 29 | cat.prompts.(list.new-prompt)))) |
| 505c0 | 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 6c 69 | )..(cl-defmethod.gptel--parse-li |
| 505e0 | 73 74 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 70 72 6f 6d | st.((_backend.gptel-gemini).prom |
| 50600 | 70 74 2d 6c 69 73 74 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 | pt-list)...(cl-loop.for.text.in. |
| 50620 | 70 72 6f 6d 70 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 | prompt-list............for.role. |
| 50640 | 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 20 69 | =.t.then.(not.role)............i |
| 50660 | 66 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 69 66 20 72 6f 6c 65 0a 20 20 20 20 20 20 | f.text............if.role....... |
| 50680 | 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 | .....collect.(list.:role."user". |
| 506a0 | 3a 70 61 72 74 73 20 60 5b 28 3a 74 65 78 74 20 2c 74 65 78 74 29 5d 29 20 69 6e 74 6f 20 70 72 | :parts.`[(:text.,text)]).into.pr |
| 506c0 | 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 28 6c | ompts............else.collect.(l |
| 506e0 | 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 74 73 20 60 28 3a 74 65 78 74 | ist.:role."model".:parts.`(:text |
| 50700 | 20 2c 74 65 78 74 29 29 20 69 6e 74 6f 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 | .,text)).into.prompts........... |
| 50720 | 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 63 6c 2d 64 | .finally.return.prompts))..(cl-d |
| 50740 | 65 66 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 62 | efmethod.gptel--parse-buffer.((b |
| 50760 | 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d | ackend.gptel-gemini).&optional.m |
| 50780 | 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 |
| 507a0 | 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 69 6e 63 6c 75 64 65 | rev-pt.(point)).........(include |
| 507c0 | 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 65 64 69 61 20 28 6f | -media.(and.gptel-track-media.(o |
| 507e0 | 72 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 64 69 61 | r.(gptel--model-capable-p.'media |
| 50800 | 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 | )............................... |
| 50820 | 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 6d 6f 64 65 | ....................(gptel--mode |
| 50840 | 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 75 72 6c 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f | l-capable-p.'url))))).....(if.(o |
| 50860 | 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 70 6f 6e 73 | r.gptel-mode.gptel-track-respons |
| 50880 | 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 6e 6f 74 20 | e).........(while.(and.(or.(not. |
| 508a0 | 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 20 30 29 29 | max-entries).(>=.max-entries.0)) |
| 508c0 | 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. |
| 508e0 | 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 65 | (previous-single-property-change |
| 50900 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50920 | 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 29 | .(point).'gptel.nil.(point-min)) |
| 50940 | 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 3d 20 28 70 | ).....................(not.(=.(p |
| 50960 | 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 70 63 61 73 | oint).prev-pt)))...........(pcas |
| 50980 | 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 20 27 67 70 | e.(get-char-property.(point).'gp |
| 509a0 | 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 20 20 20 20 | tel).............('response..... |
| 509c0 | 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 74 20 28 67 | .........(when-let*.((content.(g |
| 509e0 | 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 20 20 | ptel--trim-prefixes............. |
| 50a00 | 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 73 | .......................(buffer-s |
| 50a20 | 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 70 | ubstring-no-properties.(point).p |
| 50a40 | 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 75 73 68 20 | rev-pt))))................(push. |
| 50a60 | 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 74 73 20 28 6c 69 73 74 | (list.:role."model".:parts.(list |
| 50a80 | 20 3a 74 65 78 74 20 63 6f 6e 74 65 6e 74 29 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 | .:text.content)).prompts)))..... |
| 50aa0 | 20 20 20 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 | ........(`(tool...,_id)......... |
| 50ac0 | 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............ |
| 50ae0 | 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 20 20 20 | ....(condition-case.nil......... |
| 50b00 | 20 20 20 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 | ...........(let*.((tool-call.(re |
| 50b20 | 61 64 20 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 | ad.(current-buffer)))........... |
| 50b40 | 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 69 73 74 2d 67 65 74 | ................(name.(plist-get |
| 50b60 | 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 20 20 20 20 20 20 20 | .tool-call.:name)).............. |
| 50b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 20 28 70 6c 69 73 74 2d | .............(arguments..(plist- |
| 50ba0 | 67 65 74 20 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 | get.tool-call.:args))).......... |
| 50bc0 | 20 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 | ............(plist-put.tool-call |
| 50be0 | 20 3a 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 | .:result........................ |
| 50c00 | 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 |
| 50c20 | 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........... |
| 50c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50c60 | 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 20 20 | ....(point).prev-pt))).......... |
| 50c80 | 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 72 73 65 2d | ............(push.(gptel--parse- |
| 50ca0 | 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 2d | tool-results.backend.(list.tool- |
| 50cc0 | 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 20 20 20 20 | call)).......................... |
| 50ce0 | 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 20 20 | ..prompts)...................... |
| 50d00 | 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 0a 20 20 20 20 20 20 | (push.(list.:role."model"....... |
| 50d20 | 20 20 20 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 70 61 72 74 | ...........................:part |
| 50d40 | 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............................... |
| 50d60 | 20 20 20 28 76 65 63 74 6f 72 20 60 28 3a 66 75 6e 63 74 69 6f 6e 43 61 6c 6c 20 28 20 3a 6e 61 | ...(vector.`(:functionCall.(.:na |
| 50d80 | 6d 65 20 2c 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 | me.,name........................ |
| 50da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 50dc0 | 20 20 20 20 3a 61 72 67 73 20 2c 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 | ....:args.,arguments))))........ |
| 50de0 | 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 29 29 0a 20 20 | ....................prompts))... |
| 50e00 | 20 20 20 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 | ...............((end-of-file.inv |
| 50e20 | 61 6c 69 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 | alid-read-syntax)............... |
| 50e40 | 20 20 20 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 | ....(message.(format."Could.not. |
| 50e60 | 70 61 72 73 65 20 74 6f 6f 6c 2d 63 61 6c 6c 20 6f 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 | parse.tool-call.on.line.%s"..... |
| 50e80 | 20 20 20 20 20 20 20 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 | ...............................( |
| 50ea0 | 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 29 29 29 | line-number-at-pos.(point))))))) |
| 50ec0 | 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 20 20 20 | ).............('ignore)......... |
| 50ee0 | 20 20 20 20 28 27 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 63 6c 75 | ....('nil..............(if.inclu |
| 50f00 | 64 65 2d 6d 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 | de-media..................(when- |
| 50f20 | 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 70 61 | let*.((content.(gptel--gemini-pa |
| 50f40 | 72 73 65 2d 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 | rse-multipart................... |
| 50f60 | 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 61 72 | .....................(gptel--par |
| 50f80 | 73 65 2d 6d 65 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 | se-media-links.major-mode.(point |
| 50fa0 | 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 20 | ).prev-pt))))................... |
| 50fc0 | 20 28 77 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 | .(when.(>.(length.content).0)... |
| 50fe0 | 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 20 3a | ...................(push.(list.: |
| 51000 | 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 70 61 72 74 73 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d | role."user".:parts.content).prom |
| 51020 | 70 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 | pts)))................(when-let* |
| 51040 | 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 78 65 73 | .((content.(gptel--trim-prefixes |
| 51060 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 51080 | 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 6f 70 65 | ......(buffer-substring-no-prope |
| 510a0 | 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........................... |
| 510c0 | 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 29 0a | ............(point).prev-pt)))). |
| 510e0 | 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 6f | .................(push.(list.:ro |
| 51100 | 6c 65 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 63 6f 6e 74 65 | le."user".:parts.`[(:text.,conte |
| 51120 | 6e 74 29 5d 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 | nt)]).prompts)))))...........(se |
| 51140 | 74 71 20 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 | tq.prev-pt.(point))...........(a |
| 51160 | 6e 64 20 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 | nd.max-entries.(cl-decf.max-entr |
| 51180 | 69 65 73 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 | ies))).......(let.((content.(str |
| 511a0 | 69 6e 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 | ing-trim.(buffer-substring-no-pr |
| 511c0 | 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 20 20 20 | operties........................ |
| 511e0 | 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 6e 74 2d 6d | ............(point-min).(point-m |
| 51200 | 61 78 29 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 | ax))))).........(push.(list.:rol |
| 51220 | 65 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 63 6f 6e 74 65 6e | e."user".:parts.`[(:text.,conten |
| 51240 | 74 29 5d 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 | t)]).prompts))).....prompts))..( |
| 51260 | 64 65 66 75 6e 20 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 | defun.gptel--gemini-parse-multip |
| 51280 | 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 61 | art.(parts)..."Convert.a.multipa |
| 512a0 | 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 74 68 65 20 47 65 6d 69 6e 69 20 41 50 | rt.prompt.PARTS.to.the.Gemini.AP |
| 512c0 | 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 6e 20 61 6c 69 73 74 | I.format...The.input.is.an.alist |
| 512e0 | 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 | .of.the.form..((:text.\"some.tex |
| 51300 | 74 5c 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 | t\")...(:media.\"/path/to/media. |
| 51320 | 70 6e 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 | png\".:mime.\"image/png\")...(:t |
| 51340 | 65 78 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 | ext.\"More.text\"))...The.output |
| 51360 | 20 69 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 61 20 62 61 63 | .is.a.vector.of.entries.in.a.bac |
| 51380 | 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 6c 2d | kend-appropriate.format."...(cl- |
| 513a0 | 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 6f 72 | loop....for.part.in.parts....for |
| 513c0 | 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 6e 67 | .n.upfrom.1....with.last.=.(leng |
| 513e0 | 74 68 20 70 61 72 74 73 29 0a 20 20 20 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 | th.parts)....for.text.=.(plist-g |
| 51400 | 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f 72 20 6d 65 64 69 61 20 3d 20 28 70 | et.part.:text)....for.media.=.(p |
| 51420 | 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 78 74 | list-get.part.:media)....if.text |
| 51440 | 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c 61 73 | .do....(and.(or.(=.n.1).(=.n.las |
| 51460 | 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 | t)).(setq.text.(gptel--trim-pref |
| 51480 | 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 63 | ixes.text))).and....if.text....c |
| 514a0 | 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 29 20 69 6e 74 6f 20 70 61 | ollect.(list.:text.text).into.pa |
| 514c0 | 72 74 73 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 0a 20 | rts-array.end....else.if.media.. |
| 514e0 | 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 69 6e 6c 69 6e 65 5f 64 61 74 61 0a 20 20 20 20 | ..collect....`(:inline_data..... |
| 51500 | 20 28 3a 6d 69 6d 65 5f 74 79 70 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d | .(:mime_type.,(plist-get.part.:m |
| 51520 | 69 6d 65 29 0a 20 20 20 20 20 20 3a 64 61 74 61 20 2c 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 | ime).......:data.,(gptel--base64 |
| 51540 | 2d 65 6e 63 6f 64 65 20 6d 65 64 69 61 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 | -encode.media)))....into.parts-a |
| 51560 | 72 72 61 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 | rray....finally.return.(vconcat. |
| 51580 | 70 61 72 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 | parts-array)))..(cl-defmethod.gp |
| 515a0 | 74 65 6c 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 | tel--wrap-user-prompt.((_backend |
| 515c0 | 20 67 70 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 | .gptel-gemini).prompts.......... |
| 515e0 | 20 20 20 20 20 20 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 | ..............................&o |
| 51600 | 70 74 69 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 | ptional.inject-media)..."Wrap.th |
| 51620 | 65 20 6c 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 | e.last.user.prompt.in.PROMPTS.wi |
| 51640 | 74 68 20 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 | th.the.context.string...If.INJEC |
| 51660 | 54 2d 4d 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 | T-MEDIA.is.non-nil.wrap.it.with. |
| 51680 | 62 61 73 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 | base64-encoded.media.files.in.th |
| 516a0 | 65 20 63 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 | e.context."...(if.inject-media.. |
| 516c0 | 20 20 20 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 | .....;;.Wrap.the.first.user.prom |
| 516e0 | 70 74 20 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 | pt.with.included.media.files/con |
| 51700 | 74 65 78 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 | texts.......(when-let*.((media-l |
| 51720 | 69 73 74 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 | ist.(gptel-context--collect-medi |
| 51740 | 61 29 29 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 | a))).........(cl-callf.(lambda.( |
| 51760 | 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 28 76 63 | current).....................(vc |
| 51780 | 6f 6e 63 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 | oncat.(gptel--gemini-parse-multi |
| 517a0 | 70 61 72 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 | part.media-list)................ |
| 517c0 | 20 20 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 | ..............current))......... |
| 517e0 | 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 70 61 | ....(plist-get.(car.prompts).:pa |
| 51800 | 72 74 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 73 65 72 | rts))).....;;.Wrap.the.last.user |
| 51820 | 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 6e 74 65 | .prompt.with.included.text.conte |
| 51840 | 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 28 63 75 72 72 65 | xts.....(cl-callf.(lambda.(curre |
| 51860 | 6e 74 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 20 28 28 77 | nt).................(if-let*.((w |
| 51880 | 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 70 20 6e 69 6c 29 | rapped.(gptel-context--wrap.nil) |
| 518a0 | 29 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 61 74 20 | )).....................(vconcat. |
| 518c0 | 60 28 28 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 | `((:text.,wrapped)).current).... |
| 518e0 | 20 20 20 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 | ...............current))........ |
| 51900 | 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 74 73 29 29 | .(plist-get.(car.(last.prompts)) |
| 51920 | 20 3a 70 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 | .:parts))))..(defconst.gptel--ge |
| 51940 | 6d 69 6e 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 | mini-models...'((gemini-1.5-pro- |
| 51960 | 6c 61 74 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 | latest......:description."Google |
| 51980 | 27 73 20 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 | 's.latest.model.with.enhanced.ca |
| 519a0 | 70 61 62 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 | pabilities.across.various.tasks" |
| 519c0 | 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 6a 73 | ......:capabilities.(tool-use.js |
| 519e0 | 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 69 6d 61 | on.media)......:mime-types.("ima |
| 51a00 | 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 65 62 70 | ge/png"."image/jpeg"."image/webp |
| 51a20 | 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 20 20 20 | "."image/heic"."image/heif"..... |
| 51a40 | 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 66 22 20 | .............."application/pdf". |
| 51a60 | 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 74 | "text/plain"."text/csv"."text/ht |
| 51a80 | 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 32 30 30 30 0a 20 | ml")......:context-window.2000.. |
| 51aa0 | 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 20 69 73 20 68 | ....;;.input.&.output.price.is.h |
| 51ac0 | 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 6f 6b 65 6e 73 | alved.for.prompts.of.128k.tokens |
| 51ae0 | 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 32 2e 35 30 0a 20 | .or.less......:input-cost.2.50.. |
| 51b00 | 20 20 20 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 | ....:output-cost.10......:cutoff |
| 51b20 | 2d 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 32 2e 30 | -date."2024-05").....(gemini-2.0 |
| 51b40 | 2d 66 6c 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 | -flash-exp......:description."Ne |
| 51b60 | 78 74 20 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 | xt.generation.features,.superior |
| 51b80 | 20 73 70 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 | .speed,.native.tool.use"......:c |
| 51ba0 | 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 |
| 51bc0 | 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". |
| 51be0 | 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 |
| 51c00 | 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"............. |
| 51c20 | 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 |
| 51c40 | 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").... |
| 51c60 | 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 63 75 74 | ..:context-window.1000......:cut |
| 51c80 | 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 69 2d | off-date."2024-12").....(gemini- |
| 51ca0 | 31 2e 35 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 | 1.5-flash......:description."A.f |
| 51cc0 | 61 73 74 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 | aster,.more.efficient.version.of |
| 51ce0 | 20 47 65 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 | .Gemini.1.5.optimized.for.speed" |
| 51d00 | 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 6a 73 | ......:capabilities.(tool-use.js |
| 51d20 | 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 69 6d 61 | on.media)......:mime-types.("ima |
| 51d40 | 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 65 62 70 | ge/png"."image/jpeg"."image/webp |
| 51d60 | 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 20 20 20 | "."image/heic"."image/heif"..... |
| 51d80 | 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 66 22 20 | .............."application/pdf". |
| 51da0 | 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 74 | "text/plain"."text/csv"."text/ht |
| 51dc0 | 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 30 30 0a 20 | ml")......:context-window.1000.. |
| 51de0 | 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 20 69 73 20 68 | ....;;.input.&.output.price.is.h |
| 51e00 | 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 6f 6b 65 6e 73 | alved.for.prompts.of.128k.tokens |
| 51e20 | 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 2e 31 35 0a 20 | .or.less......:input-cost.0.15.. |
| 51e40 | 20 20 20 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 | ....:output-cost.0.60......:cuto |
| 51e60 | 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 65 6d 69 6e 69 2d 31 | ff-date."2024-05").....(gemini-1 |
| 51e80 | 2e 35 2d 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 | .5-flash-8b......:description."H |
| 51ea0 | 69 67 68 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 | igh.volume.and.lower.intelligenc |
| 51ec0 | 65 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 74 6f 6f | e.tasks"......:capabilities.(too |
| 51ee0 | 6c 2d 75 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 | l-use.json.media)......:context- |
| 51f00 | 77 69 6e 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 | window.1000......:mime-types.("i |
| 51f20 | 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 65 | mage/png"."image/jpeg"."image/we |
| 51f40 | 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 20 | bp"."image/heic"."image/heif"... |
| 51f60 | 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 66 | ................"application/pdf |
| 51f80 | 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 2f | "."text/plain"."text/csv"."text/ |
| 51fa0 | 68 74 6d 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 | html")......;;.input.&.output.pr |
| 51fc0 | 69 63 65 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 | ice.is.halved.for.prompts.of.128 |
| 51fe0 | 6b 20 74 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 | k.tokens.or.less......:input-cos |
| 52000 | 74 20 30 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 | t.0.075......:output-cost.0.30.. |
| 52020 | 20 20 20 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 | ....:cutoff-date."2024-10")..... |
| 52040 | 28 67 65 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 | (gemini-exp-1206......:descripti |
| 52060 | 6f 6e 20 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 | on."Improved.coding,.reasoning.a |
| 52080 | 6e 64 20 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 | nd.vision.capabilities"......:ca |
| 520a0 | 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 29 | pabilities.(tool-use.json.media) |
| 520c0 | 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 22 | ......:mime-types.("image/png"." |
| 520e0 | 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 2f | image/jpeg"."image/webp"."image/ |
| 52100 | 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 20 | heic"."image/heif".............. |
| 52120 | 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 61 | ....."application/pdf"."text/pla |
| 52140 | 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 20 | in"."text/csv"."text/html")..... |
| 52160 | 20 3a 63 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 | .:cutoff-date."2024-12").....(ge |
| 52180 | 6d 69 6e 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 | mini-2.0-flash......:description |
| 521a0 | 20 22 4e 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 | ."Next.gen,.high.speed,.multimod |
| 521c0 | 61 6c 20 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 | al.for.a.diverse.variety.of.task |
| 521e0 | 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 20 | s"......:capabilities.(tool-use. |
| 52200 | 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 69 | json.media)......:mime-types.("i |
| 52220 | 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 65 | mage/png"."image/jpeg"."image/we |
| 52240 | 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 20 | bp"."image/heic"."image/heif"... |
| 52260 | 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 66 | ................"application/pdf |
| 52280 | 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 2f | "."text/plain"."text/csv"."text/ |
| 522a0 | 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 30 30 | html")......:context-window.1000 |
| 522c0 | 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 3a 6f 75 74 | ......:input-cost.0.10......:out |
| 522e0 | 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 61 74 65 20 | put-cost.0.40......:cutoff-date. |
| 52300 | 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 30 2d 66 6c 61 73 68 | "2024-08").....(gemini-2.0-flash |
| 52320 | 2d 6c 69 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 | -lite-preview-02-05......:descri |
| 52340 | 70 74 69 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 | ption."Gemini.2.0.Flash.model.op |
| 52360 | 74 69 6d 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 | timized.for.cost.efficiency.and. |
| 52380 | 6c 6f 77 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 | low.latency"......:capabilities. |
| 523a0 | 28 6a 73 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 | (json)......:context-window.1000 |
| 523c0 | 0a 20 20 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 | ......:input-cost.0.075......:ou |
| 523e0 | 74 70 75 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 | tput-cost.0.30......:cutoff-date |
| 52400 | 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 30 2d 70 72 6f 2d | ."2024-08").....(gemini-2.0-pro- |
| 52420 | 65 78 70 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 | exp-02-05......:description."Nex |
| 52440 | 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 6f | t.gen,.high.speed,.multimodal.fo |
| 52460 | 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 20 | r.a.diverse.variety.of.tasks"... |
| 52480 | 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 29 | ...:capabilities.(tool-use.json) |
| 524a0 | 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 20 | ......:context-window.2000...... |
| 524c0 | 3a 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 | :input-cost.0.00......:output-co |
| 524e0 | 73 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 34 2d | st.0.00......:cutoff-date."2024- |
| 52500 | 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 74 68 69 6e 6b | 08").....(gemini-2.0-flash-think |
| 52520 | 69 6e 67 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 | ing-exp-01-21......:description. |
| 52540 | 22 4e 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 | "Next.gen,.high.speed,.multimoda |
| 52560 | 6c 20 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 | l.for.a.diverse.variety.of.tasks |
| 52580 | 22 0a 20 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 | "......:capabilities.(json)..... |
| 525a0 | 20 3a 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 | .:input-cost.0.00......:output-c |
| 525c0 | 6f 73 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 34 | ost.0.00......:cutoff-date."2024 |
| 525e0 | 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 65 78 70 0a | -08").....(gemini-2.0-flash-exp. |
| 52600 | 20 20 20 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 | .....:description."Multi-modal,. |
| 52620 | 73 74 72 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 | streaming,.tool.use.2000.RPM"... |
| 52640 | 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. |
| 52660 | 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/ |
| 52680 | 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"." |
| 526a0 | 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"........ |
| 526c0 | 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 |
| 526e0 | 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" |
| 52700 | 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..... |
| 52720 | 20 3a 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 | .:input-cost.0.00......:output-c |
| 52740 | 6f 73 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 34 | ost.0.00......:cutoff-date."2024 |
| 52760 | 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 74 68 69 6e | -08").....(gemini-2.0-flash-thin |
| 52780 | 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 |
| 527a0 | 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 |
| 527c0 | 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." |
| 527e0 | 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 |
| 52800 | 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.... |
| 52820 | 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 |
| 52840 | 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 |
| 52860 | 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".................. |
| 52880 | 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 |
| 528a0 | 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 |
| 528c0 | 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. |
| 528e0 | 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 |
| 52900 | 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 |
| 52920 | 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...-. |
| 52940 | 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 |
| 52960 | 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.. |
| 52980 | 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 |
| 529a0 | 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 |
| 529c0 | 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 |
| 529e0 | 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 |
| 52a00 | 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 |
| 52a20 | 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 |
| 52a40 | 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':. |
| 52a60 | 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 |
| 52a80 | 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 |
| 52aa0 | 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. |
| 52ac0 | 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 |
| 52ae0 | 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. |
| 52b00 | 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 |
| 52b20 | 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 |
| 52b40 | 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 |
| 52b60 | 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. |
| 52b80 | 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 |
| 52ba0 | 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 |
| 52bc0 | 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 22 29 0a 0a 3b 3b | tive-ai/docs/learn/models>")..;; |
| 52be0 | 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 |
| 52c00 | 65 2d 67 65 6d 69 6e 69 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 | e-gemini.....(name.&key.curl-arg |
| 52c20 | 73 20 68 65 61 64 65 72 20 6b 65 79 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 | s.header.key.request-params..... |
| 52c40 | 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f | ......(stream.nil)...........(ho |
| 52c60 | 73 74 20 22 67 65 6e 65 72 61 74 69 76 65 6c 61 6e 67 75 61 67 65 2e 67 6f 6f 67 6c 65 61 70 69 | st."generativelanguage.googleapi |
| 52c80 | 73 2e 63 6f 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 | s.com")...........(protocol."htt |
| 52ca0 | 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 67 65 | ps")...........(models.gptel--ge |
| 52cc0 | 6d 69 6e 69 2d 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 | mini-models)...........(endpoint |
| 52ce0 | 20 22 2f 76 31 62 65 74 61 2f 6d 6f 64 65 6c 73 22 29 29 0a 0a 20 20 22 52 65 67 69 73 74 65 72 | ."/v1beta/models"))...."Register |
| 52d00 | 20 61 20 47 65 6d 69 6e 69 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 | .a.Gemini.backend.for.gptel.with |
| 52d20 | 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 52 4c | .NAME...Keyword.arguments:..CURL |
| 52d40 | 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 61 64 | -ARGS.(optional).is.a.list.of.ad |
| 52d60 | 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 20 28 | ditional.Curl.arguments...HOST.( |
| 52d80 | 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 64 65 66 61 75 | optional).is.the.API.host,.defau |
| 52da0 | 6c 74 73 20 74 6f 0a 5c 22 67 65 6e 65 72 61 74 69 76 65 6c 61 6e 67 75 61 67 65 2e 67 6f 6f 67 | lts.to.\"generativelanguage.goog |
| 52dc0 | 6c 65 61 70 69 73 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 20 | leapis.com\"...MODELS.is.a.list. |
| 52de0 | 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 6d | of.available.model.names,.as.sym |
| 52e00 | 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 63 | bols..Additionally,.you.can.spec |
| 52e20 | 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 6c | ify.supported.LLM.capabilities.l |
| 52e40 | 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 64 | ike.vision.or.tool-use.by.append |
| 52e60 | 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 6f | ing.a.plist.to.the.model.with.mo |
| 52e80 | 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 6d | re.information,.in.the.form...(m |
| 52ea0 | 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 6f | odel-name...plist)..For.a.list.o |
| 52ec0 | 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 79 | f.currently.recognized.plist.key |
| 52ee0 | 73 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 6d 6f 64 65 6c 73 27 2e 20 41 | s,.see.`gptel--gemini-models'..A |
| 52f00 | 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 74 69 | n.example.of.a.model.specificati |
| 52f20 | 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 63 73 | on.including.both.kinds.of.specs |
| 52f40 | 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c 5c 3d 27 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 | :..:models.\\='(gemini-2.0-flash |
| 52f60 | 2d 6c 69 74 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d 70 6c 65 20 73 70 65 63 73 | -lite..............;Simple.specs |
| 52f80 | 0a 20 20 67 65 6d 69 6e 69 2d 31 2e 35 2d 66 6c 61 73 68 0a 20 20 28 67 65 6d 69 6e 69 2d 31 2e | ...gemini-1.5-flash...(gemini-1. |
| 52fa0 | 35 2d 70 72 6f 2d 6c 61 74 65 73 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c | 5-pro-latest................;Ful |
| 52fc0 | 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 43 6f 6d 70 | l.spec....:description....\"Comp |
| 52fe0 | 6c 65 78 20 72 65 61 73 6f 6e 69 6e 67 20 74 61 73 6b 73 2c 20 70 72 6f 62 6c 65 6d 20 73 6f 6c | lex.reasoning.tasks,.problem.sol |
| 53000 | 76 69 6e 67 20 61 6e 64 20 64 61 74 61 20 65 78 74 72 61 63 74 69 6f 6e 5c 22 0a 20 20 20 3a 63 | ving.and.data.extraction\"....:c |
| 53020 | 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 20 6a 73 6f 6e 29 0a 20 20 20 3a 6d 69 6d 65 | apabilities.(tool.json)....:mime |
| 53040 | 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 5c 22 69 6d 61 67 | -types....(\"image/jpeg\".\"imag |
| 53060 | 65 2f 70 6e 67 5c 22 20 5c 22 69 6d 61 67 65 2f 77 65 62 70 5c 22 20 5c 22 69 6d 61 67 65 2f 68 | e/png\".\"image/webp\".\"image/h |
| 53080 | 65 69 63 5c 22 29 29 29 0a 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 | eic\")))...STREAM.is.a.boolean.t |
| 530a0 | 6f 20 65 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 2c 20 64 65 | o.enable.streaming.responses,.de |
| 530c0 | 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 74 69 | faults.to.false...PROTOCOL.(opti |
| 530e0 | 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 5c 22 | onal).specifies.the.protocol,.\" |
| 53100 | 68 74 74 70 73 5c 22 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 |
| 53120 | 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 |
| 53140 | 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 62 | .completions,.defaults.to.\"/v1b |
| 53160 | 65 74 61 2f 6d 6f 64 65 6c 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 | eta/models\"...HEADER.(optional) |
| 53180 | 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 73 65 | .is.for.additional.headers.to.se |
| 531a0 | 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 6c 64 | nd.with.each.request...It.should |
| 531c0 | 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 74 20 | .be.an.alist.or.a.function.that. |
| 531e0 | 72 65 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 | retuns.an.alist,.like:..((\"Cont |
| 53200 | 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 5c | ent-Type\"...\"application/json\ |
| 53220 | 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 6c | "))..KEY.(optional).is.a.variabl |
| 53240 | 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 72 | e.whose.value.is.the.API.key,.or |
| 53260 | 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 0a | .function.that.returns.the.key.. |
| 53280 | 0a 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 | .REQUEST-PARAMS.(optional).is.a. |
| 532a0 | 70 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 | plist.of.additional.HTTP.request |
| 532c0 | 0a 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 | .parameters.(as.plist.keys).and. |
| 532e0 | 76 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 | values.supported.by.the.API...Us |
| 53300 | 65 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 | e.these.to.set.parameters.that.g |
| 53320 | 70 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 | ptel.does.not.provide.user.optio |
| 53340 | 6e 73 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 | ns.for."...(declare.(indent.1)). |
| 53360 | 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 67 65 | ..(let.((backend.(gptel--make-ge |
| 53380 | 6d 69 6e 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 | mini...................:curl-arg |
| 533a0 | 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 3a 6e | s.curl-args...................:n |
| 533c0 | 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 20 3a 68 6f 73 74 | ame.name...................:host |
| 533e0 | 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 65 61 64 65 72 20 | .host...................:header. |
| 53400 | 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 6d 6f 64 65 6c 73 | header...................:models |
| 53420 | 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 73 29 0a | .(gptel--process-models.models). |
| 53440 | 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 72 6f 74 | ..................:protocol.prot |
| 53460 | 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 69 6e 74 | ocol...................:endpoint |
| 53480 | 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 73 74 72 | .endpoint...................:str |
| 534a0 | 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 3a 72 65 | eam.stream...................:re |
| 534c0 | 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 20 20 20 | quest-params.request-params..... |
| 534e0 | 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 20 | ..............:key.key.......... |
| 53500 | 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 | .........:url.(lambda.()........ |
| 53520 | 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 6d 65 74 68 6f 64 20 | ..................(let.((method. |
| 53540 | 28 69 66 20 28 61 6e 64 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.(and.stream................. |
| 53560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 53580 | 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-stream)................... |
| 535a0 | 20 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 73 74 72 65 61 6d | ........................."stream |
| 535c0 | 47 65 6e 65 72 61 74 65 43 6f 6e 74 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | GenerateContent"................ |
| 535e0 | 20 20 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 65 72 | .........................."gener |
| 53600 | 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 20 20 | ateContent"))).................. |
| 53620 | 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 73 3a | ..........(format."%s://%s%s/%s: |
| 53640 | 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 20 20 | %s?key=%s"...................... |
| 53660 | 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 20 20 | ..............protocol.......... |
| 53680 | 20 20 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 0a 20 | ..........................host.. |
| 536a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 536c0 | 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 20 20 | ..endpoint...................... |
| 536e0 | 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 20 20 | ..............gptel-model....... |
| 53700 | 20 20 20 20 20 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 65 74 | .............................met |
| 53720 | 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 20 20 | hod............................. |
| 53740 | 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 29 29 | .......(gptel--get-api-key)))))) |
| 53760 | 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 74 66 | ).....(prog1.backend.......(setf |
| 53780 | 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 |
| 537a0 | 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 6e 69 | ckends........................ni |
| 537c0 | 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 6b 65 | l.nil.#'equal).............backe |
| 537e0 | 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 29 0a | nd))))..(provide.'gptel-gemini). |
| 53800 | 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 00 00 | ;;;.gptel-gemini.el.ends.here... |
| 53820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 538a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 538c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 538e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 539a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 539c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 539e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53a00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 00 00 | gptel-0.9.8/gptel-transient.el.. |
| 53a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53a60 | 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 |
| 53a80 | 30 32 30 30 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 31 00 20 30 00 00 00 | 0200067.00000000000.014751..0... |
| 53aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53b00 | 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................... |
| 53b20 | 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................... |
| 53b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 53c00 | 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 |
| 53c20 | 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 47 50 54 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ient.menu.for.GPTel..-*-.lexical |
| 53c40 | 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.( |
| 53c60 | 43 29 20 32 30 32 33 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).2023..Karthik.Chikmagalur..;; |
| 53c80 | 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 |
| 53ca0 | 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 |
| 53cc0 | 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 44 58 2d 4c 69 | eywords:.convenience..;;.SPDX-Li |
| 53ce0 | 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 72 2d 6c 61 74 | cense-Identifier:.GPL-3.0-or-lat |
| 53d00 | 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 20 73 6f 66 74 | er..;;.This.program.is.free.soft |
| 53d20 | 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 69 74 20 61 6e | ware;.you.can.redistribute.it.an |
| 53d40 | 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 20 74 65 72 6d | d/or.modify.;;.it.under.the.term |
| 53d60 | 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 20 4c 69 63 65 | s.of.the.GNU.General.Public.Lice |
| 53d80 | 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 46 72 65 65 20 | nse.as.published.by.;;.the.Free. |
| 53da0 | 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 20 76 65 72 73 | Software.Foundation,.either.vers |
| 53dc0 | 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 20 28 61 74 20 | ion.3.of.the.License,.or.;;.(at. |
| 53de0 | 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 69 6f 6e 2e 0a | your.option).any.later.version.. |
| 53e00 | 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 75 74 65 64 20 | .;;.This.program.is.distributed. |
| 53e20 | 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 20 75 73 65 66 | in.the.hope.that.it.will.be.usef |
| 53e40 | 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 41 4e 54 59 3b | ul,.;;.but.WITHOUT.ANY.WARRANTY; |
| 53e60 | 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 61 72 72 61 6e | .without.even.the.implied.warran |
| 53e80 | 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 20 46 49 54 4e | ty.of.;;.MERCHANTABILITY.or.FITN |
| 53ea0 | 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 |
| 53ec0 | 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 63 20 4c 69 63 | ee.the.;;.GNU.General.Public.Lic |
| 53ee0 | 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 59 6f 75 20 73 | ense.for.more.details...;;.You.s |
| 53f00 | 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 74 68 | hould.have.received.a.copy.of.th |
| 53f20 | 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 3b 3b 20 | e.GNU.General.Public.License.;;. |
| 53f40 | 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 6e 6f 74 | along.with.this.program...If.not |
| 53f60 | 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 63 65 6e | ,.see.<https://www.gnu.org/licen |
| 53f80 | 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 0a 0a 3b 3b 3b | ses/>...;;;.Commentary:..;;..;;; |
| 53fa0 | 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 75 69 72 | .Code:.(require.'cl-lib).(requir |
| 53fc0 | 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 6e 74 29 0a 0a | e.'gptel).(require.'transient).. |
| 53fe0 | 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 69 6f 6e 73 2d | (declare-function.ediff-regions- |
| 54000 | 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 66 75 6e 63 74 | internal."ediff").(declare-funct |
| 54020 | 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 72 20 22 65 64 | ion.ediff-make-cloned-buffer."ed |
| 54040 | 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 66 75 6e 63 74 | iff-utils")....;;.*.Helper.funct |
| 54060 | 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 6c 20 67 70 74 | ions.and.vars..(defvar-local.gpt |
| 54080 | 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 22 4c 69 73 74 | el--rewrite-overlays.nil..."List |
| 540a0 | 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 20 69 6e 20 74 | .of.active.rewrite.overlays.in.t |
| 540c0 | 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 2d 72 65 77 72 | he.buffer.")..(defun.gptel--rewr |
| 540e0 | 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 22 45 6e 73 75 | ite-sanitize-overlays.()..."Ensu |
| 54100 | 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 20 69 6e 20 62 | re.gptel's.rewrite.overlays.in.b |
| 54120 | 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 65 74 71 20 67 | uffer.are.consistent."...(setq.g |
| 54140 | 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 20 20 28 | ptel--rewrite-overlays.........( |
| 54160 | 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 62 75 66 66 65 | cl-delete-if-not.#'overlay-buffe |
| 54180 | 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 67 70 74 65 | r...........................gpte |
| 541a0 | 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 66 76 61 72 20 | l--rewrite-overlays)))..(defvar. |
| 541c0 | 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 69 6c 0a 20 20 | gptel--set-buffer-locally.nil... |
| 541e0 | 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 60 67 70 74 65 | "Set.model.parameters.from.`gpte |
| 54200 | 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 66 65 63 74 73 | l-menu'.buffer-locally...Affects |
| 54220 | 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 0a 28 64 65 66 | .the.system.message.too.")..(def |
| 54240 | 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 79 6d 20 76 61 | un.gptel--set-with-scope.(sym.va |
| 54260 | 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 20 53 59 4d 42 | lue.&optional.scope)..."Set.SYMB |
| 54280 | 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 77 69 74 68 20 | OL's.symbol-value.to.VALUE.with. |
| 542a0 | 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 69 74 20 62 75 | SCOPE...If.SCOPE.is.t,.set.it.bu |
| 542c0 | 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 2c 20 72 65 73 | ffer-locally..If.SCOPE.is.1,.res |
| 542e0 | 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 72 65 71 75 65 | et.it.after.the.next.gptel-reque |
| 54300 | 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 65 61 72 20 61 | st..(oneshot).Otherwise,.clear.a |
| 54320 | 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 65 74 20 69 74 | ny.buffer-local.value.and.set.it |
| 54340 | 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 28 70 63 61 73 | s.default.global.value."...(pcas |
| 54360 | 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 74 65 6c 2d 68 | e.scope.....(1.(put.sym.'gptel-h |
| 54380 | 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 20 20 20 20 20 | istory.(symbol-value.sym))...... |
| 543a0 | 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 65 74 72 65 63 | ..(set.sym.value)........(letrec |
| 543c0 | 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 20 20 20 20 20 | .((restore-value................ |
| 543e0 | 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 20 20 20 20 | ..(lambda.().................... |
| 54400 | 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 71 75 65 73 74 | (remove-hook.'gptel-post-request |
| 54420 | 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 20 20 20 20 20 | -hook.restore-value)............ |
| 54440 | 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 20 20 3b 20 52 | ........(run-at-time.........;.R |
| 54460 | 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 62 69 6e 64 69 | equired.to.work.around.let.bindi |
| 54480 | 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 69 6c 20 28 6c | ngs.....................0.nil.(l |
| 544a0 | 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 65 20 74 68 69 | ambda.(s)........;.otherwise.thi |
| 544c0 | 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 20 20 20 20 20 | s.change.is.overwritten!........ |
| 544e0 | 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 20 28 67 65 74 | .....................(set.s.(get |
| 54500 | 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 20 20 20 20 20 | .s.'gptel-history))............. |
| 54520 | 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 65 6c 2d 68 69 | ................(put.s.'gptel-hi |
| 54540 | 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 20 20 20 20 20 | story.nil))..................... |
| 54560 | 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 27 67 70 74 65 | sym))))..........(add-hook.'gpte |
| 54580 | 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 2d 76 61 6c 75 | l-post-request-hook.restore-valu |
| 545a0 | 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 61 6c 2d 76 61 | e))).....('t.(set.(make-local-va |
| 545c0 | 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 28 6b 69 6c 6c | riable.sym).value)).....(_.(kill |
| 545e0 | 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 20 28 73 65 74 | -local-variable.sym)........(set |
| 54600 | 20 73 79 6d 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 | .sym.value))))..(defun.gptel--ge |
| 54620 | 74 2d 64 69 72 65 63 74 69 76 65 20 28 61 72 67 73 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 61 | t-directive.(args)..."Find.the.a |
| 54640 | 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 20 69 6e 20 74 68 65 20 74 72 61 6e 73 | dditional.directive.in.the.trans |
| 54660 | 69 65 6e 74 20 41 52 47 53 2e 0a 0a 4d 65 61 6e 74 20 74 6f 20 62 65 20 63 61 6c 6c 65 64 20 77 | ient.ARGS...Meant.to.be.called.w |
| 54680 | 68 65 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 69 73 20 61 63 74 69 76 65 2e 22 0a 20 20 28 | hen.`gptel-menu'.is.active."...( |
| 546a0 | 63 6c 2d 73 6f 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 | cl-some.(lambda.(s).(and.(string |
| 546c0 | 70 20 73 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 3a 22 20 73 29 0a 20 20 20 | p.s).(string-prefix-p.":".s).... |
| 546e0 | 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 20 73 | ....................(substring.s |
| 54700 | 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 0a 0a | .1)))...................args)).. |
| 54720 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d | (defun.gptel--instructions-make- |
| 54740 | 6f 76 65 72 6c 61 79 20 28 74 65 78 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 29 0a 20 20 22 4d | overlay.(text.&optional.ov)..."M |
| 54760 | 61 6b 65 20 6f 72 20 6d 6f 76 65 20 6f 76 65 72 6c 61 79 20 4f 56 20 77 69 74 68 20 54 45 58 54 | ake.or.move.overlay.OV.with.TEXT |
| 54780 | 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 3b 3b 20 4d 6f 76 65 | ."...(save-excursion.....;;.Move |
| 547a0 | 20 70 6f 69 6e 74 20 74 6f 20 6f 76 65 72 6c 61 79 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 28 | .point.to.overlay.position.....( |
| 547c0 | 63 6f 6e 64 0a 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 | cond......((use-region-p)....... |
| 547e0 | 28 69 66 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 72 65 | (if.(pos-visible-in-window-p.(re |
| 54800 | 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f | gion-beginning))...........(goto |
| 54820 | 2d 63 68 61 72 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 29 29 0a 20 20 20 20 | -char.(region-beginning))))..... |
| 54840 | 20 28 28 67 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 20 20 28 | .((gptel--in-response-p).......( |
| 54860 | 67 70 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 29 0a 20 20 20 | gptel-beginning-of-response).... |
| 54880 | 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 5c 6e 20 5c 74 22 29 29 | ...(skip-chars-forward."\n.\t")) |
| 548a0 | 0a 20 20 20 20 20 28 74 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 | ......(t.(text-property-search-b |
| 548c0 | 61 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 | ackward.'gptel.'response)....... |
| 548e0 | 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 5c 6e 20 5c 74 22 29 29 29 | ..(skip-chars-forward."\n.\t"))) |
| 54900 | 0a 20 20 20 20 3b 3b 20 4d 61 6b 65 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 69 66 20 28 61 6e | .....;;.Make.overlay.....(if.(an |
| 54920 | 64 20 6f 76 20 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 76 | d.ov.(overlayp.ov)).........(mov |
| 54940 | 65 2d 6f 76 65 72 6c 61 79 20 6f 76 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29 20 28 63 75 | e-overlay.ov.(point).(point).(cu |
| 54960 | 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 20 28 6d | rrent-buffer)).......(setq.ov.(m |
| 54980 | 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29 20 6e 69 6c 20 | ake-overlay.(point).(point).nil. |
| 549a0 | 74 29 29 29 0a 20 20 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 | t))).....(overlay-put.ov.'before |
| 549c0 | 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 3b 3b 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 | -string.nil).....;;.(unless.(or. |
| 549e0 | 28 62 6f 62 70 29 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 22 5c 6e 22 29 29 0a | (bobp).(eq.(char-before)."\n")). |
| 54a00 | 20 20 20 20 3b 3b 20 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 | ....;;...(overlay-put.ov.'before |
| 54a20 | 2d 73 74 72 69 6e 67 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 22 20 27 66 6f 6e 74 2d 6c | -string.(propertize."\n".'font-l |
| 54a40 | 6f 63 6b 2d 66 61 63 65 20 27 73 68 61 64 6f 77 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 | ock-face.'shadow))).....(overlay |
| 54a60 | 2d 70 75 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 28 6f | -put.ov.'category.'gptel).....(o |
| 54a80 | 76 65 72 6c 61 79 2d 70 75 74 0a 20 20 20 20 20 6f 76 20 27 61 66 74 65 72 2d 73 74 72 69 6e 67 | verlay-put......ov.'after-string |
| 54aa0 | 0a 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 28 63 6f 6e 63 61 | ......(concat.(propertize.(conca |
| 54ac0 | 74 20 22 44 49 52 45 43 54 49 56 45 3a 20 22 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 | t."DIRECTIVE:.".text)........... |
| 54ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 | ...............'font-lock-face.' |
| 54b00 | 28 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 20 3a 77 65 69 67 68 74 20 62 6f 6c 64 20 20 3a | (:inherit.shadow.:weight.bold..: |
| 54b20 | 62 6f 78 20 74 29 29 0a 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 6f 76 29 29 0a 0a 28 | box.t))......."\n")).....ov))..( |
| 54b40 | 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 | defconst.gptel--read-with-prefix |
| 54b60 | 2d 68 65 6c 70 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 | -help...(concat....(propertize." |
| 54b80 | 28 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 70 65 72 74 69 7a | (".'face.'default)....(propertiz |
| 54ba0 | 65 20 22 54 41 42 22 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 | e."TAB".'face.'help-key-binding) |
| 54bc0 | 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 3a 20 65 78 70 61 6e 64 2c 20 22 20 27 66 61 | ....(propertize.":.expand,.".'fa |
| 54be0 | 63 65 20 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 6e | ce.'default)....(propertize."M-n |
| 54c00 | 22 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 0a 20 20 20 28 70 | ".'face.'help-key-binding)....(p |
| 54c20 | 72 6f 70 65 72 74 69 7a 65 20 22 2f 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 20 | ropertize."/".'face.'default)... |
| 54c40 | 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4d 2d 70 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b | .(propertize."M-p".'face.'help-k |
| 54c60 | 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 6e 65 | ey-binding)....(propertize.":.ne |
| 54c80 | 78 74 2f 70 72 65 76 69 6f 75 73 29 20 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 29 0a | xt/previous).".'face.'default)). |
| 54ca0 | 20 20 22 48 65 6c 70 20 73 74 72 69 6e 67 20 3b 54 4f 44 4f 3a 20 22 29 0a 0a 28 64 65 66 75 6e | .."Help.string.;TODO:.")..(defun |
| 54cc0 | 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 20 28 70 72 65 66 69 78 | .gptel--read-with-prefix.(prefix |
| 54ce0 | 29 0a 20 20 22 53 68 6f 77 20 73 74 72 69 6e 67 20 50 52 45 46 49 58 20 69 6e 20 74 68 65 20 6d | )..."Show.string.PREFIX.in.the.m |
| 54d00 | 69 6e 69 62 75 66 66 65 72 20 61 66 74 65 72 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 70 | inibuffer.after.the.minibuffer.p |
| 54d20 | 72 6f 6d 70 74 2e 0a 0a 50 52 45 46 49 58 20 69 73 20 73 68 6f 77 6e 20 69 6e 20 61 6e 20 6f 76 | rompt...PREFIX.is.shown.in.an.ov |
| 54d40 | 65 72 6c 61 79 2e 20 20 52 65 70 65 61 74 65 64 20 63 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 | erlay...Repeated.calls.to.this.f |
| 54d60 | 75 6e 63 74 69 6f 6e 0a 77 69 6c 6c 20 74 6f 67 67 6c 65 20 69 74 73 20 76 69 73 69 62 69 6c 69 | unction.will.toggle.its.visibili |
| 54d80 | 74 79 20 73 74 61 74 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 6d 69 6e 69 62 75 66 66 65 72 | ty.state."...(unless.(minibuffer |
| 54da0 | 70 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 | p).....(user-error."This.command |
| 54dc0 | 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 64 20 69 6e 20 74 68 65 20 6d | .is.intended.to.be.used.in.the.m |
| 54de0 | 69 6e 69 62 75 66 66 65 72 2e 22 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 75 70 64 61 74 65 0a 20 | inibuffer."))...(let*.((update.. |
| 54e00 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 76 20 73 29 0a 20 20 20 20 20 20 20 20 20 | ........(lambda.(ov.s).......... |
| 54e20 | 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 6f 76 20 27 61 | ..(overlay-put.............ov.'a |
| 54e40 | 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 73 20 28 | fter-string.............(and.s.( |
| 54e60 | 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 5c 6e 22 20 | concat.(propertize.(concat."\n". |
| 54e80 | 73 20 22 5c 6e 22 29 20 27 66 61 63 65 20 27 73 68 61 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 | s."\n").'face.'shadow).......... |
| 54ea0 | 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 65 70 61 72 61 74 6f | ..................(make-separato |
| 54ec0 | 72 2d 6c 69 6e 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 78 2d 77 69 64 74 68 | r-line))))))..........(max-width |
| 54ee0 | 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 | .(-.(window-width).(minibuffer-p |
| 54f00 | 72 6f 6d 70 74 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 6f 72 20 6d | rompt-end)))..........(max.(or.m |
| 54f20 | 61 78 2d 6d 69 6e 69 2d 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 30 2e 34 29 29 0a 20 20 20 20 | ax-mini-window-height.0.4))..... |
| 54f40 | 20 20 20 20 20 28 6d 61 78 2d 68 65 69 67 68 74 20 28 2d 20 28 6f 72 20 28 61 6e 64 20 28 6e 61 | .....(max-height.(-.(or.(and.(na |
| 54f60 | 74 6e 75 6d 70 20 6d 61 78 29 20 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tnump.max).max)................. |
| 54f80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f 6f 72 20 28 2a 20 6d 61 78 20 28 66 72 61 6d 65 | ............(floor.(*.max.(frame |
| 54fa0 | 2d 68 65 69 67 68 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 | -height))))..................... |
| 54fc0 | 20 20 20 20 35 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 70 72 65 66 69 78 20 28 | ....5))).....(when.(and.prefix.( |
| 54fe0 | 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 70 72 65 66 69 78 29 29 20 28 3e 20 | not.(string-empty-p.prefix)).(>. |
| 55000 | 6d 61 78 2d 68 65 69 67 68 74 20 31 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 76 69 73 | max-height.1)).......(unless.vis |
| 55020 | 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 | ual-line-mode.(visual-line-mode. |
| 55040 | 31 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 69 6e 69 62 75 66 66 65 72 | 1)).......(goto-char.(minibuffer |
| 55060 | 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 | -prompt-end)).......(pcase-let.( |
| 55080 | 28 60 28 2c 70 72 6f 70 20 2e 20 2c 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (`(,prop...,ov)................. |
| 550a0 | 20 20 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 65 72 6c 61 | ...(get-char-property-and-overla |
| 550c0 | 79 0a 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 | y.....................(point-min |
| 550e0 | 29 20 27 67 70 74 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 76 0a 20 | ).'gptel))).........(unless.ov.. |
| 55100 | 20 20 20 20 20 20 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 0a | .........(setq.ov.(make-overlay. |
| 55120 | 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 20 | ....................(point-min). |
| 55140 | 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 20 6e 69 6c 20 74 29 29 29 | (minibuffer-prompt-end).nil.t))) |
| 55160 | 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 28 | .........(pcase.prop...........( |
| 55180 | 27 70 61 72 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 | 'partial............(if.(>.(leng |
| 551a0 | 74 68 20 70 72 65 66 69 78 29 20 6d 61 78 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 | th.prefix).max-width)........... |
| 551c0 | 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 28 6f 76 | .....(progn..................(ov |
| 551e0 | 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 70 72 65 66 69 78 29 0a 20 20 20 | erlay-put.ov.'gptel.'prefix).... |
| 55200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 73 70 2d 73 69 7a 65 0a 20 | ..............(let.((disp-size.. |
| 55220 | 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 6c 2d 6c 6f 6f 70 20 | .......................(cl-loop. |
| 55240 | 66 6f 72 20 63 68 61 72 20 61 63 72 6f 73 73 20 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 | for.char.across.prefix.......... |
| 55260 | 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 6f 72 20 69 64 78 20 | ........................for.idx. |
| 55280 | 75 70 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | upfrom.0........................ |
| 552a0 | 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 6e 20 3d 20 30 20 77 69 74 68 20 6d 61 78 2d 6c 65 | ..........with.n.=.0.with.max-le |
| 552c0 | 6e 67 74 68 20 3d 20 28 2a 20 6d 61 78 2d 68 65 69 67 68 74 20 6d 61 78 2d 77 69 64 74 68 29 0a | ngth.=.(*.max-height.max-width). |
| 552e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55300 | 20 69 66 20 28 65 71 20 63 68 61 72 20 3f 5c 6e 29 20 64 6f 20 28 63 6c 2d 69 6e 63 66 20 6e 29 | .if.(eq.char.?\n).do.(cl-incf.n) |
| 55320 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55340 | 20 20 69 66 20 28 3e 20 6e 20 6d 61 78 2d 68 65 69 67 68 74 29 20 72 65 74 75 72 6e 20 69 64 78 | ..if.(>.n.max-height).return.idx |
| 55360 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55380 | 20 20 69 66 20 28 3e 20 69 64 78 20 6d 61 78 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 | ..if.(>.idx.max-length)......... |
| 553a0 | 20 20 20 20 20 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 | .........................return. |
| 553c0 | 69 64 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 | idx............................. |
| 553e0 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 | .....finally.return.nil)))...... |
| 55400 | 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 61 74 65 20 6f 76 | ..............(funcall.update.ov |
| 55420 | 0a 20 20 20 20 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 |
| 55440 | 20 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...................... |
| 55460 | 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 |
| 55480 | 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 20 20 20 20 | idth............................ |
| 554a0 | 20 20 20 20 20 20 70 72 65 66 69 78 20 64 69 73 70 2d 73 69 7a 65 20 20 6e 69 6c 20 6e 69 6c 20 | ......prefix.disp-size..nil.nil. |
| 554c0 | 27 65 6c 6c 69 70 73 69 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'ellipsis)...................... |
| 554e0 | 20 20 20 20 20 20 20 20 20 70 72 65 66 69 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .........prefix))))............. |
| 55500 | 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 65 29 0a 20 | .(overlay-put.ov.'gptel.'hide).. |
| 55520 | 20 20 20 20 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 6e | ............(funcall.update.ov.n |
| 55540 | 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 27 70 72 65 66 69 78 20 28 6f 76 65 72 6c 61 | il)))...........('prefix.(overla |
| 55560 | 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 68 69 64 65 29 0a 20 20 20 20 20 20 20 20 20 | y-put.ov.'gptel.'hide).......... |
| 55580 | 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 6e 69 6c 29 29 | ........(funcall.update.ov.nil)) |
| 555a0 | 0a 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 | ...........(_.(overlay-put.ov.'g |
| 555c0 | 70 74 65 6c 20 27 70 61 72 74 69 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e | ptel.'partial)..............(fun |
| 555e0 | 63 61 6c 6c 20 75 70 64 61 74 65 20 6f 76 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d | call.update.ov.(truncate-string- |
| 55600 | 74 6f 2d 77 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 | to-width........................ |
| 55620 | 20 20 20 20 20 20 20 20 20 20 70 72 65 66 69 78 20 6d 61 78 2d 77 69 64 74 68 20 6e 69 6c 20 6e | ..........prefix.max-width.nil.n |
| 55640 | 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 20 20 20 20 20 | il.............................. |
| 55660 | 20 20 20 20 27 65 6c 6c 69 70 73 69 73 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ....'ellipsis))))))))..(defun.gp |
| 55680 | 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 20 28 70 72 6f 6d | tel--transient-read-number.(prom |
| 556a0 | 70 74 20 5f 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 68 69 73 74 6f 72 79 29 0a 20 20 22 52 65 | pt._initial-input.history)..."Re |
| 556c0 | 61 64 20 61 20 6e 75 6d 65 72 69 63 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 | ad.a.numeric.value.from.the.mini |
| 556e0 | 62 75 66 66 65 72 2e 0a 0a 50 52 4f 4d 50 54 2c 20 5f 49 4e 49 54 49 41 4c 2d 49 4e 50 55 54 20 | buffer...PROMPT,._INITIAL-INPUT. |
| 55700 | 61 6e 64 20 48 49 53 54 4f 52 59 20 61 72 65 20 61 73 20 69 6e 20 74 68 65 20 74 72 61 6e 73 69 | and.HISTORY.are.as.in.the.transi |
| 55720 | 65 6e 74 20 72 65 61 64 65 72 0a 64 6f 63 75 6d 65 6e 74 69 6f 6e 2e 20 20 52 65 74 75 72 6e 20 | ent.reader.documention...Return. |
| 55740 | 6e 69 6c 20 69 66 20 75 73 65 72 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 61 20 6e | nil.if.user.does.not.provide.a.n |
| 55760 | 75 6d 62 65 72 2c 20 66 6f 72 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 3b 3b 20 57 6f 72 6b 61 72 | umber,.for.default."...;;.Workar |
| 55780 | 6f 75 6e 64 20 66 6f 72 20 62 75 67 67 79 20 74 72 61 6e 73 69 65 6e 74 20 62 65 68 61 76 69 6f | ound.for.buggy.transient.behavio |
| 557a0 | 75 72 20 77 68 65 6e 20 64 65 61 6c 69 6e 67 20 77 69 74 68 0a 20 20 3b 3b 20 6e 6f 6e 2d 73 74 | ur.when.dealing.with...;;.non-st |
| 557c0 | 72 69 6e 67 20 76 61 6c 75 65 73 2e 20 20 53 65 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 | ring.values...See:.https://githu |
| 557e0 | 62 2e 63 6f 6d 2f 6d 61 67 69 74 2f 74 72 61 6e 73 69 65 6e 74 2f 69 73 73 75 65 73 2f 31 37 32 | b.com/magit/transient/issues/172 |
| 55800 | 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 76 61 6c 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 | ...(when-let*.((val.(symbol-valu |
| 55820 | 65 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 | e.history))).....(when.(not.(str |
| 55840 | 69 6e 67 70 20 28 63 61 72 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 76 | ingp.(car.val))).......(setcar.v |
| 55860 | 61 6c 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 76 61 6c 29 29 29 | al.(number-to-string.(car.val))) |
| 55880 | 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 69 62 75 66 66 65 72 2d 64 65 66 61 75 6c 74 2d | ))...(let*.((minibuffer-default- |
| 558a0 | 70 72 6f 6d 70 74 2d 66 6f 72 6d 61 74 20 22 22 29 0a 09 20 28 6e 75 6d 20 28 72 65 61 64 2d 6e | prompt-format."")...(num.(read-n |
| 558c0 | 75 6d 62 65 72 20 70 72 6f 6d 70 74 20 2d 31 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 28 | umber.prompt.-1.history))).....( |
| 558e0 | 69 66 20 28 3d 20 6e 75 6d 20 2d 31 29 20 6e 69 6c 20 6e 75 6d 29 29 29 0a 0a 28 64 65 66 75 6e | if.(=.num.-1).nil.num)))..(defun |
| 55900 | 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 20 28 26 6f | .gptel-system-prompt--format.(&o |
| 55920 | 70 74 69 6f 6e 61 6c 20 6d 65 73 73 61 67 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 73 | ptional.message)..."Format.the.s |
| 55940 | 79 73 74 65 6d 20 4d 45 53 53 41 47 45 20 66 6f 72 20 64 69 73 70 6c 61 79 20 69 6e 20 67 70 74 | ystem.MESSAGE.for.display.in.gpt |
| 55960 | 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 2e 0a 0a 48 61 6e 64 6c 65 20 66 6f | el's.transient.menus...Handle.fo |
| 55980 | 72 6d 61 74 74 69 6e 67 20 66 6f 72 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 20 77 68 65 | rmatting.for.system.messages.whe |
| 559a0 | 6e 20 74 68 65 20 61 63 74 69 76 65 0a 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 64 6f 65 73 20 | n.the.active.`gptel-model'.does. |
| 559c0 | 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 | not.support.system.messages."... |
| 559e0 | 28 73 65 74 71 20 6d 65 73 73 61 67 65 20 28 6f 72 20 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d | (setq.message.(or.message.gptel- |
| 55a00 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 28 69 66 20 28 67 70 74 65 6c 2d 2d | -system-message))...(if.(gptel-- |
| 55a20 | 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 0a 20 20 20 20 20 | model-capable-p.'nosystem)...... |
| 55a40 | 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5b 4e 6f 20 73 79 73 74 65 6d | .(concat.(propertize."[No.system |
| 55a60 | 20 6d 65 73 73 61 67 65 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6d 6f 64 65 6c 20 22 0a 20 20 20 | .message.support.for.model.".... |
| 55a80 | 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 61 63 65 20 27 74 72 | .......................'face.'tr |
| 55aa0 | 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 28 | ansient-heading)...............( |
| 55ac0 | 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 6e 61 6d 65 20 67 70 | propertize.(gptel--model-name.gp |
| 55ae0 | 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 20 20 20 20 20 20 | tel-model)...................... |
| 55b00 | 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 20 20 20 20 | .....'face.'warning)............ |
| 55b20 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5d 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 | ...(propertize."]".'face.'transi |
| 55b40 | 65 6e 74 2d 68 65 61 64 69 6e 67 29 29 0a 20 20 20 20 28 69 66 20 6d 65 73 73 61 67 65 0a 20 20 | ent-heading)).....(if.message... |
| 55b60 | 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 74 69 76 65 | ......(gptel--describe-directive |
| 55b80 | 0a 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 28 6d 61 78 20 28 2d 20 28 77 69 6e 64 6f | ..........message.(max.(-.(windo |
| 55ba0 | 77 2d 77 69 64 74 68 29 20 31 32 29 20 31 34 29 20 22 e2 ae 90 20 22 29 0a 20 20 20 20 20 20 22 | w-width).12).14)."....")......." |
| 55bc0 | 5b 4e 6f 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 73 65 74 5d 22 29 29 29 0a 0a 28 64 65 | [No.system.message.set]")))..(de |
| 55be0 | 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 73 2d 69 6e 69 74 2d 76 61 6c 75 65 20 28 6f 62 6a | fun.gptel--tools-init-value.(obj |
| 55c00 | 29 0a 20 20 22 53 65 74 20 74 68 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 61 20 | )..."Set.the.initial.state.of.a. |
| 55c20 | 74 6f 6f 6c 20 4f 42 4a 20 69 6e 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2e 0a 0a 4f 42 4a 20 | tool.OBJ.in.`gptel-tools'...OBJ. |
| 55c40 | 69 73 20 61 20 74 6f 6f 6c 2d 69 6e 66 69 78 20 6f 66 20 74 79 70 65 20 60 67 70 74 65 6c 2d 2d | is.a.tool-infix.of.type.`gptel-- |
| 55c60 | 73 77 69 74 63 68 27 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 63 | switch'."...(when-let*.((name.(c |
| 55c80 | 61 72 20 28 6d 65 6d 62 65 72 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 0a 20 | ar.(member.(oref.obj.argument).. |
| 55ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55cc0 | 28 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 | (mapcar.#'gptel-tool-name.gptel- |
| 55ce0 | 74 6f 6f 6c 73 29 29 29 29 29 0a 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 28 | tools))))).....(oset.obj.value.( |
| 55d00 | 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 29 29 29 | list.(oref.obj.category).name))) |
| 55d20 | 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 64 2d 70 | )..(defvar.gptel--crowdsourced-p |
| 55d40 | 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 68 75 62 | rompts-url..."https://raw.github |
| 55d60 | 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 74 67 70 | usercontent.com/f/awesome-chatgp |
| 55d80 | 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 20 22 55 | t-prompts/main/prompts.csv"..."U |
| 55da0 | 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 6d 20 70 | RL.for.crowdsourced.LLM.system.p |
| 55dc0 | 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 77 64 73 | rompts.")..(defvar.gptel--crowds |
| 55de0 | 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 61 62 6c | ourced-prompts...(make-hash-tabl |
| 55e00 | 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 63 65 64 | e.:test.#'equal)..."Crowdsourced |
| 55e20 | 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 6e 20 67 | .LLM.system.prompts.")..(defun.g |
| 55e40 | 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 65 61 64 | ptel--read-csv-column.()..."Read |
| 55e60 | 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 6e 74 20 | .next.CSV.column.in.the.current. |
| 55e80 | 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 20 61 6e | buffer...Supports.both.quoted.an |
| 55ea0 | 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 30 29 2e | d.non-quoted.columns.(RFC.4180). |
| 55ec0 | 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 20 20 28 | "...(let.((start.(point))).....( |
| 55ee0 | 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 6c 75 6d | unless.(eolp).......(let.((colum |
| 55f00 | 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 3f 5c 22 | n.......(if.(eq.(char-after).?\" |
| 55f20 | 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 20 22 5c | )....(when.(re-search-forward."\ |
| 55f40 | 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 65 6e 64 | ",\\|\"$".nil.t)......(let.((end |
| 55f60 | 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 20 28 62 | .(match-beginning.0)))........(b |
| 55f80 | 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 2b | uffer-substring-no-properties.(+ |
| 55fa0 | 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 29 20 65 | .start.1).(if.(eolp).(-.end.1).e |
| 55fc0 | 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 66 6f 72 | nd)))).........(when.(search-for |
| 55fe0 | 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 74 29 0a | ward.",".(line-end-position).t). |
| 56000 | 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 67 20 30 | ...(let.((end.(match-beginning.0 |
| 56020 | 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 2d 70 72 | )))......(buffer-substring-no-pr |
| 56040 | 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 72 69 6e | operties.start.end))))))..(strin |
| 56060 | 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 29 29 29 | g-replace."\"\""."\"".column)))) |
| 56080 | 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 2d 70 72 | )..(defun.gptel--crowdsourced-pr |
| 560a0 | 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 63 72 6f | ompts.()..."Acquire.and.read.cro |
| 560c0 | 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 0a 0a 54 | wdsourced.LLM.system.prompts...T |
| 560e0 | 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 6c 65 20 | hese.are.stored.in.the.variable. |
| 56100 | 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 2c 0a 77 | `gptel--crowdsourced-prompts',.w |
| 56120 | 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 65 2d 70 | hich.see."...(when.(hash-table-p |
| 56140 | 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 0a 20 20 | .gptel--crowdsourced-prompts)... |
| 56160 | 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 70 74 65 | ..(when.(hash-table-empty-p.gpte |
| 56180 | 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 20 20 28 | l--crowdsourced-prompts).......( |
| 561a0 | 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 6d 70 74 | unless.gptel-crowdsourced-prompt |
| 561c0 | 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 20 6e 69 | s-file.........(run-at-time.0.ni |
| 561e0 | 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 20 20 20 | l.#'gptel-system-prompt)........ |
| 56200 | 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 20 70 72 | .(user-error."No.crowdsourced.pr |
| 56220 | 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 65 73 73 | ompts.available")).......(unless |
| 56240 | 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 6f 77 64 | .(and.(file-exists-p.gptel-crowd |
| 56260 | 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 20 20 20 | sourced-prompts-file)........... |
| 56280 | 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 20 20 20 | .........(time-less-p........... |
| 562a0 | 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 72 65 6e | ..........(time-subtract.(curren |
| 562c0 | 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 20 20 20 | t-time).(days-to-time.14))...... |
| 562e0 | 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 65 2d 6d | ...............(file-attribute-m |
| 56300 | 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 20 20 20 | odification-time................ |
| 56320 | 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 63 72 6f | ......(file-attributes.gptel-cro |
| 56340 | 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 20 20 20 | wdsourced-prompts-file))))...... |
| 56360 | 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 20 20 20 | ...(when.(y-or-n-p.............. |
| 56380 | 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 74 63 68 | ..(concat................."Fetch |
| 563a0 | 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 66 72 6f | .crowdsourced.system.prompts.fro |
| 563c0 | 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 7a 65 20 | m.".................(propertize. |
| 563e0 | 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 2d 63 68 | "https://github.com/f/awesome-ch |
| 56400 | 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 20 20 20 | atgpt-prompts".'face.'link)..... |
| 56420 | 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 3b 20 46 | ............"?"))...........;;.F |
| 56440 | 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 22 46 65 | etch.file...........(message."Fe |
| 56460 | 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 20 28 6c | tching.prompts...")...........(l |
| 56480 | 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 20 67 70 | et.((dir.(file-name-directory.gp |
| 564a0 | 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 29 29 29 | tel-crowdsourced-prompts-file))) |
| 564c0 | 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 69 73 74 | .............(unless.(file-exist |
| 564e0 | 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 61 72 65 | s-p.dir).(mkdir.dir.'create-pare |
| 56500 | 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 70 79 2d | nts)).............(if.(url-copy- |
| 56520 | 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 70 74 73 | file.gptel--crowdsourced-prompts |
| 56540 | 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 20 20 20 | -url............................ |
| 56560 | 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 73 2d 66 | ....gptel-crowdsourced-prompts-f |
| 56580 | 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 20 20 20 | ile............................. |
| 565a0 | 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 6d 65 73 | ...'ok-if-already-exists)...(mes |
| 565c0 | 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 65 2e 22 | sage."Fetching.prompts....done." |
| 565e0 | 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 6c 64 20 | )...............(message."Could. |
| 56600 | 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 29 29 0a | not.retrieve.new.prompts."))))). |
| 56620 | 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 2d 70 20 | ......(if.(not.(file-readable-p. |
| 56640 | 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 29 | gptel-crowdsourced-prompts-file) |
| 56660 | 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 4e 6f 20 | )...........(progn.(message."No. |
| 56680 | 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 65 22 29 | crowdsourced.prompts.available") |
| 566a0 | 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 61 63 74 | ..................(call-interact |
| 566c0 | 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 0a 20 20 | ively.#'gptel-system-prompt))... |
| 566e0 | 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 20 20 20 | ......(with-temp-buffer......... |
| 56700 | 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 2d 63 72 | ..(insert-file-contents.gptel-cr |
| 56720 | 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)........ |
| 56740 | 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 20 20 | ...(goto-char.(point-min))...... |
| 56760 | 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 20 20 20 | .....(forward-line.1)........... |
| 56780 | 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 6e 2d 6c | (while.(not.(eobp))......(when-l |
| 567a0 | 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 6c 75 6d | et*.((act.(gptel--read-csv-colum |
| 567c0 | 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 73 76 2d | n))....(prompt.(gptel--read-csv- |
| 567e0 | 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 70 74 20 | column)))...(puthash.act.prompt. |
| 56800 | 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 09 20 | gptel--crowdsourced-prompts))... |
| 56820 | 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 20 67 70 | .....(forward-line.1))))).....gp |
| 56840 | 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 28 64 65 | tel--crowdsourced-prompts))..(de |
| 56860 | 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 74 65 78 | fun.gptel--describe-infix-contex |
| 56880 | 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 74 2d 2d | t.()...(if.(null.gptel-context-- |
| 568a0 | 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 65 74 2a | alist)."Context".....(pcase-let* |
| 568c0 | 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 6e 74 65 | .........((contexts.(gptel-conte |
| 568e0 | 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 72 2d 63 | xt--collect))..........(buffer-c |
| 56900 | 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 20 20 20 | ount.(length.contexts))......... |
| 56920 | 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 20 20 20 | .(`(,file-count.,ov-count)...... |
| 56940 | 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 20 20 20 | .....(if.(>.buffer-count.0)..... |
| 56960 | 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 69 6c 65 | ..........(cl-loop.for.(buf-file |
| 56980 | 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 20 20 20 | ...ovs).in.contexts............. |
| 569a0 | 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 6c 65 29 | ...........if.(bufferp.buf-file) |
| 569c0 | 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 6c 65 6e | ........................sum.(len |
| 569e0 | 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 20 20 20 | gth.ovs).into.ov-count.......... |
| 56a00 | 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 69 6e 67 | ..............else.count.(string |
| 56a20 | 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 20 20 20 | p.buf-file).into.file-count..... |
| 56a40 | 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 72 | ...................finally.retur |
| 56a60 | 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 0a 20 20 | n.(list.file-count.ov-count))... |
| 56a80 | 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 20 28 63 | ..........(list.0.0)))).......(c |
| 56aa0 | 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 20 20 20 | oncat."Context.("............... |
| 56ac0 | 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 6f 6e 63 | (propertize................(conc |
| 56ae0 | 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 2d 63 6f | at.................(and.(>.ov-co |
| 56b00 | 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 66 6f 72 | unt.0)......................(for |
| 56b20 | 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 25 73 22 | mat."%d.region%s.in.%d.buffer%s" |
| 56b40 | 0a 20 20 20 20 20 20 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 | ..............................ov |
| 56b60 | 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 20 22 22 | -count.(if.(>.ov-count.1)."s"."" |
| 56b80 | 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 | )..............................( |
| 56ba0 | 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 20 20 20 | -.buffer-count.file-count)...... |
| 56bc0 | 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 20 28 | ........................(if.(>.( |
| 56be0 | 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 29 20 22 | .-.buffer-count.file-count).1)." |
| 56c00 | 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 20 28 3e | s".""))).................(and.(> |
| 56c20 | 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 20 20 20 | .file-count.0).................. |
| 56c40 | 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 20 20 20 | ....(format."%s%d.file%s"....... |
| 56c60 | 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 20 6f 76 | .......................(if.(>.ov |
| 56c80 | 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 0a 20 20 | -count.0).",."."").file-count... |
| 56ca0 | 20 20 20 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.( |
| 56cc0 | 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 20 20 20 | >.file-count.1)."s".""))))...... |
| 56ce0 | 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 20 20 20 | ..........'face.'warning)....... |
| 56d00 | 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 2d 2d 64 | ........")"))))..(defun.gptel--d |
| 56d20 | 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 63 72 69 | escribe-suffix-send.()..."Descri |
| 56d40 | 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 69 78 2d | be.the.action.of.`gptel--suffix- |
| 56d60 | 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 28 70 72 | send'."...(cl-flet.((ptv.(s).(pr |
| 56d80 | 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 20 20 20 | opertize.s.'face.'warning))..... |
| 56da0 | 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 73 20 27 | ........(pth.(s).(propertize.s.' |
| 56dc0 | 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 20 20 28 | face.'transient-heading))).....( |
| 56de0 | 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 74 2d 63 | let*.((args.(or.(and.transient-c |
| 56e00 | 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 20 20 20 | urrent-command.................. |
| 56e20 | 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 73 69 65 | .........(transient-args.transie |
| 56e40 | 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 20 20 20 | nt-current-command))............ |
| 56e60 | 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 61 74 65 | ...;;.Not.yet.exported,.simulate |
| 56e80 | 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 20 20 20 | ...HACK:.We.are.accessing....... |
| 56ea0 | 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 61 6c 20 | ........;;.Transient's.internal. |
| 56ec0 | 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 65 73 2e | variables.here.for.live.updates. |
| 56ee0 | 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 65 6e 74 | ...............(let*.((transient |
| 56f00 | 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 65 6e 74 | -current-command.(oref.transient |
| 56f20 | 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 20 20 20 | --prefix.command)).............. |
| 56f40 | 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 66 66 69 | ........(transient-current-suffi |
| 56f60 | 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 20 20 20 | xes.transient--suffixes))....... |
| 56f80 | 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 73 69 | ..........(transient-args.transi |
| 56fa0 | 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 20 20 20 | ent-current-command))))......... |
| 56fc0 | 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 28 69 66 | ...(lbeg.(line-number-at-pos.(if |
| 56fe0 | 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 6e 69 6e | .(use-region-p).(region-beginnin |
| 57000 | 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).............................. |
| 57020 | 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 20 20 20 | ..........(point-min))))........ |
| 57040 | 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 20 28 69 | ....(lend.(line-number-at-pos.(i |
| 57060 | 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 0a 20 20 | f.(use-region-p).(region-end)... |
| 57080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 570a0 | 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 74 65 78 | .....(point))))............(ltex |
| 570c0 | 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 20 20 20 | t.(ptv.(if.(>.lend.lbeg)........ |
| 570e0 | 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 |
| 57100 | 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 20 20 20 | ines.%d-%d)".lbeg.lend)......... |
| 57120 | 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 69 6e 65 | .................(format.".(line |
| 57140 | 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 73 74 29 | .%d)".lbeg))))............(dest) |
| 57160 | 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 28 63 6f | .(context)).......(setq.dest.(co |
| 57180 | 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 20 22 65 | nd...................((member."e |
| 571a0 | 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 20 20 20 | ".args).(ptv."echo.area"))...... |
| 571c0 | 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 73 29 20 | .............((member."k".args). |
| 571e0 | 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 20 20 20 | (ptv."kill-ring")).............. |
| 57200 | 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 20 20 20 | .....((cl-some.(lambda.(s)...... |
| 57220 | 20 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 73 | .........................(and.(s |
| 57240 | 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 3f 67 20 | tringp.s).(memq.(aref.s.0).'(?g. |
| 57260 | 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 20 20 20 | ?b))............................ |
| 57280 | 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 67 20 73 | ........(not.(equal.(substring.s |
| 572a0 | 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 20 20 20 | .1).(buffer-name)))............. |
| 572c0 | 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 28 | .......................(concat.( |
| 572e0 | 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 67 20 73 | pth."buffer.").(ptv.(substring.s |
| 57300 | 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 20 20 20 | .1)))))......................... |
| 57320 | 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 65 78 74 | ....args)))).......(setq.context |
| 57340 | 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 78 74 2d | .............(and.gptel-context- |
| 57360 | 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 28 28 6c | -alist..................(let.((l |
| 57380 | 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 74 29 29 | c.(length.gptel-context--alist)) |
| 573a0 | 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 28 70 74 | )....................(concat.(pt |
| 573c0 | 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 74 20 22 | h.".along.with.").(ptv.(format." |
| 573e0 | 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 20 20 20 | %d".lc))........................ |
| 57400 | 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 75 72 63 | ....(pth.(concat.".context.sourc |
| 57420 | 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 20 20 20 | e".(and.(/=.lc.1)."s"))))))).... |
| 57440 | 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 20 20 20 | ...(cond.((member."m".args)..... |
| 57460 | 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 72 6f 6d | .........(concat.(pth."Read.prom |
| 57480 | 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 0a 20 20 | pt.from.").(ptv."minibuffer")... |
| 574a0 | 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 20 20 20 | ...................context...... |
| 574c0 | 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 63 61 74 | ................(if.dest.(concat |
| 574e0 | 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 0a 20 20 | .(pth.",.response.to.").dest)... |
| 57500 | 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 74 | .....................(concat.(pt |
| 57520 | 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 22 29 29 | h.",.insert.response.at.point")) |
| 57540 | 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 61 72 67 | ))).............((member."y".arg |
| 57560 | 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 22 53 65 | s)..............(concat.(pth."Se |
| 57580 | 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 63 61 74 | nd.prompt.from.")........(concat |
| 575a0 | 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 28 69 66 | .(ptv."kill-ring.(").........(if |
| 575c0 | 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 6e 67 29 | -let*.((val.(car-safe.kill-ring) |
| 575e0 | 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 6e 6f 2d | )............(val.(substring-no- |
| 57600 | 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 6c 65 6e | properties.val))............(len |
| 57620 | 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 6e 63 61 | .(length.val)))......(ptv.(conca |
| 57640 | 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............................... |
| 57660 | 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 0a 09 09 | ........."\"".(string-replace... |
| 57680 | 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 28 74 72 | ........"\n"."..."...........(tr |
| 576a0 | 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 20 20 20 | uncate-string-to-width.......... |
| 576c0 | 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 20 20 20 | ..val.20.nil.nil.t))............ |
| 576e0 | 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 20 20 20 | "\"".(when.(>.len.20)........... |
| 57700 | 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 09 09 20 | .(concat.............",."....... |
| 57720 | 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 6c 65 20 | ......(file-size-human-readable. |
| 57740 | 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 61 72 73 | len.'si.".").............".chars |
| 57760 | 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 70 74 79 | ")))).........(propertize."empty |
| 57780 | 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 29 22 29 | ".'face.'error)).......(ptv.")") |
| 577a0 | 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 74 0a 20 | )......................context.. |
| 577c0 | 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 28 63 6f | ....................(if.dest.(co |
| 577e0 | 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 65 73 74 | ncat.(pth.",.response.to.").dest |
| 57800 | 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 63 61 74 | )........................(concat |
| 57820 | 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 6f 69 6e | .(pth.",.insert.response.at.poin |
| 57840 | 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 22 69 22 | t"))))).............((member."i" |
| 57860 | 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 65 67 20 | .args)..............(let*.((reg. |
| 57880 | 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 20 20 20 | (use-region-p))................. |
| 578a0 | 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 69 6f 6e | ....(src.(ptv.(if.reg."selection |
| 578c0 | 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 20 20 20 | ".(buffer-name)))))............. |
| 578e0 | 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 64 20 22 | ...(if.dest.(concat.(pth."Send." |
| 57900 | 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 69 74 68 | ).src.ltext.context.(pth.",.with |
| 57920 | 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 20 20 20 | .response.to.")................. |
| 57940 | 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 74 68 20 | ................(ptv.dest).(pth. |
| 57960 | 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 20 20 20 | ";.kill").ltext................. |
| 57980 | 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 29 20 28 | ................(and.(not.reg).( |
| 579a0 | 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 20 20 20 | concat.(pth.".in.").src)))...... |
| 579c0 | 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 6c 61 63 | ............(concat.(pth."Replac |
| 579e0 | 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 73 70 6f | e.").src.ltext.(pth.".with.respo |
| 57a00 | 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 20 20 28 | nse")..........................( |
| 57a20 | 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 20 20 20 | and.context..................... |
| 57a40 | 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 74 68 22 | ..........(concat.(pth.".(.with" |
| 57a60 | 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 29 29 29 | ).(substring.context.11).".)"))) |
| 57a80 | 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 70 29 0a | ))).............((use-region-p). |
| 57aa0 | 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 6e 64 20 | .............(concat.(pth."Send. |
| 57ac0 | 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 20 20 20 | ").(ptv."selection").ltext...... |
| 57ae0 | 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 65 73 74 | ................context.(if.dest |
| 57b00 | 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 65 20 74 | .(concat.(pth.",.with.response.t |
| 57b20 | 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 20 20 20 | o.").dest)...................... |
| 57b40 | 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 65 72 74 | ..........(concat.(pth.",.insert |
| 57b60 | 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 0a 20 20 | .response.at.region.end")))))... |
| 57b80 | 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 6e 64 20 | ..........(t.(concat.(pth."Send. |
| 57ba0 | 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 20 20 20 | ").(ptv.(buffer-name)).ltext.... |
| 57bc0 | 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 69 66 20 | ....................context.(if. |
| 57be0 | 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 70 6f 6e | dest.(concat.(pth.",.with.respon |
| 57c00 | 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 20 20 20 | se.to.").dest).................. |
| 57c20 | 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 22 2c 20 | ................(concat.(pth.",. |
| 57c40 | 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 29 29 29 | insert.response.at.point"))))))) |
| 57c60 | 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 63 6c 61 73 73 65 73 20 61 6e 64 | ))....;;.*.Transient.classes.and |
| 57c80 | 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 67 70 74 65 6c 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 | .methods.for.gptel..(defclass.gp |
| 57ca0 | 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 | tel-lisp-variable.(transient-lis |
| 57cc0 | 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a 69 6e 69 | p-variable)...((display-nil.:ini |
| 57ce0 | 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 29 20 20 3b 53 74 72 69 6e 67 20 74 6f 20 64 | targ.:display-nil)..;String.to.d |
| 57d00 | 69 73 70 6c 61 79 20 69 66 20 76 61 6c 75 65 20 69 66 20 6e 69 6c 0a 20 20 20 28 64 69 73 70 6c | isplay.if.value.if.nil....(displ |
| 57d20 | 61 79 2d 6d 61 70 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 3a 69 6e | ay-map.:initarg.:display-map.:in |
| 57d40 | 69 74 66 6f 72 6d 20 6e 69 6c 29 29 20 3b 44 69 73 70 6c 61 79 20 73 74 72 69 6e 67 20 66 72 6f | itform.nil)).;Display.string.fro |
| 57d60 | 6d 20 61 6c 69 73 74 20 64 69 73 70 6c 61 79 2d 6d 61 70 0a 20 20 22 4c 69 73 70 20 76 61 72 69 | m.alist.display-map..."Lisp.vari |
| 57d80 | 61 62 6c 65 73 20 74 68 61 74 20 73 68 6f 77 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 69 6e 73 | ables.that.show.:display-nil.ins |
| 57da0 | 74 65 61 64 20 6f 66 20 6e 69 6c 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 | tead.of.nil.")..(cl-defmethod.tr |
| 57dc0 | 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c | ansient-format-value.((obj.gptel |
| 57de0 | 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 29 0a 20 20 28 6c 65 74 20 28 28 64 69 73 70 6c 61 | -lisp-variable))...(let.((displa |
| 57e00 | 79 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 | y-value..........(with-slots.(va |
| 57e20 | 6c 75 65 20 64 69 73 70 6c 61 79 2d 6e 69 6c 20 64 69 73 70 6c 61 79 2d 6d 61 70 29 20 6f 62 6a | lue.display-nil.display-map).obj |
| 57e40 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 | ............(cond.((null.value). |
| 57e60 | 64 69 73 70 6c 61 79 2d 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | display-nil)..................(d |
| 57e80 | 69 73 70 6c 61 79 2d 6d 61 70 20 28 6f 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 76 61 6c 75 65 | isplay-map.(or.(cdr.(assoc.value |
| 57ea0 | 20 64 69 73 70 6c 61 79 2d 6d 61 70 29 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 | .display-map)).value)).......... |
| 57ec0 | 20 20 20 20 20 20 20 20 28 74 20 76 61 6c 75 65 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 65 | ........(t.value))))).....(prope |
| 57ee0 | 72 74 69 7a 65 0a 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 64 69 73 70 6c 61 79 2d | rtize......(if.(stringp.display- |
| 57f00 | 76 61 6c 75 65 29 20 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 20 28 70 72 69 6e 31 2d 74 6f 2d 73 | value).display-value.(prin1-to-s |
| 57f20 | 74 72 69 6e 67 20 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 27 66 61 63 65 | tring.display-value))......'face |
| 57f40 | 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | .'transient-value)))..(cl-defmet |
| 57f60 | 68 6f 64 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 | hod.transient-infix-set.((obj.gp |
| 57f80 | 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 6e | tel-lisp-variable).value)...(fun |
| 57fa0 | 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 20 | call.(oref.obj.set-value)....... |
| 57fc0 | 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 20 | .....(oref.obj.variable)........ |
| 57fe0 | 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 0a 20 20 20 20 20 | ....(oset.obj.value.value)...... |
| 58000 | 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 6c 79 29 | ......gptel--set-buffer-locally) |
| 58020 | 29 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 20 28 74 72 61 6e | )..(defclass.gptel--switch.(tran |
| 58040 | 73 69 65 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 | sient-switch)...((category.:init |
| 58060 | 61 72 67 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 | arg.:category))..."Class.used.fo |
| 58080 | 72 20 61 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 | r.arguments.that.share.a.categor |
| 580a0 | 79 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 69 6e | y.")..(cl-defmethod.transient-in |
| 580c0 | 66 69 78 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 | fix-set.((obj.gptel--switch).val |
| 580e0 | 75 65 29 0a 20 20 22 54 68 65 20 56 41 4c 55 45 20 6f 66 20 61 20 67 70 74 65 6c 2d 2d 73 77 69 | ue)..."The.VALUE.of.a.gptel--swi |
| 58100 | 74 63 68 20 4f 42 4a 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 63 61 74 65 67 6f 72 | tch.OBJ.is.a.list.of.the.categor |
| 58120 | 79 0a 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 2c 20 65 2e 67 2e 20 28 5c 22 66 69 6c 65 73 79 73 | y..and.argument,.e.g..(\"filesys |
| 58140 | 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 69 66 20 76 61 6c | tem\".\"read_file\")."...(if.val |
| 58160 | 75 65 0a 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 28 6c 69 73 74 20 28 | ue.......(oset.obj.value.(list.( |
| 58180 | 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 | oref.obj.category).value)).....( |
| 581a0 | 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 63 6c 61 73 73 | oset.obj.value.nil)))..(defclass |
| 581c0 | 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 20 28 74 72 61 6e 73 69 65 | .gptel--switch-category.(transie |
| 581e0 | 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 |
| 58200 | 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 |
| 58220 | 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 73 77 69 74 63 68 20 61 20 67 72 6f 75 70 20 6f 66 20 | rguments.that.switch.a.group.of. |
| 58240 | 6f 74 68 65 72 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 65 69 72 20 6f 77 6e 20 76 61 6c 75 | other.arguments...Their.own.valu |
| 58260 | 65 20 69 73 20 69 67 6e 6f 72 65 64 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 | e.is.ignored")..(cl-defmethod.tr |
| 58280 | 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 2d 2d 73 | ansient-infix-set.((obj.gptel--s |
| 582a0 | 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 20 76 61 6c 75 65 29 0a 20 20 22 57 68 65 6e 20 73 | witch-category).value)..."When.s |
| 582c0 | 65 74 74 69 6e 67 20 56 41 4c 55 45 2c 20 73 65 74 20 61 6c 6c 20 6f 70 74 69 6f 6e 73 20 69 6e | etting.VALUE,.set.all.options.in |
| 582e0 | 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 6f 66 20 4f 42 4a 2e 22 0a 20 20 28 64 6f 6c 69 73 74 | .the.category.of.OBJ."...(dolist |
| 58300 | 20 28 73 75 66 66 69 78 2d 6f 62 6a 20 74 72 61 6e 73 69 65 6e 74 2d 2d 73 75 66 66 69 78 65 73 | .(suffix-obj.transient--suffixes |
| 58320 | 29 0a 20 20 20 20 3b 3b 20 46 69 6e 64 20 61 6c 6c 20 73 75 66 66 69 78 65 73 20 74 68 61 74 20 | ).....;;.Find.all.suffixes.that. |
| 58340 | 68 61 76 65 20 74 68 69 73 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 | have.this.category.....(when-let |
| 58360 | 2a 20 28 28 28 63 6c 2d 74 79 70 65 70 20 73 75 66 66 69 78 2d 6f 62 6a 20 27 67 70 74 65 6c 2d | *.(((cl-typep.suffix-obj.'gptel- |
| 58380 | 2d 73 77 69 74 63 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 | -switch)).................((equa |
| 583a0 | 6c 20 28 6f 72 65 66 20 73 75 66 66 69 78 2d 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 | l.(oref.suffix-obj.category).... |
| 583c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 63 | .....................(oref.obj.c |
| 583e0 | 61 74 65 67 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 20 | ategory))).................(arg. |
| 58400 | 28 69 66 20 28 73 6c 6f 74 2d 62 6f 75 6e 64 70 20 73 75 66 66 69 78 2d 6f 62 6a 20 27 61 72 67 | (if.(slot-boundp.suffix-obj.'arg |
| 58420 | 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 20 20 20 20 | ument).......................... |
| 58440 | 28 6f 72 65 66 20 73 75 66 66 69 78 2d 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 | (oref.suffix-obj.argument)...... |
| 58460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 | ..................(oref.obj.argu |
| 58480 | 6d 65 6e 74 2d 66 6f 72 6d 61 74 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 75 72 6e 20 6f 6e | ment-format)))).......;;.Turn.on |
| 584a0 | 2f 6f 66 66 20 61 6c 6c 20 6d 65 6d 62 65 72 73 20 69 6e 20 63 61 74 65 67 6f 72 79 0a 20 20 20 | /off.all.members.in.category.... |
| 584c0 | 20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e | ...(if.value...........(transien |
| 584e0 | 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 20 20 20 | t-infix-set.suffix-obj.arg)..... |
| 58500 | 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 69 78 2d | ....(transient-infix-set.suffix- |
| 58520 | 6f 62 6a 20 6e 69 6c 29 29 29 29 0a 20 20 3b 3b 20 46 69 6e 61 6c 6c 79 20 73 65 74 20 74 68 65 | obj.nil))))...;;.Finally.set.the |
| 58540 | 20 22 76 61 6c 75 65 22 20 6f 66 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 69 74 73 65 6c 66 0a | ."value".of.the.category.itself. |
| 58560 | 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 0a 0a 28 64 65 66 63 | ..(oset.obj.value.value))..(defc |
| 58580 | 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 20 28 67 70 74 65 6c 2d 6c 69 73 70 | lass.gptel--switches.(gptel-lisp |
| 585a0 | 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 3a | -variable)...((display-if-true.: |
| 585c0 | 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 66 6f | initarg.:display-if-true.:initfo |
| 585e0 | 72 6d 20 22 54 72 75 65 22 29 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 | rm."True")....(display-if-false. |
| 58600 | 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 69 6e 69 74 | :initarg.:display-if-false.:init |
| 58620 | 66 6f 72 6d 20 22 46 61 6c 73 65 22 29 29 0a 20 20 22 42 6f 6f 6c 65 61 6e 20 6c 69 73 70 20 76 | form."False"))..."Boolean.lisp.v |
| 58640 | 61 72 69 61 62 6c 65 20 63 6c 61 73 73 20 66 6f 72 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e | ariable.class.for.gptel-transien |
| 58660 | 74 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 69 6e | t.")..(cl-defmethod.transient-in |
| 58680 | 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 | fix-read.((obj.gptel--switches)) |
| 586a0 | 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 67 68 20 74 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 | ..."Cycle.through.the.mutually.e |
| 586c0 | 78 63 6c 75 73 69 76 65 20 73 77 69 74 63 68 65 73 2e 22 0a 20 20 28 6e 6f 74 20 28 6f 72 65 66 | xclusive.switches."...(not.(oref |
| 586e0 | 20 6f 62 6a 20 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 | .obj.value)))..(cl-defmethod.tra |
| 58700 | 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d | nsient-format-value.((obj.gptel- |
| 58720 | 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 | -switches))...(with-slots.(value |
| 58740 | 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 69 66 2d 66 61 6c 73 | .display-if-true.display-if-fals |
| 58760 | 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 20 20 20 28 70 72 6f | e).obj.......(format........(pro |
| 58780 | 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 6e 73 69 65 6e 74 2d | pertize."(%s)".'face.'transient- |
| 587a0 | 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 0a 20 20 20 20 20 20 | delimiter)........(concat....... |
| 587c0 | 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 66 61 6c 73 65 0a 20 | ..(propertize.display-if-false.. |
| 587e0 | 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 28 69 66 20 76 61 6c | ...................'face.(if.val |
| 58800 | 75 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 20 27 74 72 | ue.'transient-inactive-value.'tr |
| 58820 | 61 6e 73 69 65 6e 74 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 | ansient-value)).........(propert |
| 58840 | 69 7a 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 | ize."|".'face.'transient-delimit |
| 58860 | 65 72 29 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 | er).........(propertize.display- |
| 58880 | 69 66 2d 74 72 75 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 | if-true.....................'fac |
| 588a0 | 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 | e.(if.value.'transient-value.'tr |
| 588c0 | 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 64 | ansient-inactive-value))))))..(d |
| 588e0 | 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 6c 2d 2d 73 77 69 | efclass.gptel--scope.(gptel--swi |
| 58900 | 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 20 3a 69 6e 69 74 | tches)...((display-if-true.:init |
| 58920 | 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 66 6f 72 6d 20 22 | arg.:display-if-true.:initform." |
| 58940 | 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 6c 73 65 20 3a 69 | buffer")....(display-if-false.:i |
| 58960 | 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 69 6e 69 74 66 6f | nitarg.:display-if-false.:initfo |
| 58980 | 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 20 6c 69 73 70 20 | rm."global"))..."Singleton.lisp. |
| 589a0 | 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 2d 73 65 74 2d 62 | variable.class.for.`gptel--set-b |
| 589c0 | 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 73 65 64 20 6f 6e | uffer-locally'...This.is.used.on |
| 589e0 | 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 6c 65 20 76 69 61 | ly.for.setting.this.variable.via |
| 58a00 | 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 65 74 68 6f 64 20 | .`gptel-menu'.")..(cl-defmethod. |
| 58a20 | 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 67 70 74 65 6c | transient-infix-read.((obj.gptel |
| 58a40 | 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 20 74 68 65 20 6d | --scope))..."Cycle.through.the.m |
| 58a60 | 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 2e 22 0a 20 20 28 | utually.exclusive.switches."...( |
| 58a80 | 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 20 28 70 63 61 73 | with-slots.(value).obj.....(pcas |
| 58aa0 | 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 20 22 50 61 72 61 | e.value.......('t.(message."Para |
| 58ac0 | 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 20 6e 65 78 74 20 | meters.will.be.set.for.the.next. |
| 58ae0 | 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 6c 20 28 6d 65 73 | request.only")).......('nil.(mes |
| 58b00 | 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 62 75 66 | sage."Parameters.will.be.set.buf |
| 58b20 | 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 65 73 73 61 67 65 | fer-locally")).......(1.(message |
| 58b40 | 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 6c 6f 62 61 6c 6c | ."Parameters.will.be.set.globall |
| 58b60 | 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 20 31 29 20 28 27 | y"))).....(pcase.value.('t.1).(' |
| 58b80 | 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 6d 65 74 68 6f 64 | nil.t).(1.nil))))..(cl-defmethod |
| 58ba0 | 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 6f 62 6a 20 67 70 | .transient-format-value.((obj.gp |
| 58bc0 | 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 20 28 76 61 6c 75 | tel--scope))...(with-slots.(valu |
| 58be0 | 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 69 66 2d 66 61 6c | e.display-if-true.display-if-fal |
| 58c00 | 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 20 20 20 28 70 72 | se).obj.......(format........(pr |
| 58c20 | 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 6e 73 69 65 6e 74 | opertize."(%s)".'face.'transient |
| 58c40 | 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 0a 20 20 20 20 20 | -delimiter)........(concat...... |
| 58c60 | 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 66 61 6c 73 65 0a | ...(propertize.display-if-false. |
| 58c80 | 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 28 69 66 20 28 6e | ....................'face.(if.(n |
| 58ca0 | 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 65 20 27 74 72 61 | ull.value).'transient-value.'tra |
| 58cc0 | 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 20 20 20 20 20 20 | nsient-inactive-value))......... |
| 58ce0 | 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 6e 73 69 65 6e 74 | (propertize."|".'face.'transient |
| 58d00 | 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 72 74 69 7a 65 20 | -delimiter).........(propertize. |
| 58d20 | 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 20 20 20 20 20 20 | display-if-true................. |
| 58d40 | 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 20 27 74 72 61 6e | ....'face.(if.(eq.value.t).'tran |
| 58d60 | 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 65 2d | sient-value.'transient-inactive- |
| 58d80 | 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 65 20 22 7c 22 20 | value)).........(propertize."|". |
| 58da0 | 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)..... |
| 58dc0 | 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 27 66 61 63 65 0a | ....(propertize."oneshot".'face. |
| 58de0 | 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 6c 20 76 61 6c | ....................(if.(eql.val |
| 58e00 | 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 61 6e 73 69 65 6e | ue.1).'transient-value.'transien |
| 58e20 | 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 6c 2d 64 65 66 6d | t-inactive-value))))))..(cl-defm |
| 58e40 | 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 28 28 6f 62 6a 20 | ethod.transient-infix-set.((obj. |
| 58e60 | 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 6e 63 61 6c 6c 20 | gptel--scope).value)...(funcall. |
| 58e80 | 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 20 20 20 20 20 20 | (oref.obj.set-value)............ |
| 58ea0 | 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 28 | (oref.obj.variable)............( |
| 58ec0 | 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 28 64 65 66 63 6c 61 | oset.obj.value.value)))..(defcla |
| 58ee0 | 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 28 74 72 61 6e | ss.gptel-provider-variable.(tran |
| 58f00 | 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 63 6b 65 6e 64 | sient-lisp-variable)...((backend |
| 58f20 | 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 20 20 28 62 61 | .......:initarg.:backend)....(ba |
| 58f40 | 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 6e 64 2d 76 61 | ckend-value.:initarg.:backend-va |
| 58f60 | 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 6f 72 6d 20 74 | lue)....(always-read.:initform.t |
| 58f80 | 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 65 74 2d 76 61 | )....(set-value.:initarg.:set-va |
| 58fa0 | 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 61 73 73 20 75 | lue.:initform.#'set))..."Class.u |
| 58fc0 | 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 28 63 6c 2d 64 | sed.for.gptel-backends.")..(cl-d |
| 58fe0 | 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 75 65 20 | efmethod.transient-format-value. |
| 59000 | 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 6c 65 29 29 0a | ((obj.gptel-provider-variable)). |
| 59020 | 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 20 20 20 20 20 | ..(propertize.(concat........... |
| 59040 | 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 20 | .....(gptel-backend-name........ |
| 59060 | 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 28 6f 72 | .........(buffer-local-value.(or |
| 59080 | 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 6f 72 69 67 69 | ef.obj.backend).transient--origi |
| 590a0 | 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 20 20 20 20 20 | nal-buffer)).":"................ |
| 590c0 | 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 6a 20 76 61 6c | (gptel--model-name.(oref.obj.val |
| 590e0 | 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 74 72 61 6e 73 | ue)))...............'face.'trans |
| 59100 | 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 20 74 72 61 6e | ient-value))..(cl-defmethod.tran |
| 59120 | 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 2d 70 72 6f 76 | sient-infix-set.((obj.gptel-prov |
| 59140 | 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 61 73 65 2d 6c | ider-variable).value)...(pcase-l |
| 59160 | 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 6c 2d 76 61 6c | et.((`(,backend-value.,model-val |
| 59180 | 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 72 65 66 20 6f | ue).value)).....(funcall.(oref.o |
| 591a0 | 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 28 6f 72 65 66 | bj.set-value)..............(oref |
| 591c0 | 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 20 28 6f 73 65 | .obj.variable)..............(ose |
| 591e0 | 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 20 20 20 20 20 | t.obj.value.model-value)........ |
| 59200 | 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 6c 79 29 | ......gptel--set-buffer-locally) |
| 59220 | 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 2d 76 61 6c 75 | .....(funcall.(oref.obj.set-valu |
| 59240 | 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 61 63 6b 65 6e | e)..............(oref.obj.backen |
| 59260 | 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 61 63 6b 65 6e | d)..............(oset.obj.backen |
| 59280 | 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 20 20 20 20 20 | d-value.backend-value).......... |
| 592a0 | 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)). |
| 592c0 | 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 64 65 66 63 6c 61 73 73 20 | ..(transient-setup))..(defclass. |
| 592e0 | 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 65 6e 74 | gptel-option-overlaid.(transient |
| 59300 | 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 74 61 72 | -option)...((display-nil.:initar |
| 59320 | 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 69 6e 69 | g.:display-nil)....(overlay.:ini |
| 59340 | 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 6f 70 74 | targ.:overlay))..."Transient.opt |
| 59360 | 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 6e 20 74 | ions.for.overlays.displayed.in.t |
| 59380 | 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 6d 65 74 | he.working.buffer.")..(cl-defmet |
| 593a0 | 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 6f 62 6a | hod.transient-format-value.((obj |
| 593c0 | 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 65 74 20 | .gptel-option-overlaid))..."Set. |
| 593e0 | 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 61 64 64 | up.the.in-buffer.overlay.for.add |
| 59400 | 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 0a 41 6c | itional.directive,.a.string...Al |
| 59420 | 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 61 6e 73 | so.format.its.value.in.the.Trans |
| 59440 | 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 72 65 66 | ient.menu."...(let.((value.(oref |
| 59460 | 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 6f 72 65 | .obj.value)).........(ov....(ore |
| 59480 | 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 6d 65 6e | f.obj.overlay)).........(argumen |
| 594a0 | 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 3b 20 4d | t.(oref.obj.argument))).....;;.M |
| 594c0 | 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 28 6e 6f | aking.an.overlay.....(if.(or.(no |
| 594e0 | 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 65 29 29 | t.value).(string-empty-p.value)) |
| 59500 | 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 72 6c 61 | .........(when.ov.(delete-overla |
| 59520 | 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 66 66 65 | y.ov)).......(with-current-buffe |
| 59540 | 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 20 20 20 | r.transient--original-buffer.... |
| 59560 | 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 2d 2d 69 | .....(oset.obj.overlay.(gptel--i |
| 59580 | 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 65 20 6f | nstructions-make-overlay.value.o |
| 595a0 | 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 2d 68 6f | v))).......(letrec.((ov-clear-ho |
| 595c0 | 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 20 28 77 | ok.................(lambda.().(w |
| 595e0 | 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 61 79 29 | hen-let*.((ov.(oref.obj.overlay) |
| 59600 | 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 | )............................... |
| 59620 | 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 20 20 20 | ....((overlayp.ov)))............ |
| 59640 | 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 61 6e 73 | .............(remove-hook.'trans |
| 59660 | 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 20 20 20 | ient-exit-hook.................. |
| 59680 | 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 68 6f 6f | ....................ov-clear-hoo |
| 596a0 | 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 65 6c 65 | k).........................(dele |
| 596c0 | 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 64 64 2d | te-overlay.ov))))).........(add- |
| 596e0 | 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 63 6c 65 | hook.'transient-exit-hook.ov-cle |
| 59700 | 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 61 6e 73 | ar-hook))).....;;.Updating.trans |
| 59720 | 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 75 65 0a | ient.menu.display.....(if.value. |
| 59740 | 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 72 67 75 | ........(propertize.(concat.argu |
| 59760 | 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 68 20 76 | ment.(truncate-string-to-width.v |
| 59780 | 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 20 20 20 | alue.35.nil.nil.t))............. |
| 597a0 | 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 65 29 0a | ........'face.'transient-value). |
| 597c0 | 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 63 61 74 | ......(propertize........(concat |
| 597e0 | 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 69 73 70 | ."(".(symbol-name.(oref.obj.disp |
| 59800 | 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 74 72 61 | lay-nil)).")")........'face.'tra |
| 59820 | 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 3b 3b 20 | nsient-inactive-value))))....;;. |
| 59840 | 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 75 74 6f | *.Transient.Prefixes..;;;###auto |
| 59860 | 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 70 74 65 | load.(autoload.'gptel-menu."gpte |
| 59880 | 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 74 2d 64 | l-transient".nil.t).(transient-d |
| 598a0 | 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 22 43 68 | efine-prefix.gptel-menu.()..."Ch |
| 598c0 | 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 73 65 6e | ange.parameters.of.prompt.to.sen |
| 598e0 | 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 65 20 27 | d.to.the.LLM."...:incompatible.' |
| 59900 | 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 6b 22 29 | (("m"."y"."i").("e"."g"."b"."k") |
| 59920 | 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 62 22 20 | )...;;.:value.(list.(concat."b". |
| 59940 | 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 6f 6e 20 | (buffer-name)))...[:description. |
| 59960 | 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 20 20 5b | gptel-system-prompt--format....[ |
| 59980 | 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 70 74 65 | "".....:if.(lambda.().(not.(gpte |
| 599a0 | 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 29 29 0a | l--model-capable-p.'nosystem))). |
| 599c0 | 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 53 65 74 | ...."Instructions".....("s"."Set |
| 599e0 | 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 2d 70 72 | .system.message".gptel-system-pr |
| 59a00 | 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 2d 2d 69 | ompt.:transient.t).....(gptel--i |
| 59a20 | 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 2d 6b 65 | nfix-add-directive)]....[:pad-ke |
| 59a40 | 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 65 73 63 | ys.t."".....(:info.#'gptel--desc |
| 59a60 | 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 20 74 72 | ribe-infix-context......:face.tr |
| 59a80 | 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 0a 20 20 | ansient-heading.:format."%d")... |
| 59aa0 | 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 72 65 67 69 | ..(gptel--infix-context-add-regi |
| 59ac0 | 6f 6e 29 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 | on).....(gptel--infix-context-ad |
| 59ae0 | 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 | d-buffer).....(gptel--infix-cont |
| 59b00 | 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d | ext-add-file).....(gptel--infix- |
| 59b20 | 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d | context-remove-all).....(gptel-- |
| 59b40 | 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 29 5d 0a 20 20 20 5b 3a 70 61 64 | suffix-context-buffer)]....[:pad |
| 59b60 | 2d 6b 65 79 73 20 74 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 | -keys.t.....:if.(lambda.().(and. |
| 59b80 | 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f | gptel-use-tools.gptel--known-too |
| 59ba0 | 6c 73 29 29 0a 20 20 20 20 22 22 20 28 3a 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | ls))....."".(:info.........(lamb |
| 59bc0 | 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 20 20 20 20 20 20 | da.()...........(concat......... |
| 59be0 | 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 73 0a 20 20 20 20 | ..."Tools".(and.gptel-tools..... |
| 59c00 | 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 20 28 22 | ....................(concat.".(" |
| 59c20 | 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 65 6c 65 63 74 65 | .(propertize.(format."%d.selecte |
| 59c40 | 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 20 20 20 20 20 20 | d".............................. |
| 59c60 | 20 20 20 20 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 |
| 59c80 | 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 20 20 20 20 20 20 | gth.gptel-tools))............... |
| 59ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 59cc0 | 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 20 20 20 20 20 20 | ...'face.'warning).............. |
| 59ce0 | 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 0a 20 20 20 20 20 | ...................")"))))...... |
| 59d00 | 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 73 69 65 6e 74 2d | ...:format."%d".:face.transient- |
| 59d20 | 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 74 6f 6f 6c 73 22 | heading).....("t"."Select.tools" |
| 59d40 | 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 0a 20 20 20 20 28 | .gptel-tools.:transient.t).....( |
| 59d60 | 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 20 20 20 20 20 28 | "T"."Continue.tool.calls"......( |
| 59d80 | 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 70 74 65 6c 2d 2d | lambda.().(interactive).(gptel-- |
| 59da0 | 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 2d 6c 61 73 74 29 | handle-tool-use.gptel--fsm-last) |
| 59dc0 | 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 20 67 70 74 65 6c | )......:if.(lambda.().(and.gptel |
| 59de0 | 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 20 20 20 20 20 28 | --fsm-last.....................( |
| 59e00 | 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 2d 66 73 6d 2d 6c | eq.(gptel-fsm-state.gptel--fsm-l |
| 59e20 | 61 73 74 29 20 27 54 4f 4f 4c 29 29 29 29 5d 5d 0a 20 20 5b 5b 22 52 65 71 75 65 73 74 20 50 61 | ast).'TOOL))))]]...[["Request.Pa |
| 59e40 | 72 61 6d 65 74 65 72 73 22 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 | rameters".....(gptel--infix-vari |
| 59e60 | 61 62 6c 65 2d 73 63 6f 70 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 70 72 | able-scope).....(gptel--infix-pr |
| 59e80 | 6f 76 69 64 65 72 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6d 61 78 2d 74 6f | ovider).....(gptel--infix-max-to |
| 59ea0 | 6b 65 6e 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 | kens).....(gptel--infix-num-mess |
| 59ec0 | 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 | ages-to-send......:if.(lambda.() |
| 59ee0 | 20 28 61 6e 64 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 | .(and.gptel-expert-commands..... |
| 59f00 | 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 6d 6f 64 65 20 67 | ................(or.gptel-mode.g |
| 59f20 | 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 | ptel-track-response)))).....(gpt |
| 59f40 | 65 6c 2d 2d 69 6e 66 69 78 2d 74 65 6d 70 65 72 61 74 75 72 65 20 3a 69 66 20 28 6c 61 6d 62 64 | el--infix-temperature.:if.(lambd |
| 59f60 | 61 20 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 29 0a 20 20 20 | a.().gptel-expert-commands)).... |
| 59f80 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 | .(gptel--infix-use-context)..... |
| 59fa0 | 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 | (gptel--infix-include-reasoning) |
| 59fc0 | 0a 20 20 20 20 28 67 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 | .....(gptel--infix-use-tools)... |
| 59fe0 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 0a 20 | ..(gptel--infix-track-response.. |
| 5a000 | 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 65 6c 2d 65 78 | ....:if.(lambda.().(and.gptel-ex |
| 5a020 | 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 20 28 6e 6f 74 20 67 70 74 65 6c 2d 6d 6f 64 65 29 29 29 | pert-commands.(not.gptel-mode))) |
| 5a040 | 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a | ).....(gptel--infix-track-media. |
| 5a060 | 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 65 6c 2d 6d | .....:if.(lambda.().(and.gptel-m |
| 5a080 | 6f 64 65 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 64 | ode.(gptel--model-capable-p.'med |
| 5a0a0 | 69 61 29 29 29 29 5d 0a 20 20 20 5b 22 20 3c 50 72 6f 6d 70 74 20 66 72 6f 6d 22 0a 20 20 20 20 | ia))))]....[".<Prompt.from"..... |
| 5a0c0 | 28 22 6d 22 20 22 4d 69 6e 69 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 22 20 22 6d 22 29 0a 20 | ("m"."Minibuffer.instead"."m").. |
| 5a0e0 | 20 20 20 28 22 79 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 20 69 6e 73 74 65 61 64 22 20 22 79 22 29 | ...("y"."Kill-ring.instead"."y") |
| 5a100 | 0a 20 20 20 20 22 22 0a 20 20 20 20 28 22 69 22 20 22 52 65 73 70 6f 6e 64 20 69 6e 20 70 6c 61 | ....."".....("i"."Respond.in.pla |
| 5a120 | 63 65 22 20 22 69 22 29 5d 0a 20 20 20 5b 22 20 3e 52 65 73 70 6f 6e 73 65 20 74 6f 22 0a 20 20 | ce"."i")]....[".>Response.to"... |
| 5a140 | 20 20 28 22 65 22 20 22 45 63 68 6f 20 61 72 65 61 22 20 22 65 22 29 0a 20 20 20 20 28 22 62 22 | ..("e"."Echo.area"."e").....("b" |
| 5a160 | 20 22 4f 74 68 65 72 20 62 75 66 66 65 72 22 20 22 62 22 0a 20 20 20 20 20 3a 63 6c 61 73 73 20 | ."Other.buffer"."b"......:class. |
| 5a180 | 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 0a 20 20 20 20 20 3a 70 72 6f 6d 70 74 20 22 4f | transient-option......:prompt."O |
| 5a1a0 | 75 74 70 75 74 20 74 6f 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 20 3a 72 65 61 64 65 72 20 | utput.to.buffer:."......:reader. |
| 5a1c0 | 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 74 6f 72 79 29 0a 20 20 20 20 | (lambda.(prompt._._history)..... |
| 5a1e0 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 70 72 6f 6d 70 74 20 28 | ...........(read-buffer.prompt.( |
| 5a200 | 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 6f 74 68 65 72 2d 62 75 66 66 65 72 29 29 20 6e 69 6c 29 | buffer-name.(other-buffer)).nil) |
| 5a220 | 29 29 0a 20 20 20 20 28 22 67 22 20 22 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 22 20 22 67 22 0a | )).....("g"."gptel.session"."g". |
| 5a240 | 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.... |
| 5a260 | 20 20 3a 70 72 6f 6d 70 74 20 22 45 78 69 73 74 69 6e 67 20 6f 72 20 6e 65 77 20 67 70 74 65 6c | ..:prompt."Existing.or.new.gptel |
| 5a280 | 20 73 65 73 73 69 6f 6e 3a 20 22 0a 20 20 20 20 20 3a 72 65 61 64 65 72 0a 20 20 20 20 20 28 6c | .session:."......:reader......(l |
| 5a2a0 | 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 | ambda.(prompt._._history)....... |
| 5a2c0 | 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 28 67 65 | .(read-buffer.........prompt.(ge |
| 5a2e0 | 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 | nerate-new-buffer-name.......... |
| 5a300 | 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e | .......(concat."*".(gptel-backen |
| 5a320 | 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 2a 22 29 29 0a 20 20 20 20 | d-name.gptel-backend)."*"))..... |
| 5a340 | 20 20 20 20 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e 61 6d 65 29 0a 20 20 20 20 20 | ....nil.(lambda.(buf-name)...... |
| 5a360 | 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 62 75 66 2d 6e 61 6d 65 29 20 28 73 | .........(if.(consp.buf-name).(s |
| 5a380 | 65 74 71 20 62 75 66 2d 6e 61 6d 65 20 28 63 61 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 | etq.buf-name.(car.buf-name)))... |
| 5a3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 | ............(let.((buf.(get-buff |
| 5a3c0 | 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | er.buf-name))).................( |
| 5a3e0 | 61 6e 64 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 65 6c 2d 6d | and.(buffer-local-value.'gptel-m |
| 5a400 | 6f 64 65 20 62 75 66 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 | ode.buf)......................(n |
| 5a420 | 6f 74 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 29 29 29 29 29 | ot.(eq.(current-buffer).buf))))) |
| 5a440 | 29 29 29 0a 20 20 20 20 28 22 6b 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 22 20 22 6b 22 29 5d 5d 0a | ))).....("k"."Kill-ring"."k")]]. |
| 5a460 | 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 63 6f 6e | ..[[:description.(lambda.().(con |
| 5a480 | 63 61 74 20 28 61 6e 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 | cat.(and.gptel--rewrite-overlays |
| 5a4a0 | 20 22 43 6f 6e 74 69 6e 75 65 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."Continue.")................... |
| 5a4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 77 72 69 74 65 22 29 29 0a 20 20 20 20 3a 69 66 | ............."Rewrite")).....:if |
| 5a4e0 | 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 6f 6e 2d 70 29 0a 20 | .(lambda.().(or.(use-region-p).. |
| 5a500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 72 65 77 | .................(and.gptel--rew |
| 5a520 | 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 20 20 20 20 20 | rite-overlays................... |
| 5a540 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 | .....(gptel--rewrite-sanitize-ov |
| 5a560 | 65 72 6c 61 79 73 29 29 29 29 0a 20 20 20 20 28 22 72 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 | erlays)))).....("r"......(lambda |
| 5a580 | 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 79 20 28 70 6f 69 6e | .().(if.(get-char-property.(poin |
| 5a5a0 | 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 20 20 20 | t).'gptel-rewrite).............. |
| 5a5c0 | 20 20 22 49 74 65 72 61 74 65 22 20 22 52 65 77 72 69 74 65 22 29 29 0a 20 20 20 20 20 67 70 74 | .."Iterate"."Rewrite"))......gpt |
| 5a5e0 | 65 6c 2d 72 65 77 72 69 74 65 29 5d 0a 20 20 20 5b 22 54 77 65 61 6b 20 52 65 73 70 6f 6e 73 65 | el-rewrite)]....["Tweak.Response |
| 5a600 | 22 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 20 3a 70 61 64 2d | ".:if.gptel--in-response-p.:pad- |
| 5a620 | 6b 65 79 73 20 74 0a 20 20 20 20 28 22 53 50 43 22 20 22 4d 61 72 6b 22 20 67 70 74 65 6c 2d 2d | keys.t.....("SPC"."Mark".gptel-- |
| 5a640 | 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 22 4d 2d 52 45 54 22 20 22 52 65 67 | mark-response).....("M-RET"."Reg |
| 5a660 | 65 6e 65 72 61 74 65 22 20 67 70 74 65 6c 2d 2d 72 65 67 65 6e 65 72 61 74 65 20 3a 69 66 20 67 | enerate".gptel--regenerate.:if.g |
| 5a680 | 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 22 50 22 20 22 50 | ptel--in-response-p).....("P"."P |
| 5a6a0 | 72 65 76 69 6f 75 73 20 76 61 72 69 61 6e 74 22 20 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 | revious.variant".gptel--previous |
| 5a6c0 | 2d 76 61 72 69 61 6e 74 0a 20 20 20 20 20 3a 69 66 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 | -variant......:if.gptel--at-resp |
| 5a6e0 | 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 0a 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 | onse-history-p......:transient.t |
| 5a700 | 29 0a 20 20 20 20 28 22 4e 22 20 22 4e 65 78 74 20 76 61 72 69 61 6e 74 22 20 67 70 74 65 6c 2d | ).....("N"."Next.variant".gptel- |
| 5a720 | 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 74 65 6c | -previous-variant......:if.gptel |
| 5a740 | 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 3a 74 72 | --at-response-history-p......:tr |
| 5a760 | 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 22 45 22 20 22 45 64 69 66 66 20 70 72 65 76 69 | ansient.t).....("E"."Ediff.previ |
| 5a780 | 6f 75 73 22 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 0a 20 20 20 20 20 3a 69 66 20 67 70 74 65 6c | ous".gptel--ediff......:if.gptel |
| 5a7a0 | 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 29 5d 0a 20 20 20 5b 22 44 | --at-response-history-p)]....["D |
| 5a7c0 | 72 79 20 52 75 6e 22 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 67 70 74 65 6c | ry.Run".:if.(lambda.().(or.gptel |
| 5a7e0 | 2d 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 | -log-level.gptel-expert-commands |
| 5a800 | 29 29 0a 20 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 | )).....("I"."Inspect.query.(Lisp |
| 5a820 | 29 22 0a 20 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 | )"......(lambda.()........"Inspe |
| 5a840 | 63 74 20 74 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 | ct.the.query.that.will.be.sent.a |
| 5a860 | 73 20 61 20 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 | s.a.lisp.object."........(intera |
| 5a880 | 63 74 69 76 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 | ctive)........(gptel--sanitize-m |
| 5a8a0 | 6f 64 65 6c 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 | odel)........(gptel--inspect-que |
| 5a8c0 | 72 79 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 0a 20 | ry.........(gptel--suffix-send.. |
| 5a8e0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 | ........(cons."I".(transient-arg |
| 5a900 | 73 20 74 72 61 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 29 | s.transient-current-command))))) |
| 5a920 | 29 0a 20 20 20 20 28 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 | ).....("J"."Inspect.query.(JSON) |
| 5a940 | 22 0a 20 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 | "......(lambda.()........"Inspec |
| 5a960 | 74 20 74 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 | t.the.query.that.will.be.sent.as |
| 5a980 | 20 61 20 4a 53 4f 4e 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 | .a.JSON.object."........(interac |
| 5a9a0 | 74 69 76 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 | tive)........(gptel--sanitize-mo |
| 5a9c0 | 64 65 6c 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 | del)........(gptel--inspect-quer |
| 5a9e0 | 79 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 0a 20 20 | y.........(gptel--suffix-send... |
| 5aa00 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 | .......(cons."I".(transient-args |
| 5aa20 | 20 74 72 61 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 0a 20 20 | .transient-current-command)))... |
| 5aa40 | 20 20 20 20 20 20 27 6a 73 6f 6e 29 29 29 5d 5d 0a 20 20 5b 28 67 70 74 65 6c 2d 2d 73 75 66 66 | ......'json)))]]...[(gptel--suff |
| 5aa60 | 69 78 2d 73 65 6e 64 29 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 | ix-send)]...(interactive)...(gpt |
| 5aa80 | 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 | el--sanitize-model)...(transient |
| 5aaa0 | 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 0a 0a 3b 3b 20 2a 2a 20 50 72 65 66 | -setup.'gptel-menu))..;;.**.Pref |
| 5aac0 | 69 78 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 68 65 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 | ix.for.setting.the.system.prompt |
| 5aae0 | 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 65 74 75 70 2d 64 69 72 65 63 74 69 76 65 | ...(defun.gptel--setup-directive |
| 5ab00 | 2d 6d 65 6e 75 20 28 73 79 6d 20 6d 73 67 20 26 6f 70 74 69 6f 6e 61 6c 20 65 78 74 65 72 6e 61 | -menu.(sym.msg.&optional.externa |
| 5ab20 | 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 6e 73 69 65 6e 74 | l)..."Return.a.list.of.transient |
| 5ab40 | 20 69 6e 66 69 78 20 64 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f 72 20 73 65 74 74 69 6e 67 20 67 | .infix.definitions.for.setting.g |
| 5ab60 | 70 74 65 6c 0a 64 69 72 65 63 74 69 76 65 73 2e 0a 0a 53 59 4d 20 69 73 20 74 68 65 20 73 79 6d | ptel.directives...SYM.is.the.sym |
| 5ab80 | 62 6f 6c 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 73 65 74 20 74 6f 20 74 68 65 20 73 65 | bol.whose.value.is.set.to.the.se |
| 5aba0 | 6c 65 63 74 65 64 20 64 69 72 65 63 74 69 76 65 2e 2e 0a 4d 53 47 20 69 73 20 74 68 65 20 6d 65 | lected.directive...MSG.is.the.me |
| 5abc0 | 61 6e 69 6e 67 20 6f 66 20 73 79 6d 62 6f 6c 2c 20 75 73 65 64 20 77 68 65 6e 20 6d 65 73 73 61 | aning.of.symbol,.used.when.messa |
| 5abe0 | 67 69 6e 67 2e 0a 49 66 20 45 58 54 45 52 4e 41 4c 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e | ging..If.EXTERNAL.is.non-nil,.in |
| 5ac00 | 63 6c 75 64 65 20 65 78 74 65 72 6e 61 6c 20 73 6f 75 72 63 65 73 20 6f 66 20 64 69 72 65 63 74 | clude.external.sources.of.direct |
| 5ac20 | 69 76 65 73 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 74 79 70 65 20 2e 20 70 72 | ives."...(cl-loop.for.(type...pr |
| 5ac40 | 6f 6d 70 74 29 20 69 6e 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 0a 20 20 20 20 20 20 | ompt).in.gptel-directives....... |
| 5ac60 | 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 63 6c 61 73 68 65 73 20 77 69 74 68 20 74 68 65 20 63 | .....;;.Avoid.clashes.with.the.c |
| 5ac80 | 75 73 74 6f 6d 20 64 69 72 65 63 74 69 76 65 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 77 | ustom.directive.key............w |
| 5aca0 | 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 64 65 6c 65 74 65 20 3f 73 20 28 6e 75 | ith.unused-keys.=.(delete.?s.(nu |
| 5acc0 | 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 20 20 20 20 | mber-sequence.?a.?z))........... |
| 5ace0 | 20 77 69 74 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 | .with.width.=.(window-width).... |
| 5ad00 | 20 20 20 20 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 | ........for.name.=.(symbol-name. |
| 5ad20 | 74 79 70 65 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 | type)............for.key.=.(seq- |
| 5ad40 | 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 20 75 6e 75 73 65 | find.(lambda.(k).(member.k.unuse |
| 5ad60 | 64 2d 6b 65 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 | d-keys)).name.(seq-first.unused- |
| 5ad80 | 6b 65 79 73 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 | keys))............do.(setq.unuse |
| 5ada0 | 64 2d 6b 65 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 | d-keys.(delete.key.unused-keys)) |
| 5adc0 | 0a 20 20 20 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 | ............;;.The.explicit.decl |
| 5ade0 | 61 72 61 74 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 | aration.":transient.transient--d |
| 5ae00 | 6f 2d 72 65 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 | o-return".here............;;.app |
| 5ae20 | 65 61 72 73 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 | ears.to.be.required.for.Transien |
| 5ae40 | 74 20 76 30 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 | t.v0.5.and.up...Without.it,.thes |
| 5ae60 | 65 0a 20 20 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 | e............;;.are.treated.as.s |
| 5ae80 | 75 66 66 69 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 | uffixes.when.invoking.`gptel-sys |
| 5aea0 | 74 65 6d 2d 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 | tem-prompt'.directly,........... |
| 5aec0 | 20 3b 3b 20 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 | .;;.and.infixes.when.going.throu |
| 5aee0 | 67 68 20 60 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 | gh.`gptel-menu'.............;;.T |
| 5af00 | 4f 44 4f 3a 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 | ODO:.Raise.an.issue.with.Transie |
| 5af20 | 6e 74 2e 0a 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 | nt.............collect.......... |
| 5af40 | 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 73 74 20 6b | ..(list.(key-description.(list.k |
| 5af60 | 65 79 29 29 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 | ey))..................(concat.(c |
| 5af80 | 61 70 69 74 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 | apitalize.name)."."............. |
| 5afa0 | 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 20 22 20 27 64 69 | .............(propertize.".".'di |
| 5afc0 | 73 70 6c 61 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 | splay.'(space.:align-to.20)).... |
| 5afe0 | 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 |
| 5b000 | 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 28 63 6f 6e | e...........................(con |
| 5b020 | 63 61 74 20 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 | cat."(".(gptel--describe-directi |
| 5b040 | 76 65 20 70 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 | ve.prompt.(-.width.30)).")").... |
| 5b060 | 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 61 63 65 20 27 73 68 | .......................'face.'sh |
| 5b080 | 61 64 6f 77 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 | adow))..................`(lambda |
| 5b0a0 | 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)............... |
| 5b0c0 | 20 20 20 20 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 | ......(message."%s:.%s".,msg.,(g |
| 5b0e0 | 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 72 6f 6d 70 74 20 | ptel--describe-directive.prompt. |
| 5b100 | 31 30 30 20 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 | 100."....")).................... |
| 5b120 | 20 28 67 70 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 | .(gptel--set-with-scope.',sym.', |
| 5b140 | 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 6f 63 61 6c 6c 79 | prompt.gptel--set-buffer-locally |
| 5b160 | 29 29 0a 09 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 | ))...........:transient.'transie |
| 5b180 | 6e 74 2d 2d 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 | nt--do-return)............into.p |
| 5b1a0 | 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 66 69 6e 61 6c 6c | rompt-suffixes............finall |
| 5b1c0 | 79 20 72 65 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 | y.return............(nconc...... |
| 5b1e0 | 20 20 20 20 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 | .......prompt-suffixes.......... |
| 5b200 | 20 20 20 28 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 | ...(list.(list."DEL"."None"..... |
| 5b220 | 20 20 20 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.(). |
| 5b240 | 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)................... |
| 5b260 | 20 20 20 20 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 | .........(message."%s.unset".,ms |
| 5b280 | 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 28 67 | g)............................(g |
| 5b2a0 | 70 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 6e 69 6c 20 67 | ptel--set-with-scope.',sym.nil.g |
| 5b2c0 | 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 20 20 20 20 20 | ptel--set-buffer-locally))...... |
| 5b2e0 | 20 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 | ...................:transient.'t |
| 5b300 | 72 61 6e 73 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 | ransient--do-return))........... |
| 5b320 | 20 20 28 61 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 | ..(and.external................. |
| 5b340 | 20 28 6c 69 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 | .(list.(list."SPC"."Pick.crowdso |
| 5b360 | 75 72 63 65 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 | urced.prompt"................... |
| 5b380 | 20 20 20 20 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 | ...........'gptel--read-crowdsou |
| 5b3a0 | 72 63 65 64 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 | rced-prompt................;;.NO |
| 5b3c0 | 54 45 3a 20 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 | TE:.Quitting.the.completing.read |
| 5b3e0 | 20 77 68 65 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 | .when.picking.a................; |
| 5b400 | 3b 20 63 72 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 | ;.crowdsourced.prompt.will.cause |
| 5b420 | 20 74 68 65 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 | .the.transient.to.exit.......... |
| 5b440 | 20 20 20 20 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 | ......;;.instead.of.returning.to |
| 5b460 | 20 74 68 65 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 | .the.system.prompt.menu......... |
| 5b480 | 20 20 20 20 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 | ......................:transient |
| 5b4a0 | 20 27 74 72 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 | .'transient--do-exit))))))..;;;# |
| 5b4c0 | 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 73 79 73 74 | ##autoload.(autoload.'gptel-syst |
| 5b4e0 | 65 6d 2d 70 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 | em-prompt."gptel-transient".nil. |
| 5b500 | 74 29 0a 28 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 | t).(transient-define-prefix.gpte |
| 5b520 | 6c 2d 73 79 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 | l-system-prompt.()..."Set.the.LL |
| 5b540 | 4d 20 73 79 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 | M.system.message.for.LLM.interac |
| 5b560 | 74 69 6f 6e 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 | tions...The.\"system.message\".e |
| 5b580 | 73 74 61 62 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 | stablishes.directives.for.the.ch |
| 5b5a0 | 61 74 0a 73 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 | at.session.and.modifies.the.beha |
| 5b5c0 | 76 69 6f 72 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 | vior.of.the.LLM..Some.examples.o |
| 5b5e0 | 66 0a 73 79 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 | f.system.prompts.are:..You.are.a |
| 5b600 | 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 20 61 73 20 63 6f | .helpful.assistant..Answer.as.co |
| 5b620 | 6e 63 69 73 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 | ncisely.as.possible..Reply.only. |
| 5b640 | 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 6f 73 65 | with.shell.commands.and.no.prose |
| 5b660 | 2e 0a 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. |
| 5b680 | 76 65 72 73 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 | verse...More.extensive.system.me |
| 5b6a0 | 73 73 61 67 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 | ssages.can.be.useful.for.specifi |
| 5b6c0 | 63 20 74 61 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 | c.tasks...Customize.`gptel-direc |
| 5b6e0 | 74 69 76 65 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 | tives'.for.task-specific.prompts |
| 5b700 | 2e 22 0a 20 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 | ."...[:description.gptel-system- |
| 5b720 | 70 72 6f 6d 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 | prompt--format....[(gptel--suffi |
| 5b740 | 78 2d 73 79 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 | x-system-message)]....[(gptel--i |
| 5b760 | 6e 66 69 78 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 | nfix-variable-scope)]]....[:clas |
| 5b780 | 73 20 74 72 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 | s.transient-column.....:setup-ch |
| 5b7a0 | 69 6c 64 72 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 | ildren.....(lambda.(_).(transien |
| 5b7c0 | 74 2d 70 61 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 | t-parse-suffixes.............'gp |
| 5b7e0 | 74 65 6c 2d 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 | tel-system-prompt.............(g |
| 5b800 | 70 74 65 6c 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 | ptel--setup-directive-menu...... |
| 5b820 | 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 73 73 61 67 65 20 22 | ........'gptel--system-message." |
| 5b840 | 44 69 72 65 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 | Directive".t))).....:pad-keys.t] |
| 5b860 | 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 67 20 74 6f | )..;;.**.Prefix.for.selecting.to |
| 5b880 | 6f 6c 73 0a 0a 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 | ols..;;;###autoload.(autoload.'g |
| 5b8a0 | 70 74 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 20 6e 69 6c | ptel-tools."gptel-transient".nil |
| 5b8c0 | 20 74 29 0a 28 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 | .t).(transient-define-prefix.gpt |
| 5b8e0 | 65 6c 2d 74 6f 6f 6c 73 20 28 29 0a 20 20 22 53 65 6c 65 63 74 20 74 6f 6f 6c 73 20 74 6f 20 69 | el-tools.()..."Select.tools.to.i |
| 5b900 | 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 0a 54 6f 6f | nclude.with.gptel.requests...Too |
| 5b920 | 6c 73 20 61 72 65 20 6f 72 67 61 6e 69 7a 65 64 20 69 6e 74 6f 20 63 61 74 65 67 6f 72 69 65 73 | ls.are.organized.into.categories |
| 5b940 | 2e 20 20 53 65 6c 65 63 74 69 6e 67 20 74 68 65 20 63 61 74 65 67 6f 72 79 0a 74 6f 67 67 6c 65 | ...Selecting.the.category.toggle |
| 5b960 | 73 20 61 6c 6c 20 74 68 65 20 74 6f 6f 6c 73 20 77 69 74 68 20 74 68 61 74 20 63 61 74 65 67 6f | s.all.the.tools.with.that.catego |
| 5b980 | 72 79 2e 0a 0a 54 6f 20 61 64 64 20 74 6f 6f 6c 73 20 74 6f 20 74 68 69 73 20 6c 69 73 74 2c 20 | ry...To.add.tools.to.this.list,. |
| 5b9a0 | 75 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2c 20 77 68 69 63 68 20 73 65 65 | use.`gptel-make-tool',.which.see |
| 5b9c0 | 2e 0a 0a 55 73 69 6e 67 20 74 68 65 20 73 63 6f 70 65 20 6f 70 74 69 6f 6e 2c 20 79 6f 75 20 63 | ...Using.the.scope.option,.you.c |
| 5b9e0 | 61 6e 20 73 65 74 20 74 6f 6f 6c 73 20 74 6f 20 75 73 65 20 77 69 74 68 20 67 70 74 65 6c 0a 72 | an.set.tools.to.use.with.gptel.r |
| 5ba00 | 65 71 75 65 73 74 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 | equests.globally,.in.this.buffer |
| 5ba20 | 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 0a 6f 6e 6c 79 20 28 5c | .or.for.the.next.request.only.(\ |
| 5ba40 | 22 6f 6e 65 73 68 6f 74 5c 22 29 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 | "oneshot\")."...[:description."P |
| 5ba60 | 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 6e | rovide.the.LLM.with.tools.to.run |
| 5ba80 | 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 65 | .tasks.for.you"....["".....(gpte |
| 5baa0 | 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 70 | l--infix-variable-scope).....(gp |
| 5bac0 | 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 6c | tel--infix-use-tools).....(gptel |
| 5bae0 | 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 20 | --infix-confirm-tool-calls)..... |
| 5bb00 | 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 6c | (gptel--infix-include-tool-resul |
| 5bb20 | 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 20 | ts)]....["".....("RET"."Confirm. |
| 5bb40 | 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 61 72 67 73 29 0a 20 | selection"......(lambda.(args).. |
| 5bb60 | 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 74 72 61 6e 73 69 | ......(interactive.(list.(transi |
| 5bb80 | 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 6f 6d 6d 61 | ent-args.transient-current-comma |
| 5bba0 | 6e 64 29 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 6b 69 | nd)))........;;.There.are.two.ki |
| 5bbc0 | 6e 64 73 20 6f 66 20 41 52 47 53 3a 20 63 61 74 65 67 6f 72 69 65 73 20 77 69 74 68 20 76 61 6c | nds.of.ARGS:.categories.with.val |
| 5bbe0 | 75 65 20 22 28 2a 29 22 2c 20 61 6e 64 20 6c 69 73 74 73 20 6f 66 0a 20 20 20 20 20 20 20 3b 3b | ue."(*)",.and.lists.of........;; |
| 5bc00 | 20 74 68 65 20 74 79 70 65 20 27 28 22 63 61 74 65 67 6f 72 79 22 20 22 74 6f 6f 6c 5f 6e 61 6d | .the.type.'("category"."tool_nam |
| 5bc20 | 65 22 29 2e 20 20 57 65 20 6f 6e 6c 79 20 77 61 6e 74 20 74 68 65 20 6c 61 74 74 65 72 2c 20 74 | e")...We.only.want.the.latter,.t |
| 5bc40 | 6f 20 75 73 65 20 61 6e 0a 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 65 78 20 69 6e 74 6f 20 60 67 | o.use.an........;;.index.into.`g |
| 5bc60 | 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 2e 27 0a 20 20 20 20 20 20 20 28 67 | ptel--known-backends.'........(g |
| 5bc80 | 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 27 67 70 | ptel--set-with-scope.........'gp |
| 5bca0 | 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 | tel-tools.........(mapcar.(lambd |
| 5bcc0 | 61 20 28 63 61 74 65 67 6f 72 79 2d 61 6e 64 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 | a.(category-and-name)........... |
| 5bce0 | 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 67 70 74 65 6c 2d 2d 6b | ........(map-nested-elt.gptel--k |
| 5bd00 | 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 63 61 74 65 67 6f 72 79 2d 61 6e 64 2d 6e 61 6d 65 29 29 0a 20 | nown-tools.category-and-name)).. |
| 5bd20 | 20 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 2d 6e 6f 74 | ...............(cl-delete-if-not |
| 5bd40 | 20 23 27 63 6f 6e 73 70 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 | .#'consp.args)).........gptel--s |
| 5bd60 | 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 3a 74 72 61 6e 73 69 | et-buffer-locally))......:transi |
| 5bd80 | 65 6e 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 74 75 72 6e 29 0a 20 20 20 20 28 22 | ent.transient--do-return).....(" |
| 5bda0 | 71 22 20 22 43 61 6e 63 65 6c 22 20 74 72 61 6e 73 69 65 6e 74 2d 71 75 69 74 2d 6f 6e 65 29 5d | q"."Cancel".transient-quit-one)] |
| 5bdc0 | 5d 0a 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 6e 0a 20 20 20 | ]...[:class.transient-column.... |
| 5bde0 | 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 0a 20 | :setup-children....(lambda.(_).. |
| 5be00 | 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 20 20 | ....(transient-parse-suffixes... |
| 5be20 | 20 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 28 63 64 72 0a 20 20 20 20 | ....'gptel-tools.......(cdr..... |
| 5be40 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 6f 70 20 74 68 72 6f 75 | ...(cl-loop..........;loop.throu |
| 5be60 | 67 68 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 20 74 6f 6f 6c 73 20 61 6e 64 20 63 6f 6c 6c 65 63 | gh.gptel--known.tools.and.collec |
| 5be80 | 74 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 20 20 20 20 20 66 6f 72 20 28 63 61 74 65 67 6f | t.categories.........for.(catego |
| 5bea0 | 72 79 20 2e 20 74 6f 6f 6c 73 2d 61 6c 69 73 74 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 | ry...tools-alist).in.gptel--know |
| 5bec0 | 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 | n-tools.........with.unused-keys |
| 5bee0 | 20 3d 20 28 64 65 6c 65 74 65 20 3f 71 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f | .=.(delete.?q.(number-sequence.? |
| 5bf00 | 61 20 3f 7a 29 29 0a 20 20 20 20 20 20 20 20 66 6f 72 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 | a.?z)).........for.category-key. |
| 5bf20 | 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 6d 65 6d 62 65 72 20 | =.(seq-find.(lambda.(k).(member. |
| 5bf40 | 6b 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 | k.unused-keys)).category........ |
| 5bf60 | 20 20 20 20 20 20 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 | ..............................(s |
| 5bf80 | 65 71 2d 66 69 72 73 74 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 64 | eq-first.unused-keys)).........d |
| 5bfa0 | 6f 20 28 73 65 74 71 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 28 64 65 6c 65 74 65 20 63 61 74 65 | o.(setq.unused-keys.(delete.cate |
| 5bfc0 | 67 6f 72 79 2d 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 6e | gory-key.unused-keys)).........n |
| 5bfe0 | 63 6f 6e 63 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 20 20 20 20 20 20 | conc.........(cl-loop........... |
| 5c000 | 20 20 20 20 20 20 20 20 20 3b 66 6f 72 20 65 61 63 68 20 63 61 74 65 67 6f 72 79 2c 20 63 6f 6c | .........;for.each.category,.col |
| 5c020 | 6c 65 63 74 20 74 6f 6f 6c 73 20 61 73 20 69 6e 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 66 | lect.tools.as.infixes..........f |
| 5c040 | 6f 72 20 28 6e 61 6d 65 20 2e 20 74 6f 6f 6c 29 20 69 6e 20 74 6f 6f 6c 73 2d 61 6c 69 73 74 0a | or.(name...tool).in.tools-alist. |
| 5c060 | 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 6f 6f 6c 2d 6b 65 79 73 20 3d 20 28 64 65 6c 65 74 | .........with.tool-keys.=.(delet |
| 5c080 | 65 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 | e.category-key.(number-sequence. |
| 5c0a0 | 3f 61 20 3f 7a 29 29 0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 6b 65 79 20 3d 20 | ?a.?z))..........for.tool-key.=. |
| 5c0c0 | 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 20 | (seq-find.(lambda.(k).(member.k. |
| 5c0e0 | 74 6f 6f 6c 2d 6b 65 79 73 29 29 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-keys)).name................ |
| 5c100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 66 69 72 73 74 20 74 6f | ...................(seq-first.to |
| 5c120 | 6f 6c 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 74 6f 6f 6c | ol-keys))..........do.(setq.tool |
| 5c140 | 2d 6b 65 79 73 20 28 64 65 6c 65 74 65 20 74 6f 6f 6c 2d 6b 65 79 20 74 6f 6f 6c 2d 6b 65 79 73 | -keys.(delete.tool-key.tool-keys |
| 5c160 | 29 29 0a 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 20 20 20 20 20 20 20 20 20 20 3b 45 | ))..........collect...........;E |
| 5c180 | 61 63 68 20 6c 69 73 74 20 69 73 20 61 20 74 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 20 6f 66 | ach.list.is.a.transient.infix.of |
| 5c1a0 | 20 74 79 70 65 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 20 20 20 28 6c 69 | .type.gptel--switch..........(li |
| 5c1c0 | 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 63 61 74 65 67 6f | st.(key-description.(list.catego |
| 5c1e0 | 72 79 2d 6b 65 79 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 | ry-key.tool-key))............... |
| 5c200 | 20 28 63 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 | .(concat.(make-string.(max.(-.20 |
| 5c220 | 20 28 6c 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 | .(length.name)).0).?.).......... |
| 5c240 | 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 20 20 | ..............(propertize....... |
| 5c260 | 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 28 22 20 28 67 | ..................(concat."(".(g |
| 5c280 | 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 20 20 20 20 | ptel--describe-directive........ |
| 5c2a0 | 20 20 20 20 20 20 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 |
| 5c2c0 | 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).(-.( |
| 5c2e0 | 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)).............. |
| 5c300 | 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 20 | ...................")")......... |
| 5c320 | 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 29 0a | ................'face.'shadow)). |
| 5c340 | 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 6d 65 20 | ...............(gptel-tool-name. |
| 5c360 | 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 | tool)................:format.".% |
| 5c380 | 6b 20 25 76 20 25 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 2d 76 61 | k.%v.%d"................:init-va |
| 5c3a0 | 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 75 65 0a 20 20 | lue.#'gptel--tools-init-value... |
| 5c3c0 | 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 77 69 74 | .............:class.'gptel--swit |
| 5c3e0 | 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 63 61 74 65 | ch................:category.cate |
| 5c400 | 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 69 6e 66 69 78 65 73 2d 66 6f 72 2d | gory)..........into.infixes-for- |
| 5c420 | 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e | category..........finally.return |
| 5c440 | 0a 20 20 20 20 20 20 20 20 20 28 69 64 65 6e 74 69 74 79 20 3b 54 4f 44 4f 28 74 6f 6f 6c 29 3a | ..........(identity.;TODO(tool): |
| 5c460 | 20 52 65 70 6c 61 63 65 20 77 69 74 68 20 76 63 6f 6e 63 61 74 20 66 6f 72 20 67 72 6f 75 70 73 | .Replace.with.vconcat.for.groups |
| 5c480 | 20 73 65 70 61 72 61 74 65 64 20 62 79 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 | .separated.by.category.......... |
| 5c4a0 | 20 3b 3b 20 41 64 64 20 61 20 63 61 74 65 67 6f 72 79 20 68 65 61 64 65 72 20 74 68 61 74 20 63 | .;;.Add.a.category.header.that.c |
| 5c4c0 | 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 74 6f 67 67 6c 65 20 61 6c 6c 20 74 6f 6f 6c 73 20 69 | an.be.used.to.toggle.all.tools.i |
| 5c4e0 | 6e 20 74 68 61 74 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 | n.that.category...........(nconc |
| 5c500 | 20 28 6c 69 73 74 20 22 20 22 20 28 6c 69 73 74 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f | .(list.".".(list.(key-descriptio |
| 5c520 | 6e 20 28 6c 69 73 74 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 63 61 74 65 67 6f 72 79 2d 6b 65 | n.(list.category-key.category-ke |
| 5c540 | 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 20 | y))............................. |
| 5c560 | 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 28 63 6f 6e 63 61 74 | .....(concat.(propertize.(concat |
| 5c580 | 20 28 63 61 70 69 74 61 6c 69 7a 65 20 63 61 74 65 67 6f 72 79 29 20 22 20 74 6f 6f 6c 73 22 29 | .(capitalize.category).".tools") |
| 5c5a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5c5c0 | 20 20 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 27 74 72 61 | ......................'face.'tra |
| 5c5e0 | 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 20 | nsient-heading)................. |
| 5c600 | 20 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 | .........................(make-s |
| 5c620 | 74 72 69 6e 67 20 28 6d 61 78 20 28 2d 20 31 34 20 28 6c 65 6e 67 74 68 20 63 61 74 65 67 6f 72 | tring.(max.(-.14.(length.categor |
| 5c640 | 79 29 29 20 30 29 20 3f 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y)).0).?.))..................... |
| 5c660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 2a 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............."(*)".............. |
| 5c680 | 20 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 20 25 6b | ....................:format.".%k |
| 5c6a0 | 20 25 64 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 20 20 | .%d.%v"......................... |
| 5c6c0 | 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 77 69 74 63 68 2d 63 | .........:class.'gptel--switch-c |
| 5c6e0 | 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 20 20 20 20 20 20 20 | ategory......................... |
| 5c700 | 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 | .........:category.category))... |
| 5c720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 69 78 65 73 2d 66 6f 72 2d 63 61 74 65 67 | ...............infixes-for-categ |
| 5c740 | 6f 72 79 29 29 29 29 29 29 29 5d 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 49 | ory)))))))])....;;.*.Transient.I |
| 5c760 | 6e 66 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 63 6f 6e 74 65 78 | nfixes..;;.**.Infixes.for.contex |
| 5c780 | 74 20 61 67 67 72 65 67 61 74 69 6f 6e 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | t.aggregation..(transient-define |
| 5c7a0 | 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 | -infix.gptel--infix-use-context. |
| 5c7c0 | 28 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 61 72 67 65 74 20 64 65 73 74 69 6e 61 74 69 6f | ()..."Describe.target.destinatio |
| 5c7e0 | 6e 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 69 6e 6a 65 63 74 69 6f 6e 2e 0a 0a 67 70 74 65 6c 20 | n.for.context.injection...gptel. |
| 5c800 | 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 74 68 65 20 4c 4c 4d 20 72 65 71 75 65 73 | will.include.with.the.LLM.reques |
| 5c820 | 74 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 0a 61 64 64 65 64 20 77 | t.any.additional.context.added.w |
| 5c840 | 69 74 68 20 60 67 70 74 65 6c 2d 61 64 64 27 2e 20 20 54 68 69 73 20 63 6f 6e 74 65 78 74 20 63 | ith.`gptel-add'...This.context.c |
| 5c860 | 61 6e 20 62 65 20 69 67 6e 6f 72 65 64 2c 20 69 6e 63 6c 75 64 65 64 0a 77 69 74 68 20 74 68 65 | an.be.ignored,.included.with.the |
| 5c880 | 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 | .system.message.or.included.with |
| 5c8a0 | 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d 70 74 2e 0a 0a 57 68 65 72 65 20 69 6e 20 74 68 65 20 | .the.user.prompt...Where.in.the. |
| 5c8c0 | 72 65 71 75 65 73 74 20 74 68 69 73 20 63 6f 6e 74 65 78 74 20 69 73 20 69 6e 63 6c 75 64 65 64 | request.this.context.is.included |
| 5c8e0 | 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 0a 76 61 6c 75 65 20 6f 66 20 60 67 70 74 65 6c 2d | .depends.on.the.value.of.`gptel- |
| 5c900 | 75 73 65 2d 63 6f 6e 74 65 78 74 27 2c 20 73 65 74 20 66 72 6f 6d 20 68 65 72 65 2e 22 0a 20 20 | use-context',.set.from.here."... |
| 5c920 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 63 6c 75 64 65 20 63 6f 6e 74 65 78 74 22 0a 20 | :description."Include.context".. |
| 5c940 | 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 0a 20 20 3a | .:class.'gptel-lisp-variable...: |
| 5c960 | 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a 20 20 3a 66 | variable.'gptel-use-context...:f |
| 5c980 | 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 | ormat.".%k.%d.%v"...:set-value.# |
| 5c9a0 | 27 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 | 'gptel--set-with-scope...:displa |
| 5c9c0 | 79 2d 6e 69 6c 20 22 4e 6f 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c | y-nil."No"...:display-map.'((nil |
| 5c9e0 | 20 20 20 20 2e 20 22 4e 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 | ......"No")..................(sy |
| 5ca00 | 73 74 65 6d 20 2e 20 22 77 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 29 0a 20 20 | stem..."with.system.message")... |
| 5ca20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 20 20 20 2e 20 22 77 69 74 68 20 75 | ...............(user....."with.u |
| 5ca40 | 73 65 72 20 70 72 6f 6d 70 74 22 29 29 0a 20 20 3a 6b 65 79 20 22 2d 69 22 0a 20 20 3a 72 65 61 | ser.prompt"))...:key."-i"...:rea |
| 5ca60 | 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._).... |
| 5ca80 | 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 4e 6f 22 | .........(let*.((choices.'(("No" |
| 5caa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 | ....................nil)........ |
| 5cac0 | 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 77 69 74 68 20 73 79 | .......................("with.sy |
| 5cae0 | 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 2e 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 | stem.message"...system)......... |
| 5cb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 77 69 74 68 20 75 73 65 | ......................("with.use |
| 5cb20 | 72 20 70 72 6f 6d 70 74 22 20 20 20 20 2e 20 75 73 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 | r.prompt"......user))).......... |
| 5cb40 | 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 69 6e 61 74 69 6f 6e 20 28 63 6f 6d 70 6c 65 74 69 | ..........(destination.(completi |
| 5cb60 | 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))). |
| 5cb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 64 65 73 74 69 6e | ..............(cdr.(assoc.destin |
| 5cba0 | 61 74 69 6f 6e 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 | ation.choices)))))..;;.**.Infixe |
| 5cbc0 | 73 20 66 6f 72 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 0a 0a 28 74 72 61 6e 73 69 65 | s.for.model.parameters..(transie |
| 5cbe0 | 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 76 61 72 | nt-define-infix.gptel--infix-var |
| 5cc00 | 69 61 62 6c 65 2d 73 63 6f 70 65 20 28 29 0a 20 20 22 53 65 74 20 67 70 74 65 6c 27 73 20 6d 6f | iable-scope.()..."Set.gptel's.mo |
| 5cc20 | 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 61 6e 64 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 | del.parameters.and.system.messag |
| 5cc40 | 65 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 20 6f 72 20 67 6c 6f 62 61 6c 6c 79 2e 22 0a 20 | e.in.this.buffer.or.globally.".. |
| 5cc60 | 20 3a 61 72 67 75 6d 65 6e 74 20 22 73 63 6f 70 65 22 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 | .:argument."scope"...:variable.' |
| 5cc80 | 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 0a 20 20 3a 63 6c 61 | gptel--set-buffer-locally...:cla |
| 5cca0 | 73 73 20 27 67 70 74 65 6c 2d 2d 73 63 6f 70 65 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b | ss.'gptel--scope...:format."..%k |
| 5ccc0 | 20 25 64 20 25 76 22 0a 20 20 3a 6b 65 79 20 22 3d 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f | .%d.%v"...:key."="...:descriptio |
| 5cce0 | 6e 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 53 63 6f 70 65 22 20 27 66 61 63 65 20 27 74 72 61 | n.(propertize."Scope".'face.'tra |
| 5cd00 | 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 61 72 67 75 6d 65 6e 74 29 29 0a 0a 28 74 72 61 | nsient-inactive-argument))..(tra |
| 5cd20 | 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 69 78 | nsient-define-infix.gptel--infix |
| 5cd40 | 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 28 29 0a 20 20 22 4e 75 6d 62 | -num-messages-to-send.()..."Numb |
| 5cd60 | 65 72 20 6f 66 20 72 65 63 65 6e 74 20 6d 65 73 73 61 67 65 73 20 74 6f 20 73 65 6e 64 20 77 69 | er.of.recent.messages.to.send.wi |
| 5cd80 | 74 68 20 65 61 63 68 20 65 78 63 68 61 6e 67 65 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 | th.each.exchange...By.default,.t |
| 5cda0 | 68 65 20 66 75 6c 6c 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 69 73 20 | he.full.conversation.history.is. |
| 5cdc0 | 73 65 6e 74 20 77 69 74 68 20 65 76 65 72 79 20 6e 65 77 0a 70 72 6f 6d 70 74 2e 20 54 68 69 73 | sent.with.every.new.prompt..This |
| 5cde0 | 20 72 65 74 61 69 6e 73 20 74 68 65 20 66 75 6c 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 | .retains.the.full.context.of.the |
| 5ce00 | 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2c 20 62 75 74 0a 63 61 6e 20 62 65 20 65 78 70 65 6e 73 | .conversation,.but.can.be.expens |
| 5ce20 | 69 76 65 20 69 6e 20 74 6f 6b 65 6e 20 73 69 7a 65 2e 20 53 65 74 20 68 6f 77 20 6d 61 6e 79 20 | ive.in.token.size..Set.how.many. |
| 5ce40 | 72 65 63 65 6e 74 20 6d 65 73 73 61 67 65 73 20 74 6f 0a 69 6e 63 6c 75 64 65 2e 22 0a 20 20 3a | recent.messages.to.include."...: |
| 5ce60 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 70 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 73 22 | description."previous.responses" |
| 5ce80 | 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 0a 20 | ...:class.'gptel-lisp-variable.. |
| 5cea0 | 20 3a 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 | .:variable.'gptel--num-messages- |
| 5cec0 | 74 6f 2d 73 65 6e 64 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 | to-send...:set-value.#'gptel--se |
| 5cee0 | 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 27 61 6c 6c | t-with-scope...:display-nil.'all |
| 5cf00 | 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 76 20 25 64 22 0a 20 20 3a 6b 65 79 20 22 2d | ...:format.".%k.%v.%d"...:key."- |
| 5cf20 | 6e 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 4e 75 6d 62 65 72 20 6f 66 20 70 61 73 74 20 6d 65 73 | n"...:prompt."Number.of.past.mes |
| 5cf40 | 73 61 67 65 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 28 6c 65 | sages.to.include.for.context.(le |
| 5cf60 | 61 76 65 20 65 6d 70 74 79 20 66 6f 72 20 61 6c 6c 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 | ave.empty.for.all):."...:reader. |
| 5cf80 | 27 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 | 'gptel--transient-read-number).. |
| 5cfa0 | 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 69 | (transient-define-infix.gptel--i |
| 5cfc0 | 6e 66 69 78 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 28 29 0a 20 20 22 4d 61 78 20 74 6f 6b 65 6e 73 | nfix-max-tokens.()..."Max.tokens |
| 5cfe0 | 20 70 65 72 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 72 6f 75 67 68 6c 79 20 | .per.response...This.is.roughly. |
| 5d000 | 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 77 6f 72 64 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f | the.number.of.words.in.the.respo |
| 5d020 | 6e 73 65 2e 20 31 30 30 2d 33 30 30 20 69 73 20 61 0a 72 65 61 73 6f 6e 61 62 6c 65 20 72 61 6e | nse..100-300.is.a.reasonable.ran |
| 5d040 | 67 65 20 66 6f 72 20 73 68 6f 72 74 20 61 6e 73 77 65 72 73 2c 20 34 30 30 20 6f 72 20 6d 6f 72 | ge.for.short.answers,.400.or.mor |
| 5d060 | 65 20 66 6f 72 20 6c 6f 6e 67 65 72 0a 72 65 73 70 6f 6e 73 65 73 2e 22 0a 20 20 3a 64 65 73 63 | e.for.longer.responses."...:desc |
| 5d080 | 72 69 70 74 69 6f 6e 20 22 52 65 73 70 6f 6e 73 65 20 6c 65 6e 67 74 68 20 28 74 6f 6b 65 6e 73 | ription."Response.length.(tokens |
| 5d0a0 | 29 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 | )"...:class.'gptel-lisp-variable |
| 5d0c0 | 0a 20 20 3a 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 0a 20 | ...:variable.'gptel-max-tokens.. |
| 5d0e0 | 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 2d 73 63 | .:set-value.#'gptel--set-with-sc |
| 5d100 | 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 27 61 75 74 6f 0a 20 20 3a 6b 65 79 20 | ope...:display-nil.'auto...:key. |
| 5d120 | 22 2d 63 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 52 65 73 70 6f 6e 73 65 20 6c 65 6e 67 74 68 20 | "-c"...:prompt."Response.length. |
| 5d140 | 69 6e 20 74 6f 6b 65 6e 73 20 28 6c 65 61 76 65 20 65 6d 70 74 79 3a 20 64 65 66 61 75 6c 74 2c | in.tokens.(leave.empty:.default, |
| 5d160 | 20 38 30 2d 32 30 30 3a 20 73 68 6f 72 74 2c 20 32 30 30 2d 35 30 30 3a 20 6c 6f 6e 67 29 3a 20 | .80-200:.short,.200-500:.long):. |
| 5d180 | 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 65 6e 74 2d 72 65 | "...:reader.'gptel--transient-re |
| 5d1a0 | 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 69 6e 65 2d 69 6e | ad-number)..(transient-define-in |
| 5d1c0 | 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 70 72 6f 76 69 64 65 72 20 28 29 0a 20 20 22 | fix.gptel--infix-provider.()..." |
| 5d1e0 | 41 49 20 50 72 6f 76 69 64 65 72 20 66 6f 72 20 43 68 61 74 2e 22 0a 20 20 3a 64 65 73 63 72 69 | AI.Provider.for.Chat."...:descri |
| 5d200 | 70 74 69 6f 6e 20 22 4d 6f 64 65 6c 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 70 72 | ption."Model"...:class.'gptel-pr |
| 5d220 | 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 70 72 6f 6d 70 74 20 22 4d 6f 64 65 6c | ovider-variable...:prompt."Model |
| 5d240 | 3a 20 22 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 3a | :."...:variable.'gptel-model...: |
| 5d260 | 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 70 | set-value.#'gptel--set-with-scop |
| 5d280 | 65 0a 20 20 3a 62 61 63 6b 65 6e 64 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 3a 6b | e...:backend.'gptel-backend...:k |
| 5d2a0 | 65 79 20 22 2d 6d 22 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 | ey."-m"...:reader.(lambda.(promp |
| 5d2c0 | 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a | t.&rest._).............(cl-loop. |
| 5d2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6e 61 6d 65 20 2e 20 62 61 63 6b 65 6e 64 | .............for.(name...backend |
| 5d300 | 29 20 69 6e 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 | ).in.gptel--known-backends...... |
| 5d320 | 20 20 20 20 20 20 20 20 6e 63 6f 6e 63 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6d 6f 64 65 6c | ........nconc.(cl-loop.for.model |
| 5d340 | 20 69 6e 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e | .in.(gptel-backend-models.backen |
| 5d360 | 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 20 20 63 | d).............................c |
| 5d380 | 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 20 22 3a 22 20 28 67 | ollect.(list.(concat.name.":".(g |
| 5d3a0 | 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 | ptel--model-name.model))........ |
| 5d3c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5d3e0 | 20 20 20 62 61 63 6b 65 6e 64 20 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...backend.model)).............. |
| 5d400 | 69 6e 74 6f 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 77 | into.models-alist..............w |
| 5d420 | 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 65 78 74 72 61 2d 70 72 6f 70 65 72 74 69 65 73 20 | ith.completion-extra-properties. |
| 5d440 | 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 61 6e 6e 6f 74 61 74 69 6f 6e 2d 66 75 6e | =..............`(:annotation-fun |
| 5d460 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 6c 61 6d 62 64 61 20 28 63 | ction................,(lambda.(c |
| 5d480 | 6f 6d 70 29 0a 09 09 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 65 6c 20 28 6e 74 68 20 32 20 28 61 | omp).....(let*.((model.(nth.2.(a |
| 5d4a0 | 73 73 6f 63 20 63 6f 6d 70 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 29 29 29 0a 09 09 09 20 28 64 | ssoc.comp.models-alist))).....(d |
| 5d4c0 | 65 73 63 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 29 0a 09 09 | esc.(get.model.:description))... |
| 5d4e0 | 09 20 28 63 61 70 73 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 | ..(caps.(get.model.:capabilities |
| 5d500 | 29 29 0a 09 09 09 20 28 63 6f 6e 74 65 78 74 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 63 6f 6e 74 | )).....(context.(get.model.:cont |
| 5d520 | 65 78 74 2d 77 69 6e 64 6f 77 29 29 0a 09 09 09 20 28 69 6e 70 75 74 2d 63 6f 73 74 20 28 67 65 | ext-window)).....(input-cost.(ge |
| 5d540 | 74 20 6d 6f 64 65 6c 20 3a 69 6e 70 75 74 2d 63 6f 73 74 29 29 0a 09 09 09 20 28 6f 75 74 70 75 | t.model.:input-cost)).....(outpu |
| 5d560 | 74 2d 63 6f 73 74 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 29 29 | t-cost.(get.model.:output-cost)) |
| 5d580 | 0a 09 09 09 20 28 63 75 74 6f 66 66 20 28 67 65 74 20 6d 6f 64 65 6c 20 3a 63 75 74 6f 66 66 2d | .....(cutoff.(get.model.:cutoff- |
| 5d5a0 | 64 61 74 65 29 29 29 0a 09 09 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 64 65 73 63 20 63 61 70 | date))).......(when.(or.desc.cap |
| 5d5c0 | 73 20 63 6f 6e 74 65 78 74 20 69 6e 70 75 74 2d 63 6f 73 74 20 6f 75 74 70 75 74 2d 63 6f 73 74 | s.context.input-cost.output-cost |
| 5d5e0 | 20 63 75 74 6f 66 66 29 0a 09 09 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 09 09 20 20 20 20 20 | .cutoff).........(concat........ |
| 5d600 | 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 60 28 73 70 61 | ..(propertize.".".'display.`(spa |
| 5d620 | 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 34 30 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e | ce.:align-to.40))..........(when |
| 5d640 | 20 64 65 73 63 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 | .desc.(truncate-string-to-width. |
| 5d660 | 64 65 73 63 20 37 30 20 6e 69 6c 20 3f 20 74 20 74 29 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 | desc.70.nil.?.t.t)).........."." |
| 5d680 | 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 73 70 61 63 | .(propertize.".".'display.`(spac |
| 5d6a0 | 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 31 32 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e | e.:align-to.112))..........(when |
| 5d6c0 | 20 63 61 70 73 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 | .caps.(truncate-string-to-width. |
| 5d6e0 | 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 63 61 70 73 29 20 32 31 20 6e 69 6c 20 3f 20 | (prin1-to-string.caps).21.nil.?. |
| 5d700 | 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." |
| 5d720 | 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 33 | .".'display.`(space.:align-to.13 |
| 5d740 | 34 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 78 74 20 28 66 6f 72 6d | 4))..........(when.context.(form |
| 5d760 | 61 74 20 22 25 35 64 6b 22 20 63 6f 6e 74 65 78 74 29 29 0a 09 09 20 20 20 20 20 20 20 22 20 22 | at."%5dk".context)).........."." |
| 5d780 | 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 73 70 61 63 | .(propertize.".".'display.`(spac |
| 5d7a0 | 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 34 32 29 29 0a 09 09 20 20 20 20 20 20 20 28 77 68 65 6e | e.:align-to.142))..........(when |
| 5d7c0 | 20 69 6e 70 75 74 2d 63 6f 73 74 20 28 66 6f 72 6d 61 74 20 22 24 25 35 2e 32 66 20 69 6e 22 20 | .input-cost.(format."$%5.2f.in". |
| 5d7e0 | 69 6e 70 75 74 2d 63 6f 73 74 29 29 0a 09 09 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 69 | input-cost))..........(if.(and.i |
| 5d800 | 6e 70 75 74 2d 63 6f 73 74 20 6f 75 74 70 75 74 2d 63 6f 73 74 29 20 22 2c 22 20 22 20 22 29 0a | nput-cost.output-cost).","."."). |
| 5d820 | 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 20 22 20 27 64 69 | .........".".(propertize.".".'di |
| 5d840 | 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 35 33 29 29 0a 09 09 | splay.`(space.:align-to.153))... |
| 5d860 | 20 20 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 70 75 74 2d 63 6f 73 74 20 28 66 6f 72 6d 61 74 | .......(when.output-cost.(format |
| 5d880 | 20 22 24 25 36 2e 32 66 20 6f 75 74 22 20 6f 75 74 70 75 74 2d 63 6f 73 74 29 29 0a 09 09 20 20 | ."$%6.2f.out".output-cost))..... |
| 5d8a0 | 20 20 20 20 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 | .....".".(propertize.".".'displa |
| 5d8c0 | 79 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 31 36 36 29 29 0a 09 09 20 20 20 20 | y.`(space.:align-to.166))....... |
| 5d8e0 | 20 20 20 63 75 74 6f 66 66 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 | ...cutoff)))))..............fina |
| 5d900 | 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 | lly.return..............(cdr.(as |
| 5d920 | 73 6f 63 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 6d 6f 64 65 | soc.(completing-read.prompt.mode |
| 5d940 | 6c 73 2d 61 6c 69 73 74 20 6e 69 6c 20 74 20 6e 69 6c 20 6e 69 6c 0a 09 09 09 09 09 20 20 28 63 | ls-alist.nil.t.nil.nil........(c |
| 5d960 | 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 65 6c 2d | oncat.(gptel-backend-name.gptel- |
| 5d980 | 62 61 63 6b 65 6e 64 29 20 22 3a 22 0a 09 09 09 09 09 09 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 | backend).":".........(gptel--mod |
| 5d9a0 | 65 6c 2d 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 20 | el-name.gptel-model))).......... |
| 5d9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 29 29 29 29 | ................models-alist)))) |
| 5d9e0 | 29 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 | )..(transient-define-infix.gptel |
| 5da00 | 2d 2d 69 6e 66 69 78 2d 74 65 6d 70 65 72 61 74 75 72 65 20 28 29 0a 20 20 22 54 65 6d 70 65 72 | --infix-temperature.()..."Temper |
| 5da20 | 61 74 75 72 65 20 6f 66 20 72 65 71 75 65 73 74 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f | ature.of.request."...:descriptio |
| 5da40 | 6e 20 22 54 65 6d 70 65 72 61 74 75 72 65 20 28 30 20 2d 20 32 2e 30 29 22 0a 20 20 3a 64 69 73 | n."Temperature.(0.-.2.0)"...:dis |
| 5da60 | 70 6c 61 79 2d 6e 69 6c 20 22 64 65 66 61 75 6c 74 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 | play-nil."default"...:class.'gpt |
| 5da80 | 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 |
| 5daa0 | 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 | tel-temperature...:set-value.#'g |
| 5dac0 | 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 6b 65 79 20 22 2d 54 22 | ptel--set-with-scope...:key."-T" |
| 5dae0 | 0a 20 20 3a 70 72 6f 6d 70 74 20 22 54 65 6d 70 65 72 61 74 75 72 65 20 63 6f 6e 74 72 6f 6c 73 | ...:prompt."Temperature.controls |
| 5db00 | 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 72 61 6e 64 6f 6d 6e 65 73 73 20 28 30 2e 30 2d 32 2e | .the.response.randomness.(0.0-2. |
| 5db20 | 30 2c 20 6c 65 61 76 65 20 65 6d 70 74 79 20 66 6f 72 20 41 50 49 20 64 65 66 61 75 6c 74 29 3a | 0,.leave.empty.for.API.default): |
| 5db40 | 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 65 6e 74 2d 72 | ."...:reader.'gptel--transient-r |
| 5db60 | 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 69 6e 65 2d 69 | ead-number)..(transient-define-i |
| 5db80 | 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 | nfix.gptel--infix-track-response |
| 5dba0 | 20 28 29 0a 20 20 22 44 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 | .()..."Distinguish.between.user. |
| 5dbc0 | 6d 65 73 73 61 67 65 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 57 68 65 | messages.and.LLM.responses...Whe |
| 5dbe0 | 6e 20 63 72 65 61 74 69 6e 67 20 61 20 70 72 6f 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 6f 20 74 | n.creating.a.prompt.to.send.to.t |
| 5dc00 | 68 65 20 4c 4c 4d 2c 20 67 70 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 65 73 0a 62 65 74 77 | he.LLM,.gptel.distinguishes.betw |
| 5dc20 | 65 65 6e 20 74 65 78 74 20 65 6e 74 65 72 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 6e 64 | een.text.entered.by.the.user.and |
| 5dc40 | 20 70 61 73 74 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 69 73 20 69 73 0a 72 65 | .past.LLM.responses...This.is.re |
| 5dc60 | 71 75 69 72 65 64 20 66 6f 72 20 6d 75 6c 74 69 2d 74 75 72 6e 20 63 6f 6e 76 65 72 73 61 74 69 | quired.for.multi-turn.conversati |
| 5dc80 | 6f 6e 73 2c 20 61 6e 64 20 69 73 20 61 6c 77 61 79 73 20 74 68 65 20 63 61 73 65 20 69 6e 0a 64 | ons,.and.is.always.the.case.in.d |
| 5dca0 | 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 73 20 28 69 6e 20 60 67 70 74 65 6c | edicated.chat.buffers.(in.`gptel |
| 5dcc0 | 2d 6d 6f 64 65 27 29 2e 0a 0a 49 6e 20 72 65 67 75 6c 61 72 20 62 75 66 66 65 72 73 2c 20 79 6f | -mode')...In.regular.buffers,.yo |
| 5dce0 | 75 20 63 61 6e 20 74 6f 67 67 6c 65 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 68 65 72 65 20 | u.can.toggle.this.behavior.here. |
| 5dd00 | 6f 72 20 62 79 0a 63 75 73 74 6f 6d 69 7a 69 6e 67 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 | or.by.customizing.`gptel-track-r |
| 5dd20 | 65 73 70 6f 6e 73 65 27 2e 20 20 57 68 65 6e 20 72 65 73 70 6f 6e 73 65 20 74 72 61 63 6b 69 6e | esponse'...When.response.trackin |
| 5dd40 | 67 20 69 73 0a 74 75 72 6e 65 64 20 6f 66 66 2c 20 61 6c 6c 20 74 65 78 74 20 77 69 6c 6c 20 62 | g.is.turned.off,.all.text.will.b |
| 5dd60 | 65 20 61 73 73 69 67 6e 65 64 20 74 68 65 20 5c 22 75 73 65 72 5c 22 20 72 6f 6c 65 20 77 68 65 | e.assigned.the.\"user\".role.whe |
| 5dd80 | 6e 0a 71 75 65 72 79 69 6e 67 20 74 68 65 20 4c 4c 4d 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 | n.querying.the.LLM."...:descript |
| 5dda0 | 69 6f 6e 20 22 54 72 61 63 6b 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 22 0a 20 20 3a 63 6c 61 | ion."Track.LLM.responses"...:cla |
| 5ddc0 | 73 73 20 27 67 70 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 | ss.'gptel--switches...:variable. |
| 5dde0 | 27 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 0a 20 20 3a 73 65 74 2d 76 61 6c | 'gptel-track-response...:set-val |
| 5de00 | 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 20 3a 64 69 | ue.#'gptel--set-with-scope...:di |
| 5de20 | 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 22 59 65 73 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 69 | splay-if-true."Yes"...:display-i |
| 5de40 | 66 2d 66 61 6c 73 65 20 22 4e 6f 22 0a 20 20 3a 6b 65 79 20 22 2d 52 22 29 0a 0a 28 74 72 61 6e | f-false."No"...:key."-R")..(tran |
| 5de60 | 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 69 78 2d | sient-define-infix.gptel--infix- |
| 5de80 | 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 29 0a 20 20 22 53 65 6e 64 20 6d 65 64 69 61 20 66 72 6f | track-media.()..."Send.media.fro |
| 5dea0 | 6d 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 74 68 65 20 70 72 | m.\"standalone\".links.in.the.pr |
| 5dec0 | 6f 6d 70 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 | ompt...When.the.active.`gptel-mo |
| 5dee0 | 64 65 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 | del'.supports.it,.gptel.can.send |
| 5df00 | 20 69 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 | .images.or.other.media.from.link |
| 5df20 | 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 4f 6e 6c | s.in.the.buffer.to.the.LLM...Onl |
| 5df40 | 79 0a 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 20 6c 69 6e 6b 73 20 61 72 65 20 63 6f 6e 73 69 | y.\"standalone\".links.are.consi |
| 5df60 | 64 65 72 65 64 3a 20 74 68 65 73 65 20 61 72 65 20 6c 69 6e 6b 73 20 6f 6e 20 74 68 65 69 72 20 | dered:.these.are.links.on.their. |
| 5df80 | 6f 77 6e 0a 6c 69 6e 65 20 77 69 74 68 20 6e 6f 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 | own.line.with.no.surrounding.tex |
| 5dfa0 | 74 2e 0a 0a 57 68 61 74 20 6c 69 6e 6b 20 74 79 70 65 73 20 61 72 65 20 73 65 6e 74 20 64 65 70 | t...What.link.types.are.sent.dep |
| 5dfc0 | 65 6e 64 73 20 6f 6e 20 74 68 65 20 6d 69 6d 65 2d 74 79 70 65 73 20 74 68 65 20 6d 6f 64 65 6c | ends.on.the.mime-types.the.model |
| 5dfe0 | 0a 73 75 70 70 6f 72 74 73 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 | .supports...See.`gptel-track-med |
| 5e000 | 69 61 27 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 22 0a 20 20 3a 64 65 | ia'.for.more.information."...:de |
| 5e020 | 73 63 72 69 70 74 69 6f 6e 20 22 53 65 6e 64 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c 69 6e 6b 73 | scription."Send.media.from.links |
| 5e040 | 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 0a 20 20 3a 76 | "...:class.'gptel--switches...:v |
| 5e060 | 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 3a 73 65 | ariable.'gptel-track-media...:se |
| 5e080 | 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 0a | t-value.#'gptel--set-with-scope. |
| 5e0a0 | 20 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 22 59 65 73 22 0a 20 20 3a 64 69 73 70 | ..:display-if-true."Yes"...:disp |
| 5e0c0 | 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 22 4e 6f 22 0a 20 20 3a 6b 65 79 20 22 2d 49 22 29 0a 0a | lay-if-false."No"...:key."-I").. |
| 5e0e0 | 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 61 64 64 69 6e 67 20 61 6e 64 20 72 65 6d | ;;.**.Infixes.for.adding.and.rem |
| 5e100 | 6f 76 69 6e 67 20 63 6f 6e 74 65 78 74 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | oving.context..(declare-function |
| 5e120 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 20 22 67 70 74 65 6c 2d | .gptel-context--at-point."gptel- |
| 5e140 | 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 |
| 5e160 | 6c 2d 61 64 64 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 65 | l-add."gptel-context")..(transie |
| 5e180 | 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 |
| 5e1a0 | 6e 74 65 78 74 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 29 0a 20 20 22 41 64 64 20 63 75 72 72 65 | ntext-add-region.()..."Add.curre |
| 5e1c0 | 6e 74 20 72 65 67 69 6f 6e 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 | nt.region.to.gptel's.context.".. |
| 5e1e0 | 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 73 74 61 79 0a | .:transient.'transient--do-stay. |
| 5e200 | 20 20 3a 6b 65 79 20 22 2d 72 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 | ..:key."-r"...:if.(lambda.().(or |
| 5e220 | 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 20 20 20 20 20 20 | .(use-region-p)................. |
| 5e240 | 28 61 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 | (and.(fboundp.'gptel-context--at |
| 5e260 | 2d 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 28 67 70 | -point)......................(gp |
| 5e280 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a 20 20 3a 64 65 73 | tel-context--at-point))))...:des |
| 5e2a0 | 63 72 69 70 74 69 6f 6e 0a 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 28 69 66 20 28 61 | cription...(lambda.().....(if.(a |
| 5e2c0 | 6e 64 20 28 66 62 6f 75 6e 64 70 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 | nd.(fboundp.'gptel-context--at-p |
| 5e2e0 | 6f 69 6e 74 29 0a 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 | oint)..............(gptel-contex |
| 5e300 | 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 20 63 6f | t--at-point))........."Remove.co |
| 5e320 | 6e 74 65 78 74 20 61 74 20 70 6f 69 6e 74 22 0a 20 20 20 20 20 20 22 41 64 64 20 72 65 67 69 6f | ntext.at.point"......."Add.regio |
| 5e340 | 6e 20 74 6f 20 63 6f 6e 74 65 78 74 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a | n.to.context"))...(interactive). |
| 5e360 | 20 20 28 67 70 74 65 6c 2d 61 64 64 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 | ..(gptel-add)...(transient-setup |
| 5e380 | 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 70 74 | ))..(transient-define-suffix.gpt |
| 5e3a0 | 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 62 75 66 66 65 72 20 28 29 0a | el--infix-context-add-buffer.(). |
| 5e3c0 | 20 20 22 41 64 64 20 61 20 62 75 66 66 65 72 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 | .."Add.a.buffer.to.gptel's.conte |
| 5e3e0 | 78 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 | xt."...:transient.'transient--do |
| 5e400 | 2d 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 2d 62 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e | -stay...:key."-b"...:description |
| 5e420 | 20 22 41 64 64 20 61 20 62 75 66 66 65 72 20 74 6f 20 63 6f 6e 74 65 78 74 22 0a 20 20 28 69 6e | ."Add.a.buffer.to.context"...(in |
| 5e440 | 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 61 64 64 20 27 28 34 29 29 0a 20 20 | teractive)...(gptel-add.'(4))... |
| 5e460 | 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | (transient-setup))..(declare-fun |
| 5e480 | 63 74 69 6f 6e 20 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 | ction.gptel-add-file."gptel-cont |
| 5e4a0 | 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 2d 63 6f | ext").(declare-function.gptel-co |
| 5e4c0 | 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 | ntext-remove-all."gptel-context" |
| 5e4e0 | 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 70 74 65 | )..(transient-define-suffix.gpte |
| 5e500 | 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 20 28 29 0a 20 20 22 | l--infix-context-add-file.()..." |
| 5e520 | 41 64 64 20 61 20 66 69 6c 65 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a | Add.a.file.to.gptel's.context.". |
| 5e540 | 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 73 74 61 79 | ..:transient.'transient--do-stay |
| 5e560 | 0a 20 20 3a 6b 65 79 20 22 2d 66 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 | ...:key."-f"...:description."Add |
| 5e580 | 20 61 20 66 69 6c 65 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 | .a.file.to.context"...(interacti |
| 5e5a0 | 76 65 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 | ve)...(call-interactively.#'gpte |
| 5e5c0 | 6c 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 | l-add-file)...(transient-setup)) |
| 5e5e0 | 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 70 74 65 6c | ..(transient-define-suffix.gptel |
| 5e600 | 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 6c 20 28 29 0a 20 20 | --infix-context-remove-all.()... |
| 5e620 | 22 43 6c 65 61 72 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 69 66 20 28 | "Clear.gptel's.context."...:if.( |
| 5e640 | 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a | lambda.().gptel-context--alist). |
| 5e660 | 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 73 74 61 79 | ..:transient.'transient--do-stay |
| 5e680 | 0a 20 20 3a 6b 65 79 20 22 2d 64 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 6d | ...:key."-d"...:description."Rem |
| 5e6a0 | 6f 76 65 20 61 6c 6c 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 | ove.all"...(interactive)...(gpte |
| 5e6c0 | 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 74 29 0a 20 20 28 74 72 61 6e 73 | l-context-remove-all.t)...(trans |
| 5e6e0 | 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 20 66 6f 72 20 61 64 | ient-setup))..;;.**.Infix.for.ad |
| 5e700 | 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 | ditional.directive..(transient-d |
| 5e720 | 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 61 64 64 2d 64 69 72 | efine-infix.gptel--infix-add-dir |
| 5e740 | 65 63 74 69 76 65 20 28 29 0a 20 20 22 41 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 | ective.()..."Additional.directiv |
| 5e760 | 65 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 71 75 65 72 79 20 6f 6e | e.intended.for.the.next.query.on |
| 5e780 | 6c 79 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 74 6f 20 64 65 66 69 6e 65 20 61 20 | ly...This.is.useful.to.define.a. |
| 5e7a0 | 71 75 69 63 6b 20 74 61 73 6b 20 6f 6e 20 74 6f 70 20 6f 66 20 61 20 6d 6f 72 65 20 65 78 74 65 | quick.task.on.top.of.a.more.exte |
| 5e7c0 | 6e 73 69 76 65 0a 6f 72 20 64 65 74 61 69 6c 65 64 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 | nsive.or.detailed.system.message |
| 5e7e0 | 2e 0a 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 77 69 74 68 20 63 6f 64 65 2f 74 65 78 74 20 73 | ...For.example,.with.code/text.s |
| 5e800 | 65 6c 65 63 74 65 64 3a 0a 0a 2d 20 52 65 77 72 69 74 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f | elected:..-.Rewrite.this.functio |
| 5e820 | 6e 20 74 6f 20 64 6f 20 58 20 77 68 69 6c 65 20 61 76 6f 69 64 69 6e 67 20 59 2e 0a 2d 20 43 68 | n.to.do.X.while.avoiding.Y..-.Ch |
| 5e840 | 61 6e 67 65 20 74 68 65 20 74 6f 6e 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 | ange.the.tone.of.the.following.p |
| 5e860 | 61 72 61 67 72 61 70 68 20 74 6f 20 62 65 20 6d 6f 72 65 20 64 69 72 65 63 74 2e 0a 0a 4f 72 20 | aragraph.to.be.more.direct...Or. |
| 5e880 | 69 6e 20 61 6e 20 65 78 74 65 6e 64 65 64 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 3a 0a 0a 2d 20 | in.an.extended.conversation:..-. |
| 5e8a0 | 50 68 72 61 73 65 20 79 6f 75 20 6e 65 78 74 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 74 65 6e 20 | Phrase.you.next.response.in.ten. |
| 5e8c0 | 77 6f 72 64 73 20 6f 72 20 6c 65 73 73 2e 0a 2d 20 50 72 65 74 65 6e 64 20 66 6f 72 20 6e 6f 77 | words.or.less..-.Pretend.for.now |
| 5e8e0 | 20 74 68 61 74 20 79 6f 75 27 72 65 20 61 6e 20 61 6e 74 68 72 6f 70 6f 6c 6f 67 69 73 74 2e 22 | .that.you're.an.anthropologist." |
| 5e900 | 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 | ...:class.'gptel-option-overlaid |
| 5e920 | 0a 20 20 3b 3b 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 63 74 | ...;;.:variable.'gptel--instruct |
| 5e940 | 69 6f 6e 73 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 27 6e 6f 6e 65 0a 20 20 3a 6f 76 65 | ions...:display-nil.'none...:ove |
| 5e960 | 72 6c 61 79 20 6e 69 6c 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 3a 22 0a 20 20 3a 70 72 6f 6d | rlay.nil...:argument.":"...:prom |
| 5e980 | 70 74 20 28 63 6f 6e 63 61 74 20 22 41 64 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 | pt.(concat."Add.instructions.for |
| 5e9a0 | 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .next.request.only."............ |
| 5e9c0 | 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 | .......gptel--read-with-prefix-h |
| 5e9e0 | 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 20 69 | elp)...:reader.(lambda.(prompt.i |
| 5ea00 | 6e 69 74 69 61 6c 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 | nitial.history).............(let |
| 5ea20 | 2a 20 28 28 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *.((directive................... |
| 5ea40 | 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 72 65 63 74 | ..(car-safe.(gptel--parse-direct |
| 5ea60 | 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 20 27 72 61 77 29 29 | ive.gptel--system-message.'raw)) |
| 5ea80 | 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 65 2d 70 72 65 66 | )....................(cycle-pref |
| 5eaa0 | 69 78 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 20 20 20 20 | ix.(lambda.().(interactive)..... |
| 5eac0 | 20 20 20 20 20 20 20 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 | ...............................( |
| 5eae0 | 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 20 64 69 72 65 63 74 69 76 | gptel--read-with-prefix.directiv |
| 5eb00 | 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 | e)))....................(minibuf |
| 5eb20 | 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 20 20 20 20 20 20 20 | fer-local-map................... |
| 5eb40 | 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 20 20 20 | ..(make-composed-keymap......... |
| 5eb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 20 22 54 41 42 | .............(define-keymap."TAB |
| 5eb80 | 22 20 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 | ".cycle-prefix."<tab>".cycle-pre |
| 5eba0 | 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 69 62 75 | fix)......................minibu |
| 5ebc0 | 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffer-local-map))................ |
| 5ebe0 | 20 20 20 20 28 65 78 74 72 61 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 | ....(extra.(minibuffer-with-setu |
| 5ec00 | 70 2d 68 6f 6f 6b 20 63 79 63 6c 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 | p-hook.cycle-prefix............. |
| 5ec20 | 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 20 70 72 6f | ................(read-string.pro |
| 5ec40 | 6d 70 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 22 20 22 29 20 68 69 73 74 6f 72 79 29 29 29 29 | mpt.(or.initial.".").history)))) |
| 5ec60 | 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 69 6e 67 2d 65 | ...............(unless.(string-e |
| 5ec80 | 6d 70 74 79 2d 70 20 65 78 74 72 61 29 20 65 78 74 72 61 29 29 29 0a 20 20 3a 66 6f 72 6d 61 74 | mpty-p.extra).extra)))...:format |
| 5eca0 | 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 6b 65 79 20 22 64 22 0a 20 20 3a 61 72 67 75 6d | .".%k.%d.%v"...:key."d"...:argum |
| 5ecc0 | 65 6e 74 20 22 3a 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 69 6e 73 74 | ent.":"...:description."Add.inst |
| 5ece0 | 72 75 63 74 69 6f 6e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 0a 3b 3b 20 2a 2a 20 | ruction"...:transient.t)..;;.**. |
| 5ed00 | 49 6e 66 69 78 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 63 6f 6e 74 72 6f | Infix.for.reasoning.block.contro |
| 5ed20 | 6c 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 | l..(transient-define-infix.gptel |
| 5ed40 | 2d 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 28 29 0a 20 20 22 | --infix-include-reasoning.()..." |
| 5ed60 | 48 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 72 65 61 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 6e 67 | How.to.handle.reasoning/thinking |
| 5ed80 | 20 72 65 73 70 6f 6e 73 65 20 62 6c 6f 63 6b 73 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 73 20 69 6e 63 | .response.blocks...Some.LLMs.inc |
| 5eda0 | 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 74 68 69 6e 6b | lude.in.their.response.a.\"think |
| 5edc0 | 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 6d 70 72 6f 76 | ing\".section...This.text.improv |
| 5ede0 | 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 20 66 69 6e 61 | es.the.quality.of.the.LLM's.fina |
| 5ee00 | 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 74 65 72 65 73 | l.output,.but.may.not.be.interes |
| 5ee20 | 74 69 6e 67 20 74 6f 20 79 6f 75 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 59 6f 75 20 63 61 6e 20 | ting.to.you.by.itself...You.can. |
| 5ee40 | 63 6f 6e 74 72 6f 6c 20 68 6f 77 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 68 61 6e 64 6c 65 20 | control.how.gptel.should.handle. |
| 5ee60 | 74 68 65 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 73 20 76 69 61 0a 74 68 69 73 20 6f 70 74 | the.thinking.blocks.via.this.opt |
| 5ee80 | 69 6f 6e 2c 20 6f 72 20 62 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 | ion,.or.by.setting.the.variable. |
| 5eea0 | 60 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 27 0a 76 69 61 20 65 6c | `gptel-include-reasoning'.via.el |
| 5eec0 | 69 73 70 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 41 76 61 69 6c 61 62 6c 65 20 62 65 68 61 76 | isp,.which.see...Available.behav |
| 5eee0 | 69 6f 72 73 20 61 72 65 0a 2d 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 69 6e 6b 69 6e 67 20 62 | iors.are.-.to.include.thinking.b |
| 5ef00 | 6c 6f 63 6b 73 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 0a 2d 20 74 6f 20 6f 6d | locks.with.the.response,.-.to.om |
| 5ef20 | 69 74 20 74 68 65 6d 20 65 6e 74 69 72 65 6c 79 2c 0a 2d 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 | it.them.entirely,.-.to.include.t |
| 5ef40 | 68 65 6d 20 62 75 74 20 69 67 6e 6f 72 65 20 74 68 65 6d 20 69 6e 20 63 6f 6e 73 65 71 75 65 6e | hem.but.ignore.them.in.consequen |
| 5ef60 | 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 2c 20 61 6e 64 0a 2d 20 74 6f 20 61 | t.conversation.turns,.and.-.to.a |
| 5ef80 | 70 70 65 6e 64 20 74 68 65 6d 20 74 6f 20 61 20 62 75 66 66 65 72 20 6f 66 20 79 6f 75 72 20 63 | ppend.them.to.a.buffer.of.your.c |
| 5efa0 | 68 6f 6f 73 69 6e 67 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 63 6c 75 64 | hoosing."...:description."Includ |
| 5efc0 | 65 20 72 65 61 73 6f 6e 69 6e 67 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 | e.reasoning"...:class.'gptel-lis |
| 5efe0 | 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 69 6e | p-variable...:variable.'gptel-in |
| 5f000 | 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 | clude-reasoning...:format.".%k.% |
| 5f020 | 64 20 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 | d.%v"...:set-value.#'gptel--set- |
| 5f040 | 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 4e 6f 22 0a 20 | with-scope...:display-nil."No".. |
| 5f060 | 20 3a 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 | .:display-map.'((nil......"No"). |
| 5f080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 2e 20 22 61 6e 64 20 | .................(ignore..."and. |
| 5f0a0 | 69 67 6e 6f 72 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 | ignore")..................(t.... |
| 5f0c0 | 20 20 2e 20 22 77 69 74 68 20 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 3a 6b 65 79 20 22 2d 76 | ...."with.response"))...:key."-v |
| 5f0e0 | 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 49 6e 63 6c 75 64 65 20 72 65 61 73 6f 6e 69 6e 67 3a 20 | "...:prompt."Include.reasoning:. |
| 5f100 | 22 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 20 26 72 65 73 | "...:reader.(lambda.(prompt.&res |
| 5f120 | 74 20 5f 29 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 | t._).............(let*.((choices |
| 5f140 | 20 27 28 28 22 6e 6f 22 20 20 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .'(("no".......nil)............. |
| 5f160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 69 67 6e 6f 72 65 22 20 2e 20 69 67 | ..................("ignore"...ig |
| 5f180 | 6e 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 20 20 20 20 | nore)........................... |
| 5f1a0 | 20 20 20 20 28 22 79 65 73 22 20 20 20 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....("yes"......t).............. |
| 5f1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 | .................("other.buffer" |
| 5f1e0 | 20 2e 20 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 20 20 | ...buffer))).................... |
| 5f200 | 28 64 65 73 74 69 6e 61 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (destination.................... |
| 5f220 | 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 65 73 | .(completing-read.prompt.choices |
| 5f240 | 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 69 66 20 28 65 71 75 | .nil.t)))...............(if.(equ |
| 5f260 | 61 6c 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 29 0a 20 | al.destination."other.buffer").. |
| 5f280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 41 | .................(read-buffer."A |
| 5f2a0 | 70 70 65 6e 64 20 72 65 61 73 6f 6e 69 6e 67 20 74 6f 20 62 75 66 66 65 72 3a 20 22 29 0a 20 20 | ppend.reasoning.to.buffer:.")... |
| 5f2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 64 65 73 74 69 6e | ..............(cdr.(assoc.destin |
| 5f2e0 | 61 74 69 6f 6e 20 63 68 6f 69 63 65 73 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 | ation.choices))))))..;;.**.Infix |
| 5f300 | 65 73 20 66 6f 72 20 74 6f 6f 6c 20 75 73 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 | es.for.tool.use..(transient-defi |
| 5f320 | 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 20 | ne-infix.gptel--infix-use-tools. |
| 5f340 | 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 20 77 69 74 68 20 | ()..."Whether.LLM.tool.use.with. |
| 5f360 | 67 70 74 65 6c 20 69 73 20 65 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 | gptel.is.enabled...This.is.a.thr |
| 5f380 | 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 2e 20 20 41 73 73 75 6d 69 6e 67 20 6f 6e 65 20 6f 72 20 | ee-way.toggle...Assuming.one.or. |
| 5f3a0 | 6d 6f 72 65 20 74 6f 6f 6c 73 20 74 6f 20 62 65 0a 73 65 6e 74 20 77 69 74 68 20 72 65 71 75 65 | more.tools.to.be.sent.with.reque |
| 5f3c0 | 73 74 73 20 68 61 76 65 20 62 65 65 6e 20 73 65 6c 65 63 74 65 64 2c 20 74 6f 6f 6c 20 75 73 65 | sts.have.been.selected,.tool.use |
| 5f3e0 | 20 63 61 6e 20 62 65 0a 0a 2d 20 64 69 73 61 62 6c 65 64 2c 0a 2d 20 65 6e 61 62 6c 65 64 2c 20 | .can.be..-.disabled,.-.enabled,. |
| 5f400 | 77 68 65 72 65 20 74 68 65 20 4c 4c 4d 20 6d 61 79 20 63 68 6f 6f 73 65 20 74 6f 20 72 65 73 70 | where.the.LLM.may.choose.to.resp |
| 5f420 | 6f 6e 64 20 77 69 74 68 20 74 6f 6f 6c 20 63 61 6c 6c 73 0a 2d 20 66 6f 72 63 65 64 2c 20 77 68 | ond.with.tool.calls.-.forced,.wh |
| 5f440 | 65 72 65 20 74 68 65 20 4c 4c 4d 20 6d 75 73 74 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 6f 6e | ere.the.LLM.must.respond.with.on |
| 5f460 | 65 20 6f 72 20 6d 6f 72 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 73 | e.or.more.tool.calls...You.can.s |
| 5f480 | 65 74 20 74 68 69 73 20 68 65 72 65 20 6f 72 20 62 79 20 63 75 73 74 6f 6d 69 7a 69 6e 67 20 60 | et.this.here.or.by.customizing.` |
| 5f4a0 | 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 27 2c 20 77 68 69 63 68 0a 73 65 65 2e 22 0a 20 20 | gptel-use-tools',.which.see."... |
| 5f4c0 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 55 73 65 20 74 6f 6f 6c 73 22 0a 20 20 3a 63 6c 61 73 | :description."Use.tools"...:clas |
| 5f4e0 | 73 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 | s.'gptel-lisp-variable...:variab |
| 5f500 | 6c 65 20 27 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 | le.'gptel-use-tools...:set-value |
| 5f520 | 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 75 65 20 73 63 6f 70 65 29 0a 20 20 20 20 20 | .(lambda.(sym.value.scope)...... |
| 5f540 | 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 6f 70 65 | ..........(gptel--set-with-scope |
| 5f560 | 20 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 | .sym.value.scope)............... |
| 5f580 | 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e | .(transient-setup))...:display-n |
| 5f5a0 | 69 6c 20 22 6f 66 66 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 20 | il."off"...:display-map.'((nil.. |
| 5f5c0 | 20 2e 20 22 6f 66 66 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 | ..."off")..................(t... |
| 5f5e0 | 20 20 2e 20 22 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 63 | ...."on")..................(forc |
| 5f600 | 65 20 2e 20 22 66 6f 72 63 65 22 29 29 0a 20 20 3a 70 72 6f 6d 70 74 20 22 55 73 65 20 74 6f 6f | e..."force"))...:prompt."Use.too |
| 5f620 | 6c 73 3f 20 22 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 20 | ls?."...:reader.(lambda.(prompt. |
| 5f640 | 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 20 28 28 63 68 6f | &rest._).............(let*.((cho |
| 5f660 | 69 63 65 73 20 27 28 28 22 64 69 73 61 62 6c 65 22 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 | ices.'(("disable"...nil)........ |
| 5f680 | 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 65 6e 61 62 6c 65 22 | .......................("enable" |
| 5f6a0 | 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 20 20 | ....t).......................... |
| 5f6c0 | 20 20 20 20 20 28 22 66 6f 72 63 65 22 20 20 20 2e 20 66 6f 72 63 65 29 29 29 0a 20 20 20 20 20 | .....("force".....force)))...... |
| 5f6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d | ..............(pref.(completing- |
| 5f700 | 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 20 20 20 | read.prompt.choices.nil.t))).... |
| 5f720 | 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 | ...........(cdr.(assoc.pref.choi |
| 5f740 | 63 65 73 29 29 29 29 0a 20 20 3a 6b 65 79 20 22 2d 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 | ces))))...:key."-t")..(transient |
| 5f760 | 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 63 6f 6e 66 69 | -define-infix.gptel--infix-confi |
| 5f780 | 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c | rm-tool-calls.()..."Whether.tool |
| 5f7a0 | 20 63 61 6c 6c 73 20 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 | .calls.should.wait.for.the.user. |
| 5f7c0 | 74 6f 20 72 75 6e 20 74 68 65 6d 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 | to.run.them...This.is.a.three-wa |
| 5f7e0 | 79 20 74 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 74 68 65 73 65 20 62 65 68 61 76 69 6f 72 73 | y.toggle.between.these.behaviors |
| 5f800 | 3a 0a 0a 2d 20 41 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 72 75 6e 20 77 69 74 68 6f 75 74 20 | :..-.All.tool.calls.run.without. |
| 5f820 | 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 2d 20 41 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 77 | confirmation..-.All.tool.calls.w |
| 5f840 | 61 69 74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 2d 20 44 65 63 69 64 65 64 20 | ait.for.confirmation..-.Decided. |
| 5f860 | 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 65 | per-tool,.according.to.the.value |
| 5f880 | 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 73 70 65 63 27 73 0a 20 20 3a 63 6f 6e 66 69 72 6d 20 73 | .of.the.tool.spec's...:confirm.s |
| 5f8a0 | 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 70 | lot...This.sets.the.variable.`gp |
| 5f8c0 | 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 27 2c 20 77 68 69 63 68 20 73 | tel-confirm-tool-calls',.which.s |
| 5f8e0 | 65 65 2e 22 0a 20 20 3a 6b 65 79 20 22 2d 63 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | ee."...:key."-c"...:description. |
| 5f900 | 22 43 6f 6e 66 69 72 6d 20 74 6f 6f 6c 20 63 61 6c 6c 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 | "Confirm.tool.calls"...:class.'g |
| 5f920 | 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.' |
| 5f940 | 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 3a 73 65 74 2d | gptel-confirm-tool-calls...:set- |
| 5f960 | 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 20 | value.#'gptel--set-with-scope... |
| 5f980 | 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 70 6c 61 79 2d | :display-nil."never"...:display- |
| 5f9a0 | 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 20 20 20 20 20 | map.'((nil..."never")........... |
| 5f9c0 | 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 20 20 20 20 20 | .......(t....."always")......... |
| 5f9e0 | 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 20 3a 70 72 6f | .........(auto..."auto"))...:pro |
| 5fa00 | 6d 70 74 20 22 54 6f 6f 6c 20 63 61 6c 6c 73 20 72 65 71 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 | mpt."Tool.calls.require.confirma |
| 5fa20 | 74 69 6f 6e 3f 20 22 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 | tion?."...:reader.(lambda.(promp |
| 5fa40 | 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 20 28 28 63 | t.&rest._).............(let*.((c |
| 5fa60 | 68 6f 69 63 65 73 20 27 28 28 22 6e 6f 22 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 | hoices.'(("no".....nil)......... |
| 5fa80 | 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 6c 77 61 79 73 22 20 | ......................("always". |
| 5faa0 | 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 20 20 20 20 | ..t)............................ |
| 5fac0 | 20 20 20 28 22 74 6f 6f 6c 20 64 65 63 69 64 65 73 22 20 2e 20 61 75 74 6f 29 29 29 0a 20 20 20 | ...("tool.decides"...auto))).... |
| 5fae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e | ................(pref.(completin |
| 5fb00 | 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 20 | g-read.prompt.choices.nil.t))).. |
| 5fb20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 | .............(cdr.(assoc.pref.ch |
| 5fb40 | 6f 69 63 65 73 29 29 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e | oices)))))..(transient-define-in |
| 5fb60 | 66 69 78 20 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 | fix.gptel--infix-include-tool-re |
| 5fb80 | 73 75 6c 74 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 20 72 65 | sults.()..."Whether.tool.call.re |
| 5fba0 | 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. |
| 5fbc0 | 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 | response...This.is.a.three-way.t |
| 5fbe0 | 6f 67 67 6c 65 20 62 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 | oggle.between.these.behaviors:.. |
| 5fc00 | 2d 20 41 6c 6c 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e | -.All.tool.results.are.included. |
| 5fc20 | 0a 2d 20 4e 6f 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e | .-.No.tool.results.are.included. |
| 5fc40 | 0a 2d 20 44 65 63 69 64 65 64 20 70 65 72 2d 74 6f 6f 6c 2c 20 61 63 63 6f 72 64 69 6e 67 20 74 | .-.Decided.per-tool,.according.t |
| 5fc60 | 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 73 70 65 63 27 73 0a 20 | o.the.value.of.the.tool.spec's.. |
| 5fc80 | 20 3a 69 6e 63 6c 75 64 65 20 73 6c 6f 74 2e 0a 0a 54 68 69 73 20 73 65 74 73 20 74 68 65 20 76 | .:include.slot...This.sets.the.v |
| 5fca0 | 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 | ariable.`gptel-include-tool-resu |
| 5fcc0 | 6c 74 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 6b 65 79 20 22 2d 69 22 0a 20 20 | lts',.which.see."...:key."-i"... |
| 5fce0 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 63 6c 75 64 65 20 72 65 73 75 6c 74 73 20 20 20 | :description."Include.results... |
| 5fd00 | 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 0a | "...:class.'gptel-lisp-variable. |
| 5fd20 | 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 74 6f 6f 6c 2d | ..:variable.'gptel-include-tool- |
| 5fd40 | 72 65 73 75 6c 74 73 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 | results...:set-value.#'gptel--se |
| 5fd60 | 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 6e 65 76 | t-with-scope...:display-nil."nev |
| 5fd80 | 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 20 2e 20 22 6e 65 76 | er"...:display-map.'((nil..."nev |
| 5fda0 | 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 20 20 2e 20 22 61 6c | er")..................(t....."al |
| 5fdc0 | 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 61 75 74 6f 20 2e 20 | ways")..................(auto... |
| 5fde0 | 22 61 75 74 6f 22 29 29 0a 20 20 3a 70 72 6f 6d 70 74 20 22 49 6e 63 6c 75 64 65 20 74 6f 6f 6c | "auto"))...:prompt."Include.tool |
| 5fe00 | 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 3f 20 22 0a 20 20 3a 72 | .results.in.LLM.response?."...:r |
| 5fe20 | 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._).. |
| 5fe40 | 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 6e | ...........(let*.((choices.'(("n |
| 5fe60 | 65 76 65 72 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 | ever".....nil).................. |
| 5fe80 | 20 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 | .............("always"...t)..... |
| 5fea0 | 20 20 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 | ..........................("tool |
| 5fec0 | 20 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 | .decides"...auto)))............. |
| 5fee0 | 20 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 | .......(pref.(completing-read.pr |
| 5ff00 | 6f 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 | ompt.choices.nil.t)))........... |
| 5ff20 | 20 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 | ....(cdr.(assoc.pref.choices)))) |
| 5ff40 | 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 53 75 66 66 69 78 65 73 0a 0a 3b 3b | )....;;.*.Transient.Suffixes..;; |
| 5ff60 | 20 2a 2a 20 53 75 66 66 69 78 20 74 6f 20 73 65 6e 64 20 70 72 6f 6d 70 74 0a 0a 28 74 72 61 6e | .**.Suffix.to.send.prompt..(tran |
| 5ff80 | 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 66 69 | sient-define-suffix.gptel--suffi |
| 5ffa0 | 78 2d 73 65 6e 64 20 28 61 72 67 73 29 0a 20 20 22 53 65 6e 64 20 41 52 47 53 2e 22 0a 20 20 3a | x-send.(args)..."Send.ARGS."...: |
| 5ffc0 | 6b 65 79 20 22 52 45 54 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 23 27 67 70 74 65 6c | key."RET"...:description.#'gptel |
| 5ffe0 | 2d 2d 64 65 73 63 72 69 62 65 2d 73 75 66 66 69 78 2d 73 65 6e 64 0a 20 20 28 69 6e 74 65 72 61 | --describe-suffix-send...(intera |
| 60000 | 63 74 69 76 65 20 28 6c 69 73 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 0a 20 20 20 20 | ctive.(list.(transient-args..... |
| 60020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 74 72 61 6e 73 69 65 6e 74 2d | ..................(or.transient- |
| 60040 | 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 0a | current-command.'gptel-menu)))). |
| 60060 | 20 20 28 6c 65 74 20 28 28 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 20 20 | ..(let.((stream.gptel-stream)... |
| 60080 | 20 20 20 20 20 20 28 69 6e 2d 70 6c 61 63 65 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 69 22 | ......(in-place.(and.(member."i" |
| 600a0 | 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 | .args).t)).........(output-to-ot |
| 600c0 | 68 65 72 2d 62 75 66 66 65 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 67 | her-buffer-p).........(backend.g |
| 600e0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 | ptel-backend).........(model.gpt |
| 60100 | 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 | el-model).........(backend-name. |
| 60120 | 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 |
| 60140 | 64 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 29 20 28 70 6f 73 69 74 69 6f 6e 29 0a | d)).........(buffer).(position). |
| 60160 | 20 20 20 20 20 20 20 20 28 63 61 6c 6c 62 61 63 6b 29 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 | ........(callback).(gptel-buffer |
| 60180 | 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 79 73 74 65 6d 2d 65 78 74 72 61 20 28 67 70 | -name).........(system-extra.(gp |
| 601a0 | 74 65 6c 2d 2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 | tel--get-directive.args))....... |
| 601c0 | 20 20 28 64 72 79 2d 72 75 6e 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 49 22 20 61 72 67 73 | ..(dry-run.(and.(member."I".args |
| 601e0 | 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 70 75 74 20 72 65 64 69 72 65 63 74 69 | ).t)).........;;.Input.redirecti |
| 60200 | 6f 6e 3a 20 67 72 61 62 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 65 6c 73 65 77 68 65 72 65 3f 0a | on:.grab.prompt.from.elsewhere?. |
| 60220 | 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 | ........(prompt..........(cond.. |
| 60240 | 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 6d 22 20 61 72 67 73 29 0a 20 20 20 20 | .........((member."m".args)..... |
| 60260 | 20 20 20 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 | .......(read-string............. |
| 60280 | 28 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 | (format."Ask.%s:.".(gptel-backen |
| 602a0 | 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 20 20 20 | d-name.gptel-backend)).......... |
| 602c0 | 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 20 | ...(and.(use-region-p).......... |
| 602e0 | 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 6f | ........(buffer-substring-no-pro |
| 60300 | 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 28 72 65 67 69 6f | perties...................(regio |
| 60320 | 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 29 29 0a 20 20 | n-beginning).(region-end)))))... |
| 60340 | 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 0a 20 20 20 20 20 | ........((member."y".args)...... |
| 60360 | 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 6c 6c 2d 72 69 6e | ......(unless.(car-safe.kill-rin |
| 60380 | 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 72 20 22 60 6b 69 | g)..............(user-error."`ki |
| 603a0 | 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 67 20 74 6f 20 73 | ll-ring'.is.empty!..Nothing.to.s |
| 603c0 | 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 65 6e 74 2d 70 72 | end"))............(if.current-pr |
| 603e0 | 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 65 61 64 2d 66 72 | efix-arg................(read-fr |
| 60400 | 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 6b 69 6c 6c 2d 72 | om-kill-ring."Prompt.from.kill-r |
| 60420 | 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 65 6e 74 2d 6b 69 | ing:.")..............(current-ki |
| 60440 | 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 72 65 64 69 72 65 | ll.0))))))......;;.Output.redire |
| 60460 | 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 68 65 72 65 3f 0a | ction:.Send.response.elsewhere?. |
| 60480 | 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 22 20 61 72 67 73 | ....(cond......((member."e".args |
| 604a0 | 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 20 20 20 20 20 20 | ).......(setq.stream.nil)....... |
| 604c0 | 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 20 28 6c 61 6d 62 | (setq.callback.............(lamb |
| 604e0 | 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 61 77 29 0a 20 20 | da.(resp.info.&optional._raw)... |
| 60500 | 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 20 20 20 20 20 20 | ............(pcase.resp......... |
| 60520 | 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 65 73 73 61 67 65 | ........((pred.stringp).(message |
| 60540 | 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 2d 6e 61 6d 65 20 | ."%s.response:.%s".backend-name. |
| 60560 | 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 74 6f 6f 6c 2d 63 | resp)).................(`(tool-c |
| 60580 | 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 2d 64 69 73 70 6c | all...,tool-calls).(gptel--displ |
| 605a0 | 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 20 27 6d | ay-tool-calls.tool-calls.info.'m |
| 605c0 | 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 20 20 28 60 28 74 | inibuffer)).................(`(t |
| 605e0 | 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 29 20 28 67 70 74 | ool-result...,tool-results).(gpt |
| 60600 | 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 6f 6f 6c 2d 72 65 | el--display-tool-results.tool-re |
| 60620 | 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 20 20 20 28 5f 20 | sults.info)).................(_. |
| 60640 | 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 69 73 74 2d 67 65 | (when.(and.(null.resp).(plist-ge |
| 60660 | 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 20 20 20 20 20 20 | t.info.:error))................. |
| 60680 | 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 20 65 72 72 6f 72 | .....(message."%s.response.error |
| 606a0 | 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 20 20 20 20 20 20 | :.%s"........................... |
| 606c0 | 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 74 20 69 6e 66 6f | ....backend-name.(plist-get.info |
| 606e0 | 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 6d 62 65 72 20 22 | .:status))))))))......((member." |
| 60700 | 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 6d 20 6e 69 6c 29 | k".args).......(setq.stream.nil) |
| 60720 | 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 20 20 20 20 20 20 | .......(setq.callback........... |
| 60740 | 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 6f 6e 61 6c 20 5f | ..(lambda.(resp.info.&optional._ |
| 60760 | 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 72 65 73 70 0a 20 | raw)...............(pcase.resp.. |
| 60780 | 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 6e 67 70 29 20 28 | ...............((pred.stringp).( |
| 607a0 | 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 20 20 20 20 20 20 | kill-new.resp).................. |
| 607c0 | 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 73 5c 22 20 63 6f | (message."%s.response:.\"%s\".co |
| 607e0 | 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 64 2d 6e 61 6d 65 | pied.to.kill-ring.".backend-name |
| 60800 | 0a 20 20 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 |
| 60820 | 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 33 30 29 29 29 0a | cate-string-to-width.resp.30))). |
| 60840 | 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 6c 6c 20 2e 20 2c | ................(`(tool-call..., |
| 60860 | 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 79 2d 74 6f 6f 6c | tool-calls).(gptel--display-tool |
| 60880 | 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 6e 69 62 75 66 66 | -calls.tool-calls.info.'minibuff |
| 608a0 | 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 6f 6c 2d 72 65 73 | er)).................(`(tool-res |
| 608c0 | 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 6c 2d 2d 64 69 73 | ult...,tool-results).(gptel--dis |
| 608e0 | 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 75 6c 74 73 20 69 | play-tool-results.tool-results.i |
| 60900 | 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 77 68 65 6e 20 28 | nfo)).................(_.(when.( |
| 60920 | 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 20 69 6e 66 6f 20 | and.(null.resp).(plist-get.info. |
| 60940 | 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 20 20 20 20 28 6d | :error))......................(m |
| 60960 | 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 20 25 73 22 20 62 | essage."%s.response.error:.%s".b |
| 60980 | 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 20 | ackend-name..................... |
| 609a0 | 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 73 74 61 74 75 | ..........(plist-get.info.:statu |
| 609c0 | 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 6c 2d 62 75 66 66 | s))))))))......((setq.gptel-buff |
| 609e0 | 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 6d 65 20 28 6c 61 | er-name.............(cl-some.(la |
| 60a00 | 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 28 73 74 72 69 6e | mbda.(s).(and.(stringp.s).(strin |
| 60a20 | 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 20 20 20 20 20 20 | g-prefix-p."g".s)............... |
| 60a40 | 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 20 73 20 | ...................(substring.s. |
| 60a60 | 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 61 72 67 73 29 29 | 1)))......................args)) |
| 60a80 | 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 65 72 2d 62 75 66 | .......(setq.output-to-other-buf |
| 60aa0 | 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 63 65 64 2d 70 72 | fer-p.t).......(let.((reduced-pr |
| 60ac0 | 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 72 74 69 6e 67 20 | ompt.............;For.inserting. |
| 60ae0 | 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 20 20 20 20 20 20 | into.the.gptel.buffer.as........ |
| 60b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 60b20 | 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 75 73 65 64 20 66 | .;context,.not.the.prompt.used.f |
| 60b40 | 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 20 20 20 20 20 20 | or.the.......................... |
| 60b60 | 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 73 65 6c 66 0a 20 | ...............;request.itself.. |
| 60b80 | 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 20 20 20 20 20 20 | ............(or.prompt.......... |
| 60ba0 | 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 0a 20 20 20 20 20 | ........(if.(use-region-p)...... |
| 60bc0 | 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 69 6e | ................(buffer-substrin |
| 60be0 | 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 67 69 6e 6e 69 6e | g-no-properties.(region-beginnin |
| 60c00 | 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).............................. |
| 60c20 | 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- |
| 60c40 | 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 62 75 66 66 65 72 | end))....................(buffer |
| 60c60 | 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 20 20 20 | -substring-no-properties........ |
| 60c80 | 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.... |
| 60ca0 | 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 72 6f 70 65 72 74 | ...................(text-propert |
| 60cc0 | 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 20 20 20 20 | y-search-backward............... |
| 60ce0 | 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 20 20 20 20 20 20 | .........'gptel.'response....... |
| 60d00 | 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 74 2d 63 68 61 72 | .................(when.(get-char |
| 60d20 | 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 20 28 31 2d 20 28 | -property.(max.(point-min).(1-.( |
| 60d40 | 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 20 20 20 20 20 20 | point)))........................ |
| 60d60 | 20 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 65 6c 29 | .........................'gptel) |
| 60d80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 0a 20 20 | ..........................t))... |
| 60da0 | 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 0a 20 20 20 | ....................(point)).... |
| 60dc0 | 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 74 2d 77 6f 72 64 | .................(gptel--at-word |
| 60de0 | 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 20 28 63 6f 6e 64 | -end.(point))))))).........(cond |
| 60e00 | 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 28 67 65 74 2d 62 | ..........((buffer-live-p.(get-b |
| 60e20 | 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))....... |
| 60e40 | 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 67 20 67 70 74 65 | ....;;.Insert.into.existing.gpte |
| 60e60 | 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 0a 20 20 20 20 20 | l.session...........(progn...... |
| 60e80 | 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 75 66 66 65 72 20 | .......(setq.buffer.(get-buffer. |
| 60ea0 | 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 20 20 20 20 20 20 | gptel-buffer-name))............. |
| 60ec0 | 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..... |
| 60ee0 | 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 61 78 29 | ..........(goto-char.(point-max) |
| 60f00 | 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 72 20 62 75 66 66 | )...............(unless.(or.buff |
| 60f20 | 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 20 20 20 20 20 20 | er-read-only.................... |
| 60f40 | 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 28 70 6f 69 6e 74 | .......(get-char-property.(point |
| 60f60 | 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 20 20 20 20 20 28 | ).'read-only)).................( |
| 60f80 | 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 20 20 20 20 20 20 | insert.reduced-prompt))......... |
| 60fa0 | 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 74 29 29 0a 20 20 | ......(setq.position.(point))... |
| 60fc0 | 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 65 6c 2d 6d 6f 64 | ............(when.(and.gptel-mod |
| 60fe0 | 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 20 20 20 20 20 20 | e.(not.dry-run))................ |
| 61000 | 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 |
| 61020 | 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 20 20 3b 3b 20 49 | ...".'warning)))))..........;;.I |
| 61040 | 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 6f 6e 0a 20 20 20 | nsert.into.new.gptel.session.... |
| 61060 | 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 20 20 20 20 20 20 | ......(t.(setq.buffer........... |
| 61080 | 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 72 2d 6e 61 6d 65 | ........(gptel.gptel-buffer-name |
| 610a0 | 0a 20 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 |
| 610c0 | 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 20 20 20 20 | tion-case.nil................... |
| 610e0 | 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 2d 6b 65 79 29 0a | ...........(gptel--get-api-key). |
| 61100 | 20 20 20 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 65 72 72 | ...........................((err |
| 61120 | 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 20 20 20 20 20 20 | or.user-error).................. |
| 61140 | 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 2d 6b 65 79 0a 20 | ...........(setq.gptel-api-key.. |
| 61160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 61180 | 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 20 20 20 20 20 20 | .(read-passwd................... |
| 611a0 | 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 20 41 50 49 | .................(format."%s.API |
| 611c0 | 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 20 20 20 20 20 20 | .key:."......................... |
| 611e0 | 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 61 63 6b 65 6e | ...................(gptel-backen |
| 61200 | 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.......................... |
| 61220 | 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 61 63 6b 65 6e 64 | ...................gptel-backend |
| 61240 | 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 20 20 20 20 20 20 | )))))).......................... |
| 61260 | 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 20 20 20 3b 3b 20 | reduced-prompt)).............;;. |
| 61280 | 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 65 77 20 73 65 73 | Set.backend.and.model.in.new.ses |
| 612a0 | 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 20 20 20 20 20 20 | sion.from.current.buffer........ |
| 612c0 | 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 72 | .....(with-current-buffer.buffer |
| 612e0 | 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 2d 62 61 63 6b 65 | ...............(setq.gptel-backe |
| 61300 | 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 28 73 65 74 71 20 | nd.backend)...............(setq. |
| 61320 | 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 20 20 20 20 20 20 | gptel-model.model).............. |
| 61340 | 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 20 20 20 20 20 20 | .(unless.dry-run................ |
| 61360 | 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 |
| 61380 | 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 20 20 20 20 28 73 | ...".'warning))...............(s |
| 613a0 | 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 0a 20 20 20 20 20 | etq.position.(point)))))))...... |
| 613c0 | 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 20 20 20 20 20 20 | ((setq.gptel-buffer-name........ |
| 613e0 | 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 28 61 6e 64 20 28 | .....(cl-some.(lambda.(s).(and.( |
| 61400 | 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 70 20 22 62 22 20 | stringp.s).(string-prefix-p."b". |
| 61420 | 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 20 | s).............................. |
| 61440 | 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 20 20 20 20 20 20 | ....(substring.s.1)))........... |
| 61460 | 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 65 74 71 20 6f 75 | ...........args)).......(setq.ou |
| 61480 | 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 20 20 20 20 20 20 | tput-to-other-buffer-p.t)....... |
| 614a0 | 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 72 65 61 74 65 20 | (setq.buffer.(get-buffer-create. |
| 614c0 | 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 28 77 69 74 68 2d | gptel-buffer-name)).......(with- |
| 614e0 | 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 71 20 70 6f 73 69 | current-buffer.buffer.(setq.posi |
| 61500 | 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 67 31 20 28 67 70 | tion.(point)))))......(prog1.(gp |
| 61520 | 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 20 20 20 20 20 20 | tel-request.prompt.............. |
| 61540 | 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 74 2d 62 75 66 66 | :buffer.(or.buffer.(current-buff |
| 61560 | 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 6e 20 70 6f 73 69 | er))..............:position.posi |
| 61580 | 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 65 20 28 61 6e 64 | tion..............:in-place.(and |
| 615a0 | 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 74 68 65 72 2d 62 | .in-place.(not.output-to-other-b |
| 615c0 | 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 72 65 61 6d 20 73 | uffer-p))..............:stream.s |
| 615e0 | 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 0a 20 20 20 20 20 | tream..............:system...... |
| 61600 | 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 20 20 20 20 20 20 | ........(if.system-extra........ |
| 61620 | 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 64 69 74 69 6f 6e | ..........(gptel--merge-addition |
| 61640 | 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 0a 20 20 20 20 20 | al-directive.system-extra)...... |
| 61660 | 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 73 73 61 67 65 29 | ..........gptel--system-message) |
| 61680 | 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 6c 6c 62 61 63 6b | ..............:callback.callback |
| 616a0 | 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 |
| 616c0 | 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 |
| 616e0 | 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 |
| 61700 | 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........ |
| 61720 | 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 |
| 61740 | 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:. |
| 61760 | 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 |
| 61780 | 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. |
| 617a0 | 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 |
| 617c0 | 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 |
| 617e0 | 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 |
| 61800 | 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 |
| 61820 | 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- |
| 61840 | 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). |
| 61860 | 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 |
| 61880 | 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. |
| 618a0 | 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.(( |
| 618c0 | 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).......... |
| 618e0 | 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 |
| 61900 | 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.( |
| 61920 | 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. |
| 61940 | 20 20 20 20 20 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 |
| 61960 | 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)).... |
| 61980 | 20 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 |
| 619a0 | 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....... |
| 619c0 | 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).' |
| 619e0 | 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)))))... |
| 61a00 | 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 |
| 61a20 | 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))))... |
| 61a40 | 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 |
| 61a60 | 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 |
| 61a80 | 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 |
| 61aa0 | 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- |
| 61ac0 | 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................ |
| 61ae0 | 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 |
| 61b00 | 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 |
| 61b20 | 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 |
| 61b40 | 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.... |
| 61b60 | 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 |
| 61b80 | 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:."................. |
| 61ba0 | 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 |
| 61bc0 | 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)) |
| 61be0 | 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....... |
| 61c00 | 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 |
| 61c20 | 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 |
| 61c40 | 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)....... |
| 61c60 | 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 |
| 61c80 | 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 |
| 61ca0 | 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 |
| 61cc0 | 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 |
| 61ce0 | 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 |
| 61d00 | 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 |
| 61d20 | 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 |
| 61d40 | 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 |
| 61d60 | 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 |
| 61d80 | 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 |
| 61da0 | 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 |
| 61dc0 | 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 |
| 61de0 | 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 |
| 61e00 | 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 |
| 61e20 | 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 |
| 61e40 | 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 |
| 61e60 | 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 |
| 61e80 | 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 |
| 61ea0 | 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- |
| 61ec0 | 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 |
| 61ee0 | 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 |
| 61f00 | 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 |
| 61f20 | 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 |
| 61f40 | 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. |
| 61f60 | 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. |
| 61f80 | 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 |
| 61fa0 | 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 |
| 61fc0 | 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- |
| 61fe0 | 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)..;;. |
| 62000 | 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 |
| 62020 | 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.()... |
| 62040 | 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 |
| 62060 | 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 |
| 62080 | 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- |
| 620a0 | 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 |
| 620c0 | 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))............. |
| 620e0 | 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 |
| 62100 | 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))....... |
| 62120 | 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 |
| 62140 | 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 |
| 62160 | 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)....................... |
| 62180 | 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)))..... |
| 621a0 | 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.............. |
| 621c0 | 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....... |
| 621e0 | 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 |
| 62200 | 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 |
| 62220 | 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- |
| 62240 | 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 |
| 62260 | 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))).......................... |
| 62280 | 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)....... |
| 622a0 | 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 |
| 622c0 | 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). |
| 622e0 | 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..... |
| 62300 | 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 |
| 62320 | 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 |
| 62340 | 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.( |
| 62360 | 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 |
| 62380 | 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 |
| 623a0 | 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 |
| 623c0 | 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.# |
| 623e0 | 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 |
| 62400 | 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-- |
| 62420 | 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 |
| 62440 | 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 |
| 62460 | 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 |
| 62480 | 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 |
| 624a0 | 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."... |
| 624c0 | 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 |
| 624e0 | 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 |
| 62500 | 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 |
| 62520 | 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.. |
| 62540 | 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 |
| 62560 | 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 |
| 62580 | 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 |
| 625a0 | 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)......... |
| 625c0 | 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.......... |
| 625e0 | 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 |
| 62600 | 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 |
| 62620 | 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)...................... |
| 62640 | 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..................... |
| 62660 | 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)............... |
| 62680 | 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.""........ |
| 626a0 | 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 |
| 626c0 | 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.: |
| 626e0 | 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))................... |
| 62700 | 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 |
| 62720 | 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 |
| 62740 | 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)............................. |
| 62760 | 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 |
| 62780 | 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))))........................... |
| 627a0 | 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 |
| 627c0 | 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-- |
| 627e0 | 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))) |
| 62800 | 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)))......... |
| 62820 | 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 |
| 62840 | 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) |
| 62860 | 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 |
| 62880 | 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 |
| 628a0 | 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 |
| 628c0 | 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 |
| 628e0 | 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) |
| 62900 | 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 |
| 62920 | 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 |
| 62940 | 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 |
| 62960 | 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 |
| 62980 | 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 |
| 629a0 | 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 |
| 629c0 | 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 |
| 629e0 | 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-- |
| 62a00 | 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 |
| 62a20 | 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.". |
| 62a40 | 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 |
| 62a60 | 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 |
| 62a80 | 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).............. |
| 62aa0 | 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................. |
| 62ac0 | 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 |
| 62ae0 | 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 |
| 62b00 | 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 |
| 62b20 | 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 |
| 62b40 | 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 |
| 62b60 | 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)).....( |
| 62b80 | 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 |
| 62ba0 | 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 |
| 62bc0 | 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 |
| 62be0 | 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, |
| 62c00 | 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 |
| 62c20 | 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- |
| 62c40 | 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 |
| 62c60 | 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 |
| 62c80 | 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 |
| 62ca0 | 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. |
| 62cc0 | 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 |
| 62ce0 | 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 |
| 62d00 | 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,. |
| 62d20 | 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 |
| 62d40 | 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 |
| 62d60 | 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.". |
| 62d80 | 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.(( |
| 62da0 | 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 |
| 62dc0 | 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- |
| 62de0 | 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 |
| 62e00 | 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 |
| 62e20 | 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 |
| 62e40 | 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))).... |
| 62e60 | 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 |
| 62e80 | 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 |
| 62ea0 | 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. |
| 62ec0 | 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 |
| 62ee0 | 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 |
| 62f00 | 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). |
| 62f20 | 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 |
| 62f40 | 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 |
| 62f60 | 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............... |
| 62f80 | 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. |
| 62fa0 | 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."............... |
| 62fc0 | 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 |
| 62fe0 | 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).......... |
| 63000 | 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.". |
| 63020 | 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 |
| 63040 | 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 |
| 63060 | 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. |
| 63080 | 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....... |
| 630a0 | 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 |
| 630c0 | 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 |
| 630e0 | 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 |
| 63100 | 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"... |
| 63120 | 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 |
| 63140 | 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 |
| 63160 | 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 |
| 63180 | 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. |
| 631a0 | 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")...... |
| 631c0 | 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......... |
| 631e0 | 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 |
| 63200 | 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 |
| 63220 | 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.' |
| 63240 | 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- |
| 63260 | 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))....... |
| 63280 | 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 |
| 632a0 | 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 |
| 632c0 | 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 |
| 632e0 | 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 |
| 63300 | 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 |
| 63320 | 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.' |
| 63340 | 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. |
| 63360 | 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))).......( |
| 63380 | 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). |
| 633a0 | 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 |
| 633c0 | 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)......... |
| 633e0 | 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.. |
| 63400 | 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).............. |
| 63420 | 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 |
| 63440 | 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 |
| 63460 | 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 |
| 63480 | 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. |
| 634a0 | 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 |
| 634c0 | 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). |
| 634e0 | 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).... |
| 63500 | 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 |
| 63520 | 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 |
| 63540 | 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..................... |
| 63560 | 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 |
| 63580 | 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..................... |
| 635a0 | 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 |
| 635c0 | 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)................. |
| 635e0 | 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 |
| 63600 | 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))))........ |
| 63620 | 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 |
| 63640 | 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) |
| 63660 | 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 |
| 63680 | 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)) |
| 636a0 | 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..... |
| 636c0 | 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...... |
| 636e0 | 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............. |
| 63700 | 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.() |
| 63720 | 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 |
| 63740 | 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."............. |
| 63760 | 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 |
| 63780 | 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............. |
| 637a0 | 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 |
| 637c0 | 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))) |
| 637e0 | 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- |
| 63800 | 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................. |
| 63820 | 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.... |
| 63840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 63860 | 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).; |
| 63880 | 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.......... |
| 638a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 638c0 | 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 |
| 638e0 | 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))......... |
| 63900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 63920 | 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).............. |
| 63940 | 20 20 20 20 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 |
| 63960 | 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)))........ |
| 63980 | 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)).. |
| 639a0 | 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 |
| 639c0 | 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)))))) |
| 639e0 | 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 |
| 63a00 | 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 |
| 63a20 | 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 |
| 63a40 | 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 |
| 63a60 | 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 |
| 63a80 | 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 |
| 63aa0 | 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 |
| 63ac0 | 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 |
| 63ae0 | 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 |
| 63b00 | 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 |
| 63b20 | 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 |
| 63b40 | 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 |
| 63b60 | 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)... |
| 63b80 | 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)).. |
| 63ba0 | 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 |
| 63bc0 | 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..;;. |
| 63be0 | 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 |
| 63c00 | 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 |
| 63c20 | 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:.......... |
| 63c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63e00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 2e | gptel-0.9.8/gptel-openai-extras. |
| 63e20 | 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 00 | el.............................. |
| 63e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63e60 | 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 |
| 63e80 | 30 30 33 34 36 33 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 32 33 00 20 30 00 00 00 | 0034631.00000000000.015523..0... |
| 63ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63f00 | 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................... |
| 63f20 | 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................... |
| 63f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 63fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64000 | 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 |
| 64020 | 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.-*-. |
| 64040 | 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 |
| 64060 | 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 | right.(C).2023..Karthik.Chikmaga |
| 64080 | 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 69 6b 6d 61 67 | lur..;;.Authors:.Karthik.Chikmag |
| 640a0 | 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 61 69 6c 2e 63 | alur.<karthikchikmagalur@gmail.c |
| 640c0 | 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 6f 67 72 61 6d | om>.and.pirminj..;;.This.program |
| 640e0 | 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 72 65 64 69 73 | .is.free.software;.you.can.redis |
| 64100 | 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 20 69 74 20 75 | tribute.it.and/or.modify.;;.it.u |
| 64120 | 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 65 6e 65 72 61 | nder.the.terms.of.the.GNU.Genera |
| 64140 | 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 65 64 20 62 79 | l.Public.License.as.published.by |
| 64160 | 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 61 74 69 6f 6e | .;;.the.Free.Software.Foundation |
| 64180 | 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 69 63 65 6e 73 | ,.either.version.3.of.the.Licens |
| 641a0 | 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 6e 79 20 6c 61 | e,.or.;;.(at.your.option).any.la |
| 641c0 | 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 61 6d 20 69 73 | ter.version...;;.This.program.is |
| 641e0 | 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 61 74 20 69 74 | .distributed.in.the.hope.that.it |
| 64200 | 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 48 4f 55 54 20 | .will.be.useful,.;;.but.WITHOUT. |
| 64220 | 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 74 68 65 20 69 | ANY.WARRANTY;.without.even.the.i |
| 64240 | 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 41 4e 54 41 42 | mplied.warranty.of.;;.MERCHANTAB |
| 64260 | 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 49 43 55 4c 41 | ILITY.or.FITNESS.FOR.A.PARTICULA |
| 64280 | 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 47 65 6e 65 72 | R.PURPOSE...See.the.;;.GNU.Gener |
| 642a0 | 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 64 65 74 61 69 | al.Public.License.for.more.detai |
| 642c0 | 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 65 69 76 65 64 | ls...;;.You.should.have.received |
| 642e0 | 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 50 75 62 6c 69 | .a.copy.of.the.GNU.General.Publi |
| 64300 | 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 73 20 70 72 6f | c.License.;;.along.with.this.pro |
| 64320 | 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 2f 77 77 77 2e | gram...If.not,.see.<https://www. |
| 64340 | 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 6d 6d 65 6e 74 | gnu.org/licenses/>...;;;.Comment |
| 64360 | 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 70 6f 72 74 20 | ary:..;;.This.file.adds.support. |
| 64380 | 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 50 49 20 61 6e | for.Privategpt's.Messages.API.an |
| 643a0 | 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 20 66 65 61 74 | d.;;.Perplexity's.Citations.feat |
| 643c0 | 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 71 75 69 72 65 | ure.to.gptel..;;;.Code:.(require |
| 643e0 | 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 65 | .'cl-generic).(eval-when-compile |
| 64400 | 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 27 | ...(require.'cl-lib)).(require.' |
| 64420 | 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 76 61 72 20 6a | map).(require.'gptel)..(defvar.j |
| 64440 | 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 66 75 6e 63 74 | son-object-type)..(declare-funct |
| 64460 | 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 70 65 | ion.prop-match-value."text-prope |
| 64480 | 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 74 | rty-search").(declare-function.t |
| 644a0 | 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 74 65 | ext-property-search-backward."te |
| 644c0 | 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 66 75 | xt-property-search").(declare-fu |
| 644e0 | 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 0a 0a 0a 3b | nction.json-read."json".())....; |
| 64500 | 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 29 0a 28 63 6c | ;;.Privategpt.(Messages.API).(cl |
| 64520 | 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 74 20 28 3a 63 | -defstruct.(gptel-privategpt.(:c |
| 64540 | 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 61 74 65 67 70 | onstructor.gptel--make-privategp |
| 64560 | 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 20 | t).............................. |
| 64580 | 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 20 20 20 | ..(:copier.nil)................. |
| 645a0 | 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 65 6c 2d 6f | ...............(:include.gptel-o |
| 645c0 | 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 0a 28 64 65 66 | penai))...context.sources)..(def |
| 645e0 | 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 73 6f 75 72 63 | un.gptel--privategpt-parse-sourc |
| 64600 | 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 74 68 20 73 6f | es.(response)...(cl-loop.with.so |
| 64620 | 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 6f 75 72 63 65 | urce-alist............for.source |
| 64640 | 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 70 6f 6e 73 65 | .across.(map-nested-elt.response |
| 64660 | 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 20 20 20 20 20 | .'(:choices.0.:sources))........ |
| 64680 | 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 65 6c 74 20 73 | ....for.name.=.(map-nested-elt.s |
| 646a0 | 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 64 61 74 61 20 | ource.'(:document.:doc_metadata. |
| 646c0 | 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 20 70 61 67 65 | :file_name))............for.page |
| 646e0 | 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 28 3a 64 6f 63 | .=.(map-nested-elt.source.'(:doc |
| 64700 | 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 61 62 65 6c 29 | ument.:doc_metadata.:page_label) |
| 64720 | 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 28 61 6c 69 73 | )............do.(push.page.(alis |
| 64740 | 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 20 6e 69 6c 20 | t-get.name.source-alist.nil.nil. |
| 64760 | 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 79 20 72 65 74 | #'equal))............finally.ret |
| 64780 | 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 20 28 66 69 6c | urn............(cl-loop.for.(fil |
| 647a0 | 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 72 63 65 2d 61 | e-name...file-pages).in.source-a |
| 647c0 | 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 72 20 70 61 67 | list.....................for.pag |
| 647e0 | 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 20 66 69 6c 65 | es.=.(delete-dups.(delq.nil.file |
| 64800 | 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 20 20 69 66 20 | -pages)).....................if. |
| 64820 | 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 6f 6c 6c 65 63 | pages.....................collec |
| 64840 | 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 66 69 6c 65 2d | t.(format."-.%s.(page.%s)".file- |
| 64860 | 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 70 61 67 65 73 | name.(mapconcat.#'identity.pages |
| 64880 | 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 20 69 6e 74 6f | .",.")).....................into |
| 648a0 | 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 20 20 20 20 20 | .source-items................... |
| 648c0 | 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 73 22 20 66 69 | ..else.collect.(format."-.%s".fi |
| 648e0 | 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 20 20 20 20 20 | le-name).into.source-items...... |
| 64900 | 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 28 6d | ...............finally.return.(m |
| 64920 | 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 5c 6e 5c 6e 53 | apconcat.#'identity.(cons."\n\nS |
| 64940 | 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 29 29 29 29 0a | ources:".source-items)."\n")))). |
| 64960 | 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 65 0a 28 63 6c | .;;.FIXME(tool).add.tool.use.(cl |
| 64980 | 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 73 74 72 | -defmethod.gptel-curl--parse-str |
| 649a0 | 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 65 67 70 74 29 | eam.((_backend.gptel-privategpt) |
| 649c0 | 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 72 73 29 29 0a | .info)...(let*.((content-strs)). |
| 649e0 | 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 20 20 20 | ....(condition-case.nil......... |
| 64a00 | 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 5e 64 61 74 61 | (while.(re-search-forward."^data |
| 64a20 | 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 61 74 63 68 2d | :".nil.t)...........(save-match- |
| 64a40 | 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 6e 67 2d 61 74 | data.............(if.(looking-at |
| 64a60 | 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 20 | .".*\\[DONE\\]")................ |
| 64a80 | 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 67 20 28 70 6c | .(when-let*.((sources-string.(pl |
| 64aa0 | 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 20 20 20 20 20 | ist-get.info.:sources)))........ |
| 64ac0 | 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 72 69 6e 67 20 | ...........(push.sources-string. |
| 64ae0 | 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 20 20 28 6c 65 | content-strs))...............(le |
| 64b00 | 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 65 61 64 29 29 | t.((response.(gptel--json-read)) |
| 64b20 | 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 69 6e 66 6f 20 | )...(unless.(or.(plist-get.info. |
| 64b40 | 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 20 20 20 20 20 | :sources)....................... |
| 64b60 | 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 74 2d 73 6f 75 | ......(not.(gptel-privategpt-sou |
| 64b80 | 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 6e 64 29 29 29 | rces.(plist-get.info.:backend))) |
| 64ba0 | 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 20 69 | )...................(plist-put.i |
| 64bc0 | 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 65 67 70 74 2d | nfo.:sources.(gptel--privategpt- |
| 64be0 | 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 09 28 6c 65 74 | parse-sources.response)))...(let |
| 64c00 | 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 65 73 70 6f 6e | *.((delta.(map-nested-elt.respon |
| 64c20 | 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 09 20 20 20 20 | se.'(:choices.0.:delta)))....... |
| 64c40 | 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 61 20 3a 63 6f | ...(content.(plist-get.delta.:co |
| 64c60 | 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 63 6f 6e 74 65 | ntent))).....(push.content.conte |
| 64c80 | 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 20 20 20 20 20 | nt-strs)))))).......(error...... |
| 64ca0 | 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 67 20 30 29 | ..(goto-char.(match-beginning.0) |
| 64cc0 | 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 76 65 72 73 | ))).....(apply.#'concat.(nrevers |
| 64ce0 | 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 45 28 74 6f 6f | e.content-strs))))..;;.FIXME(too |
| 64d00 | 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 6f 64 20 67 70 | l).add.tool.use.(cl-defmethod.gp |
| 64d20 | 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 |
| 64d40 | 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 6e 66 6f 29 0a | ptel-privategpt).response.info). |
| 64d60 | 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 70 2d 6e 65 | ..(let.((response-string.(map-ne |
| 64d80 | 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 20 30 20 3a | sted-elt.response.'(:choices.0.: |
| 64da0 | 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 28 73 6f 75 | message.:content))).........(sou |
| 64dc0 | 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 76 61 74 65 67 | rces-string.(and.(gptel-privateg |
| 64de0 | 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 3a 62 61 63 6b | pt-sources.(plist-get.info.:back |
| 64e00 | 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 20 20 20 20 20 | end))........................... |
| 64e20 | 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 2d 73 6f 75 72 | ...(gptel--privategpt-parse-sour |
| 64e40 | 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 74 20 72 65 73 | ces.response)))).....(concat.res |
| 64e60 | 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 29 29 29 0a 0a | ponse-string.sources-string))).. |
| 64e80 | 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 61 74 | (cl-defmethod.gptel--request-dat |
| 64ea0 | 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 70 74 29 20 70 | a.((_backend.gptel-privategpt).p |
| 64ec0 | 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 53 20 66 | rompts)..."JSON.encode.PROMPTS.f |
| 64ee0 | 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 6c 65 74 20 28 | or.sending.to.ChatGPT."...(let.( |
| 64f00 | 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 6d 6f 64 65 6c | (prompts-plist..........`(:model |
| 64f20 | 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 6d 6f 64 65 6c | .,(gptel--model-name.gptel-model |
| 64f40 | 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 0a 09 20 20 20 | ).....:messages.[,@prompts]..... |
| 64f60 | 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 69 76 61 74 65 | :use_context.,(or.(gptel-private |
| 64f80 | 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 3a 6a 73 6f 6e | gpt-context.gptel-backend).:json |
| 64fa0 | 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 73 20 2c 28 6f | -false).....:include_sources.,(o |
| 64fc0 | 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 20 67 70 74 65 | r.(gptel-privategpt-sources.gpte |
| 64fe0 | 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 20 20 20 20 20 | l-backend).:json-false)......... |
| 65000 | 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 20 3a 6a 73 | ...:stream.,(or.gptel-stream.:js |
| 65020 | 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 20 67 70 74 65 | on-false)))).....(when.(and.gpte |
| 65040 | 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............... |
| 65060 | 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 2d 70 20 27 6e | .(not.(gptel--model-capable-p.'n |
| 65080 | 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 20 70 72 6f 6d | osystem))).......(plist-put.prom |
| 650a0 | 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 74 65 6d 2d | pts-plist.:system.gptel--system- |
| 650c0 | 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 65 6d 70 65 72 | message)).....(when.gptel-temper |
| 650e0 | 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 70 74 73 2d 70 | ature.......(plist-put.prompts-p |
| 65100 | 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 70 65 72 61 74 | list.:temperature.gptel-temperat |
| 65120 | 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 6f 6b 65 6e 73 | ure)).....(when.gptel-max-tokens |
| 65140 | 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 69 73 74 20 | .......(plist-put.prompts-plist. |
| 65160 | 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 73 29 29 0a 20 | :max_tokens.gptel-max-tokens)).. |
| 65180 | 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 77 69 74 68 20 | ...;;.Merge.request.params.with. |
| 651a0 | 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 20 20 20 28 67 | model.and.backend.params......(g |
| 651c0 | 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 6d 70 74 73 2d | ptel--merge-plists......prompts- |
| 651e0 | 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 65 71 75 65 73 | plist......(gptel-backend-reques |
| 65200 | 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 20 20 28 67 70 | t-params.gptel-backend)......(gp |
| 65220 | 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 67 70 74 65 6c | tel--model-request-params..gptel |
| 65240 | 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 0a 28 63 6c 2d | -model))))...;;;###autoload.(cl- |
| 65260 | 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 0a 20 20 20 20 | defun.gptel-make-privategpt..... |
| 65280 | 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. |
| 652a0 | 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 |
| 652c0 | 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 65 74 | ............(lambda.().(when-let |
| 652e0 | 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 0a 09 | *.((key.(gptel--get-api-key))).. |
| 65300 | 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 63 6f 6e 63 61 | ....`(("Authorization"...,(conca |
| 65320 | 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 20 20 20 20 20 | t."Bearer.".key))))))........... |
| 65340 | 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 20 20 20 20 20 | (host."localhost:8001")......... |
| 65360 | 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 65 6c 73 20 27 | ..(protocol."http")....(models.' |
| 65380 | 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 6e 64 70 6f 69 | (private-gpt))...........(endpoi |
| 653a0 | 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 20 20 20 20 20 | nt."/v1/chat/completions")...... |
| 653c0 | 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 29 29 0a 20 20 | .....(context.t).(sources.t))... |
| 653e0 | 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 2d 63 6f 6d 70 | "Register.an.Privategpt.API-comp |
| 65400 | 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 74 68 20 4e 41 | atible.backend.for.gptel.with.NA |
| 65420 | 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 |
| 65440 | 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 |
| 65460 | 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 28 6f 70 74 | ional.Curl.arguments...HOST.(opt |
| 65480 | 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 70 69 2e 70 72 | ional).is.the.API.host,.\"api.pr |
| 654a0 | 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 0a 4d 4f 44 45 | ivategpt.com\".by.default...MODE |
| 654c0 | 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 64 65 6c 20 | LS.is.a.list.of.available.model. |
| 654e0 | 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 20 74 6f 20 74 | names...STREAM.is.a.boolean.to.t |
| 65500 | 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 64 65 66 61 75 | oggle.streaming.responses,.defau |
| 65520 | 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 74 69 6f 6e 61 | lts.to.false...PROTOCOL.(optiona |
| 65540 | 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 |
| 65560 | 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 |
| 65580 | 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 |
| 655a0 | 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 73 73 61 67 65 | tions,.defaults.to.\"/v1/message |
| 655c0 | 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 66 6f 72 20 61 | s\"...HEADER.(optional).is.for.a |
| 655e0 | 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 20 65 | dditional.headers.to.send.with.e |
| 65600 | 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 20 61 6c 69 | ach.request..It.should.be.an.ali |
| 65620 | 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 61 6e 0a | st.or.a.function.that.retuns.an. |
| 65640 | 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 70 65 5c 22 20 | alist,.like:.((\"Content-Type\". |
| 65660 | 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 59 20 69 73 | ..\"application/json\"))..KEY.is |
| 65680 | 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 74 68 65 20 41 | .a.variable.whose.value.is.the.A |
| 656a0 | 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 74 75 72 6e 73 | PI.key,.or.function.that.returns |
| 656c0 | 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 43 45 53 3a 20 | .the.key...CONTEXT.and.SOURCES:. |
| 656e0 | 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 61 76 61 69 6c | if.true.(the.default),.use.avail |
| 65700 | 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 75 72 63 65 73 | able.context.and.provide.sources |
| 65720 | 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 61 74 65 20 74 | .used.by.the.model.to.generate.t |
| 65740 | 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 53 20 28 6f 70 | he.response...REQUEST-PARAMS.(op |
| 65760 | 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 6c | tional).is.a.plist.of.additional |
| 65780 | 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 69 | .HTTP.request.parameters.(as.pli |
| 657a0 | 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 79 | st.keys).and.values.supported.by |
| 657c0 | 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 61 | .the.API...Use.these.to.set.para |
| 657e0 | 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 69 | meters.that.gptel.does.not.provi |
| 65800 | 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 6c 61 72 65 | de.user.options.for."...(declare |
| 65820 | 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 67 | .(indent.1))...(let.((backend.(g |
| 65840 | 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 20 20 20 20 20 | ptel--make-privategpt........... |
| 65860 | 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.... |
| 65880 | 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....... |
| 658a0 | 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.......... |
| 658c0 | 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......... |
| 658e0 | 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 20 20 20 20 20 | ..........:key.key.............. |
| 65900 | 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 20 20 20 20 20 | .....:models.models............. |
| 65920 | 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 20 20 | ......:protocol.protocol........ |
| 65940 | 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 6e 74 0a 20 20 | ...........:endpoint.endpoint... |
| 65960 | 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 65 61 6d 0a 20 | ................:stream.stream.. |
| 65980 | 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 61 72 61 6d 73 | .................:request-params |
| 659a0 | 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 20 20 20 20 20 | .request-params................. |
| 659c0 | 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 20 20 20 20 20 | ..:url.(if.protocol............. |
| 659e0 | 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 6f 63 6f 6c 20 | ...............(concat.protocol. |
| 65a00 | 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 20 20 20 20 20 | "://".host.endpoint)............ |
| 65a20 | 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 65 6e 64 70 6f | ..............(concat.host.endpo |
| 65a40 | 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 6e 74 65 78 74 | int))...................:context |
| 65a60 | 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 3a 73 6f 75 72 | .context...................:sour |
| 65a80 | 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 61 63 6b 65 6e | ces.sources))).....(prog1.backen |
| 65aa0 | 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 6d 65 20 67 70 | d.......(setf.(alist-get.name.gp |
| 65ac0 | 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 20 20 20 20 20 | tel--known-backends............. |
| 65ae0 | 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 0a 20 20 20 20 | ...........nil.nil.#'equal)..... |
| 65b00 | 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 65 72 70 6c 65 | ........backend))))...;;;.Perple |
| 65b20 | 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 65 72 70 6c 65 | xity.(cl-defstruct.(gptel-perple |
| 65b40 | 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 61 6b 65 2d 70 | xity.(:constructor.gptel--make-p |
| 65b60 | 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 29 0a 09 09 09 | erplexity).....(:copier.nil).... |
| 65b80 | 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 0a 28 64 65 66 | .(:include.gptel-openai)))..(def |
| 65ba0 | 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 73 65 2d 63 69 | subst.gptel--perplexity-parse-ci |
| 65bc0 | 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 28 28 63 6f 75 | tations.(citations)...(let.((cou |
| 65be0 | 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 69 74 61 74 69 | nter.0)).....(concat."\n\nCitati |
| 65c00 | 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 63 61 74 20 28 | ons:\n".............(mapconcat.( |
| 65c20 | 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 20 20 20 20 20 | lambda.(url).................... |
| 65c40 | 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 6e 74 65 72 29 | ......(setq.counter.(1+.counter) |
| 65c60 | 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 66 6f 72 6d | )..........................(form |
| 65c80 | 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 20 20 20 20 20 | at."[%d].%s".counter.url))...... |
| 65ca0 | 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 20 22 5c 6e 22 | ..................citations."\n" |
| 65cc0 | 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 73 65 | ))))..(cl-defmethod.gptel--parse |
| 65ce0 | 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 70 65 72 70 6c | -response.((_backend.gptel-perpl |
| 65d00 | 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 61 72 73 65 20 | exity).response._info)..."Parse. |
| 65d20 | 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 45 2e 22 0a 20 | Perplexity.response.RESPONSE.".. |
| 65d40 | 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 70 2d 6e 65 73 | .(let.((response-string.(map-nes |
| 65d60 | 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 20 30 20 3a 6d | ted-elt.response.'(:choices.0.:m |
| 65d80 | 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 28 63 69 74 61 | essage.:content))).........(cita |
| 65da0 | 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 69 74 61 74 69 | tions-string.(when-let*.((citati |
| 65dc0 | 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 74 69 6f 6e 73 | ons.(map-elt.response.:citations |
| 65de0 | 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 74 79 2d 70 61 | )))........(gptel--perplexity-pa |
| 65e00 | 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 0a 20 20 20 20 | rse-citations.citations))))..... |
| 65e20 | 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 61 74 69 6f 6e | (concat.response-string.citation |
| 65e40 | 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 67 70 74 65 6c | s-string)))..(cl-defmethod.gptel |
| 65e60 | 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 65 6e 64 20 67 | -curl--parse-stream.((_backend.g |
| 65e80 | 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 61 72 73 65 20 | ptel-perplexity).info)..."Parse. |
| 65ea0 | 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 6d 20 77 69 74 | a.Perplexity.API.data.stream.wit |
| 65ec0 | 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 65 63 74 20 63 | h.INFO...If.available,.collect.c |
| 65ee0 | 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 6c 75 64 65 20 | itations.at.the.end.and.include. |
| 65f00 | 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 28 6c 65 74 20 | them.with.the.response."...(let. |
| 65f20 | 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 29 29 29 0a 20 | ((resp.(cl-call-next-method))).. |
| 65f40 | 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 63 69 74 61 | ...(unless.(plist-get.info.:cita |
| 65f60 | 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 6e 0a 20 20 20 | tions).......(save-excursion.... |
| 65f80 | 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 29 0a 20 20 20 | .....(goto-char.(point-max)).... |
| 65fa0 | 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 20 28 70 6c 69 | .....(when.(search-backward.(pli |
| 65fc0 | 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 20 20 20 20 20 | st-get.info.:token)............. |
| 65fe0 | 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 67 69 6e 6e 69 | ...................(line-beginni |
| 66000 | 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 66 6f 72 77 61 | ng-position).t)...........(forwa |
| 66020 | 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 28 72 65 2d 73 | rd-line.0)...........(when.(re-s |
| 66040 | 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 6c 20 74 29 0a | earch-backward."^data:.".nil.t). |
| 66060 | 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 63 68 2d 65 6e | ............(goto-char.(match-en |
| 66080 | 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 72 72 6f 72 73 | d.0)).............(ignore-errors |
| 660a0 | 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 28 63 68 75 6e | ...............(when-let*.((chun |
| 660c0 | 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 20 20 20 20 20 | k.(gptel--json-read))........... |
| 660e0 | 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 28 6d 61 70 2d | ................(citations.(map- |
| 66100 | 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 20 20 20 20 20 | elt.chunk.:citations)))......... |
| 66120 | 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 74 61 74 69 6f | ........(plist-put.info.:citatio |
| 66140 | 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 20 72 65 73 70 | ns.t).................(setq.resp |
| 66160 | 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 65 78 69 74 79 | .(concat.resp.(gptel--perplexity |
| 66180 | 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 20 20 20 20 20 | -parse-citations................ |
| 661a0 | 20 20 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 69 74 61 74 69 | ..........................citati |
| 661c0 | 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 3b 23 23 23 61 | ons))))))))).....resp))..;;;###a |
| 661e0 | 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 65 2d 70 65 72 | utoload.(cl-defun.gptel-make-per |
| 66200 | 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 2d 61 72 67 73 | plexity.....(name.&key.curl-args |
| 66220 | 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 65 72 20 0a 20 | .stream.key...........(header... |
| 66240 | 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*. |
| 66260 | 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))).... |
| 66280 | 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 |
| 662a0 | 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))))) |
| 662c0 | 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 65 78 69 74 | )...........(host."api.perplexit |
| 662e0 | 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 68 74 74 70 | y.ai")...........(protocol."http |
| 66300 | 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 73 2e 70 65 | s")...........;;.https://docs.pe |
| 66320 | 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 64 73 0a 20 | rplexity.ai/guides/model-cards.. |
| 66340 | 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 61 72 2d 70 | .........(models.'(sonar.sonar-p |
| 66360 | 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 73 6f 6e 69 | ro.sonar-reasoning.sonar-reasoni |
| 66380 | 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 0a 20 20 20 | ng-pro.sonar-deep-research)).... |
| 663a0 | 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 6c 65 74 69 | .......(endpoint."/chat/completi |
| 663c0 | 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 6d 73 29 0a | ons")...........request-params). |
| 663e0 | 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 6b 65 6e 64 | .."Register.a.Perplexity.backend |
| 66400 | 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 |
| 66420 | 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). |
| 66440 | 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 |
| 66460 | 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. |
| 66480 | 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 69 5c 22 20 | API.host,.\"api.perplexity.ai\". |
| 664a0 | 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 74 20 6f 66 | by.default...MODELS.is.a.list.of |
| 664c0 | 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 45 41 4d 20 | .available.model.names...STREAM. |
| 664e0 | 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 |
| 66500 | 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 6e 61 6c 29 | .responses...PROTOCOL.(optional) |
| 66520 | 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 |
| 66540 | 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). |
| 66560 | 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 |
| 66580 | 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 20 61 | ons...HEADER.(optional).is.for.a |
| 665a0 | 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 20 65 | dditional.headers.to.send.with.e |
| 665c0 | 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 20 61 6c 69 | ach.request..It.should.be.an.ali |
| 665e0 | 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 73 20 61 6e | st.or.a.function.that.returns.an |
| 66600 | 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 68 6f 73 65 | .alist...KEY.is.a.variable.whose |
| 66620 | 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 6e 63 74 69 | .value.is.the.API.key,.or.functi |
| 66640 | 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 51 55 45 53 | on.that.returns.the.key...REQUES |
| 66660 | 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 |
| 66680 | 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 |
| 666a0 | 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 29 0a 20 20 | ters."...(declare.(indent.1))... |
| 666c0 | 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 70 65 72 70 | (let.((backend.(gptel--make-perp |
| 666e0 | 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 72 6c 2d 61 | lexity...................:curl-a |
| 66700 | 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................... |
| 66720 | 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 20 3a 68 6f | :name.name...................:ho |
| 66740 | 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 65 61 64 65 | st.host...................:heade |
| 66760 | 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 6b 65 79 20 | r.header...................:key. |
| 66780 | 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 73 20 6d 6f | key...................:models.mo |
| 667a0 | 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 6f 63 6f 6c | dels...................:protocol |
| 667c0 | 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 3a 65 6e 64 | .protocol...................:end |
| 667e0 | 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 20 20 20 20 | point.endpoint.................. |
| 66800 | 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 20 20 20 20 | .:stream.stream................. |
| 66820 | 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 72 61 6d 73 | ..:request-params.request-params |
| 66840 | 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 70 72 6f 74 | ...................:url.(if.prot |
| 66860 | 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 20 20 20 20 | ocol............................ |
| 66880 | 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 65 6e 64 70 | (concat.protocol."://".host.endp |
| 668a0 | 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 20 20 20 28 | oint)..........................( |
| 668c0 | 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 20 20 28 70 | concat.host.endpoint))))).....(p |
| 668e0 | 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- |
| 66900 | 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.. |
| 66920 | 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.#' |
| 66940 | 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 29 29 0a 0a | equal).............backend)))).. |
| 66960 | 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 67 70 74 65 | ;;;.Deepseek.(cl-defstruct.(gpte |
| 66980 | 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 70 65 6e 61 | l-deepseek.(:include.gptel-opena |
| 669a0 | 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 20 20 20 20 | i).............................. |
| 669c0 | 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 20 20 20 20 | .(:copier.nil).................. |
| 669e0 | 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 70 74 65 6c | .............(:constructor.gptel |
| 66a00 | 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 65 74 68 6f | --make-deepseek)))..(cl-defmetho |
| 66a20 | 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 62 65 66 6f | d.gptel-curl--parse-stream.:befo |
| 66a40 | 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 29 20 69 6e | re.((_backend.gptel-deepseek).in |
| 66a60 | 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 63 6b 20 73 | fo)..."Capture.reasoning.block.s |
| 66a80 | 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 28 65 71 20 | tream.into.INFO."...(unless.(eq. |
| 66aa0 | 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 63 6b | (plist-get.info.:reasoning-block |
| 66ac0 | 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 0a 20 20 20 | ).'done).....(save-excursion.... |
| 66ae0 | 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 61 74 63 68 | ...(ignore-errors.........(catch |
| 66b00 | 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 73 65 61 72 | .'done...........(while.(re-sear |
| 66b20 | 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 20 20 20 20 | ch-forward."^data:".nil.t)...... |
| 66b40 | 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 20 22 20 2a | .......(unless.(looking-at-p.".* |
| 66b60 | 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 77 68 65 6e | \\[DONE\\]")...............(when |
| 66b80 | 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 6e 2d 72 65 | -let*.((response.(gptel--json-re |
| 66ba0 | 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 20 20 20 28 | ad))...........................( |
| 66bc0 | 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 73 65 20 27 | delta.(map-nested-elt.response.' |
| 66be0 | 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 20 20 20 20 | (:choices.0.:delta)))).......... |
| 66c00 | 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 28 70 6c 69 | .......(if-let*.((reasoning.(pli |
| 66c20 | 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 65 6e 74 29 | st-get.delta.:reasoning_content) |
| 66c40 | 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 28 6e 6f | )...........................((no |
| 66c60 | 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 20 20 20 20 | t.(eq.reasoning.:null))))....... |
| 66c80 | 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 77 69 6c 6c | ..............;;.:reasoning.will |
| 66ca0 | 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 71 75 65 73 | .be.consumed.by.the.gptel-reques |
| 66cc0 | 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 20 20 20 3b | t.callback.....................; |
| 66ce0 | 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 6c 74 65 72 | ;.and.reset.by.the.stream.filter |
| 66d00 | 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 2d 70 75 74 | ......................(plist-put |
| 66d20 | 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 20 20 20 20 | .info.:reasoning................ |
| 66d40 | 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 73 74 2d 67 | ................(concat.(plist-g |
| 66d60 | 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 67 29 29 0a | et.info.:reasoning).reasoning)). |
| 66d80 | 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 28 63 | ..................(when-let*.((c |
| 66da0 | 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 74 65 6e 74 | ontent.(plist-get.delta.:content |
| 66dc0 | 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 | )).............................. |
| 66de0 | 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 0a 20 20 20 | .((not.(eq.content.:null)))).... |
| 66e00 | 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 65 6d 62 | .................(if.(plist-memb |
| 66e20 | 65 72 20 64 65 6c 74 61 20 3a 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 29 20 3b 43 68 | er.delta.:reasoning_content).;Ch |
| 66e40 | 65 63 6b 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 | eck.for.reasoning.model......... |
| 66e60 | 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. |
| 66e80 | 3a 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 | :reasoning-block.t).;End.of.stre |
| 66ea0 | 61 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 | aming.reasoning.block........... |
| 66ec0 | 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 61 | ............(plist-put.info.:rea |
| 66ee0 | 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 29 20 3b 4e 6f 74 20 75 73 69 6e 67 20 | soning-block.'done)).;Not.using. |
| 66f00 | 61 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.reasoning.model............... |
| 66f20 | 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 64 6f 6e 65 20 74 29 29 29 29 29 29 29 29 29 29 29 0a | ......(throw.'done.t))))))))))). |
| 66f40 | 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 73 70 | .(cl-defmethod.gptel--parse-resp |
| 66f60 | 6f 6e 73 65 20 3a 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 | onse.:before.((_backend.gptel-de |
| 66f80 | 65 70 73 65 65 6b 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 43 61 70 74 75 72 | epseek).response.info)..."Captur |
| 66fa0 | 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 69 6e 20 52 45 53 50 4f 4e 53 45 20 69 6e | e.reasoning.block.in.RESPONSE.in |
| 66fc0 | 74 6f 20 49 4e 46 4f 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 30 20 28 6d 61 70 | to.INFO."...(let*.((choice0.(map |
| 66fe0 | 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 20 | -nested-elt.response.'(:choices. |
| 67000 | 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 70 6c 69 73 74 2d 67 65 | 0)))..........(message.(plist-ge |
| 67020 | 74 20 63 68 6f 69 63 65 30 20 3a 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 | t.choice0.:message))..........(r |
| 67040 | 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 72 65 61 | easoning.(plist-get.message.:rea |
| 67060 | 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 | soning_content))).....(when.(and |
| 67080 | 20 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 20 28 6c 65 6e 67 74 68 3e 20 72 65 | .(stringp.reasoning).(length>.re |
| 670a0 | 61 73 6f 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | asoning.0)).......(plist-put.inf |
| 670c0 | 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 29 0a 0a 28 63 6c 2d | o.:reasoning.reasoning))))..(cl- |
| 670e0 | 64 65 66 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 3a 61 | defmethod.gptel--parse-buffer.:a |
| 67100 | 72 6f 75 6e 64 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 29 | round.((_backend.gptel-deepseek) |
| 67120 | 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 4d 65 72 67 65 20 73 75 63 63 65 73 73 69 76 | .max-entries)..."Merge.successiv |
| 67140 | 65 20 70 72 6f 6d 70 74 73 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 20 74 68 | e.prompts.in.the.prompts.list.th |
| 67160 | 61 74 20 68 61 76 65 20 74 68 65 20 73 61 6d 65 20 72 6f 6c 65 2e 0a 0a 54 68 65 20 44 65 65 70 | at.have.the.same.role...The.Deep |
| 67180 | 73 65 65 6b 20 41 50 49 20 72 65 71 75 69 72 65 73 20 73 74 72 69 63 74 6c 79 20 61 6c 74 65 72 | seek.API.requires.strictly.alter |
| 671a0 | 6e 61 74 69 6e 67 20 72 6f 6c 65 73 20 28 75 73 65 72 2f 61 73 73 69 73 74 61 6e 74 29 20 69 6e | nating.roles.(user/assistant).in |
| 671c0 | 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 73 20 28 63 | .messages."...(let*.((prompts.(c |
| 671e0 | 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d 65 74 68 6f 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 | l-call-next-method))..........(i |
| 67200 | 6e 64 65 78 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 70 72 6f 6d 70 74 | ndex.prompts)).....(prog1.prompt |
| 67220 | 73 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 69 6e 64 65 78 0a 20 20 20 20 20 20 20 20 28 6c 65 | s.......(while.index.........(le |
| 67240 | 74 20 28 28 70 31 20 28 63 61 72 20 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t.((p1.(car.index))............. |
| 67260 | 20 20 28 70 32 20 28 63 61 64 72 20 69 6e 64 65 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..(p2.(cadr.index))............. |
| 67280 | 20 20 28 72 65 73 74 20 28 63 64 72 20 69 6e 64 65 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(rest.(cdr.index)))........... |
| 672a0 | 28 77 68 65 6e 20 28 61 6e 64 20 70 32 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 | (when.(and.p2.(equal.(plist-get. |
| 672c0 | 70 31 20 3a 72 6f 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 | p1.:role)....................... |
| 672e0 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 32 20 3a 72 6f 6c 65 29 29 29 0a | .........(plist-get.p2.:role))). |
| 67300 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 31 20 | ............(setf.(plist-get.p1. |
| 67320 | 3a 63 6f 6e 74 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | :content)...................(con |
| 67340 | 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 70 31 20 3a 63 6f 6e 74 65 6e 74 29 20 22 5c 6e 22 | cat.(plist-get.p1.:content)."\n" |
| 67360 | 0a 20 20 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 |
| 67380 | 74 2d 67 65 74 20 70 32 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t-get.p2.:content)))............ |
| 673a0 | 20 28 73 65 74 63 64 72 20 69 6e 64 65 78 20 28 63 64 72 20 72 65 73 74 29 29 29 0a 20 20 20 20 | .(setcdr.index.(cdr.rest)))..... |
| 673c0 | 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 64 65 78 20 28 63 64 72 20 69 6e 64 65 78 29 29 29 29 | ......(setq.index.(cdr.index)))) |
| 673e0 | 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 20 67 70 | )))..;;;###autoload.(cl-defun.gp |
| 67400 | 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 | tel-make-deepseek.....(name.&key |
| 67420 | 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 73 74 2d 70 61 | .curl-args.stream.key.request-pa |
| 67440 | 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 62 64 61 20 28 | rams...........(header.(lambda.( |
| 67460 | 29 20 28 77 68 65 6e 2d 6c 65 74 20 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 |
| 67480 | 2d 6b 65 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 | -key)).......................... |
| 674a0 | 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 | .`(("Authorization"...,(concat." |
| 674c0 | 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f | Bearer.".key))))))...........(ho |
| 674e0 | 73 74 20 22 61 70 69 2e 64 65 65 70 73 65 65 6b 2e 63 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 20 | st."api.deepseek.com").......... |
| 67500 | 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 |
| 67520 | 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"). |
| 67540 | 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 28 64 65 65 70 73 65 65 6b 2d 72 65 | ..........(models.'((deepseek-re |
| 67560 | 61 73 6f 6e 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 63 61 70 | asoner......................:cap |
| 67580 | 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 | abilities.(tool.reasoning)...... |
| 675a0 | 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 77 69 6e 64 6f 77 20 | ................:context-window. |
| 675c0 | 36 34 0a 20 20 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 | 64......................:input-c |
| 675e0 | 6f 73 74 20 30 2e 35 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f | ost.0.55......................:o |
| 67600 | 75 74 70 75 74 2d 63 6f 73 74 20 32 2e 31 39 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | utput-cost.2.19)................ |
| 67620 | 20 20 20 20 20 28 64 65 65 70 73 65 65 6b 2d 63 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....(deepseek-chat............. |
| 67640 | 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 29 0a 20 20 | .........:capabilities.(tool)... |
| 67660 | 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 77 69 6e 64 | ...................:context-wind |
| 67680 | 6f 77 20 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 | ow.64......................:inpu |
| 676a0 | 74 2d 63 6f 73 74 20 30 2e 32 37 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-cost.0.27..................... |
| 676c0 | 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 31 30 29 29 29 29 0a 20 20 22 52 65 67 69 73 74 | .:output-cost.1.10))))..."Regist |
| 676e0 | 65 72 20 61 20 44 65 65 70 53 65 65 6b 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 | er.a.DeepSeek.backend.for.gptel. |
| 67700 | 77 69 74 68 20 4e 41 4d 45 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 | with.NAME."...(declare.(indent.1 |
| 67720 | 29 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 | ))...(let.((backend.(gptel--make |
| 67740 | 2d 64 65 65 70 73 65 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | -deepseek...................:nam |
| 67760 | 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 |
| 67780 | 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 |
| 677a0 | 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. |
| 677c0 | 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 |
| 677e0 | 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)........ |
| 67800 | 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... |
| 67820 | 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 |
| 67840 | 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 |
| 67860 | 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 |
| 67880 | 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............ |
| 678a0 | 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 20 | .......:curl-args.curl-args..... |
| 678c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f | ..............:url.(concat.proto |
| 678e0 | 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 | col."://".host.endpoint))))..... |
| 67900 | 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 6f | (setf.(alist-get.name.gptel--kno |
| 67920 | 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 20 62 61 63 | wn-backends.nil.nil.#'equal).bac |
| 67940 | 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 | kend).....backend))..(provide.'g |
| 67960 | 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 70 | ptel-openai-extras).;;;.gptel-op |
| 67980 | 65 6e 61 69 2d 65 78 74 72 61 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 | enai-extras.el.ends.here........ |
| 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 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 00 00 00 00 | gptel-0.9.8/gptel-context.el.... |
| 67a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67a60 | 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 |
| 67a80 | 30 30 36 33 33 37 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 33 33 00 20 30 00 00 00 | 0063371.00000000000.014433..0... |
| 67aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67b00 | 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................... |
| 67b20 | 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................... |
| 67b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 67bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 | 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 |
| 67c20 | 20 61 67 67 72 65 67 61 74 6f 72 20 66 6f 72 20 47 50 54 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 | .aggregator.for.GPTel..-*-.lexic |
| 67c40 | 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 |
| 67c60 | 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a | .(C).2023..Karthik.Chikmagalur.. |
| 67c80 | 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 63 74 40 64 61 | ;;.Author:.daedsidog.<contact@da |
| 67ca0 | 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 6f 6e 76 65 6e | edsidog.com>.;;.Keywords:.conven |
| 67cc0 | 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 65 6e 73 65 2d | ience,.buffers..;;.SPDX-License- |
| 67ce0 | 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 0a 3b 3b | Identifier:.GPL-3.0-or-later..;; |
| 67d00 | 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 3b 20 | .This.program.is.free.software;. |
| 67d20 | 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 |
| 67d40 | 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 20 74 | odify.;;.it.under.the.terms.of.t |
| 67d60 | 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 73 | he.GNU.General.Public.License.as |
| 67d80 | 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 77 61 | .published.by.;;.the.Free.Softwa |
| 67da0 | 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 33 20 | re.Foundation,.either.version.3. |
| 67dc0 | 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 20 6f | of.the.License,.or.;;.(at.your.o |
| 67de0 | 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 54 68 | ption).any.later.version...;;.Th |
| 67e00 | 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 68 65 | is.program.is.distributed.in.the |
| 67e20 | 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 3b 3b | .hope.that.it.will.be.useful,.;; |
| 67e40 | 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 68 6f | .but.WITHOUT.ANY.WARRANTY;.witho |
| 67e60 | 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 66 0a | ut.even.the.implied.warranty.of. |
| 67e80 | 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 46 4f | ;;.MERCHANTABILITY.or.FITNESS.FO |
| 67ea0 | 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 68 65 | R.A.PARTICULAR.PURPOSE...See.the |
| 67ec0 | 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 20 66 | .;;.GNU.General.Public.License.f |
| 67ee0 | 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 64 20 | or.more.details...;;.You.should. |
| 67f00 | 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 55 20 | have.received.a.copy.of.the.GNU. |
| 67f20 | 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 67 20 | General.Public.License.;;.along. |
| 67f40 | 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 65 20 | with.this.program...If.not,.see. |
| 67f60 | 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 3e 2e | <https://www.gnu.org/licenses/>. |
| 67f80 | 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 6f 6e 74 65 78 | ..;;;.Commentary:..;;.The.contex |
| 67fa0 | 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 79 20 63 72 65 | t.allows.you.to.conveniently.cre |
| 67fc0 | 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 65 64 0a 3b 3b | ate.contexts.which.can.be.fed.;; |
| 67fe0 | 20 74 6f 20 47 50 54 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 3b 20 2d 2a 2d 20 6c | .to.GPTel...;;;.Code:..;;;.-*-.l |
| 68000 | 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 69 72 65 20 27 | exical-binding:.t.-*-.(require.' |
| 68020 | 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 64 65 63 6c 61 | gptel).(require.'cl-lib)..(decla |
| 68040 | 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 65 6c 2d 74 72 | re-function.gptel-menu."gptel-tr |
| 68060 | 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 64 69 72 65 | ansient").(declare-function.dire |
| 68080 | 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 0a 28 64 65 63 | d-get-marked-files."dired").(dec |
| 680a0 | 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 6d 65 2d 72 65 | lare-function.image-file-name-re |
| 680c0 | 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 2d 66 75 6e 63 | gexp."image-file").(declare-func |
| 680e0 | 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 0a 28 64 65 66 | tion.create-image."image")..(def |
| 68100 | 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 74 2d 66 61 63 | face.gptel-context-highlight-fac |
| 68120 | 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 28 6d 69 6e 2d | e...'((((background.dark)..(min- |
| 68140 | 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 61 79 34 22 20 | colors.88)).:background."gray4". |
| 68160 | 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 64 20 6c 69 67 | :extend.t).....(((background.lig |
| 68180 | 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 72 6f 75 6e 64 | ht).(min-colors.88)).:background |
| 681a0 | 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 20 20 28 74 20 | ."alice.blue".:extend.t).....(t. |
| 681c0 | 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 65 20 75 73 65 | :inherit.mode-line))..."Face.use |
| 681e0 | 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 74 73 20 69 6e | d.to.highlight.gptel.contexts.in |
| 68200 | 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 0a 0a 28 64 65 | .buffers."...:group.'gptel)..(de |
| 68220 | 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 6e 2d 66 61 63 | fface.gptel-context-deletion-fac |
| 68240 | 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 63 6f 6c 6f 72 | e...'((((class.color).(min-color |
| 68260 | 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 20 20 20 20 20 | s.257).(background.light))...... |
| 68280 | 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 6e 64 20 74 29 | :background."#ffeeee".:extend.t) |
| 682a0 | 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 6f 72 73 | .....(((class.color).(min-colors |
| 682c0 | 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 20 20 20 3a 62 | .88).(background.light))......:b |
| 682e0 | 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 20 74 29 0a 20 | ackground."#ffdddd".:extend.t).. |
| 68300 | 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 6f 72 73 20 38 | ...(((class.color).(min-colors.8 |
| 68320 | 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 3a 62 61 63 6b | 8).(background.dark))......:back |
| 68340 | 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 0a 20 20 20 20 | ground."#553333".:extend.t)..... |
| 68360 | 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 64 20 22 72 65 | (((class.color)).:foreground."re |
| 68380 | 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 20 74 6f 20 68 | d".:extend.t))..."Face.used.to.h |
| 683a0 | 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 62 65 20 64 65 | ighlight.gptel.contexts.to.be.de |
| 683c0 | 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 65 6c 20 63 6f | leted...This.is.used.in.gptel.co |
| 683e0 | 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 70 74 65 6c 29 | ntext.buffers."...:group.'gptel) |
| 68400 | 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 72 61 70 2d | ..(defcustom.gptel-context-wrap- |
| 68420 | 66 75 6e 63 74 69 6f 6e 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 64 | function.#'gptel-context--wrap-d |
| 68440 | 65 66 61 75 6c 74 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 6f 72 6d 61 74 20 74 68 65 | efault..."Function.to.format.the |
| 68460 | 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 20 73 65 6e 74 20 77 69 74 68 20 74 68 65 20 67 70 | .context.string.sent.with.the.gp |
| 68480 | 74 65 6c 20 72 65 71 75 65 73 74 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 63 65 | tel.request...This.function.rece |
| 684a0 | 69 76 65 73 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 20 6d 65 73 73 61 67 65 20 74 | ives.two.argument,.the.message.t |
| 684c0 | 6f 20 77 72 61 70 20 77 69 74 68 20 74 68 65 0a 63 6f 6e 74 65 78 74 2c 20 61 6e 64 20 61 6e 20 | o.wrap.with.the.context,.and.an. |
| 684e0 | 61 6c 69 73 74 20 6f 66 20 63 6f 6e 74 65 78 74 73 20 6f 72 67 61 6e 69 7a 65 64 20 62 79 20 62 | alist.of.contexts.organized.by.b |
| 68500 | 75 66 66 65 72 2e 20 20 49 74 20 73 68 6f 75 6c 64 0a 72 65 74 75 72 6e 20 61 20 73 74 72 69 6e | uffer...It.should.return.a.strin |
| 68520 | 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6d 65 73 73 61 67 65 20 61 6e 64 20 74 68 65 | g.containing.the.message.and.the |
| 68540 | 20 63 6f 6e 74 65 78 74 2c 20 66 6f 72 6d 61 74 74 65 64 20 61 73 0a 6e 65 63 65 73 73 61 72 79 | .context,.formatted.as.necessary |
| 68560 | 2e 0a 0a 54 68 65 20 6d 65 73 73 61 67 65 20 69 73 20 65 69 74 68 65 72 20 74 68 65 20 73 79 73 | ...The.message.is.either.the.sys |
| 68580 | 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 72 6f | tem.message.or.the.last.user.pro |
| 685a0 | 6d 70 74 2c 0a 61 73 20 63 6f 6e 66 69 67 75 72 65 64 20 62 79 20 60 67 70 74 65 6c 2d 75 73 65 | mpt,.as.configured.by.`gptel-use |
| 685c0 | 2d 63 6f 6e 74 65 78 74 27 2e 0a 0a 54 68 65 20 61 6c 69 73 74 20 6f 66 20 63 6f 6e 74 65 78 74 | -context'...The.alist.of.context |
| 685e0 | 73 20 69 73 20 73 74 72 75 63 74 75 72 65 64 20 61 73 20 66 6f 6c 6c 6f 77 73 3a 0a 0a 20 28 28 | s.is.structured.as.follows:...(( |
| 68600 | 62 75 66 66 65 72 31 20 2e 20 28 6f 76 65 72 6c 61 79 31 20 6f 76 65 72 6c 61 79 32 29 0a 20 20 | buffer1...(overlay1.overlay2)... |
| 68620 | 28 5c 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 0a 20 20 28 62 75 66 66 65 72 32 20 2e 20 | (\"path/to/file\")...(buffer2... |
| 68640 | 28 6f 76 65 72 6c 61 79 33 20 6f 76 65 72 6c 61 79 34 20 6f 76 65 72 6c 61 79 35 29 29 0a 20 20 | (overlay3.overlay4.overlay5))... |
| 68660 | 28 5c 22 70 61 74 68 2f 74 6f 2f 69 6d 61 67 65 2f 66 69 6c 65 5c 22 20 3a 6d 69 6d 65 20 5c 22 | (\"path/to/image/file\".:mime.\" |
| 68680 | 69 6d 61 67 65 2f 6a 70 65 67 5c 22 29 29 29 0a 0a 45 61 63 68 20 67 70 74 65 6c 20 5c 22 63 6f | image/jpeg\")))..Each.gptel.\"co |
| 686a0 | 6e 74 65 78 74 5c 22 20 69 73 20 65 69 74 68 65 72 20 61 20 66 69 6c 65 20 70 61 74 68 20 6f 72 | ntext\".is.either.a.file.path.or |
| 686c0 | 20 61 6e 20 6f 76 65 72 6c 61 79 20 69 6e 20 61 0a 62 75 66 66 65 72 2e 20 20 45 61 63 68 20 6f | .an.overlay.in.a.buffer...Each.o |
| 686e0 | 76 65 72 6c 61 79 20 63 6f 76 65 72 73 20 61 20 62 75 66 66 65 72 20 72 65 67 69 6f 6e 20 63 6f | verlay.covers.a.buffer.region.co |
| 68700 | 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 2e 20 20 54 68 69 | ntaining.the.context.chunk...Thi |
| 68720 | 73 20 69 73 20 61 63 63 65 73 73 69 62 6c 65 20 61 73 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 3a | s.is.accessible.as,.for.example: |
| 68740 | 0a 0a 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 31 0a | ...(with-current-buffer.buffer1. |
| 68760 | 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6f 76 65 72 6c 61 79 2d 73 74 | ...(buffer-substring.(overlay-st |
| 68780 | 61 72 74 20 6f 76 65 72 6c 61 79 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | art.overlay1)................... |
| 687a0 | 20 20 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 20 20 6f 76 65 72 6c 61 79 31 29 29 29 22 0a 20 | ...(overlay-end...overlay1)))".. |
| 687c0 | 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e | .:group.'gptel...:type.'function |
| 687e0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 20 28 26 6f 70 | )..(defun.gptel-context-add.(&op |
| 68800 | 74 69 6f 6e 61 6c 20 61 72 67 20 63 6f 6e 66 69 72 6d 29 0a 20 20 22 41 64 64 20 63 6f 6e 74 65 | tional.arg.confirm)..."Add.conte |
| 68820 | 78 74 20 74 6f 20 67 70 74 65 6c 20 69 6e 20 61 20 44 57 49 4d 20 66 61 73 68 69 6f 6e 2e 0a 0a | xt.to.gptel.in.a.DWIM.fashion... |
| 68840 | 2d 20 49 66 20 61 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 64 64 20 74 | -.If.a.region.is.selected,.add.t |
| 68860 | 68 65 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 20 74 6f 20 74 68 65 0a 20 20 63 6f 6e 74 | he.selected.region.to.the...cont |
| 68880 | 65 78 74 2e 20 20 49 66 20 74 68 65 72 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 67 70 74 65 | ext...If.there.is.already.a.gpte |
| 688a0 | 6c 20 63 6f 6e 74 65 78 74 20 61 74 20 70 6f 69 6e 74 2c 20 72 65 6d 6f 76 65 20 69 74 0a 20 20 | l.context.at.point,.remove.it... |
| 688c0 | 69 6e 73 74 65 61 64 2e 0a 0a 2d 20 49 66 20 69 6e 20 44 69 72 65 64 2c 20 61 64 64 20 6d 61 72 | instead...-.If.in.Dired,.add.mar |
| 688e0 | 6b 65 64 20 66 69 6c 65 73 20 6f 72 20 66 69 6c 65 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 | ked.files.or.file.at.point.to.th |
| 68900 | 65 20 63 6f 6e 74 65 78 74 2e 20 49 66 0a 20 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e | e.context..If...the.selection.in |
| 68920 | 63 6c 75 64 65 73 20 64 69 72 65 63 74 6f 72 69 65 73 2c 20 61 64 64 20 61 6c 6c 20 74 68 65 69 | cludes.directories,.add.all.thei |
| 68940 | 72 20 66 69 6c 65 73 20 72 65 63 75 72 73 69 76 65 6c 79 2c 0a 20 20 70 72 6f 6d 70 74 69 6e 67 | r.files.recursively,...prompting |
| 68960 | 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 69 66 20 63 61 | .the.user.for.confirmation.if.ca |
| 68980 | 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 6f 72 0a 20 20 43 4f 4e 46 49 52 4d 20 | lled.interactively.or...CONFIRM. |
| 689a0 | 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 20 57 69 74 68 20 6e 65 67 61 74 69 76 65 20 70 72 65 66 69 78 | is.non-nil..With.negative.prefix |
| 689c0 | 20 41 52 47 2c 20 72 65 6d 6f 76 65 20 61 6c 6c 20 66 69 6c 65 73 20 66 72 6f 6d 0a 20 20 74 68 | .ARG,.remove.all.files.from...th |
| 689e0 | 65 20 63 6f 6e 74 65 78 74 20 69 6e 73 74 65 61 64 2e 0a 0a 2d 20 4f 74 68 65 72 77 69 73 65 20 | e.context.instead...-.Otherwise. |
| 68a00 | 61 64 64 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 63 6f | add.the.current.buffer.to.the.co |
| 68a20 | 6e 74 65 78 74 2e 20 20 57 69 74 68 20 70 6f 73 69 74 69 76 65 0a 20 20 70 72 65 66 69 78 20 41 | ntext...With.positive...prefix.A |
| 68a40 | 52 47 2c 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 62 75 66 66 65 72 20 6e 61 6d 65 20 61 6e 64 | RG,.prompt.for.a.buffer.name.and |
| 68a60 | 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 0a 0a 2d 20 57 69 74 68 20 | .add.it.to.the.context...-.With. |
| 68a80 | 6e 65 67 61 74 69 76 65 20 70 72 65 66 69 78 20 41 52 47 2c 20 72 65 6d 6f 76 65 20 61 6c 6c 20 | negative.prefix.ARG,.remove.all. |
| 68aa0 | 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a | gptel.contexts.from.the.current. |
| 68ac0 | 20 20 62 75 66 66 65 72 2c 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 20 66 6f 72 | ..buffer,.prompting.the.user.for |
| 68ae0 | 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 65 72 61 63 74 | .confirmation.if.called.interact |
| 68b00 | 69 76 65 6c 79 0a 20 20 6f 72 20 43 4f 4e 46 49 52 4d 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a | ively...or.CONFIRM.is.non-nil.". |
| 68b20 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 5c 6e 70 22 29 0a 20 20 28 63 6f 6e 64 0a 20 | ..(interactive."P\np")...(cond.. |
| 68b40 | 20 20 3b 3b 20 41 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2e 0a 20 20 20 28 28 | ..;;.A.region.is.selected.....(( |
| 68b60 | 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | use-region-p).....(gptel-context |
| 68b80 | 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 0a 20 20 | --add-region.(current-buffer)... |
| 68ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 68bc0 | 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (region-beginning).............. |
| 68be0 | 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 65 6e 64 | .....................(region-end |
| 68c00 | 29 29 0a 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a 20 20 20 20 28 6d 65 | )).....(deactivate-mark).....(me |
| 68c20 | 73 73 61 67 65 20 22 43 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 61 64 64 65 64 20 61 73 20 63 | ssage."Current.region.added.as.c |
| 68c40 | 6f 6e 74 65 78 74 2e 22 29 29 0a 20 20 20 3b 3b 20 49 66 20 69 6e 20 64 69 72 65 64 0a 20 20 20 | ontext."))....;;.If.in.dired.... |
| 68c60 | 28 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 64 69 72 65 64 2d 6d 6f 64 65 29 0a 20 20 | ((derived-mode-p.'dired-mode)... |
| 68c80 | 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 73 20 28 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b 65 | ..(let*.((files.(dired-get-marke |
| 68ca0 | 64 2d 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 73 20 28 63 6c 2d 72 | d-files))............(dirs.(cl-r |
| 68cc0 | 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 23 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 | emove-if-not.#'file-directory-p. |
| 68ce0 | 66 69 6c 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 70 20 28 3c 20 | files))............(remove-p.(<. |
| 68d00 | 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 09 | (prefix-numeric-value.arg).0)).. |
| 68d20 | 20 20 20 28 61 63 74 69 6f 6e 2d 66 6e 20 28 69 66 20 72 65 6d 6f 76 65 2d 70 0a 09 09 09 20 20 | ...(action-fn.(if.remove-p...... |
| 68d40 | 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 09 09 09 23 27 67 70 74 65 | #'gptel-context-remove....#'gpte |
| 68d60 | 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 | l-context-add-file))).......(whe |
| 68d80 | 6e 20 28 6f 72 20 72 65 6d 6f 76 65 2d 70 20 28 6e 75 6c 6c 20 64 69 72 73 29 20 28 6e 75 6c 6c | n.(or.remove-p.(null.dirs).(null |
| 68da0 | 20 63 6f 6e 66 69 72 6d 29 0a 09 09 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 52 | .confirm)...(y-or-n-p.(format."R |
| 68dc0 | 65 63 75 72 73 69 76 65 6c 79 20 61 64 64 20 66 69 6c 65 73 20 66 72 6f 6d 20 25 64 20 64 69 72 | ecursively.add.files.from.%d.dir |
| 68de0 | 65 63 74 6f 72 25 73 3f 20 22 0a 09 09 09 09 20 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 0a 09 | ector%s?.".......(length.dirs).. |
| 68e00 | 09 09 09 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 20 31 29 20 22 79 22 | .....(if.(=.(length.dirs).1)."y" |
| 68e20 | 20 22 69 65 73 22 29 29 29 29 0a 09 28 6d 61 70 63 20 61 63 74 69 6f 6e 2d 66 6e 20 66 69 6c 65 | ."ies"))))..(mapc.action-fn.file |
| 68e40 | 73 29 29 29 29 0a 20 20 20 3b 3b 20 49 66 20 69 6e 20 61 6e 20 69 6d 61 67 65 20 62 75 66 66 65 | s))))....;;.If.in.an.image.buffe |
| 68e60 | 72 0a 20 20 20 28 28 61 6e 64 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 69 6d 61 67 | r....((and.(derived-mode-p.'imag |
| 68e80 | 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 | e-mode)..........(gptel--model-c |
| 68ea0 | 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 28 62 75 66 66 65 | apable-p.'media)..........(buffe |
| 68ec0 | 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 66 20 28 | r-file-name)).....(funcall.(if.( |
| 68ee0 | 61 6e 64 20 61 72 67 20 28 3c 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 | and.arg.(<.(prefix-numeric-value |
| 68f00 | 20 61 72 67 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d | .arg).0))...............#'gptel- |
| 68f20 | 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 | context-remove...............#'g |
| 68f40 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 | ptel-context-add-file).......... |
| 68f60 | 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 3b 3b 20 4e 6f 20 72 | .(buffer-file-name)))....;;.No.r |
| 68f80 | 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 41 52 47 20 69 73 20 70 6f | egion.is.selected,.and.ARG.is.po |
| 68fa0 | 73 69 74 69 76 65 2e 0a 20 20 20 28 28 61 6e 64 20 61 72 67 20 28 3e 20 28 70 72 65 66 69 78 2d | sitive.....((and.arg.(>.(prefix- |
| 68fc0 | 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a 20 20 20 20 28 6c 65 74 2a | numeric-value.arg).0)).....(let* |
| 68fe0 | 20 28 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 43 68 6f | .((buffer-name.(read-buffer."Cho |
| 69000 | 6f 73 65 20 62 75 66 66 65 72 20 74 6f 20 61 64 64 20 61 73 20 63 6f 6e 74 65 78 74 3a 20 22 0a | ose.buffer.to.add.as.context:.". |
| 69020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 69040 | 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 74 29 29 0a 20 20 20 20 20 20 | .....(current-buffer).t))....... |
| 69060 | 20 20 20 20 20 28 73 74 61 72 74 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | .....(start.(with-current-buffer |
| 69080 | 20 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 | .buffer-name.(point-min)))...... |
| 690a0 | 20 20 20 20 20 20 28 65 6e 64 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | ......(end.(with-current-buffer. |
| 690c0 | 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 | buffer-name.(point-max))))...... |
| 690e0 | 20 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 0a 20 20 20 20 | .(gptel-context--add-region..... |
| 69100 | 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 20 73 74 61 72 | ...(get-buffer.buffer-name).star |
| 69120 | 74 20 65 6e 64 20 74 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 | t.end.t).......(message."Buffer. |
| 69140 | 27 25 73 27 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 20 62 75 66 66 65 72 2d 6e | '%s'.added.as.context.".buffer-n |
| 69160 | 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 20 73 65 6c 65 63 74 | ame)))....;;.No.region.is.select |
| 69180 | 65 64 2c 20 61 6e 64 20 41 52 47 20 69 73 20 6e 65 67 61 74 69 76 65 2e 0a 20 20 20 28 28 61 6e | ed,.and.ARG.is.negative.....((an |
| 691a0 | 64 20 61 72 67 20 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 | d.arg.(<.(prefix-numeric-value.a |
| 691c0 | 72 67 29 20 30 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 63 6f 6e 66 | rg).0)).....(when.(or.(null.conf |
| 691e0 | 69 72 6d 29 0a 09 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 52 65 6d 6f 76 65 20 61 6c | irm)........(y-or-n-p."Remove.al |
| 69200 | 6c 20 63 6f 6e 74 65 78 74 73 20 66 72 6f 6d 20 74 68 69 73 20 62 75 66 66 65 72 3f 20 22 29 29 | l.contexts.from.this.buffer?.")) |
| 69220 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 20 30 | .......(let.((removed-contexts.0 |
| 69240 | 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f 76 20 69 6e 0a 20 | )).........(cl-loop.for.cov.in.. |
| 69260 | 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 74 2d 2d | ................(gptel-context-- |
| 69280 | 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 20 28 70 6f 69 6e | in-region.(current-buffer).(poin |
| 692a0 | 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 20 20 20 20 20 20 20 | t-min).(point-max))............. |
| 692c0 | 20 20 20 20 20 64 6f 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 | .....do.(progn.................. |
| 692e0 | 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 29 0a | .....(cl-incf.removed-contexts). |
| 69300 | 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 63 6f 6e | ......................(gptel-con |
| 69320 | 74 65 78 74 2d 72 65 6d 6f 76 65 20 63 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 | text-remove.cov))).........(mess |
| 69340 | 61 67 65 20 28 66 6f 72 6d 61 74 20 22 25 64 20 63 6f 6e 74 65 78 74 25 73 20 72 65 6d 6f 76 65 | age.(format."%d.context%s.remove |
| 69360 | 64 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 20 20 20 20 20 20 | d.from.current.buffer."......... |
| 69380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 | .................removed-context |
| 693a0 | 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 69 66 20 28 | s..........................(if.( |
| 693c0 | 3d 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 20 31 29 20 22 22 20 22 73 22 29 29 29 29 | =.removed-contexts.1).""."s")))) |
| 693e0 | 29 29 0a 20 20 20 28 74 20 3b 20 44 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 | ))....(t.;.Default.behavior..... |
| 69400 | 28 69 66 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 0a 20 20 | (if.(gptel-context--at-point)... |
| 69420 | 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f | ......(progn...........(gptel-co |
| 69440 | 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 28 63 61 72 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | ntext-remove.(car.(gptel-context |
| 69460 | 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 20 20 20 | --in-region.(current-buffer).... |
| 69480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 694a0 | 20 20 20 20 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 | ............................(max |
| 694c0 | 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 20 20 | .(point-min).(1-.(point)))...... |
| 694e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 69500 | 20 20 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 | ..........................(point |
| 69520 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 6e 74 65 78 74 | ))))...........(message."Context |
| 69540 | 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 22 29 | .under.point.has.been.removed.") |
| 69560 | 29 0a 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 72 65 67 69 | ).......(gptel-context--add-regi |
| 69580 | 6f 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 | on.(current-buffer).(point-min). |
| 695a0 | 28 70 6f 69 6e 74 2d 6d 61 78 29 20 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 | (point-max).t).......(message."C |
| 695c0 | 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 | urrent.buffer.added.as.context." |
| 695e0 | 29 29 29 29 29 0a 0a 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 | )))))..;;;###autoload.(autoload. |
| 69600 | 27 67 70 74 65 6c 2d 61 64 64 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 20 22 41 64 64 2f | 'gptel-add."gptel-context"."Add/ |
| 69620 | 72 65 6d 6f 76 65 20 72 65 67 69 6f 6e 73 20 6f 72 20 62 75 66 66 65 72 73 20 66 72 6f 6d 20 67 | remove.regions.or.buffers.from.g |
| 69640 | 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 20 74 29 0a 28 64 65 66 61 6c 69 61 73 20 27 67 | ptel's.context.".t).(defalias.'g |
| 69660 | 70 74 65 6c 2d 61 64 64 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 29 0a 0a 28 | ptel-add.#'gptel-context-add)..( |
| 69680 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 28 70 61 74 68 | defun.gptel--file-binary-p.(path |
| 696a0 | 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 69 73 20 72 65 | )..."Check.if.file.at.PATH.is.re |
| 696c0 | 61 64 61 62 6c 65 20 61 6e 64 20 62 69 6e 61 72 79 2e 22 0a 20 20 28 63 6f 6e 64 69 74 69 6f 6e | adable.and.binary."...(condition |
| 696e0 | 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 | -case.nil.......(with-temp-buffe |
| 69700 | 72 0a 20 20 20 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 | r.........(insert-file-contents. |
| 69720 | 70 61 74 68 20 6e 69 6c 20 31 20 35 31 32 20 27 72 65 70 6c 61 63 65 29 0a 20 20 20 20 20 20 20 | path.nil.1.512.'replace)........ |
| 69740 | 20 28 65 71 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 | .(eq.buffer-file-coding-system.' |
| 69760 | 6e 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 29 29 0a 20 20 20 20 28 66 69 6c 65 2d 6d 69 73 73 69 6e | no-conversion)).....(file-missin |
| 69780 | 67 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 69 73 20 6e 6f 74 20 72 | g.(message."File.\"%s\".is.not.r |
| 697a0 | 65 61 64 61 62 6c 65 2e 22 20 70 61 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | eadable.".path))))..(defun.gptel |
| 697c0 | 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 29 0a 20 | -context--add-text-file.(path).. |
| 697e0 | 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 6e 74 65 | ."Add.text.file.at.PATH.to.conte |
| 69800 | 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 29 20 67 | xt."...(cl-pushnew.(list.path).g |
| 69820 | 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 71 75 61 | ptel-context--alist.:test.#'equa |
| 69840 | 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 64 65 64 | l)...(message."File.\"%s\".added |
| 69860 | 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 28 64 65 | .to.context.".path)...path)..(de |
| 69880 | 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 2d 66 69 | fun.gptel-context--add-binary-fi |
| 698a0 | 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 61 74 20 | le.(path)..."Add.binary.file.at. |
| 698c0 | 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 0a 52 65 | PATH.to.context.if.supported..Re |
| 698e0 | 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 6e 6f 72 | turn.PATH.if.added,.nil.if.ignor |
| 69900 | 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 65 6c 2d | ed."...(if-let*.(((gptel--model- |
| 69920 | 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 20 20 28 | capable-p.'media)).............( |
| 69940 | 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 6d 65 2d | mime.(mailcap-file-name-to-mime- |
| 69960 | 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 65 6c 2d | type.path)).............((gptel- |
| 69980 | 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 0a 20 20 | -model-mime-capable-p.mime)))... |
| 699a0 | 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 75 73 68 | ....(prog1.path.........(cl-push |
| 699c0 | 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 20 20 20 | new.(list.path.:mime.mime)...... |
| 699e0 | 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 2d 61 6c | ...............gptel-context--al |
| 69a00 | 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 65 73 73 | ist.:test.#'equal).........(mess |
| 69a20 | 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 74 65 78 | age."File.\"%s\".added.to.contex |
| 69a40 | 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 72 69 6e | t.".path)).....(message."Ignorin |
| 69a60 | 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 73 5c 22 | g.unsupported.binary.file.\"%s\" |
| 69a80 | 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 74 65 6c | .".path).....nil))..(defun.gptel |
| 69aa0 | 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 20 61 63 | -context--add-directory.(path.ac |
| 69ac0 | 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 20 64 69 | tion)..."Process.all.files.in.di |
| 69ae0 | 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 41 43 54 | rectory.at.PATH.according.to.ACT |
| 69b00 | 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 60 61 64 | ION..ACTION.should.be.either.`ad |
| 69b20 | 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 65 73 20 | d'.or.`remove'."...(let.((files. |
| 69b40 | 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 70 61 74 | (directory-files-recursively.pat |
| 69b60 | 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 28 66 69 | h.".".t))).....(mapc.(lambda.(fi |
| 69b80 | 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 2d 64 69 | le).............(unless.(file-di |
| 69ba0 | 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 20 28 70 | rectory-p.file)...............(p |
| 69bc0 | 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 20 20 20 | case-exhaustive.action.......... |
| 69be0 | 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 20 28 69 | .......('add..................(i |
| 69c00 | 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 0a 20 20 | f.(gptel--file-binary-p.file)... |
| 69c20 | 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 |
| 69c40 | 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 20 20 20 | t--add-binary-file.file)........ |
| 69c60 | 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 64 64 2d | ............(gptel-context--add- |
| 69c80 | 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 20 20 20 | text-file.file)))............... |
| 69ca0 | 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 73 65 74 | ..('remove..................(set |
| 69cc0 | 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 78 74 2d | f.(alist-get.file.gptel-context- |
| 69ce0 | 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 69 6c 29 | -alist.nil.'remove.#'equal).nil) |
| 69d00 | 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 65 6e 20 | ))))...........files).....(when. |
| 69d20 | 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 73 73 61 | (eq.action.'remove).......(messa |
| 69d40 | 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 66 72 6f | ge."Directory.\"%s\".removed.fro |
| 69d60 | 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 67 70 74 | m.context.".path))))..(defun.gpt |
| 69d80 | 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 22 41 64 | el-context-add-file.(path)..."Ad |
| 69da0 | 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 65 6c 20 | d.the.file.at.PATH.to.the.gptel. |
| 69dc0 | 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 6f 72 79 | context...If.PATH.is.a.directory |
| 69de0 | 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 6e 20 69 | ,.recursively.add.all.files.in.i |
| 69e00 | 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 20 74 65 | t..PATH.should.be.readable.as.te |
| 69e20 | 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 66 69 6c | xt."...(interactive."fChoose.fil |
| 69e40 | 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 6e 64 20 | e.to.add.to.context:.")...(cond. |
| 69e60 | 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 70 74 65 | ((file-directory-p.path)...(gpte |
| 69e80 | 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 20 27 61 | l-context--add-directory.path.'a |
| 69ea0 | 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 70 61 74 | dd))..((gptel--file-binary-p.pat |
| 69ec0 | 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 64 64 2d | h)..........(gptel-context--add- |
| 69ee0 | 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 6f 6e 74 | binary-file.path))..((gptel-cont |
| 69f00 | 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 3b 3b 3b | ext--add-text-file.path))))..;;; |
| 69f20 | 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 64 64 | ###autoload.(autoload.'gptel-add |
| 69f40 | 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 6c 65 73 | -file."gptel-context"."Add.files |
| 69f60 | 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 61 6c 69 | .to.gptel's.context.".t).(defali |
| 69f80 | 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 6e 74 65 | as.'gptel-add-file.#'gptel-conte |
| 69fa0 | 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 6e 74 65 | xt-add-file)..(defun.gptel-conte |
| 69fc0 | 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 0a 20 20 | xt-remove.(&optional.context)... |
| 69fe0 | 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 72 6f 6d | "Remove.the.CONTEXT.overlay.from |
| 6a000 | 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 58 54 20 | .the.contexts.list...If.CONTEXT. |
| 6a020 | 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 74 20 70 | is.nil,.removes.the.context.at.p |
| 6a040 | 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 20 72 65 | oint..If.selection.is.active,.re |
| 6a060 | 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 65 63 74 | moves.all.contexts.within.select |
| 6a080 | 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 79 2c 20 | ion..If.CONTEXT.is.a.directory,. |
| 6a0a0 | 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 20 69 6e | recursively.removes.all.files.in |
| 6a0c0 | 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 6f 6e 74 | .it."...(cond....((overlayp.cont |
| 6a0e0 | 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 65 78 74 | ext).....(delete-overlay.context |
| 6a100 | 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 74 20 77 | ).....;;.FIXME:.Quadratic.cost.w |
| 6a120 | 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 78 74 73 | hen.clearing.a.bunch.of.contexts |
| 6a140 | 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 28 63 6c | .at.once.....(unless.........(cl |
| 6a160 | 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 73 74 2d | -loop..........for.ov.in.(alist- |
| 6a180 | 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 6e 74 65 | get.(current-buffer).gptel-conte |
| 6a1a0 | 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 6f 76 65 | xt--alist)..........thereis.(ove |
| 6a1c0 | 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 61 6c 69 | rlay-start.ov)).......(setf.(ali |
| 6a1e0 | 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 |
| 6a200 | 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 29 29 29 | ntext--alist.nil.'remove).nil))) |
| 6a220 | 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 20 20 20 | ....((stringp.context).......... |
| 6a240 | 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 20 20 20 | .........;file.or.directory..... |
| 6a260 | 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 29 0a 20 | (if.(file-directory-p.context).. |
| 6a280 | 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 72 65 63 | .......(gptel-context--add-direc |
| 6a2a0 | 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 73 65 74 | tory.context.'remove).......(set |
| 6a2c0 | 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 6e 74 65 | f.(alist-get.context.gptel-conte |
| 6a2e0 | 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 |
| 6a300 | 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 5c 22 20 | il).......(message."File.\"%s\". |
| 6a320 | 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 74 29 29 | removed.from.context.".context)) |
| 6a340 | 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 77 68 65 | )....((region-active-p).....(whe |
| 6a360 | 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 65 78 74 | n-let*.((contexts.(gptel-context |
| 6a380 | 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 20 20 20 | --in-region.(current-buffer).... |
| 6a3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6a3c0 | 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 6e 6e 69 | .................(region-beginni |
| 6a3e0 | 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 20 20 | ng)............................. |
| 6a400 | 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- |
| 6a420 | 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 78 20 69 | end)))).......(cl-loop.for.ctx.i |
| 6a440 | 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 20 63 74 | n.contexts.do.(delete-overlay.ct |
| 6a460 | 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 63 74 78 | x))))....(t.....(when-let*.((ctx |
| 6a480 | 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 20 20 20 | .(gptel-context--at-point))).... |
| 6a4a0 | 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 28 64 65 | ...(delete-overlay.ctx)))))..(de |
| 6a4c0 | 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 28 26 6f | fun.gptel-context-remove-all.(&o |
| 6a4e0 | 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 6c 20 67 | ptional.verbose)..."Remove.all.g |
| 6a500 | 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 6e 6f 6e | ptel.context...If.VERBOSE.is.non |
| 6a520 | 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 64 20 6d | -nil,.ask.for.confirmation.and.m |
| 6a540 | 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 63 74 69 | essage.afterwards."...(interacti |
| 6a560 | 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 6c 2d 63 | ve.(list.t))...(if.(null.gptel-c |
| 6a580 | 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 72 62 6f | ontext--alist).......(when.verbo |
| 6a5a0 | 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 20 73 6f | se.(message."No.gptel.context.so |
| 6a5c0 | 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 20 28 6f | urces.to.remove.")).....(when.(o |
| 6a5e0 | 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 6d 6f 76 | r.(not.verbose).(y-or-n-p."Remov |
| 6a600 | 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 6c 6f 6f | e.all.context?.")).......(cl-loo |
| 6a620 | 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 6e 20 67 | p........for.(source...ovs).in.g |
| 6a640 | 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 20 28 62 | ptel-context--alist........if.(b |
| 6a660 | 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 42 75 66 | ufferp.source).do...........;Buf |
| 6a680 | 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 20 20 28 | fers.and.buffer.regions........( |
| 6a6a0 | 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 76 73 29 | mapc.#'gptel-context-remove.ovs) |
| 6a6c0 | 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 74 2d 72 | ........else.do.(gptel-context-r |
| 6a6e0 | 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 20 74 79 | emove.source).;files.or.other.ty |
| 6a700 | 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 70 74 65 | pes........finally.do.(setq.gpte |
| 6a720 | 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 77 68 65 | l-context--alist.nil))).....(whe |
| 6a740 | 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 6c 6c 20 | n.verbose.(message."Removed.all. |
| 6a760 | 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 28 64 65 | gptel.context.sources."))))..(de |
| 6a780 | 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 61 79 20 | fun.gptel-context--make-overlay. |
| 6a7a0 | 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 0a 20 20 | (start.end.&optional.advance)... |
| 6a7c0 | 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 41 52 54 | "Highlight.the.region.from.START |
| 6a7e0 | 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 65 20 6f | .to.END...ADVANCE.controls.the.o |
| 6a800 | 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 28 6c 65 | verlay.boundary.behavior."...(le |
| 6a820 | 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 72 74 20 | t.((overlay.(make-overlay.start. |
| 6a840 | 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 29 29 29 | end.nil.(not.advance).advance))) |
| 6a860 | 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 61 70 6f | .....(overlay-put.overlay.'evapo |
| 6a880 | 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 6c 61 79 | rate.t).....(overlay-put.overlay |
| 6a8a0 | 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 68 74 2d | .'face.'gptel-context-highlight- |
| 6a8c0 | 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 79 20 27 | face).....(overlay-put.overlay.' |
| 6a8e0 | 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 65 72 6c | gptel-context.t).....(push.overl |
| 6a900 | 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 29 0a 20 | ay.(alist-get.(current-buffer).. |
| 6a920 | 20 20 20 20 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 |
| 6a940 | 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 79 29 29 | l-context--alist)).....overlay)) |
| 6a960 | 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 2d 63 6f | ..;;;###autoload.(defun.gptel-co |
| 6a980 | 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 6d 65 73 73 61 67 65 29 0a 20 20 22 57 72 61 70 20 4d 45 | ntext--wrap.(message)..."Wrap.ME |
| 6a9a0 | 53 53 41 47 45 20 77 69 74 68 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 66 | SSAGE.with.context.string."...(f |
| 6a9c0 | 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 72 61 70 2d 66 75 6e 63 74 69 | uncall.gptel-context-wrap-functi |
| 6a9e0 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 6d 65 73 73 61 67 65 20 28 67 70 74 65 6c 2d 63 6f 6e | on............message.(gptel-con |
| 6aa00 | 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 | text--collect)))..(defun.gptel-c |
| 6aa20 | 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 64 65 66 61 75 6c 74 20 28 6d 65 73 73 61 67 65 20 63 6f | ontext--wrap-default.(message.co |
| 6aa40 | 6e 74 65 78 74 73 29 0a 20 20 22 41 64 64 20 43 4f 4e 54 45 58 54 53 20 74 6f 20 4d 45 53 53 41 | ntexts)..."Add.CONTEXTS.to.MESSA |
| 6aa60 | 47 45 2e 0a 0a 4d 45 53 53 41 47 45 20 69 73 20 75 73 75 61 6c 6c 79 20 65 69 74 68 65 72 20 74 | GE...MESSAGE.is.usually.either.t |
| 6aa80 | 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 74 68 65 20 75 73 65 72 20 70 72 | he.system.message.or.the.user.pr |
| 6aaa0 | 6f 6d 70 74 2e 0a 54 68 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 63 6f 6e 74 65 78 74 20 66 72 | ompt..The.accumulated.context.fr |
| 6aac0 | 6f 6d 20 43 4f 4e 54 45 58 54 53 20 69 73 20 61 70 70 65 6e 64 65 64 20 6f 72 20 70 72 65 70 65 | om.CONTEXTS.is.appended.or.prepe |
| 6aae0 | 6e 64 65 64 20 74 6f 0a 69 74 2c 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 22 0a 20 20 3b 3b 20 | nded.to.it,.respectively."...;;. |
| 6ab00 | 41 70 70 65 6e 64 20 63 6f 6e 74 65 78 74 20 62 65 66 6f 72 65 2f 61 66 74 65 72 20 73 79 73 74 | Append.context.before/after.syst |
| 6ab20 | 65 6d 20 6d 65 73 73 61 67 65 2e 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 2d 73 74 72 | em.message....(let.((context-str |
| 6ab40 | 69 6e 67 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 74 72 69 6e 67 20 63 6f 6e 74 65 | ing.(gptel-context--string.conte |
| 6ab60 | 78 74 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 78 | xts))).....(if.(>.(length.contex |
| 6ab80 | 74 2d 73 74 72 69 6e 67 29 20 30 29 0a 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 65 78 68 61 | t-string).0).........(pcase-exha |
| 6aba0 | 75 73 74 69 76 65 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 | ustive.gptel-use-context........ |
| 6abc0 | 20 20 20 28 27 73 79 73 74 65 6d 20 28 63 6f 6e 63 61 74 20 6d 65 73 73 61 67 65 20 22 5c 6e 5c | ...('system.(concat.message."\n\ |
| 6abe0 | 6e 22 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 27 | n".context-string))...........(' |
| 6ac00 | 75 73 65 72 20 20 20 28 63 6f 6e 63 61 74 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 22 5c | user...(concat.context-string."\ |
| 6ac20 | 6e 5c 6e 22 20 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 20 20 | n\n".message))...........('nil.. |
| 6ac40 | 20 20 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 6d 65 73 73 61 67 65 29 29 29 0a 0a 28 64 | ..message)).......message)))..(d |
| 6ac60 | 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 65 64 69 | efun.gptel-context--collect-medi |
| 6ac80 | 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 6c 65 63 | a.(&optional.contexts)..."Collec |
| 6aca0 | 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 77 68 69 | t.media.CONTEXTS...CONTEXTS,.whi |
| 6acc0 | 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 61 72 79 | ch.are.typically.paths.to.binary |
| 6ace0 | 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 64 20 70 | .files,.are.base64-encoded.and.p |
| 6ad00 | 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 6f 6d 70 | repended.to.the.first.user.promp |
| 6ad20 | 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 20 28 6f | t."...(cl-loop.for.context.in.(o |
| 6ad40 | 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 73 74 29 | r.contexts.gptel-context--alist) |
| 6ad60 | 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 29 20 3d | ............for.(path...props).= |
| 6ad80 | 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 20 28 73 | .context............when.(and.(s |
| 6ada0 | 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 20 3a 6d | tringp.path).(plist-get.props.:m |
| 6adc0 | 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 73 20 3a | ime))............collect.(cons.: |
| 6ade0 | 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 70 74 65 | media.context)))..(cl-defun.gpte |
| 6ae00 | 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 20 72 65 | l-context--add-region.(buffer.re |
| 6ae20 | 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 74 69 6f | gion-beginning.region-end.&optio |
| 6ae40 | 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 6c 69 6d | nal.advance)..."Add.region.delim |
| 6ae60 | 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 49 4f 4e | ited.by.REGION-BEGINNING,.REGION |
| 6ae80 | 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 66 20 41 | -END.in.BUFFER.as.context...If.A |
| 6aea0 | 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 74 20 6f | DVANCE.is.non-nil,.the.context.o |
| 6aec0 | 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 68 65 20 | verlay.envelopes.changes.at.the. |
| 6aee0 | 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 76 65 20 | beginning.and.end."...;;.Remove. |
| 6af00 | 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 20 72 65 | existing.contexts.in.the.same.re |
| 6af20 | 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 2d 63 6f | gion,.if.any....(mapc.#'gptel-co |
| 6af40 | 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 6f 6e 74 | ntext-remove.........(gptel-cont |
| 6af60 | 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 62 65 67 | ext--in-region.buffer.region-beg |
| 6af80 | 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 28 77 69 | inning.region-end))...(prog1.(wi |
| 6afa0 | 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 20 20 20 | th-current-buffer.buffer........ |
| 6afc0 | 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 6c 61 79 | ....(gptel-context--make-overlay |
| 6afe0 | 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 61 64 76 | .region-beginning.region-end.adv |
| 6b000 | 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 20 61 64 | ance)).......(message."Region.ad |
| 6b020 | 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 64 65 66 | ded.to.context.buffer.")))..(def |
| 6b040 | 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 62 75 66 | un.gptel-context--in-region.(buf |
| 6b060 | 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 6c 69 73 | fer.start.end)..."Return.the.lis |
| 6b080 | 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 67 69 76 | t.of.context.overlays.in.the.giv |
| 6b0a0 | 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 0a 53 54 | en.region,.if.any,.in.BUFFER..ST |
| 6b0c0 | 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 6e 20 64 | ART.and.END.signify.the.region.d |
| 6b0e0 | 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 75 66 66 | elimiters."...(with-current-buff |
| 6b100 | 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 6f 74 20 | er.buffer.....(cl-remove-if-not. |
| 6b120 | 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 27 67 70 | (lambda.(ov).(overlay-get.ov.'gp |
| 6b140 | 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 20 20 20 | tel-context))................... |
| 6b160 | 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 29 0a 0a | ....(overlays-in.start.end)))).. |
| 6b180 | 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 74 20 28 | (defun.gptel-context--at-point.( |
| 6b1a0 | 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 61 79 20 | )..."Return.the.context.overlay. |
| 6b1c0 | 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 2d 69 66 | at.point,.if.any."...(cl-find-if |
| 6b1e0 | 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 27 67 | .(lambda.(ov).(overlay-get.ov.'g |
| 6b200 | 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 6f 76 | ptel-context))...............(ov |
| 6b220 | 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 75 74 6f | erlays-at.(point))))..;;;###auto |
| 6b240 | 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 6c 6c 65 | load.(defun.gptel-context--colle |
| 6b260 | 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 61 63 74 | ct.()..."Get.the.list.of.all.act |
| 6b280 | 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 65 74 20 | ive.context.overlays."...;;.Get. |
| 6b2a0 | 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 61 79 73 | only.the.non-degenerate.overlays |
| 6b2c0 | 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 65 20 6f | ,.collect.them,.and.update.the.o |
| 6b2e0 | 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 65 6c 2d | verlays.variable....(setq.gptel- |
| 6b300 | 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 6f 70 20 | context--alist.........(cl-loop. |
| 6b320 | 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 65 78 74 | for.(buf...ovs).in.gptel-context |
| 6b340 | 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 62 75 66 | --alist..................if.(buf |
| 6b360 | 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 20 20 20 | fer-live-p.buf)................. |
| 6b380 | 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 77 68 65 | ...if.(cl-loop.for.ov.in.ovs.whe |
| 6b3a0 | 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 6f 76 29 | n.(overlay-start.ov).collect.ov) |
| 6b3c0 | 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 63 6f 6e | ....................collect.(con |
| 6b3e0 | 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 20 20 20 | s.buf.it).into.elements......... |
| 6b400 | 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 20 20 20 | ...........end.................. |
| 6b420 | 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 69 6c 65 | else.if.(and.(stringp.buf).(file |
| 6b440 | 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 20 20 20 | -exists-p.buf))................. |
| 6b460 | 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 20 20 20 | .if.(plist-get.ovs.:mime)....... |
| 6b480 | 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 6f 76 73 | ...........collect.(cons.buf.ovs |
| 6b4a0 | 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 20 20 20 | ).into.elements................. |
| 6b4c0 | 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 20 65 6c | .else.collect.(list.buf).into.el |
| 6b4e0 | 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 6c 79 20 | ements..................finally. |
| 6b500 | 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 74 65 6c | return.elements)))..(defun.gptel |
| 6b520 | 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 67 20 28 | -context--insert-buffer-string.( |
| 6b540 | 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 20 70 6f | buffer.contexts)..."Insert.at.po |
| 6b560 | 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 20 43 4f | int.a.context.string.from.all.CO |
| 6b580 | 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 28 69 73 | NTEXTS.in.BUFFER.".....(let.((is |
| 6b5a0 | 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 65 76 69 | -top-snippet.t)...........(previ |
| 6b5c0 | 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 6f 72 6d | ous-line.1)).......(insert.(form |
| 6b5e0 | 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 6e 61 6d | at."In.buffer.`%s`:".(buffer-nam |
| 6b600 | 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 6e 60 60 | e.buffer))..............."\n\n`` |
| 6b620 | 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 28 62 75 | `".(gptel--strip-mode-suffix.(bu |
| 6b640 | 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 20 20 20 | ffer-local-value................ |
| 6b660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6b680 | 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 20 20 20 | ....'major-mode.buffer))........ |
| 6b6a0 | 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 6f 6e 74 | ......."\n").......(dolist.(cont |
| 6b6c0 | 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 28 73 74 | ext.contexts).........(let*.((st |
| 6b6e0 | 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 20 20 20 | art.(overlay-start.context)).... |
| 6b700 | 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 20 63 6f | ............(end.(overlay-end.co |
| 6b720 | 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 74 29 0a | ntext))................content). |
| 6b740 | 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 29 0a 20 | ..........(let.(lineno.column).. |
| 6b760 | 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. |
| 6b780 | 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 2d 72 65 | buffer...............(without-re |
| 6b7a0 | 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 74 71 20 | striction.................(setq. |
| 6b7c0 | 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 61 72 74 | lineno.(line-number-at-pos.start |
| 6b7e0 | 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 75 6d 6e | .t).......................column |
| 6b800 | 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 74 61 72 | .(save-excursion.(goto-char.star |
| 6b820 | 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 20 | t).............................. |
| 6b840 | 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 6d 6e 29 | ................(current-column) |
| 6b860 | 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 6e 74 20 | ).......................content. |
| 6b880 | 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 20 | (buffer-substring-no-properties. |
| 6b8a0 | 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 57 65 20 | start.end)))).............;;.We. |
| 6b8c0 | 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 6e 75 6d | do.not.need.to.insert.a.line.num |
| 6b8e0 | 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 72 65 67 | ber.indicator.if.we.have.two.reg |
| 6b900 | 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 6d 65 20 | ions.............;;.on.the.same. |
| 6b920 | 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 67 69 6f | line,.because.the.previous.regio |
| 6b940 | 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 0a 20 20 | n.should.have.already.put.the... |
| 6b960 | 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 20 20 20 | ..........;;.indicator.......... |
| 6b980 | 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 6c 69 6e | ....(unless.(=.previous-line.lin |
| 6b9a0 | 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 20 6c 69 | eno)...............(unless.(=.li |
| 6b9c0 | 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 73 73 20 | neno.1).................(unless. |
| 6b9e0 | 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 20 20 20 | is-top-snippet.................. |
| 6ba00 | 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 20 20 20 | .(insert."\n"))................. |
| 6ba20 | 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 29 5c 6e | (insert.(format."....(Line.%d)\n |
| 6ba40 | 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 71 20 70 | ".lineno)))).............(setq.p |
| 6ba60 | 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 20 20 20 | revious-line.lineno)............ |
| 6ba80 | 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 72 74 20 | .(unless.(zerop.column).(insert. |
| 6baa0 | 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 6f 70 2d | "....")).............(if.is-top- |
| 6bac0 | 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 20 69 73 | snippet.................(setq.is |
| 6bae0 | 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 20 20 20 | -top-snippet.nil)............... |
| 6bb00 | 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 6e 6f 29 | (unless.(=.previous-line.lineno) |
| 6bb20 | 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 69 6e 73 | .(insert."\n"))))...........(ins |
| 6bb40 | 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 28 3e 3d | ert.content))).......(unless.(>= |
| 6bb60 | 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 65 78 74 | .(overlay-end.(car.(last.context |
| 6bb80 | 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 73 65 72 | s))).(point-max)).........(inser |
| 6bba0 | 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 60 60 60 | t."\n...")).......(insert."\n``` |
| 6bbc0 | 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 69 6e 73 65 | ")))..(defun.gptel-context--inse |
| 6bbe0 | 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 49 6e 73 65 72 74 20 | rt-file-string.(path)..."Insert. |
| 6bc00 | 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 74 68 65 20 66 69 6c | at.point.the.contents.of.the.fil |
| 6bc20 | 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 28 69 6e 73 65 72 74 | e.at.PATH.as.context."...(insert |
| 6bc40 | 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 28 66 69 6c 65 2d 6e | .(format."In.file.`%s`:".(file-n |
| 6bc60 | 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 20 20 20 20 20 20 20 | ame-nondirectory.path))......... |
| 6bc80 | 20 20 22 5c 6e 5c 6e 60 60 60 5c 6e 22 29 0a 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f | .."\n\n```\n")...(insert-file-co |
| 6bca0 | 6e 74 65 6e 74 73 20 70 61 74 68 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 | ntents.path)...(goto-char.(point |
| 6bcc0 | 2d 6d 61 78 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 60 60 60 5c 6e 22 29 29 0a 0a 28 64 | -max))...(insert."\n```\n"))..(d |
| 6bce0 | 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 74 72 69 6e 67 20 28 63 6f 6e 74 | efun.gptel-context--string.(cont |
| 6bd00 | 65 78 74 2d 61 6c 69 73 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 61 67 67 72 65 67 61 | ext-alist)..."Format.the.aggrega |
| 6bd20 | 74 65 64 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 61 73 20 61 6e 6e 6f 74 61 74 65 64 20 6d | ted.gptel.context.as.annotated.m |
| 6bd40 | 61 72 6b 64 6f 77 6e 20 66 72 61 67 6d 65 6e 74 73 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 73 74 | arkdown.fragments...Returns.a.st |
| 6bd60 | 72 69 6e 67 2e 20 20 43 4f 4e 54 45 58 54 2d 41 4c 49 53 54 20 69 73 20 61 20 73 74 72 75 63 74 | ring...CONTEXT-ALIST.is.a.struct |
| 6bd80 | 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 2c | ure.containing.context.overlays, |
| 6bda0 | 20 73 65 65 20 60 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 27 2e 22 0a 20 20 | .see.`gptel-context--alist'."... |
| 6bdc0 | 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 | (with-temp-buffer.....(cl-loop.f |
| 6bde0 | 6f 72 20 28 62 75 66 20 2e 20 6f 76 73 29 20 69 6e 20 63 6f 6e 74 65 78 74 2d 61 6c 69 73 74 0a | or.(buf...ovs).in.context-alist. |
| 6be00 | 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 29 0a 20 20 | .............if.(bufferp.buf)... |
| 6be20 | 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e | ...........do.(gptel-context--in |
| 6be40 | 73 65 72 74 2d 62 75 66 66 65 72 2d 73 74 72 69 6e 67 20 62 75 66 20 6f 76 73 29 0a 20 20 20 20 | sert-buffer-string.buf.ovs)..... |
| 6be60 | 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 | .........else.if.(not.(plist-get |
| 6be80 | 20 6f 76 73 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 70 | .ovs.:mime))..............do.(gp |
| 6bea0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 | tel-context--insert-file-string. |
| 6bec0 | 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 65 72 74 | buf).end..............do.(insert |
| 6bee0 | 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 20 64 6f | ."\n\n")..............finally.do |
| 6bf00 | 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 6b 77 61 | ..............(skip-chars-backwa |
| 6bf20 | 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 65 6c 65 | rd."\n\t\r.")..............(dele |
| 6bf40 | 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 29 0a 20 | te-region.(point).(point-max)).. |
| 6bf60 | 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 20 20 20 | ............(unless.(bobp)...... |
| 6bf80 | 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 6e 29 | ..........(goto-char.(point-min) |
| 6bfa0 | 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 75 65 73 | )................(insert."Reques |
| 6bfc0 | 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 20 20 66 | t.context:\n\n"))..............f |
| 6bfe0 | 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 61 6e 64 | inally.return...............(and |
| 6c000 | 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 20 20 20 | .(>.(buffer-size).0)............ |
| 6c020 | 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 3b 3b 3b | ........(buffer-string)))))..;;; |
| 6c040 | 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 63 74 69 | .Major.mode.for.context.inspecti |
| 6c060 | 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 65 6c 2d | on.buffers.(defvar-keymap.gptel- |
| 6c080 | 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 63 20 43 | context-buffer-mode-map..."C-c.C |
| 6c0a0 | 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 20 22 43 | -c".#'gptel-context-confirm..."C |
| 6c0c0 | 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 20 20 22 | -c.C-k".#'gptel-context-quit..." |
| 6c0e0 | 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 74 0a 20 | RET".....#'gptel-context-visit.. |
| 6c100 | 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 78 74 0a | ."n".......#'gptel-context-next. |
| 6c120 | 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 72 65 76 | .."p".......#'gptel-context-prev |
| 6c140 | 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 65 78 74 | ious..."d".......#'gptel-context |
| 6c160 | 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 76 65 64 | -flag-deletion)..(define-derived |
| 6c180 | 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 64 65 20 | -mode.gptel-context-buffer-mode. |
| 6c1a0 | 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 20 20 22 | special-mode."gptel-context"..." |
| 6c1c0 | 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 74 65 78 | Major-mode.for.inspecting.contex |
| 6c1e0 | 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 70 74 65 | t.used.by.gptel."...:group.'gpte |
| 6c200 | 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 6f 6f 6b | l...(add-hook.'post-command-hook |
| 6c220 | 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 64 0a 20 | .#'gptel-context--post-command.. |
| 6c240 | 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 61 6c 20 | ...........nil.t)...(setq-local. |
| 6c260 | 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 6c 2d 63 | revert-buffer-function.#'gptel-c |
| 6c280 | 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 6e 20 67 | ontext--buffer-setup))..(defun.g |
| 6c2a0 | 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 6f 70 74 | ptel-context--buffer-setup.(&opt |
| 6c2c0 | 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 29 0a 20 | ional._ignore-auto._noconfirm).. |
| 6c2e0 | 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 66 66 65 | ."Set.up.the.gptel.context.buffe |
| 6c300 | 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 65 74 2d | r."...(with-current-buffer.(get- |
| 6c320 | 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 2a 22 29 | buffer-create."*gptel-context*") |
| 6c340 | 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 64 65 29 | .....(gptel-context-buffer-mode) |
| 6c360 | 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 20 74 29 | .....(let.((inhibit-read-only.t) |
| 6c380 | 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 28 73 65 | ).......(erase-buffer).......(se |
| 6c3a0 | 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 20 20 20 | tq.header-line-format........... |
| 6c3c0 | 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 20 20 20 | ..(substitute-command-keys...... |
| 6c3e0 | 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 22 5c | ........(concat..............."\ |
| 6c400 | 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 5d 3a 20 | \[gptel-context-flag-deletion]:. |
| 6c420 | 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 20 20 20 | Mark/unmark.deletion,."......... |
| 6c440 | 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 2f 5c 5c | ......"\\[gptel-context-next]/\\ |
| 6c460 | 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 74 2f 70 | [gptel-context-previous]:.next/p |
| 6c480 | 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 67 70 74 | revious,."..............."\\[gpt |
| 6c4a0 | 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 20 20 20 | el-context-visit]:.visit,."..... |
| 6c4c0 | 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 6f 6e 66 | .........."\\[gptel-context-conf |
| 6c4e0 | 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 22 5c 5c | irm]:.apply,."..............."\\ |
| 6c500 | 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 20 22 0a | [gptel-context-quit]:.cancel,.". |
| 6c520 | 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 5d 3a 20 | .............."\\[quit-window]:. |
| 6c540 | 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 6e 0a 20 | quit"))).......(save-excursion.. |
| 6c560 | 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 63 6f 6e | .......(let.((contexts.gptel-con |
| 6c580 | 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 6c 65 6e | text--alist))...........(if.(len |
| 6c5a0 | 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 20 20 28 | gth>.contexts.0)...............( |
| 6c5c0 | 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 20 20 20 | let.(beg.ov.l1.l2).............. |
| 6c5e0 | 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 76 73 29 | ...(pcase-dolist.(`(,buf...,ovs) |
| 6c600 | 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 28 69 66 | .contexts)...................(if |
| 6c620 | 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 20 20 20 | .(bufferp.buf).................. |
| 6c640 | 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 6d 65 20 | .....;;.It's.a.buffer.with.some. |
| 6c660 | 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 20 20 20 | overlay(s)...................... |
| 6c680 | 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 20 20 20 | .(dolist.(source-ov.ovs)........ |
| 6c6a0 | 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 74 2d 62 | .................(with-current-b |
| 6c6c0 | 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 20 20 20 | uffer.buf....................... |
| 6c6e0 | 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 70 6f 73 | ....(setq.l1.(line-number-at-pos |
| 6c700 | 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 20 20 20 | .(overlay-start.source-ov))..... |
| 6c720 | 20 20 20 20 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 32 20 28 | ............................l2.( |
| 6c740 | 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 6e 64 20 | line-number-at-pos.(overlay-end. |
| 6c760 | 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 20 20 20 | source-ov))))................... |
| 6c780 | 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 72 6d 61 | ......(insert.(propertize.(forma |
| 6c7a0 | 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 3a 5c 6e | t."In.buffer.%s.(lines.%d-%d):\n |
| 6c7c0 | 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 20 20 20 | \n"............................. |
| 6c7e0 | 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- |
| 6c800 | 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 20 20 20 | name.buf).l1.l2)................ |
| 6c820 | 20 20 20 20 20 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 61 | .............................'fa |
| 6c840 | 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 20 20 20 | ce.'bold))...................... |
| 6c860 | 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 20 20 20 | ...(setq.beg.(point))........... |
| 6c880 | 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 73 75 62 | ..............(insert-buffer-sub |
| 6c8a0 | 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 20 20 20 | string.......................... |
| 6c8c0 | 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 20 28 6f | buf.(overlay-start.source-ov).(o |
| 6c8e0 | 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 20 20 20 | verlay-end.source-ov)).......... |
| 6c900 | 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 20 20 20 | ...............(insert."\n").... |
| 6c920 | 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 20 28 6d | .....................(setq.ov.(m |
| 6c940 | 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 20 20 20 | ake-overlay.beg.(point)))....... |
| 6c960 | 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 20 6f | ..................(overlay-put.o |
| 6c980 | 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 20 20 20 | v.'gptel-context.source-ov)..... |
| 6c9a0 | 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 |
| 6c9c0 | 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)........... |
| 6c9e0 | 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 20 27 65 | ..............(overlay-put.ov.'e |
| 6ca00 | 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 20 20 20 | vaporate.t)..................... |
| 6ca20 | 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 74 6f 72 | ....(insert."\n".(make-separator |
| 6ca40 | 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 20 20 20 | -line)."\n"))................... |
| 6ca60 | 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 61 20 62 | ..;;.BUF.is.a.file.path,.not.a.b |
| 6ca80 | 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 73 65 72 | uffer.....................(inser |
| 6caa0 | 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 65 20 25 | t.(propertize.(format."In.file.% |
| 6cac0 | 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 72 79 20 | s:\n\n".(file-name-nondirectory. |
| 6cae0 | 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 20 20 20 | buf))........................... |
| 6cb00 | 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 20 20 20 | ..............'face.'bold))..... |
| 6cb20 | 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 69 6e 74 | ................(setq.beg.(point |
| 6cb40 | 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 2a 20 | )).....................(if-let*. |
| 6cb60 | 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 29 0a 20 | ((mime.(plist-get.ovs.:mime))).. |
| 6cb80 | 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 20 69 73 | .......................;;.BUF.is |
| 6cba0 | 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 20 20 20 | .a.binary.file.................. |
| 6cbc0 | 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 63 68 2d | .......(if-let*.(((string-match- |
| 6cbe0 | 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 66 29 29 | p.(image-file-name-regexp).buf)) |
| 6cc00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6cc20 | 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 20 20 20 | ...(img.(create-image.buf))).... |
| 6cc40 | 20 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 65 72 74 | .........................(insert |
| 6cc60 | 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 6c 61 79 | -image.img."*").;.Can.be.display |
| 6cc80 | 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 28 69 6e | ed...........................(in |
| 6cca0 | 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 20 20 20 | sert............................ |
| 6ccc0 | 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 69 65 77 | buf.".".(propertize."(No.preview |
| 6cce0 | 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 20 20 20 | .for.binary.file)".............. |
| 6cd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6cd20 | 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 61 6e 74 | ..'face.'(:inherit.shadow.:slant |
| 6cd40 | 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 20 20 20 | .italic))))..................... |
| 6cd60 | 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 0a 20 20 | ..(insert-file-contents.buf))... |
| 6cd80 | 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 |
| 6cda0 | 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 20 28 69 | int-max)).....................(i |
| 6cdc0 | 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 20 20 20 | nsert."\n")..................... |
| 6cde0 | 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 6f 69 6e | (setq.ov.(make-overlay.beg.(poin |
| 6ce00 | 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 72 6c 61 | t))).....................(overla |
| 6ce20 | 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 20 20 20 | y-put.ov.'gptel-context.buf).... |
| 6ce40 | 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 |
| 6ce60 | 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 20 20 20 | .'gptel-overlay.t).............. |
| 6ce80 | 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 72 61 74 | .......(overlay-put.ov.'evaporat |
| 6cea0 | 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 65 72 74 | e.t).....................(insert |
| 6cec0 | 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 5c 6e 22 | ."\n".(make-separator-line)."\n" |
| 6cee0 | 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 72 20 28 | ))).................(goto-char.( |
| 6cf00 | 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 65 72 74 | point-min))).............(insert |
| 6cf20 | 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 6f 6e 74 | ."There.are.no.active.gptel.cont |
| 6cf40 | 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 65 72 20 | exts."))))).....(display-buffer. |
| 6cf60 | 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 20 20 20 | (current-buffer)................ |
| 6cf80 | 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 77 69 6e | .....`((display-buffer-reuse-win |
| 6cfa0 | 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 73 70 6c | dow........................displ |
| 6cfc0 | 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 20 20 20 | ay-buffer-reuse-mode-window..... |
| 6cfe0 | 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 66 66 65 | ...................display-buffe |
| 6d000 | 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 20 20 20 | r-below-selected)............... |
| 6d020 | 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 65 6c 65 | ........(body-function...,#'sele |
| 6d040 | 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 20 20 20 | ct-window)...................... |
| 6d060 | 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 6f 77 2d | .(window-height...,#'fit-window- |
| 6d080 | 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 2d 63 6f | to-buffer)))))..(defvar.gptel-co |
| 6d0a0 | 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 4c 61 73 | ntext--buffer-reverse.nil..."Las |
| 6d0c0 | 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 74 20 69 | t.direction.of.cursor.movement.i |
| 6d0e0 | 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 6f 6e 2d | n.gptel.context.buffer...If.non- |
| 6d100 | 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 65 6e 74 | nil,.indicates.backward.movement |
| 6d120 | 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 2d 2d 70 | .")..(defalias.'gptel-context--p |
| 6d140 | 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 74 2d 6f | ost-command...(let.((highlight-o |
| 6d160 | 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 20 3b 3b | verlay)).....(lambda.().......;; |
| 6d180 | 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 75 74 73 | .Only.update.if.point.moved.outs |
| 6d1a0 | 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 20 28 75 | ide.the.current.region........(u |
| 6d1c0 | 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 20 28 6f | nless.(memq.highlight-overlay.(o |
| 6d1e0 | 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 28 6c 65 | verlays-at.(point))).........(le |
| 6d200 | 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 20 20 20 | t.((context-overlay............. |
| 6d220 | 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 79 73 2d | ...(cl-loop.for.ov.in.(overlays- |
| 6d240 | 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 20 20 20 | at.(point))..................... |
| 6d260 | 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 20 6f 76 | ....thereis.(and.(overlay-get.ov |
| 6d280 | 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 20 20 20 | .'gptel-overlay).ov))))......... |
| 6d2a0 | 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 20 20 20 | ..(when.highlight-overlay....... |
| 6d2c0 | 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 6f 76 65 | ......(overlay-put.highlight-ove |
| 6d2e0 | 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 68 65 6e | rlay.'face.nil))...........(when |
| 6d300 | 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 28 6f 76 | .context-overlay.............(ov |
| 6d320 | 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 63 65 20 | erlay-put.context-overlay.'face. |
| 6d340 | 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 68 69 67 | 'highlight))...........(setq.hig |
| 6d360 | 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 79 29 29 | hlight-overlay.context-overlay)) |
| 6d380 | 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 73 69 74 | ))))..(defun.gptel-context-visit |
| 6d3a0 | 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 66 20 74 | .()..."Display.the.location.of.t |
| 6d3c0 | 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 73 20 6f | his.gptel.context.chunk.in.its.o |
| 6d3e0 | 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 76 65 29 | riginal.buffer."...(interactive) |
| 6d400 | 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 61 79 73 | ...(let.((ov-here.(car.(overlays |
| 6d420 | 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 28 28 73 | -at.(point))))).....(if-let*.((s |
| 6d440 | 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 70 74 65 | ource.(overlay-get.ov-here.'gpte |
| 6d460 | 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 66 20 28 | l-context))...............(buf.( |
| 6d480 | 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 20 20 20 | if.(overlayp.source)............ |
| 6d4a0 | 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 6f 75 72 | ............(overlay-buffer.sour |
| 6d4c0 | 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 64 2d 66 | ce)......................(find-f |
| 6d4e0 | 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 20 20 20 | ile-noselect.source))).......... |
| 6d500 | 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 6c 61 79 | .....(offset.(-.(point).(overlay |
| 6d520 | 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 69 74 68 | -start.ov-here)))).........(with |
| 6d540 | 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 66 65 72 | -selected-window.(display-buffer |
| 6d560 | 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 66 20 28 | .buf)...........(goto-char.(if.( |
| 6d580 | 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 20 20 20 | overlayp.source)................ |
| 6d5a0 | 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 63 65 29 | ..........(overlay-start.source) |
| 6d5c0 | 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 74 2d 6d | ........................(point-m |
| 6d5e0 | 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 20 6f 66 | in)))...........(forward-char.of |
| 6d600 | 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 20 20 20 | fset)...........(recenter))..... |
| 6d620 | 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 6e 20 66 | ..(message."No.source.location.f |
| 6d640 | 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 29 29 29 | or.this.gptel.context.chunk."))) |
| 6d660 | 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 28 29 0a | )..(defun.gptel-context-next.(). |
| 6d680 | 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 20 63 68 | .."Move.to.next.gptel.context.ch |
| 6d6a0 | 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 28 28 6f | unk."...(interactive)...(let.((o |
| 6d6c0 | 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 6e 74 29 | v-here.(car.(overlays-at.(point) |
| 6d6e0 | 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 2d 6f 76 | ))).........(next-start.(next-ov |
| 6d700 | 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 77 68 65 | erlay-change.(point)))).....(whe |
| 6d720 | 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 74 61 72 | n.(and.(/=.(point-max).next-star |
| 6d740 | 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 69 6e 73 | t).ov-here).......;;.We.were.ins |
| 6d760 | 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 68 65 20 | ide.the.overlay,.so.we.want.the. |
| 6d780 | 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 20 20 20 | next.overlay.change,.which...... |
| 6d7a0 | 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 20 6e 65 | .;;.would.be.the.start.of.the.ne |
| 6d7c0 | 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 73 74 61 | xt.overlay........(setq.next-sta |
| 6d7e0 | 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 73 74 61 | rt.(next-overlay-change.next-sta |
| 6d800 | 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 74 20 28 | rt))).....(when.(/=.next-start.( |
| 6d820 | 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 2d 63 6f | point-max)).......(setq.gptel-co |
| 6d840 | 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 20 20 20 | ntext--buffer-reverse.nil)...... |
| 6d860 | 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 20 28 72 | .(goto-char.next-start).......(r |
| 6d880 | 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 29 20 34 | ecenter.(floor.(window-height).4 |
| 6d8a0 | 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 72 65 76 | )))))..(defun.gptel-context-prev |
| 6d8c0 | 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 70 74 65 | ious.()..."Move.to.previous.gpte |
| 6d8e0 | 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 69 76 65 | l.context.chunk."...(interactive |
| 6d900 | 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 61 79 | )...(let.((ov-here.(car.(overlay |
| 6d920 | 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 2d 68 65 | s-at.(point))))).....(when.ov-he |
| 6d940 | 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 6f 76 2d | re.(goto-char.(overlay-start.ov- |
| 6d960 | 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 6f 6e 74 | here))).....(let.((previous-cont |
| 6d980 | 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 6e 67 65 | ext-pos.(previous-overlay-change |
| 6d9a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6d9c0 | 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 6f 69 6e | ..(previous-overlay-change.(poin |
| 6d9e0 | 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 20 66 72 | t))))).......;;.Prevent.point.fr |
| 6da00 | 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 65 20 62 | om.jumping.to.the.start.of.the.b |
| 6da20 | 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 6f 75 73 | uffer........(unless.(=.previous |
| 6da40 | 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 20 20 20 | -context-pos.(point-min))....... |
| 6da60 | 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 2d 70 6f | ..(goto-char.previous-context-po |
| 6da80 | 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 77 69 6e | s).........(recenter.(floor.(win |
| 6daa0 | 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 20 67 70 | dow-height).4)).........(setq.gp |
| 6dac0 | 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 29 29 29 | tel-context--buffer-reverse.t))) |
| 6dae0 | 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 2d 64 65 | ))..(defun.gptel-context-flag-de |
| 6db00 | 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 78 74 20 | letion.()..."Mark.gptel.context. |
| 6db20 | 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 20 20 28 | chunk.at.point.for.removal."...( |
| 6db40 | 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 79 73 20 | interactive)...(let*.((overlays. |
| 6db60 | 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 20 20 20 | (if.(use-region-p).............. |
| 6db80 | 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 6e 2d 62 | ..........(overlays-in.(region-b |
| 6dba0 | 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 20 20 20 | eginning).(region-end))......... |
| 6dbc0 | 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 69 6e 74 | .............(overlays-at.(point |
| 6dbe0 | 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 20 20 20 | ))))..........(deletion-ov)..... |
| 6dc00 | 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 66 2d 6e | .....(marked-ovs.(cl-remove-if-n |
| 6dc20 | 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. |
| 6dc40 | 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 29 0a 20 | 'gptel-context-deletion-mark)).. |
| 6dc60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6dc80 | 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 6b 65 64 | ......overlays))).....(if.marked |
| 6dca0 | 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 76 65 72 | -ovs.........(mapc.#'delete-over |
| 6dcc0 | 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 78 63 75 | lay.marked-ovs).......(save-excu |
| 6dce0 | 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 72 6c 61 | rsion.........(dolist.(ov.overla |
| 6dd00 | 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 67 65 74 | ys)...........(when.(overlay-get |
| 6dd20 | 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 20 20 20 | .ov.'gptel-context)............. |
| 6dd40 | 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 29 0a 20 | (goto-char.(overlay-start.ov)).. |
| 6dd60 | 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 28 6d 61 | ...........(setq.deletion-ov.(ma |
| 6dd80 | 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 20 28 6f | ke-overlay.(overlay-start.ov).(o |
| 6dda0 | 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 28 6f 76 | verlay-end.ov))).............(ov |
| 6ddc0 | 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 63 6f 6e | erlay-put.deletion-ov.'gptel-con |
| 6dde0 | 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 6f 6e 74 | text.(overlay-get.ov.'gptel-cont |
| 6de00 | 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 74 20 64 | ext)).............(overlay-put.d |
| 6de20 | 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 20 20 20 | eletion-ov.'priority.-80)....... |
| 6de40 | 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 76 20 27 | ......(overlay-put.deletion-ov.' |
| 6de60 | 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 66 61 63 | face.'gptel-context-deletion-fac |
| 6de80 | 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 65 6c 65 | e).............(overlay-put.dele |
| 6dea0 | 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 6f 6e 2d | tion-ov.'gptel-context-deletion- |
| 6dec0 | 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 6f 6e 2d | mark.t))))).....(if.(use-region- |
| 6dee0 | 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 20 20 20 | p).........(deactivate-mark).... |
| 6df00 | 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 72 65 76 | ...(if.gptel-context--buffer-rev |
| 6df20 | 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 2d 70 72 | erse...........(gptel-context-pr |
| 6df40 | 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 74 2d 6e | evious).........(gptel-context-n |
| 6df60 | 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 74 2d 71 | ext)))))..(defun.gptel-context-q |
| 6df80 | 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 61 74 69 | uit.()..."Cancel.pending.operati |
| 6dfa0 | 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 75 2e 22 | ons.and.return.to.gptel's.menu." |
| 6dfc0 | 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 6f 77 29 | ...(interactive)...(quit-window) |
| 6dfe0 | 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 6c 2d 6d | ...(call-interactively.#'gptel-m |
| 6e000 | 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 6f 6e 66 | enu))..(defun.gptel-context-conf |
| 6e020 | 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 72 61 74 | irm.()..."Confirm.pending.operat |
| 6e040 | 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 75 2e | ions.and.return.to.gptel's.menu. |
| 6e060 | 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 20 61 6c | "...(interactive)...;;.Delete.al |
| 6e080 | 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 61 76 65 | l.the.context.overlays.that.have |
| 6e0a0 | 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 28 77 68 | .been.marked.for.deletion....(wh |
| 6e0c0 | 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 20 20 20 | en-let*.((deletion-marks........ |
| 6e0e0 | 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 20 20 20 | ........(delq.nil.(mapcar....... |
| 6e100 | 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 6f 76 29 | ....................(lambda.(ov) |
| 6e120 | 0a 20 20 20 20 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 | .............................(an |
| 6e140 | 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 28 | d..............................( |
| 6e160 | 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 2d 64 65 | overlay-get.ov.'gptel-context-de |
| 6e180 | 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 20 20 20 | letion-mark).................... |
| 6e1a0 | 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 74 65 6c | ..........(overlay-get.ov.'gptel |
| 6e1c0 | 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 20 20 20 | -context)))..................... |
| 6e1e0 | 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 29 20 28 | ......(overlays-in.(point-min).( |
| 6e200 | 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 70 74 65 | point-max)))))).....(mapc.#'gpte |
| 6e220 | 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 6b 73 29 | l-context-remove.deletion-marks) |
| 6e240 | 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 20 20 20 | .....(gptel-context--collect)... |
| 6e260 | 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 72 65 76 | ........;Update.contexts.and.rev |
| 6e280 | 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 2d 62 75 | ert.buffer.(#482).....(revert-bu |
| 6e2a0 | 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 29 0a 0a | ffer))...(gptel-context-quit)).. |
| 6e2c0 | 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 67 70 74 | (provide.'gptel-context).;;;.gpt |
| 6e2e0 | 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 00 00 00 | el-context.el.ends.here......... |
| 6e300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e400 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 4e 45 57 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/NEWS................ |
| 6e420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e460 | 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 |
| 6e480 | 30 30 32 31 31 37 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 30 31 30 00 20 30 00 00 00 | 0021176.00000000000.012010..0... |
| 6e4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e500 | 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................... |
| 6e520 | 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................... |
| 6e540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6e600 | 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 20 32 30 | #.-*-.mode:.org;.-*-..*.0.9.8.20 |
| 6e620 | 32 35 2d 30 33 2d 31 33 0a 0a 56 65 72 73 69 6f 6e 20 30 2e 39 2e 38 20 61 64 64 73 20 73 75 70 | 25-03-13..Version.0.9.8.adds.sup |
| 6e640 | 70 6f 72 74 20 66 6f 72 20 6e 65 77 20 47 65 6d 69 6e 69 2c 20 41 6e 74 68 72 6f 70 69 63 2c 20 | port.for.new.Gemini,.Anthropic,. |
| 6e660 | 4f 70 65 6e 41 49 2c 0a 50 65 72 70 6c 65 78 69 74 79 2c 20 61 6e 64 20 44 65 65 70 53 65 65 6b | OpenAI,.Perplexity,.and.DeepSeek |
| 6e680 | 20 6d 6f 64 65 6c 73 2c 20 69 6e 74 72 6f 64 75 63 65 73 20 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 | .models,.introduces.LLM.tool.use |
| 6e6a0 | 2f 66 75 6e 63 74 69 6f 6e 0a 63 61 6c 6c 69 6e 67 2c 20 61 20 72 65 64 65 73 69 67 6e 20 6f 66 | /function.calling,.a.redesign.of |
| 6e6c0 | 20 7e 67 70 74 65 6c 2d 6d 65 6e 75 7e 2c 20 69 6e 63 6c 75 64 65 73 20 6e 65 77 20 63 75 73 74 | .~gptel-menu~,.includes.new.cust |
| 6e6e0 | 6f 6d 69 7a 61 74 69 6f 6e 20 68 6f 6f 6b 73 2c 0a 64 72 79 2d 72 75 6e 20 6f 70 74 69 6f 6e 73 | omization.hooks,.dry-run.options |
| 6e700 | 20 61 6e 64 20 72 65 66 69 6e 65 64 20 73 65 74 74 69 6e 67 73 2c 20 69 6d 70 72 6f 76 65 6d 65 | .and.refined.settings,.improveme |
| 6e720 | 6e 74 73 20 74 6f 20 74 68 65 20 72 65 77 72 69 74 65 0a 66 65 61 74 75 72 65 20 61 6e 64 20 63 | nts.to.the.rewrite.feature.and.c |
| 6e740 | 6f 6e 74 72 6f 6c 20 6f 66 20 4c 4c 4d 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e | ontrol.of.LLM."reasoning".conten |
| 6e760 | 74 2e 0a 0a 2a 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 0a 0a 2d 20 7e 67 65 6d 69 | t...**.Breaking.changes..-.~gemi |
| 6e780 | 6e 69 2d 70 72 6f 7e 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 | ni-pro~.has.been.removed.from.th |
| 6e7a0 | 65 20 6c 69 73 74 20 6f 66 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 2c 20 61 73 0a 20 20 74 68 | e.list.of.Gemini.models,.as...th |
| 6e7c0 | 69 73 20 6d 6f 64 65 6c 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 73 75 70 70 6f 72 74 65 64 20 | is.model.is.no.longer.supported. |
| 6e7e0 | 62 79 20 74 68 65 20 47 65 6d 69 6e 69 20 41 50 49 2e 0a 0a 2d 20 53 65 6e 64 69 6e 67 20 61 6e | by.the.Gemini.API...-.Sending.an |
| 6e800 | 20 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 77 69 6c 6c 20 | .active.region.in.Org.mode.will. |
| 6e820 | 6e 6f 77 20 61 70 70 6c 79 20 4f 72 67 0a 20 20 6d 6f 64 65 2d 73 70 65 63 69 66 69 63 20 72 75 | now.apply.Org...mode-specific.ru |
| 6e840 | 6c 65 73 20 74 6f 20 74 68 65 20 74 65 78 74 2c 20 73 75 63 68 20 61 73 20 62 72 61 6e 63 68 69 | les.to.the.text,.such.as.branchi |
| 6e860 | 6e 67 20 63 6f 6e 74 65 78 74 2e 0a 0a 2d 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6f 62 73 | ng.context...-.The.following.obs |
| 6e880 | 6f 6c 65 74 65 20 76 61 72 69 61 62 6c 65 73 20 61 6e 64 20 66 75 6e 63 74 69 6f 6e 73 20 68 61 | olete.variables.and.functions.ha |
| 6e8a0 | 76 65 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 3a 0a 20 20 2d 20 7e 67 70 74 65 6c 2d 73 65 6e 64 | ve.been.removed:...-.~gptel-send |
| 6e8c0 | 2d 6d 65 6e 75 7e 3a 20 55 73 65 20 7e 67 70 74 65 6c 2d 6d 65 6e 75 7e 20 69 6e 73 74 65 61 64 | -menu~:.Use.~gptel-menu~.instead |
| 6e8e0 | 2e 0a 20 20 2d 20 7e 67 70 74 65 6c 2d 68 6f 73 74 7e 3a 20 55 73 65 20 7e 67 70 74 65 6c 2d 6d | ....-.~gptel-host~:.Use.~gptel-m |
| 6e900 | 61 6b 65 2d 6f 70 65 6e 61 69 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 65 6c 2d | ake-openai~.instead....-.~gptel- |
| 6e920 | 70 6c 61 79 62 61 63 6b 7e 3a 20 55 73 65 20 7e 67 70 74 65 6c 2d 73 74 72 65 61 6d 7e 20 69 6e | playback~:.Use.~gptel-stream~.in |
| 6e940 | 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 65 6c 2d 2d 64 65 62 75 67 7e 3a 20 55 73 65 20 7e | stead....-.~gptel--debug~:.Use.~ |
| 6e960 | 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 7e 20 69 6e 73 74 65 61 64 2e 0a 0a 2a 2a 20 4e 65 | gptel-log-level~.instead...**.Ne |
| 6e980 | 77 20 6d 6f 64 65 6c 73 20 61 6e 64 20 62 61 63 6b 65 6e 64 73 0a 0a 2d 20 41 64 64 20 73 75 70 | w.models.and.backends..-.Add.sup |
| 6e9a0 | 70 6f 72 74 20 66 6f 72 20 73 65 76 65 72 61 6c 20 6e 65 77 20 47 65 6d 69 6e 69 20 6d 6f 64 65 | port.for.several.new.Gemini.mode |
| 6e9c0 | 6c 73 20 69 6e 63 6c 75 64 69 6e 67 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 | ls.including...~gemini-2.0-flash |
| 6e9e0 | 7e 2c 20 7e 67 65 6d 69 6e 69 2d 32 2e 30 2d 70 72 6f 2d 65 78 70 7e 20 61 6e 64 0a 20 20 7e 67 | ~,.~gemini-2.0-pro-exp~.and...~g |
| 6ea00 | 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e 6b 69 6e 67 2d 65 78 70 7e 2c 20 61 | emini-2.0-flash-thinking-exp~,.a |
| 6ea20 | 6d 6f 6e 67 20 6f 74 68 65 72 73 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 | mong.others...-.Add.support.for. |
| 6ea40 | 74 68 65 20 41 6e 74 68 72 6f 70 69 63 20 6d 6f 64 65 6c 20 7e 63 6c 61 75 64 65 2d 33 2d 37 2d | the.Anthropic.model.~claude-3-7- |
| 6ea60 | 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 7e 2c 0a 20 20 69 6e 63 6c 75 64 69 6e 67 20 69 74 | sonnet-20250219~,...including.it |
| 6ea80 | 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 6f 75 74 70 75 74 2e 0a 0a 2d 20 41 64 64 20 73 75 70 | s."reasoning".output...-.Add.sup |
| 6eaa0 | 70 6f 72 74 20 66 6f 72 20 4f 70 65 6e 41 49 27 73 20 7e 6f 31 7e 2c 20 7e 6f 33 2d 6d 69 6e 69 | port.for.OpenAI's.~o1~,.~o3-mini |
| 6eac0 | 7e 20 61 6e 64 20 7e 67 70 74 2d 34 2e 35 2d 70 72 65 76 69 65 77 7e 0a 20 20 6d 6f 64 65 6c 73 | ~.and.~gpt-4.5-preview~...models |
| 6eae0 | 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 50 65 72 70 6c 65 78 69 74 79 2e | ...-.Add.support.for.Perplexity. |
| 6eb00 | 20 20 57 68 69 6c 65 20 67 70 74 65 6c 20 73 75 70 70 6f 72 74 65 64 20 50 65 72 70 6c 65 78 69 | ..While.gptel.supported.Perplexi |
| 6eb20 | 74 79 20 69 6e 0a 20 20 65 61 72 6c 69 65 72 20 72 65 6c 65 61 73 65 73 20 62 79 20 72 65 75 73 | ty.in...earlier.releases.by.reus |
| 6eb40 | 69 6e 67 20 69 74 73 20 4f 70 65 6e 41 49 20 73 75 70 70 6f 72 74 2c 20 74 68 65 72 65 20 69 73 | ing.its.OpenAI.support,.there.is |
| 6eb60 | 20 6e 6f 77 20 66 69 72 73 74 0a 20 20 63 6c 61 73 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 | .now.first...class.support.for.t |
| 6eb80 | 68 65 20 50 65 72 70 6c 65 78 69 74 79 20 41 50 49 2c 20 69 6e 63 6c 75 64 69 6e 67 20 63 69 74 | he.Perplexity.API,.including.cit |
| 6eba0 | 61 74 69 6f 6e 73 2e 20 20 28 54 68 69 73 0a 20 20 66 65 61 74 75 72 65 20 77 61 73 20 61 64 64 | ations...(This...feature.was.add |
| 6ebc0 | 65 64 20 62 79 20 40 70 69 72 6d 69 6e 6a 2e 29 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 | ed.by.@pirminj.)..-.Add.support. |
| 6ebe0 | 66 6f 72 20 44 65 65 70 53 65 65 6b 2e 20 20 57 68 69 6c 65 20 67 70 74 65 6c 20 73 75 70 70 6f | for.DeepSeek...While.gptel.suppo |
| 6ec00 | 72 74 65 64 20 44 65 65 70 53 65 65 6b 20 69 6e 20 65 61 72 6c 69 65 72 0a 20 20 72 65 6c 65 61 | rted.DeepSeek.in.earlier...relea |
| 6ec20 | 73 65 73 20 62 79 20 72 65 75 73 69 6e 67 20 69 74 73 20 4f 70 65 6e 41 49 20 73 75 70 70 6f 72 | ses.by.reusing.its.OpenAI.suppor |
| 6ec40 | 74 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 77 20 66 69 72 73 74 20 63 6c 61 73 73 0a 20 20 73 75 | t,.there.is.now.first.class...su |
| 6ec60 | 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 44 65 65 70 53 65 65 6b 20 41 50 49 2c 20 69 6e 63 6c | pport.for.the.DeepSeek.API,.incl |
| 6ec80 | 75 64 69 6e 67 20 73 75 70 70 6f 72 74 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 0a 20 20 22 72 65 | uding.support.for.handling..."re |
| 6eca0 | 61 73 6f 6e 69 6e 67 22 20 6f 75 74 70 75 74 2e 0a 0a 2a 2a 20 4e 65 77 20 66 65 61 74 75 72 65 | asoning".output...**.New.feature |
| 6ecc0 | 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 0a 0a 2d 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 | s.and.UI.changes..-.~gptel-rewri |
| 6ece0 | 74 65 7e 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 69 74 65 72 61 74 69 6e 67 20 6f 6e 20 72 65 | te~.now.supports.iterating.on.re |
| 6ed00 | 73 70 6f 6e 73 65 73 2e 0a 0a 2d 20 67 70 74 65 6c 20 73 75 70 70 6f 72 74 73 20 74 68 65 20 61 | sponses...-.gptel.supports.the.a |
| 6ed20 | 62 69 6c 69 74 79 20 74 6f 20 73 69 6d 75 6c 61 74 65 2f 64 72 79 2d 72 75 6e 20 72 65 71 75 65 | bility.to.simulate/dry-run.reque |
| 6ed40 | 73 74 73 20 73 6f 20 79 6f 75 20 63 61 6e 0a 20 20 73 65 65 20 65 78 61 63 74 6c 79 20 77 68 61 | sts.so.you.can...see.exactly.wha |
| 6ed60 | 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 2e 20 20 54 68 69 73 20 70 61 79 6c 6f 61 64 20 70 72 | t.will.be.sent...This.payload.pr |
| 6ed80 | 65 76 69 65 77 20 63 61 6e 20 6e 6f 77 20 62 65 0a 20 20 65 64 69 74 65 64 20 69 6e 20 70 6c 61 | eview.can.now.be...edited.in.pla |
| 6eda0 | 63 65 20 61 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74 69 6e 75 65 64 2e 0a 0a 2d | ce.and.the.request.continued...- |
| 6edc0 | 20 44 69 72 65 63 74 6f 72 69 65 73 20 63 61 6e 20 6e 6f 77 20 62 65 20 61 64 64 65 64 20 74 6f | .Directories.can.now.be.added.to |
| 6ede0 | 20 67 70 74 65 6c 27 73 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 74 2e 20 20 44 6f 69 6e 67 20 | .gptel's.global.context...Doing. |
| 6ee00 | 73 6f 0a 20 20 77 69 6c 6c 20 61 64 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 64 | so...will.add.all.files.in.the.d |
| 6ee20 | 69 72 65 63 74 6f 72 79 20 72 65 63 75 72 73 69 76 65 6c 79 2e 0a 0a 2d 20 22 4f 6e 65 73 68 6f | irectory.recursively...-."Onesho |
| 6ee40 | 74 22 20 73 65 74 74 69 6e 67 73 3a 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 27 73 20 | t".settings:.when.using.gptel's. |
| 6ee60 | 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 2c 20 72 65 71 75 65 73 74 0a 20 20 70 61 72 61 6d | Transient.menus,.request...param |
| 6ee80 | 65 74 65 72 73 2c 20 64 69 72 65 63 74 69 76 65 73 20 61 6e 64 20 74 6f 6f 6c 73 20 63 61 6e 20 | eters,.directives.and.tools.can. |
| 6eea0 | 6e 6f 77 20 62 65 20 73 65 74 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 0a | now.be.set.for.the.next.request. |
| 6eec0 | 20 20 6f 6e 6c 79 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 67 6c 6f 62 61 6c 6c 79 20 61 | ..only.in.addition.to.globally.a |
| 6eee0 | 63 72 6f 73 73 20 74 68 65 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 20 61 6e 64 0a 20 20 62 75 | cross.the.Emacs.session.and...bu |
| 6ef00 | 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c 20 66 6f | ffer-locally...This.is.useful.fo |
| 6ef20 | 72 20 6d 61 6b 69 6e 67 20 6f 6e 65 2d 6f 66 66 20 72 65 71 75 65 73 74 73 20 77 69 74 68 0a 20 | r.making.one-off.requests.with.. |
| 6ef40 | 20 64 69 66 66 65 72 65 6e 74 20 73 65 74 74 69 6e 67 73 2e 0a 0a 2d 20 7e 67 70 74 65 6c 2d 6d | .different.settings...-.~gptel-m |
| 6ef60 | 6f 64 65 7e 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 69 6e 20 61 6c 6c 20 6d 6f 64 65 | ode~.can.now.be.used.in.all.mode |
| 6ef80 | 73 20 64 65 72 69 76 65 64 20 66 72 6f 6d 20 7e 74 65 78 74 2d 6d 6f 64 65 7e 2e 0a 0a 2d 20 67 | s.derived.from.~text-mode~...-.g |
| 6efa0 | 70 74 65 6c 20 6e 6f 77 20 74 72 69 65 73 20 74 6f 20 68 61 6e 64 6c 65 20 4c 4c 4d 20 72 65 73 | ptel.now.tries.to.handle.LLM.res |
| 6efc0 | 70 6f 6e 73 65 73 20 74 68 61 74 20 61 72 65 20 69 6e 20 6d 69 78 65 64 0a 20 20 4f 72 67 2f 4d | ponses.that.are.in.mixed...Org/M |
| 6efe0 | 61 72 6b 64 6f 77 6e 20 6d 61 72 6b 75 70 20 63 6f 72 72 65 63 74 6c 79 2e 0a 0a 2d 20 41 64 64 | arkdown.markup.correctly...-.Add |
| 6f000 | 20 7e 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 7e 20 74 6f | .~gptel-org-convert-response~.to |
| 6f020 | 20 74 6f 67 67 6c 65 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 63 6f 6e 76 65 72 73 69 6f 6e | .toggle.the.automatic.conversion |
| 6f040 | 0a 20 20 6f 66 20 28 70 6f 73 73 69 62 6c 79 29 20 4d 61 72 6b 64 6f 77 6e 2d 66 6f 72 6d 61 74 | ...of.(possibly).Markdown-format |
| 6f060 | 74 65 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 4f 72 67 20 6d 61 72 6b 75 70 20 | ted.LLM.responses.to.Org.markup. |
| 6f080 | 77 68 65 72 65 0a 20 20 61 70 70 72 6f 70 72 69 61 74 65 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 | where...appropriate...-.You.can. |
| 6f0a0 | 6e 6f 77 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 62 61 63 | now.look.up.registered.gptel.bac |
| 6f0c0 | 6b 65 6e 64 73 20 75 73 69 6e 67 20 74 68 65 0a 20 20 7e 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 | kends.using.the...~gptel-get-bac |
| 6f0e0 | 6b 65 6e 64 7e 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 | kend~.function...This.is.intende |
| 6f100 | 64 20 74 6f 20 6d 61 6b 65 20 73 63 72 69 70 74 69 6e 67 0a 20 20 61 6e 64 20 63 6f 6e 66 69 67 | d.to.make.scripting...and.config |
| 6f120 | 75 72 69 6e 67 20 67 70 74 65 6c 20 65 61 73 69 65 72 2e 20 20 7e 67 70 74 65 6c 2d 67 65 74 2d | uring.gptel.easier...~gptel-get- |
| 6f140 | 62 61 63 6b 65 6e 64 7e 20 69 73 20 61 20 67 65 6e 65 72 61 6c 69 7a 65 64 0a 20 20 76 61 72 69 | backend~.is.a.generalized...vari |
| 6f160 | 61 62 6c 65 20 73 6f 20 79 6f 75 20 63 61 6e 20 28 75 6e 29 73 65 74 20 62 61 63 6b 65 6e 64 73 | able.so.you.can.(un)set.backends |
| 6f180 | 20 77 69 74 68 20 7e 73 65 74 66 7e 2e 0a 0a 2d 20 54 6f 6f 6c 20 75 73 65 3a 20 67 70 74 65 6c | .with.~setf~...-.Tool.use:.gptel |
| 6f1a0 | 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 2c 20 6f 72 20 66 | .now.supports.LLM.tool.use,.or.f |
| 6f1c0 | 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 69 6e 67 2e 0a 20 20 45 73 73 65 6e 74 69 61 6c 6c 79 20 79 | unction.calling....Essentially.y |
| 6f1e0 | 6f 75 20 63 61 6e 20 65 71 75 69 70 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 63 61 70 61 62 69 | ou.can.equip.the.LLM.with.capabi |
| 6f200 | 6c 69 74 69 65 73 20 28 73 75 63 68 20 61 73 0a 20 20 66 69 6c 65 73 79 73 74 65 6d 20 61 63 63 | lities.(such.as...filesystem.acc |
| 6f220 | 65 73 73 2c 20 77 65 62 20 73 65 61 72 63 68 2c 20 63 6f 6e 74 72 6f 6c 20 6f 66 20 45 6d 61 63 | ess,.web.search,.control.of.Emac |
| 6f240 | 73 20 6f 72 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 6f 66 0a 20 20 45 6d 61 63 73 27 20 73 | s.or.introspection.of...Emacs'.s |
| 6f260 | 74 61 74 65 20 61 6e 64 20 6d 6f 72 65 29 20 74 68 61 74 20 69 74 20 63 61 6e 20 75 73 65 20 74 | tate.and.more).that.it.can.use.t |
| 6f280 | 6f 20 70 65 72 66 6f 72 6d 20 74 61 73 6b 73 20 66 6f 72 20 79 6f 75 2e 0a 20 20 67 70 74 65 6c | o.perform.tasks.for.you....gptel |
| 6f2a0 | 20 72 75 6e 73 20 74 68 65 73 65 20 74 6f 6f 6c 73 20 75 73 69 6e 67 20 61 72 67 75 6d 65 6e 74 | .runs.these.tools.using.argument |
| 6f2c0 | 20 76 61 6c 75 65 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 74 68 65 20 4c 4c 4d 73 2e 0a 20 20 | .values.provided.by.the.LLMs.... |
| 6f2e0 | 54 68 69 73 20 72 65 71 75 69 72 65 73 20 73 70 65 63 69 66 79 69 6e 67 20 74 6f 6f 6c 73 2c 20 | This.requires.specifying.tools,. |
| 6f300 | 77 68 69 63 68 20 61 72 65 20 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 74 68 20 70 | which.are.elisp.functions.with.p |
| 6f320 | 6c 61 69 6e 0a 20 20 74 65 78 74 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 6f 66 20 74 68 65 69 | lain...text.descriptions.of.thei |
| 6f340 | 72 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 72 65 73 75 6c 74 73 2e 20 20 67 70 74 65 6c 20 | r.arguments.and.results...gptel. |
| 6f360 | 64 6f 65 73 20 6e 6f 74 0a 20 20 69 6e 63 6c 75 64 65 20 61 6e 79 20 74 6f 6f 6c 73 20 6f 75 74 | does.not...include.any.tools.out |
| 6f380 | 20 6f 66 20 74 68 65 20 62 6f 78 20 79 65 74 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 6c 6f 6f 6b | .of.the.box.yet...-.You.can.look |
| 6f3a0 | 20 75 70 20 72 65 67 69 73 74 65 72 65 64 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 75 73 69 6e 67 | .up.registered.gptel.tools.using |
| 6f3c0 | 20 74 68 65 20 7e 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 7e 0a 20 20 66 75 6e 63 74 69 6f 6e | .the.~gptel-get-tool~...function |
| 6f3e0 | 2e 20 20 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 6d 61 6b 65 20 73 63 72 69 | ...This.is.intended.to.make.scri |
| 6f400 | 70 74 69 6e 67 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 69 6e 67 20 67 70 74 65 6c 0a 20 20 65 61 | pting.and.configuring.gptel...ea |
| 6f420 | 73 69 65 72 2e 20 20 7e 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 7e 20 69 73 20 61 20 67 65 6e | sier...~gptel-get-tool~.is.a.gen |
| 6f440 | 65 72 61 6c 69 7a 65 64 20 76 61 72 69 61 62 6c 65 20 73 6f 20 79 6f 75 20 63 61 6e 0a 20 20 28 | eralized.variable.so.you.can...( |
| 6f460 | 75 6e 29 73 65 74 20 74 6f 6f 6c 73 20 77 69 74 68 20 7e 73 65 74 66 7e 2e 0a 0a 2d 20 4e 65 77 | un)set.tools.with.~setf~...-.New |
| 6f480 | 20 68 6f 6f 6b 73 20 66 6f 72 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 3a 0a 20 20 2b 20 7e 67 | .hooks.for.customization:...+.~g |
| 6f4a0 | 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 7e 20 72 75 6e 73 20 69 6e | ptel-prompt-filter-hook~.runs.in |
| 6f4c0 | 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 67 0a 20 | .a.temporary.buffer.containing.. |
| 6f4e0 | 20 20 20 74 68 65 20 74 65 78 74 20 74 6f 20 62 65 20 73 65 6e 74 2c 20 62 65 66 6f 72 65 20 74 | ...the.text.to.be.sent,.before.t |
| 6f500 | 68 65 20 66 75 6c 6c 20 71 75 65 72 79 20 69 73 20 63 72 65 61 74 65 64 2e 20 20 49 74 20 63 61 | he.full.query.is.created...It.ca |
| 6f520 | 6e 20 62 65 0a 20 20 20 20 75 73 65 64 20 66 6f 72 20 61 72 62 69 74 72 61 72 79 20 74 65 78 74 | n.be.....used.for.arbitrary.text |
| 6f540 | 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 74 6f 20 74 68 65 20 73 6f 75 72 63 65 20 74 | .transformations.to.the.source.t |
| 6f560 | 65 78 74 2e 0a 20 20 2b 20 7e 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f | ext....+.~gptel-post-request-hoo |
| 6f580 | 6b 7e 20 72 75 6e 73 20 61 66 74 65 72 20 74 68 65 20 72 65 71 75 65 73 74 20 69 73 20 73 65 6e | k~.runs.after.the.request.is.sen |
| 6f5a0 | 74 2c 20 61 6e 64 0a 20 20 20 20 28 70 6f 73 73 69 62 6c 79 29 20 62 65 66 6f 72 65 20 61 6e 79 | t,.and.....(possibly).before.any |
| 6f5c0 | 20 72 65 73 70 6f 6e 73 65 20 69 73 20 72 65 63 65 69 76 65 64 2e 20 20 54 68 69 73 20 69 73 20 | .response.is.received...This.is. |
| 6f5e0 | 69 6e 74 65 6e 64 65 64 20 66 6f 72 0a 20 20 20 20 70 72 65 70 61 72 61 74 6f 72 79 2f 72 65 73 | intended.for.....preparatory/res |
| 6f600 | 65 74 20 63 6f 64 65 2e 0a 20 20 2b 20 7e 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 77 72 69 74 65 | et.code....+.~gptel-post-rewrite |
| 6f620 | 2d 68 6f 6f 6b 7e 20 72 75 6e 73 20 61 66 74 65 72 20 61 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 | -hook~.runs.after.a.~gptel-rewri |
| 6f640 | 74 65 7e 20 72 65 71 75 65 73 74 20 69 73 0a 20 20 20 20 73 75 63 63 65 73 73 66 75 6c 6c 79 20 | te~.request.is.....successfully. |
| 6f660 | 61 6e 64 20 66 75 6c 6c 79 20 72 65 63 65 69 76 65 64 2e 0a 0a 2d 20 7e 67 70 74 65 6c 2d 6d 65 | and.fully.received...-.~gptel-me |
| 6f680 | 6e 75 7e 20 68 61 73 20 62 65 65 6e 20 72 65 64 65 73 69 67 6e 65 64 2e 20 20 49 74 20 6e 6f 77 | nu~.has.been.redesigned...It.now |
| 6f6a0 | 20 73 68 6f 77 73 20 61 20 76 65 72 62 6f 73 65 0a 20 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f | .shows.a.verbose...description.o |
| 6f6c0 | 66 20 77 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 6e 64 20 77 68 65 72 65 20 74 68 | f.what.will.be.sent.and.where.th |
| 6f6e0 | 65 20 6f 75 74 70 75 74 20 77 69 6c 6c 20 67 6f 2e 20 20 54 68 69 73 0a 20 20 69 73 20 69 6e 74 | e.output.will.go...This...is.int |
| 6f700 | 65 6e 64 65 64 20 74 6f 20 70 72 6f 76 69 64 65 20 63 6c 61 72 69 74 79 20 6f 6e 20 67 70 74 65 | ended.to.provide.clarity.on.gpte |
| 6f720 | 6c 27 73 20 64 65 66 61 75 6c 74 20 70 72 6f 6d 70 74 69 6e 67 0a 20 20 62 65 68 61 76 69 6f 72 | l's.default.prompting...behavior |
| 6f740 | 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 74 68 65 20 65 66 66 65 63 74 20 6f 66 20 74 68 65 20 76 | ,.as.well.as.the.effect.of.the.v |
| 6f760 | 61 72 69 6f 75 73 20 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 0a 20 20 72 65 64 69 72 65 63 | arious.prompt/response...redirec |
| 6f780 | 74 69 6f 6e 20 69 74 20 70 72 6f 76 69 64 65 73 2e 20 20 49 6e 63 6f 6d 70 61 74 69 62 6c 65 20 | tion.it.provides...Incompatible. |
| 6f7a0 | 63 6f 6d 62 69 6e 61 74 69 6f 6e 73 20 6f 66 20 6f 70 74 69 6f 6e 73 20 61 72 65 0a 20 20 6e 6f | combinations.of.options.are...no |
| 6f7c0 | 77 20 64 69 73 61 6c 6c 6f 77 65 64 2e 0a 0a 2d 20 54 68 65 20 73 70 61 63 69 6e 67 20 62 65 74 | w.disallowed...-.The.spacing.bet |
| 6f7e0 | 77 65 65 6e 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 61 6e 64 20 74 | ween.the.end.of.the.prompt.and.t |
| 6f800 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 0a 20 20 72 65 73 70 6f 6e 73 65 20 69 | he.beginning.of.the...response.i |
| 6f820 | 6e 20 62 75 66 66 65 72 73 20 69 73 20 6e 6f 77 20 63 75 73 74 6f 6d 69 7a 61 62 6c 65 20 76 69 | n.buffers.is.now.customizable.vi |
| 6f840 | 61 0a 20 20 7e 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 7e 2c 20 | a...~gptel-response-separator~,. |
| 6f860 | 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 73 74 72 69 6e 67 2e 0a 0a 2d 20 7e 67 70 74 65 6c | and.can.be.any.string...-.~gptel |
| 6f880 | 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 7e 20 69 73 20 6e 6f 77 20 61 6e 20 69 | -context-remove-all~.is.now.an.i |
| 6f8a0 | 6e 74 65 72 61 63 74 69 76 65 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 2d 20 67 70 74 65 6c 20 6e 6f 77 | nteractive.command...-.gptel.now |
| 6f8c0 | 20 68 61 6e 64 6c 65 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 20 70 72 6f | .handles."reasoning".content.pro |
| 6f8e0 | 64 75 63 65 64 20 62 79 20 4c 4c 4d 73 2e 20 20 53 6f 6d 65 20 4c 4c 4d 73 0a 20 20 69 6e 63 6c | duced.by.LLMs...Some.LLMs...incl |
| 6f900 | 75 64 65 20 69 6e 20 74 68 65 69 72 20 72 65 73 70 6f 6e 73 65 20 61 20 22 74 68 69 6e 6b 69 6e | ude.in.their.response.a."thinkin |
| 6f920 | 67 22 20 6f 72 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 73 65 63 74 69 6f 6e 2e 20 20 54 68 69 73 | g".or."reasoning".section...This |
| 6f940 | 0a 20 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 79 20 6f 66 20 | ...text.improves.the.quality.of. |
| 6f960 | 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 75 74 20 6d 61 | the.LLM...s.final.output,.but.ma |
| 6f980 | 79 20 6e 6f 74 20 62 65 0a 20 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 6f 20 79 6f 75 20 62 79 | y.not.be...interesting.to.you.by |
| 6f9a0 | 20 69 74 73 65 6c 66 2e 20 20 54 68 65 20 6e 65 77 20 75 73 65 72 20 6f 70 74 69 6f 6e 0a 20 20 | .itself...The.new.user.option... |
| 6f9c0 | 7e 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 7e 20 63 6f 6e 74 72 6f | ~gptel-include-reasoning~.contro |
| 6f9e0 | 6c 73 20 77 68 65 74 68 65 72 20 61 6e 64 20 68 6f 77 20 67 70 74 65 6c 20 64 69 73 70 6c 61 79 | ls.whether.and.how.gptel.display |
| 6fa00 | 73 0a 20 20 74 68 69 73 20 63 6f 6e 74 65 6e 74 2e 0a 0a 2d 20 28 41 6e 74 68 72 6f 70 69 63 20 | s...this.content...-.(Anthropic. |
| 6fa20 | 41 50 49 20 6f 6e 6c 79 29 20 53 6f 6d 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 20 63 61 6e 20 | API.only).Some.LLM.backends.can. |
| 6fa40 | 63 61 63 68 65 20 63 6f 6e 74 65 6e 74 20 73 65 6e 74 20 74 6f 20 69 74 0a 20 20 62 79 20 67 70 | cache.content.sent.to.it...by.gp |
| 6fa60 | 74 65 6c 2c 20 73 6f 20 74 68 61 74 20 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 |
| 6fa80 | 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 0a 20 | uded.part.of.the.text.needs.to.. |
| 6faa0 | 20 62 65 20 70 72 6f 63 65 73 73 65 64 20 6f 6e 20 73 75 62 73 65 71 75 65 6e 74 20 63 6f 6e 76 | .be.processed.on.subsequent.conv |
| 6fac0 | 65 72 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 | ersation.turns...This.results.in |
| 6fae0 | 0a 20 20 66 61 73 74 65 72 20 61 6e 64 20 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 63 68 65 61 | ...faster.and.significantly.chea |
| 6fb00 | 70 65 72 20 70 72 6f 63 65 73 73 69 6e 67 2e 20 54 68 65 20 6e 65 77 20 75 73 65 72 20 6f 70 74 | per.processing..The.new.user.opt |
| 6fb20 | 69 6f 6e 0a 20 20 7e 67 70 74 65 6c 2d 63 61 63 68 65 7e 20 63 61 6e 20 62 65 20 75 73 65 64 20 | ion...~gptel-cache~.can.be.used. |
| 6fb40 | 74 6f 20 73 70 65 63 69 66 79 20 63 61 63 68 69 6e 67 20 70 72 65 66 65 72 65 6e 63 65 73 20 66 | to.specify.caching.preferences.f |
| 6fb60 | 6f 72 0a 20 20 70 72 6f 6d 70 74 73 2c 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 | or...prompts,.the.system.message |
| 6fb80 | 20 61 6e 64 2f 6f 72 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 2e 20 20 54 68 69 73 20 | .and/or.tool.definitions...This. |
| 6fba0 | 69 73 0a 20 20 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 72 | is...supported.only.by.the.Anthr |
| 6fbc0 | 6f 70 69 63 20 41 50 49 20 72 69 67 68 74 20 6e 6f 77 2e 0a 0a 2d 20 28 4f 72 67 20 6d 6f 64 65 | opic.API.right.now...-.(Org.mode |
| 6fbe0 | 29 20 4f 72 67 20 70 72 6f 70 65 72 74 79 20 64 72 61 77 65 72 73 20 61 72 65 20 6e 6f 77 20 73 | ).Org.property.drawers.are.now.s |
| 6fc00 | 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6d 70 74 0a 20 20 74 65 78 74 20 62 | tripped.from.the.prompt...text.b |
| 6fc20 | 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 71 75 65 72 69 65 73 2e 20 20 59 6f 75 20 63 61 6e 20 | efore.sending.queries...You.can. |
| 6fc40 | 63 6f 6e 74 72 6f 6c 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 6f 72 0a 20 20 73 70 65 63 69 | control.this.behavior.or...speci |
| 6fc60 | 66 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 4f 72 67 20 65 6c 65 6d 65 6e 74 73 20 74 6f 20 69 67 | fy.additional.Org.elements.to.ig |
| 6fc80 | 6e 6f 72 65 20 76 69 61 0a 20 20 7e 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 | nore.via...~gptel-org-ignore-ele |
| 6fca0 | 6d 65 6e 74 73 7e 2e 20 20 28 46 6f 72 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 70 72 65 2d 70 | ments~...(For.more.complex.pre-p |
| 6fcc0 | 72 6f 63 65 73 73 69 6e 67 20 79 6f 75 0a 20 20 63 61 6e 20 75 73 65 20 7e 67 70 74 65 6c 2d 70 | rocessing.you...can.use.~gptel-p |
| 6fce0 | 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 7e 2e 29 0a 0a 2a 2a 20 4e 6f 74 61 62 6c 65 | rompt-filter-hook~.)..**.Notable |
| 6fd00 | 20 42 75 67 20 66 69 78 65 73 0a 0a 2d 20 46 69 78 20 72 65 73 70 6f 6e 73 65 20 6d 69 78 2d 75 | .Bug.fixes..-.Fix.response.mix-u |
| 6fd20 | 70 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6e 63 75 72 72 65 6e 74 20 72 65 71 75 65 73 | p.when.running.concurrent.reques |
| 6fd40 | 74 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 0a 20 20 62 75 66 66 65 72 73 2e 0a 2d 20 67 70 74 65 | ts.in.Org.mode...buffers..-.gpte |
| 6fd60 | 6c 20 6e 6f 77 20 77 6f 72 6b 73 20 61 72 6f 75 6e 64 20 61 6e 20 4f 72 67 20 66 6f 6e 74 69 66 | l.now.works.around.an.Org.fontif |
| 6fd80 | 69 63 61 74 69 6f 6e 20 62 75 67 20 77 68 65 72 65 20 73 74 72 65 61 6d 69 6e 67 0a 20 20 72 65 | ication.bug.where.streaming...re |
| 6fda0 | 73 70 6f 6e 73 65 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 20 62 75 66 66 65 72 73 20 73 6f 6d 65 | sponses.in.Org.mode.buffers.some |
| 6fdc0 | 74 69 6d 65 73 20 63 61 75 73 65 64 20 73 6f 75 72 63 65 20 63 6f 64 65 20 62 6c 6f 63 6b 73 20 | times.caused.source.code.blocks. |
| 6fde0 | 74 6f 0a 20 20 72 65 6d 61 69 6e 20 75 6e 66 6f 6e 74 69 66 69 65 64 2e 0a 0a 2a 20 30 2e 39 2e | to...remain.unfontified...*.0.9. |
| 6fe00 | 37 20 32 30 32 34 2d 31 32 2d 30 34 0a 0a 56 65 72 73 69 6f 6e 20 30 2e 39 2e 37 20 61 64 64 73 | 7.2024-12-04..Version.0.9.7.adds |
| 6fe20 | 20 64 79 6e 61 6d 69 63 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 20 62 65 74 74 65 72 20 72 65 | .dynamic.directives,.a.better.re |
| 6fe40 | 77 72 69 74 65 20 69 6e 74 65 72 66 61 63 65 2c 0a 73 74 72 65 61 6d 69 6e 67 20 73 75 70 70 6f | write.interface,.streaming.suppo |
| 6fe60 | 72 74 20 74 6f 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 41 50 49 2c 20 61 6e 64 | rt.to.the.gptel.request.API,.and |
| 6fe80 | 20 6d 6f 72 65 20 66 6c 65 78 69 62 6c 65 0a 6d 6f 64 65 6c 2f 62 61 63 6b 65 6e 64 20 63 6f 6e | .more.flexible.model/backend.con |
| 6fea0 | 66 69 67 75 72 61 74 69 6f 6e 2e 0a 0a 2a 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 | figuration...**.Breaking.changes |
| 6fec0 | 0a 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 6d 65 6e 75 7e 20 68 61 73 20 62 65 65 6e 20 6f | .~gptel-rewrite-menu~.has.been.o |
| 6fee0 | 62 73 6f 6c 65 74 65 64 2e 20 20 55 73 65 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 20 69 | bsoleted...Use.~gptel-rewrite~.i |
| 6ff00 | 6e 73 74 65 61 64 2e 0a 0a 2a 2a 20 42 61 63 6b 65 6e 64 73 0a 2d 20 41 64 64 20 73 75 70 70 6f | nstead...**.Backends.-.Add.suppo |
| 6ff20 | 72 74 20 66 6f 72 20 4f 70 65 6e 41 49 27 73 20 7e 6f 31 2d 70 72 65 76 69 65 77 7e 20 61 6e 64 | rt.for.OpenAI's.~o1-preview~.and |
| 6ff40 | 20 7e 6f 31 2d 6d 69 6e 69 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 | .~o1-mini~...-.Add.support.for.A |
| 6ff60 | 6e 74 68 72 6f 70 69 63 27 73 20 43 6c 61 75 64 65 20 33 2e 35 20 48 61 69 6b 75 2e 0a 0a 2d 20 | nthropic's.Claude.3.5.Haiku...-. |
| 6ff80 | 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 78 41 49 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 | Add.support.for.xAI...-.Add.supp |
| 6ffa0 | 6f 72 74 20 66 6f 72 20 4e 6f 76 69 74 61 20 41 49 2e 0a 0a 2a 2a 20 4e 65 77 20 66 65 61 74 75 | ort.for.Novita.AI...**.New.featu |
| 6ffc0 | 72 65 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 0a 0a 2d 20 67 70 74 65 6c 27 73 20 64 69 | res.and.UI.changes..-.gptel's.di |
| 6ffe0 | 72 65 63 74 69 76 65 73 20 28 73 65 65 20 7e 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 7e | rectives.(see.~gptel-directives~ |
| 70000 | 29 20 63 61 6e 20 6e 6f 77 20 62 65 20 64 79 6e 61 6d 69 63 2c 20 61 6e 64 0a 20 20 69 6e 63 6c | ).can.now.be.dynamic,.and...incl |
| 70020 | 75 64 65 20 6d 6f 72 65 20 74 68 61 6e 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 | ude.more.than.the.system.message |
| 70040 | 2e 20 20 59 6f 75 20 63 61 6e 20 22 70 72 65 2d 66 69 6c 6c 22 20 61 0a 20 20 63 6f 6e 76 65 72 | ...You.can."pre-fill".a...conver |
| 70060 | 73 61 74 69 6f 6e 20 77 69 74 68 20 63 61 6e 6e 65 64 20 75 73 65 72 2f 4c 4c 4d 20 6d 65 73 73 | sation.with.canned.user/LLM.mess |
| 70080 | 61 67 65 73 2e 20 20 44 69 72 65 63 74 69 76 65 73 20 63 61 6e 20 6e 6f 77 20 62 65 0a 20 20 66 | ages...Directives.can.now.be...f |
| 700a0 | 75 6e 63 74 69 6f 6e 73 20 74 68 61 74 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 | unctions.that.dynamically.genera |
| 700c0 | 74 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 20 20 63 6f 6e 76 | te.the.system.message.and...conv |
| 700e0 | 65 72 73 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 63 75 | ersation.history.based.on.the.cu |
| 70100 | 72 72 65 6e 74 20 63 6f 6e 74 65 78 74 2e 20 20 54 68 69 73 20 70 61 76 65 73 20 74 68 65 0a 20 | rrent.context...This.paves.the.. |
| 70120 | 20 77 61 79 20 66 6f 72 20 66 75 6c 6c 79 20 66 6c 65 78 69 62 6c 65 20 74 61 73 6b 2d 73 70 65 | .way.for.fully.flexible.task-spe |
| 70140 | 63 69 66 69 63 20 74 65 6d 70 6c 61 74 65 73 2c 20 77 68 69 63 68 20 74 68 65 20 55 49 20 64 6f | cific.templates,.which.the.UI.do |
| 70160 | 65 73 0a 20 20 6e 6f 74 20 79 65 74 20 73 75 70 70 6f 72 74 20 69 6e 20 66 75 6c 6c 2e 0a 0a 2d | es...not.yet.support.in.full...- |
| 70180 | 20 67 70 74 65 6c 27 73 20 72 65 77 72 69 74 65 20 69 6e 74 65 72 66 61 63 65 20 68 61 73 20 62 | .gptel's.rewrite.interface.has.b |
| 701a0 | 65 65 6e 20 72 65 77 6f 72 6b 65 64 2e 20 20 49 66 20 75 73 69 6e 67 20 61 20 73 74 72 65 61 6d | een.reworked...If.using.a.stream |
| 701c0 | 69 6e 67 0a 20 20 65 6e 64 70 6f 69 6e 74 2c 20 74 68 65 20 72 65 77 72 69 74 74 65 6e 20 74 65 | ing...endpoint,.the.rewritten.te |
| 701e0 | 78 74 20 69 73 20 73 74 72 65 61 6d 65 64 20 69 6e 20 61 73 20 61 20 70 72 65 76 69 65 77 20 70 | xt.is.streamed.in.as.a.preview.p |
| 70200 | 6c 61 63 65 64 20 6f 76 65 72 0a 20 20 74 68 65 20 6f 72 69 67 69 6e 61 6c 2e 20 20 49 6e 20 61 | laced.over...the.original...In.a |
| 70220 | 6c 6c 20 63 61 73 65 73 2c 20 63 6c 69 63 6b 69 6e 67 20 6f 6e 20 74 68 65 20 70 72 65 76 69 65 | ll.cases,.clicking.on.the.previe |
| 70240 | 77 20 62 72 69 6e 67 73 20 75 70 20 61 0a 20 20 64 69 73 70 61 74 63 68 20 79 6f 75 20 63 61 6e | w.brings.up.a...dispatch.you.can |
| 70260 | 20 75 73 65 20 74 6f 20 65 61 73 69 6c 79 20 64 69 66 66 2c 20 65 64 69 66 66 2c 20 6d 65 72 67 | .use.to.easily.diff,.ediff,.merg |
| 70280 | 65 2c 20 61 63 63 65 70 74 20 6f 72 20 72 65 6a 65 63 74 0a 20 20 74 68 65 20 63 68 61 6e 67 65 | e,.accept.or.reject...the.change |
| 702a0 | 73 20 28 34 61 65 39 63 31 62 32 29 2c 20 61 6e 64 20 79 6f 75 20 63 61 6e 20 63 6f 6e 66 69 67 | s.(4ae9c1b2),.and.you.can.config |
| 702c0 | 75 72 65 20 67 70 74 65 6c 20 74 6f 20 72 75 6e 20 6f 6e 65 20 6f 66 0a 20 20 74 68 65 73 65 20 | ure.gptel.to.run.one.of...these. |
| 702e0 | 61 63 74 69 6f 6e 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2e 20 20 53 65 65 20 74 68 65 20 | actions.automatically...See.the. |
| 70300 | 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 0a 0a 2d 20 7e 67 70 74 65 6c 2d 61 | README.for.examples...-.~gptel-a |
| 70320 | 62 6f 72 74 7e 2c 20 75 73 65 64 20 74 6f 20 63 61 6e 63 65 6c 20 72 65 71 75 65 73 74 73 20 69 | bort~,.used.to.cancel.requests.i |
| 70340 | 6e 20 70 72 6f 67 72 65 73 73 2c 20 6e 6f 77 20 77 6f 72 6b 73 20 61 63 72 6f 73 73 0a 20 20 74 | n.progress,.now.works.across...t |
| 70360 | 68 65 20 62 6f 61 72 64 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 68 65 6e 20 6e 6f 74 20 75 73 69 | he.board,.including.when.not.usi |
| 70380 | 6e 67 20 43 75 72 6c 20 6f 72 20 77 69 74 68 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 2e | ng.Curl.or.with.~gptel-rewrite~. |
| 703a0 | 0a 0a 2d 20 54 68 65 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 7e 20 41 50 49 20 6e 6f 77 20 | ..-.The.~gptel-request~.API.now. |
| 703c0 | 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 70 6f 72 74 73 20 73 74 72 65 61 6d 69 6e 67 20 72 65 | explicitly.supports.streaming.re |
| 703e0 | 73 70 6f 6e 73 65 73 0a 20 20 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f 20 77 72 | sponses...,.making.it.easy.to.wr |
| 70400 | 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 68 65 6c 70 65 72 73 20 6f 72 20 66 65 61 74 75 72 65 73 | ite.your.own.helpers.or.features |
| 70420 | 20 77 69 74 68 0a 20 20 73 74 72 65 61 6d 69 6e 67 20 73 75 70 70 6f 72 74 2e 20 20 54 68 65 20 | .with...streaming.support...The. |
| 70440 | 41 50 49 20 61 6c 73 6f 20 73 75 70 70 6f 72 74 73 20 7e 67 70 74 65 6c 2d 61 62 6f 72 74 7e 20 | API.also.supports.~gptel-abort~. |
| 70460 | 74 6f 20 73 74 6f 70 20 61 6e 64 0a 20 20 63 6c 65 61 6e 20 75 70 20 72 65 73 70 6f 6e 73 65 73 | to.stop.and...clean.up.responses |
| 70480 | 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 75 6e 73 65 74 20 74 68 65 20 73 79 73 74 65 | ...-.You.can.now.unset.the.syste |
| 704a0 | 6d 20 6d 65 73 73 61 67 65 20 2d 2d 20 64 69 66 66 65 72 65 6e 74 20 66 72 6f 6d 20 73 65 74 74 | m.message.--.different.from.sett |
| 704c0 | 69 6e 67 20 69 74 20 74 6f 0a 20 20 61 6e 20 65 6d 70 74 79 20 73 74 72 69 6e 67 2e 20 20 67 70 | ing.it.to...an.empty.string...gp |
| 704e0 | 74 65 6c 20 77 69 6c 6c 20 61 6c 73 6f 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69 73 61 | tel.will.also.automatically.disa |
| 70500 | 62 6c 65 20 74 68 65 20 73 79 73 74 65 6d 0a 20 20 6d 65 73 73 61 67 65 20 77 68 65 6e 20 75 73 | ble.the.system...message.when.us |
| 70520 | 69 6e 67 20 6d 6f 64 65 6c 73 20 74 68 61 74 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 74 | ing.models.that.don't.support.it |
| 70540 | 2e 0a 0a 2d 20 53 75 70 70 6f 72 74 20 66 6f 72 20 69 6e 63 6c 75 64 69 6e 67 20 50 44 46 73 20 | ...-.Support.for.including.PDFs. |
| 70560 | 77 69 74 68 20 72 65 71 75 65 73 74 73 20 74 6f 20 41 6e 74 68 72 6f 70 69 63 20 6d 6f 64 65 6c | with.requests.to.Anthropic.model |
| 70580 | 73 20 68 61 73 0a 20 20 62 65 65 6e 20 61 64 64 65 64 2e 20 20 28 54 68 65 73 65 20 71 75 65 72 | s.has...been.added...(These.quer |
| 705a0 | 69 65 73 20 61 72 65 20 63 61 63 68 65 64 2c 20 73 6f 20 79 6f 75 20 70 61 79 20 6f 6e 6c 79 20 | ies.are.cached,.so.you.pay.only. |
| 705c0 | 31 30 25 20 6f 66 20 74 68 65 0a 20 20 74 6f 6b 65 6e 20 63 6f 73 74 20 6f 66 20 74 68 65 20 50 | 10%.of.the...token.cost.of.the.P |
| 705e0 | 44 46 20 69 6e 20 66 6f 6c 6c 6f 77 2d 75 70 20 71 75 65 72 69 65 73 2e 29 20 20 4e 6f 74 65 20 | DF.in.follow-up.queries.)..Note. |
| 70600 | 74 68 61 74 20 64 6f 63 75 6d 65 6e 74 0a 20 20 73 75 70 70 6f 72 74 20 28 50 44 46 73 20 65 74 | that.document...support.(PDFs.et |
| 70620 | 63 29 20 66 6f 72 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 20 68 61 73 20 62 65 65 6e 20 61 76 | c).for.Gemini.models.has.been.av |
| 70640 | 61 69 6c 61 62 6c 65 20 73 69 6e 63 65 0a 20 20 76 30 2e 39 2e 35 2e 0a 0a 2d 20 57 68 65 6e 20 | ailable.since...v0.9.5...-.When. |
| 70660 | 64 65 66 69 6e 69 6e 67 20 61 20 67 70 74 65 6c 20 6d 6f 64 65 6c 20 6f 72 20 62 61 63 6b 65 6e | defining.a.gptel.model.or.backen |
| 70680 | 64 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 72 62 69 74 72 61 72 79 0a 20 20 70 | d,.you.can.specify.arbitrary...p |
| 706a0 | 61 72 61 6d 65 74 65 72 73 20 74 6f 20 62 65 20 73 65 6e 74 20 77 69 74 68 20 65 61 63 68 20 72 | arameters.to.be.sent.with.each.r |
| 706c0 | 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 28 6d 61 6e 79 | equest...This.includes.the.(many |
| 706e0 | 29 0a 20 20 41 50 49 20 6f 70 74 69 6f 6e 73 20 61 63 72 6f 73 73 20 61 6c 6c 20 41 50 49 73 20 | )...API.options.across.all.APIs. |
| 70700 | 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 79 65 74 20 70 72 6f 76 69 64 65 20 | that.gptel.does.not.yet.provide. |
| 70720 | 65 78 70 6c 69 63 69 74 0a 20 20 73 75 70 70 6f 72 74 20 66 6f 72 2e 0a 0a 2d 20 4e 65 77 20 74 | explicit...support.for...-.New.t |
| 70740 | 72 61 6e 73 69 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 6f 70 74 69 6f 6e 20 74 6f 20 65 61 73 69 6c | ransient.command.option.to.easil |
| 70760 | 79 20 72 65 6d 6f 76 65 20 61 6c 6c 20 69 6e 63 6c 75 64 65 64 20 63 6f 6e 74 65 78 74 0a 20 20 | y.remove.all.included.context... |
| 70780 | 63 68 75 6e 6b 73 2e 0a 0a 2a 2a 20 4e 6f 74 61 62 6c 65 20 42 75 67 20 66 69 78 65 73 0a 2d 20 | chunks...**.Notable.Bug.fixes.-. |
| 707a0 | 50 72 65 73 73 69 6e 67 20 7e 52 45 54 7e 20 6f 6e 20 69 6e 63 6c 75 64 65 64 20 66 69 6c 65 73 | Pressing.~RET~.on.included.files |
| 707c0 | 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 20 69 6e 73 70 65 63 74 6f 72 20 62 75 66 66 65 72 | .in.the.context.inspector.buffer |
| 707e0 | 20 6e 6f 77 0a 20 20 70 6f 70 73 20 75 70 20 74 68 65 20 66 69 6c 65 20 63 6f 72 72 65 63 74 6c | .now...pops.up.the.file.correctl |
| 70800 | 79 2e 0a 2d 20 41 50 49 20 6b 65 79 73 20 61 72 65 20 73 74 72 69 70 70 65 64 20 6f 66 20 77 68 | y..-.API.keys.are.stripped.of.wh |
| 70820 | 69 74 65 73 70 61 63 65 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 2e 0a 2d 20 4d 75 6c 74 69 | itespace.before.sending..-.Multi |
| 70840 | 70 6c 65 20 55 49 2c 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 70 72 6f 6d 70 74 20 63 6f 6e 73 74 | ple.UI,.backend.and.prompt.const |
| 70860 | 72 75 63 74 69 6f 6e 20 62 75 67 73 20 68 61 76 65 20 62 65 65 6e 20 66 69 78 65 64 2e 0a 00 00 | ruction.bugs.have.been.fixed.... |
| 70880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 708a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 708c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 708e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 709a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 709c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 709e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70a00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2e 65 6c 00 00 00 00 | gptel-0.9.8/gptel-rewrite.el.... |
| 70a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70a60 | 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 |
| 70a80 | 30 30 37 31 31 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 32 36 00 20 30 00 00 00 | 0071145.00000000000.014426..0... |
| 70aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70b00 | 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................... |
| 70b20 | 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................... |
| 70b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 70c00 | 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 |
| 70c20 | 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 |
| 70c40 | 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 |
| 70c60 | 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 |
| 70c80 | 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 |
| 70ca0 | 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> |
| 70cc0 | 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 |
| 70ce0 | 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 |
| 70d00 | 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 |
| 70d20 | 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 |
| 70d40 | 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 |
| 70d60 | 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.;; |
| 70d80 | 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 |
| 70da0 | 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,. |
| 70dc0 | 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 |
| 70de0 | 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 |
| 70e00 | 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 |
| 70e20 | 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 |
| 70e40 | 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 |
| 70e60 | 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 |
| 70e80 | 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 |
| 70ea0 | 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. |
| 70ec0 | 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. |
| 70ee0 | 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. |
| 70f00 | 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 |
| 70f20 | 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 |
| 70f40 | 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 |
| 70f60 | 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 |
| 70f80 | 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 |
| 70fa0 | 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)..( |
| 70fc0 | 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 |
| 70fe0 | 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 |
| 71000 | 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 |
| 71020 | 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 |
| 71040 | 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").. |
| 71060 | 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 |
| 71080 | 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. |
| 710a0 | 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. |
| 710c0 | 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 |
| 710e0 | 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 |
| 71100 | 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 |
| 71120 | 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. |
| 71140 | 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 |
| 71160 | 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 |
| 71180 | 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 |
| 711a0 | 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 |
| 711c0 | 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 |
| 711e0 | 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 |
| 71200 | 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.. |
| 71220 | 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- |
| 71240 | 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 |
| 71260 | 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 |
| 71280 | 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 |
| 712a0 | 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. |
| 712c0 | 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 |
| 712e0 | 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 |
| 71300 | 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. |
| 71320 | 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 |
| 71340 | 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:. |
| 71360 | 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 |
| 71380 | 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 |
| 713a0 | 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 |
| 713c0 | 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 |
| 713e0 | 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 |
| 71400 | 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 |
| 71420 | 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 |
| 71440 | 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 |
| 71460 | 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 |
| 71480 | 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. |
| 714a0 | 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 |
| 714c0 | 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 |
| 714e0 | 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 |
| 71500 | 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 |
| 71520 | 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. |
| 71540 | 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 |
| 71560 | 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 |
| 71580 | 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 |
| 715a0 | 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 |
| 715c0 | 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 |
| 715e0 | 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 |
| 71600 | 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 |
| 71620 | 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 |
| 71640 | 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 |
| 71660 | 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 |
| 71680 | 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 |
| 716a0 | 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. |
| 716c0 | 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 |
| 716e0 | 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 |
| 71700 | 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 |
| 71720 | 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). |
| 71740 | 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 |
| 71760 | 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)..... |
| 71780 | 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 |
| 717a0 | 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 |
| 717c0 | 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)........... |
| 717e0 | 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")) |
| 71800 | 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 |
| 71820 | 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 |
| 71840 | 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)). |
| 71860 | 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 |
| 71880 | 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 |
| 718a0 | 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))... |
| 718c0 | 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 6c 69 67 68 74 20 67 6f 6c 64 65 6e 72 6f 64 20 | ...:background."light.goldenrod. |
| 718e0 | 79 65 6c 6c 6f 77 22 20 3a 65 78 74 65 6e 64 20 74 29 0a 20 20 20 20 28 74 20 3a 69 6e 68 65 72 | yellow".:extend.t).....(t.:inher |
| 71900 | 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 63 65 | it.secondary-selection))..."Face |
| 71920 | 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 20 70 | .for.highlighting.regions.with.p |
| 71940 | 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 74 65 | ending.rewrites."...:group.'gpte |
| 71960 | 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 79 6d | l)..;;.*.Variables..(defvar-keym |
| 71980 | 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 20 3a | ap.gptel-rewrite-actions-map...: |
| 719a0 | 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 61 63 | doc."Keymap.for.gptel.rewrite.ac |
| 719c0 | 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 65 6c | tions.at.point."..."RET".#'gptel |
| 719e0 | 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 3e 22 | --rewrite-dispatch..."<mouse-1>" |
| 71a00 | 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 43 2d | .#'gptel--rewrite-dispatch..."C- |
| 71a20 | 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 0a 20 | c.C-a".#'gptel--rewrite-accept.. |
| 71a40 | 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 65 72 | ."C-c.C-r".#'gptel--rewrite-iter |
| 71a60 | 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 74 65 | ate..."C-c.C-k".#'gptel--rewrite |
| 71a80 | 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 65 77 | -reject..."C-c.C-d".#'gptel--rew |
| 71aa0 | 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 2d 72 | rite-diff..."C-c.C-e".#'gptel--r |
| 71ac0 | 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 65 6c | ewrite-ediff..."C-c.C-n".#'gptel |
| 71ae0 | 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 70 74 | --rewrite-next..."C-c.C-p".#'gpt |
| 71b00 | 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 6d 22 | el--rewrite-previous..."C-c.C-m" |
| 71b20 | 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 76 61 | .#'gptel--rewrite-merge)..(defva |
| 71b40 | 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 73 20 | r-local.gptel--rewrite-overlays. |
| 71b60 | 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 6f 76 | nil..."List.of.active.rewrite.ov |
| 71b80 | 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 61 72 | erlays.in.the.buffer.")..(defvar |
| 71ba0 | 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 6e 69 | -local.gptel--rewrite-message.ni |
| 71bc0 | 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 69 6f | l..."Request-specific.instructio |
| 71be0 | 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 22 29 | ns.for.a.gptel-rewrite.action.") |
| 71c00 | 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 20 74 | ..;;.Add.the.rewrite.directive.t |
| 71c20 | 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 61 6c | o.`gptel-directives'.(unless.(al |
| 71c40 | 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 76 65 | ist-get.'rewrite.gptel-directive |
| 71c60 | 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 74 69 | s)...(add-to-list.'gptel-directi |
| 71c80 | 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 69 74 | ves.`(rewrite...,#'gptel--rewrit |
| 71ca0 | 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 72 20 | e-directive-default)))..(defvar. |
| 71cc0 | 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 20 28 | gptel--rewrite-directive...(or.( |
| 71ce0 | 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 |
| 71d00 | 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 72 65 | ves).......#'gptel--rewrite-dire |
| 71d20 | 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 6d 20 | ctive-default)..."Active.system. |
| 71d40 | 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 54 68 | message.for.rewrite.actions...Th |
| 71d60 | 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 65 20 | is.variable.is.for.internal.use. |
| 71d80 | 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 65 0a | only...To.customize.the.rewrite. |
| 71da0 | 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 65 73 | system.message,.set.a.system.mes |
| 71dc0 | 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 65 73 | sage.(or.function.that.generates |
| 71de0 | 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 6c 75 | .the.system.message).as.the.valu |
| 71e00 | 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 65 6c | e.of.the.`rewrite'.key.in.`gptel |
| 71e20 | 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 65 74 | -directives':...(setf.(alist-get |
| 71e40 | 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 0a 20 | .\\='rewrite.gptel-directives).. |
| 71e60 | 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 67 65 | ......#\\='my-rewrite-message-ge |
| 71e80 | 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 7a 65 | nerator)..You.can.also.customize |
| 71ea0 | 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 6b 27 | .`gptel-rewrite-directives-hook' |
| 71ec0 | 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 74 65 | .to.dynamically.inject.a.rewrite |
| 71ee0 | 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 64 65 | -specific.system.message.")..(de |
| 71f00 | 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 65 66 | fun.gptel--rewrite-directive-def |
| 71f20 | 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 6f 72 | ault.()..."Generic.directive.for |
| 71f40 | 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 65 73 | .rewriting.or.refactoring...Thes |
| 71f60 | 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 63 20 | e.are.instructions.not.specific. |
| 71f80 | 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 6e 67 | to.any.particular.required.chang |
| 71fa0 | 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 65 72 | e...The.returned.string.is.inter |
| 71fc0 | 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 6f 72 | preted.as.the.system.message.for |
| 71fe0 | 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 79 6f | .the.rewrite.request...To.use.yo |
| 72000 | 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 69 76 | ur.own,.add.a.different.directiv |
| 72020 | 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 64 20 | e.to.`gptel-directives',.or.add. |
| 72040 | 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 6f 6f | to.`gptel-rewrite-directives-hoo |
| 72060 | 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 72 6b | k',.which.see."...(or.(save-mark |
| 72080 | 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 6f 6b | -and-excursion.........(run-hook |
| 720a0 | 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 20 20 | -with-args-until-success........ |
| 720c0 | 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 6f 6b | ..'gptel-rewrite-directives-hook |
| 720e0 | 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 65 20 | )).......(let*.((lang.(downcase. |
| 72100 | 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 72 2d | (gptel--strip-mode-suffix.major- |
| 72120 | 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 28 69 | mode)))..............(article.(i |
| 72140 | 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 2d 70 | f.(and.lang.(not.(string-empty-p |
| 72160 | 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 20 20 | .lang))......................... |
| 72180 | 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 61 20 | .......(memq.(aref.lang.0).'(?a. |
| 721a0 | 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 20 20 | ?e.?i.?o.?u))).................. |
| 721c0 | 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 69 66 | ........."an"."a"))).........(if |
| 721e0 | 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 20 20 | .(derived-mode-p.'prog-mode).... |
| 72200 | 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 61 72 | .........(format.(concat."You.ar |
| 72220 | 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 20 20 | e.%s.%s.programmer...".......... |
| 72240 | 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 69 6e | ..................."Follow.my.in |
| 72260 | 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 65 20 | structions.and.refactor.%s.code. |
| 72280 | 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 20 20 | I.provide.\n"................... |
| 722a0 | 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 63 6f | .........."-.Generate.ONLY.%s.co |
| 722c0 | 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 20 20 | de.as.output,.without."......... |
| 722e0 | 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 6e 61 | ...................."any.explana |
| 72300 | 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 6e 22 | tion.or.markdown.code.fences.\n" |
| 72320 | 0a 20 20 20 20 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 | ............................."-. |
| 72340 | 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 61 62 | Generate.code.in.full,.do.not.ab |
| 72360 | 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 20 20 | breviate.or.omit.code.\n"....... |
| 72380 | 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 74 20 | ......................"-.Do.not. |
| 723a0 | 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 20 61 | ask.for.further.clarification,.a |
| 723c0 | 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 20 20 | nd.make."....................... |
| 723e0 | 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 64 20 | ......"any.assumptions.you.need. |
| 72400 | 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 20 20 | to.follow.instructions.")....... |
| 72420 | 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 67 20 | ..............article.lang.lang. |
| 72440 | 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 20 20 | lang)...........(concat......... |
| 72460 | 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 20 20 | ...(if.(string-empty-p.lang).... |
| 72480 | 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 2e 22 | ............"You.are.an.editor." |
| 724a0 | 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 20 25 | ..............(format."You.are.% |
| 724c0 | 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 20 20 | s.%s.editor.".article.lang)).... |
| 724e0 | 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 6f 6e | ........"..Follow.my.instruction |
| 72500 | 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 65 78 | s.and.improve.or.rewrite.the.tex |
| 72520 | 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 6e 65 | t.I.provide."............"..Gene |
| 72540 | 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 2c 22 | rate.ONLY.the.replacement.text," |
| 72560 | 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 61 6e | ............".without.any.explan |
| 72580 | 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 22 29 | ation.or.markdown.code.fences.") |
| 725a0 | 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 64 65 | ))))..;;.*.Helper.functions..(de |
| 725c0 | 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 61 6c | fun.gptel--rewrite-key-help.(cal |
| 725e0 | 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 66 75 | lback)..."Eldoc.documentation.fu |
| 72600 | 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 6e 73 | nction.for.gptel.rewrite.actions |
| 72620 | 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 6f 63 | ...CALLBACK.is.supplied.by.Eldoc |
| 72640 | 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 63 74 | ,.see.`eldoc-documentation-funct |
| 72660 | 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 77 72 | ions'."...(when.(and.gptel--rewr |
| 72680 | 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 2d 63 | ite-overlays..............(get-c |
| 726a0 | 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 72 | har-property.(point).'gptel-rewr |
| 726c0 | 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 20 20 | ite)).......(funcall.callback... |
| 726e0 | 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 74 65 | .............(format.(substitute |
| 72700 | 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 6c 61 | -command-keys."%s.rewrite.availa |
| 72720 | 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 61 63 | ble:.accept.\\[gptel--rewrite-ac |
| 72740 | 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 74 65 | cept],.iterate.\\[gptel--rewrite |
| 72760 | 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 72 69 | -iterate],.clear.\\[gptel--rewri |
| 72780 | 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 77 72 | te-reject],.merge.\\[gptel--rewr |
| 727a0 | 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 72 69 | ite-merge],.diff.\\[gptel--rewri |
| 727c0 | 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 77 72 | te-diff].or.ediff.\\[gptel--rewr |
| 727e0 | 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 20 20 | ite-ediff]").................... |
| 72800 | 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 6e 61 | ....(propertize.(gptel--model-na |
| 72820 | 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 6e 65 | me.gptel-model).'face.'mode-line |
| 72840 | 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 72 65 | -emphasis)))))..(defun.gptel--re |
| 72860 | 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 76 65 | write-move.(search-func)..."Move |
| 72880 | 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 69 74 | .directionally.to.a.gptel.rewrit |
| 728a0 | 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 0a 20 | e.location.using.SEARCH-FUNC.".. |
| 728c0 | 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 70 65 | .(let*.((ov.(cdr.(get-char-prope |
| 728e0 | 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 2d 72 | rty-and-overlay.(point).'gptel-r |
| 72900 | 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 78 63 | ewrite)))..........(pt.(save-exc |
| 72920 | 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 20 20 | ursion................(if.ov.... |
| 72940 | 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 20 20 | ................(goto-char...... |
| 72960 | 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 2d 66 | ...............(funcall.search-f |
| 72980 | 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 72 65 | unc.(overlay-start.ov).'gptel-re |
| 729a0 | 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 2d 63 | write))..................(goto-c |
| 729c0 | 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 20 28 | har...................(max.(1-.( |
| 729e0 | 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 70 74 | funcall.search-func.(point).'gpt |
| 72a00 | 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 20 20 | el-rewrite)).................... |
| 72a20 | 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 20 20 | ....(point-min)))).............. |
| 72a40 | 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 20 27 | ..(funcall.search-func.(point).' |
| 72a60 | 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 2d 63 | gptel-rewrite)))).....(if.(get-c |
| 72a80 | 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 29 0a | har-property.pt.'gptel-rewrite). |
| 72aa0 | 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 75 73 | ........(goto-char.pt).......(us |
| 72ac0 | 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 65 67 | er-error."No.further.rewrite.reg |
| 72ae0 | 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 69 74 | ions!"))))..(defun.gptel--rewrit |
| 72b00 | 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 67 20 | e-next.()..."Go.to.next.pending. |
| 72b20 | 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 65 78 | LLM.rewrite.in.buffer,.if.one.ex |
| 72b40 | 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 6c 2d | ists."...(interactive)...(gptel- |
| 72b60 | 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 61 72 | -rewrite-move.#'next-single-char |
| 72b80 | 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 65 6c | -property-change))..(defun.gptel |
| 72ba0 | 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 20 70 | --rewrite-previous.()..."Go.to.p |
| 72bc0 | 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 20 62 | revious.pending.LLM.rewrite.in.b |
| 72be0 | 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 72 61 | uffer,.if.one.exists."...(intera |
| 72c00 | 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 23 27 | ctive)...(gptel--rewrite-move.#' |
| 72c20 | 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 63 68 | previous-single-char-property-ch |
| 72c40 | 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 6f 76 | ange))..(defun.gptel--rewrite-ov |
| 72c60 | 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 63 6b | erlay-at.(&optional.pt)..."Check |
| 72c80 | 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 74 20 | .for.a.gptel.rewrite.overlay.at. |
| 72ca0 | 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 62 6c | PT.and.return.it...If.no.suitabl |
| 72cc0 | 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 72 72 | e.overlay.is.found,.raise.an.err |
| 72ce0 | 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 65 20 | or."...(pcase-let.((`(,response. |
| 72d00 | 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 72 2d | ..,ov)................(get-char- |
| 72d20 | 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 6f 69 | property-and-overlay.(or.pt.(poi |
| 72d40 | 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 20 20 | nt)).'gptel-rewrite))........... |
| 72d60 | 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 0a 20 | ....(diff-entire-buffers.nil)).. |
| 72d80 | 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 6c 64 | ...(unless.ov.(user-error."Could |
| 72da0 | 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 65 6e | .not.find.region.being.rewritten |
| 72dc0 | 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 72 2d | .")).....(unless.response.(user- |
| 72de0 | 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 20 66 | error."No.LLM.output.available.f |
| 72e00 | 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 28 64 | or.this.rewrite.")).....ov))..(d |
| 72e20 | 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 66 66 | efun.gptel--rewrite-prepare-buff |
| 72e40 | 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 61 72 | er.(ovs.&optional.buf)..."Prepar |
| 72e60 | 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 61 70 | e.new.buffer.with.LLM.changes.ap |
| 72e80 | 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 75 73 | plied.and.return.it...This.is.us |
| 72ea0 | 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 4f 4e | ed.for.(e)diff.purposes...RESPON |
| 72ec0 | 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 72 65 | SE.is.the.LLM.response...OVS.are |
| 72ee0 | 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 68 61 | .the.overlays.specifying.the.cha |
| 72f00 | 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 65 6e | nged.regions..BUF.is.the.(curren |
| 72f20 | 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 66 20 | t).buffer."...(setq.buf.(or.buf. |
| 72f40 | 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 6f 76 | (overlay-buffer.(or.(car-safe.ov |
| 72f60 | 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 66 65 | s).ovs))))...(with-current-buffe |
| 72f80 | 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 69 6e | r.buf.....(let.((pmin.(point-min |
| 72fa0 | 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 29 0a | ))...........(pmax.(point-max)). |
| 72fc0 | 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 20 20 | ..........(pt...(point))........ |
| 72fe0 | 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 20 20 | ...;;.(mode.major-mode)......... |
| 73000 | 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 2a 67 | ..(newbuf.(get-buffer-create."*g |
| 73020 | 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 69 74 | ptel-diff*"))...........(inhibit |
| 73040 | 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 69 74 | -read-only.t)...........(inhibit |
| 73060 | 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 69 63 | -message.t)).......(save-restric |
| 73080 | 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 77 69 | tion.........(widen).........(wi |
| 730a0 | 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 20 20 | th-current-buffer.newbuf........ |
| 730c0 | 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 6e 73 | ...(erase-buffer)...........(ins |
| 730e0 | 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 20 20 | ert-buffer-substring.buf)))..... |
| 73100 | 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 20 20 | ..(with-current-buffer.newbuf... |
| 73120 | 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 6d 61 | ......(narrow-to-region.pmin.pma |
| 73140 | 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 20 20 | x).........(goto-char.pt)....... |
| 73160 | 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 6c 6f | ..;;.We.mostly.just.want.font-lo |
| 73180 | 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 6f 6f | cking.........;;.(delay-mode-hoo |
| 731a0 | 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 41 70 | ks.(funcall.mode)).........;;.Ap |
| 731c0 | 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 66 65 | ply.the.changes.to.the.new.buffe |
| 731e0 | 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 20 20 | r.........(save-excursion....... |
| 73200 | 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 20 6e | ....(gptel--rewrite-accept.ovs.n |
| 73220 | 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 20 52 | ewbuf))).......newbuf)))..;;.*.R |
| 73240 | 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 6e 20 | ewrite.action.functions..(defun. |
| 73260 | 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 61 6c | gptel--rewrite-reject.(&optional |
| 73280 | 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 70 6f | .ovs)..."Clear.pending.LLM.respo |
| 732a0 | 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 6e 74 | nses.in.OVS.or.at.point."...(int |
| 732c0 | 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 2d 6f | eractive.(list.(gptel--rewrite-o |
| 732e0 | 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 73 75 | verlay-at)))...(dolist.(ov.(ensu |
| 73300 | 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 2d 72 | re-list.ovs)).....(setq.gptel--r |
| 73320 | 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 2d 2d | ewrite-overlays.(delq.ov.gptel-- |
| 73340 | 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 2d 6f | rewrite-overlays)).....(delete-o |
| 73360 | 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 65 77 | verlay.ov))...(unless.gptel--rew |
| 73380 | 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 20 27 | rite-overlays.....(remove-hook.' |
| 733a0 | 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 27 67 | eldoc-documentation-functions.'g |
| 733c0 | 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 29 0a | ptel--rewrite-key-help.'local)). |
| 733e0 | 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 4d 20 | ..(message."Cleared.pending.LLM. |
| 73400 | 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 2d 72 | response(s)."))..(defun.gptel--r |
| 73420 | 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 75 66 | ewrite-accept.(&optional.ovs.buf |
| 73440 | 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 65 73 | )..."Apply.pending.LLM.responses |
| 73460 | 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 68 65 | .in.OVS.or.at.point...BUF.is.the |
| 73480 | 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 20 74 | .buffer.to.modify,.defaults.to.t |
| 734a0 | 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 74 69 | he.overlay.buffer."...(interacti |
| 734c0 | 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 61 79 | ve.(list.(gptel--rewrite-overlay |
| 734e0 | 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 6f 76 | -at)))...(when-let*.((ov-buf.(ov |
| 73500 | 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 29 20 | erlay-buffer.(or.(car-safe.ovs). |
| 73520 | 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 62 75 | ovs)))...............(buf.(or.bu |
| 73540 | 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 66 65 | f.ov-buf))...............((buffe |
| 73560 | 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 65 6e | r-live-p.buf))).....(with-curren |
| 73580 | 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 20 66 | t-buffer.ov-buf.......(cl-loop.f |
| 735a0 | 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 20 20 | or.ov.in.(ensure-list.ovs)...... |
| 735c0 | 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 79 2d | ..........for.ov-beg.=.(overlay- |
| 735e0 | 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 76 2d | start.ov)................for.ov- |
| 73600 | 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 20 20 | end.=.(overlay-end.ov).......... |
| 73620 | 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 67 65 | ......for.response.=.(overlay-ge |
| 73640 | 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 20 20 | t.ov.'gptel-rewrite)............ |
| 73660 | 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 2d 73 | ....do.(overlay-put.ov.'before-s |
| 73680 | 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 68 2d | tring.nil)................(with- |
| 736a0 | 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 20 20 | current-buffer.buf.............. |
| 736c0 | 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 20 20 | ....(goto-char.ov-beg).......... |
| 736e0 | 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 6f 76 | ........(delete-region.ov-beg.ov |
| 73700 | 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 20 72 | -end)..................(insert.r |
| 73720 | 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 61 63 | esponse)))).....(message."Replac |
| 73740 | 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 6e 20 | ed.region(s).with.LLM.output.in. |
| 73760 | 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 66 65 | buffer:.%s."..............(buffe |
| 73780 | 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 67 70 | r-name.ov-buf))))..(defalias.'gp |
| 737a0 | 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 77 72 | tel--rewrite-iterate.'gptel-rewr |
| 737c0 | 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 72 65 | ite..."Iterate.on.pending.LLM.re |
| 737e0 | 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 65 6c | sponse.at.point.")..(defun.gptel |
| 73800 | 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 73 77 | --rewrite-diff.(&optional.ovs.sw |
| 73820 | 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 73 70 | itches)..."Diff.pending.LLM.resp |
| 73840 | 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 6e | onses.in.OVS.or.at.point."...(in |
| 73860 | 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 2d | teractive.(list.(gptel--rewrite- |
| 73880 | 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 76 2d | overlay-at)))...(when-let*.((ov- |
| 738a0 | 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 61 66 | buf.(overlay-buffer.(or.(car-saf |
| 738c0 | 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 62 75 | e.ovs).ovs)))...............((bu |
| 738e0 | 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 75 69 | ffer-live-p.ov-buf))).....(requi |
| 73900 | 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 67 70 | re.'diff).....(let*.((newbuf.(gp |
| 73920 | 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 73 29 | tel--rewrite-prepare-buffer.ovs) |
| 73940 | 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 6f 2d | )............(diff-buf.(diff-no- |
| 73960 | 73 65 6c 65 63 74 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 66 | select.......................(if |
| 73980 | 2d 6c 65 74 2a 20 28 28 62 75 66 2d 66 69 6c 65 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 | -let*.((buf-file.(buffer-file-na |
| 739a0 | 6d 65 20 6f 76 2d 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 | me.ov-buf))).................... |
| 739c0 | 20 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 62 75 66 2d 66 69 6c | .......(expand-file-name.buf-fil |
| 739e0 | 65 29 20 6f 76 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e).ov-buf)...................... |
| 73a00 | 20 6e 65 77 62 75 66 20 73 77 69 74 63 68 65 73 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d | .newbuf.switches))).......(with- |
| 73a20 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 69 66 66 2d 62 75 66 0a 20 20 20 20 20 20 20 20 | current-buffer.diff-buf......... |
| 73a40 | 28 73 65 74 71 2d 6c 6f 63 61 6c 20 64 69 66 66 2d 6a 75 6d 70 2d 74 6f 2d 6f 6c 64 2d 66 69 6c | (setq-local.diff-jump-to-old-fil |
| 73a60 | 65 20 74 29 29 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 64 69 66 66 | e.t)).......(display-buffer.diff |
| 73a80 | 2d 62 75 66 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 | -buf))))..(defun.gptel--rewrite- |
| 73aa0 | 65 64 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 29 0a 20 20 22 45 64 69 66 66 20 70 | ediff.(&optional.ovs)..."Ediff.p |
| 73ac0 | 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 69 6e 20 4f 56 53 20 6f 72 20 61 | ending.LLM.responses.in.OVS.or.a |
| 73ae0 | 74 20 70 6f 69 6e 74 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 | t.point."...(interactive.(list.( |
| 73b00 | 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)))...( |
| 73b20 | 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 |
| 73b40 | 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))).... |
| 73b60 | 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 |
| 73b80 | 66 29 29 29 0a 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 6e 65 77 62 75 66 20 28 67 70 74 65 6c | f))).....(letrec.((newbuf.(gptel |
| 73ba0 | 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 73 29 29 0a 20 | --rewrite-prepare-buffer.ovs)).. |
| 73bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 77 63 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 | ............(cwc.(current-window |
| 73be0 | 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 28 68 | -configuration))..............(h |
| 73c00 | 69 64 65 73 68 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 | ideshow...............(lambda.(& |
| 73c20 | 6f 70 74 69 6f 6e 61 6c 20 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | optional.restore)............... |
| 73c40 | 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 29 29 | ..(dolist.(ov.(ensure-list.ovs)) |
| 73c60 | 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 20 28 28 | ...................(when-let*.(( |
| 73c80 | 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | overlay-buffer.ov))............. |
| 73ca0 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 73 70 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 | ........(let.((disp.(overlay-get |
| 73cc0 | 20 6f 76 20 27 64 69 73 70 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .ov.'display)).................. |
| 73ce0 | 20 20 20 20 20 20 20 20 20 28 73 74 6f 72 65 64 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 | .........(stored.(overlay-get.ov |
| 73d00 | 20 27 67 70 74 65 6c 2d 2d 65 64 69 66 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'gptel--ediff)))............... |
| 73d20 | 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 70 6c 61 79 | ........(overlay-put.ov.'display |
| 73d40 | 20 28 61 6e 64 20 72 65 73 74 6f 72 65 20 73 74 6f 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 | .(and.restore.stored)).......... |
| 73d60 | 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 |
| 73d80 | 74 65 6c 2d 2d 65 64 69 66 66 20 28 75 6e 6c 65 73 73 20 72 65 73 74 6f 72 65 20 64 69 73 70 29 | tel--ediff.(unless.restore.disp) |
| 73da0 | 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 66 | ))))))..............(gptel--edif |
| 73dc0 | 66 2d 72 65 73 74 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 | f-restore...............(lambda. |
| 73de0 | 28 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 77 69 6e 64 6f 77 | ().................(when.(window |
| 73e00 | 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 20 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 | -configuration-p.cwc)........... |
| 73e20 | 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f | ........(set-window-configuratio |
| 73e40 | 6e 20 63 77 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | n.cwc)).................(funcall |
| 73e60 | 20 68 69 64 65 73 68 6f 77 20 27 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .hideshow.'restore)............. |
| 73e80 | 20 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 | ....(remove-hook.'ediff-quit-hoo |
| 73ea0 | 6b 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 | k.gptel--ediff-restore))))...... |
| 73ec0 | 20 28 66 75 6e 63 61 6c 6c 20 68 69 64 65 73 68 6f 77 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 | .(funcall.hideshow).......(add-h |
| 73ee0 | 6f 6f 6b 20 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 | ook.'ediff-quit-hook.gptel--edif |
| 73f00 | 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 28 65 64 69 66 66 2d 62 75 66 66 65 72 73 20 | f-restore).......(ediff-buffers. |
| 73f20 | 6f 76 2d 62 75 66 20 6e 65 77 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | ov-buf.newbuf))))..(defun.gptel- |
| 73f40 | 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 29 0a 20 | -rewrite-merge.(&optional.ovs).. |
| 73f60 | 20 22 49 6e 73 65 72 74 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 69 | ."Insert.pending.LLM.responses.i |
| 73f80 | 6e 20 4f 56 53 20 61 73 20 6d 65 72 67 65 20 63 6f 6e 66 6c 69 63 74 73 2e 22 0a 20 20 28 69 6e | n.OVS.as.merge.conflicts."...(in |
| 73fa0 | 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 2d | teractive.(list.(gptel--rewrite- |
| 73fc0 | 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 76 2d | overlay-at)))...(when-let*.((ov- |
| 73fe0 | 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 61 66 | buf.(overlay-buffer.(or.(car-saf |
| 74000 | 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 62 75 | e.ovs).ovs)))...............((bu |
| 74020 | 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 77 69 74 68 2d | ffer-live-p.ov-buf))).....(with- |
| 74040 | 63 75 72 72 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 6c 65 74 | current-buffer.ov-buf.......(let |
| 74060 | 20 28 28 63 68 61 6e 67 65 64 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 | .((changed)).........(dolist.(ov |
| 74080 | 20 28 65 6e 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 28 73 | .(ensure-list.ovs))...........(s |
| 740a0 | 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 28 77 68 65 6e 2d | ave-excursion.............(when- |
| 740c0 | 6c 65 74 2a 20 28 28 6e 65 77 2d 73 74 72 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 | let*.((new-str.(overlay-get.ov.' |
| 740e0 | 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | gptel-rewrite)))...............; |
| 74100 | 3b 20 49 6e 73 65 72 74 20 6d 65 72 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f | ;.Insert.merge...............(go |
| 74120 | 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 29 0a 20 20 20 20 | to-char.(overlay-start.ov))..... |
| 74140 | 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 74 | ..........(unless.(bolp).(insert |
| 74160 | 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 2d 62 65 | ."\n"))...............(insert-be |
| 74180 | 66 6f 72 65 2d 6d 61 72 6b 65 72 73 20 22 3c 3c 3c 3c 3c 3c 3c 20 6f 72 69 67 69 6e 61 6c 5c 6e | fore-markers."<<<<<<<.original\n |
| 741a0 | 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 72 20 28 6f 76 65 | ")...............(goto-char.(ove |
| 741c0 | 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 20 20 28 75 6e 6c | rlay-end.ov))...............(unl |
| 741e0 | 65 73 73 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 | ess.(bolp).(insert."\n"))....... |
| 74200 | 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | ........(insert................" |
| 74220 | 3d 3d 3d 3d 3d 3d 3d 5c 6e 22 20 6e 65 77 2d 73 74 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | =======\n".new-str.............. |
| 74240 | 20 20 22 5c 6e 3e 3e 3e 3e 3e 3e 3e 20 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 | .."\n>>>>>>>.".(gptel-backend-na |
| 74260 | 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 | me.gptel-backend)."\n")......... |
| 74280 | 20 20 20 20 20 20 28 73 65 74 71 20 63 68 61 6e 67 65 64 20 74 29 29 29 29 0a 20 20 20 20 20 20 | ......(setq.changed.t))))....... |
| 742a0 | 20 20 28 77 68 65 6e 20 63 68 61 6e 67 65 64 20 28 73 6d 65 72 67 65 2d 6d 6f 64 65 20 31 29 29 | ..(when.changed.(smerge-mode.1)) |
| 742c0 | 29 0a 20 20 20 20 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 6f | ).......(gptel--rewrite-reject.o |
| 742e0 | 76 73 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 64 69 | vs))))..(defun.gptel--rewrite-di |
| 74300 | 73 70 61 74 63 68 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 20 63 69 29 0a 20 20 22 44 69 73 70 | spatch.(&optional.ov.ci)..."Disp |
| 74320 | 61 74 63 68 20 61 63 74 69 6f 6e 73 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 73 2e | atch.actions.for.gptel.rewrites. |
| 74340 | 0a 0a 4f 56 20 69 73 20 74 68 65 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 2c 20 43 49 20 | ..OV.is.the.rewrite.overlay,.CI. |
| 74360 | 69 73 20 74 72 75 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 76 65 20 63 61 6c 6c 73 2e 22 0a | is.true.for.interactive.calls.". |
| 74380 | 20 20 28 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 | ..(interactive.(list.(gptel--rew |
| 743a0 | 72 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 20 74 29 29 0a 20 20 28 6c 65 74 20 28 28 63 68 | rite-overlay-at).t))...(let.((ch |
| 743c0 | 6f 69 63 65 29 29 0a 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 | oice)).....(unwind-protect...... |
| 743e0 | 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 3f 61 20 22 61 | ...(pcase-let.((choices.'((?a."a |
| 74400 | 63 63 65 70 74 22 29 20 28 3f 6b 20 22 72 65 6a 65 63 74 22 29 20 28 3f 72 20 22 69 74 65 72 61 | ccept").(?k."reject").(?r."itera |
| 74420 | 74 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 20 20 20 | te")............................ |
| 74440 | 20 20 20 20 28 3f 6d 20 22 6d 65 72 67 65 22 29 20 28 3f 64 20 22 64 69 66 66 22 29 20 28 3f 65 | ....(?m."merge").(?d."diff").(?e |
| 74460 | 20 22 65 64 69 66 66 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 | ."ediff")))..................... |
| 74480 | 28 68 69 6e 74 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 28 67 70 74 65 6c 2d 2d 6d 6f | (hint-str.(concat."[".(gptel--mo |
| 744a0 | 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 20 22 5d 5c 6e 22 29 29 29 0a 20 | del-name.gptel-model)."]\n"))).. |
| 744c0 | 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 20 20 20 20 20 | .........(overlay-put........... |
| 744e0 | 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 | .ov.'before-string............(c |
| 74500 | 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 63 | oncat.............(unless.(eq.(c |
| 74520 | 68 61 72 2d 62 65 66 6f 72 65 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 29 20 3f | har-before.(overlay-start.ov)).? |
| 74540 | 5c 6e 29 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a | \n)."\n").............(propertiz |
| 74560 | 65 20 22 52 45 57 52 49 54 45 20 52 45 41 44 59 3a 20 22 20 27 66 61 63 65 20 27 73 75 63 63 65 | e."REWRITE.READY:.".'face.'succe |
| 74580 | 73 73 29 0a 20 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 | ss).............(mapconcat.(lamb |
| 745a0 | 64 61 20 28 65 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 | da.(e).(cdr.e)).(mapcar.#'rmc--a |
| 745c0 | 64 64 2d 6b 65 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 | dd-key-description.choices).",." |
| 745e0 | 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 0a 20 20 20 20 20 20 | ).............(propertize....... |
| 74600 | 20 20 20 20 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 | .......".".'display.`(space.:ali |
| 74620 | 67 6e 2d 74 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 | gn-to.(-.right.,(1+.(length.hint |
| 74640 | 2d 73 74 72 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 | -str))))).............(propertiz |
| 74660 | 65 20 68 69 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 | e.hint-str.'face.'success))).... |
| 74680 | 20 20 20 20 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 | .......(setq.choice.(read-multip |
| 746a0 | 6c 65 2d 63 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 | le-choice."Action:.".choices))). |
| 746c0 | 20 20 20 20 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 | ......(overlay-put.ov.'before-st |
| 746e0 | 72 69 6e 67 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 | ring.nil)).....(if.ci.........(c |
| 74700 | 61 6c 6c 2d 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 | all-interactively.(intern.(conca |
| 74720 | 74 20 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 | t."gptel--rewrite-".(cadr.choice |
| 74740 | 29 29 29 29 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 | )))).......(funcall.(intern.(con |
| 74760 | 63 61 74 20 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 | cat."gptel--rewrite-".(cadr.choi |
| 74780 | 63 65 29 29 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 | ce))).ov))))..(defun.gptel--rewr |
| 747a0 | 69 74 65 2d 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 | ite-callback.(response.info)..." |
| 747c0 | 43 61 6c 6c 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 | Callback.for.gptel.rewrite.actio |
| 747e0 | 6e 73 2e 0a 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 | ns...Show.the.rewrite.result.in. |
| 74800 | 61 6e 20 6f 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 | an.overlay.over.the.original.tex |
| 74820 | 74 2c 20 61 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 | t,.and.set.up.dispatch.actions.. |
| 74840 | 0a 52 45 53 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 | .RESPONSE.is.the.response.receiv |
| 74860 | 65 64 2e 20 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 | ed...It.may.also.be.t.(to.indica |
| 74880 | 74 65 0a 73 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 | te.success).nil.(to.indicate.fai |
| 748a0 | 6c 75 72 65 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 | lure),.or.the.symbol.`abort'...I |
| 748c0 | 4e 46 4f 20 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 | NFO.is.the.async.communication.c |
| 748e0 | 68 61 6e 6e 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 | hannel.for.the.rewrite.request." |
| 74900 | 0a 20 20 28 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 | ...(when-let*.((ov-and-buf.(plis |
| 74920 | 74 2d 67 65 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 | t-get.info.:context))........... |
| 74940 | 20 20 20 20 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 | ....(ov.(car.ov-and-buf))....... |
| 74960 | 20 20 20 20 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 | ........(proc-buf.(cdr.ov-and-bu |
| 74980 | 66 29 29 0a 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 | f))...............(buf.(overlay- |
| 749a0 | 62 75 66 66 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 | buffer.ov))).....(cond......((st |
| 749c0 | 72 69 6e 67 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 | ringp.response)................; |
| 749e0 | 70 61 72 74 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 | partial.or.fully.successful.resu |
| 74a00 | 6c 74 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 70 72 | lt.......(with-current-buffer.pr |
| 74a20 | 6f 63 2d 62 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 | oc-buf.....;auxiliary.buffer,.in |
| 74a40 | 73 65 72 74 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 | sert.text.here.and.copy.to.overl |
| 74a60 | 61 79 0a 20 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 | ay.........(let.((inhibit-modifi |
| 74a80 | 63 61 74 69 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 | cation-hooks.nil)............... |
| 74aa0 | 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 20 | (inhibit-read-only.t)).......... |
| 74ac0 | 20 28 77 68 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 | .(when.(=.(buffer-size).0)...... |
| 74ae0 | 20 20 20 20 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 | .......(buffer-disable-undo).... |
| 74b00 | 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 2d | .........(overlay-put.ov.'gptel- |
| 74b20 | 72 65 77 72 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 | rewrite.nil).............(insert |
| 74b40 | 2d 62 75 66 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 | -buffer-substring.buf.(overlay-s |
| 74b60 | 74 61 72 74 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 | tart.ov).(overlay-end.ov))...... |
| 74b80 | 20 20 20 20 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 | .......(when.(eq.(char-before.(p |
| 74ba0 | 6f 69 6e 74 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 | oint-max)).?\n)...............(p |
| 74bc0 | 6c 69 73 74 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 | list-put.info.:newline.t))...... |
| 74be0 | 20 20 20 20 20 20 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c | .......(delay-mode-hooks.(funcal |
| 74c00 | 6c 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 6f 64 | l.(buffer-local-value.'major-mod |
| 74c20 | 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 | e.buf))).............(add-text-p |
| 74c40 | 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 2d 6d 61 78 | roperties.(point-min).(point-max |
| 74c60 | 29 20 27 28 66 61 63 65 20 73 68 61 64 6f 77 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 73 | ).'(face.shadow.font-lock-face.s |
| 74c80 | 68 61 64 6f 77 29 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 | hadow)).............(goto-char.( |
| 74ca0 | 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 | point-min)))...........(insert.r |
| 74cc0 | 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6f 62 70 | esponse)...........(unless.(eobp |
| 74ce0 | 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 28 6c | ).(ignore-errors.(delete-char.(l |
| 74d00 | 65 6e 67 74 68 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f | ength.response))))...........(fo |
| 74d20 | 6e 74 2d 6c 6f 63 6b 2d 65 6e 73 75 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c | nt-lock-ensure)...........(overl |
| 74d40 | 61 79 2d 70 75 74 20 6f 76 20 27 64 69 73 70 6c 61 79 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e | ay-put.ov.'display.(buffer-strin |
| 74d60 | 67 29 29 29 29 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 69 | g)))).......(unless.(plist-get.i |
| 74d80 | 6e 66 6f 20 3a 73 74 72 65 61 6d 29 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c | nfo.:stream).(gptel--rewrite-cal |
| 74da0 | 6c 62 61 63 6b 20 74 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e | lback.t.info)))......((eq.respon |
| 74dc0 | 73 65 20 27 61 62 6f 72 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 72 65 71 75 65 73 74 | se.'abort)..............;request |
| 74de0 | 20 61 62 6f 72 74 65 64 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 63 | .aborted.......(when-let*.((proc |
| 74e00 | 2d 62 75 66 20 28 63 64 72 2d 73 61 66 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | -buf.(cdr-safe.(plist-get.info.: |
| 74e20 | 63 6f 6e 74 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 | context)))).........(kill-buffer |
| 74e40 | 20 70 72 6f 63 2d 62 75 66 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 | .proc-buf)).......(delete-overla |
| 74e60 | 79 20 6f 76 29 29 0a 20 20 20 20 20 28 28 6e 75 6c 6c 20 72 65 73 70 6f 6e 73 65 29 20 20 20 20 | y.ov))......((null.response).... |
| 74e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 69 6e 69 73 68 65 64 20 77 69 74 68 20 65 72 | ...............;finished.with.er |
| 74ea0 | 72 6f 72 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 20 22 4c 4c 4d 20 | ror.......(message.(concat."LLM. |
| 74ec0 | 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 2e 20 52 65 77 72 69 74 65 20 69 6e 20 62 | response.error:.%s..Rewrite.in.b |
| 74ee0 | 75 66 66 65 72 20 25 73 20 63 61 6e 63 65 6c 65 64 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | uffer.%s.canceled.")............ |
| 74f00 | 20 20 20 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 20 28 70 6c | ....(plist-get.info.:status).(pl |
| 74f20 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 28 67 70 | ist-get.info.:buffer)).......(gp |
| 74f40 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 20 27 61 62 6f 72 74 20 69 6e 66 | tel--rewrite-callback.'abort.inf |
| 74f60 | 6f 29 29 0a 20 20 20 20 20 28 28 63 6f 6e 73 70 20 72 65 73 70 6f 6e 73 65 29 29 20 3b 72 65 61 | o))......((consp.response)).;rea |
| 74f80 | 73 6f 6e 69 6e 67 20 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 2d 2d 20 64 6f 6e 27 74 20 63 61 | soning.or.tool.calls.--.don't.ca |
| 74fa0 | 72 65 20 61 6e 64 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 72 65 73 70 65 63 74 69 | re.and.not.implemented,.respecti |
| 74fc0 | 76 65 6c 79 0a 20 20 20 20 20 28 74 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 63 64 | vely......(t.(let.((proc-buf.(cd |
| 74fe0 | 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) |
| 75000 | 29 29 20 3b 66 69 6e 69 73 68 65 64 20 73 75 63 63 65 73 73 66 75 6c 6c 79 0a 20 20 20 20 20 20 | )).;finished.successfully....... |
| 75020 | 20 20 20 20 20 20 20 20 28 6d 6b 62 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 3c 6d 6f 75 73 65 | ........(mkb.(propertize."<mouse |
| 75040 | 2d 31 3e 22 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 29 0a | -1>".'face.'help-key-binding))). |
| 75060 | 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 70 | ..........(with-current-buffer.p |
| 75080 | 72 6f 63 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 | roc-buf.............(let.((inhib |
| 750a0 | 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 20 20 20 20 28 | it-read-only.t))...............( |
| 750c0 | 64 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 | delete-region.(point).(point-max |
| 750e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 70 6f 73 74 2d 72 65 77 | ))...............;;.Run.post-rew |
| 75100 | 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6f 6e 20 72 65 77 72 69 74 74 65 6e 20 74 65 78 74 | rite-functions.on.rewritten.text |
| 75120 | 20 69 6e 20 69 74 73 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 | .in.its.buffer...............(ru |
| 75140 | 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 |
| 75160 | 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 |
| 75180 | 74 2d 6d 61 78 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 | t-max))...............(when.(and |
| 751a0 | 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 20 | .(plist-get.info.:newline)...... |
| 751c0 | 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 68 | ....................(not.(eq.(ch |
| 751e0 | 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 20 | ar-before.(point-max)).?\n)))... |
| 75200 | 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 20 | ..............(insert."\n")).... |
| 75220 | 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 20 | ...........(font-lock-ensure)).. |
| 75240 | 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 70 | ...........(overlay-put.ov.'disp |
| 75260 | 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 20 | lay.(buffer-string))............ |
| 75280 | 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 20 | .(overlay-put.ov.'gptel-rewrite. |
| 752a0 | 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 69 | (buffer-string)).............(ki |
| 752c0 | 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 28 | ll-buffer.proc-buf))...........( |
| 752e0 | 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 20 | when.(buffer-live-p.buf)........ |
| 75300 | 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 20 | .....(with-current-buffer.buf... |
| 75320 | 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 67 | ............(pulse-momentary-hig |
| 75340 | 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 29 | hlight-region.(overlay-start.ov) |
| 75360 | 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 20 | .(overlay-end.ov)).............. |
| 75380 | 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 2d | .(add-hook.'eldoc-documentation- |
| 753a0 | 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 68 | functions.#'gptel--rewrite-key-h |
| 753c0 | 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 3b | elp.nil.'local)...............;; |
| 753e0 | 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 20 | .(overlay-put.ov.'gptel-rewrite. |
| 75400 | 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 79 | response)...............(overlay |
| 75420 | 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 67 | -put.ov.'face.'gptel-rewrite-hig |
| 75440 | 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 | hlight-face)...............(over |
| 75460 | 6c 61 79 2d 70 75 74 20 6f 76 20 27 6b 65 79 6d 61 70 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | lay-put.ov.'keymap.gptel-rewrite |
| 75480 | 2d 61 63 74 69 6f 6e 73 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 | -actions-map)...............(ove |
| 754a0 | 72 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 | rlay-put.ov.'mouse-face.'highlig |
| 754c0 | 68 74 29 0a 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 0a 20 | ht)...............(overlay-put.. |
| 754e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 76 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 | ..............ov.'help-echo..... |
| 75500 | 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 25 73 20 72 | ...........(format.(concat."%s.r |
| 75520 | 65 77 72 69 74 65 20 61 76 61 69 6c 61 62 6c 65 3a 20 25 73 20 6f 72 20 5c 5c 5b 67 70 74 65 6c | ewrite.available:.%s.or.\\[gptel |
| 75540 | 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 5d 20 66 6f 72 20 6f 70 74 69 6f 6e 73 22 | --rewrite-dispatch].for.options" |
| 75560 | 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 63 61 74 | )........................(concat |
| 75580 | 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 |
| 755a0 | 6e 64 29 20 22 3a 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 | nd).":".(gptel--model-name.gptel |
| 755c0 | 2d 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 | -model))........................ |
| 755e0 | 6d 6b 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6f 76 20 67 70 74 | mkb))...............(push.ov.gpt |
| 75600 | 65 6c 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 20 20 20 20 20 | el--rewrite-overlays)).......... |
| 75620 | 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 73 79 6d 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d | ...(if-let*.((sym.gptel-rewrite- |
| 75640 | 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | default-action))................ |
| 75660 | 20 28 69 66 2d 6c 65 74 2a 20 28 28 61 63 74 69 6f 6e 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 | .(if-let*.((action.(intern.(conc |
| 75680 | 61 74 20 22 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d | at."gptel--rewrite-".(symbol-nam |
| 756a0 | 65 20 73 79 6d 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 | e.sym))))....................... |
| 756c0 | 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 61 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 | ....((functionp.action)))....... |
| 756e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 74 69 6f 6e 20 6f 76 | ..............(funcall.action.ov |
| 75700 | 29 20 28 66 75 6e 63 61 6c 6c 20 73 79 6d 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ).(funcall.sym.ov))............. |
| 75720 | 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(message.(concat.............. |
| 75740 | 20 20 20 20 20 20 20 20 20 20 20 22 4c 4c 4d 20 72 65 77 72 69 74 65 20 6f 75 74 70 75 74 22 0a | ..........."LLM.rewrite.output". |
| 75760 | 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 6e 6c 65 73 73 20 | ........................(unless. |
| 75780 | 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 62 75 66 29 0a 20 20 20 20 20 20 | (eq.(current-buffer).buf)....... |
| 757a0 | 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 69 6e | ....................(format.".in |
| 757c0 | 20 62 75 66 66 65 72 20 25 73 20 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 | .buffer.%s.".(buffer-name.buf))) |
| 757e0 | 0a 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 | .........................(concat |
| 75800 | 20 22 20 72 65 61 64 79 3a 20 22 20 6d 6b 62 20 22 2c 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 | .".ready:.".mkb.",.".(propertize |
| 75820 | 20 22 52 45 54 22 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 0a | ."RET".'face.'help-key-binding). |
| 75840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 75860 | 22 20 6f 72 20 22 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 | ".or.".(substitute-command-keys. |
| 75880 | 22 5c 5c 5b 67 70 74 65 6c 2d 72 65 77 72 69 74 65 5d 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 22 | "\\[gptel-rewrite].to.continue." |
| 758a0 | 29 29 29 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 50 72 65 66 | )))))))))))..;;.*.Transient.Pref |
| 758c0 | 69 78 65 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 | ixes.for.rewriting..(transient-d |
| 758e0 | 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 | efine-prefix.gptel--rewrite-dire |
| 75900 | 63 74 69 76 65 2d 6d 65 6e 75 20 28 29 0a 20 20 22 53 65 74 20 74 68 65 20 64 69 72 65 63 74 69 | ctive-menu.()..."Set.the.directi |
| 75920 | 76 65 20 28 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 20 66 6f 72 20 72 65 77 72 69 74 65 20 | ve.(system.message).for.rewrite. |
| 75940 | 61 63 74 69 6f 6e 73 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 67 70 74 65 6c 20 75 73 65 73 | actions...By.default,.gptel.uses |
| 75960 | 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 | .the.directive.associated.with.t |
| 75980 | 68 65 20 60 72 65 77 72 69 74 65 27 0a 20 6b 65 79 20 69 6e 20 60 67 70 74 65 6c 2d 64 69 72 65 | he.`rewrite'..key.in.`gptel-dire |
| 759a0 | 63 74 69 76 65 73 27 2e 20 20 59 6f 75 20 63 61 6e 20 61 64 64 20 6d 6f 72 65 20 72 65 77 72 69 | ctives'...You.can.add.more.rewri |
| 759c0 | 74 65 2d 73 70 65 63 69 66 69 63 0a 20 64 69 72 65 63 74 69 76 65 73 20 74 6f 20 60 67 70 74 65 | te-specific..directives.to.`gpte |
| 759e0 | 6c 2d 64 69 72 65 63 74 69 76 65 73 27 20 61 6e 64 20 70 69 63 6b 20 6f 6e 65 20 66 72 6f 6d 20 | l-directives'.and.pick.one.from. |
| 75a00 | 68 65 72 65 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 | here."...[:description.gptel-sys |
| 75a20 | 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d 66 6f 72 6d 61 74 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 73 | tem-prompt--format....[(gptel--s |
| 75a40 | 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 5d 0a 20 20 20 5b 28 67 | uffix-rewrite-directive)]....[(g |
| 75a60 | 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 29 5d 5d 0a 20 20 | ptel--infix-variable-scope)]]... |
| 75a80 | 20 5b 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 20 20 20 3a 73 | .[:class.transient-column.....:s |
| 75aa0 | 65 74 75 70 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 74 | etup-children.....(lambda.(_).(t |
| 75ac0 | 72 61 6e 73 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 20 | ransient-parse-suffixes......... |
| 75ae0 | 20 20 20 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 2d 6d 65 | ....'gptel--rewrite-directive-me |
| 75b00 | 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 75 70 2d 64 69 72 | nu.............(gptel--setup-dir |
| 75b20 | 65 63 74 69 76 65 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d | ective-menu..............'gptel- |
| 75b40 | 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 22 52 65 77 72 69 74 65 20 64 69 72 65 | -rewrite-directive."Rewrite.dire |
| 75b60 | 63 74 69 76 65 22 29 29 29 0a 20 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 74 5d 29 0a 0a 28 64 65 | ctive"))).....:pad-keys.t])..(de |
| 75b80 | 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 20 27 67 70 | fine-obsolete-function-alias.'gp |
| 75ba0 | 74 65 6c 2d 72 65 77 72 69 74 65 2d 6d 65 6e 75 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 | tel-rewrite-menu.'gptel-rewrite. |
| 75bc0 | 22 30 2e 39 2e 36 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f | "0.9.6")..;;;###autoload.(autolo |
| 75be0 | 61 64 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 22 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | ad.'gptel-rewrite."gptel-rewrite |
| 75c00 | 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 2d 70 72 65 66 69 | ".nil.t).(transient-define-prefi |
| 75c20 | 78 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 28 29 0a 20 20 22 52 65 77 72 69 74 65 20 6f 72 | x.gptel-rewrite.()..."Rewrite.or |
| 75c40 | 20 72 65 66 61 63 74 6f 72 20 74 65 78 74 20 72 65 67 69 6f 6e 20 75 73 69 6e 67 20 61 6e 20 4c | .refactor.text.region.using.an.L |
| 75c60 | 4c 4d 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 | LM."...[:description....(lambda. |
| 75c80 | 28 29 0a 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 74 69 | ()......(gptel--describe-directi |
| 75ca0 | 76 65 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 | ve.......gptel--rewrite-directiv |
| 75cc0 | 65 20 28 6d 61 78 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 34 29 20 32 30 29 | e.(max.(-.(window-width).14).20) |
| 75ce0 | 20 22 20 22 29 29 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 22 73 22 20 22 53 65 74 20 66 75 6c 6c | ."."))....["".....("s"."Set.full |
| 75d00 | 20 64 69 72 65 63 74 69 76 65 22 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 | .directive".gptel--rewrite-direc |
| 75d20 | 74 69 76 65 2d 6d 65 6e 75 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 | tive-menu).....(gptel--infix-rew |
| 75d40 | 72 69 74 65 2d 65 78 74 72 61 29 5d 5d 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 61 72 65 | rite-extra)]]...;;.FIXME:.We.are |
| 75d60 | 20 72 65 71 75 69 72 69 6e 67 20 60 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 27 20 62 65 63 | .requiring.`gptel-transient'.bec |
| 75d80 | 61 75 73 65 20 6f 66 20 74 68 69 73 20 73 75 66 66 69 78 2c 20 70 65 72 68 61 70 73 0a 20 20 3b | ause.of.this.suffix,.perhaps...; |
| 75da0 | 3b 20 77 65 20 63 61 6e 20 67 65 74 20 66 69 6e 64 20 73 6f 6d 65 20 77 61 79 20 61 72 6f 75 6e | ;.we.can.get.find.some.way.aroun |
| 75dc0 | 64 20 74 68 61 74 3f 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 74 65 78 74 | d.that?...[:description."Context |
| 75de0 | 20 66 6f 72 20 72 65 77 72 69 74 65 22 0a 20 20 20 3a 69 66 20 75 73 65 2d 72 65 67 69 6f 6e 2d | .for.rewrite"....:if.use-region- |
| 75e00 | 70 0a 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 72 65 6d 6f 76 | p....(gptel--infix-context-remov |
| 75e20 | 65 2d 61 6c 6c 20 3a 6b 65 79 20 22 2d 64 22 29 0a 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 | e-all.:key."-d")....(gptel--suff |
| 75e40 | 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 20 3a 6b 65 79 20 22 43 22 20 3a 66 6f 72 6d | ix-context-buffer.:key."C".:form |
| 75e60 | 61 74 20 22 20 20 25 6b 20 25 64 22 29 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | at."..%k.%d")]...[[:description. |
| 75e80 | 22 44 69 66 66 20 4f 70 74 69 6f 6e 73 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 | "Diff.Options".....:if.(lambda.( |
| 75ea0 | 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 20 20 20 20 28 | ).gptel--rewrite-overlays).....( |
| 75ec0 | 22 2d 62 22 20 22 49 67 6e 6f 72 65 20 77 68 69 74 65 73 70 61 63 65 20 63 68 61 6e 67 65 73 22 | "-b"."Ignore.whitespace.changes" |
| 75ee0 | 20 20 20 20 20 20 28 22 2d 62 22 20 22 2d 2d 69 67 6e 6f 72 65 2d 73 70 61 63 65 2d 63 68 61 6e | ......("-b"."--ignore-space-chan |
| 75f00 | 67 65 22 29 29 0a 20 20 20 20 28 22 2d 77 22 20 22 49 67 6e 6f 72 65 20 61 6c 6c 20 77 68 69 74 | ge")).....("-w"."Ignore.all.whit |
| 75f20 | 65 73 70 61 63 65 22 20 20 20 20 20 20 20 20 20 20 28 22 2d 77 22 20 22 2d 2d 69 67 6e 6f 72 65 | espace"..........("-w"."--ignore |
| 75f40 | 2d 61 6c 6c 2d 73 70 61 63 65 22 29 29 0a 20 20 20 20 28 22 2d 69 22 20 22 49 67 6e 6f 72 65 20 | -all-space")).....("-i"."Ignore. |
| 75f60 | 63 61 73 65 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 2d 69 22 20 22 | case"....................("-i"." |
| 75f80 | 2d 2d 69 67 6e 6f 72 65 2d 63 61 73 65 22 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 | --ignore-case")).....(gptel--inf |
| 75fa0 | 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 3a 2d 55 29 5d 0a 20 20 20 5b 3a 64 65 73 63 72 69 | ix-rewrite-diff:-U)]....[:descri |
| 75fc0 | 70 74 69 6f 6e 20 22 41 63 63 65 70 74 20 61 6c 6c 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 | ption."Accept.all".....:if.(lamb |
| 75fe0 | 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 20 | da.().gptel--rewrite-overlays).. |
| 76000 | 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 6d 65 72 67 65 29 | ...(gptel--suffix-rewrite-merge) |
| 76020 | 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 61 63 63 65 | .....(gptel--suffix-rewrite-acce |
| 76040 | 70 74 29 0a 20 20 20 20 22 52 65 6a 65 63 74 20 61 6c 6c 22 0a 20 20 20 20 28 67 70 74 65 6c 2d | pt)....."Reject.all".....(gptel- |
| 76060 | 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 72 65 6a 65 63 74 29 5d 5d 0a 20 20 5b 5b 3a 64 | -suffix-rewrite-reject)]]...[[:d |
| 76080 | 65 73 63 72 69 70 74 69 6f 6e 20 22 44 69 66 66 20 72 65 77 72 69 74 65 20 72 65 67 69 6f 6e 73 | escription."Diff.rewrite.regions |
| 760a0 | 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 |
| 760c0 | 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 66 66 69 78 | ite-overlays).....(gptel--suffix |
| 760e0 | 2d 72 65 77 72 69 74 65 2d 64 69 66 66 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 | -rewrite-diff).....(gptel--suffi |
| 76100 | 78 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 | x-rewrite-ediff)]]...[[:descript |
| 76120 | 69 6f 6e 20 22 52 65 77 72 69 74 65 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 | ion."Rewrite".....:if.(lambda.() |
| 76140 | 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 6f 69 6e 74 29 20 | .(or.(get-char-property.(point). |
| 76160 | 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 20 20 20 20 20 20 | 'gptel-rewrite)................. |
| 76180 | 20 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 | ..(use-region-p))).....(gptel--s |
| 761a0 | 75 66 66 69 78 2d 72 65 77 72 69 74 65 29 5d 0a 20 20 20 5b 22 44 72 79 20 52 75 6e 22 0a 20 20 | uffix-rewrite)]....["Dry.Run"... |
| 761c0 | 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 28 6f 72 20 67 70 74 65 6c 2d | ..:if.(lambda.().(and.(or.gptel- |
| 761e0 | 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 | log-level.gptel-expert-commands) |
| 76200 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 67 65 74 2d 63 68 61 | ....................(or.(get-cha |
| 76220 | 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 |
| 76240 | 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 75 73 65 2d 72 | e)........................(use-r |
| 76260 | 65 67 69 6f 6e 2d 70 29 29 29 29 0a 20 20 20 20 28 22 49 22 20 22 49 6e 73 70 65 63 74 20 71 75 | egion-p)))).....("I"."Inspect.qu |
| 76280 | 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 20 20 20 | ery.(Lisp)"......(lambda.()..... |
| 762a0 | 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 6c 20 | ..."Inspect.the.query.that.will. |
| 762c0 | 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 20 20 20 | be.sent.as.a.lisp.object."...... |
| 762e0 | 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 2d 73 | ..(interactive)........(gptel--s |
| 76300 | 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 69 6e | anitize-model)........(gptel--in |
| 76320 | 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 66 66 | spect-query.........(gptel--suff |
| 76340 | 69 78 2d 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 | ix-rewrite.gptel--rewrite-messag |
| 76360 | 65 20 74 29 29 29 29 0a 20 20 20 20 28 22 4a 22 20 22 49 6e 73 70 65 63 74 20 71 75 65 72 79 20 | e.t)))).....("J"."Inspect.query. |
| 76380 | 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 20 20 20 20 20 22 | (JSON)"......(lambda.()........" |
| 763a0 | 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 6c 20 62 65 20 73 | Inspect.the.query.that.will.be.s |
| 763c0 | 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 20 20 20 20 28 69 | ent.as.a.JSON.object."........(i |
| 763e0 | 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 2d 73 61 6e 69 74 | nteractive)........(gptel--sanit |
| 76400 | 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 69 6e 73 70 65 63 | ize-model)........(gptel--inspec |
| 76420 | 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 66 66 69 78 2d 72 | t-query.........(gptel--suffix-r |
| 76440 | 65 77 72 69 74 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 74 29 | ewrite.gptel--rewrite-message.t) |
| 76460 | 0a 20 20 20 20 20 20 20 20 27 6a 73 6f 6e 29 29 29 5d 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | .........'json)))]]...(interacti |
| 76480 | 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f | ve)...(gptel--rewrite-sanitize-o |
| 764a0 | 76 65 72 6c 61 79 73 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 67 70 74 65 6c 2d 2d 72 65 | verlays)...(unless.(or.gptel--re |
| 764c0 | 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 0a 20 | write-overlays.(use-region-p)).. |
| 764e0 | 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 27 20 | ...(user-error."`gptel-rewrite'. |
| 76500 | 72 65 71 75 69 72 65 73 20 61 6e 20 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 20 72 65 77 | requires.an.active.region.or.rew |
| 76520 | 72 69 74 65 20 69 6e 20 70 72 6f 67 72 65 73 73 2e 22 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 67 | rite.in.progress."))...(unless.g |
| 76540 | 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 28 73 65 74 71 20 | ptel--rewrite-message.....(setq. |
| 76560 | 67 70 74 65 6c 2d 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 | gptel--rewrite-message."Rewrite: |
| 76580 | 20 22 29 29 0a 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 72 | ."))...(transient-setup.'gptel-r |
| 765a0 | 65 77 72 69 74 65 29 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 65 73 | ewrite))..;;.*.Transient.infixes |
| 765c0 | 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 6e | .for.rewriting..(transient-defin |
| 765e0 | 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 | e-infix.gptel--infix-rewrite-ext |
| 76600 | 72 61 20 28 29 0a 20 20 22 43 68 61 74 20 64 69 72 65 63 74 69 76 65 20 28 73 79 73 74 65 6d 20 | ra.()..."Chat.directive.(system. |
| 76620 | 6d 65 73 73 61 67 65 29 20 74 6f 20 75 73 65 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 20 6f 72 | message).to.use.for.rewriting.or |
| 76640 | 20 72 65 66 61 63 74 6f 72 69 6e 67 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 | .refactoring."...:description."R |
| 76660 | 65 77 72 69 74 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 | ewrite.instruction"...:class.'gp |
| 76680 | 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 67 | tel-lisp-variable...:variable.'g |
| 766a0 | 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 0a 20 20 3a 73 65 74 2d 76 61 6c | ptel--rewrite-message...:set-val |
| 766c0 | 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 20 3a 64 69 | ue.#'gptel--set-with-scope...:di |
| 766e0 | 73 70 6c 61 79 2d 6e 69 6c 20 22 28 4e 6f 6e 65 29 22 0a 20 20 3a 6b 65 79 20 22 64 22 0a 20 20 | splay-nil."(None)"...:key."d"... |
| 76700 | 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 70 72 6f 6d 70 74 20 28 63 | :format.".%k.%d.%v"...:prompt.(c |
| 76720 | 6f 6e 63 61 74 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 20 22 20 67 70 74 65 6c 2d 2d 72 65 61 | oncat."Instructions.".gptel--rea |
| 76740 | 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 61 64 65 72 20 28 6c | d-with-prefix-help)...:reader.(l |
| 76760 | 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 | ambda.(prompt._.history)........ |
| 76780 | 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 | .....(let*.((rewrite-directive.. |
| 767a0 | 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 65 20 28 67 70 | ...................(car-safe.(gp |
| 767c0 | 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 2d 72 65 77 72 | tel--parse-directive.gptel--rewr |
| 767e0 | 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 20 20 20 20 | ite-directive................... |
| 76800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76820 | 20 20 20 20 27 72 61 77 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ....'raw)))....................( |
| 76840 | 63 62 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 20 | cb.(current-buffer))............ |
| 76860 | 20 20 20 20 20 20 20 20 28 63 79 63 6c 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 | ........(cycle-prefix........... |
| 76880 | 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 65 72 61 63 74 69 76 | ..........(lambda.().(interactiv |
| 768a0 | 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 67 70 74 65 6c 2d | e).......................(gptel- |
| 768c0 | 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 20 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 | -read-with-prefix.rewrite-direct |
| 768e0 | 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 64 69 74 2d | ive)))....................(edit- |
| 76900 | 69 6e 2d 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 6c | in-buffer.....................(l |
| 76920 | 61 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 | ambda.().(interactive).......... |
| 76940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 66 66 73 65 74 20 28 2d 20 28 70 | .............(let.((offset.(-.(p |
| 76960 | 6f 69 6e 74 29 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 29 29 | oint).(minibuffer-prompt-end)))) |
| 76980 | 0a 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- |
| 769a0 | 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 72 69 74 65 2d | -edit-directive.'gptel--rewrite- |
| 769c0 | 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 20 20 20 | message......................... |
| 769e0 | 20 20 3a 70 72 6f 6d 70 74 20 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 3a 69 6e 69 | ..:prompt.rewrite-directive.:ini |
| 76a00 | 74 69 61 6c 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 63 6f 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 | tial.(minibuffer-contents)...... |
| 76a20 | 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 20 63 62 20 | .....................:buffer.cb. |
| 76a40 | 3a 73 65 74 75 70 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 | :setup.(lambda.().(ignore-errors |
| 76a60 | 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 | .(forward-char.offset)))........ |
| 76a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 0a 20 20 20 | ...................:callback.... |
| 76aa0 | 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.( |
| 76ac0 | 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 72 | ).............................(r |
| 76ae0 | 75 6e 2d 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 | un-at-time.0.nil.#'transient-set |
| 76b00 | 75 70 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 20 20 20 | up.'gptel-rewrite).............. |
| 76b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 62 75 66 66 65 72 2d 6c 6f 63 | ...............(push.(buffer-loc |
| 76b40 | 61 6c 2d 76 61 6c 75 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 | al-value.'gptel--rewrite-message |
| 76b60 | 20 63 62 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 | .cb)............................ |
| 76b80 | 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 27 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d | .......(alist-get.'gptel--infix- |
| 76ba0 | 72 65 77 72 69 74 65 2d 65 78 74 72 61 20 74 72 61 6e 73 69 65 6e 74 2d 68 69 73 74 6f 72 79 29 | rewrite-extra.transient-history) |
| 76bc0 | 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 77 | ).............................(w |
| 76be0 | 68 65 6e 20 28 6d 69 6e 69 62 75 66 66 65 72 70 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 71 75 | hen.(minibufferp).(minibuffer-qu |
| 76c00 | 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | it-recursive-edit)))))))........ |
| 76c20 | 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 6d 61 | ............(minibuffer-local-ma |
| 76c40 | 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 6d 70 | p.....................(make-comp |
| 76c60 | 6f 73 65 64 2d 6b 65 79 6d 61 70 20 28 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 | osed-keymap.(define-keymap...... |
| 76c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76ca0 | 20 20 20 20 20 20 20 22 54 41 42 22 20 63 79 63 6c 65 2d 70 72 65 66 69 78 20 22 3c 74 61 62 3e | ......."TAB".cycle-prefix."<tab> |
| 76cc0 | 22 20 63 79 63 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 | ".cycle-prefix.................. |
| 76ce0 | 20 20 20 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 43 2d 63 20 | ..........................."C-c. |
| 76d00 | 43 2d 65 22 20 65 64 69 74 2d 69 6e 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | C-e".edit-in-buffer)............ |
| 76d20 | 20 20 20 20 20 20 20 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 |
| 76d40 | 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 | inibuffer-local-map))).......... |
| 76d60 | 20 20 20 20 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 | .....(minibuffer-with-setup-hook |
| 76d80 | 20 63 79 63 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 28 72 | .cycle-prefix.................(r |
| 76da0 | 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 20 70 72 6f 6d | ead-string..................prom |
| 76dc0 | 70 74 20 28 6f 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 22 52 | pt.(or.gptel--rewrite-message."R |
| 76de0 | 65 77 72 69 74 65 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 73 74 | ewrite:.")..................hist |
| 76e00 | 6f 72 79 29 29 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 61 72 67 75 | ory)))))..(transient-define-argu |
| 76e20 | 6d 65 6e 74 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 3a 2d | ment.gptel--infix-rewrite-diff:- |
| 76e40 | 55 20 28 29 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 74 65 78 74 20 6c 69 6e | U.()...:description."Context.lin |
| 76e60 | 65 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 0a 20 | es"...:class.'transient-option.. |
| 76e80 | 20 3a 61 72 67 75 6d 65 6e 74 20 22 2d 55 22 0a 20 20 3a 72 65 61 64 65 72 20 23 27 74 72 61 6e | .:argument."-U"...:reader.#'tran |
| 76ea0 | 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 2d 4e 30 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e | sient-read-number-N0)..;;.*.Tran |
| 76ec0 | 73 69 65 6e 74 20 73 75 66 66 69 78 65 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 0a 0a 28 74 | sient.suffixes.for.rewriting..(t |
| 76ee0 | 72 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 | ransient-define-suffix.gptel--su |
| 76f00 | 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 28 26 6f 70 74 69 6f 6e 61 | ffix-rewrite-directive.(&optiona |
| 76f20 | 6c 20 63 61 6e 63 65 6c 29 0a 20 20 22 45 64 69 74 20 52 65 77 72 69 74 65 20 64 69 72 65 63 74 | l.cancel)..."Edit.Rewrite.direct |
| 76f40 | 69 76 65 2e 0a 0a 43 41 4e 43 45 4c 20 69 73 20 75 73 65 64 20 74 6f 20 61 76 6f 69 64 20 74 6f | ive...CANCEL.is.used.to.avoid.to |
| 76f60 | 75 63 68 69 6e 67 20 64 79 6e 61 6d 69 63 20 72 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 | uching.dynamic.rewrite.directive |
| 76f80 | 73 2c 0a 67 65 6e 65 72 61 74 65 64 20 66 72 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a 20 20 | s,.generated.from.functions."... |
| 76fa0 | 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 65 78 69 74 0a 20 | :transient.'transient--do-exit.. |
| 76fc0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 45 64 69 74 20 66 75 6c 6c 20 72 65 77 72 69 74 65 | .:description."Edit.full.rewrite |
| 76fe0 | 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 6b 65 79 20 22 73 22 0a 20 20 28 69 6e 74 65 72 61 | .directive"...:key."s"...(intera |
| 77000 | 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 66 | ctive....(list.(and...........(f |
| 77020 | 75 6e 63 74 69 6f 6e 70 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 | unctionp.gptel--rewrite-directiv |
| 77040 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 | e)...........(not.(y-or-n-p..... |
| 77060 | 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 20 69 | ............"Rewrite.directive.i |
| 77080 | 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 3a 20 45 64 69 74 20 69 74 | s.dynamically.generated:.Edit.it |
| 770a0 | 73 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 69 6e 73 74 65 61 64 3f 22 29 29 29 29 29 0a 20 | s.current.value.instead?"))))).. |
| 770c0 | 20 28 69 66 20 63 61 6e 63 65 6c 20 28 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 | .(if.cancel.(progn.(message."Edi |
| 770e0 | 74 20 63 61 6e 63 65 6c 65 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.canceled").................... |
| 77100 | 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 6c 2d 72 65 77 | .(call-interactively.#'gptel-rew |
| 77120 | 72 69 74 65 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 76 | rite)).....(gptel--edit-directiv |
| 77140 | 65 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 0a 20 20 20 20 | e.'gptel--rewrite-directive..... |
| 77160 | 20 20 3a 63 61 6c 6c 62 61 63 6b 20 23 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 3a 73 65 74 | ..:callback.#'gptel-rewrite.:set |
| 77180 | 75 70 20 23 27 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e | up.#'activate-mark)))..(transien |
| 771a0 | 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 66 69 78 2d 72 65 | t-define-suffix.gptel--suffix-re |
| 771c0 | 77 72 69 74 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 | write.(&optional.rewrite-message |
| 771e0 | 20 64 72 79 2d 72 75 6e 29 0a 20 20 22 52 65 77 72 69 74 65 20 6f 72 20 72 65 66 61 63 74 6f 72 | .dry-run)..."Rewrite.or.refactor |
| 77200 | 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 2e 22 0a 20 20 3a 6b 65 79 20 22 72 22 0a 20 20 | .region.contents."...:key."r"... |
| 77220 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 67 65 74 | :description.(lambda.().(if.(get |
| 77240 | 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 |
| 77260 | 77 72 69 74 65 29 20 22 49 74 65 72 61 74 65 22 20 22 52 65 77 72 69 74 65 22 29 29 0a 20 20 28 | write)."Iterate"."Rewrite"))...( |
| 77280 | 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | interactive.(list.gptel--rewrite |
| 772a0 | 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 6f 73 79 73 74 65 6d 20 28 67 | -message))...(let*.((nosystem.(g |
| 772c0 | 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) |
| 772e0 | 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 54 72 79 20 74 6f 20 73 65 6e 64 20 63 6f 6e 74 65 78 | )..........;;.Try.to.send.contex |
| 77300 | 74 20 77 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 28 | t.with.system.message..........( |
| 77320 | 67 70 74 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 28 61 6e 64 | gptel-use-context...........(and |
| 77340 | 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 28 69 66 20 6e 6f 73 79 73 74 65 6d 20 | .gptel-use-context.(if.nosystem. |
| 77360 | 27 75 73 65 72 20 27 73 79 73 74 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 | 'user.'system)))..........(promp |
| 77380 | 74 20 28 6c 69 73 74 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 | t.(list.(or.(get-char-property.( |
| 773a0 | 70 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 | point).'gptel-rewrite).......... |
| 773c0 | 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 |
| 773e0 | 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 67 69 6e 6e | ing-no-properties.(region-beginn |
| 77400 | 69 6e 67 29 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 | ing).(region-end)))............. |
| 77420 | 20 20 20 20 20 20 20 20 20 20 20 22 57 68 61 74 20 69 73 20 74 68 65 20 72 65 71 75 69 72 65 64 | ..........."What.is.the.required |
| 77440 | 20 63 68 61 6e 67 65 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .change?"....................... |
| 77460 | 20 28 6f 72 20 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 | .(or.rewrite-message.gptel--rewr |
| 77480 | 69 74 65 2d 6d 65 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6e 6f 73 79 73 74 | ite-message)))).....(when.nosyst |
| 774a0 | 65 6d 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 70 72 6f 6d 70 74 20 28 63 6f 6e 63 61 74 20 | em.......(setcar.prompt.(concat. |
| 774c0 | 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 72 65 63 74 69 76 | (car-safe.(gptel--parse-directiv |
| 774e0 | 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............................... |
| 77500 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 | ..........gptel--rewrite-directi |
| 77520 | 76 65 20 27 72 61 77 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 | ve.'raw))....................... |
| 77540 | 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 20 28 63 61 72 20 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 | ......."\n\n".(car.prompt))))... |
| 77560 | 20 20 28 70 72 6f 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 | ..(prog1.(gptel-request.prompt.. |
| 77580 | 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 0a 20 20 20 | ............:dry-run.dry-run.... |
| 775a0 | 20 20 20 20 20 20 20 20 20 20 3a 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | ..........:system.gptel--rewrite |
| 775c0 | 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 | -directive..............:stream. |
| 775e0 | 67 70 74 65 6c 2d 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 | gptel-stream..............:conte |
| 77600 | 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 76 20 28 6f 72 20 28 63 | xt..............(let.((ov.(or.(c |
| 77620 | 64 72 2d 73 61 66 65 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 | dr-safe.(get-char-property-and-o |
| 77640 | 76 65 72 6c 61 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 29 0a | verlay.(point).'gptel-rewrite)). |
| 77660 | 20 20 20 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 | ...........................(make |
| 77680 | 2d 6f 76 65 72 6c 61 79 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 | -overlay.(region-beginning).(reg |
| 776a0 | 69 6f 6e 2d 65 6e 64 29 20 6e 69 6c 20 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ion-end).nil.t)))).............. |
| 776c0 | 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 70 74 | ..(overlay-put.ov.'category.'gpt |
| 776e0 | 65 6c 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 74 20 | el)................(overlay-put. |
| 77700 | 6f 76 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 | ov.'evaporate.t)................ |
| 77720 | 28 63 6f 6e 73 20 6f 76 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 2a | (cons.ov.(generate-new-buffer."* |
| 77740 | 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-rewrite*"))).............. |
| 77760 | 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 63 61 6c 6c 62 | :callback.#'gptel--rewrite-callb |
| 77780 | 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 74 68 61 74 20 | ack).......;;.Move.back.so.that. |
| 777a0 | 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 79 20 77 68 65 | the.cursor.is.on.the.overlay.whe |
| 777c0 | 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 63 68 61 72 2d | n.done........(unless.(get-char- |
| 777e0 | 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 65 29 | property.(point).'gptel-rewrite) |
| 77800 | 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 72 65 67 69 6f | .........(when.(=.(point).(regio |
| 77820 | 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 0a 20 20 20 20 | n-end)).(backward-char.1)))..... |
| 77840 | 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 41 6c 6c 6f 77 | ..(deactivate-mark))))..;;.Allow |
| 77860 | 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 72 61 63 74 69 | .this.to.be.called.non-interacti |
| 77880 | 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 65 6c 2d 2d 73 | vely.for.dry.runs.(put.'gptel--s |
| 778a0 | 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 6f 6e 6c 79 20 | uffix-rewrite.'interactive-only. |
| 778c0 | 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 66 69 78 20 67 | nil)..(transient-define-suffix.g |
| 778e0 | 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 26 6f 70 74 69 | ptel--suffix-rewrite-diff.(&opti |
| 77900 | 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 6f 75 74 70 75 | onal.switches)..."Diff.LLM.outpu |
| 77920 | 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 61 6d 62 64 61 | t.against.buffer."...:if.(lambda |
| 77940 | 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 20 20 3a | .().gptel--rewrite-overlays)...: |
| 77960 | 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 66 20 20 4c 4c | key."D"...:description."Diff..LL |
| 77980 | 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 28 6c 69 73 74 | M.rewrites"...(interactive.(list |
| 779a0 | 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 63 75 72 72 65 | .(transient-args.transient-curre |
| 779c0 | 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 72 69 74 65 2d | nt-command)))...(gptel--rewrite- |
| 779e0 | 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 73 20 73 77 69 | diff.gptel--rewrite-overlays.swi |
| 77a00 | 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 73 75 66 66 69 | tches))..(transient-define-suffi |
| 77a20 | 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 66 66 20 28 29 | x.gptel--suffix-rewrite-ediff.() |
| 77a40 | 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 74 20 62 75 66 | ..."Ediff.LLM.output.against.buf |
| 77a60 | 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 6c 2d 2d 72 65 | fer."...:if.(lambda.().gptel--re |
| 77a80 | 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 20 20 3a 64 65 | write-overlays)...:key."E"...:de |
| 77aa0 | 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 65 73 22 0a 20 | scription."Ediff.LLM.rewrites".. |
| 77ac0 | 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 72 69 74 65 | .(interactive)...(gptel--rewrite |
| 77ae0 | 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 61 79 73 29 29 | -ediff.gptel--rewrite-overlays)) |
| 77b00 | 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 70 74 65 6c | ..(transient-define-suffix.gptel |
| 77b20 | 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 20 22 49 6e 73 | --suffix-rewrite-merge.()..."Ins |
| 77b40 | 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 66 6c 69 63 74 | ert.LLM.output.as.merge.conflict |
| 77b60 | 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 72 65 77 72 69 | s"...:if.(lambda.().gptel--rewri |
| 77b80 | 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 64 65 73 63 72 | te-overlays)...:key."M"...:descr |
| 77ba0 | 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 73 22 0a 20 20 | iption."Merge.with.conflicts"... |
| 77bc0 | 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 72 69 74 65 2d | (interactive)...(gptel--rewrite- |
| 77be0 | 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 79 73 29 29 0a | merge.gptel--rewrite-overlays)). |
| 77c00 | 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 70 74 65 6c 2d | .(transient-define-suffix.gptel- |
| 77c20 | 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 20 22 41 63 63 | -suffix-rewrite-accept.()..."Acc |
| 77c40 | 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 20 20 3a 69 66 | ept.pending.LLM.rewrites."...:if |
| 77c60 | 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 6f 76 65 72 6c | .(lambda.().gptel--rewrite-overl |
| 77c80 | 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 69 6f 6e 20 22 | ays)...:key."A"...:description." |
| 77ca0 | 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 72 61 63 74 69 | Accept.and.replace"...(interacti |
| 77cc0 | 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 74 20 67 70 74 | ve)...(gptel--rewrite-accept.gpt |
| 77ce0 | 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 61 6e 73 69 65 | el--rewrite-overlays))..(transie |
| 77d00 | 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 66 69 78 2d 72 | nt-define-suffix.gptel--suffix-r |
| 77d20 | 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 65 6e 64 69 6e | ewrite-reject.()..."Clear.pendin |
| 77d40 | 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 62 64 61 20 28 | g.LLM.rewrites."...:if.(lambda.( |
| 77d60 | 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 20 20 3a 6b 65 | ).gptel--rewrite-overlays)...:ke |
| 77d80 | 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 20 70 65 6e 64 | y."K"...:description."Clear.pend |
| 77da0 | 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 65 29 0a 20 20 | ing.rewrites"...(interactive)... |
| 77dc0 | 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 6c 2d 2d 72 65 | (gptel--rewrite-reject.gptel--re |
| 77de0 | 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 27 67 70 74 65 | write-overlays))..(provide.'gpte |
| 77e00 | 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 65 2e 65 6c 20 | l-rewrite).;;;.gptel-rewrite.el. |
| 77e20 | 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 3b | ends.here..;;.Local.Variables:.; |
| 77e40 | 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 22 0a 3b 3b 20 | ;.outline-regexp:."^;;.\\*+".;;. |
| 77e60 | 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 00 00 00 00 00 | End:............................ |
| 77e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 77fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2e 65 6c 00 00 00 00 00 | gptel-0.9.8/gptel-openai.el..... |
| 78020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78060 | 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 |
| 78080 | 30 30 36 35 33 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 32 33 00 20 30 00 00 00 | 0065352.00000000000.014223..0... |
| 780a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 780c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 780e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78100 | 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................... |
| 78120 | 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................... |
| 78140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 781a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 781c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 781e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 78200 | 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 |
| 78220 | 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 |
| 78240 | 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.( |
| 78260 | 43 29 20 32 30 32 33 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).2023..Karthik.Chikmagalur..;; |
| 78280 | 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 |
| 782a0 | 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 0a 3b 3b 20 | rthikchikmagalur@gmail.com>..;;. |
| 782c0 | 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 3b 20 79 | This.program.is.free.software;.y |
| 782e0 | 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 6f | ou.can.redistribute.it.and/or.mo |
| 78300 | 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 20 74 68 | dify.;;.it.under.the.terms.of.th |
| 78320 | 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 73 20 | e.GNU.General.Public.License.as. |
| 78340 | 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 77 61 72 | published.by.;;.the.Free.Softwar |
| 78360 | 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 33 20 6f | e.Foundation,.either.version.3.o |
| 78380 | 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 20 6f 70 | f.the.License,.or.;;.(at.your.op |
| 783a0 | 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 54 68 69 | tion).any.later.version...;;.Thi |
| 783c0 | 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 68 65 20 | s.program.is.distributed.in.the. |
| 783e0 | 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 3b 3b 20 | hope.that.it.will.be.useful,.;;. |
| 78400 | 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 68 6f 75 | but.WITHOUT.ANY.WARRANTY;.withou |
| 78420 | 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 66 0a 3b | t.even.the.implied.warranty.of.; |
| 78440 | 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 46 4f 52 | ;.MERCHANTABILITY.or.FITNESS.FOR |
| 78460 | 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 68 65 0a | .A.PARTICULAR.PURPOSE...See.the. |
| 78480 | 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 20 66 6f | ;;.GNU.General.Public.License.fo |
| 784a0 | 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 64 20 68 | r.more.details...;;.You.should.h |
| 784c0 | 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 55 20 47 | ave.received.a.copy.of.the.GNU.G |
| 784e0 | 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 67 20 77 | eneral.Public.License.;;.along.w |
| 78500 | 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 65 20 3c | ith.this.program...If.not,.see.< |
| 78520 | 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 3e 2e 0a | https://www.gnu.org/licenses/>.. |
| 78540 | 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 65 20 61 | .;;;.Commentary:..;;.This.file.a |
| 78560 | 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 20 41 50 49 20 | dds.support.for.the.ChatGPT.API. |
| 78580 | 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 63 6c | to.gptel..;;;.Code:.(require.'cl |
| 785a0 | 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 65 0a 20 20 28 | -generic).(eval-when-compile...( |
| 785c0 | 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 27 6d 61 70 29 | require.'cl-lib)).(require.'map) |
| 785e0 | 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 76 61 72 20 67 | ..(defvar.gptel-model).(defvar.g |
| 78600 | 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 75 73 65 2d 63 | ptel-stream).(defvar.gptel-use-c |
| 78620 | 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 0a 28 64 65 66 | url).(defvar.gptel-backend).(def |
| 78640 | 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 76 61 72 20 67 | var.gptel-temperature).(defvar.g |
| 78660 | 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 74 65 6c 2d 2d | ptel-max-tokens).(defvar.gptel-- |
| 78680 | 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 6e 2d 6f 62 6a | system-message).(defvar.json-obj |
| 786a0 | 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 65 29 0a 28 64 | ect-type).(defvar.gptel-mode).(d |
| 786c0 | 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 0a 28 64 65 66 | efvar.gptel-track-response).(def |
| 786e0 | 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 76 61 72 20 67 | var.gptel-track-media).(defvar.g |
| 78700 | 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 65 6c 2d 74 6f | ptel-use-tools).(defvar.gptel-to |
| 78720 | 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 6c 2d 63 6f 6e | ols).(declare-function.gptel-con |
| 78740 | 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 63 6f 6e 74 65 | text--collect-media."gptel-conte |
| 78760 | 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 2d 2d 62 61 | xt").(declare-function.gptel--ba |
| 78780 | 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 72 65 2d 66 75 | se64-encode."gptel").(declare-fu |
| 787a0 | 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 20 22 67 70 74 | nction.gptel--trim-prefixes."gpt |
| 787c0 | 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 70 61 | el").(declare-function.gptel--pa |
| 787e0 | 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 65 63 6c 61 72 | rse-media-links."gptel").(declar |
| 78800 | 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 61 62 6c 65 2d | e-function.gptel--model-capable- |
| 78820 | 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 6e 20 67 70 74 | p."gptel").(declare-function.gpt |
| 78840 | 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 63 6c 61 72 65 | el--model-name."gptel").(declare |
| 78860 | 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 79 20 22 67 70 | -function.gptel--get-api-key."gp |
| 78880 | 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 70 2d 6d 61 74 | tel").(declare-function.prop-mat |
| 788a0 | 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 72 63 68 22 29 | ch-value."text-property-search") |
| 788c0 | 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 70 65 72 74 79 | .(declare-function.text-property |
| 788e0 | 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 65 72 74 79 2d | -search-backward."text-property- |
| 78900 | 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 6a 73 6f 6e 2d | search").(declare-function.json- |
| 78920 | 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 69 6f 6e 20 67 | read."json").(declare-function.g |
| 78940 | 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 67 70 74 65 6c | ptel-prompt-prefix-string."gptel |
| 78960 | 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 72 65 73 70 6f | ").(declare-function.gptel-respo |
| 78980 | 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 28 64 65 63 6c | nse-prefix-string."gptel").(decl |
| 789a0 | 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 6c 69 73 74 73 | are-function.gptel--merge-plists |
| 789c0 | 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 |
| 789e0 | 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 74 65 6c 22 29 | l--model-request-params."gptel") |
| 78a00 | 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 |
| 78a20 | 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 72 65 | --wrap."gptel-context").(declare |
| 78a40 | 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 6d 70 74 20 22 | -function.gptel--inject-prompt." |
| 78a60 | 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- |
| 78a80 | 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 53 4f 4e 20 63 | -parse-tools."gptel")..;;.JSON.c |
| 78aa0 | 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 20 67 70 74 65 | onversion.semantics.used.by.gpte |
| 78ac0 | 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 6d 70 74 79 20 | l.;;.empty.object."{}".=>.empty. |
| 78ae0 | 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 20 20 20 20 20 | list.'().==.nil.;;.null......... |
| 78b00 | 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 20 20 20 20 20 | .....=>.:null.;;.false.......... |
| 78b20 | 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 74 6f 6f 6c 29 | ...=>.:json-false..;;.TODO(tool) |
| 78b40 | 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 72 6f 6d 20 61 | .Except.when.reading.JSON.from.a |
| 78b60 | 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 0a 28 64 65 66 | .string,.where.null.=>.nil..(def |
| 78b80 | 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 20 28 69 66 20 | macro.gptel--json-read.()...(if. |
| 78ba0 | 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 29 0a 20 20 20 | (fboundp.'json-parse-buffer).... |
| 78bc0 | 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 20 20 20 20 3a | ...`(json-parse-buffer.........: |
| 78be0 | 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 3a 6e 75 6c 6c | object-type.'plist.........:null |
| 78c00 | 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 65 2d 6f 62 6a | -object.:null.........:false-obj |
| 78c20 | 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 72 65 20 27 6a | ect.:json-false).....(require.'j |
| 78c40 | 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 74 2d 74 79 70 | son).....(defvar.json-object-typ |
| 78c60 | 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 20 20 20 28 64 | e).....(defvar.json-null).....(d |
| 78c80 | 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 6a 73 6f 6e 22 | eclare-function.json-read."json" |
| 78ca0 | 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 74 2d 74 79 70 | .()).....`(let.((json-object-typ |
| 78cc0 | 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 6e 75 6c 6c 20 | e.'plist)............(json-null. |
| 78ce0 | 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 29 0a 0a 28 64 | :null)).......(json-read))))..(d |
| 78d00 | 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 72 69 6e 67 20 | efmacro.gptel--json-read-string. |
| 78d20 | 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 70 61 72 73 65 | (str)...(if.(fboundp.'json-parse |
| 78d40 | 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 2d 73 74 72 69 | -string).......`(json-parse-stri |
| 78d60 | 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 65 20 27 70 6c | ng.,str.........:object-type.'pl |
| 78d80 | 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 6c 0a 20 20 20 | ist.........:null-object.nil.... |
| 78da0 | 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 6c 73 65 29 0a | .....:false-object.:json-false). |
| 78dc0 | 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 66 76 61 72 20 | ....(require.'json).....(defvar. |
| 78de0 | 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 61 72 65 2d 66 | json-object-type).....(declare-f |
| 78e00 | 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 6e 67 20 22 6a | unction.json-read-from-string."j |
| 78e20 | 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 74 | son".()).....`(let.((json-object |
| 78e40 | 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 72 65 61 64 2d | -type.'plist)).......(json-read- |
| 78e60 | 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 61 63 72 6f 20 | from-string.,str))))..(defmacro. |
| 78e80 | 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 0a 20 20 28 69 | gptel--json-encode.(object)...(i |
| 78ea0 | 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 0a 20 20 20 20 | f.(fboundp.'json-serialize)..... |
| 78ec0 | 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 20 20 20 20 20 | ..`(json-serialize.,object...... |
| 78ee0 | 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 20 20 20 3a 66 | ...:null-object.:null.........:f |
| 78f00 | 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 20 20 28 72 65 | alse-object.:json-false).....(re |
| 78f20 | 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 6f 6e 2d 66 61 | quire.'json).....(defvar.json-fa |
| 78f40 | 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 0a 20 20 20 20 | lse).....(defvar.json-null)..... |
| 78f60 | 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 64 65 20 22 6a | (declare-function.json-encode."j |
| 78f80 | 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 6a 73 6f 6e 2d | son".(object)).....`(let.((json- |
| 78fa0 | 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 20 20 20 28 6a | false.:json-false)............(j |
| 78fc0 | 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 6f 6e 2d 65 6e | son-null..:null)).......(json-en |
| 78fe0 | 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 74 65 6c 2d 2d | code.,object))))..(defun.gptel-- |
| 79000 | 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 43 6f 6e 76 65 | process-models.(models)..."Conve |
| 79020 | 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 6c 73 20 77 69 | rt.items.in.MODELS.to.symbols.wi |
| 79040 | 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 0a 20 20 28 6c | th.appropriate.properties."...(l |
| 79060 | 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 20 28 64 6f 6c | et.((models-processed)).....(dol |
| 79080 | 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 6c 2d 65 74 79 | ist.(model.models).......(cl-ety |
| 790a0 | 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 67 20 28 70 75 | pecase.model.........(string.(pu |
| 790c0 | 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 6f 63 65 73 73 | sh.(intern.model).models-process |
| 790e0 | 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 6d 6f 64 65 6c | ed)).........(symbol.(push.model |
| 79100 | 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 20 28 63 6f 6e | .models-processed)).........(con |
| 79120 | 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 67 2d 62 69 6e | s..........(cl-destructuring-bin |
| 79140 | 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 20 20 20 20 20 | d.(name...props).model.......... |
| 79160 | 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 0a 20 20 20 20 | ..(setf.(symbol-plist.name)..... |
| 79180 | 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 69 6e 67 20 65 | .............;;.MAYBE:.Merging.e |
| 791a0 | 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 66 65 72 2c 20 | xisting.symbol.plists.is.safer,. |
| 791c0 | 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 20 20 20 3b 3b | but.makes.it..................;; |
| 791e0 | 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 6c 20 70 6c 69 | .difficult.to.reset.a.symbol.pli |
| 79200 | 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 6d 0a 20 20 20 | st,.since.removing.keys.from.... |
| 79220 | 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 6f 73 65 64 20 | ..............;;.it.(as.opposed. |
| 79240 | 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 6d 6f 72 65 20 | to.setting.them.to.nil).is.more. |
| 79260 | 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 20 20 20 20 20 | work...................;;....... |
| 79280 | 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 6c 69 73 74 20 | ...........;;.(map-merge.'plist. |
| 792a0 | 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 20 20 20 20 20 | (symbol-plist.name).props)...... |
| 792c0 | 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 20 20 20 28 70 | ............props)............(p |
| 792e0 | 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 29 29 29 0a 20 | ush.name.models-processed))))).. |
| 79300 | 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 65 64 29 29 29 | ...(nreverse.models-processed))) |
| 79320 | 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 20 66 6f 72 20 | ..;;;.Common.backend.struct.for. |
| 79340 | 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 6b 6e 6f 77 6e | LLM.support.(defvar.gptel--known |
| 79360 | 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 4c 4d 20 62 61 | -backends.nil..."Alist.of.LLM.ba |
| 79380 | 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 73 20 69 73 20 | ckends.known.to.gptel...This.is. |
| 793a0 | 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 64 65 64 20 6e | an.alist.mapping.user-provided.n |
| 793c0 | 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 65 20 60 67 70 | ames.to.backend.structs,.see.`gp |
| 793e0 | 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 20 6d 6f 72 65 | tel-backend'...You.can.have.more |
| 79400 | 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 74 6f 20 74 68 | .than.one.backend.pointing.to.th |
| 79420 | 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 69 6e 67 20 73 | e.same.resource.with.differing.s |
| 79440 | 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 74 2d 62 61 63 | ettings.")..(defun.gptel-get-bac |
| 79460 | 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 20 62 61 63 6b | kend.(name)..."Return.gptel.back |
| 79480 | 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 72 6f 72 20 69 | end.with.NAME...Throw.an.error.i |
| 794a0 | 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 20 28 61 6c 69 | f.there.is.no.match."...(or.(ali |
| 794c0 | 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 64 | st-get.name.gptel--known-backend |
| 794e0 | 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 73 65 72 2d 65 | s.nil.nil.#'equal).......(user-e |
| 79500 | 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 77 6e 20 74 6f | rror."Backend.%s.is.not.known.to |
| 79520 | 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 20 20 20 20 6e | .be.defined"...................n |
| 79540 | 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 70 74 65 6c 2d | ame)))..(gv-define-setter.gptel- |
| 79560 | 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 73 65 74 66 20 | get-backend.(val.name)...`(setf. |
| 79580 | 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 77 6e 2d 62 61 | (alist-get.,name.gptel--known-ba |
| 795a0 | 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 75 61 6c 29 0a | ckends...........nil.t.#'equal). |
| 795c0 | 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 20 20 20 28 67 | ....,val))..(cl-defstruct.....(g |
| 795e0 | 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 67 70 74 65 6c | ptel-backend.(:constructor.gptel |
| 79600 | 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 20 20 20 20 20 | --make-backend)................. |
| 79620 | 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 6b 65 6e 64 29 | ...(:copier.gptel--copy-backend) |
| 79640 | 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 6f 6c 20 73 74 | )...name.host.header.protocol.st |
| 79660 | 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 75 72 6c 20 72 | ream...endpoint.key.models.url.r |
| 79680 | 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 29 0a 0a 3b 3b 3b 20 | equest-params...curl-args)..;;;. |
| 796a0 | 4f 70 65 6e 41 49 20 28 43 68 61 74 47 50 54 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 | OpenAI.(ChatGPT).(cl-defstruct.( |
| 796c0 | 67 70 74 65 6c 2d 6f 70 65 6e 61 69 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c | gptel-openai.(:constructor.gptel |
| 796e0 | 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | --make-openai).................. |
| 79700 | 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 20 | ...........(:copier.nil)........ |
| 79720 | 20 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 | .....................(:include.g |
| 79740 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 3b 3b 20 48 6f 77 20 74 68 65 20 66 6f 6c 6c | ptel-backend)))..;;.How.the.foll |
| 79760 | 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 77 6f 72 6b 73 3a 0a 3b 3b 0a 3b 3b 20 54 68 65 20 | owing.function.works:.;;.;;.The. |
| 79780 | 4f 70 65 6e 41 49 20 41 50 49 20 72 65 74 75 72 6e 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 64 | OpenAI.API.returns.a.stream.of.d |
| 797a0 | 61 74 61 20 63 68 75 6e 6b 73 2e 20 20 45 61 63 68 20 64 61 74 61 20 63 68 75 6e 6b 20 68 61 73 | ata.chunks...Each.data.chunk.has |
| 797c0 | 20 61 0a 3b 3b 20 63 6f 6d 70 6f 6e 65 6e 74 20 74 68 61 74 20 63 61 6e 20 62 65 20 70 61 72 73 | .a.;;.component.that.can.be.pars |
| 797e0 | 65 64 20 61 73 20 4a 53 4f 4e 2e 20 20 42 65 73 69 64 65 73 20 6d 65 74 61 64 61 74 61 2c 20 65 | ed.as.JSON...Besides.metadata,.e |
| 79800 | 61 63 68 20 63 68 75 6e 6b 20 68 61 73 0a 3b 3b 20 65 69 74 68 65 72 20 73 6f 6d 65 20 74 65 78 | ach.chunk.has.;;.either.some.tex |
| 79820 | 74 20 6f 72 20 70 61 72 74 20 6f 66 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 2e 0a 3b 3b 0a 3b 3b 20 | t.or.part.of.a.tool.call..;;.;;. |
| 79840 | 49 66 20 77 65 20 66 69 6e 64 20 74 65 78 74 2c 20 77 65 20 63 6f 6c 6c 65 63 74 20 69 74 20 69 | If.we.find.text,.we.collect.it.i |
| 79860 | 6e 20 61 20 6c 69 73 74 2c 20 63 6f 6e 63 61 74 20 74 68 65 6d 20 61 74 20 74 68 65 20 65 6e 64 | n.a.list,.concat.them.at.the.end |
| 79880 | 20 61 6e 64 20 72 65 74 75 72 6e 0a 3b 3b 20 69 74 2e 0a 3b 3b 0a 3b 3b 20 49 66 20 77 65 20 66 | .and.return.;;.it..;;.;;.If.we.f |
| 798a0 | 69 6e 64 20 70 61 72 74 20 6f 66 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 2c 20 77 65 20 62 65 67 69 | ind.part.of.a.tool.call,.we.begi |
| 798c0 | 6e 20 63 6f 6c 6c 65 63 74 69 6e 67 20 74 68 65 20 70 69 65 63 65 73 20 69 6e 0a 3b 3b 20 49 4e | n.collecting.the.pieces.in.;;.IN |
| 798e0 | 46 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 20 63 61 6c 6c | FO.->.:tool-use..;;.;;.Tool.call |
| 79900 | 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 74 68 65 6d 73 65 6c 76 65 73 20 4a 53 4f 4e 20 65 | .arguments.are.themselves.JSON.e |
| 79920 | 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 73 20 63 61 6e 20 62 65 20 73 70 72 65 61 64 20 61 63 72 | ncoded.strings.can.be.spread.acr |
| 79940 | 6f 73 73 0a 3b 3b 20 63 68 75 6e 6b 73 2e 20 20 57 65 20 63 6f 6c 6c 65 63 74 20 74 68 65 6d 20 | oss.;;.chunks...We.collect.them. |
| 79960 | 69 6e 20 49 4e 46 4f 20 2d 3e 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 2e 20 20 54 68 65 20 65 | in.INFO.->.:partial_json...The.e |
| 79980 | 6e 64 20 6f 66 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 0a 3b 3b 20 63 68 75 6e 6b 20 69 73 20 6d 61 | nd.of.a.tool.call.;;.chunk.is.ma |
| 799a0 | 72 6b 65 64 20 62 79 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 6f 74 68 65 72 | rked.by.the.beginning.of.another |
| 799c0 | 2c 20 6f 72 20 62 79 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 73 74 72 65 61 6d 2e 20 20 | ,.or.by.the.end.of.the.stream... |
| 799e0 | 49 6e 0a 3b 3b 20 65 69 74 68 65 72 20 63 61 73 65 20 77 65 20 66 6c 61 74 65 6e 20 74 68 65 20 | In.;;.either.case.we.flaten.the. |
| 79a00 | 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 77 65 20 68 61 76 65 20 74 68 75 73 20 66 61 72 2c 20 | :partial_json.we.have.thus.far,. |
| 79a20 | 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 74 6f 6f 6c 0a 3b 3b 20 63 61 6c 6c 20 73 70 65 63 20 | add.it.to.the.tool.;;.call.spec. |
| 79a40 | 69 6e 20 3a 74 6f 6f 6c 2d 75 73 65 20 61 6e 64 20 72 65 73 65 74 20 69 74 2e 20 20 46 69 6e 61 | in.:tool-use.and.reset.it...Fina |
| 79a60 | 6c 6c 79 20 77 65 20 61 70 70 65 6e 64 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 74 6f 20 | lly.we.append.the.tool.calls.to. |
| 79a80 | 74 68 65 0a 3b 3b 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 | the.;;.(INFO.->.:data.->.:messag |
| 79aa0 | 65 73 29 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | es).list.of.prompts...(cl-defmet |
| 79ac0 | 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 28 28 5f | hod.gptel-curl--parse-stream.((_ |
| 79ae0 | 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 69 6e 66 6f 29 0a 20 20 22 50 | backend.gptel-openai).info)..."P |
| 79b00 | 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 41 50 49 20 64 61 74 61 20 73 74 72 65 61 6d 2e 0a | arse.an.OpenAI.API.data.stream.. |
| 79b20 | 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 63 63 75 6d 75 | .Return.the.text.response.accumu |
| 79b40 | 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 6f 20 74 68 69 | lated.since.the.last.call.to.thi |
| 79b60 | 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 6d 75 74 61 74 | s.function...Additionally,.mutat |
| 79b80 | 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 65 0a 69 6e 66 | e.state.INFO.to.add.tool-use.inf |
| 79ba0 | 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 61 69 6e 73 20 | ormation.if.the.stream.contains. |
| 79bc0 | 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 29 29 0a 20 20 | it."...(let*.((content-strs))... |
| 79be0 | 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 28 77 | ..(condition-case.nil.........(w |
| 79c00 | 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 5e 64 61 74 61 3a 22 | hile.(re-search-forward."^data:" |
| 79c20 | 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 61 74 63 68 2d 64 61 | .nil.t)...........(save-match-da |
| 79c40 | 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 6e 67 2d 61 74 20 22 | ta.............(if.(looking-at." |
| 79c60 | 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 20 20 3b | .*\\[DONE\\]").................; |
| 79c80 | 3b 20 54 68 65 20 73 74 72 65 61 6d 20 68 61 73 20 65 6e 64 65 64 2c 20 73 6f 20 77 65 20 64 6f | ;.The.stream.has.ended,.so.we.do |
| 79ca0 | 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 68 69 6e 67 20 28 69 66 20 77 65 20 66 6f 75 6e | .the.following.thing.(if.we.foun |
| 79cc0 | 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | d.tool.calls).................;; |
| 79ce0 | 20 2d 20 70 61 63 6b 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 69 6e 74 6f 20 74 68 65 20 6d 65 73 73 | .-.pack.tool.calls.into.the.mess |
| 79d00 | 61 67 65 73 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 20 74 6f 20 73 65 6e 64 20 28 49 4e 46 4f 20 | ages.prompts.list.to.send.(INFO. |
| 79d20 | 2d 3e 20 3a 64 61 74 61 20 2d 3e 20 3a 6d 65 73 73 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 | ->.:data.->.:messages).......... |
| 79d40 | 20 20 20 20 20 20 20 3b 3b 20 2d 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 28 | .......;;.-.collect.tool.calls.( |
| 79d60 | 66 6f 72 6d 61 74 74 65 64 20 64 69 66 66 65 72 65 6e 74 6c 79 29 20 69 6e 74 6f 20 28 49 4e 46 | formatted.differently).into.(INF |
| 79d80 | 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | O.->.:tool-use)................. |
| 79da0 | 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 69 73 74 2d 67 65 74 | (when-let*.((tool-use.(plist-get |
| 79dc0 | 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 20 20 20 20 20 20 20 | .info.:tool-use))............... |
| 79de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e | ..............(args.(apply.#'con |
| 79e00 | 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 | cat.(nreverse.(plist-get.info.:p |
| 79e20 | 61 72 74 69 61 6c 5f 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 | artial_json))))................. |
| 79e40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 | ............(func.(plist-get.(ca |
| 79e60 | 72 20 74 6f 6f 6c 2d 75 73 65 29 20 3a 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 | r.tool-use).:function)))........ |
| 79e80 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 66 75 6e 63 20 3a 61 72 67 75 | ...........(plist-put.func.:argu |
| 79ea0 | 6d 65 6e 74 73 20 61 72 67 73 29 20 3b 55 70 64 61 74 65 20 61 72 67 75 6d 65 6e 74 73 20 66 6f | ments.args).;Update.arguments.fo |
| 79ec0 | 72 20 6c 61 73 74 20 72 65 63 6f 72 64 65 64 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | r.last.recorded.tool............ |
| 79ee0 | 20 20 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 0a 20 20 20 | .......(gptel--inject-prompt.... |
| 79f00 | 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. |
| 79f20 | 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 20 3a 64 61 74 61 29 | :backend).(plist-get.info.:data) |
| 79f40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 72 6f 6c 65 20 22 61 73 73 | ....................`(:role."ass |
| 79f60 | 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c 20 3a 74 6f 6f 6c 5f 63 61 6c | istant".:content.:null.:tool_cal |
| 79f80 | 6c 73 20 2c 28 76 63 6f 6e 63 61 74 20 74 6f 6f 6c 2d 75 73 65 29 29 29 20 3b 20 3a 72 65 66 75 | ls.,(vconcat.tool-use))).;.:refu |
| 79fa0 | 73 61 6c 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d | sal.:null...................(cl- |
| 79fc0 | 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c | loop....................for.tool |
| 79fe0 | 2d 63 61 6c 6c 20 69 6e 20 74 6f 6f 6c 2d 75 73 65 20 3b 20 43 6f 6e 73 74 72 75 63 74 20 74 68 | -call.in.tool-use.;.Construct.th |
| 7a000 | 65 20 63 61 6c 6c 20 73 70 65 63 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 66 75 6e | e.call.specs.for.running.the.fun |
| 7a020 | 63 74 69 6f 6e 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 20 66 | ction.calls....................f |
| 7a040 | 6f 72 20 73 70 65 63 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a | or.spec.=.(plist-get.tool-call.: |
| 7a060 | 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 20 20 63 6f 6c | function)....................col |
| 7a080 | 6c 65 63 74 20 28 6c 69 73 74 20 3a 69 64 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 75 6e | lect.(list.:id.(gptel--openai-un |
| 7a0a0 | 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 | format-tool-id.(plist-get.tool-c |
| 7a0c0 | 61 6c 6c 20 3a 69 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 | all.:id))....................... |
| 7a0e0 | 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 73 70 65 63 | ...........:name.(plist-get.spec |
| 7a100 | 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 20 20 20 20 20 | .:name)......................... |
| 7a120 | 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 67 | .........:args.(ignore-errors.(g |
| 7a140 | 70 74 65 6c 2d 2d 6a 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 | ptel--json-read-string.......... |
| 7a160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7a180 | 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 70 65 63 20 3a 61 | ..............(plist-get.spec.:a |
| 7a1a0 | 72 67 75 6d 65 6e 74 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 | rguments)))).................... |
| 7a1c0 | 69 6e 74 6f 20 63 61 6c 6c 2d 73 70 65 63 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | into.call-specs................. |
| 7a1e0 | 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 |
| 7a200 | 2d 75 73 65 20 63 61 6c 6c 2d 73 70 65 63 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -use.call-specs))).............. |
| 7a220 | 20 28 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 | .(when-let*.((response.(gptel--j |
| 7a240 | 73 6f 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 | son-read))...................... |
| 7a260 | 20 20 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 | .....(delta.(map-nested-elt.resp |
| 7a280 | 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 29 0a 20 20 20 | onse.'(:choices.0.:delta)))).... |
| 7a2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 | .............(if-let*.((content. |
| 7a2c0 | 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 | (plist-get.delta.:content))..... |
| 7a2e0 | 20 20 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 65 71 20 | ......................((not.(eq. |
| 7a300 | 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | content.:null))))............... |
| 7a320 | 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 | ......(push.content.content-strs |
| 7a340 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 20 74 65 78 74 20 63 | )...................;;.No.text.c |
| 7a360 | 6f 6e 74 65 6e 74 2c 20 73 6f 20 6c 6f 6f 6b 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 0a 20 | ontent,.so.look.for.tool.calls.. |
| 7a380 | 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 74 6f | .................(when-let*.((to |
| 7a3a0 | 6f 6c 2d 63 61 6c 6c 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 | ol-call.(map-nested-elt.delta.'( |
| 7a3c0 | 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :tool_calls.0)))................ |
| 7a3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 | ...............(func.(plist-get. |
| 7a400 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 | tool-call.:function))).......... |
| 7a420 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 66 75 6e 63 20 3a | ...........(if.(plist-get.func.: |
| 7a440 | 6e 61 6d 65 29 20 3b 6e 65 77 20 74 6f 6f 6c 20 62 6c 6f 63 6b 20 62 65 67 69 6e 73 0a 20 20 20 | name).;new.tool.block.begins.... |
| 7a460 | 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 67 6e 0a 20 20 20 20 | .....................(progn..... |
| 7a480 | 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 2d 6c 65 74 2a | ......................(when-let* |
| 7a4a0 | 20 28 28 70 61 72 74 69 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 | .((partial.(plist-get.info.:part |
| 7a4c0 | 69 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 | ial_json)))..................... |
| 7a4e0 | 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 65 76 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 | ........(let*.((prev-tool-call.( |
| 7a500 | 63 61 72 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 | car.(plist-get.info.:tool-use))) |
| 7a520 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7a540 | 20 20 20 20 28 70 72 65 76 2d 66 75 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 65 76 2d 74 | ....(prev-func.(plist-get.prev-t |
| 7a560 | 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ool-call.:function)))........... |
| 7a580 | 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 70 | ....................(plist-put.p |
| 7a5a0 | 72 65 76 2d 66 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 3b 75 70 64 61 74 65 20 61 72 67 73 | rev-func.:arguments.;update.args |
| 7a5c0 | 20 66 6f 72 20 6f 6c 64 20 74 6f 6f 6c 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .for.old.tool.block............. |
| 7a5e0 | 20 20 20 20 20 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 70 | .............................(ap |
| 7a600 | 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 2d 67 65 | ply.#'concat.(nreverse.(plist-ge |
| 7a620 | 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)))))....... |
| 7a640 | 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 |
| 7a660 | 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 6e 69 6c 29 29 20 3b 63 6c 65 61 72 | .info.:partial_json.nil)).;clear |
| 7a680 | 20 6f 75 74 20 66 69 6e 69 73 68 65 64 20 63 68 61 69 6e 20 6f 66 20 70 61 72 74 69 61 6c 20 61 | .out.finished.chain.of.partial.a |
| 7a6a0 | 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 20 3b 3b | rgs...........................;; |
| 7a6c0 | 20 53 74 61 72 74 20 6e 65 77 20 63 68 61 69 6e 20 6f 66 20 70 61 72 74 69 61 6c 20 61 72 67 75 | .Start.new.chain.of.partial.argu |
| 7a6e0 | 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.................... |
| 7a700 | 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 5f | .......(plist-put.info.:partial_ |
| 7a720 | 6a 73 6f 6e 20 28 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 66 75 6e 63 20 3a 61 72 67 75 | json.(list.(plist-get.func.:argu |
| 7a740 | 6d 65 6e 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 20 20 20 20 | ments)))........................ |
| 7a760 | 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 44 6f 20 4e 4f 54 20 75 73 65 20 60 70 75 73 68 27 20 66 6f | ...;;.NOTE:.Do.NOT.use.`push'.fo |
| 7a780 | 72 20 74 68 69 73 2c 20 69 74 20 70 72 65 70 65 6e 64 73 20 61 6e 64 20 77 65 20 6c 6f 73 65 20 | r.this,.it.prepends.and.we.lose. |
| 7a7a0 | 74 68 65 20 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 | the.reference................... |
| 7a7c0 | 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 2d 75 73 | ........(plist-put.info.:tool-us |
| 7a7e0 | 65 20 28 63 6f 6e 73 20 74 6f 6f 6c 2d 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | e.(cons.tool-call.(plist-get.inf |
| 7a800 | 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o.:tool-use))))................. |
| 7a820 | 20 20 20 20 20 20 3b 3b 20 6f 6c 64 20 74 6f 6f 6c 20 62 6c 6f 63 6b 20 63 6f 6e 74 69 6e 75 65 | ......;;.old.tool.block.continue |
| 7a840 | 73 2c 20 73 6f 20 63 6f 6e 74 69 6e 75 65 20 63 6f 6c 6c 65 63 74 69 6e 67 20 61 72 67 75 6d 65 | s,.so.continue.collecting.argume |
| 7a860 | 6e 74 73 20 69 6e 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 0a 20 20 20 20 20 20 20 20 20 20 | nts.in.:partial_json............ |
| 7a880 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 70 6c 69 73 74 2d 67 65 74 20 66 75 6e | ............(push.(plist-get.fun |
| 7a8a0 | 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 | c.:arguments).(plist-get.info.:p |
| 7a8c0 | 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | artial_json)))))................ |
| 7a8e0 | 20 3b 3b 20 43 68 65 63 6b 20 66 6f 72 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 73 2c 20 | .;;.Check.for.reasoning.blocks,. |
| 7a900 | 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 75 73 65 64 20 62 79 20 4f 70 65 6e 72 6f 75 74 65 | currently.only.used.by.Openroute |
| 7a920 | 72 0a 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 53 68 6f 75 | r.................;;.MAYBE:.Shou |
| 7a940 | 6c 64 20 74 68 69 73 20 62 65 20 6d 6f 76 65 64 20 74 6f 20 61 20 64 65 64 69 63 61 74 65 64 20 | ld.this.be.moved.to.a.dedicated. |
| 7a960 | 4f 70 65 6e 72 6f 75 74 65 72 20 62 61 63 6b 65 6e 64 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 | Openrouter.backend?............. |
| 7a980 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 65 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | ....(unless.(or.(eq.(plist-get.i |
| 7a9a0 | 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 64 6f 6e 65 29 0a 20 20 20 | nfo.:reasoning-block).'done).... |
| 7a9c0 | 20 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 70 | .........................(not.(p |
| 7a9e0 | 6c 69 73 74 2d 6d 65 6d 62 65 72 20 64 65 6c 74 61 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a | list-member.delta.:reasoning))). |
| 7aa00 | 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 72 65 61 | ..................(if-let*.((rea |
| 7aa20 | 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 72 | soning-chunk.(plist-get.delta.:r |
| 7aa40 | 65 61 73 6f 6e 69 6e 67 29 29 20 3b 66 6f 72 20 6f 70 65 6e 72 6f 75 74 65 72 0a 20 20 20 20 20 | easoning)).;for.openrouter...... |
| 7aa60 | 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 6e 6f 74 20 28 65 71 | .......................((not.(eq |
| 7aa80 | 20 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 20 20 20 20 | .reasoning-chunk.:null))))...... |
| 7aaa0 | 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 |
| 7aac0 | 20 3a 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 | .:reasoning..................... |
| 7aae0 | 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 73 74 2d 67 65 74 20 | .............(concat.(plist-get. |
| 7ab00 | 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 67 2d 63 68 75 6e 6b | info.:reasoning).reasoning-chunk |
| 7ab20 | 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 20 44 6f 6e 65 20 77 | )).....................;;.Done.w |
| 7ab40 | 69 74 68 20 72 65 61 73 6f 6e 69 6e 67 20 69 66 20 77 65 20 67 65 74 20 6e 6f 6e 2d 65 6d 70 74 | ith.reasoning.if.we.get.non-empt |
| 7ab60 | 79 20 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 28 69 | y.content.....................(i |
| 7ab80 | 66 2d 6c 65 74 2a 20 28 28 63 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 6f 6e | f-let*.((c.(plist-get.delta.:con |
| 7aba0 | 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)).......................... |
| 7abc0 | 20 20 20 20 20 28 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 20 3a 6e 75 6c 6c 29 20 28 73 74 72 | .....((not.(or.(eq.c.:null).(str |
| 7abe0 | 69 6e 67 2d 65 6d 70 74 79 2d 70 20 63 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-empty-p.c))))).............. |
| 7ac00 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 69 6e 66 | ...........(if.(plist-member.inf |
| 7ac20 | 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 3b 49 73 20 74 68 69 73 20 61 20 72 65 61 73 6f 6e 69 | o.:reasoning).;Is.this.a.reasoni |
| 7ac40 | 6e 67 20 6d 6f 64 65 6c 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng.model?....................... |
| 7ac60 | 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 69 6e 67 | ......(plist-put.info.:reasoning |
| 7ac80 | 2d 62 6c 6f 63 6b 20 74 29 20 3b 45 6e 64 20 6f 66 20 73 74 72 65 61 6d 69 6e 67 20 72 65 61 73 | -block.t).;End.of.streaming.reas |
| 7aca0 | 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 20 20 20 | oning.block..................... |
| 7acc0 | 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 69 6e 67 | ......(plist-put.info.:reasoning |
| 7ace0 | 2d 62 6c 6f 63 6b 20 27 64 6f 6e 65 29 29 29 29 29 29 29 29 29 20 3b 4e 6f 74 20 75 73 69 6e 67 | -block.'done))))))))).;Not.using |
| 7ad00 | 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 | .a.reasoning.model.......(error. |
| 7ad20 | 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 67 20 30 29 29 29 | (goto-char.(match-beginning.0))) |
| 7ad40 | 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 76 65 72 73 65 20 | ).....(apply.#'concat.(nreverse. |
| 7ad60 | 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 65 74 68 6f 64 20 | content-strs))))..(cl-defmethod. |
| 7ad80 | 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 |
| 7ada0 | 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 | .gptel-openai).response.info)... |
| 7adc0 | 22 50 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 28 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e 67 29 | "Parse.an.OpenAI.(non-streaming) |
| 7ade0 | 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 74 65 | .RESPONSE.and.return.response.te |
| 7ae00 | 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 73 70 | xt...Mutate.state.INFO.with.resp |
| 7ae20 | 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 | onse.metadata."...(let*.((choice |
| 7ae40 | 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 3a 63 68 | 0.(map-nested-elt.response.'(:ch |
| 7ae60 | 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 28 70 6c | oices.0)))..........(message.(pl |
| 7ae80 | 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 20 20 20 | ist-get.choice0.:message))...... |
| 7aea0 | 20 20 20 20 28 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 | ....(content.(plist-get.message. |
| 7aec0 | 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 | :content))).....(plist-put.info. |
| 7aee0 | 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 28 70 6c 69 | :stop-reason................(pli |
| 7af00 | 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 66 69 6e 69 73 68 5f 72 65 61 73 6f 6e 29 29 0a | st-get.choice0.:finish_reason)). |
| 7af20 | 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 74 2d 74 6f 6b 65 | ....(plist-put.info.:output-toke |
| 7af40 | 6e 73 0a 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 | ns................(map-nested-el |
| 7af60 | 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 63 6f 6d 70 6c 65 74 69 6f 6e 5f | t.response.'(:usage.:completion_ |
| 7af80 | 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 41 49 20 72 65 74 75 72 6e 73 20 | tokens))).....;;.OpenAI.returns. |
| 7afa0 | 65 69 74 68 65 72 20 6e 6f 6e 2d 62 6c 61 6e 6b 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 20 6f 72 | either.non-blank.text.content.or |
| 7afc0 | 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 2c 20 6e 6f 74 20 62 6f 74 68 0a 20 20 20 20 28 69 66 20 28 | .a.tool.call,.not.both.....(if.( |
| 7afe0 | 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 74 | and.content.(not.(or.(eq.content |
| 7b000 | 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 29 | .:null).(string-empty-p.content) |
| 7b020 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 | ))).........(prog1.content...... |
| 7b040 | 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 69 | .....(when-let*.((reasoning.(pli |
| 7b060 | 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 6f | st-get.message.:reasoning)).;loo |
| 7b080 | 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 20 | k.for.reasoning.blocks.......... |
| 7b0a0 | 20 20 20 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 | .............((and.(stringp.reas |
| 7b0c0 | 6f 6e 69 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 | oning).(not.(string-empty-p.reas |
| 7b0e0 | 6f 6e 69 6e 67 29 29 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 | oning))))).............(plist-pu |
| 7b100 | 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 29 29 0a 20 | t.info.:reasoning.reasoning))).. |
| 7b120 | 20 20 20 20 20 28 70 72 6f 67 31 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(prog1.nil................. |
| 7b140 | 20 20 20 20 20 20 20 3b 20 4c 6f 6f 6b 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6f 6e 6c | .......;.Look.for.tool.calls.onl |
| 7b160 | 79 20 69 66 20 6e 6f 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 | y.if.no.content.........(when-le |
| 7b180 | 74 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 | t*.((tool-calls.(plist-get.messa |
| 7b1a0 | 67 65 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | ge.:tool_calls)))...........(gpt |
| 7b1c0 | 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 20 20 20 3b 20 46 69 72 73 74 20 61 64 64 | el--inject-prompt....;.First.add |
| 7b1e0 | 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 69 | .the.tool.call.to.the.prompts.li |
| 7b200 | 73 74 0a 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 62 | st............(plist-get.info.:b |
| 7b220 | 61 63 6b 65 6e 64 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 20 6d | ackend).(plist-get.info.:data).m |
| 7b240 | 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 20 | essage)...........(cl-loop...... |
| 7b260 | 20 20 20 3b 54 68 65 6e 20 63 61 70 74 75 72 65 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 64 | ...;Then.capture.the.tool.call.d |
| 7b280 | 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 | ata.for.running.the.tool........ |
| 7b2a0 | 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 6f 6c 2d 63 61 | ....for.tool-call.across.tool-ca |
| 7b2c0 | 6c 6c 73 20 3b 72 65 70 6c 61 63 65 20 22 3a 61 72 67 75 6d 65 6e 74 73 22 20 77 69 74 68 20 22 | lls.;replace.":arguments".with." |
| 7b2e0 | 3a 61 72 67 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 63 61 6c 6c 2d 73 70 65 63 20 | :args"............for.call-spec. |
| 7b300 | 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 6f 6c | =.(copy-sequence.(plist-get.tool |
| 7b320 | 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 20 20 20 20 64 6f 20 | -call.:function))............do. |
| 7b340 | 28 69 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 | (ignore-errors.(plist-put.call-s |
| 7b360 | 70 65 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 | pec.:args....................... |
| 7b380 | 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 |
| 7b3a0 | 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 20 20 20 20 20 | ead-string...................... |
| 7b3c0 | 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 63 | ....................(plist-get.c |
| 7b3e0 | 61 6c 6c 2d 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 | all-spec.:arguments))))......... |
| 7b400 | 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 61 72 67 75 6d 65 6e | ...(plist-put.call-spec.:argumen |
| 7b420 | 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 | ts.nil)............(plist-put.ca |
| 7b440 | 6c 6c 2d 73 70 65 63 20 3a 69 64 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 75 6e 66 6f 72 | ll-spec.:id.(gptel--openai-unfor |
| 7b460 | 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c | mat-tool-id.(plist-get.tool-call |
| 7b480 | 20 3a 69 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 63 61 6c 6c 2d | .:id)))............collect.call- |
| 7b4a0 | 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 20 20 20 20 20 66 69 | spec.into.tool-use............fi |
| 7b4c0 | 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 2d 75 73 65 20 | nally.(plist-put.info.:tool-use. |
| 7b4e0 | 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 65 74 68 6f 64 20 67 | tool-use)))))))..(cl-defmethod.g |
| 7b500 | 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 65 6e 64 20 67 70 74 | ptel--request-data.((backend.gpt |
| 7b520 | 65 6c 2d 6f 70 65 6e 61 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f | el-openai).prompts)..."JSON.enco |
| 7b540 | 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 20 43 68 61 74 47 50 | de.PROMPTS.for.sending.to.ChatGP |
| 7b560 | 54 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 6d 65 73 73 61 67 | T."...(when.gptel--system-messag |
| 7b580 | 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 79 73 74 65 6d 22 | e.....(push.(list.:role."system" |
| 7b5a0 | 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 67 70 74 65 6c 2d | .................:content.gptel- |
| 7b5c0 | 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 70 72 6f 6d 70 | -system-message)...........promp |
| 7b5e0 | 74 73 29 29 0a 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 | ts))...(let.((prompts-plist..... |
| 7b600 | 20 20 20 20 20 60 28 3a 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d | .....`(:model.,(gptel--model-nam |
| 7b620 | 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 3a 6d 65 73 73 61 | e.gptel-model)............:messa |
| 7b640 | 67 65 73 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 | ges.[,@prompts]............:stre |
| 7b660 | 61 6d 20 2c 28 6f 72 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 | am.,(or.gptel-stream.:json-false |
| 7b680 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 61 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 20 3b | ))).........(reasoning-model-p.; |
| 7b6a0 | 20 54 4f 44 4f 3a 20 45 6d 62 65 64 20 74 68 69 73 20 63 61 70 61 62 69 6c 69 74 79 20 69 6e 20 | .TODO:.Embed.this.capability.in. |
| 7b6c0 | 74 68 65 20 6d 6f 64 65 6c 27 73 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 | the.model's.properties.......... |
| 7b6e0 | 28 6d 65 6d 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 28 6f 31 20 6f 31 2d 70 72 65 76 69 65 | (memq.gptel-model.'(o1.o1-previe |
| 7b700 | 77 20 6f 31 2d 6d 69 6e 69 20 6f 33 2d 6d 69 6e 69 20 6f 33 29 29 29 29 0a 20 20 20 20 28 77 68 | w.o1-mini.o3-mini.o3)))).....(wh |
| 7b720 | 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 |
| 7b740 | 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- |
| 7b760 | 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 |
| 7b780 | 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 |
| 7b7a0 | 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 |
| 7b7c0 | 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 |
| 7b7e0 | 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 |
| 7b800 | 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 |
| 7b820 | 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 |
| 7b840 | 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................. |
| 7b860 | 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 |
| 7b880 | 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 |
| 7b8a0 | 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- |
| 7b8c0 | 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 |
| 7b8e0 | 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 |
| 7b900 | 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 |
| 7b920 | 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, |
| 7b940 | 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 |
| 7b960 | 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 |
| 7b980 | 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 |
| 7b9a0 | 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 |
| 7b9c0 | 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 |
| 7b9e0 | 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)......... |
| 7ba00 | 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))..... |
| 7ba20 | 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 |
| 7ba40 | 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 |
| 7ba60 | 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 |
| 7ba80 | 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 |
| 7baa0 | 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 |
| 7bac0 | 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 |
| 7bae0 | 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 |
| 7bb00 | 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 |
| 7bb20 | 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 |
| 7bb40 | 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 |
| 7bb60 | 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 |
| 7bb80 | 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- |
| 7bba0 | 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 |
| 7bbc0 | 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 |
| 7bbe0 | 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 |
| 7bc00 | 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... |
| 7bc20 | 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. |
| 7bc40 | 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 |
| 7bc60 | 61 6c 6c 5f 69 64 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 66 6f 72 6d 61 74 2d 74 6f 6f | all_id.(gptel--openai-format-too |
| 7bc80 | 6c 2d 69 64 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 | l-id......................(plist |
| 7bca0 | 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 3a 63 6f 6e 74 | -get.tool-call.:id)).......:cont |
| 7bcc0 | 65 6e 74 20 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 | ent.(plist-get.tool-call.:result |
| 7bce0 | 29 29 29 0a 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | )))....tool-use))..(defun.gptel- |
| 7bd00 | 2d 6f 70 65 6e 61 69 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 | -openai-format-tool-id.(tool-id) |
| 7bd20 | 0a 20 20 28 66 6f 72 6d 61 74 20 22 63 61 6c 6c 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 29 29 0a 0a | ...(format."call_%s".tool-id)).. |
| 7bd40 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 75 6e 66 6f 72 6d 61 74 2d 74 6f | (defun.gptel--openai-unformat-to |
| 7bd60 | 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 64 20 28 73 74 72 69 | ol-id.(tool-id)...(or.(and.(stri |
| 7bd80 | 6e 67 2d 6d 61 74 63 68 20 22 63 61 6c 6c 5f 5c 5c 28 2e 2b 5c 5c 29 22 20 74 6f 6f 6c 2d 69 64 | ng-match."call_\\(.+\\)".tool-id |
| 7bda0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 74 6f 6f | )............(match-string.1.too |
| 7bdc0 | 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 6d 65 73 | l-id)).......(progn.........(mes |
| 7bde0 | 73 61 67 65 20 22 55 6e 65 78 70 65 63 74 65 64 20 74 6f 6f 6c 5f 63 61 6c 6c 5f 69 64 20 66 6f | sage."Unexpected.tool_call_id.fo |
| 7be00 | 72 6d 61 74 3a 20 25 73 22 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d | rmat:.%s".tool-id).........tool- |
| 7be20 | 69 64 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 69 6e 6a 65 63 | id)))..;;.NOTE:.No.`gptel--injec |
| 7be40 | 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 67 70 | t-prompt'.method.required.for.gp |
| 7be60 | 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 61 6e | tel-openai,.since.this.;;.is.han |
| 7be80 | 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 |
| 7bea0 | 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 |
| 7bec0 | 65 2d 6c 69 73 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 | e-list.((_backend.gptel-openai). |
| 7bee0 | 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 | prompt-list)...(cl-loop.for.text |
| 7bf00 | 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 | .in.prompt-list............for.r |
| 7bf20 | 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 20 20 20 20 20 20 | ole.=.t.then.(not.role)......... |
| 7bf40 | 20 20 20 69 66 20 74 65 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c | ...if.text.collect............(l |
| 7bf60 | 69 73 74 20 3a 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 | ist.:role.(if.role."user"."assis |
| 7bf80 | 74 61 6e 74 22 29 20 3a 63 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | tant").:content.text)))..(cl-def |
| 7bfa0 | 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 62 61 63 | method.gptel--parse-buffer.((bac |
| 7bfc0 | 6b 65 6e 64 20 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 | kend.gptel-openai).&optional.max |
| 7bfe0 | 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 72 65 | -entries)...(let.((prompts).(pre |
| 7c000 | 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 63 6c 75 64 65 2d 6d | v-pt.(point)).........(include-m |
| 7c020 | 65 64 69 61 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 | edia.(and.gptel-track-media..... |
| 7c040 | 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 67 70 74 | ........................(or.(gpt |
| 7c060 | 65 6c 2d 2d 6d 6f 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 | el--model-capable-p.'media)..... |
| 7c080 | 20 20 20 20 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 |
| 7c0a0 | 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 75 72 6c 29 29 29 29 29 0a 20 20 | el--model-capable-p.'url)))))... |
| 7c0c0 | 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 |
| 7c0e0 | 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.( |
| 7c100 | 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 |
| 7c120 | 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 2f 3d | ries.0)).....................(/= |
| 7c140 | 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 20 20 20 | .prev-pt.(point-min))........... |
| 7c160 | 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 69 6f 75 73 2d 73 | ..........(goto-char.(previous-s |
| 7c180 | 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 20 20 20 20 | ingle-property-change........... |
| 7c1a0 | 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 67 | ......................(point).'g |
| 7c1c0 | 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ptel.nil.(point-min))))......... |
| 7c1e0 | 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 |
| 7c200 | 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 6e | nt).'gptel).............('respon |
| 7c220 | 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 6e | se..............(when-let*.((con |
| 7c240 | 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 20 | tent.(gptel--trim-prefixes...... |
| 7c260 | 20 20 20 20 20 20 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 | ..............................(b |
| 7c280 | 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 |
| 7c2a0 | 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 20 | oint).prev-pt))))............... |
| 7c2c0 | 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 20 3a | .(push.(list.:role."assistant".: |
| 7c2e0 | 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 29 29 0a 20 20 20 20 | content.content).prompts)))..... |
| 7c300 | 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 69 64 29 0a 20 20 20 20 20 20 20 20 20 | ........(`(tool...,id).......... |
| 7c320 | 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 20 | ....(save-excursion............. |
| 7c340 | 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 20 20 20 20 | ...(condition-case.nil.......... |
| 7c360 | 20 20 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 | ..........(let*.((tool-call.(rea |
| 7c380 | 64 20 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 | d.(current-buffer)))............ |
| 7c3a0 | 20 20 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 | ...............(name.(plist-get. |
| 7c3c0 | 74 6f 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 | tool-call.:name))............... |
| 7c3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 28 67 70 74 65 6c 2d 2d 6a | ............(arguments.(gptel--j |
| 7c400 | 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 | son-encode.(plist-get.tool-call. |
| 7c420 | 3a 61 72 67 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 28 | :args))))......................( |
| 7c440 | 70 6c 69 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 20 69 64 29 0a 20 20 20 20 | plist-put.tool-call.:id.id)..... |
| 7c460 | 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 6f 6f 6c | .................(plist-put.tool |
| 7c480 | 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 20 20 20 | -call.:result................... |
| 7c4a0 | 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 75 66 66 | ..............(string-trim.(buff |
| 7c4c0 | 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 20 | er-substring-no-properties...... |
| 7c4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7c500 | 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 20 20 20 | .........(point).prev-pt)))..... |
| 7c520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 74 | .................(push.(car.(gpt |
| 7c540 | 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.( |
| 7c560 | 6c 69 73 74 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 | list.tool-call)))............... |
| 7c580 | 20 20 20 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 | .............prompts)........... |
| 7c5a0 | 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 61 73 | ...........(push.(list.:role."as |
| 7c5c0 | 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 20 20 20 20 20 | sistant"........................ |
| 7c5e0 | 20 20 20 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 | ..........:tool_calls........... |
| 7c600 | 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 74 6f 72 20 28 | .......................(vector.( |
| 7c620 | 6c 69 73 74 20 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 | list.:type."function"........... |
| 7c640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7c660 | 20 20 20 20 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 2d 74 | .....:id.(gptel--openai-format-t |
| 7c680 | 6f 6f 6c 2d 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 | ool-id.id)...................... |
| 7c6a0 | 20 20 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 66 75 6e 63 74 | ..........................:funct |
| 7c6c0 | 69 6f 6e 20 60 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 | ion.`(.:name.,name.............. |
| 7c6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7c700 | 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 61 72 67 75 6d | ...............:arguments.,argum |
| 7c720 | 65 6e 74 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 | ents))))........................ |
| 7c740 | 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 20 20 20 20 28 | ....prompts))..................( |
| 7c760 | 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 79 6e 74 61 78 | (end-of-file.invalid-read-syntax |
| 7c780 | 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 65 20 28 66 6f | )...................(message.(fo |
| 7c7a0 | 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 63 61 6c 6c 20 | rmat."Could.not.parse.tool-call. |
| 7c7c0 | 25 73 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 20 20 | %s.on.line.%s".................. |
| 7c7e0 | 20 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 | ..................id.(line-numbe |
| 7c800 | 72 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 | r-at-pos.(point))))))))......... |
| 7c820 | 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 28 27 6e 69 6c 0a | ....('ignore).............('nil. |
| 7c840 | 20 20 20 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 | .............(and.max-entries.(c |
| 7c860 | 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | l-decf.max-entries))............ |
| 7c880 | 20 20 28 69 66 20 69 6e 63 6c 75 64 65 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ..(if.include-media............. |
| 7c8a0 | 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 6c | .....(when-let*.((content.(gptel |
| 7c8c0 | 2d 2d 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 0a 20 20 20 20 20 20 20 | --openai-parse-multipart........ |
| 7c8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7c900 | 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 2d | (gptel--parse-media-links.major- |
| 7c920 | 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 20 | mode............................ |
| 7c940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7c960 | 20 20 20 20 20 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 | ......(point).prev-pt))))....... |
| 7c980 | 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 |
| 7c9a0 | 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)......................( |
| 7c9c0 | 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 74 | push.(list.:role."user".:content |
| 7c9e0 | 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 20 20 20 20 | .content).prompts)))............ |
| 7ca00 | 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 6c 2d | ....(when-let*.((content.(gptel- |
| 7ca20 | 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 | -trim-prefixes.(buffer-substring |
| 7ca40 | 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.................. |
| 7ca60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7ca80 | 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 29 0a 20 20 | ..........(point).prev-pt))))... |
| 7caa0 | 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 65 | ...............(push.(list.:role |
| 7cac0 | 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 74 | ."user".:content.content).prompt |
| 7cae0 | 73 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 70 74 20 28 | s)))))...........(setq.prev-pt.( |
| 7cb00 | 70 6f 69 6e 74 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 | point))).......(let.((content.(s |
| 7cb20 | 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 69 6e 67 2d 6e 6f 2d | tring-trim.(buffer-substring-no- |
| 7cb40 | 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 20 | properties...................... |
| 7cb60 | 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 6e | ...............(point-min).(poin |
| 7cb80 | 74 2d 6d 61 78 29 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 | t-max))))).........(push.(list.: |
| 7cba0 | 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 74 29 20 70 72 | role."user".:content.content).pr |
| 7cbc0 | 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 3b 3b 20 54 4f 44 4f 20 | ompts))).....prompts))..;;.TODO. |
| 7cbe0 | 54 68 69 73 20 63 6f 75 6c 64 20 62 65 20 61 20 67 65 6e 65 72 69 63 20 66 75 6e 63 74 69 6f 6e | This.could.be.a.generic.function |
| 7cc00 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d 6d 75 6c 74 | .(defun.gptel--openai-parse-mult |
| 7cc20 | 69 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 | ipart.(parts)..."Convert.a.multi |
| 7cc40 | 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 74 68 65 20 4f 70 65 6e 41 49 20 | part.prompt.PARTS.to.the.OpenAI. |
| 7cc60 | 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 6e 20 61 6c 69 | API.format...The.input.is.an.ali |
| 7cc80 | 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 | st.of.the.form..((:text.\"some.t |
| 7cca0 | 65 78 74 5c 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 | ext\")...(:media.\"/path/to/medi |
| 7ccc0 | 61 2e 70 6e 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 | a.png\".:mime.\"image/png\")...( |
| 7cce0 | 3a 74 65 78 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 | :text.\"More.text\"))...The.outp |
| 7cd00 | 75 74 20 69 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 61 20 62 | ut.is.a.vector.of.entries.in.a.b |
| 7cd20 | 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 74 2e 22 0a 20 20 28 63 | ackend-appropriate.format."...(c |
| 7cd40 | 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 72 74 73 0a 20 20 20 66 | l-loop....for.part.in.parts....f |
| 7cd60 | 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 73 74 20 3d 20 28 6c 65 | or.n.upfrom.1....with.last.=.(le |
| 7cd80 | 6e 67 74 68 20 70 61 72 74 73 29 0a 20 20 20 66 6f 72 20 74 65 78 74 20 3d 20 28 70 6c 69 73 74 | ngth.parts)....for.text.=.(plist |
| 7cda0 | 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 65 64 69 61 20 3d 20 | -get.part.:text)....for.media.=. |
| 7cdc0 | 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a 20 20 20 69 66 20 74 65 | (plist-get.part.:media)....if.te |
| 7cde0 | 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 29 20 28 3d 20 6e 20 6c | xt.do....(and.(or.(=.n.1).(=.n.l |
| 7ce00 | 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 | ast)).(setq.text.(gptel--trim-pr |
| 7ce20 | 65 66 69 78 65 73 20 74 65 78 74 29 29 29 0a 20 20 20 61 6e 64 20 69 66 20 74 65 78 74 0a 20 20 | efixes.text)))....and.if.text... |
| 7ce40 | 20 63 6f 6c 6c 65 63 74 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 74 | .collect.`(:type."text".:text.,t |
| 7ce60 | 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 |
| 7ce80 | 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 74 79 70 65 | e.if.media....collect....`(:type |
| 7cea0 | 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 |
| 7cec0 | 72 6c 20 2c 28 63 6f 6e 63 61 74 20 22 64 61 74 61 3a 22 20 28 70 6c 69 73 74 2d 67 65 74 20 70 | rl.,(concat."data:".(plist-get.p |
| 7cee0 | 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 20 20 20 20 20 20 20 | art.:mime)...................... |
| 7cf00 | 20 20 20 22 3b 62 61 73 65 36 34 2c 22 20 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 | ...";base64,".(gptel--base64-enc |
| 7cf20 | 6f 64 65 20 6d 65 64 69 61 29 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 | ode.media))))....into.parts-arra |
| 7cf40 | 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 70 61 72 74 20 | y.end.and....if.(plist-get.part. |
| 7cf60 | 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 20 22 69 6d 61 | :url)....collect....`(:type."ima |
| 7cf80 | 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 72 6c 20 2c 28 | ge_url"......:image_url.(:url.,( |
| 7cfa0 | 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 6e 74 6f 20 70 | plist-get.part.:url)))....into.p |
| 7cfc0 | 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 6e 20 28 76 63 | arts-array....finally.return.(vc |
| 7cfe0 | 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 44 4f 3a 20 44 | oncat.parts-array)))..;;.TODO:.D |
| 7d000 | 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 69 63 20 66 75 | oes.this.need.to.be.a.generic.fu |
| 7d020 | 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 2d 2d 77 72 61 | nction?.(cl-defmethod.gptel--wra |
| 7d040 | 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 6f | p-user-prompt.((_backend.gptel-o |
| 7d060 | 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 20 20 20 20 20 | penai).prompts.................. |
| 7d080 | 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 6e 61 6c 20 | ......................&optional. |
| 7d0a0 | 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 73 74 20 75 | inject-media)..."Wrap.the.last.u |
| 7d0c0 | 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 68 65 20 63 | ser.prompt.in.PROMPTS.with.the.c |
| 7d0e0 | 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 44 49 41 20 | ontext.string...If.INJECT-MEDIA. |
| 7d100 | 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 36 34 2d 65 | is.non-nil.wrap.it.with.base64-e |
| 7d120 | 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 6e 74 65 78 | ncoded.media.files.in.the.contex |
| 7d140 | 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 3b 3b 20 | t."...(if.inject-media.......;;. |
| 7d160 | 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 69 74 68 20 | Wrap.the.first.user.prompt.with. |
| 7d180 | 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 73 0a 20 20 | included.media.files/contexts... |
| 7d1a0 | 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 28 67 70 74 | ....(when-let*.((media-list.(gpt |
| 7d1c0 | 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 20 20 20 | el-context--collect-media))).... |
| 7d1e0 | 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 72 65 6e 74 29 | .....(cl-callf.(lambda.(current) |
| 7d200 | 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... |
| 7d220 | 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 6f 70 65 6e 61 | ...................(gptel--opena |
| 7d240 | 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 74 29 0a 20 20 | i-parse-multipart.media-list)... |
| 7d260 | 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 63 61 73 65 20 | ...................(cl-typecase. |
| 7d280 | 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 20 20 20 20 28 | current........................( |
| 7d2a0 | 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 74 20 2c 63 75 | string.`((:type."text".:text.,cu |
| 7d2c0 | 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 20 20 20 20 20 | rrent)))........................ |
| 7d2e0 | 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 20 20 20 20 20 | (vector.current)................ |
| 7d300 | 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 20 20 20 20 20 | ........(t.current)))).......... |
| 7d320 | 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 63 6f 6e | ...(plist-get.(car.prompts).:con |
| 7d340 | 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 74 20 75 73 65 | tent))).....;;.Wrap.the.last.use |
| 7d360 | 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 6e 74 | r.prompt.with.included.text.cont |
| 7d380 | 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 28 63 75 72 72 | exts.....(cl-callf.(lambda.(curr |
| 7d3a0 | 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 79 70 65 63 61 | ent).................(cl-etypeca |
| 7d3c0 | 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 28 73 74 | se.current...................(st |
| 7d3e0 | 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 75 72 72 65 6e | ring.(gptel-context--wrap.curren |
| 7d400 | 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 6f 72 20 28 69 | t))...................(vector.(i |
| 7d420 | 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 74 65 78 74 2d | f-let*.((wrapped.(gptel-context- |
| 7d440 | 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 20 20 20 20 20 | -wrap.nil))).................... |
| 7d460 | 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 65 20 22 74 65 | ...........(vconcat.`((:type."te |
| 7d480 | 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 20 20 20 20 20 | xt".:text.,wrapped))............ |
| 7d4a0 | 20 20 20 20 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 | ............................curr |
| 7d4c0 | 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 20 20 20 20 20 | ent)............................ |
| 7d4e0 | 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 2d 67 65 74 20 | .current)))).........(plist-get. |
| 7d500 | 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 29 29 29 | (car.(last.prompts)).:content))) |
| 7d520 | 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 20 67 70 74 65 | )..;;;###autoload.(cl-defun.gpte |
| 7d540 | 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 79 20 63 75 72 | l-make-openai.....(name.&key.cur |
| 7d560 | 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 71 75 65 73 74 | l-args.models.stream.key.request |
| 7d580 | 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 20 20 20 20 20 | -params...........(header....... |
| 7d5a0 | 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 28 28 6b 65 79 | .....(lambda.().(when-let*.((key |
| 7d5c0 | 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 20 20 20 20 20 | .(gptel--get-api-key)))......... |
| 7d5e0 | 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 20 2e 20 | ...........`(("Authorization"... |
| 7d600 | 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 20 20 20 | ,(concat."Bearer.".key)))))).... |
| 7d620 | 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 6d 22 29 0a 20 | .......(host."api.openai.com").. |
| 7d640 | 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 20 20 20 | .........(protocol."https")..... |
| 7d660 | 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 6f 6d 70 6c 65 | ......(endpoint."/v1/chat/comple |
| 7d680 | 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 6e 41 49 20 41 | tions"))..."Register.an.OpenAI.A |
| 7d6a0 | 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 70 74 65 6c 20 | PI-compatible.backend.for.gptel. |
| 7d6c0 | 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 0a | with.NAME...Keyword.arguments:.. |
| 7d6e0 | 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 6f | CURL-ARGS.(optional).is.a.list.o |
| 7d700 | 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 4f | f.additional.Curl.arguments...HO |
| 7d720 | 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 73 74 2c 20 74 | ST.(optional).is.the.API.host,.t |
| 7d740 | 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 2e 0a 0a 4d 4f | ypically.\"api.openai.com\"...MO |
| 7d760 | 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 64 65 | DELS.is.a.list.of.available.mode |
| 7d780 | 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 6c 6c | l.names,.as.symbols..Additionall |
| 7d7a0 | 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 4c 4d | y,.you.can.specify.supported.LLM |
| 7d7c0 | 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 6f 6f | .capabilities.like.vision.or.too |
| 7d7e0 | 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 74 68 | l-use.by.appending.a.plist.to.th |
| 7d800 | 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 20 69 | e.model.with.more.information,.i |
| 7d820 | 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 73 74 | n.the.form...(model-name...plist |
| 7d840 | 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 6f 67 | )..For.a.list.of.currently.recog |
| 7d860 | 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 6f 70 | nized.plist.keys,.see.`gptel--op |
| 7d880 | 65 6e 61 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 6d 6f | enai-models'..An.example.of.a.mo |
| 7d8a0 | 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 74 68 | del.specification.including.both |
| 7d8c0 | 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 28 67 | .kinds.of.specs:..:models.\\='(g |
| 7d8e0 | 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 20 20 20 20 20 20 | pt-3.5-turbo.................... |
| 7d900 | 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 2d 74 75 72 62 6f | .....;Simple.specs...gpt-4-turbo |
| 7d920 | 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 20 20 20 20 20 20 | ...(gpt-4o-mini................. |
| 7d940 | 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 72 69 70 74 | .........;Full.spec....:descript |
| 7d960 | 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 74 65 6c 6c 69 67 | ion....\"Affordable.and.intellig |
| 7d980 | 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 65 69 67 68 74 20 | ent.small.model.for.lightweight. |
| 7d9a0 | 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 6d 65 64 69 61 20 | tasks\"....:capabilities.(media. |
| 7d9c0 | 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 70 65 73 0a 20 20 | tool.json.url)....:mime-types... |
| 7d9e0 | 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 6e 67 5c 22 20 5c | .(\"image/jpeg\".\"image/png\".\ |
| 7da00 | 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 22 29 29 29 0a 0a | "image/gif\".\"image/webp\"))).. |
| 7da20 | 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 74 | STREAM.is.a.boolean.to.toggle.st |
| 7da40 | 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 66 | reaming.responses,.defaults.to.f |
| 7da60 | 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 69 | alse...PROTOCOL.(optional).speci |
| 7da80 | 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 79 20 64 65 66 61 | fies.the.protocol,.https.by.defa |
| 7daa0 | 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 |
| 7dac0 | 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 |
| 7dae0 | 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 6c 65 74 69 6f 6e | efaults.to.\"/v1/chat/completion |
| 7db00 | 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 66 6f 72 20 61 | s\"...HEADER.(optional).is.for.a |
| 7db20 | 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 20 65 | dditional.headers.to.send.with.e |
| 7db40 | 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 61 6c | ach.request...It.should.be.an.al |
| 7db60 | 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 73 20 61 | ist.or.a.function.that.returns.a |
| 7db80 | 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 65 | n.alist,.like:..((\"Content-Type |
| 7dba0 | 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 59 | \"...\"application/json\"))..KEY |
| 7dbc0 | 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 20 | .(optional).is.a.variable.whose. |
| 7dbe0 | 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 6f | value.is.the.API.key,.or.functio |
| 7dc00 | 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 54 | n.that.returns.the.key...REQUEST |
| 7dc20 | 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 |
| 7dc40 | 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 |
| 7dc60 | 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 |
| 7dc80 | 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. |
| 7dca0 | 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 |
| 7dcc0 | 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." |
| 7dce0 | 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.( |
| 7dd00 | 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.... |
| 7dd20 | 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 |
| 7dd40 | 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 |
| 7dd60 | 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... |
| 7dd80 | 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.. |
| 7dda0 | 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....... |
| 7ddc0 | 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 |
| 7dde0 | 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).............. |
| 7de00 | 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......... |
| 7de20 | 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.... |
| 7de40 | 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... |
| 7de60 | 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. |
| 7de80 | 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.................. |
| 7dea0 | 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.............. |
| 7dec0 | 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." |
| 7dee0 | 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)............. |
| 7df00 | 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 |
| 7df20 | 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...... |
| 7df40 | 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 |
| 7df60 | 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.................... |
| 7df80 | 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)............ |
| 7dfa0 | 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 75 72 65 0a 3b 3b | .......backend))))..;;;.Azure.;; |
| 7dfc0 | 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 |
| 7dfe0 | 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 6c 2d 61 72 67 73 | e-azure.....(name.&key.curl-args |
| 7e000 | 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 22 68 74 74 70 73 | .host...........(protocol."https |
| 7e020 | 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 64 61 20 28 29 20 | ")...........(header.(lambda.(). |
| 7e040 | 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 74 2d 61 70 69 2d | `(("api-key"...,(gptel--get-api- |
| 7e060 | 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 70 74 65 6c 2d 61 | key)))))...........(key.'gptel-a |
| 7e080 | 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 74 72 65 61 6d 20 | pi-key)...........models.stream. |
| 7e0a0 | 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 20 22 52 65 67 69 | endpoint.request-params)..."Regi |
| 7e0c0 | 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 67 70 74 65 6c 20 | ster.an.Azure.backend.for.gptel. |
| 7e0e0 | 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 0a | with.NAME...Keyword.arguments:.. |
| 7e100 | 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 6f | CURL-ARGS.(optional).is.a.list.o |
| 7e120 | 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 4f | f.additional.Curl.arguments...HO |
| 7e140 | 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 53 20 69 73 20 61 | ST.is.the.API.host...MODELS.is.a |
| 7e160 | 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 61 6d 65 73 2c 20 | .list.of.available.model.names,. |
| 7e180 | 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 6f 6f 6c 65 61 6e | as.symbols...STREAM.is.a.boolean |
| 7e1a0 | 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,. |
| 7e1c0 | 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 |
| 7e1e0 | 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,. |
| 7e200 | 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 69 73 20 74 | https.by.default...ENDPOINT.is.t |
| 7e220 | 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 6f 6e 73 2e | he.API.endpoint.for.completions. |
| 7e240 | 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 20 61 64 64 69 74 | ..HEADER.(optional).is.for.addit |
| 7e260 | 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 20 65 61 63 68 0a | ional.headers.to.send.with.each. |
| 7e280 | 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 61 6c 69 73 74 20 | request...It.should.be.an.alist. |
| 7e2a0 | 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 61 6e 0a 61 6c 69 | or.a.function.that.retuns.an.ali |
| 7e2c0 | 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 65 5c 22 20 2e 20 | st,.like:..((\"Content-Type\"... |
| 7e2e0 | 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 59 20 28 6f 70 74 | \"application/json\"))..KEY.(opt |
| 7e300 | 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 20 76 61 6c 75 65 | ional).is.a.variable.whose.value |
| 7e320 | 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 6f 6e 20 74 68 61 | .is.the.API.key,.or.function.tha |
| 7e340 | 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 54 2d 50 41 52 41 | t.returns.the.key...REQUEST-PARA |
| 7e360 | 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 |
| 7e380 | 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.( |
| 7e3a0 | 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 |
| 7e3c0 | 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 |
| 7e3e0 | 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 |
| 7e400 | 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 0a 0a 45 78 61 6d | .provide.user.options.for...Exam |
| 7e420 | 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 2d 61 7a 75 72 65 | ple:.-------...(gptel-make-azure |
| 7e440 | 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 20 5c 22 68 74 74 | ...\"Azure-1\"...:protocol.\"htt |
| 7e460 | 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 4d 45 2e 6f 70 65 | ps\"...:host.\"RESOURCE_NAME.ope |
| 7e480 | 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 74 0a 20 20 5c 22 | nai.azure.com\"...:endpoint...\" |
| 7e4a0 | 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 4d 45 4e 54 5f 4e | /openai/deployments/DEPLOYMENT_N |
| 7e4c0 | 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 6e 3d 32 30 32 33 | AME/completions?api-version=2023 |
| 7e4e0 | 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 64 65 6c 73 20 5c | -05-15\"...:stream.t...:models.\ |
| 7e500 | 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 0a 20 20 28 64 65 | \='(gpt-3.5-turbo.gpt-4))"...(de |
| 7e520 | 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 |
| 7e540 | 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 20 20 20 20 20 20 | nd.(gptel--make-openai.......... |
| 7e560 | 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 73 0a 20 20 | .........:curl-args.curl-args... |
| 7e580 | 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 20 20 20 20 | ................:name.name...... |
| 7e5a0 | 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 20 20 20 20 | .............:host.host......... |
| 7e5c0 | 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 20 20 20 20 | ..........:header.header........ |
| 7e5e0 | 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 20 20 20 20 | ...........:key.key............. |
| 7e600 | 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 |
| 7e620 | 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)...................: |
| 7e640 | 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............... |
| 7e660 | 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.......... |
| 7e680 | 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......... |
| 7e6a0 | 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 |
| 7e6c0 | 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 75 72 6c 20 | t-params...................:url. |
| 7e6e0 | 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 20 20 20 20 | (if.protocol.................... |
| 7e700 | 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 2f 22 20 68 | ........(concat.protocol."://".h |
| 7e720 | 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 20 20 20 20 | ost.endpoint)................... |
| 7e740 | 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 29 29 29 29 | .......(concat.host.endpoint)))) |
| 7e760 | 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 74 66 | ).....(prog1.backend.......(setf |
| 7e780 | 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 |
| 7e7a0 | 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 6e 69 | ckends........................ni |
| 7e7c0 | 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 6b 65 | l.nil.#'equal).............backe |
| 7e7e0 | 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 75 74 6f 6c 6f 61 | nd))))..;;.GPT4All.;;;###autoloa |
| 7e800 | 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 74 34 61 6c 6c 20 | d.(defalias.'gptel-make-gpt4all. |
| 7e820 | 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 73 74 65 72 20 61 | 'gptel-make-openai..."Register.a |
| 7e840 | 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 20 77 69 74 68 20 | .GPT4All.backend.for.gptel.with. |
| 7e860 | 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 52 4c 2d | NAME...Keyword.arguments:..CURL- |
| 7e880 | 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 61 64 64 | ARGS.(optional).is.a.list.of.add |
| 7e8a0 | 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 20 69 73 | itional.Curl.arguments...HOST.is |
| 7e8c0 | 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 70 6f 72 74 29 2c | .where.GPT4All.runs.(with.port), |
| 7e8e0 | 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 0a 4d 4f 44 45 4c | .typically.localhost:4891..MODEL |
| 7e900 | 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 |
| 7e920 | 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 |
| 7e940 | 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 |
| 7e960 | 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 |
| 7e980 | 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 20 68 74 74 70 73 | OL.specifies.the.protocol,.https |
| 7e9a0 | 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 |
| 7e9c0 | 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 |
| 7e9e0 | 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 31 2f 63 6f 6d | tions,.defaults.to.\"/api/v1/com |
| 7ea00 | 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 61 6c 29 20 69 73 | pletions\"..HEADER.(optional).is |
| 7ea20 | 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. |
| 7ea40 | 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 6c 64 20 62 65 20 | with.each.request..It.should.be. |
| 7ea60 | 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 75 | an.alist.or.a.function.that.retu |
| 7ea80 | 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 74 65 6e 74 2d 54 | ns.an.alist,.like:.((\"Content-T |
| 7eaa0 | 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 29 0a 0a | ype\"...\"application/json\")).. |
| 7eac0 | 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 77 68 6f | KEY.(optional).is.a.variable.who |
| 7eae0 | 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 75 6e 63 | se.value.is.the.API.key,.or.func |
| 7eb00 | 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 54 68 69 73 20 | tion.that.returns.the.key..This. |
| 7eb20 | 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 66 6f 72 0a 6c 6f | is.typically.not.required.for.lo |
| 7eb40 | 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 52 45 51 55 45 53 | cal.models.like.GPT4All...REQUES |
| 7eb60 | 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 |
| 7eb80 | 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 |
| 7eba0 | 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. |
| 7ebc0 | 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 |
| 7ebe0 | 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 |
| 7ec00 | 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. |
| 7ec20 | 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 2d 6d 61 6b 65 2d | ..Example:.-------..(gptel-make- |
| 7ec40 | 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 74 6f 63 6f 6c 20 | gpt4all..\"GPT4All\"..:protocol. |
| 7ec60 | 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 74 3a 34 38 39 31 | \"http\"..:host.\"localhost:4891 |
| 7ec80 | 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 62 2d 6f 70 65 6e | \"..:models.\\='(mistral-7b-open |
| 7eca0 | 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 64 65 20 27 67 70 | orca.Q4_0.gguf))")..(provide.'gp |
| 7ecc0 | 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 61 69 2e 65 6c 20 | tel-openai).;;;.gptel-openai.el. |
| 7ece0 | 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 00 00 00 00 00 00 00 | ends.here....................... |
| 7ed00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ed20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ed40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ed60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ed80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7eda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7edc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ede0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ee00 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 00 00 00 00 00 00 00 00 | gptel-0.9.8/gptel-org.el........ |
| 7ee20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ee40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ee60 | 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 |
| 7ee80 | 30 30 37 37 34 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 34 36 00 20 30 00 00 00 | 0077464.00000000000.013546..0... |
| 7eea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7eec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7eee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ef00 | 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................... |
| 7ef20 | 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................... |
| 7ef40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ef60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7ef80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7efa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7efc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7efe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 7f000 | 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 |
| 7f020 | 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 |
| 7f040 | 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.( |
| 7f060 | 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..;; |
| 7f080 | 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 |
| 7f0a0 | 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 |
| 7f0c0 | 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 |
| 7f0e0 | 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 |
| 7f100 | 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 |
| 7f120 | 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 |
| 7f140 | 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 |
| 7f160 | 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 |
| 7f180 | 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.; |
| 7f1a0 | 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 |
| 7f1c0 | 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 |
| 7f1e0 | 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 |
| 7f200 | 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 |
| 7f220 | 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. |
| 7f240 | 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 |
| 7f260 | 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 |
| 7f280 | 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 |
| 7f2a0 | 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...;; |
| 7f2c0 | 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 |
| 7f2e0 | 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 |
| 7f300 | 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... |
| 7f320 | 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 |
| 7f340 | 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:..; |
| 7f360 | 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. |
| 7f380 | 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 |
| 7f3a0 | 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 |
| 7f3c0 | 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 |
| 7f3e0 | 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 |
| 7f400 | 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-- |
| 7f420 | 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 |
| 7f440 | 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) |
| 7f460 | 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. |
| 7f480 | 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 |
| 7f4a0 | 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 |
| 7f4c0 | 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 |
| 7f4e0 | 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). |
| 7f500 | 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 |
| 7f520 | 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 |
| 7f540 | 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- |
| 7f560 | 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 |
| 7f580 | 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 |
| 7f5a0 | 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-- |
| 7f5c0 | 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 |
| 7f5e0 | 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 |
| 7f600 | 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 |
| 7f620 | 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- |
| 7f640 | 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 |
| 7f660 | 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 |
| 7f680 | 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 |
| 7f6a0 | 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"). |
| 7f6c0 | 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- |
| 7f6e0 | 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. |
| 7f700 | 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 |
| 7f720 | 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 |
| 7f740 | 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 |
| 7f760 | 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").( |
| 7f780 | 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 |
| 7f7a0 | 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 |
| 7f7c0 | 69 6f 6e 20 6f 72 67 2d 65 6e 74 72 79 2d 67 65 74 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 | ion.org-entry-get."org").(declar |
| 7f7e0 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 22 6f 72 67 22 29 0a | e-function.org-entry-put."org"). |
| 7f800 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 77 69 74 68 2d 77 69 64 65 2d | (declare-function.org-with-wide- |
| 7f820 | 62 75 66 66 65 72 20 22 6f 72 67 2d 6d 61 63 73 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | buffer."org-macs").(declare-func |
| 7f840 | 74 69 6f 6e 20 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 22 6f 72 67 22 29 0a 28 64 65 | tion.org-set-property."org").(de |
| 7f860 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 | clare-function.org-property-valu |
| 7f880 | 65 73 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 | es."org").(declare-function.org- |
| 7f8a0 | 6f 70 65 6e 2d 6c 69 6e 65 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | open-line."org").(declare-functi |
| 7f8c0 | 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 28 64 65 63 6c | on.org-at-heading-p."org").(decl |
| 7f8e0 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 67 65 74 2d 68 65 61 64 69 6e 67 20 22 6f 72 | are-function.org-get-heading."or |
| 7f900 | 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 61 74 2d 68 65 61 | g").(declare-function.org-at-hea |
| 7f920 | 64 69 6e 67 2d 70 20 22 6f 72 67 22 29 0a 0a 3b 3b 20 42 75 6e 64 6c 65 20 60 6f 72 67 2d 65 6c | ding-p."org")..;;.Bundle.`org-el |
| 7f940 | 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 27 20 69 66 20 69 74 27 73 20 6e 6f 74 20 61 | ement-lineage-map'.if.it's.not.a |
| 7f960 | 76 61 69 6c 61 62 6c 65 20 28 66 6f 72 20 4f 72 67 20 39 2e 36 37 20 6f 72 20 6f 6c 64 65 72 29 | vailable.(for.Org.9.67.or.older) |
| 7f980 | 0a 28 65 76 61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 | .(eval-and-compile...(if.(fbound |
| 7f9a0 | 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 29 0a 20 20 20 20 | p.'org-element-lineage-map)..... |
| 7f9c0 | 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 | ..(progn.(declare-function.org-e |
| 7f9e0 | 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d | lement-lineage-map."org-element- |
| 7fa00 | 61 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 67 70 | ast")..............(defalias.'gp |
| 7fa20 | 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 27 6f 72 | tel-org--element-lineage-map.'or |
| 7fa40 | 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 29 29 0a 20 20 20 20 28 64 65 66 | g-element-lineage-map)).....(def |
| 7fa60 | 75 6e 20 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 65 2d 6d 61 | un.gptel-org--element-lineage-ma |
| 7fa80 | 70 20 28 64 61 74 75 6d 20 66 75 6e 20 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 73 20 77 69 74 | p.(datum.fun.&optional.types.wit |
| 7faa0 | 68 2d 73 65 6c 66 20 66 69 72 73 74 2d 6d 61 74 63 68 29 0a 20 20 20 20 20 20 22 4d 61 70 20 46 | h-self.first-match)......."Map.F |
| 7fac0 | 55 4e 20 61 63 72 6f 73 73 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20 44 41 54 55 4d 2c 20 66 72 | UN.across.ancestors.of.DATUM,.fr |
| 7fae0 | 6f 6d 20 63 6c 6f 73 65 73 74 20 74 6f 20 66 75 72 74 68 65 73 74 2e 0a 0a 44 41 54 55 4d 20 69 | om.closest.to.furthest...DATUM.i |
| 7fb00 | 73 20 61 6e 20 6f 62 6a 65 63 74 20 6f 72 20 65 6c 65 6d 65 6e 74 2e 20 20 46 6f 72 20 54 59 50 | s.an.object.or.element...For.TYP |
| 7fb20 | 45 53 2c 20 57 49 54 48 2d 53 45 4c 46 20 61 6e 64 0a 46 49 52 53 54 2d 4d 41 54 43 48 20 73 65 | ES,.WITH-SELF.and.FIRST-MATCH.se |
| 7fb40 | 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 70 27 2e 0a 0a 54 68 | e.`org-element-lineage-map'...Th |
| 7fb60 | 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 70 72 6f 76 69 64 65 64 20 66 6f 72 20 63 6f 6d 70 | is.function.is.provided.for.comp |
| 7fb80 | 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 0a 6f 66 | atibility.with.older.versions.of |
| 7fba0 | 20 4f 72 67 2e 22 0a 20 20 20 20 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 32 29 | .Org.".......(declare.(indent.2) |
| 7fbc0 | 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 75 6e 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 | ).......(setq.fun.(if.(functionp |
| 7fbe0 | 20 66 75 6e 29 20 66 75 6e 20 60 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 20 2c 66 75 6e 29 29 | .fun).fun.`(lambda.(node).,fun)) |
| 7fc00 | 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 75 70 20 28 69 66 20 77 69 74 68 2d 73 65 6c 66 20 | ).......(let.((up.(if.with-self. |
| 7fc20 | 64 61 74 75 6d 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 20 64 61 74 75 6d 29 | datum.(org-element-parent.datum) |
| 7fc40 | 29 29 0a 09 20 20 20 20 61 63 63 20 72 74 6e 29 0a 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 | ))......acc.rtn).........(catch. |
| 7fc60 | 3a 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 | :--first-match...........(while. |
| 7fc80 | 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 74 79 | up.............(when.(or.(not.ty |
| 7fca0 | 70 65 73 29 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 2d 70 20 75 70 20 74 79 70 65 | pes).(org-element-type-p.up.type |
| 7fcc0 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 74 6e 20 28 66 75 6e | s))...............(setq.rtn.(fun |
| 7fce0 | 63 61 6c 6c 20 66 75 6e 20 75 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | call.fun.up))...............(if. |
| 7fd00 | 28 61 6e 64 20 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 | (and.first-match.rtn)........... |
| 7fd20 | 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 3a 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 20 72 74 | ........(throw.:--first-match.rt |
| 7fd40 | 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 72 74 6e 20 28 70 75 | n).................(when.rtn.(pu |
| 7fd60 | 73 68 20 72 74 6e 20 61 63 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | sh.rtn.acc)))).............(setq |
| 7fd80 | 20 75 70 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 20 75 70 29 29 29 0a 20 20 | .up.(org-element-parent.up)))... |
| 7fda0 | 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 61 63 63 29 29 29 29 29 0a 20 20 28 69 66 | ........(nreverse.acc)))))...(if |
| 7fdc0 | 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 0a 20 20 | .(fboundp.'org-element-begin)... |
| 7fde0 | 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 | ....(progn.(declare-function.org |
| 7fe00 | 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 | -element-begin."org-element")... |
| 7fe20 | 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 | ...........(declare-function.org |
| 7fe40 | 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 | -element-end."org-element")..... |
| 7fe60 | 20 20 20 20 20 20 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 | .........(defalias.'gptel-org--e |
| 7fe80 | 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 | lement-begin.'org-element-begin) |
| 7fea0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f | ..............(defalias.'gptel-o |
| 7fec0 | 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 | rg--element-end.'org-element-end |
| 7fee0 | 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 65 6d 65 6e 74 | )).....(defun.gptel-org--element |
| 7ff00 | 2d 62 65 67 69 6e 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 22 47 65 74 20 60 3a 62 65 67 69 6e | -begin.(node)......."Get.`:begin |
| 7ff20 | 27 20 70 72 6f 70 65 72 74 79 20 6f 66 20 4e 4f 44 45 2e 22 0a 20 20 20 20 20 20 28 6f 72 67 2d | '.property.of.NODE.".......(org- |
| 7ff40 | 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 62 65 67 69 6e 20 6e 6f 64 65 29 29 0a 20 | element-property.:begin.node)).. |
| 7ff60 | 20 20 20 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 | ...(defun.gptel-org--element-end |
| 7ff80 | 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 22 47 65 74 20 60 3a 65 6e 64 27 20 70 72 6f 70 65 72 | .(node)......."Get.`:end'.proper |
| 7ffa0 | 74 79 20 6f 66 20 4e 4f 44 45 2e 22 0a 20 20 20 20 20 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d | ty.of.NODE.".......(org-element- |
| 7ffc0 | 70 72 6f 70 65 72 74 79 20 3a 65 6e 64 20 6e 6f 64 65 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 55 73 | property.:end.node))))....;;;.Us |
| 7ffe0 | 65 72 20 6f 70 74 69 6f 6e 73 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6f 72 67 2d | er.options.(defcustom.gptel-org- |
| 80000 | 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 20 6e 69 6c 0a 20 20 22 55 73 65 20 74 68 65 | branching-context.nil..."Use.the |
| 80020 | 20 6c 69 6e 65 61 67 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 20 | .lineage.of.the.current.heading. |
| 80040 | 61 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 66 6f 72 20 67 70 74 65 6c 20 69 6e 20 4f 72 67 20 | as.the.context.for.gptel.in.Org. |
| 80060 | 62 75 66 66 65 72 73 2e 0a 0a 54 68 69 73 20 6d 61 6b 65 73 20 65 61 63 68 20 73 61 6d 65 20 6c | buffers...This.makes.each.same.l |
| 80080 | 65 76 65 6c 20 68 65 61 64 69 6e 67 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 76 65 72 73 61 | evel.heading.a.separate.conversa |
| 800a0 | 74 69 6f 6e 0a 62 72 61 6e 63 68 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 67 70 74 65 6c 20 | tion.branch...By.default,.gptel. |
| 800c0 | 75 73 65 73 20 61 20 6c 69 6e 65 61 72 20 63 6f 6e 74 65 78 74 3a 20 61 6c 6c 20 74 68 65 20 74 | uses.a.linear.context:.all.the.t |
| 800e0 | 65 78 74 20 75 70 20 74 6f 20 74 68 65 0a 63 75 72 73 6f 72 20 69 73 20 73 65 6e 74 20 74 6f 20 | ext.up.to.the.cursor.is.sent.to. |
| 80100 | 74 68 65 20 4c 4c 4d 2e 20 20 45 6e 61 62 6c 69 6e 67 20 74 68 69 73 20 6f 70 74 69 6f 6e 20 6d | the.LLM...Enabling.this.option.m |
| 80120 | 61 6b 65 73 20 74 68 65 0a 63 6f 6e 74 65 78 74 20 74 68 65 20 68 69 65 72 61 72 63 68 69 63 61 | akes.the.context.the.hierarchica |
| 80140 | 6c 20 6c 69 6e 65 61 67 65 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 4f 72 67 20 68 65 61 | l.lineage.of.the.current.Org.hea |
| 80160 | 64 69 6e 67 2e 20 20 49 6e 0a 74 68 69 73 20 65 78 61 6d 70 6c 65 3a 0a 0a 2d 2d 2d 2d 2d 0a 54 | ding...In.this.example:..-----.T |
| 80180 | 6f 70 20 6c 65 76 65 6c 20 74 65 78 74 0a 0a 2a 20 48 65 61 64 69 6e 67 20 31 0a 68 65 61 64 69 | op.level.text..*.Heading.1.headi |
| 801a0 | 6e 67 20 31 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 | ng.1.text..*.Heading.2.heading.2 |
| 801c0 | 20 74 65 78 74 0a 0a 2a 2a 20 48 65 61 64 69 6e 67 20 32 2e 31 0a 68 65 61 64 69 6e 67 20 32 2e | .text..**.Heading.2.1.heading.2. |
| 801e0 | 31 20 74 65 78 74 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 | 1.text.**.Heading.2.2.heading.2. |
| 80200 | 32 20 74 65 78 74 0a 2d 2d 2d 2d 2d 0a 0a 57 69 74 68 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 | 2.text.-----..With.the.cursor.at |
| 80220 | 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 74 68 65 20 74 65 78 74 | .the.end.of.the.buffer,.the.text |
| 80240 | 20 73 65 6e 74 20 74 6f 20 74 68 65 0a 4c 4c 4d 20 77 69 6c 6c 20 62 65 20 6c 69 6d 69 74 65 64 | .sent.to.the.LLM.will.be.limited |
| 80260 | 20 74 6f 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 20 48 65 61 | .to..-----.Top.level.text..*.Hea |
| 80280 | 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 |
| 802a0 | 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 54 68 | g.2.2.heading.2.2.text.-----..Th |
| 802c0 | 69 73 20 6d 61 6b 65 73 20 69 74 20 66 65 61 73 69 62 6c 65 20 74 6f 20 68 61 76 65 20 6d 75 6c | is.makes.it.feasible.to.have.mul |
| 802e0 | 74 69 70 6c 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 72 61 6e 63 68 65 73 2e 22 0a 20 20 | tiple.conversation.branches."... |
| 80300 | 3a 6c 6f 63 61 6c 20 74 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f | :local.t...:type.'boolean...:gro |
| 80320 | 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 6c 2d 6f 72 67 | up.'gptel)..(defcustom.gptel-org |
| 80340 | 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 2d 64 72 61 77 | -ignore-elements.'(property-draw |
| 80360 | 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 20 74 68 61 74 | er)..."List.of.Org.elements.that |
| 80380 | 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 65 20 70 72 6f | .should.be.stripped.from.the.pro |
| 803a0 | 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 64 65 66 61 75 | mpt.before.sending.it...By.defau |
| 803c0 | 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 6f 70 65 72 74 | lt.gptel.will.remove.Org.propert |
| 803e0 | 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 20 46 6f 72 20 | y.drawers.from.the.prompt...For. |
| 80400 | 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 65 6c 65 6d 65 | the.full.list.of.available.eleme |
| 80420 | 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 74 2d 61 6c 6c | nts,.please.see.`org-element-all |
| 80440 | 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 65 6d 6f 76 69 | -elements'...Please.note:.Removi |
| 80460 | 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 20 69 73 20 66 | ng.property-drawer.elements.is.f |
| 80480 | 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 20 74 68 69 73 | ast,.but.adding.elements.to.this |
| 804a0 | 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 77 20 64 6f 77 | .list.can.significantly.slow.dow |
| 804c0 | 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 67 70 74 65 6c | n.`gptel-send'."...:group.'gptel |
| 804e0 | 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 0a 0c 0a 3b 3b | ...:type.'(repeat.symbol))....;; |
| 80500 | 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 69 6e 67 20 71 | ;.Setting.context.and.creating.q |
| 80520 | 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 74 2d 74 6f 70 | ueries.(defun.gptel-org--get-top |
| 80540 | 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 61 74 69 6f 6e | ic-start.()..."If.a.conversation |
| 80560 | 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 20 20 28 77 68 | .topic.is.set,.return.it."...(wh |
| 80580 | 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 47 50 54 45 4c | en.(org-entry-get.(point)."GPTEL |
| 805a0 | 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 65 72 2d 70 6f | _TOPIC".'inherit).....(marker-po |
| 805c0 | 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 6e 68 65 72 69 | sition.org-entry-property-inheri |
| 805e0 | 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 72 67 2d 73 65 | ted-from)))..(defun.gptel-org-se |
| 80600 | 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 50 49 43 20 61 | t-topic.(topic)..."Set.a.TOPIC.a |
| 80620 | 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 74 6f 20 74 68 | nd.limit.this.conversation.to.th |
| 80640 | 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 6d 69 74 73 20 | e.current.heading...This.limits. |
| 80660 | 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 20 74 6f 20 74 | the.context.sent.to.the.LLM.to.t |
| 80680 | 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 20 68 65 61 64 | he.text.between.the.current.head |
| 806a0 | 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 2e 22 0a 20 20 | ing.and.the.cursor.position."... |
| 806c0 | 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 70 72 6f 67 6e | (interactive....(list.....(progn |
| 806e0 | 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 27 6f 72 67 2d | .......(or.(derived-mode-p.'org- |
| 80700 | 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 20 22 53 75 70 | mode)...........(user-error."Sup |
| 80720 | 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 72 20 62 75 66 | port.for.multiple.topics.per.buf |
| 80740 | 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 20 60 6f 72 67 | fer.is.only.implemented.for.`org |
| 80760 | 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 2d 72 65 61 64 | -mode'")).......(completing-read |
| 80780 | 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 20 20 20 20 20 | ."Set.topic.as:."............... |
| 807a0 | 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 65 73 20 22 47 | .........(org-property-values."G |
| 807c0 | 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 20 20 20 20 20 | PTEL_TOPIC").................... |
| 807e0 | 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 20 20 20 20 20 | ....nil.nil.(downcase........... |
| 80800 | 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 2d | ......................(truncate- |
| 80820 | 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 20 | string-to-width................. |
| 80840 | 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 2d 6e 6f 2d 70 | .................(substring-no-p |
| 80860 | 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 20 20 | roperties....................... |
| 80880 | 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 2d 69 6e 2d 73 | ............(replace-regexp-in-s |
| 808a0 | 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........................... |
| 808c0 | 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 20 20 20 20 20 | ........."\\s-+"."-"............ |
| 808e0 | 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 67 2d 67 65 74 | ........................(org-get |
| 80900 | 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 20 | -heading)))..................... |
| 80920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 35 30 29 29 29 29 29 29 0a 20 20 28 77 68 65 6e 20 28 73 | .............50))))))...(when.(s |
| 80940 | 74 72 69 6e 67 70 20 74 6f 70 69 63 29 20 28 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 | tringp.topic).(org-set-property. |
| 80960 | 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 74 6f 70 69 63 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a | "GPTEL_TOPIC".topic)))..;;.NOTE: |
| 80980 | 20 54 68 69 73 20 63 61 6e 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 63 6c 2d 64 | .This.can.be.converted.to.a.cl-d |
| 809a0 | 65 66 6d 65 74 68 6f 64 20 66 6f 72 20 60 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 | efmethod.for.`gptel--parse-buffe |
| 809c0 | 72 27 0a 3b 3b 20 28 63 6f 6e 63 65 70 74 75 61 6c 6c 79 20 63 6c 65 61 6e 65 72 29 2c 20 62 75 | r'.;;.(conceptually.cleaner),.bu |
| 809e0 | 74 20 77 69 6c 6c 20 63 61 75 73 65 20 6c 6f 61 64 2d 6f 72 64 65 72 20 69 73 73 75 65 73 20 69 | t.will.cause.load-order.issues.i |
| 80a00 | 6e 20 67 70 74 65 6c 2e 65 6c 20 61 6e 64 0a 3b 3b 20 6d 69 67 68 74 20 62 65 20 68 61 72 64 65 | n.gptel.el.and.;;.might.be.harde |
| 80a20 | 72 20 74 6f 20 64 65 62 75 67 2e 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 | r.to.debug..(defun.gptel-org--cr |
| 80a40 | 65 61 74 65 2d 70 72 6f 6d 70 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e | eate-prompt.(&optional.prompt-en |
| 80a60 | 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6c 6c 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e | d)..."Return.a.full.conversation |
| 80a80 | 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 69 | .prompt.from.the.contents.of.thi |
| 80aa0 | 73 20 4f 72 67 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 60 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 | s.Org.buffer...If.`gptel--num-me |
| 80ac0 | 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 27 20 69 73 20 73 65 74 2c 20 6c 69 6d 69 74 20 74 6f | ssages-to-send'.is.set,.limit.to |
| 80ae0 | 20 74 68 61 74 20 6d 61 6e 79 0a 72 65 63 65 6e 74 20 65 78 63 68 61 6e 67 65 73 2e 0a 0a 54 68 | .that.many.recent.exchanges...Th |
| 80b00 | 65 20 70 72 6f 6d 70 74 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 | e.prompt.is.constructed.from.the |
| 80b20 | 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 6f 0a 70 6f | .contents.of.the.buffer.up.to.po |
| 80b40 | 69 6e 74 2c 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 | int,.or.PROMPT-END.if.provided.. |
| 80b60 | 20 49 74 73 20 63 6f 6e 74 65 6e 74 73 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 0a 76 61 6c 75 | .Its.contents.depend.on.the.valu |
| 80b80 | 65 20 6f 66 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 | e.of.`gptel-org-branching-contex |
| 80ba0 | 74 27 2c 20 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 | t',.which.see."...(when.(use-reg |
| 80bc0 | 69 6f 6e 2d 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 | ion-p).....(narrow-to-region.(re |
| 80be0 | 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 0a 20 | gion-beginning).(region-end))).. |
| 80c00 | 20 28 69 66 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 | .(if.prompt-end.......(goto-char |
| 80c20 | 20 70 72 6f 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 | .prompt-end).....(setq.prompt-en |
| 80c40 | 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6d 61 78 2d 65 6e 74 72 69 65 73 | d.(point)))...(let.((max-entries |
| 80c60 | 20 28 61 6e 64 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 | .(and.gptel--num-messages-to-sen |
| 80c80 | 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 28 2a 20 32 | d...........................(*.2 |
| 80ca0 | 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 29 29 0a | .gptel--num-messages-to-send))). |
| 80cc0 | 20 20 20 20 20 20 20 20 28 74 6f 70 69 63 2d 73 74 61 72 74 20 28 67 70 74 65 6c 2d 6f 72 67 2d | ........(topic-start.(gptel-org- |
| 80ce0 | 2d 67 65 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 6f | -get-topic-start))).....(when.to |
| 80d00 | 70 69 63 2d 73 74 61 72 74 0a 20 20 20 20 20 20 3b 3b 20 6e 61 72 72 6f 77 20 74 6f 20 47 50 54 | pic-start.......;;.narrow.to.GPT |
| 80d20 | 45 4c 5f 54 4f 50 49 43 20 70 72 6f 70 65 72 74 79 20 73 63 6f 70 65 0a 20 20 20 20 20 20 28 6e | EL_TOPIC.property.scope.......(n |
| 80d40 | 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 74 6f 70 69 63 2d 73 74 61 72 74 20 70 72 6f 6d | arrow-to-region.topic-start.prom |
| 80d60 | 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 67 70 74 65 6c 2d 6f 72 67 2d | pt-end)).....(if.(and.gptel-org- |
| 80d80 | 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | branching-context..............( |
| 80da0 | 6f 72 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 | or.(fboundp.'org-element-lineage |
| 80dc0 | 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 6e 69 | -map)..................(prog1.ni |
| 80de0 | 6c 0a 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 77 61 | l....................(display-wa |
| 80e00 | 72 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 27 28 67 70 74 65 | rning.....................'(gpte |
| 80e20 | 6c 20 6f 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 55 73 69 6e | l.org)....................."Usin |
| 80e40 | 67 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 20 | g.`gptel-org-branching-context'. |
| 80e60 | 72 65 71 75 69 72 65 73 20 4f 72 67 20 76 65 72 73 69 6f 6e 20 39 2e 37 20 6f 72 20 68 69 67 68 | requires.Org.version.9.7.or.high |
| 80e80 | 65 72 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 2e 22 29 29 29 29 0a 20 20 20 | er,.it.will.be.ignored.")))).... |
| 80ea0 | 20 20 20 20 20 3b 3b 20 43 72 65 61 74 65 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 64 69 72 65 63 | .....;;.Create.prompt.from.direc |
| 80ec0 | 74 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 28 73 61 | t.ancestors.of.point.........(sa |
| 80ee0 | 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6f | ve-excursion...........(let*.((o |
| 80f00 | 72 67 2d 62 75 66 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 | rg-buf.(current-buffer))........ |
| 80f20 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 61 6c 6c 20 68 65 61 64 69 6e 67 | ..........;;.Collect.all.heading |
| 80f40 | 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 69 6e 65 61 67 65 0a | .start.positions.in.the.lineage. |
| 80f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 2d 62 6f 75 6e 64 73 20 28 67 | .................(full-bounds.(g |
| 80f80 | 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 0a 20 20 | ptel-org--element-lineage-map... |
| 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 20 20 20 20 | ................................ |
| 80fc0 | 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 29 20 23 27 67 70 74 65 6c 2d 6f | (org-element-at-point).#'gptel-o |
| 80fe0 | 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rg--element-begin............... |
| 81000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 68 65 61 64 6c 69 6e 65 29 20 27 77 | ..................'(headline).'w |
| 81020 | 69 74 68 2d 73 65 6c 66 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | ith-self).)..................;;. |
| 81040 | 6c 69 6e 65 61 67 65 2d 6d 61 70 20 72 65 74 75 72 6e 73 20 74 68 65 20 66 75 6c 6c 20 6c 69 6e | lineage-map.returns.the.full.lin |
| 81060 | 65 61 67 65 20 69 6e 20 74 68 65 20 75 6e 6e 61 72 72 6f 77 65 64 0a 20 20 20 20 20 20 20 20 20 | eage.in.the.unnarrowed.......... |
| 81080 | 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e 20 20 52 65 6d 6f 76 65 20 68 65 61 64 69 | ........;;.buffer...Remove.headi |
| 810a0 | 6e 67 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 61 74 20 6f 72 20 62 65 66 6f 72 65 0a | ng.start.positions.at.or.before. |
| 810c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 | .................;;.(point-min). |
| 810e0 | 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 69 6e | that.are.invalid.due.to.narrowin |
| 81100 | 67 2c 20 61 6e 64 20 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 | g,.and.add..................;;.( |
| 81120 | 70 6f 69 6e 74 2d 6d 69 6e 29 20 65 78 70 6c 69 63 69 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 | point-min).explicitly........... |
| 81140 | 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 62 6f 75 6e 64 73 20 28 6e 63 6f 6e 63 20 28 63 6c 2d | .......(start-bounds.(nconc.(cl- |
| 81160 | 64 65 6c 65 74 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 70 29 20 28 3c 3d 20 70 20 28 70 6f 69 | delete-if.(lambda.(p).(<=.p.(poi |
| 81180 | 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 20 20 | nt-min)))....................... |
| 811a0 | 20 20 20 20 20 20 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 75 | ..............................fu |
| 811c0 | 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 20 20 20 20 20 20 20 | ll-bounds)...................... |
| 811e0 | 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 2d 6d 69 | .................(list.(point-mi |
| 81200 | 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 62 6f 75 6e | n))))..................(end-boun |
| 81220 | 64 73 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 70 0a 20 20 | ds...................(cl-loop... |
| 81240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 63 61 72 20 73 74 61 72 74 2d 62 | .................;;.(car.start-b |
| 81260 | 6f 75 6e 64 73 29 20 69 73 20 74 68 65 20 62 65 67 69 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 | ounds).is.the.begining.of.the.cu |
| 81280 | 72 72 65 6e 74 20 65 6c 65 6d 65 6e 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rrent.element,.................. |
| 812a0 | 20 20 3b 3b 20 6e 6f 74 20 72 65 6c 65 76 61 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..;;.not.relevant............... |
| 812c0 | 20 20 20 20 20 66 6f 72 20 70 6f 73 20 69 6e 20 28 63 64 72 20 73 74 61 72 74 2d 62 6f 75 6e 64 | .....for.pos.in.(cdr.start-bound |
| 812e0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 6f 74 6f 2d 63 | s)....................do.(goto-c |
| 81300 | 68 61 72 20 70 6f 73 29 20 28 6f 75 74 6c 69 6e 65 2d 6e 65 78 74 2d 68 65 61 64 69 6e 67 29 0a | har.pos).(outline-next-heading). |
| 81320 | 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 70 6f 69 6e | ...................collect.(poin |
| 81340 | 74 29 20 69 6e 74 6f 20 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t).into.ends.................... |
| 81360 | 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 28 63 6f 6e 73 20 70 72 6f 6d 70 74 2d 65 6e 64 20 | finally.return.(cons.prompt-end. |
| 81380 | 65 6e 64 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 | ends)))).............(gptel--wit |
| 813a0 | 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 6f 72 67 2d 62 75 66 20 6e 69 6c 20 6e 69 6c 0a 20 20 | h-buffer-copy.org-buf.nil.nil... |
| 813c0 | 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 73 74 61 72 74 20 69 | ............(cl-loop.for.start.i |
| 813e0 | 6e 20 73 74 61 72 74 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.start-bounds.................. |
| 81400 | 20 20 20 20 20 20 66 6f 72 20 65 6e 64 20 69 6e 20 65 6e 64 2d 62 6f 75 6e 64 73 0a 20 20 20 20 | ......for.end.in.end-bounds..... |
| 81420 | 20 20 20 20 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 2d 62 75 | ...................do.(insert-bu |
| 81440 | 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 6f 72 67 2d 62 75 66 20 73 74 61 72 74 20 65 6e 64 | ffer-substring.org-buf.start.end |
| 81460 | 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 67 6f 74 6f 2d 63 | )........................(goto-c |
| 81480 | 68 61 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 20 20 | har.(point-min)))............... |
| 814a0 | 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 20 | (goto-char.(point-max))......... |
| 814c0 | 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 6c 2d | ......(gptel-org--unescape-tool- |
| 814e0 | 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 | results)...............(gptel-or |
| 81500 | 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | g--strip-elements).............. |
| 81520 | 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 | .(gptel-org--strip-block-headers |
| 81540 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6f 72 67 2d | )...............(when.gptel-org- |
| 81560 | 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 | ignore-elements.(gptel-org--stri |
| 81580 | 70 2d 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 | p-elements))...............(save |
| 815a0 | 2d 65 78 63 75 72 73 69 6f 6e 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 6f | -excursion.(run-hooks.'gptel-pro |
| 815c0 | 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mpt-filter-hook))............... |
| 815e0 | 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 | (gptel--parse-buffer.gptel-backe |
| 81600 | 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 43 72 65 61 | nd.max-entries)))).......;;.Crea |
| 81620 | 74 65 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 75 61 6c 20 77 61 79 0a 20 20 20 20 20 20 28 6c | te.prompt.the.usual.way.......(l |
| 81640 | 65 74 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 0a 20 | et.((org-buf.(current-buffer)).. |
| 81660 | 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 20 28 65 6e | ...........(beg.(point-min)).(en |
| 81680 | 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | d.(point-max))).........(gptel-- |
| 816a0 | 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 6f 72 67 2d 62 75 66 20 62 65 67 20 65 6e 64 | with-buffer-copy.org-buf.beg.end |
| 816c0 | 0a 20 20 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 | ...........(gptel-org--unescape- |
| 816e0 | 74 6f 6f 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 | tool-results)...........(gptel-o |
| 81700 | 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 | rg--strip-elements)...........(g |
| 81720 | 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 29 0a 20 | ptel-org--strip-block-headers).. |
| 81740 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d | .........(when.gptel-org-ignore- |
| 81760 | 65 6c 65 6d 65 6e 74 73 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 | elements.(gptel-org--strip-eleme |
| 81780 | 6e 74 73 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 20 | nts))...........(save-excursion. |
| 817a0 | 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d | (run-hooks.'gptel-prompt-filter- |
| 817c0 | 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 | hook))...........(gptel--parse-b |
| 817e0 | 75 66 66 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 | uffer.gptel-backend.max-entries) |
| 81800 | 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 65 | )))))..(defun.gptel-org--strip-e |
| 81820 | 6c 65 6d 65 6e 74 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 65 6c 65 6d 65 6e 74 | lements.()..."Remove.all.element |
| 81840 | 73 20 69 6e 20 60 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 27 | s.in.`gptel-org-ignore-elements' |
| 81860 | 20 66 72 6f 6d 20 74 68 65 0a 70 72 6f 6d 70 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 61 6a 6f | .from.the.prompt."...(let.((majo |
| 81880 | 72 2d 6d 6f 64 65 20 27 6f 72 67 2d 6d 6f 64 65 29 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 72 | r-mode.'org-mode).element-marker |
| 818a0 | 73 29 0a 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 27 28 70 72 6f 70 65 72 74 79 2d 64 72 61 | s).....(if.(equal.'(property-dra |
| 818c0 | 77 65 72 29 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 29 0a | wer).gptel-org-ignore-elements). |
| 818e0 | 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 20 20 20 20 | ........(save-excursion......... |
| 81900 | 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 20 20 20 | ..(goto-char.(point-min))....... |
| 81920 | 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 6f 72 | ....(while.(re-search-forward.or |
| 81940 | 67 2d 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 2d 72 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 | g-property-drawer-re.nil.t)..... |
| 81960 | 20 20 20 20 20 20 20 20 3b 3b 20 3b 3b 20 53 6c 6f 77 65 72 20 62 75 74 20 61 63 63 75 72 61 74 | ........;;.;;.Slower.but.accurat |
| 81980 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 6c 65 74 20 28 28 64 72 61 77 65 72 20 28 | e.............;;.(let.((drawer.( |
| 819a0 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | org-element-at-point)))......... |
| 819c0 | 20 20 20 20 3b 3b 20 20 20 28 77 68 65 6e 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 | ....;;...(when.(org-element-type |
| 819e0 | 2d 70 20 64 72 61 77 65 72 20 27 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 29 0a 20 20 20 20 | -p.drawer.'property-drawer)..... |
| 81a00 | 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6f | ........;;.....(delete-region.(o |
| 81a20 | 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 64 72 61 77 65 72 29 20 28 6f 72 67 2d 65 6c | rg-element-begin.drawer).(org-el |
| 81a40 | 65 6d 65 6e 74 2d 65 6e 64 20 64 72 61 77 65 72 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 | ement-end.drawer))))............ |
| 81a60 | 20 20 3b 3b 20 46 61 73 74 20 62 75 74 20 69 6e 65 78 61 63 74 2c 20 63 61 6e 20 68 61 76 65 20 | ..;;.Fast.but.inexact,.can.have. |
| 81a80 | 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c | false.positives.............(del |
| 81aa0 | 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 20 28 | ete-region.(match-beginning.0).( |
| 81ac0 | 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 50 | match-end.0)))).......;;.NOTE:.P |
| 81ae0 | 61 72 73 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 69 73 20 65 78 74 72 65 6d 65 6c 79 20 73 | arsing.the.buffer.is.extremely.s |
| 81b00 | 6c 6f 77 2e 20 20 41 76 6f 69 64 20 74 68 69 73 20 70 61 74 68 20 75 6e 6c 65 73 73 0a 20 20 20 | low...Avoid.this.path.unless.... |
| 81b20 | 20 20 20 3b 3b 20 72 65 71 75 69 72 65 64 2e 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 60 | ...;;.required........;;.NOTE:.` |
| 81b40 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6d 61 70 27 20 74 61 6b 65 73 20 61 20 74 68 69 72 64 20 4b | org-element-map'.takes.a.third.K |
| 81b60 | 45 45 50 2d 44 45 46 45 52 52 45 44 20 61 72 67 75 6d 65 6e 74 20 69 6e 20 6e 65 77 65 72 0a 20 | EEP-DEFERRED.argument.in.newer.. |
| 81b80 | 20 20 20 20 20 3b 3b 20 4f 72 67 20 76 65 72 73 69 6f 6e 73 0a 20 20 20 20 20 20 28 6f 72 67 2d | .....;;.Org.versions.......(org- |
| 81ba0 | 65 6c 65 6d 65 6e 74 2d 6d 61 70 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 73 65 2d 62 | element-map.(org-element-parse-b |
| 81bc0 | 75 66 66 65 72 20 27 65 6c 65 6d 65 6e 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 67 70 | uffer.'element.nil)...........gp |
| 81be0 | 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 | tel-org-ignore-elements......... |
| 81c00 | 28 6c 61 6d 62 64 61 20 28 6e 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 | (lambda.(node)...........(push.( |
| 81c20 | 6c 69 73 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 6e | list.(gptel-org--element-begin.n |
| 81c40 | 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 67 70 74 65 | ode).......................(gpte |
| 81c60 | 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 20 20 | l-org--element-end.node))....... |
| 81c80 | 20 20 20 20 20 20 20 20 20 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 72 73 29 29 29 0a 20 20 20 | ..........element-markers))).... |
| 81ca0 | 20 20 20 28 64 6f 6c 69 73 74 20 28 62 6f 75 6e 64 73 20 65 6c 65 6d 65 6e 74 2d 6d 61 72 6b 65 | ...(dolist.(bounds.element-marke |
| 81cc0 | 72 73 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 64 65 6c 65 74 65 2d 72 65 67 69 | rs).........(apply.#'delete-regi |
| 81ce0 | 6f 6e 20 62 6f 75 6e 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 | on.bounds)))))..(defun.gptel-org |
| 81d00 | 2d 2d 73 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 20 28 29 0a 20 20 22 52 65 6d 6f | --strip-block-headers.()..."Remo |
| 81d20 | 76 65 20 61 6c 6c 20 67 70 74 65 6c 2d 73 70 65 63 69 66 69 63 20 62 6c 6f 63 6b 20 68 65 61 64 | ve.all.gptel-specific.block.head |
| 81d40 | 65 72 73 20 61 6e 64 20 66 6f 6f 74 65 72 73 2e 0a 45 76 65 72 79 20 6c 69 6e 65 20 74 68 61 74 | ers.and.footers..Every.line.that |
| 81d60 | 20 6d 61 74 63 68 65 73 20 77 69 6c 6c 20 62 65 20 72 65 6d 6f 76 65 64 20 65 6e 74 69 72 65 6c | .matches.will.be.removed.entirel |
| 81d80 | 79 2e 0a 0a 54 68 69 73 20 72 65 6d 6f 76 61 6c 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 74 6f | y...This.removal.is.necessary.to |
| 81da0 | 20 61 76 6f 69 64 20 61 75 74 6f 2d 6d 69 6d 69 63 72 79 20 62 79 20 4c 4c 4d 73 2e 22 0a 20 20 | .avoid.auto-mimicry.by.LLMs."... |
| 81dc0 | 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 | (save-excursion.....(goto-char.( |
| 81de0 | 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 | point-min)).....(while.(re-searc |
| 81e00 | 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 6c 69 6e 65 2d 73 | h-forward.............(rx.line-s |
| 81e20 | 74 61 72 74 20 28 6c 69 74 65 72 61 6c 20 22 23 2b 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tart.(literal."#+")............. |
| 81e40 | 20 20 20 20 28 6f 72 20 28 6c 69 74 65 72 61 6c 20 22 62 65 67 69 6e 22 29 20 28 6c 69 74 65 72 | ....(or.(literal."begin").(liter |
| 81e60 | 61 6c 20 22 65 6e 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | al."end")).................(or.( |
| 81e80 | 6c 69 74 65 72 61 6c 20 22 5f 74 6f 6f 6c 22 29 20 28 6c 69 74 65 72 61 6c 20 22 5f 72 65 61 73 | literal."_tool").(literal."_reas |
| 81ea0 | 6f 6e 69 6e 67 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 | oning"))).............nil.t).... |
| 81ec0 | 20 20 20 28 64 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 | ...(delete-region.(match-beginni |
| 81ee0 | 6e 67 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 6d 69 6e 20 | ng.0)......................(min. |
| 81f00 | 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 31 2b 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 | (point-max).(1+.(line-end-positi |
| 81f20 | 6f 6e 29 29 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 75 6e 65 | on)))))))..(defun.gptel-org--une |
| 81f40 | 73 63 61 70 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 29 0a 20 20 22 55 6e 64 6f 20 65 73 | scape-tool-results.()..."Undo.es |
| 81f60 | 63 61 70 65 73 20 64 6f 6e 65 20 74 6f 20 6b 65 65 70 20 72 65 73 75 6c 74 73 20 66 72 6f 6d 20 | capes.done.to.keep.results.from. |
| 81f80 | 65 73 63 61 70 69 6e 67 20 62 6c 6f 63 6b 73 2e 0a 53 63 61 6e 73 20 62 61 63 6b 77 61 72 64 20 | escaping.blocks..Scans.backward. |
| 81fa0 | 66 6f 72 20 67 70 74 65 6c 20 74 6f 6f 6c 20 74 65 78 74 20 70 72 6f 70 65 72 74 79 2c 20 72 65 | for.gptel.tool.text.property,.re |
| 81fc0 | 61 64 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 6e 0a 75 6e 65 73 63 61 70 65 | ads.the.arguments,.then.unescape |
| 81fe0 | 73 20 74 68 65 20 72 65 6d 61 69 6e 64 65 72 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 | s.the.remainder."...(save-excurs |
| 82000 | 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 61 78 29 29 0a | ion.....(goto-char.(point-max)). |
| 82020 | 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | ....(let.((prev-pt.(point))).... |
| 82040 | 20 20 20 28 77 68 69 6c 65 20 28 3e 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | ...(while.(>.prev-pt.(point-min) |
| 82060 | 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 28 70 | ).........(goto-char..........(p |
| 82080 | 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 63 68 61 | revious-single-char-property-cha |
| 820a0 | 6e 67 65 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 | nge.(point).'gptel)).........(le |
| 820c0 | 74 20 28 28 70 72 6f 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 | t.((prop.(get-text-property.(poi |
| 820e0 | 6e 74 29 20 27 67 70 74 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b | nt).'gptel))...............(back |
| 82100 | 77 61 72 64 2d 70 72 6f 67 72 65 73 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ward-progress.(point)))......... |
| 82120 | 20 20 28 77 68 65 6e 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 70 72 6f 70 29 20 27 74 6f 6f | ..(when.(eq.(car-safe.prop).'too |
| 82140 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 55 73 65 72 20 65 64 69 74 73 20 74 6f 20 | l).............;;.User.edits.to. |
| 82160 | 63 6c 65 61 6e 20 75 70 20 63 61 6e 20 70 6f 74 65 6e 74 69 61 6c 6c 79 20 69 6e 73 65 72 74 20 | clean.up.can.potentially.insert. |
| 82180 | 61 20 74 6f 6f 6c 2d 63 61 6c 6c 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b | a.tool-call.header.............; |
| 821a0 | 3b 20 74 68 61 74 20 69 73 20 70 72 6f 70 65 72 74 69 7a 65 64 2e 20 20 54 6f 6f 6c 20 63 61 6c | ;.that.is.propertized...Tool.cal |
| 821c0 | 6c 20 68 65 61 64 65 72 73 20 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 0a 20 20 20 20 20 20 20 20 | l.headers.should.not.be......... |
| 821e0 | 20 20 20 20 3b 3b 20 70 72 6f 70 65 72 74 69 7a 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....;;.propertized.............. |
| 82200 | 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d | (when.(looking-at-p."[[:space:]] |
| 82220 | 2a 23 5c 5c 2b 62 65 67 69 6e 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *#\\+begin_tool")............... |
| 82240 | 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 20 | (goto-char.(match-end.0)))...... |
| 82260 | 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 20 20 20 20 20 | .......(condition-case.nil...... |
| 82280 | 20 20 20 20 20 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 | ...........(read.(current-buffer |
| 822a0 | 29 29 0a 20 20 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 | ))...............((end-of-file.i |
| 822c0 | 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 20 20 20 20 20 20 | nvalid-read-syntax)............. |
| 822e0 | 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 74 6f 6f 6c | ...(message."Could.not.read.tool |
| 82300 | 20 61 72 67 75 6d 65 6e 74 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f | .arguments"))).............;;.TO |
| 82320 | 44 4f 20 74 68 69 73 20 63 6f 64 65 20 69 73 20 61 62 6c 65 20 74 6f 20 70 75 74 20 74 68 65 20 | DO.this.code.is.able.to.put.the. |
| 82340 | 70 6f 69 6e 74 20 62 65 68 69 6e 64 20 70 72 65 76 2d 70 74 2c 20 77 68 69 63 68 0a 20 20 20 20 | point.behind.prev-pt,.which..... |
| 82360 | 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 73 20 74 68 65 20 72 65 67 69 6f 6e 20 69 6e 76 65 | ........;;.makes.the.region.inve |
| 82380 | 72 74 65 64 2e 20 20 54 68 65 20 60 6d 61 78 27 20 63 61 74 63 68 65 73 20 74 68 69 73 2c 20 62 | rted...The.`max'.catches.this,.b |
| 823a0 | 75 74 20 72 65 61 6c 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 60 72 65 61 64 27 20 | ut.really.............;;.`read'. |
| 823c0 | 61 6e 64 20 60 6c 6f 6f 6b 69 6e 67 2d 61 74 27 20 61 72 65 20 74 68 65 20 63 75 6c 70 72 69 74 | and.`looking-at'.are.the.culprit |
| 823e0 | 73 2e 20 20 42 61 64 6c 79 20 66 6f 72 6d 65 64 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 | s...Badly.formed.tool........... |
| 82400 | 20 20 3b 3b 20 62 6c 6f 63 6b 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 74 68 69 73 20 62 65 69 | ..;;.blocks.can.lead.to.this.bei |
| 82420 | 6e 67 20 6e 65 63 65 73 73 61 72 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 75 | ng.necessary..............(org-u |
| 82440 | 6e 65 73 63 61 70 65 2d 63 6f 64 65 2d 69 6e 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 | nescape-code-in-region.......... |
| 82460 | 20 20 20 20 28 6d 69 6e 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 20 70 72 65 76 2d 70 | ....(min.prev-pt.(point)).prev-p |
| 82480 | 74 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 73 65 74 71 20 70 | t))...........(goto-char.(setq.p |
| 824a0 | 72 65 76 2d 70 74 20 62 61 63 6b 77 61 72 64 2d 70 72 6f 67 72 65 73 73 29 29 29 29 29 29 29 0a | rev-pt.backward-progress))))))). |
| 824c0 | 0a 3b 3b 20 48 61 6e 64 6c 65 20 6d 65 64 69 61 20 6c 69 6e 6b 73 20 69 6e 20 74 68 65 20 62 75 | .;;.Handle.media.links.in.the.bu |
| 824e0 | 66 66 65 72 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 | ffer.(cl-defmethod.gptel--parse- |
| 82500 | 6d 65 64 69 61 2d 6c 69 6e 6b 73 20 28 28 5f 6d 6f 64 65 20 28 65 71 6c 20 27 6f 72 67 2d 6d 6f | media-links.((_mode.(eql.'org-mo |
| 82520 | 64 65 29 29 20 62 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 | de)).beg.end)..."Parse.text.and. |
| 82540 | 61 63 74 69 6f 6e 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 | actionable.links.between.BEG.and |
| 82560 | 20 45 4e 44 2e 0a 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 | .END...Return.a.list.of.the.form |
| 82580 | 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 3a 6d 65 64 | ..((:text.\"some.text\")...(:med |
| 825a0 | 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 69 6d 65 20 | ia.\"/path/to/media.png\".:mime. |
| 825c0 | 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 72 65 20 74 | \"image/png\")...(:text.\"More.t |
| 825e0 | 65 78 74 5c 22 29 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 | ext\")).for.inclusion.into.the.u |
| 82600 | 73 65 72 20 70 72 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 | ser.prompt.for.the.gptel.request |
| 82620 | 2e 22 0a 20 20 28 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 | ."...(require.'mailcap)......... |
| 82640 | 20 20 20 20 20 20 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 | ...........;FIXME.Avoid.this.som |
| 82660 | 65 68 6f 77 0a 20 20 28 6c 65 74 20 28 28 70 61 72 74 73 29 20 28 66 72 6f 6d 2d 70 74 29 0a 20 | ehow...(let.((parts).(from-pt).. |
| 82680 | 20 20 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 | .......(link-regex.(concat."\\(? |
| 826a0 | 3a 22 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 | :".org-link-bracket-re."\\|".... |
| 826c0 | 20 20 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 | .........................org-lin |
| 826e0 | 6b 2d 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 | k-angle-re."\\)"))).....(save-ex |
| 82700 | 63 75 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 | cursion.......(setq.from-pt.(got |
| 82720 | 6f 2d 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 | o-char.beg)).......(while.(re-se |
| 82740 | 61 72 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 | arch-forward.link-regex.end.t).. |
| 82760 | 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6c 69 6e 6b 20 28 6f 72 67 2d 65 6c | .......(when-let*.((link.(org-el |
| 82780 | 65 6d 65 6e 74 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 20 | ement-context))................. |
| 827a0 | 20 20 20 20 28 28 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 | ....((gptel-org--link-standalone |
| 827c0 | 2d 70 20 6c 69 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 72 | -p.link)).....................(r |
| 827e0 | 61 77 2d 6c 69 6e 6b 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 72 | aw-link.(org-element-property.:r |
| 82800 | 61 77 2d 6c 69 6e 6b 20 6c 69 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | aw-link.link)).................. |
| 82820 | 20 20 20 28 70 61 74 68 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a | ...(path.(org-element-property.: |
| 82840 | 70 61 74 68 20 6c 69 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 | path.link))..................... |
| 82860 | 28 74 79 70 65 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 74 79 70 | (type.(org-element-property.:typ |
| 82880 | 65 20 6c 69 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 3b 3b 20 | e.link)).....................;;. |
| 828a0 | 46 49 58 4d 45 20 54 68 69 73 20 69 73 20 6e 6f 74 20 61 20 67 6f 6f 64 20 70 6c 61 63 65 20 74 | FIXME.This.is.not.a.good.place.t |
| 828c0 | 6f 20 63 68 65 63 6b 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 | o.check.for.url.capability!..... |
| 828e0 | 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 74 79 70 65 20 60 28 | ................((member.type.`( |
| 82900 | 22 61 74 74 61 63 68 6d 65 6e 74 22 20 22 66 69 6c 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | "attachment"."file"............. |
| 82920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 61 6e 64 20 28 | ........................,@(and.( |
| 82940 | 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 75 72 6c 29 0a 20 20 20 | gptel--model-capable-p.'url).... |
| 82960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 82980 | 20 20 20 20 27 28 22 68 74 74 70 22 20 22 68 74 74 70 73 22 20 22 66 74 70 22 29 29 29 29 29 0a | ....'("http"."https"."ftp"))))). |
| 829a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6d 65 20 28 6d 61 69 6c 63 | ....................(mime.(mailc |
| 829c0 | 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 68 29 29 | ap-file-name-to-mime-type.path)) |
| 829e0 | 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 6c 2d 2d 6d 6f | .....................((gptel--mo |
| 82a00 | 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 0a 20 20 20 20 20 | del-mime-capable-p.mime)))...... |
| 82a20 | 20 20 20 20 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 | .....(cond............((member.t |
| 82a40 | 79 70 65 20 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 | ype.'("file"."attachment"))..... |
| 82a60 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 70 | ........(when.(file-readable-p.p |
| 82a80 | 61 74 68 29 0a 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 74 65 | ath)...............;;.Collect.te |
| 82aa0 | 78 74 20 75 70 20 74 6f 20 74 68 69 73 20 69 6d 61 67 65 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 | xt.up.to.this.image,.and........ |
| 82ac0 | 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 65 0a 20 20 20 | .......;;.Collect.this.image.... |
| 82ae0 | 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 65 78 74 20 28 73 74 | ...........(when-let*.((text.(st |
| 82b00 | 72 69 6e 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 | ring-trim.(buffer-substring-no-p |
| 82b20 | 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 20 20 | roperties....................... |
| 82b40 | 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 70 74 20 | ........................from-pt. |
| 82b60 | 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 6b 29 29 | (gptel-org--element-begin.link)) |
| 82b80 | 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 |
| 82ba0 | 69 6e 67 2d 65 6d 70 74 79 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 | ing-empty-p.text).(push.(list.:t |
| 82bc0 | 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 20 | ext.text).parts))).............. |
| 82be0 | 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 6d 65 64 69 61 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d | .(push.(list.:media.path.:mime.m |
| 82c00 | 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 28 73 65 74 71 20 | ime).parts)...............(setq. |
| 82c20 | 66 72 6f 6d 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 | from-pt.(point))))............(( |
| 82c40 | 6d 65 6d 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 | member.type.'("http"."https"."ft |
| 82c60 | 70 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 65 78 74 | p")).............;;.Collect.text |
| 82c80 | 20 75 70 20 74 6f 20 74 68 69 73 20 69 6d 61 67 65 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 | .up.to.this.image,.and.......... |
| 82ca0 | 20 20 20 3b 3b 20 43 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 | ...;;.Collect.this.image.url.... |
| 82cc0 | 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 73 74 72 69 | .........(when-let*.((text.(stri |
| 82ce0 | 6e 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 | ng-trim.(buffer-substring-no-pro |
| 82d00 | 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 20 20 20 20 | perties......................... |
| 82d20 | 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 70 74 20 28 67 70 74 | ....................from-pt.(gpt |
| 82d40 | 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 6b 29 29 29 29 29 0a | el-org--element-begin.link))))). |
| 82d60 | 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 65 6d | ..............(unless.(string-em |
| 82d80 | 70 74 79 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 | pty-p.text).(push.(list.:text.te |
| 82da0 | 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 70 75 73 68 20 28 | xt).parts))).............(push.( |
| 82dc0 | 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 69 6d 65 29 20 70 | list.:url.raw-link.:mime.mime).p |
| 82de0 | 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 6f 6d 2d 70 74 20 | arts).............(setq.from-pt. |
| 82e00 | 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 20 28 3d 20 66 72 | (point)))))).......(unless.(=.fr |
| 82e20 | 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 6c 69 73 74 20 3a | om-pt.end).........(push.(list.: |
| 82e40 | 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 72 | text.(buffer-substring-no-proper |
| 82e60 | 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 29 0a 20 20 20 20 | ties.from-pt.end)).parts)))..... |
| 82e80 | 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 20 67 70 74 65 6c | (nreverse.parts)))..(defun.gptel |
| 82ea0 | 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 62 6a 65 63 74 29 | -org--link-standalone-p.(object) |
| 82ec0 | 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 73 20 6f 6e 20 61 | ..."Check.if.link.OBJECT.is.on.a |
| 82ee0 | 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 63 69 66 79 20 61 | .line.by.itself."...;;.Specify.a |
| 82f00 | 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 35 29 0a 20 20 28 | ncestor.TYPES.as.list.(#245)...( |
| 82f20 | 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 6e 74 2d 6c 69 6e | when-let*.((par.(org-element-lin |
| 82f40 | 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 29 0a 20 20 20 20 | eage.object.'(paragraph))))..... |
| 82f60 | 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 74 2d 62 65 67 69 | (and.(=.(gptel-org--element-begi |
| 82f80 | 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 65 2d 65 78 63 75 | n.object).............(save-excu |
| 82fa0 | 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 63 68 61 72 20 28 | rsion...............(goto-char.( |
| 82fc0 | 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 65 6e 74 73 2d 62 | org-element-property.:contents-b |
| 82fe0 | 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 73 6b 69 70 2d 63 | egin.par))...............(skip-c |
| 83000 | 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 20 20 20 | hars-forward."\t.")............. |
| 83020 | 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 20 20 3b 61 63 63 | ..(point))).................;acc |
| 83040 | 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 6f 72 65 20 6f 62 | ount.for.leading.space.before.ob |
| 83060 | 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 65 6c 65 6d 65 6e | ject..........(<=.(-.(org-elemen |
| 83080 | 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 61 72 29 0a 20 20 | t-property.:contents-end.par)... |
| 830a0 | 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 2d 70 72 6f 70 65 | ..............(org-element-prope |
| 830c0 | 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 20 20 20 20 20 31 | rty.:end.object))..............1 |
| 830e0 | 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 6e 64 2d 77 69 74 | ))))..(defun.gptel-org--send-wit |
| 83100 | 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 67 73 29 0a 20 20 | h-props.(send-fun.&rest.args)... |
| 83120 | 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 2d 46 55 4e 27 73 | "Conditionally.modify.SEND-FUN's |
| 83140 | 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 69 6e 20 61 6e 20 | .calling.environment...If.in.an. |
| 83160 | 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 20 63 6f 6e 74 61 | Org.buffer.under.a.heading.conta |
| 83180 | 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 67 75 72 61 74 69 | ining.a.stored.gptel.configurati |
| 831a0 | 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 69 6e 73 74 65 61 | on,.use.that.for.requests.instea |
| 831c0 | 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 65 6d 20 6d 65 73 | d...This.includes.the.system.mes |
| 831e0 | 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 62 61 63 6b 65 6e | sage,.model.and.provider.(backen |
| 83200 | 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 2e 0a 0a 41 52 47 | d),.among.other.parameters...ARG |
| 83220 | 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 6e 20 63 61 6c 6c | S.are.the.original.function.call |
| 83240 | 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 64 2d 6d 6f 64 65 | .arguments."...(if.(derived-mode |
| 83260 | 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 2d 6c 65 74 20 28 | -p.'org-mode).......(pcase-let.( |
| 83280 | 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 2c 67 70 74 65 6c | (`(,gptel--system-message.,gptel |
| 832a0 | 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 20 20 20 20 20 20 | -backend.,gptel-model........... |
| 832c0 | 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 75 72 65 20 2c 67 | ...........,gptel-temperature.,g |
| 832e0 | 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 20 20 20 20 20 20 | ptel-max-tokens)................ |
| 83300 | 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 29 20 28 6f 72 20 | ....(seq-mapn.(lambda.(a.b).(or. |
| 83320 | 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 20 20 20 20 20 20 | a.b))........................... |
| 83340 | 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 29 | ...(gptel-org--entry-properties) |
| 83360 | 0a 20 20 20 20 20 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 | ..............................(l |
| 83380 | 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 67 70 74 65 6c 2d | ist.gptel--system-message.gptel- |
| 833a0 | 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 20 20 20 20 20 20 | backend.gptel-model............. |
| 833c0 | 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 74 65 6d | .......................gptel-tem |
| 833e0 | 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 29 29 29 0a 20 20 | perature.gptel-max-tokens))))... |
| 83400 | 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 29 29 0a 20 20 20 | ......(apply.send-fun.args)).... |
| 83420 | 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 28 61 64 76 69 63 | .(apply.send-fun.args)))..(advic |
| 83440 | 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 23 27 67 70 74 65 | e-add.'gptel-send.:around.#'gpte |
| 83460 | 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 64 76 69 63 65 2d | l-org--send-with-props).(advice- |
| 83480 | 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 72 6f 75 6e 64 20 | add.'gptel--suffix-send.:around. |
| 834a0 | 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 3b | #'gptel-org--send-with-props)..; |
| 834c0 | 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 72 67 2d 6d 6f 64 | ;.;;.NOTE:.Basic.uses.in.org-mod |
| 834e0 | 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 67 70 74 65 6c 2d | e.are.covered.by.advising.gptel- |
| 83500 | 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 69 78 2d 73 65 6e | send.and.;;.;;.gptel--suffix-sen |
| 83520 | 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 20 6d 69 67 68 74 | d...For.custom.commands.it.might |
| 83540 | 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 20 3b 3b 20 67 70 | .be.necessary.to.advise.;;.;;.gp |
| 83560 | 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 64 76 69 63 65 2d | tel-request.instead..;;.(advice- |
| 83580 | 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 20 23 27 67 70 74 | add.'gptel-request.:around.#'gpt |
| 835a0 | 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 0c 0a 3b 3b 3b 20 | el-org--send-with-props)....;;;. |
| 835c0 | 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 0a 28 64 65 66 75 | Saving.and.restoring.state.(defu |
| 835e0 | 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 69 65 73 20 28 26 | n.gptel-org--entry-properties.(& |
| 83600 | 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 20 63 6f 6e 66 69 | optional.pt)..."Find.gptel.confi |
| 83620 | 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 20 61 74 20 50 54 | guration.properties.stored.at.PT |
| 83640 | 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 2c 73 79 73 74 65 | ."...(pcase-let.......((`(,syste |
| 83660 | 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 74 75 72 65 20 2c | m.,backend.,model.,temperature., |
| 83680 | 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 63 61 72 0a 20 20 | tokens.,num)..........(mapcar... |
| 836a0 | 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 67 2d 65 6e 74 72 | ........(lambda.(prop).(org-entr |
| 836c0 | 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 20 27 73 65 6c 65 | y-get.(or.pt.(point)).prop.'sele |
| 836e0 | 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 5f 53 59 53 54 45 | ctive))...........'("GPTEL_SYSTE |
| 83700 | 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 4d 4f 44 45 4c 22 | M"."GPTEL_BACKEND"."GPTEL_MODEL" |
| 83720 | 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 41 54 55 52 45 22 | ............."GPTEL_TEMPERATURE" |
| 83740 | 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 20 20 20 20 20 20 | ."GPTEL_MAX_TOKENS"............. |
| 83760 | 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 44 22 29 29 29 29 | "GPTEL_NUM_MESSAGES_TO_SEND")))) |
| 83780 | 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 65 74 71 20 73 79 | .....(when.system.......(setq.sy |
| 837a0 | 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 20 22 5c 6e 22 20 | stem.(string-replace."\\n"."\n". |
| 837c0 | 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 64 0a 20 20 20 20 | system))).....(when.backend..... |
| 837e0 | 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 20 62 61 63 6b 65 | ..(setq.backend.(alist-get.backe |
| 83800 | 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 20 20 20 20 20 20 | nd.gptel--known-backends........ |
| 83820 | 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 6e 69 6c 20 | ........................nil.nil. |
| 83840 | 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 20 28 73 65 74 71 | #'equal))).....(when.model.(setq |
| 83860 | 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 6c 29 29 29 0a 20 | .model.(gptel--intern.model))).. |
| 83880 | 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 20 28 73 65 74 71 | ...(when.temperature.......(setq |
| 838a0 | 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 6d 62 65 72 20 74 | .temperature.(gptel--to-number.t |
| 838c0 | 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 6b 65 6e 73 20 28 | emperature))).....(when.tokens.( |
| 838e0 | 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 62 65 72 20 74 6f | setq.tokens.(gptel--to-number.to |
| 83900 | 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 71 20 6e 75 6d 20 | kens))).....(when.num.(setq.num. |
| 83920 | 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 20 20 20 28 6c 69 | (gptel--to-number.num))).....(li |
| 83940 | 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 6d 70 65 72 61 74 | st.system.backend.model.temperat |
| 83960 | 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 67 70 74 65 6c 2d | ure.tokens.num)))..(defun.gptel- |
| 83980 | 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 65 73 74 6f 72 65 | org--restore-state.()..."Restore |
| 839a0 | 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 72 73 20 77 68 65 | .gptel.state.for.Org.buffers.whe |
| 839c0 | 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 22 0a 20 20 28 73 | n.turning.on.`gptel-mode'."...(s |
| 839e0 | 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 | ave-restriction.....(widen)..... |
| 83a00 | 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 28 | (condition-case.status.........( |
| 83a20 | 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 62 6f 75 | progn...........(when-let*.((bou |
| 83a40 | 6e 64 73 20 28 6f 72 67 2d 65 6e 74 72 79 2d 67 65 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 22 | nds.(org-entry-get.(point-min)." |
| 83a60 | 47 50 54 45 4c 5f 42 4f 55 4e 44 53 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | GPTEL_BOUNDS"))).............(gp |
| 83a80 | 74 65 6c 2d 2d 72 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 | tel--restore-props.(read.bounds) |
| 83aa0 | 29 29 0a 20 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 | ))...........(pcase-let.((`(,sys |
| 83ac0 | 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 74 75 72 65 | tem.,backend.,model.,temperature |
| 83ae0 | 20 2c 74 6f 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 | .,tokens.,num).................. |
| 83b00 | 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 72 74 69 | ......(gptel-org--entry-properti |
| 83b20 | 65 73 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 28 77 | es.(point-min)))).............(w |
| 83b40 | 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 |
| 83b60 | 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))........... |
| 83b80 | 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 6c 2d | ..(if.backend.(setq-local.gptel- |
| 83ba0 | 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 28 | backend.backend)...............( |
| 83bc0 | 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 | message................(substitu |
| 83be0 | 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 20 20 20 20 20 20 | te-command-keys................. |
| 83c00 | 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 22 43 6f 75 6c 64 20 | (concat.................."Could. |
| 83c20 | 6e 6f 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 | not.activate.gptel.backend.\"%s\ |
| 83c40 | 22 21 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 62 | "!..".................."Switch.b |
| 83c60 | 61 63 6b 65 6e 64 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 | ackends.with.\\[universal-argume |
| 83c80 | 6e 74 5d 20 5c 5c 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 | nt].\\[gptel-send]"............. |
| 83ca0 | 20 20 20 20 20 22 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 22 29 29 0a 20 20 | .....".before.using.gptel."))... |
| 83cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 | .............backend)).......... |
| 83ce0 | 20 20 20 28 77 68 65 6e 20 6d 6f 64 65 6c 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c | ...(when.model.(setq-local.gptel |
| 83d00 | 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | -model.model)).............(when |
| 83d20 | 20 74 65 6d 70 65 72 61 74 75 72 65 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 74 | .temperature.(setq-local.gptel-t |
| 83d40 | 65 6d 70 65 72 61 74 75 72 65 20 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 20 20 20 | emperature.temperature))........ |
| 83d60 | 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 73 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 | .....(when.tokens.(setq-local.gp |
| 83d80 | 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 | tel-max-tokens.tokens))......... |
| 83da0 | 20 20 20 20 28 77 68 65 6e 20 6e 75 6d 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d | ....(when.num.(setq-local.gptel- |
| 83dc0 | 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 6e 75 6d 29 29 29 29 0a 20 20 | -num-messages-to-send.num))))... |
| 83de0 | 20 20 20 20 28 3a 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 | ....(:success.(message."gptel.ch |
| 83e00 | 61 74 20 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 | at.restored.")).......(error.(me |
| 83e20 | 73 73 61 67 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 | ssage."Could.not.restore.gptel.s |
| 83e40 | 74 61 74 65 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 | tate,.sorry!.Error:.%s".status)) |
| 83e60 | 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 6f 70 65 72 | )))..(defun.gptel-org-set-proper |
| 83e80 | 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 74 6f 72 65 | ties.(pt.&optional.msg)..."Store |
| 83ea0 | 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 69 6f 6e 20 | .the.active.gptel.configuration. |
| 83ec0 | 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 54 68 65 20 | under.the.current.heading...The. |
| 83ee0 | 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 6e 63 6c 75 | active.gptel.configuration.inclu |
| 83f00 | 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 67 65 2c 20 | des.the.current.system.message,. |
| 83f20 | 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 28 62 61 63 | language.model.and.provider.(bac |
| 83f40 | 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 67 73 20 77 | kend),.and.additional.settings.w |
| 83f60 | 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 75 72 73 6f | hen.applicable...PT.is.the.curso |
| 83f80 | 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 53 47 20 69 | r.position.by.default...If.MSG.i |
| 83fa0 | 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 20 61 20 6d | s.non-nil.(default),.display.a.m |
| 83fc0 | 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 61 63 74 69 | essage.afterwards."...(interacti |
| 83fe0 | 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 65 6e 74 72 | ve.(list.(point).t))...(org-entr |
| 84000 | 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 6c 2d 2d 6d | y-put.pt."GPTEL_MODEL".(gptel--m |
| 84020 | 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 72 67 2d 65 | odel-name.gptel-model))...(org-e |
| 84040 | 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 28 67 70 74 | ntry-put.pt."GPTEL_BACKEND".(gpt |
| 84060 | 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 29 0a | el-backend-name.gptel-backend)). |
| 84080 | 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 6c 75 65 20 | ..(unless.(equal.(default-value. |
| 840a0 | 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 6d 70 65 72 | 'gptel-temperature).gptel-temper |
| 840c0 | 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 20 22 47 50 | ature).....(org-entry-put.pt."GP |
| 840e0 | 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 20 20 20 20 | TEL_TEMPERATURE"................ |
| 84100 | 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 74 65 6d 70 | ....(number-to-string.gptel-temp |
| 84120 | 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 67 70 74 65 | erature)))...(when.(natnump.gpte |
| 84140 | 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 20 28 6f 72 | l--num-messages-to-send).....(or |
| 84160 | 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 53 53 41 47 | g-entry-put.pt."GPTEL_NUM_MESSAG |
| 84180 | 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 20 20 20 28 | ES_TO_SEND"....................( |
| 841a0 | 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 6d 65 73 73 | number-to-string.gptel--num-mess |
| 841c0 | 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 2d 70 75 74 | ages-to-send)))...(org-entry-put |
| 841e0 | 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 20 20 20 20 | .pt."GPTEL_SYSTEM".............. |
| 84200 | 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 65 0a 20 20 | ....(and-let*.((msg.(car-safe... |
| 84220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 84240 | 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 20 20 20 20 | (gptel--parse-directive......... |
| 84260 | 20 20 20 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 |
| 84280 | 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 20 20 20 20 | --system-message))))............ |
| 842a0 | 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 20 22 5c 5c | ........(string-replace."\n"."\\ |
| 842c0 | 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 74 6f 6b 65 | n".msg)))...(when.gptel-max-toke |
| 842e0 | 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 74 20 22 47 | ns.....(org-entry-put......pt."G |
| 84300 | 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 73 74 72 69 | PTEL_MAX_TOKENS".(number-to-stri |
| 84320 | 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 65 6e 20 6d | ng.gptel-max-tokens)))...(when.m |
| 84340 | 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 20 63 6f 6e | sg.....(message."Added.gptel.con |
| 84360 | 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 6e 65 2e 22 | figuration.to.current.headline." |
| 84380 | 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 73 74 61 74 | )))..(defun.gptel-org--save-stat |
| 843a0 | 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 65 20 74 6f | e.()..."Write.the.gptel.state.to |
| 843c0 | 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 72 74 69 65 | .the.Org.buffer.as.Org.propertie |
| 843e0 | 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 20 20 20 28 | s."...(org-with-wide-buffer....( |
| 84400 | 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 68 65 6e 20 | goto-char.(point-min))....(when. |
| 84420 | 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 2d 6f 70 65 | (org-at-heading-p)......(org-ope |
| 84440 | 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 2d 70 72 6f | n-line.1))....(gptel-org-set-pro |
| 84460 | 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 61 76 65 20 | perties.(point-min))....;;.Save. |
| 84480 | 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 65 63 20 28 | response.boundaries....(letrec.( |
| 844a0 | 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 6c 61 6d 62 | (write-bounds..............(lamb |
| 844c0 | 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 20 28 6c 65 | da.(attempts)................(le |
| 844e0 | 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 65 72 2d 62 | t*.((bounds.(gptel--get-buffer-b |
| 84500 | 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 20 20 3b 3b | ounds)).......................;; |
| 84520 | 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 65 67 20 65 | .first.value.of.((prop...((beg.e |
| 84540 | 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 20 20 20 20 | nd.val)...))...)................ |
| 84560 | 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 73 29 29 0a | .......(offset.(caadar.bounds)). |
| 84580 | 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 74 2d 6d 61 | ......................(offset-ma |
| 845a0 | 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 72 29 20 6f | rker.(set-marker.(make-marker).o |
| 845c0 | 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 72 67 2d 65 | ffset)))..................(org-e |
| 845e0 | 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 42 4f 55 4e | ntry-put.(point-min)."GPTEL_BOUN |
| 84600 | 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 20 20 20 20 | DS"............................. |
| 84620 | 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 2d 67 65 74 | ....(prin1-to-string.(gptel--get |
| 84640 | 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 20 20 20 20 | -buffer-bounds)))............... |
| 84660 | 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 72 2d 70 6f | ...(when.(and.(not.(=.(marker-po |
| 84680 | 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 29 29 0a 20 | sition.offset-marker).offset)).. |
| 846a0 | 20 20 20 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 3e 20 61 74 | ...........................(>.at |
| 846c0 | 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 20 20 28 66 | tempts.0))....................(f |
| 846e0 | 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 6d 70 74 73 | uncall.write-bounds.(1-.attempts |
| 84700 | 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 62 6f 75 6e | )))))))......(funcall.write-boun |
| 84720 | 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 20 72 65 73 | ds.6))))....;;;.Transforming.res |
| 84740 | 70 6f 6e 73 65 73 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 | ponses.(defun.gptel--convert-mar |
| 84760 | 6b 64 6f 77 6e 2d 3e 6f 72 67 20 28 73 74 72 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 74 72 69 | kdown->org.(str)..."Convert.stri |
| 84780 | 6e 67 20 53 54 52 20 66 72 6f 6d 20 6d 61 72 6b 64 6f 77 6e 20 74 6f 20 6f 72 67 20 6d 61 72 6b | ng.STR.from.markdown.to.org.mark |
| 847a0 | 75 70 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 76 65 72 79 20 62 61 73 69 63 20 63 6f 6e 76 65 72 | up...This.is.a.very.basic.conver |
| 847c0 | 74 65 72 20 74 68 61 74 20 68 61 6e 64 6c 65 73 20 6f 6e 6c 79 20 61 20 66 65 77 20 6d 61 72 6b | ter.that.handles.only.a.few.mark |
| 847e0 | 75 70 0a 65 6c 65 6d 65 6e 74 73 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 | up.elements."...(with-temp-buffe |
| 84800 | 72 0a 20 20 20 20 28 69 6e 73 65 72 74 20 73 74 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | r.....(insert.str).....(goto-cha |
| 84820 | 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 | r.(point-min)).....(while.(re-se |
| 84840 | 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 60 2b 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c 7d 5c | arch-forward."`+\\|\\*\\{1,2\\}\ |
| 84860 | 5c 7c 5f 5c 5c 7c 5e 23 2b 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 28 | \|_\\|^#+".nil.t).......(pcase.( |
| 84880 | 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c | match-string.0).........;;.Handl |
| 848a0 | 65 20 62 61 63 6b 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 67 75 61 72 64 | e.backticks.........((and.(guard |
| 848c0 | 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 60 29 29 20 74 69 63 6b 73 29 0a 20 | .(eq.(char-before).?`)).ticks).. |
| 848e0 | 20 20 20 20 20 20 20 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 | ........(gptel--replace-source-m |
| 84900 | 61 72 6b 65 72 20 28 6c 65 6e 67 74 68 20 74 69 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 | arker.(length.ticks))..........( |
| 84920 | 73 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 28 63 61 74 63 | save-match-data............(catc |
| 84940 | 68 20 27 62 6c 6f 63 6b 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 | h.'block-end..............(while |
| 84960 | 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 74 69 63 6b 73 20 6e 69 6c 20 74 29 0a 20 20 | .(search-forward.ticks.nil.t)... |
| 84980 | 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 63 68 | .............(unless.(or.(eq.(ch |
| 849a0 | 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 20 3f | ar-before.(match-beginning.0)).? |
| 849c0 | 60 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 65 | `)............................(e |
| 849e0 | 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | q.(char-after).?`))............. |
| 84a00 | 20 20 20 20 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 | .....(gptel--replace-source-mark |
| 84a20 | 65 72 20 28 6c 65 6e 67 74 68 20 74 69 63 6b 73 29 20 27 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | er.(length.ticks).'end)......... |
| 84a40 | 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 62 6c 6f 63 6b 2d 65 6e 64 20 6e 69 6c 29 29 | .........(throw.'block-end.nil)) |
| 84a60 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a | )))).........;;.Handle.headings. |
| 84a80 | 20 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 | ........((and.(guard.(eq.(char-b |
| 84aa0 | 65 66 6f 72 65 29 20 3f 23 29 29 20 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 28 63 | efore).?#)).heading)..........(c |
| 84ac0 | 6f 6e 64 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 5b 5b 3a 73 | ond...........((looking-at."[[:s |
| 84ae0 | 70 61 63 65 3a 5d 5d 22 29 20 20 20 3b 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a 20 20 20 | pace:]]")...;Handle.headings.... |
| 84b00 | 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 | ........(delete-region.(line-beg |
| 84b20 | 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 | inning-position).(point))....... |
| 84b40 | 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 67 74 | .....(insert.(make-string.(lengt |
| 84b60 | 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 28 28 6c 6f 6f | h.heading).?*)))...........((loo |
| 84b80 | 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b 62 65 67 69 6e 5f 73 72 63 22 29 20 3b 4f 76 65 72 65 61 67 | king-at."\\+begin_src").;Overeag |
| 84ba0 | 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 73 72 63 | er.LLM.switched.to.using.Org.src |
| 84bc0 | 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 | .blocks............(save-match-d |
| 84be0 | 61 74 61 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 23 5c 5c 2b 65 6e 64 | ata.(re-search-forward."^#\\+end |
| 84c00 | 5f 73 72 63 22 20 6e 69 6c 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 | _src".nil.t))))).........;;.Hand |
| 84c20 | 6c 65 20 65 6d 70 68 61 73 69 73 0a 20 20 20 20 20 20 20 20 28 22 2a 2a 22 20 28 63 6f 6e 64 0a | le.emphasis.........("**".(cond. |
| 84c40 | 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 74 20 22 | ...............;;.((looking-at." |
| 84c60 | 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 0a 20 20 20 | \\*\\(?:[[:word:]]\\|\s\\)").... |
| 84c80 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 | ............;;..(delete-char.1)) |
| 84ca0 | 0a 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 62 61 63 6b 20 22 | ................((looking-back." |
| 84cc0 | 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5c 6e 5d 5c 5c 7c 5c 73 5c | \\(?:[[:word:][:punct:]\n]\\|\s\ |
| 84ce0 | 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \)\\*\\{2\\}"................... |
| 84d00 | 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 29 20 33 29 20 28 | ............(max.(-.(point).3).( |
| 84d20 | 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 20 20 20 20 28 64 65 | point-min))).................(de |
| 84d40 | 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 22 2a 22 0a 20 20 | lete-char.-1)))).........("*"... |
| 84d60 | 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 6d 61 | .......(cond...........((save-ma |
| 84d80 | 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6f 72 20 28 | tch-data..............(and.(or.( |
| 84da0 | 3d 20 28 70 6f 69 6e 74 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =.(point).2).................... |
| 84dc0 | 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a | ...(looking-back."\\(?:[[:space: |
| 84de0 | 5d 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 0a 20 20 20 20 20 | ]]\\|\s\\)\\(?:_\\|\\*\\)"...... |
| 84e00 | 20 20 20 20 20 20 20 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 | ...............................( |
| 84e20 | 6d 61 78 20 28 2d 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 | max.(-.(point).2).(point-min)))) |
| 84e40 | 0a 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 6f 6f 6b 69 6e 67 | ...................(not.(looking |
| 84e60 | 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 7c 5c 73 22 29 29 29 29 0a 20 20 20 20 20 | -at."[[:space:]]\\|\s"))))...... |
| 84e80 | 20 20 20 20 20 20 3b 3b 20 50 6f 73 73 69 62 6c 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 | ......;;.Possible.beginning.of.e |
| 84ea0 | 6d 70 68 61 73 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 | mphasis............(and......... |
| 84ec0 | 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 20 | ....(save-excursion............. |
| 84ee0 | 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 | ..(when.(and.(re-search-forward. |
| 84f00 | 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a | (regexp-quote.(match-string.0)). |
| 84f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 84f40 | 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 29 20 | ............(line-end-position). |
| 84f60 | 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 6c 6f 6f | t)..........................(loo |
| 84f80 | 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 5d 5d 5c 5c 7c 5c 73 22 29 0a 20 20 20 20 20 | king-at."[[:space]]\\|\s")...... |
| 84fa0 | 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 6f 6f 6b 69 6e | ....................(not.(lookin |
| 84fc0 | 67 2d 62 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 | g-back."\\(?:[[:space]]\\|\s\\)\ |
| 84fe0 | 5c 28 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 | \(?:_\\|\\*\\)"................. |
| 85000 | 20 20 20 20 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 | ............................(max |
| 85020 | 20 28 2d 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 | .(-.(point).2).(point-min))))).. |
| 85040 | 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 20 | ...............(delete-char.-1). |
| 85060 | 28 69 6e 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 | (insert."/").t)).............(pr |
| 85080 | 6f 67 6e 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 | ogn.(delete-char.-1).(insert."/" |
| 850a0 | 29 29 29 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 | ))))...........((save-excursion. |
| 850c0 | 20 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 20 28 62 61 63 | .............(ignore-errors.(bac |
| 850e0 | 6b 77 61 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 | kward-char.2))..............(or. |
| 85100 | 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 5b 5b 3a 73 | (and.(bobp).(looking-at."\\*[[:s |
| 85120 | 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 28 6c 6f 6f | pace:]]"))..................(loo |
| 85140 | 6b 69 6e 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 | king-at."\\(?:$\\|\\`\\)\n\\*[[: |
| 85160 | 73 70 61 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 | space:]]")))............;;.Bulle |
| 85180 | 74 20 70 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 | t.point,.replace.with.hyphen.... |
| 851a0 | 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 73 65 72 74 | ........(delete-char.-1).(insert |
| 851c0 | 20 22 2d 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 | ."-")))))).....(buffer-string))) |
| 851e0 | 0a 0a 28 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 | ..(defun.gptel--replace-source-m |
| 85200 | 61 72 6b 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 | arker.(num-ticks.&optional.end). |
| 85220 | 20 20 22 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 | .."Replace.markdown.style.backti |
| 85240 | 63 6b 73 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 | cks.with.Org.equivalents...NUM-T |
| 85260 | 49 43 4b 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 | ICKS.is.the.number.of.backticks. |
| 85280 | 62 65 69 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 | being.replaced...If.END.is.true. |
| 852a0 | 74 68 65 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 | these.are.\"ending\".backticks.. |
| 852c0 | 0a 54 68 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 | .This.is.intended.for.use.in.the |
| 852e0 | 20 6d 61 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 | .markdown.to.org.stream.converte |
| 85300 | 72 2e 22 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 | r."...(let.((from.(match-beginni |
| 85320 | 6e 67 20 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 | ng.0))).....(delete-region.from. |
| 85340 | 28 70 6f 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 | (point)).....(if.(and.(=.num-tic |
| 85360 | 6b 73 20 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 | ks.3)..............(save-excursi |
| 85380 | 6f 6e 20 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 | on.(beginning-of-line).......... |
| 853a0 | 20 20 20 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 | ....................(skip-chars- |
| 853c0 | 66 6f 72 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 | forward.".\t").................. |
| 853e0 | 20 20 20 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 | ............(eq.(point).from))). |
| 85400 | 20 20 20 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 | ........(insert.(if.end."#+end_s |
| 85420 | 72 63 22 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 | rc"."#+begin_src.")).......(inse |
| 85440 | 72 74 20 22 3d 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d | rt."="))))..(defun.gptel--stream |
| 85460 | 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 74 61 72 74 2d 6d 61 | -convert-markdown->org.(start-ma |
| 85480 | 72 6b 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 4d 61 72 6b 64 6f 77 6e 20 74 6f 20 4f 72 | rker)..."Return.a.Markdown.to.Or |
| 854a0 | 67 20 63 6f 6e 76 65 72 74 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 | g.converter...This.function.pars |
| 854c0 | 65 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 4d 61 72 6b 64 6f 77 6e 20 74 65 78 74 20 74 6f 20 | es.a.stream.of.Markdown.text.to. |
| 854e0 | 4f 72 67 0a 63 6f 6e 74 69 6e 75 6f 75 73 6c 79 20 77 68 65 6e 20 69 74 20 69 73 20 63 61 6c 6c | Org.continuously.when.it.is.call |
| 85500 | 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 69 76 65 20 63 68 75 6e 6b 73 20 6f 66 20 74 68 65 | ed.with.successive.chunks.of.the |
| 85520 | 0a 74 65 78 74 20 73 74 72 65 61 6d 2e 0a 0a 53 54 41 52 54 2d 4d 41 52 4b 45 52 20 69 73 20 75 | .text.stream...START-MARKER.is.u |
| 85540 | 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e | sed.to.identify.the.correspondin |
| 85560 | 67 20 70 72 6f 63 65 73 73 20 77 68 65 6e 0a 63 6c 65 61 6e 69 6e 67 20 75 70 20 61 66 74 65 72 | g.process.when.cleaning.up.after |
| 85580 | 2e 22 0a 20 20 28 6c 65 74 72 65 63 20 28 28 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 | ."...(letrec.((in-src-block.nil) |
| 855a0 | 20 20 20 20 20 20 20 20 20 20 20 3b 65 78 70 6c 69 63 69 74 20 6e 69 6c 20 74 6f 20 61 64 64 72 | ...........;explicit.nil.to.addr |
| 855c0 | 65 73 73 20 42 55 47 20 23 31 38 33 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 2d 6f 72 67 2d | ess.BUG.#183............(in-org- |
| 855e0 | 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 65 6d 70 2d | src-block.nil)............(temp- |
| 85600 | 62 75 66 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 | buf.(generate-new-buffer.".*gpte |
| 85620 | 6c 2d 74 65 6d 70 2a 22 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 | l-temp*".t))............(start-p |
| 85640 | 74 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 69 63 | t.(make-marker))............(tic |
| 85660 | 6b 73 2d 74 6f 74 61 6c 20 30 29 20 20 20 20 20 20 3b 4d 41 59 42 45 20 73 68 6f 75 6c 64 20 77 | ks-total.0)......;MAYBE.should.w |
| 85680 | 65 20 6c 65 74 2d 62 69 6e 64 20 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 68 65 72 65 | e.let-bind.case-fold-search.here |
| 856a0 | 3f 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 0a 20 20 20 20 20 20 20 | ?............(cleanup-fn........ |
| 856c0 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 65 67 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(lambda.(beg._)............ |
| 856e0 | 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 75 61 6c 20 62 65 67 20 28 6d 61 72 6b 65 72 | ...(when.(and.(equal.beg.(marker |
| 85700 | 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 | -position.start-marker))........ |
| 85720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 | ..................(eq.(current-b |
| 85740 | 75 66 66 65 72 29 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b | uffer).(marker-buffer.start-mark |
| 85760 | 65 72 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 28 62 75 66 | er))).................(when.(buf |
| 85780 | 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 | fer-live-p.(get-buffer.temp-buf) |
| 857a0 | 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 6d 61 72 6b 65 72 20 | )...................(set-marker. |
| 857c0 | 73 74 61 72 74 2d 70 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | start-pt.nil)................... |
| 857e0 | 28 6b 69 6c 6c 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 | (kill-buffer.temp-buf))......... |
| 85800 | 20 20 20 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 | ........(remove-hook.'gptel-post |
| 85820 | 2d 72 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 29 | -response-functions.cleanup-fn)) |
| 85840 | 29 29 29 0a 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 65 | ))).....(add-hook.'gptel-post-re |
| 85860 | 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 20 | sponse-functions.cleanup-fn).... |
| 85880 | 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 6f 70 | .(lambda.(str).......(let.((noop |
| 858a0 | 2d 70 29 20 28 74 69 63 6b 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 | -p).(ticks.0)).........(with-cur |
| 858c0 | 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 | rent-buffer.(get-buffer.temp-buf |
| 858e0 | 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 20 28 67 6f 74 | )...........(save-excursion.(got |
| 85900 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e 73 65 72 74 20 73 74 72 29 | o-char.(point-max)).(insert.str) |
| 85920 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 | )...........(when.(marker-positi |
| 85940 | 6f 6e 20 73 74 61 72 74 2d 70 74 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 2d 70 74 | on.start-pt).(goto-char.start-pt |
| 85960 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 | ))...........(when.in-src-block. |
| 85980 | 28 73 65 74 71 20 74 69 63 6b 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 | (setq.ticks.ticks-total))....... |
| 859a0 | 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 20 | ....(save-excursion............. |
| 859c0 | 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 60 5c 5c 7c 5c | (while.(re-search-forward."`\\|\ |
| 859e0 | 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 6c 20 74 29 0a 20 20 | \*\\{1,2\\}\\|_\\|^#+".nil.t)... |
| 85a00 | 20 20 20 20 20 20 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 | ............(pcase.(match-string |
| 85a20 | 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 60 22 0a 20 20 20 20 20 20 20 | .0).................("`"........ |
| 85a40 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6e | ..........;;.Count.number.of.con |
| 85a60 | 73 65 63 75 74 69 76 65 20 62 61 63 6b 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | secutive.backticks.............. |
| 85a80 | 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....(backward-char)............. |
| 85aa0 | 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 28 65 | .....(while.(and.(char-after).(e |
| 85ac0 | 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | q.(char-after).?`))............. |
| 85ae0 | 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 | .......(forward-char)........... |
| 85b00 | 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 63 6c 2d 64 65 | .........(if.in-src-block.(cl-de |
| 85b20 | 63 66 20 74 69 63 6b 73 29 20 28 63 6c 2d 69 6e 63 66 20 74 69 63 6b 73 29 29 29 0a 20 20 20 20 | cf.ticks).(cl-incf.ticks)))..... |
| 85b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 76 65 72 62 61 74 69 6d | .............;;.Set.the.verbatim |
| 85b60 | 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | .state.of.the.parser............ |
| 85b80 | 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 | ......(if.(and.(eobp)........... |
| 85ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 70 65 63 69 61 6c 20 63 61 73 65 20 | ................;;.Special.case. |
| 85bc0 | 68 65 75 72 69 73 74 69 63 3a 20 49 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 65 6e 64 73 20 | heuristic:.If.the.response.ends. |
| 85be0 | 77 69 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 20 20 20 3b | with...........................; |
| 85c00 | 3b 20 5e 60 60 60 20 77 65 20 64 6f 6e 27 74 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 65 20 69 6e | ;.^```.we.don't.wait.for.more.in |
| 85c20 | 70 75 74 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 20 20 20 3b | put............................; |
| 85c40 | 3b 20 46 49 58 4d 45 3a 20 54 68 69 73 20 63 61 6e 20 68 61 76 65 20 66 61 6c 73 65 20 70 6f 73 | ;.FIXME:.This.can.have.false.pos |
| 85c60 | 69 74 69 76 65 73 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 20 | itives.......................... |
| 85c80 | 20 20 28 6e 6f 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e 6e 69 6e | ..(not.(save-excursion.(beginnin |
| 85ca0 | 67 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 20 20 | g-of-line)...................... |
| 85cc0 | 20 20 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 6f 6f 6b 69 | ..........................(looki |
| 85ce0 | 6e 67 2d 61 74 20 22 5e 60 60 60 24 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng-at."^```$"))))............... |
| 85d00 | 20 20 20 20 20 20 20 3b 3b 20 45 6e 64 20 6f 66 20 69 6e 70 75 74 20 3d 3e 20 74 68 65 72 65 20 | .......;;.End.of.input.=>.there. |
| 85d20 | 63 6f 75 6c 64 20 62 65 20 6d 6f 72 65 20 62 61 63 6b 74 69 63 6b 73 20 63 6f 6d 69 6e 67 2c 0a | could.be.more.backticks.coming,. |
| 85d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 20 77 61 | .....................;;.so.we.wa |
| 85d60 | 69 74 20 66 6f 72 20 6d 6f 72 65 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | it.for.more.input............... |
| 85d80 | 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 |
| 85da0 | 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 |
| 85dc0 | 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 57 | ing.0)))....................;;.W |
| 85de0 | 65 20 72 65 61 63 68 65 64 20 61 20 63 68 61 72 61 63 74 65 72 20 6f 74 68 65 72 20 74 68 61 6e | e.reached.a.character.other.than |
| 85e00 | 20 61 20 62 61 63 6b 74 69 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .a.backtick....................( |
| 85e20 | 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 3b 3b 20 54 69 63 6b | cond.....................;;.Tick |
| 85e40 | 73 20 62 61 6c 61 6e 63 65 64 2c 20 65 6e 64 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | s.balanced,.end.src.block....... |
| 85e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 69 63 6b 73 20 30 29 0a 20 20 20 20 20 | ..............((=.ticks.0)...... |
| 85e80 | 20 20 20 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 69 6e 2d | ................(progn.(setq.in- |
| 85ea0 | 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | src-block.nil).................. |
| 85ec0 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 | ...........(gptel--replace-sourc |
| 85ee0 | 65 2d 6d 61 72 6b 65 72 20 74 69 63 6b 73 2d 74 6f 74 61 6c 20 27 65 6e 64 29 29 29 0a 20 20 20 | e-marker.ticks-total.'end))).... |
| 85f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 6e 75 6d | .................;;.Positive.num |
| 85f20 | 62 65 72 20 6f 66 20 74 69 63 6b 73 2c 20 73 74 61 72 74 20 61 6e 20 73 72 63 20 62 6c 6f 63 6b | ber.of.ticks,.start.an.src.block |
| 85f40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 20 74 69 | .....................((and.(>.ti |
| 85f60 | 63 6b 73 20 30 29 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 | cks.0).(not.in-src-block))...... |
| 85f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 69 63 6b 73 2d 74 6f 74 61 | ................(setq.ticks-tota |
| 85fa0 | 6c 20 74 69 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 20 20 20 | l.ticks......................... |
| 85fc0 | 20 20 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...in-src-block.t).............. |
| 85fe0 | 20 20 20 20 20 20 20 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 | ........(gptel--replace-source-m |
| 86000 | 61 72 6b 65 72 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 20 20 | arker.ticks-total))............. |
| 86020 | 20 20 20 20 20 20 20 20 3b 3b 20 4e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 | ........;;.Negative.number.of.ti |
| 86040 | 63 6b 73 20 6f 72 20 69 6e 20 61 20 73 72 63 20 62 6c 6f 63 6b 20 61 6c 72 65 61 64 79 2c 0a 20 | cks.or.in.a.src.block.already,.. |
| 86060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 69 63 6b | ...................;;.reset.tick |
| 86080 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 74 | s.....................(t.(setq.t |
| 860a0 | 69 63 6b 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | icks.ticks-total)))))........... |
| 860c0 | 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 20 61 6e 64 20 6d 69 73 | ......;;.Handle.headings.and.mis |
| 860e0 | 67 75 69 64 65 64 20 23 2b 62 65 67 69 6e 5f 73 72 63 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 | guided.#+begin_src.text......... |
| 86100 | 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 67 75 61 72 64 20 28 61 6e 64 20 28 65 71 20 28 63 | ........((and.(guard.(and.(eq.(c |
| 86120 | 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 23 29 20 28 6f 72 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d | har-before).?#).(or.(not.in-src- |
| 86140 | 62 6c 6f 63 6b 29 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 | block).in-org-src-block)))...... |
| 86160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 | .................heading)....... |
| 86180 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 0a | ...........(if.in-org-src-block. |
| 861a0 | 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 77 65 20 61 72 | .....................;;.If.we.ar |
| 861c0 | 65 20 69 6e 73 69 64 65 20 61 6e 20 4f 72 67 2d 73 74 79 6c 65 20 73 72 63 20 62 6c 6f 63 6b 2c | e.inside.an.Org-style.src.block, |
| 861e0 | 20 6c 6f 6f 6b 20 66 6f 72 20 23 2b 65 6e 64 5f 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .look.for.#+end_src............. |
| 86200 | 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 20 | .........(cond.................. |
| 86220 | 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 29 29 | .....((<.(-.(point-max).(point)) |
| 86240 | 20 38 29 20 3b 6e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 63 | .8).;not.enough.information.to.c |
| 86260 | 6c 6f 73 65 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | lose.Org.src.block.............. |
| 86280 | 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 65 74 2d 6d | ..........(setq.noop-p.t).(set-m |
| 862a0 | 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 69 6e 67 20 | arker.start-pt.(match-beginning. |
| 862c0 | 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 20 20 28 28 6c 6f 6f | 0))).......................((loo |
| 862e0 | 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b 65 6e 64 5f 73 72 63 22 29 20 3b 43 6c 6f 73 65 20 4f 72 67 | king-at."\\+end_src").;Close.Org |
| 86300 | 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 20 20 20 20 20 | .src.block...................... |
| 86320 | 20 20 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 20 69 6e 2d 6f 72 67 2d | ..(setq.in-src-block.nil.in-org- |
| 86340 | 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | src-block.nil)))................ |
| 86360 | 20 20 20 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 63 68 65 63 6b 20 66 6f 72 20 4d 61 72 6b 64 | ....;;.Otherwise.check.for.Markd |
| 86380 | 6f 77 6e 20 68 65 61 64 69 6e 67 73 2c 20 6f 72 20 66 6f 72 20 23 2b 62 65 67 69 6e 5f 73 72 63 | own.headings,.or.for.#+begin_src |
| 863a0 | 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 20 | ....................(cond....... |
| 863c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 6f 62 70 29 20 20 20 20 20 20 20 3b 20 4e 6f | ..............((eobp).......;.No |
| 863e0 | 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 68 | t.enough.information.about.the.h |
| 86400 | 65 61 64 69 6e 67 20 79 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eading.yet...................... |
| 86420 | 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 |
| 86440 | 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)))...... |
| 86460 | 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 5b 5b 3a | ...............((looking-at."[[: |
| 86480 | 73 70 61 63 65 3a 5d 5d 22 29 20 3b 20 43 6f 6e 76 65 72 74 20 6d 61 72 6b 64 6f 77 6e 20 68 65 | space:]]").;.Convert.markdown.he |
| 864a0 | 61 64 69 6e 67 20 74 6f 20 4f 72 67 20 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | ading.to.Org.heading............ |
| 864c0 | 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 6c 69 6e 65 2d 62 | ..........(delete-region.(line-b |
| 864e0 | 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 | eginning-position).(point))..... |
| 86500 | 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 28 6d 61 6b 65 2d 73 | .................(insert.(make-s |
| 86520 | 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 29 29 29 0a 20 20 20 | tring.(length.heading).?*))).... |
| 86540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 28 2d 20 28 70 6f 69 6e 74 2d 6d | .................((<.(-.(point-m |
| 86560 | 61 78 29 20 28 70 6f 69 6e 74 29 29 20 31 31 29 20 3b 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 | ax).(point)).11).;Not.enough.inf |
| 86580 | 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 69 66 20 4f 72 67 20 73 72 63 20 62 6c 6f | ormation.to.check.if.Org.src.blo |
| 865a0 | 63 6b 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 | ck......................(setq.no |
| 865c0 | 6f 70 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 | op-p.t).(set-marker.start-pt.(ma |
| 865e0 | 74 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 20 | tch-beginning.0))).............. |
| 86600 | 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 65 67 69 6e 5f 73 72 | .......((looking-at."\\+begin_sr |
| 86620 | 63 20 22 29 20 3b 4f 76 65 72 65 61 67 65 72 20 4c 4c 4d 20 73 77 69 74 63 68 65 64 20 74 6f 20 | c.").;Overeager.LLM.switched.to. |
| 86640 | 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 20 20 20 20 20 20 | using.Org.src.blocks............ |
| 86660 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 20 69 | ..........(setq.in-src-block.t.i |
| 86680 | 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | n-org-src-block.t))))).......... |
| 866a0 | 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 6f 74 68 65 72 20 63 68 61 72 73 3a 20 65 6d | .......;;.Handle.other.chars:.em |
| 866c0 | 70 68 61 73 69 73 2c 20 62 6f 6c 64 20 61 6e 64 20 62 75 6c 6c 65 74 20 69 74 65 6d 73 0a 20 20 | phasis,.bold.and.bullet.items... |
| 866e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 2a 2a 22 20 28 67 75 61 72 64 20 | ..............((and."**".(guard. |
| 86700 | 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)))............ |
| 86720 | 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 20 20 3b 3b | ......(cond...................;; |
| 86740 | 20 54 4f 44 4f 20 4e 6f 74 20 73 75 72 65 20 77 68 79 20 74 68 69 73 20 62 72 61 6e 63 68 20 77 | .TODO.Not.sure.why.this.branch.w |
| 86760 | 61 73 20 6e 65 65 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 | as.needed...................;;.( |
| 86780 | 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 72 64 3a 5d 5d 5c | (looking-at."\\*\\(?:[[:word:]]\ |
| 867a0 | 5c 7c 5c 73 5c 5c 29 22 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 0a 20 20 20 20 | \|\s\\)").(delete-char.1))...... |
| 867c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 69 6e 67 20 62 61 63 6b 20 61 74 | ..............;;.Looking.back.at |
| 867e0 | 20 22 77 2a 2a 22 20 6f 72 20 22 20 2a 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."w**".or.".**"................. |
| 86800 | 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 5d | ..((looking-back."\\(?:[[:word:] |
| 86820 | 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 0a | [:punct:]\n]\\|\s\\)\\*\\{2\\}". |
| 86840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 86860 | 20 28 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 | .(max.(-.(point).3).(point-min)) |
| 86880 | 29 0a 20 20 20 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 | )....................(delete-cha |
| 868a0 | 72 20 2d 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 | r.-1)))).................((and." |
| 868c0 | 2a 22 20 28 67 75 61 72 64 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 | *".(guard.(not.in-src-block))).. |
| 868e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 6f 62 70 29 0a 20 20 20 20 20 | ................(if.(eobp)...... |
| 86900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e | ................;;.Not.enough.in |
| 86920 | 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 22 2a 22 20 79 65 74 0a 20 20 20 20 | formation.about.the."*".yet..... |
| 86940 | 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 73 65 74 71 20 6e 6f | .................(progn.(setq.no |
| 86960 | 6f 70 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 | op-p.t).(set-marker.start-pt.(ma |
| 86980 | 74 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 20 | tch-beginning.0))).............. |
| 869a0 | 20 20 20 20 20 20 3b 3b 20 22 2a 22 20 69 73 20 65 69 74 68 65 72 20 65 6d 70 68 61 73 69 73 20 | ......;;."*".is.either.emphasis. |
| 869c0 | 6f 72 20 61 20 62 75 6c 6c 65 74 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | or.a.bullet.point............... |
| 869e0 | 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 20 20 | .....(save-match-data........... |
| 86a00 | 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 20 20 | ...........(save-excursion...... |
| 86a20 | 20 20 20 20 20 20 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 | ..................(ignore-errors |
| 86a40 | 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(backward-char.2))............. |
| 86a60 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 20 20 20 20 20 3b 20 41 74 20 62 6f 62 2c 20 | ...........(cond......;.At.bob,. |
| 86a80 | 75 6e 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 | underscore/asterisk.followed.by. |
| 86aa0 | 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 20 20 20 20 28 28 6f | word.........................((o |
| 86ac0 | 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 28 3f 3a | r.(and.(bobp).(looking-at."\\(?: |
| 86ae0 | 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c 5c 28 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a | _\\|\\*\\)\\([^[:space:][:punct: |
| 86b00 | 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ]]\\|$\\)")).................... |
| 86b20 | 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 77 6f 72 64 20 66 6f 6c | ..........(looking-at.;.word.fol |
| 86b40 | 6c 6f 77 65 64 20 62 79 20 75 6e 64 65 72 73 63 6f 72 65 2f 61 73 74 65 72 69 73 6b 0a 20 20 20 | lowed.by.underscore/asterisk.... |
| 86b60 | 20 20 20 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 5b 5e 5b 3a | ..........................."[^[: |
| 86b80 | 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5c 6e 5d 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c | space:][:punct:]\n]\\(?:_\\|\\*\ |
| 86ba0 | 5c 29 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 24 5c | \)\\(?:[[:space:][:punct:]]\\|$\ |
| 86bc0 | 5c 29 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 | \)")............................ |
| 86be0 | 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 75 6e 64 65 72 73 63 6f 72 65 2f 61 73 74 65 72 | ..(looking-at.;.underscore/aster |
| 86c00 | 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 20 20 20 | isk.followed.by.word............ |
| 86c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 | ..................."\\(?:[[:spac |
| 86c40 | 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c | e:][:punct:]]\\)\\(?:_\\|\\*\\)\ |
| 86c60 | 5c 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 | \([^[:space:][:punct:]]\\|$\\)") |
| 86c80 | 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 3b 3b 20 45 6d | )..........................;;.Em |
| 86ca0 | 70 68 61 73 69 73 2c 20 72 65 70 6c 61 63 65 20 77 69 74 68 20 73 6c 61 73 68 65 73 0a 20 20 20 | phasis,.replace.with.slashes.... |
| 86cc0 | 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 63 | ......................(forward-c |
| 86ce0 | 68 61 72 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 | har.(if.(bobp).1.2)).(delete-cha |
| 86d00 | 72 20 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r.-1).(insert."/"))............. |
| 86d20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 72 20 28 61 6e 64 20 28 62 6f 62 70 29 20 28 6c 6f | ............((or.(and.(bobp).(lo |
| 86d40 | 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 29 0a 20 20 20 20 | oking-at."\\*[[:space:]]"))..... |
| 86d60 | 20 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 6f 6f 6b 69 6e | .........................(lookin |
| 86d80 | 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 |
| 86da0 | 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 20 20 20 20 20 20 | ce:]]"))........................ |
| 86dc0 | 20 20 3b 3b 20 42 75 6c 6c 65 74 20 70 6f 69 6e 74 2c 20 72 65 70 6c 61 63 65 20 77 69 74 68 20 | ..;;.Bullet.point,.replace.with. |
| 86de0 | 68 79 70 68 65 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 | hyphen.......................... |
| 86e00 | 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 28 69 66 20 28 62 6f 62 70 29 20 31 20 32 29 29 20 28 | (forward-char.(if.(bobp).1.2)).( |
| 86e20 | 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 22 29 29 29 29 29 | delete-char.-1).(insert."-"))))) |
| 86e40 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6e 6f 6f 70 2d 70 0a 20 20 20 20 20 | )))))...........(if.noop-p...... |
| 86e60 | 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 70 6f 69 6e | .........(buffer-substring.(poin |
| 86e80 | 74 29 20 73 74 61 72 74 2d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 | t).start-pt).............(prog1. |
| 86ea0 | 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 | (buffer-substring.(point).(point |
| 86ec0 | 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 28 73 65 74 2d 6d | -max))....................(set-m |
| 86ee0 | 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 | arker.start-pt.(point-max))))))) |
| 86f00 | 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 3b 3b 3b 20 67 70 74 | ))..(provide.'gptel-org).;;;.gpt |
| 86f20 | 65 6c 2d 6f 72 67 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 | el-org.el.ends.here............. |
| 86f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 86f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 86f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 86fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 86fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 86fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87000 | 67 70 74 65 6c 2d 30 2e 39 2e 38 2f 2e 65 6c 70 61 69 67 6e 6f 72 65 00 00 00 00 00 00 00 00 00 | gptel-0.9.8/.elpaignore......... |
| 87020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87060 | 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 |
| 87080 | 30 30 30 30 30 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 34 32 31 00 20 30 00 00 00 | 0000030.00000000000.013421..0... |
| 870a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 870c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 870e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87100 | 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................... |
| 87120 | 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................... |
| 87140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 871a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 871c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 871e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87200 | 74 65 73 74 0a 2e 67 69 74 68 75 62 0a 2e 65 6c 70 61 69 67 6f 72 65 0a 00 00 00 00 00 00 00 00 | test..github..elpaigore......... |
| 87220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 872a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 872c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 872e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 873a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 873c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 873e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 874a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 874c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 874e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 875a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 875c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 875e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 876a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 876c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 876e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 877a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 877c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 877e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 878a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 878c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 878e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 879a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 879c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 879e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 87fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 880a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 880c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 880e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 881a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 881c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 881e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 882a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 882c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 882e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 883a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 883c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 883e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 884a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 884c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 884e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 885a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 885c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 885e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 886a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 886c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 886e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 887a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 887c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 887e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 888a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 888c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 888e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 889a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 889c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 889e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 88fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 890a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 890c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 890e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 891a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 891c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 891e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 892a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 892c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 892e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 893a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 893c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 893e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 894a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 894c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 894e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 895a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 895c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 895e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 896a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 896c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 896e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 89780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 897a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 897c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 897e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |