| ofs | hex dump | ascii |
|---|
| 0000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/.................... |
| 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 33 00 20 35 00 00 00 | 0000000.00000000000.011303..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 39 2f 52 45 41 44 4d 45 2e 6f 72 67 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/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 36 34 33 30 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 36 31 00 20 30 00 00 00 | 0264303.00000000000.012761..0... |
| 02a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 02e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0300 | 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ustar...root................... |
| 0320 | 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .........root................... |
| 0340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 03e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 0400 | 23 2b 74 69 74 6c 65 3a 20 67 70 74 65 6c 3a 20 41 20 73 69 6d 70 6c 65 20 4c 4c 4d 20 63 6c 69 | #+title:.gptel:.A.simple.LLM.cli |
| 0420 | 65 6e 74 20 66 6f 72 20 45 6d 61 63 73 0a 0a 5b 5b 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f | ent.for.Emacs..[[https://elpa.no |
| 0440 | 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f 67 70 74 65 6c 2e 68 74 6d 6c 5d 5b 66 69 6c 65 | ngnu.org/nongnu/gptel.html][file |
| 0460 | 3a 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2f | :https://elpa.nongnu.org/nongnu/ |
| 0480 | 67 70 74 65 6c 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e | gptel.svg]].[[https://elpa.nongn |
| 04a0 | 75 2e 6f 72 67 2f 6e 6f 6e 67 6e 75 2d 64 65 76 65 6c 2f 67 70 74 65 6c 2e 68 74 6d 6c 5d 5b 66 | u.org/nongnu-devel/gptel.html][f |
| 04c0 | 69 6c 65 3a 68 74 74 70 73 3a 2f 2f 65 6c 70 61 2e 6e 6f 6e 67 6e 75 2e 6f 72 67 2f 6e 6f 6e 67 | ile:https://elpa.nongnu.org/nong |
| 04e0 | 6e 75 2d 64 65 76 65 6c 2f 67 70 74 65 6c 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 73 | nu-devel/gptel.svg]].[[https://s |
| 0500 | 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 67 70 74 65 6c 5d 5b 66 69 6c 65 3a 68 74 | table.melpa.org/#/gptel][file:ht |
| 0520 | 74 70 73 3a 2f 2f 73 74 61 62 6c 65 2e 6d 65 6c 70 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f | tps://stable.melpa.org/packages/ |
| 0540 | 67 70 74 65 6c 2d 62 61 64 67 65 2e 73 76 67 5d 5d 0a 5b 5b 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 | gptel-badge.svg]].[[https://melp |
| 0560 | 61 2e 6f 72 67 2f 23 2f 67 70 74 65 6c 5d 5b 66 69 6c 65 3a 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 | a.org/#/gptel][file:https://melp |
| 0580 | 61 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2f 67 70 74 65 6c 2d 62 61 64 67 65 2e 73 76 67 5d 5d | a.org/packages/gptel-badge.svg]] |
| 05a0 | 0a 0a 67 70 74 65 6c 20 69 73 20 61 20 73 69 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 | ..gptel.is.a.simple.Large.Langua |
| 05c0 | 67 65 20 4d 6f 64 65 6c 20 63 68 61 74 20 63 6c 69 65 6e 74 20 66 6f 72 20 45 6d 61 63 73 2c 20 | ge.Model.chat.client.for.Emacs,. |
| 05e0 | 77 69 74 68 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 20 6d 6f 64 65 6c 73 | with.support.for.multiple.models |
| 0600 | 20 61 6e 64 20 62 61 63 6b 65 6e 64 73 2e 20 20 49 74 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 | .and.backends...It.works.in.the. |
| 0620 | 73 70 69 72 69 74 20 6f 66 20 45 6d 61 63 73 2c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 61 6e | spirit.of.Emacs,.available.at.an |
| 0640 | 79 20 74 69 6d 65 20 61 6e 64 20 75 6e 69 66 6f 72 6d 6c 79 20 69 6e 20 61 6e 79 20 62 75 66 66 | y.time.and.uniformly.in.any.buff |
| 0660 | 65 72 2e 0a 0a 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 | er...*General.usage*:.([[https:/ |
| 0680 | 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 |
| 06a0 | 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 |
| 06c0 | 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 |
| 06e0 | 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 |
| 0700 | 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 |
| 0720 | 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 |
| 0740 | 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 |
| 0760 | 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 |
| 0780 | 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. |
| 07a0 | 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 |
| 07c0 | 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 |
| 07e0 | 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. |
| 0800 | 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 2a 54 6f 6f 6c 20 75 73 65 2a 0a 0a 23 2b 68 74 6d 6c | #+html:.</p>..*Tool.use*..#+html |
| 0820 | 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 69 74 | :.<p.align="center">.https://git |
| 0840 | 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 73 2f | hub.com/user-attachments/assets/ |
| 0860 | 35 66 39 39 33 36 35 39 2d 34 63 66 64 2d 34 39 66 61 2d 62 35 63 64 2d 31 39 63 35 35 37 36 36 | 5f993659-4cfd-49fa-b5cd-19c55766 |
| 0880 | 62 39 62 32 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c | b9b2.#+html:.</p>..#+html:.<p.al |
| 08a0 | 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | ign="center">.https://github.com |
| 08c0 | 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 38 66 35 37 63 32 30 | /user-attachments/assets/8f57c20 |
| 08e0 | 62 2d 65 31 62 30 2d 34 64 38 36 2d 62 39 37 32 2d 66 34 36 66 62 39 30 61 65 31 65 37 0a 23 2b | b-e1b0-4d86-b972-f46fb90ae1e7.#+ |
| 0900 | 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 53 65 65 20 61 6c 73 6f 20 5b 5b 68 74 74 70 73 3a 2f 2f 79 | html:.</p>..See.also.[[https://y |
| 0920 | 6f 75 74 75 2e 62 65 2f 67 31 56 4d 47 68 43 35 67 52 55 5d 5b 74 68 69 73 20 79 6f 75 74 75 62 | outu.be/g1VMGhC5gRU][this.youtub |
| 0940 | 65 20 64 65 6d 6f 20 28 32 20 6d 69 6e 75 74 65 73 29 5d 5d 20 62 79 20 41 72 6d 69 6e 20 44 61 | e.demo.(2.minutes)]].by.Armin.Da |
| 0960 | 72 76 69 73 68 2e 0a 0a 23 20 2a 4d 65 64 69 61 20 73 75 70 70 6f 72 74 2a 0a 0a 23 20 23 2b 68 | rvish...#.*Media.support*..#.#+h |
| 0980 | 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 3e 0a 23 20 68 74 74 70 73 3a | tml:.<p.align="center">.#.https: |
| 09a0 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 | //github.com/user-attachments/as |
| 09c0 | 73 65 74 73 2f 31 66 64 39 34 37 65 31 2d 32 32 36 62 2d 34 62 65 32 2d 62 63 36 38 2d 37 62 32 | sets/1fd947e1-226b-4be2-bc68-7b2 |
| 09e0 | 32 62 32 65 33 32 31 35 66 0a 23 20 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 23 20 2a 4d 75 6c | 2b2e3215f.#.#+html:.</p>..#.*Mul |
| 0a00 | 74 69 2d 4c 4c 4d 20 73 75 70 70 6f 72 74 20 64 65 6d 6f 2a 3a 0a 0a 23 20 68 74 74 70 73 3a 2f | ti-LLM.support.demo*:..#.https:/ |
| 0a20 | 2f 67 69 74 68 75 62 2d 70 72 6f 64 75 63 74 69 6f 6e 2d 75 73 65 72 2d 61 73 73 65 74 2d 36 32 | /github-production-user-asset-62 |
| 0a40 | 31 30 64 66 2e 73 33 2e 61 6d 61 7a 6f 6e 61 77 73 2e 63 6f 6d 2f 38 36 30 37 35 33 32 2f 32 37 | 10df.s3.amazonaws.com/8607532/27 |
| 0a60 | 38 38 35 34 30 32 34 2d 61 65 31 33 33 36 63 34 2d 35 62 38 37 2d 34 31 66 32 2d 38 33 65 39 2d | 8854024-ae1336c4-5b87-41f2-83e9- |
| 0a80 | 65 34 31 35 33 34 39 64 36 61 34 33 2e 6d 70 34 0a 0a 2d 2d 2d 2d 2d 2d 0a 0a 2d 20 49 6e 74 65 | e415349d6a43.mp4..------..-.Inte |
| 0aa0 | 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 20 | ract.with.LLMs.from.anywhere.in. |
| 0ac0 | 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 75 | Emacs.(any.buffer,.shell,.minibu |
| 0ae0 | 66 66 65 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 | ffer,.wherever)..-.LLM.responses |
| 0b00 | 20 61 72 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 | .are.in.Markdown.or.Org.markup.. |
| 0b20 | 2d 20 53 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 | -.Supports.multiple.independent. |
| 0b40 | 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2c 20 6f 6e 65 2d 6f 66 66 20 61 64 20 68 6f 63 20 69 6e | conversations,.one-off.ad.hoc.in |
| 0b60 | 74 65 72 61 63 74 69 6f 6e 73 20 61 6e 64 20 61 6e 79 74 68 69 6e 67 20 69 6e 20 62 65 74 77 65 | teractions.and.anything.in.betwe |
| 0b80 | 65 6e 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 74 6f 6f 6c 2d 75 73 65 20 74 6f 20 65 71 75 69 70 | en..-.Supports.tool-use.to.equip |
| 0ba0 | 20 4c 4c 4d 73 20 77 69 74 68 20 61 67 65 6e 74 69 63 20 63 61 70 61 62 69 6c 69 74 69 65 73 2e | .LLMs.with.agentic.capabilities. |
| 0bc0 | 0a 2d 20 53 75 70 70 6f 72 74 73 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 6f 74 6f 63 | .-.Supports.Model.Context.Protoc |
| 0be0 | 6f 6c 20 28 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 75 73 69 6e 67 20 5b 5b 68 74 74 | ol.(MCP).integration.using.[[htt |
| 0c00 | 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 69 7a 71 77 65 72 73 63 6f 74 74 2f 6d 63 70 | ps://github.com/lizqwerscott/mcp |
| 0c20 | 2e 65 6c 5d 5b 6d 63 70 2e 65 6c 5d 5d 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 6d 75 6c 74 69 2d | .el][mcp.el]]..-.Supports.multi- |
| 0c40 | 6d 6f 64 61 6c 20 69 6e 70 75 74 20 28 69 6e 63 6c 75 64 65 20 69 6d 61 67 65 73 2c 20 64 6f 63 | modal.input.(include.images,.doc |
| 0c60 | 75 6d 65 6e 74 73 29 2e 0a 2d 20 53 75 70 70 6f 72 74 73 20 22 72 65 61 73 6f 6e 69 6e 67 22 20 | uments)..-.Supports."reasoning". |
| 0c80 | 63 6f 6e 74 65 6e 74 20 69 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 2d 20 53 61 76 65 | content.in.LLM.responses..-.Save |
| 0ca0 | 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 |
| 0cc0 | 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. |
| 0ce0 | 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 |
| 0d00 | 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 |
| 0d20 | 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 |
| 0d40 | 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 |
| 0d60 | 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 |
| 0d80 | 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 |
| 0da0 | 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 |
| 0dc0 | 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 |
| 0de0 | 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 |
| 0e00 | 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. |
| 0e20 | 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 |
| 0e40 | 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 |
| 0e60 | 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: |
| 0e80 | 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 |
| 0ea0 | 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] |
| 0ec0 | 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. |
| 0ee0 | 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. |
| 0f00 | 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 |
| 0f20 | 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. |
| 0f40 | 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 69 6e 73 74 61 | ..**.Contents.:toc:...-.[[#insta |
| 0f60 | 6c 6c 61 74 69 6f 6e 5d 5b 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b | llation][Installation]].....-.[[ |
| 0f80 | 23 73 74 72 61 69 67 68 74 5d 5b 53 74 72 61 69 67 68 74 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6d | #straight][Straight]].....-.[[#m |
| 0fa0 | 61 6e 75 61 6c 5d 5b 4d 61 6e 75 61 6c 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 64 6f 6f 6d 2d 65 6d | anual][Manual]].....-.[[#doom-em |
| 0fc0 | 61 63 73 5d 5b 44 6f 6f 6d 20 45 6d 61 63 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 73 70 61 63 65 | acs][Doom.Emacs]].....-.[[#space |
| 0fe0 | 6d 61 63 73 5d 5b 53 70 61 63 65 6d 61 63 73 5d 5d 0a 20 20 2d 20 5b 5b 23 73 65 74 75 70 5d 5b | macs][Spacemacs]]...-.[[#setup][ |
| 1000 | 53 65 74 75 70 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 63 68 61 74 67 70 74 5d 5b 43 68 61 74 47 50 | Setup]].....-.[[#chatgpt][ChatGP |
| 1020 | 54 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6f 74 68 65 72 2d 6c 6c 6d 2d 62 61 63 6b 65 6e 64 73 5d | T]].....-.[[#other-llm-backends] |
| 1040 | 5b 4f 74 68 65 72 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b | [Other.LLM.backends]].......-.[[ |
| 1060 | 23 6f 70 74 69 6f 6e 61 6c 2d 73 65 63 75 72 69 6e 67 2d 61 70 69 2d 6b 65 79 73 2d 77 69 74 68 | #optional-securing-api-keys-with |
| 1080 | 2d 61 75 74 68 69 6e 66 6f 5d 5b 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 63 75 72 69 6e 67 20 41 | -authinfo][(Optional).Securing.A |
| 10a0 | 50 49 20 6b 65 79 73 20 77 69 74 68 20 3d 61 75 74 68 69 6e 66 6f 3d 5d 5d 0a 20 20 20 20 20 20 | PI.keys.with.=authinfo=]]....... |
| 10c0 | 2d 20 5b 5b 23 61 7a 75 72 65 5d 5b 41 7a 75 72 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 | -.[[#azure][Azure]].......-.[[#g |
| 10e0 | 70 74 34 61 6c 6c 5d 5b 47 50 54 34 41 6c 6c 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6f 6c 6c | pt4all][GPT4All]].......-.[[#oll |
| 1100 | 61 6d 61 5d 5b 4f 6c 6c 61 6d 61 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6f 70 65 6e 2d 77 65 | ama][Ollama]].......-.[[#open-we |
| 1120 | 62 75 69 5d 5b 4f 70 65 6e 20 57 65 62 55 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 65 6d | bui][Open.WebUI]].......-.[[#gem |
| 1140 | 69 6e 69 5d 5b 47 65 6d 69 6e 69 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6c 6c 61 6d 61 63 70 | ini][Gemini]].......-.[[#llamacp |
| 1160 | 70 2d 6f 72 2d 6c 6c 61 6d 61 66 69 6c 65 5d 5b 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 4c 6c 61 | p-or-llamafile][Llama.cpp.or.Lla |
| 1180 | 6d 61 66 69 6c 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6b 61 67 69 2d 66 61 73 74 67 70 74 | mafile]].......-.[[#kagi-fastgpt |
| 11a0 | 2d 2d 73 75 6d 6d 61 72 69 7a 65 72 5d 5b 4b 61 67 69 20 28 46 61 73 74 47 50 54 20 26 20 53 75 | --summarizer][Kagi.(FastGPT.&.Su |
| 11c0 | 6d 6d 61 72 69 7a 65 72 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 74 6f 67 65 74 68 65 72 61 | mmarizer)]].......-.[[#togethera |
| 11e0 | 69 5d 5b 74 6f 67 65 74 68 65 72 2e 61 69 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 6e 79 73 | i][together.ai]].......-.[[#anys |
| 1200 | 63 61 6c 65 5d 5b 41 6e 79 73 63 61 6c 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 70 65 72 70 | cale][Anyscale]].......-.[[#perp |
| 1220 | 6c 65 78 69 74 79 5d 5b 50 65 72 70 6c 65 78 69 74 79 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 | lexity][Perplexity]].......-.[[# |
| 1240 | 61 6e 74 68 72 6f 70 69 63 2d 63 6c 61 75 64 65 5d 5b 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 | anthropic-claude][Anthropic.(Cla |
| 1260 | 75 64 65 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 72 6f 71 5d 5b 47 72 6f 71 5d 5d 0a 20 | ude)]].......-.[[#groq][Groq]].. |
| 1280 | 20 20 20 20 20 2d 20 5b 5b 23 6d 69 73 74 72 61 6c 2d 6c 65 2d 63 68 61 74 5d 5b 4d 69 73 74 72 | .....-.[[#mistral-le-chat][Mistr |
| 12a0 | 61 6c 20 4c 65 20 43 68 61 74 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6f 70 65 6e 72 6f 75 74 | al.Le.Chat]].......-.[[#openrout |
| 12c0 | 65 72 5d 5b 4f 70 65 6e 52 6f 75 74 65 72 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 70 72 69 76 | er][OpenRouter]].......-.[[#priv |
| 12e0 | 61 74 65 67 70 74 5d 5b 50 72 69 76 61 74 65 47 50 54 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 | ategpt][PrivateGPT]].......-.[[# |
| 1300 | 64 65 65 70 73 65 65 6b 5d 5b 44 65 65 70 53 65 65 6b 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 | deepseek][DeepSeek]].......-.[[# |
| 1320 | 73 61 6d 62 61 6e 6f 76 61 2d 64 65 65 70 73 65 65 6b 5d 5b 53 61 6d 62 61 6e 6f 76 61 20 28 44 | sambanova-deepseek][Sambanova.(D |
| 1340 | 65 65 70 73 65 65 6b 29 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 63 65 72 65 62 72 61 73 5d 5b | eepseek)]].......-.[[#cerebras][ |
| 1360 | 43 65 72 65 62 72 61 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 69 74 68 75 62 2d 6d 6f 64 | Cerebras]].......-.[[#github-mod |
| 1380 | 65 6c 73 5d 5b 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 | els][Github.Models]].......-.[[# |
| 13a0 | 6e 6f 76 69 74 61 2d 61 69 5d 5b 4e 6f 76 69 74 61 20 41 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b | novita-ai][Novita.AI]].......-.[ |
| 13c0 | 5b 23 78 61 69 5d 5b 78 41 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 69 6d 6c 2d 61 70 69 | [#xai][xAI]].......-.[[#aiml-api |
| 13e0 | 5d 5b 41 49 2f 4d 4c 20 41 50 49 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 67 69 74 68 75 62 2d | ][AI/ML.API]].......-.[[#github- |
| 1400 | 63 6f 70 69 6c 6f 74 63 68 61 74 5d 5b 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 5d | copilotchat][GitHub.CopilotChat] |
| 1420 | 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 77 73 2d 62 65 64 72 6f 63 6b 5d 5b 41 57 53 20 42 65 | ].......-.[[#aws-bedrock][AWS.Be |
| 1440 | 64 72 6f 63 6b 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 6d 6f 6f 6e 73 68 6f 74 2d 6b 69 6d 69 | drock]].......-.[[#moonshot-kimi |
| 1460 | 5d 5b 4d 6f 6f 6e 73 68 6f 74 20 28 4b 69 6d 69 29 5d 5d 0a 20 20 2d 20 5b 5b 23 75 73 61 67 65 | ][Moonshot.(Kimi)]]...-.[[#usage |
| 1480 | 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 65 72 | ][Usage]].....-.[[#in-any-buffer |
| 14a0 | 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 2d 61 | ][In.any.buffer:]].....-.[[#in-a |
| 14c0 | 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 65 64 | -dedicated-chat-buffer][In.a.ded |
| 14e0 | 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 5b 5b | icated.chat.buffer:]].......-.[[ |
| 1500 | 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 6e 74 | #including-media-images-document |
| 1520 | 73 2d 6f 72 2d 70 6c 61 69 6e 2d 74 65 78 74 2d 66 69 6c 65 73 2d 77 69 74 68 2d 72 65 71 75 65 | s-or-plain-text-files-with-reque |
| 1540 | 73 74 73 5d 5b 49 6e 63 6c 75 64 69 6e 67 20 6d 65 64 69 61 20 28 69 6d 61 67 65 73 2c 20 64 6f | sts][Including.media.(images,.do |
| 1560 | 63 75 6d 65 6e 74 73 20 6f 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 29 20 77 69 74 | cuments.or.plain-text.files).wit |
| 1580 | 68 20 72 65 71 75 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 | h.requests]].......-.[[#save-and |
| 15a0 | 2d 72 65 73 74 6f 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 | -restore-your-chat-sessions][Sav |
| 15c0 | 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 73 69 6f 6e 73 | e.and.restore.your.chat.sessions |
| 15e0 | 5d 5d 0a 20 20 20 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 | ]].....-.[[#setting-options-back |
| 1600 | 65 6e 64 2d 6d 6f 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 | end-model-request-parameters-sys |
| 1620 | 74 65 6d 2d 70 72 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 | tem-prompts-and-more][Setting.op |
| 1640 | 74 69 6f 6e 73 20 28 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 2c 20 72 65 71 75 65 73 74 20 70 | tions.(backend,.model,.request.p |
| 1660 | 61 72 61 6d 65 74 65 72 73 2c 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 6d 6f | arameters,.system.prompts.and.mo |
| 1680 | 72 65 29 5d 5d 0a 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 | re)]].....-.[[#include-more-cont |
| 16a0 | 65 78 74 2d 77 69 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 | ext-with-requests][Include.more. |
| 16c0 | 63 6f 6e 74 65 78 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 | context.with.requests]].....-.[[ |
| 16e0 | 23 68 61 6e 64 6c 65 2d 72 65 61 73 6f 6e 69 6e 67 2d 63 6f 6e 74 65 6e 74 5d 5b 48 61 6e 64 6c | #handle-reasoning-content][Handl |
| 1700 | 65 20 22 72 65 61 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 | e."reasoning".content]].....-.[[ |
| 1720 | 23 74 6f 6f 6c 2d 75 73 65 5d 5b 54 6f 6f 6c 20 75 73 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b | #tool-use][Tool.use]].......-.[[ |
| 1740 | 23 64 65 66 69 6e 69 6e 67 2d 67 70 74 65 6c 2d 74 6f 6f 6c 73 5d 5b 44 65 66 69 6e 69 6e 67 20 | #defining-gptel-tools][Defining. |
| 1760 | 67 70 74 65 6c 20 74 6f 6f 6c 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 73 65 6c 65 63 74 69 | gptel.tools]].......-.[[#selecti |
| 1780 | 6e 67 2d 74 6f 6f 6c 73 5d 5b 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 5d 5d 0a 20 20 20 20 | ng-tools][Selecting.tools]]..... |
| 17a0 | 20 20 2d 20 5b 5b 23 6d 6f 64 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 72 6f 74 6f 63 6f 6c 2d 6d 63 | ..-.[[#model-context-protocol-mc |
| 17c0 | 70 2d 69 6e 74 65 67 72 61 74 69 6f 6e 5d 5b 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 6f | p-integration][Model.Context.Pro |
| 17e0 | 74 6f 63 6f 6c 20 28 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 | tocol.(MCP).integration]].....-. |
| 1800 | 5b 5b 23 72 65 77 72 69 74 65 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 66 69 6c 6c 2d 69 6e 2d 61 | [[#rewrite-refactor-or-fill-in-a |
| 1820 | 2d 72 65 67 69 6f 6e 5d 5b 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 20 66 69 | -region][Rewrite,.refactor.or.fi |
| 1840 | 6c 6c 20 69 6e 20 61 20 72 65 67 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 65 78 74 72 61 2d | ll.in.a.region]].....-.[[#extra- |
| 1860 | 6f 72 67 2d 6d 6f 64 65 2d 63 6f 6e 76 65 6e 69 65 6e 63 65 73 5d 5b 45 78 74 72 61 20 4f 72 67 | org-mode-conveniences][Extra.Org |
| 1880 | 20 6d 6f 64 65 20 63 6f 6e 76 65 6e 69 65 6e 63 65 73 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 69 6e | .mode.conveniences]].....-.[[#in |
| 18a0 | 74 72 6f 73 70 65 63 74 69 6f 6e 2d 65 78 61 6d 69 6e 65 2d 64 65 62 75 67 2d 6f 72 2d 6d 6f 64 | trospection-examine-debug-or-mod |
| 18c0 | 69 66 79 2d 72 65 71 75 65 73 74 73 5d 5b 49 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 28 65 78 61 | ify-requests][Introspection.(exa |
| 18e0 | 6d 69 6e 65 2c 20 64 65 62 75 67 20 6f 72 20 6d 6f 64 69 66 79 20 72 65 71 75 65 73 74 73 29 5d | mine,.debug.or.modify.requests)] |
| 1900 | 5d 0a 20 20 2d 20 5b 5b 23 66 61 71 5d 5b 46 41 51 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 63 68 61 | ]...-.[[#faq][FAQ]].....-.[[#cha |
| 1920 | 74 2d 62 75 66 66 65 72 2d 75 69 5d 5b 43 68 61 74 20 62 75 66 66 65 72 20 55 49 5d 5d 0a 20 20 | t-buffer-ui][Chat.buffer.UI]]... |
| 1940 | 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 68 65 2d 77 69 6e 64 6f 77 2d 74 6f 2d 73 63 | ....-.[[#i-want-the-window-to-sc |
| 1960 | 72 6f 6c 6c 2d 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2d 61 73 2d 74 68 65 2d 72 65 73 70 6f 6e | roll-automatically-as-the-respon |
| 1980 | 73 65 2d 69 73 2d 69 6e 73 65 72 74 65 64 5d 5b 49 20 77 61 6e 74 20 74 68 65 20 77 69 6e 64 6f | se-is-inserted][I.want.the.windo |
| 19a0 | 77 20 74 6f 20 73 63 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 | w.to.scroll.automatically.as.the |
| 19c0 | 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 5d 5d 0a 20 20 20 20 20 20 2d 20 | .response.is.inserted]].......-. |
| 19e0 | 5b 5b 23 69 2d 77 61 6e 74 2d 74 68 65 2d 63 75 72 73 6f 72 2d 74 6f 2d 6d 6f 76 65 2d 74 6f 2d | [[#i-want-the-cursor-to-move-to- |
| 1a00 | 74 68 65 2d 6e 65 78 74 2d 70 72 6f 6d 70 74 2d 61 66 74 65 72 2d 74 68 65 2d 72 65 73 70 6f 6e | the-next-prompt-after-the-respon |
| 1a20 | 73 65 2d 69 73 2d 69 6e 73 65 72 74 65 64 5d 5b 49 20 77 61 6e 74 20 74 68 65 20 63 75 72 73 6f | se-is-inserted][I.want.the.curso |
| 1a40 | 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 6d 70 74 20 61 66 74 | r.to.move.to.the.next.prompt.aft |
| 1a60 | 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 65 64 5d 5d 0a 20 20 | er.the.response.is.inserted]]... |
| 1a80 | 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 6f 2d 63 68 61 6e 67 65 2d 74 68 65 2d 66 6f | ....-.[[#i-want-to-change-the-fo |
| 1aa0 | 72 6d 61 74 74 69 6e 67 2d 6f 66 2d 74 68 65 2d 70 72 6f 6d 70 74 2d 61 6e 64 2d 6c 6c 6d 2d 72 | rmatting-of-the-prompt-and-llm-r |
| 1ac0 | 65 73 70 6f 6e 73 65 5d 5b 49 20 77 61 6e 74 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 66 6f | esponse][I.want.to.change.the.fo |
| 1ae0 | 72 6d 61 74 74 69 6e 67 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 61 6e 64 20 4c 4c 4d 20 72 | rmatting.of.the.prompt.and.LLM.r |
| 1b00 | 65 73 70 6f 6e 73 65 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 68 6f 77 2d 64 6f 65 73 2d 67 70 | esponse]].......-.[[#how-does-gp |
| 1b20 | 74 65 6c 2d 64 69 73 74 69 6e 67 75 69 73 68 2d 62 65 74 77 65 65 6e 2d 75 73 65 72 2d 70 72 6f | tel-distinguish-between-user-pro |
| 1b40 | 6d 70 74 73 2d 61 6e 64 2d 6c 6c 6d 2d 72 65 73 70 6f 6e 73 65 73 5d 5b 48 6f 77 20 64 6f 65 73 | mpts-and-llm-responses][How.does |
| 1b60 | 20 67 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 | .gptel.distinguish.between.user. |
| 1b80 | 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 3f 5d 5d 0a 20 20 20 | prompts.and.LLM.responses?]].... |
| 1ba0 | 20 2d 20 5b 5b 23 74 72 61 6e 73 69 65 6e 74 2d 6d 65 6e 75 2d 62 65 68 61 76 69 6f 72 5d 5b 54 | .-.[[#transient-menu-behavior][T |
| 1bc0 | 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 62 65 68 61 76 69 6f 72 5d 5d 0a 20 20 20 20 20 20 2d | ransient.menu.behavior]].......- |
| 1be0 | 20 5b 5b 23 69 2d 77 61 6e 74 2d 74 6f 2d 73 65 74 2d 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 73 2d | .[[#i-want-to-set-gptel-options- |
| 1c00 | 62 75 74 2d 6f 6e 6c 79 2d 66 6f 72 2d 74 68 69 73 2d 62 75 66 66 65 72 5d 5b 49 20 77 61 6e 74 | but-only-for-this-buffer][I.want |
| 1c20 | 20 74 6f 20 73 65 74 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 62 75 74 20 6f 6e 6c 79 20 66 | .to.set.gptel.options.but.only.f |
| 1c40 | 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 | or.this.buffer]].......-.[[#i-wa |
| 1c60 | 6e 74 2d 74 68 65 2d 74 72 61 6e 73 69 65 6e 74 2d 6d 65 6e 75 2d 6f 70 74 69 6f 6e 73 2d 74 6f | nt-the-transient-menu-options-to |
| 1c80 | 2d 62 65 2d 73 61 76 65 64 2d 73 6f 2d 69 2d 6f 6e 6c 79 2d 6e 65 65 64 2d 74 6f 2d 73 65 74 2d | -be-saved-so-i-only-need-to-set- |
| 1ca0 | 74 68 65 6d 2d 6f 6e 63 65 5d 5b 49 20 77 61 6e 74 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 | them-once][I.want.the.transient. |
| 1cc0 | 6d 65 6e 75 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 73 61 76 65 64 20 73 6f 20 49 20 6f 6e | menu.options.to.be.saved.so.I.on |
| 1ce0 | 6c 79 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 65 6d 20 6f 6e 63 65 5d 5d 0a 20 20 20 20 20 | ly.need.to.set.them.once]]...... |
| 1d00 | 20 2d 20 5b 5b 23 75 73 69 6e 67 2d 74 68 65 2d 74 72 61 6e 73 69 65 6e 74 2d 6d 65 6e 75 2d 6c | .-.[[#using-the-transient-menu-l |
| 1d20 | 65 61 76 65 73 2d 62 65 68 69 6e 64 2d 65 78 74 72 61 2d 77 69 6e 64 6f 77 73 5d 5b 55 73 69 6e | eaves-behind-extra-windows][Usin |
| 1d40 | 67 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 6c 65 61 76 65 73 20 62 65 68 69 | g.the.transient.menu.leaves.behi |
| 1d60 | 6e 64 20 65 78 74 72 61 20 77 69 6e 64 6f 77 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 63 61 | nd.extra.windows]].......-.[[#ca |
| 1d80 | 6e 2d 69 2d 63 68 61 6e 67 65 2d 74 68 65 2d 74 72 61 6e 73 69 65 6e 74 2d 6d 65 6e 75 2d 6b 65 | n-i-change-the-transient-menu-ke |
| 1da0 | 79 2d 62 69 6e 64 69 6e 67 73 5d 5b 43 61 6e 20 49 20 63 68 61 6e 67 65 20 74 68 65 20 74 72 61 | y-bindings][Can.I.change.the.tra |
| 1dc0 | 6e 73 69 65 6e 74 20 6d 65 6e 75 20 6b 65 79 20 62 69 6e 64 69 6e 67 73 3f 5d 5d 0a 20 20 20 20 | nsient.menu.key.bindings?]]..... |
| 1de0 | 20 20 2d 20 5b 5b 23 64 6f 6f 6d 2d 65 6d 61 63 73 2d 73 65 6e 64 69 6e 67 2d 61 2d 71 75 65 72 | ..-.[[#doom-emacs-sending-a-quer |
| 1e00 | 79 2d 66 72 6f 6d 2d 74 68 65 2d 67 70 74 65 6c 2d 6d 65 6e 75 2d 66 61 69 6c 73 2d 62 65 63 61 | y-from-the-gptel-menu-fails-beca |
| 1e20 | 75 73 65 2d 6f 66 2d 61 2d 6b 65 79 2d 63 6f 6e 66 6c 69 63 74 2d 77 69 74 68 2d 6f 72 67 2d 6d | use-of-a-key-conflict-with-org-m |
| 1e40 | 6f 64 65 5d 5b 28 44 6f 6f 6d 20 45 6d 61 63 73 29 20 53 65 6e 64 69 6e 67 20 61 20 71 75 65 72 | ode][(Doom.Emacs).Sending.a.quer |
| 1e60 | 79 20 66 72 6f 6d 20 74 68 65 20 67 70 74 65 6c 20 6d 65 6e 75 20 66 61 69 6c 73 20 62 65 63 61 | y.from.the.gptel.menu.fails.beca |
| 1e80 | 75 73 65 20 6f 66 20 61 20 6b 65 79 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 4f 72 67 20 6d | use.of.a.key.conflict.with.Org.m |
| 1ea0 | 6f 64 65 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 6d 69 73 63 65 6c 6c 61 6e 65 6f 75 73 5d 5b 4d 69 | ode]].....-.[[#miscellaneous][Mi |
| 1ec0 | 73 63 65 6c 6c 61 6e 65 6f 75 73 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 69 2d 77 61 6e 74 2d | scellaneous]].......-.[[#i-want- |
| 1ee0 | 74 6f 2d 75 73 65 2d 67 70 74 65 6c 2d 69 6e 2d 61 2d 77 61 79 2d 74 68 61 74 73 2d 6e 6f 74 2d | to-use-gptel-in-a-way-thats-not- |
| 1f00 | 73 75 70 70 6f 72 74 65 64 2d 62 79 2d 67 70 74 65 6c 2d 73 65 6e 64 2d 6f 72 2d 74 68 65 2d 6f | supported-by-gptel-send-or-the-o |
| 1f20 | 70 74 69 6f 6e 73 2d 6d 65 6e 75 5d 5b 49 20 77 61 6e 74 20 74 6f 20 75 73 65 20 67 70 74 65 6c | ptions-menu][I.want.to.use.gptel |
| 1f40 | 20 69 6e 20 61 20 77 61 79 20 74 68 61 74 27 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 | .in.a.way.that's.not.supported.b |
| 1f60 | 79 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 6f 72 20 74 68 65 20 6f 70 74 69 6f 6e 73 20 6d 65 | y.=gptel-send=.or.the.options.me |
| 1f80 | 6e 75 5d 5d 0a 20 20 20 20 20 20 2d 20 5b 5b 23 63 68 61 74 67 70 74 2d 69 2d 67 65 74 2d 74 68 | nu]].......-.[[#chatgpt-i-get-th |
| 1fa0 | 65 2d 65 72 72 6f 72 2d 68 74 74 70 32 2d 34 32 39 2d 79 6f 75 2d 65 78 63 65 65 64 65 64 2d 79 | e-error-http2-429-you-exceeded-y |
| 1fc0 | 6f 75 72 2d 63 75 72 72 65 6e 74 2d 71 75 6f 74 61 5d 5b 28 43 68 61 74 47 50 54 29 20 49 20 67 | our-current-quota][(ChatGPT).I.g |
| 1fe0 | 65 74 20 74 68 65 20 65 72 72 6f 72 20 22 28 48 54 54 50 2f 32 20 34 32 39 29 20 59 6f 75 20 65 | et.the.error."(HTTP/2.429).You.e |
| 2000 | 78 63 65 65 64 65 64 20 79 6f 75 72 20 63 75 72 72 65 6e 74 20 71 75 6f 74 61 22 5d 5d 0a 20 20 | xceeded.your.current.quota"]]... |
| 2020 | 20 20 20 20 2d 20 5b 5b 23 77 68 79 2d 61 6e 6f 74 68 65 72 2d 6c 6c 6d 2d 63 6c 69 65 6e 74 5d | ....-.[[#why-another-llm-client] |
| 2040 | 5b 57 68 79 20 61 6e 6f 74 68 65 72 20 4c 4c 4d 20 63 6c 69 65 6e 74 3f 5d 5d 0a 20 20 2d 20 5b | [Why.another.LLM.client?]]...-.[ |
| 2060 | 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 5d 5b 41 64 64 69 | [#additional-configuration][Addi |
| 2080 | 74 69 6f 6e 61 6c 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5d 0a 20 20 20 20 2d 20 5b 5b 23 | tional.Configuration]].....-.[[# |
| 20a0 | 6f 70 74 69 6f 6e 2d 70 72 65 73 65 74 73 5d 5b 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 5d 5d | option-presets][Option.presets]] |
| 20c0 | 0a 20 20 20 20 20 20 2d 20 5b 5b 23 61 70 70 6c 79 69 6e 67 2d 70 72 65 73 65 74 73 2d 74 6f 2d | .......-.[[#applying-presets-to- |
| 20e0 | 72 65 71 75 65 73 74 73 2d 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 5d 5b 41 70 70 6c 79 69 6e 67 | requests-automatically][Applying |
| 2100 | 20 70 72 65 73 65 74 73 20 74 6f 20 72 65 71 75 65 73 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c | .presets.to.requests.automatical |
| 2120 | 6c 79 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 6c 74 65 72 6e | ly]]...-.[[#alternatives][Altern |
| 2140 | 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 75 73 69 6e 67 | atives]].....-.[[#packages-using |
| 2160 | 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 6c 5d 5d 0a 20 | -gptel][Packages.using.gptel]].. |
| 2180 | 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 6f 77 6c 65 64 | .-.[[#acknowledgments][Acknowled |
| 21a0 | 67 6d 65 6e 74 73 5d 5d 0a 0a 2a 2a 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a 0a 4e 6f 74 65 3a | gments]]..**.Installation..Note: |
| 21c0 | 20 67 70 74 65 6c 20 72 65 71 75 69 72 65 73 20 54 72 61 6e 73 69 65 6e 74 20 30 2e 37 2e 34 20 | .gptel.requires.Transient.0.7.4. |
| 21e0 | 6f 72 20 68 69 67 68 65 72 2e 20 20 54 72 61 6e 73 69 65 6e 74 20 69 73 20 61 20 62 75 69 6c 74 | or.higher...Transient.is.a.built |
| 2200 | 2d 69 6e 20 70 61 63 6b 61 67 65 20 61 6e 64 20 45 6d 61 63 73 20 64 6f 65 73 20 6e 6f 74 20 75 | -in.package.and.Emacs.does.not.u |
| 2220 | 70 64 61 74 65 20 69 74 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 45 6e 73 75 72 65 20 74 68 61 | pdate.it.by.default...Ensure.tha |
| 2240 | 74 20 3d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 2d 75 70 67 72 61 64 65 2d 62 75 69 6c 74 | t.=package-install-upgrade-built |
| 2260 | 2d 69 6e 3d 20 69 73 20 74 72 75 65 2c 20 6f 72 20 75 70 64 61 74 65 20 54 72 61 6e 73 69 65 6e | -in=.is.true,.or.update.Transien |
| 2280 | 74 20 6d 61 6e 75 61 6c 6c 79 2e 0a 0a 2d 20 2a 52 65 6c 65 61 73 65 20 76 65 72 73 69 6f 6e 2a | t.manually...-.*Release.version* |
| 22a0 | 3a 20 3d 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 3d 20 e2 8f 8e 20 3d 67 70 74 | :.=M-x.package-install=.....=gpt |
| 22c0 | 65 6c 3d 20 69 6e 20 45 6d 61 63 73 2e 0a 2d 20 2a 44 65 76 65 6c 6f 70 6d 65 6e 74 20 73 6e 61 | el=.in.Emacs..-.*Development.sna |
| 22e0 | 70 73 68 6f 74 2a 3a 20 41 64 64 20 4d 45 4c 50 41 20 6f 72 20 4e 6f 6e 47 4e 55 2d 64 65 76 65 | pshot*:.Add.MELPA.or.NonGNU-deve |
| 2300 | 6c 20 45 4c 50 41 20 74 6f 20 79 6f 75 72 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 20 73 | l.ELPA.to.your.list.of.package.s |
| 2320 | 6f 75 72 63 65 73 2c 20 74 68 65 6e 20 69 6e 73 74 61 6c 6c 20 77 69 74 68 20 3d 4d 2d 78 20 70 | ources,.then.install.with.=M-x.p |
| 2340 | 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 3d 20 e2 8f 8e 20 3d 67 70 74 65 6c 3d 2e 0a 2d 20 2a | ackage-install=.....=gptel=..-.* |
| 2360 | 4f 70 74 69 6f 6e 61 6c 3a 2a 20 49 6e 73 74 61 6c 6c 20 3d 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 | Optional:*.Install.=markdown-mod |
| 2380 | 65 3d 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a | e=...#+html:.<details><summary>. |
| 23a0 | 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 6d 61 72 79 3e 0a | ***.Straight.#+html:.</summary>. |
| 23c0 | 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 73 74 72 61 69 67 | #+begin_src.emacs-lisp...(straig |
| 23e0 | 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 6e 64 5f 73 72 63 | ht-use-package.'gptel).#+end_src |
| 2400 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 | .#+html:.</details>.#+html:.<det |
| 2420 | 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 20 4d 61 6e 75 61 6c 0a 23 2b 68 74 6d 6c | ails><summary>.***.Manual.#+html |
| 2440 | 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 4e 6f 74 65 3a 20 67 70 74 65 6c 20 72 65 71 75 69 72 65 | :.</summary>.Note:.gptel.require |
| 2460 | 73 20 54 72 61 6e 73 69 65 6e 74 20 30 2e 37 2e 34 20 6f 72 20 68 69 67 68 65 72 2e 20 20 54 72 | s.Transient.0.7.4.or.higher...Tr |
| 2480 | 61 6e 73 69 65 6e 74 20 69 73 20 61 20 62 75 69 6c 74 2d 69 6e 20 70 61 63 6b 61 67 65 20 61 6e | ansient.is.a.built-in.package.an |
| 24a0 | 64 20 45 6d 61 63 73 20 64 6f 65 73 20 6e 6f 74 20 75 70 64 61 74 65 20 69 74 20 62 79 20 64 65 | d.Emacs.does.not.update.it.by.de |
| 24c0 | 66 61 75 6c 74 2e 20 20 45 6e 73 75 72 65 20 74 68 61 74 20 3d 70 61 63 6b 61 67 65 2d 69 6e 73 | fault...Ensure.that.=package-ins |
| 24e0 | 74 61 6c 6c 2d 75 70 67 72 61 64 65 2d 62 75 69 6c 74 2d 69 6e 3d 20 69 73 20 74 72 75 65 2c 20 | tall-upgrade-built-in=.is.true,. |
| 2500 | 6f 72 20 75 70 64 61 74 65 20 54 72 61 6e 73 69 65 6e 74 20 6d 61 6e 75 61 6c 6c 79 2e 0a 0a 43 | or.update.Transient.manually...C |
| 2520 | 6c 6f 6e 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 | lone.or.download.this.repository |
| 2540 | 20 61 6e 64 20 72 75 6e 20 3d 4d 2d 78 20 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 2d 66 69 | .and.run.=M-x.package-install-fi |
| 2560 | 6c 65 e2 8f 8e 3d 20 6f 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 64 69 72 65 63 74 6f | le...=.on.the.repository.directo |
| 2580 | 72 79 2e 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 | ry..#+html:.</details>.#+html:.< |
| 25a0 | 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 20 44 6f 6f 6d 20 45 6d 61 63 73 | details><summary>.***.Doom.Emacs |
| 25c0 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 49 6e 20 3d 70 61 63 6b 61 67 65 73 | .#+html:.</summary>.In.=packages |
| 25e0 | 2e 65 6c 3d 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 70 61 | .el=..#+begin_src.emacs-lisp.(pa |
| 2600 | 63 6b 61 67 65 21 20 67 70 74 65 6c 20 3a 72 65 63 69 70 65 20 28 3a 6e 6f 6e 72 65 63 75 72 73 | ckage!.gptel.:recipe.(:nonrecurs |
| 2620 | 69 76 65 20 74 29 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 | ive.t)).#+end_src..In.=config.el |
| 2640 | 3d 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 75 73 65 2d 70 | =..#+begin_src.emacs-lisp.(use-p |
| 2660 | 61 63 6b 61 67 65 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 | ackage!.gptel..:config..(setq!.g |
| 2680 | 70 74 65 6c 2d 61 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 | ptel-api-key."your.key")).#+end_ |
| 26a0 | 73 72 63 0a 0a 22 79 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 | src.."your.key".can.be.the.API.k |
| 26c0 | 65 79 20 69 74 73 65 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 | ey.itself,.or.(safer).a.function |
| 26e0 | 20 74 68 61 74 20 72 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 | .that.returns.the.key...Setting. |
| 2700 | 3d 67 70 74 65 6c 2d 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 | =gptel-api-key=.is.optional,.you |
| 2720 | 20 77 69 6c 6c 20 62 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 | .will.be.asked.for.a.key.if.it's |
| 2740 | 20 6e 6f 74 20 66 6f 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 | .not.found...#+html:.</details>. |
| 2760 | 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 20 53 | #+html:.<details><summary>.***.S |
| 2780 | 70 61 63 65 6d 61 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 | pacemacs.#+html:.</summary>.In.y |
| 27a0 | 6f 75 72 20 3d 2e 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 | our.=.spacemacs=.file,.add.=llm- |
| 27c0 | 63 6c 69 65 6e 74 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 | client=.to.=dotspacemacs-configu |
| 27e0 | 72 61 74 69 6f 6e 2d 6c 61 79 65 72 73 3d 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | ration-layers=...#+begin_src.ema |
| 2800 | 63 73 2d 6c 69 73 70 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 | cs-lisp.(llm-client.:variables.. |
| 2820 | 20 20 20 20 20 20 20 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 | ...........llm-client-enable-gpt |
| 2840 | 65 6c 20 74 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c | el.t).#+end_src.#+html:.</detail |
| 2860 | 73 3e 0a 2a 2a 20 53 65 74 75 70 0a 0a 67 70 74 65 6c 20 73 75 70 70 6f 72 74 73 20 61 20 6e 75 | s>.**.Setup..gptel.supports.a.nu |
| 2880 | 6d 62 65 72 20 6f 66 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 | mber.of.LLM.providers:..#+html:. |
| 28a0 | 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 61 63 6b 65 | <div.align="center">.|.LLM.Backe |
| 28c0 | 6e 64 20 20 20 20 20 20 20 20 20 20 7c 20 52 65 71 75 69 72 65 73 20 20 20 20 20 20 20 20 20 20 | nd..........|.Requires.......... |
| 28e0 | 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 2d | .........|.|-------------------- |
| 2900 | 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 7c | --+----------------------------| |
| 2920 | 0a 7c 20 43 68 61 74 47 50 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 | .|.ChatGPT..............|.[[http |
| 2940 | 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 2f | s://platform.openai.com/account/ |
| 2960 | 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 20 | api-keys][API.key]]............. |
| 2980 | 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 20 20 | .......|.|.Anthropic.(Claude)... |
| 29a0 | 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 2f 61 70 | |.[[https://www.anthropic.com/ap |
| 29c0 | 69 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | i][API.key]].................... |
| 29e0 | 7c 0a 7c 20 47 65 6d 69 6e 69 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 | |.|.Gemini...............|.[[htt |
| 2a00 | 70 73 3a 2f 2f 6d 61 6b 65 72 73 75 69 74 65 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 61 70 70 2f 61 | ps://makersuite.google.com/app/a |
| 2a20 | 70 69 6b 65 79 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 | pikey][API.key]]................ |
| 2a40 | 20 20 20 20 7c 0a 7c 20 4f 6c 6c 61 6d 61 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b | ....|.|.Ollama...............|.[ |
| 2a60 | 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 6e 6e | [https://ollama.ai/][Ollama.runn |
| 2a80 | 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 20 20 20 20 7c 0a 7c 20 4f 70 65 6e 20 57 65 62 55 49 | ing.locally]].....|.|.Open.WebUI |
| 2aa0 | 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6f 70 65 6e 77 65 62 75 69 | ...........|.[[https://openwebui |
| 2ac0 | 2e 63 6f 6d 2f 5d 5b 4f 70 65 6e 20 57 65 62 55 49 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c | .com/][Open.WebUI.running.locall |
| 2ae0 | 79 5d 5d 20 7c 0a 7c 20 4c 6c 61 6d 61 2e 63 70 70 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b | y]].|.|.Llama.cpp............|.[ |
| 2b00 | 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 67 67 6d 6c 2d 6f 72 67 2f 6c 6c 61 | [https://github.com/ggml-org/lla |
| 2b20 | 6d 61 2e 63 70 70 2f 74 72 65 65 2f 6d 61 73 74 65 72 2f 74 6f 6f 6c 73 2f 73 65 72 76 65 72 23 | ma.cpp/tree/master/tools/server# |
| 2b40 | 71 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 | quick-start][Llama.cpp.running.l |
| 2b60 | 6f 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 | ocally]]..|.|.Llamafile......... |
| 2b80 | 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 4d 6f 7a 69 6c 6c | ...|.[[https://github.com/Mozill |
| 2ba0 | 61 2d 4f 63 68 6f 2f 6c 6c 61 6d 61 66 69 6c 65 23 71 75 69 63 6b 73 74 61 72 74 5d 5b 4c 6f 63 | a-Ocho/llamafile#quickstart][Loc |
| 2bc0 | 61 6c 20 4c 6c 61 6d 61 66 69 6c 65 20 73 65 72 76 65 72 5d 5d 20 20 20 20 20 7c 0a 7c 20 47 50 | al.Llamafile.server]].....|.|.GP |
| 2be0 | 54 34 41 6c 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 | T4All..............|.[[https://g |
| 2c00 | 70 74 34 61 6c 6c 2e 69 6f 2f 69 6e 64 65 78 2e 68 74 6d 6c 5d 5b 47 50 54 34 41 6c 6c 20 72 75 | pt4all.io/index.html][GPT4All.ru |
| 2c20 | 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 20 20 20 7c 0a 7c 20 4b 61 67 69 20 46 61 73 74 | nning.locally]]....|.|.Kagi.Fast |
| 2c40 | 47 50 54 20 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 | GPT.........|.[[https://kagi.com |
| 2c60 | 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]]...... |
| 2c80 | 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 |
| 2ca0 | 72 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 2f 73 65 74 74 | r......|.[[https://kagi.com/sett |
| 2cc0 | 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 20 20 20 20 20 | ings?p=api][API.key]]........... |
| 2ce0 | 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 7a 75 72 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........|.|.Azure.............. |
| 2d00 | 20 20 7c 20 44 65 70 6c 6f 79 6d 65 6e 74 20 61 6e 64 20 41 50 49 20 6b 65 79 20 20 20 20 20 7c | ..|.Deployment.and.API.key.....| |
| 2d20 | 0a 7c 20 47 72 6f 71 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 | .|.Groq.................|.[[http |
| 2d40 | 73 3a 2f 2f 63 6f 6e 73 6f 6c 65 2e 67 72 6f 71 2e 63 6f 6d 2f 6b 65 79 73 5d 5b 41 50 49 20 6b | s://console.groq.com/keys][API.k |
| 2d60 | 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4d 69 73 74 | ey]]....................|.|.Mist |
| 2d80 | 72 61 6c 20 4c 65 20 43 68 61 74 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 63 6f 6e | ral.Le.Chat......|.[[https://con |
| 2da0 | 73 6f 6c 65 2e 6d 69 73 74 72 61 6c 2e 61 69 2f 61 70 69 2d 6b 65 79 73 5d 5b 41 50 49 20 6b 65 | sole.mistral.ai/api-keys][API.ke |
| 2dc0 | 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 70 6c | y]]....................|.|.Perpl |
| 2de0 | 65 78 69 74 79 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 | exity...........|.[[https://docs |
| 2e00 | 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 69 2f 64 6f 63 73 2f 67 65 74 74 69 6e 67 2d 73 74 61 72 | .perplexity.ai/docs/getting-star |
| 2e20 | 74 65 64 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 | ted][API.key]].................. |
| 2e40 | 20 20 7c 0a 7c 20 4f 70 65 6e 52 6f 75 74 65 72 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 | ..|.|.OpenRouter...........|.[[h |
| 2e60 | 74 74 70 73 3a 2f 2f 6f 70 65 6e 72 6f 75 74 65 72 2e 61 69 2f 6b 65 79 73 5d 5b 41 50 49 20 6b | ttps://openrouter.ai/keys][API.k |
| 2e80 | 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 41 49 2f 4d | ey]]....................|.|.AI/M |
| 2ea0 | 4c 20 41 50 49 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 61 69 6d | L.API............|.[[https://aim |
| 2ec0 | 6c 61 70 69 2e 63 6f 6d 2f 61 70 70 2f 3f 75 74 6d 5f 73 6f 75 72 63 65 3d 67 70 74 65 6c 26 75 | lapi.com/app/?utm_source=gptel&u |
| 2ee0 | 74 6d 5f 6d 65 64 69 75 6d 3d 67 69 74 68 75 62 26 75 74 6d 5f 63 61 6d 70 61 69 67 6e 3d 69 6e | tm_medium=github&utm_campaign=in |
| 2f00 | 74 65 67 72 61 74 69 6f 6e 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 | tegration][API.key]]............ |
| 2f20 | 20 20 20 20 20 20 20 20 7c 0a 7c 20 74 6f 67 65 74 68 65 72 2e 61 69 20 20 20 20 20 20 20 20 20 | ........|.|.together.ai......... |
| 2f40 | 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 61 70 69 2e 74 6f 67 65 74 68 65 72 2e 78 79 7a 2f 73 65 | .|.[[https://api.together.xyz/se |
| 2f60 | 74 74 69 6e 67 73 2f 61 70 69 2d 6b 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 | ttings/api-keys][API.key]]...... |
| 2f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 41 6e 79 73 63 61 6c 65 20 20 20 20 20 20 | ..............|.|.Anyscale...... |
| 2fa0 | 20 20 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 | .......|.[[https://docs.endpoint |
| 2fc0 | 73 2e 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 | s.anyscale.com/][API.key]]...... |
| 2fe0 | 20 20 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 | ..............|.|.PrivateGPT.... |
| 3000 | 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 63 6f 6d 2f 7a 79 | .......|.[[https://github.com/zy |
| 3020 | 6c 6f 6e 2d 61 69 2f 70 72 69 76 61 74 65 2d 67 70 74 23 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f | lon-ai/private-gpt#-documentatio |
| 3040 | 6e 5d 5b 50 72 69 76 61 74 65 47 50 54 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 5d 5d 20 | n][PrivateGPT.running.locally]]. |
| 3060 | 7c 0a 7c 20 44 65 65 70 53 65 65 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 | |.|.DeepSeek.............|.[[htt |
| 3080 | 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 64 65 65 70 73 65 65 6b 2e 63 6f 6d 2f 61 70 69 5f 6b | ps://platform.deepseek.com/api_k |
| 30a0 | 65 79 73 5d 5b 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eys][API.key]].................. |
| 30c0 | 20 20 7c 0a 7c 20 53 61 6d 62 61 6e 6f 76 61 20 28 44 65 65 70 73 65 65 6b 29 20 7c 20 5b 5b 68 | ..|.|.Sambanova.(Deepseek).|.[[h |
| 30e0 | 74 74 70 73 3a 2f 2f 63 6c 6f 75 64 2e 73 61 6d 62 61 6e 6f 76 61 2e 61 69 2f 61 70 69 73 5d 5b | ttps://cloud.sambanova.ai/apis][ |
| 3100 | 41 50 49 20 6b 65 79 5d 5d 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c | API.key]]....................|.| |
| 3120 | 20 43 65 72 65 62 72 61 73 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a | .Cerebras.............|.[[https: |
| 3140 | 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 79 5d 5d 20 | //cloud.cerebras.ai/][API.key]]. |
| 3160 | 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 62 20 4d 6f | ...................|.|.Github.Mo |
| 3180 | 64 65 6c 73 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 63 | dels........|.[[https://github.c |
| 31a0 | 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 74 6f 6b 65 6e 73 5d 5b 54 6f 6b 65 6e 5d 5d 20 20 20 20 20 | om/settings/tokens][Token]]..... |
| 31c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4e 6f 76 69 74 61 20 41 49 20 20 | .................|.|.Novita.AI.. |
| 31e0 | 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6e 6f 76 69 74 61 2e 61 69 2f | ..........|.[[https://novita.ai/ |
| 3200 | 6d 6f 64 65 6c 2d 61 70 69 2f 70 72 6f 64 75 63 74 2f 6c 6c 6d 2d 61 70 69 3f 75 74 6d 5f 73 6f | model-api/product/llm-api?utm_so |
| 3220 | 75 72 63 65 3d 67 69 74 68 75 62 5f 67 70 74 65 6c 26 75 74 6d 5f 6d 65 64 69 75 6d 3d 67 69 74 | urce=github_gptel&utm_medium=git |
| 3240 | 68 75 62 5f 72 65 61 64 6d 65 26 75 74 6d 5f 63 61 6d 70 61 69 67 6e 3d 6c 69 6e 6b 5d 5b 54 6f | hub_readme&utm_campaign=link][To |
| 3260 | 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 7c 0a 7c 20 78 | ken]]......................|.|.x |
| 3280 | 41 49 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5b 5b 68 74 74 70 73 3a 2f 2f | AI..................|.[[https:// |
| 32a0 | 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 68 75 62 5f 67 | console.x.ai?utm_source=github_g |
| 32c0 | 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 6d 65 26 75 74 | ptel&utm_medium=github_readme&ut |
| 32e0 | 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 20 20 20 20 20 | m_campaign=link][API.key]]...... |
| 3300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 | ..............|.|.GitHub.Copilot |
| 3320 | 43 68 61 74 20 20 20 7c 20 47 69 74 48 75 62 20 61 63 63 6f 75 6e 74 20 20 20 20 20 20 20 20 20 | Chat...|.GitHub.account......... |
| 3340 | 20 20 20 20 7c 0a 7c 20 42 65 64 72 6f 63 6b 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 41 | ....|.|.Bedrock..............|.A |
| 3360 | 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 4d 6f | WS.credentials............|.|.Mo |
| 3380 | 6f 6e 73 68 6f 74 20 28 4b 69 6d 69 29 20 20 20 20 20 20 7c 20 41 50 49 20 6b 65 79 20 28 5b 5b | onshot.(Kimi)......|.API.key.([[ |
| 33a0 | 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6d 6f 6f 6e 73 68 6f 74 2e 63 6e 2f 63 6f 6e | https://platform.moonshot.cn/con |
| 33c0 | 73 6f 6c 65 5d 5b 43 4e 5d 5d 20 6f 72 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d | sole][CN]].or.[[https://platform |
| 33e0 | 2e 6d 6f 6f 6e 73 68 6f 74 2e 61 69 2f 63 6f 6e 73 6f 6c 65 5d 5b 47 6c 6f 62 61 6c 5d 5d 29 20 | .moonshot.ai/console][Global]]). |
| 3400 | 20 20 20 20 7c 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 69 76 3e 0a 0a 2a 2a 2a 20 43 68 61 74 47 50 | ....|.#+html:.</div>..***.ChatGP |
| 3420 | 54 0a 50 72 6f 63 75 72 65 20 61 6e 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e | T.Procure.an.[[https://platform. |
| 3440 | 6f 70 65 6e 61 69 2e 63 6f 6d 2f 61 63 63 6f 75 6e 74 2f 61 70 69 2d 6b 65 79 73 5d 5b 4f 70 65 | openai.com/account/api-keys][Ope |
| 3460 | 6e 41 49 20 41 50 49 20 6b 65 79 5d 5d 2e 0a 0a 4f 70 74 69 6f 6e 61 6c 3a 20 53 65 74 20 3d 67 | nAI.API.key]]...Optional:.Set.=g |
| 3480 | 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 74 6f 20 74 68 65 20 6b 65 79 2e 20 41 6c 74 65 72 6e | ptel-api-key=.to.the.key..Altern |
| 34a0 | 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 6d 61 79 20 63 68 6f 6f 73 65 20 61 20 6d 6f 72 65 20 73 | atively,.you.may.choose.a.more.s |
| 34c0 | 65 63 75 72 65 20 6d 65 74 68 6f 64 20 73 75 63 68 20 61 73 3a 0a 0a 2d 20 53 65 74 74 69 6e 67 | ecure.method.such.as:..-.Setting |
| 34e0 | 20 69 74 20 74 6f 20 61 20 63 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 | .it.to.a.custom.function.that.re |
| 3500 | 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 2d 20 4c 65 61 76 69 6e 67 20 69 74 20 73 65 74 20 | turns.the.key..-.Leaving.it.set. |
| 3520 | 74 6f 20 74 68 65 20 64 65 66 61 75 6c 74 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 | to.the.default.=gptel-api-key-fr |
| 3540 | 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 3d 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 63 68 20 72 | om-auth-source=.function.which.r |
| 3560 | 65 61 64 73 20 6b 65 79 73 20 66 72 6f 6d 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d 2e 20 28 53 | eads.keys.from.=~/.authinfo=..(S |
| 3580 | 65 65 20 5b 5b 23 6f 70 74 69 6f 6e 61 6c 2d 73 65 63 75 72 69 6e 67 2d 61 70 69 2d 6b 65 79 73 | ee.[[#optional-securing-api-keys |
| 35a0 | 2d 77 69 74 68 2d 61 75 74 68 69 6e 66 6f 5d 5b 61 75 74 68 69 6e 66 6f 20 64 65 74 61 69 6c 73 | -with-authinfo][authinfo.details |
| 35c0 | 5d 5d 29 0a 0a 2a 2a 2a 20 4f 74 68 65 72 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 0a 0a 43 68 61 | ]])..***.Other.LLM.backends..Cha |
| 35e0 | 74 47 50 54 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f | tGPT.is.configured.out.of.the.bo |
| 3600 | 78 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 73 65 20 6f 74 68 65 72 20 4c 4c 4d | x...If.you.want.to.use.other.LLM |
| 3620 | 20 62 61 63 6b 65 6e 64 73 20 28 6c 69 6b 65 20 4f 6c 6c 61 6d 61 2c 20 43 6c 61 75 64 65 2f 41 | .backends.(like.Ollama,.Claude/A |
| 3640 | 6e 74 68 72 6f 70 69 63 20 6f 72 20 47 65 6d 69 6e 69 29 20 79 6f 75 20 6e 65 65 64 20 74 6f 20 | nthropic.or.Gemini).you.need.to. |
| 3660 | 72 65 67 69 73 74 65 72 20 61 6e 64 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 6d 20 66 69 72 73 | register.and.configure.them.firs |
| 3680 | 74 2e 0a 0a 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 72 65 67 69 73 74 65 72 69 6e 67 20 61 | t...As.an.example,.registering.a |
| 36a0 | 20 62 61 63 6b 65 6e 64 20 74 79 70 69 63 61 6c 6c 79 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 74 68 | .backend.typically.looks.like.th |
| 36c0 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | e.following:..#+begin_src.emacs- |
| 36e0 | 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 | lisp.(gptel-make-anthropic."Clau |
| 3700 | 64 65 22 20 3a 73 74 72 65 61 6d 20 74 20 3a 6b 65 79 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 | de".:stream.t.:key.gptel-api-key |
| 3720 | 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 4f 6e 63 65 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 69 | ).#+end_src..Once.this.backend.i |
| 3740 | 73 20 72 65 67 69 73 74 65 72 65 64 2c 20 79 6f 75 27 6c 6c 20 73 65 65 20 6d 6f 64 65 6c 20 6e | s.registered,.you'll.see.model.n |
| 3760 | 61 6d 65 73 20 70 72 65 66 69 78 65 64 20 62 79 20 22 43 6c 61 75 64 65 3a 22 20 61 70 70 65 61 | ames.prefixed.by."Claude:".appea |
| 3780 | 72 20 69 6e 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2e 0a 0a 53 65 65 20 62 65 6c 6f 77 20 66 6f | r.in.gptel's.menu...See.below.fo |
| 37a0 | 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 79 6f 75 72 20 70 72 65 66 65 72 72 65 64 20 4c 4c 4d 20 | r.details.on.your.preferred.LLM. |
| 37c0 | 70 72 6f 76 69 64 65 72 2c 20 69 6e 63 6c 75 64 69 6e 67 20 6c 6f 63 61 6c 20 4c 4c 4d 73 2e 0a | provider,.including.local.LLMs.. |
| 37e0 | 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>.**** |
| 3800 | 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 63 75 72 69 6e 67 20 41 50 49 20 6b 65 79 73 20 77 69 | .(Optional).Securing.API.keys.wi |
| 3820 | 74 68 20 3d 61 75 74 68 69 6e 66 6f 3d 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e | th.=authinfo=.#+html:.</summary> |
| 3840 | 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 45 6d 61 63 73 27 20 62 75 69 6c 74 2d 69 6e 20 73 75 | ..You.can.use.Emacs'.built-in.su |
| 3860 | 70 70 6f 72 74 20 66 6f 72 20 3d 61 75 74 68 69 6e 66 6f 3d 20 74 6f 20 73 74 6f 72 65 20 41 50 | pport.for.=authinfo=.to.store.AP |
| 3880 | 49 20 6b 65 79 73 20 72 65 71 75 69 72 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 41 64 64 20 79 | I.keys.required.by.gptel...Add.y |
| 38a0 | 6f 75 72 20 41 50 49 20 6b 65 79 73 20 74 6f 20 3d 7e 2f 2e 61 75 74 68 69 6e 66 6f 3d 2c 20 61 | our.API.keys.to.=~/.authinfo=,.a |
| 38c0 | 6e 64 20 6c 65 61 76 65 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 73 65 74 20 74 6f 20 | nd.leave.=gptel-api-key=.set.to. |
| 38e0 | 69 74 73 20 64 65 66 61 75 6c 74 2e 20 20 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 41 50 | its.default...By.default,.the.AP |
| 3900 | 49 20 65 6e 64 70 6f 69 6e 74 20 44 4e 53 20 6e 61 6d 65 20 28 65 2e 67 2e 20 22 61 70 69 2e 6f | I.endpoint.DNS.name.(e.g.."api.o |
| 3920 | 70 65 6e 61 69 2e 63 6f 6d 22 29 20 69 73 20 75 73 65 64 20 61 73 20 48 4f 53 54 20 61 6e 64 20 | penai.com").is.used.as.HOST.and. |
| 3940 | 22 61 70 69 6b 65 79 22 20 61 73 20 55 53 45 52 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 61 | "apikey".as.USER...#+begin_src.a |
| 3960 | 75 74 68 69 6e 66 6f 0a 6d 61 63 68 69 6e 65 20 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 20 6c | uthinfo.machine.api.openai.com.l |
| 3980 | 6f 67 69 6e 20 61 70 69 6b 65 79 20 70 61 73 73 77 6f 72 64 20 73 6b 2d 73 65 63 72 65 74 2d 6f | ogin.apikey.password.sk-secret-o |
| 39a0 | 70 65 6e 61 69 2d 61 70 69 2d 6b 65 79 2d 67 6f 65 73 2d 68 65 72 65 0a 6d 61 63 68 69 6e 65 20 | penai-api-key-goes-here.machine. |
| 39c0 | 61 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 20 6c 6f 67 69 6e 20 61 70 69 6b 65 79 20 70 | api.anthropic.com.login.apikey.p |
| 39e0 | 61 73 73 77 6f 72 64 20 73 6b 2d 73 65 63 72 65 74 2d 61 6e 74 68 72 6f 70 69 63 2d 61 70 69 2d | assword.sk-secret-anthropic-api- |
| 3a00 | 6b 65 79 2d 67 6f 65 73 2d 68 65 72 65 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a | key-goes-here.#+end_src..#+html: |
| 3a20 | 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 |
| 3a40 | 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 7a 75 72 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d | mmary>.****.Azure.#+html:.</summ |
| 3a60 | 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 | ary>..Register.a.backend.with..# |
| 3a80 | 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 |
| 3aa0 | 65 2d 61 7a 75 72 65 20 22 41 7a 75 72 65 2d 31 22 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4e | e-azure."Azure-1".............;N |
| 3ac0 | 61 6d 65 2c 20 77 68 61 74 65 76 65 72 20 79 6f 75 27 64 20 6c 69 6b 65 0a 20 20 3a 70 72 6f 74 | ame,.whatever.you'd.like...:prot |
| 3ae0 | 6f 63 6f 6c 20 22 68 74 74 70 73 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocol."https".................... |
| 3b00 | 20 3b 4f 70 74 69 6f 6e 61 6c 20 2d 2d 20 68 74 74 70 73 20 69 73 20 74 68 65 20 64 65 66 61 75 | .;Optional.--.https.is.the.defau |
| 3b20 | 6c 74 0a 20 20 3a 68 6f 73 74 20 22 59 4f 55 52 5f 52 45 53 4f 55 52 43 45 5f 4e 41 4d 45 2e 6f | lt...:host."YOUR_RESOURCE_NAME.o |
| 3b40 | 70 65 6e 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f | penai.azure.com"...:endpoint."/o |
| 3b60 | 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 50 4c 4f 59 4d 45 4e | penai/deployments/YOUR_DEPLOYMEN |
| 3b80 | 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 70 69 2d 76 65 72 73 | T_NAME/chat/completions?api-vers |
| 3ba0 | 69 6f 6e 3d 32 30 32 33 2d 30 35 2d 31 35 22 20 3b 6f 72 20 65 71 75 69 76 61 6c 65 6e 74 0a 20 | ion=2023-05-15".;or.equivalent.. |
| 3bc0 | 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:stream.t...................... |
| 3be0 | 20 20 20 20 20 20 20 3b 45 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 | .......;Enable.streaming.respons |
| 3c00 | 65 73 0a 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 3a 6d 6f 64 | es...:key.#'gptel-api-key...:mod |
| 3c20 | 65 6c 73 20 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 67 70 74 2d 34 29 29 0a 23 2b 65 6e | els.'(gpt-3.5-turbo.gpt-4)).#+en |
| 3c40 | 64 5f 73 72 63 0a 0a 52 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f | d_src..Refer.to.the.documentatio |
| 3c60 | 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 3d 20 74 6f 20 73 65 74 20 6d | n.of.=gptel-make-azure=.to.set.m |
| 3c80 | 6f 72 65 20 70 61 72 61 6d 65 74 65 72 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 | ore.parameters...You.can.pick.th |
| 3ca0 | 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 |
| 3cc0 | 69 6e 67 20 67 70 74 65 6c 2e 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d | ing.gptel..(see.[[#usage][Usage] |
| 3ce0 | 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 |
| 3d00 | 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 |
| 3d20 | 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 |
| 3d40 | 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 |
| 3d60 | 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 |
| 3d80 | 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 |
| 3da0 | 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 |
| 3dc0 | 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 | nstead.of.the.above...#+begin_sr |
| 3de0 | 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 67 75 | c.emacs-lisp.;;.OPTIONAL.configu |
| 3e00 | 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 67 70 74 2d 33 | ration.(setq..gptel-model.'gpt-3 |
| 3e20 | 2e 35 2d 74 75 72 62 6f 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d | .5-turbo..gptel-backend.(gptel-m |
| 3e40 | 61 6b 65 2d 61 7a 75 72 65 20 22 41 7a 75 72 65 2d 31 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ake-azure."Azure-1"............. |
| 3e60 | 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 73 22 0a 20 20 20 20 20 20 20 20 20 | .....:protocol."https".......... |
| 3e80 | 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 59 4f 55 52 5f 52 45 53 4f 55 52 43 45 5f 4e 41 4d | ........:host."YOUR_RESOURCE_NAM |
| 3ea0 | 45 2e 6f 70 65 6e 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | E.openai.azure.com"............. |
| 3ec0 | 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f 70 65 6e 61 69 2f 64 65 70 6c 6f 79 6d 65 | .....:endpoint."/openai/deployme |
| 3ee0 | 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 61 74 2f 63 6f | nts/YOUR_DEPLOYMENT_NAME/chat/co |
| 3f00 | 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 30 35 2d 31 35 | mpletions?api-version=2023-05-15 |
| 3f20 | 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 0a 20 20 20 | "..................:stream.t.... |
| 3f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 23 27 67 70 74 65 6c 2d 61 70 69 2d 6b | ..............:key.#'gptel-api-k |
| 3f60 | 65 79 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 67 70 | ey..................:models.'(gp |
| 3f80 | 74 2d 33 2e 35 2d 74 75 72 62 6f 20 67 70 74 2d 34 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | t-3.5-turbo.gpt-4))).#+end_src.. |
| 3fa0 | 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 | #+html:.</details>.#+html:.<deta |
| 3fc0 | 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 50 54 34 41 6c 6c 0a 23 2b 68 74 6d | ils><summary>.****.GPT4All.#+htm |
| 3fe0 | 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e | l:.</summary>..Register.a.backen |
| 4000 | 64 20 77 69 74 68 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 | d.with..#+begin_src.emacs-lisp.( |
| 4020 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 20 22 47 50 54 34 41 6c 6c 22 20 20 20 20 | gptel-make-gpt4all."GPT4All".... |
| 4040 | 20 20 20 20 20 20 20 3b 4e 61 6d 65 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 0a 20 3a | .......;Name.of.your.choosing..: |
| 4060 | 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 | protocol."http"..:host."localhos |
| 4080 | 74 3a 34 38 39 31 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 57 68 65 72 65 20 69 | t:4891".................;Where.i |
| 40a0 | 74 27 73 20 72 75 6e 6e 69 6e 67 0a 20 3a 6d 6f 64 65 6c 73 20 27 28 6d 69 73 74 72 61 6c 2d 37 | t's.running..:models.'(mistral-7 |
| 40c0 | 62 2d 6f 70 65 6e 6f 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 29 29 20 3b 41 76 61 69 6c 61 62 6c | b-openorca.Q4_0.gguf)).;Availabl |
| 40e0 | 65 20 6d 6f 64 65 6c 73 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 | e.models.#+end_src..These.are.th |
| 4100 | 65 20 72 65 71 75 69 72 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 | e.required.parameters,.refer.to. |
| 4120 | 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 61 6b 65 | the.documentation.of.=gptel-make |
| 4140 | 2d 67 70 74 34 61 6c 6c 3d 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 | -gpt4all=.for.more...You.can.pic |
| 4160 | 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 | k.this.backend.from.the.menu.whe |
| 4180 | 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 | n.using.gptel.(see.[[#usage][Usa |
| 41a0 | 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 | ge]])...*****.(Optional).Set.as. |
| 41c0 | 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 |
| 41e0 | 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 |
| 4200 | 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 |
| 4220 | 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 |
| 4240 | 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 |
| 4260 | 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 |
| 4280 | 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 20 20 41 64 64 69 74 69 6f | s.instead.of.the.above...Additio |
| 42a0 | 6e 61 6c 6c 79 20 79 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 | nally.you.may.want.to.increase.t |
| 42c0 | 68 65 20 72 65 73 70 6f 6e 73 65 20 74 6f 6b 65 6e 20 73 69 7a 65 20 73 69 6e 63 65 20 47 50 54 | he.response.token.size.since.GPT |
| 42e0 | 34 41 6c 6c 20 75 73 65 73 20 76 65 72 79 20 73 68 6f 72 74 20 28 6f 66 74 65 6e 20 74 72 75 6e | 4All.uses.very.short.(often.trun |
| 4300 | 63 61 74 65 64 29 20 72 65 73 70 6f 6e 73 65 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 23 2b | cated).responses.by.default...#+ |
| 4320 | 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 |
| 4340 | 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 61 78 2d | .configuration.(setq..gptel-max- |
| 4360 | 74 6f 6b 65 6e 73 20 35 30 30 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 6d 69 73 74 72 61 6c | tokens.500..gptel-model.'mistral |
| 4380 | 2d 37 62 2d 6f 70 65 6e 6f 72 63 61 2e 51 34 5f 30 2e 67 67 75 66 0a 20 67 70 74 65 6c 2d 62 61 | -7b-openorca.Q4_0.gguf..gptel-ba |
| 43a0 | 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 20 22 47 50 54 34 41 | ckend.(gptel-make-gpt4all."GPT4A |
| 43c0 | 6c 6c 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 63 6f 6c 20 22 | ll"..................:protocol." |
| 43e0 | 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 6c 6f | http"..................:host."lo |
| 4400 | 63 61 6c 68 6f 73 74 3a 34 38 39 31 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | calhost:4891"..................: |
| 4420 | 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 34 5f | models.'(mistral-7b-openorca.Q4_ |
| 4440 | 30 2e 67 67 75 66 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 | 0.gguf))).#+end_src..#+html:.</d |
| 4460 | 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 |
| 4480 | 79 3e 0a 2a 2a 2a 2a 20 4f 6c 6c 61 6d 61 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 | y>.****.Ollama.#+html:.</summary |
| 44a0 | 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 23 2b 62 65 67 | >..Register.a.backend.with.#+beg |
| 44c0 | 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 6f 6c | in_src.emacs-lisp.(gptel-make-ol |
| 44e0 | 6c 61 6d 61 20 22 4f 6c 6c 61 6d 61 22 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e | lama."Ollama".............;Any.n |
| 4500 | 61 6d 65 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 0a 20 20 3a 68 6f 73 74 20 22 6c 6f | ame.of.your.choosing...:host."lo |
| 4520 | 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 57 68 | calhost:11434"...............;Wh |
| 4540 | 65 72 65 20 69 74 27 73 20 72 75 6e 6e 69 6e 67 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 | ere.it's.running...:stream.t.... |
| 4560 | 20 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 |
| 4580 | 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6d 69 73 74 72 61 6c 3a 6c | .responses...:models.'(mistral:l |
| 45a0 | 61 74 65 73 74 29 29 20 20 20 20 20 20 20 20 20 20 3b 4c 69 73 74 20 6f 66 20 6d 6f 64 65 6c 73 | atest))..........;List.of.models |
| 45c0 | 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 | .#+end_src..These.are.the.requir |
| 45e0 | 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 | ed.parameters,.refer.to.the.docu |
| 4600 | 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 6c 6c 61 6d 61 3d | mentation.of.=gptel-make-ollama= |
| 4620 | 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 | .for.more...You.can.pick.this.ba |
| 4640 | 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 |
| 4660 | 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]])..** |
| 4680 | 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 |
| 46a0 | 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. |
| 46c0 | 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 |
| 46e0 | 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 |
| 4700 | 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. |
| 4720 | 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 |
| 4740 | 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. |
| 4760 | 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 | of.the.above...#+begin_src.emacs |
| 4780 | 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 0a | -lisp.;;.OPTIONAL.configuration. |
| 47a0 | 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 6d 69 73 74 72 61 6c 3a 6c 61 74 65 | (setq..gptel-model.'mistral:late |
| 47c0 | 73 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 6f 6c | st..gptel-backend.(gptel-make-ol |
| 47e0 | 6c 61 6d 61 20 22 4f 6c 6c 61 6d 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | lama."Ollama"..................: |
| 4800 | 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 22 0a 20 20 20 20 20 20 20 20 20 | host."localhost:11434".......... |
| 4820 | 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............... |
| 4840 | 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 29 29 29 0a 23 | ...:models.'(mistral:latest))).# |
| 4860 | 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>..#+ |
| 4880 | 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 4f 70 | html:.<details><summary>.****.Op |
| 48a0 | 65 6e 20 57 65 62 55 49 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 5b 5b 68 | en.WebUI.#+html:.</summary>..[[h |
| 48c0 | 74 74 70 73 3a 2f 2f 6f 70 65 6e 77 65 62 75 69 2e 63 6f 6d 2f 5d 5b 4f 70 65 6e 20 57 65 62 55 | ttps://openwebui.com/][Open.WebU |
| 48e0 | 49 5d 5d 20 69 73 20 61 6e 20 6f 70 65 6e 20 73 6f 75 72 63 65 2c 20 73 65 6c 66 2d 68 6f 73 74 | I]].is.an.open.source,.self-host |
| 4900 | 65 64 20 73 79 73 74 65 6d 20 77 68 69 63 68 20 70 72 6f 76 69 64 65 73 20 61 20 6d 75 6c 74 69 | ed.system.which.provides.a.multi |
| 4920 | 2d 75 73 65 72 20 77 65 62 20 63 68 61 74 20 69 6e 74 65 72 66 61 63 65 20 61 6e 64 20 61 6e 20 | -user.web.chat.interface.and.an. |
| 4940 | 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 61 63 63 65 73 73 69 6e 67 20 4c 4c 4d 73 2c | API.endpoint.for.accessing.LLMs, |
| 4960 | 20 65 73 70 65 63 69 61 6c 6c 79 20 4c 4c 4d 73 20 72 75 6e 6e 69 6e 67 20 6c 6f 63 61 6c 6c 79 | .especially.LLMs.running.locally |
| 4980 | 20 6f 6e 20 69 6e 66 65 72 65 6e 63 65 20 73 65 72 76 65 72 73 20 6c 69 6b 65 20 4f 6c 6c 61 6d | .on.inference.servers.like.Ollam |
| 49a0 | 61 2e 0a 0a 42 65 63 61 75 73 65 20 69 74 20 70 72 65 73 65 6e 74 73 20 61 6e 20 4f 70 65 6e 41 | a...Because.it.presents.an.OpenA |
| 49c0 | 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 65 6e 64 70 6f 69 6e 74 2c 20 79 6f 75 20 75 73 65 20 7e | I-compatible.endpoint,.you.use.~ |
| 49e0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 20 74 6f 20 72 65 67 69 73 74 65 72 20 69 | gptel-make-openai~.to.register.i |
| 4a00 | 74 20 61 73 20 61 20 62 61 63 6b 65 6e 64 2e 0a 0a 46 6f 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 | t.as.a.backend...For.instance,.y |
| 4a20 | 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 66 6f 72 6d 20 74 6f 20 72 65 67 69 73 74 65 72 | ou.can.use.this.form.to.register |
| 4a40 | 20 61 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 61 20 6c 6f 63 61 6c 20 69 6e 73 74 61 6e 63 65 20 | .a.backend.for.a.local.instance. |
| 4a60 | 6f 66 20 4f 70 65 6e 20 57 65 62 20 55 49 20 73 65 72 76 65 64 20 76 69 61 20 68 74 74 70 20 6f | of.Open.Web.UI.served.via.http.o |
| 4a80 | 6e 20 70 6f 72 74 20 33 30 30 30 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | n.port.3000:..#+begin_src.emacs- |
| 4aa0 | 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4f 70 65 6e 57 65 62 | lisp.(gptel-make-openai."OpenWeb |
| 4ac0 | 55 49 22 0a 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 33 30 30 30 22 0a 20 20 3a | UI"...:host."localhost:3000"...: |
| 4ae0 | 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 3a 6b 65 79 20 22 4b 45 59 5f 46 4f 52 5f | protocol."http"...:key."KEY_FOR_ |
| 4b00 | 41 43 43 45 53 53 49 4e 47 5f 4f 50 45 4e 57 45 42 55 49 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 | ACCESSING_OPENWEBUI"...:endpoint |
| 4b20 | 20 22 2f 61 70 69 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 | ."/api/chat/completions"...:stre |
| 4b40 | 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 67 65 6d 6d 61 33 6e 3a 6c 61 74 65 73 74 | am.t...:models.'("gemma3n:latest |
| 4b60 | 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 4f 72 20 69 66 20 79 6f 75 20 61 72 65 20 72 75 6e | ")).#+end_src..Or.if.you.are.run |
| 4b80 | 6e 69 6e 67 20 4f 70 65 6e 20 57 65 62 20 55 49 20 6f 6e 20 61 6e 6f 74 68 65 72 20 68 6f 73 74 | ning.Open.Web.UI.on.another.host |
| 4ba0 | 20 6f 6e 20 79 6f 75 72 20 6c 6f 63 61 6c 20 6e 65 74 77 6f 72 6b 20 28 7e 62 6f 78 2e 6c 6f 63 | .on.your.local.network.(~box.loc |
| 4bc0 | 61 6c 7e 29 2c 20 73 65 72 76 69 6e 67 20 76 69 61 20 68 74 74 70 73 20 77 69 74 68 20 73 65 6c | al~),.serving.via.https.with.sel |
| 4be0 | 66 2d 73 69 67 6e 65 64 20 63 65 72 74 69 66 69 63 61 74 65 73 2c 20 74 68 69 73 20 77 69 6c 6c | f-signed.certificates,.this.will |
| 4c00 | 20 77 6f 72 6b 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 | .work:..#+begin_src.emacs-lisp.( |
| 4c20 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4f 70 65 6e 57 65 62 55 49 22 0a 20 20 | gptel-make-openai."OpenWebUI"... |
| 4c40 | 3a 68 6f 73 74 20 22 62 6f 78 2e 6c 6f 63 61 6c 22 0a 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 27 | :host."box.local"...:curl-args.' |
| 4c60 | 28 22 2d 2d 69 6e 73 65 63 75 72 65 22 29 20 3b 20 6e 65 65 64 65 64 20 66 6f 72 20 73 65 6c 66 | ("--insecure").;.needed.for.self |
| 4c80 | 2d 73 69 67 6e 65 64 20 63 65 72 74 73 0a 20 20 3a 6b 65 79 20 22 4b 45 59 5f 46 4f 52 5f 41 43 | -signed.certs...:key."KEY_FOR_AC |
| 4ca0 | 43 45 53 53 49 4e 47 5f 4f 50 45 4e 57 45 42 55 49 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 | CESSING_OPENWEBUI"...:endpoint." |
| 4cc0 | 2f 61 70 69 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 | /api/chat/completions"...:stream |
| 4ce0 | 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 67 65 6d 6d 61 33 6e 3a 6c 61 74 65 73 74 22 29 | .t...:models.'("gemma3n:latest") |
| 4d00 | 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 6f 20 66 69 6e 64 20 79 6f 75 72 20 41 50 49 20 6b 65 | ).#+end_src..To.find.your.API.ke |
| 4d20 | 79 20 69 6e 20 4f 70 65 6e 20 57 65 62 55 49 2c 20 63 6c 69 63 6b 20 74 68 65 20 75 73 65 72 20 | y.in.Open.WebUI,.click.the.user. |
| 4d40 | 6e 61 6d 65 20 69 6e 20 74 68 65 20 62 6f 74 74 6f 6d 20 6c 65 66 74 2c 20 53 65 74 74 69 6e 67 | name.in.the.bottom.left,.Setting |
| 4d60 | 73 2c 20 41 63 63 6f 75 6e 74 2c 20 61 6e 64 20 74 68 65 6e 20 53 68 6f 77 20 62 79 20 41 50 49 | s,.Account,.and.then.Show.by.API |
| 4d80 | 20 4b 65 79 73 20 73 65 63 74 69 6f 6e 2e 0a 0a 52 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 | .Keys.section...Refer.to.the.doc |
| 4da0 | 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 61 69 | umentation.of.=gptel-make-openai |
| 4dc0 | 3d 20 66 6f 72 20 6d 6f 72 65 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 | =.for.more.configuration.options |
| 4de0 | 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f | ...You.can.pick.this.backend.fro |
| 4e00 | 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 | m.the.menu.when.using.gptel.(see |
| 4e20 | 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 | .[[#usage][Usage]])..*****.(Opti |
| 4e40 | 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 | onal).Set.as.the.default.gptel.b |
| 4e60 | 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 | ackend..The.above.code.makes.the |
| 4e80 | 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 | .backend.available.to.select...I |
| 4ea0 | 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 | f.you.want.it.to.be.the.default. |
| 4ec0 | 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 | backend.for.gptel,.you.can.set.t |
| 4ee0 | 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 | his.as.the.value.of.=gptel-backe |
| 4f00 | 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 | nd=...Use.this.instead.of.the.ab |
| 4f20 | 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 | ove...#+begin_src.emacs-lisp.;;. |
| 4f40 | 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 | OPTIONAL.configuration.(setq..gp |
| 4f60 | 74 65 6c 2d 6d 6f 64 65 6c 20 22 67 65 6d 6d 61 33 6e 3a 6c 61 74 65 73 74 22 0a 20 67 70 74 65 | tel-model."gemma3n:latest"..gpte |
| 4f80 | 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 4f 70 | l-backend.(gptel-make-openai."Op |
| 4fa0 | 65 6e 57 65 62 55 49 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 | enWebUI"..................:host. |
| 4fc0 | 22 6c 6f 63 61 6c 68 6f 73 74 3a 33 30 30 30 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "localhost:3000"................ |
| 4fe0 | 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 20 20 20 20 20 | ..:protocol."http".............. |
| 5000 | 20 20 20 20 3a 6b 65 79 20 22 4b 45 59 5f 46 4f 52 5f 41 43 43 45 53 53 49 4e 47 5f 4f 50 45 4e | ....:key."KEY_FOR_ACCESSING_OPEN |
| 5020 | 57 45 42 55 49 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 69 6e | WEBUI"..................:endpoin |
| 5040 | 74 20 22 2f 61 70 69 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 | t."/api/chat/completions"....... |
| 5060 | 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........:stream.t............ |
| 5080 | 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 67 65 6d 6d 61 33 6e 3a 6c 61 74 65 73 74 22 | ......:models.'("gemma3n:latest" |
| 50a0 | 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 |
| 50c0 | 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a | >..#+html:.<details><summary>.** |
| 50e0 | 2a 2a 20 47 65 6d 69 6e 69 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 | **.Gemini.#+html:.</summary>..Re |
| 5100 | 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 | gister.a.backend.with..#+begin_s |
| 5120 | 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 3a 6b 65 79 20 63 61 6e 20 62 65 20 61 20 66 | rc.emacs-lisp.;;.:key.can.be.a.f |
| 5140 | 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 41 50 49 20 6b 65 79 | unction.that.returns.the.API.key |
| 5160 | 2e 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 20 22 47 65 6d 69 6e 69 22 20 3a 6b | ..(gptel-make-gemini."Gemini".:k |
| 5180 | 65 79 20 22 59 4f 55 52 5f 47 45 4d 49 4e 49 5f 41 50 49 5f 4b 45 59 22 20 3a 73 74 72 65 61 6d | ey."YOUR_GEMINI_API_KEY".:stream |
| 51a0 | 20 74 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 | .t).#+end_src..These.are.the.req |
| 51c0 | 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 |
| 51e0 | 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 67 65 6d 69 | ocumentation.of.=gptel-make-gemi |
| 5200 | 6e 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 | ni=.for.more...You.can.pick.this |
| 5220 | 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 |
| 5240 | 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]]). |
| 5260 | 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 |
| 5280 | 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 |
| 52a0 | 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 |
| 52c0 | 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. |
| 52e0 | 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 |
| 5300 | 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. |
| 5320 | 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 |
| 5340 | 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d | ad.of.the.above...#+begin_src.em |
| 5360 | 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 |
| 5380 | 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 65 6d 69 6e 69 2d 32 2e | on.(setq..gptel-model.'gemini-2. |
| 53a0 | 35 2d 70 72 6f 2d 65 78 70 2d 30 33 2d 32 35 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | 5-pro-exp-03-25..gptel-backend.( |
| 53c0 | 67 70 74 65 6c 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 | gptel-make-gemini."Gemini"...... |
| 53e0 | 20 20 20 20 20 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 | ............:key."YOUR_GEMINI_AP |
| 5400 | 49 5f 4b 45 59 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 | I_KEY"..................:stream. |
| 5420 | 74 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 | t)).#+end_src..#+html:.</details |
| 5440 | 3e 0a 0a 23 2b 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 | >..#+html:.<details>.#+html:.<su |
| 5460 | 6d 6d 61 72 79 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 | mmary>.****.Llama.cpp.or.Llamafi |
| 5480 | 6c 65 0a 23 2b 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 | le.#+html:.</summary>..(If.using |
| 54a0 | 20 61 20 6c 6c 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 | .a.llamafile,.run.a.[[https://gi |
| 54c0 | 74 68 75 62 2e 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 | thub.com/Mozilla-Ocho/llamafile# |
| 54e0 | 6f 74 68 65 72 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 | other-example-llamafiles][server |
| 5500 | 20 6c 6c 61 6d 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 | .llamafile]].instead.of.a."comma |
| 5520 | 6e 64 2d 6c 69 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 | nd-line.llamafile",.and.a.model. |
| 5540 | 74 68 61 74 20 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 | that.supports.text.generation.). |
| 5560 | 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 0a 23 2b 62 65 67 69 | .Register.a.backend.with..#+begi |
| 5580 | 6e 5f 73 72 63 20 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 | n_src.emacs-lisp.;;.Llama.cpp.of |
| 55a0 | 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 28 67 | fers.an.OpenAI.compatible.API.(g |
| 55c0 | 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 6c 6c 61 6d 61 2d 63 70 70 22 20 20 20 20 | ptel-make-openai."llama-cpp".... |
| 55e0 | 20 20 20 20 20 20 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 | ......;Any.name...:stream.t..... |
| 5600 | 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 20 | ........................;Stream. |
| 5620 | 72 65 73 70 6f 6e 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 | responses...:protocol."http"...: |
| 5640 | 68 6f 73 74 20 22 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 | host."localhost:8000"........... |
| 5660 | 20 20 20 20 20 3b 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 | .....;Llama.cpp.server.location. |
| 5680 | 20 20 3a 6d 6f 64 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 | ..:models.'(test)).............. |
| 56a0 | 20 20 20 20 20 20 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 | ......;Any.names,.doesn't.matter |
| 56c0 | 20 66 6f 72 20 4c 6c 61 6d 61 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 73 65 20 61 72 65 20 | .for.Llama.#+end_src..These.are. |
| 56e0 | 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 72 20 74 | the.required.parameters,.refer.t |
| 5700 | 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 2d 6d 61 | o.the.documentation.of.=gptel-ma |
| 5720 | 6b 65 2d 6f 70 65 6e 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 | ke-openai=.for.more...You.can.pi |
| 5740 | 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 | ck.this.backend.from.the.menu.wh |
| 5760 | 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 | en.using.gptel.(see.[[#usage][Us |
| 5780 | 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 61 73 20 | age]])..*****.(Optional).Set.as. |
| 57a0 | 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 |
| 57c0 | 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 |
| 57e0 | 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 |
| 5800 | 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 |
| 5820 | 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 |
| 5840 | 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 |
| 5860 | 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e | s.instead.of.the.above...#+begin |
| 5880 | 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 | _src.emacs-lisp.;;.OPTIONAL.conf |
| 58a0 | 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 20 27 | iguration.(setq..gptel-model...' |
| 58c0 | 74 65 73 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 | test..gptel-backend.(gptel-make- |
| 58e0 | 6f 70 65 6e 61 69 20 22 6c 6c 61 6d 61 2d 63 70 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | openai."llama-cpp".............. |
| 5900 | 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 20 20 20 3a | ....:stream.t..................: |
| 5920 | 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol."http"................. |
| 5940 | 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 30 22 0a 20 20 20 20 20 20 20 20 | .:host."localhost:8000"......... |
| 5960 | 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 74 65 73 74 29 29 29 0a 23 2b 65 6e 64 | .........:models.'(test))).#+end |
| 5980 | 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: |
| 59a0 | 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 4b 61 67 69 20 28 46 | .<details><summary>.****.Kagi.(F |
| 59c0 | 61 73 74 47 50 54 20 26 20 53 75 6d 6d 61 72 69 7a 65 72 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 | astGPT.&.Summarizer).#+html:.</s |
| 59e0 | 75 6d 6d 61 72 79 3e 0a 0a 4b 61 67 69 27 73 20 46 61 73 74 47 50 54 20 6d 6f 64 65 6c 20 61 6e | ummary>..Kagi's.FastGPT.model.an |
| 5a00 | 64 20 74 68 65 20 55 6e 69 76 65 72 73 61 6c 20 53 75 6d 6d 61 72 69 7a 65 72 20 61 72 65 20 62 | d.the.Universal.Summarizer.are.b |
| 5a20 | 6f 74 68 20 73 75 70 70 6f 72 74 65 64 2e 20 20 41 20 63 6f 75 70 6c 65 20 6f 66 20 6e 6f 74 65 | oth.supported...A.couple.of.note |
| 5a40 | 73 3a 0a 0a 31 2e 20 55 6e 69 76 65 72 73 61 6c 20 53 75 6d 6d 61 72 69 7a 65 72 3a 20 49 66 20 | s:..1..Universal.Summarizer:.If. |
| 5a60 | 74 68 65 72 65 20 69 73 20 61 20 55 52 4c 20 61 74 20 70 6f 69 6e 74 2c 20 74 68 65 20 73 75 6d | there.is.a.URL.at.point,.the.sum |
| 5a80 | 6d 61 72 69 7a 65 72 20 77 69 6c 6c 20 73 75 6d 6d 61 72 69 7a 65 20 74 68 65 20 63 6f 6e 74 65 | marizer.will.summarize.the.conte |
| 5aa0 | 6e 74 73 20 6f 66 20 74 68 65 20 55 52 4c 2e 20 20 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 | nts.of.the.URL...Otherwise.the.c |
| 5ac0 | 6f 6e 74 65 78 74 20 73 65 6e 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 69 73 20 74 68 65 20 | ontext.sent.to.the.model.is.the. |
| 5ae0 | 73 61 6d 65 20 61 73 20 61 6c 77 61 79 73 3a 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 | same.as.always:.the.buffer.text. |
| 5b00 | 75 70 74 6f 20 70 6f 69 6e 74 2c 20 6f 72 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 | upto.point,.or.the.contents.of.t |
| 5b20 | 68 65 20 72 65 67 69 6f 6e 20 69 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 | he.region.if.the.region.is.activ |
| 5b40 | 65 2e 0a 0a 32 2e 20 4b 61 67 69 20 6d 6f 64 65 6c 73 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 | e...2..Kagi.models.do.not.suppor |
| 5b60 | 74 20 6d 75 6c 74 69 2d 74 75 72 6e 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2c 20 69 6e 74 65 | t.multi-turn.conversations,.inte |
| 5b80 | 72 61 63 74 69 6f 6e 73 20 61 72 65 20 22 6f 6e 65 2d 73 68 6f 74 22 2e 20 20 54 68 65 79 20 61 | ractions.are."one-shot"...They.a |
| 5ba0 | 6c 73 6f 20 64 6f 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 | lso.do.not.support.streaming.res |
| 5bc0 | 70 6f 6e 73 65 73 2e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | ponses...Register.a.backend.with |
| 5be0 | 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 2d | ..#+begin_src.emacs-lisp.(gptel- |
| 5c00 | 6d 61 6b 65 2d 6b 61 67 69 20 22 4b 61 67 69 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | make-kagi."Kagi"................ |
| 5c20 | 20 20 20 20 3b 61 6e 79 20 6e 61 6d 65 0a 20 20 3a 6b 65 79 20 22 59 4f 55 52 5f 4b 41 47 49 5f | ....;any.name...:key."YOUR_KAGI_ |
| 5c40 | 41 50 49 5f 4b 45 59 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 | API_KEY")................;can.be |
| 5c60 | 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 |
| 5c80 | 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 73 65 20 61 72 65 20 74 68 65 20 72 65 71 75 69 72 | .#+end_src..These.are.the.requir |
| 5ca0 | 65 64 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 66 65 72 20 74 6f 20 74 68 65 20 64 6f 63 75 | ed.parameters,.refer.to.the.docu |
| 5cc0 | 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 6b 61 67 69 3d 20 66 | mentation.of.=gptel-make-kagi=.f |
| 5ce0 | 6f 72 20 6d 6f 72 65 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b | or.more...You.can.pick.this.back |
| 5d00 | 65 6e 64 20 61 6e 64 20 74 68 65 20 6d 6f 64 65 6c 20 28 66 61 73 74 67 70 74 2f 73 75 6d 6d 61 | end.and.the.model.(fastgpt/summa |
| 5d20 | 72 69 7a 65 72 29 20 66 72 6f 6d 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 77 | rizer).from.the.transient.menu.w |
| 5d40 | 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 | hen.using.gptel...*****.(Optiona |
| 5d60 | 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b | l).Set.as.the.default.gptel.back |
| 5d80 | 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 | end..The.above.code.makes.the.ba |
| 5da0 | 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 | ckend.available.to.select...If.y |
| 5dc0 | 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 | ou.want.it.to.be.the.default.bac |
| 5de0 | 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 | kend.for.gptel,.you.can.set.this |
| 5e00 | 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d | .as.the.value.of.=gptel-backend= |
| 5e20 | 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 | ...Use.this.instead.of.the.above |
| 5e40 | 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 | ...#+begin_src.emacs-lisp.;;.OPT |
| 5e60 | 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c | IONAL.configuration.(setq..gptel |
| 5e80 | 2d 6d 6f 64 65 6c 20 27 66 61 73 74 67 70 74 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | -model.'fastgpt..gptel-backend.( |
| 5ea0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 22 4b 61 67 69 22 0a 20 20 20 20 20 20 20 20 20 | gptel-make-kagi."Kagi".......... |
| 5ec0 | 20 20 20 20 20 20 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 | ........:key."YOUR_KAGI_API_KEY" |
| 5ee0 | 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 61 6c 74 65 72 6e 61 74 69 76 65 73 20 74 | )).#+end_src..The.alternatives.t |
| 5f00 | 6f 20 3d 66 61 73 74 67 70 74 3d 20 69 6e 63 6c 75 64 65 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 63 | o.=fastgpt=.include.=summarize:c |
| 5f20 | 65 63 69 6c 3d 2c 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 61 67 6e 65 73 3d 2c 20 3d 73 75 6d 6d 61 | ecil=,.=summarize:agnes=,.=summa |
| 5f40 | 72 69 7a 65 3a 64 61 70 68 6e 65 3d 20 61 6e 64 20 3d 73 75 6d 6d 61 72 69 7a 65 3a 6d 75 72 69 | rize:daphne=.and.=summarize:muri |
| 5f60 | 65 6c 3d 2e 20 20 54 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 20 74 68 65 | el=...The.difference.between.the |
| 5f80 | 20 73 75 6d 6d 61 72 69 7a 65 72 20 65 6e 67 69 6e 65 73 20 69 73 20 5b 5b 68 74 74 70 73 3a 2f | .summarizer.engines.is.[[https:/ |
| 5fa0 | 2f 68 65 6c 70 2e 6b 61 67 69 2e 63 6f 6d 2f 6b 61 67 69 2f 61 70 69 2f 73 75 6d 6d 61 72 69 7a | /help.kagi.com/kagi/api/summariz |
| 5fc0 | 65 72 2e 68 74 6d 6c 23 73 75 6d 6d 61 72 69 7a 61 74 69 6f 6e 2d 65 6e 67 69 6e 65 73 5d 5b 64 | er.html#summarization-engines][d |
| 5fe0 | 6f 63 75 6d 65 6e 74 65 64 20 68 65 72 65 5d 5d 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 | ocumented.here]]...#+html:.</det |
| 6000 | 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e | ails>.#+html:.<details><summary> |
| 6020 | 0a 2a 2a 2a 2a 20 74 6f 67 65 74 68 65 72 2e 61 69 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d | .****.together.ai.#+html:.</summ |
| 6040 | 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 | ary>..Register.a.backend.with..# |
| 6060 | 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 54 6f 67 65 74 68 65 | +begin_src.emacs-lisp.;;.Togethe |
| 6080 | 72 2e 61 69 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 | r.ai.offers.an.OpenAI.compatible |
| 60a0 | 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 54 6f 67 65 74 68 65 | .API.(gptel-make-openai."Togethe |
| 60c0 | 72 41 49 22 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a | rAI".........;Any.name.you.want. |
| 60e0 | 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 3a 6b 65 | ..:host."api.together.xyz"...:ke |
| 6100 | 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 20 20 | y."your-api-key"................ |
| 6120 | 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 | ...;can.be.a.function.that.retur |
| 6140 | 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 | ns.the.key...:stream.t...:models |
| 6160 | 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 6b 20 74 6f 67 65 74 | .'(;;.has.many.more,.check.toget |
| 6180 | 68 65 72 2e 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 | her.ai.............mistralai/Mix |
| 61a0 | 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 20 20 20 20 | tral-8x7B-Instruct-v0.1......... |
| 61c0 | 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 31 33 62 2d 49 6e 73 74 | ....codellama/CodeLlama-13b-Inst |
| 61e0 | 72 75 63 74 2d 68 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f | ruct-hf.............codellama/Co |
| 6200 | 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 0a 23 2b 65 6e 64 5f | deLlama-34b-Instruct-hf)).#+end_ |
| 6220 | 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 |
| 6240 | 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 |
| 6260 | 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 2a 20 28 4f 70 | ee.[[#usage][Usage]])..*****.(Op |
| 6280 | 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c | tional).Set.as.the.default.gptel |
| 62a0 | 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 | .backend..The.above.code.makes.t |
| 62c0 | 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 | he.backend.available.to.select.. |
| 62e0 | 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c | .If.you.want.it.to.be.the.defaul |
| 6300 | 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 | t.backend.for.gptel,.you.can.set |
| 6320 | 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 | .this.as.the.value.of.=gptel-bac |
| 6340 | 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 | kend=...Use.this.instead.of.the. |
| 6360 | 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b | above...#+begin_src.emacs-lisp.; |
| 6380 | 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 0a 20 | ;.OPTIONAL.configuration.(setq.. |
| 63a0 | 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 69 78 74 72 61 6c | gptel-model...'mistralai/Mixtral |
| 63c0 | 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 2d 62 61 63 6b 65 | -8x7B-Instruct-v0.1..gptel-backe |
| 63e0 | 6e 64 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 54 6f 67 65 74 68 65 72 | nd..(gptel-make-openai."Together |
| 6400 | 41 49 22 20 20 20 20 20 20 20 20 20 0a 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 74 6f 67 65 74 | AI".............:host."api.toget |
| 6420 | 68 65 72 2e 78 79 7a 22 0a 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 | her.xyz"....:key."your-api-key". |
| 6440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 0a | ......................:stream.t. |
| 6460 | 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 | ...:models.'(;;.has.many.more,.c |
| 6480 | 68 65 63 6b 20 74 6f 67 65 74 68 65 72 2e 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 | heck.together.ai..............mi |
| 64a0 | 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 74 2d 76 30 | stralai/Mixtral-8x7B-Instruct-v0 |
| 64c0 | 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c | .1..............codellama/CodeLl |
| 64e0 | 61 6d 61 2d 31 33 62 2d 49 6e 73 74 72 75 63 74 2d 68 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ama-13b-Instruct-hf............. |
| 6500 | 20 63 6f 64 65 6c 6c 61 6d 61 2f 43 6f 64 65 4c 6c 61 6d 61 2d 33 34 62 2d 49 6e 73 74 72 75 63 | .codellama/CodeLlama-34b-Instruc |
| 6520 | 74 2d 68 66 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 | t-hf))).#+end_src..#+html:.</det |
| 6540 | 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e | ails>.#+html:.<details><summary> |
| 6560 | 0a 2a 2a 2a 2a 20 41 6e 79 73 63 61 6c 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 | .****.Anyscale.#+html:.</summary |
| 6580 | 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 0a 23 2b 62 65 | >..Register.a.backend.with..#+be |
| 65a0 | 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 41 6e 79 73 63 61 6c 65 20 6f | gin_src.emacs-lisp.;;.Anyscale.o |
| 65c0 | 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 28 | ffers.an.OpenAI.compatible.API.( |
| 65e0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 41 6e 79 73 63 61 6c 65 22 20 20 20 20 | gptel-make-openai."Anyscale".... |
| 6600 | 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 | .......;Any.name.you.want...:hos |
| 6620 | 74 20 22 61 70 69 2e 65 6e 64 70 6f 69 6e 74 73 2e 61 6e 79 73 63 61 6c 65 2e 63 6f 6d 22 0a 20 | t."api.endpoints.anyscale.com".. |
| 6640 | 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 20 20 | .:key."your-api-key"............ |
| 6660 | 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 20 72 | .......;can.be.a.function.that.r |
| 6680 | 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 3b 3b 20 68 61 | eturns.the.key...:models.'(;;.ha |
| 66a0 | 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 20 | s.many.more,.check.anyscale..... |
| 66c0 | 20 20 20 20 20 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 | ........mistralai/Mixtral-8x7B-I |
| 66e0 | 6e 73 74 72 75 63 74 2d 76 30 2e 31 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 | nstruct-v0.1)).#+end_src..You.ca |
| 6700 | 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e | n.pick.this.backend.from.the.men |
| 6720 | 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 | u.when.using.gptel.(see.[[#usage |
| 6740 | 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 65 74 | ][Usage]])..*****.(Optional).Set |
| 6760 | 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 0a 54 | .as.the.default.gptel.backend..T |
| 6780 | 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 64 20 | he.above.code.makes.the.backend. |
| 67a0 | 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 61 6e | available.to.select...If.you.wan |
| 67c0 | 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 20 66 | t.it.to.be.the.default.backend.f |
| 67e0 | 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 74 68 | or.gptel,.you.can.set.this.as.th |
| 6800 | 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 73 65 | e.value.of.=gptel-backend=...Use |
| 6820 | 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 0a 23 2b 62 | .this.instead.of.the.above...#+b |
| 6840 | 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 | egin_src.emacs-lisp.;;.OPTIONAL. |
| 6860 | 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 6c | configuration.(setq..gptel-model |
| 6880 | 20 20 20 27 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 | ...'mistralai/Mixtral-8x7B-Instr |
| 68a0 | 75 63 74 2d 76 30 2e 31 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 28 67 70 74 65 6c 2d | uct-v0.1..gptel-backend..(gptel- |
| 68c0 | 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 41 6e 79 73 63 61 6c 65 22 0a 20 20 20 20 20 20 20 20 20 | make-openai."Anyscale".......... |
| 68e0 | 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 65 6e 64 70 6f 69 6e 74 73 2e 61 6e 79 | ........:host."api.endpoints.any |
| 6900 | 73 63 61 6c 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 | scale.com"..................:key |
| 6920 | 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."your-api-key"................. |
| 6940 | 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 68 65 | .:models.'(;;.has.many.more,.che |
| 6960 | 63 6b 20 61 6e 79 73 63 61 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ck.anyscale..................... |
| 6980 | 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 |
| 69a0 | 73 74 72 75 63 74 2d 76 30 2e 31 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c | struct-v0.1))).#+end_src..#+html |
| 69c0 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | :.</details>.#+html:.<details><s |
| 69e0 | 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 50 65 72 70 6c 65 78 69 74 79 0a 23 2b 68 74 6d 6c 3a 20 | ummary>.****.Perplexity.#+html:. |
| 6a00 | 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 | </summary>..Register.a.backend.w |
| 6a20 | 69 74 68 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 | ith..#+begin_src.emacs-lisp.(gpt |
| 6a40 | 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 20 22 50 65 72 70 6c 65 78 69 74 79 22 20 | el-make-perplexity."Perplexity". |
| 6a60 | 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 6b 65 79 20 22 79 | ....;Any.name.you.want...:key."y |
| 6a80 | 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 3b | our-api-key"...................; |
| 6aa0 | 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 74 | can.be.a.function.that.returns.t |
| 6ac0 | 68 65 20 6b 65 79 0a 20 20 3a 73 74 72 65 61 6d 20 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 | he.key...:stream.t)............. |
| 6ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 49 66 20 79 6f 75 20 77 61 6e 74 20 72 65 73 70 | ...............;If.you.want.resp |
| 6b00 | 6f 6e 73 65 73 20 74 6f 20 62 65 20 73 74 72 65 61 6d 65 64 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a | onses.to.be.streamed.#+end_src.. |
| 6b20 | 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 | You.can.pick.this.backend.from.t |
| 6b40 | 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b | he.menu.when.using.gptel.(see.[[ |
| 6b60 | 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 | #usage][Usage]])..*****.(Optiona |
| 6b80 | 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b | l).Set.as.the.default.gptel.back |
| 6ba0 | 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 | end..The.above.code.makes.the.ba |
| 6bc0 | 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 | ckend.available.to.select...If.y |
| 6be0 | 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 | ou.want.it.to.be.the.default.bac |
| 6c00 | 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 | kend.for.gptel,.you.can.set.this |
| 6c20 | 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d | .as.the.value.of.=gptel-backend= |
| 6c40 | 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 | ...Use.this.instead.of.the.above |
| 6c60 | 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 | ...#+begin_src.emacs-lisp.;;.OPT |
| 6c80 | 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 70 74 65 6c | IONAL.configuration.(setq..gptel |
| 6ca0 | 2d 6d 6f 64 65 6c 20 20 20 27 73 6f 6e 61 72 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | -model...'sonar..gptel-backend.( |
| 6cc0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 20 22 50 65 72 70 6c 65 78 69 74 | gptel-make-perplexity."Perplexit |
| 6ce0 | 79 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 | y"..................:key."your-a |
| 6d00 | 70 69 2d 6b 65 79 22 20 3a 73 74 72 65 61 6d 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 | pi-key".:stream.t)).#+end_src..# |
| 6d20 | 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 | +html:.</details>.#+html:.<detai |
| 6d40 | 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 | ls><summary>.****.Anthropic.(Cla |
| 6d60 | 75 64 65 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 52 65 67 69 73 74 65 72 | ude).#+html:.</summary>.Register |
| 6d80 | 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 | .a.backend.with..#+begin_src.ema |
| 6da0 | 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 | cs-lisp.(gptel-make-anthropic."C |
| 6dc0 | 6c 61 75 64 65 22 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 | laude"..........;Any.name.you.wa |
| 6de0 | 6e 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt...:stream.t.................. |
| 6e00 | 20 20 20 20 20 20 20 20 20 20 20 3b 53 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a | ...........;Streaming.responses. |
| 6e20 | 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 0a 23 2b 65 6e 64 5f 73 72 63 | ..:key."your-api-key").#+end_src |
| 6e40 | 0a 54 68 65 20 3d 3a 6b 65 79 3d 20 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 | .The.=:key=.can.be.a.function.th |
| 6e60 | 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 20 28 6d 6f 72 65 20 73 65 63 75 72 65 29 | at.returns.the.key.(more.secure) |
| 6e80 | 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f | ...You.can.pick.this.backend.fro |
| 6ea0 | 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 | m.the.menu.when.using.gptel.(see |
| 6ec0 | 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 | .[[#usage][Usage]])...*****.(Opt |
| 6ee0 | 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 | ional).Set.as.the.default.gptel. |
| 6f00 | 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 | backend..The.above.code.makes.th |
| 6f20 | 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 | e.backend.available.to.select... |
| 6f40 | 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 | If.you.want.it.to.be.the.default |
| 6f60 | 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 | .backend.for.gptel,.you.can.set. |
| 6f80 | 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b | this.as.the.value.of.=gptel-back |
| 6fa0 | 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 | end=...Use.this.instead.of.the.a |
| 6fc0 | 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b | bove...#+begin_src.emacs-lisp.;; |
| 6fe0 | 20 4f 50 54 49 4f 4e 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 28 73 65 74 71 0a 20 67 | .OPTIONAL.configuration.(setq..g |
| 7000 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 | ptel-model.'claude-3-sonnet-2024 |
| 7020 | 30 32 32 39 20 3b 20 20 22 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 22 | 0229.;.."claude-3-opus-20240229" |
| 7040 | 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 0a 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 | .also.available..gptel-backend.( |
| 7060 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 20 22 43 6c 61 75 64 65 22 0a 20 20 | gptel-make-anthropic."Claude"... |
| 7080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 20 3a 6b 65 79 20 22 79 | ...............:stream.t.:key."y |
| 70a0 | 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2a 2a 2a 2a 2a 20 | our-api-key")).#+end_src..*****. |
| 70c0 | 28 4f 70 74 69 6f 6e 61 6c 29 20 49 6e 74 65 72 69 6d 20 73 75 70 70 6f 72 74 20 66 6f 72 20 43 | (Optional).Interim.support.for.C |
| 70e0 | 6c 61 75 64 65 20 33 2e 37 20 53 6f 6e 6e 65 74 0a 0a 54 6f 20 75 73 65 20 43 6c 61 75 64 65 20 | laude.3.7.Sonnet..To.use.Claude. |
| 7100 | 33 2e 37 20 53 6f 6e 6e 65 74 20 6d 6f 64 65 6c 20 69 6e 20 69 74 73 20 22 74 68 69 6e 6b 69 6e | 3.7.Sonnet.model.in.its."thinkin |
| 7120 | 67 22 20 6d 6f 64 65 2c 20 79 6f 75 20 63 61 6e 20 64 65 66 69 6e 65 20 61 20 73 65 63 6f 6e 64 | g".mode,.you.can.define.a.second |
| 7140 | 20 43 6c 61 75 64 65 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 73 65 6c 65 63 74 20 69 74 20 76 69 | .Claude.backend.and.select.it.vi |
| 7160 | 61 20 74 68 65 20 55 49 20 6f 72 20 65 6c 69 73 70 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 | a.the.UI.or.elisp:..#+begin_src. |
| 7180 | 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 | emacs-lisp.(gptel-make-anthropic |
| 71a0 | 20 22 43 6c 61 75 64 65 2d 74 68 69 6e 6b 69 6e 67 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 | ."Claude-thinking".;Any.name.you |
| 71c0 | 20 77 61 6e 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 41 50 49 2d 6b 65 79 22 0a 20 20 3a 73 | .want...:key."your-API-key"...:s |
| 71e0 | 74 72 65 61 6d 20 74 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 | tream.t...:models.'(claude-sonne |
| 7200 | 74 2d 34 2d 32 30 32 35 30 35 31 34 20 63 6c 61 75 64 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 | t-4-20250514.claude-3-7-sonnet-2 |
| 7220 | 30 32 35 30 32 31 39 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 | 0250219)...:request-params.'(:th |
| 7240 | 69 6e 6b 69 6e 67 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 | inking.(:type."enabled".:budget_ |
| 7260 | 74 6f 6b 65 6e 73 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 | tokens.2048).................... |
| 7280 | 20 3a 6d 61 78 5f 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 | .:max_tokens.4096)).#+end_src..Y |
| 72a0 | 6f 75 20 63 61 6e 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 | ou.can.set.the.reasoning.budget. |
| 72c0 | 74 6f 6b 65 6e 73 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 | tokens.and.max.tokens.for.this.u |
| 72e0 | 73 61 67 65 20 76 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 | sage.via.the.=:budget_tokens=.an |
| 7300 | 64 20 3d 3a 6d 61 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 | d.=:max_tokens=.keys.here,.respe |
| 7320 | 63 74 69 76 65 6c 79 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 6f 6c 20 77 68 65 74 68 65 | ctively...You.can.control.whethe |
| 7340 | 72 2f 68 6f 77 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 6f 75 74 70 75 74 20 69 73 20 73 68 | r/how.the.reasoning.output.is.sh |
| 7360 | 6f 77 6e 20 76 69 61 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 6f 72 20 3d 67 70 74 65 6c 2d 69 | own.via.gptel's.menu.or.=gptel-i |
| 7380 | 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 3d 2c 20 73 65 65 20 5b 5b 23 68 61 6e 64 6c 65 | nclude-reasoning=,.see.[[#handle |
| 73a0 | 2d 72 65 61 73 6f 6e 69 6e 67 2d 63 6f 6e 74 65 6e 74 5d 5b 68 61 6e 64 6c 69 6e 67 20 72 65 61 | -reasoning-content][handling.rea |
| 73c0 | 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 5d 5d 2e 20 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 | soning.content]]....#+html:.</de |
| 73e0 | 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 | tails>.#+html:.<details><summary |
| 7400 | 3e 0a 2a 2a 2a 2a 20 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 | >.****.Groq.#+html:.</summary>.. |
| 7420 | 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e | Register.a.backend.with..#+begin |
| 7440 | 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 47 72 6f 71 20 6f 66 66 65 72 73 20 61 | _src.emacs-lisp.;;.Groq.offers.a |
| 7460 | 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 |
| 7480 | 61 6b 65 2d 6f 70 65 6e 61 69 20 22 47 72 6f 71 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ake-openai."Groq"............... |
| 74a0 | 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 2e | ;Any.name.you.want...:host."api. |
| 74c0 | 67 72 6f 71 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 76 | groq.com"...:endpoint."/openai/v |
| 74e0 | 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 0a | 1/chat/completions"...:stream.t. |
| 7500 | 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 20 | ..:key."your-api-key"........... |
| 7520 | 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 20 | ........;can.be.a.function.that. |
| 7540 | 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 6c 6c 61 6d | returns.the.key...:models.'(llam |
| 7560 | 61 2d 33 2e 31 2d 37 30 62 2d 76 65 72 73 61 74 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | a-3.1-70b-versatile............. |
| 7580 | 6c 6c 61 6d 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 | llama-3.1-8b-instant............ |
| 75a0 | 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 6c 6c 61 | .llama3-70b-8192.............lla |
| 75c0 | 6d 61 33 2d 38 62 2d 38 31 39 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 78 74 72 61 6c 2d | ma3-8b-8192.............mixtral- |
| 75e0 | 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6d 6d 61 2d 37 62 2d | 8x7b-32768.............gemma-7b- |
| 7600 | 69 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 | it)).#+end_src..You.can.pick.thi |
| 7620 | 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 |
| 7640 | 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]]) |
| 7660 | 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 47 72 6f 71 20 69 73 20 66 61 73 74 20 65 6e 6f 75 67 68 | ...Note.that.Groq.is.fast.enough |
| 7680 | 20 74 68 61 74 20 79 6f 75 20 63 6f 75 6c 64 20 65 61 73 69 6c 79 20 73 65 74 20 3d 3a 73 74 72 | .that.you.could.easily.set.=:str |
| 76a0 | 65 61 6d 20 6e 69 6c 3d 20 61 6e 64 20 73 74 69 6c 6c 20 67 65 74 20 6e 65 61 72 2d 69 6e 73 74 | eam.nil=.and.still.get.near-inst |
| 76c0 | 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 | ant.responses...*****.(Optional) |
| 76e0 | 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 |
| 7700 | 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 |
| 7720 | 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 |
| 7740 | 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 |
| 7760 | 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 |
| 7780 | 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=.. |
| 77a0 | 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.. |
| 77c0 | 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 |
| 77e0 | 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 |
| 7800 | 64 65 6c 20 20 20 27 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 | del...'mixtral-8x7b-32768....... |
| 7820 | 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- |
| 7840 | 6f 70 65 6e 61 69 20 22 47 72 6f 71 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 | openai."Groq".........:host."api |
| 7860 | 2e 67 72 6f 71 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 6f | .groq.com".........:endpoint."/o |
| 7880 | 70 65 6e 61 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 20 20 20 | penai/v1/chat/completions"...... |
| 78a0 | 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d | ...:stream.t.........:key."your- |
| 78c0 | 61 70 69 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 | api-key".........:models.'(llama |
| 78e0 | 2d 33 2e 31 2d 37 30 62 2d 76 65 72 73 61 74 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -3.1-70b-versatile.............. |
| 7900 | 20 20 20 20 20 6c 6c 61 6d 61 2d 33 2e 31 2d 38 62 2d 69 6e 73 74 61 6e 74 0a 20 20 20 20 20 20 | .....llama-3.1-8b-instant....... |
| 7920 | 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 37 30 62 2d 38 31 39 32 0a 20 20 20 20 | ............llama3-70b-8192..... |
| 7940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2d 38 62 2d 38 31 39 32 0a 20 20 20 | ..............llama3-8b-8192.... |
| 7960 | 20 20 20 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 36 | ...............mixtral-8x7b-3276 |
| 7980 | 38 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6d 6d 61 2d 37 62 2d 69 74 29 | 8...................gemma-7b-it) |
| 79a0 | 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> |
| 79c0 | 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>.**** |
| 79e0 | 20 4d 69 73 74 72 61 6c 20 4c 65 20 43 68 61 74 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | .Mistral.Le.Chat.#+html:.</summa |
| 7a00 | 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b | ry>..Register.a.backend.with..#+ |
| 7a20 | 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4d 69 73 74 72 61 6c 20 | begin_src.emacs-lisp.;;.Mistral. |
| 7a40 | 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a | offers.an.OpenAI.compatible.API. |
| 7a60 | 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4d 69 73 74 72 61 6c 4c 65 43 68 61 | (gptel-make-openai."MistralLeCha |
| 7a80 | 74 22 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 | t"..;Any.name.you.want...:host." |
| 7aa0 | 61 70 69 2e 6d 69 73 74 72 61 6c 2e 61 69 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 | api.mistral.ai"...:endpoint."/v1 |
| 7ac0 | 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 | /chat/completions"...:protocol." |
| 7ae0 | 68 74 74 70 73 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 | https"...:key."your-api-key".... |
| 7b00 | 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 | ...........;can.be.a.function.th |
| 7b20 | 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 | at.returns.the.key...:models.'(" |
| 7b40 | 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 | mistral-small")).#+end_src..You. |
| 7b60 | 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 |
| 7b80 | 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 |
| 7ba0 | 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 29 20 | ge][Usage]])...*****.(Optional). |
| 7bc0 | 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 64 | Set.as.the.default.gptel.backend |
| 7be0 | 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 65 | ..The.above.code.makes.the.backe |
| 7c00 | 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 20 | nd.available.to.select...If.you. |
| 7c20 | 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 6e | want.it.to.be.the.default.backen |
| 7c40 | 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 73 | d.for.gptel,.you.can.set.this.as |
| 7c60 | 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 20 | .the.value.of.=gptel-backend=... |
| 7c80 | 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 0a | Use.this.instead.of.the.above... |
| 7ca0 | 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 |
| 7cc0 | 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 64 | AL.configuration.(setq.gptel-mod |
| 7ce0 | 65 6c 20 20 20 27 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 0a 20 20 20 20 20 20 67 70 74 65 6c 2d | el...'mistral-small.......gptel- |
| 7d00 | 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 | backend.......(gptel-make-openai |
| 7d20 | 20 22 4d 69 73 74 72 61 6c 4c 65 43 68 61 74 22 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 | ."MistralLeChat"..;Any.name.you. |
| 7d40 | 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6d 69 73 74 72 61 6c 2e | want.........:host."api.mistral. |
| 7d60 | 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 31 2f 63 68 61 74 2f | ai".........:endpoint."/v1/chat/ |
| 7d80 | 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 | completions".........:protocol." |
| 7da0 | 68 74 74 70 73 22 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 | https".........:key."your-api-ke |
| 7dc0 | 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 65 20 61 20 66 75 6e 63 74 | y"...............;can.be.a.funct |
| 7de0 | 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 20 20 20 20 20 | ion.that.returns.the.key........ |
| 7e00 | 20 3a 6d 6f 64 65 6c 73 20 27 28 22 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 22 29 29 29 0a 23 2b | .:models.'("mistral-small"))).#+ |
| 7e20 | 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 68 74 | end_src..#+html:.</details>.#+ht |
| 7e40 | 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 0a 2a 2a 2a 2a 20 4f 70 65 | ml:.<details><summary>..****.Ope |
| 7e60 | 6e 52 6f 75 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 | nRouter.#+html:.</summary>..Regi |
| 7e80 | 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | ster.a.backend.with..#+begin_src |
| 7ea0 | 20 65 6d 61 63 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 | .emacs-lisp.;;.OpenRouter.offers |
| 7ec0 | 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 65 6c | .an.OpenAI.compatible.API.(gptel |
| 7ee0 | 2d 6d 61 6b 65 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 | -make-openai."OpenRouter"....... |
| 7f00 | 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f | ........;Any.name.you.want...:ho |
| 7f20 | 73 74 20 22 6f 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 | st."openrouter.ai"...:endpoint." |
| 7f40 | 2f 61 70 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 73 74 72 | /api/v1/chat/completions"...:str |
| 7f60 | 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 | eam.t...:key."your-api-key"..... |
| 7f80 | 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 |
| 7fa0 | 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 | .that.returns.the.key...:models. |
| 7fc0 | 27 28 6f 70 65 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 | '(openai/gpt-3.5-turbo.......... |
| 7fe0 | 20 20 20 6d 69 73 74 72 61 6c 61 69 2f 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 69 6e 73 74 72 75 | ...mistralai/mixtral-8x7b-instru |
| 8000 | 63 74 0a 20 20 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 | ct.............meta-llama/codell |
| 8020 | 61 6d 61 2d 33 34 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 64 | ama-34b-instruct.............cod |
| 8040 | 65 6c 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 | ellama/codellama-70b-instruct... |
| 8060 | 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 63 68 61 74 | ..........google/palm-2-codechat |
| 8080 | 2d 62 69 73 6f 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 | -bison-32k.............google/ge |
| 80a0 | 6d 69 6e 69 2d 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 | mini-pro))..#+end_src..You.can.p |
| 80c0 | 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 | ick.this.backend.from.the.menu.w |
| 80e0 | 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 | hen.using.gptel.(see.[[#usage][U |
| 8100 | 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 | sage]])...*****.(Optional).Set.a |
| 8120 | 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 | s.the.default.gptel.backend..The |
| 8140 | 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 | .above.code.makes.the.backend.av |
| 8160 | 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 | ailable.to.select...If.you.want. |
| 8180 | 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 | it.to.be.the.default.backend.for |
| 81a0 | 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 | .gptel,.you.can.set.this.as.the. |
| 81c0 | 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 | value.of.=gptel-backend=...Use.t |
| 81e0 | 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 0a 23 2b 62 65 67 | his.instead.of.the.above...#+beg |
| 8200 | 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 |
| 8220 | 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 64 65 6c 20 20 20 | nfiguration.(setq.gptel-model... |
| 8240 | 27 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 33 32 37 36 38 0a 20 20 20 20 20 20 67 70 74 65 6c 2d | 'mixtral-8x7b-32768.......gptel- |
| 8260 | 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 | backend.......(gptel-make-openai |
| 8280 | 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 20 20 20 3b 41 6e 79 | ."OpenRouter"...............;Any |
| 82a0 | 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6f 70 | .name.you.want.........:host."op |
| 82c0 | 65 6e 72 6f 75 74 65 72 2e 61 69 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 | enrouter.ai".........:endpoint." |
| 82e0 | 2f 61 70 69 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 20 20 20 20 | /api/v1/chat/completions"....... |
| 8300 | 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 | ..:stream.t.........:key."your-a |
| 8320 | 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 | pi-key"...................;can.b |
| 8340 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 | e.a.function.that.returns.the.ke |
| 8360 | 79 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6f 70 65 6e 61 69 2f 67 70 74 2d 33 | y.........:models.'(openai/gpt-3 |
| 8380 | 2e 35 2d 74 75 72 62 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 73 74 72 | .5-turbo...................mistr |
| 83a0 | 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 20 20 20 | alai/mixtral-8x7b-instruct...... |
| 83c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d | .............meta-llama/codellam |
| 83e0 | 61 2d 33 34 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a-34b-instruct.................. |
| 8400 | 20 63 6f 64 65 6c 6c 61 6d 61 2f 63 6f 64 65 6c 6c 61 6d 61 2d 37 30 62 2d 69 6e 73 74 72 75 63 | .codellama/codellama-70b-instruc |
| 8420 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 6f 6f 67 6c 65 2f 70 61 6c 6d 2d | t...................google/palm- |
| 8440 | 32 2d 63 6f 64 65 63 68 61 74 2d 62 69 73 6f 6e 2d 33 32 6b 0a 20 20 20 20 20 20 20 20 20 20 20 | 2-codechat-bison-32k............ |
| 8460 | 20 20 20 20 20 20 20 67 6f 6f 67 6c 65 2f 67 65 6d 69 6e 69 2d 70 72 6f 29 29 29 0a 0a 23 2b 65 | .......google/gemini-pro)))..#+e |
| 8480 | 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d | nd_src..#+html:.</details>.#+htm |
| 84a0 | 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 72 69 76 61 | l:.<details><summary>.****.Priva |
| 84c0 | 74 65 47 50 54 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 | teGPT.#+html:.</summary>..Regist |
| 84e0 | 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 | er.a.backend.with..#+begin_src.e |
| 8500 | 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 | macs-lisp.(gptel-make-privategpt |
| 8520 | 20 22 70 72 69 76 61 74 65 47 50 54 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 | ."privateGPT"...............;Any |
| 8540 | 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 | .name.you.want...:protocol."http |
| 8560 | 22 0a 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 0a 20 20 3a 73 74 | "...:host."localhost:8001"...:st |
| 8580 | 72 65 61 6d 20 74 0a 20 20 3a 63 6f 6e 74 65 78 74 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 | ream.t...:context.t............. |
| 85a0 | 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 6f 76 | ...............;Use.context.prov |
| 85c0 | 69 64 65 64 20 62 79 20 65 6d 62 65 64 64 69 6e 67 73 0a 20 20 3a 73 6f 75 72 63 65 73 20 74 20 | ided.by.embeddings...:sources.t. |
| 85e0 | 20 20 20 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 52 65 74 75 | ...........................;Retu |
| 8600 | 72 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 73 6f 75 72 63 65 20 64 6f 63 75 | rn.information.about.source.docu |
| 8620 | 6d 65 6e 74 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 0a | ments...:models.'(private-gpt)). |
| 8640 | 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 |
| 8660 | 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 |
| 8680 | 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a | ptel.(see.[[#usage][Usage]])...* |
| 86a0 | 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 | ****.(Optional).Set.as.the.defau |
| 86c0 | 6c 74 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 | lt.gptel.backend..The.above.code |
| 86e0 | 20 6d 61 6b 65 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 | .makes.the.backend.available.to. |
| 8700 | 73 65 6c 65 63 74 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 | select...If.you.want.it.to.be.th |
| 8720 | 65 20 64 65 66 61 75 6c 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 | e.default.backend.for.gptel,.you |
| 8740 | 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 | .can.set.this.as.the.value.of.=g |
| 8760 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 | ptel-backend=...Use.this.instead |
| 8780 | 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 | .of.the.above...#+begin_src.emac |
| 87a0 | 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 |
| 87c0 | 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 70 72 69 76 61 74 65 2d 67 70 | .(setq.gptel-model...'private-gp |
| 87e0 | 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 | t.......gptel-backend.......(gpt |
| 8800 | 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 20 22 70 72 69 76 61 74 65 47 50 54 22 20 | el-make-privategpt."privateGPT". |
| 8820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 | ..............;Any.name.you.want |
| 8840 | 0a 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 0a 20 20 20 20 20 20 | .........:protocol."http"....... |
| 8860 | 20 20 3a 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 0a 20 20 20 20 20 20 20 | ..:host."localhost:8001"........ |
| 8880 | 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 20 74 20 20 20 | .:stream.t.........:context.t... |
| 88a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 55 73 65 20 63 6f | .........................;Use.co |
| 88c0 | 6e 74 65 78 74 20 70 72 6f 76 69 64 65 64 20 62 79 20 65 6d 62 65 64 64 69 6e 67 73 0a 20 20 20 | ntext.provided.by.embeddings.... |
| 88e0 | 20 20 20 20 20 3a 73 6f 75 72 63 65 73 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....:sources.t................. |
| 8900 | 20 20 20 20 20 20 20 20 20 20 20 3b 52 65 74 75 72 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 | ...........;Return.information.a |
| 8920 | 62 6f 75 74 20 73 6f 75 72 63 65 20 64 6f 63 75 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 3a 6d | bout.source.documents.........:m |
| 8940 | 6f 64 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 29 0a 0a 23 2b 65 6e 64 5f 73 72 | odels.'(private-gpt)))..#+end_sr |
| 8960 | 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 64 | c..#+html:.</details>.#+html:.<d |
| 8980 | 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 65 65 70 53 65 65 6b 0a 23 | etails><summary>.****.DeepSeek.# |
| 89a0 | 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 61 | +html:.</summary>..Register.a.ba |
| 89c0 | 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 | ckend.with..#+begin_src.emacs-li |
| 89e0 | 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 70 53 65 65 | sp.(gptel-make-deepseek."DeepSee |
| 8a00 | 6b 22 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 73 | k".......;Any.name.you.want...:s |
| 8a20 | 74 72 65 61 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tream.t......................... |
| 8a40 | 20 20 3b 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 6b 65 | ..;for.streaming.responses...:ke |
| 8a60 | 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y."your-api-key")............... |
| 8a80 | 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. |
| 8aa0 | 74 68 65 20 6b 65 79 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 | the.key.#+end_src..You.can.pick. |
| 8ac0 | 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 | this.backend.from.the.menu.when. |
| 8ae0 | 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 | using.gptel.(see.[[#usage][Usage |
| 8b00 | 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 | ]])...*****.(Optional).Set.as.th |
| 8b20 | 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 62 6f | e.default.gptel.backend..The.abo |
| 8b40 | 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 6c 61 | ve.code.makes.the.backend.availa |
| 8b60 | 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 20 74 | ble.to.select...If.you.want.it.t |
| 8b80 | 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 70 74 | o.be.the.default.backend.for.gpt |
| 8ba0 | 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 6c 75 | el,.you.can.set.this.as.the.valu |
| 8bc0 | 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 73 20 | e.of.=gptel-backend=...Use.this. |
| 8be0 | 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 | instead.of.the.above...#+begin_s |
| 8c00 | 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 67 | rc.emacs-lisp.;;.OPTIONAL.config |
| 8c20 | 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 64 65 65 | uration.(setq.gptel-model...'dee |
| 8c40 | 70 73 65 65 6b 2d 72 65 61 73 6f 6e 65 72 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 | pseek-reasoner.......gptel-backe |
| 8c60 | 6e 64 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 20 22 44 65 65 70 53 65 65 | nd.(gptel-make-deepseek."DeepSee |
| 8c80 | 6b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d | k".......................:stream |
| 8ca0 | 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 | .t.......................:key."y |
| 8cc0 | 6f 75 72 2d 61 70 69 2d 6b 65 79 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c | our-api-key")).#+end_src..#+html |
| 8ce0 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | :.</details>.#+html:.<details><s |
| 8d00 | 75 6d 6d 61 72 79 3e 0a 0a 2a 2a 2a 2a 20 53 61 6d 62 61 6e 6f 76 61 20 28 44 65 65 70 73 65 65 | ummary>..****.Sambanova.(Deepsee |
| 8d20 | 6b 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 53 61 6d 62 61 6e 6f 76 61 20 | k).#+html:.</summary>.Sambanova. |
| 8d40 | 6f 66 66 65 72 73 20 76 61 72 69 6f 75 73 20 4c 4c 4d 73 20 74 68 72 6f 75 67 68 20 74 68 65 69 | offers.various.LLMs.through.thei |
| 8d60 | 72 20 53 61 6d 62 61 20 4e 6f 76 61 20 43 6c 6f 75 64 20 6f 66 66 65 72 69 6e 67 2c 20 77 69 74 | r.Samba.Nova.Cloud.offering,.wit |
| 8d80 | 68 20 44 65 65 70 73 65 65 6b 2d 52 31 20 62 65 69 6e 67 20 6f 6e 65 20 6f 66 20 74 68 65 6d 2e | h.Deepseek-R1.being.one.of.them. |
| 8da0 | 20 54 68 65 20 74 6f 6b 65 6e 20 73 70 65 65 64 20 66 6f 72 20 44 65 65 70 73 65 65 6b 20 52 31 | .The.token.speed.for.Deepseek.R1 |
| 8dc0 | 20 76 69 61 20 53 61 6d 62 61 6e 6f 76 61 20 69 73 20 61 62 6f 75 74 20 36 20 74 69 6d 65 73 20 | .via.Sambanova.is.about.6.times. |
| 8de0 | 66 61 73 74 65 72 20 74 68 61 6e 20 77 68 65 6e 20 61 63 63 65 73 73 65 64 20 74 68 72 6f 75 67 | faster.than.when.accessed.throug |
| 8e00 | 68 20 64 65 65 70 73 65 65 6b 2e 63 6f 6d 20 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b | h.deepseek.com...Register.a.back |
| 8e20 | 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 | end.with..#+begin_src.emacs-lisp |
| 8e40 | 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 53 61 6d 62 61 6e 6f 76 61 22 20 | .(gptel-make-openai."Sambanova". |
| 8e60 | 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 3a 68 6f 73 | .......;Any.name.you.want...:hos |
| 8e80 | 74 20 22 61 70 69 2e 73 61 6d 62 61 6e 6f 76 61 2e 61 69 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 | t."api.sambanova.ai"...:endpoint |
| 8ea0 | 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 0a 20 20 3a 73 74 72 65 61 | ."/v1/chat/completions"...:strea |
| 8ec0 | 6d 20 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f | m.t..........................;fo |
| 8ee0 | 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 3a 6b 65 79 20 22 79 6f | r.streaming.responses...:key."yo |
| 8f00 | 75 72 2d 61 70 69 2d 6b 65 79 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 61 6e 20 62 | ur-api-key"...............;can.b |
| 8f20 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 | e.a.function.that.returns.the.ke |
| 8f40 | 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 44 65 65 70 53 65 65 6b 2d 52 31 29 29 0a 23 2b 65 6e | y...:models.'(DeepSeek-R1)).#+en |
| 8f60 | 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 64 | d_src..You.can.pick.this.backend |
| 8f80 | 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 20 | .from.the.menu.when.using.gptel. |
| 8fa0 | 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 20 | (see.[[#usage][Usage]])...*****. |
| 8fc0 | 28 4f 70 74 69 6f 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 | (Optional).Set.as.the.default.gp |
| 8fe0 | 74 65 6c 20 62 61 63 6b 65 6e 64 0a 54 68 65 20 63 6f 64 65 20 61 62 6f 76 65 73 20 6d 61 6b 65 | tel.backend.The.code.aboves.make |
| 9000 | 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 73 65 6c 65 | s.the.backend.available.for.sele |
| 9020 | 63 74 69 6f 6e 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 | ction...If.you.want.it.to.be.the |
| 9040 | 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. |
| 9060 | 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 |
| 9080 | 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 2e 20 20 41 64 64 20 74 68 65 73 65 20 74 77 6f 20 6c 69 6e | tel-backend=...Add.these.two.lin |
| 90a0 | 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 20 0a 0a 23 2b 62 65 | es.to.your.configuration:...#+be |
| 90c0 | 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f 50 54 49 4f 4e 41 4c 20 63 | gin_src.emacs-lisp.;;.OPTIONAL.c |
| 90e0 | 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c | onfiguration...(setq.gptel-model |
| 9100 | 20 27 44 65 65 70 53 65 65 6b 2d 52 31 29 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 62 61 63 | .'DeepSeek-R1)...(setq.gptel-bac |
| 9120 | 6b 65 6e 64 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 22 53 61 6d 62 61 6e 6f | kend.(gptel-get-backend."Sambano |
| 9140 | 76 61 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 | va")).#+end_src..#+html:.</detai |
| 9160 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 0a | ls>.#+html:.<details><summary>.. |
| 9180 | 2a 2a 2a 2a 20 43 65 72 65 62 72 61 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e | ****.Cerebras.#+html:.</summary> |
| 91a0 | 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 0a 23 2b 62 65 67 | ..Register.a.backend.with..#+beg |
| 91c0 | 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 43 65 72 65 62 72 61 73 20 6f 66 | in_src.emacs-lisp.;;.Cerebras.of |
| 91e0 | 66 65 72 73 20 61 6e 20 69 6e 73 74 61 6e 74 20 4f 70 65 6e 41 49 20 63 6f 6d 70 61 74 69 62 6c | fers.an.instant.OpenAI.compatibl |
| 9200 | 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 43 65 72 65 62 72 | e.API.(gptel-make-openai."Cerebr |
| 9220 | 61 73 22 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 63 65 72 65 62 72 61 73 2e 61 69 22 0a 20 20 | as"...:host."api.cerebras.ai"... |
| 9240 | 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 | :endpoint."/v1/chat/completions" |
| 9260 | 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 20 20 20 | ...:stream.t.................... |
| 9280 | 20 20 20 20 20 20 20 20 20 3b 6f 70 74 69 6f 6e 61 6c 6c 79 20 6e 69 6c 20 61 73 20 43 65 72 65 | .........;optionally.nil.as.Cere |
| 92a0 | 62 72 61 73 20 69 73 20 69 6e 73 74 61 6e 74 20 41 49 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d | bras.is.instant.AI...:key."your- |
| 92c0 | 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 3b 63 61 6e 20 | api-key"...................;can. |
| 92e0 | 62 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b | be.a.function.that.returns.the.k |
| 9300 | 65 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 33 2e 31 2d 37 30 62 0a 20 20 20 20 | ey...:models.'(llama3.1-70b..... |
| 9320 | 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2e 31 2d 38 62 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a | ........llama3.1-8b)).#+end_src. |
| 9340 | 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 | .You.can.pick.this.backend.from. |
| 9360 | 74 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b | the.menu.when.using.gptel.(see.[ |
| 9380 | 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 65 5d 5d 29 2e 0a 0a 2a 2a 2a 2a 2a 20 28 4f 70 74 69 6f | [#usage][Usage]])...*****.(Optio |
| 93a0 | 6e 61 6c 29 20 53 65 74 20 61 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c 20 62 61 | nal).Set.as.the.default.gptel.ba |
| 93c0 | 63 6b 65 6e 64 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 64 65 20 6d 61 6b 65 73 20 74 68 65 20 | ckend..The.above.code.makes.the. |
| 93e0 | 62 61 63 6b 65 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 73 65 6c 65 63 74 2e 20 20 49 66 | backend.available.to.select...If |
| 9400 | 20 79 6f 75 20 77 61 6e 74 20 69 74 20 74 6f 20 62 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 62 | .you.want.it.to.be.the.default.b |
| 9420 | 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 | ackend.for.gptel,.you.can.set.th |
| 9440 | 69 73 20 61 73 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e | is.as.the.value.of.=gptel-backen |
| 9460 | 64 3d 2e 20 20 55 73 65 20 74 68 69 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f | d=...Use.this.instead.of.the.abo |
| 9480 | 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 3b 3b 20 4f | ve...#+begin_src.emacs-lisp.;;.O |
| 94a0 | 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 70 74 65 | PTIONAL.configuration.(setq.gpte |
| 94c0 | 6c 2d 6d 6f 64 65 6c 20 20 20 27 6c 6c 61 6d 61 33 2e 31 2d 38 62 0a 20 20 20 20 20 20 67 70 74 | l-model...'llama3.1-8b.......gpt |
| 94e0 | 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 6f 70 65 | el-backend.......(gptel-make-ope |
| 9500 | 6e 61 69 20 22 43 65 72 65 62 72 61 73 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 | nai."Cerebras".........:host."ap |
| 9520 | 69 2e 63 65 72 65 62 72 61 73 2e 61 69 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 | i.cerebras.ai".........:endpoint |
| 9540 | 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 20 20 20 20 20 | ."/v1/chat/completions"......... |
| 9560 | 3a 73 74 72 65 61 6d 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 | :stream.nil.........:key."your-a |
| 9580 | 70 69 2d 6b 65 79 22 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6c 6c 61 6d 61 33 | pi-key".........:models.'(llama3 |
| 95a0 | 2e 31 2d 37 30 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 6c 61 6d 61 33 2e | .1-70b...................llama3. |
| 95c0 | 31 2d 38 62 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 | 1-8b))).#+end_src..#+html:.</det |
| 95e0 | 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e | ails>.#+html:.<details><summary> |
| 9600 | 0a 2a 2a 2a 2a 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 | .****.Github.Models.#+html:.</su |
| 9620 | 6d 6d 61 72 79 3e 0a 0a 4e 4f 54 45 3a 20 20 5b 5b 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 67 69 | mmary>..NOTE:..[[https://docs.gi |
| 9640 | 74 68 75 62 2e 63 6f 6d 2f 65 6e 2f 67 69 74 68 75 62 2d 6d 6f 64 65 6c 73 2f 61 62 6f 75 74 2d | thub.com/en/github-models/about- |
| 9660 | 67 69 74 68 75 62 2d 6d 6f 64 65 6c 73 5d 5b 47 69 74 48 75 62 20 4d 6f 64 65 6c 73 5d 5d 20 69 | github-models][GitHub.Models]].i |
| 9680 | 73 20 2f 6e 6f 74 2f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 21 20 20 49 66 20 79 6f 75 20 | s./not/.GitHub.Copilot!..If.you. |
| 96a0 | 77 61 6e 74 20 74 6f 20 75 73 65 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 63 68 61 74 20 | want.to.use.GitHub.Copilot.chat. |
| 96c0 | 76 69 61 20 67 70 74 65 6c 2c 20 6c 6f 6f 6b 20 61 74 20 74 68 65 20 69 6e 73 74 72 75 63 74 69 | via.gptel,.look.at.the.instructi |
| 96e0 | 6f 6e 73 20 66 6f 72 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 20 62 65 6c 6f 77 | ons.for.GitHub.CopilotChat.below |
| 9700 | 20 69 6e 73 74 65 61 64 2e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 | .instead...Register.a.backend.wi |
| 9720 | 74 68 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 20 20 3b 3b 20 | th..#+begin_src.emacs-lisp...;;. |
| 9740 | 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 6e 41 49 20 63 | Github.Models.offers.an.OpenAI.c |
| 9760 | 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e | ompatible.API...(gptel-make-open |
| 9780 | 61 69 20 22 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 | ai."Github.Models".;Any.name.you |
| 97a0 | 20 77 61 6e 74 0a 20 20 20 20 3a 68 6f 73 74 20 22 6d 6f 64 65 6c 73 2e 69 6e 66 65 72 65 6e 63 | .want.....:host."models.inferenc |
| 97c0 | 65 2e 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f | e.ai.azure.com".....:endpoint."/ |
| 97e0 | 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e 3d 32 30 32 | chat/completions?api-version=202 |
| 9800 | 34 2d 30 35 2d 30 31 2d 70 72 65 76 69 65 77 22 0a 20 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 | 4-05-01-preview".....:stream.t.. |
| 9820 | 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 | ...:key."your-github-token"..... |
| 9840 | 3a 6d 6f 64 65 6c 73 20 27 28 67 70 74 2d 34 6f 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f | :models.'(gpt-4o)).#+end_src..Yo |
| 9860 | 75 20 77 69 6c 6c 20 6e 65 65 64 20 74 6f 20 63 72 65 61 74 65 20 61 20 67 69 74 68 75 62 20 5b | u.will.need.to.create.a.github.[ |
| 9880 | 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 70 65 72 | [https://github.com/settings/per |
| 98a0 | 73 6f 6e 61 6c 2d 61 63 63 65 73 73 2d 74 6f 6b 65 6e 73 5d 5b 74 6f 6b 65 6e 5d 5d 2e 0a 0a 46 | sonal-access-tokens][token]]...F |
| 98c0 | 6f 72 20 61 6c 6c 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 73 2c 20 63 68 65 | or.all.the.available.models,.che |
| 98e0 | 63 6b 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 6d 61 72 6b | ck.the.[[https://github.com/mark |
| 9900 | 65 74 70 6c 61 63 65 2f 6d 6f 64 65 6c 73 5d 5b 6d 61 72 6b 65 74 70 6c 61 63 65 5d 5d 2e 0a 0a | etplace/models][marketplace]]... |
| 9920 | 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 | You.can.pick.this.backend.from.t |
| 9940 | 68 65 20 6d 65 6e 75 20 77 68 65 6e 20 75 73 69 6e 67 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 | he.menu.when.using.(see.[[#usage |
| 9960 | 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 29 20 53 65 | ][Usage]])...*****.(Optional).Se |
| 9980 | 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 0a | t.as.the.default.gptel.backend.. |
| 99a0 | 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 64 | The.above.code.makes.the.backend |
| 99c0 | 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 61 | .available.to.select...If.you.wa |
| 99e0 | 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 20 | nt.it.to.be.the.default.backend. |
| 9a00 | 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 74 | for.gptel,.you.can.set.this.as.t |
| 9a20 | 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 73 | he.value.of.=gptel-backend=...Us |
| 9a40 | 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 0a 23 2b | e.this.instead.of.the.above...#+ |
| 9a60 | 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 3b 3b 20 4f 50 54 49 4f 4e | begin_src.emacs-lisp...;;.OPTION |
| 9a80 | 41 4c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 0a 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d | AL.configuration...(setq.gptel-m |
| 9aa0 | 6f 64 65 6c 20 20 27 67 70 74 2d 34 6f 0a 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b | odel..'gpt-4o.........gptel-back |
| 9ac0 | 65 6e 64 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 | end.........(gptel-make-openai." |
| 9ae0 | 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 22 20 3b 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e | Github.Models".;Any.name.you.wan |
| 9b00 | 74 0a 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 6d 6f 64 65 6c 73 2e 69 6e 66 65 72 65 | t...........:host."models.infere |
| 9b20 | 6e 63 65 2e 61 69 2e 61 7a 75 72 65 2e 63 6f 6d 22 0a 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 | nce.ai.azure.com"...........:end |
| 9b40 | 70 6f 69 6e 74 20 22 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 3f 61 70 69 2d 76 65 72 | point."/chat/completions?api-ver |
| 9b60 | 73 69 6f 6e 3d 32 30 32 34 2d 30 35 2d 30 31 2d 70 72 65 76 69 65 77 22 0a 20 20 20 20 20 20 20 | sion=2024-05-01-preview"........ |
| 9b80 | 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 | ...:stream.t...........:key."you |
| 9ba0 | 72 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c | r-github-token"...........:model |
| 9bc0 | 73 20 27 28 67 70 74 2d 34 6f 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 | s.'(gpt-4o)).#+end_src..#+html:. |
| 9be0 | 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 |
| 9c00 | 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 4e 6f 76 69 74 61 20 41 49 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 | mary>.****.Novita.AI.#+html:.</s |
| 9c20 | 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 | ummary>..Register.a.backend.with |
| 9c40 | 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 3b 3b 20 4e 6f 76 69 | ..#+begin_src.emacs-lisp.;;.Novi |
| 9c60 | 74 61 20 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 62 6c | ta.AI.offers.an.OpenAI.compatibl |
| 9c80 | 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 4e 6f 76 69 74 61 | e.API.(gptel-make-openai."Novita |
| 9ca0 | 41 49 22 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 | AI".........;Any.name.you.want.. |
| 9cc0 | 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 3a 65 6e 64 70 6f 69 | .:host."api.novita.ai"...:endpoi |
| 9ce0 | 6e 74 20 22 2f 76 33 2f 6f 70 65 6e 61 69 22 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 | nt."/v3/openai"...:key."your-api |
| 9d00 | 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. |
| 9d20 | 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. |
| 9d40 | 20 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 | ..:stream.t...:models.'(;;.has.m |
| 9d60 | 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 |
| 9d80 | 69 2f 6c 6c 6d 2d 61 70 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 72 79 70 68 65 2f 6d 79 74 | i/llm-api.............gryphe/myt |
| 9da0 | 68 6f 6d 61 78 2d 6c 32 2d 31 33 62 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c | homax-l2-13b.............meta-ll |
| 9dc0 | 61 6d 61 2f 6c 6c 61 6d 61 2d 33 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 | ama/llama-3-70b-instruct........ |
| 9de0 | 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 69 6e | .....meta-llama/llama-3.1-70b-in |
| 9e00 | 73 74 72 75 63 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b | struct)).#+end_src..You.can.pick |
| 9e20 | 20 74 68 69 73 20 62 61 63 6b 65 6e 64 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 77 68 65 6e | .this.backend.from.the.menu.when |
| 9e40 | 20 75 73 69 6e 67 20 67 70 74 65 6c 20 28 73 65 65 20 5b 5b 23 75 73 61 67 65 5d 5b 55 73 61 67 | .using.gptel.(see.[[#usage][Usag |
| 9e60 | 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 61 73 20 74 68 | e]])..*****.(Optional).Set.as.th |
| 9e80 | 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 62 6f | e.default.gptel.backend..The.abo |
| 9ea0 | 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 6c 61 | ve.code.makes.the.backend.availa |
| 9ec0 | 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 20 74 | ble.to.select...If.you.want.it.t |
| 9ee0 | 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 70 74 | o.be.the.default.backend.for.gpt |
| 9f00 | 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 6c 75 | el,.you.can.set.this.as.the.valu |
| 9f20 | 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 73 20 | e.of.=gptel-backend=...Use.this. |
| 9f40 | 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 | instead.of.the.above...#+begin_s |
| 9f60 | 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 67 | rc.emacs-lisp.;;.OPTIONAL.config |
| 9f80 | 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 20 27 67 72 | uration.(setq..gptel-model...'gr |
| 9fa0 | 79 70 68 65 2f 6d 79 74 68 6f 6d 61 78 2d 6c 32 2d 31 33 62 0a 20 67 70 74 65 6c 2d 62 61 63 6b | yphe/mythomax-l2-13b..gptel-back |
| 9fc0 | 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 4e 6f 76 69 74 61 41 | end..(gptel-make-openai."NovitaA |
| 9fe0 | 49 22 20 20 20 20 20 20 20 20 20 0a 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6e 6f 76 69 74 61 | I".............:host."api.novita |
| a000 | 2e 61 69 22 0a 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 33 2f 6f 70 65 6e 61 69 22 0a 20 | .ai"....:endpoint."/v3/openai".. |
| a020 | 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 20 | ..:key."your-api-key"........... |
| a040 | 20 20 20 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 | ............:stream.t....:models |
| a060 | 20 27 28 3b 3b 20 68 61 73 20 6d 61 6e 79 20 6d 6f 72 65 2c 20 63 68 65 63 6b 20 68 74 74 70 73 | .'(;;.has.many.more,.check.https |
| a080 | 3a 2f 2f 6e 6f 76 69 74 61 2e 61 69 2f 6c 6c 6d 2d 61 70 69 0a 20 20 20 20 20 20 20 20 20 20 20 | ://novita.ai/llm-api............ |
| a0a0 | 20 20 6d 69 73 74 72 61 6c 61 69 2f 4d 69 78 74 72 61 6c 2d 38 78 37 42 2d 49 6e 73 74 72 75 63 | ..mistralai/Mixtral-8x7B-Instruc |
| a0c0 | 74 2d 76 30 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c | t-v0.1..............meta-llama/l |
| a0e0 | 6c 61 6d 61 2d 33 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | lama-3-70b-instruct............. |
| a100 | 20 6d 65 74 61 2d 6c 6c 61 6d 61 2f 6c 6c 61 6d 61 2d 33 2e 31 2d 37 30 62 2d 69 6e 73 74 72 75 | .meta-llama/llama-3.1-70b-instru |
| a120 | 63 74 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 | ct))).#+end_src..#+html:.</detai |
| a140 | 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a | ls>.#+html:.<details><summary>.* |
| a160 | 2a 2a 2a 20 78 41 49 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 | ***.xAI.#+html:.</summary>..Regi |
| a180 | 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | ster.a.backend.with..#+begin_src |
| a1a0 | 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 20 22 78 41 49 | .emacs-lisp.(gptel-make-xai."xAI |
| a1c0 | 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 6e 79 20 6e 61 6d 65 20 79 | "...................;.Any.name.y |
| a1e0 | 6f 75 20 77 61 6e 74 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 | ou.want...:stream.t...:key."your |
| a200 | 2d 61 70 69 2d 6b 65 79 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 61 | -api-key")..................;.ca |
| a220 | 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 74 68 65 | n.be.a.function.that.returns.the |
| a240 | 20 6b 65 79 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 | .key.#+end_src..You.can.pick.thi |
| a260 | 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 |
| a280 | 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]]) |
| a2a0 | 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 |
| a2c0 | 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 |
| a2e0 | 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. |
| a300 | 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 |
| a320 | 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,. |
| a340 | 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 |
| a360 | 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 |
| a380 | 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 | ead.of.the.above...#+begin_src.e |
| a3a0 | 6d 61 63 73 2d 6c 69 73 70 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 72 6f | macs-lisp.(setq.gptel-model.'gro |
| a3c0 | 6b 2d 33 2d 6c 61 74 65 73 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 | k-3-latest.......gptel-backend.. |
| a3e0 | 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 20 22 78 41 49 22 20 20 20 20 20 20 | .....(gptel-make-xai."xAI"...... |
| a400 | 20 20 20 20 20 20 20 20 20 3b 20 41 6e 79 20 6e 61 6d 65 20 79 6f 75 20 77 61 6e 74 0a 20 20 20 | .........;.Any.name.you.want.... |
| a420 | 20 20 20 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b 65 79 22 20 3b 20 63 61 6e 20 62 | .....:key."your-api-key".;.can.b |
| a440 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 | e.a.function.that.returns.the.ke |
| a460 | 79 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a | y.........:stream.t)).#+end_src. |
| a480 | 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 | .#+html:.</details>.#+html:.<det |
| a4a0 | 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 49 2f 4d 4c 20 41 50 49 0a 23 2b | ails><summary>.****.AI/ML.API.#+ |
| a4c0 | 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 41 49 2f 4d 4c 20 41 50 49 20 70 72 6f 76 | html:.</summary>..AI/ML.API.prov |
| a4e0 | 69 64 65 73 20 33 30 30 2b 20 41 49 20 6d 6f 64 65 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 44 65 | ides.300+.AI.models.including.De |
| a500 | 65 70 73 65 65 6b 2c 20 47 65 6d 69 6e 69 2c 20 43 68 61 74 47 50 54 2e 20 54 68 65 20 6d 6f 64 | epseek,.Gemini,.ChatGPT..The.mod |
| a520 | 65 6c 73 20 72 75 6e 20 61 74 20 65 6e 74 65 72 70 72 69 73 65 2d 67 72 61 64 65 20 72 61 74 65 | els.run.at.enterprise-grade.rate |
| a540 | 20 6c 69 6d 69 74 73 20 61 6e 64 20 75 70 74 69 6d 65 73 2e 0a 0a 52 65 67 69 73 74 65 72 20 61 | .limits.and.uptimes...Register.a |
| a560 | 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 | .backend.with..#+begin_src.emacs |
| a580 | 2d 6c 69 73 70 0a 3b 3b 20 41 49 2f 4d 4c 20 41 50 49 20 6f 66 66 65 72 73 20 61 6e 20 4f 70 65 | -lisp.;;.AI/ML.API.offers.an.Ope |
| a5a0 | 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 2d 6f | nAI.compatible.API.(gptel-make-o |
| a5c0 | 70 65 6e 61 69 20 22 41 49 2f 4d 4c 20 41 50 49 22 20 20 20 20 20 20 20 20 3b 41 6e 79 20 6e 61 | penai."AI/ML.API"........;Any.na |
| a5e0 | 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 61 69 6d 6c 61 70 69 | me.you.want...:host."api.aimlapi |
| a600 | 2e 63 6f 6d 22 0a 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 6f 6d 70 | .com"...:endpoint."/v1/chat/comp |
| a620 | 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 79 6f 75 | letions"...:stream.t...:key."you |
| a640 | 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 3b 63 61 6e 20 62 | r-api-key"................;can.b |
| a660 | 65 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 | e.a.function.that.returns.the.ke |
| a680 | 79 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 64 65 65 70 73 65 65 6b 2d 63 68 61 74 20 67 65 6d 69 | y...:models.'(deepseek-chat.gemi |
| a6a0 | 6e 69 2d 70 72 6f 20 67 70 74 2d 34 6f 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 63 | ni-pro.gpt-4o)).#+end_src..You.c |
| a6c0 | 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 65 | an.pick.this.backend.from.the.me |
| a6e0 | 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 67 | nu.when.using.gptel.(see.[[#usag |
| a700 | 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 29 20 53 | e][Usage]])...*****.(Optional).S |
| a720 | 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. |
| a740 | 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 |
| a760 | 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 |
| a780 | 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 |
| a7a0 | 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. |
| a7c0 | 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 |
| a7e0 | 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 0a 23 | se.this.instead.of.the.above...# |
| a800 | 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 41 | +begin_src.emacs-lisp.;;.OPTIONA |
| a820 | 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 64 65 | L.configuration.(setq.gptel-mode |
| a840 | 6c 20 27 67 70 74 2d 34 6f 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 | l.'gpt-4o.......gptel-backend... |
| a860 | 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 41 49 2f 4d 4c 20 41 50 | ....(gptel-make-openai."AI/ML.AP |
| a880 | 49 22 0a 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 61 69 6d 6c 61 70 69 2e 63 6f | I".........:host."api.aimlapi.co |
| a8a0 | 6d 22 0a 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 2f 76 31 2f 63 68 61 74 2f 63 | m".........:endpoint."/v1/chat/c |
| a8c0 | 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 6d 20 74 0a 20 20 | ompletions".........:stream.t... |
| a8e0 | 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 20 20 20 20 20 20 | ......:key."your-api-key"....... |
| a900 | 20 20 3a 6d 6f 64 65 6c 73 20 27 28 64 65 65 70 73 65 65 6b 2d 63 68 61 74 20 67 65 6d 69 6e 69 | ..:models.'(deepseek-chat.gemini |
| a920 | 2d 70 72 6f 20 67 70 74 2d 34 6f 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 2b 68 74 6d 6c | -pro.gpt-4o))).#+end_src..#+html |
| a940 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | :.</details>.#+html:.<details><s |
| a960 | 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 43 68 61 74 0a | ummary>.****.GitHub.CopilotChat. |
| a980 | 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 |
| a9a0 | 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c | ackend.with..#+begin_src.emacs-l |
| a9c0 | 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 20 22 43 6f 70 69 | isp.(gptel-make-gh-copilot."Copi |
| a9e0 | 6c 6f 74 22 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 59 6f 75 20 77 69 6c 6c 20 62 65 20 69 6e 66 | lot").#+end_src..You.will.be.inf |
| aa00 | 6f 72 6d 65 64 20 74 6f 20 6c 6f 67 69 6e 20 69 6e 74 6f 20 3d 47 69 74 48 75 62 3d 20 61 73 20 | ormed.to.login.into.=GitHub=.as. |
| aa20 | 72 65 71 75 69 72 65 64 2e 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 69 73 20 62 61 63 6b | required..You.can.pick.this.back |
| aa40 | 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 |
| aa60 | 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]])...*** |
| aa80 | 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 |
| aaa0 | 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 |
| aac0 | 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 |
| aae0 | 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. |
| ab00 | 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 |
| ab20 | 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 |
| ab40 | 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 |
| ab60 | 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | f.the.above...#+begin_src.emacs- |
| ab80 | 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.( |
| aba0 | 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 63 6c 61 75 64 65 2d 33 2e 37 2d 73 6f 6e | setq.gptel-model.'claude-3.7-son |
| abc0 | 6e 65 74 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 6d | net.......gptel-backend.(gptel-m |
| abe0 | 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 20 22 43 6f 70 69 6c 6f 74 22 29 29 0a 23 2b 65 6e 64 | ake-gh-copilot."Copilot")).#+end |
| ac00 | 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: |
| ac20 | 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 41 57 53 20 42 65 64 | .<details><summary>.****.AWS.Bed |
| ac40 | 72 6f 63 6b 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 52 65 67 69 73 74 65 | rock.#+html:.</summary>..Registe |
| ac60 | 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d | r.a.backend.with..#+begin_src.em |
| ac80 | 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 20 22 41 57 | acs-lisp.(gptel-make-bedrock."AW |
| aca0 | 53 22 0a 20 20 3b 3b 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 65 6e 61 62 6c 65 20 73 74 72 65 61 6d | S"...;;.optionally.enable.stream |
| acc0 | 69 6e 67 0a 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 3a 72 65 67 69 6f 6e 20 22 61 70 2d 6e 6f | ing...:stream.t...:region."ap-no |
| ace0 | 72 74 68 65 61 73 74 2d 31 22 0a 20 20 3b 3b 20 73 75 62 73 65 74 20 6f 66 20 67 70 74 65 6c 2d | rtheast-1"...;;.subset.of.gptel- |
| ad00 | 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 63 6c 61 75 | -bedrock-models...:models.'(clau |
| ad20 | 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 29 0a 20 20 3b 3b 20 4d 6f 64 65 6c | de-sonnet-4-20250514)...;;.Model |
| ad40 | 20 72 65 67 69 6f 6e 20 66 6f 72 20 63 72 6f 73 73 2d 72 65 67 69 6f 6e 20 69 6e 66 65 72 65 6e | .region.for.cross-region.inferen |
| ad60 | 63 65 20 70 72 6f 66 69 6c 65 73 2e 20 52 65 71 75 69 72 65 64 20 66 6f 72 20 6d 6f 64 65 6c 73 | ce.profiles..Required.for.models |
| ad80 | 20 73 75 63 68 0a 20 20 3b 3b 20 61 73 20 43 6c 61 75 64 65 20 77 69 74 68 6f 75 74 20 6f 6e 2d | .such...;;.as.Claude.without.on- |
| ada0 | 64 65 6d 61 6e 64 20 74 68 72 6f 75 67 68 70 75 74 20 73 75 70 70 6f 72 74 2e 20 4f 6e 65 20 6f | demand.throughput.support..One.o |
| adc0 | 66 20 27 61 70 61 63 2c 20 27 65 75 20 6f 72 20 27 75 73 2e 0a 20 20 3b 3b 20 68 74 74 70 73 3a | f.'apac,.'eu.or.'us....;;.https: |
| ade0 | 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 | //docs.aws.amazon.com/bedrock/la |
| ae00 | 74 65 73 74 2f 75 73 65 72 67 75 69 64 65 2f 69 6e 66 65 72 65 6e 63 65 2d 70 72 6f 66 69 6c 65 | test/userguide/inference-profile |
| ae20 | 73 2d 75 73 65 2e 68 74 6d 6c 0a 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 27 61 70 61 63 | s-use.html...:model-region.'apac |
| ae40 | 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 20 42 65 64 72 6f 63 6b 20 62 61 63 6b 65 6e 64 | ).#+end_src..The.Bedrock.backend |
| ae60 | 20 67 65 74 73 20 79 6f 75 72 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 72 6f 6d 20 | .gets.your.AWS.credentials.from. |
| ae80 | 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 2e 20 49 74 20 65 78 | the.environment.variables..It.ex |
| aea0 | 70 65 63 74 73 20 74 6f 20 66 69 6e 64 20 65 69 74 68 65 72 0a 7e 41 57 53 5f 41 43 43 45 53 53 | pects.to.find.either.~AWS_ACCESS |
| aec0 | 5f 4b 45 59 5f 49 44 7e 2c 20 7e 41 57 53 5f 53 45 43 52 45 54 5f 41 43 43 45 53 53 5f 4b 45 59 | _KEY_ID~,.~AWS_SECRET_ACCESS_KEY |
| aee0 | 7e 2c 20 7e 41 57 53 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e 7e 20 28 6f 70 74 69 6f 6e 61 6c | ~,.~AWS_SESSION_TOKEN~.(optional |
| af00 | 29 2c 20 6f 72 20 69 66 20 70 72 65 73 65 6e 74 2c 20 63 61 6e 20 75 73 65 20 7e 41 57 53 5f 50 | ),.or.if.present,.can.use.~AWS_P |
| af20 | 52 4f 46 49 4c 45 7e 20 74 6f 20 67 65 74 20 74 68 65 73 65 20 64 69 72 65 63 74 6c 79 20 66 72 | ROFILE~.to.get.these.directly.fr |
| af40 | 6f 6d 20 74 68 65 20 7e 61 77 73 7e 20 63 6c 69 2e 0a 0a 4e 4f 54 45 3a 20 54 68 65 20 42 65 64 | om.the.~aws~.cli...NOTE:.The.Bed |
| af60 | 72 6f 63 6b 20 62 61 63 6b 65 6e 64 20 6e 65 65 64 73 20 63 75 72 6c 20 3e 3d 20 38 2e 35 20 69 | rock.backend.needs.curl.>=.8.5.i |
| af80 | 6e 20 6f 72 64 65 72 20 66 6f 72 20 74 68 65 20 73 69 67 76 34 20 73 69 67 6e 69 6e 67 20 74 6f | n.order.for.the.sigv4.signing.to |
| afa0 | 20 77 6f 72 6b 20 70 72 6f 70 65 72 6c 79 2c 0a 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | .work.properly,.https://github.c |
| afc0 | 6f 6d 2f 63 75 72 6c 2f 63 75 72 6c 2f 69 73 73 75 65 73 2f 31 31 37 39 34 0a 0a 41 6e 20 65 72 | om/curl/curl/issues/11794..An.er |
| afe0 | 72 6f 72 20 77 69 6c 6c 20 62 65 20 73 69 67 6e 61 6c 6c 65 64 20 69 66 20 7e 67 70 74 65 6c 2d | ror.will.be.signalled.if.~gptel- |
| b000 | 63 75 72 6c 7e 20 69 73 20 7e 4e 49 4c 7e 2e 0a 0a 59 6f 75 20 63 61 6e 20 70 69 63 6b 20 74 68 | curl~.is.~NIL~...You.can.pick.th |
| b020 | 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 |
| b040 | 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]] |
| b060 | 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. |
| b080 | 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 |
| b0a0 | 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 |
| b0c0 | 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. |
| b0e0 | 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 |
| b100 | 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. |
| b120 | 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 |
| b140 | 73 74 65 61 64 20 6f 66 20 74 68 65 20 61 62 6f 76 65 2e 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 | stead.of.the.above...#+begin_src |
| b160 | 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 |
| b180 | 61 74 69 6f 6e 0a 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 20 20 27 63 6c 61 75 64 | ation.(setq.gptel-model...'claud |
| b1a0 | 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 0a 20 20 20 20 20 20 67 70 74 65 6c 2d | e-sonnet-4-20250514.......gptel- |
| b1c0 | 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 | backend.......(gptel-make-bedroc |
| b1e0 | 6b 20 22 41 57 53 22 0a 20 20 20 20 20 20 20 20 3b 3b 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 65 6e | k."AWS".........;;.optionally.en |
| b200 | 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 74 | able.streaming.........:stream.t |
| b220 | 0a 20 20 20 20 20 20 20 20 3a 72 65 67 69 6f 6e 20 22 61 70 2d 6e 6f 72 74 68 65 61 73 74 2d 31 | .........:region."ap-northeast-1 |
| b240 | 22 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 75 62 73 65 74 20 6f 66 20 67 70 74 65 6c 2d 2d 62 65 | ".........;;.subset.of.gptel--be |
| b260 | 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 63 | drock-models.........:models.'(c |
| b280 | 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 29 0a 20 20 20 20 20 20 20 | laude-sonnet-4-20250514)........ |
| b2a0 | 20 3b 3b 20 4d 6f 64 65 6c 20 72 65 67 69 6f 6e 20 66 6f 72 20 63 72 6f 73 73 2d 72 65 67 69 6f | .;;.Model.region.for.cross-regio |
| b2c0 | 6e 20 69 6e 66 65 72 65 6e 63 65 20 70 72 6f 66 69 6c 65 73 2e 20 52 65 71 75 69 72 65 64 20 66 | n.inference.profiles..Required.f |
| b2e0 | 6f 72 20 6d 6f 64 65 6c 73 20 73 75 63 68 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 73 20 43 6c 61 | or.models.such.........;;.as.Cla |
| b300 | 75 64 65 20 77 69 74 68 6f 75 74 20 6f 6e 2d 64 65 6d 61 6e 64 20 74 68 72 6f 75 67 68 70 75 74 | ude.without.on-demand.throughput |
| b320 | 20 73 75 70 70 6f 72 74 2e 20 4f 6e 65 20 6f 66 20 27 61 70 61 63 2c 20 27 65 75 20 6f 72 20 27 | .support..One.of.'apac,.'eu.or.' |
| b340 | 75 73 2e 0a 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e | us..........;;.https://docs.aws. |
| b360 | 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 75 73 65 72 67 75 | amazon.com/bedrock/latest/usergu |
| b380 | 69 64 65 2f 69 6e 66 65 72 65 6e 63 65 2d 70 72 6f 66 69 6c 65 73 2d 75 73 65 2e 68 74 6d 6c 0a | ide/inference-profiles-use.html. |
| b3a0 | 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 27 61 70 61 63 29 29 0a 23 2b | ........:model-region.'apac)).#+ |
| b3c0 | 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 68 74 | end_src..#+html:.</details>.#+ht |
| b3e0 | 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 4d 6f 6f 6e | ml:.<details><summary>.****.Moon |
| b400 | 73 68 6f 74 20 28 4b 69 6d 69 29 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a | shot.(Kimi).#+html:.</summary>.. |
| b420 | 52 65 67 69 73 74 65 72 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 0a 0a 23 2b 62 65 67 69 6e | Register.a.backend.with..#+begin |
| b440 | 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 6f 70 65 6e | _src.emacs-lisp.(gptel-make-open |
| b460 | 61 69 20 22 4d 6f 6f 6e 73 68 6f 74 22 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6d 6f 6f 6e 73 | ai."Moonshot"...:host."api.moons |
| b480 | 68 6f 74 2e 63 6e 22 20 3b 3b 20 6f 72 20 22 61 70 69 2e 6d 6f 6f 6e 73 68 6f 74 2e 61 69 22 20 | hot.cn".;;.or."api.moonshot.ai". |
| b4a0 | 66 6f 72 20 74 68 65 20 67 6c 6f 62 61 6c 20 73 69 74 65 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 | for.the.global.site...:key."your |
| b4c0 | 2d 61 70 69 2d 6b 65 79 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 3b 3b 20 6f 70 74 69 6f 6e 61 | -api-key"...:stream.t.;;.optiona |
| b4e0 | 6c 6c 79 20 65 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 | lly.enable.streaming...:models.' |
| b500 | 28 6b 69 6d 69 2d 6c 61 74 65 73 74 20 6b 69 6d 69 2d 6b 32 2d 30 37 31 31 2d 70 72 65 76 69 65 | (kimi-latest.kimi-k2-0711-previe |
| b520 | 77 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 53 65 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 | w)).#+end_src..See.[[https://pla |
| b540 | 74 66 6f 72 6d 2e 6d 6f 6f 6e 73 68 6f 74 2e 61 69 2f 64 6f 63 73 2f 70 72 69 63 69 6e 67 2f 63 | tform.moonshot.ai/docs/pricing/c |
| b560 | 68 61 74 5d 5b 4d 6f 6f 6e 73 68 6f 74 2e 61 69 20 64 6f 63 75 6d 65 6e 74 5d 5d 20 66 6f 72 20 | hat][Moonshot.ai.document]].for. |
| b580 | 61 20 63 6f 6d 70 6c 65 74 65 20 6c 69 73 74 20 6f 66 20 6d 6f 64 65 6c 73 2e 0a 0a 2a 2a 2a 2a | a.complete.list.of.models...**** |
| b5a0 | 2a 20 28 4f 70 74 69 6f 6e 61 6c 29 20 55 73 65 20 74 68 65 20 62 75 69 6c 74 69 6e 20 73 65 61 | *.(Optional).Use.the.builtin.sea |
| b5c0 | 72 63 68 20 74 6f 6f 6c 0a 0a 4d 6f 6f 6e 73 68 6f 74 20 73 75 70 70 6f 72 74 73 20 61 20 62 75 | rch.tool..Moonshot.supports.a.bu |
| b5e0 | 69 6c 74 69 6e 20 73 65 61 72 63 68 20 74 6f 6f 6c 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 | iltin.search.tool.that.does.not. |
| b600 | 72 65 71 75 69 72 65 73 20 74 68 65 20 75 73 65 72 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 | requires.the.user.to.provide.the |
| b620 | 20 74 6f 6f 6c 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2e 20 54 6f 20 75 73 65 20 74 68 61 | .tool.implementation..To.use.tha |
| b640 | 74 2c 20 79 6f 75 20 66 69 72 73 74 20 6e 65 65 64 20 74 6f 20 64 65 66 69 6e 65 20 74 68 65 20 | t,.you.first.need.to.define.the. |
| b660 | 74 6f 6f 6c 20 61 6e 64 20 61 64 64 20 74 6f 20 3d 67 70 74 65 6c 2d 74 6f 6f 6c 73 3d 20 28 77 | tool.and.add.to.=gptel-tools=.(w |
| b680 | 68 69 6c 65 20 69 74 20 64 6f 65 73 20 6e 6f 74 20 72 65 71 75 69 72 65 73 20 74 68 65 20 63 6c | hile.it.does.not.requires.the.cl |
| b6a0 | 69 65 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 73 65 61 72 63 68 20 69 6d 70 6c 65 | ient.to.provide.the.search.imple |
| b6c0 | 6d 65 6e 74 61 74 69 6f 6e 2c 20 69 74 20 64 6f 65 73 20 65 78 70 65 63 74 73 20 74 68 65 20 63 | mentation,.it.does.expects.the.c |
| b6e0 | 6c 69 65 6e 74 20 74 6f 20 72 65 70 6c 79 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 6d 65 73 73 61 | lient.to.reply.a.tool.call.messa |
| b700 | 67 65 20 77 69 74 68 20 69 74 73 20 67 69 76 65 6e 20 61 72 67 75 6d 65 6e 74 2c 20 74 6f 20 62 | ge.with.its.given.argument,.to.b |
| b720 | 65 20 63 6f 6e 73 69 73 74 65 6e 74 20 77 69 74 68 20 6f 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c | e.consistent.with.other.tool.cal |
| b740 | 6c 73 29 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 73 65 | ls):..#+begin_src.emacs-lisp.(se |
| b760 | 74 71 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 28 6c 69 73 74 20 28 67 70 74 65 | tq.gptel-tools.......(list.(gpte |
| b780 | 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 22 | l-make-tool..............:name." |
| b7a0 | 24 77 65 62 5f 73 65 61 72 63 68 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 66 75 6e 63 74 | $web_search"..............:funct |
| b7c0 | 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 65 61 72 63 68 5f 72 65 | ion.(lambda.(&optional.search_re |
| b7e0 | 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | sult)..........................( |
| b800 | 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | json-serialize.................. |
| b820 | 20 20 20 20 20 20 20 20 20 60 28 3a 73 65 61 72 63 68 5f 72 65 73 75 6c 74 20 2c 73 65 61 72 63 | .........`(:search_result.,searc |
| b840 | 68 5f 72 65 73 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 | h_result)))..............:descri |
| b860 | 70 74 69 6f 6e 20 22 4d 6f 6f 6e 73 68 6f 74 20 62 75 69 6c 74 69 6e 20 77 65 62 20 73 65 61 72 | ption."Moonshot.builtin.web.sear |
| b880 | 63 68 2e 20 4f 6e 6c 79 20 75 73 61 62 6c 65 20 62 79 20 6d 6f 6f 6e 73 68 6f 74 20 6d 6f 64 65 | ch..Only.usable.by.moonshot.mode |
| b8a0 | 6c 20 28 6b 69 6d 69 29 2c 20 69 67 6e 6f 72 65 20 74 68 69 73 20 69 66 20 79 6f 75 20 61 72 65 | l.(kimi),.ignore.this.if.you.are |
| b8c0 | 20 6e 6f 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 27 28 28 3a 6e 61 | .not."..............:args.'((:na |
| b8e0 | 6d 65 20 22 73 65 61 72 63 68 5f 72 65 73 75 6c 74 22 20 3a 74 79 70 65 20 6f 62 6a 65 63 74 20 | me."search_result".:type.object. |
| b900 | 3a 6f 70 74 69 6f 6e 61 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 74 65 | :optional.t))..............:cate |
| b920 | 67 6f 72 79 20 22 77 65 62 22 29 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 54 68 65 6e 20 79 6f | gory."web"))).#+end_src..Then.yo |
| b940 | 75 20 61 6c 73 6f 20 6e 65 65 64 20 74 6f 20 61 64 64 20 74 68 65 20 74 6f 6f 6c 20 64 65 63 6c | u.also.need.to.add.the.tool.decl |
| b960 | 61 72 61 74 69 6f 6e 20 76 69 61 20 3d 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 3d 20 62 65 | aration.via.=:request-params=.be |
| b980 | 63 61 75 73 65 20 69 74 20 6e 65 65 64 73 20 61 20 73 70 65 63 69 61 6c 20 3d 62 75 69 6c 74 69 | cause.it.needs.a.special.=builti |
| b9a0 | 6e 5f 66 75 6e 63 74 69 6f 6e 3d 20 74 79 70 65 3a 0a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 | n_function=.type:..#+begin_src.e |
| b9c0 | 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 20 22 4d 6f | macs-lisp.(gptel-make-openai."Mo |
| b9e0 | 6f 6e 73 68 6f 74 22 0a 20 20 3a 68 6f 73 74 20 22 61 70 69 2e 6d 6f 6f 6e 73 68 6f 74 2e 63 6e | onshot"...:host."api.moonshot.cn |
| ba00 | 22 20 3b 3b 20 6f 72 20 22 61 70 69 2e 6d 6f 6f 6e 73 68 6f 74 2e 61 69 22 20 66 6f 72 20 74 68 | ".;;.or."api.moonshot.ai".for.th |
| ba20 | 65 20 67 6c 6f 62 61 6c 20 73 69 74 65 0a 20 20 3a 6b 65 79 20 22 79 6f 75 72 2d 61 70 69 2d 6b | e.global.site...:key."your-api-k |
| ba40 | 65 79 22 0a 20 20 3a 73 74 72 65 61 6d 20 74 20 3b 3b 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 65 6e | ey"...:stream.t.;;.optionally.en |
| ba60 | 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 0a 20 20 3a 6d 6f 64 65 6c 73 20 27 28 6b 69 6d 69 2d | able.streaming...:models.'(kimi- |
| ba80 | 6c 61 74 65 73 74 20 6b 69 6d 69 2d 6b 32 2d 30 37 31 31 2d 70 72 65 76 69 65 77 29 0a 20 20 3a | latest.kimi-k2-0711-preview)...: |
| baa0 | 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 27 28 3a 74 6f 6f 6c 73 20 5b 28 3a 74 79 70 65 20 | request-params.'(:tools.[(:type. |
| bac0 | 22 62 75 69 6c 74 69 6e 5f 66 75 6e 63 74 69 6f 6e 22 20 3a 66 75 6e 63 74 69 6f 6e 20 28 3a 6e | "builtin_function".:function.(:n |
| bae0 | 61 6d 65 20 22 24 77 65 62 5f 73 65 61 72 63 68 22 29 29 5d 29 29 0a 23 2b 65 6e 64 5f 73 72 63 | ame."$web_search"))])).#+end_src |
| bb00 | 0a 0a 4e 6f 77 20 74 68 65 20 63 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f | ..Now.the.chat.should.be.able.to |
| bb20 | 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 75 73 65 20 73 65 61 72 63 68 2e 20 54 72 79 20 22 | .automatically.use.search..Try." |
| bb40 | 77 68 61 74 27 73 20 6e 65 77 20 74 6f 64 61 79 22 20 61 6e 64 20 79 6f 75 20 73 68 6f 75 6c 64 | what's.new.today".and.you.should |
| bb60 | 20 65 78 70 65 63 74 20 74 68 65 20 75 70 2d 74 6f 2d 64 61 74 65 20 6e 65 77 73 20 69 6e 20 72 | .expect.the.up-to-date.news.in.r |
| bb80 | 65 73 70 6f 6e 73 65 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 20 | esponse...#+html:.</details>.**. |
| bba0 | 55 73 61 67 65 0a 0a 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 61 20 66 65 77 20 70 6f 77 65 | Usage..gptel.provides.a.few.powe |
| bbc0 | 72 66 75 6c 2c 20 67 65 6e 65 72 61 6c 20 70 75 72 70 6f 73 65 20 61 6e 64 20 66 6c 65 78 69 62 | rful,.general.purpose.and.flexib |
| bbe0 | 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 20 20 59 6f 75 20 63 61 6e 20 64 79 6e 61 6d 69 63 61 6c 6c | le.commands...You.can.dynamicall |
| bc00 | 79 20 74 77 65 61 6b 20 74 68 65 69 72 20 62 65 68 61 76 69 6f 72 20 74 6f 20 74 68 65 20 6e 65 | y.tweak.their.behavior.to.the.ne |
| bc20 | 65 64 73 20 6f 66 20 79 6f 75 72 20 74 61 73 6b 20 77 69 74 68 20 2f 64 69 72 65 63 74 69 76 65 | eds.of.your.task.with./directive |
| bc40 | 73 2f 2c 20 72 65 64 69 72 65 63 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 61 6e 64 20 6d 6f 72 65 | s/,.redirection.options.and.more |
| bc60 | 2e 20 20 54 68 65 72 65 20 69 73 20 61 20 5b 5b 68 74 74 70 73 3a 2f 2f 77 77 77 2e 79 6f 75 74 | ...There.is.a.[[https://www.yout |
| bc80 | 75 62 65 2e 63 6f 6d 2f 77 61 74 63 68 3f 76 3d 62 73 52 6e 68 5f 62 72 67 67 4d 5d 5b 76 69 64 | ube.com/watch?v=bsRnh_brggM][vid |
| bca0 | 65 6f 20 64 65 6d 6f 5d 5d 20 73 68 6f 77 69 6e 67 20 76 61 72 69 6f 75 73 20 75 73 65 73 20 6f | eo.demo]].showing.various.uses.o |
| bcc0 | 66 20 67 70 74 65 6c 20 2d 2d 20 62 75 74 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 6d 69 67 68 | f.gptel.--.but.=gptel-send=.migh |
| bce0 | 74 20 62 65 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 2e 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | t.be.all.you.need...|----------- |
| bd00 | 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 | --------+----------------------- |
| bd20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| bd40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| bd60 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 54 6f 20 73 65 6e 64 20 71 75 65 72 69 65 73 | ------------|.|.*To.send.queries |
| bd80 | 2a 20 7c 20 44 65 73 63 72 69 70 74 69 6f 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *.|.Description................. |
| bda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| bdc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| bde0 | 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 2b 2d 2d 2d | ......|.|-------------------+--- |
| be00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| be20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| be40 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| be60 | 7c 0a 7c 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 20 20 20 20 20 20 7c 20 53 65 6e 64 20 61 6c 6c | |.|.=gptel-send=......|.Send.all |
| be80 | 20 74 65 78 74 20 75 70 20 74 6f 20 3d 28 70 6f 69 6e 74 29 3d 2c 20 6f 72 20 74 68 65 20 73 65 | .text.up.to.=(point)=,.or.the.se |
| bea0 | 6c 65 63 74 69 6f 6e 20 69 66 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2e 20 20 57 6f | lection.if.region.is.active...Wo |
| bec0 | 72 6b 73 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 2e 20 20 20 20 7c 0a 7c 20 3d 67 | rks.anywhere.in.Emacs.....|.|.=g |
| bee0 | 70 74 65 6c 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 43 72 65 61 74 65 20 61 20 6e 65 77 20 64 | ptel=...........|.Create.a.new.d |
| bf00 | 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 4e 6f 74 20 72 65 71 75 69 | edicated.chat.buffer...Not.requi |
| bf20 | 72 65 64 20 74 6f 20 75 73 65 20 67 70 74 65 6c 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | red.to.use.gptel................ |
| bf40 | 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 72 | ....................|.|.=gptel-r |
| bf60 | 65 77 72 69 74 65 3d 20 20 20 7c 20 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 | ewrite=...|.Rewrite,.refactor.or |
| bf80 | 20 63 68 61 6e 67 65 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2e 20 20 43 61 | .change.the.selected.region...Ca |
| bfa0 | 6e 20 64 69 66 66 2f 65 64 69 66 66 20 63 68 61 6e 67 65 73 20 62 65 66 6f 72 65 20 6d 65 72 67 | n.diff/ediff.changes.before.merg |
| bfc0 | 69 6e 67 2f 61 70 70 6c 79 69 6e 67 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ing/applying..|.|--------------- |
| bfe0 | 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 | ----+--------------------------- |
| c000 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c020 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c040 | 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 | --------|..|-------------------- |
| c060 | 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -+------------------------------ |
| c080 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c0a0 | 2d 7c 0a 7c 20 2a 54 6f 20 74 77 65 61 6b 20 62 65 68 61 76 69 6f 72 2a 20 7c 20 20 20 20 20 20 | -|.|.*To.tweak.behavior*.|...... |
| c0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d | .........................|.|---- |
| c100 | 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 | -----------------+-------------- |
| c120 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c140 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 43 2d 75 3d 20 3d 67 70 74 65 | -----------------|.|.=C-u=.=gpte |
| c160 | 6c 2d 73 65 6e 64 3d 20 20 7c 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 70 72 | l-send=..|.Transient.menu.for.pr |
| c180 | 65 66 65 72 65 6e 63 65 73 2c 20 69 6e 70 75 74 2f 6f 75 74 70 75 74 20 72 65 64 69 72 65 63 74 | eferences,.input/output.redirect |
| c1a0 | 69 6f 6e 20 65 74 63 2e 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 3d 20 20 20 20 20 20 20 | ion.etc..|.|.=gptel-menu=....... |
| c1c0 | 20 7c 20 2f 28 53 61 6d 65 29 2f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .|./(Same)/..................... |
| c1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c200 | 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 2b 2d 2d 2d 2d 2d 2d | .|.|---------------------+------ |
| c220 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c240 | 2d 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 | -------------------------|..|--- |
| c260 | 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 | ---------------+---------------- |
| c280 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c2a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c2c0 | 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 54 6f 20 | ------------------------|.|.*To. |
| c2e0 | 61 64 64 20 63 6f 6e 74 65 78 74 2a 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | add.context*.|.................. |
| c300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c340 | 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 2d | ......................|.|------- |
| c360 | 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 | -----------+-------------------- |
| c380 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c3a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c3c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 | --------------------|.|.=gptel-a |
| c3e0 | 64 64 3d 20 20 20 20 20 20 7c 20 41 64 64 2f 72 65 6d 6f 76 65 20 61 20 72 65 67 69 6f 6e 20 6f | dd=......|.Add/remove.a.region.o |
| c400 | 72 20 62 75 66 66 65 72 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 49 6e | r.buffer.to.gptel's.context...In |
| c420 | 20 44 69 72 65 64 2c 20 61 64 64 2f 72 65 6d 6f 76 65 20 6d 61 72 6b 65 64 20 66 69 6c 65 73 2e | .Dired,.add/remove.marked.files. |
| c440 | 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 61 64 64 | ..................|.|.=gptel-add |
| c460 | 2d 66 69 6c 65 3d 20 7c 20 41 64 64 20 61 20 66 69 6c 65 20 28 74 65 78 74 20 6f 72 20 73 75 70 | -file=.|.Add.a.file.(text.or.sup |
| c480 | 70 6f 72 74 65 64 20 6d 65 64 69 61 20 74 79 70 65 29 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f | ported.media.type).to.gptel's.co |
| c4a0 | 6e 74 65 78 74 2e 20 20 41 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 20 | ntext...Also.available.from.the. |
| c4c0 | 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | transient.menu..|.|------------- |
| c4e0 | 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -----+-------------------------- |
| c500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c520 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c540 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | --------------|..|-------------- |
| c560 | 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 | --------------+----------------- |
| c580 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c5a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c5c0 | 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 4f 72 67 20 6d 6f 64 65 20 62 6f 6e 75 73 65 73 2a 20 20 | --------|.|.*Org.mode.bonuses*.. |
| c5e0 | 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 | .......|........................ |
| c600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c640 | 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .|.|---------------------------- |
| c660 | 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 | +------------------------------- |
| c680 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c6a0 | 2d 2d 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 | --------------------------|.|.=g |
| c6c0 | 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 74 6f 70 69 63 3d 20 20 20 20 20 20 7c 20 4c 69 6d 69 74 | ptel-org-set-topic=......|.Limit |
| c6e0 | 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 6e 20 4f 72 67 20 | .conversation.context.to.an.Org. |
| c700 | 68 65 61 64 69 6e 67 2e 20 20 28 46 6f 72 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 65 72 73 | heading...(For.branching.convers |
| c720 | 61 74 69 6f 6e 73 20 73 65 65 20 62 65 6c 6f 77 2e 29 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 | ations.see.below.).|.|.=gptel-or |
| c740 | 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 73 3d 20 7c 20 57 72 69 74 65 20 67 70 74 65 6c 20 | g-set-properties=.|.Write.gptel. |
| c760 | 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 2c | configuration.as.Org.properties, |
| c780 | 20 66 6f 72 20 70 65 72 2d 68 65 61 64 69 6e 67 20 63 68 61 74 20 63 6f 6e 66 69 67 75 72 61 74 | .for.per-heading.chat.configurat |
| c7a0 | 69 6f 6e 2e 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ion.........|.|----------------- |
| c7c0 | 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 | -----------+-------------------- |
| c7e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c800 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c820 | 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 2b 2d 2d 2d 2d | -----|..|------------------+---- |
| c840 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c860 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c880 | 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 47 69 74 48 | -----------------------|.|.*GitH |
| c8a0 | 75 62 20 43 6f 70 69 6c 6f 74 2a 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ub.Copilot*.|................... |
| c8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| c900 | 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 2b 2d 2d | ........|.|------------------+-- |
| c920 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c940 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| c960 | 2d 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 | -------------------------|.|.=gp |
| c980 | 74 65 6c 2d 67 68 2d 6c 6f 67 69 6e 3d 20 7c 20 41 75 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 | tel-gh-login=.|.Authenticate.wit |
| c9a0 | 68 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 2e 20 28 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 | h.GitHub.Copilot..(Automatically |
| c9c0 | 20 68 61 6e 64 6c 65 64 2c 20 62 75 74 20 63 61 6e 20 62 65 20 66 6f 72 63 65 64 20 69 66 20 72 | .handled,.but.can.be.forced.if.r |
| c9e0 | 65 71 75 69 72 65 64 2e 29 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b | equired.).|.|------------------+ |
| ca00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ca20 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| ca40 | 2d 2d 2d 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 2a 2a | ---------------------------|..** |
| ca60 | 2a 20 49 6e 20 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 | *.In.any.buffer:..1..Call.=M-x.g |
| ca80 | 70 74 65 6c 2d 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 | ptel-send=.to.send.the.text.up.t |
| caa0 | 6f 20 74 68 65 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 | o.the.cursor..The.response.will. |
| cac0 | 62 65 20 69 6e 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 | be.inserted.below...Continue.the |
| cae0 | 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 62 65 6c 6f 77 20 74 68 | .conversation.by.typing.below.th |
| cb00 | 65 20 72 65 73 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 | e.response...2..If.a.region.is.s |
| cb20 | 65 6c 65 63 74 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 | elected,.the.conversation.will.b |
| cb40 | 65 20 6c 69 6d 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 | e.limited.to.its.contents...3..C |
| cb60 | 61 6c 6c 20 3d 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 | all.=M-x.gptel-send=.with.a.pref |
| cb80 | 69 78 20 61 72 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 | ix.argument.(~C-u~)....-.to.set. |
| cba0 | 63 68 61 74 20 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 | chat.parameters.(model,.backend, |
| cbc0 | 20 73 79 73 74 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 | .system.message.etc).for.this.bu |
| cbe0 | 66 66 65 72 2c 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 | ffer,....-.include.quick.instruc |
| cc00 | 74 69 6f 6e 73 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 | tions.for.the.next.request.only, |
| cc20 | 0a 20 20 20 2d 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 | ....-.to.add.additional.context. |
| cc40 | 2d 2d 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 2d 2d 20 | --.regions,.buffers.or.files.--. |
| cc60 | 74 6f 20 67 70 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 | to.gptel,....-.to.read.the.promp |
| cc80 | 74 20 66 72 6f 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 | t.from.or.redirect.the.response. |
| cca0 | 65 6c 73 65 77 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 | elsewhere,....-.or.to.replace.th |
| ccc0 | 65 20 70 72 6f 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 | e.prompt.with.the.response...#+h |
| cce0 | 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 6f | tml:.<img.src="https://github.co |
| cd00 | 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 33 32 2f | m/karthink/gptel/assets/8607532/ |
| cd20 | 33 35 36 32 61 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 | 3562a6e2-7a5c-4f7e-8e57-bf3c1158 |
| cd40 | 39 63 37 33 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 | 9c73".align="center".alt="Image. |
| cd60 | 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 65 20 6f | showing.gptel's.menu.with.some.o |
| cd80 | 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 2e 22 3e | f.the.available.query.options."> |
| cda0 | 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 65 66 69 6e 65 20 61 20 22 70 72 65 73 65 74 22 | ..You.can.also.define.a."preset" |
| cdc0 | 20 62 75 6e 64 6c 65 20 6f 66 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 70 70 6c | .bundle.of.options.that.are.appl |
| cde0 | 69 65 64 20 74 6f 67 65 74 68 65 72 2c 20 73 65 65 20 5b 5b 23 6f 70 74 69 6f 6e 2d 70 72 65 73 | ied.together,.see.[[#option-pres |
| ce00 | 65 74 73 5d 5b 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 5d 5d 20 62 65 6c 6f 77 2e 0a 0a 2a 2a | ets][Option.presets]].below...** |
| ce20 | 2a 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 | *.In.a.dedicated.chat.buffer:..* |
| ce40 | 4e 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 | Note*:.gptel.works.anywhere.in.E |
| ce60 | 6d 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 | macs...The.dedicated.chat.buffer |
| ce80 | 20 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 | .only.adds.some.conveniences...1 |
| cea0 | 2e 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 | ..Run.=M-x.gptel=.to.start.or.sw |
| cec0 | 69 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 | itch.to.the.chat.buffer..It.will |
| cee0 | 20 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 | .ask.you.for.the.key.if.you.skip |
| cf00 | 70 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 | ped.the.previous.step..Run.it.wi |
| cf20 | 74 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 | th.a.prefix-arg.(=C-u.M-x.gptel= |
| cf40 | 29 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 | ).to.start.a.new.session...2..In |
| cf60 | 20 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 | .the.gptel.buffer,.send.your.pro |
| cf80 | 6d 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 | mpt.with.=M-x.gptel-send=,.bound |
| cfa0 | 20 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 | .to.=C-c.RET=...3..Set.chat.para |
| cfc0 | 6d 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 | meters.(LLM.provider,.model,.dir |
| cfe0 | 65 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 | ectives.etc).for.the.session.by. |
| d000 | 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 66 | calling.=gptel-send=.with.a.pref |
| d020 | 69 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 | ix.argument.(=C-u.C-c.RET=):.... |
| d040 | 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 | .#+html:.<img.src="https://githu |
| d060 | 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 73 73 65 74 73 2f 38 36 30 37 | b.com/karthink/gptel/assets/8607 |
| d080 | 35 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 | 532/eb4867e5-30ac-455f-999f-e171 |
| d0a0 | 32 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 | 23afb810".align="center".alt="Im |
| d0c0 | 61 67 65 20 73 68 6f 77 69 6e 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 77 69 74 68 20 73 6f | age.showing.gptel's.menu.with.so |
| d0e0 | 6d 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 71 75 65 72 79 20 6f 70 74 69 6f 6e | me.of.the.available.query.option |
| d100 | 73 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 | s.">..That's.it..You.can.go.back |
| d120 | 20 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 | .and.edit.previous.prompts.and.r |
| d140 | 65 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 | esponses.if.you.want...The.defau |
| d160 | 6c 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 | lt.mode.is.=markdown-mode=.if.av |
| d180 | 61 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 | ailable,.else.=text-mode=...You. |
| d1a0 | 63 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 | can.set.=gptel-default-mode=.to. |
| d1c0 | 3d 6f 72 67 2d 6d 6f 64 65 3d 20 69 66 20 64 65 73 69 72 65 64 2e 0a 0a 59 6f 75 20 63 61 6e 20 | =org-mode=.if.desired...You.can. |
| d1e0 | 61 6c 73 6f 20 64 65 66 69 6e 65 20 61 20 22 70 72 65 73 65 74 22 20 62 75 6e 64 6c 65 20 6f 66 | also.define.a."preset".bundle.of |
| d200 | 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 61 70 70 6c 69 65 64 20 74 6f 67 65 74 68 | .options.that.are.applied.togeth |
| d220 | 65 72 2c 20 73 65 65 20 5b 5b 23 6f 70 74 69 6f 6e 2d 70 72 65 73 65 74 73 5d 5b 4f 70 74 69 6f | er,.see.[[#option-presets][Optio |
| d240 | 6e 20 70 72 65 73 65 74 73 5d 5d 20 62 65 6c 6f 77 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 | n.presets]].below...#+html:.<det |
| d260 | 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 20 6d 65 | ails><summary>.****.Including.me |
| d280 | 64 69 61 20 28 69 6d 61 67 65 73 2c 20 64 6f 63 75 6d 65 6e 74 73 20 6f 72 20 70 6c 61 69 6e 2d | dia.(images,.documents.or.plain- |
| d2a0 | 74 65 78 74 20 66 69 6c 65 73 29 20 77 69 74 68 20 72 65 71 75 65 73 74 73 0a 23 2b 68 74 6d 6c | text.files).with.requests.#+html |
| d2c0 | 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 67 70 74 65 6c 20 73 75 70 70 6f 72 74 73 20 73 65 6e | :.</summary>..gptel.supports.sen |
| d2e0 | 64 69 6e 67 20 6d 65 64 69 61 20 69 6e 20 4d 61 72 6b 64 6f 77 6e 20 61 6e 64 20 4f 72 67 20 63 | ding.media.in.Markdown.and.Org.c |
| d300 | 68 61 74 20 62 75 66 66 65 72 73 2c 20 62 75 74 20 74 68 69 73 20 66 65 61 74 75 72 65 20 69 73 | hat.buffers,.but.this.feature.is |
| d320 | 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e | .disabled.by.default...-.You.can |
| d340 | 20 65 6e 61 62 6c 65 20 69 74 20 67 6c 6f 62 61 6c 6c 79 2c 20 66 6f 72 20 61 6c 6c 20 6d 6f 64 | .enable.it.globally,.for.all.mod |
| d360 | 65 6c 73 20 74 68 61 74 20 73 75 70 70 6f 72 74 20 69 74 2c 20 62 79 20 73 65 74 74 69 6e 67 20 | els.that.support.it,.by.setting. |
| d380 | 3d 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 3d 2e 20 20 0a 2d 20 4f 72 20 79 6f 75 20 | =gptel-track-media=....-.Or.you. |
| d3a0 | 63 61 6e 20 73 65 74 20 69 74 20 6c 6f 63 61 6c 6c 79 2c 20 6a 75 73 74 20 66 6f 72 20 74 68 65 | can.set.it.locally,.just.for.the |
| d3c0 | 20 63 68 61 74 20 62 75 66 66 65 72 2c 20 76 69 61 20 74 68 65 20 68 65 61 64 65 72 20 6c 69 6e | .chat.buffer,.via.the.header.lin |
| d3e0 | 65 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 | e:..#+html:.<img.src="https://gi |
| d400 | 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 73 | thub.com/user-attachments/assets |
| d420 | 2f 39 31 66 36 61 61 61 62 2d 32 65 61 34 2d 34 38 30 36 2d 39 63 63 39 2d 33 39 62 34 62 34 36 | /91f6aaab-2ea4-4806-9cc9-39b4b46 |
| d440 | 61 38 65 36 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 | a8e6c".align="center".alt="Image |
| d460 | 20 73 68 6f 77 69 6e 67 20 61 20 67 70 74 65 6c 20 63 68 61 74 20 62 75 66 66 65 72 27 73 20 68 | .showing.a.gptel.chat.buffer's.h |
| d480 | 65 61 64 65 72 20 6c 69 6e 65 20 77 69 74 68 20 74 68 65 20 62 75 74 74 6f 6e 20 74 6f 20 74 6f | eader.line.with.the.button.to.to |
| d4a0 | 67 67 6c 65 20 6d 65 64 69 61 20 73 75 70 70 6f 72 74 22 3e 0a 0a 2d 2d 2d 2d 2d 0a 0a 54 68 65 | ggle.media.support">..-----..The |
| d4c0 | 72 65 20 61 72 65 20 74 77 6f 20 77 61 79 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 6d 65 64 69 61 | re.are.two.ways.to.include.media |
| d4e0 | 20 6f 72 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 20 77 69 74 68 20 72 65 71 75 65 73 | .or.plain-text.files.with.reques |
| d500 | 74 73 3a 0a 0a 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 | ts:..1..Adding.media.files.to.th |
| d520 | 65 20 63 6f 6e 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 | e.context.with.=gptel-add-file=, |
| d540 | 20 64 65 73 63 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 | .described.further.below..2..Inc |
| d560 | 6c 75 64 69 6e 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 | luding.links.to.media.in.chat.bu |
| d580 | 66 66 65 72 73 2c 20 64 65 73 63 72 69 62 65 64 20 68 65 72 65 3a 0a 0a 54 6f 20 69 6e 63 6c 75 | ffers,.described.here:..To.inclu |
| d5a0 | 64 65 20 70 6c 61 69 6e 2d 74 65 78 74 20 66 69 6c 65 73 2c 20 69 6d 61 67 65 73 20 6f 72 20 6f | de.plain-text.files,.images.or.o |
| d5c0 | 74 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 64 6f 63 75 6d 65 6e 74 20 74 79 70 65 73 20 77 69 | ther.supported.document.types.wi |
| d5e0 | 74 68 20 72 65 71 75 65 73 74 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2c 20 79 6f 75 | th.requests.in.chat.buffers,.you |
| d600 | 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 6c 69 6e 6b 73 20 74 6f 20 74 68 65 6d 20 69 6e 20 74 68 | .can.include.links.to.them.in.th |
| d620 | 65 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 53 75 63 68 20 61 20 6c 69 6e 6b 20 6d 75 73 74 | e.chat.buffer...Such.a.link.must |
| d640 | 20 62 65 20 22 73 74 61 6e 64 61 6c 6f 6e 65 22 2c 20 69 2e 65 2e 20 6f 6e 20 61 20 6c 69 6e 65 | .be."standalone",.i.e..on.a.line |
| d660 | 20 62 79 20 69 74 73 65 6c 66 20 73 75 72 72 6f 75 6e 64 65 64 20 62 79 20 77 68 69 74 65 73 70 | .by.itself.surrounded.by.whitesp |
| d680 | 61 63 65 2e 0a 0a 49 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 66 6f 72 20 65 78 61 6d 70 6c 65 2c 20 | ace...In.Org.mode,.for.example,. |
| d6a0 | 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 61 72 65 20 61 6c 6c 20 2a 76 61 6c 69 64 2a 20 77 61 | the.following.are.all.*valid*.wa |
| d6c0 | 79 73 20 6f 66 20 69 6e 63 6c 75 64 69 6e 67 20 61 6e 20 69 6d 61 67 65 20 77 69 74 68 20 74 68 | ys.of.including.an.image.with.th |
| d6e0 | 65 20 72 65 71 75 65 73 74 3a 0a 0a 2d 20 22 53 74 61 6e 64 61 6c 6f 6e 65 22 20 66 69 6c 65 20 | e.request:..-."Standalone".file. |
| d700 | 6c 69 6e 6b 73 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 49 6e 20 74 68 69 73 20 79 61 6d 6c | links:.#+begin_src..In.this.yaml |
| d720 | 20 66 69 6c 65 2c 20 49 20 68 61 76 65 20 73 6f 6d 65 20 6b 65 79 2d 72 65 6d 61 70 70 69 6e 67 | .file,.I.have.some.key-remapping |
| d740 | 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 0a 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f | .configuration:..[[file:/path/to |
| d760 | 2f 72 65 6d 61 70 2e 79 61 6d 6c 5d 5d 0a 0a 43 6f 75 6c 64 20 79 6f 75 20 65 78 70 6c 61 69 6e | /remap.yaml]]..Could.you.explain |
| d780 | 20 77 68 61 74 20 69 74 20 64 6f 65 73 2c 20 61 6e 64 20 77 68 69 63 68 20 70 72 6f 67 72 61 6d | .what.it.does,.and.which.program |
| d7a0 | 20 6d 69 67 68 74 20 62 65 20 75 73 69 6e 67 20 69 74 3f 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 23 | .might.be.using.it?.#+end_src..# |
| d7c0 | 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 75 72 65 | +begin_src.Describe.this.picture |
| d7e0 | 0a 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 2e 70 6e 67 | ..[[file:/path/to/screenshot.png |
| d800 | 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 20 74 68 65 20 74 65 | ]]..Focus.specifically.on.the.te |
| d820 | 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 22 53 74 61 6e 64 61 | xt.content..#+end_src..-."Standa |
| d840 | 6c 6f 6e 65 22 20 66 69 6c 65 20 6c 69 6e 6b 20 77 69 74 68 20 64 65 73 63 72 69 70 74 69 6f 6e | lone".file.link.with.description |
| d860 | 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 20 70 69 63 | :.#+begin_src..Describe.this.pic |
| d880 | 74 75 72 65 0a 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 | ture..[[file:/path/to/screenshot |
| d8a0 | 2e 70 6e 67 5d 5b 73 6f 6d 65 20 70 69 63 74 75 72 65 5d 5d 0a 0a 46 6f 63 75 73 20 73 70 65 63 | .png][some.picture]]..Focus.spec |
| d8c0 | 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..#+ |
| d8e0 | 65 6e 64 5f 73 72 63 0a 0a 2d 20 22 53 74 61 6e 64 61 6c 6f 6e 65 22 2c 20 61 6e 67 6c 65 20 66 | end_src..-."Standalone",.angle.f |
| d900 | 69 6c 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 72 69 62 65 20 | ile.link:.#+begin_src..Describe. |
| d920 | 74 68 69 73 20 70 69 63 74 75 72 65 0a 0a 3c 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f 2f 73 63 72 | this.picture..<file:/path/to/scr |
| d940 | 65 65 6e 73 68 6f 74 2e 70 6e 67 3e 0a 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 | eenshot.png>..Focus.specifically |
| d960 | 20 6f 6e 20 74 68 65 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a | .on.the.text.content..#+end_src. |
| d980 | 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 6b 73 20 61 72 65 20 2a 6e 6f 74 20 76 61 | .The.following.links.are.*not.va |
| d9a0 | 6c 69 64 2a 2c 20 61 6e 64 20 74 68 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 6c 69 6e 6b 20 77 | lid*,.and.the.text.of.the.link.w |
| d9c0 | 69 6c 6c 20 62 65 20 73 65 6e 74 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 66 69 6c 65 20 | ill.be.sent.instead.of.the.file. |
| d9e0 | 63 6f 6e 74 65 6e 74 73 3a 0a 0a 2d 20 49 6e 6c 69 6e 65 20 6c 69 6e 6b 3a 0a 23 2b 62 65 67 69 | contents:..-.Inline.link:.#+begi |
| da00 | 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 69 73 20 5b 5b 66 69 6c 65 3a 2f 70 61 74 | n_src..Describe.this.[[file:/pat |
| da20 | 68 2f 74 6f 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5b 70 69 63 74 75 72 65 5d 5d 2e 0a | h/to/screenshot.png][picture]].. |
| da40 | 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 74 20 | .Focus.specifically.on.the.text. |
| da60 | 63 6f 6e 74 65 6e 74 2e 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d 20 4c 69 6e 6b 20 6e 6f 74 20 22 | content..#+end_src..-.Link.not." |
| da80 | 73 74 61 6e 64 61 6c 6f 6e 65 22 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 0a 44 65 73 63 72 69 62 | standalone":.#+begin_src.Describ |
| daa0 | 65 20 74 68 69 73 20 70 69 63 74 75 72 65 3a 20 0a 5b 5b 66 69 6c 65 3a 2f 70 61 74 68 2f 74 6f | e.this.picture:..[[file:/path/to |
| dac0 | 2f 73 63 72 65 65 6e 73 68 6f 74 2e 70 6e 67 5d 5d 0a 46 6f 63 75 73 20 73 70 65 63 69 66 69 63 | /screenshot.png]].Focus.specific |
| dae0 | 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 65 6e 64 5f | ally.on.the.text.content..#+end_ |
| db00 | 73 72 63 0a 0a 2d 20 4e 6f 74 20 61 20 76 61 6c 69 64 20 4f 72 67 20 6c 69 6e 6b 3a 0a 23 2b 62 | src..-.Not.a.valid.Org.link:.#+b |
| db20 | 65 67 69 6e 5f 73 72 63 20 0a 44 65 73 63 72 69 62 65 20 74 68 65 20 70 69 63 74 75 72 65 0a 0a | egin_src..Describe.the.picture.. |
| db40 | 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 0a 23 2b 65 | file:/path/to/screenshot.png.#+e |
| db60 | 6e 64 5f 73 72 63 0a 0a 53 69 6d 69 6c 61 72 20 63 72 69 74 65 72 69 61 20 61 70 70 6c 79 20 74 | nd_src..Similar.criteria.apply.t |
| db80 | 6f 20 4d 61 72 6b 64 6f 77 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 23 2b 68 74 6d 6c | o.Markdown.chat.buffers...#+html |
| dba0 | 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e 3c 73 | :.</details>.#+html:.<details><s |
| dbc0 | 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 53 61 76 65 20 61 6e 64 20 72 65 73 74 6f 72 65 20 79 6f | ummary>.****.Save.and.restore.yo |
| dbe0 | 75 72 20 63 68 61 74 20 73 65 73 73 69 6f 6e 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | ur.chat.sessions.#+html:.</summa |
| dc00 | 72 79 3e 0a 0a 53 61 76 69 6e 67 20 74 68 65 20 66 69 6c 65 20 77 69 6c 6c 20 73 61 76 65 20 74 | ry>..Saving.the.file.will.save.t |
| dc20 | 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 61 73 20 | he.state.of.the.conversation.as. |
| dc40 | 77 65 6c 6c 2e 20 20 54 6f 20 72 65 73 75 6d 65 20 74 68 65 20 63 68 61 74 2c 20 6f 70 65 6e 20 | well...To.resume.the.chat,.open. |
| dc60 | 74 68 65 20 66 69 6c 65 20 61 6e 64 20 74 75 72 6e 20 6f 6e 20 3d 67 70 74 65 6c 2d 6d 6f 64 65 | the.file.and.turn.on.=gptel-mode |
| dc80 | 3d 20 62 65 66 6f 72 65 20 65 64 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 23 2b | =.before.editing.the.buffer...#+ |
| dca0 | 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 2a 20 53 65 74 74 69 6e 67 20 6f 70 74 | html:.</details>.***.Setting.opt |
| dcc0 | 69 6f 6e 73 20 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 | ions.(backend,.model,.request.pa |
| dce0 | 72 61 6d 65 74 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 | rameters,.system.prompts.and.mor |
| dd00 | 65 29 0a 0a 4d 6f 73 74 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 65 | e)..Most.gptel.options.can.be.se |
| dd20 | 74 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 2c 20 61 | t.from.gptel's.transient.menu,.a |
| dd40 | 76 61 69 6c 61 62 6c 65 20 62 79 20 63 61 6c 6c 69 6e 67 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d | vailable.by.calling.=gptel-send= |
| dd60 | 20 77 69 74 68 20 61 20 70 72 65 66 69 78 2d 61 72 67 75 6d 65 6e 74 2c 20 6f 72 20 76 69 61 20 | .with.a.prefix-argument,.or.via. |
| dd80 | 3d 67 70 74 65 6c 2d 6d 65 6e 75 3d 2e 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 65 69 72 20 64 | =gptel-menu=...To.change.their.d |
| dda0 | 65 66 61 75 6c 74 20 76 61 6c 75 65 73 20 69 6e 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 72 61 74 | efault.values.in.your.configurat |
| ddc0 | 69 6f 6e 2c 20 73 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 | ion,.see.[[#additional-configura |
| dde0 | 74 69 6f 6e 5d 5b 41 64 64 69 74 69 6f 6e 61 6c 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5d | tion][Additional.Configuration]] |
| de00 | 2e 20 20 43 68 61 74 20 62 75 66 66 65 72 2d 73 70 65 63 69 66 69 63 20 6f 70 74 69 6f 6e 73 20 | ...Chat.buffer-specific.options. |
| de20 | 61 72 65 20 61 6c 73 6f 20 61 76 61 69 6c 61 62 6c 65 20 76 69 61 20 74 68 65 20 68 65 61 64 65 | are.also.available.via.the.heade |
| de40 | 72 2d 6c 69 6e 65 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 23 20 54 4f 44 4f 20 | r-line.in.chat.buffers...#.TODO. |
| de60 | 52 65 6d 6f 76 65 20 74 68 69 73 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 6d 61 6e | Remove.this.when.writing.the.man |
| de80 | 75 61 6c 2e 0a 53 65 6c 65 63 74 69 6e 67 20 61 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 | ual..Selecting.a.model.and.backe |
| dea0 | 6e 64 20 63 61 6e 20 62 65 20 64 6f 6e 65 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 76 69 61 | nd.can.be.done.interactively.via |
| dec0 | 20 74 68 65 20 3d 2d 6d 3d 20 63 6f 6d 6d 61 6e 64 20 6f 66 20 3d 67 70 74 65 6c 2d 6d 65 6e 75 | .the.=-m=.command.of.=gptel-menu |
| dee0 | 3d 2e 20 20 41 76 61 69 6c 61 62 6c 65 20 72 65 67 69 73 74 65 72 65 64 20 6d 6f 64 65 6c 73 20 | =...Available.registered.models. |
| df00 | 61 72 65 20 70 72 65 66 69 78 65 64 20 62 79 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 69 | are.prefixed.by.the.name.of.thei |
| df20 | 72 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 61 20 73 74 72 69 6e 67 20 6c 69 6b 65 20 3d 43 68 | r.backend.with.a.string.like.=Ch |
| df40 | 61 74 47 50 54 3a 67 70 74 2d 34 6f 2d 6d 69 6e 69 3d 2c 20 77 68 65 72 65 20 3d 43 68 61 74 47 | atGPT:gpt-4o-mini=,.where.=ChatG |
| df60 | 50 54 3d 20 69 73 20 74 68 65 20 62 61 63 6b 65 6e 64 20 6e 61 6d 65 20 79 6f 75 20 75 73 65 64 | PT=.is.the.backend.name.you.used |
| df80 | 20 74 6f 20 72 65 67 69 73 74 65 72 20 69 74 20 61 6e 64 20 3d 67 70 74 2d 34 6f 2d 6d 69 6e 69 | .to.register.it.and.=gpt-4o-mini |
| dfa0 | 3d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2a 2a 2a | =.is.the.name.of.the.model...*** |
| dfc0 | 20 49 6e 63 6c 75 64 65 20 6d 6f 72 65 20 63 6f 6e 74 65 78 74 20 77 69 74 68 20 72 65 71 75 65 | .Include.more.context.with.reque |
| dfe0 | 73 74 73 0a 3a 50 52 4f 50 45 52 54 49 45 53 3a 0a 3a 43 55 53 54 4f 4d 5f 49 44 3a 20 69 6e 63 | sts.:PROPERTIES:.:CUSTOM_ID:.inc |
| e000 | 6c 75 64 65 2d 63 6f 6e 74 65 78 74 0a 3a 45 4e 44 3a 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 | lude-context.:END:..By.default,. |
| e020 | 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 69 74 68 20 74 68 | gptel.will.query.the.LLM.with.th |
| e040 | 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 66 65 72 20 63 6f | e.active.region.or.the.buffer.co |
| e060 | 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 4f 66 74 65 6e 20 | ntents.up.to.the.cursor...Often. |
| e080 | 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 64 65 20 74 68 65 | it.can.be.helpful.to.provide.the |
| e0a0 | 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 78 74 20 66 72 6f | .LLM.with.additional.context.fro |
| e0c0 | 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 65 72 2e 20 46 6f | m.outside.the.current.buffer..Fo |
| e0e0 | 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 61 20 63 68 61 74 | r.example,.when.you're.in.a.chat |
| e100 | 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 65 73 74 69 6f 6e | .buffer.but.want.to.ask.question |
| e120 | 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 6e 67 29 20 63 6f | s.about.a.(possibly.changing).co |
| e140 | 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 6f 6a 65 63 74 20 | de.buffer.and.auxiliary.project. |
| e160 | 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 64 69 74 69 6f 6e | files...You.can.include.addition |
| e180 | 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 72 20 66 69 6c 65 | al.text.regions,.buffers.or.file |
| e1a0 | 73 20 77 69 74 68 20 67 70 74 65 6c 27 73 20 71 75 65 72 69 65 73 20 69 6e 20 74 77 6f 20 77 61 | s.with.gptel's.queries.in.two.wa |
| e1c0 | 79 73 2e 20 20 54 68 65 20 66 69 72 73 74 20 69 73 20 76 69 61 20 6c 69 6e 6b 73 20 69 6e 20 63 | ys...The.first.is.via.links.in.c |
| e1e0 | 68 61 74 20 62 75 66 66 65 72 73 2c 20 61 73 20 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 65 20 | hat.buffers,.as.described.above. |
| e200 | 28 73 65 65 20 22 49 6e 63 6c 75 64 69 6e 67 20 6d 65 64 69 61 20 77 69 74 68 20 72 65 71 75 65 | (see."Including.media.with.reque |
| e220 | 73 74 73 22 29 2e 0a 0a 54 68 65 20 73 65 63 6f 6e 64 20 69 73 20 67 6c 6f 62 61 6c 6c 79 20 76 | sts")...The.second.is.globally.v |
| e240 | 69 61 20 64 65 64 69 63 61 74 65 64 20 63 6f 6e 74 65 78 74 20 63 6f 6d 6d 61 6e 64 73 3a 20 79 | ia.dedicated.context.commands:.y |
| e260 | 6f 75 20 63 61 6e 20 61 64 64 20 61 20 73 65 6c 65 63 74 65 64 20 72 65 67 69 6f 6e 2c 20 62 75 | ou.can.add.a.selected.region,.bu |
| e280 | 66 66 65 72 20 6f 72 20 66 69 6c 65 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 20 | ffer.or.file.to.gptel's.context. |
| e2a0 | 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 2c 20 6f 72 20 63 61 6c 6c 20 3d 67 70 74 65 6c 2d 61 64 | from.the.menu,.or.call.=gptel-ad |
| e2c0 | 64 3d 2e 20 20 54 6f 20 61 64 64 20 61 20 66 69 6c 65 20 75 73 65 20 3d 67 70 74 65 6c 2d 61 64 | d=...To.add.a.file.use.=gptel-ad |
| e2e0 | 64 3d 20 69 6e 20 44 69 72 65 64 2c 20 6f 72 20 75 73 65 20 74 68 65 20 64 65 64 69 63 61 74 65 | d=.in.Dired,.or.use.the.dedicate |
| e300 | 64 20 3d 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 3d 20 63 6f 6d 6d 61 6e 64 2e 20 20 44 69 72 | d.=gptel-add-file=.command...Dir |
| e320 | 65 63 74 6f 72 69 65 73 20 77 69 6c 6c 20 68 61 76 65 20 74 68 65 69 72 20 66 69 6c 65 73 20 61 | ectories.will.have.their.files.a |
| e340 | 64 64 65 64 20 72 65 63 75 72 73 69 76 65 6c 79 20 61 66 74 65 72 20 70 72 6f 6d 70 74 69 6e 67 | dded.recursively.after.prompting |
| e360 | 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 0a 54 68 69 73 20 61 64 64 69 74 69 6f | .for.confirmation...This.additio |
| e380 | 6e 61 6c 20 63 6f 6e 74 65 78 74 20 69 73 20 22 6c 69 76 65 22 20 61 6e 64 20 6e 6f 74 20 61 20 | nal.context.is."live".and.not.a. |
| e3a0 | 73 6e 61 70 73 68 6f 74 2e 20 20 4f 6e 63 65 20 61 64 64 65 64 2c 20 74 68 65 20 72 65 67 69 6f | snapshot...Once.added,.the.regio |
| e3c0 | 6e 73 2c 20 62 75 66 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 61 72 65 20 73 63 61 6e 6e 65 64 | ns,.buffers.or.files.are.scanned |
| e3e0 | 20 61 6e 64 20 69 6e 63 6c 75 64 65 64 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 65 61 63 | .and.included.at.the.time.of.eac |
| e400 | 68 20 71 75 65 72 79 2e 20 20 57 68 65 6e 20 75 73 69 6e 67 20 6d 75 6c 74 69 2d 6d 6f 64 61 6c | h.query...When.using.multi-modal |
| e420 | 20 6d 6f 64 65 6c 73 2c 20 61 64 64 65 64 20 66 69 6c 65 73 20 63 61 6e 20 62 65 20 6f 66 20 61 | .models,.added.files.can.be.of.a |
| e440 | 6e 79 20 73 75 70 70 6f 72 74 65 64 20 74 79 70 65 20 2d 2d 20 74 79 70 69 63 61 6c 6c 79 20 69 | ny.supported.type.--.typically.i |
| e460 | 6d 61 67 65 73 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 | mages...You.can.examine.the.acti |
| e480 | 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 |
| e4a0 | 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 |
| e4c0 | 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 |
| e4e0 | 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 |
| e500 | 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 |
| e520 | 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 |
| e540 | 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 |
| e560 | 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 |
| e580 | 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 |
| e5a0 | 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 |
| e5c0 | 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 |
| e5e0 | 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 |
| e600 | 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 |
| e620 | 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."> |
| e640 | 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 |
| e660 | 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 |
| e680 | 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 |
| e6a0 | 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 |
| e6c0 | 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 |
| e6e0 | 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 |
| e700 | 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 |
| e720 | 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 |
| e740 | 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. |
| e760 | 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 |
| e780 | 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 |
| e7a0 | 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 |
| e7c0 | 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 |
| e7e0 | 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 |
| e800 | 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 |
| e820 | 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. |
| e840 | 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 |
| e860 | 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 |
| e880 | 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 |
| e8a0 | 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 |
| e8c0 | 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 |
| e8e0 | 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 |
| e900 | 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 |
| e920 | 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 |
| e940 | 73 2e 0a 0a 2a 2a 2a 20 54 6f 6f 6c 20 75 73 65 0a 0a 67 70 74 65 6c 20 63 61 6e 20 70 72 6f 76 | s...***.Tool.use..gptel.can.prov |
| e960 | 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 63 6c 69 65 6e 74 2d 73 69 64 65 20 65 6c 69 | ide.the.LLM.with.client-side.eli |
| e980 | 73 70 20 22 74 6f 6f 6c 73 22 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 63 | sp."tools",.or.function.specific |
| e9a0 | 61 74 69 6f 6e 73 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 | ations,.along.with.the.request.. |
| e9c0 | 20 49 66 20 74 68 65 20 4c 4c 4d 20 64 65 63 69 64 65 73 20 74 6f 20 72 75 6e 20 74 68 65 20 74 | .If.the.LLM.decides.to.run.the.t |
| e9e0 | 6f 6f 6c 2c 20 69 74 20 73 75 70 70 6c 69 65 73 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 61 | ool,.it.supplies.the.tool.call.a |
| ea00 | 72 67 75 6d 65 6e 74 73 2c 20 77 68 69 63 68 20 67 70 74 65 6c 20 75 73 65 73 20 74 6f 20 72 75 | rguments,.which.gptel.uses.to.ru |
| ea20 | 6e 20 74 68 65 20 74 6f 6f 6c 20 69 6e 20 79 6f 75 72 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e | n.the.tool.in.your.Emacs.session |
| ea40 | 2e 20 20 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 72 65 74 75 | ...The.result.is.optionally.retu |
| ea60 | 72 6e 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 20 74 6f 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 20 | rned.to.the.LLM.to.complete.the. |
| ea80 | 74 61 73 6b 2e 0a 0a 54 68 69 73 20 65 78 63 68 61 6e 67 65 20 63 61 6e 20 62 65 20 75 73 65 64 | task...This.exchange.can.be.used |
| eaa0 | 20 74 6f 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 6c 69 74 | .to.equip.the.LLM.with.capabilit |
| eac0 | 69 65 73 20 6f 72 20 6b 6e 6f 77 6c 65 64 67 65 20 62 65 79 6f 6e 64 20 77 68 61 74 20 69 73 20 | ies.or.knowledge.beyond.what.is. |
| eae0 | 61 76 61 69 6c 61 62 6c 65 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 20 2d 2d 20 66 6f 72 20 | available.out.of.the.box.--.for. |
| eb00 | 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 63 61 6e 20 67 65 74 20 74 68 65 20 4c 4c 4d 20 74 6f | instance,.you.can.get.the.LLM.to |
| eb20 | 20 63 6f 6e 74 72 6f 6c 20 79 6f 75 72 20 45 6d 61 63 73 20 66 72 61 6d 65 2c 20 63 72 65 61 74 | .control.your.Emacs.frame,.creat |
| eb40 | 65 20 6f 72 20 6d 6f 64 69 66 79 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 | e.or.modify.files.and.directorie |
| eb60 | 73 2c 20 6f 72 20 6c 6f 6f 6b 20 75 70 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 | s,.or.look.up.information.releva |
| eb80 | 6e 74 20 74 6f 20 79 6f 75 72 20 72 65 71 75 65 73 74 20 76 69 61 20 77 65 62 20 73 65 61 72 63 | nt.to.your.request.via.web.searc |
| eba0 | 68 20 6f 72 20 69 6e 20 61 20 6c 6f 63 61 6c 20 64 61 74 61 62 61 73 65 2e 20 20 48 65 72 65 20 | h.or.in.a.local.database...Here. |
| ebc0 | 69 73 20 61 20 76 65 72 79 20 73 69 6d 70 6c 65 20 65 78 61 6d 70 6c 65 3a 0a 0a 23 2b 68 74 6d | is.a.very.simple.example:..#+htm |
| ebe0 | 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 69 | l:.<p.align="center">.https://gi |
| ec00 | 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 73 | thub.com/user-attachments/assets |
| ec20 | 2f 64 31 66 38 65 32 61 63 2d 36 32 62 62 2d 34 39 62 63 2d 38 35 30 64 2d 30 61 36 37 61 61 30 | /d1f8e2ac-62bb-49bc-850d-0a67aa0 |
| ec40 | 63 64 34 63 33 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 70 3e 0a 0a 54 6f 20 75 73 65 20 74 6f 6f 6c 73 | cd4c3.#+html:.</p>..To.use.tools |
| ec60 | 20 69 6e 20 67 70 74 65 6c 2c 20 79 6f 75 20 6e 65 65 64 0a 2d 20 61 20 6d 6f 64 65 6c 20 74 68 | .in.gptel,.you.need.-.a.model.th |
| ec80 | 61 74 20 73 75 70 70 6f 72 74 73 20 74 68 69 73 20 75 73 61 67 65 2e 20 20 41 6c 6c 20 74 68 65 | at.supports.this.usage...All.the |
| eca0 | 20 66 6c 61 67 73 68 69 70 20 6d 6f 64 65 6c 73 20 73 75 70 70 6f 72 74 20 74 6f 6f 6c 20 75 73 | .flagship.models.support.tool.us |
| ecc0 | 65 2c 20 61 73 20 64 6f 20 6d 61 6e 79 20 6f 66 20 74 68 65 20 73 6d 61 6c 6c 65 72 20 6f 70 65 | e,.as.do.many.of.the.smaller.ope |
| ece0 | 6e 20 6d 6f 64 65 6c 73 2e 0a 2d 20 54 6f 6f 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 | n.models..-.Tool.specifications. |
| ed00 | 74 68 61 74 20 67 70 74 65 6c 20 75 6e 64 65 72 73 74 61 6e 64 73 2e 20 20 67 70 74 65 6c 20 64 | that.gptel.understands...gptel.d |
| ed20 | 6f 65 73 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 69 6e 63 6c 75 64 65 20 61 6e 79 20 74 6f | oes.not.currently.include.any.to |
| ed40 | 6f 6c 73 20 6f 75 74 20 6f 66 20 74 68 65 20 62 6f 78 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 | ols.out.of.the.box...#+html:.<de |
| ed60 | 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 44 65 66 69 6e 69 6e 67 20 67 70 | tails><summary>.****.Defining.gp |
| ed80 | 74 65 6c 20 74 6f 6f 6c 73 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 44 65 | tel.tools.#+html:.</summary>..De |
| eda0 | 66 69 6e 69 6e 67 20 61 20 67 70 74 65 6c 20 74 6f 6f 6c 20 72 65 71 75 69 72 65 73 20 61 6e 20 | fining.a.gptel.tool.requires.an. |
| edc0 | 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 6d 65 | elisp.function.and.associated.me |
| ede0 | 74 61 64 61 74 61 2e 20 20 48 65 72 65 20 61 72 65 20 74 77 6f 20 73 69 6d 70 6c 65 20 74 6f 6f | tadata...Here.are.two.simple.too |
| ee00 | 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 3a 0a 0a 2a 54 6f 20 72 65 61 64 20 74 68 65 20 63 6f 6e | l.definitions:..*To.read.the.con |
| ee20 | 74 65 6e 74 73 20 6f 66 20 61 6e 20 45 6d 61 63 73 20 62 75 66 66 65 72 2a 3a 0a 0a 23 2b 62 65 | tents.of.an.Emacs.buffer*:..#+be |
| ee40 | 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 74 | gin_src.emacs-lisp.(gptel-make-t |
| ee60 | 6f 6f 6c 0a 20 3a 6e 61 6d 65 20 22 72 65 61 64 5f 62 75 66 66 65 72 22 20 20 20 20 20 20 20 20 | ool..:name."read_buffer"........ |
| ee80 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6a 61 76 61 73 63 72 69 70 74 2d 73 74 79 6c 65 20 73 | ............;.javascript-style.s |
| eea0 | 6e 61 6b 65 5f 63 61 73 65 20 6e 61 6d 65 0a 20 3a 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 | nake_case.name..:function.(lambd |
| eec0 | 61 20 28 62 75 66 66 65 72 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 68 | a.(buffer)..................;.th |
| eee0 | 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 77 69 6c 6c 20 72 75 6e 0a 20 20 20 20 20 20 20 | e.function.that.will.run........ |
| ef00 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 | ......(unless.(buffer-live-p.(ge |
| ef20 | 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-buffer.buffer))............... |
| ef40 | 20 28 65 72 72 6f 72 20 22 65 72 72 6f 72 3a 20 62 75 66 66 65 72 20 25 73 20 69 73 20 6e 6f 74 | .(error."error:.buffer.%s.is.not |
| ef60 | 20 6c 69 76 65 2e 22 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | .live.".buffer))..............(w |
| ef80 | 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 20 62 75 66 66 65 72 0a 20 20 20 20 20 | ith-current-buffer..buffer...... |
| efa0 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 | ..........(buffer-substring-no-p |
| efc0 | 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 |
| efe0 | 29 29 29 29 0a 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 72 65 74 75 72 6e 20 74 68 65 20 63 | ))))..:description."return.the.c |
| f000 | 6f 6e 74 65 6e 74 73 20 6f 66 20 61 6e 20 65 6d 61 63 73 20 62 75 66 66 65 72 22 0a 20 3a 61 72 | ontents.of.an.emacs.buffer"..:ar |
| f020 | 67 73 20 28 6c 69 73 74 20 27 28 3a 6e 61 6d 65 20 22 62 75 66 66 65 72 22 0a 20 20 20 20 20 20 | gs.(list.'(:name."buffer"....... |
| f040 | 20 20 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 20 20 20 20 | .........:type.string........... |
| f060 | 20 3b 20 3a 74 79 70 65 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 0a | .;.:type.value.must.be.a.symbol. |
| f080 | 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 22 74 68 65 | ...............:description."the |
| f0a0 | 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 77 68 6f 73 65 20 63 6f 6e 74 65 6e | .name.of.the.buffer.whose.conten |
| f0c0 | 74 73 20 61 72 65 20 74 6f 20 62 65 20 72 65 74 72 69 65 76 65 64 22 29 29 0a 20 3a 63 61 74 65 | ts.are.to.be.retrieved"))..:cate |
| f0e0 | 67 6f 72 79 20 22 65 6d 61 63 73 22 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gory."emacs")................... |
| f100 | 20 20 3b 20 41 6e 20 61 72 62 69 74 72 61 72 79 20 6c 61 62 65 6c 20 66 6f 72 20 67 72 6f 75 70 | ..;.An.arbitrary.label.for.group |
| f120 | 69 6e 67 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 42 65 73 69 64 65 73 20 74 68 65 20 66 75 6e 63 74 | ing.#+end_src..Besides.the.funct |
| f140 | 69 6f 6e 20 69 74 73 65 6c 66 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 6e 61 6d 65 64 20 6f | ion.itself,.which.can.be.named.o |
| f160 | 72 20 61 6e 6f 6e 79 6d 6f 75 73 20 28 61 73 20 61 62 6f 76 65 29 2c 20 74 68 65 20 74 6f 6f 6c | r.anonymous.(as.above),.the.tool |
| f180 | 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 20 3d 3a 6e 61 6d 65 | .specification.requires.a.=:name |
| f1a0 | 3d 2c 20 3d 3a 64 65 73 63 72 69 70 74 69 6f 6e 3d 20 61 6e 64 20 61 20 6c 69 73 74 20 6f 66 20 | =,.=:description=.and.a.list.of. |
| f1c0 | 61 72 67 75 6d 65 6e 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 69 6e 20 3d 3a 61 72 67 | argument.specifications.in.=:arg |
| f1e0 | 73 3d 2e 20 20 45 61 63 68 20 61 72 67 75 6d 65 6e 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e | s=...Each.argument.specification |
| f200 | 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 61 74 6c 65 61 73 74 20 74 68 65 20 6b 65 79 | .is.a.plist.with.atleast.the.key |
| f220 | 73 20 3d 3a 6e 61 6d 65 3d 2c 20 3d 3a 74 79 70 65 3d 20 61 6e 64 20 3d 3a 64 65 73 63 72 69 70 | s.=:name=,.=:type=.and.=:descrip |
| f240 | 74 69 6f 6e 3d 2e 0a 0a 2a 54 6f 20 63 72 65 61 74 65 20 61 20 74 65 78 74 20 66 69 6c 65 2a 3a | tion=...*To.create.a.text.file*: |
| f260 | 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 2d | ..#+begin_src.emacs-lisp.(gptel- |
| f280 | 6d 61 6b 65 2d 74 6f 6f 6c 0a 20 3a 6e 61 6d 65 20 22 63 72 65 61 74 65 5f 66 69 6c 65 22 20 20 | make-tool..:name."create_file".. |
| f2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6a 61 76 61 73 63 72 69 70 74 2d 73 | ..................;.javascript-s |
| f2c0 | 74 79 6c 65 20 20 73 6e 61 6b 65 5f 63 61 73 65 20 6e 61 6d 65 0a 20 3a 66 75 6e 63 74 69 6f 6e | tyle..snake_case.name..:function |
| f2e0 | 20 28 6c 61 6d 62 64 61 20 28 70 61 74 68 20 66 69 6c 65 6e 61 6d 65 20 63 6f 6e 74 65 6e 74 29 | .(lambda.(path.filename.content) |
| f300 | 20 20 20 3b 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 75 6e 73 0a 20 20 20 20 | ...;.the.function.that.runs..... |
| f320 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 61 74 68 20 28 65 78 70 61 6e | .........(let.((full-path.(expan |
| f340 | 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 66 69 6c 65 6e 61 6d 65 20 70 61 74 68 29 29 29 0a 20 20 20 | d-file-name.filename.path))).... |
| f360 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 | ............(with-temp-buffer... |
| f380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 63 6f 6e 74 65 6e 74 29 0a | ...............(insert.content). |
| f3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 72 69 74 65 2d 66 69 6c 65 20 66 75 6c | .................(write-file.ful |
| f3c0 | 6c 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 | l-path))................(format. |
| f3e0 | 22 43 72 65 61 74 65 64 20 66 69 6c 65 20 25 73 20 69 6e 20 25 73 22 20 66 69 6c 65 6e 61 6d 65 | "Created.file.%s.in.%s".filename |
| f400 | 20 70 61 74 68 29 29 29 0a 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 72 65 61 74 65 20 61 | .path)))..:description."Create.a |
| f420 | 20 6e 65 77 20 66 69 6c 65 20 77 69 74 68 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 63 6f 6e | .new.file.with.the.specified.con |
| f440 | 74 65 6e 74 22 0a 20 3a 61 72 67 73 20 28 6c 69 73 74 20 27 28 3a 6e 61 6d 65 20 22 70 61 74 68 | tent"..:args.(list.'(:name."path |
| f460 | 22 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 61 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 | ".............;.a.list.of.argume |
| f480 | 6e 74 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 0a 09 20 20 20 20 20 20 20 3a 74 79 70 65 20 | nt.specifications.........:type. |
| f4a0 | 73 74 72 69 6e 67 0a 09 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 68 65 | string.........:description."The |
| f4c0 | 20 64 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 6f 20 63 72 65 61 74 65 20 74 68 65 20 66 | .directory.where.to.create.the.f |
| f4e0 | 69 6c 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 66 69 6c 65 | ile")..............'(:name."file |
| f500 | 6e 61 6d 65 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 20 20 20 | name".........:type.string...... |
| f520 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 | ...:description."The.name.of.the |
| f540 | 20 66 69 6c 65 20 74 6f 20 63 72 65 61 74 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 | .file.to.create")..............' |
| f560 | 28 3a 6e 61 6d 65 20 22 63 6f 6e 74 65 6e 74 22 0a 09 20 20 20 20 20 20 20 3a 74 79 70 65 20 73 | (:name."content".........:type.s |
| f580 | 74 72 69 6e 67 0a 09 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 68 65 20 | tring.........:description."The. |
| f5a0 | 63 6f 6e 74 65 6e 74 20 74 6f 20 77 72 69 74 65 20 74 6f 20 74 68 65 20 66 69 6c 65 22 29 29 0a | content.to.write.to.the.file")). |
| f5c0 | 20 3a 63 61 74 65 67 6f 72 79 20 22 66 69 6c 65 73 79 73 74 65 6d 22 29 20 20 20 20 20 20 20 20 | .:category."filesystem")........ |
| f5e0 | 20 20 20 20 20 20 20 20 3b 20 41 6e 20 61 72 62 69 74 72 61 72 79 20 6c 61 62 65 6c 20 66 6f 72 | ........;.An.arbitrary.label.for |
| f600 | 20 67 72 6f 75 70 69 6e 67 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 57 69 74 68 20 73 6f 6d 65 20 70 | .grouping.#+end_src..With.some.p |
| f620 | 72 6f 6d 70 74 69 6e 67 2c 20 79 6f 75 20 63 61 6e 20 67 65 74 20 61 6e 20 4c 4c 4d 20 74 6f 20 | rompting,.you.can.get.an.LLM.to. |
| f640 | 77 72 69 74 65 20 74 68 65 73 65 20 74 6f 6f 6c 73 20 66 6f 72 20 79 6f 75 2e 0a 0a 54 6f 6f 6c | write.these.tools.for.you...Tool |
| f660 | 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 75 73 65 20 | s.can.also.be.asynchronous,.use. |
| f680 | 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 | optional.arguments.and.arguments |
| f6a0 | 20 77 69 74 68 20 6d 6f 72 65 20 73 74 72 75 63 74 75 72 65 20 28 65 6e 75 6d 73 2c 20 61 72 72 | .with.more.structure.(enums,.arr |
| f6c0 | 61 79 73 2c 20 6f 62 6a 65 63 74 73 20 65 74 63 29 2e 20 20 53 65 65 20 3d 67 70 74 65 6c 2d 6d | ays,.objects.etc)...See.=gptel-m |
| f6e0 | 61 6b 65 2d 74 6f 6f 6c 3d 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 | ake-tool=.for.details...#+html:. |
| f700 | 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 |
| f720 | 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 53 65 6c 65 63 74 69 6e 67 20 74 6f 6f 6c 73 0a 23 2b 68 74 6d | mary>.****.Selecting.tools.#+htm |
| f740 | 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 4f 6e 63 65 20 64 65 66 69 6e 65 64 2c 20 74 6f 6f 6c | l:.</summary>.Once.defined,.tool |
| f760 | 73 20 63 61 6e 20 62 65 20 73 65 6c 65 63 74 65 64 20 28 67 6c 6f 62 61 6c 6c 79 2c 20 62 75 66 | s.can.be.selected.(globally,.buf |
| f780 | 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 65 71 75 | fer-locally.or.for.the.next.requ |
| f7a0 | 65 73 74 20 6f 6e 6c 79 29 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 | est.only).from.gptel's.transient |
| f7c0 | 20 6d 65 6e 75 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 | .menu:..#+html:.<img.src="https: |
| f7e0 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 | //github.com/user-attachments/as |
| f800 | 73 65 74 73 2f 66 64 38 37 38 35 39 36 2d 62 33 31 33 2d 34 33 38 35 2d 62 36 37 35 2d 33 64 36 | sets/fd878596-b313-4385-b675-3d6 |
| f820 | 35 34 36 39 30 39 64 38 62 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 61 6c 74 3d 22 49 | 546909d8b".align="center".alt="I |
| f840 | 6d 61 67 65 20 73 68 6f 77 69 6e 67 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 73 65 6c 65 63 74 | mage.showing.gptel's.tool.select |
| f860 | 69 6f 6e 20 6d 65 6e 75 2e 22 3e 0a 0a 46 72 6f 6d 20 68 65 72 65 20 79 6f 75 20 63 61 6e 20 61 | ion.menu.">..From.here.you.can.a |
| f880 | 6c 73 6f 20 72 65 71 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 6f 72 20 61 6c 6c | lso.require.confirmation.for.all |
| f8a0 | 20 74 6f 6f 6c 20 63 61 6c 6c 73 2c 20 61 6e 64 20 64 65 63 69 64 65 20 69 66 20 74 6f 6f 6c 20 | .tool.calls,.and.decide.if.tool. |
| f8c0 | 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 65 64 20 | call.results.should.be.included. |
| f8e0 | 69 6e 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2e 20 20 53 65 65 20 5b 5b 23 61 64 64 | in.the.LLM.response...See.[[#add |
| f900 | 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 69 6f 6e 61 | itional-configuration][Additiona |
| f920 | 6c 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 5d 20 66 6f 72 20 64 6f 69 6e 67 20 74 68 65 73 | l.Configuration]].for.doing.thes |
| f940 | 65 20 74 68 69 6e 67 73 20 76 69 61 20 65 6c 69 73 70 2e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 | e.things.via.elisp...#+html:.</d |
| f960 | 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 |
| f980 | 79 3e 0a 2a 2a 2a 2a 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 6f 74 6f 63 6f 6c 20 28 | y>.****.Model.Context.Protocol.( |
| f9a0 | 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 | MCP).integration.#+html:.</summa |
| f9c0 | 72 79 3e 0a 0a 54 68 65 20 5b 5b 68 74 74 70 73 3a 2f 2f 6d 6f 64 65 6c 63 6f 6e 74 65 78 74 70 | ry>..The.[[https://modelcontextp |
| f9e0 | 72 6f 74 6f 63 6f 6c 2e 69 6f 2f 69 6e 74 72 6f 64 75 63 74 69 6f 6e 5d 5b 4d 6f 64 65 6c 20 43 | rotocol.io/introduction][Model.C |
| fa00 | 6f 6e 74 65 78 74 20 50 72 6f 74 6f 63 6f 6c 5d 5d 20 28 4d 43 50 29 20 69 73 20 61 20 70 72 6f | ontext.Protocol]].(MCP).is.a.pro |
| fa20 | 74 6f 63 6f 6c 20 66 6f 72 20 70 72 6f 76 69 64 69 6e 67 20 72 65 73 6f 75 72 63 65 73 20 61 6e | tocol.for.providing.resources.an |
| fa40 | 64 20 74 6f 6f 6c 73 20 74 6f 20 4c 4c 4d 73 2c 20 61 6e 64 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 | d.tools.to.LLMs,.and.[[https://g |
| fa60 | 69 74 68 75 62 2e 63 6f 6d 2f 61 70 70 63 79 70 68 65 72 2f 61 77 65 73 6f 6d 65 2d 6d 63 70 2d | ithub.com/appcypher/awesome-mcp- |
| fa80 | 73 65 72 76 65 72 73 5d 5b 6d 61 6e 79 20 4d 43 50 20 73 65 72 76 65 72 73 20 65 78 69 73 74 5d | servers][many.MCP.servers.exist] |
| faa0 | 5d 20 74 68 61 74 20 70 72 6f 76 69 64 65 20 4c 4c 4d 20 74 6f 6f 6c 73 20 66 6f 72 20 66 69 6c | ].that.provide.LLM.tools.for.fil |
| fac0 | 65 20 61 63 63 65 73 73 2c 20 64 61 74 61 62 61 73 65 20 63 6f 6e 6e 65 63 74 69 6f 6e 73 2c 20 | e.access,.database.connections,. |
| fae0 | 41 50 49 20 69 6e 74 65 67 72 61 74 69 6f 6e 73 20 65 74 63 2e 20 20 54 68 65 20 5b 5b 6d 63 70 | API.integrations.etc...The.[[mcp |
| fb00 | 2e 65 6c 5d 5d 20 70 61 63 6b 61 67 65 20 66 6f 72 20 45 6d 61 63 73 20 63 61 6e 20 61 63 74 20 | .el]].package.for.Emacs.can.act. |
| fb20 | 61 73 20 61 6e 20 4d 43 50 20 63 6c 69 65 6e 74 20 61 6e 64 20 6d 61 6e 61 67 65 20 74 68 65 73 | as.an.MCP.client.and.manage.thes |
| fb40 | 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 6f 20 75 73 65 20 | e.tool.calls.for.gptel...To.use. |
| fb60 | 4d 43 50 20 73 65 72 76 65 72 73 20 77 69 74 68 20 67 70 74 65 6c 2c 20 79 6f 75 20 74 68 75 73 | MCP.servers.with.gptel,.you.thus |
| fb80 | 20 6e 65 65 64 20 74 68 72 65 65 20 70 69 65 63 65 73 3a 0a 0a 31 2e 20 54 68 65 20 5b 5b 68 74 | .need.three.pieces:..1..The.[[ht |
| fba0 | 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 69 7a 71 77 65 72 73 63 6f 74 74 2f 6d 63 | tps://github.com/lizqwerscott/mc |
| fbc0 | 70 2e 65 6c 5d 5b 6d 63 70 2e 65 6c 5d 5d 20 70 61 63 6b 61 67 65 20 66 6f 72 20 45 6d 61 63 73 | p.el][mcp.el]].package.for.Emacs |
| fbe0 | 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 6d 65 6c 70 61 2e 6f 72 67 2f 23 2f 6d 63 70 5d 5b 61 76 61 | ,.[[https://melpa.org/#/mcp][ava |
| fc00 | 69 6c 61 62 6c 65 20 6f 6e 20 4d 45 4c 50 41 5d 5d 2e 0a 32 2e 20 4d 43 50 20 73 65 72 76 65 72 | ilable.on.MELPA]]..2..MCP.server |
| fc20 | 73 20 63 6f 6e 66 69 67 75 72 65 64 20 66 6f 72 20 61 6e 64 20 72 75 6e 6e 69 6e 67 20 76 69 61 | s.configured.for.and.running.via |
| fc40 | 20 6d 63 70 2e 65 6c 2e 0a 33 2e 20 67 70 74 65 6c 20 61 6e 64 20 61 63 63 65 73 73 20 74 6f 20 | .mcp.el..3..gptel.and.access.to. |
| fc60 | 61 6e 20 4c 4c 4d 0a 0a 67 70 74 65 6c 20 69 6e 63 6c 75 64 65 73 20 3d 67 70 74 65 6c 2d 69 6e | an.LLM..gptel.includes.=gptel-in |
| fc80 | 74 65 67 72 61 74 69 6f 6e 73 3d 2c 20 61 20 73 6d 61 6c 6c 20 6c 69 62 72 61 72 79 20 74 6f 20 | tegrations=,.a.small.library.to. |
| fca0 | 6d 61 6b 65 20 74 68 69 73 20 6d 6f 72 65 20 63 6f 6e 76 65 6e 69 65 6e 74 2e 20 20 54 68 69 73 | make.this.more.convenient...This |
| fcc0 | 20 6c 69 62 72 61 72 79 20 69 73 20 6e 6f 74 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 6c 6f | .library.is.not.automatically.lo |
| fce0 | 61 64 65 64 20 62 79 20 67 70 74 65 6c 2c 20 73 6f 20 69 66 20 79 6f 75 20 77 6f 75 6c 64 20 6c | aded.by.gptel,.so.if.you.would.l |
| fd00 | 69 6b 65 20 74 6f 20 75 73 65 20 69 74 20 79 6f 75 20 68 61 76 65 20 74 6f 20 72 65 71 75 69 72 | ike.to.use.it.you.have.to.requir |
| fd20 | 65 20 69 74 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 72 | e.it:..#+begin_src.emacs-lisp.(r |
| fd40 | 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 29 0a 23 2b 65 6e | equire.'gptel-integrations).#+en |
| fd60 | 64 5f 73 72 63 0a 0a 4f 6e 63 65 20 6c 6f 61 64 65 64 2c 20 79 6f 75 20 63 61 6e 20 72 75 6e 20 | d_src..Once.loaded,.you.can.run. |
| fd80 | 74 68 65 20 3d 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 3d 20 61 6e 64 20 3d 67 70 74 | the.=gptel-mcp-connect=.and.=gpt |
| fda0 | 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 3d 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 72 | el-mcp-disconnect=.commands.to.r |
| fdc0 | 65 67 69 73 74 65 72 20 61 6e 64 20 75 6e 72 65 67 69 73 74 65 72 20 4d 43 50 2d 70 72 6f 76 69 | egister.and.unregister.MCP-provi |
| fde0 | 64 65 64 20 74 6f 6f 6c 73 20 69 6e 20 67 70 74 65 6c 2e 20 20 54 68 65 73 65 20 77 69 6c 6c 20 | ded.tools.in.gptel...These.will. |
| fe00 | 61 6c 73 6f 20 73 68 6f 77 20 75 70 20 69 6e 20 74 68 65 20 74 6f 6f 6c 73 20 6d 65 6e 75 20 69 | also.show.up.in.the.tools.menu.i |
| fe20 | 6e 20 67 70 74 65 6c 2c 20 61 63 63 65 73 73 65 64 20 76 69 61 20 3d 4d 2d 78 20 67 70 74 65 6c | n.gptel,.accessed.via.=M-x.gptel |
| fe40 | 2d 6d 65 6e 75 3d 20 6f 72 20 3d 4d 2d 78 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 3d 3a 0a 0a 23 2b | -menu=.or.=M-x.gptel-tools=:..#+ |
| fe60 | 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 |
| fe80 | 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 32 63 62 62 66 | om/user-attachments/assets/2cbbf |
| fea0 | 38 61 30 2d 34 39 63 37 2d 34 39 61 35 2d 62 61 32 34 2d 35 31 34 61 64 37 65 30 38 37 39 39 22 | 8a0-49c7-49a5-ba24-514ad7e08799" |
| fec0 | 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 |
| fee0 | 6e 67 20 4d 43 50 20 74 6f 6f 6c 20 72 65 67 69 73 74 72 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 | ng.MCP.tool.registration.command |
| ff00 | 73 20 69 6e 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 73 65 6c 65 63 74 69 6f 6e 20 6d 65 6e 75 | s.in.gptel's.tool.selection.menu |
| ff20 | 2e 22 3e 0a 0a 4d 43 50 2d 70 72 6f 76 69 64 65 64 20 74 6f 6f 6c 73 20 63 61 6e 20 62 65 20 75 | .">..MCP-provided.tools.can.be.u |
| ff40 | 73 65 64 20 61 73 20 6e 6f 72 6d 61 6c 20 77 69 74 68 20 67 70 74 65 6c 2e 20 20 48 65 72 65 20 | sed.as.normal.with.gptel...Here. |
| ff60 | 69 73 20 61 20 73 63 72 65 65 6e 63 61 73 74 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 2e 20 | is.a.screencast.of.the.process.. |
| ff80 | 20 28 49 6e 20 74 68 69 73 20 65 78 61 6d 70 6c 65 20 74 68 65 20 22 67 69 74 68 75 62 22 20 4d | .(In.this.example.the."github".M |
| ffa0 | 43 50 20 73 65 72 76 65 72 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 73 65 70 61 72 61 74 65 6c | CP.server.is.installed.separatel |
| ffc0 | 79 20 75 73 69 6e 67 20 6e 70 6d 2e 29 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 6e 3d | y.using.npm.)..#+html:.<p.align= |
| ffe0 | 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 75 73 65 | "center">.https://github.com/use |
| 10000 | 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 33 65 61 37 61 63 30 2d 61 33 | r-attachments/assets/f3ea7ac0-a3 |
| 10020 | 32 32 2d 34 61 35 39 2d 62 35 62 32 2d 62 33 66 35 39 32 35 35 34 66 38 61 0a 23 2b 68 74 6d 6c | 22-4a59-b5b2-b3f592554f8a.#+html |
| 10040 | 3a 20 3c 2f 70 3e 0a 0a 48 65 72 65 27 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 75 73 69 | :.</p>..Here's.an.example.of.usi |
| 10060 | 6e 67 20 74 68 65 73 65 20 74 6f 6f 6c 73 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 70 20 61 6c 69 67 | ng.these.tools:..#+html:.<p.alig |
| 10080 | 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 75 | n="center">.https://github.com/u |
| 100a0 | 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 62 34 38 61 36 61 32 34 2d | ser-attachments/assets/b48a6a24- |
| 100c0 | 61 31 33 30 2d 34 64 61 37 2d 61 32 65 65 2d 36 65 61 35 36 38 65 31 30 63 38 35 0a 23 2b 68 74 | a130-4da7-a2ee-6ea568e10c85.#+ht |
| 100e0 | 6d 6c 3a 20 3c 2f 70 3e 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 0a 2a | ml:.</p>..#+html:.</details>...* |
| 10100 | 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 20 | **.Rewrite,.refactor.or.fill.in. |
| 10120 | 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 20 | a.region..In.any.buffer:.with.a. |
| 10140 | 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 20 | region.selected,.you.can.modify. |
| 10160 | 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 20 | text,.rewrite.prose.or.refactor. |
| 10180 | 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 6d | code.with.=gptel-rewrite=...Exam |
| 101a0 | 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 67 | ple.with.prose:..#+html:.<p.alig |
| 101c0 | 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 75 | n="center">.https://github.com/u |
| 101e0 | 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 2d | ser-attachments/assets/e3b436b3- |
| 10200 | 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 74 | 9bde-4c1f-b2ce-3f7df1984933.#+ht |
| 10220 | 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 65 | ml:.</p>..The.result.is.previewe |
| 10240 | 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 65 | d.over.the.original.text...By.de |
| 10260 | 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 65 | fault,.the.buffer.is.not.modifie |
| 10280 | 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 69 | d...Pressing.=RET=.or.clicking.i |
| 102a0 | 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 69 | n.the.rewritten.region.should.gi |
| 102c0 | 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 61 | ve.you.a.list.of.options:.you.ca |
| 102e0 | 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 2c | n.*iterate*.on,.*diff*,.*ediff*, |
| 10300 | 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 65 | .*merge*.or.*accept*.the.replace |
| 10320 | 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 6d | ment...Example.with.code:..#+htm |
| 10340 | 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 69 | l:.<p.align="center">.https://gi |
| 10360 | 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 73 | thub.com/user-attachments/assets |
| 10380 | 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 33 | /4067fdb8-85d3-4264-9b64-d727353 |
| 103a0 | 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 74 | f68f9.#+html:.</p>..*Acting.on.t |
| 103c0 | 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 20 | he.LLM.response*:..If.you.would. |
| 103e0 | 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 70 | like.one.of.these.things.to.happ |
| 10400 | 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 6d | en.automatically,.you.can.custom |
| 10420 | 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 6f | ize.=gptel-rewrite-default-actio |
| 10440 | 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 69 | n=...These.options.are.also.avai |
| 10460 | 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 68 | lable.from.=gptel-rewrite=:..#+h |
| 10480 | 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 6f | tml:.<img.src="https://github.co |
| 104a0 | 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 35 | m/user-attachments/assets/589785 |
| 104c0 | 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 20 | b9-aa3f-414a-98dd-d26b7509de08". |
| 104e0 | 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 63 | align="center"./>..And.you.can.c |
| 10500 | 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 6f | all.them.directly.when.the.curso |
| 10520 | 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 23 | r.is.in.the.rewritten.region:..# |
| 10540 | 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e | +html:.<img.src="https://github. |
| 10560 | 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 33 | com/user-attachments/assets/f5b3 |
| 10580 | 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 63 | ca47-e146-45fe-8584-f11035fa4dbc |
| 105a0 | 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 4f | ".align="center"./>..***.Extra.O |
| 105c0 | 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 65 | rg.mode.conveniences..gptel.offe |
| 105e0 | 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 4f | rs.a.few.extra.conveniences.in.O |
| 10600 | 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 69 | rg.mode...*****.Limit.conversati |
| 10620 | 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 6f | on.context.to.an.Org.heading..Yo |
| 10640 | 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 6e | u.can.limit.the.conversation.con |
| 10660 | 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 20 | text.to.an.Org.heading.with.the. |
| 10680 | 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 0a | command.=gptel-org-set-topic=... |
| 106a0 | 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 54 | (This.sets.an.Org.property.(=GPT |
| 106c0 | 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 59 | EL_TOPIC=).under.the.heading...Y |
| 106e0 | 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 61 | ou.can.also.add.this.property.ma |
| 10700 | 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 72 | nually.instead.)....*****.Use.br |
| 10720 | 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 65 | anching.context.in.Org.mode.(tre |
| 10740 | 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 76 | e.of.conversations)..You.can.hav |
| 10760 | 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 67 | e.branching.conversations.in.Org |
| 10780 | 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 6f | .mode,.where.each.hierarchical.o |
| 107a0 | 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 74 | utline.path.through.the.document |
| 107c0 | 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 6e | .is.a.separate.conversation.bran |
| 107e0 | 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 6d | ch...This.is.also.useful.for.lim |
| 10800 | 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 71 | iting.the.context.size.of.each.q |
| 10820 | 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 6f | uery...See.the.variable.=gptel-o |
| 10840 | 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 20 | rg-branching-context=...If.this. |
| 10860 | 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 20 | variable.is.non-nil,.you.should. |
| 10880 | 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 66 | probably.edit.=gptel-prompt-pref |
| 108a0 | 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 |
| 108c0 | 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 73 | efix-alist=.so.that.the.prefix.s |
| 108e0 | 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 20 | trings.for.org-mode.are.not.Org. |
| 10900 | 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 63 | headings,.e.g...#+begin_src.emac |
| 10920 | 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 6d | s-lisp...(setf.(alist-get.'org-m |
| 10940 | 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 22 | ode.gptel-prompt-prefix-alist)." |
| 10960 | 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 72 | @user\n")...(setf.(alist-get.'or |
| 10980 | 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 69 | g-mode.gptel-response-prefix-ali |
| 109a0 | 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 4f | st)."@assistant\n").#+end_src..O |
| 109c0 | 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 65 | therwise,.the.default.prompt.pre |
| 109e0 | 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 73 | fix.will.make.successive.prompts |
| 10a00 | 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 65 | .sibling.headings,.and.therefore |
| 10a20 | 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 63 | .on.different.conversation.branc |
| 10a40 | 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 79 | hes,.which.probably.isn't.what.y |
| 10a60 | 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 6f | ou.want...Note:.using.this.optio |
| 10a80 | 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 20 | n.requires.Org.9.7.or.higher.to. |
| 10aa0 | 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 74 | be.available...The.[[https://git |
| 10ac0 | 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 6c | hub.com/ultronozm/ai-org-chat.el |
| 10ae0 | 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 74 | ][ai-org-chat]].package.uses.gpt |
| 10b00 | 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 6e | el.to.provide.this.branching.con |
| 10b20 | 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 72 | versation.behavior.for.older.ver |
| 10b40 | 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 65 | sions.of.Org.....*****.Save.gpte |
| 10b60 | 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 65 | l.parameters.to.Org.headings.(re |
| 10b80 | 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 61 | producible.chats)..You.can.decla |
| 10ba0 | 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 6d | re.the.gptel.model,.backend,.tem |
| 10bc0 | 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 68 | perature,.system.message.and.oth |
| 10be0 | 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. |
| 10c00 | 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 2d | with.the.command.=gptel-org-set- |
| 10c20 | 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 65 | properties=...gptel.queries.unde |
| 10c40 | 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 6c | r.the.corresponding.heading.will |
| 10c60 | 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 6f | .always.use.these.settings,.allo |
| 10c80 | 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 64 | wing.you.to.create.mostly.reprod |
| 10ca0 | 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 74 | ucible.LLM.chat.notebooks,.and.t |
| 10cc0 | 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 64 | o.have.simultaneous.chats.with.d |
| 10ce0 | 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 20 | ifferent.models,.model.settings. |
| 10d00 | 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 4f | and.directives.under.different.O |
| 10d20 | 72 67 20 68 65 61 64 69 6e 67 73 2e 0a 0a 2a 2a 2a 20 49 6e 74 72 6f 73 70 65 63 74 69 6f 6e 20 | rg.headings...***.Introspection. |
| 10d40 | 28 65 78 61 6d 69 6e 65 2c 20 64 65 62 75 67 20 6f 72 20 6d 6f 64 69 66 79 20 72 65 71 75 65 73 | (examine,.debug.or.modify.reques |
| 10d60 | 74 73 29 0a 0a 53 65 74 20 3d 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 3d | ts)..Set.=gptel-expert-commands= |
| 10d80 | 20 74 6f 20 3d 74 3d 20 74 6f 20 64 69 73 70 6c 61 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 70 | .to.=t=.to.display.additional.op |
| 10da0 | 74 69 6f 6e 73 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e | tions.in.gptel's.transient.menu. |
| 10dc0 | 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 77 69 64 74 68 3d 22 38 30 30 22 20 68 65 69 67 68 74 | .#+html:.<img.width="800".height |
| 10de0 | 3d 22 34 30 33 22 20 61 6c 74 3d 22 49 6d 61 67 65 22 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f | ="403".alt="Image".src="https:// |
| 10e00 | 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 | github.com/user-attachments/asse |
| 10e20 | 74 73 2f 36 33 36 66 66 37 37 63 2d 37 33 64 39 2d 34 34 39 62 2d 39 64 34 39 2d 62 62 37 39 32 | ts/636ff77c-73d9-449b-9d49-bb792 |
| 10e40 | 64 38 61 62 64 34 35 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 2f 3e 0a 0a 2a 45 78 61 6d | d8abd45".align="center"/>..*Exam |
| 10e60 | 69 6e 69 6e 67 20 70 72 6f 6d 70 74 73 2a 3a 20 79 6f 75 20 63 61 6e 20 65 78 61 6d 69 6e 65 20 | ining.prompts*:.you.can.examine. |
| 10e80 | 61 6e 64 20 65 64 69 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 70 61 79 6c 6f 61 64 73 20 | and.edit.gptel.request.payloads. |
| 10ea0 | 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 74 68 65 6d 2e 0a 0a 2d 20 50 69 63 6b 20 6f 6e 65 | before.sending.them...-.Pick.one |
| 10ec0 | 20 6f 66 20 74 68 65 20 22 64 72 79 20 72 75 6e 22 20 6f 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 | .of.the."dry.run".options.in.the |
| 10ee0 | 20 6d 65 6e 75 20 74 6f 20 70 72 6f 64 75 63 65 20 61 20 62 75 66 66 65 72 20 63 6f 6e 74 61 69 | .menu.to.produce.a.buffer.contai |
| 10f00 | 6e 69 6e 67 20 74 68 65 20 72 65 71 75 65 73 74 20 70 61 79 6c 6f 61 64 2e 0a 2d 20 59 6f 75 20 | ning.the.request.payload..-.You. |
| 10f20 | 63 61 6e 20 65 64 69 74 20 74 68 69 73 20 62 75 66 66 65 72 20 61 73 20 79 6f 75 20 77 6f 75 6c | can.edit.this.buffer.as.you.woul |
| 10f40 | 64 20 6c 69 6b 65 20 61 6e 64 20 73 65 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 2d 20 59 | d.like.and.send.the.request..-.Y |
| 10f60 | 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 6f 70 79 20 61 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 | ou.can.also.copy.a.Curl.command. |
| 10f80 | 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 72 65 71 75 65 73 74 20 61 6e 64 | corresponding.to.the.request.and |
| 10fa0 | 20 69 6e 76 6f 6b 65 20 69 74 20 66 72 6f 6d 20 74 68 65 20 73 68 65 6c 6c 2e 0a 0a 2a 45 78 61 | .invoke.it.from.the.shell...*Exa |
| 10fc0 | 6d 69 6e 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2a 3a 20 59 6f 75 20 63 61 6e 20 74 75 72 6e 20 | mining.responses*:.You.can.turn. |
| 10fe0 | 6f 6e 20 6c 6f 67 67 69 6e 67 20 74 6f 20 65 78 61 6d 69 6e 65 20 74 68 65 20 66 75 6c 6c 20 72 | on.logging.to.examine.the.full.r |
| 11000 | 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 61 6e 20 4c 4c 4d 2e 0a 0a 2d 20 53 65 74 20 3d 67 70 74 | esponse.from.an.LLM...-.Set.=gpt |
| 11020 | 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 3d 20 74 6f 20 3d 69 6e 66 6f 3d 20 6f 72 20 3d 64 65 62 75 | el-log-level=.to.=info=.or.=debu |
| 11040 | 67 3d 2e 0a 2d 20 53 65 6e 64 20 61 20 72 65 71 75 65 73 74 2e 0a 2d 20 4f 70 65 6e 20 74 68 65 | g=..-.Send.a.request..-.Open.the |
| 11060 | 20 6c 6f 67 20 62 75 66 66 65 72 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 | .log.buffer.from.gptel's.transie |
| 11080 | 6e 74 20 6d 65 6e 75 2c 20 6f 72 20 73 77 69 74 63 68 20 74 6f 20 74 68 65 20 3d 2a 67 70 74 65 | nt.menu,.or.switch.to.the.=*gpte |
| 110a0 | 6c 2d 6c 6f 67 2a 3d 20 62 75 66 66 65 72 2e 0a 0a 2a 2a 20 46 41 51 0a 2a 2a 2a 20 43 68 61 74 | l-log*=.buffer...**.FAQ.***.Chat |
| 110c0 | 20 62 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 | .buffer.UI.#+html:.<details><sum |
| 110e0 | 6d 61 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 | mary>.****.I.want.the.window.to. |
| 11100 | 73 63 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 | scroll.automatically.as.the.resp |
| 11120 | 6f 6e 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 | onse.is.inserted.#+html:.</summa |
| 11140 | 72 79 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 | ry>..To.be.minimally.annoying,.g |
| 11160 | 70 74 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 | ptel.does.not.move.the.cursor.by |
| 11180 | 20 64 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 | .default...Add.the.following.to. |
| 111a0 | 79 6f 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 | your.configuration.to.enable.aut |
| 111c0 | 6f 2d 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 | o-scrolling...#+begin_src.emacs- |
| 111e0 | 6c 69 73 70 0a 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 65 61 | lisp.(add-hook.'gptel-post-strea |
| 11200 | 6d 2d 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 | m-hook.'gptel-auto-scroll).#+end |
| 11220 | 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: |
| 11240 | 20 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 | .<details><summary>.****.I.want. |
| 11260 | 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 20 70 | the.cursor.to.move.to.the.next.p |
| 11280 | 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 73 65 | rompt.after.the.response.is.inse |
| 112a0 | 72 74 65 64 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 54 6f 20 62 65 20 6d | rted.#+html:.</summary>..To.be.m |
| 112c0 | 69 6e 69 6d 61 6c 6c 79 20 61 6e 6e 6f 79 69 6e 67 2c 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f | inimally.annoying,.gptel.does.no |
| 112e0 | 74 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 41 | t.move.the.cursor.by.default...A |
| 11300 | 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 | dd.the.following.to.your.configu |
| 11320 | 72 61 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 | ration.to.move.the.cursor:..#+be |
| 11340 | 67 69 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 | gin_src.emacs-lisp.(add-hook.'gp |
| 11360 | 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 20 27 67 70 74 | tel-post-response-functions.'gpt |
| 11380 | 65 6c 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 | el-end-of-response).#+end_src..Y |
| 113a0 | 6f 75 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 | ou.can.also.call.=gptel-end-of-r |
| 113c0 | 65 73 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 | esponse=.as.a.command.at.any.tim |
| 113e0 | 65 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 | e...#+html:.</details>.#+html:.< |
| 11400 | 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 6f | details><summary>.****.I.want.to |
| 11420 | 20 63 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 | .change.the.formatting.of.the.pr |
| 11440 | 6f 6d 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 | ompt.and.LLM.response.#+html:.</ |
| 11460 | 73 75 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 | summary>..For.dedicated.chat.buf |
| 11480 | 66 65 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 | fers:.customize.=gptel-prompt-pr |
| 114a0 | 65 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 | efix-alist=.and.=gptel-response- |
| 114c0 | 70 72 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 | prefix-alist=...You.can.set.a.di |
| 114e0 | 66 66 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 | fferent.pair.for.each.major-mode |
| 11500 | 2e 0a 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 | ...Anywhere.in.Emacs:.Use.=gptel |
| 11520 | 2d 70 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 | -pre-response-hook=.and.=gptel-p |
| 11540 | 6f 73 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 | ost-response-functions=,.which.s |
| 11560 | 65 65 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 | ee...#+html:.</details>.#+html:. |
| 11580 | 3c 64 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 | <details><summary>.****.How.does |
| 115a0 | 20 67 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 | .gptel.distinguish.between.user. |
| 115c0 | 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 3f 0a 23 2b 68 74 6d | prompts.and.LLM.responses?.#+htm |
| 115e0 | 6c 3a 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 | l:.</summary>..gptel.uses.[[http |
| 11600 | 73 3a 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 | s://www.gnu.org/software/emacs/m |
| 11620 | 61 6e 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 | anual/html_node/elisp/Text-Prope |
| 11640 | 72 74 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 | rties.html][text-properties]].to |
| 11660 | 20 77 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 | .watermark.LLM.responses...Thus. |
| 11680 | 74 68 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 | this.text.is.interpreted.as.a.re |
| 116a0 | 73 70 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 | sponse.even.if.you.copy.it.into. |
| 116c0 | 61 6e 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 | another.buffer...In.regular.buff |
| 116e0 | 65 72 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 | ers.(buffers.without.=gptel-mode |
| 11700 | 3d 20 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 | =.enabled),.you.can.turn.off.thi |
| 11720 | 73 20 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 | s.tracking.by.unsetting.=gptel-t |
| 11740 | 72 61 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 | rack-response=...When.restoring. |
| 11760 | 61 20 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 | a.chat.state.from.a.file.on.disk |
| 11780 | 2c 20 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 | ,.gptel.will.apply.these.propert |
| 117a0 | 69 65 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 | ies.from.saved.metadata.in.the.f |
| 117c0 | 69 6c 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 | ile.when.you.turn.on.=gptel-mode |
| 117e0 | 3d 2e 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 | =...gptel.does./not/.use.any.pre |
| 11800 | 66 69 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 | fix.or.semantic/syntax.element.i |
| 11820 | 6e 20 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 | n.the.buffer.(such.as.headings). |
| 11840 | 74 6f 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 | to.separate.prompts.and.response |
| 11860 | 73 2e 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 | s...The.reason.for.this.is.that. |
| 11880 | 67 70 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 | gptel.aims.to.integrate.as.seaml |
| 118a0 | 65 73 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 | essly.as.possible.into.your.regu |
| 118c0 | 6c 61 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 | lar.Emacs.usage:.LLM.interaction |
| 118e0 | 20 69 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 | .is.not.the.objective,.it's.just |
| 11900 | 20 61 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 | .another.tool.at.your.disposal.. |
| 11920 | 20 53 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 | .So.requiring.a.bunch.of."user". |
| 11940 | 61 6e 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 | and."assistant".tags.in.the.buff |
| 11960 | 65 72 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 | er.is.noisy.and.restrictive..If. |
| 11980 | 79 6f 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 | you.want.these.demarcations,.you |
| 119a0 | 20 63 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 | .can.customize.=gptel-prompt-pre |
| 119c0 | 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 |
| 119e0 | 72 65 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 | refix-alist=...Note.that.these.p |
| 11a00 | 72 65 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 | refixes.are.for.your.readability |
| 11a20 | 20 6f 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 | .only.and.purely.cosmetic...#+ht |
| 11a40 | 6d 6c 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 | ml:.</details>.***.Transient.men |
| 11a60 | 75 20 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 | u.behavior.#+html:.<details><sum |
| 11a80 | 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 6f 20 73 65 74 20 67 70 74 65 6c 20 6f | mary>.****.I.want.to.set.gptel.o |
| 11aa0 | 70 74 69 6f 6e 73 20 62 75 74 20 6f 6e 6c 79 20 66 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 0a | ptions.but.only.for.this.buffer. |
| 11ac0 | 3a 50 52 4f 50 45 52 54 49 45 53 3a 0a 3a 49 44 3a 20 20 20 20 20 20 20 37 34 38 63 62 63 30 30 | :PROPERTIES:.:ID:.......748cbc00 |
| 11ae0 | 2d 30 63 39 32 2d 34 37 30 35 2d 38 38 33 39 2d 36 31 39 62 32 63 38 30 65 35 36 36 0a 3a 45 4e | -0c92-4705-8839-619b2c80e566.:EN |
| 11b00 | 44 3a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 49 6e 20 65 76 65 72 79 20 | D:.#+html:.</summary>..In.every. |
| 11b20 | 6d 65 6e 75 20 75 73 65 64 20 74 6f 20 73 65 74 20 6f 70 74 69 6f 6e 73 2c 20 67 70 74 65 6c 20 | menu.used.to.set.options,.gptel. |
| 11b40 | 70 72 6f 76 69 64 65 73 20 61 20 22 73 63 6f 70 65 22 20 6f 70 74 69 6f 6e 2c 20 62 6f 75 6e 64 | provides.a."scope".option,.bound |
| 11b60 | 20 74 6f 20 74 68 65 20 7e 3d 7e 20 6b 65 79 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 69 6d 67 20 73 | .to.the.~=~.key:..#+html:.<img.s |
| 11b80 | 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 61 | rc="https://github.com/user-atta |
| 11ba0 | 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 66 39 39 30 34 31 33 34 2d 32 39 30 35 2d 34 62 31 | chments/assets/f9904134-2905-4b1 |
| 11bc0 | 64 2d 61 64 33 37 2d 62 36 34 63 37 37 37 61 66 38 61 63 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 | d-ad37-b64c777af8ac".align="cent |
| 11be0 | 65 72 22 20 2f 3e 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 | er"./>..#+html:.<img.src="https: |
| 11c00 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 | //github.com/user-attachments/as |
| 11c20 | 73 65 74 73 2f 63 30 39 35 30 30 33 35 2d 62 66 36 35 2d 34 33 61 65 2d 62 36 34 39 2d 38 65 33 | sets/c0950035-bf65-43ae-b649-8e3 |
| 11c40 | 62 36 35 31 63 65 33 66 31 22 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 23 2b | b651ce3f1".align="center"./>..#+ |
| 11c60 | 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 |
| 11c80 | 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 61 33 62 31 | om/user-attachments/assets/fa3b1 |
| 11ca0 | 32 34 36 2d 65 30 30 66 2d 34 63 35 65 2d 38 38 63 37 2d 34 36 35 35 37 62 33 35 30 37 65 66 22 | 246-e00f-4c5e-88c7-46557b3507ef" |
| 11cc0 | 20 61 6c 69 67 6e 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 0a 59 6f 75 20 63 61 6e 20 66 6c 69 70 | .align="center"./>..You.can.flip |
| 11ce0 | 20 74 68 69 73 20 73 77 69 74 63 68 20 62 65 66 6f 72 65 20 73 65 74 74 69 6e 67 20 74 68 65 20 | .this.switch.before.setting.the. |
| 11d00 | 6f 70 74 69 6f 6e 20 74 6f 20 3d 62 75 66 66 65 72 3d 20 6f 72 20 3d 6f 6e 65 73 68 6f 74 3d 2e | option.to.=buffer=.or.=oneshot=. |
| 11d20 | 20 20 59 6f 75 20 6f 6e 6c 79 20 6e 65 65 64 20 74 6f 20 66 6c 69 70 20 74 68 69 73 20 73 77 69 | ..You.only.need.to.flip.this.swi |
| 11d40 | 74 63 68 20 6f 6e 63 65 2c 20 69 74 27 73 20 61 20 70 65 72 73 69 73 74 65 6e 74 20 73 65 74 74 | tch.once,.it's.a.persistent.sett |
| 11d60 | 69 6e 67 2e 20 20 3d 62 75 66 66 65 72 3d 20 73 65 74 73 20 74 68 65 20 6f 70 74 69 6f 6e 20 62 | ing...=buffer=.sets.the.option.b |
| 11d80 | 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2c 20 3d 6f 6e 65 73 68 6f 74 3d 20 77 69 6c 6c 20 73 65 | uffer-locally,.=oneshot=.will.se |
| 11da0 | 74 20 69 74 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 | t.it.for.the.next.gptel.request. |
| 11dc0 | 6f 6e 6c 79 2e 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 73 63 6f 70 65 20 69 73 20 67 6c 6f 62 | only...The.default.scope.is.glob |
| 11de0 | 61 6c 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 | al...#+html:.</details>.#+html:. |
| 11e00 | 3c 64 65 74 61 69 6c 73 3e 3c 73 75 6d 6d 61 72 79 3e 0a 2a 2a 2a 2a 20 49 20 77 61 6e 74 20 74 | <details><summary>.****.I.want.t |
| 11e20 | 68 65 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 6f 70 74 69 6f 6e 73 20 74 6f 20 62 65 20 | he.transient.menu.options.to.be. |
| 11e40 | 73 61 76 65 64 20 73 6f 20 49 20 6f 6e 6c 79 20 6e 65 65 64 20 74 6f 20 73 65 74 20 74 68 65 6d | saved.so.I.only.need.to.set.them |
| 11e60 | 20 6f 6e 63 65 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 73 75 6d 6d 61 72 79 3e 0a 0a 41 6e 79 20 6d 6f | .once.#+html:.</summary>..Any.mo |
| 11e80 | 64 65 6c 20 6f 70 74 69 6f 6e 73 20 79 6f 75 20 73 65 74 20 61 72 65 20 73 61 76 65 64 20 61 63 | del.options.you.set.are.saved.ac |
| 11ea0 | 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 73 63 6f 70 65 20 28 73 65 65 20 70 72 65 76 69 6f | cording.to.the.scope.(see.previo |
| 11ec0 | 75 73 20 71 75 65 73 74 69 6f 6e 29 2e 20 20 42 75 74 20 74 68 65 20 72 65 64 69 72 65 63 74 69 | us.question)...But.the.redirecti |
| 11ee0 | 6f 6e 20 6f 70 74 69 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 | on.options.in.the.menu.are.set.f |
| 11f00 | 6f 72 20 74 68 65 20 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 | or.the.next.query.only:..#+html: |
| 11f20 | 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 61 | .<img.src="https://github.com/ka |
| 11f40 | 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 32 65 63 63 | rthink/gptel/assets/8607532/2ecc |
| 11f60 | 36 62 65 39 2d 61 61 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 | 6be9-aa52-4287-a739-ba06e1369ec2 |
| 11f80 | 22 20 61 6c 74 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 | ".alt="https://github.com/karthi |
| 11fa0 | 6e 6b 2f 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 | nk/gptel/assets/8607532/2ecc6be9 |
| 11fc0 | 2d 61 61 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 3e 0a 0a | -aa52-4287-a739-ba06e1369ec2">.. |
| 11fe0 | 59 6f 75 20 63 61 6e 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 | You.can.make.them.persistent.acr |
| 12000 | 6f 73 73 20 74 68 69 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 | oss.this.Emacs.session.by.pressi |
| 12020 | 6e 67 20 7e 43 2d 78 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 | ng.~C-x.C-s~:..#+html:.<img.src= |
| 12040 | 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 | "https://github.com/karthink/gpt |
| 12060 | 65 6c 2f 61 73 73 65 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 | el/assets/8607532/b8bcb6ad-c974- |
| 12080 | 34 31 65 31 2d 39 33 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 | 41e1-9336-fdba0098a2fe".alt="htt |
| 120a0 | 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 2f 61 | ps://github.com/karthink/gptel/a |
| 120c0 | 73 73 65 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 | ssets/8607532/b8bcb6ad-c974-41e1 |
| 120e0 | 2d 39 33 33 36 2d 66 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 | -9336-fdba0098a2fe">..(You.can.a |
| 12100 | 6c 73 6f 20 63 79 63 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 | lso.cycle.through.presets.you've |
| 12120 | 20 73 61 76 65 64 20 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 | .saved.with.~C-x.p~.and.~C-x.n~. |
| 12140 | 29 0a 0a 4e 6f 77 20 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 | )..Now.these.will.be.enabled.whe |
| 12160 | 6e 65 76 65 72 20 79 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 | never.you.send.a.query.from.the. |
| 12180 | 74 72 61 6e 73 69 65 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 | transient.menu...If.you.want.to. |
| 121a0 | 75 73 65 20 74 68 65 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 | use.these.saved.options.without. |
| 121c0 | 69 6e 76 6f 6b 69 6e 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 | invoking.the.transient.menu,.you |
| 121e0 | 20 63 61 6e 20 75 73 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 | .can.use.a.keyboard.macro:..#+be |
| 12200 | 67 69 6e 5f 73 72 63 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 | gin_src.emacs-lisp.;;.Replace.wi |
| 12220 | 74 68 20 79 6f 75 72 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 | th.your.key.to.invoke.the.transi |
| 12240 | 65 6e 74 20 6d 65 6e 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 | ent.menu:.(keymap-global-set."<f |
| 12260 | 36 3e 22 20 22 43 2d 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 | 6>"."C-u.C-c.<return>.<return>") |
| 12280 | 0a 23 2b 65 6e 64 5f 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 | .#+end_src..Or.see.this.[[https: |
| 122a0 | 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 |
| 122c0 | 2f 43 6f 6d 6d 6f 6e 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 | /Commonly-requested-features#sav |
| 122e0 | 65 2d 74 72 61 6e 73 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 | e-transient-flags][wiki.entry]]. |
| 12300 | 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 |
| 12320 | 74 61 69 6c 73 3e 3c 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 | tails><summary>.****.Using.the.t |
| 12340 | 72 61 6e 73 69 65 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 | ransient.menu.leaves.behind.extr |
| 12360 | 61 20 77 69 6e 64 6f 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 | a.windows.#+html:.</summary>..If |
| 12380 | 20 75 73 69 6e 67 20 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 | .using.gptel's.transient.menus.c |
| 123a0 | 61 75 73 65 73 20 6e 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 | auses.new/extra.window.splits.to |
| 123c0 | 20 62 65 20 63 72 65 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 | .be.created,.check.your.value.of |
| 123e0 | 20 3d 74 72 61 6e 73 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 | .=transient-display-buffer-actio |
| 12400 | 6e 3d 2e 20 20 5b 5b 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 | n=...[[https://github.com/magit/ |
| 12420 | 74 72 61 6e 73 69 65 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 | transient/discussions/358][See.t |
| 12440 | 68 69 73 20 64 69 73 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 | his.discussion]].for.more.contex |
| 12460 | 74 2e 0a 0a 49 66 20 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 | t...If.you.are.using.Helm,.see.[ |
| 12480 | 5b 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 | [https://github.com/magit/transi |
| 124a0 | 65 6e 74 2f 64 69 73 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 | ent/discussions/361][Transient#3 |
| 124c0 | 36 31 5d 5d 2e 0a 0a 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 | 61]]...In.general,.do.not.custom |
| 124e0 | 69 7a 65 20 74 68 69 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 | ize.this.Transient.option.unless |
| 12500 | 20 79 6f 75 20 6b 6e 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 | .you.know.what.you're.doing!..#+ |
| 12520 | 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 |
| 12540 | 73 3e 3c 73 75 6d 6d 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 | s><summary>.****.Can.I.change.th |
| 12560 | 65 20 74 72 61 6e 73 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 | e.transient.menu.key.bindings?.# |
| 12580 | 2b 68 74 6d 6c 3a 20 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 | +html:.</summary>..Yes,.see.=tra |
| 125a0 | 6e 73 69 65 6e 74 2d 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 | nsient-suffix-put=...This.change |
| 125c0 | 73 20 74 68 65 20 6b 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 | s.the.key.to.select.a.backend/mo |
| 125e0 | 64 65 6c 20 66 72 6f 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 | del.from."-m".to."M".in.gptel's. |
| 12600 | 6d 65 6e 75 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 74 72 | menu:.#+begin_src.emacs-lisp.(tr |
| 12620 | 61 6e 73 69 65 6e 74 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 | ansient-suffix-put.'gptel-menu.( |
| 12640 | 6b 62 64 20 22 2d 6d 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 | kbd."-m").:key."M").#+end_src..# |
| 12660 | 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 | +html:.</details>.#+html:.<detai |
| 12680 | 6c 73 3e 3c 73 75 6d 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 | ls><summary>.****.(Doom.Emacs).S |
| 126a0 | 65 6e 64 69 6e 67 20 61 20 71 75 65 72 79 20 66 72 6f 6d 20 74 68 65 20 67 70 74 65 6c 20 6d 65 | ending.a.query.from.the.gptel.me |
| 126c0 | 6e 75 20 66 61 69 6c 73 20 62 65 63 61 75 73 65 20 6f 66 20 61 20 6b 65 79 20 63 6f 6e 66 6c 69 | nu.fails.because.of.a.key.confli |
| 126e0 | 63 74 20 77 69 74 68 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 | ct.with.Org.mode.#+html:.</summa |
| 12700 | 72 79 3e 0a 0a 44 6f 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 | ry>..Doom.binds.~RET~.in.Org.mod |
| 12720 | 65 20 74 6f 20 3d 2b 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 | e.to.=+org/dwim-at-point=,.which |
| 12740 | 20 61 70 70 65 61 72 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 | .appears.to.conflict.with.gptel' |
| 12760 | 73 20 74 72 61 6e 73 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 | s.transient.menu.bindings.for.so |
| 12780 | 6d 65 20 72 65 61 73 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 | me.reason...Two.solutions:.-.Pre |
| 127a0 | 73 73 20 7e 43 2d 6d 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 | ss.~C-m~.instead.of.the.return.k |
| 127c0 | 65 79 2e 0a 2d 20 43 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 | ey..-.Change.the.send.key.from.r |
| 127e0 | 65 74 75 72 6e 20 74 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 | eturn.to.a.key.of.your.choice:.. |
| 12800 | 20 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 28 74 72 61 6e 73 | .#+begin_src.emacs-lisp...(trans |
| 12820 | 69 65 6e 74 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 | ient-suffix-put.'gptel-menu.(kbd |
| 12840 | 20 22 52 45 54 22 29 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 | ."RET").:key."<f8>")...#+end_src |
| 12860 | 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 2a 2a 2a 20 4d 69 73 63 65 6c 6c | ..#+html:.</details>.***.Miscell |
| 12880 | 61 6e 65 6f 75 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 | aneous.#+html:.<details><summary |
| 128a0 | 3e 0a 2a 2a 2a 2a 20 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 | >.****.I.want.to.use.gptel.in.a. |
| 128c0 | 77 61 79 20 74 68 61 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 | way.that's.not.supported.by.=gpt |
| 128e0 | 65 6c 2d 73 65 6e 64 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 | el-send=.or.the.options.menu.#+h |
| 12900 | 74 6d 6c 3a 20 3c 2f 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 | tml:.</summary>..gptel's.default |
| 12920 | 20 75 73 61 67 65 20 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 | .usage.pattern.is.simple,.and.wi |
| 12940 | 6c 6c 20 73 74 61 79 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 | ll.stay.this.way:.Read.input.in. |
| 12960 | 61 6e 79 20 62 75 66 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 | any.buffer.and.insert.the.respon |
| 12980 | 73 65 20 62 65 6c 6f 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 | se.below.it...Some.custom.behavi |
| 129a0 | 6f 72 20 69 73 20 70 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 | or.is.possible.with.the.transien |
| 129c0 | 74 20 6d 65 6e 75 20 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 | t.menu.(=C-u.M-x.gptel-send=)... |
| 129e0 | 46 6f 72 20 6d 6f 72 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 | For.more.programmable.usage,.gpt |
| 12a00 | 65 6c 20 70 72 6f 76 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 | el.provides.a.general.=gptel-req |
| 12a20 | 75 65 73 74 3d 20 66 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 | uest=.function.that.accepts.a.cu |
| 12a40 | 73 74 6f 6d 20 70 72 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 | stom.prompt.and.a.callback.to.ac |
| 12a60 | 74 20 6f 6e 20 74 68 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 | t.on.the.response..You.can.use.t |
| 12a80 | 68 69 73 20 74 6f 20 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 | his.to.build.custom.workflows.no |
| 12aa0 | 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 3d 67 70 74 65 6c 2d 73 65 6e 64 3d 2e 20 20 53 65 | t.supported.by.=gptel-send=...Se |
| 12ac0 | 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 3d 67 70 74 65 6c 2d 72 65 | e.the.documentation.of.=gptel-re |
| 12ae0 | 71 75 65 73 74 3d 2c 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 | quest=,.and.the.[[https://github |
| 12b00 | 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 44 65 66 69 6e 69 6e | .com/karthink/gptel/wiki/Definin |
| 12b20 | 67 2d 63 75 73 74 6f 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 | g-custom-gptel-commands][wiki]]. |
| 12b40 | 66 6f 72 20 65 78 61 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 | for.examples...#+html:.</details |
| 12b60 | 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>.*** |
| 12b80 | 2a 20 28 43 68 61 74 47 50 54 29 20 49 20 67 65 74 20 74 68 65 20 65 72 72 6f 72 20 22 28 48 54 | *.(ChatGPT).I.get.the.error."(HT |
| 12ba0 | 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 63 75 72 72 | TP/2.429).You.exceeded.your.curr |
| 12bc0 | 65 6e 74 20 71 75 6f 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 | ent.quota".#+html:</summary>..#+ |
| 12be0 | 62 65 67 69 6e 5f 71 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 | begin_quote.(HTTP/2.429).You.exc |
| 12c00 | 65 65 64 65 64 20 79 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 | eeded.your.current.quota,.please |
| 12c20 | 20 63 68 65 63 6b 20 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 | .check.your.plan.and.billing.det |
| 12c40 | 61 69 6c 73 2e 0a 23 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 | ails..#+end_quote..Using.the.Cha |
| 12c60 | 74 47 50 54 20 28 6f 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 | tGPT.(or.any.OpenAI).API.require |
| 12c80 | 73 20 5b 5b 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f | s.[[https://platform.openai.com/ |
| 12ca0 | 61 63 63 6f 75 6e 74 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 | account/billing/overview][adding |
| 12cc0 | 20 63 72 65 64 69 74 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 | .credit.to.your.account]]...#+ht |
| 12ce0 | 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 64 65 74 61 69 6c 73 3e | ml:.</details>.#+html:.<details> |
| 12d00 | 3c 73 75 6d 6d 61 72 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 | <summary>.****.Why.another.LLM.c |
| 12d20 | 6c 69 65 6e 74 3f 0a 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 | lient?.#+html:.</summary>..Other |
| 12d40 | 20 45 6d 61 63 73 20 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 | .Emacs.clients.for.LLMs.prescrib |
| 12d60 | 65 20 74 68 65 20 66 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 | e.the.format.of.the.interaction. |
| 12d80 | 28 61 20 63 6f 6d 69 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 | (a.comint.shell,.org-babel.block |
| 12da0 | 73 2c 20 65 74 63 29 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 | s,.etc)...I.wanted:..1..Somethin |
| 12dc0 | 67 20 74 68 61 74 20 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 | g.that.is.as.free-form.as.possib |
| 12de0 | 6c 65 3a 20 71 75 65 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 | le:.query.the.model.using.any.te |
| 12e00 | 78 74 20 69 6e 20 61 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 | xt.in.any.buffer,.and.redirect.t |
| 12e20 | 68 65 20 72 65 73 70 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 | he.response.as.required...Using. |
| 12e40 | 61 20 64 65 64 69 63 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 | a.dedicated.=gptel=.buffer.just. |
| 12e60 | 61 64 64 73 20 73 6f 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 | adds.some.visual.flair.to.the.in |
| 12e80 | 74 65 72 61 63 74 69 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 | teraction..2..Integration.with.o |
| 12ea0 | 72 67 2d 6d 6f 64 65 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 | rg-mode,.not.using.a.walled-off. |
| 12ec0 | 6f 72 67 2d 62 61 62 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 | org-babel.block,.but.as.regular. |
| 12ee0 | 74 65 78 74 2e 20 20 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 | text...This.way.the.model.can.ge |
| 12f00 | 6e 65 72 61 74 65 20 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 | nerate.code.blocks.that.I.can.ru |
| 12f20 | 6e 2e 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 41 64 64 69 74 | n...#+html:.</details>..**.Addit |
| 12f40 | 69 6f 6e 61 6c 20 43 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 | ional.Configuration.:PROPERTIES: |
| 12f60 | 0a 3a 49 44 3a 20 20 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 | .:ID:.......f885adac-58a3-4eba-a |
| 12f80 | 36 62 37 2d 39 31 65 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 | 6b7-91e9e7a17829.:END:.#+html:.< |
| 12fa0 | 2f 73 75 6d 6d 61 72 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 | /summary>..#+begin_src.emacs-lis |
| 12fc0 | 70 20 3a 65 78 70 6f 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 | p.:exports.none.:results.list.(l |
| 12fe0 | 65 74 20 28 28 61 6c 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 | et.((all))...(mapatoms.(lambda.( |
| 13000 | 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 73 | sym)...............(when.(and.(s |
| 13020 | 74 72 69 6e 67 2d 6d 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 | tring-match-p."^gptel-[^-]".(sym |
| 13040 | 62 6f 6c 2d 6e 61 6d 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 | bol-name.sym)).................. |
| 13060 | 20 20 20 20 20 20 20 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 | ........(get.sym.'variable-docum |
| 13080 | 65 6e 74 61 74 69 6f 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 | entation)).................(push |
| 130a0 | 20 73 79 6d 20 61 6c 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 | .sym.all))))...all).#+end_src..| |
| 130c0 | 2d 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 2d 2d 2d | -------------------------+------ |
| 130e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13100 | 2d 2d 2d 2d 2d 2d 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 | ------------------------------|. |
| 13120 | 7c 20 2a 43 6f 6e 6e 65 63 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 2a 20 20 20 20 7c 20 20 20 20 20 | |.*Connection.options*....|..... |
| 13140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 13160 | 20 20 20 20 20 20 20 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 | ...............................| |
| 13180 | 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 2b 2d 2d 2d 2d | .|-------------------------+---- |
| 131a0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 131c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 131e0 | 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 3d 20 20 20 20 20 20 20 20 7c 20 55 73 | |.|.=gptel-use-curl=........|.Us |
| 13200 | 65 20 43 75 72 6c 3f 20 28 64 65 66 61 75 6c 74 29 2c 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 45 | e.Curl?.(default),.fallback.to.E |
| 13220 | 6d 61 63 73 27 20 62 75 69 6c 74 2d 69 6e 20 3d 75 72 6c 3d 2e 20 20 20 20 20 20 20 20 20 20 20 | macs'.built-in.=url=............ |
| 13240 | 20 7c 0a 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 7c 20 59 | .|.|.........................|.Y |
| 13260 | 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 43 75 72 6c 20 70 61 74 | ou.can.also.specify.the.Curl.pat |
| 13280 | 68 20 68 65 72 65 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 | h.here.......................... |
| 132a0 | 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 6f 78 79 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 | ..|.|.=gptel-proxy=...........|. |
| 132c0 | 50 72 6f 78 79 20 73 65 72 76 65 72 20 66 6f 72 20 72 65 71 75 65 73 74 73 2c 20 70 61 73 73 65 | Proxy.server.for.requests,.passe |
| 132e0 | 64 20 74 6f 20 63 75 72 6c 20 76 69 61 20 3d 2d 2d 70 72 6f 78 79 3d 2e 20 20 20 20 20 20 20 20 | d.to.curl.via.=--proxy=......... |
| 13300 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 72 67 73 3d 20 7c | ...|.|.=gptel-curl-extra-args=.| |
| 13320 | 20 45 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 2e | .Extra.arguments.passed.to.Curl. |
| 13340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 13360 | 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 3d 20 20 20 20 20 20 20 20 20 | ....|.|.=gptel-api-key=......... |
| 13380 | 7c 20 56 61 72 69 61 62 6c 65 2f 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 | |.Variable/function.that.returns |
| 133a0 | 20 74 68 65 20 41 50 49 20 6b 65 79 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b | .the.API.key.for.the.active.back |
| 133c0 | 65 6e 64 2e 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | end..|.|------------------------ |
| 133e0 | 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -+------------------------------ |
| 13400 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13420 | 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 | ------|..|---------------------- |
| 13440 | 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -+------------------------------ |
| 13460 | 2d 2d 2d 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 | ---------------------------|.|.* |
| 13480 | 4c 4c 4d 20 72 65 71 75 65 73 74 20 6f 70 74 69 6f 6e 73 2a 20 7c 20 2f 28 4e 6f 74 65 3a 20 6e | LLM.request.options*.|./(Note:.n |
| 134a0 | 6f 74 20 73 75 70 70 6f 72 74 65 64 20 75 6e 69 66 6f 72 6d 6c 79 20 61 63 72 6f 73 73 20 4c 4c | ot.supported.uniformly.across.LL |
| 134c0 | 4d 73 29 2f 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | Ms)/...........|.|-------------- |
| 134e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ---------+---------------------- |
| 13500 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13520 | 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 3d 20 20 20 20 20 20 20 7c 20 44 | ---|.|.=gptel-backend=.......|.D |
| 13540 | 65 66 61 75 6c 74 20 4c 4c 4d 20 42 61 63 6b 65 6e 64 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 | efault.LLM.Backend.............. |
| 13560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | .......................|.|.=gpte |
| 13580 | 6c 2d 6d 6f 64 65 6c 3d 20 20 20 20 20 20 20 20 20 7c 20 44 65 66 61 75 6c 74 20 6d 6f 64 65 6c | l-model=.........|.Default.model |
| 135a0 | 20 74 6f 20 75 73 65 2c 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 62 61 63 6b 65 6e 64 2e | .to.use,.depends.on.the.backend. |
| 135c0 | 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 73 74 72 65 61 6d 3d 20 20 20 | ...........|.|.=gptel-stream=... |
| 135e0 | 20 20 20 20 20 7c 20 45 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 | .....|.Enable.streaming.response |
| 13600 | 73 2c 20 69 66 20 74 68 65 20 62 61 63 6b 65 6e 64 20 73 75 70 70 6f 72 74 73 20 69 74 2e 20 7c | s,.if.the.backend.supports.it..| |
| 13620 | 0a 7c 20 3d 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 3d 20 20 20 20 7c 20 41 6c 69 73 74 | .|.=gptel-directives=....|.Alist |
| 13640 | 20 6f 66 20 73 79 73 74 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 63 61 6e 20 73 77 69 74 63 | .of.system.directives,.can.switc |
| 13660 | 68 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6d 61 | h.on.the.fly.......|.|.=gptel-ma |
| 13680 | 78 2d 74 6f 6b 65 6e 73 3d 20 20 20 20 7c 20 4d 61 78 69 6d 75 6d 20 74 6f 6b 65 6e 20 63 6f 75 | x-tokens=....|.Maximum.token.cou |
| 136a0 | 6e 74 20 28 69 6e 20 71 75 65 72 79 20 2b 20 72 65 73 70 6f 6e 73 65 29 2e 20 20 20 20 20 20 20 | nt.(in.query.+.response)........ |
| 136c0 | 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 3d 20 20 | .......|.|.=gptel-temperature=.. |
| 136e0 | 20 7c 20 52 61 6e 64 6f 6d 6e 65 73 73 20 69 6e 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 2c 20 | .|.Randomness.in.response.text,. |
| 13700 | 30 20 74 6f 20 32 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d | 0.to.2.....................|.|.= |
| 13720 | 67 70 74 65 6c 2d 63 61 63 68 65 3d 20 20 20 20 20 20 20 20 20 7c 20 43 61 63 68 65 20 70 72 6f | gptel-cache=.........|.Cache.pro |
| 13740 | 6d 70 74 73 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 74 6f 6f 6c 73 20 28 41 | mpts,.system.message.or.tools.(A |
| 13760 | 6e 74 68 72 6f 70 69 63 20 6f 6e 6c 79 29 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 6f | nthropic.only).|.|.=gptel-use-co |
| 13780 | 6e 74 65 78 74 3d 20 20 20 7c 20 48 6f 77 2f 77 68 65 74 68 65 72 20 74 6f 20 69 6e 63 6c 75 64 | ntext=...|.How/whether.to.includ |
| 137a0 | 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 20 20 20 20 20 20 20 20 20 20 20 | e.additional.context............ |
| 137c0 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 3d 20 20 20 20 20 7c 20 44 | ...|.|.=gptel-use-tools=.....|.D |
| 137e0 | 69 73 61 62 6c 65 2c 20 61 6c 6c 6f 77 20 6f 72 20 66 6f 72 63 65 20 4c 4c 4d 20 74 6f 6f 6c 2d | isable,.allow.or.force.LLM.tool- |
| 13800 | 75 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | use....................|.|.=gpte |
| 13820 | 6c 2d 74 6f 6f 6c 73 3d 20 20 20 20 20 20 20 20 20 7c 20 4c 69 73 74 20 6f 66 20 74 6f 6f 6c 73 | l-tools=.........|.List.of.tools |
| 13840 | 20 74 6f 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 20 20 20 20 20 20 | .to.include.with.requests....... |
| 13860 | 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 | ...........|.|------------------ |
| 13880 | 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -----+-------------------------- |
| 138a0 | 2d 2d 2d 2d 2d 2d 2d 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 | -------------------------------| |
| 138c0 | 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ..|----------------------------- |
| 138e0 | 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 | --+----------------------------- |
| 13900 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13920 | 2d 2d 2d 7c 0a 7c 20 2a 43 68 61 74 20 55 49 20 6f 70 74 69 6f 6e 73 2a 20 20 20 20 20 20 20 20 | ---|.|.*Chat.UI.options*........ |
| 13940 | 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....|.......................... |
| 13960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 13980 | 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 | ......|.|----------------------- |
| 139a0 | 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 | --------+----------------------- |
| 139c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 139e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 | ---------|.|.=gptel-default-mode |
| 13a00 | 3d 20 20 20 20 20 20 20 20 20 20 7c 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 64 65 64 69 | =..........|.Major.mode.for.dedi |
| 13a20 | 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 | cated.chat.buffers.............. |
| 13a40 | 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 | ............|.|.=gptel-prompt-pr |
| 13a60 | 65 66 69 78 2d 61 6c 69 73 74 3d 20 20 20 7c 20 54 65 78 74 20 69 6e 73 65 72 74 65 64 20 62 65 | efix-alist=...|.Text.inserted.be |
| 13a80 | 66 6f 72 65 20 71 75 65 72 69 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fore.queries.................... |
| 13aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 72 65 73 70 6f 6e | ...............|.|.=gptel-respon |
| 13ac0 | 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 3d 20 7c 20 54 65 78 74 20 69 6e 73 65 72 74 65 64 | se-prefix-alist=.|.Text.inserted |
| 13ae0 | 20 62 65 66 6f 72 65 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .before.responses............... |
| 13b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 74 72 61 | ..................|.|.=gptel-tra |
| 13b20 | 63 6b 2d 72 65 73 70 6f 6e 73 65 3d 20 20 20 20 20 20 20 20 7c 20 44 69 73 74 69 6e 67 75 69 73 | ck-response=........|.Distinguis |
| 13b40 | 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 6e 64 20 4c 4c 4d 20 | h.between.user.messages.and.LLM. |
| 13b60 | 72 65 73 70 6f 6e 73 65 73 3f 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d | responses?...........|.|.=gptel- |
| 13b80 | 74 72 61 63 6b 2d 6d 65 64 69 61 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 53 65 6e 64 20 74 65 | track-media=...........|.Send.te |
| 13ba0 | 78 74 2c 20 69 6d 61 67 65 73 20 6f 72 20 6f 74 68 65 72 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c | xt,.images.or.other.media.from.l |
| 13bc0 | 69 6e 6b 73 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 | inks?...................|.|.=gpt |
| 13be0 | 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 3d 20 20 20 20 7c 20 43 6f 6e 66 | el-confirm-tool-calls=....|.Conf |
| 13c00 | 69 72 6d 20 61 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 | irm.all.tool.calls?............. |
| 13c20 | 20 20 20 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 | ...........................|.|.= |
| 13c40 | 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 3d 20 20 7c 20 49 | gptel-include-tool-results=..|.I |
| 13c60 | 6e 63 6c 75 64 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 74 68 65 20 4c 4c 4d 20 72 | nclude.tool.results.in.the.LLM.r |
| 13c80 | 65 73 70 6f 6e 73 65 3f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a | esponse?......................|. |
| 13ca0 | 7c 20 3d 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 3d 20 20 20 20 20 20 20 | |.=gptel-use-header-line=....... |
| 13cc0 | 7c 20 44 69 73 70 6c 61 79 20 73 74 61 74 75 73 20 6d 65 73 73 61 67 65 73 20 69 6e 20 68 65 61 | |.Display.status.messages.in.hea |
| 13ce0 | 64 65 72 2d 6c 69 6e 65 20 28 64 65 66 61 75 6c 74 29 20 6f 72 20 6d 69 6e 69 62 75 66 66 65 72 | der-line.(default).or.minibuffer |
| 13d00 | 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f | .|.|.=gptel-display-buffer-actio |
| 13d20 | 6e 3d 20 7c 20 50 6c 61 63 65 6d 65 6e 74 20 6f 66 20 74 68 65 20 67 70 74 65 6c 20 63 68 61 74 | n=.|.Placement.of.the.gptel.chat |
| 13d40 | 20 62 75 66 66 65 72 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .buffer......................... |
| 13d60 | 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ....|.|------------------------- |
| 13d80 | 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ------+------------------------- |
| 13da0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13dc0 | 2d 2d 2d 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------|..|--------------------- |
| 13de0 | 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 | ----------+--------------------- |
| 13e00 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13e20 | 2d 2d 7c 0a 7c 20 2a 4f 72 67 20 6d 6f 64 65 20 55 49 20 6f 70 74 69 6f 6e 73 2a 20 20 20 20 20 | --|.|.*Org.mode.UI.options*..... |
| 13e40 | 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....|........................... |
| 13e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d | ............................|.|- |
| 13e80 | 2d 2d 2d 2d 2d 2d 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 | ------------------------------+- |
| 13ea0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13ec0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c | ----------------------|.|.=gptel |
| 13ee0 | 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 20 7c 20 4d 61 6b 65 20 65 | -org-branching-context=.|.Make.e |
| 13f00 | 61 63 68 20 6f 75 74 6c 69 6e 65 20 70 61 74 68 20 61 20 73 65 70 61 72 61 74 65 20 63 6f 6e 76 | ach.outline.path.a.separate.conv |
| 13f20 | 65 72 73 61 74 69 6f 6e 20 62 72 61 6e 63 68 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 6f 72 67 2d 69 | ersation.branch.|.|.=gptel-org-i |
| 13f40 | 67 6e 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 3d 20 20 20 7c 20 49 67 6e 6f 72 65 20 70 61 72 74 73 | gnore-elements=...|.Ignore.parts |
| 13f60 | 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 61 20 71 75 | .of.the.buffer.when.sending.a.qu |
| 13f80 | 65 72 79 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ery.......|.|------------------- |
| 13fa0 | 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 | ------------+------------------- |
| 13fc0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 13fe0 | 2d 2d 2d 2d 7c 0a 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----|..|------------------------ |
| 14000 | 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 | ------------+------------------- |
| 14020 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 14040 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 2a 48 6f 6f 6b 73 20 66 6f 72 20 63 75 73 74 6f 6d 69 | ----------|.|.*Hooks.for.customi |
| 14060 | 7a 61 74 69 6f 6e 2a 20 20 20 20 20 20 20 20 20 20 7c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | zation*..........|.............. |
| 14080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 140a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | ...............|.|-------------- |
| 140c0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2b 2d 2d 2d 2d 2d 2d 2d 2d 2d | ----------------------+--------- |
| 140e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 14100 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 7c 0a 7c 20 3d 67 70 74 65 6c 2d 73 | --------------------|.|.=gptel-s |
| 14120 | 61 76 65 2d 73 74 61 74 65 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e | ave-state-hook=............|.Run |
| 14140 | 73 20 62 65 66 6f 72 65 20 73 61 76 69 6e 67 20 74 68 65 20 63 68 61 74 20 73 74 61 74 65 20 74 | s.before.saving.the.chat.state.t |
| 14160 | 6f 20 61 20 66 69 6c 65 20 6f 6e 20 64 69 73 6b 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 | o.a.file.on.disk.........|.|.=gp |
| 14180 | 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 | tel-prompt-transform-functions=. |
| 141a0 | 7c 20 52 75 6e 73 20 69 6e 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 74 6f 20 74 72 61 6e 73 | |.Runs.in.a.temp.buffer.to.trans |
| 141c0 | 66 6f 72 6d 20 74 65 78 74 20 62 65 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 20 20 20 20 20 7c 0a | form.text.before.sending......|. |
| 141e0 | 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 3d 20 20 20 20 20 | |.=gptel-post-request-hook=..... |
| 14200 | 20 20 20 20 20 7c 20 52 75 6e 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 61 66 74 65 72 20 64 69 | .....|.Runs.immediately.after.di |
| 14220 | 73 70 61 74 63 68 69 6e 67 20 61 20 3d 67 70 74 65 6c 2d 72 65 71 75 65 73 74 3d 2e 20 20 20 20 | spatching.a.=gptel-request=..... |
| 14240 | 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 3d | ...|.|.=gptel-pre-response-hook= |
| 14260 | 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 62 65 66 6f 72 65 20 69 6e 73 65 72 74 69 6e | ..........|.Runs.before.insertin |
| 14280 | 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 62 75 66 66 | g.the.LLM.response.into.the.buff |
| 142a0 | 65 72 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 | er......|.|.=gptel-post-response |
| 142c0 | 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 20 69 6e 73 65 | -functions=....|.Runs.after.inse |
| 142e0 | 72 74 69 6e 67 20 74 68 65 20 66 75 6c 6c 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f | rting.the.full.LLM.response.into |
| 14300 | 20 74 68 65 20 62 75 66 66 65 72 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 | .the.buffer..|.|.=gptel-post-str |
| 14320 | 65 61 6d 2d 68 6f 6f 6b 3d 20 20 20 20 20 20 20 20 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 | eam-hook=...........|.Runs.after |
| 14340 | 20 65 61 63 68 20 73 74 72 65 61 6d 69 6e 67 20 69 6e 73 65 72 74 69 6f 6e 20 20 20 20 20 20 20 | .each.streaming.insertion....... |
| 14360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 6c 2d 63 6f 6e | ..................|.|.=gptel-con |
| 14380 | 74 65 78 74 2d 77 72 61 70 2d 66 75 6e 63 74 69 6f 6e 3d 20 20 20 20 20 20 7c 20 54 6f 20 69 6e | text-wrap-function=......|.To.in |
| 143a0 | 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 66 6f 72 6d 61 74 74 | clude.additional.context.formatt |
| 143c0 | 65 64 20 79 6f 75 72 20 77 61 79 20 20 20 20 20 20 20 20 20 20 20 20 7c 0a 7c 20 3d 67 70 74 65 | ed.your.way............|.|.=gpte |
| 143e0 | 6c 2d 72 65 77 72 69 74 65 2d 64 65 66 61 75 6c 74 2d 61 63 74 69 6f 6e 3d 20 20 20 20 20 7c 20 | l-rewrite-default-action=.....|. |
| 14400 | 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 64 69 66 66 2c 20 65 64 69 66 66 2c 20 6d 65 72 67 65 | Automatically.diff,.ediff,.merge |
| 14420 | 20 6f 72 20 72 65 70 6c 61 63 65 20 72 65 66 61 63 74 6f 72 65 64 20 74 65 78 74 20 7c 0a 7c 20 | .or.replace.refactored.text.|.|. |
| 14440 | 3d 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 77 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 3d 20 20 | =gptel-post-rewrite-functions=.. |
| 14460 | 20 20 20 7c 20 52 75 6e 73 20 61 66 74 65 72 20 61 20 3d 67 70 74 65 6c 2d 72 65 77 72 69 74 65 | ...|.Runs.after.a.=gptel-rewrite |
| 14480 | 3d 20 72 65 71 75 65 73 74 20 73 75 63 63 65 65 64 73 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | =.request.succeeds.............. |
| 144a0 | 20 7c 0a 7c 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | .|.|---------------------------- |
| 144c0 | 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 | --------+----------------------- |
| 144e0 | 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d | -------------------------------- |
| 14500 | 2d 2d 2d 2d 2d 2d 7c 0a 0a 23 2b 68 74 6d 6c 3a 20 3c 2f 64 65 74 61 69 6c 73 3e 0a 0a 2a 2a 2a | ------|..#+html:.</details>..*** |
| 14520 | 20 4f 70 74 69 6f 6e 20 70 72 65 73 65 74 73 0a 0a 49 66 20 79 6f 75 20 75 73 65 20 73 65 76 65 | .Option.presets..If.you.use.seve |
| 14540 | 72 61 6c 20 4c 4c 4d 73 20 66 6f 72 20 64 69 66 66 65 72 65 6e 74 20 74 61 73 6b 73 20 77 69 74 | ral.LLMs.for.different.tasks.wit |
| 14560 | 68 20 61 63 63 6f 6d 70 61 6e 79 69 6e 67 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 28 69 | h.accompanying.system.prompts.(i |
| 14580 | 6e 73 74 72 75 63 74 69 6f 6e 73 29 20 61 6e 64 20 74 6f 6f 6c 20 63 6f 6e 66 69 67 75 72 61 74 | nstructions).and.tool.configurat |
| 145a0 | 69 6f 6e 73 2c 20 6d 61 6e 75 61 6c 6c 79 20 61 64 6a 75 73 74 69 6e 67 20 3d 67 70 74 65 6c 3d | ions,.manually.adjusting.=gptel= |
| 145c0 | 20 73 65 74 74 69 6e 67 73 20 65 61 63 68 20 74 69 6d 65 20 63 61 6e 20 62 65 63 6f 6d 65 20 74 | .settings.each.time.can.become.t |
| 145e0 | 65 64 69 6f 75 73 2e 20 20 50 72 65 73 65 74 73 20 61 72 65 20 61 20 62 75 6e 64 6c 65 20 6f 66 | edious...Presets.are.a.bundle.of |
| 14600 | 20 67 70 74 65 6c 20 73 65 74 74 69 6e 67 73 20 2d 2d 20 73 75 63 68 20 61 73 20 74 68 65 20 6d | .gptel.settings.--.such.as.the.m |
| 14620 | 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 61 | odel,.backend,.system.message,.a |
| 14640 | 6e 64 20 65 6e 61 62 6c 65 64 20 74 6f 6f 6c 73 20 2d 2d 20 74 68 61 74 20 79 6f 75 20 63 61 6e | nd.enabled.tools.--.that.you.can |
| 14660 | 20 73 77 69 74 63 68 20 74 6f 20 61 74 20 6f 6e 63 65 2e 0a 0a 4f 6e 63 65 20 64 65 66 69 6e 65 | .switch.to.at.once...Once.define |
| 14680 | 64 2c 20 70 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 66 72 6f 6d 20 67 | d,.presets.can.be.applied.from.g |
| 146a0 | 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 3a 0a 0a 23 2b 68 74 6d 6c 3a 20 | ptel's.transient.menu:..#+html:. |
| 146c0 | 3c 69 6d 67 20 73 72 63 3d 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 75 73 65 | <img.src="https://github.com/use |
| 146e0 | 72 2d 61 74 74 61 63 68 6d 65 6e 74 73 2f 61 73 73 65 74 73 2f 65 30 63 66 36 61 33 32 2d 64 39 | r-attachments/assets/e0cf6a32-d9 |
| 14700 | 39 39 2d 34 31 33 38 2d 38 33 36 39 2d 32 33 35 31 32 66 35 65 39 33 31 31 22 20 61 6c 69 67 6e | 99-4138-8369-23512f5e9311".align |
| 14720 | 3d 22 63 65 6e 74 65 72 22 20 2f 3e 0a 23 2b 68 74 6d 6c 3a 20 3c 62 72 3e 0a 0a 54 6f 20 64 65 | ="center"./>.#+html:.<br>..To.de |
| 14740 | 66 69 6e 65 20 61 20 70 72 65 73 65 74 2c 20 75 73 65 20 74 68 65 20 3d 67 70 74 65 6c 2d 6d 61 | fine.a.preset,.use.the.=gptel-ma |
| 14760 | 6b 65 2d 70 72 65 73 65 74 3d 20 66 75 6e 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 74 61 6b 65 73 | ke-preset=.function,.which.takes |
| 14780 | 20 61 20 6e 61 6d 65 20 61 6e 64 20 6b 65 79 77 6f 72 64 2d 76 61 6c 75 65 20 70 61 69 72 73 20 | .a.name.and.keyword-value.pairs. |
| 147a0 | 6f 66 20 73 65 74 74 69 6e 67 73 2e 0a 0a 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 75 73 65 | of.settings...Presets.can.be.use |
| 147c0 | 64 20 74 6f 20 73 65 74 20 69 6e 64 69 76 69 64 75 61 6c 20 6f 70 74 69 6f 6e 73 2e 20 20 48 65 | d.to.set.individual.options...He |
| 147e0 | 72 65 20 69 73 20 61 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 70 72 65 73 65 74 20 74 6f 20 | re.is.an.example.of.a.preset.to. |
| 14800 | 73 65 74 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 61 6e 64 20 64 6f 20 6e | set.the.system.message.(and.do.n |
| 14820 | 6f 74 68 69 6e 67 20 65 6c 73 65 29 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d | othing.else):.#+begin_src.emacs- |
| 14840 | 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 65 78 70 6c 61 69 6e | lisp.(gptel-make-preset.'explain |
| 14860 | 0a 20 20 3a 73 79 73 74 65 6d 20 22 45 78 70 6c 61 69 6e 20 77 68 61 74 20 74 68 69 73 20 63 6f | ...:system."Explain.what.this.co |
| 14880 | 64 65 20 64 6f 65 73 20 74 6f 20 61 20 6e 6f 76 69 63 65 20 70 72 6f 67 72 61 6d 6d 65 72 2e 22 | de.does.to.a.novice.programmer." |
| 148a0 | 29 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 4d 6f 72 65 20 67 65 6e 65 72 61 6c 6c 79 2c 20 79 6f 75 | ).#+end_src..More.generally,.you |
| 148c0 | 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 20 62 75 6e 64 6c 65 20 6f 66 20 6f 70 74 69 6f 6e 73 | .can.specify.a.bundle.of.options |
| 148e0 | 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d | :.#+begin_src.emacs-lisp.(gptel- |
| 14900 | 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 67 70 74 34 63 6f 64 69 6e 67 20 20 20 20 20 20 20 20 20 | make-preset.'gpt4coding......... |
| 14920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 72 65 73 65 74 20 6e 61 6d 65 2c 20 61 20 73 79 | ..............;preset.name,.a.sy |
| 14940 | 6d 62 6f 6c 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 20 70 72 65 73 65 74 20 6f 70 | mbol...:description."A.preset.op |
| 14960 | 74 69 6d 69 7a 65 64 20 66 6f 72 20 63 6f 64 69 6e 67 20 74 61 73 6b 73 22 20 3b 66 6f 72 20 79 | timized.for.coding.tasks".;for.y |
| 14980 | 6f 75 72 20 72 65 66 65 72 65 6e 63 65 0a 20 20 3a 62 61 63 6b 65 6e 64 20 22 43 6c 61 75 64 65 | our.reference...:backend."Claude |
| 149a0 | 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 67 70 74 65 6c 20 62 61 63 | ".....................;gptel.bac |
| 149c0 | 6b 65 6e 64 20 6f 72 20 62 61 63 6b 65 6e 64 20 6e 61 6d 65 0a 20 20 3a 6d 6f 64 65 6c 20 27 63 | kend.or.backend.name...:model.'c |
| 149e0 | 6c 61 75 64 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 2e 31 0a 20 20 3a 73 | laude-3-7-sonnet-20250219.1...:s |
| 14a00 | 79 73 74 65 6d 20 22 59 6f 75 20 61 72 65 20 61 6e 20 65 78 70 65 72 74 20 63 6f 64 69 6e 67 20 | ystem."You.are.an.expert.coding. |
| 14a20 | 61 73 73 69 73 74 61 6e 74 2e 20 59 6f 75 72 20 72 6f 6c 65 20 69 73 20 74 6f 20 70 72 6f 76 69 | assistant..Your.role.is.to.provi |
| 14a40 | 64 65 20 68 69 67 68 2d 71 75 61 6c 69 74 79 20 63 6f 64 65 20 73 6f 6c 75 74 69 6f 6e 73 2c 20 | de.high-quality.code.solutions,. |
| 14a60 | 72 65 66 61 63 74 6f 72 69 6e 67 73 2c 20 61 6e 64 20 65 78 70 6c 61 6e 61 74 69 6f 6e 73 2e 22 | refactorings,.and.explanations." |
| 14a80 | 0a 20 20 3a 74 6f 6f 6c 73 20 27 28 22 72 65 61 64 5f 62 75 66 66 65 72 22 20 22 6d 6f 64 69 66 | ...:tools.'("read_buffer"."modif |
| 14aa0 | 79 5f 62 75 66 66 65 72 22 29 29 20 3b 67 70 74 65 6c 20 74 6f 6f 6c 73 20 6f 72 20 74 6f 6f 6c | y_buffer")).;gptel.tools.or.tool |
| 14ac0 | 20 6e 61 6d 65 73 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 42 65 73 69 64 65 73 20 61 20 63 6f 75 70 | .names.#+end_src..Besides.a.coup |
| 14ae0 | 6c 65 20 6f 66 20 73 70 65 63 69 61 6c 20 6b 65 79 73 20 28 3d 3a 64 65 73 63 72 69 70 74 69 6f | le.of.special.keys.(=:descriptio |
| 14b00 | 6e 3d 2c 20 3d 3a 70 61 72 65 6e 74 73 3d 20 74 6f 20 69 6e 68 65 72 69 74 20 6f 74 68 65 72 20 | n=,.=:parents=.to.inherit.other. |
| 14b20 | 70 72 65 73 65 74 73 29 2c 20 74 68 65 72 65 20 69 73 20 6e 6f 20 70 72 65 64 65 66 69 6e 65 64 | presets),.there.is.no.predefined |
| 14b40 | 20 6c 69 73 74 20 6f 66 20 6b 65 79 73 2e 20 20 49 6e 73 74 65 61 64 2c 20 74 68 65 20 6b 65 79 | .list.of.keys...Instead,.the.key |
| 14b60 | 20 3d 3a 66 6f 6f 3d 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 73 65 74 74 69 6e 67 20 3d | .=:foo=.corresponds.to.setting.= |
| 14b80 | 67 70 74 65 6c 2d 66 6f 6f 3d 20 28 70 72 65 66 65 72 72 65 64 29 20 6f 72 20 3d 67 70 74 65 6c | gptel-foo=.(preferred).or.=gptel |
| 14ba0 | 2d 2d 66 6f 6f 3d 2e 20 20 53 6f 20 74 68 65 20 70 72 65 73 65 74 20 63 61 6e 20 69 6e 63 6c 75 | --foo=...So.the.preset.can.inclu |
| 14bc0 | 64 65 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 61 6e 79 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e | de.the.value.of.any.gptel.option |
| 14be0 | 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 72 | ...For.example,.the.following.pr |
| 14c00 | 65 73 65 74 20 73 65 74 73 20 3d 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 3d 20 61 6e | eset.sets.=gptel-temperature=.an |
| 14c20 | 64 20 3d 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 3d 3a 0a 0a 23 2b 62 65 67 69 6e 5f | d.=gptel-use-context=:..#+begin_ |
| 14c40 | 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 | src.emacs-lisp.(gptel-make-prese |
| 14c60 | 74 20 27 70 72 6f 6f 66 72 65 61 64 65 72 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 | t.'proofreader...:description."P |
| 14c80 | 72 65 73 65 74 20 66 6f 72 20 70 72 6f 6f 66 72 65 61 64 69 6e 67 20 74 61 73 6b 73 22 0a 20 20 | reset.for.proofreading.tasks"... |
| 14ca0 | 3a 62 61 63 6b 65 6e 64 20 22 43 68 61 74 47 50 54 22 0a 20 20 3a 6d 6f 64 65 6c 20 27 67 70 74 | :backend."ChatGPT"...:model.'gpt |
| 14cc0 | 2d 34 2e 31 2d 6d 69 6e 69 0a 20 20 3a 74 6f 6f 6c 73 20 27 28 22 72 65 61 64 5f 62 75 66 66 65 | -4.1-mini...:tools.'("read_buffe |
| 14ce0 | 72 22 20 22 73 70 65 6c 6c 5f 63 68 65 63 6b 22 20 22 67 72 61 6d 6d 61 72 5f 63 68 65 63 6b 22 | r"."spell_check"."grammar_check" |
| 14d00 | 29 0a 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 30 2e 37 20 20 20 20 20 20 20 20 20 20 20 20 | )...:temperature.0.7............ |
| 14d20 | 20 20 20 20 20 20 20 20 20 20 3b 73 65 74 73 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 | ..........;sets.gptel-temperatur |
| 14d40 | 65 0a 20 20 3a 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 73 79 73 74 65 6d 29 20 20 20 20 20 20 20 | e...:use-context.'system)....... |
| 14d60 | 20 20 20 20 20 20 20 20 20 20 3b 73 65 74 73 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 | ..........;sets.gptel-use-contex |
| 14d80 | 74 0a 23 2b 65 6e 64 5f 73 72 63 0a 0a 53 77 69 74 63 68 69 6e 67 20 74 6f 20 61 20 70 72 65 73 | t.#+end_src..Switching.to.a.pres |
| 14da0 | 65 74 20 61 70 70 6c 69 65 73 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 73 65 74 74 69 6e 67 | et.applies.the.specified.setting |
| 14dc0 | 73 20 77 69 74 68 6f 75 74 20 61 66 66 65 63 74 69 6e 67 20 6f 74 68 65 72 20 73 65 74 74 69 6e | s.without.affecting.other.settin |
| 14de0 | 67 73 2e 20 20 44 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 73 63 6f 70 65 20 6f 70 74 69 | gs...Depending.on.the.scope.opti |
| 14e00 | 6f 6e 20 28 7e 3d 7e 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e | on.(~=~.in.gptel's.transient.men |
| 14e20 | 75 29 2c 20 70 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 67 6c 6f 62 61 | u),.presets.can.be.applied.globa |
| 14e40 | 6c 6c 79 2c 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6f 72 20 66 6f 72 20 74 68 65 20 6e | lly,.buffer-locally.or.for.the.n |
| 14e60 | 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 2e 0a 0a 2a 2a 2a 2a 20 41 70 70 6c 79 69 6e 67 | ext.request.only...****.Applying |
| 14e80 | 20 70 72 65 73 65 74 73 20 74 6f 20 72 65 71 75 65 73 74 73 20 61 75 74 6f 6d 61 74 69 63 61 6c | .presets.to.requests.automatical |
| 14ea0 | 6c 79 0a 0a 59 6f 75 20 63 61 6e 20 61 70 70 6c 79 20 61 20 70 72 65 73 65 74 20 74 6f 20 61 20 | ly..You.can.apply.a.preset.to.a. |
| 14ec0 | 2f 73 69 6e 67 6c 65 2f 20 71 75 65 72 79 20 62 79 20 69 6e 63 6c 75 64 69 6e 67 20 3d 40 70 72 | /single/.query.by.including.=@pr |
| 14ee0 | 65 73 65 74 2d 6e 61 6d 65 3d 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 77 68 65 72 65 20 | eset-name=.in.the.prompt,.where. |
| 14f00 | 3d 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 | =preset-name=.is.the.name.of.the |
| 14f20 | 20 70 72 65 73 65 74 2e 20 20 28 54 68 65 20 3d 6f 6e 65 73 68 6f 74 3d 20 73 63 6f 70 65 20 6f | .preset...(The.=oneshot=.scope.o |
| 14f40 | 70 74 69 6f 6e 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 73 | ption.in.gptel's.transient.menus |
| 14f60 | 20 69 73 20 61 6e 6f 74 68 65 72 20 77 61 79 20 74 6f 20 64 6f 20 74 68 69 73 2c 20 5b 5b 69 64 | .is.another.way.to.do.this,.[[id |
| 14f80 | 3a 37 34 38 63 62 63 30 30 2d 30 63 39 32 2d 34 37 30 35 2d 38 38 33 39 2d 36 31 39 62 32 63 38 | :748cbc00-0c92-4705-8839-619b2c8 |
| 14fa0 | 30 65 35 36 36 5d 5b 73 65 65 20 74 68 65 20 46 41 51 2e 5d 5d 29 0a 0a 46 6f 72 20 65 78 61 6d | 0e566][see.the.FAQ.]])..For.exam |
| 14fc0 | 70 6c 65 2c 20 69 66 20 79 6f 75 20 68 61 76 65 20 61 20 70 72 65 73 65 74 20 6e 61 6d 65 64 20 | ple,.if.you.have.a.preset.named. |
| 14fe0 | 3d 77 65 62 73 65 61 72 63 68 3d 20 64 65 66 69 6e 65 64 20 77 68 69 63 68 20 69 6e 63 6c 75 64 | =websearch=.defined.which.includ |
| 15000 | 65 73 20 74 6f 6f 6c 73 20 66 6f 72 20 77 65 62 20 61 63 63 65 73 73 20 61 6e 64 20 73 65 61 72 | es.tools.for.web.access.and.sear |
| 15020 | 63 68 3a 0a 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 28 67 70 74 65 | ch:.#+begin_src.emacs-lisp.(gpte |
| 15040 | 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 77 65 62 73 65 61 72 63 68 0a 20 20 3a 64 65 73 63 | l-make-preset.'websearch...:desc |
| 15060 | 72 69 70 74 69 6f 6e 20 20 22 48 61 69 6b 75 20 77 69 74 68 20 62 61 73 69 63 20 77 65 62 20 73 | ription.."Haiku.with.basic.web.s |
| 15080 | 65 61 72 63 68 20 63 61 70 61 62 69 6c 69 74 79 2e 22 0a 20 20 3a 62 61 63 6b 65 6e 64 20 20 20 | earch.capability."...:backend... |
| 150a0 | 20 20 20 22 43 6c 61 75 64 65 22 0a 20 20 3a 6d 6f 64 65 6c 20 20 20 20 20 20 20 20 27 63 6c 61 | ..."Claude"...:model........'cla |
| 150c0 | 75 64 65 2d 33 2d 35 2d 68 61 69 6b 75 2d 32 30 32 34 31 30 32 32 0a 20 20 3a 74 6f 6f 6c 73 20 | ude-3-5-haiku-20241022...:tools. |
| 150e0 | 20 20 20 20 20 20 20 27 28 22 73 65 61 72 63 68 5f 77 65 62 22 20 22 72 65 61 64 5f 75 72 6c 22 | .......'("search_web"."read_url" |
| 15100 | 20 22 67 65 74 5f 79 6f 75 74 75 62 65 5f 6d 65 74 61 22 29 29 0a 23 2b 65 6e 64 5f 73 72 63 0a | ."get_youtube_meta")).#+end_src. |
| 15120 | 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 71 75 65 72 79 20 69 73 20 73 65 6e 74 20 77 69 74 | .The.following.query.is.sent.wit |
| 15140 | 68 20 74 68 69 73 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 3a 0a 0a 23 2b 62 65 67 69 6e 5f | h.this.preset.applied:..#+begin_ |
| 15160 | 71 75 6f 74 65 0a 40 77 65 62 73 65 61 72 63 68 20 41 72 65 20 74 68 65 72 65 20 61 6e 79 20 31 | quote.@websearch.Are.there.any.1 |
| 15180 | 33 22 20 65 2d 69 6e 6b 20 6d 6f 6e 69 74 6f 72 73 20 6f 6e 20 74 68 65 20 6d 61 72 6b 65 74 3f | 3".e-ink.monitors.on.the.market? |
| 151a0 | 20 20 43 72 65 61 74 65 20 61 0a 74 61 62 6c 65 20 63 6f 6d 70 61 72 69 6e 67 20 74 68 65 6d 2c | ..Create.a.table.comparing.them, |
| 151c0 | 20 73 6f 75 72 63 69 6e 67 20 73 70 65 63 73 20 61 6e 64 20 72 65 76 69 65 77 73 20 66 72 6f 6d | .sourcing.specs.and.reviews.from |
| 151e0 | 20 6f 6e 6c 69 6e 65 20 73 6f 75 72 63 65 73 2e 0a 41 6c 73 6f 20 64 6f 20 74 68 65 20 73 61 6d | .online.sources..Also.do.the.sam |
| 15200 | 65 20 66 6f 72 20 22 74 72 61 6e 73 72 65 66 6c 65 63 74 69 76 65 2d 4c 43 44 22 20 64 69 73 70 | e.for."transreflective-LCD".disp |
| 15220 | 6c 61 79 73 20 2d 2d 20 49 27 6d 20 6e 6f 74 20 73 75 72 65 0a 77 68 61 74 20 65 78 61 63 74 6c | lays.--.I'm.not.sure.what.exactl |
| 15240 | 79 20 74 68 65 79 27 72 65 20 63 61 6c 6c 65 64 20 62 75 74 20 74 68 65 79 27 72 65 20 63 6f 6d | y.they're.called.but.they're.com |
| 15260 | 70 61 72 61 62 6c 65 20 74 6f 20 65 2d 69 6e 6b 2e 0a 23 2b 65 6e 64 5f 71 75 6f 74 65 0a 0a 54 | parable.to.e-ink..#+end_quote..T |
| 15280 | 68 69 73 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 63 6f 6f 6b 69 65 20 6f 6e 6c 79 20 61 | his.=@preset-name=.cookie.only.a |
| 152a0 | 70 70 6c 69 65 73 20 74 6f 20 74 68 65 20 66 69 6e 61 6c 20 75 73 65 72 20 74 75 72 6e 20 6f 66 | pplies.to.the.final.user.turn.of |
| 152c0 | 20 74 68 65 20 63 6f 76 65 72 73 61 74 69 6f 6e 20 74 68 61 74 20 69 73 20 73 65 6e 74 2e 20 20 | .the.coversation.that.is.sent... |
| 152e0 | 53 6f 20 74 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 20 63 6f 6f 6b 69 65 20 69 6e | So.the.presence.of.the.cookie.in |
| 15300 | 20 70 61 73 74 20 6d 65 73 73 61 67 65 73 2f 74 75 72 6e 73 20 69 73 20 6e 6f 74 20 73 69 67 6e | .past.messages/turns.is.not.sign |
| 15320 | 69 66 69 63 61 6e 74 2e 20 0a 0a 54 68 65 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 63 6f | ificant....The.=@preset-name=.co |
| 15340 | 6f 6b 69 65 20 63 61 6e 20 62 65 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65 20 70 72 6f 6d | okie.can.be.anywhere.in.the.prom |
| 15360 | 70 74 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a 23 2b 62 65 67 69 6e 5f 71 75 6f 74 65 0a | pt...For.example:.#+begin_quote. |
| 15380 | 3c 6c 6f 6e 67 20 70 69 65 63 65 20 6f 66 20 74 65 78 74 3e 0a 0a 57 68 61 74 20 64 6f 20 79 6f | <long.piece.of.text>..What.do.yo |
| 153a0 | 75 20 6d 61 6b 65 20 6f 66 20 74 68 65 20 61 62 6f 76 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2c | u.make.of.the.above.description, |
| 153c0 | 20 40 70 72 6f 6f 66 72 65 61 64 65 72 3f 0a 23 2b 65 6e 64 5f 71 75 6f 74 65 0a 0a 49 6e 20 63 | .@proofreader?.#+end_quote..In.c |
| 153e0 | 68 61 74 20 62 75 66 66 65 72 73 20 74 68 69 73 20 70 72 65 66 69 78 20 77 69 6c 6c 20 62 65 20 | hat.buffers.this.prefix.will.be. |
| 15400 | 6f 66 66 65 72 65 64 20 61 73 20 61 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 61 6e 64 20 66 6f 6e 74 | offered.as.a.completion.and.font |
| 15420 | 69 66 69 65 64 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 73 79 20 74 6f 20 75 73 65 20 61 6e 64 | ified,.making.it.easy.to.use.and |
| 15440 | 20 73 70 6f 74 2e 0a 0a 2a 2a 20 41 6c 74 65 72 6e 61 74 69 76 65 73 0a 0a 4f 74 68 65 72 20 45 | .spot...**.Alternatives..Other.E |
| 15460 | 6d 61 63 73 20 63 6c 69 65 6e 74 73 20 66 6f 72 20 4c 4c 4d 73 20 69 6e 63 6c 75 64 65 0a 0a 2d | macs.clients.for.LLMs.include..- |
| 15480 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 61 68 79 61 74 74 2f 6c 6c 6d | .[[https://github.com/ahyatt/llm |
| 154a0 | 5d 5b 6c 6c 6d 5d 5d 3a 20 6c 6c 6d 20 70 72 6f 76 69 64 65 73 20 61 20 75 6e 69 66 6f 72 6d 20 | ][llm]]:.llm.provides.a.uniform. |
| 154c0 | 41 50 49 20 61 63 72 6f 73 73 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 70 72 6f 76 69 64 | API.across.language.model.provid |
| 154e0 | 65 72 73 20 66 6f 72 20 62 75 69 6c 64 69 6e 67 20 4c 4c 4d 20 63 6c 69 65 6e 74 73 20 69 6e 20 | ers.for.building.LLM.clients.in. |
| 15500 | 45 6d 61 63 73 2c 20 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20 61 73 20 61 20 6c 69 62 72 | Emacs,.and.is.intended.as.a.libr |
| 15520 | 61 72 79 20 66 6f 72 20 75 73 65 20 62 79 20 70 61 63 6b 61 67 65 20 61 75 74 68 6f 72 73 2e 20 | ary.for.use.by.package.authors.. |
| 15540 | 20 46 6f 72 20 73 69 6d 69 6c 61 72 20 73 63 72 69 70 74 69 6e 67 20 70 75 72 70 6f 73 65 73 2c | .For.similar.scripting.purposes, |
| 15560 | 20 67 70 74 65 6c 20 70 72 6f 76 69 64 65 73 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 3d 67 70 74 | .gptel.provides.the.command.=gpt |
| 15580 | 65 6c 2d 72 65 71 75 65 73 74 3d 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 2d 20 5b 5b 68 74 74 70 | el-request=,.which.see..-.[[http |
| 155a0 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 2d 6b 6f 73 74 79 61 65 76 2f 65 6c 6c 61 6d 61 | s://github.com/s-kostyaev/ellama |
| 155c0 | 5d 5b 45 6c 6c 61 6d 61 5d 5d 3a 20 41 20 66 75 6c 6c 2d 66 6c 65 64 67 65 64 20 4c 4c 4d 20 63 | ][Ellama]]:.A.full-fledged.LLM.c |
| 155e0 | 6c 69 65 6e 74 20 62 75 69 6c 74 20 6f 6e 20 6c 6c 6d 2c 20 74 68 61 74 20 73 75 70 70 6f 72 74 | lient.built.on.llm,.that.support |
| 15600 | 73 20 6d 61 6e 79 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 20 28 4f 6c 6c 61 6d 61 2c 20 4f 70 | s.many.LLM.providers.(Ollama,.Op |
| 15620 | 65 6e 20 41 49 2c 20 56 65 72 74 65 78 2c 20 47 50 54 34 41 6c 6c 20 61 6e 64 20 6d 6f 72 65 29 | en.AI,.Vertex,.GPT4All.and.more) |
| 15640 | 2e 20 20 49 74 73 20 75 73 61 67 65 20 64 69 66 66 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 20 | ...Its.usage.differs.from.gptel. |
| 15660 | 69 6e 20 74 68 61 74 20 69 74 20 70 72 6f 76 69 64 65 73 20 73 65 70 61 72 61 74 65 20 63 6f 6d | in.that.it.provides.separate.com |
| 15680 | 6d 61 6e 64 73 20 66 6f 72 20 64 6f 7a 65 6e 73 20 6f 66 20 63 6f 6d 6d 6f 6e 20 74 61 73 6b 73 | mands.for.dozens.of.common.tasks |
| 156a0 | 2c 20 6c 69 6b 65 20 67 65 6e 65 72 61 6c 20 63 68 61 74 2c 20 73 75 6d 6d 61 72 69 7a 69 6e 67 | ,.like.general.chat,.summarizing |
| 156c0 | 20 63 6f 64 65 2f 74 65 78 74 2c 20 72 65 66 61 63 74 6f 72 69 6e 67 20 63 6f 64 65 2c 20 69 6d | .code/text,.refactoring.code,.im |
| 156e0 | 70 72 6f 76 69 6e 67 20 67 72 61 6d 6d 61 72 2c 20 74 72 61 6e 73 6c 61 74 69 6f 6e 20 61 6e 64 | proving.grammar,.translation.and |
| 15700 | 20 73 6f 20 6f 6e 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 78 | .so.on..-.[[https://github.com/x |
| 15720 | 65 6e 6f 64 69 75 6d 2f 63 68 61 74 67 70 74 2d 73 68 65 6c 6c 5d 5b 63 68 61 74 67 70 74 2d 73 | enodium/chatgpt-shell][chatgpt-s |
| 15740 | 68 65 6c 6c 5d 5d 3a 20 63 6f 6d 69 6e 74 2d 73 68 65 6c 6c 20 62 61 73 65 64 20 69 6e 74 65 72 | hell]]:.comint-shell.based.inter |
| 15760 | 61 63 74 69 6f 6e 20 77 69 74 68 20 43 68 61 74 47 50 54 2e 20 20 41 6c 73 6f 20 73 75 70 70 6f | action.with.ChatGPT...Also.suppo |
| 15780 | 72 74 73 20 44 41 4c 4c 2d 45 2c 20 65 78 65 63 75 74 61 62 6c 65 20 63 6f 64 65 20 62 6c 6f 63 | rts.DALL-E,.executable.code.bloc |
| 157a0 | 6b 73 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 73 2c 20 61 6e 64 20 6d 6f 72 65 2e 0a 2d | ks.in.the.responses,.and.more..- |
| 157c0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 6b 73 6d 2f 6f 72 67 2d 61 | .[[https://github.com/rksm/org-a |
| 157e0 | 69 5d 5b 6f 72 67 2d 61 69 5d 5d 3a 20 49 6e 74 65 72 61 63 74 69 6f 6e 20 74 68 72 6f 75 67 68 | i][org-ai]]:.Interaction.through |
| 15800 | 20 73 70 65 63 69 61 6c 20 3d 23 2b 62 65 67 69 6e 5f 61 69 20 2e 2e 2e 20 23 2b 65 6e 64 5f 61 | .special.=#+begin_ai.....#+end_a |
| 15820 | 69 3d 20 4f 72 67 2d 6d 6f 64 65 20 62 6c 6f 63 6b 73 2e 20 20 41 6c 73 6f 20 73 75 70 70 6f 72 | i=.Org-mode.blocks...Also.suppor |
| 15840 | 74 73 20 44 41 4c 4c 2d 45 2c 20 71 75 65 72 79 69 6e 67 20 43 68 61 74 47 50 54 20 77 69 74 68 | ts.DALL-E,.querying.ChatGPT.with |
| 15860 | 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 70 72 6f 6a 65 63 74 20 66 69 6c 65 73 2c 20 | .the.contents.of.project.files,. |
| 15880 | 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 |
| 158a0 | 2f 6d 69 6c 61 6e 67 6c 61 63 69 65 72 2f 6d 69 6e 75 65 74 2d 61 69 2e 65 6c 5d 5b 4d 69 6e 75 | /milanglacier/minuet-ai.el][Minu |
| 158c0 | 65 74 5d 5d 3a 20 43 6f 64 65 2d 63 6f 6d 70 6c 65 74 69 6f 6e 20 75 73 69 6e 67 20 4c 4c 4d 2e | et]]:.Code-completion.using.LLM. |
| 158e0 | 20 53 75 70 70 6f 72 74 73 20 66 69 6c 6c 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c 65 20 28 46 49 | .Supports.fill-in-the-middle.(FI |
| 15900 | 4d 29 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 6c 65 20 6d 6f 64 | M).completion.for.compatible.mod |
| 15920 | 65 6c 73 20 73 75 63 68 20 61 73 20 44 65 65 70 53 65 65 6b 20 61 6e 64 20 43 6f 64 65 73 74 72 | els.such.as.DeepSeek.and.Codestr |
| 15940 | 61 6c 2e 0a 0a 54 68 65 72 65 20 61 72 65 20 73 65 76 65 72 61 6c 20 6d 6f 72 65 3a 20 5b 5b 68 | al...There.are.several.more:.[[h |
| 15960 | 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 69 77 61 68 62 65 2f 63 68 61 74 2e 65 6c | ttps://github.com/iwahbe/chat.el |
| 15980 | 5d 5b 63 68 61 74 2e 65 6c 5d 5d 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | ][chat.el]],.[[https://github.co |
| 159a0 | 6d 2f 73 74 75 68 6c 6d 75 65 6c 6c 65 72 2f 67 70 74 2e 65 6c 5d 5b 67 70 74 2e 65 6c 5d 5d 2c | m/stuhlmueller/gpt.el][gpt.el]], |
| 159c0 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 41 6e 73 65 6c 6d 43 2f 6c 65 | .[[https://github.com/AnselmC/le |
| 159e0 | 2d 67 70 74 2e 65 6c 5d 5b 6c 65 2d 67 70 74 5d 5d 2c 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 | -gpt.el][le-gpt]],.[[https://git |
| 15a00 | 68 75 62 2e 63 6f 6d 2f 73 74 65 76 65 6d 6f 6c 69 74 6f 72 2f 72 6f 62 62 79 5d 5b 72 6f 62 62 | hub.com/stevemolitor/robby][robb |
| 15a20 | 79 5d 5d 2e 0a 0a 2a 2a 2a 20 50 61 63 6b 61 67 65 73 20 75 73 69 6e 67 20 67 70 74 65 6c 0a 0a | y]]...***.Packages.using.gptel.. |
| 15a40 | 67 70 74 65 6c 20 69 73 20 61 20 67 65 6e 65 72 61 6c 2d 70 75 72 70 6f 73 65 20 70 61 63 6b 61 | gptel.is.a.general-purpose.packa |
| 15a60 | 67 65 20 66 6f 72 20 63 68 61 74 20 61 6e 64 20 61 64 2d 68 6f 63 20 4c 4c 4d 20 69 6e 74 65 72 | ge.for.chat.and.ad-hoc.LLM.inter |
| 15a80 | 61 63 74 69 6f 6e 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 61 63 6b 61 67 65 73 20 | action...The.following.packages. |
| 15aa0 | 75 73 65 20 67 70 74 65 6c 20 74 6f 20 70 72 6f 76 69 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 | use.gptel.to.provide.additional. |
| 15ac0 | 6f 72 20 73 70 65 63 69 61 6c 69 7a 65 64 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 3a 0a 0a 2a | or.specialized.functionality:..* |
| 15ae0 | 4c 6f 6f 6b 75 70 20 68 65 6c 70 65 72 73 2a 3a 20 43 61 6c 6c 69 6e 67 20 67 70 74 65 6c 20 71 | Lookup.helpers*:.Calling.gptel.q |
| 15b00 | 75 69 63 6b 6c 79 20 66 6f 72 20 6f 6e 65 2d 6f 66 66 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 0a | uickly.for.one-off.interactions. |
| 15b20 | 0a 2d 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 |
| 15b40 | 2f 67 70 74 65 6c 2d 71 75 69 63 6b 5d 5b 67 70 74 65 6c 2d 71 75 69 63 6b 5d 5d 3a 20 51 75 69 | /gptel-quick][gptel-quick]]:.Qui |
| 15b60 | 63 6b 6c 79 20 6c 6f 6f 6b 20 75 70 20 74 68 65 20 72 65 67 69 6f 6e 20 6f 72 20 74 65 78 74 20 | ckly.look.up.the.region.or.text. |
| 15b80 | 61 74 20 70 6f 69 6e 74 2e 0a 0a 2a 54 61 73 6b 2d 64 72 69 76 65 6e 20 77 6f 72 6b 66 6c 6f 77 | at.point...*Task-driven.workflow |
| 15ba0 | 73 2a 3a 20 44 69 66 66 65 72 65 6e 74 20 69 6e 74 65 72 66 61 63 65 73 20 74 6f 20 73 70 65 63 | s*:.Different.interfaces.to.spec |
| 15bc0 | 69 66 79 20 74 61 73 6b 73 20 66 6f 72 20 4c 4c 4d 73 2e 0a 0a 54 68 65 73 65 20 64 69 66 66 65 | ify.tasks.for.LLMs...These.diffe |
| 15be0 | 72 20 66 72 6f 6d 20 66 75 6c 6c 20 22 61 67 65 6e 74 69 63 22 20 75 73 65 20 69 6e 20 74 68 61 | r.from.full."agentic".use.in.tha |
| 15c00 | 74 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 20 61 72 65 20 22 6f 6e 65 2d 73 68 6f 74 | t.the.interactions.are."one-shot |
| 15c20 | 22 2c 20 6e 6f 74 20 63 68 61 69 6e 65 64 2e 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 | ",.not.chained...-.[[https://git |
| 15c40 | 68 75 62 2e 63 6f 6d 2f 64 6f 6c 6d 65 6e 73 2f 67 70 74 65 6c 2d 61 69 62 6f 2f 5d 5b 67 70 74 | hub.com/dolmens/gptel-aibo/][gpt |
| 15c60 | 65 6c 2d 61 69 62 6f 5d 5d 3a 20 41 20 77 72 69 74 69 6e 67 20 61 73 73 69 73 74 61 6e 74 20 73 | el-aibo]]:.A.writing.assistant.s |
| 15c80 | 79 73 74 65 6d 20 62 75 69 6c 74 20 6f 6e 20 74 6f 70 20 6f 66 20 67 70 74 65 6c 2e 0a 2d 20 5b | ystem.built.on.top.of.gptel..-.[ |
| 15ca0 | 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 64 6f 67 2f 65 76 | [https://github.com/daedsidog/ev |
| 15cc0 | 65 64 65 6c 5d 5b 45 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 | edel][Evedel]]:.Instructed.LLM.P |
| 15ce0 | 72 6f 67 72 61 6d 6d 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 | rogrammer/Assistant..-.[[https:/ |
| 15d00 | 2f 67 69 74 68 75 62 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 | /github.com/lanceberge/elysium][ |
| 15d20 | 45 6c 79 73 69 75 6d 5d 5d 3a 20 52 65 71 75 65 73 74 20 41 49 2d 67 65 6e 65 72 61 74 65 64 20 | Elysium]]:.Request.AI-generated. |
| 15d40 | 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 74 70 73 3a 2f | changes.as.you.code..-.[[https:/ |
| 15d60 | 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 49 53 6f 75 74 68 52 61 69 6e 2f 67 70 74 65 6c 2d 77 61 74 | /github.com/ISouthRain/gptel-wat |
| 15d80 | 63 68 5d 5b 67 70 74 65 6c 2d 77 61 74 63 68 5d 5d 3a 20 41 75 74 6f 6d 61 74 69 63 61 6c 6c 79 | ch][gptel-watch]]:.Automatically |
| 15da0 | 20 63 61 6c 6c 20 67 70 74 65 6c 20 77 68 65 6e 20 74 79 70 69 6e 67 20 6c 69 6e 65 73 20 74 68 | .call.gptel.when.typing.lines.th |
| 15dc0 | 61 74 20 69 6e 64 69 63 61 74 65 20 69 6e 74 65 6e 74 2e 0a 0a 2a 41 67 65 6e 74 69 63 20 75 73 | at.indicate.intent...*Agentic.us |
| 15de0 | 65 2a 3a 20 55 73 65 20 4c 4c 4d 73 20 61 73 20 61 67 65 6e 74 73 2c 20 77 69 74 68 20 74 6f 6f | e*:.Use.LLMs.as.agents,.with.too |
| 15e00 | 6c 2d 75 73 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 2f 6b 6d | l-use..-.[[https://github.com/km |
| 15e20 | 6f 6e 74 61 67 2f 6d 61 63 68 65 72 5d 5b 4d 61 63 68 65 72 5d 5d 3a 20 50 72 6f 6a 65 63 74 2d | ontag/macher][Macher]]:.Project- |
| 15e40 | 61 77 61 72 65 20 6d 75 6c 74 69 2d 66 69 6c 65 20 4c 4c 4d 20 65 64 69 74 69 6e 67 20 66 6f 72 | aware.multi-file.LLM.editing.for |
| 15e60 | 20 45 6d 61 63 73 2e 0a 0a 2a 54 65 78 74 20 63 6f 6d 70 6c 65 74 69 6f 6e 2a 0a 0a 2d 20 5b 5b | .Emacs...*Text.completion*..-.[[ |
| 15e80 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 4a 44 4e 64 65 76 65 6c 6f 70 65 72 2f | https://github.com/JDNdeveloper/ |
| 15ea0 | 67 70 74 65 6c 2d 61 75 74 6f 63 6f 6d 70 6c 65 74 65 5d 5b 67 70 74 65 6c 2d 61 75 74 6f 63 6f | gptel-autocomplete][gptel-autoco |
| 15ec0 | 6d 70 6c 65 74 65 5d 5d 3a 20 49 6e 6c 69 6e 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 75 73 69 | mplete]]:.Inline.completions.usi |
| 15ee0 | 6e 67 20 67 70 74 65 6c 2e 0a 0a 2a 49 6e 74 65 67 72 61 74 69 6f 6e 20 77 69 74 68 20 6d 61 6a | ng.gptel...*Integration.with.maj |
| 15f00 | 6f 72 2d 6d 6f 64 65 73 2a 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f | or-modes*..-.[[https://github.co |
| 15f20 | 6d 2f 6a 77 69 65 67 6c 65 79 2f 6f 62 2d 67 70 74 65 6c 5d 5b 6f 62 2d 67 70 74 65 6c 5d 5d 3a | m/jwiegley/ob-gptel][ob-gptel]]: |
| 15f40 | 20 4f 72 67 2d 62 61 62 65 6c 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 67 | .Org-babel.backend.for.running.g |
| 15f60 | 70 74 65 6c 20 71 75 65 72 69 65 73 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 | ptel.queries..-.[[https://github |
| 15f80 | 2e 63 6f 6d 2f 6b 61 6d 75 73 68 61 64 65 6e 65 73 2f 61 69 2d 62 6c 6f 67 2e 65 6c 5d 5b 61 69 | .com/kamushadenes/ai-blog.el][ai |
| 15fa0 | 2d 62 6c 6f 67 2e 65 6c 5d 5d 3a 20 53 74 72 65 61 6d 6c 69 6e 65 20 67 65 6e 65 72 61 74 69 6f | -blog.el]]:.Streamline.generatio |
| 15fc0 | 6e 20 6f 66 20 62 6c 6f 67 20 70 6f 73 74 73 20 69 6e 20 48 75 67 6f 2e 0a 2d 20 5b 5b 68 74 74 | n.of.blog.posts.in.Hugo..-.[[htt |
| 15fe0 | 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6c 61 6b 6b 69 79 2f 67 70 74 65 6c 2d 63 6f 6d | ps://github.com/lakkiy/gptel-com |
| 16000 | 6d 69 74 5d 5b 67 70 74 65 6c 2d 63 6f 6d 6d 69 74 5d 5d 3a 20 47 65 6e 65 72 61 74 65 20 63 6f | mit][gptel-commit]]:.Generate.co |
| 16020 | 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 2d 20 5b 5b 68 | mmit.messages.using.gptel..-.[[h |
| 16040 | 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 64 6f 75 6f 2f 6d 61 67 69 74 2d 67 70 74 | ttps://github.com/douo/magit-gpt |
| 16060 | 63 6f 6d 6d 69 74 5d 5b 6d 61 67 69 74 2d 67 70 74 63 6f 6d 6d 69 74 5d 5d 3a 20 47 65 6e 65 72 | commit][magit-gptcommit]]:.Gener |
| 16080 | 61 74 65 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 77 69 74 68 69 6e 20 6d 61 67 69 74 | ate.commit.messages.within.magit |
| 160a0 | 2d 73 74 61 74 75 73 20 42 75 66 66 65 72 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 0a 2d 20 5b 5b | -status.Buffer.using.gptel..-.[[ |
| 160c0 | 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 61 67 6e 61 72 64 2f 67 70 74 65 6c | https://github.com/ragnard/gptel |
| 160e0 | 2d 6d 61 67 69 74 2f 5d 5b 67 70 74 65 6c 2d 6d 61 67 69 74 5d 5d 3a 20 47 65 6e 65 72 61 74 65 | -magit/][gptel-magit]]:.Generate |
| 16100 | 20 63 6f 6d 6d 69 74 20 6d 65 73 73 61 67 65 73 20 66 6f 72 20 6d 61 67 69 74 20 75 73 69 6e 67 | .commit.messages.for.magit.using |
| 16120 | 20 67 70 74 65 6c 2e 0a 0a 2a 43 68 61 74 20 69 6e 74 65 72 66 61 63 65 20 61 64 64 6f 6e 73 2a | .gptel...*Chat.interface.addons* |
| 16140 | 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 72 6f 62 31 33 37 2f | ..-.[[https://github.com/rob137/ |
| 16160 | 43 6f 72 73 61 69 72 5d 5b 43 6f 72 73 61 69 72 5d 5d 3a 20 48 65 6c 70 73 20 67 61 74 68 65 72 | Corsair][Corsair]]:.Helps.gather |
| 16180 | 20 74 65 78 74 20 74 6f 20 70 6f 70 75 6c 61 74 65 20 4c 4c 4d 20 70 72 6f 6d 70 74 73 20 66 6f | .text.to.populate.LLM.prompts.fo |
| 161a0 | 72 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 6f 6d 2f | r.gptel..-.[[https://github.com/ |
| 161c0 | 75 6c 74 72 6f 6e 6f 7a 6d 2f 61 69 2d 6f 72 67 2d 63 68 61 74 2e 65 6c 5d 5b 61 69 2d 6f 72 67 | ultronozm/ai-org-chat.el][ai-org |
| 161e0 | 2d 63 68 61 74 5d 5d 3a 20 50 72 6f 76 69 64 65 73 20 62 72 61 6e 63 68 69 6e 67 20 63 6f 6e 76 | -chat]]:.Provides.branching.conv |
| 16200 | 65 72 73 61 74 69 6f 6e 73 20 69 6e 20 4f 72 67 20 62 75 66 66 65 72 73 20 75 73 69 6e 67 20 67 | ersations.in.Org.buffers.using.g |
| 16220 | 70 74 65 6c 2e 20 20 28 4e 6f 74 65 20 74 68 61 74 20 67 70 74 65 6c 20 69 6e 63 6c 75 64 65 73 | ptel...(Note.that.gptel.includes |
| 16240 | 20 74 68 69 73 20 66 65 61 74 75 72 65 20 61 73 20 77 65 6c 6c 20 28 73 65 65 20 3d 67 70 74 65 | .this.feature.as.well.(see.=gpte |
| 16260 | 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 3d 29 2c 20 62 75 74 20 72 | l-org-branching-context=),.but.r |
| 16280 | 65 71 75 69 72 65 73 20 61 20 72 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 4f 72 67 20 | equires.a.recent.version.of.Org. |
| 162a0 | 6d 6f 64 65 20 39 2e 37 20 6f 72 20 6c 61 74 65 72 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 | mode.9.7.or.later.to.be.installe |
| 162c0 | 64 2e 29 0a 0a 2a 49 6e 74 65 67 72 61 74 69 6f 6e 20 77 69 74 68 20 6f 74 68 65 72 20 70 61 63 | d.)..*Integration.with.other.pac |
| 162e0 | 6b 61 67 65 73 2a 0a 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 | kages*..-.[[https://github.com/a |
| 16300 | 72 6d 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 | rmindarvish/consult-omni][consul |
| 16320 | 74 2d 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 | t-omni]]:.Versatile.multi-source |
| 16340 | 20 73 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 | .search.package...It.includes.gp |
| 16360 | 74 65 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 | tel.as.one.of.its.many.sources.. |
| 16380 | 0a 2a 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6d 61 6e 61 67 65 6d 65 6e 74 | .*gptel.configuration.management |
| 163a0 | 2a 0a 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6a 77 69 65 67 6c | *..-.[[https://github.com/jwiegl |
| 163c0 | 65 79 2f 67 70 74 65 6c 2d 70 72 6f 6d 70 74 73 5d 5b 67 70 74 65 6c 2d 70 72 6f 6d 70 74 73 5d | ey/gptel-prompts][gptel-prompts] |
| 163e0 | 5d 3a 20 53 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 6d 61 6e 61 67 65 72 20 66 6f 72 20 67 70 74 | ]:.System.prompt.manager.for.gpt |
| 16400 | 65 6c 2e 0a 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 | el...**.COMMENT.Older.Breaking.C |
| 16420 | 68 61 6e 67 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 | hanges..-.=gptel-post-response-h |
| 16440 | 6f 6f 6b 3d 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 | ook=.has.been.renamed.to.=gptel- |
| 16460 | 70 6f 73 74 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 | post-response-functions=,.and.fu |
| 16480 | 6e 63 74 69 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 | nctions.in.this.hook.are.now.cal |
| 164a0 | 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 73 74 61 72 | led.with.two.arguments:.the.star |
| 164c0 | 74 20 61 6e 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 | t.and.end.buffer.positions.of.th |
| 164e0 | 65 20 72 65 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 | e.response...This.should.make.it |
| 16500 | 20 65 61 73 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 | .easy.to.act.on.the.response.tex |
| 16520 | 74 20 77 69 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 | t.without.having.to.locate.it.fi |
| 16540 | 72 73 74 2e 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 | rst...-.Possible.breakage,.see.# |
| 16560 | 31 32 30 3a 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 | 120:.If.streaming.responses.stop |
| 16580 | 20 77 6f 72 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 | .working.for.you.after.upgrading |
| 165a0 | 20 74 6f 20 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 | .to.v0.5,.try.reinstalling.gptel |
| 165c0 | 20 61 6e 64 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 | .and.deleting.its.native.comp.el |
| 165e0 | 6e 20 63 61 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 | n.cache.in.=native-comp-eln-load |
| 16600 | 2d 70 61 74 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 | -path=...-.The.user.option.=gpte |
| 16620 | 6c 2d 68 6f 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 | l-host=.is.deprecated...If.the.d |
| 16640 | 65 66 61 75 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 | efaults.don't.work.for.you,.use. |
| 16660 | 3d 67 70 74 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 | =gptel-make-openai=.(which.see). |
| 16680 | 74 6f 20 63 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 | to.customize.server.settings...- |
| 166a0 | 20 3d 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 63 65 | .=gptel-api-key-from-auth-source |
| 166c0 | 3d 20 6e 6f 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 | =.now.searches.for.the.API.key.u |
| 166e0 | 73 69 6e 67 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 | sing.the.host.address.for.the.ac |
| 16700 | 74 69 76 65 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 | tive.LLM.backend,./i.e./."api.op |
| 16720 | 65 6e 61 69 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 | enai.com".when.using.ChatGPT...Y |
| 16740 | 6f 75 20 6d 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 | ou.may.need.to.update.your.=~/.a |
| 16760 | 75 74 68 69 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 | uthinfo=...**.Acknowledgments..- |
| 16780 | 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 65 6c 69 70 65 6f 63 68 6f | .[[https://github.com/felipeocho |
| 167a0 | 61 5d 5b 46 65 6c 69 70 65 20 4f 63 68 6f 61 5d 5d 20 61 6e 64 20 5b 5b 68 74 74 70 73 3a 2f 2f | a][Felipe.Ochoa]].and.[[https:// |
| 167c0 | 67 69 74 68 75 62 2e 63 6f 6d 2f 61 6b 73 73 72 69 5d 5b 61 6b 73 73 72 69 5d 5d 20 66 6f 72 20 | github.com/akssri][akssri]].for. |
| 167e0 | 61 64 64 69 6e 67 20 41 57 53 20 42 65 64 72 6f 63 6b 20 73 75 70 70 6f 72 74 20 74 6f 20 67 70 | adding.AWS.Bedrock.support.to.gp |
| 16800 | 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 6a 77 69 65 | tel..-.[[https://github.com/jwie |
| 16820 | 67 6c 65 79 5d 5b 4a 6f 68 6e 20 57 69 65 67 6c 65 79 5d 5d 20 66 6f 72 20 74 68 65 20 64 65 73 | gley][John.Wiegley]].for.the.des |
| 16840 | 69 67 6e 20 6f 66 20 67 70 74 65 6c 27 73 20 70 72 65 73 65 74 73 20 61 6e 64 20 67 70 74 65 6c | ign.of.gptel's.presets.and.gptel |
| 16860 | 2d 72 65 71 75 65 73 74 27 73 20 61 73 79 6e 63 20 70 69 70 65 6c 69 6e 65 2c 20 62 75 74 20 61 | -request's.async.pipeline,.but.a |
| 16880 | 6c 73 6f 20 66 6f 72 20 6c 6f 61 64 73 20 6f 66 20 67 65 6e 65 72 61 6c 20 66 65 65 64 62 61 63 | lso.for.loads.of.general.feedbac |
| 168a0 | 6b 20 61 6e 64 20 61 64 76 69 63 65 2e 0a 2d 20 5b 5b 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 | k.and.advice..-.[[https://github |
| 168c0 | 2e 63 6f 6d 2f 70 61 62 6c 30 5d 5b 48 65 6e 72 69 6b 20 41 68 6c 67 72 65 6e 5d 5d 20 66 6f 72 | .com/pabl0][Henrik.Ahlgren]].for |
| 168e0 | 20 61 20 6b 65 65 6e 20 65 79 65 20 74 6f 20 64 65 74 61 69 6c 20 61 6e 64 20 70 6f 6c 69 73 68 | .a.keen.eye.to.detail.and.polish |
| 16900 | 20 61 70 70 6c 69 65 64 20 74 6f 20 67 70 74 65 6c 27 73 20 55 49 2e 0a 2d 20 5b 5b 68 74 74 70 | .applied.to.gptel's.UI..-.[[http |
| 16920 | 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 70 73 69 6f 6e 69 63 2d 6b 5d 5b 70 73 69 6f 6e 69 | s://github.com/psionic-k][psioni |
| 16940 | 63 2d 6b 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 | c-k]].for.extensive.testing.of.t |
| 16960 | 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 |
| 16980 | 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 |
| 169a0 | 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 |
| 169c0 | 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 |
| 169e0 | 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 |
| 16a00 | 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 |
| 16a20 | 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 |
| 16a40 | 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 |
| 16a60 | 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..-.[[ |
| 16a80 | 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 |
| 16aa0 | 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 |
| 16ac0 | 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 |
| 16ae0 | 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 |
| 16b00 | 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: |
| 16b20 | 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 |
| 16b40 | 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 |
| 16b60 | 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 |
| 16b80 | 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 |
| 16ba0 | 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: |
| 16bc0 | 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 |
| 16be0 | 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 |
| 16c00 | 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 |
| 16c20 | 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. |
| 16c40 | 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 |
| 16c60 | 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 |
| 16c80 | 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- |
| 16ca0 | 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 |
| 16cc0 | 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:.............................. |
| 16ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 16e00 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 00 00 00 00 00 00 00 | gptel-0.9.9/gptel-kagi.el....... |
| 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 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 |
| 16e80 | 30 30 31 37 33 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 32 00 20 30 00 00 00 | 0017335.00000000000.013662..0... |
| 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 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................... |
| 16f20 | 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................... |
| 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 | 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 |
| 17020 | 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 |
| 17040 | 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 |
| 17060 | 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b | 023-2025..Karthik.Chikmagalur..; |
| 17080 | 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b | ;.Author:.Karthik.Chikmagalur.<k |
| 170a0 | 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 | arthikchikmagalur@gmail.com>.;;. |
| 170c0 | 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 70 72 | Keywords:.hypermedia..;;.This.pr |
| 170e0 | 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 | ogram.is.free.software;.you.can. |
| 17100 | 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b | redistribute.it.and/or.modify.;; |
| 17120 | 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 | .it.under.the.terms.of.the.GNU.G |
| 17140 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 | eneral.Public.License.as.publish |
| 17160 | 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 | ed.by.;;.the.Free.Software.Found |
| 17180 | 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c | ation,.either.version.3.of.the.L |
| 171a0 | 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 | icense,.or.;;.(at.your.option).a |
| 171c0 | 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 | ny.later.version...;;.This.progr |
| 171e0 | 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 | am.is.distributed.in.the.hope.th |
| 17200 | 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 | at.it.will.be.useful,.;;.but.WIT |
| 17220 | 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 | HOUT.ANY.WARRANTY;.without.even. |
| 17240 | 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 | the.implied.warranty.of.;;.MERCH |
| 17260 | 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 | ANTABILITY.or.FITNESS.FOR.A.PART |
| 17280 | 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 | ICULAR.PURPOSE...See.the.;;.GNU. |
| 172a0 | 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 | General.Public.License.for.more. |
| 172c0 | 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 | details...;;.You.should.have.rec |
| 172e0 | 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 | eived.a.copy.of.the.GNU.General. |
| 17300 | 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 | Public.License.;;.along.with.thi |
| 17320 | 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f | s.program...If.not,.see.<https:/ |
| 17340 | 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f | /www.gnu.org/licenses/>...;;;.Co |
| 17360 | 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 | mmentary:..;;.This.file.adds.sup |
| 17380 | 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4b 61 67 69 20 46 61 73 74 47 50 54 20 4c 4c 4d 20 41 50 | port.for.the.Kagi.FastGPT.LLM.AP |
| 173a0 | 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 | I.to.gptel..;;;.Code:.(require.' |
| 173c0 | 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 | gptel).(require.'cl-generic).(ev |
| 173e0 | 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c | al-when-compile...(require.'cl-l |
| 17400 | 69 62 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f | ib))..(declare-function.gptel-co |
| 17420 | 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 3b 3b | ntext--wrap."gptel-context")..;; |
| 17440 | 3b 20 4b 61 67 69 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6b 61 67 69 | ;.Kagi.(cl-defstruct.(gptel-kagi |
| 17460 | 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6b 61 67 69 29 | .(:constructor.gptel--make-kagi) |
| 17480 | 0a 20 20 20 20 20 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 |
| 174a0 | 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | opier.nil)...................... |
| 174c0 | 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)) |
| 174e0 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 | )..(cl-defmethod.gptel--parse-re |
| 17500 | 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 29 20 72 65 | sponse.((_backend.gptel-kagi).re |
| 17520 | 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 | sponse.info)...(let*.((data.(pli |
| 17540 | 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 | st-get.response.:data))......... |
| 17560 | 20 28 6f 75 74 70 75 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6f 75 74 70 75 74 | .(output.(plist-get.data.:output |
| 17580 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 66 65 72 65 6e 63 65 73 20 28 70 6c 69 73 74 2d 67 | ))..........(references.(plist-g |
| 175a0 | 65 74 20 64 61 74 61 20 3a 72 65 66 65 72 65 6e 63 65 73 29 29 29 0a 20 20 20 20 28 69 66 20 28 | et.data.:references))).....(if.( |
| 175c0 | 65 71 20 72 65 66 65 72 65 6e 63 65 73 20 3a 6e 75 6c 6c 29 20 28 73 65 74 71 20 72 65 66 65 72 | eq.references.:null).(setq.refer |
| 175e0 | 65 6e 63 65 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 6f 75 74 70 75 74 20 3a | ences.nil)).....(if.(eq.output.: |
| 17600 | 6e 75 6c 6c 29 20 28 73 65 74 71 20 6f 75 74 70 75 74 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 | null).(setq.output.nil)).....(wh |
| 17620 | 65 6e 20 72 65 66 65 72 65 6e 63 65 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 66 65 72 65 | en.references.......(setq.refere |
| 17640 | 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 74 68 20 6c | nces.............(cl-loop.with.l |
| 17660 | 69 6e 6b 65 72 20 3d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 | inker.=......................(pc |
| 17680 | 61 73 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d | ase.(buffer-local-value.'major-m |
| 176a0 | 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ode............................. |
| 176c0 | 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 |
| 176e0 | 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nfo.:buffer))................... |
| 17700 | 20 20 20 20 20 28 27 6f 72 67 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....('org-mode................. |
| 17720 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 | ........(lambda.(text.url)...... |
| 17740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5b | .....................(format."[[ |
| 17760 | 25 73 5d 5b 25 73 5d 5d 22 20 75 72 6c 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | %s][%s]]".url.text)))........... |
| 17780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 0a 20 20 20 | .............('markdown-mode.... |
| 177a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 65 | .....................(lambda.(te |
| 177c0 | 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt.url)......................... |
| 177e0 | 20 20 28 66 6f 72 6d 61 74 20 22 5b 25 73 5d 28 25 73 29 22 20 74 65 78 74 20 75 72 6c 29 29 29 | ..(format."[%s](%s)".text.url))) |
| 17800 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 6c 61 6d 62 | ........................(_.(lamb |
| 17820 | 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | da.(text.url)................... |
| 17840 | 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............ |
| 17860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 78 74 20 28 6c 61 6d 62 64 61 20 28 | ..................text.(lambda.( |
| 17880 | 64 61 74 61 29 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 | data).(browse-url.data))........ |
| 178a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 29 29 29 29 0a 20 20 | ......................url))))... |
| 178c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 65 66 20 61 63 72 6f 73 | ...................for.ref.acros |
| 178e0 | 73 20 72 65 66 65 72 65 6e 63 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.references.................... |
| 17900 | 20 20 66 6f 72 20 74 69 74 6c 65 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 74 69 | ..for.title.=.(plist-get.ref.:ti |
| 17920 | 74 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 6e | tle)......................for.sn |
| 17940 | 69 70 70 65 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 73 6e 69 70 70 65 74 29 | ippet.=.(plist-get.ref.:snippet) |
| 17960 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 75 72 6c 20 3d 20 | ......................for.url.=. |
| 17980 | 28 70 6c 69 73 74 2d 67 65 74 20 72 65 66 20 3a 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | (plist-get.ref.:url)............ |
| 179a0 | 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 20 20 20 20 | ..........for.n.upfrom.1........ |
| 179c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 | ..............collect........... |
| 179e0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 66 6f 72 6d 61 74 20 22 5b 25 64 5d | ...........(concat.(format."[%d] |
| 17a00 | 20 22 20 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .".n)........................... |
| 17a20 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 69 6e 6b 65 72 20 74 69 74 6c 65 20 75 72 6c 29 20 22 3a | ...(funcall.linker.title.url).": |
| 17a40 | 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .".............................. |
| 17a60 | 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 | (replace-regexp-in-string....... |
| 17a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3c 2f 3f 62 3e 22 20 | ........................"</?b>". |
| 17aa0 | 22 2a 22 20 73 6e 69 70 70 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "*".snippet))................... |
| 17ac0 | 20 20 20 69 6e 74 6f 20 72 65 66 2d 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...into.ref-strings............. |
| 17ae0 | 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 | .........finally.return......... |
| 17b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 22 20 28 6d 61 70 | .............(concat."\n\n".(map |
| 17b20 | 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 72 65 66 2d 73 74 72 69 6e 67 73 20 22 5c | concat.#'identity.ref-strings."\ |
| 17b40 | 6e 22 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 6f 75 74 70 75 74 20 72 65 66 65 72 | n"))))).....(concat.output.refer |
| 17b60 | 65 6e 63 65 73 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 | ences)))..;;.TODO:.Add.support.f |
| 17b80 | 6f 72 20 6d 6f 64 65 6c 2f 62 61 63 6b 65 6e 64 2d 73 70 65 63 69 66 69 63 20 72 65 71 75 65 73 | or.model/backend-specific.reques |
| 17ba0 | 74 2d 70 61 72 61 6d 73 20 61 6e 64 0a 3b 3b 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 | t-params.and.;;.gptel--request-p |
| 17bc0 | 61 72 61 6d 73 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 | arams.(cl-defmethod.gptel--reque |
| 17be0 | 73 74 2d 64 61 74 61 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 29 20 70 | st-data.((_backend.gptel-kagi).p |
| 17c00 | 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 |
| 17c20 | 6f 72 20 4b 61 67 69 2e 22 0a 20 20 28 70 63 61 73 65 2d 65 78 68 61 75 73 74 69 76 65 20 28 67 | or.Kagi."...(pcase-exhaustive.(g |
| 17c40 | 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 | ptel--model-name.gptel-model)... |
| 17c60 | 20 20 28 22 66 61 73 74 67 70 74 22 0a 20 20 20 20 20 60 28 2c 40 70 72 6f 6d 70 74 73 20 3a 77 | ..("fastgpt"......`(,@prompts.:w |
| 17c80 | 65 62 5f 73 65 61 72 63 68 20 74 20 3a 63 61 63 68 65 20 74 29 29 0a 20 20 20 20 28 28 61 6e 64 | eb_search.t.:cache.t)).....((and |
| 17ca0 | 20 6d 6f 64 65 6c 20 28 67 75 61 72 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 | .model.(guard.(string-prefix-p." |
| 17cc0 | 73 75 6d 6d 61 72 69 7a 65 22 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 60 28 2c 40 70 72 6f | summarize".model)))......`(,@pro |
| 17ce0 | 6d 70 74 73 20 3a 65 6e 67 69 6e 65 20 2c 28 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 6c 20 31 | mpts.:engine.,(substring.model.1 |
| 17d00 | 30 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 | 0)))))..(cl-defmethod.gptel--par |
| 17d20 | 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 29 | se-buffer.((_backend.gptel-kagi) |
| 17d40 | 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 | .&optional._max-entries)...(let. |
| 17d60 | 28 28 75 72 6c 20 28 6f 72 20 28 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 75 72 6c 29 0a | ((url.(or.(thing-at-point.'url). |
| 17d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 | .................(get-text-prope |
| 17da0 | 72 74 79 20 28 70 6f 69 6e 74 29 20 27 73 68 72 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | rty.(point).'shr-url)........... |
| 17dc0 | 20 20 20 20 20 20 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 | .......(get-text-property.(point |
| 17de0 | 29 20 27 69 6d 61 67 65 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 66 69 6c 65 | ).'image-url))).........;;.(file |
| 17e00 | 6e 61 6d 65 20 28 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 65 78 69 73 74 69 6e 67 2d 66 | name.(thing-at-point.'existing-f |
| 17e20 | 69 6c 65 6e 61 6d 65 29 29 20 3b 6e 6f 20 66 69 6c 65 20 75 70 6c 6f 61 64 20 73 75 70 70 6f 72 | ilename)).;no.file.upload.suppor |
| 17e40 | 74 20 79 65 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 20 28 74 65 78 74 2d 70 72 6f 70 65 72 | t.yet.........(prop.(text-proper |
| 17e60 | 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ty-search-backward.............. |
| 17e80 | 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..'gptel.'response.............. |
| 17ea0 | 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 | ..(when.(get-char-property.(max. |
| 17ec0 | 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 20 | (point-min).(1-.(point)))....... |
| 17ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 17f00 | 20 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 | ..'gptel)..................t)))) |
| 17f20 | 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 75 72 6c 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 | .....(if.(and.url.(string-prefix |
| 17f40 | 2d 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d | -p."summarize".(gptel--model-nam |
| 17f60 | 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a | e.gptel-model))).........(list.: |
| 17f80 | 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 67 70 74 65 | url.url).......(if.(and.(or.gpte |
| 17fa0 | 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 | l-mode.gptel-track-response).... |
| 17fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f 70 29 0a | ............(prop-match-p.prop). |
| 17fe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 | ...............(prop-match-value |
| 18000 | 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e | .prop))...........(user-error."N |
| 18020 | 6f 20 75 73 65 72 20 70 72 6f 6d 70 74 20 66 6f 75 6e 64 21 22 29 0a 20 20 20 20 20 20 20 20 28 | o.user.prompt.found!").........( |
| 18040 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | let.((prompts................(if |
| 18060 | 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 | .(or.gptel-mode.gptel-track-resp |
| 18080 | 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 67 70 | onse)....................(or.(gp |
| 180a0 | 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 20 | tel--trim-prefixes.............. |
| 180c0 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d | ...........(buffer-substring-no- |
| 180e0 | 70 72 6f 70 65 72 74 69 65 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 | properties.(prop-match-beginning |
| 18100 | 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .prop).......................... |
| 18120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 18140 | 70 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 | prop-match-end.prop))).......... |
| 18160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............."")............... |
| 18180 | 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 6e | ...(string-trim.(buffer-substrin |
| 181a0 | 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 |
| 181c0 | 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 65 78 | nt-max))))))...........(pcase-ex |
| 181e0 | 68 61 75 73 74 69 76 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 | haustive.(gptel--model-name.gpte |
| 18200 | 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 22 66 61 73 74 67 70 74 22 20 | l-model).............("fastgpt". |
| 18220 | 28 73 65 74 71 20 70 72 6f 6d 70 74 73 20 28 6c 69 73 74 20 3a 71 75 65 72 79 20 28 69 66 20 28 | (setq.prompts.(list.:query.(if.( |
| 18240 | 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f 70 29 20 70 72 6f 6d 70 74 73 20 22 22 29 29 29 | prop-match-p.prop).prompts.""))) |
| 18260 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 6d 6f 64 65 6c 20 28 67 75 61 72 64 | ).............((and.model.(guard |
| 18280 | 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 20 6d 6f | .(string-prefix-p."summarize".mo |
| 182a0 | 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 65 6e | del)))..............;;.If.the.en |
| 182c0 | 74 69 72 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 20 6c 6f 6f 6b | tire.contents.of.the.prompt.look |
| 182e0 | 73 20 6c 69 6b 65 20 61 20 75 72 6c 2c 20 73 65 6e 64 20 74 68 65 20 75 72 6c 0a 20 20 20 20 20 | s.like.a.url,.send.the.url...... |
| 18300 | 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 73 65 6e 64 20 74 68 65 20 74 65 78 74 20 6f 66 | ........;;.Else.send.the.text.of |
| 18320 | 20 74 68 65 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 | .the.region..............(setq.p |
| 18340 | 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 | rompts....................(if-le |
| 18360 | 74 2a 20 28 28 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 | t*.(((prop-match-p.prop))....... |
| 18380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 67 69 6e 65 20 28 | .......................(engine.( |
| 183a0 | 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 6c 20 31 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | substring.model.10)))........... |
| 183c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 74 27 73 20 61 20 72 65 67 69 6f 6e 20 6f 66 | .............;;.It's.a.region.of |
| 183e0 | 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | .text........................(li |
| 18400 | 73 74 20 3a 74 65 78 74 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st.:text.prompts)............... |
| 18420 | 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 | .......""))))...........prompts) |
| 18440 | 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d | ))))..(cl-defmethod.gptel--wrap- |
| 18460 | 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 6b 61 67 | user-prompt.((_backend.gptel-kag |
| 18480 | 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 70 6c 69 73 74 2d 67 | i).prompts)...(cond....((plist-g |
| 184a0 | 65 74 20 70 72 6f 6d 70 74 73 20 3a 75 72 6c 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 | et.prompts.:url).....(message."I |
| 184c0 | 67 6e 6f 72 69 6e 67 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 66 6f 72 20 55 52 4c 20 73 75 | gnoring.gptel.context.for.URL.su |
| 184e0 | 6d 6d 61 72 79 20 72 65 71 75 65 73 74 2e 22 29 29 0a 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 | mmary.request."))....((plist-get |
| 18500 | 20 70 72 6f 6d 70 74 73 20 3a 71 75 65 72 79 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 | .prompts.:query).....(cl-callf.g |
| 18520 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 | ptel-context--wrap.(plist-get.pr |
| 18540 | 6f 6d 70 74 73 20 3a 71 75 65 72 79 29 29 29 0a 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 70 | ompts.:query)))....((plist-get.p |
| 18560 | 72 6f 6d 70 74 73 20 3a 74 65 78 74 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 70 74 65 | rompts.:text).....(cl-callf.gpte |
| 18580 | 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 70 | l-context--wrap.(plist-get.promp |
| 185a0 | 74 73 20 3a 74 65 78 74 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 63 | ts.:text)))))..;;;###autoload.(c |
| 185c0 | 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 28 6e 61 6d | l-defun.gptel-make-kagi.....(nam |
| 185e0 | 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 0a 20 20 20 20 | e.&key.curl-args.stream.key..... |
| 18600 | 20 20 20 20 20 20 28 68 6f 73 74 20 22 6b 61 67 69 2e 63 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 | ......(host."kagi.com")......... |
| 18620 | 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 20 60 28 28 22 41 75 74 68 6f 72 69 | ..(header.(lambda.().`(("Authori |
| 18640 | 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 6f 74 20 22 20 28 67 70 74 65 6c | zation"...,(concat."Bot.".(gptel |
| 18660 | 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d | --get-api-key))))))...........(m |
| 18680 | 6f 64 65 6c 73 20 27 28 28 66 61 73 74 67 70 74 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 | odels.'((fastgpt.:capabilities.( |
| 186a0 | 6e 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | nosystem)).....................( |
| 186c0 | 73 75 6d 6d 61 72 69 7a 65 3a 63 65 63 69 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e | summarize:cecil.:capabilities.(n |
| 186e0 | 6f 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | osystem)).....................(s |
| 18700 | 75 6d 6d 61 72 69 7a 65 3a 61 67 6e 65 73 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f | ummarize:agnes.:capabilities.(no |
| 18720 | 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 |
| 18740 | 6d 6d 61 72 69 7a 65 3a 64 61 70 68 6e 65 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f | mmarize:daphne.:capabilities.(no |
| 18760 | 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 |
| 18780 | 6d 6d 61 72 69 7a 65 3a 6d 75 72 69 65 6c 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6e 6f | mmarize:muriel.:capabilities.(no |
| 187a0 | 73 79 73 74 65 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 | system))))...........(protocol." |
| 187c0 | 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 | https")...........(endpoint."/ap |
| 187e0 | 69 2f 76 30 2f 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 4b 61 67 69 20 46 61 73 74 | i/v0/"))..."Register.a.Kagi.Fast |
| 18800 | 47 50 54 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e | GPT.backend.for.gptel.with.NAME. |
| 18820 | 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 47 53 20 | ..Keyword.arguments:..CURL-ARGS. |
| 18840 | 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 69 6f 6e | (optional).is.a.list.of.addition |
| 18860 | 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 74 68 65 20 | al.Curl.arguments...HOST.is.the. |
| 18880 | 4b 61 67 69 20 68 6f 73 74 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c 74 73 20 | Kagi.host.(with.port),.defaults. |
| 188a0 | 74 6f 20 5c 22 6b 61 67 69 2e 63 6f 6d 5c 22 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 | to.\"kagi.com\"...MODELS.is.a.li |
| 188c0 | 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 4b 61 67 69 20 6d 6f 64 65 6c 73 3a 20 6f 6e 6c | st.of.available.Kagi.models:.onl |
| 188e0 | 79 20 66 61 73 74 67 70 74 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0a 0a 53 54 52 45 41 4d 20 | y.fastgpt.is.supported...STREAM. |
| 18900 | 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 |
| 18920 | 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 20 20 | .responses,.defaults.to.false... |
| 18940 | 4b 61 67 69 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 61 20 73 74 72 65 61 6d 69 6e | Kagi.does.not.support.a.streamin |
| 18960 | 67 20 41 50 49 20 79 65 74 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 | g.API.yet...PROTOCOL.(optional). |
| 18980 | 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 79 | specifies.the.protocol,.https.by |
| 189a0 | 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 69 | .default...ENDPOINT.(optional).i |
| 189c0 | 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 6f | s.the.API.endpoint.for.completio |
| 189e0 | 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 76 30 2f 66 61 73 74 67 70 | ns,.defaults.to.\"/api/v0/fastgp |
| 18a00 | 74 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 | t\"...HEADER.(optional).is.for.a |
| 18a20 | 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 |
| 18a40 | 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 |
| 18a60 | 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 |
| 18a80 | 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\ |
| 18aa0 | 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. |
| 18ac0 | 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 |
| 18ae0 | 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 |
| 18b00 | 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 45 78 61 6d 70 6c 65 3a | .that.returns.the.key...Example: |
| 18b20 | 0a 2d 2d 2d 2d 2d 2d 2d 0a 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 5c 22 4b 61 | .-------...(gptel-make-kagi.\"Ka |
| 18b40 | 67 69 5c 22 20 3a 6b 65 79 20 6d 79 2d 6b 61 67 69 2d 6b 65 79 29 22 0a 20 20 28 64 65 63 6c 61 | gi\".:key.my-kagi-key)"...(decla |
| 18b60 | 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 73 74 72 65 61 6d 20 20 20 20 20 20 20 20 20 | re.(indent.1))...stream......... |
| 18b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6c 65 6e 63 65 20 | .......................;Silence. |
| 18ba0 | 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 | byte-compiler...(let.((backend.( |
| 18bc0 | 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--make-kagi................ |
| 18be0 | 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 | ...:curl-args.curl-args......... |
| 18c00 | 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........:name.name............ |
| 18c20 | 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......:host.host............... |
| 18c40 | 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....:header.header.............. |
| 18c60 | 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....:key.key................... |
| 18c80 | 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d | :models.(gptel--process-models.m |
| 18ca0 | 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 | odels)...................:protoc |
| 18cc0 | 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 | ol.protocol...................:e |
| 18ce0 | 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndpoint.endpoint................ |
| 18d00 | 20 20 20 3a 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 | ...:url...................(lambd |
| 18d20 | 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 | a.().....................(concat |
| 18d40 | 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 | .protocol."://".host.endpoint... |
| 18d60 | 20 20 20 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 | ..........................(if.(e |
| 18d80 | 71 75 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 66 61 73 74 67 70 74 29 0a 20 20 20 20 20 | qual.gptel-model.'fastgpt)...... |
| 18da0 | 20 20 20 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 | ..........................."fast |
| 18dc0 | 67 70 74 22 20 22 73 75 6d 6d 61 72 69 7a 65 22 29 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 | gpt"."summarize")))))).....(prog |
| 18de0 | 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 67 65 74 | 1.backend.......(setf.(alist-get |
| 18e00 | 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 20 20 20 | .name.gptel--known-backends..... |
| 18e20 | 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 65 71 75 | ...................nil.nil.#'equ |
| 18e40 | 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 | al)...................backend))) |
| 18e60 | 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6b 61 67 69 29 0a 3b 3b 3b 20 67 70 74 | )..(provide.'gptel-kagi).;;;.gpt |
| 18e80 | 65 6c 2d 6b 61 67 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 | el-kagi.el.ends.here..;;.Local.V |
| 18ea0 | 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e | ariables:.;;.byte-compile-warnin |
| 18ec0 | 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 | gs:.(not.docstrings).;;.End:.... |
| 18ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 00 00 00 00 | gptel-0.9.9/gptel-bedrock.el.... |
| 19020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19060 | 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 |
| 19080 | 30 30 37 36 36 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 37 31 00 20 30 00 00 00 | 0076636.00000000000.014371..0... |
| 190a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 190c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 190e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19100 | 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................... |
| 19120 | 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................... |
| 19140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 191a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 191c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 191e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 19200 | 3b 3b 3b 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 20 2d 2d 2d 20 41 57 53 20 42 65 64 | ;;;.gptel-bedrock.el.---.AWS.Bed |
| 19220 | 72 6f 63 6b 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 | rock.support.for.gptel..-*-.lexi |
| 19240 | 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 | cal-binding:.t;.-*-..;;.Copyrigh |
| 19260 | 74 20 28 43 29 20 32 30 32 35 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a | t.(C).2025.Karthik.Chikmagalur.. |
| 19280 | 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6d 6d 2c 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a | ;;.Keywords:.comm,.convenience.. |
| 192a0 | 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 | ;;.This.program.is.free.software |
| 192c0 | 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 | ;.you.can.redistribute.it.and/or |
| 192e0 | 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 | .modify.;;.it.under.the.terms.of |
| 19300 | 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 | .the.GNU.General.Public.License. |
| 19320 | 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 | as.published.by.;;.the.Free.Soft |
| 19340 | 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. |
| 19360 | 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 | 3.of.the.License,.or.;;.(at.your |
| 19380 | 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 | .option).any.later.version...;;. |
| 193a0 | 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 | This.program.is.distributed.in.t |
| 193c0 | 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a | he.hope.that.it.will.be.useful,. |
| 193e0 | 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 | ;;.but.WITHOUT.ANY.WARRANTY;.wit |
| 19400 | 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f | hout.even.the.implied.warranty.o |
| 19420 | 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 | f.;;.MERCHANTABILITY.or.FITNESS. |
| 19440 | 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 | FOR.A.PARTICULAR.PURPOSE...See.t |
| 19460 | 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | he.;;.GNU.General.Public.License |
| 19480 | 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c | .for.more.details...;;.You.shoul |
| 194a0 | 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e | d.have.received.a.copy.of.the.GN |
| 194c0 | 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e | U.General.Public.License.;;.alon |
| 194e0 | 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 | g.with.this.program...If.not,.se |
| 19500 | 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f | e.<https://www.gnu.org/licenses/ |
| 19520 | 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c | >...;;;.Commentary:..;;.This.fil |
| 19540 | 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 57 53 20 42 65 64 72 6f 63 6b 20 74 | e.adds.support.for.AWS.Bedrock.t |
| 19560 | 6f 20 67 70 74 65 6c 2e 20 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 | o.gptel...Documentation.for.the. |
| 19580 | 72 65 71 75 65 73 74 20 64 61 74 61 20 61 6e 64 20 74 68 65 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 | request.data.and.the.;;.response |
| 195a0 | 20 70 61 79 6c 6f 61 64 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 20 61 74 20 74 68 65 73 65 20 | .payloads.can.be.found.at.these. |
| 195c0 | 74 77 6f 20 6c 69 6e 6b 73 3a 0a 3b 3b 20 2a 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 | two.links:.;;.*.https://docs.aws |
| 195e0 | 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 52 65 | .amazon.com/bedrock/latest/APIRe |
| 19600 | 66 65 72 65 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f 43 6f 6e 76 65 72 73 65 2e 68 74 6d | ference/API_runtime_Converse.htm |
| 19620 | 6c 0a 3b 3b 20 2a 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 7a 6f 6e 2e 63 | l.;;.*.https://docs.aws.amazon.c |
| 19640 | 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 52 65 66 65 72 65 6e 63 65 2f 41 | om/bedrock/latest/APIReference/A |
| 19660 | 50 49 5f 72 75 6e 74 69 6d 65 5f 43 6f 6e 76 65 72 73 65 53 74 72 65 61 6d 2e 68 74 6d 6c 0a 0a | PI_runtime_ConverseStream.html.. |
| 19680 | 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 | ;;;.Code:.(require.'cl-lib).(req |
| 196a0 | 75 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 | uire.'map).(require.'gptel).(req |
| 196c0 | 75 69 72 65 20 27 6d 61 69 6c 2d 70 61 72 73 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | uire.'mail-parse)..(declare-func |
| 196e0 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 | tion.gptel-context--collect-medi |
| 19700 | 61 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | a."gptel-context").(declare-func |
| 19720 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d | tion.gptel-context--wrap."gptel- |
| 19740 | 63 6f 6e 74 65 78 74 22 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d | context")..(cl-defstruct.(gptel- |
| 19760 | 62 65 64 72 6f 63 6b 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b | bedrock.(:constructor.gptel--mak |
| 19780 | 65 2d 62 65 64 72 6f 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-bedrock)...................... |
| 197a0 | 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | ........(:copier.nil)........... |
| 197c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 | ...................(:include.gpt |
| 197e0 | 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 29 0a 0a 28 64 | el-backend))...model-region)..(d |
| 19800 | 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 72 6f 6d 70 74 2d 74 79 | efconst.gptel-bedrock--prompt-ty |
| 19820 | 70 65 0a 20 20 3b 3b 20 46 6f 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 70 75 72 70 6f 73 | pe...;;.For.documentation.purpos |
| 19840 | 65 73 20 6f 6e 6c 79 20 2d 2d 20 74 68 69 73 20 64 65 73 63 72 69 62 65 73 20 74 68 65 20 74 79 | es.only.--.this.describes.the.ty |
| 19860 | 70 65 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 20 74 68 61 74 20 67 65 74 20 70 61 | pe.of.prompt.objects.that.get.pa |
| 19880 | 73 73 65 64 0a 20 20 3b 3b 20 61 72 6f 75 6e 64 2e 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 | ssed...;;.around..https://docs.a |
| 198a0 | 77 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 | ws.amazon.com/bedrock/latest/API |
| 198c0 | 52 65 66 65 72 65 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f 4d 65 73 73 61 67 65 2e 68 74 | Reference/API_runtime_Message.ht |
| 198e0 | 6d 6c 0a 20 20 27 28 70 6c 69 73 74 0a 20 20 20 20 3a 72 6f 6c 65 20 28 6d 65 6d 62 65 72 20 22 | ml...'(plist.....:role.(member." |
| 19900 | 75 73 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 0a 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 | user"."assistant").....:content. |
| 19920 | 28 61 72 72 61 79 20 28 6f 72 20 28 70 6c 69 73 74 20 3a 74 65 78 74 20 73 74 72 69 6e 67 29 0a | (array.(or.(plist.:text.string). |
| 19940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a | ........................(plist.: |
| 19960 | 69 6d 61 67 65 20 28 3a 66 6f 72 6d 61 74 20 28 6d 65 6d 62 65 72 20 22 70 6e 67 22 20 22 6a 70 | image.(:format.(member."png"."jp |
| 19980 | 65 67 22 20 22 67 69 66 22 20 22 77 65 62 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eg"."gif"."webp")............... |
| 199a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 6f 75 72 63 65 | .........................:source |
| 199c0 | 20 28 70 6c 69 73 74 20 3a 62 79 74 65 73 20 73 74 72 69 6e 67 29 29 29 20 3b 20 62 79 74 65 73 | .(plist.:bytes.string))).;.bytes |
| 199e0 | 20 69 73 20 62 36 34 20 65 6e 63 6f 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .is.b64.encoded................. |
| 19a00 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 64 6f 63 75 6d 65 6e 74 20 28 3a 66 6f 72 6d 61 | ........(plist.:document.(:forma |
| 19a20 | 74 20 28 6d 65 6d 62 65 72 20 22 70 64 66 22 20 22 63 73 76 22 20 22 64 6f 63 22 20 22 64 6f 63 | t.(member."pdf"."csv"."doc"."doc |
| 19a40 | 78 22 20 22 78 6c 73 22 20 22 78 6c 73 78 22 20 22 68 74 6d 6c 22 20 22 74 78 74 22 20 22 6d 64 | x"."xls"."xlsx"."html"."txt"."md |
| 19a60 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ").............................. |
| 19a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 | .............:name.string....... |
| 19aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 19ac0 | 20 20 20 20 3a 73 6f 75 72 63 65 20 28 70 6c 69 73 74 20 3a 62 79 74 65 73 20 73 74 72 69 6e 67 | ....:source.(plist.:bytes.string |
| 19ae0 | 29 29 29 20 3b 20 62 79 74 65 73 20 69 73 20 62 36 34 20 65 6e 63 6f 64 65 64 0a 20 20 20 20 20 | ))).;.bytes.is.b64.encoded...... |
| 19b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 74 6f 6f 6c 55 | ...................(plist.:toolU |
| 19b20 | 73 65 20 28 70 6c 69 73 74 20 3a 69 6e 70 75 74 20 61 6e 79 20 3a 6e 61 6d 65 20 73 74 72 69 6e | se.(plist.:input.any.:name.strin |
| 19b40 | 67 20 3a 74 6f 6f 6c 55 73 65 49 64 20 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 | g.:toolUseId.string))........... |
| 19b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 20 3a 74 6f 6f 6c 52 65 73 75 6c 74 | ..............(plist.:toolResult |
| 19b80 | 20 28 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(plist......................... |
| 19ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 55 73 65 49 64 20 73 | ....................:toolUseId.s |
| 19bc0 | 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........................... |
| 19be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 61 74 75 73 20 28 6d 65 6d 62 65 | ..................:status.(membe |
| 19c00 | 72 20 22 73 75 63 63 65 73 73 22 20 22 65 72 72 6f 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | r."success"."error")............ |
| 19c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 19c40 | 20 3b 3b 20 41 57 53 20 61 6c 6c 6f 77 73 20 6d 6f 72 65 20 72 65 73 75 6c 74 20 74 79 70 65 73 | .;;.AWS.allows.more.result.types |
| 19c60 | 20 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .in............................. |
| 19c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 6f 6f 6c 52 65 73 75 6c 74 43 6f 6e | ................;;.ToolResultCon |
| 19ca0 | 74 65 6e 74 42 6c 6f 63 6b 2c 20 62 75 74 20 77 65 20 6f 6e 6c 79 20 73 65 6e 64 20 74 65 78 74 | tentBlock,.but.we.only.send.text |
| 19cc0 | 20 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .results........................ |
| 19ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 61 | .....................:content.(a |
| 19d00 | 72 72 61 79 20 28 70 6c 69 73 74 20 3a 74 65 78 74 20 73 74 72 69 6e 67 29 29 29 29 29 29 29 29 | rray.(plist.:text.string)))))))) |
| 19d20 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 | ..(cl-defmethod.gptel--request-d |
| 19d40 | 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 70 72 6f | ata.((backend.gptel-bedrock).pro |
| 19d60 | 6d 70 74 73 29 0a 20 20 22 50 72 65 70 61 72 65 20 72 65 71 75 65 73 74 20 64 61 74 61 20 66 6f | mpts)..."Prepare.request.data.fo |
| 19d80 | 72 20 41 57 53 20 42 65 64 72 6f 63 6b 20 42 41 43 4b 45 4e 44 20 66 72 6f 6d 20 50 52 4f 4d 50 | r.AWS.Bedrock.BACKEND.from.PROMP |
| 19da0 | 54 53 2e 22 0a 20 20 3b 3b 20 46 69 72 73 74 2c 20 62 75 69 6c 64 20 74 68 65 20 63 6f 72 65 20 | TS."...;;.First,.build.the.core. |
| 19dc0 | 42 65 64 72 6f 63 6b 20 72 65 71 75 65 73 74 20 64 61 74 61 20 73 74 72 75 63 74 75 72 65 2e 0a | Bedrock.request.data.structure.. |
| 19de0 | 20 20 28 6c 65 74 20 28 28 62 61 73 65 2d 72 65 71 75 65 73 74 2d 64 61 74 61 0a 20 20 20 20 20 | ..(let.((base-request-data...... |
| 19e00 | 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20 20 20 20 20 20 20 60 28 3a 6d 65 73 73 61 67 65 73 | ....(nconc...........`(:messages |
| 19e20 | 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 20 3a 69 6e 66 65 72 65 6e 63 65 43 6f 6e 66 69 67 20 28 3a | .[,@prompts].:inferenceConfig.(: |
| 19e40 | 6d 61 78 54 6f 6b 65 6e 73 20 2c 28 6f 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 | maxTokens.,(or.gptel-max-tokens. |
| 19e60 | 35 30 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 73 79 | 500)))...........(when.gptel--sy |
| 19e80 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 60 28 3a 73 79 73 74 65 6d 20 5b 28 3a 74 65 78 74 20 2c | stem-message.`(:system.[(:text., |
| 19ea0 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 5d 29 29 0a 20 20 20 20 20 20 | gptel--system-message)]))....... |
| 19ec0 | 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 60 28 3a 74 | ....(when.gptel-temperature.`(:t |
| 19ee0 | 65 6d 70 65 72 61 74 75 72 65 20 2c 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a | emperature.,gptel-temperature)). |
| 19f00 | 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 75 73 65 2d 74 | ..........(when.(and.gptel-use-t |
| 19f20 | 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 60 28 | ools.gptel-tools).............`( |
| 19f40 | 3a 74 6f 6f 6c 43 6f 6e 66 69 67 20 28 3a 74 6f 6f 6c 43 68 6f 69 63 65 20 2c 28 69 66 20 28 65 | :toolConfig.(:toolChoice.,(if.(e |
| 19f60 | 71 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 20 27 66 6f 72 63 65 29 20 27 28 3a 61 6e 79 | q.gptel-use-tools.'force).'(:any |
| 19f80 | 20 27 28 29 29 20 27 28 3a 61 75 74 6f 20 27 28 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .'()).'(:auto.'()))............. |
| 19fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 73 20 2c 28 67 70 74 65 6c 2d 2d 70 | ...............:tools.,(gptel--p |
| 19fc0 | 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 29 | arse-tools.backend.gptel-tools)) |
| 19fe0 | 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 46 69 6e 61 6c 6c 79 2c 20 6d 65 72 67 65 20 61 6c 6c | )))))......;;.Finally,.merge.all |
| 1a000 | 20 70 6f 74 65 6e 74 69 61 6c 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 73 6f 75 72 63 | .potential.:request-params.sourc |
| 1a020 | 65 73 2e 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 | es......(gptel--merge-plists.... |
| 1a040 | 20 20 62 61 73 65 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..base-request-data............. |
| 1a060 | 20 20 3b 20 54 68 65 20 63 6f 72 65 20 64 61 74 61 20 77 65 20 6a 75 73 74 20 62 75 69 6c 74 0a | ..;.The.core.data.we.just.built. |
| 1a080 | 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 20 20 20 20 | .....gptel--request-params...... |
| 1a0a0 | 20 20 20 20 20 3b 20 47 6c 6f 62 61 6c 2f 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c | .....;.Global/buffer-local.gptel |
| 1a0c0 | 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 | --request-params......(gptel-bac |
| 1a0e0 | 6b 65 6e 64 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 62 61 63 6b 65 6e 64 29 20 3b 20 46 | kend-request-params.backend).;.F |
| 1a100 | 72 6f 6d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 60 20 63 61 6c 6c 0a 20 20 | rom.`gptel-make-bedrock`.call... |
| 1a120 | 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 | ...(gptel--model-request-params. |
| 1a140 | 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 20 3b 20 46 72 6f 6d 20 74 68 65 20 6d 6f 64 65 6c | gptel-model)))).;.From.the.model |
| 1a160 | 27 73 20 70 72 6f 70 65 72 74 69 65 73 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 | 's.properties..(cl-defmethod.gpt |
| 1a180 | 65 6c 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 | el--parse-tools.((_backend.gptel |
| 1a1a0 | 2d 62 65 64 72 6f 63 6b 29 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 | -bedrock).tools)..."Parse.TOOLS. |
| 1a1c0 | 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 54 6f 6f 6c 53 70 65 63 69 66 69 | and.return.a.list.of.ToolSpecifi |
| 1a1e0 | 63 61 74 69 6f 6e 20 6f 62 6a 65 63 74 73 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 | cation.objects...TOOLS.is.a.list |
| 1a200 | 20 6f 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 | .of.`gptel-tool'.structs,.which. |
| 1a220 | 73 65 65 2e 22 0a 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 73 2e 61 6d 61 | see."....;;.https://docs.aws.ama |
| 1a240 | 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 41 50 49 52 65 66 65 72 65 | zon.com/bedrock/latest/APIRefere |
| 1a260 | 6e 63 65 2f 41 50 49 5f 72 75 6e 74 69 6d 65 5f 54 6f 6f 6c 53 70 65 63 69 66 69 63 61 74 69 6f | nce/API_runtime_ToolSpecificatio |
| 1a280 | 6e 2e 68 74 6d 6c 0a 20 20 20 28 6c 65 74 20 28 28 64 65 66 61 75 6c 74 2d 6f 75 74 70 75 74 73 | n.html....(let.((default-outputs |
| 1a2a0 | 20 28 63 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d 65 74 68 6f 64 29 29 29 20 3b 3b 20 75 73 65 20 | .(cl-call-next-method))).;;.use. |
| 1a2c0 | 6f 70 65 6e 61 69 20 74 6f 6f 6c 2d 70 61 72 73 65 0a 20 20 20 20 20 28 63 6c 2d 6d 61 70 20 27 | openai.tool-parse......(cl-map.' |
| 1a2e0 | 76 65 63 74 6f 72 0a 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 20 73 70 65 63 29 | vector.......(lambda.(tool.spec) |
| 1a300 | 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 6f 6f 6c 53 70 65 63 0a 20 20 20 20 20 20 20 | .........(list.:toolSpec........ |
| 1a320 | 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | .......(list................:nam |
| 1a340 | 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 20 | e.(gptel-tool-name.tool)........ |
| 1a360 | 20 20 20 20 20 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 | ........:description.(gptel-tool |
| 1a380 | 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -description.tool).............. |
| 1a3a0 | 20 20 3a 69 6e 70 75 74 53 63 68 65 6d 61 20 28 6c 69 73 74 20 3a 6a 73 6f 6e 20 28 70 6c 69 73 | ..:inputSchema.(list.:json.(plis |
| 1a3c0 | 74 2d 67 65 74 20 28 70 6c 69 73 74 2d 67 65 74 20 73 70 65 63 20 3a 66 75 6e 63 74 69 6f 6e 29 | t-get.(plist-get.spec.:function) |
| 1a3e0 | 20 3a 70 61 72 61 6d 65 74 65 72 73 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 6e 73 75 72 65 2d | .:parameters))))).......(ensure- |
| 1a400 | 6c 69 73 74 20 74 6f 6f 6c 73 29 20 64 65 66 61 75 6c 74 2d 6f 75 74 70 75 74 73 29 29 29 0a 0a | list.tools).default-outputs))).. |
| 1a420 | 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 6f | (cl-defmethod.gptel--parse-respo |
| 1a440 | 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 72 65 | nse.((_backend.gptel-bedrock).re |
| 1a460 | 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 20 42 65 64 72 6f 63 6b 20 | sponse.info)..."Parse.a.Bedrock. |
| 1a480 | 28 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e 67 29 20 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 | (non-streaming).RESPONSE.and.ret |
| 1a4a0 | 75 72 6e 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 | urn.response.text...Mutate.state |
| 1a4c0 | 20 49 4e 46 4f 20 77 69 74 68 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 | .INFO.with.response.metadata.".. |
| 1a4e0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 | .(plist-put.info.:stop-reason.(p |
| 1a500 | 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 73 74 6f 70 52 65 61 73 6f 6e 29 29 0a | list-get.response.:stopReason)). |
| 1a520 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 69 6e 70 75 74 2d 74 6f 6b 65 6e 73 0a | ..(plist-put.info.:input-tokens. |
| 1a540 | 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 73 | .............(map-nested-elt.res |
| 1a560 | 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 69 6e 70 75 74 54 6f 6b 65 6e 73 29 29 29 0a 20 | ponse.'(:usage.:inputTokens))).. |
| 1a580 | 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 6e 73 0a | .(plist-put.info.:output-tokens. |
| 1a5a0 | 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 73 | .............(map-nested-elt.res |
| 1a5c0 | 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 6f 75 74 70 75 74 54 6f 6b 65 6e 73 29 29 29 0a | ponse.'(:usage.:outputTokens))). |
| 1a5e0 | 0a 20 20 28 6c 65 74 2a 20 28 28 6d 65 73 73 61 67 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 | ...(let*.((message.(map-nested-e |
| 1a600 | 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 6f 75 74 70 75 74 20 3a 6d 65 73 73 61 67 65 29 29 | lt.response.'(:output.:message)) |
| 1a620 | 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 20 28 74 68 72 65 61 64 | )..........(content-strs.(thread |
| 1a640 | 2d 6c 61 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e | -last.(plist-get.message.:conten |
| 1a660 | 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).............................. |
| 1a680 | 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 62 6c 6f 63 6b 29 20 | .......(mapcar.(lambda.(cblock). |
| 1a6a0 | 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 65 78 74 29 29 29 0a 20 20 20 20 20 | (plist-get.cblock.:text)))...... |
| 1a6c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 1a6e0 | 64 65 6c 71 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d | delq.nil)))).....(gptel-bedrock- |
| 1a700 | 2d 72 65 63 6f 72 64 2d 74 6f 6f 6c 2d 75 73 65 20 6d 65 73 73 61 67 65 20 69 6e 66 6f 29 0a 20 | -record-tool-use.message.info).. |
| 1a720 | 20 20 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f | ...(and.content-strs.(apply.#'co |
| 1a740 | 6e 63 61 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ncat.content-strs))))..(defun.gp |
| 1a760 | 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 72 65 63 6f 72 64 2d 74 6f 6f 6c 2d 75 73 65 20 28 6d 65 | tel-bedrock--record-tool-use.(me |
| 1a780 | 73 73 61 67 65 20 69 6e 66 6f 29 0a 20 20 22 49 66 20 4d 45 53 53 41 47 45 20 68 61 73 20 74 6f | ssage.info)..."If.MESSAGE.has.to |
| 1a7a0 | 6f 6c 20 75 73 65 20 72 65 71 75 65 73 74 73 2c 20 73 61 76 65 20 74 68 6f 73 65 20 74 6f 20 49 | ol.use.requests,.save.those.to.I |
| 1a7c0 | 4e 46 4f 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 | NFO."...(let*.((content.(plist-g |
| 1a7e0 | 65 74 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 | et.message.:content))..........( |
| 1a800 | 74 6f 6f 6c 2d 75 73 65 2d 62 6c 6f 63 6b 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f | tool-use-blocks.(cl-remove-if-no |
| 1a820 | 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 28 6c 61 | t............................(la |
| 1a840 | 6d 62 64 61 20 28 63 62 6c 6f 63 6b 29 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 | mbda.(cblock).(plist-get.cblock. |
| 1a860 | 3a 74 6f 6f 6c 55 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :toolUse))...................... |
| 1a880 | 20 20 20 20 20 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 6f 6f 6c 2d | ......content))).....(when.tool- |
| 1a8a0 | 75 73 65 2d 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 76 63 6f 6e 63 | use-blocks.......(cl-callf.vconc |
| 1a8c0 | 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 | at.(plist-get.(plist-get.info.:d |
| 1a8e0 | 61 74 61 29 20 3a 6d 65 73 73 61 67 65 73 29 20 28 6c 69 73 74 20 6d 65 73 73 61 67 65 29 29 0a | ata).:messages).(list.message)). |
| 1a900 | 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 | .......(plist-put.info.:tool-use |
| 1a920 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 | ..................(mapcar.(lambd |
| 1a940 | 61 20 28 62 6c 6f 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.(block)....................... |
| 1a960 | 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f 6c 2d 75 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 | .....(let.((tool-use.(plist-get. |
| 1a980 | 62 6c 6f 63 6b 20 3a 74 6f 6f 6c 55 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | block.:toolUse)))............... |
| 1a9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ...............(list............ |
| 1a9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 70 6c 69 73 74 2d | ...................:name.(plist- |
| 1a9e0 | 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | get.tool-use.:name)............. |
| 1aa00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 28 70 6c 69 73 74 2d 67 | ..................:args.(plist-g |
| 1aa20 | 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 69 6e 70 75 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | et.tool-use.:input)............. |
| 1aa40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 | ..................:id.(plist-get |
| 1aa60 | 20 74 6f 6f 6c 2d 75 73 65 20 3a 74 6f 6f 6c 55 73 65 49 64 29 29 29 29 0a 20 20 20 20 20 20 20 | .tool-use.:toolUseId))))........ |
| 1aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 2d 62 6c 6f 63 6b | ..................tool-use-block |
| 1aaa0 | 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 | s)))))..(cl-defmethod.gptel--par |
| 1aac0 | 73 65 2d 6c 69 73 74 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b | se-list.((_backend.gptel-bedrock |
| 1aae0 | 29 20 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 73 29 0a 20 20 22 43 72 65 61 74 65 20 61 20 6c 69 | ).prompt-strings)..."Create.a.li |
| 1ab00 | 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 20 66 72 6f 6d 20 50 52 4f 4d 50 54 | st.of.prompt.objects.from.PROMPT |
| 1ab20 | 2d 53 54 52 49 4e 47 53 2e 0a 0a 41 73 73 75 6d 65 73 20 74 68 69 73 20 69 73 20 61 20 63 6f 6e | -STRINGS...Assumes.this.is.a.con |
| 1ab40 | 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 72 6f 6c 65 73 | versation.with.alternating.roles |
| 1ab60 | 2e 22 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 74 | ."...(cl-loop.for.text.in.prompt |
| 1ab80 | 2d 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 | -strings............for.role.=.t |
| 1aba0 | 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 66 20 74 | .then.(not.role)............if.t |
| 1abc0 | 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 69 73 74 20 3a 72 6f | ext.collect............(list.:ro |
| 1abe0 | 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 72 22 20 22 61 73 73 69 73 74 61 6e 74 22 29 0a | le.(if.role."user"."assistant"). |
| 1ac00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 3a 74 65 | .................:content.`[(:te |
| 1ac20 | 78 74 20 2c 74 65 78 74 29 5d 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 | xt.,text)])))..(cl-defmethod.gpt |
| 1ac40 | 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 20 | el--wrap-user-prompt.((_backend. |
| 1ac60 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 70 72 6f 6d 70 74 73 20 26 6f 70 74 69 6f 6e 61 6c | gptel-bedrock).prompts.&optional |
| 1ac80 | 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 20 22 49 6e 6a 65 63 74 20 63 6f 6e 74 65 78 74 | .inject-media)..."Inject.context |
| 1aca0 | 20 69 6e 74 6f 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 | .into.a.conversation...PROMPTS.i |
| 1acc0 | 73 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 2e 20 20 49 66 20 49 4e | s.list.of.prompt.objects...If.IN |
| 1ace0 | 4a 45 43 54 2d 4d 45 44 49 41 20 69 73 20 6e 6f 6e 2d 6e 69 6c 0a 69 6e 6a 65 63 74 20 74 68 65 | JECT-MEDIA.is.non-nil.inject.the |
| 1ad00 | 20 6d 65 64 69 61 20 66 69 6c 65 73 20 66 72 6f 6d 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 74 | .media.files.from.context.into.t |
| 1ad20 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 0a 63 6f 6e 76 65 72 73 61 74 69 6f 6e | he.beginning.of.the.conversation |
| 1ad40 | 3b 20 6f 74 68 65 72 77 69 73 65 20 69 6e 6a 65 63 74 20 74 68 65 20 63 6f 6e 74 65 78 74 20 69 | ;.otherwise.inject.the.context.i |
| 1ad60 | 6e 74 6f 20 74 68 65 20 6c 61 73 74 20 70 72 6f 6d 70 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 | nto.the.last.prompt."...(if.inje |
| 1ad80 | 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 | ct-media.......(gptel-bedrock--i |
| 1ada0 | 6e 6a 65 63 74 2d 6d 65 64 69 61 2d 63 6f 6e 74 65 78 74 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 | nject-media-context.prompts).... |
| 1adc0 | 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6e 6a 65 63 74 2d 74 65 78 74 2d 63 6f 6e | .(gptel-bedrock--inject-text-con |
| 1ade0 | 74 65 78 74 20 70 72 6f 6d 70 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 | text.prompts)))..(defun.gptel-be |
| 1ae00 | 64 72 6f 63 6b 2d 2d 69 6e 6a 65 63 74 2d 6d 65 64 69 61 2d 63 6f 6e 74 65 78 74 20 28 70 72 6f | drock--inject-media-context.(pro |
| 1ae20 | 6d 70 74 73 29 0a 20 20 22 49 6e 6a 65 63 74 20 6d 65 64 69 61 20 66 69 6c 65 73 20 66 72 6f 6d | mpts)..."Inject.media.files.from |
| 1ae40 | 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 4d 65 | .context.into.a.conversation..Me |
| 1ae60 | 64 69 61 20 66 69 6c 65 73 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 61 74 20 74 68 65 20 62 | dia.files.will.be.added.at.the.b |
| 1ae80 | 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 50 52 | eginning.of.the.conversation..PR |
| 1aea0 | 4f 4d 50 54 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6e 6f 6e 2d 65 6d 70 74 79 20 6c 69 73 74 | OMPTS.should.be.a.non-empty.list |
| 1aec0 | 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 | .of.prompt.objects."...(when-let |
| 1aee0 | 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 65 78 74 2d 2d 63 | *.((media-list.(gptel-context--c |
| 1af00 | 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 32 20 76 | ollect-media))).....(cl-callf2.v |
| 1af20 | 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 6d 75 6c | concat.(gptel-bedrock--parse-mul |
| 1af40 | 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 20 20 20 20 20 20 20 | tipart.media-list).............. |
| 1af60 | 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 74 | ..(plist-get.(car.prompts).:cont |
| 1af80 | 65 6e 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 | ent))))..(defun.gptel-bedrock--i |
| 1afa0 | 6e 6a 65 63 74 2d 74 65 78 74 2d 63 6f 6e 74 65 78 74 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 | nject-text-context.(prompts)..." |
| 1afc0 | 49 6e 6a 65 63 74 20 74 65 78 74 20 63 6f 6e 74 65 78 74 20 69 6e 74 6f 20 74 68 65 20 6c 61 73 | Inject.text.context.into.the.las |
| 1afe0 | 74 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 61 20 63 6f 6e 76 65 72 73 61 74 | t.prompt.object.from.a.conversat |
| 1b000 | 69 6f 6e 2e 0a 50 52 4f 4d 50 54 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6e 6f 6e 2d 65 6d 70 | ion..PROMPTS.should.be.a.non-emp |
| 1b020 | 74 79 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 2e 22 0a 20 20 28 63 | ty.list.of.prompt.objects."...(c |
| 1b040 | 6c 2d 61 73 73 65 72 74 20 70 72 6f 6d 70 74 73 20 6e 69 6c 20 22 45 78 70 65 63 74 65 64 20 61 | l-assert.prompts.nil."Expected.a |
| 1b060 | 20 6e 6f 6e 2d 65 6d 70 74 79 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 22 29 0a 20 20 28 | .non-empty.list.of.prompts")...( |
| 1b080 | 77 68 65 6e 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 | when-let*.((wrapped.(gptel-conte |
| 1b0a0 | 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 32 20 76 | xt--wrap.nil))).....(cl-callf2.v |
| 1b0c0 | 63 6f 6e 63 61 74 20 60 5b 28 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 5d 0a 20 20 20 20 20 | concat.`[(:text.,wrapped)]...... |
| 1b0e0 | 20 20 20 20 20 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 | ..........(plist-get.(car.(last. |
| 1b100 | 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 2d | prompts)).:content))))..(defvar- |
| 1b120 | 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 | local.gptel-bedrock--stream-curs |
| 1b140 | 6f 72 20 6e 69 6c 0a 20 20 22 4d 61 72 6b 65 72 20 74 6f 20 69 6e 64 69 63 61 74 65 20 6c 61 73 | or.nil..."Marker.to.indicate.las |
| 1b160 | 74 20 70 6f 69 6e 74 20 70 61 72 73 65 64 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | t.point.parsed.")..(cl-defmethod |
| 1b180 | 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 62 61 63 | .gptel-curl--parse-stream.((_bac |
| 1b1a0 | 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 | kend.gptel-bedrock).info)..."Par |
| 1b1c0 | 73 65 20 61 6e 20 41 57 53 20 42 65 64 72 6f 63 6b 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 | se.an.AWS.Bedrock.streaming.resp |
| 1b1e0 | 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 43 6f 6e 76 65 72 73 65 53 74 72 65 61 6d 20 41 50 49 | onse.from.the.ConverseStream.API |
| 1b200 | 2e 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 74 68 65 | ..INFO.is.a.plist.containing.the |
| 1b220 | 20 72 65 71 75 65 73 74 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 28 63 6c 2d 62 6c 6f 63 6b 20 66 | .request.context."...(cl-block.f |
| 1b240 | 6e 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 3b 3b 20 45 | n.....(save-excursion.......;;.E |
| 1b260 | 61 63 68 20 73 74 72 65 61 6d 69 6e 67 20 72 65 71 75 65 73 74 20 75 73 65 73 20 61 20 66 72 65 | ach.streaming.request.uses.a.fre |
| 1b280 | 73 68 20 62 75 66 66 65 72 2c 20 73 6f 20 74 68 65 20 63 75 72 73 6f 72 20 73 74 61 72 74 73 20 | sh.buffer,.so.the.cursor.starts. |
| 1b2a0 | 6f 75 74 20 6e 75 6c 6c 2e 20 57 65 20 6b 65 65 70 20 69 74 20 75 6e 73 65 74 0a 20 20 20 20 20 | out.null..We.keep.it.unset...... |
| 1b2c0 | 20 3b 3b 20 75 6e 74 69 6c 20 77 65 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 6c 6c 20 74 | .;;.until.we.have.received.all.t |
| 1b2e0 | 68 65 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 67 70 74 | he.headers.......(when.(null.gpt |
| 1b300 | 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 | el-bedrock--stream-cursor)...... |
| 1b320 | 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))...... |
| 1b340 | 20 20 20 28 75 6e 6c 65 73 73 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 72 5c 6e | ...(unless.(search-forward."\r\n |
| 1b360 | 5c 72 5c 6e 22 20 6e 69 6c 20 74 29 20 28 63 6c 2d 72 65 74 75 72 6e 2d 66 72 6f 6d 20 66 6e 29 | \r\n".nil.t).(cl-return-from.fn) |
| 1b380 | 29 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 | ).........(save-restriction..... |
| 1b3a0 | 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d | ......(narrow-to-region.(point-m |
| 1b3c0 | 69 6e 29 20 28 70 6f 69 6e 74 29 29 20 3b 20 52 65 71 75 69 72 65 64 20 62 79 20 6d 61 69 6c 2d | in).(point)).;.Required.by.mail- |
| 1b3e0 | 66 65 74 63 68 2d 66 69 65 6c 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e | fetch-field...........(let.((con |
| 1b400 | 74 65 6e 74 2d 74 79 70 65 20 28 6d 61 69 6c 2d 68 65 61 64 65 72 2d 70 61 72 73 65 2d 63 6f 6e | tent-type.(mail-header-parse-con |
| 1b420 | 74 65 6e 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tent-type....................... |
| 1b440 | 20 20 20 20 20 20 20 20 20 28 6d 61 69 6c 2d 66 65 74 63 68 2d 66 69 65 6c 64 20 22 43 6f 6e 74 | .........(mail-fetch-field."Cont |
| 1b460 | 65 6e 74 2d 54 79 70 65 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 | ent-Type")))).............(cl-as |
| 1b480 | 73 65 72 74 20 63 6f 6e 74 65 6e 74 2d 74 79 70 65 20 6e 69 6c 20 22 4e 6f 20 43 6f 6e 74 65 6e | sert.content-type.nil."No.Conten |
| 1b4a0 | 74 2d 54 79 70 65 20 68 65 61 64 65 72 20 66 6f 75 6e 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 | t-Type.header.found")........... |
| 1b4c0 | 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 20 28 63 61 72 20 | ..(cl-assert.(string-equal.(car. |
| 1b4e0 | 63 6f 6e 74 65 6e 74 2d 74 79 70 65 29 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 61 | content-type)."application/vnd.a |
| 1b500 | 6d 61 7a 6f 6e 2e 65 76 65 6e 74 73 74 72 65 61 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | mazon.eventstream")............. |
| 1b520 | 20 20 20 20 20 20 20 20 20 20 20 74 20 22 55 6e 65 78 70 65 63 74 65 64 20 43 6f 6e 74 65 6e 74 | ...........t."Unexpected.Content |
| 1b540 | 2d 54 79 70 65 20 25 53 2c 20 65 78 70 65 63 74 65 64 20 25 53 22 29 29 29 0a 20 20 20 20 20 20 | -Type.%S,.expected.%S")))....... |
| 1b560 | 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d 2d 63 75 | ..(setq.gptel-bedrock--stream-cu |
| 1b580 | 72 73 6f 72 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b | rsor.(point-marker))..........;; |
| 1b5a0 | 20 3a 61 63 63 75 6d 75 6c 61 74 65 64 2d 65 76 65 6e 74 73 20 63 6f 6e 74 61 69 6e 73 20 74 68 | .:accumulated-events.contains.th |
| 1b5c0 | 65 20 65 76 65 6e 74 73 20 66 72 6f 6d 20 61 6e 20 69 6e 2d 70 72 6f 67 72 65 73 73 20 6d 65 73 | e.events.from.an.in-progress.mes |
| 1b5e0 | 73 61 67 65 2c 20 66 72 6f 6d 20 74 68 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 73 73 61 67 | sage,.from.the.........;;.messag |
| 1b600 | 65 53 74 61 72 74 20 6f 6e 77 61 72 64 73 2e 20 57 69 74 68 20 65 61 63 68 20 6d 65 73 73 61 67 | eStart.onwards..With.each.messag |
| 1b620 | 65 53 74 6f 70 20 69 74 20 67 65 74 73 20 63 6c 65 61 72 65 64 0a 20 20 20 20 20 20 20 20 28 70 | eStop.it.gets.cleared.........(p |
| 1b640 | 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 61 63 63 75 6d 75 6c 61 74 65 64 2d 65 76 65 6e 74 | list-put.info.:accumulated-event |
| 1b660 | 73 20 6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 53 74 61 72 74 20 6f 66 20 6d 61 69 6e 20 | s.nil))........;;.Start.of.main. |
| 1b680 | 72 6f 75 74 69 6e 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 2d 63 65 6c 6c 20 28 63 | routine.......(let.((acc-cell.(c |
| 1b6a0 | 64 72 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 69 6e 66 6f 20 3a 61 63 63 75 6d 75 6c 61 74 | dr.(plist-member.info.:accumulat |
| 1b6c0 | 65 64 2d 65 76 65 6e 74 73 29 29 29 20 73 74 72 69 6e 67 73 20 70 72 6f 6d 70 74 73 29 0a 20 20 | ed-events))).strings.prompts)... |
| 1b6e0 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d | ......(goto-char.gptel-bedrock-- |
| 1b700 | 73 74 72 65 61 6d 2d 63 75 72 73 6f 72 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 2d 6c 65 | stream-cursor).........(while-le |
| 1b720 | 74 20 28 28 65 76 65 6e 74 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d | t.((event.(gptel-bedrock--parse- |
| 1b740 | 73 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 | stream-message)))...........(let |
| 1b760 | 20 28 28 65 76 65 6e 74 2d 74 79 70 65 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 22 3a 65 | .((event-type.(assoc-default.":e |
| 1b780 | 76 65 6e 74 2d 74 79 70 65 22 20 28 70 6c 69 73 74 2d 67 65 74 20 65 76 65 6e 74 20 3a 68 65 61 | vent-type".(plist-get.event.:hea |
| 1b7a0 | 64 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 65 6d 62 | ders)))).............(when.(memb |
| 1b7c0 | 65 72 20 65 76 65 6e 74 2d 74 79 70 65 20 27 28 22 6d 65 73 73 61 67 65 53 74 61 72 74 22 20 22 | er.event-type.'("messageStart"." |
| 1b7e0 | 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 61 72 74 22 20 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b | contentBlockStart"."contentBlock |
| 1b800 | 44 65 6c 74 61 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 | Delta".......................... |
| 1b820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 6f 70 22 | .............."contentBlockStop" |
| 1b840 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 65 76 65 6e 74 20 28 63 61 | ))...............(push.event.(ca |
| 1b860 | 72 20 61 63 63 2d 63 65 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 | r.acc-cell))).............(pcase |
| 1b880 | 20 65 76 65 6e 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 6d 65 74 61 | .event-type...............("meta |
| 1b8a0 | 64 61 74 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | data"................(plist-put. |
| 1b8c0 | 69 6e 66 6f 20 3a 69 6e 70 75 74 2d 74 6f 6b 65 6e 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 | info.:input-tokens.(map-nested-e |
| 1b8e0 | 6c 74 20 65 76 65 6e 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 75 73 61 67 65 20 3a 69 6e 70 75 | lt.event.'(:payload.:usage.:inpu |
| 1b900 | 74 54 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | tTokens)))................(plist |
| 1b920 | 2d 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 20 28 6d 61 70 2d 6e 65 | -put.info.:output-tokens.(map-ne |
| 1b940 | 73 74 65 64 2d 65 6c 74 20 65 76 65 6e 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 75 73 61 67 65 | sted-elt.event.'(:payload.:usage |
| 1b960 | 20 3a 6f 75 74 70 75 74 54 6f 6b 65 6e 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:outputTokens)))).............. |
| 1b980 | 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 65 6c 74 61 22 0a 20 20 20 20 20 20 20 20 20 20 | .("contentBlockDelta"........... |
| 1b9a0 | 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 64 65 6c 74 61 2d 74 65 78 74 20 28 6d 61 70 | .....(when-let.((delta-text.(map |
| 1b9c0 | 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 65 6e 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 64 65 | -nested-elt.event.'(:payload.:de |
| 1b9e0 | 6c 74 61 20 3a 74 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | lta.:text))))..................( |
| 1ba00 | 70 75 73 68 20 64 65 6c 74 61 2d 74 65 78 74 20 73 74 72 69 6e 67 73 29 29 29 0a 20 20 20 20 20 | push.delta-text.strings)))...... |
| 1ba20 | 20 20 20 20 20 20 20 20 20 28 22 6d 65 73 73 61 67 65 53 74 6f 70 22 0a 20 20 20 20 20 20 20 20 | .........("messageStop"......... |
| 1ba40 | 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 73 73 | .......(push.(gptel-bedrock--ass |
| 1ba60 | 65 6d 62 6c 65 2d 63 6f 6e 74 65 6e 74 2d 62 6c 6f 63 6b 73 20 28 6e 72 65 76 65 72 73 65 20 28 | emble-content-blocks.(nreverse.( |
| 1ba80 | 63 61 72 20 61 63 63 2d 63 65 6c 6c 29 29 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 | car.acc-cell))).prompts)........ |
| 1baa0 | 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 61 72 20 61 63 63 2d 63 65 6c 6c 29 20 6e 69 6c | ........(setf.(car.acc-cell).nil |
| 1bac0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | )................(plist-put.info |
| 1bae0 | 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 65 76 | .:stop-reason.(map-nested-elt.ev |
| 1bb00 | 65 6e 74 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 73 74 6f 70 52 65 61 73 6f 6e 29 29 29 0a 20 20 | ent.'(:payload.:stopReason)))... |
| 1bb20 | 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 6d 65 | .............(plist-put.info.:me |
| 1bb40 | 73 73 61 67 65 2d 63 6f 6d 70 6c 65 74 65 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d | ssage-complete.t))))).........(m |
| 1bb60 | 6f 76 65 2d 6d 61 72 6b 65 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 73 74 72 65 61 6d | ove-marker.gptel-bedrock--stream |
| 1bb80 | 2d 63 75 72 73 6f 72 20 28 70 6f 69 6e 74 29 29 0a 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 | -cursor.(point))..........(dolis |
| 1bba0 | 74 20 28 6d 65 73 73 61 67 65 20 70 72 6f 6d 70 74 73 29 20 28 67 70 74 65 6c 2d 62 65 64 72 6f | t.(message.prompts).(gptel-bedro |
| 1bbc0 | 63 6b 2d 2d 72 65 63 6f 72 64 2d 74 6f 6f 6c 2d 75 73 65 20 6d 65 73 73 61 67 65 20 69 6e 66 6f | ck--record-tool-use.message.info |
| 1bbe0 | 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 | )).........(apply.#'concat.(nrev |
| 1bc00 | 65 72 73 65 20 73 74 72 69 6e 67 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | erse.strings))))))..(defun.gptel |
| 1bc20 | 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 20 28 | -bedrock--parse-stream-message.( |
| 1bc40 | 29 0a 20 20 22 50 61 72 73 65 20 41 57 53 20 42 65 64 72 6f 63 6b 20 65 76 65 6e 74 2d 73 74 72 | )..."Parse.AWS.Bedrock.event-str |
| 1bc60 | 65 61 6d 20 6d 65 73 73 61 67 65 20 73 74 61 72 74 69 6e 67 20 61 74 20 63 75 72 72 65 6e 74 20 | eam.message.starting.at.current. |
| 1bc80 | 70 6f 73 69 74 69 6f 6e 2e 0a 50 6f 69 6e 74 20 73 68 6f 75 6c 64 20 62 65 20 61 74 20 74 68 65 | position..Point.should.be.at.the |
| 1bca0 | 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 20 65 76 65 6e 74 20 69 6e 20 74 68 65 20 60 76 | .beginning.of.an.event.in.the.`v |
| 1bcc0 | 6e 64 2e 61 6d 61 7a 6f 6e 2e 65 76 65 6e 74 2d 73 74 72 65 61 6d 27 0a 66 6f 72 6d 61 74 2e 20 | nd.amazon.event-stream'.format.. |
| 1bce0 | 20 52 65 74 75 72 6e 73 20 70 6c 69 73 74 20 77 69 74 68 20 3a 68 65 61 64 65 72 73 20 61 6e 64 | .Returns.plist.with.:headers.and |
| 1bd00 | 20 3a 70 61 79 6c 6f 61 64 20 6b 65 79 73 20 69 66 20 73 75 63 63 65 73 73 66 75 6c 2c 20 6e 69 | .:payload.keys.if.successful,.ni |
| 1bd20 | 6c 20 69 66 0a 69 6e 63 6f 6d 70 6c 65 74 65 2e 22 0a 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 67 | l.if.incomplete."...;;.https://g |
| 1bd40 | 69 74 68 75 62 2e 63 6f 6d 2f 61 77 73 6c 61 62 73 2f 61 77 73 2d 63 2d 65 76 65 6e 74 2d 73 74 | ithub.com/awslabs/aws-c-event-st |
| 1bd60 | 72 65 61 6d 20 68 61 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 20 66 | ream.has.documentation.of.this.f |
| 1bd80 | 6f 72 6d 61 74 0a 20 20 3b 3b 20 54 68 65 20 66 6f 72 6d 61 74 20 63 6f 6e 73 69 73 74 73 20 6f | ormat...;;.The.format.consists.o |
| 1bda0 | 66 20 74 68 72 65 65 20 6d 61 69 6e 20 73 65 63 74 69 6f 6e 73 3a 20 50 72 65 6c 75 64 65 2c 20 | f.three.main.sections:.Prelude,. |
| 1bdc0 | 44 61 74 61 2c 20 61 6e 64 20 4d 65 73 73 61 67 65 20 43 52 43 2e 0a 20 20 3b 3b 20 31 2e 20 50 | Data,.and.Message.CRC....;;.1..P |
| 1bde0 | 72 65 6c 75 64 65 20 28 31 32 20 62 79 74 65 73 29 0a 20 20 3b 3b 20 20 20 20 61 2e 20 54 6f 74 | relude.(12.bytes)...;;....a..Tot |
| 1be00 | 61 6c 20 42 79 74 65 20 4c 65 6e 67 74 68 20 28 34 20 62 79 74 65 73 29 3a 20 53 70 65 63 69 66 | al.Byte.Length.(4.bytes):.Specif |
| 1be20 | 69 65 73 20 74 68 65 20 74 6f 74 61 6c 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 6d 65 73 73 | ies.the.total.length.of.the.mess |
| 1be40 | 61 67 65 2e 0a 20 20 3b 3b 20 20 20 20 62 2e 20 48 65 61 64 65 72 73 20 42 79 74 65 20 4c 65 6e | age....;;....b..Headers.Byte.Len |
| 1be60 | 67 74 68 20 28 34 20 62 79 74 65 73 29 3a 20 49 6e 64 69 63 61 74 65 73 20 74 68 65 20 6c 65 6e | gth.(4.bytes):.Indicates.the.len |
| 1be80 | 67 74 68 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 73 20 73 65 63 74 69 6f 6e 2e 0a 20 20 3b 3b | gth.of.the.headers.section....;; |
| 1bea0 | 20 20 20 20 63 2e 20 50 72 65 6c 75 64 65 20 43 52 43 20 28 34 20 62 79 74 65 73 29 3a 20 41 20 | ....c..Prelude.CRC.(4.bytes):.A. |
| 1bec0 | 43 52 43 20 76 61 6c 75 65 20 66 6f 72 20 76 61 6c 69 64 61 74 69 6e 67 20 74 68 65 20 69 6e 74 | CRC.value.for.validating.the.int |
| 1bee0 | 65 67 72 69 74 79 20 6f 66 20 74 68 65 20 70 72 65 6c 75 64 65 2e 0a 20 20 3b 3b 20 32 2e 20 44 | egrity.of.the.prelude....;;.2..D |
| 1bf00 | 61 74 61 20 28 76 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 29 0a 20 20 3b 3b 20 20 20 20 61 2e | ata.(variable.length)...;;....a. |
| 1bf20 | 20 48 65 61 64 65 72 73 3a 20 41 6e 20 61 72 72 61 79 20 6f 66 20 70 61 63 6b 65 64 20 68 65 61 | .Headers:.An.array.of.packed.hea |
| 1bf40 | 64 65 72 73 2e 20 45 61 63 68 20 68 65 61 64 65 72 20 68 61 73 20 61 20 73 70 65 63 69 66 69 63 | ders..Each.header.has.a.specific |
| 1bf60 | 20 66 6f 72 6d 61 74 20 64 6f 63 75 6d 65 6e 74 65 64 20 69 6e 0a 20 20 3b 3b 20 20 20 20 20 20 | .format.documented.in...;;...... |
| 1bf80 | 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 68 65 61 64 65 72 73 0a 20 20 | .gptel-bedrock--parse-headers... |
| 1bfa0 | 3b 3b 20 20 20 20 62 2e 20 50 61 79 6c 6f 61 64 3a 20 54 68 65 20 6d 61 69 6e 20 6d 65 73 73 61 | ;;....b..Payload:.The.main.messa |
| 1bfc0 | 67 65 20 63 6f 6e 74 65 6e 74 2c 20 61 6c 73 6f 20 6f 66 20 76 61 72 69 61 62 6c 65 20 6c 65 6e | ge.content,.also.of.variable.len |
| 1bfe0 | 67 74 68 2e 20 4c 65 6e 67 74 68 20 63 61 6e 20 62 65 20 63 6f 6d 70 75 74 65 64 20 66 72 6f 6d | gth..Length.can.be.computed.from |
| 1c000 | 0a 20 20 3b 3b 20 20 20 20 20 20 20 74 68 65 20 70 72 65 6c 75 64 65 20 66 69 65 6c 64 73 20 62 | ...;;.......the.prelude.fields.b |
| 1c020 | 79 20 73 75 62 74 72 61 63 74 69 6e 67 20 74 68 65 20 70 72 65 6c 75 64 65 20 6c 65 6e 67 74 68 | y.subtracting.the.prelude.length |
| 1c040 | 2c 20 68 65 61 64 65 72 73 20 6c 65 6e 67 74 68 2c 20 61 6e 64 20 6d 65 73 73 61 67 65 20 43 52 | ,.headers.length,.and.message.CR |
| 1c060 | 43 0a 20 20 3b 3b 20 20 20 20 20 20 20 6c 65 6e 67 74 68 20 66 72 6f 6d 20 74 68 65 20 74 6f 74 | C...;;.......length.from.the.tot |
| 1c080 | 61 6c 2e 0a 20 20 3b 3b 20 33 2e 20 4d 65 73 73 61 67 65 20 43 52 43 20 28 34 20 62 79 74 65 73 | al....;;.3..Message.CRC.(4.bytes |
| 1c0a0 | 29 3a 20 41 20 34 2d 62 79 74 65 20 43 52 43 20 74 6f 20 76 61 6c 69 64 61 74 65 20 74 68 65 20 | ):.A.4-byte.CRC.to.validate.the. |
| 1c0c0 | 69 6e 74 65 67 72 69 74 79 20 6f 66 20 74 68 65 20 65 6e 74 69 72 65 20 6d 65 73 73 61 67 65 2e | integrity.of.the.entire.message. |
| 1c0e0 | 0a 0a 20 20 3b 3b 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 69 73 20 74 68 65 20 70 6f 73 69 74 69 | ....;;.(point-max).is.the.positi |
| 1c100 | 6f 6e 20 61 66 74 65 72 20 74 68 65 20 6c 61 73 74 20 63 68 61 72 61 63 74 65 72 2c 20 68 65 6e | on.after.the.last.character,.hen |
| 1c120 | 63 65 20 74 68 65 20 75 73 65 20 6f 66 20 3e 3d 20 61 6e 64 20 6e 6f 74 20 3e 20 62 65 6c 6f 77 | ce.the.use.of.>=.and.not.>.below |
| 1c140 | 0a 20 20 28 77 68 65 6e 20 28 3e 3d 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 | ...(when.(>=.(-.(point-max).(poi |
| 1c160 | 6e 74 29 29 20 31 32 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 65 6c 75 64 65 2d 73 74 61 | nt)).12).....(let*.((prelude-sta |
| 1c180 | 72 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 6c 75 64 65 2d | rt.(point))............(prelude- |
| 1c1a0 | 6c 65 6e 67 74 68 20 31 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 6c 75 64 65 2d 65 | length.12)............(prelude-e |
| 1c1c0 | 6e 64 20 28 2b 20 70 72 65 6c 75 64 65 2d 73 74 61 72 74 20 70 72 65 6c 75 64 65 2d 6c 65 6e 67 | nd.(+.prelude-start.prelude-leng |
| 1c1e0 | 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 6c 75 64 65 20 28 62 75 66 66 65 72 | th))............(prelude.(buffer |
| 1c200 | 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 70 72 65 6c 75 64 65 | -substring-no-properties.prelude |
| 1c220 | 2d 73 74 61 72 74 20 70 72 65 6c 75 64 65 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -start.prelude-end))............ |
| 1c240 | 28 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 | (total-length.(gptel-bedrock--by |
| 1c260 | 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 73 75 62 73 74 72 69 6e 67 20 70 72 65 6c 75 64 65 20 | tes-to-int32.(substring.prelude. |
| 1c280 | 30 20 34 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 2d 6c 65 6e 67 74 | 0.4)))............(headers-lengt |
| 1c2a0 | 68 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 | h.(gptel-bedrock--bytes-to-int32 |
| 1c2c0 | 20 28 73 75 62 73 74 72 69 6e 67 20 70 72 65 6c 75 64 65 20 34 20 38 29 29 29 0a 20 20 20 20 20 | .(substring.prelude.4.8)))...... |
| 1c2e0 | 20 20 20 20 20 20 28 68 65 61 64 65 72 73 2d 73 74 61 72 74 20 70 72 65 6c 75 64 65 2d 65 6e 64 | ......(headers-start.prelude-end |
| 1c300 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 2d 65 6e 64 20 28 2b 20 68 65 61 | )............(headers-end.(+.hea |
| 1c320 | 64 65 72 73 2d 73 74 61 72 74 20 68 65 61 64 65 72 73 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 | ders-start.headers-length))..... |
| 1c340 | 20 20 20 20 20 20 20 68 65 61 64 65 72 73 20 70 61 79 6c 6f 61 64 29 0a 20 20 20 20 20 20 3b 3b | .......headers.payload).......;; |
| 1c360 | 20 57 65 20 64 6f 6e 27 74 20 76 61 6c 69 64 61 74 65 20 65 69 74 68 65 72 20 43 52 43 20 62 65 | .We.don't.validate.either.CRC.be |
| 1c380 | 63 61 75 73 65 20 69 73 6e 27 74 20 74 68 61 74 20 77 68 61 74 20 74 68 65 20 6e 65 74 77 6f 72 | cause.isn't.that.what.the.networ |
| 1c3a0 | 6b 69 6e 67 20 73 74 61 63 6b 20 69 73 20 66 6f 72 3f 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 | king.stack.is.for?........(when. |
| 1c3c0 | 28 3e 3d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 2b 20 70 72 65 6c 75 64 65 2d 73 74 61 72 74 | (>=.(point-max).(+.prelude-start |
| 1c3e0 | 20 74 6f 74 61 6c 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 | .total-length)).........(goto-ch |
| 1c400 | 61 72 20 68 65 61 64 65 72 73 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | ar.headers-start).........(setq. |
| 1c420 | 68 65 61 64 65 72 73 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 68 65 | headers.(gptel-bedrock--parse-he |
| 1c440 | 61 64 65 72 73 20 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 | aders.(buffer-substring.(point). |
| 1c460 | 68 65 61 64 65 72 73 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 | headers-end))).........(cl-asser |
| 1c480 | 74 20 28 65 71 75 61 6c 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 22 3a 6d 65 73 73 61 67 | t.(equal.(assoc-default.":messag |
| 1c4a0 | 65 2d 74 79 70 65 22 20 68 65 61 64 65 72 73 29 20 22 65 76 65 6e 74 22 29 0a 20 20 20 20 20 20 | e-type".headers)."event")....... |
| 1c4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 74 20 22 55 6e 6b 6e 6f 77 6e 20 6d 65 73 73 61 67 65 20 | .............t."Unknown.message. |
| 1c4e0 | 74 79 70 65 20 25 53 3b 20 65 78 70 65 63 74 65 64 20 25 53 22 29 0a 20 20 20 20 20 20 20 20 28 | type.%S;.expected.%S").........( |
| 1c500 | 63 6c 2d 61 73 73 65 72 74 20 28 65 71 75 61 6c 20 28 61 73 73 6f 63 2d 64 65 66 61 75 6c 74 20 | cl-assert.(equal.(assoc-default. |
| 1c520 | 22 3a 63 6f 6e 74 65 6e 74 2d 74 79 70 65 22 20 68 65 61 64 65 72 73 29 20 22 61 70 70 6c 69 63 | ":content-type".headers)."applic |
| 1c540 | 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ation/json").................... |
| 1c560 | 74 20 22 55 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 65 6e 74 2d 74 79 70 65 20 25 53 20 69 73 | t."Unexpected.content-type.%S.is |
| 1c580 | 20 6e 6f 74 20 25 53 22 29 0a 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 | .not.%S")..........(goto-char.he |
| 1c5a0 | 61 64 65 72 73 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 61 79 6c 6f 61 64 | aders-end).........(setq.payload |
| 1c5c0 | 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 28 6c 65 | .(gptel--json-read)).........(le |
| 1c5e0 | 74 2a 20 28 28 6d 65 73 73 61 67 65 2d 63 72 63 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t*.((message-crc.4)............. |
| 1c600 | 20 20 20 28 70 61 79 6c 6f 61 64 2d 6c 65 6e 67 74 68 20 28 2d 20 74 6f 74 61 6c 2d 6c 65 6e 67 | ...(payload-length.(-.total-leng |
| 1c620 | 74 68 20 68 65 61 64 65 72 73 2d 6c 65 6e 67 74 68 20 70 72 65 6c 75 64 65 2d 6c 65 6e 67 74 68 | th.headers-length.prelude-length |
| 1c640 | 20 6d 65 73 73 61 67 65 2d 63 72 63 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 | .message-crc)))...........(cl-as |
| 1c660 | 73 65 72 74 20 28 3d 20 28 2d 20 28 70 6f 69 6e 74 29 20 68 65 61 64 65 72 73 2d 65 6e 64 29 20 | sert.(=.(-.(point).headers-end). |
| 1c680 | 70 61 79 6c 6f 61 64 2d 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | payload-length)................. |
| 1c6a0 | 20 20 20 20 20 74 20 22 55 6e 65 78 70 65 63 74 65 64 20 70 61 79 6c 6f 61 64 20 6c 65 6e 67 74 | .....t."Unexpected.payload.lengt |
| 1c6c0 | 68 20 25 64 3b 20 65 78 70 65 63 74 65 64 20 25 64 2e 22 29 29 0a 0a 20 20 20 20 20 20 20 20 28 | h.%d;.expected.%d."))..........( |
| 1c6e0 | 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 70 72 65 6c 75 64 65 2d 73 74 61 72 74 20 74 6f 74 61 6c | goto-char.(+.prelude-start.total |
| 1c700 | 2d 6c 65 6e 67 74 68 29 29 0a 20 20 20 20 20 20 20 20 60 28 3a 68 65 61 64 65 72 73 20 2c 68 65 | -length)).........`(:headers.,he |
| 1c720 | 61 64 65 72 73 20 3a 70 61 79 6c 6f 61 64 20 2c 70 61 79 6c 6f 61 64 29 29 29 29 29 0a 0a 28 64 | aders.:payload.,payload)))))..(d |
| 1c740 | 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 68 65 61 64 65 72 | efun.gptel-bedrock--parse-header |
| 1c760 | 73 20 28 68 65 61 64 65 72 73 2d 64 61 74 61 29 0a 20 20 22 50 61 72 73 65 20 48 45 41 44 45 52 | s.(headers-data)..."Parse.HEADER |
| 1c780 | 53 2d 44 41 54 41 20 69 6e 74 6f 20 61 6c 69 73 74 20 6f 66 20 28 4e 41 4d 45 20 2e 20 56 41 4c | S-DATA.into.alist.of.(NAME...VAL |
| 1c7a0 | 55 45 29 2e 0a 4b 65 79 73 20 61 72 65 20 73 74 72 69 6e 67 2d 76 61 6c 75 65 64 2c 20 6c 6f 77 | UE)..Keys.are.string-valued,.low |
| 1c7c0 | 65 72 2d 63 61 73 65 64 20 6e 61 6d 65 73 2e 22 0a 20 20 3b 3b 20 48 65 61 64 65 72 20 77 69 72 | er-cased.names."...;;.Header.wir |
| 1c7e0 | 65 20 66 6f 72 6d 61 74 3a 0a 20 20 3b 3b 20 20 20 31 2e 20 48 65 61 64 65 72 20 4e 61 6d 65 20 | e.format:...;;...1..Header.Name. |
| 1c800 | 42 79 74 65 20 4c 65 6e 67 74 68 20 28 31 20 62 79 74 65 29 3a 20 53 70 65 63 69 66 69 65 73 20 | Byte.Length.(1.byte):.Specifies. |
| 1c820 | 74 68 65 20 6c 65 6e 67 74 68 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 20 6e 61 6d 65 2e 0a 20 | the.length.of.the.header.name... |
| 1c840 | 20 3b 3b 20 20 20 32 2e 20 48 65 61 64 65 72 20 4e 61 6d 65 20 28 53 74 72 69 6e 67 29 20 28 56 | .;;...2..Header.Name.(String).(V |
| 1c860 | 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 29 3a 20 43 6f 6e 74 61 69 6e 73 20 74 68 65 20 6e 61 | ariable.length):.Contains.the.na |
| 1c880 | 6d 65 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 2e 0a 20 20 3b 3b 20 20 20 33 2e 20 48 65 61 64 | me.of.the.header....;;...3..Head |
| 1c8a0 | 65 72 20 56 61 6c 75 65 20 54 79 70 65 20 28 31 20 62 79 74 65 29 3a 20 49 64 65 6e 74 69 66 69 | er.Value.Type.(1.byte):.Identifi |
| 1c8c0 | 65 73 20 74 68 65 20 74 79 70 65 20 6f 66 20 74 68 65 20 68 65 61 64 65 72 20 76 61 6c 75 65 2e | es.the.type.of.the.header.value. |
| 1c8e0 | 0a 20 20 3b 3b 20 20 20 34 2e 20 56 61 6c 75 65 20 53 74 72 69 6e 67 20 42 79 74 65 20 4c 65 6e | ...;;...4..Value.String.Byte.Len |
| 1c900 | 67 74 68 20 28 32 20 62 79 74 65 73 29 3a 20 49 6e 64 69 63 61 74 65 73 20 74 68 65 20 6c 65 6e | gth.(2.bytes):.Indicates.the.len |
| 1c920 | 67 74 68 20 6f 66 20 74 68 65 20 76 61 6c 75 65 20 73 74 72 69 6e 67 2e 0a 20 20 3b 3b 20 20 20 | gth.of.the.value.string....;;... |
| 1c940 | 35 2e 20 56 61 6c 75 65 20 28 56 61 72 69 61 62 6c 65 20 6c 65 6e 67 74 68 29 3a 20 48 6f 6c 64 | 5..Value.(Variable.length):.Hold |
| 1c960 | 73 20 74 68 65 20 61 63 74 75 61 6c 20 76 61 6c 75 65 20 62 79 74 65 73 0a 20 20 28 6c 65 74 20 | s.the.actual.value.bytes...(let. |
| 1c980 | 28 28 70 6f 73 20 30 29 20 28 6d 61 78 20 28 6c 65 6e 67 74 68 20 68 65 61 64 65 72 73 2d 64 61 | ((pos.0).(max.(length.headers-da |
| 1c9a0 | 74 61 29 29 20 68 65 61 64 65 72 73 29 0a 20 20 20 20 28 63 6c 2d 66 6c 65 74 20 28 28 70 6f 73 | ta)).headers).....(cl-flet.((pos |
| 1c9c0 | 2b 2b 20 28 29 20 28 70 72 6f 67 31 20 70 6f 73 20 28 63 6c 2d 69 6e 63 66 20 70 6f 73 29 29 29 | ++.().(prog1.pos.(cl-incf.pos))) |
| 1c9e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 2b 70 6f 73 20 28 6e 29 20 28 63 6c 2d 69 6e | ...............(++pos.(n).(cl-in |
| 1ca00 | 63 66 20 70 6f 73 20 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 74 66 38 20 28 | cf.pos.n))...............(utf8.( |
| 1ca20 | 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 29 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 | unibyte-string).(decode-coding-s |
| 1ca40 | 74 72 69 6e 67 20 75 6e 69 62 79 74 65 2d 73 74 72 69 6e 67 20 27 75 74 66 2d 38 20 74 29 29 29 | tring.unibyte-string.'utf-8.t))) |
| 1ca60 | 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 70 6f 73 20 6d 61 78 29 0a 20 20 20 20 20 20 | .......(while.(<.pos.max)....... |
| 1ca80 | 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 2d 6c 65 6e 20 28 61 72 65 66 20 68 65 61 64 65 72 73 | ..(let*.((name-len.(aref.headers |
| 1caa0 | 2d 64 61 74 61 20 28 70 6f 73 2b 2b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -data.(pos++)))................( |
| 1cac0 | 6e 61 6d 65 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 | name.(substring.headers-data.pos |
| 1cae0 | 20 28 2b 2b 70 6f 73 20 6e 61 6d 65 2d 6c 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(++pos.name-len)))............. |
| 1cb00 | 20 20 20 28 74 79 70 65 20 28 61 72 65 66 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 28 70 6f 73 | ...(type.(aref.headers-data.(pos |
| 1cb20 | 2b 2b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 2d 6c 65 6e 20 | ++)))................(value-len. |
| 1cb40 | 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 31 36 20 28 | (gptel-bedrock--bytes-to-int16.( |
| 1cb60 | 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f | substring.headers-data.pos.(++po |
| 1cb80 | 73 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 61 6c 75 65 0a 20 20 | s.2))))................(value... |
| 1cba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 74 79 70 65 0a 20 20 20 20 20 20 | ..............(pcase.type....... |
| 1cbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 48 65 61 64 65 72 20 74 79 70 65 73 20 66 72 6f 6d | ............;;.Header.types.from |
| 1cbe0 | 20 68 74 74 70 73 3a 2f 2f 61 77 73 6c 61 62 73 2e 67 69 74 68 75 62 2e 69 6f 2f 61 77 73 2d 63 | .https://awslabs.github.io/aws-c |
| 1cc00 | 72 74 2d 70 79 74 68 6f 6e 2f 61 70 69 2f 65 76 65 6e 74 73 74 72 65 61 6d 2e 68 74 6d 6c 0a 20 | rt-python/api/eventstream.html.. |
| 1cc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 30 20 74 29 0a 20 20 20 20 20 20 20 20 20 | .................(0.t).......... |
| 1cc40 | 20 20 20 20 20 20 20 20 20 28 31 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 | .........(1.:json-false)........ |
| 1cc60 | 20 20 20 20 20 20 20 20 20 20 20 28 32 20 28 6c 65 74 20 28 28 72 65 73 20 28 61 72 65 66 20 68 | ...........(2.(let.((res.(aref.h |
| 1cc80 | 65 61 64 65 72 73 2d 64 61 74 61 20 28 70 6f 73 2b 2b 29 29 29 29 20 3b 20 69 6e 74 38 0a 20 20 | eaders-data.(pos++)))).;.int8... |
| 1cca0 | 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 72 65 73 20 | .....................(if.(>.res. |
| 1ccc0 | 31 32 37 29 20 28 2d 20 72 65 73 20 32 35 36 29 20 72 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 | 127).(-.res.256).res)))......... |
| 1cce0 | 20 20 20 20 20 20 20 20 20 20 28 33 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 | ..........(3.(gptel-bedrock--byt |
| 1cd00 | 65 73 2d 74 6f 2d 69 6e 74 31 36 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 | es-to-int16.(substring.headers-d |
| 1cd20 | 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 32 29 29 29 29 20 3b 20 69 6e 74 31 36 0a 20 20 20 | ata.pos.(++pos.2)))).;.int16.... |
| 1cd40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 34 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b | ...............(4.(gptel-bedrock |
| 1cd60 | 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 | --bytes-to-int32.(substring.head |
| 1cd80 | 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 34 29 29 29 29 20 3b 20 69 6e 74 33 | ers-data.pos.(++pos.4)))).;.int3 |
| 1cda0 | 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 35 20 28 67 70 74 65 6c 2d 62 65 | 2...................(5.(gptel-be |
| 1cdc0 | 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 36 34 20 28 73 75 62 73 74 72 69 6e 67 | drock--bytes-to-int64.(substring |
| 1cde0 | 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 38 29 29 29 29 20 3b | .headers-data.pos.(++pos.8)))).; |
| 1ce00 | 20 69 6e 74 36 34 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 36 20 28 73 75 62 | .int64...................(6.(sub |
| 1ce20 | 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 76 | string.headers-data.pos.(++pos.v |
| 1ce40 | 61 6c 75 65 2d 6c 65 6e 29 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | alue-len)))..................... |
| 1ce60 | 20 20 20 20 3b 20 72 61 77 20 62 79 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....;.raw.bytes................. |
| 1ce80 | 20 20 28 37 20 28 75 74 66 38 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 | ..(7.(utf8.(substring.headers-da |
| 1cea0 | 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 76 61 6c 75 65 2d 6c 65 6e 29 29 29 29 20 20 20 20 20 | ta.pos.(++pos.value-len))))..... |
| 1cec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 75 74 66 38 20 73 74 72 69 6e 67 0a 20 20 20 20 20 | .............;.utf8.string...... |
| 1cee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 38 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 20 20 20 | .............(8.(decode-time.... |
| 1cf00 | 20 20 20 3b 20 36 34 20 62 69 74 20 69 6e 74 20 77 69 74 68 20 73 65 63 6f 6e 64 73 20 73 69 6e | ...;.64.bit.int.with.seconds.sin |
| 1cf20 | 63 65 20 74 68 65 20 55 6e 69 78 20 65 70 6f 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce.the.Unix.epoch............... |
| 1cf40 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f | ........(gptel-bedrock--bytes-to |
| 1cf60 | 2d 69 6e 74 36 34 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 74 61 20 70 | -int64.(substring.headers-data.p |
| 1cf80 | 6f 73 20 28 2b 2b 70 6f 73 20 38 29 29 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | os.(++pos.8))).t)).............. |
| 1cfa0 | 20 20 20 20 20 28 39 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f | .....(9.(gptel-bedrock--bytes-to |
| 1cfc0 | 2d 75 75 69 64 20 3b 20 31 36 20 62 79 74 65 20 55 55 49 44 0a 20 20 20 20 20 20 20 20 20 20 20 | -uuid.;.16.byte.UUID............ |
| 1cfe0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 61 64 65 72 73 2d 64 61 | ...........(substring.headers-da |
| 1d000 | 74 61 20 70 6f 73 20 28 2b 2b 70 6f 73 20 31 36 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ta.pos.(++pos.16))))............ |
| 1d020 | 20 20 20 20 20 20 20 28 5f 20 28 65 72 72 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 68 65 61 64 65 72 | .......(_.(error."Unknown.header |
| 1d040 | 20 74 79 70 65 3a 20 25 64 22 20 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | .type:.%d".type)))))...........( |
| 1d060 | 70 75 73 68 20 28 63 6f 6e 73 20 28 64 6f 77 6e 63 61 73 65 20 28 75 74 66 38 20 6e 61 6d 65 29 | push.(cons.(downcase.(utf8.name) |
| 1d080 | 29 20 76 61 6c 75 65 29 20 68 65 61 64 65 72 73 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 61 73 | ).value).headers))).......(cl-as |
| 1d0a0 | 73 65 72 74 20 28 3d 20 70 6f 73 20 6d 61 78 29 20 74 20 22 48 65 61 64 65 72 73 20 64 69 64 20 | sert.(=.pos.max).t."Headers.did. |
| 1d0c0 | 6e 6f 74 20 70 61 72 73 65 20 63 6c 65 61 6e 6c 79 2e 20 70 6f 73 3d 25 64 20 20 68 65 61 64 65 | not.parse.cleanly..pos=%d..heade |
| 1d0e0 | 72 2d 6c 65 6e 3d 25 64 22 29 0a 20 20 20 20 20 20 68 65 61 64 65 72 73 29 29 29 0a 0a 28 64 65 | r-len=%d").......headers)))..(de |
| 1d100 | 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 31 | fun.gptel-bedrock--bytes-to-int1 |
| 1d120 | 36 20 28 62 79 74 65 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 32 2d 62 79 74 65 20 73 74 72 69 | 6.(bytes)..."Convert.2-byte.stri |
| 1d140 | 6e 67 20 42 59 54 45 53 20 74 6f 20 62 69 67 2d 65 6e 64 69 61 6e 20 73 69 67 6e 65 64 20 69 6e | ng.BYTES.to.big-endian.signed.in |
| 1d160 | 74 65 67 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 30 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 | teger."...(let.((b0.(logand.(are |
| 1d180 | 66 20 62 79 74 65 73 20 30 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 31 20 28 6c 6f | f.bytes.0).255)).........(b1.(lo |
| 1d1a0 | 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 31 29 20 32 35 35 29 29 29 0a 20 20 20 20 28 | gand.(aref.bytes.1).255))).....( |
| 1d1c0 | 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 2b 20 28 61 73 68 20 62 30 20 38 29 20 62 31 29 29 29 | let.((result.(+.(ash.b0.8).b1))) |
| 1d1e0 | 0a 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 62 30 20 23 78 38 30 29 20 28 2d 20 72 65 73 75 6c | .......(if.(>=.b0.#x80).(-.resul |
| 1d200 | 74 20 28 61 73 68 20 31 20 31 36 29 29 20 72 65 73 75 6c 74 29 29 29 29 0a 0a 28 64 65 66 75 6e | t.(ash.1.16)).result))))..(defun |
| 1d220 | 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d 69 6e 74 33 32 20 28 | .gptel-bedrock--bytes-to-int32.( |
| 1d240 | 62 79 74 65 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 34 2d 62 79 74 65 20 73 74 72 69 6e 67 20 | bytes)..."Convert.4-byte.string. |
| 1d260 | 42 59 54 45 53 20 74 6f 20 62 69 67 2d 65 6e 64 69 61 6e 20 73 69 67 6e 65 64 20 69 6e 74 65 67 | BYTES.to.big-endian.signed.integ |
| 1d280 | 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 30 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 | er."...(let.((b0.(logand.(aref.b |
| 1d2a0 | 79 74 65 73 20 30 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 31 20 28 6c 6f 67 61 6e | ytes.0).255)).........(b1.(logan |
| 1d2c0 | 64 20 28 61 72 65 66 20 62 79 74 65 73 20 31 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 | d.(aref.bytes.1).255)).........( |
| 1d2e0 | 62 32 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 32 29 20 32 35 35 29 29 0a | b2.(logand.(aref.bytes.2).255)). |
| 1d300 | 20 20 20 20 20 20 20 20 28 62 33 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 | ........(b3.(logand.(aref.bytes. |
| 1d320 | 33 29 20 32 35 35 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 28 2b 20 28 | 3).255))).....(let.((result.(+.( |
| 1d340 | 61 73 68 20 62 30 20 32 34 29 20 28 61 73 68 20 62 31 20 31 36 29 20 28 61 73 68 20 62 32 20 38 | ash.b0.24).(ash.b1.16).(ash.b2.8 |
| 1d360 | 29 20 62 33 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 62 30 20 23 78 38 30 29 20 28 | ).b3))).......(if.(>=.b0.#x80).( |
| 1d380 | 2d 20 72 65 73 75 6c 74 20 28 61 73 68 20 31 20 33 32 29 29 20 72 65 73 75 6c 74 29 29 29 29 0a | -.result.(ash.1.32)).result)))). |
| 1d3a0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d | .(defun.gptel-bedrock--bytes-to- |
| 1d3c0 | 69 6e 74 36 34 20 28 62 79 74 65 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 38 2d 62 79 74 65 20 | int64.(bytes)..."Convert.8-byte. |
| 1d3e0 | 73 74 72 69 6e 67 20 42 59 54 45 53 20 74 6f 20 62 69 67 2d 65 6e 64 69 61 6e 20 73 69 67 6e 65 | string.BYTES.to.big-endian.signe |
| 1d400 | 64 20 69 6e 74 65 67 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 62 30 20 28 6c 6f 67 61 6e 64 20 | d.integer."...(let.((b0.(logand. |
| 1d420 | 28 61 72 65 66 20 62 79 74 65 73 20 30 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 31 | (aref.bytes.0).255)).........(b1 |
| 1d440 | 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 31 29 20 32 35 35 29 29 0a 20 20 | .(logand.(aref.bytes.1).255))... |
| 1d460 | 20 20 20 20 20 20 28 62 32 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 32 29 | ......(b2.(logand.(aref.bytes.2) |
| 1d480 | 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 33 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 | .255)).........(b3.(logand.(aref |
| 1d4a0 | 20 62 79 74 65 73 20 33 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 34 20 28 6c 6f 67 | .bytes.3).255)).........(b4.(log |
| 1d4c0 | 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 34 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 | and.(aref.bytes.4).255))........ |
| 1d4e0 | 20 28 62 35 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 73 20 35 29 20 32 35 35 29 | .(b5.(logand.(aref.bytes.5).255) |
| 1d500 | 29 0a 20 20 20 20 20 20 20 20 28 62 36 20 28 6c 6f 67 61 6e 64 20 28 61 72 65 66 20 62 79 74 65 | ).........(b6.(logand.(aref.byte |
| 1d520 | 73 20 36 29 20 32 35 35 29 29 0a 20 20 20 20 20 20 20 20 28 62 37 20 28 6c 6f 67 61 6e 64 20 28 | s.6).255)).........(b7.(logand.( |
| 1d540 | 61 72 65 66 20 62 79 74 65 73 20 37 29 20 32 35 35 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 | aref.bytes.7).255))).....(let.(( |
| 1d560 | 72 65 73 75 6c 74 2d 75 36 33 20 28 2b 20 28 61 73 68 20 28 6c 6f 67 61 6e 64 20 62 30 20 23 78 | result-u63.(+.(ash.(logand.b0.#x |
| 1d580 | 37 66 29 20 35 36 29 20 28 61 73 68 20 62 31 20 34 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | 7f).56).(ash.b1.48)............. |
| 1d5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 68 20 62 32 20 34 30 29 20 28 61 73 68 20 62 33 | .............(ash.b2.40).(ash.b3 |
| 1d5c0 | 20 33 32 29 20 28 61 73 68 20 62 34 20 32 34 29 20 28 61 73 68 20 62 35 20 31 36 29 20 28 61 73 | .32).(ash.b4.24).(ash.b5.16).(as |
| 1d5e0 | 68 20 62 36 20 38 29 20 62 37 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 3d 20 62 30 20 23 | h.b6.8).b7))).......(if.(>=.b0.# |
| 1d600 | 78 38 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 2d 20 72 65 73 75 6c 74 2d 75 36 33 20 28 61 73 | x80)...........(-.result-u63.(as |
| 1d620 | 68 20 31 20 36 33 29 29 0a 20 20 20 20 20 20 20 20 72 65 73 75 6c 74 2d 75 36 33 29 29 29 29 0a | h.1.63)).........result-u63)))). |
| 1d640 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 62 79 74 65 73 2d 74 6f 2d | .(defun.gptel-bedrock--bytes-to- |
| 1d660 | 75 75 69 64 20 28 62 79 74 65 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 61 20 31 36 2d 62 79 74 | uuid.(bytes)..."Convert.a.16-byt |
| 1d680 | 65 20 75 6e 69 62 79 74 65 20 42 59 54 45 53 20 74 6f 20 61 20 33 36 20 63 68 61 72 61 63 74 65 | e.unibyte.BYTES.to.a.36.characte |
| 1d6a0 | 72 20 55 55 49 44 20 73 74 72 69 6e 67 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 | r.UUID.string."...(unless.(and.( |
| 1d6c0 | 73 74 72 69 6e 67 70 20 62 79 74 65 73 29 20 28 3d 20 28 6c 65 6e 67 74 68 20 62 79 74 65 73 29 | stringp.bytes).(=.(length.bytes) |
| 1d6e0 | 20 31 36 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 70 75 74 20 6d 75 73 74 20 62 65 20 | .16)).....(error."Input.must.be. |
| 1d700 | 61 20 31 36 2d 62 79 74 65 20 75 6e 69 62 79 74 65 20 73 74 72 69 6e 67 22 29 29 0a 20 20 28 6c | a.16-byte.unibyte.string"))...(l |
| 1d720 | 65 74 20 28 28 68 65 78 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 69 29 20 | et.((hex.(mapconcat.(lambda.(i). |
| 1d740 | 28 66 6f 72 6d 61 74 20 22 25 30 32 78 22 20 28 61 72 65 66 20 62 79 74 65 73 20 69 29 29 29 20 | (format."%02x".(aref.bytes.i))). |
| 1d760 | 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 30 20 31 35 29 20 22 22 29 29 29 0a 20 20 20 | (number-sequence.0.15).""))).... |
| 1d780 | 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 2d 25 73 2d 25 73 2d 25 73 22 0a 20 20 20 20 20 20 | .(format."%s-%s-%s-%s-%s"....... |
| 1d7a0 | 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 78 20 30 20 38 29 0a 20 20 20 20 20 20 | ......(substring.hex.0.8)....... |
| 1d7c0 | 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 78 20 38 20 31 32 29 0a 20 20 20 20 20 | ......(substring.hex.8.12)...... |
| 1d7e0 | 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 78 20 31 32 20 31 36 29 0a 20 20 20 | .......(substring.hex.12.16).... |
| 1d800 | 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 78 20 31 36 20 32 30 29 0a 20 | .........(substring.hex.16.20).. |
| 1d820 | 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 68 65 78 20 32 30 20 33 32 29 | ...........(substring.hex.20.32) |
| 1d840 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 73 73 65 6d | )))..(defun.gptel-bedrock--assem |
| 1d860 | 62 6c 65 2d 63 6f 6e 74 65 6e 74 2d 62 6c 6f 63 6b 73 20 28 65 76 65 6e 74 73 29 0a 20 20 22 42 | ble-content-blocks.(events)..."B |
| 1d880 | 75 69 6c 64 20 61 20 63 6f 6d 70 6c 65 74 65 64 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 63 | uild.a.completed.prompt.object.c |
| 1d8a0 | 6f 6e 74 61 69 6e 65 64 20 66 72 6f 6d 20 45 56 45 4e 54 53 2e 0a 45 56 45 4e 54 53 20 73 68 6f | ontained.from.EVENTS..EVENTS.sho |
| 1d8c0 | 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 53 74 61 72 74 2c 20 63 | uld.be.a.list.of.messageStart,.c |
| 1d8e0 | 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 61 72 74 2c 0a 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 44 65 | ontentBlockStart,.contentBlockDe |
| 1d900 | 6c 74 61 2c 20 61 6e 64 20 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 6f 70 20 73 74 72 65 61 6d | lta,.and.contentBlockStop.stream |
| 1d920 | 20 6d 65 73 73 61 67 65 73 20 61 73 0a 72 65 74 75 72 6e 65 64 20 62 79 20 60 67 70 74 65 6c 2d | .messages.as.returned.by.`gptel- |
| 1d940 | 62 65 64 72 6f 63 6b 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 2d 6d 65 73 73 61 67 65 27 2c 20 | bedrock--parse-stream-message',. |
| 1d960 | 69 6e 20 74 68 65 20 6f 72 64 65 72 0a 72 65 63 65 69 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 | in.the.order.received."...(let.( |
| 1d980 | 28 62 6c 6f 63 6b 73 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 23 | (blocks.(make-hash-table.:test.# |
| 1d9a0 | 27 65 71 6c 29 29 0a 20 20 20 20 20 20 20 20 72 6f 6c 65 20 63 6f 6e 74 65 6e 74 73 29 0a 20 20 | 'eql)).........role.contents)... |
| 1d9c0 | 20 20 28 64 6f 6c 69 73 74 20 28 65 76 65 6e 74 20 65 76 65 6e 74 73 29 0a 20 20 20 20 20 20 28 | ..(dolist.(event.events).......( |
| 1d9e0 | 6c 65 74 2a 20 28 28 68 65 61 64 65 72 73 20 28 70 6c 69 73 74 2d 67 65 74 20 65 76 65 6e 74 20 | let*.((headers.(plist-get.event. |
| 1da00 | 3a 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 6c 6f 61 64 | :headers))..............(payload |
| 1da20 | 20 28 70 6c 69 73 74 2d 67 65 74 20 65 76 65 6e 74 20 3a 70 61 79 6c 6f 61 64 29 29 0a 20 20 20 | .(plist-get.event.:payload)).... |
| 1da40 | 20 20 20 20 20 20 20 20 20 20 28 65 76 65 6e 74 2d 74 79 70 65 20 28 61 73 73 6f 63 2d 64 65 66 | ..........(event-type.(assoc-def |
| 1da60 | 61 75 6c 74 20 22 3a 65 76 65 6e 74 2d 74 79 70 65 22 20 68 65 61 64 65 72 73 29 29 29 0a 20 20 | ault.":event-type".headers)))... |
| 1da80 | 20 20 20 20 20 20 28 70 63 61 73 65 20 65 76 65 6e 74 2d 74 79 70 65 0a 20 20 20 20 20 20 20 20 | ......(pcase.event-type......... |
| 1daa0 | 20 20 28 22 6d 65 73 73 61 67 65 53 74 61 72 74 22 20 28 73 65 74 71 20 72 6f 6c 65 20 28 70 6c | ..("messageStart".(setq.role.(pl |
| 1dac0 | 69 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 3a 72 6f 6c 65 29 29 29 0a 20 20 20 20 20 20 20 | ist-get.payload.:role)))........ |
| 1dae0 | 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 61 72 74 22 0a 20 20 20 20 20 20 20 20 | ...("contentBlockStart"......... |
| 1db00 | 20 20 20 28 70 75 74 68 61 73 68 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 3a | ...(puthash.(plist-get.payload.: |
| 1db20 | 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 49 6e 64 65 78 29 20 28 6c 69 73 74 20 65 76 65 6e 74 29 20 | contentBlockIndex).(list.event). |
| 1db40 | 62 6c 6f 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 | blocks))...........("contentBloc |
| 1db60 | 6b 44 65 6c 74 61 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 65 76 65 6e 74 20 28 | kDelta"............(push.event.( |
| 1db80 | 67 65 74 68 61 73 68 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 79 6c 6f 61 64 20 3a 63 6f 6e 74 | gethash.(plist-get.payload.:cont |
| 1dba0 | 65 6e 74 42 6c 6f 63 6b 49 6e 64 65 78 29 20 62 6c 6f 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 | entBlockIndex).blocks)))........ |
| 1dbc0 | 20 20 20 28 22 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 53 74 6f 70 22 0a 20 20 20 20 20 20 20 20 20 | ...("contentBlockStop".......... |
| 1dbe0 | 20 20 28 6c 65 74 2a 20 28 28 62 6c 6f 63 6b 2d 69 6e 64 65 78 20 28 70 6c 69 73 74 2d 67 65 74 | ..(let*.((block-index.(plist-get |
| 1dc00 | 20 70 61 79 6c 6f 61 64 20 3a 63 6f 6e 74 65 6e 74 42 6c 6f 63 6b 49 6e 64 65 78 29 29 0a 20 20 | .payload.:contentBlockIndex))... |
| 1dc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c 6f 63 6b 2d 65 76 65 6e 74 73 20 28 6e | ................(block-events.(n |
| 1dc40 | 72 65 76 65 72 73 65 20 28 67 65 74 68 61 73 68 20 62 6c 6f 63 6b 2d 69 6e 64 65 78 20 62 6c 6f | reverse.(gethash.block-index.blo |
| 1dc60 | 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 20 | cks)))...................(start. |
| 1dc80 | 28 63 61 72 20 62 6c 6f 63 6b 2d 65 76 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (car.block-events))............. |
| 1dca0 | 20 20 20 20 20 20 28 64 65 6c 74 61 73 20 28 63 64 72 20 62 6c 6f 63 6b 2d 65 76 65 6e 74 73 29 | ......(deltas.(cdr.block-events) |
| 1dcc0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 74 6f 6f 6c | ))..............(when-let.((tool |
| 1dce0 | 2d 75 73 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 73 74 61 72 74 20 27 28 3a 70 61 | -use.(map-nested-elt.start.'(:pa |
| 1dd00 | 79 6c 6f 61 64 20 3a 73 74 61 72 74 20 3a 74 6f 6f 6c 55 73 65 29 29 29 29 0a 20 20 20 20 20 20 | yload.:start.:toolUse))))....... |
| 1dd20 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f | .........(let.((id.(plist-get.to |
| 1dd40 | 6f 6c 2d 75 73 65 20 3a 74 6f 6f 6c 55 73 65 49 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ol-use.:toolUseId))............. |
| 1dd60 | 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 | .........(name.(plist-get.tool-u |
| 1dd80 | 73 65 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 | se.:name))...................... |
| 1dda0 | 28 69 6e 70 75 74 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 0a | (input.(gptel--json-read-string. |
| 1ddc0 | 20 20 20 20 20 20 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 | .............................(ma |
| 1dde0 | 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 20 20 20 20 20 20 | pconcat......................... |
| 1de00 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 64 65 6c 74 61 29 20 28 6d 61 70 2d 6e 65 73 74 65 | ......(lambda.(delta).(map-neste |
| 1de20 | 64 2d 65 6c 74 20 64 65 6c 74 61 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 64 65 6c 74 61 20 3a 74 | d-elt.delta.'(:payload.:delta.:t |
| 1de40 | 6f 6f 6c 55 73 65 20 3a 69 6e 70 75 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | oolUse.:input)))................ |
| 1de60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 74 61 73 29 29 29 29 0a 20 20 20 20 20 20 | ...............deltas))))....... |
| 1de80 | 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(push................ |
| 1dea0 | 20 20 20 28 6c 69 73 74 20 3a 74 6f 6f 6c 55 73 65 20 28 6c 69 73 74 20 3a 69 6e 70 75 74 20 69 | ...(list.:toolUse.(list.:input.i |
| 1dec0 | 6e 70 75 74 20 3a 6e 61 6d 65 20 6e 61 6d 65 20 3a 74 6f 6f 6c 55 73 65 49 64 20 69 64 29 29 0a | nput.:name.name.:toolUseId.id)). |
| 1dee0 | 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 73 29 29 29 0a 20 20 | ..................contents)))... |
| 1df00 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 74 65 78 74 73 20 28 64 65 | ...........(when-let.((texts.(de |
| 1df20 | 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 64 29 20 28 6d 61 70 2d | lq.nil.(mapcar.(lambda.(d).(map- |
| 1df40 | 6e 65 73 74 65 64 2d 65 6c 74 20 64 20 27 28 3a 70 61 79 6c 6f 61 64 20 3a 64 65 6c 74 61 20 3a | nested-elt.d.'(:payload.:delta.: |
| 1df60 | 74 65 78 74 29 29 29 20 64 65 6c 74 61 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | text))).deltas)))).............. |
| 1df80 | 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 65 78 74 20 28 61 70 70 6c 79 20 23 27 63 6f 6e | ..(push.(list.:text.(apply.#'con |
| 1dfa0 | 63 61 74 20 74 65 78 74 73 29 29 20 63 6f 6e 74 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 | cat.texts)).contents)).......... |
| 1dfc0 | 20 20 20 20 3b 3b 20 43 75 72 72 65 6e 74 6c 79 20 77 65 20 64 69 73 63 61 72 64 20 61 6e 79 20 | ....;;.Currently.we.discard.any. |
| 1dfe0 | 72 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 20 62 75 74 20 74 68 69 73 20 77 6f 75 6c 64 | reasoning.content.but.this.would |
| 1e000 | 20 62 65 20 74 68 65 20 73 70 6f 74 20 74 6f 20 68 61 6e 64 6c 65 20 69 74 0a 20 20 20 20 20 20 | .be.the.spot.to.handle.it....... |
| 1e020 | 20 20 20 20 20 20 20 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 65 72 72 6f 72 20 22 55 | .......))...........(_.(error."U |
| 1e040 | 6e 65 78 70 65 63 74 65 64 20 65 76 65 6e 74 2d 74 79 70 65 20 25 53 22 20 65 76 65 6e 74 2d 74 | nexpected.event-type.%S".event-t |
| 1e060 | 79 70 65 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 72 6f 6c 65 20 3a 63 | ype))))).....(list.:role.role.:c |
| 1e080 | 6f 6e 74 65 6e 74 20 28 76 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e | ontent.(vconcat.(nreverse.conten |
| 1e0a0 | 74 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 | ts)))))..(cl-defmethod.gptel--pa |
| 1e0c0 | 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 65 64 72 | rse-buffer.((_backend.gptel-bedr |
| 1e0e0 | 6f 63 6b 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 50 | ock).&optional.max-entries)..."P |
| 1e100 | 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 74 75 72 6e 20 61 | arse.current.buffer.and.return.a |
| 1e120 | 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 73 20 66 6f 72 20 42 65 64 72 | .list.of.prompt.objects.for.Bedr |
| 1e140 | 6f 63 6b 2e 0a 0a 4d 41 58 2d 45 4e 54 52 49 45 53 20 69 73 20 74 68 65 20 6d 61 78 69 6d 75 6d | ock...MAX-ENTRIES.is.the.maximum |
| 1e160 | 20 6e 75 6d 62 65 72 20 6f 66 20 70 72 6f 6d 70 74 73 20 74 6f 20 69 6e 63 6c 75 64 65 2e 22 0a | .number.of.prompts.to.include.". |
| 1e180 | 20 20 28 75 6e 6c 65 73 73 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 73 65 74 71 20 6d 61 78 2d | ..(unless.max-entries.(setq.max- |
| 1e1a0 | 65 6e 74 72 69 65 73 20 6d 6f 73 74 2d 70 6f 73 69 74 69 76 65 2d 66 69 78 6e 75 6d 29 29 0a 20 | entries.most-positive-fixnum)).. |
| 1e1c0 | 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 6e 69 6c 29 20 28 70 72 65 76 2d 70 74 20 28 70 | .(let.((prompts.nil).(prev-pt.(p |
| 1e1e0 | 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 28 61 | oint)).........(include-media.(a |
| 1e200 | 6e 64 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 | nd.gptel-track-media.(gptel--mod |
| 1e220 | 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 29 29 29 0a 20 20 20 20 28 63 6c 2d | el-capable-p.'media)))).....(cl- |
| 1e240 | 66 6c 65 74 20 28 28 63 61 70 74 75 72 65 2d 70 72 6f 6d 70 74 20 28 72 6f 6c 65 20 62 65 67 20 | flet.((capture-prompt.(role.beg. |
| 1e260 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e | end).................(let*.((con |
| 1e280 | 74 65 6e 74 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 | tent.(if.include-media.......... |
| 1e2a0 | 20 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 62 | ........................(gptel-b |
| 1e2c0 | 65 64 72 6f 63 6b 2d 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 | edrock--parse-multipart......... |
| 1e2e0 | 20 20 20 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 |
| 1e300 | 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 62 | --parse-media-links.major-mode.b |
| 1e320 | 65 67 20 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 | eg.end))........................ |
| 1e340 | 20 20 20 20 20 20 20 20 20 20 60 5b 28 3a 74 65 78 74 20 2c 28 67 70 74 65 6c 2d 2d 74 72 69 6d | ..........`[(:text.,(gptel--trim |
| 1e360 | 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -prefixes....................... |
| 1e380 | 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 62 | .....................(buffer-sub |
| 1e3a0 | 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 29 29 29 5d | string-no-properties.beg.end)))] |
| 1e3c0 | 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 70 72 6f 6d 70 | ))........................(promp |
| 1e3e0 | 74 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 72 6f 6c 65 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 | t.(list.:role.role.:content.cont |
| 1e400 | 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 28 70 75 73 68 20 70 | ent)))...................(push.p |
| 1e420 | 72 6f 6d 70 74 20 70 72 6f 6d 70 74 73 29 29 29 29 0a 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 | rompt.prompts))))........(if.(or |
| 1e440 | 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 65 | .gptel-mode.gptel-track-response |
| 1e460 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 3e 20 6d 61 78 2d 65 | )...........(while.(and.(>.max-e |
| 1e480 | 6e 74 72 69 65 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntries.0)....................... |
| 1e4a0 | 28 2f 3d 20 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 | (/=.prev-pt.(point-min))........ |
| 1e4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 65 76 69 | ...............(goto-char.(previ |
| 1e4e0 | 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 | ous-single-property-change...... |
| 1e500 | 20 20 20 20 20 20 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 |
| 1e520 | 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 | int).'gptel.nil.(point-min)))).. |
| 1e540 | 20 20 20 20 20 20 20 20 20 20 20 28 63 61 70 74 75 72 65 2d 70 72 6f 6d 70 74 20 28 70 63 61 73 | ...........(capture-prompt.(pcas |
| 1e560 | 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 |
| 1e580 | 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel)............................ |
| 1e5a0 | 20 20 20 28 27 72 65 73 70 6f 6e 73 65 20 22 61 73 73 69 73 74 61 6e 74 22 29 0a 20 20 20 20 20 | ...('response."assistant")...... |
| 1e5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 20 22 | .........................('nil." |
| 1e5e0 | 75 73 65 72 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 | user"))......................... |
| 1e600 | 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ....(point).prev-pt)............ |
| 1e620 | 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 20 20 20 20 20 20 | .(setq.prev-pt.(point))......... |
| 1e640 | 20 20 20 20 28 63 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 | ....(cl-decf.max-entries))...... |
| 1e660 | 20 20 20 28 63 61 70 74 75 72 65 2d 70 72 6f 6d 70 74 20 22 75 73 65 72 22 20 28 70 6f 69 6e 74 | ...(capture-prompt."user".(point |
| 1e680 | 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 | -min).(point-max))).......prompt |
| 1e6a0 | 73 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 | s)))..(defconst.gptel-bedrock--i |
| 1e6c0 | 6d 61 67 65 2d 66 6f 72 6d 61 74 73 0a 20 20 27 28 28 22 69 6d 61 67 65 2f 6a 70 67 22 20 2e 20 | mage-formats...'(("image/jpg"... |
| 1e6e0 | 22 6a 70 65 67 22 29 0a 20 20 20 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 2e 20 22 6a 70 65 | "jpeg").....("image/jpeg"..."jpe |
| 1e700 | 67 22 29 0a 20 20 20 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 2e 20 22 70 6e 67 22 29 0a 20 20 | g").....("image/png"..."png")... |
| 1e720 | 20 20 28 22 69 6d 61 67 65 2f 67 69 66 22 20 2e 20 22 67 69 66 22 29 0a 20 20 20 20 28 22 69 6d | ..("image/gif"..."gif").....("im |
| 1e740 | 61 67 65 2f 77 65 62 70 22 20 2e 20 22 77 65 62 70 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d | age/webp"..."webp"))..."Map.of.m |
| 1e760 | 69 6d 65 20 74 79 70 65 20 74 6f 20 69 6d 61 67 65 20 66 6f 72 6d 61 74 73 20 61 73 20 75 73 65 | ime.type.to.image.formats.as.use |
| 1e780 | 64 20 69 6e 20 41 57 53 27 73 20 49 6d 61 67 65 42 6c 6f 63 6b 2e 22 29 0a 0a 28 64 65 66 63 6f | d.in.AWS's.ImageBlock.")..(defco |
| 1e7a0 | 6e 73 74 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 64 6f 63 2d 66 6f 72 6d 61 74 73 0a 20 | nst.gptel-bedrock--doc-formats.. |
| 1e7c0 | 20 27 28 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 2e 20 22 70 64 66 22 29 0a 20 | .'(("application/pdf"..."pdf").. |
| 1e7e0 | 20 20 20 28 22 74 65 78 74 2f 63 73 76 22 20 2e 20 22 63 73 76 22 29 0a 20 20 20 20 28 22 61 70 | ...("text/csv"..."csv").....("ap |
| 1e800 | 70 6c 69 63 61 74 69 6f 6e 2f 6d 73 77 6f 72 64 22 20 2e 20 22 64 6f 63 22 29 0a 20 20 20 20 28 | plication/msword"..."doc").....( |
| 1e820 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 6f 70 65 6e 78 6d 6c 66 6f 72 6d 61 74 73 2d | "application/vnd.openxmlformats- |
| 1e840 | 6f 66 66 69 63 65 64 6f 63 75 6d 65 6e 74 2e 77 6f 72 64 70 72 6f 63 65 73 73 69 6e 67 6d 6c 2e | officedocument.wordprocessingml. |
| 1e860 | 64 6f 63 75 6d 65 6e 74 22 20 2e 20 22 64 6f 63 78 22 29 0a 20 20 20 20 28 22 61 70 70 6c 69 63 | document"..."docx").....("applic |
| 1e880 | 61 74 69 6f 6e 2f 76 6e 64 2e 6d 73 2d 65 78 63 65 6c 22 20 2e 20 22 78 6c 73 22 29 0a 20 20 20 | ation/vnd.ms-excel"..."xls").... |
| 1e8a0 | 20 28 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 76 6e 64 2e 6f 70 65 6e 78 6d 6c 66 6f 72 6d 61 74 | .("application/vnd.openxmlformat |
| 1e8c0 | 73 2d 6f 66 66 69 63 65 64 6f 63 75 6d 65 6e 74 2e 73 70 72 65 61 64 73 68 65 65 74 6d 6c 2e 73 | s-officedocument.spreadsheetml.s |
| 1e8e0 | 68 65 65 74 22 20 2e 20 22 78 6c 73 78 22 29 0a 20 20 20 20 28 22 74 65 78 74 2f 68 74 6d 6c 22 | heet"..."xlsx").....("text/html" |
| 1e900 | 20 2e 20 22 68 74 6d 6c 22 29 0a 20 20 20 20 28 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 2e 20 22 | ..."html").....("text/plain"..." |
| 1e920 | 74 78 74 22 29 0a 20 20 20 20 28 22 74 65 78 74 2f 6d 61 72 6b 64 6f 77 6e 22 20 2e 20 22 6d 64 | txt").....("text/markdown"..."md |
| 1e940 | 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d 69 6d 65 20 74 79 70 65 20 74 6f 20 64 6f 63 75 6d | "))..."Map.of.mime.type.to.docum |
| 1e960 | 65 6e 74 20 66 6f 72 6d 61 74 73 20 61 73 20 75 73 65 64 20 69 6e 20 41 57 53 27 73 20 44 6f 63 | ent.formats.as.used.in.AWS's.Doc |
| 1e980 | 75 6d 65 6e 74 42 6c 6f 63 6b 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 | umentBlock.")..(defun.gptel-bedr |
| 1e9a0 | 6f 63 6b 2d 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 20 22 | ock--parse-multipart.(parts)..." |
| 1e9c0 | 43 6f 6e 76 65 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 | Convert.a.multipart.prompt.PARTS |
| 1e9e0 | 20 74 6f 20 74 68 65 20 41 57 53 20 42 65 64 72 6f 63 6b 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a | .to.the.AWS.Bedrock.API.format.. |
| 1ea00 | 0a 54 68 65 20 69 6e 70 75 74 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 65 78 74 20 61 6e 64 | .The.input.is.a.list.of.text.and |
| 1ea20 | 20 6d 65 64 69 61 20 70 6c 69 73 74 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 3a 0a 20 28 28 3a 74 | .media.plists.of.the.form:..((:t |
| 1ea40 | 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f | ext.\"some.text\")...(:media.\"/ |
| 1ea60 | 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 | path/to/media.png\".:mime.\"imag |
| 1ea80 | 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 | e/png\")...(:text.\"More.text\") |
| 1eaa0 | 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 6e | )...The.output.is.a.vector.of.en |
| 1eac0 | 74 72 69 65 73 20 69 6e 20 42 65 64 72 6f 63 6b 20 41 50 49 20 66 6f 72 6d 61 74 2e 22 0a 20 20 | tries.in.Bedrock.API.format."... |
| 1eae0 | 28 74 68 72 65 61 64 2d 6c 61 73 74 20 70 61 72 74 73 0a 20 20 20 20 28 63 6c 2d 6d 61 70 6c 69 | (thread-last.parts.....(cl-mapli |
| 1eb00 | 73 74 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 61 69 6c 29 0a 20 20 20 20 20 20 20 28 6c | st......(lambda.(tail)........(l |
| 1eb20 | 65 74 2a 20 28 28 70 61 72 74 20 28 63 61 72 20 74 61 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 | et*.((part.(car.tail)).......... |
| 1eb40 | 20 20 20 20 20 28 74 65 78 74 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 | .....(text.(plist-get.part.:text |
| 1eb60 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6d 65 20 28 70 6c 69 73 74 2d 67 65 | ))...............(mime.(plist-ge |
| 1eb80 | 74 20 70 61 72 74 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 | t.part.:mime))...............(me |
| 1eba0 | 64 69 61 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 29 0a 20 20 20 | dia.(plist-get.part.:media)).... |
| 1ebc0 | 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 66 69 6c 65 20 28 70 6c 69 73 74 2d 67 65 74 20 | ...........(textfile.(plist-get. |
| 1ebe0 | 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | part.:textfile))...............f |
| 1ec00 | 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 | ormat)..........(cond........... |
| 1ec20 | 28 74 65 78 74 20 28 77 68 65 6e 20 28 6f 72 20 28 65 71 20 70 61 72 74 20 28 63 61 72 20 70 61 | (text.(when.(or.(eq.part.(car.pa |
| 1ec40 | 72 74 73 29 29 20 28 6e 75 6c 6c 20 28 63 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 | rts)).(null.(cdr.tail)))........ |
| 1ec60 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d 2d 74 72 | ...........(setq.text.(gptel--tr |
| 1ec80 | 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | im-prefixes.text)))............. |
| 1eca0 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 74 65 78 74 | ....(unless.(string-empty-p.text |
| 1ecc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 74 65 78 74 20 2c 74 65 78 | )...................`(:text.,tex |
| 1ece0 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 | t)))...........(media........... |
| 1ed00 | 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 65 74 71 20 66 6f 72 6d 61 74 | .(cond.............((setq.format |
| 1ed20 | 20 28 61 73 73 6f 63 20 6d 69 6d 65 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 69 6d 61 67 | .(assoc.mime.gptel-bedrock--imag |
| 1ed40 | 65 2d 66 6f 72 6d 61 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 69 6d 61 67 | e-formats))..............`(:imag |
| 1ed60 | 65 20 28 3a 66 6f 72 6d 61 74 20 2c 28 63 64 72 20 66 6f 72 6d 61 74 29 20 3a 73 6f 75 72 63 65 | e.(:format.,(cdr.format).:source |
| 1ed80 | 20 28 3a 62 79 74 65 73 20 2c 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 | .(:bytes.,(gptel--base64-encode. |
| 1eda0 | 6d 65 64 69 61 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 73 65 74 71 20 66 6f | media))))).............((setq.fo |
| 1edc0 | 72 6d 61 74 20 28 61 73 73 6f 63 20 6d 69 6d 65 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d | rmat.(assoc.mime.gptel-bedrock-- |
| 1ede0 | 64 6f 63 2d 66 6f 72 6d 61 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 64 6f | doc-formats))..............`(:do |
| 1ee00 | 63 75 6d 65 6e 74 20 28 3a 66 6f 72 6d 61 74 20 2c 28 63 64 72 20 66 6f 72 6d 61 74 29 0a 20 20 | cument.(:format.,(cdr.format)... |
| 1ee20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 2c 28 | ........................:name.,( |
| 1ee40 | 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 6d 65 64 69 61 29 0a 20 20 | file-name-nondirectory.media)... |
| 1ee60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 6f 75 72 63 65 20 | ........................:source. |
| 1ee80 | 28 3a 62 79 74 65 73 20 2c 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d | (:bytes.,(gptel--base64-encode.m |
| 1eea0 | 65 64 69 61 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 | edia))))).............(t.(error. |
| 1eec0 | 22 55 6e 73 75 70 70 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 20 25 73 20 66 6f 72 20 41 57 | "Unsupported.MIME.type.%s.for.AW |
| 1eee0 | 53 20 42 65 64 72 6f 63 6b 22 20 6d 69 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 | S.Bedrock".mime))))...........(t |
| 1ef00 | 65 78 74 66 69 6c 65 20 60 28 3a 74 65 78 74 20 2c 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 | extfile.`(:text.,(with-temp-buff |
| 1ef20 | 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er.............................. |
| 1ef40 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 74 65 78 | ..(gptel--insert-file-string.tex |
| 1ef60 | 74 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tfile).......................... |
| 1ef80 | 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 29 29 29 0a 20 20 20 | ......(buffer-string)))))))).... |
| 1efa0 | 20 28 64 65 6c 71 20 6e 69 6c 29 0a 20 20 20 20 28 76 63 6f 6e 63 61 74 29 29 29 0a 0a 3b 3b 20 | .(delq.nil).....(vconcat)))..;;. |
| 1efc0 | 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 6e 6f 74 20 6e 65 65 64 65 64 20 | gptel--inject-prompt.not.needed. |
| 1efe0 | 73 69 6e 63 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e | since.the.default.implementation |
| 1f000 | 20 77 6f 72 6b 73 20 68 65 72 65 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c | .works.here..(cl-defmethod.gptel |
| 1f020 | 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 28 5f 62 61 63 6b 65 6e 64 20 | --parse-tool-results.((_backend. |
| 1f040 | 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 20 74 6f 6f 6c 2d 75 73 65 2d 72 65 71 75 65 73 74 73 | gptel-bedrock).tool-use-requests |
| 1f060 | 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 | )..."Return.a.backend-appropriat |
| 1f080 | 65 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 | e.prompt.containing.tool.call.re |
| 1f0a0 | 73 75 6c 74 73 2e 0a 0a 54 4f 4f 4c 2d 55 53 45 2d 52 45 51 55 45 53 54 53 20 69 73 20 61 20 6c | sults...TOOL-USE-REQUESTS.is.a.l |
| 1f0c0 | 69 73 74 20 6f 66 20 72 65 71 75 65 73 74 20 70 6c 69 73 74 73 20 74 68 61 74 20 68 61 76 65 20 | ist.of.request.plists.that.have. |
| 1f0e0 | 62 65 65 6e 0a 63 6f 6d 70 6c 65 74 65 64 2e 20 20 52 65 74 75 72 6e 73 20 61 20 73 69 6e 67 6c | been.completed...Returns.a.singl |
| 1f100 | 65 20 70 72 6f 6d 70 74 20 6f 62 6a 65 63 74 20 74 6f 20 69 6e 6a 65 63 74 20 69 6e 74 6f 20 74 | e.prompt.object.to.inject.into.t |
| 1f120 | 68 65 0a 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 22 0a 20 20 28 6c 69 73 74 0a 20 20 20 3a 72 6f | he.conversation."...(list....:ro |
| 1f140 | 6c 65 20 22 75 73 65 72 22 0a 20 20 20 3a 63 6f 6e 74 65 6e 74 0a 20 20 20 28 76 63 6f 6e 63 61 | le."user"....:content....(vconca |
| 1f160 | 74 0a 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c | t.....(mapcar......(lambda.(tool |
| 1f180 | 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 60 28 3a 74 6f 6f 6c 52 65 73 75 6c 74 20 28 3a 74 6f | -call)........`(:toolResult.(:to |
| 1f1a0 | 6f 6c 55 73 65 49 64 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 | olUseId.,(plist-get.tool-call.:i |
| 1f1c0 | 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 3a 73 74 61 74 75 73 | d).......................:status |
| 1f1e0 | 20 22 73 75 63 63 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."success"...................... |
| 1f200 | 20 3a 63 6f 6e 74 65 6e 74 20 5b 28 3a 74 65 78 74 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 74 6f | .:content.[(:text.,(plist-get.to |
| 1f220 | 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 5d 29 29 29 0a 20 20 20 20 20 74 6f 6f 6c 2d | ol-call.:result))])))......tool- |
| 1f240 | 75 73 65 2d 72 65 71 75 65 73 74 73 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | use-requests))))..(defvar.gptel- |
| 1f260 | 62 65 64 72 6f 63 6b 2d 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 61 63 68 65 20 6e 69 6c 0a 20 | bedrock--aws-profile-cache.nil.. |
| 1f280 | 20 22 43 61 63 68 65 20 66 6f 72 20 41 57 53 20 70 72 6f 66 69 6c 65 20 63 72 65 64 65 6e 74 69 | ."Cache.for.AWS.profile.credenti |
| 1f2a0 | 61 6c 73 20 69 6e 20 74 68 65 20 66 6f 72 6d 20 6f 66 20 28 50 52 4f 46 49 4c 45 20 2e 20 43 52 | als.in.the.form.of.(PROFILE...CR |
| 1f2c0 | 45 44 53 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 66 | EDS).")..(defun.gptel-bedrock--f |
| 1f2e0 | 65 74 63 68 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 20 28 70 72 | etch-aws-profile-credentials.(pr |
| 1f300 | 6f 66 69 6c 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6c 65 61 72 2d 63 61 63 68 65 29 0a 20 20 22 | ofile.&optional.clear-cache)..." |
| 1f320 | 46 65 74 63 68 20 26 20 63 61 63 68 65 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 6f | Fetch.&.cache.AWS.credentials.fo |
| 1f340 | 72 20 50 52 4f 46 49 4c 45 20 75 73 69 6e 67 20 61 77 73 2d 63 6c 69 2e 0a 0a 4e 6f 6e 2d 6e 69 | r.PROFILE.using.aws-cli...Non-ni |
| 1f360 | 6c 20 43 4c 45 41 52 2d 43 41 43 48 45 20 77 69 6c 6c 20 72 65 66 72 65 73 68 20 63 72 65 64 65 | l.CLEAR-CACHE.will.refresh.crede |
| 1f380 | 6e 74 69 61 6c 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 72 65 64 73 2d 6a 73 6f 6e 0a 20 20 | ntials."...(let*.((creds-json... |
| 1f3a0 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 65 6c 6c 20 28 6f 72 20 28 61 73 73 6f 63 20 | .........(let.((cell.(or.(assoc. |
| 1f3c0 | 70 72 6f 66 69 6c 65 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 77 73 2d 70 72 6f 66 69 | profile.gptel-bedrock--aws-profi |
| 1f3e0 | 6c 65 2d 63 61 63 68 65 20 23 27 73 74 72 69 6e 67 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | le-cache.#'string=)............. |
| 1f400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 70 75 73 68 20 28 63 6f 6e 73 20 | ...............(car.(push.(cons. |
| 1f420 | 70 72 6f 66 69 6c 65 20 6e 69 6c 29 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 61 77 73 2d | profile.nil).gptel-bedrock--aws- |
| 1f440 | 70 72 6f 66 69 6c 65 2d 63 61 63 68 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | profile-cache))))).............. |
| 1f460 | 28 6f 72 20 28 61 6e 64 20 28 6e 6f 74 20 63 6c 65 61 72 2d 63 61 63 68 65 29 20 28 63 64 72 20 | (or.(and.(not.clear-cache).(cdr. |
| 1f480 | 63 65 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 63 | cell))..................(setf.(c |
| 1f4a0 | 64 72 20 63 65 6c 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 | dr.cell)........................ |
| 1f4c0 | 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 09 09 20 20 20 20 20 20 20 20 20 20 20 28 | (with-temp-buffer..............( |
| 1f4e0 | 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 20 22 61 77 73 | unless.(zerop.(call-process."aws |
| 1f500 | 22 20 6e 69 6c 20 74 20 6e 69 6c 20 22 63 6f 6e 66 69 67 75 72 65 22 20 22 65 78 70 6f 72 74 2d | ".nil.t.nil."configure"."export- |
| 1f520 | 63 72 65 64 65 6e 74 69 61 6c 73 22 0a 09 09 09 09 09 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | credentials".................... |
| 1f540 | 20 20 28 66 6f 72 6d 61 74 20 22 2d 2d 70 72 6f 66 69 6c 65 3d 25 73 22 20 70 72 6f 66 69 6c 65 | ..(format."--profile=%s".profile |
| 1f560 | 29 29 29 0a 09 09 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 | )))................(user-error." |
| 1f580 | 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 66 72 | Failed.to.get.AWS.credentials.fr |
| 1f5a0 | 6f 6d 20 70 72 6f 66 69 6c 65 22 29 29 0a 09 09 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 70 | om.profile"))............(json-p |
| 1f5c0 | 61 72 73 65 2d 73 74 72 69 6e 67 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 29 | arse-string.(buffer-string)))))) |
| 1f5e0 | 29 0a 09 20 28 65 78 70 69 72 61 74 69 6f 6e 20 28 69 66 2d 6c 65 74 20 28 65 78 70 20 28 67 65 | )...(expiration.(if-let.(exp.(ge |
| 1f600 | 74 68 61 73 68 20 22 45 78 70 69 72 61 74 69 6f 6e 22 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 0a | thash."Expiration".creds-json)). |
| 1f620 | 09 09 09 20 20 20 20 20 28 64 61 74 65 2d 74 6f 2d 74 69 6d 65 20 65 78 70 29 29 29 29 0a 20 20 | ........(date-to-time.exp))))... |
| 1f640 | 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 28 63 75 72 | ..(cond.......((time-less-p.(cur |
| 1f660 | 72 65 6e 74 2d 74 69 6d 65 29 20 65 78 70 69 72 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 28 6c | rent-time).expiration)........(l |
| 1f680 | 65 74 20 28 28 61 63 63 65 73 73 2d 6b 65 79 20 28 67 65 74 68 61 73 68 20 22 41 63 63 65 73 73 | et.((access-key.(gethash."Access |
| 1f6a0 | 4b 65 79 49 64 22 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 0a 09 20 20 20 20 20 28 73 65 63 72 65 | KeyId".creds-json)).......(secre |
| 1f6c0 | 74 2d 6b 65 79 20 28 67 65 74 68 61 73 68 20 22 53 65 63 72 65 74 41 63 63 65 73 73 4b 65 79 22 | t-key.(gethash."SecretAccessKey" |
| 1f6e0 | 20 63 72 65 64 73 2d 6a 73 6f 6e 29 29 0a 09 20 20 20 20 20 28 73 65 73 73 69 6f 6e 2d 74 6f 6b | .creds-json)).......(session-tok |
| 1f700 | 65 6e 20 28 67 65 74 68 61 73 68 20 22 53 65 73 73 69 6f 6e 54 6f 6b 65 6e 22 20 63 72 65 64 73 | en.(gethash."SessionToken".creds |
| 1f720 | 2d 6a 73 6f 6e 29 29 29 0a 09 20 28 63 6c 2d 76 61 6c 75 65 73 20 61 63 63 65 73 73 2d 6b 65 79 | -json)))...(cl-values.access-key |
| 1f740 | 20 73 65 63 72 65 74 2d 6b 65 79 20 73 65 73 73 69 6f 6e 2d 74 6f 6b 65 6e 29 29 29 0a 20 20 20 | .secret-key.session-token))).... |
| 1f760 | 20 20 20 28 28 6e 6f 74 20 63 6c 65 61 72 2d 63 61 63 68 65 29 0a 20 20 20 20 20 20 20 28 67 70 | ...((not.clear-cache)........(gp |
| 1f780 | 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 66 65 74 63 68 2d 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 | tel-bedrock--fetch-aws-profile-c |
| 1f7a0 | 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 66 69 6c 65 20 74 29 29 0a 20 20 20 20 20 20 28 74 20 | redentials.profile.t)).......(t. |
| 1f7c0 | 28 75 73 65 72 2d 65 72 72 6f 72 20 22 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 20 65 78 70 | (user-error."AWS.credentials.exp |
| 1f7e0 | 69 72 65 64 20 66 6f 72 20 70 72 6f 66 69 6c 65 3a 20 25 73 22 20 70 72 6f 66 69 6c 65 29 29 29 | ired.for.profile:.%s".profile))) |
| 1f800 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 67 65 74 2d 63 72 | ))..(defun.gptel-bedrock--get-cr |
| 1f820 | 65 64 65 6e 74 69 61 6c 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 41 57 53 20 63 | edentials.()..."Return.the.AWS.c |
| 1f840 | 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 75 73 65 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 | redentials.to.use.for.the.reques |
| 1f860 | 74 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 32 2d 33 20 65 6c 65 6d 65 6e | t...Returns.a.list.of.2-3.elemen |
| 1f880 | 74 73 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 61 20 73 65 73 73 69 | ts,.depending.on.whether.a.sessi |
| 1f8a0 | 6f 6e 0a 74 6f 6b 65 6e 20 69 73 20 6e 65 65 64 65 64 2c 20 77 69 74 68 20 74 68 69 73 20 66 6f | on.token.is.needed,.with.this.fo |
| 1f8c0 | 72 6d 3a 20 28 41 57 53 5f 41 43 43 45 53 53 5f 4b 45 59 5f 49 44 20 41 57 53 5f 53 45 43 52 45 | rm:.(AWS_ACCESS_KEY_ID.AWS_SECRE |
| 1f8e0 | 54 5f 41 43 43 45 53 53 5f 4b 45 59 0a 41 57 53 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e 29 2e | T_ACCESS_KEY.AWS_SESSION_TOKEN). |
| 1f900 | 0a 0a 43 6f 6e 76 65 6e 69 65 6e 74 20 74 6f 20 75 73 65 20 77 69 74 68 20 60 63 6c 2d 6d 75 6c | ..Convenient.to.use.with.`cl-mul |
| 1f920 | 74 69 70 6c 65 2d 76 61 6c 75 65 2d 62 69 6e 64 27 22 0a 20 20 28 6c 65 74 20 28 28 6b 65 79 2d | tiple-value-bind'"...(let.((key- |
| 1f940 | 69 64 20 28 67 65 74 65 6e 76 20 22 41 57 53 5f 41 43 43 45 53 53 5f 4b 45 59 5f 49 44 22 29 29 | id.(getenv."AWS_ACCESS_KEY_ID")) |
| 1f960 | 0a 20 20 20 20 20 20 20 20 28 73 65 63 72 65 74 2d 6b 65 79 20 28 67 65 74 65 6e 76 20 22 41 57 | .........(secret-key.(getenv."AW |
| 1f980 | 53 5f 53 45 43 52 45 54 5f 41 43 43 45 53 53 5f 4b 45 59 22 29 29 0a 20 20 20 20 20 20 20 20 28 | S_SECRET_ACCESS_KEY")).........( |
| 1f9a0 | 74 6f 6b 65 6e 20 28 67 65 74 65 6e 76 20 22 41 57 53 5f 53 45 53 53 49 4f 4e 5f 54 4f 4b 45 4e | token.(getenv."AWS_SESSION_TOKEN |
| 1f9c0 | 22 29 29 0a 09 28 70 72 6f 66 69 6c 65 20 28 67 65 74 65 6e 76 20 22 41 57 53 5f 50 52 4f 46 49 | "))..(profile.(getenv."AWS_PROFI |
| 1f9e0 | 4c 45 22 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 28 28 61 6e 64 20 6b 65 79 | LE"))).....(cond.......((and.key |
| 1fa00 | 2d 69 64 20 73 65 63 72 65 74 2d 6b 65 79 29 20 28 63 6c 2d 76 61 6c 75 65 73 20 6b 65 79 2d 69 | -id.secret-key).(cl-values.key-i |
| 1fa20 | 64 20 73 65 63 72 65 74 2d 6b 65 79 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 28 28 61 6e 64 | d.secret-key.token)).......((and |
| 1fa40 | 20 70 72 6f 66 69 6c 65 29 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 66 65 74 63 68 2d | .profile).(gptel-bedrock--fetch- |
| 1fa60 | 61 77 73 2d 70 72 6f 66 69 6c 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 66 69 6c 65 29 | aws-profile-credentials.profile) |
| 1fa80 | 29 0a 20 20 20 20 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4d 69 73 73 69 6e 67 20 | ).......(t.(user-error."Missing. |
| 1faa0 | 41 57 53 20 63 72 65 64 65 6e 74 69 61 6c 73 3b 20 63 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 | AWS.credentials;.currently.only. |
| 1fac0 | 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 73 20 61 72 65 20 73 75 70 70 6f 72 | environment.variables.are.suppor |
| 1fae0 | 74 65 64 22 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b | ted")))))..(defvar.gptel-bedrock |
| 1fb00 | 2d 2d 6d 6f 64 65 6c 2d 69 64 73 0a 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 77 | --model-ids...;;.https://docs.aw |
| 1fb20 | 73 2e 61 6d 61 7a 6f 6e 2e 63 6f 6d 2f 62 65 64 72 6f 63 6b 2f 6c 61 74 65 73 74 2f 75 73 65 72 | s.amazon.com/bedrock/latest/user |
| 1fb40 | 67 75 69 64 65 2f 6d 6f 64 65 6c 73 2d 73 75 70 70 6f 72 74 65 64 2e 68 74 6d 6c 0a 20 20 27 28 | guide/models-supported.html...'( |
| 1fb60 | 28 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 20 20 20 20 2e 20 22 | (claude-sonnet-4-20250514......" |
| 1fb80 | 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 | anthropic.claude-sonnet-4-202505 |
| 1fba0 | 31 34 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 | 14-v1:0").....(claude-opus-4-202 |
| 1fbc0 | 35 30 35 31 34 20 20 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 6f | 50514........"anthropic.claude-o |
| 1fbe0 | 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 | pus-4-20250514-v1:0").....(claud |
| 1fc00 | 65 2d 33 2d 37 2d 73 6f 6e 6e 65 74 2d 32 30 32 35 30 32 31 39 20 20 2e 20 22 61 6e 74 68 72 6f | e-3-7-sonnet-20250219...."anthro |
| 1fc20 | 70 69 63 2e 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 2d 76 | pic.claude-3-7-sonnet-20250219-v |
| 1fc40 | 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 | 1:0").....(claude-3-5-sonnet-202 |
| 1fc60 | 34 31 30 32 32 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 73 | 41022...."anthropic.claude-3-5-s |
| 1fc80 | 6f 6e 6e 65 74 2d 32 30 32 34 31 30 32 32 2d 76 32 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 | onnet-20241022-v2:0").....(claud |
| 1fca0 | 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 36 32 30 20 20 2e 20 22 61 6e 74 68 72 6f | e-3-5-sonnet-20240620...."anthro |
| 1fcc0 | 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 36 32 30 2d 76 | pic.claude-3-5-sonnet-20240620-v |
| 1fce0 | 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 68 61 69 6b 75 2d 32 30 32 34 | 1:0").....(claude-3-5-haiku-2024 |
| 1fd00 | 31 30 32 32 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 35 2d 68 | 1022....."anthropic.claude-3-5-h |
| 1fd20 | 61 69 6b 75 2d 32 30 32 34 31 30 32 32 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 | aiku-20241022-v1:0").....(claude |
| 1fd40 | 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 20 20 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 | -3-opus-20240229........"anthrop |
| 1fd60 | 69 63 2e 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 2d 76 31 3a 30 22 29 | ic.claude-3-opus-20240229-v1:0") |
| 1fd80 | 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 20 20 | .....(claude-3-sonnet-20240229.. |
| 1fda0 | 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 | ...."anthropic.claude-3-sonnet-2 |
| 1fdc0 | 30 32 34 30 32 32 39 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 | 0240229-v1:0").....(claude-3-hai |
| 1fde0 | 6b 75 2d 32 30 32 34 30 33 30 37 20 20 20 20 20 2e 20 22 61 6e 74 68 72 6f 70 69 63 2e 63 6c 61 | ku-20240307......."anthropic.cla |
| 1fe00 | 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 30 33 30 37 2d 76 31 3a 30 22 29 0a 20 20 20 20 | ude-3-haiku-20240307-v1:0")..... |
| 1fe20 | 28 6d 69 73 74 72 61 6c 2d 37 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 | (mistral-7b...................." |
| 1fe40 | 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d 37 62 2d 69 6e 73 74 72 75 63 74 2d 76 30 3a 32 | mistral.mistral-7b-instruct-v0:2 |
| 1fe60 | 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 38 78 37 62 20 20 20 20 20 20 20 20 20 20 20 20 | ").....(mistral-8x7b............ |
| 1fe80 | 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 78 74 72 61 6c 2d 38 78 37 62 2d 69 6e 73 74 | ......"mistral.mixtral-8x7b-inst |
| 1fea0 | 72 75 63 74 2d 76 30 3a 31 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 | ruct-v0:1").....(mistral-large-2 |
| 1fec0 | 34 30 32 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 73 74 72 61 6c 2d | 402............"mistral.mistral- |
| 1fee0 | 6c 61 72 67 65 2d 32 34 30 32 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6d 69 73 74 72 61 6c 2d 6c | large-2402-v1:0").....(mistral-l |
| 1ff00 | 61 72 67 65 2d 32 34 30 37 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 72 61 6c 2e 6d 69 | arge-2407............"mistral.mi |
| 1ff20 | 73 74 72 61 6c 2d 6c 61 72 67 65 2d 32 34 30 37 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6d 69 73 | stral-large-2407-v1:0").....(mis |
| 1ff40 | 74 72 61 6c 2d 73 6d 61 6c 6c 2d 32 34 30 32 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 69 73 74 | tral-small-2402............"mist |
| 1ff60 | 72 61 6c 2e 6d 69 73 74 72 61 6c 2d 73 6d 61 6c 6c 2d 32 34 30 32 2d 76 31 3a 30 22 29 0a 20 20 | ral.mistral-small-2402-v1:0")... |
| 1ff80 | 20 20 28 6c 6c 61 6d 61 2d 33 2d 38 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e | ..(llama-3-8b................... |
| 1ffa0 | 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 38 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 | ."meta.llama3-8b-instruct-v1:0") |
| 1ffc0 | 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 37 30 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(llama-3-70b............... |
| 1ffe0 | 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 37 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 | ...."meta.llama3-70b-instruct-v1 |
| 20000 | 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 31 2d 38 62 20 20 20 20 20 20 20 20 20 20 | :0").....(llama-3-1-8b.......... |
| 20020 | 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 31 2d 38 62 2d 69 6e 73 74 72 75 | ........"meta.llama3-1-8b-instru |
| 20040 | 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 31 2d 37 30 62 20 20 20 20 | ct-v1:0").....(llama-3-1-70b.... |
| 20060 | 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 31 2d 37 30 62 2d | ............."meta.llama3-1-70b- |
| 20080 | 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 31 2d 34 | instruct-v1:0").....(llama-3-1-4 |
| 200a0 | 30 35 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d | 05b................"meta.llama3- |
| 200c0 | 31 2d 34 30 35 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d | 1-405b-instruct-v1:0").....(llam |
| 200e0 | 61 2d 33 2d 32 2d 31 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e | a-3-2-1b.................."meta. |
| 20100 | 6c 6c 61 6d 61 33 2d 32 2d 31 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 | llama3-2-1b-instruct-v1:0")..... |
| 20120 | 28 6c 6c 61 6d 61 2d 33 2d 32 2d 33 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 | (llama-3-2-3b.................." |
| 20140 | 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 32 2d 33 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 | meta.llama3-2-3b-instruct-v1:0") |
| 20160 | 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 32 2d 31 31 62 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(llama-3-2-11b............. |
| 20180 | 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 32 2d 31 31 62 2d 69 6e 73 74 72 75 63 74 2d | ...."meta.llama3-2-11b-instruct- |
| 201a0 | 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 32 2d 39 30 62 20 20 20 20 20 20 20 | v1:0").....(llama-3-2-90b....... |
| 201c0 | 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 32 2d 39 30 62 2d 69 6e 73 | .........."meta.llama3-2-90b-ins |
| 201e0 | 74 72 75 63 74 2d 76 31 3a 30 22 29 0a 20 20 20 20 28 6c 6c 61 6d 61 2d 33 2d 33 2d 37 30 62 20 | truct-v1:0").....(llama-3-3-70b. |
| 20200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 22 6d 65 74 61 2e 6c 6c 61 6d 61 33 2d 33 2d 37 | ................"meta.llama3-3-7 |
| 20220 | 30 62 2d 69 6e 73 74 72 75 63 74 2d 76 31 3a 30 22 29 29 0a 20 20 22 4d 61 70 20 6f 66 20 6d 6f | 0b-instruct-v1:0"))..."Map.of.mo |
| 20240 | 64 65 6c 20 6e 61 6d 65 20 74 6f 20 62 65 64 72 6f 63 6b 20 69 64 2e 0a 0a 49 44 73 20 63 61 6e | del.name.to.bedrock.id...IDs.can |
| 20260 | 20 62 65 20 61 64 64 65 64 20 6f 72 20 72 65 70 6c 61 63 65 64 20 62 79 20 63 61 6c 6c 69 6e 67 | .be.added.or.replaced.by.calling |
| 20280 | 0a 5c 28 70 75 73 68 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 20 2e 20 5c 22 6d 6f 64 65 6c 2d 69 64 | .\(push.(model-name...\"model-id |
| 202a0 | 5c 22 29 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 29 2e 22 29 | \").gptel-bedrock--model-ids).") |
| 202c0 | 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 62 65 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 0a | ..(defvar.gptel--bedrock-models. |
| 202e0 | 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 6d | ..(mapcar.#'car.gptel-bedrock--m |
| 20300 | 6f 64 65 6c 2d 69 64 73 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 41 | odel-ids)..."List.of.available.A |
| 20320 | 57 53 20 42 65 64 72 6f 63 6b 20 6d 6f 64 65 6c 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 | WS.Bedrock.models.and.associated |
| 20340 | 20 70 72 6f 70 65 72 74 69 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 | .properties.")..(defun.gptel-bed |
| 20360 | 72 6f 63 6b 2d 2d 67 65 74 2d 6d 6f 64 65 6c 2d 69 64 20 28 6d 6f 64 65 6c 20 26 6f 70 74 69 6f | rock--get-model-id.(model.&optio |
| 20380 | 6e 61 6c 20 72 65 67 69 6f 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 42 65 64 72 6f 63 | nal.region)..."Return.the.Bedroc |
| 203a0 | 6b 20 6d 6f 64 65 6c 20 49 44 20 66 6f 72 20 4d 4f 44 45 4c 2e 0a 0a 52 45 47 49 4f 4e 20 69 73 | k.model.ID.for.MODEL...REGION.is |
| 203c0 | 20 6f 6e 65 20 6f 66 20 61 70 61 63 2c 20 65 75 20 6f 72 20 75 73 2e 22 0a 20 20 28 63 6f 6e 63 | .one.of.apac,.eu.or.us."...(conc |
| 203e0 | 61 74 0a 20 20 20 28 77 68 65 6e 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 28 6f 72 20 28 6d 65 6d | at....(when.region......(or.(mem |
| 20400 | 62 65 72 20 72 65 67 69 6f 6e 20 27 28 61 70 61 63 20 65 75 20 75 73 29 29 0a 09 20 28 65 72 72 | ber.region.'(apac.eu.us))...(err |
| 20420 | 6f 72 20 22 55 6e 6b 6e 6f 77 6e 20 42 65 64 72 6f 63 6b 20 72 65 67 69 6f 6e 20 25 73 22 20 72 | or."Unknown.Bedrock.region.%s".r |
| 20440 | 65 67 69 6f 6e 29 29 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d | egion))......(concat.(symbol-nam |
| 20460 | 65 20 72 65 67 69 6f 6e 29 20 22 2e 22 29 29 0a 20 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 | e.region)."."))....(or.(alist-ge |
| 20480 | 74 20 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 6d 6f 64 65 6c 2d 69 64 73 | t.model.gptel-bedrock--model-ids |
| 204a0 | 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 29 0a 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 55 6e | .nil.nil.#'eq)........(error."Un |
| 204c0 | 6b 6e 6f 77 6e 20 42 65 64 72 6f 63 6b 20 6d 6f 64 65 6c 3a 20 25 73 22 20 6d 6f 64 65 6c 29 29 | known.Bedrock.model:.%s".model)) |
| 204e0 | 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 61 | ))..(defun.gptel-bedrock--curl-a |
| 20500 | 72 67 73 20 28 72 65 67 69 6f 6e 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 74 68 65 20 63 75 72 | rgs.(region)..."Generate.the.cur |
| 20520 | 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 67 65 74 20 61 20 62 65 64 72 6f 63 6b 20 72 65 71 | l.arguments.to.get.a.bedrock.req |
| 20540 | 75 65 73 74 20 73 69 67 6e 65 64 20 66 6f 72 20 75 73 65 20 69 6e 20 52 45 47 49 4f 4e 2e 22 0a | uest.signed.for.use.in.REGION.". |
| 20560 | 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 63 75 72 6c 2e 73 65 2f 64 6f 63 73 2f 6d 61 6e 70 61 67 | ..;;.https://curl.se/docs/manpag |
| 20580 | 65 2e 68 74 6d 6c 23 2d 2d 61 77 73 2d 73 69 67 76 34 0a 20 20 28 63 6c 2d 6d 75 6c 74 69 70 6c | e.html#--aws-sigv4...(cl-multipl |
| 205a0 | 65 2d 76 61 6c 75 65 2d 62 69 6e 64 20 28 6b 65 79 2d 69 64 20 73 65 63 72 65 74 20 74 6f 6b 65 | e-value-bind.(key-id.secret.toke |
| 205c0 | 6e 29 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 67 65 74 2d 63 72 65 64 65 6e 74 69 61 | n).(gptel-bedrock--get-credentia |
| 205e0 | 6c 73 29 0a 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 | ls).....(nconc......(list....... |
| 20600 | 22 2d 2d 75 73 65 72 22 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 25 73 22 20 6b 65 79 2d 69 64 20 | "--user".(format."%s:%s".key-id. |
| 20620 | 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 22 2d 2d 61 77 73 2d 73 69 67 76 34 22 20 28 66 6f 72 | secret)......."--aws-sigv4".(for |
| 20640 | 6d 61 74 20 22 61 77 73 3a 61 6d 7a 3a 25 73 3a 62 65 64 72 6f 63 6b 22 20 72 65 67 69 6f 6e 29 | mat."aws:amz:%s:bedrock".region) |
| 20660 | 29 0a 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 73 79 73 74 65 6d 2d 74 79 70 65 | )......(unless.(memq.system-type |
| 20680 | 20 27 28 77 69 6e 64 6f 77 73 2d 6e 74 20 6d 73 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 20 3b 3b | .'(windows-nt.ms-dos))........;; |
| 206a0 | 20 57 69 74 68 6f 75 74 20 74 68 69 73 20 63 75 72 6c 20 73 77 61 6c 6c 6f 77 73 20 74 68 65 20 | .Without.this.curl.swallows.the. |
| 206c0 | 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 6f 75 74 70 75 74 22 20 22 | output........(list."--output"." |
| 206e0 | 2f 64 65 76 2f 73 74 64 6f 75 74 22 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 0a | /dev/stdout"))......(when.token. |
| 20700 | 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 48 78 2d 61 6d 7a 2d 73 65 | .......(list.(format."-Hx-amz-se |
| 20720 | 63 75 72 69 74 79 2d 74 6f 6b 65 6e 3a 20 25 73 22 20 74 6f 6b 65 6e 29 29 29 29 29 29 0a 0a 28 | curity-token:.%s".token))))))..( |
| 20740 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 76 65 72 73 69 6f | defun.gptel-bedrock--curl-versio |
| 20760 | 6e 20 28 29 0a 20 20 22 43 68 65 63 6b 20 43 75 72 6c 20 76 65 72 73 69 6f 6e 20 72 65 71 75 69 | n.()..."Check.Curl.version.requi |
| 20780 | 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 22 0a 20 20 28 6c 65 74 2a 20 | red.for.gptel-bedrock."...(let*. |
| 207a0 | 28 28 6f 75 74 70 75 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e | ((output.(shell-command-to-strin |
| 207c0 | 67 20 22 63 75 72 6c 20 2d 2d 76 65 72 73 69 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 76 | g."curl.--version"))..........(v |
| 207e0 | 65 72 73 69 6f 6e 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5e 63 75 72 6c | ersion.(and.(string-match."^curl |
| 20800 | 20 5c 5c 28 5b 30 2d 39 2e 5d 2b 5c 5c 29 22 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 20 | .\\([0-9.]+\\)".output)......... |
| 20820 | 20 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 6f | ...............(match-string.1.o |
| 20840 | 75 74 70 75 74 29 29 29 29 0a 20 20 20 20 76 65 72 73 69 6f 6e 29 29 0a 0a 3b 3b 3b 23 23 23 61 | utput)))).....version))..;;;###a |
| 20860 | 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 62 65 64 | utoload.(cl-defun.gptel-make-bed |
| 20880 | 72 6f 63 6b 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 72 65 | rock.....(name.&key...........re |
| 208a0 | 67 69 6f 6e 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 62 65 | gion...........(models.gptel--be |
| 208c0 | 64 72 6f 63 6b 2d 6d 6f 64 65 6c 73 29 0a 09 20 20 28 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 6e | drock-models)....(model-region.n |
| 208e0 | 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 73 74 72 65 61 6d 20 63 75 72 6c 2d 61 72 67 73 20 72 | il)...........stream.curl-args.r |
| 20900 | 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 70 72 6f 74 6f 63 6f | equest-params...........(protoco |
| 20920 | 6c 20 22 68 74 74 70 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 41 57 53 20 42 | l."https"))..."Register.an.AWS.B |
| 20940 | 65 64 72 6f 63 6b 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 | edrock.backend.for.gptel.with.NA |
| 20960 | 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 52 45 47 49 4f 4e 20 | ME...Keyword.arguments:..REGION. |
| 20980 | 2d 20 41 57 53 20 72 65 67 69 6f 6e 20 6e 61 6d 65 20 28 65 2e 67 2e 20 5c 22 75 73 2d 65 61 73 | -.AWS.region.name.(e.g..\"us-eas |
| 209a0 | 74 2d 31 5c 22 29 0a 4d 4f 44 45 4c 53 20 2d 20 54 68 65 20 6c 69 73 74 20 6f 66 20 6d 6f 64 65 | t-1\").MODELS.-.The.list.of.mode |
| 209c0 | 6c 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 62 61 63 6b 65 6e 64 0a 4d 4f 44 | ls.supported.by.this.backend.MOD |
| 209e0 | 45 4c 2d 52 45 47 49 4f 4e 20 2d 20 6f 6e 65 20 6f 66 20 61 70 61 63 2c 20 65 75 2c 20 75 73 20 | EL-REGION.-.one.of.apac,.eu,.us. |
| 20a00 | 6f 72 20 6e 69 6c 0a 43 55 52 4c 2d 41 52 47 53 20 2d 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 75 | or.nil.CURL-ARGS.-.additional.cu |
| 20a20 | 72 6c 20 61 72 67 73 0a 53 54 52 45 41 4d 20 2d 20 57 68 65 74 68 65 72 20 74 6f 20 75 73 65 20 | rl.args.STREAM.-.Whether.to.use. |
| 20a40 | 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 20 6f 72 20 6e 6f 74 2e 0a 52 45 51 55 | streaming.responses.or.not..REQU |
| 20a60 | 45 53 54 2d 50 41 52 41 4d 53 20 2d 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e | EST-PARAMS.-.a.plist.of.addition |
| 20a80 | 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 70 | al.HTTP.request.parameters.(as.p |
| 20aa0 | 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 20 | list.keys).and.values.supported. |
| 20ac0 | 62 79 20 74 68 65 20 41 50 49 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 | by.the.API."...(declare.(indent. |
| 20ae0 | 31 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 | 1))...(unless.(and.gptel-use-cur |
| 20b00 | 6c 20 28 76 65 72 73 69 6f 6e 3c 3d 20 22 38 2e 39 22 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 | l.(version<=."8.9".(gptel-bedroc |
| 20b20 | 6b 2d 2d 63 75 72 6c 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 42 | k--curl-version))).....(error."B |
| 20b40 | 65 64 72 6f 63 6b 2d 62 61 63 6b 65 6e 64 20 72 65 71 75 69 72 65 73 20 63 75 72 6c 20 3e 3d 20 | edrock-backend.requires.curl.>=. |
| 20b60 | 38 2e 39 2c 20 62 75 74 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 3a 3d 20 25 73 2c 20 63 | 8.9,.but.gptel-use-curl.:=.%s,.c |
| 20b80 | 75 72 6c 2d 76 65 72 73 69 6f 6e 20 3a 3d 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 | url-version.:=.%s"............gp |
| 20ba0 | 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 | tel-use-curl.(gptel-bedrock--cur |
| 20bc0 | 6c 2d 76 65 72 73 69 6f 6e 29 29 29 0a 20 20 28 6c 65 74 20 28 28 68 6f 73 74 20 28 66 6f 72 6d | l-version)))...(let.((host.(form |
| 20be0 | 61 74 20 22 62 65 64 72 6f 63 6b 2d 72 75 6e 74 69 6d 65 2e 25 73 2e 61 6d 61 7a 6f 6e 61 77 73 | at."bedrock-runtime.%s.amazonaws |
| 20c00 | 2e 63 6f 6d 22 20 72 65 67 69 6f 6e 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 | .com".region))).....(setf.(alist |
| 20c20 | 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 73 20 | -get.name.gptel--known-backends. |
| 20c40 | 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 28 67 70 74 65 | nil.nil.#'equal)...........(gpte |
| 20c60 | 6c 2d 2d 6d 61 6b 65 2d 62 65 64 72 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 | l--make-bedrock............:name |
| 20c80 | 20 6e 61 6d 65 0a 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 | .name............:host.host..... |
| 20ca0 | 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 3b 20 78 | .......:header.nil...........;.x |
| 20cc0 | 2d 61 6d 7a 2d 73 65 63 75 72 69 74 79 2d 74 6f 6b 65 6e 20 69 73 20 73 65 74 20 69 6e 20 63 75 | -amz-security-token.is.set.in.cu |
| 20ce0 | 72 6c 2d 61 72 67 73 20 69 66 20 6e 65 65 64 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f | rl-args.if.needed............:mo |
| 20d00 | 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 65 | dels.(gptel--process-models.mode |
| 20d20 | 6c 73 29 0a 09 20 20 20 3a 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 20 6d 6f 64 65 6c 2d 72 65 67 69 | ls).....:model-region.model-regi |
| 20d40 | 6f 6e 0a 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 | on............:protocol.protocol |
| 20d60 | 0a 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 22 22 20 3b 20 55 72 6c 20 69 | ............:endpoint."".;.Url.i |
| 20d80 | 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 63 6f 6e 73 74 72 75 63 74 65 64 20 62 61 73 65 64 20 | s.dynamically.constructed.based. |
| 20da0 | 6f 6e 20 6f 74 68 65 72 20 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d | on.other.args............:stream |
| 20dc0 | 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 64 69 6e 67 2d 73 79 73 74 65 | .stream............:coding-syste |
| 20de0 | 6d 20 28 61 6e 64 20 73 74 72 65 61 6d 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 20 20 20 20 20 | m.(and.stream.'binary).......... |
| 20e00 | 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 70 70 65 6e 64 20 | ..:curl-args.(lambda.().(append. |
| 20e20 | 63 75 72 6c 2d 61 72 67 73 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 63 75 72 6c 2d 61 | curl-args.(gptel-bedrock--curl-a |
| 20e40 | 72 67 73 20 72 65 67 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 | rgs.region)))............:reques |
| 20e60 | 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 20 20 20 20 | t-params.request-params......... |
| 20e80 | 20 20 20 3a 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 | ...:url............(lambda.()... |
| 20ea0 | 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.":// |
| 20ec0 | 22 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2f 6d 6f | ".host......................"/mo |
| 20ee0 | 64 65 6c 2f 22 20 28 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2d 2d 67 65 74 2d 6d 6f 64 65 6c 2d | del/".(gptel-bedrock--get-model- |
| 20f00 | 69 64 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 2d 72 65 67 69 6f 6e 29 0a 20 20 20 | id.gptel-model.model-region).... |
| 20f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2f 22 20 28 69 66 20 73 74 72 65 61 6d | .................."/".(if.stream |
| 20f40 | 20 22 63 6f 6e 76 65 72 73 65 2d 73 74 72 65 61 6d 22 20 22 63 6f 6e 76 65 72 73 65 22 29 29 29 | ."converse-stream"."converse"))) |
| 20f60 | 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 29 0a 3b | ))))..(provide.'gptel-bedrock).; |
| 20f80 | 3b 3b 20 67 70 74 65 6c 2d 62 65 64 72 6f 63 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 | ;;.gptel-bedrock.el.ends.here... |
| 20fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 20fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 20fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 00 00 00 00 00 | gptel-0.9.9/gptel-ollama.el..... |
| 21020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21060 | 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 |
| 21080 | 30 30 33 33 37 37 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 32 31 00 20 30 00 00 00 | 0033774.00000000000.014221..0... |
| 210a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 210c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 210e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21100 | 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................... |
| 21120 | 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................... |
| 21140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 211a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 211c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 211e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21200 | 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 |
| 21220 | 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 |
| 21240 | 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.( |
| 21260 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 21280 | 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 |
| 212a0 | 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> |
| 212c0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 | .;;.Keywords:.hypermedia..;;.Thi |
| 212e0 | 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. |
| 21300 | 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 |
| 21320 | 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 |
| 21340 | 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 |
| 21360 | 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 |
| 21380 | 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 |
| 213a0 | 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 |
| 213c0 | 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 |
| 213e0 | 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 |
| 21400 | 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 |
| 21420 | 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 |
| 21440 | 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 |
| 21460 | 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. |
| 21480 | 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.;;. |
| 214a0 | 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 |
| 214c0 | 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 |
| 214e0 | 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 |
| 21500 | 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 |
| 21520 | 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 |
| 21540 | 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/>...;; |
| 21560 | 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 | ;.Commentary:..;;.This.file.adds |
| 21580 | 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 6c 6c 61 6d 61 20 4c 4c 4d 20 41 50 49 20 | .support.for.the.Ollama.LLM.API. |
| 215a0 | 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 | to.gptel..;;;.Code:.(require.'gp |
| 215c0 | 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 0a 28 64 65 63 | tel).(require.'cl-generic)..(dec |
| 215e0 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 | lare-function.json-read."json".( |
| 21600 | 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | )).(declare-function.gptel-conte |
| 21620 | 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 | xt--wrap."gptel-context").(decla |
| 21640 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 | re-function.gptel-context--colle |
| 21660 | 63 74 2d 6d 65 64 69 61 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 66 76 61 | ct-media."gptel-context").(defva |
| 21680 | 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 3b 3b 3b 20 4f 6c 6c 61 6d 61 0a | r.json-object-type)..;;;.Ollama. |
| 216a0 | 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 20 28 3a 63 6f | (cl-defstruct.(gptel-ollama.(:co |
| 216c0 | 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 29 0a 20 20 | nstructor.gptel--make-ollama)... |
| 216e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 | ..........................(:copi |
| 21700 | 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er.nil)......................... |
| 21720 | 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a | ....(:include.gptel-backend))).. |
| 21740 | 3b 3b 20 46 49 58 4d 45 28 66 73 6d 29 20 52 65 6d 6f 76 65 20 74 68 69 73 20 76 61 72 69 61 62 | ;;.FIXME(fsm).Remove.this.variab |
| 21760 | 6c 65 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 74 | le.(defvar-local.gptel--ollama-t |
| 21780 | 6f 6b 65 6e 2d 63 6f 75 6e 74 20 30 0a 20 20 22 54 6f 6b 65 6e 20 63 6f 75 6e 74 20 66 6f 72 20 | oken-count.0..."Token.count.for. |
| 217a0 | 6f 6c 6c 61 6d 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 | ollama.conversations...This.vari |
| 217c0 | 61 62 6c 65 20 68 6f 6c 64 73 20 74 68 65 20 74 6f 74 61 6c 20 74 6f 6b 65 6e 20 63 6f 75 6e 74 | able.holds.the.total.token.count |
| 217e0 | 20 66 6f 72 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 20 77 69 74 68 0a 4f 6c 6c 61 6d 61 20 6d | .for.conversations.with.Ollama.m |
| 21800 | 6f 64 65 6c 73 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 | odels...Intended.for.internal.us |
| 21820 | 65 20 6f 6e 6c 79 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 | e.only.")..(cl-defmethod.gptel-c |
| 21840 | 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 | url--parse-stream.((_backend.gpt |
| 21860 | 65 6c 2d 6f 6c 6c 61 6d 61 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 72 65 73 70 6f 6e | el-ollama).info)..."Parse.respon |
| 21880 | 73 65 20 73 74 72 65 61 6d 20 66 6f 72 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 2e 22 0a 20 | se.stream.for.the.Ollama.API.".. |
| 218a0 | 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 6f 62 70 29 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f | .(when.(and.(bobp).(re-search-fo |
| 218c0 | 72 77 61 72 64 20 22 5e 7b 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d | rward."^{".nil.t)).....(forward- |
| 218e0 | 6c 69 6e 65 20 30 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 | line.0))...(let*.((content-strs) |
| 21900 | 20 28 63 6f 6e 74 65 6e 74 29 20 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f | .(content).(pt.(point))).....(co |
| 21920 | 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 | ndition-case.nil.........(while. |
| 21940 | 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 | (setq.content.(gptel--json-read) |
| 21960 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 | )...........(setq.pt.(point))... |
| 21980 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 6f 6e 65 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e | ........(let.((done.(map-elt.con |
| 219a0 | 74 65 6e 74 20 3a 64 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | tent.:done)).................(re |
| 219c0 | 73 70 6f 6e 73 65 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 27 | sponse.(map-nested-elt.content.' |
| 219e0 | 28 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | (:message.:content)))).......... |
| 21a00 | 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72 65 73 70 6f 6e 73 65 20 28 6e 6f 74 20 28 65 71 20 | ...(when.(and.response.(not.(eq. |
| 21a20 | 72 65 73 70 6f 6e 73 65 20 3a 6e 75 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | response.:null)))............... |
| 21a40 | 28 70 75 73 68 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 | (push.response.content-strs))... |
| 21a60 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 64 6f 6e 65 20 3a 6a 73 6f 6e | ..........(unless.(eq.done.:json |
| 21a80 | 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 | -false)...............(with-curr |
| 21aa0 | 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 |
| 21ac0 | 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 67 70 74 | er).................(cl-incf.gpt |
| 21ae0 | 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 74 6f 6b 65 6e 2d 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 | el--ollama-token-count.......... |
| 21b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6f 72 20 28 6d 61 70 2d 65 6c 74 20 | ................(+.(or.(map-elt. |
| 21b20 | 63 6f 6e 74 65 6e 74 20 3a 70 72 6f 6d 70 74 5f 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 0a 20 | content.:prompt_eval_count).0).. |
| 21b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | ...........................(or.( |
| 21b60 | 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 29 | map-elt.content.:eval_count).0)) |
| 21b80 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 | ))...............(goto-char.(poi |
| 21ba0 | 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 | nt-max))))).......(error.(goto-c |
| 21bc0 | 68 61 72 20 70 74 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e | har.pt))).....(apply.#'concat.(n |
| 21be0 | 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 | reverse.content-strs))))..(cl-de |
| 21c00 | 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 | fmethod.gptel--parse-response.(( |
| 21c20 | 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 72 65 73 70 6f 6e 73 65 20 | _backend.gptel-ollama).response. |
| 21c40 | 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 20 6f 6e 65 2d 73 68 6f 74 20 52 45 53 50 4f 4e | info)..."Parse.a.one-shot.RESPON |
| 21c60 | 53 45 20 66 72 6f 6d 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 20 61 6e 64 20 72 65 74 75 72 | SE.from.the.Ollama.API.and.retur |
| 21c80 | 6e 20 74 65 78 74 2e 0a 0a 53 74 6f 72 65 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 | n.text...Store.response.metadata |
| 21ca0 | 20 69 6e 20 73 74 61 74 65 20 49 4e 46 4f 2e 22 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e | .in.state.INFO."...(plist-put.in |
| 21cc0 | 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f | fo.:stop-reason.(plist-get.respo |
| 21ce0 | 6e 73 65 20 3a 64 6f 6e 65 5f 72 65 61 73 6f 6e 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | nse.:done_reason))...(plist-put. |
| 21d00 | 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 20 28 70 6c 69 73 74 2d 67 65 74 20 72 | info.:output-tokens.(plist-get.r |
| 21d20 | 65 73 70 6f 6e 73 65 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 | esponse.:eval_count))...(let*.(( |
| 21d40 | 6d 65 73 73 61 67 65 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 6d 65 73 | message.(plist-get.response.:mes |
| 21d60 | 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d | sage))..........(content.(plist- |
| 21d80 | 67 65 74 20 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 77 68 65 | get.message.:content))).....(whe |
| 21da0 | 6e 2d 6c 65 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 | n-let*.((tool-calls.(plist-get.m |
| 21dc0 | 65 73 73 61 67 65 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 46 | essage.:tool_calls))).......;;.F |
| 21de0 | 69 72 73 74 20 61 64 64 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 70 72 | irst.add.the.tool.call.to.the.pr |
| 21e00 | 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 | ompts.list.......(let*.((data.(p |
| 21e20 | 6c 69 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 20 | list-get.info.:data))........... |
| 21e40 | 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 6d 65 73 | ...(prompts.(plist-get.data.:mes |
| 21e60 | 73 61 67 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 74 61 | sages))).........(plist-put.data |
| 21e80 | 20 3a 6d 65 73 73 61 67 65 73 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 60 28 2c 6d | .:messages.(vconcat.prompts.`(,m |
| 21ea0 | 65 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 54 68 65 6e 20 63 61 70 74 75 72 65 | essage)))).......;;.Then.capture |
| 21ec0 | 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 20 | .the.tool.call.data.for.running. |
| 21ee0 | 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 66 | the.tool.......(cl-loop........f |
| 21f00 | 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 6c 6c 73 20 20 | or.tool-call.across.tool-calls.. |
| 21f20 | 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 3a 61 72 67 | ;replace.":arguments".with.":arg |
| 21f40 | 73 22 0a 20 20 20 20 20 20 20 66 6f 72 20 63 61 6c 6c 2d 73 70 65 63 20 3d 20 28 63 6f 70 79 2d | s"........for.call-spec.=.(copy- |
| 21f60 | 73 65 71 75 65 6e 63 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 | sequence.(plist-get.tool-call.:f |
| 21f80 | 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 64 6f 20 28 70 6c 69 73 74 2d 70 75 74 20 63 | unction))........do.(plist-put.c |
| 21fa0 | 61 6c 6c 2d 73 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 | all-spec.:args.................. |
| 21fc0 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 61 72 67 75 6d 65 | ....(plist-get.call-spec.:argume |
| 21fe0 | 6e 74 73 29 29 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 | nts))........(plist-put.call-spe |
| 22000 | 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 | c.:arguments.nil)........collect |
| 22020 | 20 63 61 6c 6c 2d 73 70 65 63 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 20 | .call-spec.into.tool-use........ |
| 22040 | 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 |
| 22060 | 65 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6f 6e | e.tool-use))).....(when.(and.con |
| 22080 | 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 6c 6c 29 | tent.(not.(or.(eq.content.:null) |
| 220a0 | 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 20 20 20 | .(string-empty-p.content)))).... |
| 220c0 | 20 20 20 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 | ...content)))..(cl-defmethod.gpt |
| 220e0 | 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 65 6c | el--request-data.((backend.gptel |
| 22100 | 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 63 6f 64 65 | -ollama).prompts)..."JSON.encode |
| 22120 | 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 4f 6c 6c 61 6d 61 2e 22 | .PROMPTS.for.sending.to.Ollama." |
| 22140 | 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 65 0a 20 | ...(when.gptel--system-message.. |
| 22160 | 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 0a 20 20 | ...(push.(list.:role."system"... |
| 22180 | 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 2d 73 79 | ..............:content.gptel--sy |
| 221a0 | 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 74 73 29 | stem-message)...........prompts) |
| 221c0 | 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 20 20 20 20 20 | )...(let*.((prompts-plist....... |
| 221e0 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 20 20 | ....(gptel--merge-plists........ |
| 22200 | 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 65 | ....`(:model.,(gptel--model-name |
| 22220 | 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 3a 6d 65 73 73 | .gptel-model)..............:mess |
| 22240 | 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 20 20 20 3a 73 | ages.[,@prompts]..............:s |
| 22260 | 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 6f 6e 2d 66 61 | tream.,(or.gptel-stream.:json-fa |
| 22280 | 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 28 61 6e 64 20 67 70 74 65 6c 2d 2d | lse)..............,@(and.gptel-- |
| 222a0 | 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 66 6f 72 6d 61 74 | schema.................`(:format |
| 222c0 | 20 2c 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 0a 20 20 20 20 | .,(gptel--preprocess-schema..... |
| 222e0 | 20 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-- |
| 22300 | 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 67 70 74 65 6c 2d 2d 73 63 68 65 | dispatch-schema-type.gptel--sche |
| 22320 | 6d 61 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 | ma)))))............gptel--reques |
| 22340 | 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 | t-params............(gptel-backe |
| 22360 | 6e 64 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | nd-request-params.gptel-backend) |
| 22380 | 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 65 73 | ............(gptel--model-reques |
| 223a0 | 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 20 20 | t-params..gptel-model)))........ |
| 223c0 | 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 6e 79 | ..;;.the.initial.options.(if.any |
| 223e0 | 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 20 28 | ).from.request.params..........( |
| 22400 | 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 74 73 | options-plist.(plist-get.prompts |
| 22420 | 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 28 61 | -plist.:options)))......(when.(a |
| 22440 | 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 29 0a | nd.gptel-use-tools.gptel-tools). |
| 22460 | 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 68 6f | ......;;.TODO(tool):.Find.out.ho |
| 22480 | 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 0a 20 | w.to.force.tool.use.for.Ollama.. |
| 224a0 | 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 3a 74 | .....(plist-put.prompts-plist.:t |
| 224c0 | 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 70 61 | ools..................(gptel--pa |
| 224e0 | 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 29 0a | rse-tools.backend.gptel-tools)). |
| 22500 | 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 3a | ......(plist-put.prompts-plist.: |
| 22520 | 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 20 74 | stream.:json-false)).....;;.if.t |
| 22540 | 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 61 72 | he.temperature.and.max-tokens.ar |
| 22560 | 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 65 6c | en't.set.as.....;;.backend/model |
| 22580 | 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 69 6e | -specific,.use.the.global.settin |
| 225a0 | 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 61 74 | gs.....(when.(and.gptel-temperat |
| 225c0 | 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 69 73 | ure.(not.(plist-get.options-plis |
| 225e0 | 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 6f 70 | t.:temperature))).......(setq.op |
| 22600 | 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 2d 70 | tions-plist.............(plist-p |
| 22620 | 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 67 70 | ut.options-plist.:temperature.gp |
| 22640 | 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 61 6e | tel-temperature))).....(when.(an |
| 22660 | 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 2d 67 | d.gptel-max-tokens.(not.(plist-g |
| 22680 | 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 29 29 | et.options-plist.:num_predict))) |
| 226a0 | 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 20 20 | .......(setq.options-plist...... |
| 226c0 | 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 74 20 | .......(plist-put.options-plist. |
| 226e0 | 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 29 29 | :num_predict.gptel-max-tokens))) |
| 22700 | 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 3a 6f | .....(plist-put.prompts-plist.:o |
| 22720 | 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 54 45 | ptions.options-plist)))..;;.NOTE |
| 22740 | 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 6f 64 | :.No.`gptel--parse-tools'.method |
| 22760 | 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 6e 63 | .required.for.gptel-ollama,.sinc |
| 22780 | 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 66 67 | e.this.is.;;.handled.by.its.defg |
| 227a0 | 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 6d 65 | eneric.implementation..(cl-defme |
| 227c0 | 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 20 28 | thod.gptel--parse-tool-results.( |
| 227e0 | 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 73 65 | (_backend.gptel-ollama).tool-use |
| 22800 | 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 67 20 | )..."Return.a.prompt.containing. |
| 22820 | 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 22 0a | tool.call.results.in.TOOL-USE.". |
| 22840 | 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 20 20 | ..(mapcar.(lambda.(tool-call)... |
| 22860 | 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 63 6f | ..........(list.:role."tool".:co |
| 22880 | 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 73 75 | ntent.(plist-get.tool-call.:resu |
| 228a0 | 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 20 4e | lt)))...........tool-use))..;;.N |
| 228c0 | 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 20 6d | OTE:.No.`gptel--inject-prompt'.m |
| 228e0 | 65 74 68 6f 64 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2c | ethod.required.for.gptel-ollama, |
| 22900 | 20 73 69 6e 63 65 20 74 68 69 73 20 69 73 0a 3b 3b 20 68 61 6e 64 6c 65 64 20 62 79 20 69 74 73 | .since.this.is.;;.handled.by.its |
| 22920 | 20 64 65 66 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 63 6c 2d | .defgeneric.implementation..(cl- |
| 22940 | 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 62 61 | defmethod.gptel--parse-list.((ba |
| 22960 | 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 73 74 29 | ckend.gptel-ollama).prompt-list) |
| 22980 | 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 29 | ...(if.(consp.(car.prompt-list)) |
| 229a0 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 20 20 20 20 20 | .......(let.((full-prompt))..... |
| 229c0 | 20 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 | .........;.Advanced.format,.list |
| 229e0 | 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 | .of.lists.........(dolist.(entry |
| 22a00 | 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 65 | .prompt-list)...........(pcase.e |
| 22a20 | 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 | ntry.............(`(prompt...,ms |
| 22a40 | 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c | g)..............(push.(list.:rol |
| 22a60 | 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 | e."user".:content.(or.(car-safe. |
| 22a80 | 6d 73 67 29 20 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 | msg).msg))....................fu |
| 22aa0 | 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f | ll-prompt)).............(`(respo |
| 22ac0 | 6e 73 65 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 | nse...,msg)..............(push.( |
| 22ae0 | 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 | list.:role."assistant".:content. |
| 22b00 | 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 0a 20 20 20 20 20 20 20 | (or.(car-safe.msg).msg))........ |
| 22b20 | 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 | ............full-prompt))....... |
| 22b40 | 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 | ......(`(tool...,call).......... |
| 22b60 | 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 | ....(push.(list.:role."assistant |
| 22b80 | 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 3a 63 6f 6e 74 | "..........................:cont |
| 22ba0 | 65 6e 74 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ent."".......................... |
| 22bc0 | 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 60 5b 28 3a 66 75 6e 63 74 69 6f 6e 20 28 3a 6e 61 6d 65 20 | :tool_calls.`[(:function.(:name. |
| 22be0 | 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 | ,(plist-get.call.:name)......... |
| 22c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 22c20 | 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 28 70 6c 69 73 74 2d 67 65 | ...........:arguments.,(plist-ge |
| 22c40 | 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.call.:args)))])............... |
| 22c60 | 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .....full-prompt)..............( |
| 22c80 | 70 75 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 | push.(car.(gptel--parse-tool-res |
| 22ca0 | 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 29 29 29 | ults.backend.(list.(cdr.entry))) |
| 22cc0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 | )....................full-prompt |
| 22ce0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 75 6c 6c 2d 70 72 6f 6d | )))).........(nreverse.full-prom |
| 22d00 | 70 74 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 | pt)).....(cl-loop.for.text.in.pr |
| 22d20 | 6f 6d 70 74 2d 6c 69 73 74 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 | ompt-list....;.Simple.format,.li |
| 22d40 | 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 | st.of.strings..............for.r |
| 22d60 | 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)......... |
| 22d80 | 20 20 20 20 20 69 66 20 74 65 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 | .....if.text.collect............ |
| 22da0 | 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 72 22 20 22 61 | ..(list.:role.(if.role."user"."a |
| 22dc0 | 73 73 69 73 74 61 6e 74 22 29 20 3a 63 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 29 29 0a 0a 28 63 | ssistant").:content.text))))..(c |
| 22de0 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 | l-defmethod.gptel--parse-buffer. |
| 22e00 | 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 26 6f 70 74 69 6f 6e 61 | ((backend.gptel-ollama).&optiona |
| 22e20 | 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 | l.max-entries)...(let.((prompts) |
| 22e40 | 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 | .(prev-pt.(point))).....(if.(or. |
| 22e60 | 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 65 29 | gptel-mode.gptel-track-response) |
| 22e80 | 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 6d 61 | .........(while.(and.(or.(not.ma |
| 22ea0 | 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 0a 20 | x-entries).(>=.max-entries.0)).. |
| 22ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 | ...................(goto-char.(p |
| 22ee0 | 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 | revious-single-property-change.. |
| 22f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 22f20 | 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a | point).'gptel.nil.(point-min))). |
| 22f40 | 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 6f 69 | ....................(not.(=.(poi |
| 22f60 | 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 65 20 | nt).prev-pt)))...........(pcase. |
| 22f80 | 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 |
| 22fa0 | 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 20 20 | l).............('response....... |
| 22fc0 | 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 |
| 22fe0 | 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 20 20 | el--trim-prefixes............... |
| 23000 | 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 62 | .....................(buffer-sub |
| 23020 | 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 65 | string-no-properties.(point).pre |
| 23040 | 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 28 6c | v-pt))))................(push.(l |
| 23060 | 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 63 | ist.:role."assistant".:content.c |
| 23080 | 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ontent).prompts))).............( |
| 230a0 | 60 28 74 6f 6f 6c 20 2e 20 2c 5f 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 | `(tool...,_id)..............(sav |
| 230c0 | 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 28 63 6f 6e 64 | e-excursion................(cond |
| 230e0 | 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 20 | ition-case.nil.................. |
| 23100 | 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 72 72 65 | ..(let*.((tool-call.(read.(curre |
| 23120 | 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt-buffer))).................... |
| 23140 | 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 6c | .......(name.(plist-get.tool-cal |
| 23160 | 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 20 20 20 20 | l.:name))....................... |
| 23180 | 20 20 20 20 28 61 72 67 75 6d 65 6e 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 | ....(arguments.(plist-get.tool-c |
| 231a0 | 61 6c 6c 20 3a 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | all.:args))).................... |
| 231c0 | 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 74 0a 20 | ..(plist-put.tool-call.:result.. |
| 231e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 23200 | 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 6e 6f | string-trim.(buffer-substring-no |
| 23220 | 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..................... |
| 23240 | 20 20 20 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 |
| 23260 | 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).prev-pt))).................... |
| 23280 | 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d | ..(push.(car.(gptel--parse-tool- |
| 232a0 | 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 61 6c 6c 29 | results.backend.(list.tool-call) |
| 232c0 | 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 70 72 | ))............................pr |
| 232e0 | 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 28 70 75 73 | ompts)......................(pus |
| 23300 | 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 | h.(list.:role."assistant"....... |
| 23320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 | ...........................:cont |
| 23340 | 65 6e 74 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ent."".......................... |
| 23360 | 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 60 5b 28 3a 66 75 6e 63 74 69 6f 6e | ........:tool_calls.`[(:function |
| 23380 | 20 28 3a 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 61 72 67 75 6d 65 | .(:name.,name.:arguments.,argume |
| 233a0 | 6e 74 73 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nts))])......................... |
| 233c0 | 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 28 | ...prompts))..................(( |
| 233e0 | 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 29 | end-of-file.invalid-read-syntax) |
| 23400 | 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 72 | ...................(message.(for |
| 23420 | 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 6f | mat."Could.not.parse.tool-call.o |
| 23440 | 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n.line.%s"...................... |
| 23460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f | ..............(line-number-at-po |
| 23480 | 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 28 27 69 | s.(point)))))))).............('i |
| 234a0 | 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 27 6e 69 6c 0a 20 20 20 20 20 20 20 | gnore).............('nil........ |
| 234c0 | 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 20 | ......(if.gptel-track-media..... |
| 234e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e | .............(when-let*.((conten |
| 23500 | 74 20 28 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 | t.(gptel--ollama-parse-multipart |
| 23520 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 23540 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b | ........(gptel--parse-media-link |
| 23560 | 73 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 | s.major-mode.(point).prev-pt)))) |
| 23580 | 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 3e 20 28 6c 65 | ....................(when.(>.(le |
| 235a0 | 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 20 | ngth.content).0)................ |
| 235c0 | 20 20 20 20 20 20 28 70 75 73 68 20 28 61 70 70 65 6e 64 20 27 28 3a 72 6f 6c 65 20 22 75 73 65 | ......(push.(append.'(:role."use |
| 235e0 | 72 22 29 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 | r").content).prompts)))......... |
| 23600 | 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 |
| 23620 | 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | el--trim-prefixes.(buffer-substr |
| 23640 | 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-no-properties............... |
| 23660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 23680 | 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 29 29 29 29 | .............(point).prev-pt)))) |
| 236a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 | ..................(push.(list.:r |
| 236c0 | 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f | ole."user".:content.content).pro |
| 236e0 | 6d 70 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 76 2d 70 | mpts)))))...........(setq.prev-p |
| 23700 | 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6d 61 78 2d 65 6e | t.(point))...........(and.max-en |
| 23720 | 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 0a 20 20 | tries.(cl-decf.max-entries)))... |
| 23740 | 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 | ....(let.((content.(string-trim. |
| 23760 | 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a | (buffer-substring-no-properties. |
| 23780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 237a0 | 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 29 29 0a 20 | ...(point-min).(point-max))))).. |
| 237c0 | 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 22 20 | .......(push.(list.:role."user". |
| 237e0 | 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 20 20 | :content.content).prompts))).... |
| 23800 | 20 70 72 6f 6d 70 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 | .prompts))..(defun.gptel--ollama |
| 23820 | 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 28 70 61 72 74 73 29 0a 20 20 22 43 6f 6e 76 | -parse-multipart.(parts)..."Conv |
| 23840 | 65 72 74 20 61 20 6d 75 6c 74 69 70 61 72 74 20 70 72 6f 6d 70 74 20 50 41 52 54 53 20 74 6f 20 | ert.a.multipart.prompt.PARTS.to. |
| 23860 | 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 65 20 69 6e 70 75 | the.Ollama.API.format...The.inpu |
| 23880 | 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 74 65 | t.is.an.alist.of.the.form..((:te |
| 238a0 | 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 | xt.\"some.text\")...(:media.\"/p |
| 238c0 | 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 | ath/to/media.png\".:mime.\"image |
| 238e0 | 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 | /png\")...(:text.\"More.text\")) |
| 23900 | 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 6e 74 | ...The.output.is.a.vector.of.ent |
| 23920 | 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 66 6f | ries.in.a.backend-appropriate.fo |
| 23940 | 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 69 6e | rmat."...(cl-loop....for.part.in |
| 23960 | 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 74 68 | .parts....for.n.upfrom.1....with |
| 23980 | 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 66 6f 72 20 74 65 | .last.=.(length.parts)....for.te |
| 239a0 | 78 74 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 | xt.=.(plist-get.part.:text)....f |
| 239c0 | 6f 72 20 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 | or.media.=.(plist-get.part.:medi |
| 239e0 | 61 29 0a 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 | a)....if.text.do....(and.(or.(=. |
| 23a00 | 6e 20 31 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 | n.1).(=.n.last)).(setq.text.(gpt |
| 23a20 | 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 20 61 6e 64 0a 20 20 | el--trim-prefixes.text))).and... |
| 23a40 | 20 69 66 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 74 65 78 74 20 69 6e 74 6f 20 74 65 | .if.text....collect.text.into.te |
| 23a60 | 78 74 2d 61 72 72 61 79 20 65 6e 64 0a 20 20 20 65 6c 73 65 20 69 66 20 6d 65 64 69 61 0a 20 20 | xt-array.end....else.if.media... |
| 23a80 | 20 63 6f 6c 6c 65 63 74 20 28 67 70 74 65 6c 2d 2d 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 20 6d | .collect.(gptel--base64-encode.m |
| 23aa0 | 65 64 69 61 29 20 69 6e 74 6f 20 6d 65 64 69 61 2d 61 72 72 61 79 0a 20 20 20 65 6c 73 65 20 69 | edia).into.media-array....else.i |
| 23ac0 | 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 0a 20 20 20 | f.(plist-get.part.:textfile).... |
| 23ae0 | 63 6f 6c 6c 65 63 74 0a 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 | collect....(with-temp-buffer.... |
| 23b00 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 6c | ..(gptel--insert-file-string.(pl |
| 23b20 | 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 20 28 62 | ist-get.part.:textfile))......(b |
| 23b40 | 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 69 6e 74 6f 20 74 65 78 74 2d 61 72 72 61 | uffer-string))....into.text-arra |
| 23b60 | 79 0a 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 60 28 2c 40 28 61 6e 64 20 | y....finally.return....`(,@(and. |
| 23b80 | 74 65 78 74 2d 61 72 72 61 79 20 20 28 6c 69 73 74 20 3a 63 6f 6e 74 65 6e 74 20 28 6d 61 70 63 | text-array..(list.:content.(mapc |
| 23ba0 | 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 74 65 78 74 2d 61 72 72 61 79 20 22 20 22 29 | oncat.#'identity.text-array.".") |
| 23bc0 | 29 29 0a 20 20 20 20 20 2c 40 28 61 6e 64 20 6d 65 64 69 61 2d 61 72 72 61 79 20 28 6c 69 73 74 | ))......,@(and.media-array.(list |
| 23be0 | 20 3a 69 6d 61 67 65 73 20 20 28 76 63 6f 6e 63 61 74 20 6d 65 64 69 61 2d 61 72 72 61 79 29 29 | .:images..(vconcat.media-array)) |
| 23c00 | 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d | ))))..(cl-defmethod.gptel--wrap- |
| 23c20 | 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 6c 6c | user-prompt.((_backend.gptel-oll |
| 23c40 | 61 6d 61 29 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ama).prompts.................... |
| 23c60 | 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 69 6e | ....................&optional.in |
| 23c80 | 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 73 65 | ject-media)..."Wrap.the.last.use |
| 23ca0 | 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 6f 6e | r.prompt.in.PROMPTS.with.the.con |
| 23cc0 | 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 69 73 | text.string...If.INJECT-MEDIA.is |
| 23ce0 | 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 6e 63 | .non-nil.wrap.it.with.base64-enc |
| 23d00 | 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 74 2e | oded.media.files.in.the.context. |
| 23d20 | 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 57 72 | "...(if.inject-media.......;;.Wr |
| 23d40 | 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 69 6e | ap.the.first.user.prompt.with.in |
| 23d60 | 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 20 20 | cluded.media.files/contexts..... |
| 23d80 | 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 65 6c | ..(when-let*.((media-list.(gptel |
| 23da0 | 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 | -context--collect-media))....... |
| 23dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 64 69 61 2d 70 72 6f 63 65 73 73 65 64 20 28 67 70 | ............(media-processed.(gp |
| 23de0 | 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 20 6d 65 64 69 | tel--ollama-parse-multipart.medi |
| 23e00 | 61 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d | a-list))).........(cl-callf.(lam |
| 23e20 | 62 64 61 20 28 69 6d 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.(images).................... |
| 23e40 | 20 28 76 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 64 69 61 2d 70 72 6f 63 65 | .(vconcat.(plist-get.media-proce |
| 23e60 | 73 73 65 64 20 3a 69 6d 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ssed.:images)................... |
| 23e80 | 20 20 20 20 20 20 20 20 20 20 20 69 6d 61 67 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...........images))............. |
| 23ea0 | 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 69 6d 61 67 65 73 | (plist-get.(car.prompts).:images |
| 23ec0 | 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 |
| 23ee0 | 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 |
| 23f00 | 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 | .....(cl-callf.gptel-context--wr |
| 23f20 | 61 70 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 | ap.(plist-get.(car.(last.prompts |
| 23f40 | 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a | )).:content))))..;;;###autoload. |
| 23f60 | 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 20 | (cl-defun.gptel-make-ollama..... |
| 23f80 | 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 68 65 61 64 65 72 20 6b 65 79 20 | (name.&key.curl-args.header.key. |
| 23fa0 | 6d 6f 64 65 6c 73 20 73 74 72 65 61 6d 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 | models.stream.request-params.... |
| 23fc0 | 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 22 29 0a | .......(host."localhost:11434"). |
| 23fe0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 29 0a 20 20 20 20 | ..........(protocol."http")..... |
| 24000 | 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f 63 68 61 74 22 29 29 0a 20 20 | ......(endpoint."/api/chat"))... |
| 24020 | 22 52 65 67 69 73 74 65 72 20 61 6e 20 4f 6c 6c 61 6d 61 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 | "Register.an.Ollama.backend.for. |
| 24040 | 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 | gptel.with.NAME...Keyword.argume |
| 24060 | 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 | nts:..CURL-ARGS.(optional).is.a. |
| 24080 | 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 | list.of.additional.Curl.argument |
| 240a0 | 73 2e 0a 0a 48 4f 53 54 20 69 73 20 77 68 65 72 65 20 4f 6c 6c 61 6d 61 20 72 75 6e 73 20 28 77 | s...HOST.is.where.Ollama.runs.(w |
| 240c0 | 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 6f 63 61 6c 68 6f 73 74 | ith.port),.defaults.to.localhost |
| 240e0 | 3a 31 31 34 33 34 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 | :11434..MODELS.is.a.list.of.avai |
| 24100 | 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 | lable.model.names,.as.symbols..A |
| 24120 | 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 | dditionally,.you.can.specify.sup |
| 24140 | 70 6f 72 74 65 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 | ported.LLM.capabilities.like.vis |
| 24160 | 69 6f 6e 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 | ion.or.tool-use.by.appending.a.p |
| 24180 | 6c 69 73 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f | list.to.the.model.with.more.info |
| 241a0 | 72 6d 61 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 | rmation,.in.the.form...(model-na |
| 241c0 | 6d 65 20 2e 20 70 6c 69 73 74 29 0a 0a 43 75 72 72 65 6e 74 6c 79 20 72 65 63 6f 67 6e 69 7a 65 | me...plist)..Currently.recognize |
| 241e0 | 64 20 70 6c 69 73 74 20 6b 65 79 73 20 61 72 65 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 3a | d.plist.keys.are.:description,.: |
| 24200 | 63 61 70 61 62 69 6c 69 74 69 65 73 0a 61 6e 64 20 3a 6d 69 6d 65 2d 74 79 70 65 73 2e 20 20 41 | capabilities.and.:mime-types...A |
| 24220 | 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 |
| 24240 | 6f 6e 20 69 6e 63 6c 75 64 69 6e 67 0a 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 63 73 | on.including.both.kinds.of.specs |
| 24260 | 3a 0a 0a 3a 6d 6f 64 65 6c 73 0a 5c 5c 3d 27 28 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 20 20 | :..:models.\\='(mistral:latest.. |
| 24280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6d 70 6c 65 20 73 70 | ......................;Simple.sp |
| 242a0 | 65 63 73 0a 20 20 6f 70 65 6e 68 65 72 6d 65 73 3a 6c 61 74 65 73 74 0a 20 20 28 6c 6c 61 76 61 | ecs...openhermes:latest...(llava |
| 242c0 | 3a 31 33 62 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :13b............................ |
| 242e0 | 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 5c 22 | ;Full.spec....:description....\" |
| 24300 | 4c 6c 61 76 61 20 31 2e 36 3a 20 4c 61 72 67 65 20 4c 61 6e 75 61 67 65 20 61 6e 64 20 56 69 73 | Llava.1.6:.Large.Lanuage.and.Vis |
| 24320 | 69 6f 6e 20 41 73 73 69 73 74 61 6e 74 5c 22 0a 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | ion.Assistant\"....:capabilities |
| 24340 | 20 28 6d 65 64 69 61 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 5c 22 69 6d 61 67 65 | .(media)....:mime-types.(\"image |
| 24360 | 2f 6a 70 65 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 29 29 0a 0a 0a 53 54 52 45 41 | /jpeg\".\"image/png\")))...STREA |
| 24380 | 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 | M.is.a.boolean.to.toggle.streami |
| 243a0 | 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e | ng.responses,.defaults.to.false. |
| 243c0 | 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 | ..PROTOCOL.(optional).specifies. |
| 243e0 | 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a | the.protocol,.http.by.default... |
| 24400 | 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 20 41 50 49 20 65 | ENDPOINT.(optional).is.the.API.e |
| 24420 | 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 65 66 61 75 6c 74 | ndpoint.for.completions,.default |
| 24440 | 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 67 65 6e 65 72 61 74 65 5c 22 2e 0a 0a 48 45 41 44 45 52 20 | s.to.\"/api/generate\"...HEADER. |
| 24460 | 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 | (optional).is.for.additional.hea |
| 24480 | 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 | ders.to.send.with.each.request.. |
| 244a0 | 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 | .It.should.be.an.alist.or.a.func |
| 244c0 | 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a | tion.that.retuns.an.alist,.like: |
| 244e0 | 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 | ..((\"Content-Type\"...\"applica |
| 24500 | 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 | tion/json\"))..KEY.(optional).is |
| 24520 | 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 |
| 24540 | 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 | PI.key,.or.function.that.returns |
| 24560 | 20 74 68 65 20 6b 65 79 2e 20 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 6e 6f 74 | .the.key...This.is.typically.not |
| 24580 | 20 72 65 71 75 69 72 65 64 0a 66 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 6c 69 6b 65 20 | .required.for.local.models.like. |
| 245a0 | 4f 6c 6c 61 6d 61 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 | Ollama...REQUEST-PARAMS.(optiona |
| 245c0 | 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 20 48 54 54 50 | l).is.a.plist.of.additional.HTTP |
| 245e0 | 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 73 74 20 6b 65 | .request.parameters.(as.plist.ke |
| 24600 | 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 20 74 68 65 20 | ys).and.values.supported.by.the. |
| 24620 | 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 6d 65 74 65 72 | API...Use.these.to.set.parameter |
| 24640 | 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 64 65 20 75 73 | s.that.gptel.does.not.provide.us |
| 24660 | 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d 2d 2d 2d 2d | er.options.for...Example:.------ |
| 24680 | 2d 0a 0a 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 5c 22 4f 6c 6c 61 | -...(gptel-make-ollama....\"Olla |
| 246a0 | 6d 61 5c 22 0a 20 20 20 3a 68 6f 73 74 20 5c 22 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 5c | ma\"....:host.\"localhost:11434\ |
| 246c0 | 22 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 | "....:models.\\='(mistral:latest |
| 246e0 | 29 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 | )....:stream.t)"...(declare.(ind |
| 24700 | 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 70 74 65 6c 2d | ent.1))...(let.((backend.(gptel- |
| 24720 | 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | -make-ollama...................: |
| 24740 | 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 20 20 | curl-args.curl-args............. |
| 24760 | 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......:name.name................ |
| 24780 | 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:host.host................... |
| 247a0 | 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :header.header.................. |
| 247c0 | 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 | .:key.key...................:mod |
| 247e0 | 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c | els.(gptel--process-models.model |
| 24800 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 | s)...................:protocol.p |
| 24820 | 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f | rotocol...................:endpo |
| 24840 | 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | int.endpoint...................: |
| 24860 | 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | stream.stream................... |
| 24880 | 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 | :request-params.request-params.. |
| 248a0 | 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 6f 63 | .................:url.(if.protoc |
| 248c0 | 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 28 63 | ol............................(c |
| 248e0 | 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 6f 69 | oncat.protocol."://".host.endpoi |
| 24900 | 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 63 6f | nt)..........................(co |
| 24920 | 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 72 6f | ncat.host.endpoint))))).....(pro |
| 24940 | 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 67 65 | g1.backend.......(setf.(alist-ge |
| 24960 | 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 20 20 | t.name.gptel--known-backends.... |
| 24980 | 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 65 71 | ....................nil.nil.#'eq |
| 249a0 | 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 | ual)...................backend)) |
| 249c0 | 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 0a 3b 3b 3b 20 | ))..(provide.'gptel-ollama).;;;. |
| 249e0 | 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 0a 00 00 00 00 | gptel-ollama.el.ends.here....... |
| 24a00 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 00 00 00 00 00 00 00 | gptel-0.9.9/gptel-curl.el....... |
| 24a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24a60 | 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 |
| 24a80 | 30 30 35 34 33 31 35 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 | 0054315.00000000000.013713..0... |
| 24aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24b00 | 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................... |
| 24b20 | 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................... |
| 24b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 24c00 | 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 |
| 24c20 | 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | rt.for.gptel.........-*-.lexical |
| 24c40 | 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.( |
| 24c60 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 24c80 | 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 |
| 24ca0 | 72 3b 3b 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f | r;;.<karthikchikmagalur@gmail.co |
| 24cc0 | 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 | m>.;;.Keywords:.convenience..;;. |
| 24ce0 | 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 | SPDX-License-Identifier:.GPL-3.0 |
| 24d00 | 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 | -or-later..;;.This.program.is.fr |
| 24d20 | 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 | ee.software;.you.can.redistribut |
| 24d40 | 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 | e.it.and/or.modify.;;.it.under.t |
| 24d60 | 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c | he.terms.of.the.GNU.General.Publ |
| 24d80 | 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 | ic.License.as.published.by.;;.th |
| 24da0 | 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 | e.Free.Software.Foundation,.eith |
| 24dc0 | 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a | er.version.3.of.the.License,.or. |
| 24de0 | 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 | ;;.(at.your.option).any.later.ve |
| 24e00 | 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 | rsion...;;.This.program.is.distr |
| 24e20 | 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 | ibuted.in.the.hope.that.it.will. |
| 24e40 | 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 | be.useful,.;;.but.WITHOUT.ANY.WA |
| 24e60 | 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 | RRANTY;.without.even.the.implied |
| 24e80 | 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 | .warranty.of.;;.MERCHANTABILITY. |
| 24ea0 | 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 | or.FITNESS.FOR.A.PARTICULAR.PURP |
| 24ec0 | 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 | OSE...See.the.;;.GNU.General.Pub |
| 24ee0 | 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b | lic.License.for.more.details...; |
| 24f00 | 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 | ;.You.should.have.received.a.cop |
| 24f20 | 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 | y.of.the.GNU.General.Public.Lice |
| 24f40 | 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 | nse.;;.along.with.this.program.. |
| 24f60 | 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 | .If.not,.see.<https://www.gnu.or |
| 24f80 | 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a | g/licenses/>...;;;.Commentary:.. |
| 24fa0 | 3b 3b 20 43 75 72 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 2e 20 20 55 74 69 6c | ;;.Curl.support.for.gptel...Util |
| 24fc0 | 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 | ity.functions...;;;.Code:..(requ |
| 24fe0 | 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a | ire.'gptel)..(eval-when-compile. |
| 25000 | 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 | ..(require.'cl-lib)...(require.' |
| 25020 | 73 75 62 72 2d 78 29 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 0a 0a 28 64 65 63 6c 61 72 | subr-x)).(require.'map)..(declar |
| 25040 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a | e-function.json-read."json".()). |
| 25060 | 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c | (defvar.json-object-type)..(decl |
| 25080 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 | are-function.gptel--stream-conve |
| 250a0 | 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 0a 28 | rt-markdown->org."gptel-org")..( |
| 250c0 | 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 72 67 73 20 | defcustom.gptel-curl-extra-args. |
| 250e0 | 6e 69 6c 0a 20 20 22 45 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 70 61 73 73 20 74 | nil..."Extra.arguments.to.pass.t |
| 25100 | 6f 20 43 75 72 6c 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 20 71 75 65 72 69 65 73 2e 0a 0a 54 68 | o.Curl.when.sending.queries...Th |
| 25120 | 69 73 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 20 | is.should.be.a.list.of.strings,. |
| 25140 | 65 61 63 68 20 6f 6e 65 20 61 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 61 72 67 | each.one.a.Curl.command.line.arg |
| 25160 | 75 6d 65 6e 74 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 65 73 65 20 73 68 6f 75 6c 64 20 6e | ument...Note.that.these.should.n |
| 25180 | 6f 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 68 65 20 6f 70 74 69 6f 6e 73 0a 69 6e 20 | ot.conflict.with.the.options.in. |
| 251a0 | 60 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 27 2c 20 77 68 69 63 68 | `gptel-curl--common-args',.which |
| 251c0 | 20 67 70 74 65 6c 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 63 6f 72 72 65 63 74 0a 66 75 6e 63 | .gptel.requires.for.correct.func |
| 251e0 | 74 69 6f 6e 69 6e 67 2e 0a 0a 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 70 65 63 69 66 79 | tioning...If.you.want.to.specify |
| 25200 | 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 20 6f 6e 6c 79 20 77 68 65 6e 20 75 73 69 6e 67 | .extra.arguments.only.when.using |
| 25220 | 20 61 20 73 70 65 63 69 66 69 63 0a 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 2c 20 75 73 65 20 74 | .a.specific.gptel.backend,.use.t |
| 25240 | 68 65 20 60 3a 63 75 72 6c 2d 61 72 67 73 27 20 73 6c 6f 74 20 6f 66 20 74 68 65 20 62 61 63 6b | he.`:curl-args'.slot.of.the.back |
| 25260 | 65 6e 64 20 69 6e 73 74 65 61 64 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 | end.instead..See.`gptel-backend' |
| 25280 | 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 | ."...:group.'gptel...:type.'(rep |
| 252a0 | 65 61 74 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 63 75 | eat.string))..(defconst.gptel-cu |
| 252c0 | 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 73 79 73 74 | rl--common-args...(if.(memq.syst |
| 252e0 | 65 6d 2d 74 79 70 65 20 27 28 77 69 6e 64 6f 77 73 2d 6e 74 20 6d 73 2d 64 6f 73 29 29 0a 20 20 | em-type.'(windows-nt.ms-dos))... |
| 25300 | 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c 65 22 20 22 2d 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 | ....'("--disable"."--location"." |
| 25320 | 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 58 50 4f 53 54 22 0a 20 20 20 20 20 20 20 20 22 2d 79 37 32 | --silent"."-XPOST"........."-y72 |
| 25340 | 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 0a 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c | 00"."-Y1"."-D-").....'("--disabl |
| 25360 | 65 22 20 22 2d 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 2d 63 6f | e"."--location"."--silent"."--co |
| 25380 | 6d 70 72 65 73 73 65 64 22 0a 20 20 20 20 20 20 22 2d 58 50 4f 53 54 22 20 22 2d 79 37 32 30 30 | mpressed"......."-XPOST"."-y7200 |
| 253a0 | 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 29 0a 20 20 22 41 72 67 75 6d 65 6e 74 73 20 61 6c 77 | "."-Y1"."-D-"))..."Arguments.alw |
| 253c0 | 61 79 73 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 66 6f 72 20 67 70 74 65 6c 20 71 75 65 | ays.passed.to.Curl.for.gptel.que |
| 253e0 | 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d | ries.")..(defun.gptel-curl--get- |
| 25400 | 61 72 67 73 20 28 69 6e 66 6f 20 74 6f 6b 65 6e 29 0a 20 20 22 50 72 6f 64 75 63 65 20 6c 69 73 | args.(info.token)..."Produce.lis |
| 25420 | 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 63 61 6c 6c 69 6e 67 20 43 75 72 6c 2e | t.of.arguments.for.calling.Curl. |
| 25440 | 0a 0a 52 45 51 55 45 53 54 2d 44 41 54 41 20 69 73 20 74 68 65 20 64 61 74 61 20 74 6f 20 73 65 | ..REQUEST-DATA.is.the.data.to.se |
| 25460 | 6e 64 2c 20 54 4f 4b 45 4e 20 69 73 20 61 20 75 6e 69 71 75 65 20 69 64 65 6e 74 69 66 69 65 72 | nd,.TOKEN.is.a.unique.identifier |
| 25480 | 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | ."...(let*.((data.(plist-get.inf |
| 254a0 | 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 68 61 76 65 20 74 6f | o.:data))..........;;.We.have.to |
| 254c0 | 20 6c 65 74 2d 62 69 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 77 6f 20 76 61 72 69 | .let-bind.the.following.two.vari |
| 254e0 | 61 62 6c 65 73 20 73 69 6e 63 65 20 74 68 65 69 72 20 64 79 6e 61 6d 69 63 0a 20 20 20 20 20 20 | ables.since.their.dynamic....... |
| 25500 | 20 20 20 3b 3b 20 76 61 6c 75 65 73 20 61 72 65 20 75 73 65 64 20 66 6f 72 20 6b 65 79 20 6c 6f | ...;;.values.are.used.for.key.lo |
| 25520 | 6f 6b 75 70 20 61 6e 64 20 75 72 6c 20 72 65 73 6f 6c 6f 75 74 69 6f 6e 0a 20 20 20 20 20 20 20 | okup.and.url.resoloution........ |
| 25540 | 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | ..(gptel-backend.(plist-get.info |
| 25560 | 20 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 73 74 72 65 | .:backend))..........(gptel-stre |
| 25580 | 61 6d 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 | am.(plist-get.info.:stream)).... |
| 255a0 | 20 20 20 20 20 20 28 75 72 6c 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 2d 75 72 6c 20 28 67 | ......(url.(let.((backend-url.(g |
| 255c0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 75 72 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 | ptel-backend-url.gptel-backend)) |
| 255e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 | ).................(if.(functionp |
| 25600 | 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .backend-url)................... |
| 25620 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 | ..(with-current-buffer.(plist-ge |
| 25640 | 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.info.:buffer)................. |
| 25660 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 | ......(funcall.backend-url)).... |
| 25680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 29 0a 20 20 | ...............backend-url)))... |
| 256a0 | 20 20 20 20 20 20 20 28 64 61 74 61 2d 6a 73 6f 6e 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 | .......(data-json.(decode-coding |
| 256c0 | 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 64 61 74 61 | -string.(gptel--json-encode.data |
| 256e0 | 29 20 27 75 74 66 2d 38 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 73 0a 20 | ).'utf-8.t))..........(headers.. |
| 25700 | 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 27 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 | .........(append.'(("Content-Typ |
| 25720 | 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 29 0a 20 20 20 20 20 20 | e"..."application/json"))....... |
| 25740 | 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 68 65 61 64 65 72 20 | ............(when-let*.((header. |
| 25760 | 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 68 65 61 64 65 72 20 67 70 74 65 6c 2d 62 61 63 6b | (gptel-backend-header.gptel-back |
| 25780 | 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | end))).....................(if.( |
| 257a0 | 66 75 6e 63 74 69 6f 6e 70 20 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | functionp.header)............... |
| 257c0 | 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 68 65 61 64 65 72 29 20 68 65 61 64 65 | ..........(funcall.header).heade |
| 257e0 | 72 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c | r))))).....(when.gptel-log-level |
| 25800 | 0a 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 | .......(when.(eq.gptel-log-level |
| 25820 | 20 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 | .'debug).........(gptel--log.(gp |
| 25840 | 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel--json-encode................ |
| 25860 | 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f | ......(mapcar.(lambda.(pair).(co |
| 25880 | 6e 73 20 28 69 6e 74 65 72 6e 20 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 | ns.(intern.(car.pair)).(cdr.pair |
| 258a0 | 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 | )))............................. |
| 258c0 | 20 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 20 20 22 | .headers))....................." |
| 258e0 | 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 65 6c 2d | request.headers")).......(gptel- |
| 25900 | 2d 6c 6f 67 20 64 61 74 61 2d 6a 73 6f 6e 20 22 72 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a | -log.data-json."request.body")). |
| 25920 | 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d | ....(append......gptel-curl--com |
| 25940 | 6d 6f 6e 2d 61 72 67 73 0a 20 20 20 20 20 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 | mon-args......gptel-curl-extra-a |
| 25960 | 72 67 73 0a 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 63 75 72 6c 2d 61 72 67 73 20 28 | rgs......(and-let*.((curl-args.( |
| 25980 | 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 |
| 259a0 | 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 | ckend)))........(if.(functionp.c |
| 259c0 | 75 72 6c 2d 61 72 67 73 29 20 28 66 75 6e 63 61 6c 6c 20 63 75 72 6c 2d 61 72 67 73 29 20 63 75 | url-args).(funcall.curl-args).cu |
| 259e0 | 72 6c 2d 61 72 67 73 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 77 | rl-args))......(list.(format."-w |
| 25a00 | 28 25 73 20 2e 20 25 25 7b 73 69 7a 65 5f 68 65 61 64 65 72 7d 29 22 20 74 6f 6b 65 6e 29 29 0a | (%s...%%{size_header})".token)). |
| 25a20 | 20 20 20 20 20 28 69 66 20 28 6c 65 6e 67 74 68 3c 20 64 61 74 61 2d 6a 73 6f 6e 20 67 70 74 65 | .....(if.(length<.data-json.gpte |
| 25a40 | 6c 2d 63 75 72 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f 6c 64 29 0a 20 20 20 20 | l-curl-file-size-threshold)..... |
| 25a60 | 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 64 25 73 22 20 64 61 74 61 2d 6a | .....(list.(format."-d%s".data-j |
| 25a80 | 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 28 6c 65 74 72 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 | son))........(letrec............ |
| 25aa0 | 28 28 74 65 6d 70 2d 66 69 6c 65 6e 61 6d 65 20 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 | ((temp-filename.(make-temp-file. |
| 25ac0 | 22 67 70 74 65 6c 2d 63 75 72 6c 2d 64 61 74 61 22 20 6e 69 6c 20 22 2e 6a 73 6f 6e 22 20 64 61 | "gptel-curl-data".nil.".json".da |
| 25ae0 | 74 61 2d 6a 73 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 | ta-json)).............(cleanup-f |
| 25b00 | 6e 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 | n.(lambda.(&rest._)............. |
| 25b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 | ..............(when.(file-exists |
| 25b40 | 2d 70 20 74 65 6d 70 2d 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -p.temp-filename)............... |
| 25b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 74 65 6d 70 2d | ..............(delete-file.temp- |
| 25b80 | 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 20 20 20 20 20 | filename)....................... |
| 25ba0 | 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 2d 72 | ......(remove-hook.'gptel-post-r |
| 25bc0 | 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 29 29 | esponse-functions.cleanup-fn)))) |
| 25be0 | 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 6c 2d 70 6f 73 74 | )..........(add-hook.'gptel-post |
| 25c00 | 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 0a | -response-functions.cleanup-fn). |
| 25c20 | 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 61 2d 62 69 6e 61 72 79 22 0a 20 | .........(list."--data-binary".. |
| 25c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 40 25 73 22 20 74 65 6d 70 | ..............(format."@%s".temp |
| 25c60 | 2d 66 69 6c 65 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 | -filename))))......(when.(not.(s |
| 25c80 | 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 67 70 74 65 6c 2d 70 72 6f 78 79 29 29 0a 20 20 20 20 | tring-empty-p.gptel-proxy))..... |
| 25ca0 | 20 20 20 28 6c 69 73 74 20 22 2d 2d 70 72 6f 78 79 22 20 67 70 74 65 6c 2d 70 72 6f 78 79 0a 20 | ...(list."--proxy".gptel-proxy.. |
| 25cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 6e 65 67 6f 74 69 61 74 65 22 0a | ............"--proxy-negotiate". |
| 25ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 75 73 65 72 22 20 22 3a 22 29 | ............."--proxy-user".":") |
| 25d00 | 29 0a 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 2e 20 76 61 6c 29 20 | )......(cl-loop.for.(key...val). |
| 25d20 | 69 6e 20 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 | in.headers...............collect |
| 25d40 | 20 28 66 6f 72 6d 61 74 20 22 2d 48 25 73 3a 20 25 73 22 20 6b 65 79 20 76 61 6c 29 29 0a 20 20 | .(format."-H%s:.%s".key.val))... |
| 25d60 | 20 20 20 28 6c 69 73 74 20 75 72 6c 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | ...(list.url))))..;;;###autoload |
| 25d80 | 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 73 70 6f 6e 73 65 20 | .(defun.gptel-curl-get-response. |
| 25da0 | 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 6d 70 | (fsm)..."Fetch.response.to.promp |
| 25dc0 | 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 20 75 73 69 6e | t.in.state.FSM.from.the.LLM.usin |
| 25de0 | 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 20 6d 61 63 68 69 6e | g.Curl...FSM.is.the.state.machin |
| 25e00 | 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 46 53 4d 20 69 73 20 | e.driving.this.request...FSM.is. |
| 25e20 | 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 68 69 73 20 72 | the.state.machine.driving.this.r |
| 25e40 | 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 6e 74 61 69 6e 73 20 | equest...Its.INFO.slot.contains. |
| 25e60 | 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 74 69 6e 67 20 75 70 | the.data.required.for.setting.up |
| 25e80 | 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 70 6c 69 73 74 20 77 | .the.request...INFO.is.a.plist.w |
| 25ea0 | 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 6d 6f 6e 67 20 6f 74 | ith.the.following.keys,.among.ot |
| 25ec0 | 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 74 61 20 62 65 69 6e | hers:.-.:data.....(the.data.bein |
| 25ee0 | 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 67 70 74 65 6c 20 62 | g.sent).-.:buffer...(the.gptel.b |
| 25f00 | 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 72 20 61 74 20 77 68 | uffer).-.:position.(marker.at.wh |
| 25f20 | 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 65 29 2e 0a 2d 20 3a | ich.to.insert.the.response)..-.: |
| 25f40 | 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 65 71 75 65 73 74 20 | callback.(optional,.the.request. |
| 25f60 | 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 77 69 74 68 20 74 68 | callback)..Call.CALLBACK.with.th |
| 25f80 | 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 77 61 72 64 73 2e 20 | e.response.and.INFO.afterwards.. |
| 25fa0 | 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 69 73 20 69 6e 73 65 | .If.omitted.the.response.is.inse |
| 25fc0 | 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 66 65 72 20 61 66 74 | rted.into.the.current.buffer.aft |
| 25fe0 | 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 6e 20 28 6d 64 35 20 | er.point."...(let*.((token.(md5. |
| 26000 | 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 20 20 20 20 20 20 20 | (format."%s%s%s%s".............. |
| 26020 | 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 28 65 6d 61 63 73 2d | ................(random).(emacs- |
| 26040 | 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 20 20 20 20 20 20 20 | pid).(user-full-name)........... |
| 26060 | 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 74 2d 6b 65 79 73 29 | ...................(recent-keys) |
| 26080 | 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 2d 66 73 6d 2d 69 6e | )))..........(info.(gptel-fsm-in |
| 260a0 | 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 | fo.fsm))..........(backend.(plis |
| 260c0 | 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))..........( |
| 260e0 | 61 72 67 73 20 28 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 | args.(gptel-curl--get-args.info. |
| 26100 | 74 6f 6b 65 6e 29 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 | token))..........(stream.(plist- |
| 26120 | 67 65 74 20 69 6e 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 | get.info.:stream))..........(pro |
| 26140 | 63 65 73 73 20 28 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 | cess.(apply.#'start-process."gpt |
| 26160 | 65 6c 2d 63 75 72 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 | el-curl"........................ |
| 26180 | 20 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d 63 | ..(gptel--temp-buffer.".*gptel-c |
| 261a0 | 75 72 6c 2a 22 29 20 28 67 70 74 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 29 20 61 72 67 73 29 29 | url*").(gptel--curl-path).args)) |
| 261c0 | 29 0a 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. |
| 261e0 | 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 6d 61 70 63 6f | 'debug).......(gptel--log.(mapco |
| 26200 | 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 28 63 6f 6e | ncat.#'shell-quote-argument.(con |
| 26220 | 73 20 28 67 70 74 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 29 20 61 72 67 73 29 20 22 20 5c 5c 5c | s.(gptel--curl-path).args).".\\\ |
| 26240 | 6e 22 29 0a 20 20 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 43 | n")..................."request.C |
| 26260 | 75 72 6c 20 63 6f 6d 6d 61 6e 64 22 20 27 6e 6f 2d 6a 73 6f 6e 29 29 0a 20 20 20 20 28 77 69 74 | url.command".'no-json)).....(wit |
| 26280 | 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 72 | h-current-buffer.(process-buffer |
| 262a0 | 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 65 | .process).......(cond........((e |
| 262c0 | 71 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 62 | q.(gptel-backend-coding-system.b |
| 262e0 | 61 63 6b 65 6e 64 29 20 27 62 69 6e 61 72 79 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 73 65 74 2d | ackend).'binary).........;;.set- |
| 26300 | 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 69 73 20 6e 6f 74 | buffer-file-coding-system.is.not |
| 26320 | 20 6e 65 65 64 65 64 20 73 69 6e 63 65 20 77 65 20 64 6f 6e 27 74 20 73 61 76 65 20 74 68 69 73 | .needed.since.we.don't.save.this |
| 26340 | 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 | .buffer.........(set-buffer-mult |
| 26360 | 69 62 79 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d | ibyte.nil).........(set-process- |
| 26380 | 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 70 72 6f 63 65 73 73 20 27 62 69 6e 61 72 79 20 27 62 | coding-system.process.'binary.'b |
| 263a0 | 69 6e 61 72 79 29 29 0a 20 20 20 20 20 20 20 28 74 0a 09 3b 3b 20 44 6f 6e 27 74 20 74 72 79 20 | inary))........(t..;;.Don't.try. |
| 263c0 | 74 6f 20 63 6f 6e 76 65 72 74 20 63 72 2d 6c 66 20 74 6f 20 63 72 20 6f 6e 20 57 69 6e 64 6f 77 | to.convert.cr-lf.to.cr.on.Window |
| 263e0 | 73 20 73 6f 20 74 68 61 74 20 63 75 72 6c 27 73 20 22 68 65 61 64 65 72 20 73 69 7a 65 0a 09 3b | s.so.that.curl's."header.size..; |
| 26400 | 3b 20 69 6e 20 62 79 74 65 73 22 20 73 74 61 79 73 20 63 6f 72 72 65 63 74 2e 20 45 78 70 6c 69 | ;.in.bytes".stays.correct..Expli |
| 26420 | 63 69 74 6c 79 20 73 65 74 20 75 74 66 2d 38 20 66 6f 72 20 6e 6f 6e 2d 77 69 6e 20 73 79 73 74 | citly.set.utf-8.for.non-win.syst |
| 26440 | 65 6d 73 20 74 6f 6f 2c 0a 09 3b 3b 20 66 6f 72 20 63 61 73 65 73 20 77 68 65 6e 20 62 75 66 66 | ems.too,..;;.for.cases.when.buff |
| 26460 | 65 72 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 69 73 20 6e 6f 74 20 73 65 74 20 74 6f 20 75 | er.coding.system.is.not.set.to.u |
| 26480 | 74 66 2d 38 2e 0a 09 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 | tf-8...(set-process-coding-syste |
| 264a0 | 6d 20 70 72 6f 63 65 73 73 20 27 75 74 66 2d 38 2d 75 6e 69 78 20 27 75 74 66 2d 38 2d 75 6e 69 | m.process.'utf-8-unix.'utf-8-uni |
| 264c0 | 78 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 71 75 65 72 79 2d 6f 6e | x))).......(set-process-query-on |
| 264e0 | 2d 65 78 69 74 2d 66 6c 61 67 20 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 69 | -exit-flag.process.nil).......(i |
| 26500 | 66 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 20 20 20 20 20 20 20 | f.(plist-get.info.:token)....... |
| 26520 | 3b 6e 6f 74 20 74 68 65 20 66 69 72 73 74 20 72 75 6e 2c 20 73 65 74 20 6f 6e 6c 79 20 74 68 65 | ;not.the.first.run,.set.only.the |
| 26540 | 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f | .token...........(plist-put.info |
| 26560 | 20 3a 74 6f 6b 65 6e 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 67 70 | .:token.token).........(setf.(gp |
| 26580 | 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 20 20 20 20 20 3b 66 69 73 74 20 72 75 6e | tel-fsm-info.fsm)......;fist.run |
| 265a0 | 2c 20 73 65 74 20 61 6c 6c 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 | ,.set.all.process.parameters.... |
| 265c0 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 3a 74 6f 6b 65 6e 20 74 | ...........(nconc.(list.:token.t |
| 265e0 | 6f 6b 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 20 20 | oken............................ |
| 26600 | 3a 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 20 20 20 20 | :transformer.................... |
| 26620 | 20 20 20 20 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 | ........(when.(with-current-buff |
| 26640 | 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 20 20 20 | er.(plist-get.info.:buffer)..... |
| 26660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 26680 | 61 6e 64 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 29 0a 20 | and.(derived-mode-p.'org-mode).. |
| 266a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 266c0 | 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 73 70 6f 6e 73 | .......gptel-org-convert-respons |
| 266e0 | 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 20 20 20 20 20 | e))............................. |
| 26700 | 20 28 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e | .(gptel--stream-convert-markdown |
| 26720 | 2d 3e 6f 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 20 20 20 20 | ->org........................... |
| 26740 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 | ....(plist-get.info.:position))) |
| 26760 | 29 0a 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 28 | )......................(unless.( |
| 26780 | 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)....... |
| 267a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 63 61 6c 6c 62 61 63 6b | .................(list.:callback |
| 267c0 | 20 28 69 66 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 | .(if.stream..................... |
| 267e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 | .......................#'gptel-c |
| 26800 | 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 | url--stream-insert-response..... |
| 26820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 26840 | 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 | .....#'gptel--insert-response))) |
| 26860 | 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 29 29 29 0a 20 20 | ......................info)))... |
| 26880 | 20 20 20 20 28 69 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 | ....(if.stream...........(progn. |
| 268a0 | 28 73 65 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 | (set-process-sentinel.process.#' |
| 268c0 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 | gptel-curl--stream-cleanup)..... |
| 268e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 | .............(set-process-filter |
| 26900 | 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 2d 66 69 | .process.#'gptel-curl--stream-fi |
| 26920 | 6c 74 65 72 29 29 0a 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 | lter)).........(set-process-sent |
| 26940 | 69 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 65 6e 74 69 | inel.process.#'gptel-curl--senti |
| 26960 | 6e 65 6c 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f | nel)).......(setf.(alist-get.pro |
| 26980 | 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 29 0a 20 20 20 20 20 | cess.gptel--request-alist)...... |
| 269a0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 66 73 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(cons.fsm................ |
| 269c0 | 20 20 20 23 27 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 | ...#'(lambda.()................. |
| 269e0 | 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 20 75 70 20 43 75 72 6c 20 70 72 6f 63 65 73 73 0a 20 | ......;;.Clean.up.Curl.process.. |
| 26a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 | .....................(set-proces |
| 26a20 | 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 73 73 20 23 27 69 67 6e 6f 72 65 29 0a 20 20 20 | s-sentinel.process.#'ignore).... |
| 26a40 | 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 70 72 6f 63 65 | ...................(delete-proce |
| 26a60 | 73 73 20 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ss.process)..................... |
| 26a80 | 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 | ..(kill-buffer.(process-buffer.p |
| 26aa0 | 72 6f 63 65 73 73 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 3b 3b 20 41 68 65 61 64 2d 4f 66 2d 54 | rocess))))))))..;;.;;.Ahead-Of-T |
| 26ac0 | 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 65 72 | ime.dispatch.code.for.the.parser |
| 26ae0 | 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 72 69 | s.;;.:parser.;.FIXME.`cl--generi |
| 26b00 | 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 20 28 | c-*'.are.internal.functions.;;.( |
| 26b20 | 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 20 20 | cl--generic-method-function.;;.. |
| 26b40 | 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 20 20 | (if.stream.;;......(cl-loop.;;.. |
| 26b60 | 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 2d 63 | .....for.type.in.;;.......(cl--c |
| 26b80 | 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 62 61 | lass-allparents.(get.(type-of.ba |
| 26ba0 | 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 69 74 | ckend).'cl--class)).;;.......wit |
| 26bc0 | 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 64 2d | h.methods.=.(cl--generic-method- |
| 26be0 | 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 20 28 | table.;;.......................( |
| 26c00 | 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 2d 73 | cl--generic.'gptel-curl--parse-s |
| 26c20 | 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 65 72 | tream)).;;.......when.(cl--gener |
| 26c40 | 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 6c 20 | ic-member-method.`(,type.t).nil. |
| 26c60 | 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 69 74 | methods).;;.......return.(car.it |
| 26c80 | 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 79 70 | )).;;....(cl-loop.;;.....for.typ |
| 26ca0 | 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 6e 74 | e.in.;;.....(cl--class-allparent |
| 26cc0 | 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 63 6c | s.(get.(type-of.backend).'cl--cl |
| 26ce0 | 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 6c 2d | ass)).;;.....with.methods.=.(cl- |
| 26d00 | 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 20 20 | -generic-method-table.;;........ |
| 26d20 | 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 65 6c | .............(cl--generic.'gptel |
| 26d40 | 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 20 28 | --parse-response)).;;.....when.( |
| 26d60 | 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 79 70 | cl--generic-member-method.`(,typ |
| 26d80 | 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 75 72 | e.t.t).nil.methods).;;.....retur |
| 26da0 | 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 72 6c | n.(car.it))))..(defun.gptel-curl |
| 26dc0 | 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 69 6e | --log-response.(proc-buf.proc-in |
| 26de0 | 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 52 4f | fo)..."Parse.response.buffer.PRO |
| 26e00 | 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 49 4e | C-BUF.and.log.response...PROC-IN |
| 26e20 | 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 63 65 | FO.is.the.plist.containing.proce |
| 26e40 | 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 62 75 | ss.metadata."...(with-current-bu |
| 26e60 | 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 69 6f | ffer.proc-buf.....(save-excursio |
| 26e80 | 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 29 0a | n.......(goto-char.(point-min)). |
| 26ea0 | 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 20 22 | ......(when.(re-search-forward." |
| 26ec0 | 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 20 28 | .?\n.?\n".nil.t).........(when.( |
| 26ee0 | 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 20 20 | eq.gptel-log-level.'debug)...... |
| 26f00 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e | .....(gptel--log.(gptel--json-en |
| 26f20 | 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 75 66 | code........................(buf |
| 26f40 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 | fer-substring-no-properties..... |
| 26f60 | 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). |
| 26f80 | 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 20 20 | (1-.(point)))).................. |
| 26fa0 | 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 20 20 | ....."response.headers"))....... |
| 26fc0 | 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 20 28 | ..(let.((p.(point)))...........( |
| 26fe0 | 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 74 20 | when.(search-forward.(plist-get. |
| 27000 | 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 20 20 | proc-info.:token).nil.t)........ |
| 27020 | 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 69 6e | .....(goto-char.(1-.(match-begin |
| 27040 | 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 6c 6f | ning.0))).............(gptel--lo |
| 27060 | 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 69 65 | g.(buffer-substring-no-propertie |
| 27080 | 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 20 20 | s.p.(point)).................... |
| 270a0 | 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 3b 20 | ....."response.body")))))))..;;. |
| 270c0 | 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 66 72 | TODO:.Separate.user-messaging.fr |
| 270e0 | 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 63 75 | om.this.function.(defun.gptel-cu |
| 27100 | 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 74 61 | rl--stream-cleanup.(process._sta |
| 27120 | 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 70 74 | tus)..."Process.sentinel.for.gpt |
| 27140 | 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 20 5f | el.curl.requests...PROCESS.and._ |
| 27160 | 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 22 0a | STATUS.are.process.parameters.". |
| 27180 | 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 66 65 | ..(let.((proc-buf.(process-buffe |
| 271a0 | 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 63 61 | r.process))).....(let*.((fsm.(ca |
| 271c0 | 72 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 71 75 | r.(alist-get.process.gptel--requ |
| 271e0 | 65 73 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 | est-alist)))............(info.(g |
| 27200 | 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 28 | ptel-fsm-info.fsm))............( |
| 27220 | 68 74 74 70 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 | http-status.(plist-get.info.:htt |
| 27240 | 70 2d 73 74 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 | p-status))).......(when.gptel-lo |
| 27260 | 67 2d 6c 65 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 | g-level.(gptel-curl--log-respons |
| 27280 | 65 20 70 72 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 | e.proc-buf.info)).;logging...... |
| 272a0 | 20 28 69 66 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 | .(if.(member.http-status.'("200" |
| 272c0 | 20 22 31 30 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 | ."100")).;Finish.handling.respon |
| 272e0 | 73 65 0a 20 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 | se...........;;.Run.the.callback |
| 27300 | 20 6f 6e 65 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 | .one.last.time.to.signal.that.th |
| 27320 | 65 20 70 72 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 | e.process.has.ended...........(w |
| 27340 | 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 |
| 27360 | 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 28 66 75 6e 63 61 | ck.error:.%S".............(funca |
| 27380 | 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 20 74 20 | ll.(plist-get.info.:callback).t. |
| 273a0 | 69 6e 66 6f 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 | info)).........(with-current-buf |
| 273c0 | 66 65 72 20 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 | fer.proc-buf...;.Or.Capture.erro |
| 273e0 | 72 20 6d 65 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 | r.message...........(goto-char.( |
| 27400 | 70 6f 69 6e 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 | point-max))...........(search-ba |
| 27420 | 63 6b 77 61 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 | ckward.(plist-get.info.:token)). |
| 27440 | 20 20 20 20 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 | ..........(backward-char)....... |
| 27460 | 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e 20 2c 68 65 61 64 65 72 | ....(pcase-let*.((`(,_...,header |
| 27480 | 2d 73 69 7a 65 29 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a | -size).(read.(current-buffer))). |
| 274a0 | 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 73 70 6f 6e 73 65 | .......................(response |
| 274c0 | 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 29 0a | .(progn.(goto-char.header-size). |
| 274e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 27500 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 20 28 67 70 74 | ........(condition-case.nil.(gpt |
| 27520 | 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).................. |
| 27540 | 20 20 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 72 72 6f 72 20 | .........................(error. |
| 27560 | 27 6a 73 6f 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 | 'json-read-error))))............ |
| 27580 | 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 20 20 20 20 20 | ............(error-data......... |
| 275a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 70 6c 69 73 74 70 20 72 | ................(cond.((plistp.r |
| 275c0 | 65 73 70 6f 6e 73 65 29 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 | esponse).(plist-get.response.:er |
| 275e0 | 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))........................... |
| 27600 | 20 20 20 20 28 28 61 72 72 61 79 70 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 | ....((arrayp.response).......... |
| 27620 | 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 73 6f 6d 65 20 28 | ......................(cl-some.( |
| 27640 | 6c 61 6d 62 64 61 20 28 65 6c 29 20 28 70 6c 69 73 74 2d 67 65 74 20 65 6c 20 3a 65 72 72 6f 72 | lambda.(el).(plist-get.el.:error |
| 27660 | 29 29 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | )).response))))).............(co |
| 27680 | 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 20 | nd..............(error-data..... |
| 276a0 | 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 |
| 276c0 | 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 20 | .error-data))..............((eq. |
| 276e0 | 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 20 | response.'json-read-error)...... |
| 27700 | 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 20 | .........(plist-put.info.:error. |
| 27720 | 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 0a | "Malformed.JSON.in.response.")). |
| 27740 | 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 20 | .............(t.(plist-put.info. |
| 27760 | 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 73 | :error."Could.not.parse.HTTP.res |
| 27780 | 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 74 | ponse."))))).........(with-demot |
| 277a0 | 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 3a | ed-errors."gptel.callback.error: |
| 277c0 | 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 67 | .%S"...........(funcall.(plist-g |
| 277e0 | 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 20 | et.info.:callback).nil.info))).. |
| 27800 | 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 29 | .....(gptel--fsm-transition.fsm) |
| 27820 | 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 20 | )......;.Move.to.next.state..... |
| 27840 | 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 2d | (setf.(alist-get.process.gptel-- |
| 27860 | 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). |
| 27880 | 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 64 | ....(kill-buffer.proc-buf)))..(d |
| 278a0 | 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 72 | efun.gptel-curl--stream-insert-r |
| 278c0 | 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 6c | esponse.(response.info.&optional |
| 278e0 | 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 4e | .raw)..."Insert.streaming.RESPON |
| 27900 | 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 75 | SE.from.an.LLM.into.the.gptel.bu |
| 27920 | 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 63 | ffer...INFO.is.a.mutable.plist.c |
| 27940 | 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 74 | ontaining.information.relevant.t |
| 27960 | 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 67 | o.this.buffer..See.`gptel--url-g |
| 27980 | 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 6f | et-response'.for.details...Optio |
| 279a0 | 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 73 | nal.RAW.disables.text.properties |
| 279c0 | 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 72 | .and.transformation."...(pcase.r |
| 279e0 | 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 20 | esponse.....((pred.stringp)..... |
| 27a00 | 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 20 | .(let.((start-marker.(plist-get. |
| 27a20 | 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 61 | info.:position))............(tra |
| 27a40 | 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 |
| 27a60 | 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 6e | acking-marker))............(tran |
| 27a80 | 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 6f | sformer.(plist-get.info.:transfo |
| 27aa0 | 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 66 | rmer)))........(with-current-buf |
| 27ac0 | 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) |
| 27ae0 | 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 20 | ..........(save-excursion....... |
| 27b00 | 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 20 | .....(unless.tracking-marker.... |
| 27b20 | 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 65 | ..........(goto-char.start-marke |
| 27b40 | 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 62 | r)..............(unless.(or.(bob |
| 27b60 | 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 20 | p).(plist-get.info.:in-place)).. |
| 27b80 | 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 70 | ..............(insert.gptel-resp |
| 27ba0 | 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 28 | onse-separator)................( |
| 27bc0 | 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 20 | when.gptel-mode................. |
| 27be0 | 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 73 | .;;.Put.prefix.before.AI.respons |
| 27c00 | 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 74 | e...................(insert.(gpt |
| 27c20 | 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 20 | el-response-prefix-string))).... |
| 27c40 | 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 6d | ............(move-marker.start-m |
| 27c60 | 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 65 | arker.(point)))..............(se |
| 27c80 | 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 28 | tq.tracking-marker.(set-marker.( |
| 27ca0 | 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 20 | make-marker).(point))).......... |
| 27cc0 | 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 74 | ....(set-marker-insertion-type.t |
| 27ce0 | 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 28 | racking-marker.t)..............( |
| 27d00 | 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 20 | plist-put.info.:tracking-marker. |
| 27d20 | 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 6f | tracking-marker))............(go |
| 27d40 | 74 6f 2d 63 68 61 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 | to-char.tracking-marker)........ |
| 27d60 | 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 68 | ....(unless.raw..............(wh |
| 27d80 | 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 73 | en.transformer................(s |
| 27da0 | 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 65 | etq.response.(funcall.transforme |
| 27dc0 | 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 2d | r.response)))..............(add- |
| 27de0 | 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 20 | text-properties...............0. |
| 27e00 | 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 6e | (length.response).'(gptel.respon |
| 27e20 | 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 20 | se.front-sticky.(gptel))........ |
| 27e40 | 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 20 | .......response))............;;. |
| 27e60 | 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 6f | (run-hooks.'gptel-pre-stream-hoo |
| 27e80 | 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 0a | k)............(insert.response). |
| 27ea0 | 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 73 | ...........(run-hooks.'gptel-pos |
| 27ec0 | 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 6e | t-stream-hook))))).....(`(reason |
| 27ee0 | 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 61 | ing...,text)......(gptel--displa |
| 27f00 | 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 20 | y-reasoning-stream.text.info)).. |
| 27f20 | 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 20 | ...(`(tool-call...,tool-calls).. |
| 27f40 | 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 74 | ....(gptel--display-tool-calls.t |
| 27f60 | 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 73 | ool-calls.info)).....(`(tool-res |
| 27f80 | 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 6c | ult...,tool-results)......(gptel |
| 27fa0 | 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 75 | --display-tool-results.tool-resu |
| 27fc0 | 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 2d | lts.info))))..(defun.gptel-curl- |
| 27fe0 | 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 0a | -stream-filter.(process.output). |
| 28000 | 20 20 28 6c 65 74 2a 20 28 28 66 73 6d 20 28 63 61 72 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 | ..(let*.((fsm.(car.(alist-get.pr |
| 28020 | 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 29 29 29 0a 20 20 | ocess.gptel--request-alist)))... |
| 28040 | 20 20 20 20 20 20 20 28 70 72 6f 63 2d 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 | .......(proc-info.(gptel-fsm-inf |
| 28060 | 6f 20 66 73 6d 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 | o.fsm))..........(callback.(or.( |
| 28080 | 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 | plist-get.proc-info.:callback).. |
| 280a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 75 | ......................#'gptel-cu |
| 280c0 | 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 | rl--stream-insert-response)))... |
| 280e0 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d | ..(with-current-buffer.(process- |
| 28100 | 62 75 66 66 65 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 | buffer.process).......;;.Insert. |
| 28120 | 6f 75 74 70 75 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 | output.......(save-excursion.... |
| 28140 | 20 20 20 20 20 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 | .....(goto-char.(process-mark.pr |
| 28160 | 6f 63 65 73 73 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 | ocess)).........(insert.output). |
| 28180 | 20 20 20 20 20 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 | ........(set-marker.(process-mar |
| 281a0 | 6b 20 70 72 6f 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 | k.process).(point)))............ |
| 281c0 | 20 20 3b 3b 20 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 | ..;;.Find.HTTP.status.......(unl |
| 281e0 | 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 | ess.(plist-get.proc-info.:http-s |
| 28200 | 74 61 74 75 73 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 | tatus).........(save-excursion.. |
| 28220 | 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)) |
| 28240 | 0a 20 20 20 20 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 | ...........(when-let*.(((not.(=. |
| 28260 | 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 | (line-end-position).(point-max)) |
| 28280 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 6d | )).......................(http-m |
| 282a0 | 73 67 20 28 62 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 | sg.(buffer-substring.(line-begin |
| 282c0 | 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ning-position).................. |
| 282e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 28300 | 20 28 6c 69 6e 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 | .(line-end-position))).......... |
| 28320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 | .............(http-status....... |
| 28340 | 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 68 2d 64 61 74 | .................(save-match-dat |
| 28360 | 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 28 61 6e 64 20 | a..........................(and. |
| 28380 | 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 28 | (string-match."HTTP/[.0-9]+.+\\( |
| 283a0 | 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 20 | [0-9]+\\)".http-msg)............ |
| 283c0 | 20 20 20 20 20 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 | ...................(match-string |
| 283e0 | 20 31 20 68 74 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 | .1.http-msg))))).............(pl |
| 28400 | 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 73 20 68 | ist-put.proc-info.:http-status.h |
| 28420 | 74 74 70 2d 73 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 | ttp-status).............(plist-p |
| 28440 | 75 74 20 70 72 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 | ut.proc-info.:status.(string-tri |
| 28460 | 6d 20 68 74 74 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 | m.http-msg)).............(gptel- |
| 28480 | 2d 66 73 6d 2d 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 | -fsm-transition.fsm))))......... |
| 284a0 | 20 20 20 20 20 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 | .....(when-let*.((http-msg.(plis |
| 284c0 | 74 2d 67 65 74 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 | t-get.proc-info.:status))....... |
| 284e0 | 20 20 20 20 20 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 | ............(http-status.(plist- |
| 28500 | 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 29 29 29 0a 20 20 | get.proc-info.:http-status)))... |
| 28520 | 20 20 20 20 20 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 | ......;;.Find.data.chunk(s).and. |
| 28540 | 72 75 6e 20 63 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 | run.callback.........;;.FIXME.Ha |
| 28560 | 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 20 69 73 20 | ndle.the.case.where.HTTP.100.is. |
| 28580 | 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 55 47 20 23 | followed.by.HTTP.(not.200).BUG.# |
| 285a0 | 31 39 34 0a 20 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 | 194.........(when.(member.http-s |
| 285c0 | 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 | tatus.'("200"."100"))........... |
| 285e0 | 28 6c 65 74 20 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 | (let.((response.(gptel-curl--par |
| 28600 | 73 65 2d 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 | se-stream....................... |
| 28620 | 20 20 20 20 20 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 | .....(plist-get.proc-info.:backe |
| 28640 | 6e 64 29 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 | nd).proc-info))................. |
| 28660 | 28 72 65 61 73 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 | (reasoning-block.(plist-get.proc |
| 28680 | 2d 69 6e 66 6f 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 | -info.:reasoning-block)))....... |
| 286a0 | 20 20 20 20 20 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 | ......;;.Depending.on.the.API,.t |
| 286c0 | 68 65 72 65 20 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 | here.are.two.modes.that.reasonin |
| 286e0 | 67 20 6f 72 0a 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 | g.or.............;;.chain-of-tho |
| 28700 | 75 67 68 74 20 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 | ught.content.appears:.as.part.of |
| 28720 | 20 74 68 65 20 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 | .the.main.response.............; |
| 28740 | 3b 20 62 75 74 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 | ;.but.surrounded.by.<think>...</ |
| 28760 | 74 68 69 6e 6b 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 | think>.tags,.or.as.a.separate... |
| 28780 | 20 20 20 20 20 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 | ..........;;.JSON.field.in.the.r |
| 287a0 | 65 73 70 6f 6e 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 | esponse.stream..............;;.. |
| 287c0 | 20 20 20 20 20 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 | ...........;;.These.cases.are.ha |
| 287e0 | 6e 64 6c 65 64 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 | ndled.using.two.PROC-INFO.keys:. |
| 28800 | 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 72 | ............;;.............;;.:r |
| 28820 | 65 61 73 6f 6e 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 | easoning-block.is.nil.before.che |
| 28840 | 63 6b 69 6e 67 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 | cking.for.reasoning,.'in.when... |
| 28860 | 20 20 20 20 20 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 | ..........;;.in.a.reasoning.bloc |
| 28880 | 6b 2c 20 74 20 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 | k,.t.when.we.reach.the.end.of.th |
| 288a0 | 65 20 62 6c 6f 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 | e.block,.and.............;;.'don |
| 288c0 | 65 20 61 66 74 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 | e.afterwards.or.if.no.reasoning. |
| 288e0 | 62 6c 6f 63 6b 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 | block.is.found...This........... |
| 28900 | 20 20 3b 3b 20 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 | ..;;.applies.to.both.the.modes.a |
| 28920 | 62 6f 76 65 2e 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 | bove..............;;............ |
| 28940 | 20 3b 3b 20 3a 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 | .;;.:reasoning.contains.the.reas |
| 28960 | 6f 6e 69 6e 67 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 | oning.text.parsed.from.the.separ |
| 28980 | 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4a 53 4f 4e 20 66 69 65 6c 64 2e 0a 20 | ate.............;;.JSON.field... |
| 289a0 | 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 4e 4f 54 | ...........;;.............;;.NOT |
| 289c0 | 45 3a 20 57 65 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 | E:.We.assume.here.that.the.reaso |
| 289e0 | 6e 69 6e 67 20 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 | ning.block.always.............;; |
| 28a00 | 20 70 72 65 63 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 | .precedes.the.main.response.bloc |
| 28a20 | 6b 2e 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 72 65 61 73 6f | k..............(unless.(eq.reaso |
| 28a40 | 6e 69 6e 67 2d 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 | ning-block.'done)............... |
| 28a60 | 28 6c 65 74 20 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 | (let.((reasoning.(plist-get.proc |
| 28a80 | 2d 69 6e 66 6f 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 | -info.:reasoning)))............. |
| 28aa0 | 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 28 28 73 74 72 | ....(cond..................((str |
| 28ac0 | 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ingp.reasoning)................. |
| 28ae0 | 20 20 3b 3b 20 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 | ..;;.Obtained.from.separate.JSON |
| 28b00 | 20 66 69 65 6c 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 | .field.in.response.............. |
| 28b20 | 20 20 20 20 20 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 | .....(funcall.callback.(cons.'re |
| 28b40 | 61 73 6f 6e 69 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 | asoning.reasoning).proc-info)... |
| 28b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 72 65 61 73 6f 6e 69 6e | ................(unless.reasonin |
| 28b80 | 67 2d 62 6c 6f 63 6b 20 3b 52 65 63 6f 72 64 20 74 68 61 74 20 77 65 27 72 65 20 69 6e 20 61 20 | g-block.;Record.that.we're.in.a. |
| 28ba0 | 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 28 23 37 30 39 29 0a 20 20 20 20 20 20 20 20 20 | reasoning.block.(#709).......... |
| 28bc0 | 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. |
| 28be0 | 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 20 20 20 20 20 20 | :reasoning-block.'in)).......... |
| 28c00 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 | .........(plist-put.proc-info.:r |
| 28c20 | 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 20 70 | easoning.nil)).;Reset.for.next.p |
| 28c40 | 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 28 28 | arsing.round..................(( |
| 28c60 | 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 72 65 73 70 6f 6e 73 65 29 29 20 3b 44 65 66 65 72 | string-blank-p.response)).;Defer |
| 28c80 | 20 63 68 65 63 6b 69 6e 67 20 69 66 20 72 65 73 70 6f 6e 73 65 20 69 73 20 62 6c 61 6e 6b 0a 20 | .checking.if.response.is.blank.. |
| 28ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 61 73 | ................((and.(null.reas |
| 28cc0 | 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 28 6c 65 6e 67 74 68 3e 20 72 65 73 70 6f 6e 73 65 20 30 | oning-block).(length>.response.0 |
| 28ce0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4f 62 74 61 69 6e 65 64 | ))...................;;.Obtained |
| 28d00 | 20 66 72 6f 6d 20 6d 61 69 6e 20 72 65 73 70 6f 6e 73 65 20 73 74 72 65 61 6d 3a 20 72 65 61 73 | .from.main.response.stream:.reas |
| 28d20 | 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | oning.block.start............... |
| 28d40 | 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 | ....(if-let*..((idx.(string-matc |
| 28d60 | 68 2d 70 20 22 3c 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 | h-p."<think>".response)))....... |
| 28d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 | ................(progn.......... |
| 28da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 69 64 78 20 30 29 20 3b | ...............(when.(>.idx.0).; |
| 28dc0 | 43 6f 6c 6c 65 63 74 20 6c 65 61 64 69 6e 67 20 77 68 69 74 65 73 70 61 63 65 20 62 65 66 6f 72 | Collect.leading.whitespace.befor |
| 28de0 | 65 20 3c 74 68 69 6e 6b 3e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.<think>....................... |
| 28e00 | 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 28 73 75 62 73 74 72 69 6e 67 | ....(funcall.callback.(substring |
| 28e20 | 20 72 65 73 70 6f 6e 73 65 20 30 20 69 64 78 29 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 20 20 | .response.0.idx).proc-info)..... |
| 28e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 | ......................(setq.resp |
| 28e60 | 6f 6e 73 65 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 69 64 78 29 29 29 0a | onse.(substring.response.idx))). |
| 28e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 | ........................(setq.re |
| 28ea0 | 73 70 6f 6e 73 65 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 73 70 6f 6e 73 65 | sponse.(cons.'reasoning.response |
| 28ec0 | 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 |
| 28ee0 | 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b | t-put.proc-info.:reasoning-block |
| 28f00 | 20 27 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 | .'in)).....................(plis |
| 28f20 | 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b | t-put.proc-info.:reasoning-block |
| 28f40 | 20 27 64 6f 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 | .'done)))..................((and |
| 28f60 | 20 28 6e 6f 74 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 29 20 28 6c | .(not.(eq.reasoning-block.t)).(l |
| 28f80 | 65 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 | ength>.response.0))............. |
| 28fa0 | 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 69 64 78 20 28 73 74 72 69 6e 67 2d 6d 61 74 | ......(if-let*.((idx.(string-mat |
| 28fc0 | 63 68 2d 70 20 22 3c 2f 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 | ch-p."</think>".response)))..... |
| 28fe0 | 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 20 20 20 | ..................(progn........ |
| 29000 | 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 |
| 29020 | 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 20 | ck.............................. |
| 29040 | 20 20 20 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 28 73 75 62 73 74 72 69 6e 67 20 | ....(cons.'reasoning.(substring. |
| 29060 | 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 20 20 20 20 20 20 | response.nil.(+.idx.8)))........ |
| 29080 | 20 20 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 63 2d 69 | ..........................proc-i |
| 290a0 | 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | nfo).........................(se |
| 290c0 | 74 71 20 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 20 3b 53 69 67 6e 61 6c 20 65 6e | tq.reasoning-block.t).;Signal.en |
| 290e0 | 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 | d.of.reasoning.stream........... |
| 29100 | 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 6e | ..............(plist-put.proc-in |
| 29120 | 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 0a 20 20 20 20 20 20 20 20 20 | fo.:reasoning-block.t).......... |
| 29140 | 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 28 73 | ...............(setq.response.(s |
| 29160 | 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 0a 20 | ubstring.response.(+.idx.8)))).. |
| 29180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 | ...................(setq.respons |
| 291a0 | 65 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 | e.(cons.'reasoning.response))))) |
| 291c0 | 0a 20 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 | .................(when.(eq.reaso |
| 291e0 | 6e 69 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 | ning-block.t).;End.of.reasoning. |
| 29200 | 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 66 75 6e 63 61 6c 6c | block...................(funcall |
| 29220 | 20 63 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 | .callback.'(reasoning...t).proc- |
| 29240 | 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 | info)...................(plist-p |
| 29260 | 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 64 | ut.proc-info.:reasoning-block.'d |
| 29280 | 6f 6e 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 | one)))).............(unless.(equ |
| 292a0 | 61 6c 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 | al.response."").;Response.callba |
| 292c0 | 63 6b 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 | ck...............(funcall.callba |
| 292e0 | 63 6b 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 | ck.response.proc-info))))))))..( |
| 29300 | 63 6c 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 | cl-defgeneric.gptel-curl--parse- |
| 29320 | 73 74 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 | stream.(backend.proc-info)..."St |
| 29340 | 72 65 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 | ream.parser.for.gptel-curl...Imp |
| 29360 | 6c 65 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 | lementations.of.this.function.ru |
| 29380 | 6e 20 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 | n.as.part.of.the.process.filter. |
| 293a0 | 66 6f 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 | for.the.active.query,.and.return |
| 293c0 | 20 70 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 | .partial.responses.from.the.LLM. |
| 293e0 | 0a 0a 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 | ..BACKEND.is.the.LLM.backend.in. |
| 29400 | 75 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 74 68 20 | use...PROC-INFO.is.a.plist.with. |
| 29420 | 70 72 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 | process.information.and.other.co |
| 29440 | 6e 74 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 | ntext..See.`gptel-curl--get-resp |
| 29460 | 6f 6e 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 | onse'.for.its.contents.")..(defu |
| 29480 | 6e 20 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 | n.gptel-curl--sentinel.(process. |
| 294a0 | 5f 73 74 61 74 75 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 65 6e 74 69 6e 65 6c 20 66 6f 72 | _status)..."Process.sentinel.for |
| 294c0 | 20 67 70 74 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 50 52 4f 43 45 53 53 20 61 | .gptel.curl.requests...PROCESS.a |
| 294e0 | 6e 64 20 5f 53 54 41 54 55 53 20 61 72 65 20 70 72 6f 63 65 73 73 20 70 61 72 61 6d 65 74 65 72 | nd._STATUS.are.process.parameter |
| 29500 | 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 70 72 6f 63 65 73 73 2d 62 | s."...(let.((proc-buf.(process-b |
| 29520 | 75 66 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 | uffer.process))).....(when-let*. |
| 29540 | 28 28 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 | (((eq.(process-status.process).' |
| 29560 | 65 78 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 63 61 72 | exit)).................(fsm.(car |
| 29580 | 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 | .(alist-get.process.gptel--reque |
| 295a0 | 73 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | st-alist))).................(pro |
| 295c0 | 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 29 29 0a 20 20 20 | c-info.(gptel-fsm-info.fsm)).... |
| 295e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 | .............(proc-callback.(pli |
| 29600 | 73 74 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 29 29 0a 20 20 | st-get.proc-info.:callback)))... |
| 29620 | 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 28 67 70 74 65 6c | ....(when.gptel-log-level.(gptel |
| 29640 | 2d 63 75 72 6c 2d 2d 6c 6f 67 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 62 75 66 20 70 72 6f | -curl--log-response.proc-buf.pro |
| 29660 | 63 2d 69 6e 66 6f 29 29 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c | c-info)).;logging.......(pcase-l |
| 29680 | 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 73 74 61 74 75 73 20 2c 68 | et.((`(,response.,http-status.,h |
| 296a0 | 74 74 70 2d 6d 73 67 20 2c 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ttp-msg.,error)................. |
| 296c0 | 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 | ...(with-current-buffer.proc-buf |
| 296e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 | ......................(gptel-cur |
| 29700 | 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 0a | l--parse-response.proc-info)))). |
| 29720 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 | ........(plist-put.proc-info.:ht |
| 29740 | 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 28 | tp-status.http-status).........( |
| 29760 | 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 | plist-put.proc-info.:status.http |
| 29780 | 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 | -msg).........(gptel--fsm-transi |
| 297a0 | 74 69 6f 6e 20 66 73 6d 29 20 20 20 20 20 3b 57 41 49 54 20 2d 3e 20 54 59 50 45 0a 20 20 20 20 | tion.fsm).....;WAIT.->.TYPE..... |
| 297c0 | 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 2d | ....(when.error.(plist-put.proc- |
| 297e0 | 69 6e 66 6f 20 3a 65 72 72 6f 72 20 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 | info.:error.error)).........(whe |
| 29800 | 6e 20 72 65 73 70 6f 6e 73 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 4c 6f 6f | n.response..................;Loo |
| 29820 | 6b 20 66 6f 72 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 | k.for.a.reasoning.block......... |
| 29840 | 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 5c 5c 73 2d 2a 3c 74 68 | ..(if.(string-match-p."^\\s-*<th |
| 29860 | 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 28 77 | ink>".response)...............(w |
| 29880 | 68 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 | hen-let*.((idx.(string-search."< |
| 298a0 | 2f 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | /think>".response)))............ |
| 298c0 | 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 6c | .....(with-demoted-errors."gptel |
| 298e0 | 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .callback.error:.%S"............ |
| 29900 | 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 0a 20 20 | .......(funcall.proc-callback... |
| 29920 | 20 20 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 | .........................(cons.' |
| 29940 | 72 65 61 73 6f 6e 69 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 | reasoning.(substring.response.ni |
| 29960 | 6c 20 28 2b 20 69 64 78 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.(+.idx.8)))................... |
| 29980 | 20 20 20 20 20 20 20 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 | .........proc-info))............ |
| 299a0 | 20 20 20 20 20 28 73 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 | .....(setq.response............. |
| 299c0 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 2d 6c 65 66 74 20 28 73 75 62 | ..........(string-trim-left.(sub |
| 299e0 | 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 29 0a 20 20 | string.response.(+.idx.8)))))... |
| 29a00 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 | ..........(when-let*.((reasoning |
| 29a20 | 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 | .(plist-get.proc-info.:reasoning |
| 29a40 | 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 73 74 72 | )).........................((str |
| 29a60 | 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ingp.reasoning)))............... |
| 29a80 | 28 66 75 6e 63 61 6c 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 | (funcall.proc-callback.(cons.'re |
| 29aa0 | 61 73 6f 6e 69 6e 67 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 | asoning.reasoning).proc-info)))) |
| 29ac0 | 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 73 70 6f 6e 73 65 20 28 6e 6f 74 | .........(when.(or.response.(not |
| 29ae0 | 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 |
| 29b00 | 30 22 29 29 29 29 0a 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 | 0"))))...........(with-demoted-e |
| 29b20 | 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 3a 20 25 53 22 | rrors."gptel.callback.error:.%S" |
| 29b40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 61 6c 6c 62 | .............(funcall.proc-callb |
| 29b60 | 61 63 6b 20 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 | ack.response.proc-info))))...... |
| 29b80 | 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 20 20 20 | .(gptel--fsm-transition.fsm))... |
| 29ba0 | 20 20 20 3b 54 59 50 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 | ...;TYPE.->.next.....(setf.(alis |
| 29bc0 | 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 2d 61 6c 69 | t-get.process.gptel--request-ali |
| 29be0 | 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 62 | st.nil.'remove).nil).....(kill-b |
| 29c00 | 75 66 66 65 72 20 70 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 | uffer.proc-buf)))..(defun.gptel- |
| 29c20 | 63 75 72 6c 2d 2d 70 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 | curl--parse-response.(proc-info) |
| 29c40 | 0a 20 20 22 50 61 72 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 | ..."Parse.the.buffer.BUF.with.cu |
| 29c60 | 72 6c 27 73 20 72 65 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 | rl's.response...PROC-INFO.is.a.p |
| 29c80 | 6c 69 73 74 20 77 69 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 | list.with.contextual.information |
| 29ca0 | 2e 22 0a 20 20 28 6c 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 | ."...(let.((token.(plist-get.pro |
| 29cc0 | 63 2d 69 6e 66 6f 20 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 | c-info.:token))).....(goto-char. |
| 29ce0 | 28 70 6f 69 6e 74 2d 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 | (point-max)).....(search-backwar |
| 29d00 | 64 20 74 6f 6b 65 6e 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 | d.token).....(backward-char).... |
| 29d20 | 20 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 | .(pcase-let*.((`(,_...,header-si |
| 29d40 | 7a 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 29 0a 20 20 | ze).(read.(current-buffer))))... |
| 29d60 | 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 0a 20 20 20 | ....(goto-char.(point-min))..... |
| 29d80 | 20 20 20 28 69 66 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 | ...(if-let*.((http-msg.(string-t |
| 29da0 | 72 69 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 28 | rim............................( |
| 29dc0 | 62 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 | buffer-substring.(line-beginning |
| 29de0 | 2d 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 | -position)...................... |
| 29e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e | ........................(line-en |
| 29e20 | 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | d-position)))).................( |
| 29e40 | 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 20 20 20 20 28 73 61 | http-status..................(sa |
| 29e60 | 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ve-match-data................... |
| 29e80 | 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 48 54 54 50 2f 5b 2e 30 2d 39 5d | .(and.(string-match."HTTP/[.0-9] |
| 29ea0 | 2b 20 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 | +.+\\([0-9]+\\)".http-msg)...... |
| 29ec0 | 20 20 20 20 20 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 | ...................(match-string |
| 29ee0 | 20 31 20 68 74 74 70 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 | .1.http-msg))))................. |
| 29f00 | 28 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 | (response.(progn.(goto-char.head |
| 29f20 | 65 72 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er-size)........................ |
| 29f40 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 | ..........(condition-case.nil... |
| 29f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29f80 | 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 | ...(gptel--json-read)........... |
| 29fa0 | 20 20 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 72 72 6f 72 20 | .........................(error. |
| 29fc0 | 27 6a 73 6f 6e 2d 72 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 | 'json-read-error)))))........... |
| 29fe0 | 28 63 6f 6e 64 0a 20 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 | (cond............;;.FIXME.Handle |
| 2a000 | 20 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 | .the.case.where.HTTP.100.is.foll |
| 2a020 | 6f 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 | owed.by.HTTP.(not.200).BUG.#194. |
| 2a040 | 20 20 20 20 20 20 20 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 | ...........((member.http-status. |
| 2a060 | 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 20 20 28 6c 69 73 | '("200"."100")).............(lis |
| 2a080 | 74 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 72 65 73 70 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 | t.(and-let*.((resp.(gptel--parse |
| 2a0a0 | 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....................... |
| 2a0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e | ..............(plist-get.proc-in |
| 2a0e0 | 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 | fo.:backend).response.proc-info) |
| 2a100 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )..............................( |
| 2a120 | 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 72 65 73 70 29 29 29 29 0a 20 20 | (not.(string-blank-p.resp))))... |
| 2a140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 72 | ..................(string-trim.r |
| 2a160 | 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 73 74 61 | esp))...................http-sta |
| 2a180 | 74 75 73 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 2d | tus.http-msg))............((and- |
| 2a1a0 | 6c 65 74 2a 20 28 28 65 72 72 6f 72 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | let*.((error-data............... |
| 2a1c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 70 6c 69 73 74 70 20 72 65 73 70 6f 6e 73 | ..........(cond.((plistp.respons |
| 2a1e0 | 65 29 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 29 29 0a | e).(plist-get.response.:error)). |
| 2a200 | 20 20 20 20 20 20 20 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 | ..............................(( |
| 2a220 | 61 72 72 61 79 70 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 | arrayp.response)................ |
| 2a240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 | ................(cl-some.(lambda |
| 2a260 | 20 28 65 6c 29 20 28 70 6c 69 73 74 2d 67 65 74 20 65 6c 20 3a 65 72 72 6f 72 29 29 20 72 65 73 | .(el).(plist-get.el.:error)).res |
| 2a280 | 70 6f 6e 73 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e | ponse)))))...............(list.n |
| 2a2a0 | 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 64 61 | il.http-status.http-msg.error-da |
| 2a2c0 | 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 | ta)))............((eq.response.' |
| 2a2e0 | 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | json-read-error).............(li |
| 2a300 | 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 |
| 2a320 | 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 65 73 | ttp-msg.").Malformed.JSON.in.res |
| 2a340 | 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4d 61 6c 66 | ponse.")..................."Malf |
| 2a360 | 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 20 20 20 20 | ormed.JSON.in.response"))....... |
| 2a380 | 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 28 63 | .....(t.(list.nil.http-status.(c |
| 2a3a0 | 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 20 | oncat."(".http-msg.").Could.not. |
| 2a3c0 | 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 20 | parse.HTTP.response.").......... |
| 2a3e0 | 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 | ..........."Could.not.parse.HTTP |
| 2a400 | 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c | .response."))).........(list.nil |
| 2a420 | 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 2d 6d 73 | .http-status.(concat."(".http-ms |
| 2a440 | 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 6e | g.").Could.not.parse.HTTP.respon |
| 2a460 | 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 | se.")..............."Could.not.p |
| 2a480 | 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 29 29 0a 0a 28 70 72 6f 76 | arse.HTTP.response.")))))..(prov |
| 2a4a0 | 69 64 65 20 27 67 70 74 65 6c 2d 63 75 72 6c 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 63 75 72 6c 2e | ide.'gptel-curl).;;;.gptel-curl. |
| 2a4c0 | 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.ends.here.................... |
| 2a4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a600 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 67 68 2e 65 6c 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/gptel-gh.el......... |
| 2a620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a660 | 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 |
| 2a680 | 30 30 33 35 31 35 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 33 34 30 00 20 30 00 00 00 | 0035150.00000000000.013340..0... |
| 2a6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a700 | 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................... |
| 2a720 | 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................... |
| 2a740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a800 | 3b 3b 3b 20 67 70 74 65 6c 2d 67 68 2e 65 6c 20 2d 2d 2d 20 20 47 69 74 68 75 62 20 43 6f 70 69 | ;;;.gptel-gh.el.---..Github.Copi |
| 2a820 | 6c 6f 74 20 41 49 20 73 75 70 70 70 6f 72 74 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c | lot.AI.suppport.for.gptel..-*-.l |
| 2a840 | 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 54 68 69 73 20 | exical-binding:.t;.-*-..;;.This. |
| 2a860 | 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 | program.is.free.software;.you.ca |
| 2a880 | 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a | n.redistribute.it.and/or.modify. |
| 2a8a0 | 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 | ;;.it.under.the.terms.of.the.GNU |
| 2a8c0 | 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 | .General.Public.License.as.publi |
| 2a8e0 | 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 | shed.by.;;.the.Free.Software.Fou |
| 2a900 | 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 | ndation,.either.version.3.of.the |
| 2a920 | 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 | .License,.or.;;.(at.your.option) |
| 2a940 | 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f | .any.later.version...;;.This.pro |
| 2a960 | 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 | gram.is.distributed.in.the.hope. |
| 2a980 | 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 | that.it.will.be.useful,.;;.but.W |
| 2a9a0 | 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 | ITHOUT.ANY.WARRANTY;.without.eve |
| 2a9c0 | 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 | n.the.implied.warranty.of.;;.MER |
| 2a9e0 | 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 | CHANTABILITY.or.FITNESS.FOR.A.PA |
| 2aa00 | 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e | RTICULAR.PURPOSE...See.the.;;.GN |
| 2aa20 | 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 | U.General.Public.License.for.mor |
| 2aa40 | 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 | e.details...;;.You.should.have.r |
| 2aa60 | 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 | eceived.a.copy.of.the.GNU.Genera |
| 2aa80 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 | l.Public.License.;;.along.with.t |
| 2aaa0 | 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 | his.program...If.not,.see.<https |
| 2aac0 | 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 | ://www.gnu.org/licenses/>...;;;. |
| 2aae0 | 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 | Commentary:..;;.This.file.adds.s |
| 2ab00 | 75 70 70 6f 72 74 20 66 6f 72 20 47 69 74 68 75 62 20 43 6f 70 69 6c 6f 74 20 41 50 49 20 74 6f | upport.for.Github.Copilot.API.to |
| 2ab20 | 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f | .gptel..;;;.Code:..(eval-when-co |
| 2ab40 | 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 | mpile...(require.'cl-lib)).(requ |
| 2ab60 | 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 | ire.'map).(require.'gptel).(requ |
| 2ab80 | 69 72 65 20 27 62 72 6f 77 73 65 2d 75 72 6c 29 0a 0a 3b 3b 3b 20 47 69 74 68 75 62 20 43 6f 70 | ire.'browse-url)..;;;.Github.Cop |
| 2aba0 | 69 6c 6f 74 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 68 2d 6d 6f 64 65 6c 73 0a | ilot.(defconst.gptel--gh-models. |
| 2abc0 | 20 20 27 28 28 67 70 74 2d 34 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 | ..'((gpt-4o......:description... |
| 2abe0 | 20 20 20 22 41 64 76 61 6e 63 65 64 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 | ..."Advanced.model.for.complex.t |
| 2ac00 | 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 66 61 73 74 65 72 20 74 68 61 6e 20 47 50 54 2d | asks;.cheaper.&.faster.than.GPT- |
| 2ac20 | 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 | Turbo"......:capabilities.(media |
| 2ac40 | 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 | .tool-use.json.url)......:mime-t |
| 2ac60 | 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 | ypes.("image/jpeg"."image/png"." |
| 2ac80 | 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 | image/gif"."image/webp")......:c |
| 2aca0 | 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e | ontext-window.128.:input-cost.2. |
| 2acc0 | 35 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | 5.:output-cost.10.:cutoff-date." |
| 2ace0 | 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 6f 2d 63 6f 70 69 6c 6f 74 0a 20 20 | 2023-10").....(gpt-4o-copilot... |
| 2ad00 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 68 65 61 70 20 6d 6f 64 65 6c 20 66 6f 72 | ...:description."Cheap.model.for |
| 2ad20 | 20 66 61 73 74 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 6d 6f 72 65 20 63 61 70 61 | .fast.tasks;.cheaper.&.more.capa |
| 2ad40 | 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 33 2e 35 20 54 75 72 62 6f 22 0a 20 20 20 20 20 3a 63 6f | ble.than.GPT-3.5.Turbo"......:co |
| 2ad60 | 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 |
| 2ad80 | 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 0a 20 20 | t.0.15......:output-cost.0.60... |
| 2ada0 | 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 | ...:cutoff-date."2023-10").....( |
| 2adc0 | 67 70 74 2d 34 2e 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 6c 61 67 73 | gpt-4.1......:description."Flags |
| 2ade0 | 68 69 70 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 73 6b 73 22 0a 20 20 20 | hip.model.for.complex.tasks".... |
| 2ae00 | 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 | ..:capabilities.(media.tool-use. |
| 2ae20 | 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 | json.url)......:mime-types.("ima |
| 2ae40 | 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" |
| 2ae60 | 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 |
| 2ae80 | 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 32 2e 30 0a 20 20 20 | dow.128......:input-cost.2.0.... |
| 2aea0 | 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 38 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d | ..:output-cost.8.0......:cutoff- |
| 2aec0 | 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 70 74 2d 35 0a 20 20 20 20 20 | date."2024-05").....(gpt-5...... |
| 2aee0 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 6c 61 67 73 68 69 70 20 6d 6f 64 65 6c 20 66 6f 72 | :description."Flagship.model.for |
| 2af00 | 20 63 6f 64 69 6e 67 2c 20 72 65 61 73 6f 6e 69 6e 67 2c 20 61 6e 64 20 61 67 65 6e 74 69 63 20 | .coding,.reasoning,.and.agentic. |
| 2af20 | 74 61 73 6b 73 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 20 20 20 3a 63 61 70 61 | tasks.across.domains"......:capa |
| 2af40 | 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 | bilities.(media.tool-use.json.ur |
| 2af60 | 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 | l)......:mime-types.("image/jpeg |
| 2af80 | 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 | "."image/png"."image/gif"."image |
| 2afa0 | 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 | /webp")......:context-window.128 |
| 2afc0 | 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e 32 35 0a 20 20 20 20 20 3a 6f 75 74 | ......:input-cost.1.25......:out |
| 2afe0 | 70 75 74 2d 63 6f 73 74 20 31 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 | put-cost.10......:cutoff-date."2 |
| 2b000 | 30 32 34 2d 30 39 22 29 0a 20 20 20 20 28 67 70 74 2d 35 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 | 024-09").....(gpt-5-mini......:d |
| 2b020 | 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 65 72 2c 20 6d 6f 72 65 20 63 6f 73 74 2d 65 66 | escription."Faster,.more.cost-ef |
| 2b040 | 66 69 63 69 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 47 50 54 2d 35 22 0a 20 20 20 20 20 3a | ficient.version.of.GPT-5"......: |
| 2b060 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f | capabilities.(media.tool-use.jso |
| 2b080 | 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f | n.url)......:mime-types.("image/ |
| 2b0a0 | 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 |
| 2b0c0 | 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 |
| 2b0e0 | 20 34 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 32 35 0a 20 20 20 20 20 | .400......:input-cost.0.25...... |
| 2b100 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 32 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 | :output-cost.2.0......:cutoff-da |
| 2b120 | 74 65 20 22 32 30 32 34 2d 30 39 22 29 0a 20 20 20 20 28 6f 31 0a 20 20 20 20 20 3a 64 65 73 63 | te."2024-09").....(o1......:desc |
| 2b140 | 72 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 | ription."Reasoning.model.designe |
| 2b160 | 64 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 | d.to.solve.hard.problems.across. |
| 2b180 | 64 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 72 65 61 | domains"......:capabilities.(rea |
| 2b1a0 | 73 6f 6e 69 6e 67 20 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 | soning.tool-use)......:context-w |
| 2b1c0 | 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 | indow.200......:input-cost.15... |
| 2b1e0 | 20 20 20 3a 6f 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 | ...:output-cost.60......:cutoff- |
| 2b200 | 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 0a 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 | date."2023-10"......:request-par |
| 2b220 | 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 20 20 28 | ams.(:stream.:json-false)).....( |
| 2b240 | 6f 33 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 57 65 6c 6c 2d 72 6f 75 6e 64 | o3......:description."Well-round |
| 2b260 | 65 64 20 61 6e 64 20 70 6f 77 65 72 66 75 6c 20 6d 6f 64 65 6c 20 61 63 72 6f 73 73 20 64 6f 6d | ed.and.powerful.model.across.dom |
| 2b280 | 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 72 65 61 73 6f 6e | ains"......:capabilities.(reason |
| 2b2a0 | 69 6e 67 20 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 | ing.media.tool-use.json.url).... |
| 2b2c0 | 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 | ..:mime-types.("image/jpeg"."ima |
| 2b2e0 | 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | ge/png"."image/gif"."image/webp" |
| 2b300 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 | )......:context-window.200...... |
| 2b320 | 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 6f 73 74 | :input-cost.10......:output-cost |
| 2b340 | 20 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 | .40......:cutoff-date."2024-05") |
| 2b360 | 0a 20 20 20 20 28 6f 33 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | .....(o3-mini......:description. |
| 2b380 | 22 48 69 67 68 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 63 | "High.intelligence.at.the.same.c |
| 2b3a0 | 6f 73 74 20 61 6e 64 20 6c 61 74 65 6e 63 79 20 74 61 72 67 65 74 73 20 6f 66 20 6f 31 2d 6d 69 | ost.and.latency.targets.of.o1-mi |
| 2b3c0 | 6e 69 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e | ni"......:capabilities.(reasonin |
| 2b3e0 | 67 20 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 | g.tool-use)......:context-window |
| 2b400 | 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 | .200......:input-cost.3......:ou |
| 2b420 | 74 70 75 74 2d 63 6f 73 74 20 31 32 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.12......:cutoff-date." |
| 2b440 | 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 6f 34 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 | 2023-10").....(o4-mini......:des |
| 2b460 | 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 2c 20 65 66 66 65 63 74 69 76 65 20 72 65 61 73 6f 6e | cription."Fast,.effective.reason |
| 2b480 | 69 6e 67 20 77 69 74 68 20 65 66 66 69 63 69 65 6e 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 | ing.with.efficient.performance.i |
| 2b4a0 | 6e 20 63 6f 64 69 6e 67 20 61 6e 64 20 76 69 73 75 61 6c 20 74 61 73 6b 73 22 0a 20 20 20 20 20 | n.coding.and.visual.tasks"...... |
| 2b4c0 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 20 74 | :capabilities.(reasoning.media.t |
| 2b4e0 | 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 | ool-use.json.url)......:mime-typ |
| 2b500 | 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d | es.("image/jpeg"."image/png"."im |
| 2b520 | 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e | age/gif"."image/webp")......:con |
| 2b540 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 | text-window.200......:input-cost |
| 2b560 | 20 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a 20 20 20 | .1.10......:output-cost.4.40.... |
| 2b580 | 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 63 | ..:cutoff-date."2024-05").....(c |
| 2b5a0 | 6c 61 75 64 65 2d 33 2e 35 2d 73 6f 6e 6e 65 74 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 | laude-3.5-sonnet......:descripti |
| 2b5c0 | 6f 6e 20 22 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 | on."Highest.level.of.intelligenc |
| 2b5e0 | 65 20 61 6e 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 | e.and.capability"......:capabili |
| 2b600 | 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 | ties.(media.tool-use.cache)..... |
| 2b620 | 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 | .:mime-types.("image/jpeg"."imag |
| 2b640 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 | e/png"."image/gif"."image/webp". |
| 2b660 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 | "application/pdf")......:context |
| 2b680 | 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 | -window.200......:input-cost.3.. |
| 2b6a0 | 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 | ....:output-cost.15......:cutoff |
| 2b6c0 | 2d 64 61 74 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 2e 37 | -date."2024-04").....(claude-3.7 |
| 2b6e0 | 2d 73 6f 6e 6e 65 74 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 79 62 72 69 | -sonnet......:description."Hybri |
| 2b700 | 64 20 6d 6f 64 65 6c 20 63 61 70 61 62 6c 65 20 6f 66 20 73 74 61 6e 64 61 72 64 20 74 68 69 6e | d.model.capable.of.standard.thin |
| 2b720 | 6b 69 6e 67 20 61 6e 64 20 65 78 74 65 6e 64 65 64 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 73 | king.and.extended.thinking.modes |
| 2b740 | 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c | "......:capabilities.(media.tool |
| 2b760 | 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 | -use.cache)......:mime-types.("i |
| 2b780 | 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 | mage/jpeg"."image/png"."image/gi |
| 2b7a0 | 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 | f"."image/webp"."application/pdf |
| 2b7c0 | 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 | ")......:context-window.200..... |
| 2b7e0 | 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | .:input-cost.3......:output-cost |
| 2b800 | 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 32 22 29 | .15......:cutoff-date."2025-02") |
| 2b820 | 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2e 37 2d 73 6f 6e 6e 65 74 2d 74 68 6f 75 67 68 74 0a | .....(claude-3.7-sonnet-thought. |
| 2b840 | 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6c 61 75 64 65 20 33 2e 37 20 53 6f | .....:description."Claude.3.7.So |
| 2b860 | 6e 6e 65 74 20 54 68 69 6e 6b 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 | nnet.Thinking"......:capabilitie |
| 2b880 | 73 20 28 6d 65 64 69 61 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 | s.(media.cache)......:mime-types |
| 2b8a0 | 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 67 | .("image/jpeg"."image/png"."imag |
| 2b8c0 | 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e | e/gif"."image/webp"."application |
| 2b8e0 | 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a | /pdf")......:context-window.200. |
| 2b900 | 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d | .....:input-cost.3......:output- |
| 2b920 | 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d | cost.15......:cutoff-date."2025- |
| 2b940 | 30 32 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 0a 20 20 20 20 20 3a | 02").....(claude-sonnet-4......: |
| 2b960 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 2d 70 65 72 66 6f 72 6d 61 6e 63 65 20 6d 6f | description."High-performance.mo |
| 2b980 | 64 65 6c 20 77 69 74 68 20 65 78 63 65 70 74 69 6f 6e 61 6c 20 72 65 61 73 6f 6e 69 6e 67 20 61 | del.with.exceptional.reasoning.a |
| 2b9a0 | 6e 64 20 65 66 66 69 63 69 65 6e 63 79 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 | nd.efficiency"......:capabilitie |
| 2b9c0 | 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d | s.(media.tool-use.cache)......:m |
| 2b9e0 | 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 | ime-types.("image/jpeg"."image/p |
| 2ba00 | 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 | ng"."image/gif"."image/webp"."ap |
| 2ba20 | 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 | plication/pdf")......:context-wi |
| 2ba40 | 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..... |
| 2ba60 | 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 |
| 2ba80 | 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 | te."2025-03").....(claude-opus-4 |
| 2baa0 | 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 63 61 70 61 62 6c 65 | ......:description."Most.capable |
| 2bac0 | 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 | .model.for.complex.reasoning.and |
| 2bae0 | 20 61 64 76 61 6e 63 65 64 20 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | .advanced.coding"......:capabili |
| 2bb00 | 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 | ties.(media.tool-use.cache)..... |
| 2bb20 | 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 | .:mime-types.("image/jpeg"."imag |
| 2bb40 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 | e/png"."image/gif"."image/webp". |
| 2bb60 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 | "application/pdf")......:context |
| 2bb80 | 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a | -window.200......:input-cost.15. |
| 2bba0 | 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 | .....:output-cost.75......:cutof |
| 2bbc0 | 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 6f 70 | f-date."2025-03").....(claude-op |
| 2bbe0 | 75 73 2d 34 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 63 61 | us-41......:description."Most.ca |
| 2bc00 | 70 61 62 6c 65 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 72 65 61 73 6f 6e 69 6e | pable.model.for.complex.reasonin |
| 2bc20 | 67 20 61 6e 64 20 61 64 76 61 6e 63 65 64 20 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 | g.and.advanced.coding"......:cap |
| 2bc40 | 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 | abilities.(media.tool-use.cache) |
| 2bc60 | 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 | ......:mime-types.("image/jpeg". |
| 2bc80 | 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 | "image/png"."image/gif"."image/w |
| 2bca0 | 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f | ebp"."application/pdf")......:co |
| 2bcc0 | 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 |
| 2bce0 | 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a | t.15......:output-cost.75......: |
| 2bd00 | 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 67 65 6d 69 | cutoff-date."2025-03").....(gemi |
| 2bd20 | 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 30 30 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 | ni-2.0-flash-001......:descripti |
| 2bd40 | 6f 6e 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 | on."Next.gen,.high.speed,.multim |
| 2bd60 | 6f 64 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 | odal.for.a.diverse.variety.of.ta |
| 2bd80 | 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 6a 73 6f 6e 20 6d 65 | sks"......:capabilities.(json.me |
| 2bda0 | 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e | dia)......:mime-types.("image/pn |
| 2bdc0 | 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d | g"."image/jpeg"."image/webp"."im |
| 2bde0 | 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 | age/heic"."image/heif".......... |
| 2be00 | 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 | ........."application/pdf"."text |
| 2be20 | 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a | /plain"."text/csv"."text/html"). |
| 2be40 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a | .....:context-window.1000......: |
| 2be60 | 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 | input-cost.0.10......:output-cos |
| 2be80 | 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 | t.0.40......:cutoff-date."2024-0 |
| 2bea0 | 38 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 0a 20 20 20 20 20 3a 64 65 | 8").....(gemini-2.5-pro......:de |
| 2bec0 | 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 67 65 6e 2c 20 68 69 67 68 20 73 70 65 65 64 2c | scription."Next.gen,.high.speed, |
| 2bee0 | 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 6f 72 20 61 20 64 69 76 65 72 73 65 20 76 61 72 69 65 74 | .multimodal.for.a.diverse.variet |
| 2bf00 | 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 | y.of.tasks"......:capabilities.( |
| 2bf20 | 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d | tool-use.json.media)......:mime- |
| 2bf40 | 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 | types.("image/png"."image/jpeg". |
| 2bf60 | 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 | "image/webp"."image/heic"."image |
| 2bf80 | 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 | /heif"..................."applic |
| 2bfa0 | 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 | ation/pdf"."text/plain"."text/cs |
| 2bfc0 | 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 | v"."text/html")......:context-wi |
| 2bfe0 | 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a | ndow.1000......:input-cost.0.10. |
| 2c000 | 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 | .....:output-cost.0.40......:cut |
| 2c020 | 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 | off-date."2024-08")))..(cl-defst |
| 2c040 | 72 75 63 74 20 28 67 70 74 65 6c 2d 2d 67 68 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d | ruct.(gptel--gh.(:include.gptel- |
| 2c060 | 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 20 20 20 20 20 20 20 | openai)......................... |
| 2c080 | 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).................. |
| 2c0a0 | 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 2d 2d 6d 61 6b | ........(:constructor.gptel--mak |
| 2c0c0 | 65 2d 67 68 29 29 0a 20 20 74 6f 6b 65 6e 20 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 73 65 73 73 | e-gh))...token.github-token.sess |
| 2c0e0 | 69 6f 6e 69 64 20 6d 61 63 68 69 6e 65 69 64 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 | ionid.machineid)..(defcustom.gpt |
| 2c100 | 65 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d | el-gh-github-token-file.(expand- |
| 2c120 | 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 63 61 63 68 65 2f 63 6f 70 69 6c 6f 74 2d 63 68 61 74 2f 67 | file-name.".cache/copilot-chat/g |
| 2c140 | 69 74 68 75 62 2d 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ithub-token".................... |
| 2c160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2c180 | 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 46 69 | .....user-emacs-directory)..."Fi |
| 2c1a0 | 6c 65 20 77 68 65 72 65 20 74 68 65 20 47 69 74 48 75 62 20 74 6f 6b 65 6e 20 69 73 20 73 74 6f | le.where.the.GitHub.token.is.sto |
| 2c1c0 | 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 | red."...:type.'string...:group.' |
| 2c1e0 | 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 67 68 2d 74 6f 6b 65 | gptel)..(defcustom.gptel-gh-toke |
| 2c200 | 6e 2d 66 69 6c 65 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2e 63 61 63 68 65 | n-file.(expand-file-name.".cache |
| 2c220 | 2f 63 6f 70 69 6c 6f 74 2d 63 68 61 74 2f 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 | /copilot-chat/token"............ |
| 2c240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2c260 | 20 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 22 46 | ......user-emacs-directory)..."F |
| 2c280 | 69 6c 65 20 77 68 65 72 65 20 74 68 65 20 63 68 61 74 20 74 6f 6b 65 6e 20 69 73 20 63 61 63 68 | ile.where.the.chat.token.is.cach |
| 2c2a0 | 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 67 | ed."...:type.'string...:group.'g |
| 2c2c0 | 70 74 65 6c 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 2d | ptel)..(defconst.gptel--gh-auth- |
| 2c2e0 | 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 0a 20 20 60 28 28 22 65 64 69 74 6f 72 2d 70 6c 75 67 | common-headers...`(("editor-plug |
| 2c300 | 69 6e 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 67 70 74 65 6c 2f 2a 22 29 0a 20 20 20 20 28 22 65 | in-version"..."gptel/*").....("e |
| 2c320 | 64 69 74 6f 72 2d 76 65 72 73 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 65 6d 61 63 73 | ditor-version"...,(concat."emacs |
| 2c340 | 2f 22 20 65 6d 61 63 73 2d 76 65 72 73 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 | /".emacs-version))))..(defconst. |
| 2c360 | 67 70 74 65 6c 2d 2d 67 68 2d 63 6c 69 65 6e 74 2d 69 64 20 22 49 76 31 2e 62 35 30 37 61 30 38 | gptel--gh-client-id."Iv1.b507a08 |
| 2c380 | 63 38 37 65 63 66 65 39 38 22 29 0a 0a 3b 3b 20 68 74 74 70 73 3a 2f 2f 65 6e 2e 77 69 6b 69 70 | c87ecfe98")..;;.https://en.wikip |
| 2c3a0 | 65 64 69 61 2e 6f 72 67 2f 77 69 6b 69 2f 55 6e 69 76 65 72 73 61 6c 6c 79 5f 75 6e 69 71 75 65 | edia.org/wiki/Universally_unique |
| 2c3c0 | 5f 69 64 65 6e 74 69 66 69 65 72 23 56 65 72 73 69 6f 6e 5f 34 5f 28 72 61 6e 64 6f 6d 29 0a 28 | _identifier#Version_4_(random).( |
| 2c3e0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 75 75 69 64 20 28 29 0a 20 20 22 47 65 6e 65 72 | defun.gptel--gh-uuid.()..."Gener |
| 2c400 | 61 74 65 20 61 20 55 55 49 44 20 76 34 2d 31 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 25 30 34 | ate.a.UUID.v4-1."...(format."%04 |
| 2c420 | 78 25 30 34 78 2d 25 30 34 78 2d 34 25 30 33 78 2d 38 25 30 33 78 2d 25 30 34 78 25 30 34 78 25 | x%04x-%04x-4%03x-8%03x-%04x%04x% |
| 2c440 | 30 34 78 22 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 20 | 04x"...........(random.#x10000). |
| 2c460 | 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 | (random.#x10000)...........(rand |
| 2c480 | 6f 6d 20 23 78 31 30 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 | om.#x10000)...........(random.#x |
| 2c4a0 | 31 30 30 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 29 0a | 1000)...........(random.#x1000). |
| 2c4c0 | 20 20 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 20 28 72 61 6e 64 | ..........(random.#x10000).(rand |
| 2c4e0 | 6f 6d 20 23 78 31 30 30 30 30 29 20 28 72 61 6e 64 6f 6d 20 23 78 31 30 30 30 30 29 29 29 0a 0a | om.#x10000).(random.#x10000))).. |
| 2c500 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 6d 61 63 68 69 6e 65 2d 69 64 20 28 29 0a 20 | (defun.gptel--gh-machine-id.().. |
| 2c520 | 20 22 47 65 6e 65 72 61 74 65 20 61 20 6d 61 63 68 69 6e 65 20 49 44 2e 22 0a 20 20 28 6c 65 74 | ."Generate.a.machine.ID."...(let |
| 2c540 | 20 28 28 68 65 78 2d 63 68 61 72 73 20 22 30 31 32 33 34 35 36 37 38 39 61 62 63 64 65 66 22 29 | .((hex-chars."0123456789abcdef") |
| 2c560 | 0a 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 36 35 29 0a 20 20 20 20 20 20 20 20 68 65 78 | .........(length.65).........hex |
| 2c580 | 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 6c 65 6e 67 74 68 29 0a 20 20 20 20 20 20 | ).....(dotimes.(_.length)....... |
| 2c5a0 | 28 73 65 74 71 20 68 65 78 20 28 6e 63 6f 6e 63 20 68 65 78 20 28 6c 69 73 74 20 28 61 72 65 66 | (setq.hex.(nconc.hex.(list.(aref |
| 2c5c0 | 20 68 65 78 2d 63 68 61 72 73 20 28 72 61 6e 64 6f 6d 20 31 36 29 29 29 29 29 29 0a 20 20 20 20 | .hex-chars.(random.16))))))..... |
| 2c5e0 | 28 61 70 70 6c 79 20 23 27 73 74 72 69 6e 67 20 68 65 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 | (apply.#'string.hex)))..(defun.g |
| 2c600 | 70 74 65 6c 2d 2d 67 68 2d 72 65 73 74 6f 72 65 20 28 66 69 6c 65 29 0a 20 20 22 52 65 73 74 6f | ptel--gh-restore.(file)..."Resto |
| 2c620 | 72 65 20 73 61 76 65 64 20 6f 62 6a 65 63 74 20 66 72 6f 6d 20 46 49 4c 45 2e 22 0a 20 20 28 77 | re.saved.object.from.FILE."...(w |
| 2c640 | 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 3b 3b 20 | hen.(file-exists-p.file).....;;. |
| 2c660 | 57 65 20 73 65 74 20 74 68 65 20 63 6f 64 69 6e 67 20 73 79 73 74 65 6d 20 74 6f 20 60 75 74 66 | We.set.the.coding.system.to.`utf |
| 2c680 | 2d 38 2d 61 75 74 6f 2d 64 6f 73 27 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 73 6f 20 74 68 61 | -8-auto-dos'.when.reading.so.tha |
| 2c6a0 | 74 0a 20 20 20 20 3b 3b 20 66 69 6c 65 73 20 77 69 74 68 20 43 52 20 45 4f 4c 20 63 61 6e 20 73 | t.....;;.files.with.CR.EOL.can.s |
| 2c6c0 | 74 69 6c 6c 20 62 65 20 72 65 61 64 20 70 72 6f 70 65 72 6c 79 0a 20 20 20 20 28 6c 65 74 20 28 | till.be.read.properly.....(let.( |
| 2c6e0 | 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 2d 61 | (coding-system-for-read.'utf-8-a |
| 2c700 | 75 74 6f 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 | uto-dos)).......(with-temp-buffe |
| 2c720 | 72 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 | r.........(set-buffer-multibyte. |
| 2c740 | 6e 69 6c 29 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 | nil).........(insert-file-conten |
| 2c760 | 74 73 2d 6c 69 74 65 72 61 6c 6c 79 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f | ts-literally.file).........(goto |
| 2c780 | 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 20 20 28 72 65 61 64 | -char.(point-min)).........(read |
| 2c7a0 | 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 | .(current-buffer))))))..(defun.g |
| 2c7c0 | 70 74 65 6c 2d 2d 67 68 2d 73 61 76 65 20 28 66 69 6c 65 20 6f 62 6a 29 0a 20 20 22 53 61 76 65 | ptel--gh-save.(file.obj)..."Save |
| 2c7e0 | 20 4f 42 4a 20 74 6f 20 46 49 4c 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 69 6e 74 2d 6c 65 | .OBJ.to.FILE."...(let.((print-le |
| 2c800 | 6e 67 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 6e 74 2d 6c 65 76 65 6c 20 6e | ngth.nil).........(print-level.n |
| 2c820 | 69 6c 29 0a 20 20 20 20 20 20 20 20 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 | il).........(coding-system-for-w |
| 2c840 | 72 69 74 65 20 27 75 74 66 2d 38 2d 75 6e 69 78 29 29 0a 20 20 20 20 28 6d 61 6b 65 2d 64 69 72 | rite.'utf-8-unix)).....(make-dir |
| 2c860 | 65 63 74 6f 72 79 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 66 69 6c 65 | ectory.(file-name-directory.file |
| 2c880 | 29 20 74 29 0a 20 20 20 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 20 28 70 72 69 6e 31 2d 74 6f | ).t).....(write-region.(prin1-to |
| 2c8a0 | 2d 73 74 72 69 6e 67 20 6f 62 6a 29 20 6e 69 6c 20 66 69 6c 65 20 6e 69 6c 20 3a 73 69 6c 65 6e | -string.obj).nil.file.nil.:silen |
| 2c8c0 | 74 29 0a 20 20 20 20 6f 62 6a 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 67 68 2d 6c 6f | t).....obj))..(defun.gptel-gh-lo |
| 2c8e0 | 67 69 6e 20 28 29 0a 20 20 22 4c 6f 67 69 6e 20 74 6f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f | gin.()..."Login.to.GitHub.Copilo |
| 2c900 | 74 20 41 50 49 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 70 72 6f 6d 70 74 20 79 6f 75 20 74 6f 20 | t.API...This.will.prompt.you.to. |
| 2c920 | 61 75 74 68 6f 72 69 7a 65 20 69 6e 20 61 20 62 72 6f 77 73 65 72 20 61 6e 64 20 73 74 6f 72 65 | authorize.in.a.browser.and.store |
| 2c940 | 20 74 68 65 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 | .the.token."...(interactive)...( |
| 2c960 | 70 63 61 73 65 2d 6c 65 74 20 28 28 28 6d 61 70 20 3a 64 65 76 69 63 65 5f 63 6f 64 65 20 3a 75 | pcase-let.(((map.:device_code.:u |
| 2c980 | 73 65 72 5f 63 6f 64 65 20 3a 76 65 72 69 66 69 63 61 74 69 6f 6e 5f 75 72 69 29 0a 20 20 20 20 | ser_code.:verification_uri)..... |
| 2c9a0 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 72 65 74 72 69 65 76 65 0a | ...........(gptel--url-retrieve. |
| 2c9c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 | ..................."https://gith |
| 2c9e0 | 75 62 2e 63 6f 6d 2f 6c 6f 67 69 6e 2f 64 65 76 69 63 65 2f 63 6f 64 65 22 0a 20 20 20 20 20 20 | ub.com/login/device/code"....... |
| 2ca00 | 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 74 68 6f 64 20 27 70 6f 73 74 0a 20 20 20 20 20 20 20 | ...........:method.'post........ |
| 2ca20 | 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 73 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 | ..........:headers.gptel--gh-aut |
| 2ca40 | 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h-common-headers................ |
| 2ca60 | 20 20 3a 64 61 74 61 20 60 28 20 3a 63 6c 69 65 6e 74 5f 69 64 20 2c 67 70 74 65 6c 2d 2d 67 68 | ..:data.`(.:client_id.,gptel--gh |
| 2ca80 | 2d 63 6c 69 65 6e 74 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 | -client-id...................... |
| 2caa0 | 20 20 20 20 20 3a 73 63 6f 70 65 20 22 72 65 61 64 3a 75 73 65 72 22 29 29 29 29 0a 20 20 20 20 | .....:scope."read:user"))))..... |
| 2cac0 | 28 67 75 69 2d 73 65 74 2d 73 65 6c 65 63 74 69 6f 6e 20 27 43 4c 49 50 42 4f 41 52 44 20 75 73 | (gui-set-selection.'CLIPBOARD.us |
| 2cae0 | 65 72 5f 63 6f 64 65 29 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 | er_code).....(read-from-minibuff |
| 2cb00 | 65 72 0a 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f 75 72 20 6f 6e 65 2d 74 69 6d 65 20 63 | er......(format."Your.one-time.c |
| 2cb20 | 6f 64 65 20 25 73 20 69 73 20 63 6f 70 69 65 64 2e 20 5c 0a 50 72 65 73 73 20 45 4e 54 45 52 20 | ode.%s.is.copied..\.Press.ENTER. |
| 2cb40 | 74 6f 20 6f 70 65 6e 20 47 69 74 48 75 62 20 69 6e 20 79 6f 75 72 20 62 72 6f 77 73 65 72 2e 20 | to.open.GitHub.in.your.browser.. |
| 2cb60 | 5c 0a 49 66 20 79 6f 75 72 20 62 72 6f 77 73 65 72 20 64 6f 65 73 20 6e 6f 74 20 6f 70 65 6e 20 | \.If.your.browser.does.not.open. |
| 2cb80 | 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 62 72 6f 77 73 65 20 74 6f 20 25 73 2e 22 0a 20 20 | automatically,.browse.to.%s."... |
| 2cba0 | 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 5f 63 6f 64 65 20 76 65 72 69 66 69 63 61 74 69 6f | ...........user_code.verificatio |
| 2cbc0 | 6e 5f 75 72 69 29 29 0a 20 20 20 20 28 62 72 6f 77 73 65 2d 75 72 6c 20 76 65 72 69 66 69 63 61 | n_uri)).....(browse-url.verifica |
| 2cbe0 | 74 69 6f 6e 5f 75 72 69 29 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 | tion_uri).....(read-from-minibuf |
| 2cc00 | 66 65 72 20 22 50 72 65 73 73 20 45 4e 54 45 52 20 61 66 74 65 72 20 61 75 74 68 6f 72 69 7a 69 | fer."Press.ENTER.after.authorizi |
| 2cc20 | 6e 67 2e 22 29 0a 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 20 20 20 20 28 70 6c | ng.").....(thread-last.......(pl |
| 2cc40 | 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 72 65 74 72 69 | ist-get........(gptel--url-retri |
| 2cc60 | 65 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 | eve............"https://github.c |
| 2cc80 | 6f 6d 2f 6c 6f 67 69 6e 2f 6f 61 75 74 68 2f 61 63 63 65 73 73 5f 74 6f 6b 65 6e 22 0a 20 20 20 | om/login/oauth/access_token".... |
| 2cca0 | 20 20 20 20 20 20 3a 6d 65 74 68 6f 64 20 27 70 6f 73 74 0a 20 20 20 20 20 20 20 20 20 3a 68 65 | ......:method.'post..........:he |
| 2ccc0 | 61 64 65 72 73 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 | aders.gptel--gh-auth-common-head |
| 2cce0 | 65 72 73 0a 20 20 20 20 20 20 20 20 20 3a 64 61 74 61 20 60 28 20 3a 63 6c 69 65 6e 74 5f 69 64 | ers..........:data.`(.:client_id |
| 2cd00 | 20 2c 67 70 74 65 6c 2d 2d 67 68 2d 63 6c 69 65 6e 74 2d 69 64 0a 20 20 20 20 20 20 20 20 20 20 | .,gptel--gh-client-id........... |
| 2cd20 | 20 20 20 20 20 20 20 20 3a 64 65 76 69 63 65 5f 63 6f 64 65 20 2c 64 65 76 69 63 65 5f 63 6f 64 | ........:device_code.,device_cod |
| 2cd40 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 67 72 61 6e 74 5f 74 79 70 65 20 | e...................:grant_type. |
| 2cd60 | 22 75 72 6e 3a 69 65 74 66 3a 70 61 72 61 6d 73 3a 6f 61 75 74 68 3a 67 72 61 6e 74 2d 74 79 70 | "urn:ietf:params:oauth:grant-typ |
| 2cd80 | 65 3a 64 65 76 69 63 65 5f 63 6f 64 65 22 29 29 0a 20 20 20 20 20 20 20 3a 61 63 63 65 73 73 5f | e:device_code"))........:access_ |
| 2cda0 | 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 73 61 76 65 20 67 70 74 | token).......(gptel--gh-save.gpt |
| 2cdc0 | 65 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 | el-gh-github-token-file).......( |
| 2cde0 | 73 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 | setf.(gptel--gh-github-token.gpt |
| 2ce00 | 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 67 70 74 65 6c | el-backend))))...(if.(and.(gptel |
| 2ce20 | 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | --gh-github-token.gptel-backend) |
| 2ce40 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 | ............(not.(string-empty-p |
| 2ce60 | 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 67 68 2d 67 69 74 | ..................(gptel--gh-git |
| 2ce80 | 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 | hub-token.gptel-backend))))..... |
| 2cea0 | 20 20 28 6d 65 73 73 61 67 65 20 22 53 75 63 63 65 73 73 66 75 6c 6c 79 20 6c 6f 67 67 65 64 20 | ..(message."Successfully.logged. |
| 2cec0 | 69 6e 20 74 6f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 22 29 0a 20 20 20 20 28 75 73 65 72 | in.to.GitHub.Copilot").....(user |
| 2cee0 | 2d 65 72 72 6f 72 20 22 45 72 72 6f 72 3a 20 59 6f 75 20 6d 69 67 68 74 20 6e 6f 74 20 68 61 76 | -error."Error:.You.might.not.hav |
| 2cf00 | 65 20 61 63 63 65 73 73 20 74 6f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 43 68 61 74 21 | e.access.to.GitHub.Copilot.Chat! |
| 2cf20 | 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 68 2d 72 65 6e 65 77 2d 74 6f 6b | ")))..(defun.gptel--gh-renew-tok |
| 2cf40 | 65 6e 20 28 29 0a 20 20 22 52 65 6e 65 77 20 73 65 73 73 69 6f 6e 20 74 6f 6b 65 6e 2e 22 0a 20 | en.()..."Renew.session.token.".. |
| 2cf60 | 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 | .(let.((token..........(gptel--u |
| 2cf80 | 72 6c 2d 72 65 74 72 69 65 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 74 74 70 73 3a | rl-retrieve.............."https: |
| 2cfa0 | 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 70 69 6c 6f 74 5f 69 6e 74 65 72 6e 61 | //api.github.com/copilot_interna |
| 2cfc0 | 6c 2f 76 32 2f 74 6f 6b 65 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 74 68 6f 64 20 27 | l/v2/token"............:method.' |
| 2cfe0 | 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 73 20 60 28 28 22 61 75 74 68 | get............:headers.`(("auth |
| 2d000 | 6f 72 69 7a 61 74 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | orization"...................... |
| 2d020 | 20 20 2e 20 2c 28 66 6f 72 6d 61 74 20 22 74 6f 6b 65 6e 20 25 73 22 20 28 67 70 74 65 6c 2d 2d | ....,(format."token.%s".(gptel-- |
| 2d040 | 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 | gh-github-token.gptel-backend))) |
| 2d060 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 40 67 70 74 65 6c 2d 2d | .......................,@gptel-- |
| 2d080 | 67 68 2d 61 75 74 68 2d 63 6f 6d 6d 6f 6e 2d 68 65 61 64 65 72 73 29 29 29 29 0a 20 20 20 20 28 | gh-auth-common-headers)))).....( |
| 2d0a0 | 69 66 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6b 65 6e 20 3a 74 6f 6b 65 6e 29 | if.(not.(plist-get.token.:token) |
| 2d0c0 | 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 73 65 74 66 | ).........(progn...........(setf |
| 2d0e0 | 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 | .(gptel--gh-github-token.gptel-b |
| 2d100 | 61 63 6b 65 6e 64 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 | ackend).nil)...........(user-err |
| 2d120 | 6f 72 20 22 45 72 72 6f 72 3a 20 59 6f 75 20 6d 69 67 68 74 20 6e 6f 74 20 68 61 76 65 20 61 63 | or."Error:.You.might.not.have.ac |
| 2d140 | 63 65 73 73 20 74 6f 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 43 68 61 74 21 22 29 29 0a | cess.to.GitHub.Copilot.Chat!")). |
| 2d160 | 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 | ......(thread-last.........(gpte |
| 2d180 | 6c 2d 2d 67 68 2d 73 61 76 65 20 67 70 74 65 6c 2d 67 68 2d 74 6f 6b 65 6e 2d 66 69 6c 65 20 74 | l--gh-save.gptel-gh-token-file.t |
| 2d1a0 | 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 | oken).........(setf.(gptel--gh-t |
| 2d1c0 | 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e | oken.gptel-backend))))))..(defun |
| 2d1e0 | 20 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 20 28 29 0a 20 20 22 41 75 74 68 65 6e 74 69 63 61 | .gptel--gh-auth.()..."Authentica |
| 2d200 | 74 65 20 77 69 74 68 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 41 50 49 2e 0a 0a 57 65 20 | te.with.GitHub.Copilot.API...We. |
| 2d220 | 66 69 72 73 74 20 6e 65 65 64 20 67 69 74 68 75 62 20 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 | first.need.github.authorization. |
| 2d240 | 28 67 69 74 68 75 62 20 74 6f 6b 65 6e 29 2e 0a 54 68 65 6e 20 77 65 20 6e 65 65 64 20 61 20 73 | (github.token)..Then.we.need.a.s |
| 2d260 | 65 73 73 69 6f 6e 20 74 6f 6b 65 6e 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d | ession.token."...(unless.(gptel- |
| 2d280 | 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a | -gh-github-token.gptel-backend). |
| 2d2a0 | 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6b 65 6e 20 28 67 70 74 65 6c 2d 2d 67 68 2d 72 65 73 74 | ....(let.((token.(gptel--gh-rest |
| 2d2c0 | 6f 72 65 20 67 70 74 65 6c 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 2d 66 69 6c 65 29 29 | ore.gptel-gh-github-token-file)) |
| 2d2e0 | 29 0a 20 20 20 20 20 20 28 69 66 20 74 6f 6b 65 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | ).......(if.token...........(set |
| 2d300 | 66 20 28 67 70 74 65 6c 2d 2d 67 68 2d 67 69 74 68 75 62 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d | f.(gptel--gh-github-token.gptel- |
| 2d320 | 62 61 63 6b 65 6e 64 29 20 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 67 | backend).token).........(gptel-g |
| 2d340 | 68 2d 6c 6f 67 69 6e 29 29 29 29 0a 0a 20 20 28 77 68 65 6e 20 28 6e 75 6c 6c 20 28 67 70 74 65 | h-login))))....(when.(null.(gpte |
| 2d360 | 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 | l--gh-token.gptel-backend))..... |
| 2d380 | 3b 3b 20 74 72 79 20 74 6f 20 6c 6f 61 64 20 74 6f 6b 65 6e 20 66 72 6f 6d 20 60 67 70 74 65 6c | ;;.try.to.load.token.from.`gptel |
| 2d3a0 | 2d 67 68 2d 74 6f 6b 65 6e 2d 66 69 6c 65 27 0a 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c | -gh-token-file'.....(setf.(gptel |
| 2d3c0 | 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 | --gh-token.gptel-backend)....... |
| 2d3e0 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 72 65 73 74 6f 72 65 20 67 70 74 65 6c 2d 67 68 2d | ....(gptel--gh-restore.gptel-gh- |
| 2d400 | 74 6f 6b 65 6e 2d 66 69 6c 65 29 29 29 0a 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 28 6d | token-file)))....(pcase-let.(((m |
| 2d420 | 61 70 20 3a 74 6f 6b 65 6e 20 3a 65 78 70 69 72 65 73 5f 61 74 29 0a 20 20 20 20 20 20 20 20 20 | ap.:token.:expires_at).......... |
| 2d440 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 6c 2d 62 61 63 | ......(gptel--gh-token.gptel-bac |
| 2d460 | 6b 65 6e 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 74 6f 6b 65 | kend))).....(when.(or.(null.toke |
| 2d480 | 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 65 78 70 69 72 65 73 5f 61 74 | n)...............(and.expires_at |
| 2d4a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3e 20 28 72 6f 75 6e 64 20 28 66 | ....................(>.(round.(f |
| 2d4c0 | 6c 6f 61 74 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 20 20 | loat-time.(current-time)))...... |
| 2d4e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 78 70 69 72 65 73 5f 61 74 29 29 29 0a 20 | .................expires_at))).. |
| 2d500 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 72 65 6e 65 77 2d 74 6f 6b 65 6e 29 29 29 29 0a | .....(gptel--gh-renew-token)))). |
| 2d520 | 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 6c 2d | .;;;###autoload.(cl-defun.gptel- |
| 2d540 | 6d 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 | make-gh-copilot.....(name.&key.c |
| 2d560 | 75 72 6c 2d 61 72 67 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 | url-args.request-params......... |
| 2d580 | 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ..(header.(lambda.()............ |
| 2d5a0 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 68 2d 61 75 74 68 29 0a 20 20 20 20 20 20 | .........(gptel--gh-auth)....... |
| 2d5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 6f 70 65 6e 61 69 2d 69 6e 74 65 6e 74 22 | ..............`(("openai-intent" |
| 2d5e0 | 20 2e 20 22 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2d 70 61 6e 65 6c 22 29 0a 20 20 20 20 20 20 20 | ..."conversation-panel")........ |
| 2d600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 | ...............("authorization". |
| 2d620 | 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 | ..,(concat."Bearer."............ |
| 2d640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2d660 | 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 2d 67 68 2d 74 6f 6b 65 6e 20 67 70 74 65 | (plist-get.(gptel--gh-token.gpte |
| 2d680 | 6c 2d 62 61 63 6b 65 6e 64 29 20 3a 74 6f 6b 65 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | l-backend).:token)))............ |
| 2d6a0 | 20 20 20 20 20 20 20 20 20 20 20 28 22 78 2d 72 65 71 75 65 73 74 2d 69 64 22 20 2e 20 2c 28 67 | ...........("x-request-id"...,(g |
| 2d6c0 | 70 74 65 6c 2d 2d 67 68 2d 75 75 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--gh-uuid))................. |
| 2d6e0 | 20 20 20 20 20 20 28 22 76 73 63 6f 64 65 2d 73 65 73 73 69 6f 6e 69 64 22 20 2e 20 2c 28 6f 72 | ......("vscode-sessionid"...,(or |
| 2d700 | 20 28 67 70 74 65 6c 2d 2d 67 68 2d 73 65 73 73 69 6f 6e 69 64 20 67 70 74 65 6c 2d 62 61 63 6b | .(gptel--gh-sessionid.gptel-back |
| 2d720 | 65 6e 64 29 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end).""))....................... |
| 2d740 | 28 22 76 73 63 6f 64 65 2d 6d 61 63 68 69 6e 65 69 64 22 20 2e 20 2c 28 6f 72 20 28 67 70 74 65 | ("vscode-machineid"...,(or.(gpte |
| 2d760 | 6c 2d 2d 67 68 2d 6d 61 63 68 69 6e 65 69 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 | l--gh-machineid.gptel-backend)." |
| 2d780 | 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 2c 40 28 77 68 65 | ")).......................,@(whe |
| 2d7a0 | 6e 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 20 20 20 | n.(and.gptel-track-media........ |
| 2d7c0 | 20 20 20 20 20 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 |
| 2d7e0 | 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 29 0a 20 20 20 | el--model-capable-p.'media)).... |
| 2d800 | 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 28 22 63 6f 70 69 6c | .......................`(("copil |
| 2d820 | 6f 74 2d 76 69 73 69 6f 6e 2d 72 65 71 75 65 73 74 22 20 2e 20 22 74 72 75 65 22 29 29 29 0a 20 | ot-vision-request"..."true"))).. |
| 2d840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 63 6f 70 69 6c 6f 74 2d 69 | .....................("copilot-i |
| 2d860 | 6e 74 65 67 72 61 74 69 6f 6e 2d 69 64 22 20 2e 20 22 76 73 63 6f 64 65 2d 63 68 61 74 22 29 29 | ntegration-id"..."vscode-chat")) |
| 2d880 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 67 69 74 68 75 62 63 6f | ))...........(host."api.githubco |
| 2d8a0 | 70 69 6c 6f 74 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 | pilot.com")...........(protocol. |
| 2d8c0 | 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 63 | "https")...........(endpoint."/c |
| 2d8e0 | 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 | hat/completions")...........(str |
| 2d900 | 65 61 6d 20 74 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 | eam.t)...........(models.gptel-- |
| 2d920 | 67 68 2d 6d 6f 64 65 6c 73 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 47 69 74 68 75 62 | gh-models))..."Register.a.Github |
| 2d940 | 20 43 6f 70 69 6c 6f 74 20 63 68 61 74 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 | .Copilot.chat.backend.for.gptel. |
| 2d960 | 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:.. |
| 2d980 | 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 |
| 2d9a0 | 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 |
| 2d9c0 | 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 |
| 2d9e0 | 79 70 69 63 61 6c 6c 79 20 5c 22 61 70 69 2e 67 69 74 68 75 62 63 6f 70 69 6c 6f 74 2e 63 6f 6d | ypically.\"api.githubcopilot.com |
| 2da00 | 5c 22 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 | \"...MODELS.is.a.list.of.availab |
| 2da20 | 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 64 64 69 | le.model.names,.as.symbols..Addi |
| 2da40 | 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 70 6f 72 | tionally,.you.can.specify.suppor |
| 2da60 | 74 65 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 69 6f 6e | ted.LLM.capabilities.like.vision |
| 2da80 | 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 6c 69 73 | .or.tool-use.by.appending.a.plis |
| 2daa0 | 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 | t.to.the.model.with.more.informa |
| 2dac0 | 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 20 | tion,.in.the.form...(model-name. |
| 2dae0 | 2e 20 70 6c 69 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 6c | ..plist)..For.a.list.of.currentl |
| 2db00 | 79 20 72 65 63 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 2c 20 73 65 65 0a 60 67 70 | y.recognized.plist.keys,.see.`gp |
| 2db20 | 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 27 2e 20 20 41 6e 20 65 78 61 6d 70 6c 65 | tel--openai-models'...An.example |
| 2db40 | 20 6f 66 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 | .of.a.model.specification.includ |
| 2db60 | 69 6e 67 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f 66 20 73 70 65 63 73 3a 0a 0a 3a 6d 6f 64 65 6c | ing.both.kinds.of.specs:..:model |
| 2db80 | 73 0a 5c 5c 3d 27 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 20 20 20 20 20 20 20 20 20 20 20 20 | s.\\='(gpt-3.5-turbo............ |
| 2dba0 | 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 0a 20 20 67 70 74 | .............;Simple.specs...gpt |
| 2dbc0 | 2d 34 2d 74 75 72 62 6f 0a 20 20 28 67 70 74 2d 34 6f 2d 6d 69 6e 69 20 20 20 20 20 20 20 20 20 | -4-turbo...(gpt-4o-mini......... |
| 2dbe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a | .................;Full.spec....: |
| 2dc00 | 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 5c 22 41 66 66 6f 72 64 61 62 6c 65 20 61 6e 64 20 | description....\"Affordable.and. |
| 2dc20 | 69 6e 74 65 6c 6c 69 67 65 6e 74 20 73 6d 61 6c 6c 20 6d 6f 64 65 6c 20 66 6f 72 20 6c 69 67 68 | intelligent.small.model.for.ligh |
| 2dc40 | 74 77 65 69 67 68 74 20 74 61 73 6b 73 5c 22 0a 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | tweight.tasks\"....:capabilities |
| 2dc60 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 3a 6d 69 6d 65 2d | .(media.tool.json.url)....:mime- |
| 2dc80 | 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 65 | types....(\"image/jpeg\".\"image |
| 2dca0 | 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 2f 77 65 62 | /png\".\"image/gif\".\"image/web |
| 2dcc0 | 70 5c 22 29 29 29 0a 0a 44 65 66 61 75 6c 74 73 20 74 6f 20 61 20 6c 69 73 74 20 6f 66 20 6d 6f | p\")))..Defaults.to.a.list.of.mo |
| 2dce0 | 64 65 6c 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 | dels.supported.by.GitHub.Copilot |
| 2dd00 | 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 6f 67 67 6c 65 | ...STREAM.is.a.boolean.to.toggle |
| 2dd20 | 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 | .streaming.responses,.defaults.t |
| 2dd40 | 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 | o.false...PROTOCOL.(optional).sp |
| 2dd60 | 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 |
| 2dd80 | 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. |
| 2dda0 | 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 |
| 2ddc0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e | ,.defaults.to.\"/chat/completion |
| 2dde0 | 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 |
| 2de00 | 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 |
| 2de20 | 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 |
| 2de40 | 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 |
| 2de60 | 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 |
| 2de80 | 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 44 65 66 | \"...\"application/json\"))..Def |
| 2dea0 | 61 75 6c 74 73 20 74 6f 20 68 65 61 64 65 72 73 20 72 65 71 75 69 72 65 64 20 62 79 20 47 69 74 | aults.to.headers.required.by.Git |
| 2dec0 | 48 75 62 20 43 6f 70 69 6c 6f 74 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 | Hub.Copilot...REQUEST-PARAMS.(op |
| 2dee0 | 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 |
| 2df00 | 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 |
| 2df20 | 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 |
| 2df40 | 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 |
| 2df60 | 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 |
| 2df80 | 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 |
| 2dfa0 | 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 |
| 2dfc0 | 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--make-gh................... |
| 2dfe0 | 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 |
| 2e000 | 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 |
| 2e020 | 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 6d 6f 64 65 | r.header...................:mode |
| 2e040 | 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 | ls.(gptel--process-models.models |
| 2e060 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 | )...................:protocol.pr |
| 2e080 | 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 | otocol...................:endpoi |
| 2e0a0 | 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 | nt.endpoint...................:s |
| 2e0c0 | 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | tream.stream...................: |
| 2e0e0 | 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 | request-params.request-params... |
| 2e100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d | ................:curl-args.curl- |
| 2e120 | 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 63 6f 6e | args...................:url.(con |
| 2e140 | 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 | cat.protocol."://".host.endpoint |
| 2e160 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 63 68 69 6e 65 69 64 20 28 | )...................:machineid.( |
| 2e180 | 67 70 74 65 6c 2d 2d 67 68 2d 6d 61 63 68 69 6e 65 2d 69 64 29 29 29 29 0a 20 20 20 20 28 73 65 | gptel--gh-machine-id)))).....(se |
| 2e1a0 | 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d | tf.(alist-get.name.gptel--known- |
| 2e1c0 | 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 6b 65 6e | backends.nil.nil.#'equal).backen |
| 2e1e0 | 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 70 74 65 | d).....backend))..(provide.'gpte |
| 2e200 | 6c 2d 67 68 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 67 68 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a | l-gh).;;;.gptel-gh.el.ends.here. |
| 2e220 | 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d | .;;.Local.Variables:.;;.byte-com |
| 2e240 | 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a | pile-warnings:.(not.docstrings). |
| 2e260 | 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 00 00 | ;;.End:......................... |
| 2e280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e400 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 2e 65 | gptel-0.9.9/gptel-integrations.e |
| 2e420 | 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 00 | l............................... |
| 2e440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e460 | 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 |
| 2e480 | 30 30 33 31 32 35 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 34 35 32 00 20 30 00 00 00 | 0031255.00000000000.015452..0... |
| 2e4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e4e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e500 | 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................... |
| 2e520 | 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................... |
| 2e540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e5a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e5c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2e600 | 3b 3b 3b 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 20 2d 2d 2d 20 49 6e 74 65 67 | ;;;.gptel-transient.el.---.Integ |
| 2e620 | 72 61 74 69 6f 6e 73 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 | rations.for.gptel..-*-.lexical-b |
| 2e640 | 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 | inding:.t;.-*-..;;.Copyright.(C) |
| 2e660 | 20 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 | .2025..Karthik.Chikmagalur..;;.A |
| 2e680 | 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 | uthor:.Karthik.Chikmagalur.<kart |
| 2e6a0 | 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 | hikchikmagalur@gmail.com>.;;.Key |
| 2e6c0 | 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 | words:.convenience..;;.SPDX-Lice |
| 2e6e0 | 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 | nse-Identifier:.GPL-3.0-or-later |
| 2e700 | 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 | ..;;.This.program.is.free.softwa |
| 2e720 | 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f | re;.you.can.redistribute.it.and/ |
| 2e740 | 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 | or.modify.;;.it.under.the.terms. |
| 2e760 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 2e780 | 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f | e.as.published.by.;;.the.Free.So |
| 2e7a0 | 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f | ftware.Foundation,.either.versio |
| 2e7c0 | 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f | n.3.of.the.License,.or.;;.(at.yo |
| 2e7e0 | 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b | ur.option).any.later.version...; |
| 2e800 | 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ;.This.program.is.distributed.in |
| 2e820 | 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 |
| 2e840 | 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 | ,.;;.but.WITHOUT.ANY.WARRANTY;.w |
| 2e860 | 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 | ithout.even.the.implied.warranty |
| 2e880 | 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 | .of.;;.MERCHANTABILITY.or.FITNES |
| 2e8a0 | 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 | S.FOR.A.PARTICULAR.PURPOSE...See |
| 2e8c0 | 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .the.;;.GNU.General.Public.Licen |
| 2e8e0 | 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f | se.for.more.details...;;.You.sho |
| 2e900 | 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 | uld.have.received.a.copy.of.the. |
| 2e920 | 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c | GNU.General.Public.License.;;.al |
| 2e940 | 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 | ong.with.this.program...If.not,. |
| 2e960 | 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 | see.<https://www.gnu.org/license |
| 2e980 | 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 49 6e 74 65 67 72 | s/>...;;;.Commentary:..;;.Integr |
| 2e9a0 | 61 74 69 6f 6e 73 20 77 69 74 68 20 72 65 6c 61 74 65 64 20 70 61 63 6b 61 67 65 73 20 66 6f 72 | ations.with.related.packages.for |
| 2e9c0 | 20 67 70 74 65 6c 2e 20 20 54 6f 20 75 73 65 20 74 68 65 73 65 2c 20 72 75 6e 0a 3b 3b 0a 3b 3b | .gptel...To.use.these,.run.;;.;; |
| 2e9e0 | 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 29 0a 3b | .(require.'gptel-integrations).; |
| 2ea00 | 3b 0a 3b 3b 20 46 6f 72 20 4d 43 50 20 69 6e 74 65 67 72 61 74 69 6f 6e 3a 0a 3b 3b 20 2d 20 52 | ;.;;.For.MCP.integration:.;;.-.R |
| 2ea20 | 75 6e 20 4d 2d 78 20 60 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 27 20 61 6e 64 20 4d | un.M-x.`gptel-mcp-connect'.and.M |
| 2ea40 | 2d 78 20 60 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 27 2c 20 4f 52 0a 3b 3b | -x.`gptel-mcp-disconnect',.OR.;; |
| 2ea60 | 20 2d 20 55 73 65 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 73 20 6d 65 6e 75 2c 20 4d 2d 78 20 60 | .-.Use.gptel's.tools.menu,.M-x.` |
| 2ea80 | 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2c 20 4f 52 0a 3b 3b 20 2d 20 41 63 63 65 73 73 20 74 6f 6f | gptel-tools',.OR.;;.-.Access.too |
| 2eaa0 | 6c 73 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a | ls.from.`gptel-menu'..;;;.Code:. |
| 2eac0 | 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 | (require.'gptel).(require.'cl-li |
| 2eae0 | 62 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 69 72 65 20 27 | b).(eval-when-compile.(require.' |
| 2eb00 | 74 72 61 6e 73 69 65 6e 74 29 29 0a 0a 3b 3b 3b 3b 20 4d 43 50 20 69 6e 74 65 67 72 61 74 69 6f | transient))..;;;;.MCP.integratio |
| 2eb20 | 6e 20 2d 20 72 65 71 75 69 72 65 73 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 65 0a 28 64 65 | n.-.requires.the.mcp.package.(de |
| 2eb40 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 2d 67 65 74 2d 61 6c 6c 2d 74 | clare-function.mcp-hub-get-all-t |
| 2eb60 | 6f 6f 6c 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ool."mcp-hub").(declare-function |
| 2eb80 | 20 6d 63 70 2d 68 75 62 2d 67 65 74 2d 73 65 72 76 65 72 73 20 22 6d 63 70 2d 68 75 62 22 29 0a | .mcp-hub-get-servers."mcp-hub"). |
| 2eba0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 2d 73 74 61 72 74 2d | (declare-function.mcp-hub-start- |
| 2ebc0 | 61 6c 6c 2d 73 65 72 76 65 72 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 | all-server."mcp-hub").(declare-f |
| 2ebe0 | 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 22 6d 63 70 22 29 0a 28 | unction.mcp-stop-server."mcp").( |
| 2ec00 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 68 75 62 20 22 6d 63 70 2d 68 75 | declare-function.mcp-hub."mcp-hu |
| 2ec20 | 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 63 70 2d 2d 73 74 61 74 75 | b").(declare-function.mcp--statu |
| 2ec40 | 73 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d | s."mcp-hub").(declare-function.m |
| 2ec60 | 63 70 2d 2d 74 6f 6f 6c 73 20 22 6d 63 70 2d 68 75 62 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 | cp--tools."mcp-hub").(declare-fu |
| 2ec80 | 6e 63 74 69 6f 6e 20 6d 63 70 2d 6d 61 6b 65 2d 74 65 78 74 2d 74 6f 6f 6c 20 22 6d 63 70 2d 68 | nction.mcp-make-text-tool."mcp-h |
| 2eca0 | 75 62 22 29 0a 28 64 65 66 76 61 72 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 0a 28 64 | ub").(defvar.mcp-hub-servers).(d |
| 2ecc0 | 65 66 76 61 72 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 0a 0a 28 | efvar.mcp-server-connections)..( |
| 2ece0 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 20 28 26 6f 70 74 69 6f 6e | defun.gptel-mcp-connect.(&option |
| 2ed00 | 61 6c 20 73 65 72 76 65 72 73 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 20 69 6e 74 65 72 | al.servers.server-callback.inter |
| 2ed20 | 61 63 74 69 76 65 29 0a 20 20 22 41 64 64 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 | active)..."Add.gptel.tools.from. |
| 2ed40 | 4d 43 50 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 | MCP.servers.using.the.mcp.packag |
| 2ed60 | 65 2e 0a 0a 4d 43 50 20 73 65 72 76 65 72 73 20 61 72 65 20 73 74 61 72 74 65 64 20 69 66 20 72 | e...MCP.servers.are.started.if.r |
| 2ed80 | 65 71 75 69 72 65 64 2e 20 20 53 45 52 56 45 52 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 | equired...SERVERS.is.a.list.of.s |
| 2eda0 | 65 72 76 65 72 0a 6e 61 6d 65 73 20 28 73 74 72 69 6e 67 73 29 20 74 6f 20 63 6f 6e 6e 65 63 74 | erver.names.(strings).to.connect |
| 2edc0 | 20 74 6f 2e 20 20 49 66 20 6e 69 6c 2c 20 61 6c 6c 20 6b 6e 6f 77 6e 20 73 65 72 76 65 72 73 20 | .to...If.nil,.all.known.servers. |
| 2ede0 | 61 72 65 0a 63 6f 6e 73 69 64 65 72 65 64 2e 0a 0a 49 66 20 49 4e 54 45 52 41 43 54 49 56 45 20 | are.considered...If.INTERACTIVE. |
| 2ee00 | 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 6f 72 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 | is.non-nil.(or.called.interactiv |
| 2ee20 | 65 6c 79 29 2c 20 67 75 69 64 65 20 74 68 65 20 75 73 65 72 0a 74 68 72 6f 75 67 68 20 73 65 74 | ely),.guide.the.user.through.set |
| 2ee40 | 74 69 6e 67 20 75 70 20 6d 63 70 2c 20 61 6e 64 20 71 75 65 72 79 20 66 6f 72 20 73 65 72 76 65 | ting.up.mcp,.and.query.for.serve |
| 2ee60 | 72 73 20 74 6f 20 72 65 74 72 69 65 76 65 20 74 6f 6f 6c 73 20 66 72 6f 6d 2e 0a 0a 43 61 6c 6c | rs.to.retrieve.tools.from...Call |
| 2ee80 | 20 53 45 52 56 45 52 2d 43 41 4c 4c 42 41 43 4b 20 61 66 74 65 72 20 73 74 61 72 74 69 6e 67 20 | .SERVER-CALLBACK.after.starting. |
| 2eea0 | 4d 43 50 20 73 65 72 76 65 72 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 | MCP.servers."...(interactive.(li |
| 2eec0 | 73 74 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 28 69 66 20 28 6c 6f 63 61 74 65 2d 6c 69 62 | st.nil.nil.t))...(if.(locate-lib |
| 2eee0 | 72 61 72 79 20 22 6d 63 70 2d 68 75 62 22 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 72 | rary."mcp-hub").......(unless.(r |
| 2ef00 | 65 71 75 69 72 65 20 27 6d 63 70 2d 68 75 62 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 | equire.'mcp-hub.nil.t).........( |
| 2ef20 | 75 73 65 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 60 6d 63 70 2d | user-error."Could.not.load.`mcp- |
| 2ef40 | 68 75 62 27 21 20 20 50 6c 65 61 73 65 20 69 6e 73 74 61 6c 6c 5c 0a 20 6f 72 20 63 6f 6e 66 69 | hub'!..Please.install\..or.confi |
| 2ef60 | 67 75 72 65 20 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 65 22 29 29 0a 20 20 20 20 28 75 73 65 | gure.the.mcp.package")).....(use |
| 2ef80 | 72 2d 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 6d 63 70 21 20 20 50 6c | r-error."Could.not.find.mcp!..Pl |
| 2efa0 | 65 61 73 65 20 69 6e 73 74 61 6c 6c 20 6f 72 20 63 6f 6e 66 69 67 75 72 65 20 74 68 65 20 6d 63 | ease.install.or.configure.the.mc |
| 2efc0 | 70 20 70 61 63 6b 61 67 65 22 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 6d 63 70 2d 68 75 62 | p.package"))...(if.(null.mcp-hub |
| 2efe0 | 2d 73 65 72 76 65 72 73 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 | -servers).......(user-error."No. |
| 2f000 | 4d 43 50 20 73 65 72 76 65 72 73 20 61 76 61 69 6c 61 62 6c 65 21 20 20 50 6c 65 61 73 65 20 63 | MCP.servers.available!..Please.c |
| 2f020 | 6f 6e 66 69 67 75 72 65 20 60 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 27 22 29 0a 20 20 20 | onfigure.`mcp-hub-servers'").... |
| 2f040 | 20 28 73 65 74 71 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 73 65 72 | .(setq.servers...........(if.ser |
| 2f060 | 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 | vers...............(mapcar.(lamb |
| 2f080 | 64 61 20 28 73 29 20 28 61 73 73 6f 63 20 73 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 | da.(s).(assoc.s.mcp-hub-servers) |
| 2f0a0 | 29 20 73 65 72 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 6d 63 70 2d 68 75 62 2d 73 | ).servers).............mcp-hub-s |
| 2f0c0 | 65 72 76 65 72 73 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 75 6e 72 65 67 69 73 74 65 72 65 64 | ervers)).....(let.((unregistered |
| 2f0e0 | 2d 73 65 72 76 65 72 73 20 3b 41 76 61 69 6c 61 62 6c 65 20 73 65 72 76 65 72 73 20 6d 69 6e 75 | -servers.;Available.servers.minu |
| 2f100 | 73 20 73 65 72 76 65 72 73 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 77 69 74 | s.servers.already.registered.wit |
| 2f120 | 68 20 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 | h.gptel............(cl-loop.for. |
| 2f140 | 73 65 72 76 65 72 20 69 6e 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | server.in.servers............... |
| 2f160 | 20 20 20 20 20 20 77 69 74 68 20 72 65 67 69 73 74 65 72 65 64 2d 6e 61 6d 65 73 20 3d 0a 20 20 | ......with.registered-names.=... |
| 2f180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 | ..................(cl-loop.for.( |
| 2f1a0 | 63 61 74 20 2e 20 5f 74 6f 6f 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f | cat..._tools).in.gptel--known-to |
| 2f1c0 | 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols............................. |
| 2f1e0 | 20 69 66 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 6d 63 70 2d 22 20 63 61 74 29 | .if.(string-prefix-p."mcp-".cat) |
| 2f200 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f | ..............................co |
| 2f220 | 6c 6c 65 63 74 20 28 73 75 62 73 74 72 69 6e 67 20 63 61 74 20 34 29 29 0a 20 20 20 20 20 20 20 | llect.(substring.cat.4))........ |
| 2f240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 28 63 61 72 | .............unless.(member.(car |
| 2f260 | 20 73 65 72 76 65 72 29 20 72 65 67 69 73 74 65 72 65 64 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 | .server).registered-names)...... |
| 2f280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 73 65 72 76 65 72 29 29 29 | ...............collect.server))) |
| 2f2a0 | 0a 20 20 20 20 20 20 28 69 66 20 75 6e 72 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 0a | .......(if.unregistered-servers. |
| 2f2c0 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 | ..........(let*.((servers....... |
| 2f2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 | ............(if.interactive..... |
| 2f300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 69 63 6b 73 0a 20 | ..................(let.((picks.. |
| 2f320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d | ............................(com |
| 2f340 | 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | pleting-read-multiple........... |
| 2f360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 41 64 64 20 74 6f 6f 6c 73 20 66 | ...................."Add.tools.f |
| 2f380 | 72 6f 6d 20 4d 43 50 20 73 65 72 76 65 72 73 20 28 73 65 70 61 72 61 74 65 20 77 69 74 68 20 5c | rom.MCP.servers.(separate.with.\ |
| 2f3a0 | 22 2c 5c 22 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ",\"):."........................ |
| 2f3c0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 28 22 41 4c 4c 22 29 20 75 6e 72 65 67 69 73 74 65 72 | .......(cons.'("ALL").unregister |
| 2f3e0 | 65 64 2d 73 65 72 76 65 72 73 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ed-servers).nil.t)))............ |
| 2f400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 22 41 4c 4c 22 20 70 | .............(if.(member."ALL".p |
| 2f420 | 69 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | icks)........................... |
| 2f440 | 20 20 75 6e 72 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 | ..unregistered-servers.......... |
| 2f460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 | .................(mapcar.(lambda |
| 2f480 | 20 28 73 29 20 28 61 73 73 6f 63 20 73 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 20 | .(s).(assoc.s.mcp-hub-servers)). |
| 2f4a0 | 70 69 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 72 | picks))).....................unr |
| 2f4c0 | 65 67 69 73 74 65 72 65 64 2d 73 65 72 76 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | egistered-servers))............. |
| 2f4e0 | 20 20 20 20 20 28 73 65 72 76 65 72 2d 61 63 74 69 76 65 2d 70 0a 20 20 20 20 20 20 20 20 20 20 | .....(server-active-p........... |
| 2f500 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 65 72 76 65 72 29 0a 20 20 20 20 20 20 20 | ........(lambda.(server)........ |
| 2f520 | 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 73 65 72 76 65 72 | .............(when-let*.((server |
| 2f540 | 20 28 67 65 74 68 61 73 68 20 28 63 61 72 20 73 65 72 76 65 72 29 20 6d 63 70 2d 73 65 72 76 65 | .(gethash.(car.server).mcp-serve |
| 2f560 | 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-connections)))................ |
| 2f580 | 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 6d 63 70 2d 2d 73 74 61 74 75 73 20 73 65 72 76 65 | .......(equal.(mcp--status.serve |
| 2f5a0 | 72 29 20 27 63 6f 6e 6e 65 63 74 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r).'connected))))............... |
| 2f5c0 | 20 20 20 28 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d | ...(inactive-servers.(cl-remove- |
| 2f5e0 | 69 66 20 73 65 72 76 65 72 2d 61 63 74 69 76 65 2d 70 20 73 65 72 76 65 72 73 29 29 0a 20 20 20 | if.server-active-p.servers)).... |
| 2f600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 61 6c 6c 2d 74 6f 6f 6c 73 0a 20 20 20 | ..............(add-all-tools.... |
| 2f620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 6f 70 74 69 6f 6e 61 | ...............(lambda.(&optiona |
| 2f640 | 6c 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.server-names)................. |
| 2f660 | 20 20 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 64 20 61 64 64 20 74 6f 6f 6c 73 20 66 72 6f 6d | ...."Register.and.add.tools.from |
| 2f680 | 20 73 65 72 76 65 72 73 2e 20 20 52 65 70 6f 72 74 20 66 61 69 6c 75 72 65 73 2e 22 0a 20 20 20 | .servers...Report.failures.".... |
| 2f6a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f 6c 73 20 28 67 | .................(let.((tools.(g |
| 2f6c0 | 70 74 65 6c 2d 6d 63 70 2d 2d 67 65 74 2d 74 6f 6f 6c 73 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 | ptel-mcp--get-tools.server-names |
| 2f6e0 | 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 6f | ))...........................(no |
| 2f700 | 77 2d 61 63 74 69 76 65 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 73 65 72 76 65 | w-active.(cl-remove-if-not.serve |
| 2f720 | 72 2d 61 63 74 69 76 65 2d 70 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 29 0a 20 20 | r-active-p.mcp-hub-servers)))... |
| 2f740 | 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 20 28 6c 61 6d 62 64 | ....................(mapc.(lambd |
| 2f760 | 61 20 28 74 6f 6f 6c 29 20 28 61 70 70 6c 79 20 23 27 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f | a.(tool).(apply.#'gptel-make-too |
| 2f780 | 6c 20 74 6f 6f 6c 29 29 20 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.tool)).tools)................. |
| 2f7a0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 63 70 2d 2d 61 63 74 69 76 61 74 65 2d 74 6f 6f 6c 73 | ......(gptel-mcp--activate-tools |
| 2f7c0 | 20 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | .tools).......................(i |
| 2f7e0 | 66 2d 6c 65 74 2a 20 28 28 66 61 69 6c 65 64 20 28 63 6c 2d 73 65 74 2d 64 69 66 66 65 72 65 6e | f-let*.((failed.(cl-set-differen |
| 2f800 | 63 65 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 20 6e 6f 77 2d 61 63 74 69 76 65 0a 20 | ce.inactive-servers.now-active.. |
| 2f820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2f840 | 20 20 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 74 65 73 74 20 | ..........................:test. |
| 2f860 | 23 27 65 71 75 61 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 | #'equal)))...................... |
| 2f880 | 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..................... |
| 2f8a0 | 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 6e 61 63 74 69 76 65 2d 62 65 66 6f 72 | ........(message."Inactive-befor |
| 2f8c0 | 65 3a 20 25 53 2c 20 4e 6f 77 2d 41 63 74 69 76 65 3a 20 25 53 22 20 69 6e 61 63 74 69 76 65 2d | e:.%S,.Now-Active:.%S".inactive- |
| 2f8e0 | 73 65 72 76 65 72 73 20 6e 6f 77 2d 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | servers.now-active)............. |
| 2f900 | 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 73 75 62 73 74 69 | ................(message.(substi |
| 2f920 | 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tute-command-keys............... |
| 2f940 | 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 25 64 2f 25 64 20 73 | ........................"%d/%d.s |
| 2f960 | 65 72 76 65 72 25 73 20 66 61 69 6c 65 64 20 74 6f 20 73 74 61 72 74 3a 20 25 73 2e 20 20 52 75 | erver%s.failed.to.start:.%s...Ru |
| 2f980 | 6e 20 5c 5c 5b 6d 63 70 2d 68 75 62 5d 20 74 6f 20 69 6e 76 65 73 74 69 67 61 74 65 2e 22 29 0a | n.\\[mcp-hub].to.investigate."). |
| 2f9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2f9c0 | 20 20 20 20 20 28 6c 65 6e 67 74 68 20 66 61 69 6c 65 64 29 20 28 6c 65 6e 67 74 68 20 69 6e 61 | .....(length.failed).(length.ina |
| 2f9e0 | 63 74 69 76 65 2d 73 65 72 76 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ctive-servers).................. |
| 2fa00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 | ....................(if.(=.(leng |
| 2fa20 | 74 68 20 66 61 69 6c 65 64 29 20 31 29 20 22 22 20 22 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 | th.failed).1).""."s")........... |
| 2fa40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 | ...........................(mapc |
| 2fa60 | 6f 6e 63 61 74 20 23 27 63 61 72 20 66 61 69 6c 65 64 20 22 2c 20 22 29 29 29 0a 20 20 20 20 20 | oncat.#'car.failed.",.")))...... |
| 2fa80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 64 64 65 64 20 | ...................(let.((added. |
| 2faa0 | 28 6f 72 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 6e | (or.server-names.(mapcar.#'car.n |
| 2fac0 | 6f 77 2d 61 63 74 69 76 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ow-active))))................... |
| 2fae0 | 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 64 64 65 64 20 25 64 20 74 6f 6f 6c 73 | ........(message."Added.%d.tools |
| 2fb00 | 20 66 72 6f 6d 20 25 64 20 4d 43 50 20 73 65 72 76 65 72 25 73 3a 20 25 73 22 0a 20 20 20 20 20 | .from.%d.MCP.server%s:.%s"...... |
| 2fb20 | 20 20 20 20 20 20 20 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 |
| 2fb40 | 65 6e 67 74 68 20 74 6f 6f 6c 73 29 20 28 6c 65 6e 67 74 68 20 61 64 64 65 64 29 0a 20 20 20 20 | ength.tools).(length.added)..... |
| 2fb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 2fb80 | 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 61 64 64 65 64 29 20 31 29 20 22 22 20 22 73 22 29 0a | if.(=.(length.added).1).""."s"). |
| 2fba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 2fbc0 | 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 61 64 64 65 64 20 22 | ...(mapconcat.#'identity.added." |
| 2fbe0 | 2c 20 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | ,.")))).......................(w |
| 2fc00 | 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 29 20 | hen.(functionp.server-callback). |
| 2fc20 | 28 66 75 6e 63 61 6c 6c 20 73 65 72 76 65 72 2d 63 61 6c 6c 62 61 63 6b 29 29 29 29 29 29 0a 0a | (funcall.server-callback)))))).. |
| 2fc40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 | ............(if.inactive-servers |
| 2fc60 | 20 20 20 20 20 20 20 20 3b 73 74 61 72 74 20 73 65 72 76 65 72 73 0a 20 20 20 20 20 20 20 20 20 | ........;start.servers.......... |
| 2fc80 | 20 20 20 20 20 20 20 28 6d 63 70 2d 68 75 62 2d 73 74 61 72 74 2d 61 6c 6c 2d 73 65 72 76 65 72 | .......(mcp-hub-start-all-server |
| 2fca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 64 64 2d 61 6c 6c 2d 74 6f 6f 6c 73 20 | ..................add-all-tools. |
| 2fcc0 | 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 69 6e 61 63 74 69 76 65 2d 73 65 72 76 65 72 73 29 29 | (mapcar.#'car.inactive-servers)) |
| 2fce0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 64 64 2d 61 6c 6c 2d | ...............(funcall.add-all- |
| 2fd00 | 74 6f 6f 6c 73 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 73 65 72 76 65 72 73 29 29 29 29 0a | tools.(mapcar.#'car.servers)))). |
| 2fd20 | 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 6c 6c 20 4d 43 50 20 74 6f 6f 6c 73 20 | ........(message."All.MCP.tools. |
| 2fd40 | 61 72 65 20 61 6c 72 65 61 64 79 20 61 76 61 69 6c 61 62 6c 65 20 74 6f 20 67 70 74 65 6c 21 22 | are.already.available.to.gptel!" |
| 2fd60 | 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 65 72 76 65 | ).........(when.(functionp.serve |
| 2fd80 | 72 2d 63 61 6c 6c 62 61 63 6b 29 20 28 66 75 6e 63 61 6c 6c 20 73 65 72 76 65 72 2d 63 61 6c 6c | r-callback).(funcall.server-call |
| 2fda0 | 62 61 63 6b 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 | back))))))..(defun.gptel-mcp-dis |
| 2fdc0 | 63 6f 6e 6e 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 65 72 76 65 72 73 20 69 6e 74 65 72 | connect.(&optional.servers.inter |
| 2fde0 | 61 63 74 69 76 65 29 0a 20 20 22 55 6e 72 65 67 69 73 74 65 72 20 67 70 74 65 6c 20 74 6f 6f 6c | active)..."Unregister.gptel.tool |
| 2fe00 | 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 4d 43 50 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 | s.provided.by.MCP.servers.using. |
| 2fe20 | 74 68 65 20 6d 63 70 20 70 61 63 6b 61 67 65 2e 0a 0a 53 45 52 56 45 52 53 20 69 73 20 61 20 6c | the.mcp.package...SERVERS.is.a.l |
| 2fe40 | 69 73 74 20 6f 66 20 73 65 72 76 65 72 20 6e 61 6d 65 73 20 28 73 74 72 69 6e 67 73 29 20 74 6f | ist.of.server.names.(strings).to |
| 2fe60 | 20 64 69 73 63 6f 6e 6e 65 63 74 20 66 72 6f 6d 2e 0a 0a 49 66 20 49 4e 54 45 52 41 43 54 49 56 | .disconnect.from...If.INTERACTIV |
| 2fe80 | 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 71 75 65 72 79 20 74 68 65 20 75 73 65 72 20 61 62 6f | E.is.non-nil,.query.the.user.abo |
| 2fea0 | 75 74 20 77 68 69 63 68 20 74 6f 6f 6c 73 20 74 6f 20 72 65 6d 6f 76 65 2e 22 0a 20 20 28 69 6e | ut.which.tools.to.remove."...(in |
| 2fec0 | 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 6e 69 6c 20 74 29 29 0a 20 20 28 69 66 2d 6c 65 | teractive.(list.nil.t))...(if-le |
| 2fee0 | 74 2a 20 28 28 6e 61 6d 65 73 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | t*.((names-alist..............(c |
| 2ff00 | 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 63 61 74 65 67 6f | l-loop...............for.(catego |
| 2ff20 | 72 79 20 2e 20 5f 74 6f 6f 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f | ry..._tools).in.gptel--known-too |
| 2ff40 | 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 | ls...............if.(and.(string |
| 2ff60 | 2d 6d 61 74 63 68 20 22 5e 6d 63 70 2d 5c 5c 28 2e 2a 5c 5c 29 22 20 63 61 74 65 67 6f 72 79 29 | -match."^mcp-\\(.*\\)".category) |
| 2ff80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 75 6c 6c | .......................(or.(null |
| 2ffa0 | 20 73 65 72 76 65 72 73 29 20 3b 43 6f 6e 73 69 64 65 72 20 61 6c 6c 20 69 66 20 6e 69 6c 0a 20 | .servers).;Consider.all.if.nil.. |
| 2ffc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 | .........................(member |
| 2ffe0 | 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 61 74 65 67 6f 72 79 29 20 73 65 72 76 65 | .(match-string.1.category).serve |
| 30000 | 72 73 29 29 29 0a 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 | rs)))...............collect.(con |
| 30020 | 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 61 74 65 67 6f 72 79 29 20 63 61 74 65 | s.(match-string.1.category).cate |
| 30040 | 67 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 6d 6f 76 65 2d 66 6e 20 | gory)))).......(let.((remove-fn. |
| 30060 | 28 6c 61 6d 62 64 61 20 28 63 61 74 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (lambda.(cat-names)............. |
| 30080 | 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 74 6f 6f 6c 73 20 3b | .............(setq.gptel-tools.; |
| 300a0 | 52 65 6d 6f 76 65 20 66 72 6f 6d 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 | Remove.from.gptel-tools......... |
| 300c0 | 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 64 65 6c 65 74 | .......................(cl-delet |
| 300e0 | 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 20 28 6d 65 6d 62 65 72 20 28 67 70 74 | e-if.(lambda.(tool).(member.(gpt |
| 30100 | 65 6c 2d 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 | el-tool-category.tool).......... |
| 30120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 30140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 74 2d 6e 61 6d 65 73 29 | ......................cat-names) |
| 30160 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 30180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 | ...............gptel-tools)).... |
| 301a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d | ......................(mapc.(lam |
| 301c0 | 62 64 61 20 28 63 61 74 65 67 6f 72 79 29 20 3b 52 65 6d 6f 76 65 20 66 72 6f 6d 20 72 65 67 69 | bda.(category).;Remove.from.regi |
| 301e0 | 73 74 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 20 20 | stry............................ |
| 30200 | 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 63 61 74 65 67 6f 72 79 20 | ......(setf.(alist-get.category. |
| 30220 | 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--known-tools.............. |
| 30240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 30260 | 20 20 20 20 20 6e 69 6c 20 74 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....nil.t.#'equal)............. |
| 30280 | 20 20 20 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 29 29 | ...........................nil)) |
| 302a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 302c0 | 63 61 74 2d 6e 61 6d 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 74 65 72 61 | cat-names)))).........(if.intera |
| 302e0 | 63 74 69 76 65 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 73 | ctive.............(when-let*.((s |
| 30300 | 65 72 76 65 72 2d 6e 61 6d 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erver-names..................... |
| 30320 | 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 0a 20 | .....(completing-read-multiple.. |
| 30340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 6d 6f 76 65 | ........................."Remove |
| 30360 | 20 4d 43 50 20 73 65 72 76 65 72 20 74 6f 6f 6c 73 20 66 6f 72 20 28 73 65 70 61 72 61 74 65 20 | .MCP.server.tools.for.(separate. |
| 30380 | 77 69 74 68 20 5c 22 2c 5c 22 29 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | with.\",\"):.".................. |
| 303a0 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 28 22 41 4c 4c 22 20 2e 20 6e 69 6c 29 20 6e 61 | .........(cons.'("ALL"...nil).na |
| 303c0 | 6d 65 73 2d 61 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 | mes-alist)...................... |
| 303e0 | 20 20 20 20 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 77 68 65 | .....nil.t)))...............(whe |
| 30400 | 6e 20 28 6d 65 6d 62 65 72 20 22 41 4c 4c 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 0a 20 20 | n.(member."ALL".server-names)... |
| 30420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 | ..............(setq.server-names |
| 30440 | 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 6e 61 6d 65 73 2d 61 6c 69 73 74 29 29 29 0a 20 20 | .(mapcar.#'car.names-alist)))... |
| 30460 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 65 6d 6f 76 65 2d 66 6e 20 20 | ............(funcall.remove-fn.. |
| 30480 | 20 20 20 20 20 20 3b 72 65 6d 6f 76 65 20 73 65 6c 65 63 74 65 64 20 74 6f 6f 6c 20 63 61 74 65 | ......;remove.selected.tool.cate |
| 304a0 | 67 6f 72 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 28 6d | gories........................(m |
| 304c0 | 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 63 64 72 20 28 61 73 73 6f 63 20 73 20 | apcar.(lambda.(s).(cdr.(assoc.s. |
| 304e0 | 6e 61 6d 65 73 2d 61 6c 69 73 74 29 29 29 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 | names-alist))).server-names))... |
| 30500 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 | ............(if.(y-or-n-p....... |
| 30520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 52 65 6d 6f 76 65 64 20 4d 43 | .............(format."Removed.MC |
| 30540 | 50 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 25 64 20 73 65 72 76 65 72 25 73 2e 20 20 41 6c 73 6f 20 | P.tools.from.%d.server%s...Also. |
| 30560 | 73 68 75 74 20 64 6f 77 6e 20 4d 43 50 20 73 65 72 76 65 72 73 3f 22 0a 20 20 20 20 20 20 20 20 | shut.down.MCP.servers?"......... |
| 30580 | 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 73 65 72 76 65 | ...................(length.serve |
| 305a0 | 72 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-names)........................ |
| 305c0 | 20 20 20 20 28 69 66 20 28 3d 20 28 6c 65 6e 67 74 68 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 | ....(if.(=.(length.server-names) |
| 305e0 | 20 31 29 20 22 22 20 22 73 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .1).""."s")))................... |
| 30600 | 28 70 72 6f 67 6e 20 28 6d 61 70 63 20 23 27 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 73 | (progn.(mapc.#'mcp-stop-server.s |
| 30620 | 65 72 76 65 72 2d 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erver-names).................... |
| 30640 | 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 68 75 74 20 64 6f 77 6e 20 4d 43 50 20 73 65 | ......(message."Shut.down.MCP.se |
| 30660 | 72 76 65 72 73 3a 20 25 53 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 | rvers:.%S".server-names))....... |
| 30680 | 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 6d 6f 76 65 64 20 4d 43 50 20 | ..........(message."Removed.MCP. |
| 306a0 | 74 6f 6f 6c 73 20 66 6f 72 3a 20 25 53 22 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 29 0a 20 | tools.for:.%S".server-names))).. |
| 306c0 | 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 72 65 6d 6f 76 65 2d 66 6e 20 28 6d 61 70 | .........(funcall.remove-fn.(map |
| 306e0 | 63 61 72 20 23 27 63 64 72 20 6e 61 6d 65 73 2d 61 6c 69 73 74 29 29 29 29 0a 20 20 20 20 3b 3b | car.#'cdr.names-alist)))).....;; |
| 30700 | 20 4e 6f 20 4d 43 50 20 74 6f 6f 6c 73 2c 20 61 73 6b 20 74 6f 20 73 68 75 74 20 64 6f 77 6e 20 | .No.MCP.tools,.ask.to.shut.down. |
| 30720 | 73 65 72 76 65 72 73 0a 20 20 20 20 28 69 66 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 | servers.....(if.(cl-loop........ |
| 30740 | 20 20 66 6f 72 20 76 20 62 65 69 6e 67 20 74 68 65 20 68 61 73 68 2d 76 61 6c 75 65 73 20 6f 66 | ..for.v.being.the.hash-values.of |
| 30760 | 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 | .mcp-server-connections......... |
| 30780 | 20 6e 65 76 65 72 20 76 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 | .never.v).........(when.interact |
| 307a0 | 69 76 65 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 4d 43 50 20 73 65 72 76 65 72 73 20 61 63 74 | ive.(message."No.MCP.servers.act |
| 307c0 | 69 76 65 21 22 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 69 6e 74 | ive!")).......(when.(or.(not.int |
| 307e0 | 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 28 79 2d 6f 72 2d | eractive).................(y-or- |
| 30800 | 6e 2d 70 20 22 4e 6f 20 4d 43 50 20 74 6f 6f 6c 73 20 69 6e 20 67 70 74 65 6c 21 20 20 53 68 75 | n-p."No.MCP.tools.in.gptel!..Shu |
| 30820 | 74 20 64 6f 77 6e 20 61 6c 6c 20 4d 43 50 20 73 65 72 76 65 72 73 3f 20 22 29 29 0a 20 20 20 20 | t.down.all.MCP.servers?."))..... |
| 30840 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 65 72 76 65 72 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 | ....(dolist.(server.mcp-hub-serv |
| 30860 | 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 68 61 73 68 20 28 63 | ers)...........(when.(gethash.(c |
| 30880 | 61 72 20 73 65 72 76 65 72 29 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e | ar.server).mcp-server-connection |
| 308a0 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 63 70 2d 73 74 6f 70 2d 73 65 72 76 65 72 20 | s).............(mcp-stop-server. |
| 308c0 | 28 63 61 72 20 73 65 72 76 65 72 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | (car.server))))))))..(defun.gpte |
| 308e0 | 6c 2d 6d 63 70 2d 2d 67 65 74 2d 74 6f 6f 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 65 72 76 | l-mcp--get-tools.(&optional.serv |
| 30900 | 65 72 2d 6e 61 6d 65 73 29 0a 20 20 22 52 65 74 75 72 6e 20 74 6f 6f 6c 73 20 66 72 6f 6d 20 72 | er-names)..."Return.tools.from.r |
| 30920 | 75 6e 6e 69 6e 67 20 4d 43 50 20 73 65 72 76 65 72 73 2e 0a 0a 53 45 52 56 45 52 2d 4e 41 4d 45 | unning.MCP.servers...SERVER-NAME |
| 30940 | 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 65 72 76 65 72 20 6e 61 6d 65 73 20 74 6f 20 61 | S.is.a.list.of.server.names.to.a |
| 30960 | 64 64 20 74 6f 6f 6c 73 20 66 72 6f 6d 2e 20 20 41 64 64 20 74 6f 6f 6c 73 0a 66 72 6f 6d 20 61 | dd.tools.from...Add.tools.from.a |
| 30980 | 6c 6c 20 63 6f 6e 6e 65 63 74 65 64 20 73 65 72 76 65 72 73 20 69 66 20 69 74 20 69 73 20 6e 69 | ll.connected.servers.if.it.is.ni |
| 309a0 | 6c 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 0a 20 20 20 20 28 | l."...(unless.server-names.....( |
| 309c0 | 73 65 74 71 20 73 65 72 76 65 72 2d 6e 61 6d 65 73 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 6b 65 | setq.server-names.(hash-table-ke |
| 309e0 | 79 73 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 29 29 29 0a 20 20 28 | ys.mcp-server-connections)))...( |
| 30a00 | 6c 65 74 20 28 28 73 65 72 76 65 72 73 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6e | let.((servers.(mapcar.(lambda.(n |
| 30a20 | 29 20 28 67 65 74 68 61 73 68 20 6e 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 | ).(gethash.n.mcp-server-connecti |
| 30a40 | 6f 6e 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 73 | ons))..........................s |
| 30a60 | 65 72 76 65 72 2d 6e 61 6d 65 73 29 29 29 0a 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 | erver-names))).....(cl-mapcan... |
| 30a80 | 20 20 20 28 6c 61 6d 62 64 61 20 28 6e 61 6d 65 20 73 65 72 76 65 72 29 0a 20 20 20 20 20 20 20 | ...(lambda.(name.server)........ |
| 30aa0 | 28 77 68 65 6e 20 28 61 6e 64 20 73 65 72 76 65 72 20 28 65 71 75 61 6c 20 28 6d 63 70 2d 2d 73 | (when.(and.server.(equal.(mcp--s |
| 30ac0 | 74 61 74 75 73 20 73 65 72 76 65 72 29 20 27 63 6f 6e 6e 65 63 74 65 64 29 29 0a 20 20 20 20 20 | tatus.server).'connected))...... |
| 30ae0 | 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 73 20 28 6d 63 70 2d 2d 74 6f 6f | ....(when-let*.((tools.(mcp--too |
| 30b00 | 6c 73 20 73 65 72 76 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 | ls.server))..................... |
| 30b20 | 20 28 74 6f 6f 6c 2d 6e 61 6d 65 73 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 20 28 | .(tool-names.(mapcar.#'(lambda.( |
| 30b40 | 74 6f 6f 6c 29 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 20 3a 6e 61 6d 65 29 29 20 74 6f | tool).(plist-get.tool.:name)).to |
| 30b60 | 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 | ols)))............(mapcar.(lambd |
| 30b80 | 61 20 28 74 6f 6f 6c 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.(tool-name)................... |
| 30ba0 | 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 6d 63 70 2d 6d 61 6b 65 2d 74 65 78 74 2d 74 6f 6f | ...(plist-put.(mcp-make-text-too |
| 30bc0 | 6c 20 6e 61 6d 65 20 74 6f 6f 6c 2d 6e 61 6d 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | l.name.tool-name.t)............. |
| 30be0 | 20 20 20 20 20 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 28 66 | ....................:category.(f |
| 30c00 | 6f 72 6d 61 74 20 22 6d 63 70 2d 25 73 22 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ormat."mcp-%s".name))).......... |
| 30c20 | 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 6e 61 6d 65 73 29 29 29 29 0a 20 20 20 20 20 73 65 | ..........tool-names))))......se |
| 30c40 | 72 76 65 72 2d 6e 61 6d 65 73 20 73 65 72 76 65 72 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | rver-names.servers)))..(defun.gp |
| 30c60 | 74 65 6c 2d 6d 63 70 2d 2d 61 63 74 69 76 61 74 65 2d 74 6f 6f 6c 73 20 28 26 6f 70 74 69 6f 6e | tel-mcp--activate-tools.(&option |
| 30c80 | 61 6c 20 74 6f 6f 6c 73 29 0a 20 20 22 41 63 74 69 76 61 74 65 20 54 4f 4f 4c 53 20 6f 72 20 61 | al.tools)..."Activate.TOOLS.or.a |
| 30ca0 | 6c 6c 20 4d 43 50 20 74 6f 6f 6c 73 20 69 6e 20 63 75 72 72 65 6e 74 20 67 70 74 65 6c 20 73 65 | ll.MCP.tools.in.current.gptel.se |
| 30cc0 | 73 73 69 6f 6e 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 73 20 28 73 65 74 71 20 74 6f | ssion."...(unless.tools.(setq.to |
| 30ce0 | 6f 6c 73 20 28 67 70 74 65 6c 2d 6d 63 70 2d 2d 67 65 74 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 28 | ols.(gptel-mcp--get-tools)))...( |
| 30d00 | 64 6f 6c 69 73 74 20 28 74 6f 6f 6c 20 74 6f 6f 6c 73 29 0a 20 20 20 20 28 63 6c 2d 70 75 73 68 | dolist.(tool.tools).....(cl-push |
| 30d20 | 6e 65 77 20 28 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 28 6c 69 73 74 20 28 70 6c 69 73 74 | new.(gptel-get-tool.(list.(plist |
| 30d40 | 2d 67 65 74 20 74 6f 6f 6c 20 3a 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -get.tool.:category)............ |
| 30d60 | 20 20 20 20 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 |
| 30d80 | 74 2d 67 65 74 20 74 6f 6f 6c 20 3a 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.tool.:name)))............. |
| 30da0 | 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 0a 28 77 69 74 68 2d 65 76 61 6c 2d 61 | ....gptel-tools)))..(with-eval-a |
| 30dc0 | 66 74 65 72 2d 6c 6f 61 64 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 0a 20 20 28 74 72 | fter-load.'gptel-transient...(tr |
| 30de0 | 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 | ansient-define-suffix.gptel--suf |
| 30e00 | 66 69 78 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 20 28 29 0a 20 20 20 20 22 52 65 67 69 73 74 65 72 | fix-mcp-connect.()....."Register |
| 30e20 | 20 74 6f 6f 6c 73 20 70 72 6f 76 69 64 65 64 20 62 79 20 4d 43 50 20 73 65 72 76 65 72 73 2e 22 | .tools.provided.by.MCP.servers." |
| 30e40 | 0a 20 20 20 20 3a 6b 65 79 20 22 4d 2b 22 0a 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | .....:key."M+".....:description. |
| 30e60 | 22 41 64 64 20 4d 43 50 20 73 65 72 76 65 72 20 74 6f 6f 6c 73 22 0a 20 20 20 20 3a 74 72 61 6e | "Add.MCP.server.tools".....:tran |
| 30e80 | 73 69 65 6e 74 20 74 0a 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 3b 3b | sient.t.....(interactive).....;; |
| 30ea0 | 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 73 74 6f 72 65 73 20 69 74 73 20 73 74 61 74 65 20 69 6e | .gptel-tools.stores.its.state.in |
| 30ec0 | 20 69 74 73 20 73 63 6f 70 65 20 73 6c 6f 74 2e 20 20 52 65 74 61 69 6e 20 74 68 65 20 73 63 6f | .its.scope.slot...Retain.the.sco |
| 30ee0 | 70 65 20 62 75 74 0a 20 20 20 20 3b 3b 20 75 70 64 61 74 65 20 69 74 20 77 69 74 68 20 74 68 65 | pe.but.....;;.update.it.with.the |
| 30f00 | 20 6e 65 77 6c 79 20 73 65 6c 65 63 74 65 64 20 74 6f 6f 6c 73 2e 20 20 54 68 65 6e 20 73 65 74 | .newly.selected.tools...Then.set |
| 30f20 | 20 75 70 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 2e 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d | .up.gptel-tools......(condition- |
| 30f40 | 63 61 73 65 20 65 72 72 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 63 70 2d 63 6f 6e 6e | case.err.........(gptel-mcp-conn |
| 30f60 | 65 63 74 0a 20 20 20 20 20 20 20 20 20 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 | ect..........nil.(lambda.().(whe |
| 30f80 | 6e 2d 6c 65 74 2a 20 28 28 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 65 66 69 78 29 0a 20 20 20 20 | n-let*.((transient--prefix)..... |
| 30fa0 | 20 20 20 20 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 20 | ...........................((eq. |
| 30fc0 | 28 6f 72 65 66 20 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 65 66 69 78 20 63 6f 6d 6d 61 6e 64 29 | (oref.transient--prefix.command) |
| 30fe0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 31000 | 20 20 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .....'gptel-tools)))............ |
| 31020 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 28 74 72 61 6e 73 69 65 6e | ..........(let.((state.(transien |
| 31040 | 74 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 | t-scope.'gptel-tools)))......... |
| 31060 | 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 73 74 61 74 65 20 | ...............(plist-put.state. |
| 31080 | 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 20 20 20 20 20 20 | :tools.......................... |
| 310a0 | 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 64 75 70 73 0a 20 20 20 20 20 20 20 20 20 20 | .........(delete-dups........... |
| 310c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 | .........................(nconc. |
| 310e0 | 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 | (mapcar.(lambda.(tool).......... |
| 31100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 31120 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 61 74 | ...........(list.(gptel-tool-cat |
| 31140 | 65 67 6f 72 79 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | egory.tool)..................... |
| 31160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 31180 | 20 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 29 29 0a 20 | ......(gptel-tool-name.tool))).. |
| 311a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 311c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 | .................gptel-tools)... |
| 311e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 31200 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 | ........(plist-get.state.:tools) |
| 31220 | 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 74 72 61 6e | )))........................(tran |
| 31240 | 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 6c | sient-setup.'gptel-tools.nil.nil |
| 31260 | 20 3a 73 63 6f 70 65 20 73 74 61 74 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 | .:scope.state))))..........t)... |
| 31280 | 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 28 63 | ....(user-error.(message."%s".(c |
| 312a0 | 61 64 72 20 65 72 72 29 29 29 29 29 0a 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e | adr.err)))))....(transient-defin |
| 312c0 | 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 6d 63 70 2d 64 69 73 63 6f | e-suffix.gptel--suffix-mcp-disco |
| 312e0 | 6e 6e 65 63 74 20 28 29 0a 20 20 20 20 22 52 65 6d 6f 76 65 20 74 6f 6f 6c 73 20 70 72 6f 76 69 | nnect.()....."Remove.tools.provi |
| 31300 | 64 65 64 20 62 79 20 4d 43 50 20 73 65 72 76 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 2e 22 0a | ded.by.MCP.servers.from.gptel.". |
| 31320 | 20 20 20 20 3a 6b 65 79 20 22 4d 2d 22 0a 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 | ....:key."M-".....:description.( |
| 31340 | 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 | lambda.().(if.(cl-some.(lambda.( |
| 31360 | 63 61 74 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 6d 63 70 2d 22 20 63 61 74 | cat).(string-match-p."^mcp-".cat |
| 31380 | 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 | )).............................. |
| 313a0 | 20 20 20 20 20 20 20 28 6d 61 70 2d 6b 65 79 73 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f | .......(map-keys.gptel--known-to |
| 313c0 | 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols))........................... |
| 313e0 | 20 22 52 65 6d 6f 76 65 20 4d 43 50 20 73 65 72 76 65 72 20 74 6f 6f 6c 73 22 0a 20 20 20 20 20 | ."Remove.MCP.server.tools"...... |
| 31400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 68 75 74 20 64 6f 77 6e 20 4d | ...................."Shut.down.M |
| 31420 | 43 50 20 73 65 72 76 65 72 73 22 29 29 0a 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 0a 20 | CP.servers")).....:transient.t.. |
| 31440 | 20 20 20 3a 69 6e 61 70 74 2d 69 66 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 | ...:inapt-if.....(lambda.().(or. |
| 31460 | 28 6e 6f 74 20 28 62 6f 75 6e 64 70 20 27 6d 63 70 2d 68 75 62 2d 73 65 72 76 65 72 73 29 29 0a | (not.(boundp.'mcp-hub-servers)). |
| 31480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6c 6c 20 6d 63 70 2d 68 75 62 2d 73 65 72 76 | ..............(null.mcp-hub-serv |
| 314a0 | 65 72 73 29 0a 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 | ers)...............(cl-loop..... |
| 314c0 | 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 76 20 62 65 69 6e 67 20 74 68 65 20 68 61 73 68 2d | ...........for.v.being.the.hash- |
| 314e0 | 76 61 6c 75 65 73 20 6f 66 20 6d 63 70 2d 73 65 72 76 65 72 2d 63 6f 6e 6e 65 63 74 69 6f 6e 73 | values.of.mcp-server-connections |
| 31500 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 65 76 65 72 20 76 29 29 29 0a 20 20 20 20 28 | ................never.v))).....( |
| 31520 | 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 | interactive).....(call-interacti |
| 31540 | 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 29 0a 20 20 20 | vely.#'gptel-mcp-disconnect).... |
| 31560 | 20 3b 3b 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 73 74 6f 72 65 73 20 69 74 73 20 73 74 61 74 65 | .;;.gptel-tools.stores.its.state |
| 31580 | 20 69 6e 20 69 74 73 20 73 63 6f 70 65 20 73 6c 6f 74 2e 20 20 52 65 74 61 69 6e 20 74 68 65 20 | .in.its.scope.slot...Retain.the. |
| 315a0 | 73 63 6f 70 65 20 62 75 74 0a 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 6f 6f 6c 73 20 66 72 | scope.but.....;;.remove.tools.fr |
| 315c0 | 6f 6d 20 69 74 20 74 68 61 74 20 6e 6f 20 6c 6f 6e 67 65 72 20 65 78 69 73 74 2c 20 74 68 65 6e | om.it.that.no.longer.exist,.then |
| 315e0 | 20 73 65 74 20 75 70 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 | .set.up.gptel-tools.....(cl-loop |
| 31600 | 20 77 69 74 68 20 73 74 61 74 65 20 3d 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 20 27 | .with.state.=.(transient-scope.' |
| 31620 | 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 77 69 74 68 20 74 | gptel-tools)..............with.t |
| 31640 | 6f 6f 6c 73 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 0a | ools.=.(plist-get.state.:tools). |
| 31660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 73 70 65 63 20 69 6e 20 74 6f | .............for.tool-spec.in.to |
| 31680 | 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d | ols..............if.(map-nested- |
| 316a0 | 65 6c 74 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 74 6f 6f 6c 2d 73 70 65 63 | elt.gptel--known-tools.tool-spec |
| 316c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 2d 73 70 65 63 | )..............collect.tool-spec |
| 316e0 | 20 69 6e 74 6f 20 76 61 6c 69 64 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | .into.valid-tools..............f |
| 31700 | 69 6e 61 6c 6c 79 20 64 6f 20 28 70 6c 69 73 74 2d 70 75 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c | inally.do.(plist-put.state.:tool |
| 31720 | 73 20 76 61 6c 69 64 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 | s.valid-tools)..............(tra |
| 31740 | 6e 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 | nsient-setup.'gptel-tools.nil.ni |
| 31760 | 6c 20 3a 73 63 6f 70 65 20 73 74 61 74 65 29 29 29 0a 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d | l.:scope.state)))....(transient- |
| 31780 | 72 65 6d 6f 76 65 2d 73 75 66 66 69 78 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 27 28 30 20 32 | remove-suffix.'gptel-tools.'(0.2 |
| 317a0 | 29 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 70 70 65 6e 64 2d 73 75 66 66 69 78 20 27 67 | ))...(transient-append-suffix.'g |
| 317c0 | 70 74 65 6c 2d 74 6f 6f 6c 73 20 27 28 30 20 2d 31 29 0a 20 20 20 20 5b 22 22 0a 20 20 20 20 20 | ptel-tools.'(0.-1).....[""...... |
| 317e0 | 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 6d 63 70 2d 63 6f 6e 6e 65 63 74 29 0a 20 20 20 20 | (gptel--suffix-mcp-connect)..... |
| 31800 | 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 6d 63 70 2d 64 69 73 63 6f 6e 6e 65 63 74 29 5d | .(gptel--suffix-mcp-disconnect)] |
| 31820 | 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 | ))..(provide.'gptel-integrations |
| 31840 | 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 6f 6e 73 2e 65 6c 20 65 6e 64 73 | ).;;;.gptel-integrations.el.ends |
| 31860 | 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 3b 20 62 79 | .here..;;.Local.Variables:.;;.by |
| 31880 | 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 6e 6f 72 75 6e 74 | te-compile-warnings:.(not.norunt |
| 318a0 | 69 6d 65 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ime).;;.End:.................... |
| 318c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 318e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 319a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 319c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 319e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31a00 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/gptel.el............ |
| 31a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31a60 | 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 |
| 31a80 | 30 35 32 35 34 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 37 36 33 00 20 30 00 00 00 | 0525467.00000000000.012763..0... |
| 31aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31b00 | 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................... |
| 31b20 | 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................... |
| 31b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 31c00 | 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 |
| 31c20 | 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 |
| 31c40 | 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 |
| 31c60 | 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 | ht.(C).2023-2025..Karthik.Chikma |
| 31c80 | 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 | galur..;;.Author:.Karthik.Chikma |
| 31ca0 | 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c | galur.<karthik.chikmagalur@gmail |
| 31cc0 | 2e 63 6f 6d 3e 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 39 2e 39 0a 3b 3b 20 50 61 63 6b 61 | .com>.;;.Version:.0.9.9.;;.Packa |
| 31ce0 | 67 65 2d 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 29 20 28 74 72 | ge-Requires:.((emacs."27.1").(tr |
| 31d00 | 61 6e 73 69 65 6e 74 20 22 30 2e 37 2e 34 22 29 20 28 63 6f 6d 70 61 74 20 22 33 30 2e 31 2e 30 | ansient."0.7.4").(compat."30.1.0 |
| 31d20 | 2e 30 22 29 29 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 2c 20 | .0")).;;.Keywords:.convenience,. |
| 31d40 | 74 6f 6f 6c 73 0a 3b 3b 20 55 52 4c 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | tools.;;.URL:.https://github.com |
| 31d60 | 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 | /karthink/gptel..;;.SPDX-License |
| 31d80 | 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b | -Identifier:.GPL-3.0-or-later..; |
| 31da0 | 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b | ;.This.program.is.free.software; |
| 31dc0 | 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 | .you.can.redistribute.it.and/or. |
| 31de0 | 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 | modify.;;.it.under.the.terms.of. |
| 31e00 | 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 |
| 31e20 | 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 | s.published.by.;;.the.Free.Softw |
| 31e40 | 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 33 | are.Foundation,.either.version.3 |
| 31e60 | 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 | .of.the.License,.or.;;.(at.your. |
| 31e80 | 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 | option).any.later.version...;;.T |
| 31ea0 | 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 | his.program.is.distributed.in.th |
| 31ec0 | 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b | e.hope.that.it.will.be.useful,.; |
| 31ee0 | 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 | ;.but.WITHOUT.ANY.WARRANTY;.with |
| 31f00 | 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 | out.even.the.implied.warranty.of |
| 31f20 | 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 | .;;.MERCHANTABILITY.or.FITNESS.F |
| 31f40 | 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 | OR.A.PARTICULAR.PURPOSE...See.th |
| 31f60 | 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 | e.;;.GNU.General.Public.License. |
| 31f80 | 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 | for.more.details...;;.You.should |
| 31fa0 | 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 | .have.received.a.copy.of.the.GNU |
| 31fc0 | 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 | .General.Public.License.;;.along |
| 31fe0 | 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 | .with.this.program...If.not,.see |
| 32000 | 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e | .<https://www.gnu.org/licenses/> |
| 32020 | 2e 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 | ...;;.This.file.is.NOT.part.of.G |
| 32040 | 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 67 | NU.Emacs...;;;.Commentary:..;;.g |
| 32060 | 70 74 65 6c 20 69 73 20 61 20 73 69 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 67 65 20 | ptel.is.a.simple.Large.Language. |
| 32080 | 4d 6f 64 65 6c 20 63 68 61 74 20 63 6c 69 65 6e 74 2c 20 77 69 74 68 20 73 75 70 70 6f 72 74 20 | Model.chat.client,.with.support. |
| 320a0 | 66 6f 72 20 6d 75 6c 74 69 70 6c 65 0a 3b 3b 20 6d 6f 64 65 6c 73 20 61 6e 64 20 62 61 63 6b 65 | for.multiple.;;.models.and.backe |
| 320c0 | 6e 64 73 2e 0a 3b 3b 0a 3b 3b 20 49 74 20 77 6f 72 6b 73 20 69 6e 20 74 68 65 20 73 70 69 72 69 | nds..;;.;;.It.works.in.the.spiri |
| 320e0 | 74 20 6f 66 20 45 6d 61 63 73 2c 20 61 76 61 69 6c 61 62 6c 65 20 61 74 20 61 6e 79 20 74 69 6d | t.of.Emacs,.available.at.any.tim |
| 32100 | 65 20 61 6e 64 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 2e 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c | e.and.in.any.buffer..;;.;;.gptel |
| 32120 | 20 73 75 70 70 6f 72 74 73 3a 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 73 65 72 76 69 63 65 73 20 | .supports:.;;.;;.-.The.services. |
| 32140 | 43 68 61 74 47 50 54 2c 20 41 7a 75 72 65 2c 20 47 65 6d 69 6e 69 2c 20 41 6e 74 68 72 6f 70 69 | ChatGPT,.Azure,.Gemini,.Anthropi |
| 32160 | 63 20 41 49 2c 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 20 50 65 72 70 6c 65 78 69 74 79 2c 0a 3b | c.AI,.Together.ai,.Perplexity,.; |
| 32180 | 3b 20 20 20 41 49 2f 4d 4c 20 41 50 49 2c 20 41 6e 79 73 63 61 6c 65 2c 20 4f 70 65 6e 52 6f 75 | ;...AI/ML.API,.Anyscale,.OpenRou |
| 321a0 | 74 65 72 2c 20 47 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 | ter,.Groq,.PrivateGPT,.DeepSeek, |
| 321c0 | 20 43 65 72 65 62 72 61 73 2c 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 2c 0a 3b 3b 20 20 20 47 | .Cerebras,.Github.Models,.;;...G |
| 321e0 | 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 20 63 68 61 74 2c 20 41 57 53 20 42 65 64 72 6f 63 6b 2c | itHub.Copilot.chat,.AWS.Bedrock, |
| 32200 | 20 4e 6f 76 69 74 61 20 41 49 2c 20 78 41 49 2c 20 53 61 6d 62 61 6e 6f 76 61 2c 20 4d 69 73 74 | .Novita.AI,.xAI,.Sambanova,.Mist |
| 32220 | 72 61 6c 20 4c 65 0a 3b 3b 20 20 20 43 68 61 74 20 61 6e 64 20 4b 61 67 69 20 28 46 61 73 74 47 | ral.Le.;;...Chat.and.Kagi.(FastG |
| 32240 | 50 54 20 26 20 53 75 6d 6d 61 72 69 7a 65 72 29 2e 0a 3b 3b 20 2d 20 4c 6f 63 61 6c 20 6d 6f 64 | PT.&.Summarizer)..;;.-.Local.mod |
| 32260 | 65 6c 73 20 76 69 61 20 4f 6c 6c 61 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 2c 20 4c 6c 61 6d 61 | els.via.Ollama,.Llama.cpp,.Llama |
| 32280 | 66 69 6c 65 73 20 6f 72 20 47 50 54 34 41 6c 6c 0a 3b 3b 0a 3b 3b 20 41 64 64 69 74 69 6f 6e 61 | files.or.GPT4All.;;.;;.Additiona |
| 322a0 | 6c 6c 79 2c 20 61 6e 79 20 4c 4c 4d 20 73 65 72 76 69 63 65 20 28 6c 6f 63 61 6c 20 6f 72 20 72 | lly,.any.LLM.service.(local.or.r |
| 322c0 | 65 6d 6f 74 65 29 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 61 6e 0a 3b 3b 20 4f 70 65 6e 41 | emote).that.provides.an.;;.OpenA |
| 322e0 | 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0a 3b | I-compatible.API.is.supported..; |
| 32300 | 3b 0a 3b 3b 20 46 65 61 74 75 72 65 73 3a 0a 3b 3b 0a 3b 3b 20 2d 20 49 6e 74 65 72 61 63 74 20 | ;.;;.Features:.;;.;;.-.Interact. |
| 32320 | 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 | with.LLMs.from.anywhere.in.Emacs |
| 32340 | 20 28 61 6e 79 20 62 75 66 66 65 72 2c 20 73 68 65 6c 6c 2c 20 6d 69 6e 69 62 75 66 66 65 72 2c | .(any.buffer,.shell,.minibuffer, |
| 32360 | 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 72 65 73 70 6f 6e | .;;...wherever)..;;.-.LLM.respon |
| 32380 | 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 20 6d 61 72 6b 75 | ses.are.in.Markdown.or.Org.marku |
| 323a0 | 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 69 6f 6e 73 20 61 | p..;;.-.Supports.conversations.a |
| 323c0 | 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 73 73 69 6f 6e 73 | nd.multiple.independent.sessions |
| 323e0 | 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 6f 20 65 71 75 69 | ..;;.-.Supports.tool-use.to.equi |
| 32400 | 70 20 4c 4c 4d 73 20 77 69 74 68 20 61 67 65 6e 74 69 63 20 63 61 70 61 62 69 6c 69 74 69 65 73 | p.LLMs.with.agentic.capabilities |
| 32420 | 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 78 74 20 50 72 | ..;;.-.Supports.Model.Context.Pr |
| 32440 | 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 69 6e 74 65 67 72 61 74 69 6f 6e 20 75 73 69 6e 67 20 74 | otocol.(MCP).integration.using.t |
| 32460 | 68 65 20 6d 63 70 2e 65 6c 20 70 61 63 6b 61 67 65 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 | he.mcp.el.package..;;.-.Supports |
| 32480 | 20 6d 75 6c 74 69 2d 6d 6f 64 61 6c 20 6d 6f 64 65 6c 73 20 28 73 65 6e 64 20 69 6d 61 67 65 73 | .multi-modal.models.(send.images |
| 324a0 | 2c 20 64 6f 63 75 6d 65 6e 74 73 29 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 22 72 65 61 | ,.documents)..;;.-.Supports."rea |
| 324c0 | 73 6f 6e 69 6e 67 22 20 63 6f 6e 74 65 6e 74 20 69 6e 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 | soning".content.in.LLM.responses |
| 324e0 | 2e 0a 3b 3b 20 2d 20 53 61 76 65 20 63 68 61 74 73 20 61 73 20 72 65 67 75 6c 61 72 20 4d 61 72 | ..;;.-.Save.chats.as.regular.Mar |
| 32500 | 6b 64 6f 77 6e 2f 4f 72 67 2f 54 65 78 74 20 66 69 6c 65 73 20 61 6e 64 20 72 65 73 75 6d 65 20 | kdown/Org/Text.files.and.resume. |
| 32520 | 74 68 65 6d 20 6c 61 74 65 72 2e 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 67 6f 20 62 61 63 6b | them.later..;;.-.You.can.go.back |
| 32540 | 20 61 6e 64 20 65 64 69 74 20 79 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 74 73 20 | .and.edit.your.previous.prompts. |
| 32560 | 6f 72 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 77 68 65 6e 0a 3b 3b 20 20 20 63 6f 6e 74 69 | or.LLM.responses.when.;;...conti |
| 32580 | 6e 75 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 20 20 54 68 65 73 65 20 77 69 6c | nuing.a.conversation...These.wil |
| 325a0 | 6c 20 62 65 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 3b 3b 20 2d | l.be.fed.back.to.the.model..;;.- |
| 325c0 | 20 52 65 64 69 72 65 63 74 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 | .Redirect.prompts.and.responses. |
| 325e0 | 65 61 73 69 6c 79 0a 3b 3b 20 2d 20 52 65 77 72 69 74 65 2c 20 72 65 66 61 63 74 6f 72 20 6f 72 | easily.;;.-.Rewrite,.refactor.or |
| 32600 | 20 66 69 6c 6c 20 69 6e 20 72 65 67 69 6f 6e 73 20 69 6e 20 62 75 66 66 65 72 73 2e 0a 3b 3b 20 | .fill.in.regions.in.buffers..;;. |
| 32620 | 2d 20 57 72 69 74 65 20 79 6f 75 72 20 6f 77 6e 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 63 75 | -.Write.your.own.commands.for.cu |
| 32640 | 73 74 6f 6d 20 74 61 73 6b 73 20 77 69 74 68 20 61 20 73 69 6d 70 6c 65 20 41 50 49 2e 0a 3b 3b | stom.tasks.with.a.simple.API..;; |
| 32660 | 0a 3b 3b 20 52 65 71 75 69 72 65 6d 65 6e 74 73 20 66 6f 72 20 43 68 61 74 47 50 54 2c 20 41 7a | .;;.Requirements.for.ChatGPT,.Az |
| 32680 | 75 72 65 2c 20 47 65 6d 69 6e 69 20 6f 72 20 4b 61 67 69 3a 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 | ure,.Gemini.or.Kagi:.;;.;;.-.You |
| 326a0 | 20 6e 65 65 64 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 41 50 49 20 6b 65 79 2e 20 20 53 | .need.an.appropriate.API.key...S |
| 326c0 | 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 | et.the.variable.`gptel-api-key'. |
| 326e0 | 74 6f 20 74 68 65 0a 3b 3b 20 20 20 6b 65 79 20 6f 72 20 74 6f 20 61 20 66 75 6e 63 74 69 6f 6e | to.the.;;...key.or.to.a.function |
| 32700 | 20 6f 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 | .of.no.arguments.that.returns.th |
| 32720 | 65 20 6b 65 79 2e 20 20 28 49 74 20 74 72 69 65 73 20 74 6f 0a 3b 3b 20 20 20 75 73 65 20 60 61 | e.key...(It.tries.to.;;...use.`a |
| 32740 | 75 74 68 2d 73 6f 75 72 63 65 27 20 62 79 20 64 65 66 61 75 6c 74 29 0a 3b 3b 0a 3b 3b 20 43 68 | uth-source'.by.default).;;.;;.Ch |
| 32760 | 61 74 47 50 54 20 69 73 20 63 6f 6e 66 69 67 75 72 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 62 | atGPT.is.configured.out.of.the.b |
| 32780 | 6f 78 2e 20 20 46 6f 72 20 74 68 65 20 6f 74 68 65 72 20 73 6f 75 72 63 65 73 3a 0a 3b 3b 0a 3b | ox...For.the.other.sources:.;;.; |
| 327a0 | 3b 20 2d 20 46 6f 72 20 41 7a 75 72 65 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 | ;.-.For.Azure:.define.a.gptel-ba |
| 327c0 | 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 27 2c 20 77 | ckend.with.`gptel-make-azure',.w |
| 327e0 | 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 47 65 6d 69 6e 69 3a 20 64 65 66 69 6e | hich.see..;;.-.For.Gemini:.defin |
| 32800 | 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 6d 61 | e.a.gptel-backend.with.`gptel-ma |
| 32820 | 6b 65 2d 67 65 6d 69 6e 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 | ke-gemini',.which.see..;;.-.For. |
| 32840 | 41 6e 74 68 72 6f 70 69 63 20 28 43 6c 61 75 64 65 29 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 | Anthropic.(Claude):.define.a.gpt |
| 32860 | 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 | el-backend.with.`gptel-make-anth |
| 32880 | 72 6f 70 69 63 27 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 | ropic',.;;...which.see..;;.-.For |
| 328a0 | 20 41 49 2f 4d 4c 20 41 50 49 2c 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 20 41 6e 79 73 63 61 6c | .AI/ML.API,.Together.ai,.Anyscal |
| 328c0 | 65 2c 20 47 72 6f 71 2c 20 4f 70 65 6e 52 6f 75 74 65 72 2c 20 44 65 65 70 53 65 65 6b 2c 20 43 | e,.Groq,.OpenRouter,.DeepSeek,.C |
| 328e0 | 65 72 65 62 72 61 73 20 6f 72 0a 3b 3b 20 20 20 47 69 74 68 75 62 20 4d 6f 64 65 6c 73 3a 20 64 | erebras.or.;;...Github.Models:.d |
| 32900 | 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 | efine.a.gptel-backend.with.`gpte |
| 32920 | 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 | l-make-openai',.which.see..;;.-. |
| 32940 | 46 6f 72 20 50 72 69 76 61 74 65 47 50 54 3a 20 64 65 66 69 6e 65 20 61 20 62 61 63 6b 65 6e 64 | For.PrivateGPT:.define.a.backend |
| 32960 | 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 27 2c 20 77 | .with.`gptel-make-privategpt',.w |
| 32980 | 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 50 65 72 70 6c 65 78 69 74 79 3a 20 64 | hich.see..;;.-.For.Perplexity:.d |
| 329a0 | 65 66 69 6e 65 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 | efine.a.backend.with.`gptel-make |
| 329c0 | 2d 70 65 72 70 6c 65 78 69 74 79 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 46 6f | -perplexity',.which.see..;;.-.Fo |
| 329e0 | 72 20 44 65 65 70 73 65 65 6b 3a 20 64 65 66 69 6e 65 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 | r.Deepseek:.define.a.backend.wit |
| 32a00 | 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 27 2c 20 77 68 69 63 68 20 73 | h.`gptel-make-deepseek',.which.s |
| 32a20 | 65 65 2e 0a 3b 3b 20 2d 20 46 6f 72 20 4b 61 67 69 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 | ee..;;.-.For.Kagi:.define.a.gpte |
| 32a40 | 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 27 | l-backend.with.`gptel-make-kagi' |
| 32a60 | 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 0a 3b 3b 20 46 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 | ,.which.see..;;.;;.For.local.mod |
| 32a80 | 65 6c 73 20 75 73 69 6e 67 20 4f 6c 6c 61 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 47 | els.using.Ollama,.Llama.cpp.or.G |
| 32aa0 | 50 54 34 41 6c 6c 3a 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 6d 6f 64 65 6c 20 68 61 73 20 74 6f | PT4All:.;;.;;.-.The.model.has.to |
| 32ac0 | 20 62 65 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 61 6e 20 61 63 63 65 73 73 69 62 6c 65 20 61 64 64 | .be.running.on.an.accessible.add |
| 32ae0 | 72 65 73 73 20 28 6f 72 20 6c 6f 63 61 6c 68 6f 73 74 29 0a 3b 3b 20 2d 20 44 65 66 69 6e 65 20 | ress.(or.localhost).;;.-.Define. |
| 32b00 | 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 65 | a.gptel-backend.with.`gptel-make |
| 32b20 | 2d 6f 6c 6c 61 6d 61 27 20 6f 72 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 | -ollama'.or.`gptel-make-gpt4all' |
| 32b40 | 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 65 65 2e 0a 3b 3b 20 2d 20 4c 6c 61 6d 61 2e 63 70 70 | ,.;;...which.see..;;.-.Llama.cpp |
| 32b60 | 20 6f 72 20 4c 6c 61 6d 61 66 69 6c 65 73 3a 20 44 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 | .or.Llamafiles:.Define.a.gptel-b |
| 32b80 | 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e | ackend.with.`gptel-make-openai'. |
| 32ba0 | 0a 3b 3b 0a 3b 3b 20 43 6f 6e 73 75 6c 74 20 74 68 65 20 70 61 63 6b 61 67 65 20 52 45 41 44 4d | .;;.;;.Consult.the.package.READM |
| 32bc0 | 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 20 61 6e 64 20 6d 6f 72 65 20 68 65 6c 70 20 77 69 74 | E.for.examples.and.more.help.wit |
| 32be0 | 68 20 63 6f 6e 66 69 67 75 72 69 6e 67 0a 3b 3b 20 62 61 63 6b 65 6e 64 73 2e 0a 3b 3b 0a 3b 3b | h.configuring.;;.backends..;;.;; |
| 32c00 | 20 55 73 61 67 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 63 61 6e 20 62 65 20 75 73 65 64 20 | .Usage:.;;.;;.gptel.can.be.used. |
| 32c20 | 69 6e 20 61 6e 79 20 62 75 66 66 65 72 20 6f 72 20 69 6e 20 61 20 64 65 64 69 63 61 74 65 64 20 | in.any.buffer.or.in.a.dedicated. |
| 32c40 | 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 54 68 65 0a 3b 3b 20 69 6e 74 65 72 61 63 74 69 6f 6e | chat.buffer...The.;;.interaction |
| 32c60 | 20 6d 6f 64 65 6c 20 69 73 20 73 69 6d 70 6c 65 3a 20 54 79 70 65 20 69 6e 20 61 20 71 75 65 72 | .model.is.simple:.Type.in.a.quer |
| 32c80 | 79 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 0a 3b 3b 20 69 6e | y.and.the.response.will.be.;;.in |
| 32ca0 | 73 65 72 74 65 64 20 62 65 6c 6f 77 2e 20 20 59 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 | serted.below...You.can.continue. |
| 32cc0 | 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 62 65 6c 6f 77 | the.conversation.by.typing.below |
| 32ce0 | 20 74 68 65 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 74 | .the.;;.response..;;.;;.To.use.t |
| 32d00 | 68 69 73 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 0a 3b 3b 0a 3b 3b 20 2d 20 43 61 6c 6c 20 | his.in.any.buffer:.;;.;;.-.Call. |
| 32d20 | 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 74 6f 20 73 65 6e 64 20 74 68 65 20 62 75 66 66 65 72 27 | `gptel-send'.to.send.the.buffer' |
| 32d40 | 73 20 74 65 78 74 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 53 65 6c 65 63 74 | s.text.up.to.the.cursor...Select |
| 32d60 | 20 61 0a 3b 3b 20 20 20 72 65 67 69 6f 6e 20 74 6f 20 73 65 6e 64 20 6f 6e 6c 79 20 74 68 65 20 | .a.;;...region.to.send.only.the. |
| 32d80 | 72 65 67 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 73 65 6c 65 63 74 20 70 | region..;;.;;.-.You.can.select.p |
| 32da0 | 72 65 76 69 6f 75 73 20 70 72 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 74 6f | revious.prompts.and.responses.to |
| 32dc0 | 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 2e 0a 3b 3b 0a 3b | .continue.the.conversation..;;.; |
| 32de0 | 3b 20 2d 20 43 61 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 | ;.-.Call.`gptel-send'.with.a.pre |
| 32e00 | 66 69 78 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 61 63 63 65 73 73 20 61 20 6d 65 6e 75 20 77 68 | fix.argument.to.access.a.menu.wh |
| 32e20 | 65 72 65 20 79 6f 75 20 63 61 6e 20 73 65 74 0a 3b 3b 20 20 20 79 6f 75 72 20 62 61 63 6b 65 6e | ere.you.can.set.;;...your.backen |
| 32e40 | 64 2c 20 6d 6f 64 65 6c 20 61 6e 64 20 6f 74 68 65 72 20 70 61 72 61 6d 65 74 65 72 73 2c 20 6f | d,.model.and.other.parameters,.o |
| 32e60 | 72 20 74 6f 20 72 65 64 69 72 65 63 74 20 74 68 65 0a 3b 3b 20 20 20 70 72 6f 6d 70 74 2f 72 65 | r.to.redirect.the.;;...prompt/re |
| 32e80 | 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 65 20 74 68 69 73 20 69 6e 20 61 20 64 | sponse..;;.;;.To.use.this.in.a.d |
| 32ea0 | 65 64 69 63 61 74 65 64 20 62 75 66 66 65 72 3a 0a 3b 3b 20 0a 3b 3b 20 2d 20 4d 2d 78 20 67 70 | edicated.buffer:.;;..;;.-.M-x.gp |
| 32ec0 | 74 65 6c 3a 20 53 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b | tel:.Start.a.chat.session..;;.;; |
| 32ee0 | 20 2d 20 49 6e 20 74 68 65 20 63 68 61 74 20 73 65 73 73 69 6f 6e 3a 20 50 72 65 73 73 20 60 43 | .-.In.the.chat.session:.Press.`C |
| 32f00 | 2d 63 20 52 45 54 27 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 29 20 74 6f 20 73 65 6e 64 20 79 | -c.RET'.(`gptel-send').to.send.y |
| 32f20 | 6f 75 72 20 70 72 6f 6d 70 74 2e 0a 3b 3b 20 20 20 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 | our.prompt..;;...Use.a.prefix.ar |
| 32f40 | 67 75 6d 65 6e 74 20 28 60 43 2d 75 20 43 2d 63 20 52 45 54 27 29 20 74 6f 20 61 63 63 65 73 73 | gument.(`C-u.C-c.RET').to.access |
| 32f60 | 20 61 20 6d 65 6e 75 2e 20 20 49 6e 20 74 68 69 73 20 6d 65 6e 75 20 79 6f 75 0a 3b 3b 20 20 20 | .a.menu...In.this.menu.you.;;... |
| 32f80 | 63 61 6e 20 73 65 74 20 63 68 61 74 20 70 61 72 61 6d 65 74 65 72 73 20 6c 69 6b 65 20 74 68 65 | can.set.chat.parameters.like.the |
| 32fa0 | 20 73 79 73 74 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 63 74 69 76 65 20 62 61 63 6b 65 | .system.directives,.active.backe |
| 32fc0 | 6e 64 20 6f 72 0a 3b 3b 20 20 20 6d 6f 64 65 6c 2c 20 6f 72 20 63 68 6f 6f 73 65 20 74 6f 20 72 | nd.or.;;...model,.or.choose.to.r |
| 32fe0 | 65 64 69 72 65 63 74 20 74 68 65 20 69 6e 70 75 74 20 6f 72 20 6f 75 74 70 75 74 20 65 6c 73 65 | edirect.the.input.or.output.else |
| 33000 | 77 68 65 72 65 20 28 73 75 63 68 20 61 73 20 74 6f 20 74 68 65 0a 3b 3b 20 20 20 6b 69 6c 6c 20 | where.(such.as.to.the.;;...kill. |
| 33020 | 72 69 6e 67 20 6f 72 20 74 68 65 20 65 63 68 6f 20 61 72 65 61 29 2e 0a 3b 3b 0a 3b 3b 20 2d 20 | ring.or.the.echo.area)..;;.;;.-. |
| 33040 | 59 6f 75 20 63 61 6e 20 73 61 76 65 20 74 68 69 73 20 62 75 66 66 65 72 20 74 6f 20 61 20 66 69 | You.can.save.this.buffer.to.a.fi |
| 33060 | 6c 65 2e 20 20 57 68 65 6e 20 6f 70 65 6e 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2c 20 74 75 72 | le...When.opening.this.file,.tur |
| 33080 | 6e 20 6f 6e 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 62 65 66 6f 72 65 20 65 64 | n.on.;;...`gptel-mode'.before.ed |
| 330a0 | 69 74 69 6e 67 20 69 74 20 74 6f 20 72 65 73 74 6f 72 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 | iting.it.to.restore.the.conversa |
| 330c0 | 74 69 6f 6e 20 73 74 61 74 65 20 61 6e 64 0a 3b 3b 20 20 20 63 6f 6e 74 69 6e 75 65 20 63 68 61 | tion.state.and.;;...continue.cha |
| 330e0 | 74 74 69 6e 67 2e 0a 3b 3b 0a 3b 3b 20 2d 20 54 6f 20 69 6e 63 6c 75 64 65 20 6d 65 64 69 61 20 | tting..;;.;;.-.To.include.media. |
| 33100 | 66 69 6c 65 73 20 77 69 74 68 20 79 6f 75 72 20 72 65 71 75 65 73 74 2c 20 79 6f 75 20 63 61 6e | files.with.your.request,.you.can |
| 33120 | 20 61 64 64 20 74 68 65 6d 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 0a 3b 3b 20 20 20 28 64 | .add.them.to.the.context.;;...(d |
| 33140 | 65 73 63 72 69 62 65 64 20 6e 65 78 74 29 2c 20 6f 72 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 20 | escribed.next),.or.include.them. |
| 33160 | 61 73 20 6c 69 6e 6b 73 20 69 6e 20 4f 72 67 20 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 6d 6f 64 65 | as.links.in.Org.or.Markdown.mode |
| 33180 | 20 63 68 61 74 0a 3b 3b 20 20 20 62 75 66 66 65 72 73 2e 20 20 53 65 6e 64 69 6e 67 20 6d 65 64 | .chat.;;...buffers...Sending.med |
| 331a0 | 69 61 20 69 73 20 64 69 73 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 79 6f 75 20 63 | ia.is.disabled.by.default,.you.c |
| 331c0 | 61 6e 20 74 75 72 6e 20 69 74 20 6f 6e 20 67 6c 6f 62 61 6c 6c 79 0a 3b 3b 20 20 20 76 69 61 20 | an.turn.it.on.globally.;;...via. |
| 331e0 | 60 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 27 2c 20 6f 72 20 6c 6f 63 61 6c 6c 79 20 | `gptel-track-media',.or.locally. |
| 33200 | 69 6e 20 61 20 63 68 61 74 20 62 75 66 66 65 72 20 76 69 61 20 74 68 65 20 68 65 61 64 65 72 20 | in.a.chat.buffer.via.the.header. |
| 33220 | 6c 69 6e 65 2e 0a 3b 3b 20 0a 3b 3b 20 49 6e 63 6c 75 64 65 20 6d 6f 72 65 20 63 6f 6e 74 65 78 | line..;;..;;.Include.more.contex |
| 33240 | 74 20 77 69 74 68 20 72 65 71 75 65 73 74 73 3a 0a 3b 3b 0a 3b 3b 20 49 66 20 79 6f 75 20 77 61 | t.with.requests:.;;.;;.If.you.wa |
| 33260 | 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 6d 6f 72 65 20 | nt.to.provide.the.LLM.with.more. |
| 33280 | 63 6f 6e 74 65 78 74 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 61 72 62 69 74 72 61 72 79 0a 3b | context,.you.can.add.arbitrary.; |
| 332a0 | 3b 20 72 65 67 69 6f 6e 73 2c 20 62 75 66 66 65 72 73 2c 20 66 69 6c 65 73 20 6f 72 20 64 69 72 | ;.regions,.buffers,.files.or.dir |
| 332c0 | 65 63 74 6f 72 69 65 73 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 77 69 74 68 20 60 67 70 74 65 | ectories.to.the.query.with.`gpte |
| 332e0 | 6c 2d 61 64 64 27 2e 20 20 54 6f 20 61 64 64 0a 3b 3b 20 74 65 78 74 20 6f 72 20 6d 65 64 69 61 | l-add'...To.add.;;.text.or.media |
| 33300 | 20 66 69 6c 65 73 2c 20 63 61 6c 6c 20 60 67 70 74 65 6c 2d 61 64 64 27 20 69 6e 20 44 69 72 65 | .files,.call.`gptel-add'.in.Dire |
| 33320 | 64 20 6f 72 20 75 73 65 20 74 68 65 20 64 65 64 69 63 61 74 65 64 0a 3b 3b 20 60 67 70 74 65 6c | d.or.use.the.dedicated.;;.`gptel |
| 33340 | 2d 61 64 64 2d 66 69 6c 65 27 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 61 | -add-file'..;;.;;.You.can.also.a |
| 33360 | 64 64 20 63 6f 6e 74 65 78 74 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 20 69 6e 73 | dd.context.from.gptel's.menu.ins |
| 33380 | 74 65 61 64 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 0a 3b 3b 20 70 72 65 | tead.(`gptel-send'.with.a.;;.pre |
| 333a0 | 66 69 78 20 61 72 67 29 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 65 78 61 6d 69 6e 65 20 6f 72 20 | fix.arg),.as.well.as.examine.or. |
| 333c0 | 6d 6f 64 69 66 79 20 63 6f 6e 74 65 78 74 2e 0a 3b 3b 0a 3b 3b 20 57 68 65 6e 20 63 6f 6e 74 65 | modify.context..;;.;;.When.conte |
| 333e0 | 78 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 67 70 74 65 6c 20 77 69 6c 6c 20 69 6e 63 6c | xt.is.available,.gptel.will.incl |
| 33400 | 75 64 65 20 69 74 20 77 69 74 68 20 65 61 63 68 20 4c 4c 4d 20 71 75 65 72 79 2e 0a 3b 3b 0a 3b | ude.it.with.each.LLM.query..;;.; |
| 33420 | 3b 20 4c 4c 4d 20 54 6f 6f 6c 20 75 73 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 73 75 70 70 | ;.LLM.Tool.use:.;;.;;.gptel.supp |
| 33440 | 6f 72 74 73 20 22 74 6f 6f 6c 20 63 61 6c 6c 69 6e 67 22 20 62 65 68 61 76 69 6f 72 2c 20 77 68 | orts."tool.calling".behavior,.wh |
| 33460 | 65 72 65 20 4c 4c 4d 73 20 63 61 6e 20 73 70 65 63 69 66 79 20 61 72 67 75 6d 65 6e 74 73 20 77 | ere.LLMs.can.specify.arguments.w |
| 33480 | 69 74 68 0a 3b 3b 20 77 68 69 63 68 20 74 6f 20 63 61 6c 6c 20 70 72 6f 76 69 64 65 64 20 22 74 | ith.;;.which.to.call.provided."t |
| 334a0 | 6f 6f 6c 73 22 20 28 65 6c 69 73 70 20 66 75 6e 63 74 69 6f 6e 73 29 2e 20 20 54 68 65 20 72 65 | ools".(elisp.functions)...The.re |
| 334c0 | 73 75 6c 74 73 20 6f 66 20 72 75 6e 6e 69 6e 67 20 74 68 65 0a 3b 3b 20 74 6f 6f 6c 73 20 61 72 | sults.of.running.the.;;.tools.ar |
| 334e0 | 65 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 67 69 76 69 6e 67 20 69 74 | e.fed.back.to.the.LLM,.giving.it |
| 33500 | 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 61 6e 64 20 6b 6e 6f 77 6c 65 64 67 65 20 62 65 79 6f | .capabilities.and.knowledge.beyo |
| 33520 | 6e 64 0a 3b 3b 20 77 68 61 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 75 74 20 6f 66 20 74 | nd.;;.what.is.available.out.of.t |
| 33540 | 68 65 20 62 6f 78 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 74 6f 6f 6c 73 20 63 61 6e 20 | he.box...For.example,.tools.can. |
| 33560 | 70 65 72 66 6f 72 6d 20 77 65 62 0a 3b 3b 20 73 65 61 72 63 68 65 73 20 6f 72 20 41 50 49 20 6c | perform.web.;;.searches.or.API.l |
| 33580 | 6f 6f 6b 75 70 73 2c 20 6d 6f 64 69 66 79 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f | ookups,.modify.files.and.directo |
| 335a0 | 72 69 65 73 2c 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 73 20 63 61 6e | ries,.and.so.on..;;.;;.Tools.can |
| 335c0 | 20 62 65 20 73 70 65 63 69 66 69 65 64 20 76 69 61 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f | .be.specified.via.`gptel-make-to |
| 335e0 | 6f 6c 27 2c 20 6f 72 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 6f 74 68 65 72 0a 3b 3b 20 72 | ol',.or.obtained.from.other.;;.r |
| 33600 | 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 6f 72 20 66 72 6f 6d 20 4d 6f 64 65 6c 20 43 6f 6e 74 65 | epositories,.or.from.Model.Conte |
| 33620 | 78 74 20 50 72 6f 74 6f 63 6f 6c 20 28 4d 43 50 29 20 73 65 72 76 65 72 73 20 75 73 69 6e 67 20 | xt.Protocol.(MCP).servers.using. |
| 33640 | 74 68 65 20 6d 63 70 2e 65 6c 0a 3b 3b 20 70 61 63 6b 61 67 65 2e 20 20 53 65 65 20 74 68 65 20 | the.mcp.el.;;.package...See.the. |
| 33660 | 52 45 41 44 4d 45 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 73 20 | README.for.details..;;.;;.Tools. |
| 33680 | 63 61 6e 20 62 65 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 4c 4c 4d 20 71 75 65 72 69 65 73 | can.be.included.with.LLM.queries |
| 336a0 | 20 75 73 69 6e 67 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2c 20 6f 72 20 66 72 6f 6d 0a 3b 3b 20 | .using.gptel's.menu,.or.from.;;. |
| 336c0 | 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2e 0a 3b 3b 0a 3b 3b 20 52 65 77 72 69 74 65 20 69 6e 74 | `gptel-tools'..;;.;;.Rewrite.int |
| 336e0 | 65 72 66 61 63 65 0a 3b 3b 0a 3b 3b 20 49 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 20 77 69 74 68 | erface.;;.;;.In.any.buffer:.with |
| 33700 | 20 61 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 72 65 77 72 | .a.region.selected,.you.can.rewr |
| 33720 | 69 74 65 20 70 72 6f 73 65 2c 20 72 65 66 61 63 74 6f 72 20 63 6f 64 65 0a 3b 3b 20 6f 72 20 66 | ite.prose,.refactor.code.;;.or.f |
| 33740 | 69 6c 6c 20 69 6e 20 74 68 65 20 72 65 67 69 6f 6e 2e 20 20 54 68 69 73 20 69 73 20 61 63 63 65 | ill.in.the.region...This.is.acce |
| 33760 | 73 73 69 62 6c 65 20 76 69 61 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 27 2c 20 61 6e 64 20 | ssible.via.`gptel-rewrite',.and. |
| 33780 | 61 6c 73 6f 20 66 72 6f 6d 0a 3b 3b 20 74 68 65 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 6d 65 | also.from.;;.the.`gptel-send'.me |
| 337a0 | 6e 75 2e 0a 3b 3b 0a 3b 3b 20 50 72 65 73 65 74 73 0a 3b 3b 0a 3b 3b 20 44 65 66 69 6e 65 20 61 | nu..;;.;;.Presets.;;.;;.Define.a |
| 337c0 | 20 62 75 6e 64 6c 65 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 6d 6f 64 65 6c 2c | .bundle.of.configuration.(model, |
| 337e0 | 20 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 74 6f 6f 6c 73 20 | .backend,.system.message,.tools. |
| 33800 | 65 74 63 29 0a 3b 3b 20 61 73 20 61 20 22 70 72 65 73 65 74 22 20 74 68 61 74 20 63 61 6e 20 62 | etc).;;.as.a."preset".that.can.b |
| 33820 | 65 20 61 70 70 6c 69 65 64 20 74 6f 67 65 74 68 65 72 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 61 | e.applied.together,.making.it.ea |
| 33840 | 73 79 20 74 6f 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 0a 3b 3b 20 74 61 73 6b 73 20 69 6e | sy.to.switch.between.;;.tasks.in |
| 33860 | 20 67 70 74 65 6c 2e 20 20 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 73 61 76 65 64 20 61 6e | .gptel...Presets.can.be.saved.an |
| 33880 | 64 20 61 70 70 6c 69 65 64 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 | d.applied.from.gptel's.transient |
| 338a0 | 0a 3b 3b 20 6d 65 6e 75 2e 20 20 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 69 6e 63 6c 75 64 65 20 | .;;.menu...You.can.also.include. |
| 338c0 | 61 20 63 6f 6f 6b 69 65 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 22 40 70 72 65 73 65 74 2d 6e 61 | a.cookie.of.the.form."@preset-na |
| 338e0 | 6d 65 22 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 0a 3b 3b 20 74 6f 20 73 65 6e 64 20 61 20 72 | me".in.the.prompt.;;.to.send.a.r |
| 33900 | 65 71 75 65 73 74 20 77 69 74 68 20 61 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 2e 20 20 54 | equest.with.a.preset.applied...T |
| 33920 | 68 69 73 20 66 65 61 74 75 72 65 20 77 6f 72 6b 73 20 65 76 65 72 79 77 68 65 72 65 2c 20 62 75 | his.feature.works.everywhere,.bu |
| 33940 | 74 0a 3b 3b 20 70 72 65 73 65 74 20 63 6f 6f 6b 69 65 73 20 61 72 65 20 61 6c 73 6f 20 66 6f 6e | t.;;.preset.cookies.are.also.fon |
| 33960 | 74 69 66 69 65 64 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 3b 3b 0a 3b 3b 20 67 70 | tified.in.chat.buffers..;;.;;.gp |
| 33980 | 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 6f 66 66 | tel.in.Org.mode:.;;.;;.gptel.off |
| 339a0 | 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. |
| 339c0 | 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 69 74 20 | Org.mode:.;;.;;.-.You.can.limit. |
| 339e0 | 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 6e 20 4f | the.conversation.context.to.an.O |
| 33a00 | 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 72 67 2d | rg.heading.with.;;...`gptel-org- |
| 33a20 | 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 6e 20 68 | set-topic'..;;....;;.-.You.can.h |
| 33a40 | 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 6e 20 4f | ave.branching.conversations.in.O |
| 33a60 | 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 63 61 6c | rg.mode,.where.each.hierarchical |
| 33a80 | 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 65 20 64 | .;;...outline.path.through.the.d |
| 33aa0 | 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 61 74 69 | ocument.is.a.separate.conversati |
| 33ac0 | 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 62 6c 65 | on.branch..;;...See.the.variable |
| 33ae0 | 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 2e 0a | .`gptel-org-branching-context'.. |
| 33b00 | 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 65 20 67 | ;;....;;.-.You.can.declare.the.g |
| 33b20 | 70 74 65 6c 20 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 2c 20 74 65 6d 70 65 72 61 74 75 72 65 | ptel.model,.backend,.temperature |
| 33b40 | 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 65 72 20 | ,.system.message.and.;;...other. |
| 33b60 | 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 77 69 74 | parameters.as.Org.properties.wit |
| 33b80 | 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 2d 73 65 | h.the.command.;;...`gptel-org-se |
| 33ba0 | 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 20 75 6e | t-properties'...gptel.queries.un |
| 33bc0 | 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 0a 3b 3b | der.the.corresponding.heading.;; |
| 33be0 | 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 69 6e 67 | ...will.always.use.these.setting |
| 33c00 | 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 74 6c 79 | s,.allowing.you.to.create.mostly |
| 33c20 | 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 6f 74 65 | .reproducible.;;...LLM.chat.note |
| 33c40 | 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 66 66 65 | books..;;.;;.Finally,.gptel.offe |
| 33c60 | 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 77 72 69 | rs.a.general.purpose.API.for.wri |
| 33c80 | 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 73 75 69 | ting.LLM.ineractions.that.;;.sui |
| 33ca0 | 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 72 65 71 | t.your.workflow...See.`gptel-req |
| 33cc0 | 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 72 65 20 | uest',.and.`gptel-fsm'.for.more. |
| 33ce0 | 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 0a 28 64 | advanced.;;.usage...;;;.Code:.(d |
| 33d00 | 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 20 22 6d | eclare-function.markdown-mode."m |
| 33d20 | 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 69 6f 6e | arkdown-mode").(declare-function |
| 33d40 | 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 65 6c 2d | .gptel-curl-get-response."gptel- |
| 33d60 | 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 6c 2d 6d | curl").(declare-function.gptel-m |
| 33d80 | 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 72 65 2d | enu."gptel-transient").(declare- |
| 33da0 | 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 22 67 70 | function.gptel-system-prompt."gp |
| 33dc0 | 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f | tel-transient").(declare-functio |
| 33de0 | 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 74 22 29 | n.gptel-tools."gptel-transient") |
| 33e00 | 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 6e 74 61 | .(declare-function.pulse-momenta |
| 33e20 | 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 0a 28 64 | ry-highlight-region."pulse")..(d |
| 33e40 | 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 6f 6e 65 | eclare-function.ediff-make-clone |
| 33e60 | 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 72 65 2d | d-buffer."ediff-util").(declare- |
| 33e80 | 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 61 6c 20 | function.ediff-regions-internal. |
| 33ea0 | 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 2d 6c 69 | "ediff").(declare-function.hl-li |
| 33ec0 | 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 6c 61 72 | ne-highlight."hl-line")..(declar |
| 33ee0 | 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 2d 73 74 | e-function.org-escape-code-in-st |
| 33f00 | 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 74 69 6f | ring."org-src").(declare-functio |
| 33f20 | 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 2d 62 75 66 66 65 | n.gptel-org--create-prompt-buffe |
| 33f40 | 72 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 | r."gptel-org").(declare-function |
| 33f60 | 20 67 70 74 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 | .gptel-org-set-topic."gptel-org" |
| 33f80 | 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 6f 72 67 2d 2d 73 | ).(declare-function.gptel-org--s |
| 33fa0 | 61 76 65 2d 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 | ave-state."gptel-org").(declare- |
| 33fc0 | 66 75 6e 63 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 | function.gptel-org--restore-stat |
| 33fe0 | 65 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | e."gptel-org").(declare-function |
| 34000 | 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 72 6b 64 6f 77 6e 2d | .gptel--stream-convert-markdown- |
| 34020 | 3e 6f 72 67 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 | >org."gptel-org").(declare-funct |
| 34040 | 69 6f 6e 20 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 | ion.gptel--convert-markdown->org |
| 34060 | 20 22 67 70 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 | ."gptel-org").(define-obsolete-f |
| 34080 | 75 6e 63 74 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 | unction-alias...'gptel-set-topic |
| 340a0 | 20 27 67 70 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 | .'gptel-org-set-topic."0.7.5").. |
| 340c0 | 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 | (eval-when-compile...(require.'s |
| 340e0 | 75 62 72 2d 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 | ubr-x)).(require.'cl-lib).(requi |
| 34100 | 72 65 20 27 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 | re.'compat.nil.t).(require.'url) |
| 34120 | 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 74 65 78 74 2d 70 | .(require.'map).(require.'text-p |
| 34140 | 72 6f 70 65 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 | roperty-search).(require.'cl-gen |
| 34160 | 65 72 69 63 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 | eric).(require.'gptel-openai)... |
| 34180 | 0a 3b 3b 3b 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 | .;;;.User.options..(defgroup.gpt |
| 341a0 | 65 6c 20 6e 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 | el.nil..."Interact.with.LLMs.fro |
| 341c0 | 6d 20 61 6e 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 | m.anywhere.in.Emacs."...:group.' |
| 341e0 | 68 79 70 65 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 | hypermedia)..(defcustom.gptel-pr |
| 34200 | 6f 78 79 20 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 | oxy.""..."Path.to.a.proxy.to.use |
| 34220 | 20 66 6f 72 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 | .for.gptel.interactions..Passed. |
| 34240 | 74 6f 20 63 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 | to.curl.via.--proxy.arg,.for.exa |
| 34260 | 6d 70 6c 65 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 | mple.\"proxy.yourorg.com:80\".Le |
| 34280 | 61 76 65 20 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 | ave.it.empty.if.you.don't.use.a. |
| 342a0 | 70 72 6f 78 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 | proxy."...:type.'string)..(defcu |
| 342c0 | 73 74 6f 6d 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 | stom.gptel-api-key.#'gptel-api-k |
| 342e0 | 65 79 2d 66 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 | ey-from-auth-source..."An.API.ke |
| 34300 | 79 20 28 73 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 | y.(string).for.the.default.LLM.b |
| 34320 | 61 63 6b 65 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 | ackend...OpenAI.by.default...Can |
| 34340 | 20 61 6c 73 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 | .also.be.a.function.of.no.argume |
| 34360 | 6e 74 73 20 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 | nts.that.returns.an.API.key.(mor |
| 34380 | 65 20 73 65 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 | e.secure).for.the.active.backend |
| 343a0 | 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 73 | ."...:type.'(choice...........(s |
| 343c0 | 74 72 69 6e 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 | tring.:tag."API.key")........... |
| 343e0 | 28 66 75 6e 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 | (function.:tag."Function.that.re |
| 34400 | 74 75 72 6e 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 | turns.the.API.key")))..(defcusto |
| 34420 | 6d 20 67 70 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 | m.gptel-stream.t..."Stream.respo |
| 34440 | 6e 73 65 73 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 | nses.from.the.LLM.as.they.are.re |
| 34460 | 63 65 69 76 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 | ceived...This.option.is.ignored. |
| 34480 | 75 6e 6c 65 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 | unless.-.the.LLM.backend.support |
| 344a0 | 73 20 73 74 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 | s.streaming,.and.-.Curl.is.in.us |
| 344c0 | 65 20 28 73 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 | e.(see.`gptel-use-curl')..When.s |
| 344e0 | 65 74 20 74 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 | et.to.nil,.Emacs.waits.for.the.f |
| 34500 | 75 6c 6c 20 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 | ull.response.and.inserts.it.all. |
| 34520 | 61 74 20 6f 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 | at.once...This.wait.is.asynchron |
| 34540 | 6f 75 73 2e 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 | ous...\='tis.a.bit.silly."...:ty |
| 34560 | 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 65 6c 2d 75 | pe.'boolean)..(defcustom.gptel-u |
| 34580 | 73 65 2d 63 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 | se-curl.(and.(executable-find."c |
| 345a0 | 75 72 6c 22 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 | url").t)..."Whether.gptel.should |
| 345c0 | 20 70 72 65 66 65 72 20 43 75 72 6c 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 0a 0a 43 61 | .prefer.Curl.when.available...Ca |
| 345e0 | 6e 20 62 65 20 73 65 74 20 74 6f 20 74 2c 20 6e 69 6c 2c 20 6f 72 20 61 20 73 74 72 69 6e 67 20 | n.be.set.to.t,.nil,.or.a.string. |
| 34600 | 70 61 74 68 20 74 6f 20 74 68 65 20 63 75 72 6c 20 65 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 | path.to.the.curl.executable."... |
| 34620 | 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 6e 73 74 20 | :type.'(choice...........(const. |
| 34640 | 3a 74 61 67 20 22 44 6f 20 6e 6f 74 20 75 73 65 20 43 75 72 6c 22 20 6e 69 6c 29 0a 20 20 20 20 | :tag."Do.not.use.Curl".nil)..... |
| 34660 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 43 75 72 6c 22 20 74 29 0a | ......(const.:tag."Use.Curl".t). |
| 34680 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 | ..........(string.:tag."Specify. |
| 346a0 | 70 61 74 68 20 74 6f 20 74 68 65 20 43 75 72 6c 20 65 78 65 63 75 74 61 62 6c 65 22 29 29 29 0a | path.to.the.Curl.executable"))). |
| 346c0 | 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6f 72 67 2d 63 6f 6e 76 65 72 74 2d 72 65 | .(defcustom.gptel-org-convert-re |
| 346e0 | 73 70 6f 6e 73 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 | sponse.t..."Whether.gptel.should |
| 34700 | 20 63 6f 6e 76 65 72 74 20 4d 61 72 6b 64 6f 77 6e 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 4f | .convert.Markdown.responses.to.O |
| 34720 | 72 67 20 6d 61 72 6b 75 70 2e 0a 0a 54 68 69 73 20 6f 6e 6c 79 20 61 66 66 65 63 74 73 20 72 65 | rg.markup...This.only.affects.re |
| 34740 | 71 75 65 73 74 73 20 6f 72 69 67 69 6e 61 74 69 6e 67 20 66 72 6f 6d 20 4f 72 67 20 6d 6f 64 65 | quests.originating.from.Org.mode |
| 34760 | 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 | .buffers."...:type.'boolean)..(d |
| 34780 | 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 75 72 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 | efcustom.gptel-curl-file-size-th |
| 347a0 | 72 65 73 68 6f 6c 64 0a 20 20 28 69 66 20 28 6d 65 6d 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 | reshold...(if.(memq.system-type. |
| 347c0 | 27 28 77 69 6e 64 6f 77 73 2d 6e 74 20 6d 73 2d 64 6f 73 29 29 20 23 78 36 66 66 65 20 31 33 30 | '(windows-nt.ms-dos)).#x6ffe.130 |
| 347e0 | 30 30 30 29 0a 20 20 22 53 69 7a 65 20 74 68 72 65 73 68 6f 6c 64 20 66 6f 72 20 75 73 69 6e 67 | 000)..."Size.threshold.for.using |
| 34800 | 20 66 69 6c 65 20 69 6e 70 75 74 20 77 69 74 68 20 43 75 72 6c 2e 0a 0a 53 70 65 63 69 66 69 65 | .file.input.with.Curl...Specifie |
| 34820 | 73 20 74 68 65 20 73 69 7a 65 20 74 68 72 65 73 68 6f 6c 64 20 66 6f 72 20 77 68 65 6e 20 74 6f | s.the.size.threshold.for.when.to |
| 34840 | 20 75 73 65 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 74 6f 20 70 61 73 73 20 64 61 | .use.a.temporary.file.to.pass.da |
| 34860 | 74 61 20 74 6f 0a 43 75 72 6c 20 69 6e 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 2e 20 20 49 66 | ta.to.Curl.in.gptel.queries...If |
| 34880 | 20 74 68 65 20 73 69 7a 65 20 6f 66 20 74 68 65 20 64 61 74 61 20 74 6f 20 62 65 20 73 65 6e 74 | .the.size.of.the.data.to.be.sent |
| 348a0 | 20 65 78 63 65 65 64 73 20 74 68 69 73 0a 74 68 72 65 73 68 6f 6c 64 2c 20 74 68 65 20 64 61 74 | .exceeds.this.threshold,.the.dat |
| 348c0 | 61 20 69 73 20 77 72 69 74 74 65 6e 20 74 6f 20 61 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 | a.is.written.to.a.temporary.file |
| 348e0 | 20 61 6e 64 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 75 73 69 6e 67 20 74 68 65 0a 60 2d | .and.passed.to.Curl.using.the.`- |
| 34900 | 2d 64 61 74 61 2d 62 69 6e 61 72 79 27 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 61 20 66 69 6c 65 | -data-binary'.option.with.a.file |
| 34920 | 20 72 65 66 65 72 65 6e 63 65 2e 20 20 4f 74 68 65 72 77 69 73 65 2c 20 74 68 65 20 64 61 74 61 | .reference...Otherwise,.the.data |
| 34940 | 20 69 73 20 70 61 73 73 65 64 0a 64 69 72 65 63 74 6c 79 20 61 73 20 61 20 63 6f 6d 6d 61 6e 64 | .is.passed.directly.as.a.command |
| 34960 | 2d 6c 69 6e 65 20 61 72 67 75 6d 65 6e 74 2e 0a 0a 54 68 65 20 76 61 6c 75 65 20 69 73 20 61 6e | -line.argument...The.value.is.an |
| 34980 | 20 69 6e 74 65 67 65 72 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 | .integer.representing.the.number |
| 349a0 | 20 6f 66 20 62 79 74 65 73 2e 0a 0a 41 64 6a 75 73 74 69 6e 67 20 74 68 69 73 20 76 61 6c 75 65 | .of.bytes...Adjusting.this.value |
| 349c0 | 20 6d 61 79 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 | .may.be.necessary.depending.on.t |
| 349e0 | 68 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 61 6e 64 20 74 68 65 20 74 79 70 69 63 61 6c 20 73 | he.environment.and.the.typical.s |
| 34a00 | 69 7a 65 20 6f 66 20 74 68 65 20 64 61 74 61 20 62 65 69 6e 67 20 73 65 6e 74 20 69 6e 20 67 70 | ize.of.the.data.being.sent.in.gp |
| 34a20 | 74 65 6c 20 71 75 65 72 69 65 73 2e 0a 41 20 6c 61 72 67 65 72 20 76 61 6c 75 65 20 6d 61 79 20 | tel.queries..A.larger.value.may. |
| 34a40 | 69 6d 70 72 6f 76 65 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 62 79 20 61 76 6f 69 64 69 6e 67 20 | improve.performance.by.avoiding. |
| 34a60 | 74 68 65 20 6f 76 65 72 68 65 61 64 20 6f 66 20 63 72 65 61 74 69 6e 67 0a 74 65 6d 70 6f 72 61 | the.overhead.of.creating.tempora |
| 34a80 | 72 79 20 66 69 6c 65 73 20 66 6f 72 20 73 6d 61 6c 6c 20 64 61 74 61 20 70 61 79 6c 6f 61 64 73 | ry.files.for.small.data.payloads |
| 34aa0 | 2c 20 77 68 69 6c 65 20 61 20 73 6d 61 6c 6c 65 72 20 76 61 6c 75 65 20 6d 61 79 20 62 65 20 6e | ,.while.a.smaller.value.may.be.n |
| 34ac0 | 65 65 64 65 64 0a 69 66 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 72 67 75 6d 65 | eeded.if.the.command-line.argume |
| 34ae0 | 6e 74 20 73 69 7a 65 20 69 73 20 6c 69 6d 69 74 65 64 20 62 79 20 74 68 65 20 6f 70 65 72 61 74 | nt.size.is.limited.by.the.operat |
| 34b00 | 69 6e 67 20 73 79 73 74 65 6d 2e 0a 0a 54 68 65 20 64 65 66 61 75 6c 74 20 6f 66 20 23 78 38 30 | ing.system...The.default.of.#x80 |
| 34b20 | 30 30 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 73 | 00.for.windows.comes.from.Micros |
| 34b40 | 6f 66 74 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 6c 6f 63 61 74 65 64 20 68 65 72 65 3a 0a | oft.documentation.located.here:. |
| 34b60 | 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 75 | https://learn.microsoft.com/en-u |
| 34b80 | 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 61 | s/windows/win32/api/processthrea |
| 34ba0 | 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 74 | dsapi/nf-processthreadsapi-creat |
| 34bc0 | 65 70 72 6f 63 65 73 73 61 0a 0a 49 74 20 69 73 20 73 65 74 20 74 6f 20 28 23 78 38 30 30 30 20 | eprocessa..It.is.set.to.(#x8000. |
| 34be0 | 2d 20 23 78 31 30 30 30 20 2d 20 32 29 20 74 6f 20 61 63 63 6f 75 6e 74 20 66 6f 72 20 6f 74 68 | -.#x1000.-.2).to.account.for.oth |
| 34c00 | 65 72 20 28 6e 6f 6e 2d 64 61 74 61 29 20 43 75 72 6c 0a 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 | er.(non-data).Curl.command.line. |
| 34c20 | 61 72 67 75 6d 65 6e 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 6e 61 74 6e 75 6d 29 0a 0a 28 64 | arguments."...:type.'natnum)..(d |
| 34c40 | 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 20 27 67 | efine-obsolete-variable-alias.'g |
| 34c60 | 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 66 69 6c 74 65 72 2d 68 6f 6f 6b 0a 20 20 27 67 70 74 65 6c | ptel-prompt-filter-hook...'gptel |
| 34c80 | 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 20 22 30 2e 39 | -prompt-transform-functions."0.9 |
| 34ca0 | 2e 39 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 | .9")..(defcustom.gptel-prompt-tr |
| 34cc0 | 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 28 67 70 74 65 6c 2d 2d 74 72 61 | ansform-functions...'(gptel--tra |
| 34ce0 | 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 | nsform-apply-preset.gptel--trans |
| 34d00 | 66 6f 72 6d 2d 61 64 64 2d 63 6f 6e 74 65 78 74 29 0a 20 20 22 48 61 6e 64 6c 65 72 73 20 74 6f | form-add-context)..."Handlers.to |
| 34d20 | 20 61 75 67 6d 65 6e 74 20 6f 72 20 74 72 61 6e 73 66 6f 72 6d 20 61 20 71 75 65 72 79 20 62 65 | .augment.or.transform.a.query.be |
| 34d40 | 66 6f 72 65 20 73 65 6e 64 69 6e 67 20 69 74 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 | fore.sending.it...This.hook.is.c |
| 34d60 | 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 72 20 63 6f 6e 74 | alled.in.a.temporary.buffer.cont |
| 34d80 | 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 2c 20 77 69 74 68 | aining.the.text.to.be.sent,.with |
| 34da0 | 20 74 68 65 20 63 75 72 73 6f 72 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 70 72 | .the.cursor.at.the.end.of.the.pr |
| 34dc0 | 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 6f 64 69 66 79 20 | ompt...You.can.use.it.to.modify. |
| 34de0 | 74 68 65 20 62 75 66 66 65 72 20 6f 72 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 | the.buffer.or.buffer-local.varia |
| 34e00 | 62 6c 65 73 20 61 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 53 69 6e 63 65 20 74 68 65 73 65 20 66 | bles.as.required...Since.these.f |
| 34e20 | 75 6e 63 74 69 6f 6e 73 20 6d 6f 64 69 66 79 20 74 68 65 20 70 72 6f 6d 70 74 20 63 6f 6e 73 74 | unctions.modify.the.prompt.const |
| 34e40 | 72 75 63 74 69 6f 6e 20 62 75 66 66 65 72 2c 20 74 68 65 20 6f 72 64 65 72 0a 69 6e 20 77 68 69 | ruction.buffer,.the.order.in.whi |
| 34e60 | 63 68 20 74 68 65 79 20 72 75 6e 20 69 73 20 73 69 67 6e 69 66 69 63 61 6e 74 21 20 20 49 6e 20 | ch.they.run.is.significant!..In. |
| 34e80 | 70 61 72 74 69 63 75 6c 61 72 2c 20 79 6f 75 20 6d 61 79 20 77 61 6e 74 20 74 6f 20 61 64 64 0a | particular,.you.may.want.to.add. |
| 34ea0 | 79 6f 75 72 20 66 75 6e 63 74 69 6f 6e 20 62 65 66 6f 72 65 20 28 74 68 65 20 64 65 66 61 75 6c | your.function.before.(the.defaul |
| 34ec0 | 74 29 20 6f 72 20 61 66 74 65 72 0a 60 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 64 | t).or.after.`gptel--transform-ad |
| 34ee0 | 64 2d 63 6f 6e 74 65 78 74 27 2c 20 77 68 69 63 68 20 61 64 64 73 20 67 70 74 65 6c 27 73 20 63 | d-context',.which.adds.gptel's.c |
| 34f00 | 6f 6e 74 65 78 74 20 28 6f 74 68 65 72 0a 62 75 66 66 65 72 73 2c 20 66 69 6c 65 73 20 65 74 63 | ontext.(other.buffers,.files.etc |
| 34f20 | 29 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 45 78 61 6d 70 6c 65 3a 20 41 20 74 79 | ).to.this.buffer...Example:.A.ty |
| 34f40 | 70 69 63 61 6c 20 75 73 65 20 63 61 73 65 20 6d 69 67 68 74 20 62 65 20 74 6f 20 73 65 61 72 63 | pical.use.case.might.be.to.searc |
| 34f60 | 68 20 66 6f 72 20 6f 63 63 75 72 72 65 6e 63 65 73 20 6f 66 20 24 28 63 6d 64 29 0a 61 6e 64 20 | h.for.occurrences.of.$(cmd).and. |
| 34f80 | 72 65 70 6c 61 63 65 20 69 74 20 77 69 74 68 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 74 68 | replace.it.with.the.output.of.th |
| 34fa0 | 65 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 63 6d 64 2c 20 6d 61 6b 69 6e 67 20 69 74 20 65 | e.shell.command.cmd,.making.it.e |
| 34fc0 | 61 73 79 0a 74 6f 20 73 65 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 6f 66 20 73 68 65 6c 6c 20 | asy.to.send.the.output.of.shell. |
| 34fe0 | 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 0a 54 72 61 6e 73 66 6f 72 6d 20 | commands.to.the.LLM...Transform. |
| 35000 | 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 20 6f 72 20 | functions.can.be.synchronous.or. |
| 35020 | 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2e 0a 0a 53 79 6e 63 68 72 6f 6e 6f 75 73 20 68 6f 6f 6b 20 | asynchronous...Synchronous.hook. |
| 35040 | 66 75 6e 63 74 69 6f 6e 73 20 6d 75 73 74 20 61 63 63 65 70 74 20 7a 65 72 6f 20 6f 72 20 6f 6e | functions.must.accept.zero.or.on |
| 35060 | 65 20 61 72 67 75 6d 65 6e 74 3a 20 74 68 65 20 49 4e 46 4f 0a 70 6c 69 73 74 20 66 6f 72 20 74 | e.argument:.the.INFO.plist.for.t |
| 35080 | 68 65 20 63 75 72 72 65 6e 74 20 72 65 71 75 65 73 74 2e 0a 0a 41 73 79 6e 63 68 72 6f 6e 6f 75 | he.current.request...Asynchronou |
| 350a0 | 73 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 73 20 6d 75 73 74 20 61 63 63 65 70 74 20 74 77 6f | s.hook.functions.must.accept.two |
| 350c0 | 20 61 72 67 75 6d 65 6e 74 73 3a 20 61 20 63 61 6c 6c 62 61 63 6b 20 74 6f 0a 63 61 6c 6c 20 61 | .arguments:.a.callback.to.call.a |
| 350e0 | 66 74 65 72 20 74 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 63 6f 6d 70 6c | fter.the.transformation.is.compl |
| 35100 | 65 74 65 2c 20 61 6e 64 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 66 6f 72 20 74 68 65 0a | ete,.and.the.INFO.plist.for.the. |
| 35120 | 63 75 72 72 65 6e 74 20 72 65 71 75 65 73 74 2e 0a 0a 4e 6f 74 65 20 74 68 61 74 20 77 68 69 6c | current.request...Note.that.whil |
| 35140 | 65 20 74 68 69 73 20 73 65 74 20 6f 66 20 68 61 6e 64 6c 65 72 73 20 63 61 6e 20 63 65 72 74 61 | e.this.set.of.handlers.can.certa |
| 35160 | 69 6e 6c 79 20 62 65 20 73 65 74 20 77 69 74 68 20 61 20 67 6c 6f 62 61 6c 0a 76 61 6c 75 65 20 | inly.be.set.with.a.global.value. |
| 35180 | 74 6f 20 62 65 20 61 70 70 6c 69 65 64 20 74 6f 20 61 6c 6c 20 71 75 65 72 69 65 73 20 69 6e 20 | to.be.applied.to.all.queries.in. |
| 351a0 | 61 6c 6c 20 62 75 66 66 65 72 73 2c 20 69 74 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 73 65 74 0a | all.buffers,.it.meant.to.be.set. |
| 351c0 | 6c 6f 63 61 6c 6c 79 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 62 75 66 66 65 72 2c 20 6f | locally.for.a.specific.buffer,.o |
| 351e0 | 72 20 63 68 61 74 20 74 6f 70 69 63 2c 20 6f 72 20 6f 6e 6c 79 20 74 68 65 20 63 6f 6e 74 65 78 | r.chat.topic,.or.only.the.contex |
| 35200 | 74 20 6f 66 20 61 0a 63 65 72 74 61 69 6e 20 74 61 73 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 68 | t.of.a.certain.task."...:type.'h |
| 35220 | 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 72 65 71 75 | ook)..(defcustom.gptel-post-requ |
| 35240 | 65 73 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 73 | est-hook.nil..."Hook.run.after.s |
| 35260 | 65 6e 64 69 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 | ending.a.gptel.request...This.ru |
| 35280 | 6e 73 20 28 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 | ns.(possibly).before.any.respons |
| 352a0 | 65 20 69 73 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 | e.is.received."...:type.'hook).. |
| 352c0 | 3b 3b 20 54 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 | ;;.TODO(v1.0):.Remove.this..(def |
| 352e0 | 76 61 72 20 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 | var.gptel-response-filter-functi |
| 35300 | 6f 6e 73 20 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 | ons.nil).(make-obsolete-variable |
| 35320 | 0a 20 27 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 | ..'gptel-response-filter-functio |
| 35340 | 6e 73 0a 20 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 | ns.."Response.filtering.is.no.lo |
| 35360 | 6e 67 65 72 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 | nger.supported.in.gptel...To.tog |
| 35380 | 67 6c 65 0a 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 | gle.markdown.to.Org.conversion,. |
| 353a0 | 73 65 65 20 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 | see.`gptel-org-convert-response' |
| 353c0 | 2e 20 20 54 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 | ...To.filter.LLM.response.text,. |
| 353e0 | 65 69 74 68 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 | either.use.`gptel-request'.with. |
| 35400 | 61 0a 63 75 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 | a.custom.callback,.or.use.`gptel |
| 35420 | 2d 70 6f 73 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 | -post-response-functions'.".."0. |
| 35440 | 39 2e 37 22 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 | 9.7")..(defcustom.gptel-pre-resp |
| 35460 | 6f 6e 73 65 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 | onse-hook.nil..."Hook.run.before |
| 35480 | 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f | .inserting.the.LLM.response.into |
| 354a0 | 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 | .the.current.buffer...This.hook. |
| 354c0 | 69 73 20 63 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 | is.called.in.the.buffer.where.th |
| 354e0 | 65 20 4c 4c 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 | e.LLM.response.will.be.inserted. |
| 35500 | 0a 0a 4e 6f 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 | ..Note:.this.hook.only.runs.if.t |
| 35520 | 68 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 | he.request.succeeds."...:type.'h |
| 35540 | 6f 6f 6b 29 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 | ook)..(define-obsolete-variable- |
| 35560 | 61 6c 69 61 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 | alias...'gptel-post-response-hoo |
| 35580 | 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 63 74 69 6f 6e 73 | k.'gptel-post-response-functions |
| 355a0 | 0a 20 20 22 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 | ..."0.6.0"..."Post-response.func |
| 355c0 | 74 69 6f 6e 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 | tions.are.now.called.with.two.ar |
| 355e0 | 67 75 6d 65 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 | guments:.the.start.and.end.buffe |
| 35600 | 72 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 0a | r.positions.of.the.response.").. |
| 35620 | 28 64 65 66 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 | (defcustom.gptel-post-response-f |
| 35640 | 75 6e 63 74 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 | unctions.nil..."Abnormal.hook.ru |
| 35660 | 6e 20 61 66 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 | n.after.inserting.the.LLM.respon |
| 35680 | 73 65 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 | se.into.the.current.buffer...Thi |
| 356a0 | 73 20 68 6f 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 | s.hook.is.called.in.the.buffer.t |
| 356c0 | 6f 20 77 68 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 | o.which.the.LLM.response.is.sent |
| 356e0 | 2c 20 61 6e 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 | ,.and.after.the.full.response.ha |
| 35700 | 73 20 62 65 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 | s.been.inserted...Each.function. |
| 35720 | 69 73 20 63 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 | is.called.with.two.arguments:.th |
| 35740 | 65 20 72 65 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 | e.response.beginning.and.end.pos |
| 35760 | 69 74 69 6f 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 | itions...Note:.this.hook.runs.ev |
| 35780 | 65 6e 20 69 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 | en.if.the.request.fails...In.thi |
| 357a0 | 73 20 63 61 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 | s.case.the.response.beginning.an |
| 357c0 | 64 20 65 6e 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 | d.end.positions.are.both.the.cur |
| 357e0 | 73 6f 72 20 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 | sor.position.at.the.time.of.the. |
| 35800 | 72 65 71 75 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 | request."...:type.'hook)..;;.(de |
| 35820 | 66 63 75 73 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 | fcustom.gptel-pre-stream-insert- |
| 35840 | 68 6f 6f 6b 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 | hook.nil.;;..."Hook.run.before.e |
| 35860 | 61 63 68 20 69 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 73 74 72 65 61 | ach.insertion.of.the.LLM's.strea |
| 35880 | 6d 69 6e 67 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 | ming.response...;;.This.hook.is. |
| 358a0 | 63 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 | called.in.the.buffer.from.which. |
| 358c0 | 74 68 65 20 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 | the.prompt.was.sent.;;.to.the.LL |
| 358e0 | 4d 2c 20 69 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 | M,.immediately.before.text.inser |
| 35900 | 74 69 6f 6e 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 | tion.".;;...:group.'gptel.;;...: |
| 35920 | 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 70 6f | type.'hook)..(defcustom.gptel-po |
| 35940 | 73 74 2d 73 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 | st-stream-hook.nil..."Hook.run.a |
| 35960 | 66 74 65 72 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 | fter.each.insertion.of.the.LLM's |
| 35980 | 20 73 74 72 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 | .streaming.response...This.hook. |
| 359a0 | 69 73 20 63 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 | is.called.in.the.buffer.from.whi |
| 359c0 | 63 68 20 74 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 | ch.the.prompt.was.sent.to.the.LL |
| 359e0 | 4d 2c 20 61 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 | M,.and.after.a.text.insertion.". |
| 35a00 | 20 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 | ..:type.'hook)..(defcustom.gptel |
| 35a20 | 2d 73 61 76 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 | -save-state-hook.nil..."Hook.run |
| 35a40 | 20 62 65 66 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 | .before.gptel.saves.model.parame |
| 35a60 | 74 65 72 73 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 | ters.to.a.file...You.can.use.thi |
| 35a80 | 73 20 68 6f 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 | s.hook.to.store.additional.conve |
| 35aa0 | 72 73 61 74 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 | rsation.state.or.model.parameter |
| 35ac0 | 73 20 74 6f 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 | s.to.the.chat.buffer,.or.to.modi |
| 35ae0 | 66 79 20 74 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 | fy.the.buffer.in.some.other.way. |
| 35b00 | 22 0a 20 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 | "...:type.'hook)..(defcustom.gpt |
| 35b20 | 65 6c 2d 64 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 | el-default-mode.(if.(fboundp.'ma |
| 35b40 | 72 6b 64 6f 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 | rkdown-mode).......'markdown-mod |
| 35b60 | 65 0a 09 09 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 | e.....'text-mode)..."The.default |
| 35b80 | 20 6d 61 6a 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 | .major.mode.for.dedicated.chat.b |
| 35ba0 | 75 66 66 65 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 | uffers...If.`markdown-mode'.is.a |
| 35bc0 | 76 61 69 6c 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 | vailable,.it.is.used...Otherwise |
| 35be0 | 20 67 70 74 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 | .gptel.defaults.to.`text-mode'." |
| 35c00 | 0a 20 20 3a 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 | ...:type.'function)..;;.TODO:.Ha |
| 35c20 | 6e 64 6c 65 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 | ndle.`prog-mode'.using.the.`comm |
| 35c40 | 65 6e 74 2d 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 | ent-start'.variable.(defcustom.g |
| 35c60 | 70 74 65 6c 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 | ptel-prompt-prefix-alist...'((ma |
| 35c80 | 72 6b 64 6f 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 | rkdown-mode..."###.").....(org-m |
| 35ca0 | 6f 64 65 20 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 | ode..."***.").....(text-mode..." |
| 35cc0 | 23 23 23 20 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 | ###."))..."String.used.as.a.pref |
| 35ce0 | 69 78 20 74 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 | ix.to.the.query.being.sent.to.th |
| 35d00 | 65 20 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 | e.LLM...This.is.meant.for.the.us |
| 35d20 | 65 72 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 | er.to.distinguish.between.querie |
| 35d40 | 73 20 61 6e 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 | s.and.responses,.and.is.removed. |
| 35d60 | 66 72 6f 6d 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 | from.the.query.before.it.is.sent |
| 35d80 | 2e 0a 0a 54 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 | ...This.is.an.alist.mapping.majo |
| 35da0 | 72 20 6d 6f 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 | r.modes.to.the.prefix.strings... |
| 35dc0 | 54 68 69 73 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 | This.is.only.inserted.in.dedicat |
| 35de0 | 65 64 20 67 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 | ed.gptel.buffers."...:type.'(ali |
| 35e00 | 73 74 20 3a 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 | st.:key-type.symbol.:value-type. |
| 35e20 | 73 74 72 69 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 | string))..(defcustom.gptel-respo |
| 35e40 | 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 0a 20 20 27 28 28 6d 61 72 6b 64 6f 77 6e 2d 6d | nse-prefix-alist...'((markdown-m |
| 35e60 | 6f 64 65 20 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 | ode..."").....(org-mode..."")... |
| 35e80 | 20 20 28 74 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 | ..(text-mode...""))..."String.in |
| 35ea0 | 73 65 72 74 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 | serted.before.the.response.from. |
| 35ec0 | 74 68 65 20 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 | the.LLM...This.is.meant.for.the. |
| 35ee0 | 75 73 65 72 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 | user.to.distinguish.between.quer |
| 35f00 | 69 65 73 20 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 | ies.and.responses...This.is.an.a |
| 35f20 | 6c 69 73 74 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 | list.mapping.major.modes.to.the. |
| 35f40 | 72 65 70 6c 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 | reply.prefix.strings...This.is.o |
| 35f60 | 6e 6c 79 20 69 6e 73 65 72 74 65 64 20 69 6e 20 64 65 64 69 63 61 74 65 64 20 67 70 74 65 6c 20 | nly.inserted.in.dedicated.gptel. |
| 35f80 | 62 75 66 66 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 | buffers.before.the.AI's.response |
| 35fa0 | 2e 22 0a 20 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 | ."...:type.'(alist.:key-type.sym |
| 35fc0 | 62 6f 6c 20 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 | bol.:value-type.string))..(defcu |
| 35fe0 | 73 74 6f 6d 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 | stom.gptel-response-separator."\ |
| 36000 | 6e 5c 6e 22 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 | n\n"..."String.inserted.before.r |
| 36020 | 65 73 70 6f 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 | esponses...Also.inserted.before. |
| 36040 | 61 6e 64 20 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 | and.after.non-consecutive.tool.c |
| 36060 | 61 6c 6c 73 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 | alls."...:type.'string)..(defcus |
| 36080 | 74 6f 6d 20 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 | tom.gptel-use-header-line.t..."W |
| 360a0 | 68 65 74 68 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 | hether.`gptel-mode'.should.use.h |
| 360c0 | 65 61 64 65 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 | eader-line.for.status.informatio |
| 360e0 | 6e 2e 0a 0a 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 | n...When.set.to.nil,.use.the.mod |
| 36100 | 65 20 6c 69 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 | e.line.for.(minimal).status.info |
| 36120 | 72 6d 61 74 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 | rmation.and.the.echo.area.for.me |
| 36140 | 73 73 61 67 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 | ssages."...:type.'boolean)..;;.S |
| 36160 | 65 74 20 6d 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 | et.minimally.to.avoid.display-bu |
| 36180 | 66 66 65 72 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 | ffer.action.alist.conflicts.(#53 |
| 361a0 | 33 29 0a 28 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 | 3).(defcustom.gptel-display-buff |
| 361c0 | 65 72 2d 61 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 | er-action.`(nil.(body-function.. |
| 361e0 | 20 2c 23 27 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 | .,#'select-window))..."The.actio |
| 36200 | 6e 20 75 73 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 | n.used.to.display.gptel.chat.buf |
| 36220 | 66 65 72 73 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 | fers...The.gptel.buffer.is.displ |
| 36240 | 61 79 65 64 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 | ayed.in.a.window.using....(displ |
| 36260 | 61 79 2d 62 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 | ay-buffer.BUFFER.gptel-display-b |
| 36280 | 75 66 66 65 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 | uffer-action)..The.value.of.this |
| 362a0 | 20 6f 70 74 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 | .option.has.the.form.(FUNCTION.. |
| 362c0 | 20 41 4c 49 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 | .ALIST),.where.FUNCTION.is.a.fun |
| 362e0 | 63 74 69 6f 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 | ction.or.a.list.of.functions...E |
| 36300 | 61 63 68 20 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 | ach.such.function.should.accept. |
| 36320 | 74 77 6f 20 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 | two.arguments:.a.buffer.to.displ |
| 36340 | 61 79 20 61 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 | ay.and.an.alist.of.the.same.form |
| 36360 | 20 61 73 20 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 | .as.ALIST...See.info.node.`(elis |
| 36380 | 70 29 43 68 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 | p)Choosing.Window'.for.details." |
| 363a0 | 0a 20 20 3a 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 | ...:type.display-buffer--action- |
| 363c0 | 63 75 73 74 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 | custom-type)..(defcustom.gptel-c |
| 363e0 | 72 6f 77 64 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 | rowdsourced-prompts-file...(let. |
| 36400 | 28 28 63 61 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 | ((cache-dir.(or.(eval-when-compi |
| 36420 | 6c 65 0a 09 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 | le.....(require.'xdg).....(xdg-c |
| 36440 | 61 63 68 65 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 | ache-home))..................... |
| 36460 | 20 20 20 75 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 | ...user-emacs-directory))).....( |
| 36480 | 65 78 70 61 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 | expand-file-name."gptel-crowdsou |
| 364a0 | 72 63 65 64 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 | rced-prompts.csv".cache-dir))... |
| 364c0 | 22 46 69 6c 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 | "File.used.to.store.crowdsourced |
| 364e0 | 20 73 79 73 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 | .system.prompts...These.are.prom |
| 36500 | 70 74 73 20 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 | pts.cached.from.an.online.source |
| 36520 | 20 28 73 65 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 | .(see.`gptel--crowdsourced-promp |
| 36540 | 74 73 2d 75 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 | ts-url'),.and.can.be.set.from.th |
| 36560 | 65 0a 74 72 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 | e.transient.menu.interface.provi |
| 36580 | 64 65 64 20 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 | ded.by.`gptel-menu'."...:type.'f |
| 365a0 | 69 6c 65 29 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 | ile)..;;.Model.and.interaction.p |
| 365c0 | 61 72 61 6d 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 | arameters.(defcustom.gptel-direc |
| 365e0 | 74 69 76 65 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 | tives...'((default......."You.ar |
| 36600 | 65 20 61 20 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 | e.a.large.language.model.living. |
| 36620 | 69 6e 20 45 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 | in.Emacs.and.a.helpful.assistant |
| 36640 | 2e 20 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 70 72 6f 67 | ..Respond.concisely.").....(prog |
| 36660 | 72 61 6d 6d 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 | ramming..."You.are.a.large.langu |
| 36680 | 61 67 65 20 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 | age.model.and.a.careful.programm |
| 366a0 | 65 72 2e 20 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 | er..Provide.code.and.only.code.a |
| 366c0 | 73 20 6f 75 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 | s.output.without.any.additional. |
| 366e0 | 74 65 78 74 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 | text,.prompt.or.note.").....(wri |
| 36700 | 74 69 6e 67 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 | ting......."You.are.a.large.lang |
| 36720 | 75 61 67 65 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 | uage.model.and.a.writing.assista |
| 36740 | 6e 74 2e 20 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 | nt..Respond.concisely.").....(ch |
| 36760 | 61 74 20 20 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 | at.........."You.are.a.large.lan |
| 36780 | 67 75 61 67 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 | guage.model.and.a.conversation.p |
| 367a0 | 61 72 74 6e 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 | artner..Respond.concisely."))... |
| 367c0 | 22 53 79 73 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 | "System.prompts.or.directives.fo |
| 367e0 | 72 20 74 68 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 | r.the.LLM...Each.entry.in.this.a |
| 36800 | 6c 69 73 74 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 | list.maps.a.symbol.naming.the.di |
| 36820 | 72 65 63 74 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 | rective.to.the.directive.itself. |
| 36840 | 20 20 42 79 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 | ..By.default,.gptel.uses.the.dir |
| 36860 | 65 63 74 69 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 | ective.with.the.key.\\+`default' |
| 36880 | 2e 0a 0a 54 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 | ...To.set.the.directive.for.a.ch |
| 368a0 | 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 |
| 368c0 | 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 |
| 368e0 | 74 2c 20 6f 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 | t,.or.call.`gptel-menu'...A.\"di |
| 36900 | 72 65 63 74 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 | rective\".is.typically.the.syste |
| 36920 | 6d 20 6d 65 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 | m.message.(also.called.system.pr |
| 36940 | 6f 6d 70 74 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 | ompt.or.system.instruction).sent |
| 36960 | 20 61 74 20 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 | .at.the.beginning.of.each.reques |
| 36980 | 74 20 74 6f 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 | t.to.the.LLM...It.is.used.to.set |
| 369a0 | 20 67 65 6e 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 | .general.instructions,.expectati |
| 369c0 | 6f 6e 73 20 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 | ons.and.the.overall.tone...gptel |
| 369e0 | 27 73 20 69 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 | 's.idea.of.the.directive.is.more |
| 36a00 | 20 67 65 6e 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 | .general...A.directive.in.`gptel |
| 36a20 | 2d 64 69 72 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 | -directives'.can.be..-.A.string, |
| 36a40 | 20 69 6e 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 | .interpreted.as.the.system.messa |
| 36a60 | 67 65 2e 0a 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 | ge...-.A.list.of.strings,.whose. |
| 36a80 | 66 69 72 73 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 | first.(possibly.nil).element.is. |
| 36aa0 | 20 20 69 6e 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 | ..interpreted.as.the.system.mess |
| 36ac0 | 61 67 65 2c 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 | age,.and.the.remaining.elements. |
| 36ae0 | 20 20 61 73 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 | ..as.(possibly.nil).alternating. |
| 36b00 | 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 6e 73 65 73 2e 0a | user.prompts.and.LLM.responses.. |
| 36b20 | 20 20 54 68 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 | ..This.can.be.used.to.template.t |
| 36b40 | 68 65 20 69 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 | he.initial.part.of.a.conversatio |
| 36b60 | 6e 2e 0a 0a 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 | n...-.A.function.that.returns.a. |
| 36b80 | 73 74 72 69 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 | string.or.a.list.of.strings,...i |
| 36ba0 | 6e 74 65 72 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 | nterpreted.as.the.above...This.c |
| 36bc0 | 61 6e 20 62 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 | an.be.used.to.dynamically...gene |
| 36be0 | 72 61 74 65 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 | rate.a.system.message.and/or.con |
| 36c00 | 76 65 72 73 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 | versation.template.based.on...th |
| 36c20 | 65 20 63 75 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 | e.current.context...See.the.defi |
| 36c40 | 6e 69 74 69 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 | nition.of...`gptel--rewrite-dire |
| 36c60 | 63 74 69 76 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 | ctive-default'.for.an.example.". |
| 36c80 | 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 27 28 61 6c 69 73 74 | ..:safe.#'always...:type.'(alist |
| 36ca0 | 20 3a 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 | .:key-type.symbol.:value-type.st |
| 36cc0 | 72 69 6e 67 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 | ring))..(defcustom.gptel-max-tok |
| 36ce0 | 65 6e 73 20 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 | ens.nil..."Max.tokens.per.respon |
| 36d00 | 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 72 6f 75 67 68 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 20 | se...This.is.roughly.the.number. |
| 36d20 | 6f 66 20 77 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 | of.words.in.the.response...100-3 |
| 36d40 | 30 30 20 69 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 | 00.is.a.reasonable.range.for.sho |
| 36d60 | 72 74 20 61 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 | rt.answers,.400.or.more.for.long |
| 36d80 | 65 72 0a 72 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 | er.responses...To.set.the.target |
| 36da0 | 20 74 6f 6b 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 | .token.count.for.a.chat.session. |
| 36dc0 | 69 6e 74 65 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 | interactively.call.`gptel-send'. |
| 36de0 | 77 69 74 68 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 | with.a.prefix.argument."...:safe |
| 36e00 | 20 23 27 61 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 | .#'always...:type.'(choice.(natn |
| 36e20 | 75 6d 20 3a 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 | um.:tag."Specify.Token.count").. |
| 36e40 | 20 20 20 20 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 | ................(const.:tag."Def |
| 36e60 | 61 75 6c 74 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 | ault".nil)))..(defcustom.gptel-t |
| 36e80 | 65 6d 70 65 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 | emperature.1.0..."\"Temperature\ |
| 36ea0 | 22 20 6f 66 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 | ".of.the.LLM.response...This.is. |
| 36ec0 | 61 20 6e 75 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 | a.number.between.0.0.and.2.0.tha |
| 36ee0 | 74 20 63 6f 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 | t.controls.the.randomness.of.the |
| 36f00 | 20 72 65 73 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 | .response,.with.2.0.being.the.mo |
| 36f20 | 73 74 20 72 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 | st.random...To.set.the.temperatu |
| 36f40 | 72 65 20 66 6f 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 | re.for.a.chat.session.interactiv |
| 36f60 | 65 6c 79 20 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 | ely.call.`gptel-send'.with.a.pre |
| 36f80 | 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 | fix.argument."...:safe.(lambda.( |
| 36fa0 | 76 29 20 28 6f 72 20 28 6e 75 6c 6c 20 76 29 20 28 6e 75 6d 62 65 72 70 20 76 29 29 29 0a 20 20 | v).(or.(null.v).(numberp.v)))... |
| 36fc0 | 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 6e 75 6d 62 65 72 20 3a 74 61 67 20 22 54 65 6d | :type.'(choice.(number.:tag."Tem |
| 36fe0 | 70 65 72 61 74 75 72 65 20 76 61 6c 75 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | perature.value")................ |
| 37000 | 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 64 65 66 61 75 6c 74 22 20 6e 69 6c 29 | ..(const.:tag."Use.default".nil) |
| 37020 | 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 63 61 63 68 65 20 6e 69 6c 0a 20 | ))..(defcustom.gptel-cache.nil.. |
| 37040 | 20 22 57 68 65 74 68 65 72 20 74 68 65 20 4c 4c 4d 20 73 68 6f 75 6c 64 20 63 61 63 68 65 20 72 | ."Whether.the.LLM.should.cache.r |
| 37060 | 65 71 75 65 73 74 20 63 6f 6e 74 65 6e 74 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 20 62 61 63 6b 65 6e | equest.content...Some.LLM.backen |
| 37080 | 64 73 20 63 61 6e 20 63 61 63 68 65 20 63 6f 6e 74 65 6e 74 20 73 65 6e 74 20 74 6f 20 69 74 20 | ds.can.cache.content.sent.to.it. |
| 370a0 | 62 79 20 67 70 74 65 6c 2c 20 73 6f 20 74 68 61 74 0a 6f 6e 6c 79 20 74 68 65 20 6e 65 77 6c 79 | by.gptel,.so.that.only.the.newly |
| 370c0 | 20 69 6e 63 6c 75 64 65 64 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 65 78 74 20 6e 65 65 64 73 | .included.part.of.the.text.needs |
| 370e0 | 20 74 6f 20 62 65 20 70 72 6f 63 65 73 73 65 64 20 6f 6e 0a 73 75 62 73 65 71 75 65 6e 74 20 63 | .to.be.processed.on.subsequent.c |
| 37100 | 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 2e 20 20 54 68 69 73 20 72 65 73 75 6c 74 73 | onversation.turns...This.results |
| 37120 | 20 69 6e 20 66 61 73 74 65 72 20 61 6e 64 0a 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 63 68 65 | .in.faster.and.significantly.che |
| 37140 | 61 70 65 72 20 70 72 6f 63 65 73 73 69 6e 67 2e 0a 0a 4e 4f 54 45 3a 20 4d 61 6e 75 61 6c 20 6f | aper.processing...NOTE:.Manual.o |
| 37160 | 72 20 63 6c 69 65 6e 74 2d 63 6f 6e 66 69 67 75 72 61 62 6c 65 20 63 61 63 68 69 6e 67 20 69 73 | r.client-configurable.caching.is |
| 37180 | 20 63 75 72 72 65 6e 74 6c 79 0a 73 75 70 70 6f 72 74 65 64 20 6f 6e 6c 79 20 62 79 20 74 68 65 | .currently.supported.only.by.the |
| 371a0 | 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 61 6e 64 20 74 68 75 73 20 74 68 65 0a 60 67 70 74 | .Anthropic.API.and.thus.the.`gpt |
| 371c0 | 65 6c 2d 61 6e 74 68 72 6f 70 69 63 27 20 62 61 63 6b 65 6e 64 2e 20 20 54 68 69 73 20 76 61 72 | el-anthropic'.backend...This.var |
| 371e0 | 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 6f 6e 20 74 68 65 0a 62 65 68 61 76 | iable.has.no.effect.on.the.behav |
| 37200 | 69 6f 72 20 6f 66 20 6f 74 68 65 72 20 62 61 63 6b 65 6e 64 73 2e 0a 0a 54 68 69 73 20 76 61 72 | ior.of.other.backends...This.var |
| 37220 | 69 61 62 6c 65 20 63 6f 6e 74 72 6f 6c 73 20 77 68 69 63 68 20 70 61 72 74 73 20 6f 66 20 74 68 | iable.controls.which.parts.of.th |
| 37240 | 65 20 71 75 65 72 79 20 77 69 6c 6c 20 62 65 20 63 61 63 68 65 64 2c 0a 61 6e 64 20 63 61 6e 20 | e.query.will.be.cached,.and.can. |
| 37260 | 62 65 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 74 20 6f 72 20 6e 69 6c 20 74 6f 20 63 61 63 68 65 | be.the.symbols.t.or.nil.to.cache |
| 37280 | 20 65 76 65 72 79 74 68 69 6e 67 20 6f 72 20 6e 6f 74 68 69 6e 67 0a 72 65 73 70 65 63 74 69 76 | .everything.or.nothing.respectiv |
| 372a0 | 65 6c 79 2e 20 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 73 79 | ely..It.can.also.be.a.list.of.sy |
| 372c0 | 6d 62 6f 6c 73 3a 0a 0a 2d 20 6d 65 73 73 61 67 65 3a 20 43 61 63 68 65 20 63 6f 6e 76 65 72 73 | mbols:..-.message:.Cache.convers |
| 372e0 | 61 74 69 6f 6e 20 6d 65 73 73 61 67 65 73 0a 2d 20 73 79 73 74 65 6d 3a 20 43 61 63 68 65 20 74 | ation.messages.-.system:.Cache.t |
| 37300 | 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 2d 20 74 6f 6f 6c 3a 20 43 61 63 68 65 20 | he.system.message.-.tool:.Cache. |
| 37320 | 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 73 0a 0a 45 78 61 6d 70 6c 65 73 3a 0a 0a 53 65 74 | tool.definitions..Examples:..Set |
| 37340 | 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 29 20 77 69 6c 6c | ting.it.to.(message.system).will |
| 37360 | 20 63 61 63 68 65 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 0a 74 68 | .cache.the.system.message.and.th |
| 37380 | 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 65 78 74 2e 0a 0a 53 65 74 74 69 6e 67 20 69 74 | e.conversation.text...Setting.it |
| 373a0 | 20 74 6f 20 28 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 20 74 6f 6f 6c 29 20 77 69 6c 6c 20 63 | .to.(message.system.tool).will.c |
| 373c0 | 61 63 68 65 20 65 76 65 72 79 74 68 69 6e 67 20 61 6e 64 20 69 73 0a 74 68 65 20 73 61 6d 65 20 | ache.everything.and.is.the.same. |
| 373e0 | 61 73 20 74 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 | as.t."...:type.'(choice......... |
| 37400 | 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 43 61 63 68 65 20 65 76 65 72 79 74 68 69 6e 67 22 | ..(const.:tag."Cache.everything" |
| 37420 | 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 6f 20 6e 6f | .t)...........(const.:tag."Do.no |
| 37440 | 74 20 63 61 63 68 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 65 61 74 20 | t.cache".nil)...........(repeat. |
| 37460 | 73 79 6d 62 6f 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 76 | symbol))...:group.'gptel)..(defv |
| 37480 | 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 29 0a 0a 28 64 65 66 63 | ar.gptel--known-backends)..(defc |
| 374a0 | 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 28 67 | onst.gptel--openai-models...'((g |
| 374c0 | 70 74 2d 34 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 76 61 6e 63 65 | pt-4o......:description."Advance |
| 374e0 | 64 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 74 61 73 6b 73 3b 20 63 68 65 61 70 | d.model.for.complex.tasks;.cheap |
| 37500 | 65 72 20 26 20 66 61 73 74 65 72 20 74 68 61 6e 20 47 50 54 2d 54 75 72 62 6f 22 0a 20 20 20 20 | er.&.faster.than.GPT-Turbo"..... |
| 37520 | 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a | .:capabilities.(media.tool-use.j |
| 37540 | 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | son.url)......:mime-types.("imag |
| 37560 | 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 | e/jpeg"."image/png"."image/gif". |
| 37580 | 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 | "image/webp")......:context-wind |
| 375a0 | 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 35 30 0a 20 20 20 | ow.128......:input-cost.2.50.... |
| 375c0 | 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 2d 64 | ..:output-cost.10......:cutoff-d |
| 375e0 | 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 6f 2d 6d 69 6e 69 0a | ate."2023-10").....(gpt-4o-mini. |
| 37600 | 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 68 65 61 70 20 6d 6f 64 65 6c 20 66 | .....:description."Cheap.model.f |
| 37620 | 6f 72 20 66 61 73 74 20 74 61 73 6b 73 3b 20 63 68 65 61 70 65 72 20 26 20 6d 6f 72 65 20 63 61 | or.fast.tasks;.cheaper.&.more.ca |
| 37640 | 70 61 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 33 2e 35 20 54 75 72 62 6f 22 0a 20 20 20 20 20 3a | pable.than.GPT-3.5.Turbo"......: |
| 37660 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f | capabilities.(media.tool-use.jso |
| 37680 | 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f | n.url)......:mime-types.("image/ |
| 376a0 | 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 |
| 376c0 | 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 |
| 376e0 | 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 | .128......:input-cost.0.15...... |
| 37700 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 | :output-cost.0.60......:cutoff-d |
| 37720 | 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 31 0a 20 20 20 20 | ate."2023-10").....(gpt-4.1..... |
| 37740 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 6c 61 67 73 68 69 70 20 6d 6f 64 65 6c 20 66 6f | .:description."Flagship.model.fo |
| 37760 | 72 20 63 6f 6d 70 6c 65 78 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 | r.complex.tasks"......:capabilit |
| 37780 | 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 | ies.(media.tool-use.json.url)... |
| 377a0 | 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d | ...:mime-types.("image/jpeg"."im |
| 377c0 | 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 | age/png"."image/gif"."image/webp |
| 377e0 | 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 32 34 0a 20 20 20 | ")......:context-window.1024.... |
| 37800 | 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 | ..:input-cost.2.0......:output-c |
| 37820 | 6f 73 74 20 38 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d | ost.8.0......:cutoff-date."2024- |
| 37840 | 30 35 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 35 2d 70 72 65 76 69 65 77 0a 20 20 20 20 20 3a | 05").....(gpt-4.5-preview......: |
| 37860 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 67 70 74 | description."DEPRECATED:.Use.gpt |
| 37880 | 2d 34 2e 31 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 | -4.1.instead"......:capabilities |
| 378a0 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 | .(media.tool-use.url)......:mime |
| 378c0 | 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" |
| 378e0 | 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")...... |
| 37900 | 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d | :context-window.128......:input- |
| 37920 | 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 30 0a 20 20 | cost.75......:output-cost.150... |
| 37940 | 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 29 0a 20 20 20 20 28 | ...:cutoff-date."2023-10").....( |
| 37960 | 67 70 74 2d 34 2e 31 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | gpt-4.1-mini......:description." |
| 37980 | 42 61 6c 61 6e 63 65 20 62 65 74 77 65 65 6e 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 2c 20 73 70 | Balance.between.intelligence,.sp |
| 379a0 | 65 65 64 20 61 6e 64 20 63 6f 73 74 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 | eed.and.cost"......:capabilities |
| 379c0 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 | .(media.tool-use.json.url)...... |
| 379e0 | 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 | :mime-types.("image/jpeg"."image |
| 37a00 | 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a | /png"."image/gif"."image/webp"). |
| 37a20 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 32 34 0a 20 20 20 20 20 3a | .....:context-window.1024......: |
| 37a40 | 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 34 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | input-cost.0.4......:output-cost |
| 37a60 | 20 31 2e 36 29 0a 20 20 20 20 28 67 70 74 2d 34 2e 31 2d 6e 61 6e 6f 0a 20 20 20 20 20 3a 64 65 | .1.6).....(gpt-4.1-nano......:de |
| 37a80 | 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 65 73 74 2c 20 6d 6f 73 74 20 63 6f 73 74 2d 65 66 | scription."Fastest,.most.cost-ef |
| 37aa0 | 66 65 63 74 69 76 65 20 47 50 54 2d 34 2e 31 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 3a 63 61 70 | fective.GPT-4.1.model"......:cap |
| 37ac0 | 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 | abilities.(media.tool-use.json.u |
| 37ae0 | 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 | rl)......:mime-types.("image/jpe |
| 37b00 | 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 | g"."image/png"."image/gif"."imag |
| 37b20 | 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 | e/webp")......:context-window.10 |
| 37b40 | 32 34 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 | 24......:input-cost.0.10......:o |
| 37b60 | 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 | utput-cost.0.40......:cutoff-dat |
| 37b80 | 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 70 74 2d 34 2d 74 75 72 62 6f 0a 20 20 | e."2024-05").....(gpt-4-turbo... |
| 37ba0 | 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 50 72 65 76 69 6f 75 73 20 68 69 67 68 2d 69 | ...:description."Previous.high-i |
| 37bc0 | 6e 74 65 6c 6c 69 67 65 6e 63 65 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c | ntelligence.model"......:capabil |
| 37be0 | 69 74 69 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 | ities.(media.tool-use.url)...... |
| 37c00 | 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 | :mime-types.("image/jpeg"."image |
| 37c20 | 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a | /png"."image/gif"."image/webp"). |
| 37c40 | 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 20 20 3a 69 | .....:context-window.128......:i |
| 37c60 | 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 6f 73 74 20 33 | nput-cost.10......:output-cost.3 |
| 37c80 | 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 31 22 29 0a 20 | 0......:cutoff-date."2023-11").. |
| 37ca0 | 20 20 20 28 67 70 74 2d 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 50 54 | ...(gpt-4......:description."GPT |
| 37cc0 | 2d 34 20 73 6e 61 70 73 68 6f 74 20 66 72 6f 6d 20 4a 75 6e 65 20 32 30 32 33 20 77 69 74 68 20 | -4.snapshot.from.June.2023.with. |
| 37ce0 | 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 70 70 6f 72 | improved.function.calling.suppor |
| 37d00 | 74 22 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 | t"......:mime-types.("image/jpeg |
| 37d20 | 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 | "."image/png"."image/gif"."image |
| 37d40 | 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 | /webp")......:capabilities.(medi |
| 37d60 | 61 20 75 72 6c 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 38 2e 31 39 | a.url)......:context-window.8.19 |
| 37d80 | 32 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 30 0a 20 20 20 20 20 3a 6f 75 74 70 | 2......:input-cost.30......:outp |
| 37da0 | 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 22 32 30 | ut-cost.60......:cutoff-date."20 |
| 37dc0 | 32 33 2d 31 31 22 29 0a 20 20 20 20 28 67 70 74 2d 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 | 23-11").....(gpt-5......:descrip |
| 37de0 | 74 69 6f 6e 20 22 46 6c 61 67 73 68 69 70 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 64 69 6e 67 2c | tion."Flagship.model.for.coding, |
| 37e00 | 20 72 65 61 73 6f 6e 69 6e 67 2c 20 61 6e 64 20 61 67 65 6e 74 69 63 20 74 61 73 6b 73 20 61 63 | .reasoning,.and.agentic.tasks.ac |
| 37e20 | 72 6f 73 73 20 64 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 | ross.domains"......:capabilities |
| 37e40 | 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 | .(media.tool-use.json.url)...... |
| 37e60 | 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 | :mime-types.("image/jpeg"."image |
| 37e80 | 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a | /png"."image/gif"."image/webp"). |
| 37ea0 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 34 30 30 0a 20 20 20 20 20 3a 69 | .....:context-window.400......:i |
| 37ec0 | 6e 70 75 74 2d 63 6f 73 74 20 31 2e 32 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | nput-cost.1.25......:output-cost |
| 37ee0 | 20 31 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 39 22 29 | .10......:cutoff-date."2024-09") |
| 37f00 | 0a 20 20 20 20 28 67 70 74 2d 35 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 | .....(gpt-5-mini......:descripti |
| 37f20 | 6f 6e 20 22 46 61 73 74 65 72 2c 20 6d 6f 72 65 20 63 6f 73 74 2d 65 66 66 69 63 69 65 6e 74 20 | on."Faster,.more.cost-efficient. |
| 37f40 | 76 65 72 73 69 6f 6e 20 6f 66 20 47 50 54 2d 35 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | version.of.GPT-5"......:capabili |
| 37f60 | 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 | ties.(media.tool-use.json.url).. |
| 37f80 | 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 | ....:mime-types.("image/jpeg"."i |
| 37fa0 | 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 | mage/png"."image/gif"."image/web |
| 37fc0 | 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 34 30 30 0a 20 20 20 | p")......:context-window.400.... |
| 37fe0 | 20 20 3a 69 6e 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 | ..:input-cost.0.25......:output- |
| 38000 | 63 6f 73 74 20 32 2e 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 | cost.2.0......:cutoff-date."2024 |
| 38020 | 2d 30 39 22 29 0a 20 20 20 20 28 67 70 74 2d 35 2d 6e 61 6e 6f 0a 20 20 20 20 20 3a 64 65 73 63 | -09").....(gpt-5-nano......:desc |
| 38040 | 72 69 70 74 69 6f 6e 20 22 46 61 73 74 65 73 74 2c 20 63 68 65 61 70 65 73 74 20 76 65 72 73 69 | ription."Fastest,.cheapest.versi |
| 38060 | 6f 6e 20 6f 66 20 47 50 54 2d 35 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 | on.of.GPT-5"......:capabilities. |
| 38080 | 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a | (media.tool-use.json.url)......: |
| 380a0 | 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f | mime-types.("image/jpeg"."image/ |
| 380c0 | 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 | png"."image/gif"."image/webp").. |
| 380e0 | 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 34 30 30 0a 20 20 20 20 20 3a 69 6e | ....:context-window.400......:in |
| 38100 | 70 75 74 2d 63 6f 73 74 20 30 2e 30 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 | put-cost.0.05......:output-cost. |
| 38120 | 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 39 22 | 0.40......:cutoff-date."2024-09" |
| 38140 | 29 0a 20 20 20 20 28 6f 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 61 | ).....(o1......:description."Rea |
| 38160 | 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 20 64 65 73 69 67 6e 65 64 20 74 6f 20 73 6f 6c 76 65 20 68 | soning.model.designed.to.solve.h |
| 38180 | 61 72 64 20 70 72 6f 62 6c 65 6d 73 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 20 | ard.problems.across.domains".... |
| 381a0 | 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 72 65 61 73 6f 6e 69 6e 67 | ..:capabilities.(media.reasoning |
| 381c0 | 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 | )......:mime-types.("image/jpeg" |
| 381e0 | 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f | ."image/png"."image/gif"."image/ |
| 38200 | 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a | webp")......:context-window.200. |
| 38220 | 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 | .....:input-cost.15......:output |
| 38240 | 2d 63 6f 73 74 20 36 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 | -cost.60......:cutoff-date."2023 |
| 38260 | 2d 31 30 22 29 0a 20 20 20 20 28 6f 31 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 | -10").....(o1-mini......:descrip |
| 38280 | 74 69 6f 6e 20 22 46 61 73 74 65 72 20 61 6e 64 20 63 68 65 61 70 65 72 20 72 65 61 73 6f 6e 69 | tion."Faster.and.cheaper.reasoni |
| 382a0 | 6e 67 20 6d 6f 64 65 6c 20 67 6f 6f 64 20 61 74 20 63 6f 64 69 6e 67 2c 20 6d 61 74 68 2c 20 61 | ng.model.good.at.coding,.math,.a |
| 382c0 | 6e 64 20 73 63 69 65 6e 63 65 22 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 | nd.science"......:context-window |
| 382e0 | 20 31 32 38 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 | .128......:input-cost.3......:ou |
| 38300 | 74 70 75 74 2d 63 6f 73 74 20 31 32 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.12......:cutoff-date." |
| 38320 | 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 73 | 2023-10"......:capabilities.(nos |
| 38340 | 79 73 74 65 6d 20 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 28 6f 33 0a 20 20 20 20 20 3a | ystem.reasoning)).....(o3......: |
| 38360 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 57 65 6c 6c 2d 72 6f 75 6e 64 65 64 20 61 6e 64 20 70 6f | description."Well-rounded.and.po |
| 38380 | 77 65 72 66 75 6c 20 6d 6f 64 65 6c 20 61 63 72 6f 73 73 20 64 6f 6d 61 69 6e 73 22 0a 20 20 20 | werful.model.across.domains".... |
| 383a0 | 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 | ..:capabilities.(reasoning.media |
| 383c0 | 20 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 75 72 6c 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 | .tool-use.json.url)......:mime-t |
| 383e0 | 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 | ypes.("image/jpeg"."image/png"." |
| 38400 | 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 29 0a 20 20 20 20 20 3a 63 | image/gif"."image/webp")......:c |
| 38420 | 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f | ontext-window.200......:input-co |
| 38440 | 73 74 20 32 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 38 0a 20 20 20 20 20 3a 63 | st.2......:output-cost.8......:c |
| 38460 | 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 6f 33 2d 6d 69 | utoff-date."2024-05").....(o3-mi |
| 38480 | 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 20 69 6e 74 65 6c | ni......:description."High.intel |
| 384a0 | 6c 69 67 65 6e 63 65 20 61 74 20 74 68 65 20 73 61 6d 65 20 63 6f 73 74 20 61 6e 64 20 6c 61 74 | ligence.at.the.same.cost.and.lat |
| 384c0 | 65 6e 63 79 20 74 61 72 67 65 74 73 20 6f 66 20 6f 31 2d 6d 69 6e 69 22 0a 20 20 20 20 20 3a 63 | ency.targets.of.o1-mini"......:c |
| 384e0 | 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f | ontext-window.200......:input-co |
| 38500 | 73 74 20 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a 20 | st.1.10......:output-cost.4.40.. |
| 38520 | 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 31 30 22 0a 20 20 20 20 20 | ....:cutoff-date."2023-10"...... |
| 38540 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 74 6f 6f 6c 2d 75 73 | :capabilities.(reasoning.tool-us |
| 38560 | 65 20 6a 73 6f 6e 29 29 0a 20 20 20 20 28 6f 34 2d 6d 69 6e 69 0a 20 20 20 20 20 3a 64 65 73 63 | e.json)).....(o4-mini......:desc |
| 38580 | 72 69 70 74 69 6f 6e 20 22 46 61 73 74 2c 20 65 66 66 65 63 74 69 76 65 20 72 65 61 73 6f 6e 69 | ription."Fast,.effective.reasoni |
| 385a0 | 6e 67 20 77 69 74 68 20 65 66 66 69 63 69 65 6e 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 20 69 6e | ng.with.efficient.performance.in |
| 385c0 | 20 63 6f 64 69 6e 67 20 61 6e 64 20 76 69 73 75 61 6c 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a | .coding.and.visual.tasks"......: |
| 385e0 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 72 65 61 73 6f 6e 69 6e 67 20 6d 65 64 69 61 20 74 6f | capabilities.(reasoning.media.to |
| 38600 | 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 |
| 38620 | 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 |
| 38640 | 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 |
| 38660 | 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 | ext-window.200......:input-cost. |
| 38680 | 31 2e 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 2e 34 30 0a 20 20 20 20 | 1.10......:output-cost.4.40..... |
| 386a0 | 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 35 22 29 0a 20 20 20 20 28 67 70 | .:cutoff-date."2024-05").....(gp |
| 386c0 | 74 2d 33 2e 35 2d 74 75 72 62 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d | t-3.5-turbo......:description."M |
| 386e0 | 6f 72 65 20 65 78 70 65 6e 73 69 76 65 20 26 20 6c 65 73 73 20 63 61 70 61 62 6c 65 20 74 68 61 | ore.expensive.&.less.capable.tha |
| 38700 | 6e 20 47 50 54 2d 34 6f 2d 6d 69 6e 69 3b 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 22 | n.GPT-4o-mini;.use.that.instead" |
| 38720 | 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 29 0a 20 | ......:capabilities.(tool-use).. |
| 38740 | 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 36 2e 33 35 38 0a 20 20 20 20 20 | ....:context-window.16.358...... |
| 38760 | 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 35 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f | :input-cost.0.50......:output-co |
| 38780 | 73 74 20 31 2e 35 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 31 2d | st.1.50......:cutoff-date."2021- |
| 387a0 | 30 39 22 29 0a 20 20 20 20 28 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 2d 31 36 6b 0a 20 20 20 20 | 09").....(gpt-3.5-turbo-16k..... |
| 387c0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 72 65 20 65 78 70 65 6e 73 69 76 65 20 26 20 | .:description."More.expensive.&. |
| 387e0 | 6c 65 73 73 20 63 61 70 61 62 6c 65 20 74 68 61 6e 20 47 50 54 2d 34 6f 2d 6d 69 6e 69 3b 20 75 | less.capable.than.GPT-4o-mini;.u |
| 38800 | 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 | se.that.instead"......:capabilit |
| 38820 | 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | ies.(tool-use)......:context-win |
| 38840 | 64 6f 77 20 31 36 2e 33 38 35 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 | dow.16.385......:input-cost.3... |
| 38860 | 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 34 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 | ...:output-cost.4......:cutoff-d |
| 38880 | 61 74 65 20 22 32 30 32 31 2d 30 39 22 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c | ate."2021-09"))..."List.of.avail |
| 388a0 | 61 62 6c 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 | able.OpenAI.models.and.associate |
| 388c0 | 64 20 70 72 6f 70 65 72 74 69 65 73 2e 0a 4b 65 79 73 3a 0a 0a 2d 20 60 3a 64 65 73 63 72 69 70 | d.properties..Keys:..-.`:descrip |
| 388e0 | 74 69 6f 6e 27 3a 20 61 20 62 72 69 65 66 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 | tion':.a.brief.description.of.th |
| 38900 | 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 63 61 70 61 62 69 6c 69 74 69 65 73 27 3a 20 61 20 6c | e.model...-.`:capabilities':.a.l |
| 38920 | 69 73 74 20 6f 66 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 73 75 70 70 6f 72 74 65 64 20 62 79 | ist.of.capabilities.supported.by |
| 38940 | 20 74 68 65 20 6d 6f 64 65 6c 2e 0a 0a 2d 20 60 3a 6d 69 6d 65 2d 74 79 70 65 73 27 3a 20 61 20 | .the.model...-.`:mime-types':.a. |
| 38960 | 6c 69 73 74 20 6f 66 20 73 75 70 70 6f 72 74 65 64 20 4d 49 4d 45 20 74 79 70 65 73 20 66 6f 72 | list.of.supported.MIME.types.for |
| 38980 | 20 6d 65 64 69 61 20 66 69 6c 65 73 2e 0a 0a 2d 20 60 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f | .media.files...-.`:context-windo |
| 389a0 | 77 27 3a 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 69 6e 64 6f 77 20 73 69 7a 65 2c 20 69 6e 20 | w':.the.context.window.size,.in. |
| 389c0 | 74 68 6f 75 73 61 6e 64 73 20 6f 66 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 69 6e 70 75 74 2d | thousands.of.tokens...-.`:input- |
| 389e0 | 63 6f 73 74 27 3a 20 74 68 65 20 69 6e 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 55 53 20 64 6f 6c | cost':.the.input.cost,.in.US.dol |
| 38a00 | 6c 61 72 73 20 70 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a 2d 20 60 3a 6f 75 | lars.per.million.tokens...-.`:ou |
| 38a20 | 74 70 75 74 2d 63 6f 73 74 27 3a 20 74 68 65 20 6f 75 74 70 75 74 20 63 6f 73 74 2c 20 69 6e 20 | tput-cost':.the.output.cost,.in. |
| 38a40 | 55 53 20 64 6f 6c 6c 61 72 73 20 70 65 72 20 6d 69 6c 6c 69 6f 6e 20 74 6f 6b 65 6e 73 2e 0a 0a | US.dollars.per.million.tokens... |
| 38a60 | 2d 20 60 3a 63 75 74 6f 66 66 2d 64 61 74 65 27 3a 20 74 68 65 20 6b 6e 6f 77 6c 65 64 67 65 20 | -.`:cutoff-date':.the.knowledge. |
| 38a80 | 63 75 74 6f 66 66 20 64 61 74 65 2e 0a 0a 2d 20 60 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 | cutoff.date...-.`:request-params |
| 38aa0 | 27 3a 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 71 75 65 73 74 | ':.a.plist.of.additional.request |
| 38ac0 | 20 70 61 72 61 6d 65 74 65 72 73 20 74 6f 0a 20 20 69 6e 63 6c 75 64 65 20 77 68 65 6e 20 75 73 | .parameters.to...include.when.us |
| 38ae0 | 69 6e 67 20 74 68 69 73 20 6d 6f 64 65 6c 2e 0a 0a 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f | ing.this.model...Information.abo |
| 38b00 | 75 74 20 74 68 65 20 4f 70 65 6e 41 49 20 6d 6f 64 65 6c 73 20 77 61 73 20 6f 62 74 61 69 6e 65 | ut.the.OpenAI.models.was.obtaine |
| 38b20 | 64 20 66 72 6f 6d 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 73 6f 75 72 63 65 73 3a 0a 0a 2d | d.from.the.following.sources:..- |
| 38b40 | 20 3c 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e 6f 70 65 6e 61 69 2e 63 6f 6d 2f 64 6f | .<https://platform.openai.com/do |
| 38b60 | 63 73 2f 70 72 69 63 69 6e 67 3e 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 70 6c 61 74 66 6f 72 6d 2e | cs/pricing>.-.<https://platform. |
| 38b80 | 6f 70 65 6e 61 69 2e 63 6f 6d 2f 64 6f 63 73 2f 6d 6f 64 65 6c 73 3e 22 29 0a 0a 28 64 65 66 63 | openai.com/docs/models>")..(defc |
| 38ba0 | 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 27 67 70 74 2d 34 6f 2d 6d 69 6e 69 0a 20 | ustom.gptel-model.'gpt-4o-mini.. |
| 38bc0 | 20 28 63 6f 6e 63 61 74 0a 20 20 20 22 4d 6f 64 65 6c 20 66 6f 72 20 63 68 61 74 2e 0a 0a 54 68 | .(concat...."Model.for.chat...Th |
| 38be0 | 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 2c 20 61 73 20 61 20 73 79 6d 62 6f 6c | e.name.of.the.model,.as.a.symbol |
| 38c00 | 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 20 6e 61 6d 65 20 61 73 20 65 78 70 65 63 74 65 64 0a | ...This.is.the.name.as.expected. |
| 38c20 | 62 79 20 74 68 65 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 27 73 20 41 50 49 2e 0a 0a 54 6f 20 73 | by.the.LLM.provider's.API...To.s |
| 38c40 | 65 74 20 74 68 65 20 6d 6f 64 65 6c 20 66 6f 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 | et.the.model.for.a.chat.session. |
| 38c60 | 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 | interactively.call.`gptel-send'. |
| 38c80 | 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 29 0a 20 20 3a 73 61 66 | with.a.prefix.argument.")...:saf |
| 38ca0 | 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 63 68 6f 69 63 65 0a 09 20 20 28 | e.#'always...:type.`(choice....( |
| 38cc0 | 73 79 6d 62 6f 6c 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 6d 6f 64 65 6c 20 6e 61 6d 65 22 | symbol.:tag."Specify.model.name" |
| 38ce0 | 29 0a 09 20 20 2c 40 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 6d 6f 64 65 6c 29 0a 09 | )....,@(mapcar.(lambda.(model).. |
| 38d00 | 09 20 20 20 20 20 20 28 6c 69 73 74 20 27 63 6f 6e 73 74 20 3a 74 61 67 20 28 73 79 6d 62 6f 6c | .......(list.'const.:tag.(symbol |
| 38d20 | 2d 6e 61 6d 65 20 28 63 61 72 20 6d 6f 64 65 6c 29 29 0a 09 09 09 20 20 20 20 28 63 61 72 20 6d | -name.(car.model))........(car.m |
| 38d40 | 6f 64 65 6c 29 29 29 0a 09 09 20 20 20 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 6d 6f 64 65 | odel))).......gptel--openai-mode |
| 38d60 | 6c 73 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 28 | ls)))..(defvar.gptel--openai...( |
| 38d80 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 20 20 20 22 43 68 61 74 47 50 54 | gptel-make-openai......."ChatGPT |
| 38da0 | 22 0a 20 20 20 20 3a 6b 65 79 20 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 3a 73 | ".....:key.'gptel-api-key.....:s |
| 38dc0 | 74 72 65 61 6d 20 74 0a 20 20 20 20 3a 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 | tream.t.....:models.gptel--opena |
| 38de0 | 69 2d 6d 6f 64 65 6c 73 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 62 61 63 | i-models))..(defcustom.gptel-bac |
| 38e00 | 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 22 4c 4c 4d 20 62 61 63 6b 65 6e | kend.gptel--openai..."LLM.backen |
| 38e20 | 64 20 74 6f 20 75 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 20 5c | d.to.use...This.is.the.default.\ |
| 38e40 | 22 62 61 63 6b 65 6e 64 5c 22 2c 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 0a 60 67 | "backend\",.an.object.of.type.`g |
| 38e60 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 63 6f 6e 74 61 69 6e 69 6e 67 20 63 6f 6e 6e 65 63 74 | ptel-backend'.containing.connect |
| 38e80 | 69 6f 6e 2c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 65 6c 0a 69 6e | ion,.authentication.and.model.in |
| 38ea0 | 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 41 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 43 68 61 74 47 50 | formation...A.backend.for.ChatGP |
| 38ec0 | 54 20 69 73 20 70 72 65 2d 64 65 66 69 6e 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 42 61 63 6b | T.is.pre-defined.by.gptel...Back |
| 38ee0 | 65 6e 64 73 20 66 6f 72 0a 6f 74 68 65 72 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 73 20 28 6c 6f | ends.for.other.LLM.providers.(lo |
| 38f00 | 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 6d 61 79 20 62 65 20 63 6f 6e 73 74 72 75 63 74 65 | cal.or.remote).may.be.constructe |
| 38f20 | 64 20 75 73 69 6e 67 0a 6f 6e 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 62 61 63 | d.using.one.of.the.available.bac |
| 38f40 | 6b 65 6e 64 20 63 72 65 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 2d 20 60 67 70 74 65 | kend.creation.functions:.-.`gpte |
| 38f60 | 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 | l-make-openai'.-.`gptel-make-azu |
| 38f80 | 72 65 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 0a 2d 20 60 67 70 74 | re'.-.`gptel-make-ollama'.-.`gpt |
| 38fa0 | 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 | el-make-gpt4all'.-.`gptel-make-g |
| 38fc0 | 65 6d 69 6e 69 27 0a 53 65 65 20 74 68 65 69 72 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 | emini'.See.their.documentation.f |
| 38fe0 | 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 70 61 63 6b | or.more.information.and.the.pack |
| 39000 | 61 67 65 0a 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 22 0a 20 20 3a 73 61 66 | age.README.for.examples."...:saf |
| 39020 | 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 60 28 63 68 6f 69 63 65 0a 20 20 20 20 | e.#'always...:type.`(choice..... |
| 39040 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 43 68 61 74 47 50 54 22 20 2c 67 70 74 | ......(const.:tag."ChatGPT".,gpt |
| 39060 | 65 6c 2d 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 72 69 63 74 65 | el--openai)...........(restricte |
| 39080 | 64 2d 73 65 78 70 20 3a 6d 61 74 63 68 2d 61 6c 74 65 72 6e 61 74 69 76 65 73 20 28 67 70 74 65 | d-sexp.:match-alternatives.(gpte |
| 390a0 | 6c 2d 62 61 63 6b 65 6e 64 2d 70 20 27 6e 69 6c 29 0a 09 09 09 20 20 20 3a 74 61 67 20 22 4f 74 | l-backend-p.'nil).......:tag."Ot |
| 390c0 | 68 65 72 20 62 61 63 6b 65 6e 64 22 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 65 | her.backend")))..(defvar.gptel-e |
| 390e0 | 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 65 78 | xpert-commands.nil..."Whether.ex |
| 39100 | 70 65 72 69 6d 65 6e 74 61 6c 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 | perimental.gptel.options.should. |
| 39120 | 62 65 20 65 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 6f 70 65 6e 73 20 75 70 20 61 64 76 61 6e | be.enabled...This.opens.up.advan |
| 39140 | 63 65 64 20 6f 70 74 69 6f 6e 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 29 0a 0a | ced.options.in.`gptel-menu'.").. |
| 39160 | 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 6e 69 6c 29 | (defvar-local.gptel--bounds.nil) |
| 39180 | 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 27 73 61 66 65 2d 6c 6f 63 61 6c | .(put.'gptel--bounds.'safe-local |
| 391a0 | 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 | -variable.#'always)..(defvar.gpt |
| 391c0 | 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 6e 69 6c 29 0a 28 70 | el--num-messages-to-send.nil).(p |
| 391e0 | 75 74 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 | ut.'gptel--num-messages-to-send. |
| 39200 | 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).. |
| 39220 | 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 6e 69 6c 0a 20 | (defcustom.gptel-log-level.nil.. |
| 39240 | 20 22 4c 6f 67 67 69 6e 67 20 6c 65 76 65 6c 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 68 69 73 | ."Logging.level.for.gptel...This |
| 39260 | 20 69 73 20 6f 6e 65 20 6f 66 20 6e 69 6c 20 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 69 6e | .is.one.of.nil.or.the.symbols.in |
| 39280 | 66 6f 20 61 6e 64 20 64 65 62 75 67 3a 0a 0a 6e 69 6c 3a 20 44 6f 6e 27 74 20 6c 6f 67 20 72 65 | fo.and.debug:..nil:.Don't.log.re |
| 392a0 | 73 70 6f 6e 73 65 73 0a 69 6e 66 6f 3a 20 4c 6f 67 20 72 65 71 75 65 73 74 20 61 6e 64 20 72 65 | sponses.info:.Log.request.and.re |
| 392c0 | 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 0a 64 65 62 75 67 3a 20 4c 6f 67 20 72 65 71 75 65 73 74 | sponse.bodies.debug:.Log.request |
| 392e0 | 2f 72 65 73 70 6f 6e 73 65 20 62 6f 64 69 65 73 2c 20 68 65 61 64 65 72 73 20 61 6e 64 20 61 6c | /response.bodies,.headers.and.al |
| 39300 | 6c 20 6f 74 68 65 72 0a 20 20 20 20 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 65 74 74 69 6e | l.other........connection.settin |
| 39320 | 67 73 2e 0a 0a 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 | gs...When.non-nil,.information.i |
| 39340 | 73 20 6c 6f 67 67 65 64 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e | s.logged.to.`gptel--log-buffer-n |
| 39360 | 61 6d 65 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 | ame',.which.see."...:type.'(choi |
| 39380 | 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4e 6f 20 6c 6f 67 | ce...........(const.:tag."No.log |
| 393a0 | 67 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 | ging".nil)...........(const.:tag |
| 393c0 | 20 22 4c 69 6d 69 74 65 64 22 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 | ."Limited".info)...........(cons |
| 393e0 | 74 20 3a 74 61 67 20 22 46 75 6c 6c 22 20 64 65 62 75 67 29 29 29 0a 0a 28 64 65 66 63 75 73 74 | t.:tag."Full".debug)))..(defcust |
| 39400 | 6f 6d 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 20 74 0a 20 20 22 44 69 73 | om.gptel-track-response.t..."Dis |
| 39420 | 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 75 73 65 72 20 6d 65 73 73 61 67 65 73 20 61 | tinguish.between.user.messages.a |
| 39440 | 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 57 68 65 6e 20 63 72 65 61 74 69 6e 67 | nd.LLM.responses...When.creating |
| 39460 | 20 61 20 70 72 6f 6d 70 74 20 74 6f 20 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 67 70 | .a.prompt.to.send.to.the.LLM,.gp |
| 39480 | 74 65 6c 20 64 69 73 74 69 6e 67 75 69 73 68 65 73 0a 62 65 74 77 65 65 6e 20 74 65 78 74 20 65 | tel.distinguishes.between.text.e |
| 394a0 | 6e 74 65 72 65 64 20 62 79 20 74 68 65 20 75 73 65 72 20 61 6e 64 20 70 61 73 74 20 4c 4c 4d 20 | ntered.by.the.user.and.past.LLM. |
| 394c0 | 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 68 69 73 0a 64 69 73 74 69 6e 63 74 69 6f 6e 20 69 73 20 | responses...This.distinction.is. |
| 394e0 | 6e 65 63 65 73 73 61 72 79 20 66 6f 72 20 62 61 63 6b 2d 61 6e 64 2d 66 6f 72 74 68 20 63 6f 6e | necessary.for.back-and-forth.con |
| 39500 | 76 65 72 73 61 74 69 6f 6e 20 77 69 74 68 20 61 6e 0a 4c 4c 4d 2e 0a 0a 49 6e 20 72 65 67 75 6c | versation.with.an.LLM...In.regul |
| 39520 | 61 72 20 45 6d 61 63 73 20 62 75 66 66 65 72 73 20 79 6f 75 20 63 61 6e 20 74 75 72 6e 20 74 68 | ar.Emacs.buffers.you.can.turn.th |
| 39540 | 69 73 20 62 65 68 61 76 69 6f 72 20 6f 66 66 20 62 79 0a 73 65 74 74 69 6e 67 20 60 67 70 74 65 | is.behavior.off.by.setting.`gpte |
| 39560 | 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 27 20 74 6f 20 6e 69 6c 2e 20 20 41 6c 6c 20 74 | l-track-response'.to.nil...All.t |
| 39580 | 65 78 74 2c 20 69 6e 63 6c 75 64 69 6e 67 0a 70 61 73 74 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 | ext,.including.past.LLM.response |
| 395a0 | 73 2c 20 69 73 20 74 68 65 6e 20 74 72 65 61 74 65 64 20 61 73 20 75 73 65 72 20 69 6e 70 75 74 | s,.is.then.treated.as.user.input |
| 395c0 | 20 77 68 65 6e 20 73 65 6e 64 69 6e 67 0a 71 75 65 72 69 65 73 2e 0a 0a 54 68 69 73 20 76 61 72 | .when.sending.queries...This.var |
| 395e0 | 69 61 62 6c 65 20 68 61 73 20 6e 6f 20 65 66 66 65 63 74 20 69 6e 20 64 65 64 69 63 61 74 65 64 | iable.has.no.effect.in.dedicated |
| 39600 | 20 63 68 61 74 20 62 75 66 66 65 72 73 20 28 62 75 66 66 65 72 73 0a 77 69 74 68 20 60 67 70 74 | .chat.buffers.(buffers.with.`gpt |
| 39620 | 65 6c 2d 6d 6f 64 65 27 20 65 6e 61 62 6c 65 64 29 2c 20 77 68 65 72 65 20 75 73 65 72 20 70 72 | el-mode'.enabled),.where.user.pr |
| 39640 | 6f 6d 70 74 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 61 72 65 0a 61 6c 77 61 79 73 20 68 | ompts.and.responses.are.always.h |
| 39660 | 61 6e 64 6c 65 64 20 73 65 70 61 72 61 74 65 6c 79 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f | andled.separately."...:type.'boo |
| 39680 | 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 | lean)..(defcustom.gptel-track-me |
| 396a0 | 64 69 61 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 73 75 70 70 6f 72 74 65 64 20 6d 65 64 | dia.nil..."Whether.supported.med |
| 396c0 | 69 61 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 73 68 6f 75 6c 64 20 62 65 20 73 65 6e | ia.in.chat.buffers.should.be.sen |
| 396e0 | 74 2e 0a 0a 57 68 65 6e 20 74 68 65 20 61 63 74 69 76 65 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c | t...When.the.active.`gptel-model |
| 39700 | 27 20 73 75 70 70 6f 72 74 73 20 69 74 2c 20 67 70 74 65 6c 20 63 61 6e 20 73 65 6e 64 20 74 65 | '.supports.it,.gptel.can.send.te |
| 39720 | 78 74 2c 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 | xt,.images.or.other.media.from.l |
| 39740 | 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 20 4c 4c 4d 2e | inks.in.chat.buffers.to.the.LLM. |
| 39760 | 20 20 54 6f 20 75 73 65 20 74 68 69 73 2c 20 74 68 65 0a 66 6f 6c 6c 6f 77 69 6e 67 20 73 74 65 | ..To.use.this,.the.following.ste |
| 39780 | 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 2d 74 72 61 63 | ps.are.required...1..`gptel-trac |
| 397a0 | 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 6f 75 6c 64 20 | k-media'.(this.variable).should. |
| 397c0 | 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 6c 64 20 70 72 | be.non-nil..2..The.LLM.should.pr |
| 397e0 | 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 70 70 6f 72 74 | ovide.vision.or.document.support |
| 39800 | 2e 20 20 28 53 65 65 0a 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2c 20 60 67 70 | ...(See.`gptel-make-openai',.`gp |
| 39820 | 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 27 2c 20 60 67 70 74 65 6c 2d 6d 61 6b 65 | tel-make-anthropic',.`gptel-make |
| 39840 | 2d 6f 6c 6c 61 6d 61 27 20 6f 72 0a 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 27 20 | -ollama'.or.`gptel-make-gemini'. |
| 39860 | 66 6f 72 20 64 65 74 61 69 6c 73 20 6f 6e 20 68 6f 77 20 74 6f 20 73 70 65 63 69 66 79 20 6d 65 | for.details.on.how.to.specify.me |
| 39880 | 64 69 61 20 73 75 70 70 6f 72 74 20 66 6f 72 0a 6d 6f 64 65 6c 73 2e 29 0a 0a 33 2e 20 4f 6e 6c | dia.support.for.models.)..3..Onl |
| 398a0 | 79 20 5c 22 73 74 61 6e 64 61 6c 6f 6e 65 5c 22 20 6c 69 6e 6b 73 20 69 6e 20 63 68 61 74 20 62 | y.\"standalone\".links.in.chat.b |
| 398c0 | 75 66 66 65 72 73 20 61 72 65 20 63 6f 6e 73 69 64 65 72 65 64 2e 0a 54 68 65 73 65 20 61 72 65 | uffers.are.considered..These.are |
| 398e0 | 20 6c 69 6e 6b 73 20 6f 6e 20 74 68 65 69 72 20 6f 77 6e 20 6c 69 6e 65 20 77 69 74 68 20 6e 6f | .links.on.their.own.line.with.no |
| 39900 | 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 74 65 78 74 2e 0a 46 75 72 74 68 65 72 3a 0a 0a 2d 20 49 | .surrounding.text..Further:..-.I |
| 39920 | 6e 20 4f 72 67 20 6d 6f 64 65 2c 20 6f 6e 6c 79 20 66 69 6c 65 73 20 6f 72 20 55 52 4c 73 20 6f | n.Org.mode,.only.files.or.URLs.o |
| 39940 | 66 20 74 68 65 20 66 6f 72 6d 0a 20 20 5b 5b 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 5d 5b 62 | f.the.form...[[/path/to/media][b |
| 39960 | 72 61 63 6b 65 74 20 6c 69 6e 6b 73 5d 5d 20 61 6e 64 20 3c 61 6e 67 6c 65 2f 6c 69 6e 6b 2f 70 | racket.links]].and.<angle/link/p |
| 39980 | 61 74 68 3e 0a 20 20 61 72 65 20 73 65 6e 74 2e 0a 0a 2d 20 49 6e 20 4d 61 72 6b 64 6f 77 6e 20 | ath>...are.sent...-.In.Markdown. |
| 399a0 | 6d 6f 64 65 2c 20 6f 6e 6c 79 20 66 69 6c 65 73 20 6f 72 20 55 52 4c 53 20 6f 66 20 74 68 65 20 | mode,.only.files.or.URLS.of.the. |
| 399c0 | 66 6f 72 6d 0a 20 20 5b 62 72 61 63 6b 65 74 20 6c 69 6e 6b 5d 28 2f 70 61 74 68 2f 74 6f 2f 6d | form...[bracket.link](/path/to/m |
| 399e0 | 65 64 69 61 29 20 61 6e 64 20 3c 61 6e 67 6c 65 2f 6c 69 6e 6b 2f 70 61 74 68 3e 0a 20 20 61 72 | edia).and.<angle/link/path>...ar |
| 39a00 | 65 20 73 65 6e 74 2e 0a 0a 54 68 69 73 20 6f 70 74 69 6f 6e 20 68 61 73 20 6e 6f 20 65 66 66 65 | e.sent...This.option.has.no.effe |
| 39a20 | 63 74 20 69 6e 20 6e 6f 6e 2d 63 68 61 74 20 62 75 66 66 65 72 73 2e 20 20 54 6f 20 69 6e 63 6c | ct.in.non-chat.buffers...To.incl |
| 39a40 | 75 64 65 0a 6d 65 64 69 61 20 28 69 6e 63 6c 75 64 69 6e 67 20 69 6d 61 67 65 73 29 20 6d 6f 72 | ude.media.(including.images).mor |
| 39a60 | 65 20 67 65 6e 65 72 61 6c 6c 79 2c 20 75 73 65 20 60 67 70 74 65 6c 2d 61 64 64 27 2e 22 0a 20 | e.generally,.use.`gptel-add'.".. |
| 39a80 | 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 |
| 39aa0 | 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 73 79 73 74 65 6d 0a 20 20 22 57 68 65 72 65 20 | el-use-context.'system..."Where. |
| 39ac0 | 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 69 6e 6a 65 63 74 20 67 70 74 65 6c 27 73 | in.the.request.to.inject.gptel's |
| 39ae0 | 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 67 70 74 65 6c 20 61 6c 77 61 | .additional.context...gptel.alwa |
| 39b00 | 79 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 | ys.includes.the.active.region.or |
| 39b20 | 20 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 74 68 65 0a 63 75 72 73 6f 72 20 69 6e 20 | .the.buffer.up.to.the.cursor.in. |
| 39b40 | 74 68 65 20 72 65 71 75 65 73 74 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 20 41 64 64 69 74 69 6f | the.request.to.the.LLM...Additio |
| 39b60 | 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 0a 6f 74 68 65 72 20 62 75 66 66 65 72 73 | nally,.you.can.add.other.buffers |
| 39b80 | 20 6f 72 20 74 68 65 69 72 20 72 65 67 69 6f 6e 73 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 | .or.their.regions.to.the.context |
| 39ba0 | 20 77 69 74 68 0a 60 67 70 74 65 6c 2d 61 64 64 2d 63 6f 6e 74 65 78 74 27 2c 20 6f 72 20 66 72 | .with.`gptel-add-context',.or.fr |
| 39bc0 | 6f 6d 20 67 70 74 65 6c 27 73 20 6d 65 6e 75 2e 20 20 54 68 69 73 20 64 61 74 61 20 77 69 6c 6c | om.gptel's.menu...This.data.will |
| 39be0 | 20 62 65 0a 73 65 6e 74 20 77 69 74 68 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 0a 0a 54 68 | .be.sent.with.every.request...Th |
| 39c00 | 69 73 20 6f 70 74 69 6f 6e 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 20 61 6e 64 20 77 | is.option.controls.whether.and.w |
| 39c20 | 68 65 72 65 20 74 68 69 73 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 20 69 73 0a | here.this.additional.context.is. |
| 39c40 | 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a 43 75 72 72 65 6e | included.in.the.request...Curren |
| 39c60 | 74 6c 79 20 73 75 70 70 6f 72 74 65 64 20 6f 70 74 69 6f 6e 73 20 61 72 65 3a 0a 0a 20 20 20 20 | tly.supported.options.are:...... |
| 39c80 | 6e 69 6c 20 20 20 20 20 2d 20 44 6f 20 6e 6f 74 20 75 73 65 20 74 68 65 20 63 6f 6e 74 65 78 74 | nil.....-.Do.not.use.the.context |
| 39ca0 | 2e 0a 20 20 20 20 73 79 73 74 65 6d 20 20 2d 20 49 6e 63 6c 75 64 65 20 74 68 65 20 63 6f 6e 74 | ......system..-.Include.the.cont |
| 39cc0 | 65 78 74 20 77 69 74 68 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 20 20 20 | ext.with.the.system.message..... |
| 39ce0 | 20 75 73 65 72 20 20 20 20 2d 20 49 6e 63 6c 75 64 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 77 | .user....-.Include.the.context.w |
| 39d00 | 69 74 68 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d 70 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 | ith.the.user.prompt."...:group.' |
| 39d20 | 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.......... |
| 39d40 | 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 69 6e 63 6c 75 64 65 20 63 6f 6e 74 | .(const.:tag."Don't.include.cont |
| 39d60 | 65 78 74 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | ext".nil)...........(const.:tag. |
| 39d80 | 22 57 69 74 68 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 73 79 73 74 65 6d 29 0a 20 20 | "With.system.message".system)... |
| 39da0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 57 69 74 68 20 75 73 65 72 20 70 | ........(const.:tag."With.user.p |
| 39dc0 | 72 6f 6d 70 74 22 20 75 73 65 72 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c | rompt".user)))..(defcustom.gptel |
| 39de0 | 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 74 0a 20 20 22 48 6f 77 20 74 6f 20 68 | -include-reasoning.t..."How.to.h |
| 39e00 | 61 6e 64 6c 65 20 4c 4c 4d 20 72 65 61 73 6f 6e 69 6e 67 20 6f 72 20 5c 22 74 68 69 6e 6b 69 6e | andle.LLM.reasoning.or.\"thinkin |
| 39e20 | 67 5c 22 20 74 65 78 74 20 62 6c 6f 63 6b 73 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 73 20 69 6e 63 6c | g\".text.blocks...Some.LLMs.incl |
| 39e40 | 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 69 | ude.in.their.response.a.\"thinki |
| 39e60 | 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 65 | ng\".section...This.text.improve |
| 39e80 | 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 6c | s.the.quality.of.the.LLM's.final |
| 39ea0 | 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 74 | .output,.but.may.not.be.interest |
| 39ec0 | 69 6e 67 20 74 6f 20 79 6f 75 20 62 79 20 69 74 73 65 6c 66 2e 0a 0a 53 75 70 70 6f 72 74 65 64 | ing.to.you.by.itself...Supported |
| 39ee0 | 20 6f 70 74 69 6f 6e 73 20 61 72 65 20 74 68 65 20 73 79 6d 62 6f 6c 73 0a 0a 20 20 20 20 74 20 | .options.are.the.symbols......t. |
| 39f00 | 20 20 20 20 20 20 2d 20 49 6e 63 6c 75 64 65 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 | ......-.Include.with.the.respons |
| 39f20 | 65 2c 20 74 68 65 20 64 65 66 61 75 6c 74 0a 20 20 20 20 6e 69 6c 20 20 20 20 20 2d 20 44 6f 20 | e,.the.default.....nil.....-.Do. |
| 39f40 | 6e 6f 74 20 69 6e 63 6c 75 64 65 0a 20 20 20 20 69 67 6e 6f 72 65 20 20 2d 20 49 6e 63 6c 75 64 | not.include.....ignore..-.Includ |
| 39f60 | 65 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 62 75 74 20 69 67 6e 6f 72 65 20 6f | e.with.the.response.but.ignore.o |
| 39f80 | 6e 20 73 75 62 73 65 71 75 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 76 65 | n.subsequent...............conve |
| 39fa0 | 72 73 61 74 69 6f 6e 20 74 75 72 6e 73 0a 0a 49 74 20 63 61 6e 20 61 6c 73 6f 20 62 65 20 61 20 | rsation.turns..It.can.also.be.a. |
| 39fc0 | 73 74 72 69 6e 67 20 6e 61 6d 69 6e 67 20 61 20 62 75 66 66 65 72 2c 20 69 6e 20 77 68 69 63 68 | string.naming.a.buffer,.in.which |
| 39fe0 | 20 63 61 73 65 20 74 68 65 0a 72 65 61 73 6f 6e 69 6e 67 20 74 65 78 74 20 77 69 6c 6c 20 62 65 | .case.the.reasoning.text.will.be |
| 3a000 | 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 61 74 20 62 75 66 | .inserted.at.the.end.of.that.buf |
| 3a020 | 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 | fer."...:group.'gptel...:type.'( |
| 3a040 | 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 49 6e | choice...........(const.:tag."In |
| 3a060 | 63 6c 75 64 65 20 77 69 74 68 20 72 65 73 70 6f 6e 73 65 22 20 74 29 0a 20 20 20 20 20 20 20 20 | clude.with.response".t)......... |
| 3a080 | 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 6e 27 74 20 69 6e 63 6c 75 64 65 22 20 6e 69 | ..(const.:tag."Don't.include".ni |
| 3a0a0 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 | l)...........(const.:tag."Includ |
| 3a0c0 | 65 20 62 75 74 20 69 67 6e 6f 72 65 22 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 | e.but.ignore".ignore)........... |
| 3a0e0 | 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 49 6e 63 6c 75 64 65 20 69 6e 20 62 75 66 66 65 72 22 | (string.:tag."Include.in.buffer" |
| 3a100 | 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 6f 6c 64 2d 68 65 | )))..(defvar-local.gptel--old-he |
| 3a120 | 61 64 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 63 6f | ader-line.nil)..(defvar.gptel-co |
| 3a140 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 67 70 74 65 | ntext--alist.nil..."List.of.gpte |
| 3a160 | 6c 27 73 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 | l's.context.sources...Each.entry |
| 3a180 | 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 62 75 66 66 65 72 20 2e 20 28 6f 76 65 72 | .is.of.the.form..(buffer...(over |
| 3a1a0 | 6c 61 79 31 20 6f 76 65 72 6c 61 79 32 20 2e 2e 2e 29 29 0a 6f 72 0a 20 28 5c 22 70 61 74 68 2f | lay1.overlay2....)).or..(\"path/ |
| 3a1c0 | 74 6f 2f 66 69 6c 65 5c 22 29 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 | to/file\").")..(defvar.gptel--re |
| 3a1e0 | 71 75 65 73 74 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 61 63 74 69 | quest-alist.nil..."Alist.of.acti |
| 3a200 | 76 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 73 2e 0a 45 61 63 68 20 65 6e 74 72 79 20 68 61 | ve.gptel.requests..Each.entry.ha |
| 3a220 | 73 20 74 68 65 20 66 6f 72 6d 20 28 50 52 4f 43 45 53 53 20 2e 20 28 46 53 4d 20 41 42 4f 52 54 | s.the.form.(PROCESS...(FSM.ABORT |
| 3a240 | 2d 43 4c 4f 53 55 52 45 29 29 0a 49 66 20 74 68 65 20 41 42 4f 52 54 2d 43 4c 4f 53 55 52 45 20 | -CLOSURE)).If.the.ABORT-CLOSURE. |
| 3a260 | 69 73 20 63 61 6c 6c 65 64 2c 20 69 74 20 6d 75 73 74 20 61 62 6f 72 74 20 74 68 65 20 50 52 4f | is.called,.it.must.abort.the.PRO |
| 3a280 | 43 45 53 53 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d | CESS.")..(defvar.gptel--request- |
| 3a2a0 | 70 61 72 61 6d 73 20 6e 69 6c 0a 20 20 22 45 78 74 72 61 20 70 61 72 61 6d 65 74 65 72 73 20 73 | params.nil..."Extra.parameters.s |
| 3a2c0 | 65 6e 74 20 77 69 74 68 20 65 61 63 68 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 0a 0a 54 68 | ent.with.each.gptel.request...Th |
| 3a2e0 | 65 73 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 20 77 69 74 68 | ese.parameters.are.combined.with |
| 3a300 | 20 6d 6f 64 65 6c 2d 73 70 65 63 69 66 69 63 20 61 6e 64 20 62 61 63 6b 65 6e 64 2d 73 70 65 63 | .model-specific.and.backend-spec |
| 3a320 | 69 66 69 63 0a 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 62 65 66 6f 72 65 20 73 65 6e 64 | ific.:request-params.before.send |
| 3a340 | 69 6e 67 20 61 20 72 65 71 75 65 73 74 2c 20 77 68 69 63 68 20 73 65 65 2e 20 20 57 61 72 6e 69 | ing.a.request,.which.see...Warni |
| 3a360 | 6e 67 3a 20 76 61 6c 75 65 73 0a 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 74 68 65 | ng:.values.incompatible.with.the |
| 3a380 | 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 63 61 6e 20 62 72 65 61 6b 20 67 70 74 65 6c 2e | .active.backend.can.break.gptel. |
| 3a3a0 | 20 20 44 6f 20 6e 6f 74 20 75 73 65 20 74 68 69 73 0a 76 61 72 69 61 62 6c 65 20 75 6e 6c 65 73 | ..Do.not.use.this.variable.unles |
| 3a3c0 | 73 20 79 6f 75 20 6b 6e 6f 77 20 77 68 61 74 20 79 6f 75 27 72 65 20 64 6f 69 6e 67 21 22 29 0a | s.you.know.what.you're.doing!"). |
| 3a3e0 | 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 65 72 73 61 74 7a 2d 6a 73 6f 6e 2d 74 6f | .(defconst.gptel--ersatz-json-to |
| 3a400 | 6f 6c 20 22 72 65 73 70 6f 6e 73 65 5f 6a 73 6f 6e 22 0a 20 20 22 4e 61 6d 65 20 6f 66 20 65 72 | ol."response_json"..."Name.of.er |
| 3a420 | 73 61 74 7a 20 74 6f 6f 6c 20 75 73 65 64 20 74 6f 20 66 6f 72 63 65 20 4a 53 4f 4e 20 6f 75 74 | satz.tool.used.to.force.JSON.out |
| 3a440 | 70 75 74 2e 0a 0a 53 6f 6d 65 20 41 50 49 73 2c 20 6c 69 6b 65 20 41 6e 74 68 72 6f 70 69 63 2c | put...Some.APIs,.like.Anthropic, |
| 3a460 | 20 75 73 65 20 61 20 74 6f 6f 6c 20 74 6f 20 70 72 6f 64 75 63 65 20 73 74 72 75 63 74 75 72 65 | .use.a.tool.to.produce.structure |
| 3a480 | 64 20 4a 53 4f 4e 20 6f 75 74 70 75 74 2e 22 29 0a 0a 0c 0a 3b 3b 3b 20 55 74 69 6c 69 74 79 20 | d.JSON.output.")....;;;.Utility. |
| 3a4a0 | 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d | functions..(defun.gptel-api-key- |
| 3a4c0 | 66 72 6f 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 6f 73 74 | from-auth-source.(&optional.host |
| 3a4e0 | 20 75 73 65 72 29 0a 20 20 22 4c 6f 6f 6b 75 70 20 61 70 69 20 6b 65 79 20 69 6e 20 74 68 65 20 | .user)..."Lookup.api.key.in.the. |
| 3a500 | 61 75 74 68 20 73 6f 75 72 63 65 2e 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 4c 4c 4d | auth.source..By.default,.the.LLM |
| 3a520 | 20 68 6f 73 74 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 69 73 20 | .host.for.the.active.backend.is. |
| 3a540 | 75 73 65 64 20 61 73 20 48 4f 53 54 2c 0a 61 6e 64 20 5c 22 61 70 69 6b 65 79 5c 22 20 61 73 20 | used.as.HOST,.and.\"apikey\".as. |
| 3a560 | 55 53 45 52 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 73 65 63 72 65 74 0a 20 20 20 20 20 | USER."...(if-let*.((secret...... |
| 3a580 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(plist-get.............. |
| 3a5a0 | 20 28 63 61 72 20 28 61 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 | .(car.(auth-source-search....... |
| 3a5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 28 6f 72 20 68 6f 73 74 20 28 67 70 | ..............:host.(or.host.(gp |
| 3a5e0 | 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 68 6f 73 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 | tel-backend-host.gptel-backend)) |
| 3a600 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 6f 72 20 75 | .....................:user.(or.u |
| 3a620 | 73 65 72 20 22 61 70 69 6b 65 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ser."apikey")................... |
| 3a640 | 20 20 3a 72 65 71 75 69 72 65 20 27 28 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ..:require.'(:secret)))......... |
| 3a660 | 20 20 20 20 20 20 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 | ......:secret))).......(if.(func |
| 3a680 | 74 69 6f 6e 70 20 73 65 63 72 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d | tionp.secret)...........(encode- |
| 3a6a0 | 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 66 75 6e 63 61 6c 6c 20 73 65 63 72 65 74 29 20 27 | coding-string.(funcall.secret).' |
| 3a6c0 | 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 20 73 65 63 72 65 74 29 0a 20 20 20 20 28 75 73 65 72 | utf-8).........secret).....(user |
| 3a6e0 | 2d 65 72 72 6f 72 20 22 4e 6f 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 66 6f 75 6e 64 | -error."No.`gptel-api-key'.found |
| 3a700 | 20 69 6e 20 74 68 65 20 61 75 74 68 20 73 6f 75 72 63 65 22 29 29 29 0a 0a 3b 3b 20 46 49 58 4d | .in.the.auth.source")))..;;.FIXM |
| 3a720 | 45 20 53 68 6f 75 6c 64 20 77 65 20 75 74 66 2d 38 20 65 6e 63 6f 64 65 20 74 68 65 20 61 70 69 | E.Should.we.utf-8.encode.the.api |
| 3a740 | 2d 6b 65 79 20 68 65 72 65 3f 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 | -key.here?.(defun.gptel--get-api |
| 3a760 | 2d 6b 65 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6b 65 79 29 0a 20 20 22 47 65 74 20 61 70 69 20 | -key.(&optional.key)..."Get.api. |
| 3a780 | 6b 65 79 20 66 72 6f 6d 20 4b 45 59 2c 20 6f 72 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 61 70 69 | key.from.KEY,.or.from.`gptel-api |
| 3a7a0 | 2d 6b 65 79 27 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 2d 73 79 6d 20 28 | -key'."...(when-let*.((key-sym.( |
| 3a7c0 | 6f 72 20 6b 65 79 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6b 65 79 20 67 70 74 65 6c 2d | or.key.(gptel-backend-key.gptel- |
| 3a7e0 | 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 6b 65 79 | backend)))).....(cl-typecase.key |
| 3a800 | 2d 73 79 6d 0a 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 28 73 74 72 69 6e 67 2d 74 72 69 | -sym.......(function.(string-tri |
| 3a820 | 6d 2d 72 69 67 68 74 20 28 66 75 6e 63 61 6c 6c 20 6b 65 79 2d 73 79 6d 29 20 22 5b 5c 6e 5c 72 | m-right.(funcall.key-sym)."[\n\r |
| 3a840 | 5d 2b 22 29 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d | ]+")).......(string.(string-trim |
| 3a860 | 2d 72 69 67 68 74 20 6b 65 79 2d 73 79 6d 20 22 5b 5c 6e 5c 72 5d 2b 22 29 29 0a 20 20 20 20 20 | -right.key-sym."[\n\r]+"))...... |
| 3a880 | 20 28 73 79 6d 62 6f 6c 20 28 69 66 2d 6c 65 74 2a 20 28 28 76 61 6c 20 28 73 79 6d 62 6f 6c 2d | .(symbol.(if-let*.((val.(symbol- |
| 3a8a0 | 76 61 6c 75 65 20 6b 65 79 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | value.key-sym)))................ |
| 3a8c0 | 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 | ...(gptel--get-api-key.val)..... |
| 3a8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b | ............(error."`gptel-api-k |
| 3a900 | 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 29 29 0a 20 20 20 20 20 20 28 74 20 28 65 | ey'.is.not.valid"))).......(t.(e |
| 3a920 | 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 |
| 3a940 | 69 64 22 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 | id")))))..(defsubst.gptel--to-nu |
| 3a960 | 6d 62 65 72 20 28 76 61 6c 29 0a 20 20 22 45 6e 73 75 72 65 20 56 41 4c 20 69 73 20 61 20 6e 75 | mber.(val)..."Ensure.VAL.is.a.nu |
| 3a980 | 6d 62 65 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6e 75 6d 62 65 72 70 20 76 61 6c 29 | mber."...(cond....((numberp.val) |
| 3a9a0 | 20 76 61 6c 29 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 76 61 6c 29 20 28 73 74 72 69 6e 67 2d | .val)....((stringp.val).(string- |
| 3a9c0 | 74 6f 2d 6e 75 6d 62 65 72 20 76 61 6c 29 29 0a 20 20 20 28 28 65 72 72 6f 72 20 22 25 53 20 63 | to-number.val))....((error."%S.c |
| 3a9e0 | 61 6e 6e 6f 74 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 6e 75 6d 62 65 72 22 20 | annot.be.converted.to.a.number". |
| 3aa00 | 76 61 6c 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 74 6f 2d 73 74 72 | val))))..(defsubst.gptel--to-str |
| 3aa20 | 69 6e 67 20 28 73 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 20 74 6f 20 61 20 73 74 72 69 6e 67 | ing.(s)..."Convert.S.to.a.string |
| 3aa40 | 2c 20 69 66 20 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 73 | ,.if.possible."...(cl-typecase.s |
| 3aa60 | 0a 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 29 29 0a 20 20 | .....(symbol.(symbol-name.s))... |
| 3aa80 | 20 20 28 73 74 72 69 6e 67 20 73 29 0a 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 20 28 70 72 69 | ..(string.s).....(otherwise.(pri |
| 3aaa0 | 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 73 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 | n1-to-string.s))))..(defsubst.gp |
| 3aac0 | 74 65 6c 2d 2d 69 6e 74 65 72 6e 20 28 73 29 0a 20 20 22 49 6e 74 65 72 6e 20 53 2c 20 69 66 20 | tel--intern.(s)..."Intern.S,.if. |
| 3aae0 | 70 6f 73 73 69 62 6c 65 2e 22 0a 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 73 0a 20 20 20 | possible."...(cl-etypecase.s.... |
| 3ab00 | 20 28 73 79 6d 62 6f 6c 20 73 29 0a 20 20 20 20 28 73 74 72 69 6e 67 20 28 69 6e 74 65 72 6e 20 | .(symbol.s).....(string.(intern. |
| 3ab20 | 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 | s))))..(defun.gptel--merge-plist |
| 3ab40 | 73 20 28 26 72 65 73 74 20 70 6c 69 73 74 73 29 0a 20 20 22 4d 65 72 67 65 20 50 4c 49 53 54 53 | s.(&rest.plists)..."Merge.PLISTS |
| 3ab60 | 2c 20 61 6c 74 65 72 69 6e 67 20 74 68 65 20 66 69 72 73 74 20 6f 6e 65 2e 0a 0a 4c 61 74 65 72 | ,.altering.the.first.one...Later |
| 3ab80 | 20 70 6c 69 73 74 73 20 69 6e 20 74 68 65 20 73 65 71 75 65 6e 63 65 20 74 61 6b 65 20 70 72 65 | .plists.in.the.sequence.take.pre |
| 3aba0 | 63 65 64 65 6e 63 65 20 6f 76 65 72 20 65 61 72 6c 69 65 72 20 6f 6e 65 73 2e 22 0a 20 20 28 6c | cedence.over.earlier.ones."...(l |
| 3abc0 | 65 74 20 28 3b 3b 20 28 72 74 6e 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 28 70 6f 70 20 | et.(;;.(rtn.(copy-sequence.(pop. |
| 3abe0 | 70 6c 69 73 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 74 6e 20 28 70 6f 70 20 70 6c 69 73 | plists))).........(rtn.(pop.plis |
| 3ac00 | 74 73 29 29 0a 20 20 20 20 20 20 20 20 70 20 76 20 6c 73 29 0a 20 20 20 20 28 77 68 69 6c 65 20 | ts)).........p.v.ls).....(while. |
| 3ac20 | 70 6c 69 73 74 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 73 20 28 70 6f 70 20 70 6c 69 73 74 | plists.......(setq.ls.(pop.plist |
| 3ac40 | 73 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 6c 73 0a 20 20 20 20 20 20 20 20 28 73 65 74 | s)).......(while.ls.........(set |
| 3ac60 | 71 20 70 20 28 70 6f 70 20 6c 73 29 20 76 20 28 70 6f 70 20 6c 73 29 29 0a 20 20 20 20 20 20 20 | q.p.(pop.ls).v.(pop.ls))........ |
| 3ac80 | 20 28 73 65 74 71 20 72 74 6e 20 28 70 6c 69 73 74 2d 70 75 74 20 72 74 6e 20 70 20 76 29 29 29 | .(setq.rtn.(plist-put.rtn.p.v))) |
| 3aca0 | 29 0a 20 20 20 20 72 74 6e 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 69 6c 65 2d | ).....rtn))..(defun.gptel--file- |
| 3acc0 | 62 69 6e 61 72 79 2d 70 20 28 70 61 74 68 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 66 69 6c 65 | binary-p.(path)..."Check.if.file |
| 3ace0 | 20 61 74 20 50 41 54 48 20 69 73 20 72 65 61 64 61 62 6c 65 20 61 6e 64 20 62 69 6e 61 72 79 2e | .at.PATH.is.readable.and.binary. |
| 3ad00 | 22 0a 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 28 77 | "...(condition-case.nil.......(w |
| 3ad20 | 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d | ith-temp-buffer.........(insert- |
| 3ad40 | 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 70 61 74 68 20 6e 69 6c 20 31 20 35 31 32 20 27 72 65 | file-contents.path.nil.1.512.'re |
| 3ad60 | 70 6c 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 62 75 66 66 65 72 2d 66 69 6c 65 | place).........(memq.buffer-file |
| 3ad80 | 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 6e | -coding-system...............'(n |
| 3ada0 | 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 20 6e 6f 2d 63 6f 6e 76 65 72 73 69 6f 6e 2d 6d 75 6c 74 69 | o-conversion.no-conversion-multi |
| 3adc0 | 62 79 74 65 29 29 29 0a 20 20 20 20 28 66 69 6c 65 2d 6d 69 73 73 69 6e 67 20 28 6d 65 73 73 61 | byte))).....(file-missing.(messa |
| 3ade0 | 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e | ge."File.\"%s\".is.not.readable. |
| 3ae00 | 22 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 | ".path)...................nil))) |
| 3ae20 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 | ..(defun.gptel--insert-file-stri |
| 3ae40 | 6e 67 20 28 70 61 74 68 29 0a 20 20 22 49 6e 73 65 72 74 20 61 74 20 70 6f 69 6e 74 20 74 68 65 | ng.(path)..."Insert.at.point.the |
| 3ae60 | 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 61 73 | .contents.of.the.file.at.PATH.as |
| 3ae80 | 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 49 6e | .context."...(insert.(format."In |
| 3aea0 | 20 66 69 6c 65 20 60 25 73 60 3a 22 20 28 61 62 62 72 65 76 69 61 74 65 2d 66 69 6c 65 2d 6e 61 | .file.`%s`:".(abbreviate-file-na |
| 3aec0 | 6d 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 60 60 60 5c 6e 22 29 | me.path))..........."\n\n```\n") |
| 3aee0 | 0a 20 20 28 6c 65 74 20 28 28 70 6d 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 | ...(let.((pm.(point-marker)))... |
| 3af00 | 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 70 6d 20 | ..(set-marker-insertion-type.pm. |
| 3af20 | 74 29 0a 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 70 61 74 | t).....(insert-file-contents.pat |
| 3af40 | 68 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6d 29 29 0a 20 20 28 69 6e 73 65 72 74 | h).....(goto-char.pm))...(insert |
| 3af60 | 20 22 5c 6e 60 60 60 5c 6e 22 29 29 0a 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 | ."\n```\n"))..(defvar.url-http-e |
| 3af80 | 6e 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 | nd-of-headers).(defvar.url-http- |
| 3afa0 | 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 29 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c | response-status).(cl-defun.gptel |
| 3afc0 | 2d 2d 75 72 6c 2d 72 65 74 72 69 65 76 65 20 28 75 72 6c 20 26 6b 65 79 20 6d 65 74 68 6f 64 20 | --url-retrieve.(url.&key.method. |
| 3afe0 | 64 61 74 61 20 68 65 61 64 65 72 73 29 0a 20 20 22 52 65 74 72 69 65 76 65 20 55 52 4c 20 73 79 | data.headers)..."Retrieve.URL.sy |
| 3b000 | 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 77 69 74 68 20 4d 45 54 48 4f 44 2c 20 44 41 54 41 20 61 6e | nchronously.with.METHOD,.DATA.an |
| 3b020 | 64 20 48 45 41 44 45 52 53 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 | d.HEADERS."...(declare.(indent.1 |
| 3b040 | 29 29 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 28 | ))...(let.((url-request-method.( |
| 3b060 | 69 66 20 28 65 71 20 6d 65 74 68 6f 64 27 70 6f 73 74 29 20 22 50 4f 53 54 22 20 22 47 45 54 22 | if.(eq.method'post)."POST"."GET" |
| 3b080 | 29 29 0a 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 65 6e | )).........(url-request-data.(en |
| 3b0a0 | 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d | code-coding-string.(gptel--json- |
| 3b0c0 | 65 6e 63 6f 64 65 20 64 61 74 61 29 20 27 75 74 66 2d 38 29 29 0a 20 20 20 20 20 20 20 20 28 75 | encode.data).'utf-8)).........(u |
| 3b0e0 | 72 6c 2d 6d 69 6d 65 2d 61 63 63 65 70 74 2d 73 74 72 69 6e 67 20 22 61 70 70 6c 69 63 61 74 69 | rl-mime-accept-string."applicati |
| 3b100 | 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 | on/json").........(url-request-e |
| 3b120 | 78 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 60 28 28 22 63 6f 6e 74 65 6e | xtra-headers..........`(("conten |
| 3b140 | 74 2d 74 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 29 0a 20 20 | t-type"..."application/json")... |
| 3b160 | 20 20 20 20 20 20 20 20 20 2c 40 68 65 61 64 65 72 73 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d | .........,@headers))).....(with- |
| 3b180 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e | current-buffer.(url-retrieve-syn |
| 3b1a0 | 63 68 72 6f 6e 6f 75 73 6c 79 20 75 72 6c 20 27 73 69 6c 65 6e 74 29 0a 20 20 20 20 20 20 28 67 | chronously.url.'silent).......(g |
| 3b1c0 | 6f 74 6f 2d 63 68 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 65 72 73 | oto-char.url-http-end-of-headers |
| 3b1e0 | 29 0a 20 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 0a 28 | ).......(gptel--json-read))))..( |
| 3b200 | 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 |
| 3b220 | 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 |
| 3b240 | 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 |
| 3b260 | 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 |
| 3b280 | 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.( |
| 3b2a0 | 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))...... |
| 3b2c0 | 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 |
| 3b2e0 | 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))).......... |
| 3b300 | 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) |
| 3b320 | 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....... |
| 3b340 | 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..... |
| 3b360 | 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))...... |
| 3b380 | 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c | .(error.nil))))..(defsubst.gptel |
| 3b3a0 | 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 22 50 72 65 66 | -prompt-prefix-string.()..."Pref |
| 3b3c0 | 69 78 20 62 65 66 6f 72 65 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 69 6e 20 60 67 70 74 65 6c | ix.before.user.prompts.in.`gptel |
| 3b3e0 | 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 | -mode'."...(declare.(side-effect |
| 3b400 | 2d 66 72 65 65 20 74 29 29 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 | -free.t))...(or.(alist-get.major |
| 3b420 | 2d 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 | -mode.gptel-prompt-prefix-alist) |
| 3b440 | 20 22 22 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d | .""))..(defsubst.gptel-response- |
| 3b460 | 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 22 50 72 65 66 69 78 20 62 65 66 6f 72 | prefix-string.()..."Prefix.befor |
| 3b480 | 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e | e.LLM.responses.in.`gptel-mode'. |
| 3b4a0 | 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 | "...(declare.(side-effect-free.t |
| 3b4c0 | 29 29 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 | ))...(or.(alist-get.major-mode.g |
| 3b4e0 | 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 | ptel-response-prefix-alist)."")) |
| 3b500 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 65 73 70 | ..(defun.gptel-beginning-of-resp |
| 3b520 | 6f 6e 73 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 | onse.(&optional._._.arg)..."Move |
| 3b540 | 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c | .point.to.the.beginning.of.the.L |
| 3b560 | 4c 4d 20 72 65 73 70 6f 6e 73 65 20 41 52 47 20 74 69 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 | LM.response.ARG.times."...(inter |
| 3b580 | 61 63 74 69 76 65 20 28 6c 69 73 74 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | active.(list.nil.nil............ |
| 3b5a0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 | ..........(prefix-numeric-value. |
| 3b5c0 | 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 65 | current-prefix-arg)))...(gptel-e |
| 3b5e0 | 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 6e 69 6c 20 6e 69 6c 20 28 2d 20 28 6f 72 20 61 72 | nd-of-response.nil.nil.(-.(or.ar |
| 3b600 | 67 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 | g.1))))..(defun.gptel-end-of-res |
| 3b620 | 70 6f 6e 73 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 | ponse.(&optional._._.arg)..."Mov |
| 3b640 | 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 | e.point.to.the.end.of.the.LLM.re |
| 3b660 | 73 70 6f 6e 73 65 20 41 52 47 20 74 69 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 | sponse.ARG.times."...(interactiv |
| 3b680 | 65 20 28 6c 69 73 74 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.(list.nil.nil................. |
| 3b6a0 | 20 20 20 20 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 | .....(prefix-numeric-value.curre |
| 3b6c0 | 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 61 72 67 20 28 | nt-prefix-arg)))...(unless.arg.( |
| 3b6e0 | 73 65 74 71 20 61 72 67 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 73 65 61 72 63 68 20 28 69 66 | setq.arg.1))...(let.((search.(if |
| 3b700 | 20 28 3e 20 61 72 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 23 | .(>.arg.0).....................# |
| 3b720 | 27 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 0a 20 20 | 'text-property-search-forward... |
| 3b740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d | ................#'text-property- |
| 3b760 | 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 | search-backward))).....(dotimes. |
| 3b780 | 28 5f 20 28 61 62 73 20 61 72 67 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 | (_.(abs.arg)).......(funcall.sea |
| 3b7a0 | 72 63 68 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 20 74 29 0a 20 20 20 20 20 20 28 69 | rch.'gptel.'response.t).......(i |
| 3b7c0 | 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a | f.(>.arg.0)...........(when-let* |
| 3b7e0 | 20 28 28 70 72 65 66 69 78 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 | .((prefix.(gptel-prompt-prefix-s |
| 3b800 | 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 28 28 | tring)).......................(( |
| 3b820 | 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 29 0a 20 20 | not.(string-empty-p.prefix)))... |
| 3b840 | 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 6b 69 6e 67 2d 61 74 | ....................((looking-at |
| 3b860 | 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 5c 7b 31 2c 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 | .(concat."\n\\{1,2\\}".......... |
| 3b880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3b8a0 | 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 72 65 66 69 78 29 20 22 3f 22 29 29 29 29 0a | ..(regexp-quote.prefix)."?")))). |
| 3b8c0 | 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 |
| 3b8e0 | 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 65 66 | d.0))).........(when-let*.((pref |
| 3b900 | 69 78 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 | ix.(gptel-response-prefix-string |
| 3b920 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 | )).....................((not.(st |
| 3b940 | 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 70 72 65 66 69 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ring-empty-p.prefix))).......... |
| 3b960 | 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 28 63 6f 6e 63 61 | ...........((looking-back.(conca |
| 3b980 | 74 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 72 65 66 69 78 29 20 22 3f 22 29 0a 20 20 20 | t.(regexp-quote.prefix)."?").... |
| 3b9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3b9c0 | 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 28 67 6f 74 6f 2d 63 | (point-min))))...........(goto-c |
| 3b9e0 | 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 29 29 29 29 0a 0a 28 | har.(match-beginning.0)))))))..( |
| 3ba00 | 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 61 74 2d 77 6f 72 64 2d 65 6e 64 20 28 26 72 65 | defmacro.gptel--at-word-end.(&re |
| 3ba20 | 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 63 75 74 65 20 42 4f 44 59 20 61 74 20 65 6e 64 20 | st.body)..."Execute.BODY.at.end. |
| 3ba40 | 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 6f 72 64 20 6f 72 20 70 75 6e 63 74 75 61 74 69 | of.the.current.word.or.punctuati |
| 3ba60 | 6f 6e 2e 22 0a 20 20 60 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 28 73 6b | on."...`(save-excursion......(sk |
| 3ba80 | 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 77 2e 22 29 0a 20 20 20 20 20 2c 28 6d | ip-syntax-forward."w.")......,(m |
| 3baa0 | 61 63 72 6f 65 78 70 2d 70 72 6f 67 6e 20 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f | acroexp-progn.body)))..(defmacro |
| 3bac0 | 20 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 28 62 75 66 29 0a 20 20 22 47 65 6e | .gptel--temp-buffer.(buf)..."Gen |
| 3bae0 | 65 72 61 74 65 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 43 6f 6d 70 61 74 | erate.a.temp.buffer.BUF...Compat |
| 3bb00 | 69 62 69 6c 69 74 79 20 6d 61 63 72 6f 20 66 6f 72 20 45 6d 61 63 73 20 32 37 2e 31 2e 22 0a 20 | ibility.macro.for.Emacs.27.1.".. |
| 3bb20 | 20 28 69 66 20 28 3c 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 38 29 0a | .(if.(<.emacs-major-version.28). |
| 3bb40 | 20 20 20 20 20 20 60 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 2c 62 75 66 | ......`(generate-new-buffer.,buf |
| 3bb60 | 29 0a 20 20 20 20 60 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 2c 62 75 66 | ).....`(generate-new-buffer.,buf |
| 3bb80 | 20 74 29 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 | .t)))..(defmacro.gptel--with-buf |
| 3bba0 | 66 65 72 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 | fer-copy.(buf.start.end.&rest.bo |
| 3bbc0 | 64 79 29 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 | dy)..."Copy.gptel's.local.variab |
| 3bbe0 | 6c 65 73 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 | les.from.BUF.to.a.temp.buffer.an |
| 3bc00 | 64 20 72 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 | d.run.BODY...If.positions.START. |
| 3bc20 | 61 6e 64 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 | and.END.are.provided,.insert.tha |
| 3bc40 | 74 20 70 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 | t.part.of.BUF.first."...(declare |
| 3bc60 | 20 28 69 6e 64 65 6e 74 20 33 29 29 0a 20 20 60 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 | .(indent.3))...`(gptel--with-buf |
| 3bc80 | 66 65 72 2d 63 6f 70 79 2d 69 6e 74 65 72 6e 61 6c 20 2c 62 75 66 20 2c 73 74 61 72 74 20 2c 65 | fer-copy-internal.,buf.,start.,e |
| 3bca0 | 6e 64 20 28 6c 61 6d 62 64 61 20 28 29 20 2c 40 62 6f 64 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 | nd.(lambda.().,@body)))..(defun. |
| 3bcc0 | 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 2d 69 6e 74 65 72 6e 61 6c | gptel--with-buffer-copy-internal |
| 3bce0 | 20 28 62 75 66 20 73 74 61 72 74 20 65 6e 64 20 62 6f 64 79 2d 74 68 75 6e 6b 29 0a 20 20 22 50 | .(buf.start.end.body-thunk)..."P |
| 3bd00 | 72 65 70 61 72 65 20 61 20 74 65 6d 70 20 62 75 66 66 65 72 20 66 6f 72 20 61 20 67 70 74 65 6c | repare.a.temp.buffer.for.a.gptel |
| 3bd20 | 20 72 65 71 75 65 73 74 2e 0a 0a 46 6f 72 20 42 55 46 2c 20 53 54 41 52 54 2c 20 45 4e 44 20 61 | .request...For.BUF,.START,.END.a |
| 3bd40 | 6e 64 20 42 4f 44 59 2d 54 48 55 4e 4b 20 73 65 65 20 60 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 | nd.BODY-THUNK.see.`gptel--with-b |
| 3bd60 | 75 66 66 65 72 2d 63 6f 70 79 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 74 65 6d 70 2d 62 75 66 66 | uffer-copy'."...(let.((temp-buff |
| 3bd80 | 65 72 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d | er.(gptel--temp-buffer.".*gptel- |
| 3bda0 | 70 72 6f 6d 70 74 2a 22 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | prompt*"))).....(with-current-bu |
| 3bdc0 | 66 66 65 72 20 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 | ffer.temp-buffer.......(dolist.( |
| 3bde0 | 73 79 6d 20 27 28 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 73 79 73 74 | sym.'(.gptel-backend.gptel--syst |
| 3be00 | 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 | em-message.gptel-model.......... |
| 3be20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 | .............gptel-mode.gptel-tr |
| 3be40 | 61 63 6b 2d 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 | ack-response.gptel-track-media.. |
| 3be60 | 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 75 73 65 2d 74 | .....................gptel-use-t |
| 3be80 | 6f 6f 6c 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 | ools.gptel-tools.gptel-use-curl. |
| 3bea0 | 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--schema................... |
| 3bec0 | 20 20 20 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 2d 6e 75 6d | ....gptel-use-context.gptel--num |
| 3bee0 | 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............... |
| 3bf00 | 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 69 6e 63 6c 75 | ........gptel-stream.gptel-inclu |
| 3bf20 | 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 | de-reasoning.gptel--request-para |
| 3bf40 | 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 67 70 74 65 6c 2d 74 | ms.......................gptel-t |
| 3bf60 | 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 74 65 | emperature.gptel-max-tokens.gpte |
| 3bf80 | 6c 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 | l-cache)).........(set.(make-loc |
| 3bfa0 | 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 | al-variable.sym).(buffer-local-v |
| 3bfc0 | 61 6c 75 65 20 73 79 6d 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 | alue.sym.buf))).......(when.(and |
| 3bfe0 | 20 73 74 61 72 74 20 65 6e 64 29 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 | .start.end).(insert-buffer-subst |
| 3c000 | 72 69 6e 67 20 62 75 66 20 73 74 61 72 74 20 65 6e 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 | ring.buf.start.end)).......(setq |
| 3c020 | 20 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 65 20 | .major-mode.(buffer-local-value. |
| 3c040 | 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | 'major-mode.buf)).......(funcall |
| 3c060 | 20 62 6f 64 79 2d 74 68 75 6e 6b 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c | .body-thunk))))..(defsubst.gptel |
| 3c080 | 2d 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 | --trim-prefixes.(s)..."Remove.pr |
| 3c0a0 | 6f 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 | ompt/response.prefixes.from.stri |
| 3c0c0 | 6e 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 | ng.S...Return.nil.if.string.coll |
| 3c0e0 | 61 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 | apses.to.empty.string."...(let*. |
| 3c100 | 28 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 | ((trimmed.(string-trim-left..... |
| 3c120 | 20 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 | ...............s.(format."[\t\r\ |
| 3c140 | 6e 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 | n.]*\\(?:%s\\)?[\t\r\n.]*"...... |
| 3c160 | 20 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 | ........................(regexp- |
| 3c180 | 71 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 | quote........................... |
| 3c1a0 | 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) |
| 3c1c0 | 29 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 | ))))..........(trimmed.(string-t |
| 3c1e0 | 72 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 | rim-right....................tri |
| 3c200 | 6d 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 | mmed.(format."[\t\r\n.]*\\(?:%s\ |
| 3c220 | 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \)?[\t\r\n.]*".................. |
| 3c240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 0a | ..................(regexp-quote. |
| 3c260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3c280 | 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 2d 73 74 72 69 6e | ....(gptel-response-prefix-strin |
| 3c2a0 | 67 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 | g)))))).....(unless.(string-empt |
| 3c2c0 | 79 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 | y-p.trimmed).......trimmed)))..( |
| 3c2e0 | 64 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 | defsubst.gptel--link-standalone- |
| 3c300 | 70 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 | p.(beg.end)..."Return.non-nil.if |
| 3c320 | 20 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 | .positions.BEG.and.END.are.isola |
| 3c340 | 74 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 | ted...This.means.the.extent.from |
| 3c360 | 20 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 | .BEG.to.END.is.the.only.non-whit |
| 3c380 | 65 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 | espace.content.on.this.line."... |
| 3c3a0 | 28 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 | (save-excursion.....(and.(=.beg. |
| 3c3c0 | 28 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 | (progn.(goto-char.beg).(beginnin |
| 3c3e0 | 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)...................... |
| 3c400 | 20 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 | ..(skip-chars-forward."\t.").... |
| 3c420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 | ....................(point)))... |
| 3c440 | 20 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 | .......(=.end.(progn.(goto-char. |
| 3c460 | 65 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 | end).(end-of-line).............. |
| 3c480 | 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 72 64 20 22 | ..........(skip-chars-backward." |
| 3c4a0 | 5c 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 | \t.")........................(po |
| 3c4c0 | 69 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 | int))))))..(defvar-local.gptel-- |
| 3c4e0 | 62 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 | backend-name.nil..."Store.to.per |
| 3c500 | 73 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 | sist.backend.name.across.Emacs.s |
| 3c520 | 65 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 | essions...Note:.Changing.this.va |
| 3c540 | 72 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 | riable.does.not.affect.gptel\\=' |
| 3c560 | 73 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 | s.behavior.in.any.way.").(put.'g |
| 3c580 | 70 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 | ptel--backend-name.'safe-local-v |
| 3c5a0 | 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 | ariable.#'always)..(defsubst.gpt |
| 3c5c0 | 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 20 28 29 0a 20 20 22 43 75 72 6c 20 65 78 65 63 75 74 61 | el--curl-path.()..."Curl.executa |
| 3c5e0 | 62 6c 65 20 74 6f 20 75 73 65 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 67 70 74 65 | ble.to.use."...(if.(stringp.gpte |
| 3c600 | 6c 2d 75 73 65 2d 63 75 72 6c 29 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 22 63 75 72 6c | l-use-curl).gptel-use-curl."curl |
| 3c620 | 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 64 64 | "))..(defun.gptel--transform-add |
| 3c640 | 2d 63 6f 6e 74 65 78 74 20 28 63 61 6c 6c 62 61 63 6b 20 66 73 6d 29 0a 20 20 28 69 66 20 28 61 | -context.(callback.fsm)...(if.(a |
| 3c660 | 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | nd.gptel-use-context.gptel-conte |
| 3c680 | 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | xt--alist).......(gptel-context- |
| 3c6a0 | 2d 77 72 61 70 20 63 61 6c 6c 62 61 63 6b 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c | -wrap.callback.(plist-get.(gptel |
| 3c6c0 | 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 3a 64 61 74 61 29 29 0a 20 20 20 20 28 66 75 6e 63 | -fsm-info.fsm).:data)).....(func |
| 3c6e0 | 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 3b 3b 3b 3b 20 4d 6f 64 65 6c 20 69 6e 74 65 | all.callback)))..;;;;.Model.inte |
| 3c700 | 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 6f | rface.;;.NOTE:.This.interface.wo |
| 3c720 | 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 61 | uld.be.simpler.to.implement.as.a |
| 3c740 | 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 63 | .defstruct...But.then.;;.users.c |
| 3c760 | 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 6d | annot.set.`gptel-model'.to.a.sym |
| 3c780 | 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 65 | bol/string.directly,.or.we'd.nee |
| 3c7a0 | 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 62 | d.;;.another.map.from.these.symb |
| 3c7c0 | 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 2e | ols.to.the.actual.model.structs. |
| 3c7e0 | 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 6d | ..(defsubst.gptel--model-name.(m |
| 3c800 | 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 4c | odel)..."Get.name.of.gptel.MODEL |
| 3c820 | 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 0a | ."...(gptel--to-string.model)).. |
| 3c840 | 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 74 | (defsubst.gptel--model-capabilit |
| 3c860 | 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 6c | ies.(model)..."Get.MODEL.capabil |
| 3c880 | 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 69 | ities."...(get.model.:capabiliti |
| 3c8a0 | 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 6d | es))..(defsubst.gptel--model-mim |
| 3c8c0 | 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 65 | es.(model)..."Get.supported.mime |
| 3c8e0 | 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 20 | -types.for.MODEL."...(get.model. |
| 3c900 | 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 2d | :mime-types))..(defsubst.gptel-- |
| 3c920 | 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 6d | model-capable-p.(cap.&optional.m |
| 3c940 | 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 4c | odel)..."Return.non-nil.if.MODEL |
| 3c960 | 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 65 | .supports.capability.CAP."...(me |
| 3c980 | 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 65 | mq.cap.(gptel--model-capabilitie |
| 3c9a0 | 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 6d | s..............(or.model.gptel-m |
| 3c9c0 | 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 6d | odel))))..;;.TODO.Handle.model.m |
| 3c9e0 | 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 2a | ime.specifications.like."image/* |
| 3ca00 | 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 61 | ".(defsubst.gptel--model-mime-ca |
| 3ca20 | 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 20 | pable-p.(mime.&optional.model).. |
| 3ca40 | 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 6e | ."Return.non.nil.if.MODEL.can.un |
| 3ca60 | 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 65 | derstand.MIME.type."...(car-safe |
| 3ca80 | 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 65 | .(member.mime.(gptel--model-mime |
| 3caa0 | 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 6f | s.........................(or.mo |
| 3cac0 | 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 20 | del.gptel-model)))))..(defsubst. |
| 3cae0 | 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 64 | gptel--model-request-params.(mod |
| 3cb00 | 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 73 | el)..."Get.model-specific.reques |
| 3cb20 | 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 20 | t.parameters.for.MODEL."...(get. |
| 3cb40 | 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 69 | model.:request-params))..;;;;.Fi |
| 3cb60 | 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 34 | le.handling.(defun.gptel--base64 |
| 3cb80 | 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 73 | -encode.(file)..."Encode.FILE.as |
| 3cba0 | 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 6d | .a.base64.string...FILE.is.assum |
| 3cbc0 | 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 6c | ed.to.exist.and.be.a.regular.fil |
| 3cbe0 | 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 73 | e."...(with-temp-buffer.....(ins |
| 3cc00 | 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 65 | ert-file-contents-literally.file |
| 3cc20 | 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 69 | ).....(base64-encode-region.(poi |
| 3cc40 | 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 20 | nt-min).(point-max)............. |
| 3cc60 | 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 20 | ..............:no-line-break)... |
| 3cc80 | 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 6e | ..(buffer-string)))..;;;;.Respon |
| 3cca0 | 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 65 | se.text.recognition..(defun.gpte |
| 3ccc0 | 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 72 | l--get-buffer-bounds.()..."Retur |
| 3cce0 | 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 20 | n.the.gptel.response.boundaries. |
| 3cd00 | 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 73 | in.the.buffer.as.an.alist."...(s |
| 3cd20 | 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 74 | ave-excursion.....(save-restrict |
| 3cd40 | 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 68 | ion.......(widen).......(goto-ch |
| 3cd60 | 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 75 | ar.(point-max)).......(let.((bou |
| 3cd80 | 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 20 | nds).(prev-pt.(point)))......... |
| 3cda0 | 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 6d | (while.(and.(/=.prev-pt.(point-m |
| 3cdc0 | 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 63 | in)).....................(goto-c |
| 3cde0 | 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d 63 68 | har.(previous-single-property-ch |
| 3ce00 | 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ange............................ |
| 3ce20 | 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 2d 6d | .....(point).'gptel.nil.(point-m |
| 3ce40 | 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 72 | in))))...........(when-let*.((pr |
| 3ce60 | 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 67 | op.(get-char-property.(point).'g |
| 3ce80 | 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 70 | ptel))).............(let*.((prop |
| 3cea0 | 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 63 | -name.(if.(symbolp.prop).prop.(c |
| 3cec0 | 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 76 | ar.prop)))....................(v |
| 3cee0 | 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 29 | al.(when.(consp.prop).(cdr.prop) |
| 3cf00 | 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 66 | ))....................(bound.(if |
| 3cf20 | 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 20 | .val............................ |
| 3cf40 | 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 20 | ...(list.(point).prev-pt.val)... |
| 3cf60 | 20 20 20 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 | ..........................(list. |
| 3cf80 | 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))))............. |
| 3cfa0 | 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 61 | ..(push.bound.(alist-get.prop-na |
| 3cfc0 | 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 72 | me.bounds))))...........(setq.pr |
| 3cfe0 | 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 29 | ev-pt.(point))).........bounds)) |
| 3d000 | 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 6c | ))..(define-obsolete-function-al |
| 3d020 | 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 2d | ias...'gptel--get-bounds.'gptel- |
| 3d040 | 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 28 | -get-response-bounds."0.9.8")..( |
| 3d060 | 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 73 | defun.gptel--get-response-bounds |
| 3d080 | 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 65 | .()..."Return.the.gptel.response |
| 3d0a0 | 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 65 | .boundaries.around.point."...(le |
| 3d0c0 | 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 20 | t.(prop).....(save-excursion.... |
| 3d0e0 | 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 62 | ...(when.(text-property-search-b |
| 3d100 | 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 73 | ackward..............'gptel.'res |
| 3d120 | 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 6f | ponse.t).........(when.(setq.pro |
| 3d140 | 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 0a | p.(text-property-search-forward. |
| 3d160 | 20 20 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 | ..........................'gptel |
| 3d180 | 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 28 | .'response.t))...........(cons.( |
| 3d1a0 | 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 20 | prop-match-beginning.prop)...... |
| 3d1c0 | 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 29 | ...........(prop-match-end.prop) |
| 3d1e0 | 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 73 | ))))))..(defun.gptel--in-respons |
| 3d200 | 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 70 | e-p.(&optional.pt)..."Check.if.p |
| 3d220 | 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 73 | osition.PT.is.inside.a.gptel.res |
| 3d240 | 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 79 | ponse."...(eq.(get-char-property |
| 3d260 | 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 6e | .(or.pt.(point)).'gptel).'respon |
| 3d280 | 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 2d | se))..(defun.gptel--at-response- |
| 3d2a0 | 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 63 | history-p.(&optional.pt)..."Chec |
| 3d2c0 | 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 20 | k.if.gptel.response.at.position. |
| 3d2e0 | 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 72 | PT.has.variants."...(get-char-pr |
| 3d300 | 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 69 | operty.(or.pt.(point)).'gptel-hi |
| 3d320 | 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 73 | story))..(defvar.gptel--mode-des |
| 3d340 | 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 20 | cription-alist...'((js2-mode.... |
| 3d360 | 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 20 | ...."Javascript").....(sh-mode.. |
| 3d380 | 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 6f | ......."Shell").....(enh-ruby-mo |
| 3d3a0 | 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 20 | de..."Ruby").....(yaml-mode..... |
| 3d3c0 | 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 22 | .."Yaml").....(yaml-ts-mode...." |
| 3d3e0 | 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 73 | Yaml").....(rustic-mode....."Rus |
| 3d400 | 74 22 29 0a 20 20 20 20 28 74 75 61 72 65 67 2d 6d 6f 64 65 20 20 20 2e 20 22 4f 43 61 6d 6c 22 | t").....(tuareg-mode....."OCaml" |
| 3d420 | 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 6f 6e 61 | ))..."Mapping.from.unconventiona |
| 3d440 | 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 75 61 67 | lly.named.major.modes.to.languag |
| 3d460 | 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 74 69 6e | es...This.is.used.when.generatin |
| 3d480 | 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 67 20 61 | g.system.prompts.for.rewriting.a |
| 3d4a0 | 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 6d 20 74 | nd.when.including.context.from.t |
| 3d4c0 | 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 70 74 65 | hese.major.modes.")..(defun.gpte |
| 3d4e0 | 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 6d 29 0a | l--strip-mode-suffix.(mode-sym). |
| 3d500 | 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 6f 6d 20 | .."Remove.the.-mode.suffix.from. |
| 3d520 | 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 6c 6c 79 | MODE-SYM...MODE-SYM.is.typically |
| 3d540 | 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 28 61 6c | .a.major-mode.symbol."...(or.(al |
| 3d560 | 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 64 65 73 | ist-get.mode-sym.gptel--mode-des |
| 3d580 | 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 6d 6f 64 | cription-alist).......(let.((mod |
| 3d5a0 | 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 20 20 20 | e-name.(thread-last............. |
| 3d5c0 | 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 65 2d 73 | .............(symbol-name.mode-s |
| 3d5e0 | 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 28 73 74 | ym)..........................(st |
| 3d600 | 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 20 20 20 | ring-remove-suffix."-mode")..... |
| 3d620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 6d | .....................(string-rem |
| 3d640 | 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 3b 3b 20 | ove-suffix."-ts")))).........;;. |
| 3d660 | 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 63 6f 6e | NOTE:.The.advertised.calling.con |
| 3d680 | 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 76 65 64 | vention.of.provided-mode-derived |
| 3d6a0 | 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 45 6d 61 | -p.........;;.has.changed.in.Ema |
| 3d6c0 | 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 65 64 20 | cs.30,.this.needs.to.be.updated. |
| 3d6e0 | 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 64 65 64 | eventually.........(if.(provided |
| 3d700 | 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 6d 6f 64 | -mode-derived-p..............mod |
| 3d720 | 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 74 65 78 | e-sym.'prog-mode.'text-mode.'tex |
| 3d740 | 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 22 22 29 | -mode).............mode-name."") |
| 3d760 | 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 0a 0a 28 | )))..;;;;.Directive.handling...( |
| 3d780 | 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 20 20 28 | defvar.gptel--system-message...( |
| 3d7a0 | 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 64 69 72 | or.(alist-get.'default.gptel-dir |
| 3d7c0 | 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 67 65 20 | ectives)......."You.are.a.large. |
| 3d7e0 | 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 73 20 61 | language.model.living.in.Emacs.a |
| 3d800 | 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 6e 64 20 | nd.a.helpful.assistant..Respond. |
| 3d820 | 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 73 73 61 | concisely.")..."The.system.messa |
| 3d840 | 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 65 6c 2d | ge.used.by.gptel.").(put.'gptel- |
| 3d860 | 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 61 72 69 | -system-message.'safe-local-vari |
| 3d880 | 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 2d 64 65 | able.#'always)..(defun.gptel--de |
| 3d8a0 | 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 69 64 74 | scribe-directive.(directive.widt |
| 3d8c0 | 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 69 6e 64 | h.&optional.replacement)..."Find |
| 3d8e0 | 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 72 75 6e | .description.for.DIRECTIVE,.trun |
| 3d900 | 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 73 20 61 | cated..to.WIDTH...DIRECTIVE.is.a |
| 3d920 | 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 61 20 73 | .gptel.directive,.and.can.be.a.s |
| 3d940 | 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 66 20 73 | tring,.a.function.or.a.list.of.s |
| 3d960 | 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 73 27 2e | trings...See.`gptel-directives'. |
| 3d980 | 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 6e 64 65 | ..The.result.is.a.string.intende |
| 3d9a0 | 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 72 65 70 | d.for.display...Newlines.are.rep |
| 3d9c0 | 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 6c 2d 74 | laced.with.REPLACEMENT."...(cl-t |
| 3d9e0 | 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 0a 20 20 | ypecase.directive.....(string... |
| 3da00 | 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 61 63 65 | ...(concat.......(string-replace |
| 3da20 | 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 20 20 20 | ."\n".(or.replacement.".")...... |
| 3da40 | 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 72 69 6e | .................(truncate-strin |
| 3da60 | 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 20 20 20 | g-to-width...................... |
| 3da80 | 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 29 29 0a | ..directive.width.nil.nil.t)))). |
| 3daa0 | 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 20 20 20 | ....(function......(concat...... |
| 3dac0 | 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 0a 20 20 | ."..:.".......(string-replace... |
| 3dae0 | 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 29 0a 20 | ....."\n".(or.replacement.".").. |
| 3db00 | 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 74 68 0a | ......(truncate-string-to-width. |
| 3db20 | 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 64 6f 63 | ........(or.(and-let*.((doc.(doc |
| 3db40 | 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 20 20 20 | umentation.directive)))......... |
| 3db60 | 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 69 6e 67 | ......(substring.doc.nil.(string |
| 3db80 | 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 20 20 20 | -match-p."\n".doc)))............ |
| 3dba0 | 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 70 72 65 | ."[Dynamically.generated;.no.pre |
| 3dbc0 | 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 74 68 20 | view.available]").........width. |
| 3dbe0 | 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 6c 65 74 | nil.nil.t)))).....(list.(and-let |
| 3dc00 | 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 69 76 65 | *.((from-template.(car.directive |
| 3dc20 | 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 69 62 65 | ))).............(gptel--describe |
| 3dc40 | 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 74 65 6d | -directive..............from-tem |
| 3dc60 | 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 28 64 65 | plate.width))).....(t."")))..(de |
| 3dc80 | 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 69 72 65 | fun.gptel--parse-directive.(dire |
| 3dca0 | 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 20 44 49 | ctive.&optional.raw)..."Parse.DI |
| 3dcc0 | 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 72 69 61 | RECTIVE.into.a.backend-appropria |
| 3dce0 | 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 6c 20 64 | te.form...DIRECTIVE.is.a.gptel.d |
| 3dd00 | 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 20 61 20 | irective:.it.can.be.a.string,.a. |
| 3dd20 | 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 6e 73 20 | list.or.a.function.that.returns. |
| 3dd40 | 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 27 2e 0a | either,.see.`gptel-directives'.. |
| 3dd60 | 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 67 20 6f | .Return.a.cons.cell.consisting.o |
| 3dd80 | 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 67 29 0a | f.the.system.message.(a.string). |
| 3dda0 | 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 61 6c 74 | and.a.template.consisting.of.alt |
| 3ddc0 | 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 6c 69 73 | ernating.user/LLM.records.(a.lis |
| 3dde0 | 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 20 69 73 | t.of.strings.or.nil)...If.RAW.is |
| 3de00 | 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 73 20 61 | .non-nil,.the.user/LLM.records.a |
| 3de20 | 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 72 6e 65 | re.not.processed.and.are.returne |
| 3de40 | 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 6e 64 20 | d.as.a.list.of.strings."...(and. |
| 3de60 | 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 65 20 64 | directive........(cl-etypecase.d |
| 3de80 | 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 6c 69 73 | irective..........(string...(lis |
| 3dea0 | 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 69 6f 6e | t.directive))..........(function |
| 3dec0 | 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 63 61 6c | .(gptel--parse-directive.(funcal |
| 3dee0 | 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 63 6f 6e | l.directive).raw))..........(con |
| 3df00 | 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 20 20 20 | s.....(if.raw.directive......... |
| 3df20 | 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 74 69 76 | .............(cons.(car.directiv |
| 3df40 | 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 3b 3b | e)............................;; |
| 3df60 | 20 46 49 58 4d 45 28 61 75 67 6d 65 6e 74 29 20 64 6f 20 74 68 69 73 20 65 6c 73 65 77 68 65 72 | .FIXME(augment).do.this.elsewher |
| 3df80 | 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 28 67 70 | e............................(gp |
| 3dfa0 | 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 20 20 20 20 | tel--parse-list................. |
| 3dfc0 | 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 64 72 20 64 | ............gptel-backend.(cdr.d |
| 3dfe0 | 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 67 69 6e 67 | irective)))))))).....;;;.Logging |
| 3e000 | 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 72 2d 6e 61 | ..(defconst.gptel--log-buffer-na |
| 3e020 | 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 65 72 20 66 | me."*gptel-log*"..."Log.buffer.f |
| 3e040 | 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 6f 6e 20 6a | or.gptel.")..(declare-function.j |
| 3e060 | 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 65 66 75 6e | son-pretty-print."json")..(defun |
| 3e080 | 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 74 79 70 65 | .gptel--log.(data.&optional.type |
| 3e0a0 | 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 74 65 6c 2d | .no-json)..."Log.DATA.to.`gptel- |
| 3e0c0 | 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 61 20 6c 61 | -log-buffer-name'...TYPE.is.a.la |
| 3e0e0 | 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 44 41 54 41 | bel.for.data.being.logged...DATA |
| 3e100 | 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 20 75 6e 6c | .is.assumed.to.be.Valid.JSON.unl |
| 3e120 | 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 75 72 72 65 | ess.NO-JSON.is.t."...(with-curre |
| 3e140 | 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 67 70 74 | nt-buffer.(get-buffer-create.gpt |
| 3e160 | 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 74 20 28 28 | el--log-buffer-name).....(let.(( |
| 3e180 | 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 20 20 20 20 | p.(goto-char.(point-max))))..... |
| 3e1a0 | 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 22 29 29 0a | ..(unless.(bobp).(insert."\n")). |
| 3e1c0 | 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 74 65 6c 5c | ......(insert.(format."{\"gptel\ |
| 3e1e0 | 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 29 29 0a 20 | ":.\"%s\",.".(or.type."none")).. |
| 3e200 | 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 72 69 6e 67 | .............(format-time-string |
| 3e220 | 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 25 48 3a 25 | ."\"timestamp\":.\"%Y-%m-%d.%H:% |
| 3e240 | 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 74 61 29 0a | M:%S\"}\n")...............data). |
| 3e260 | 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 65 2d 65 72 | ......(unless.no-json.(ignore-er |
| 3e280 | 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 6f 69 6e 74 | rors.(json-pretty-print.p.(point |
| 3e2a0 | 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 73 74 6f 72 | )))))))....;;;.Saving.and.restor |
| 3e2c0 | 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 74 6f 72 65 | ing.state..(defun.gptel--restore |
| 3e2e0 | 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 74 6f 72 65 | -props.(bounds-alist)..."Restore |
| 3e300 | 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 2d 41 4c 49 | .text.properties.from.BOUNDS-ALI |
| 3e320 | 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 42 4f 55 4e | ST..BOUNDS-ALIST.is.(PROP...BOUN |
| 3e340 | 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 55 4e 44 2e | DS)...BOUNDS.is.a.list.of.BOUND. |
| 3e360 | 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 45 4e 44 20 | ..Each.BOUND.is.either.(BEG.END. |
| 3e380 | 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 20 45 4e 44 | VAL).or.(BEG.END)...For.(BEG.END |
| 3e3a0 | 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 6e 69 6c 2c | .VAL).forms,.even.if.VAL.is.nil, |
| 3e3c0 | 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 73 65 74 20 | .the.gptel.property.will.be.set. |
| 3e3e0 | 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 4e 44 29 20 | to.(PROP...VAL)...For.(BEG.END). |
| 3e400 | 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 65 73 70 6f | forms,.except.when.PROP.is.respo |
| 3e420 | 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 65 74 20 74 | nse,.the.gptel.property.is.set.t |
| 3e440 | 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 75 63 74 75 | o.just.PROP...The.legacy.structu |
| 3e460 | 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 20 61 6c 73 | re,.a.list.of.(BEG...END).is.als |
| 3e480 | 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 69 65 64 20 | o.supported.and.will.be.applied. |
| 3e4a0 | 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 20 74 68 65 | before.being.re-persisted.in.the |
| 3e4c0 | 20 6e 65 77 20 73 74 72 75 63 74 75 72 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 6f 64 69 66 69 | .new.structure."...(let.((modifi |
| 3e4e0 | 65 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 29 29 0a 20 20 20 20 28 69 66 | ed.(buffer-modified-p))).....(if |
| 3e500 | 20 28 73 79 6d 62 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 | .(symbolp.(caar.bounds-alist)).. |
| 3e520 | 20 20 20 20 20 20 20 28 6d 61 70 63 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 | .......(mapc..........(lambda.(b |
| 3e540 | 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 | ounds)............(let*.((prop.( |
| 3e560 | 70 6f 70 20 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 | pop.bounds)))..............(mapc |
| 3e580 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 6f 75 6e 64 29 0a 20 | ...............(lambda.(bound).. |
| 3e5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 2d 68 61 73 2d 76 | ...............(let.((prop-has-v |
| 3e5c0 | 61 6c 20 28 3e 20 28 6c 65 6e 67 74 68 20 62 6f 75 6e 64 29 20 32 29 29 29 0a 20 20 20 20 20 20 | al.(>.(length.bound).2)))....... |
| 3e5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 | ............(add-text-properties |
| 3e600 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 70 20 62 6f 75 6e 64 29 20 | ....................(pop.bound). |
| 3e620 | 28 70 6f 70 20 62 6f 75 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | (pop.bound)....................( |
| 3e640 | 69 66 20 28 65 71 20 70 72 6f 70 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 | if.(eq.prop.'response).......... |
| 3e660 | 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 6f 6e 73 65 20 66 | ..............'(gptel.response.f |
| 3e680 | 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 20 20 20 20 20 | ront-sticky.(gptel))............ |
| 3e6a0 | 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 20 20 20 20 | ..........(list.'gptel.......... |
| 3e6c0 | 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 2d 76 | ..................(if.prop-has-v |
| 3e6e0 | 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 20 20 | al.............................. |
| 3e700 | 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))....... |
| 3e720 | 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 70 29 29 29 29 29 | .......................prop))))) |
| 3e740 | 29 0a 20 20 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 | )...............bounds)))....... |
| 3e760 | 20 20 20 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 | ...bounds-alist).......(mapc.(la |
| 3e780 | 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 61 64 64 2d | mbda.(bound)...............(add- |
| 3e7a0 | 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 20 28 | text-properties................( |
| 3e7c0 | 63 61 72 20 62 6f 75 6e 64 29 20 28 63 64 72 20 62 6f 75 6e 64 29 20 27 28 67 70 74 65 6c 20 72 | car.bound).(cdr.bound).'(gptel.r |
| 3e7e0 | 65 73 70 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 29 29 0a | esponse.front-sticky.(gptel)))). |
| 3e800 | 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 28 | ............bounds-alist)).....( |
| 3e820 | 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6d 6f 64 69 66 69 65 64 29 29 | set-buffer-modified-p.modified)) |
| 3e840 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 28 | )..(defun.gptel--restore-state.( |
| 3e860 | 29 0a 20 20 22 52 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 77 68 65 6e 20 74 75 | )..."Restore.gptel.state.when.tu |
| 3e880 | 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 77 68 65 6e 20 | rning.on.`gptel-mode'."...(when. |
| 3e8a0 | 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 69 66 20 28 64 65 72 69 | (buffer-file-name).....(if.(deri |
| 3e8c0 | 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 28 70 | ved-mode-p.'org-mode).........(p |
| 3e8e0 | 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f | rogn...........(require.'gptel-o |
| 3e900 | 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 | rg)...........(gptel-org--restor |
| 3e920 | 65 2d 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 62 6f 75 | e-state)).......(when.gptel--bou |
| 3e940 | 6e 64 73 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 70 72 6f 70 | nds.........(gptel--restore-prop |
| 3e960 | 73 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | s.gptel--bounds).........(messag |
| 3e980 | 65 20 22 67 70 74 65 6c 20 63 68 61 74 20 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 | e."gptel.chat.restored."))...... |
| 3e9a0 | 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 | .(when.gptel--backend-name...... |
| 3e9c0 | 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 | ...(if-let*.((backend.(alist-get |
| 3e9e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 | .............................gpt |
| 3ea00 | 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 | el--backend-name.gptel--known-ba |
| 3ea20 | 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 20 20 | ckends.......................... |
| 3ea40 | 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ...nil.nil.#'equal)))........... |
| 3ea60 | 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b | ..(setq-local.gptel-backend.back |
| 3ea80 | 65 6e 64 29 0a 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 | end)...........(message......... |
| 3eaa0 | 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 | ...(substitute-command-keys..... |
| 3eac0 | 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 22 43 6f | ........(concat.............."Co |
| 3eae0 | 75 6c 64 20 6e 6f 74 20 61 63 74 69 76 61 74 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 5c | uld.not.activate.gptel.backend.\ |
| 3eb00 | 22 25 73 5c 22 21 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 62 | "%s\"!..".............."Switch.b |
| 3eb20 | 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 |
| 3eb40 | 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]"............. |
| 3eb60 | 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 20 20 20 20 | .".before.using.gptel."))....... |
| 3eb80 | 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 29 29 0a 0a | .....gptel--backend-name)))))).. |
| 3eba0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 57 | (defun.gptel--save-state.()..."W |
| 3ebc0 | 72 69 74 65 20 74 68 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 74 6f 20 74 68 65 20 62 75 66 66 | rite.the.gptel.state.to.the.buff |
| 3ebe0 | 65 72 2e 0a 0a 54 68 69 73 20 73 61 76 65 73 20 63 68 61 74 20 6d 65 74 61 64 61 74 61 20 77 68 | er...This.saves.chat.metadata.wh |
| 3ec00 | 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 64 69 73 6b 2e 20 20 | en.writing.the.buffer.to.disk... |
| 3ec20 | 54 6f 0a 72 65 73 74 6f 72 65 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 2c 20 74 75 72 6e 20 | To.restore.a.chat.session,.turn. |
| 3ec40 | 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 61 66 74 65 72 20 6f 70 65 6e 69 6e 67 20 74 68 | on.`gptel-mode'.after.opening.th |
| 3ec60 | 65 0a 66 69 6c 65 2e 22 0a 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 73 61 76 | e.file."...(run-hooks.'gptel-sav |
| 3ec80 | 65 2d 73 74 61 74 65 2d 68 6f 6f 6b 29 0a 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 | e-state-hook)...(if.(derived-mod |
| 3eca0 | 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 | e-p.'org-mode).......(progn..... |
| 3ecc0 | 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 20 20 | ....(require.'gptel-org)........ |
| 3ece0 | 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d 73 74 61 74 65 29 29 0a 20 20 20 20 28 6c | .(gptel-org--save-state)).....(l |
| 3ed00 | 65 74 20 28 28 70 72 69 6e 74 2d 65 73 63 61 70 65 2d 6e 65 77 6c 69 6e 65 73 20 74 29 29 0a 20 | et.((print-escape-newlines.t)).. |
| 3ed20 | 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 28 73 61 | .....(save-excursion.........(sa |
| 3ed40 | 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 | ve-restriction...........(add-fi |
| 3ed60 | 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 67 | le-local-variable.'gptel-model.g |
| 3ed80 | 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d | ptel-model)...........(add-file- |
| 3eda0 | 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e | local-variable.'gptel--backend-n |
| 3edc0 | 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 20 | ame............................. |
| 3ede0 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c | .......(gptel-backend-name.gptel |
| 3ee00 | 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 | -backend))...........(unless.(eq |
| 3ee20 | 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 2d 74 65 6d 70 65 72 | ual.(default-value.'gptel-temper |
| 3ee40 | 61 74 75 72 65 29 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 20 20 20 20 20 20 | ature).gptel-temperature)....... |
| 3ee60 | 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.' |
| 3ee80 | 67 70 74 65 6c 2d 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 | gptel-temperature.gptel-temperat |
| 3eea0 | 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 | ure))...........(unless.(equal.( |
| 3eec0 | 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | default-value.'gptel--system-mes |
| 3eee0 | 73 61 67 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 | sage)........................... |
| 3ef00 | 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 | .gptel--system-message)......... |
| 3ef20 | 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 0a 20 20 20 | ....(add-file-local-variable.... |
| 3ef40 | 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 73 73 61 67 65 | ..........'gptel--system-message |
| 3ef60 | 0a 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 74 65 6c 2d 2d | ..............(car-safe.(gptel-- |
| 3ef80 | 70 61 72 73 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 | parse-directive.gptel--system-me |
| 3efa0 | 73 73 61 67 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d | ssage))))...........(when.gptel- |
| 3efc0 | 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 | max-tokens.............(add-file |
| 3efe0 | 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e | -local-variable.'gptel-max-token |
| 3f000 | 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | s.gptel-max-tokens))...........( |
| 3f020 | 77 68 65 6e 20 28 6e 61 74 6e 75 6d 70 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 | when.(natnump.gptel--num-message |
| 3f040 | 73 2d 74 6f 2d 73 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 | s-to-send).............(add-file |
| 3f060 | 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 | -local-variable.'gptel--num-mess |
| 3f080 | 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ages-to-send.................... |
| 3f0a0 | 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 6e 75 6d 2d 6d 65 73 | ..................gptel--num-mes |
| 3f0c0 | 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 | sages-to-send))...........(add-f |
| 3f0e0 | 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 | ile-local-variable.'gptel--bound |
| 3f100 | 73 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 29 29 29 29 | s.(gptel--get-buffer-bounds))))) |
| 3f120 | 29 29 0a 0a 0c 0a 3b 3b 3b 20 4d 69 6e 6f 72 20 6d 6f 64 65 20 61 6e 64 20 55 49 0a 0a 3b 3b 20 | ))....;;;.Minor.mode.and.UI..;;. |
| 3f140 | 4e 4f 54 45 3a 20 49 74 27 73 20 6e 6f 74 20 63 6c 65 61 72 20 74 68 61 74 20 74 68 69 73 20 69 | NOTE:.It's.not.clear.that.this.i |
| 3f160 | 73 20 74 68 65 20 62 65 73 74 20 73 74 72 61 74 65 67 79 3a 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 | s.the.best.strategy:.(add-to-lis |
| 3f180 | 74 20 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 64 65 66 61 75 6c 74 2d 6e 6f 6e 73 74 69 63 | t.'text-property-default-nonstic |
| 3f1a0 | 6b 79 20 27 28 67 70 74 65 6c 20 2e 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | ky.'(gptel...t))..(defun.gptel-- |
| 3f1c0 | 69 6e 68 65 72 69 74 2d 73 74 69 63 6b 69 6e 65 73 73 20 28 62 65 67 20 65 6e 64 20 70 72 65 29 | inherit-stickiness.(beg.end.pre) |
| 3f1e0 | 0a 20 20 22 4d 61 72 6b 20 61 6e 79 20 63 68 61 6e 67 65 20 74 6f 20 61 6e 20 4c 4c 4d 20 72 65 | ..."Mark.any.change.to.an.LLM.re |
| 3f200 | 73 70 6f 6e 73 65 20 72 65 67 69 6f 6e 20 61 73 20 61 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 49 6e | sponse.region.as.a.response...In |
| 3f220 | 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 60 61 66 74 65 72 2d 63 68 61 | tended.to.be.added.to.`after-cha |
| 3f240 | 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 27 20 69 6e 20 67 70 74 65 6c 20 63 68 61 74 20 62 75 66 | nge-functions'.in.gptel.chat.buf |
| 3f260 | 66 65 72 73 2c 0a 77 68 69 63 68 20 73 65 65 20 66 6f 72 20 42 45 47 2c 20 45 4e 44 20 61 6e 64 | fers,.which.see.for.BEG,.END.and |
| 3f280 | 20 50 52 45 2e 22 0a 20 20 28 61 6e 64 20 28 3d 20 70 72 65 20 30 29 20 28 3c 20 65 6e 64 20 28 | .PRE."...(and.(=.pre.0).(<.end.( |
| 3f2a0 | 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 76 | point-max))........(and-let*.((v |
| 3f2c0 | 61 6c 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 65 6e 64 20 27 67 70 74 65 6c | al.(get-text-property.end.'gptel |
| 3f2e0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 | )))..........(add-text-propertie |
| 3f300 | 73 0a 20 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e 64 20 60 28 67 70 74 65 6c 20 2c 76 61 6c | s...........beg.end.`(gptel.,val |
| 3f320 | 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 | .front-sticky.(gptel))))))..;;;# |
| 3f340 | 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 67 70 | ##autoload.(define-minor-mode.gp |
| 3f360 | 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 65 72 | tel-mode..."Minor.mode.for.inter |
| 3f380 | 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 22 20 | acting.with.LLMs."...:lighter.". |
| 3f3a0 | 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 61 6b | GPT"...:keymap...(let.((map.(mak |
| 3f3c0 | 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 2d 6b | e-sparse-keymap))).....(define-k |
| 3f3e0 | 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 2d 73 | ey.map.(kbd."C-c.RET").#'gptel-s |
| 3f400 | 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 0a 20 | end).....map)...(if.gptel-mode.. |
| 3f420 | 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 65 72 | .....(progn.........(unless.(der |
| 3f440 | 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 6e 2d | ived-mode-p.'org-mode.'markdown- |
| 3f460 | 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 74 65 | mode.'text-mode)...........(gpte |
| 3f480 | 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 6f 72 | l-mode.-1)...........(user-error |
| 3f4a0 | 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 73 75 | .(format."`gptel-mode'.is.not.su |
| 3f4c0 | 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 29 0a | pported.in.`%s'.".major-mode))). |
| 3f4e0 | 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 2d 68 | ........(add-hook.'before-save-h |
| 3f500 | 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 0a 20 | ook.#'gptel--save-state.nil.t).. |
| 3f520 | 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 | .......(add-hook.'after-change-f |
| 3f540 | 75 6e 63 74 69 6f 6e 73 20 27 67 70 74 65 6c 2d 2d 69 6e 68 65 72 69 74 2d 73 74 69 63 6b 69 6e | unctions.'gptel--inherit-stickin |
| 3f560 | 65 73 73 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 74 74 | ess.nil.t).........(gptel--prett |
| 3f580 | 69 66 79 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 | ify-preset).........(when.(deriv |
| 3f5a0 | 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 20 3b | ed-mode-p.'org-mode)...........; |
| 3f5c0 | 3b 20 57 6f 72 6b 20 61 72 6f 75 6e 64 20 62 75 67 20 69 6e 20 60 6f 72 67 2d 66 6f 6e 74 69 66 | ;.Work.around.bug.in.`org-fontif |
| 3f5e0 | 79 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 28 61 64 64 | y-extend-region'............(add |
| 3f600 | 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 63 74 | -hook.'gptel-post-response-funct |
| 3f620 | 69 6f 6e 73 20 23 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 6c 75 73 68 20 6e 69 6c 20 74 29 29 0a 20 | ions.#'font-lock-flush.nil.t)).. |
| 3f640 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 29 0a 20 20 | .......(gptel--restore-state)... |
| 3f660 | 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a | ......(if.gptel-use-header-line. |
| 3f680 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 | ..........(setq.gptel--old-heade |
| 3f6a0 | 72 2d 6c 69 6e 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 | r-line.header-line-format....... |
| 3f6c0 | 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 | ..........header-line-format.... |
| 3f6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 | .............(list.'(:eval.(conc |
| 3f700 | 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 | at.(propertize.".".'display.'(sp |
| 3f720 | 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ace.:align-to.0))............... |
| 3f740 | 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 22 20 28 67 | .................(format."%s".(g |
| 3f760 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | ptel-backend-name.gptel-backend) |
| 3f780 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 | ))).......................(prope |
| 3f7a0 | 72 74 69 7a 65 20 22 20 52 65 61 64 79 22 20 27 66 61 63 65 20 27 73 75 63 63 65 73 73 29 0a 20 | rtize.".Ready".'face.'success).. |
| 3f7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 0a 20 20 20 | .....................'(:eval.... |
| 3f7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 6f 64 | .....................(let*.((mod |
| 3f800 | 65 6c 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 | el.(gptel--model-name.gptel-mode |
| 3f820 | 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 20 20 | l))............................. |
| 3f840 | 20 20 28 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(system....................... |
| 3f860 | 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 20 | .........(propertize............ |
| 3f880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 0a | .....................(buttonize. |
| 3f8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3f8c0 | 20 28 66 6f 72 6d 61 74 20 22 5b 50 72 6f 6d 70 74 3a 20 25 73 5d 22 0a 20 20 20 20 20 20 20 20 | .(format."[Prompt:.%s]"......... |
| 3f8e0 | 20 20 20 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 63 | ..........................(or.(c |
| 3f900 | 61 72 2d 73 61 66 65 20 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | ar-safe.(rassoc.gptel--system-me |
| 3f920 | 73 73 61 67 65 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 0a 20 20 20 20 20 20 20 | ssage.gptel-directives))........ |
| 3f940 | 20 20 20 20 20 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 |
| 3f960 | 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 20 67 70 74 65 6c 2d 2d 73 79 | el--describe-directive.gptel--sy |
| 3f980 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 31 35 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | stem-message.15))).............. |
| 3f9a0 | 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 26 72 65 | ....................(lambda.(&re |
| 3f9c0 | 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 29 0a 20 20 | st._).(gptel-system-prompt)))... |
| 3f9e0 | 20 20 20 20 20 20 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 6d | ..............................'m |
| 3fa00 | 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ouse-face.'highlight............ |
| 3fa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 | .....................'help-echo. |
| 3fa40 | 22 53 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 20 73 65 73 73 69 6f 6e 22 29 29 0a 20 | "System.message.for.session")).. |
| 3fa60 | 20 20 20 20 20 20 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 | .............................(co |
| 3fa80 | 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntext........................... |
| 3faa0 | 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 | .....(and.gptel-context--alist.. |
| 3fac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 3fae0 | 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 65 6e 74 72 79 20 69 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | cl-loop.for.entry.in.gptel-conte |
| 3fb00 | 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt--alist....................... |
| 3fb20 | 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 72 70 20 28 63 61 72 20 65 6e 74 72 | ...........if.(bufferp.(car.entr |
| 3fb40 | 79 29 29 20 63 6f 75 6e 74 20 69 74 20 69 6e 74 6f 20 62 75 66 73 0a 20 20 20 20 20 20 20 20 20 | y)).count.it.into.bufs.......... |
| 3fb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 75 | ........................else.cou |
| 3fb80 | 6e 74 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 65 6e 74 72 79 29 29 20 69 6e 74 6f 20 66 69 | nt.(stringp.(car.entry)).into.fi |
| 3fba0 | 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | les............................. |
| 3fbc0 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....finally.return............. |
| 3fbe0 | 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 65 | .....................(propertize |
| 3fc00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3fc20 | 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 20 20 | ...(buttonize................... |
| 3fc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5b 43 6f 6e 74 65 | .................(concat."[Conte |
| 3fc60 | 78 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt:."........................... |
| 3fc80 | 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 30 29 20 28 66 6f 72 6d 61 | ..........(and.(>.bufs.0).(forma |
| 3fca0 | 74 20 22 25 64 20 62 75 66 22 20 62 75 66 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t."%d.buf".bufs))............... |
| 3fcc0 | 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 20 62 75 | ......................(and.(>.bu |
| 3fce0 | 66 73 20 31 29 20 22 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fs.1)."s")...................... |
| 3fd00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 62 75 66 73 20 30 29 20 28 | ...............(and.(>.bufs.0).( |
| 3fd20 | 3e 20 66 69 6c 65 73 20 30 29 20 22 2c 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | >.files.0).",.")................ |
| 3fd40 | 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 20 66 69 6c | .....................(and.(>.fil |
| 3fd60 | 65 73 20 30 29 20 28 66 6f 72 6d 61 74 20 22 25 64 20 66 69 6c 65 22 20 66 69 6c 65 73 29 29 0a | es.0).(format."%d.file".files)). |
| 3fd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3fda0 | 20 20 20 20 28 61 6e 64 20 28 3e 20 66 69 6c 65 73 20 31 29 20 22 73 22 29 0a 20 20 20 20 20 20 | ....(and.(>.files.1)."s")....... |
| 3fdc0 | 20 20 20 20 20 20 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 5d | .............................."] |
| 3fde0 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ").............................. |
| 3fe00 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 | ......(lambda.(&rest._)......... |
| 3fe20 | 20 20 20 20 20 20 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 | .............................(re |
| 3fe40 | 71 75 69 72 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 | quire.'gptel-context)........... |
| 3fe60 | 20 20 20 20 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 |
| 3fe80 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 29 0a 20 20 20 20 20 | l-context--buffer-setup)))...... |
| 3fea0 | 20 20 20 20 20 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 6d 6f | .............................'mo |
| 3fec0 | 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | use-face.'highlight............. |
| 3fee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f | ......................'help-echo |
| 3ff00 | 20 22 41 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 22 29 29 29 29 0a 20 20 20 20 | ."Active.gptel.context"))))..... |
| 3ff20 | 20 20 20 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 6f 67 67 6c | ..........................(toggl |
| 3ff40 | 65 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-track-media................... |
| 3ff60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 | .............(lambda.(&rest._).. |
| 3ff80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3ffa0 | 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 | (setq-local.gptel-track-media... |
| 3ffc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3ffe0 | 28 6e 6f 74 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 | (not.gptel-track-media))........ |
| 40000 | 20 20 20 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 67 70 | ..........................(if.gp |
| 40020 | 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................. |
| 40040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 0a 20 20 | .....................(message... |
| 40060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 40080 | 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 20 20 | ....(concat..................... |
| 400a0 | 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 69 | ..................."Sending.medi |
| 400c0 | 61 20 66 72 6f 6d 20 69 6e 63 6c 75 64 65 64 20 6c 69 6e 6b 73 2e 20 20 54 6f 20 69 6e 63 6c 75 | a.from.included.links...To.inclu |
| 400e0 | 64 65 20 6d 65 64 69 61 2c 20 63 72 65 61 74 65 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | de.media,.create.".............. |
| 40100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 20 5c 22 73 | .........................."a.\"s |
| 40120 | 74 61 6e 64 61 6c 6f 6e 65 5c 22 20 6c 69 6e 6b 20 69 6e 20 61 20 70 61 72 61 67 72 61 70 68 20 | tandalone\".link.in.a.paragraph. |
| 40140 | 62 79 20 69 74 73 65 6c 66 2c 20 73 65 70 61 72 61 74 65 64 20 66 72 6f 6d 20 73 75 72 72 6f 75 | by.itself,.separated.from.surrou |
| 40160 | 6e 64 69 6e 67 20 74 65 78 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nding.text.")).................. |
| 40180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 6e 6f | ..................(message."Igno |
| 401a0 | 72 69 6e 67 20 69 6d 61 67 65 20 6c 69 6e 6b 73 2e 20 20 4f 6e 6c 79 20 6c 69 6e 6b 20 74 65 78 | ring.image.links...Only.link.tex |
| 401c0 | 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.will.be.sent.")).............. |
| 401e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 | ....................(run-at-time |
| 40200 | 20 30 20 6e 69 6c 20 23 27 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 | .0.nil.#'force-mode-line-update) |
| 40220 | 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 | )).............................. |
| 40240 | 20 28 74 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(track-media................... |
| 40260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d | .............(and.(gptel--model- |
| 40280 | 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | capable-p.'media)............... |
| 402a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 74 72 61 63 | ..................(if.gptel-trac |
| 402c0 | 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 20 20 20 | k-media......................... |
| 402e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 | ............(propertize......... |
| 40300 | 20 20 20 20 20 20 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 | .............................(bu |
| 40320 | 74 74 6f 6e 69 7a 65 20 22 5b 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 6f 67 67 6c 65 | ttonize."[Sending.media]".toggle |
| 40340 | 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -track-media)................... |
| 40360 | 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.' |
| 40380 | 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....................... |
| 403a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 | ...............'help-echo....... |
| 403c0 | 20 20 20 20 20 20 20 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 | ..............................." |
| 403e0 | 53 65 6e 64 69 6e 67 20 6d 65 64 69 61 20 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e 65 20 6c 69 | Sending.media.from.standalone.li |
| 40400 | 6e 6b 73 2f 75 72 6c 73 20 77 68 65 6e 20 73 75 70 70 6f 72 74 65 64 2e 5c 6e 43 6c 69 63 6b 20 | nks/urls.when.supported.\nClick. |
| 40420 | 74 6f 20 74 6f 67 67 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | to.toggle")..................... |
| 40440 | 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....... |
| 40460 | 20 20 20 20 20 20 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 | .............................(bu |
| 40480 | 74 74 6f 6e 69 7a 65 20 22 5b 49 67 6e 6f 72 69 6e 67 20 6d 65 64 69 61 5d 22 20 74 6f 67 67 6c | ttonize."[Ignoring.media]".toggl |
| 404a0 | 65 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-track-media).................. |
| 404c0 | 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 |
| 404e0 | 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........................ |
| 40500 | 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 20 20 20 | ............'help-echo.......... |
| 40520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 49 67 6e 6f 72 | .........................."Ignor |
| 40540 | 69 6e 67 20 69 6d 61 67 65 73 20 66 72 6f 6d 20 73 74 61 6e 64 61 6c 6f 6e 65 20 6c 69 6e 6b 73 | ing.images.from.standalone.links |
| 40560 | 2f 75 72 6c 73 2e 5c 6e 43 6c 69 63 6b 20 74 6f 20 74 6f 67 67 6c 65 22 29 29 29 29 0a 20 20 20 | /urls.\nClick.to.toggle")))).... |
| 40580 | 20 20 20 20 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 6f 67 67 | ...........................(togg |
| 405a0 | 6c 65 2d 74 6f 6f 6c 73 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 69 6e 74 65 | le-tools.(lambda.(&rest._).(inte |
| 405c0 | 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ractive)........................ |
| 405e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 | .......................(run-at-t |
| 40600 | 69 6d 65 20 30 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ime.0.nil....................... |
| 40620 | 20 20 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 | .........................(lambda |
| 40640 | 20 28 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d | .().(call-interactively.#'gptel- |
| 40660 | 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 20 20 20 | tools)))))...................... |
| 40680 | 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 73 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c | .........(tools.(when.(and.gptel |
| 406a0 | 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 20 20 | -use-tools.gptel-tools)......... |
| 406c0 | 20 20 20 20 20 20 20 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 |
| 406e0 | 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....................... |
| 40700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 70 63 61 | .................(buttonize.(pca |
| 40720 | 73 65 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 | se.(length.gptel-tools)......... |
| 40740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 40760 | 20 20 20 20 20 20 20 20 20 20 20 28 30 20 22 5b 4e 6f 20 74 6f 6f 6c 73 5d 22 29 20 28 31 20 22 | ...........(0."[No.tools]").(1." |
| 40780 | 5b 31 20 74 6f 6f 6c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | [1.tool]")...................... |
| 407a0 | 20 20 20 20 20 20 20 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 |
| 407c0 | 65 6e 20 28 66 6f 72 6d 61 74 20 22 5b 25 64 20 74 6f 6f 6c 73 5d 22 20 6c 65 6e 29 29 29 0a 20 | en.(format."[%d.tools]".len))).. |
| 407e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 40800 | 20 20 20 20 20 20 20 74 6f 67 67 6c 65 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .......toggle-tools)............ |
| 40820 | 20 20 20 20 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 6d 6f 75 | ............................'mou |
| 40840 | 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | se-face.'highlight.............. |
| 40860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d | ..........................'help- |
| 40880 | 65 63 68 6f 20 22 53 65 6c 65 63 74 20 74 6f 6f 6c 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 | echo."Select.tools"))))......... |
| 408a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 | .................(concat........ |
| 408c0 | 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.. |
| 408e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 27 64 | ..........................".".'d |
| 40900 | 69 73 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | isplay.......................... |
| 40920 | 20 20 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 28 2d 20 72 69 67 68 74 0a 20 20 20 | ..`(space.:align-to.(-.right.... |
| 40940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 40960 | 20 20 20 20 20 20 20 20 20 20 20 2c 28 2b 20 35 20 28 6c 65 6e 67 74 68 20 6d 6f 64 65 6c 29 20 | ...........,(+.5.(length.model). |
| 40980 | 28 6c 65 6e 67 74 68 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (length.system)................. |
| 409a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 409c0 | 28 6c 65 6e 67 74 68 20 74 72 61 63 6b 2d 6d 65 64 69 61 29 20 28 6c 65 6e 67 74 68 20 63 6f 6e | (length.track-media).(length.con |
| 409e0 | 74 65 78 74 29 20 28 6c 65 6e 67 74 68 20 74 6f 6f 6c 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 | text).(length.tools)))))........ |
| 40a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 73 20 28 61 6e 64 20 74 72 | ...................tools.(and.tr |
| 40a20 | 61 63 6b 2d 6d 65 64 69 61 20 22 20 22 29 20 74 72 61 63 6b 2d 6d 65 64 69 61 20 28 61 6e 64 20 | ack-media.".").track-media.(and. |
| 40a40 | 63 6f 6e 74 65 78 74 20 22 20 22 29 20 63 6f 6e 74 65 78 74 20 22 20 22 20 73 79 73 74 65 6d 20 | context.".").context.".".system. |
| 40a60 | 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | "."...........................(p |
| 40a80 | 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....................... |
| 40aa0 | 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 5b 22 20 6d 6f 64 65 | .....(buttonize.(concat."[".mode |
| 40ac0 | 6c 20 22 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l."]").......................... |
| 40ae0 | 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 | ...(lambda.(&rest._).(gptel-menu |
| 40b00 | 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 27 | )))............................' |
| 40b20 | 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 | mouse-face.'highlight........... |
| 40b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 4d 6f 64 | .................'help-echo."Mod |
| 40b60 | 65 6c 20 69 6e 20 75 73 65 22 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | el.in.use"))))))...........(setq |
| 40b80 | 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .mode-line-process.............. |
| 40ba0 | 20 20 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 | ...'(:eval.(concat.".".......... |
| 40bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 67 70 74 65 | ................(buttonize.(gpte |
| 40be0 | 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 20 | l--model-name.gptel-model)...... |
| 40c00 | 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.( |
| 40c20 | 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 29 29 0a 20 20 20 | &rest._).(gptel-menu)))))))).... |
| 40c40 | 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 73 61 76 65 2d 68 6f 6f 6b 20 | .(remove-hook.'before-save-hook. |
| 40c60 | 23 27 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 74 29 0a 20 20 20 20 28 72 65 6d 6f | #'gptel--save-state.t).....(remo |
| 40c80 | 76 65 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 63 68 61 6e 67 65 2d 66 75 6e 63 74 69 6f 6e 73 20 | ve-hook.'after-change-functions. |
| 40ca0 | 27 67 70 74 65 6c 2d 2d 69 6e 68 65 72 69 74 2d 73 74 69 63 6b 69 6e 65 73 73 20 74 29 0a 20 20 | 'gptel--inherit-stickiness.t)... |
| 40cc0 | 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 74 74 69 66 79 2d 70 72 65 73 65 74 29 0a 20 20 20 20 28 | ..(gptel--prettify-preset).....( |
| 40ce0 | 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 | if.gptel-use-header-line........ |
| 40d00 | 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 67 70 74 65 6c 2d | .(setq.header-line-format.gptel- |
| 40d20 | 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 | -old-header-line...............g |
| 40d40 | 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 20 20 20 20 20 | ptel--old-header-line.nil)...... |
| 40d60 | 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 29 29 29 | .(setq.mode-line-process.nil)))) |
| 40d80 | 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 20 20 20 20 20 | ..(defvar.gptel--fsm-last)...... |
| 40da0 | 20 20 20 20 20 20 20 20 20 20 3b 44 65 66 69 6e 65 64 20 66 75 72 74 68 65 72 20 62 65 6c 6f 77 | ..........;Defined.further.below |
| 40dc0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 28 26 6f | .(defun.gptel--update-status.(&o |
| 40de0 | 70 74 69 6f 6e 61 6c 20 6d 73 67 20 66 61 63 65 29 0a 20 20 22 55 70 64 61 74 65 20 73 74 61 74 | ptional.msg.face)..."Update.stat |
| 40e00 | 75 73 20 4d 53 47 20 69 6e 20 46 41 43 45 2e 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d | us.MSG.in.FACE."...(when.gptel-m |
| 40e20 | 6f 64 65 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e | ode.....(if.gptel-use-header-lin |
| 40e40 | 65 0a 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 63 6f 6e 73 70 20 68 65 61 64 65 72 2d 6c 69 6e | e.........(and.(consp.header-lin |
| 40e60 | 65 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 6e 74 | e-format)..............(setf.(nt |
| 40e80 | 68 20 31 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 | h.1.header-line-format)......... |
| 40ea0 | 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 | ...........(thread-first........ |
| 40ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............msg............... |
| 40ee0 | 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 67 | .......(buttonize.(lambda.(_).(g |
| 40f00 | 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ptel--inspect-fsm)))............ |
| 40f20 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 27 66 61 63 65 20 66 61 63 65 | ..........(propertize.'face.face |
| 40f40 | 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 29 29 29 0a 20 20 20 20 | .'mouse-face.'highlight))))..... |
| 40f60 | 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 6d 73 67 20 27 28 22 20 54 79 70 69 6e 67 2e 2e 2e 22 | ..(if.(member.msg.'(".Typing..." |
| 40f80 | 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | .".Waiting..."))...........(setq |
| 40fa0 | 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d | .mode-line-process.(propertize.m |
| 40fc0 | 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f | sg.'face.face)).........(setq.mo |
| 40fe0 | 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 | de-line-process...............'( |
| 41000 | 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :eval.(concat."."............... |
| 41020 | 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 | .........(buttonize.(gptel--mode |
| 41040 | 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | l-name.gptel-model)............. |
| 41060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f | ................(lambda.(&rest._ |
| 41080 | 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 | ).(gptel-menu)))))).........(mes |
| 410a0 | 73 61 67 65 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 | sage.(propertize.msg.'face.face) |
| 410c0 | 29 29 29 0a 20 20 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 | ))).....(force-mode-line-update) |
| 410e0 | 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 | ))..(declare-function.gptel-cont |
| 41100 | 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 0c 0a 3b 3b | ext--wrap."gptel-context")....;; |
| 41120 | 3b 20 53 74 72 75 63 74 75 72 65 64 20 6f 75 74 70 75 74 0a 28 64 65 66 76 61 72 20 67 70 74 65 | ;.Structured.output.(defvar.gpte |
| 41140 | 6c 2d 2d 73 63 68 65 6d 61 20 6e 69 6c 0a 20 20 22 52 65 73 70 6f 6e 73 65 20 6f 75 74 70 75 74 | l--schema.nil..."Response.output |
| 41160 | 20 73 63 68 65 6d 61 20 66 6f 72 20 62 61 63 6b 65 6e 64 73 20 74 68 61 74 20 73 75 70 70 6f 72 | .schema.for.backends.that.suppor |
| 41180 | 74 20 69 74 2e 22 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 | t.it.")..(cl-defgeneric.gptel--p |
| 411a0 | 61 72 73 65 2d 73 63 68 65 6d 61 20 28 5f 62 61 63 6b 65 6e 64 20 5f 73 63 68 65 6d 61 29 0a 20 | arse-schema.(_backend._schema).. |
| 411c0 | 20 22 50 61 72 73 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 | ."Parse.JSON.schema.in.a.backend |
| 411e0 | 2d 61 70 70 72 6f 70 72 69 61 74 65 20 77 61 79 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 | -appropriate.way.")..(defun.gpte |
| 41200 | 6c 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 28 73 63 68 65 6d 61 29 | l--dispatch-schema-type.(schema) |
| 41220 | 0a 20 20 22 43 6f 6e 76 65 72 74 20 53 43 48 45 4d 41 20 74 6f 20 61 20 76 61 6c 69 64 20 65 6c | ..."Convert.SCHEMA.to.a.valid.el |
| 41240 | 69 73 70 20 72 65 70 72 65 73 65 6e 74 61 74 69 6f 6e 2e 0a 0a 53 43 48 45 4d 41 20 63 61 6e 20 | isp.representation...SCHEMA.can. |
| 41260 | 62 65 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 73 65 76 65 72 61 6c 20 77 61 79 73 3a 0a 2d 20 | be.specified.in.several.ways:.-. |
| 41280 | 41 73 20 61 20 70 6c 69 73 74 20 72 65 61 64 61 62 6c 65 20 62 79 20 60 67 70 74 65 6c 2d 2d 6a | As.a.plist.readable.by.`gptel--j |
| 412a0 | 73 6f 6e 2d 65 6e 63 6f 64 65 27 0a 20 20 45 78 3a 20 28 3a 74 79 70 65 20 6f 62 6a 65 63 74 20 | son-encode'...Ex:.(:type.object. |
| 412c0 | 3a 70 72 6f 70 65 72 74 69 65 73 20 28 3a 6b 65 79 31 20 28 3a 74 79 70 65 20 6e 75 6d 62 65 72 | :properties.(:key1.(:type.number |
| 412e0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 5c 22 2e 2e 2e 5c 22 29 0a 20 20 20 20 20 20 20 20 20 | .:description.\"...\").......... |
| 41300 | 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 6b 65 79 32 20 28 3a | ........................:key2.(: |
| 41320 | 74 79 70 65 20 73 74 72 69 6e 67 29 29 29 0a 0a 2d 20 41 73 20 61 20 73 65 72 69 61 6c 69 7a 65 | type.string)))..-.As.a.serialize |
| 41340 | 64 20 4a 53 4f 4e 20 73 74 72 69 6e 67 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 70 61 73 | d.JSON.string,.which.will.be.pas |
| 41360 | 73 65 64 20 61 73 2d 69 73 2e 0a 0a 2d 20 49 6e 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 20 | sed.as-is...-.In.shorthand.form. |
| 41380 | 23 31 2c 20 61 20 73 69 6e 67 6c 65 2d 6c 69 6e 65 20 63 6f 6d 6d 61 2d 73 65 70 61 72 61 74 65 | #1,.a.single-line.comma-separate |
| 413a0 | 64 20 73 74 72 69 6e 67 20 77 69 74 68 20 6f 62 6a 65 63 74 0a 20 20 6b 65 79 73 20 61 6e 64 20 | d.string.with.object...keys.and. |
| 413c0 | 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 74 79 70 65 73 3a 0a 20 20 45 78 3a 20 5c 22 6b 65 79 31 | (optionally).types:...Ex:.\"key1 |
| 413e0 | 2c 20 6b 65 79 32 20 6e 75 6d 62 65 72 5c 22 0a 20 20 45 78 3a 20 5c 22 6b 65 79 31 20 73 74 72 | ,.key2.number\"...Ex:.\"key1.str |
| 41400 | 69 6e 67 2c 20 6b 65 79 32 20 69 6e 74 5c 22 0a 20 20 54 68 65 20 64 65 66 61 75 6c 74 20 74 79 | ing,.key2.int\"...The.default.ty |
| 41420 | 70 65 20 69 73 20 73 74 72 69 6e 67 2c 20 61 6e 64 20 74 79 70 65 73 20 63 61 6e 20 62 65 20 73 | pe.is.string,.and.types.can.be.s |
| 41440 | 68 6f 72 74 65 6e 65 64 20 28 69 6e 74 65 67 65 72 20 2d 3e 20 69 6e 74 29 20 61 73 0a 20 20 6c | hortened.(integer.->.int).as...l |
| 41460 | 6f 6e 67 20 61 73 20 74 68 65 79 20 6d 61 74 63 68 20 61 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 | ong.as.they.match.a.JSON.schema. |
| 41480 | 74 79 70 65 20 75 6e 69 71 75 65 6c 79 2e 0a 0a 2d 20 49 6e 20 73 68 6f 72 74 68 61 6e 64 20 66 | type.uniquely...-.In.shorthand.f |
| 414a0 | 6f 72 6d 20 23 32 2c 20 61 20 6d 75 6c 74 69 2d 6c 69 6e 65 20 73 74 72 69 6e 67 20 77 69 74 68 | orm.#2,.a.multi-line.string.with |
| 414c0 | 20 6b 65 79 73 2c 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 74 79 70 65 73 20 61 6e 64 0a 20 20 | .keys,.(optionally).types.and... |
| 414e0 | 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 20 64 65 73 63 72 69 70 74 69 6f 6e 73 0a 20 20 45 78 3a 20 | (optionally).descriptions...Ex:. |
| 41500 | 5c 22 6b 65 79 31 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 20 31 20 68 65 72 65 0a 20 20 20 20 20 | \"key1:.description.1.here...... |
| 41520 | 20 20 6b 65 79 32 20 69 6e 74 65 67 65 72 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 20 32 20 68 65 | ..key2.integer:.description.2.he |
| 41540 | 72 65 5c 22 0a 0a 2d 20 53 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 73 20 63 61 6e 20 62 65 20 70 | re\"..-.Shorthand.forms.can.be.p |
| 41560 | 6c 61 63 65 64 20 69 6e 73 69 64 65 20 5b 20 61 6e 64 20 5d 20 74 6f 20 73 70 65 63 69 66 79 20 | laced.inside.[.and.].to.specify. |
| 41580 | 61 6e 20 61 72 72 61 79 20 6f 66 0a 20 20 6f 62 6a 65 63 74 73 3a 0a 20 20 45 78 3a 20 5c 22 5b | an.array.of...objects:...Ex:.\"[ |
| 415a0 | 6b 65 79 31 2c 20 6b 65 79 32 20 6e 75 6d 62 65 72 5d 5c 22 0a 20 20 45 78 3a 20 5c 22 5b 6b 65 | key1,.key2.number]\"...Ex:.\"[ke |
| 415c0 | 79 31 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 20 31 20 68 65 72 65 0a 20 20 20 20 20 20 20 20 6b | y1:.description.1.here.........k |
| 415e0 | 65 79 32 20 69 6e 74 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 20 32 20 68 65 72 65 5d 5c 22 22 0a | ey2.int:.description.2.here]\"". |
| 41600 | 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 73 63 68 65 6d 61 29 20 20 3b 54 77 6f 20 70 | ..(when.(stringp.schema)..;Two.p |
| 41620 | 6f 73 73 69 62 69 6c 69 74 69 65 73 3a 20 73 65 72 69 61 6c 69 7a 65 64 20 4a 53 4f 4e 2c 20 6f | ossibilities:.serialized.JSON,.o |
| 41640 | 72 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 0a 20 20 20 20 28 6c 65 74 20 28 77 72 61 70 2d | r.shorthand.form.....(let.(wrap- |
| 41660 | 69 6e 2d 61 72 72 61 79 29 20 20 3b 46 6c 61 67 20 74 6f 20 77 72 61 70 20 74 68 65 20 6f 62 6a | in-array)..;Flag.to.wrap.the.obj |
| 41680 | 65 63 74 20 74 79 70 65 20 69 6e 20 61 6e 20 61 72 72 61 79 0a 20 20 20 20 20 20 28 77 69 74 68 | ect.type.in.an.array.......(with |
| 416a0 | 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 20 20 3b 50 61 72 73 65 72 20 66 6f 72 20 28 70 6f 73 73 | -temp-buffer...;Parser.for.(poss |
| 416c0 | 69 62 6c 79 29 20 73 68 6f 72 74 68 61 6e 64 20 66 6f 72 6d 73 0a 20 20 20 20 20 20 20 20 28 69 | ibly).shorthand.forms.........(i |
| 416e0 | 6e 73 65 72 74 20 73 63 68 65 6d 61 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 | nsert.schema).........(goto-char |
| 41700 | 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 | .(point-min)).(skip-chars-forwar |
| 41720 | 64 20 22 20 5c 6e 5c 72 5c 74 22 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 63 68 61 | d.".\n\r\t").........(if.(=.(cha |
| 41740 | 72 2d 61 66 74 65 72 29 20 3f 7b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 | r-after).?{).............(setq.s |
| 41760 | 63 68 65 6d 61 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 20 3b 41 73 73 75 6d | chema.(gptel--json-read)).;Assum |
| 41780 | 65 20 73 65 72 69 61 6c 69 7a 65 64 20 4a 53 4f 4e 20 73 63 68 65 6d 61 2c 20 77 65 27 72 65 20 | e.serialized.JSON.schema,.we're. |
| 417a0 | 64 6f 6e 65 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 63 68 61 72 2d 61 66 | done...........(when.(=.(char-af |
| 417c0 | 74 65 72 29 20 3f 5c 5b 29 20 20 20 20 3b 53 68 6f 72 74 68 61 6e 64 3a 20 61 73 73 75 6d 65 20 | ter).?\[)....;Shorthand:.assume. |
| 417e0 | 61 72 72 61 79 20 74 6f 70 2d 6c 65 76 65 6c 20 74 79 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 | array.top-level.type............ |
| 41800 | 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(save-excursion...............( |
| 41820 | 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 73 6b 69 70 2d 63 68 61 | goto-char.(point-max)).(skip-cha |
| 41840 | 72 73 2d 62 61 63 6b 77 61 72 64 20 22 20 5c 6e 5c 72 5c 74 22 29 20 28 64 65 6c 65 74 65 2d 63 | rs-backward.".\n\r\t").(delete-c |
| 41860 | 68 61 72 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 | har.-1)).............(delete-cha |
| 41880 | 72 20 31 29 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 44 65 6c 65 74 65 20 61 72 72 61 79 20 6d | r.1).............;Delete.array.m |
| 418a0 | 61 72 6b 65 72 73 20 5b 20 61 6e 64 20 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | arkers.[.and.].............(setq |
| 418c0 | 20 77 72 61 70 2d 69 6e 2d 61 72 72 61 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 | .wrap-in-array.t))...........(le |
| 418e0 | 74 20 28 20 70 72 6f 70 73 20 74 79 70 65 73 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 3b 4e 65 | t.(.props.types.descriptions.;Ne |
| 41900 | 73 74 65 64 20 6f 62 6a 65 63 74 20 61 6e 64 20 61 72 72 61 79 20 74 79 70 65 73 20 61 72 65 20 | sted.object.and.array.types.are. |
| 41920 | 64 69 73 61 6c 6c 6f 77 65 64 20 69 6e 20 73 68 6f 72 74 68 61 6e 64 0a 20 20 20 20 20 20 20 20 | disallowed.in.shorthand......... |
| 41940 | 20 20 20 20 20 20 20 20 20 28 61 6c 6c 2d 74 79 70 65 73 20 27 28 22 6e 75 6d 62 65 72 22 20 22 | .........(all-types.'("number"." |
| 41960 | 73 74 72 69 6e 67 22 20 22 69 6e 74 65 67 65 72 22 20 22 62 6f 6f 6c 65 61 6e 22 20 22 6e 75 6c | string"."integer"."boolean"."nul |
| 41980 | 6c 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 70 6f 69 6e 74 2d | l"))).............(if.(=.(point- |
| 419a0 | 6d 61 78 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 3b 20 53 69 6e 67 | max).(line-end-position)).;.Sing |
| 419c0 | 6c 65 20 6f 72 20 6d 75 6c 74 69 2d 6c 69 6e 65 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | le.or.multi-line?............... |
| 419e0 | 20 20 3b 3b 20 53 69 6e 67 6c 65 20 6c 69 6e 65 20 66 6f 72 6d 61 74 20 28 74 79 70 65 20 6f 70 | ..;;.Single.line.format.(type.op |
| 41a00 | 74 69 6f 6e 61 6c 29 3a 20 22 6b 65 79 31 20 74 79 70 65 2c 20 6b 65 79 32 2c 20 2e 2e 2e 22 0a | tional):."key1.type,.key2,....". |
| 41a20 | 20 20 20 20 20 20 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 63 | ................(while.(re-searc |
| 41a40 | 68 2d 66 6f 72 77 61 72 64 20 22 2c 3f 5c 5c 28 5b 5e 20 2c 5d 2b 5c 5c 29 20 2a 5c 5c 28 5b 5e | h-forward.",?\\([^.,]+\\).*\\([^ |
| 41a60 | 20 2c 5d 2a 5c 5c 5d 3f 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .,]*\\]?\\)".nil.t)............. |
| 41a80 | 20 20 20 20 20 20 28 70 75 73 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 70 72 6f | ......(push.(match-string.1).pro |
| 41aa0 | 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 | ps)...................(push.(if. |
| 41ac0 | 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 | (string-empty-p.(match-string.2) |
| 41ae0 | 29 0a 20 20 20 20 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 | )............................."s |
| 41b00 | 74 72 69 6e 67 22 20 28 63 61 72 20 28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 6d 61 | tring".(car.(all-completions.(ma |
| 41b20 | 74 63 68 2d 73 74 72 69 6e 67 20 32 29 20 61 6c 6c 2d 74 79 70 65 73 29 29 29 0a 20 20 20 20 20 | tch-string.2).all-types)))...... |
| 41b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 73 29 0a 20 20 20 20 20 20 | ...................types)....... |
| 41b60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 69 6c 20 64 65 73 63 72 69 70 74 69 6f | ............(push.nil.descriptio |
| 41b80 | 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 75 6c 74 69 2d 6c 69 6e 65 | ns))...............;;.Multi-line |
| 41ba0 | 20 66 6f 72 6d 61 74 20 28 74 79 70 65 2c 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 70 74 69 6f | .format.(type,.description.optio |
| 41bc0 | 6e 61 6c 29 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 22 6b 65 79 31 20 74 79 70 | nal):...............;;."key1.typ |
| 41be0 | 65 3a 20 64 65 73 63 72 69 70 74 69 6f 6e 31 20 5c 6e 20 6b 65 79 32 3a 20 64 65 73 63 72 69 70 | e:.description1.\n.key2:.descrip |
| 41c00 | 74 69 6f 6e 32 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 | tion2..."...............(while.( |
| 41c20 | 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 28 5b 5e 20 3a 5d 2b 5c 5c 29 20 | re-search-forward."\\([^.:]+\\). |
| 41c40 | 2a 5c 5c 28 5b 5e 20 3a 5d 2a 5c 5c 29 3a 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *\\([^.:]*\\):?"................ |
| 41c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 | .........................(line-e |
| 41c80 | 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd-position).t)................. |
| 41ca0 | 28 70 75 73 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 70 72 6f 70 73 29 0a 20 20 | (push.(match-string.1).props)... |
| 41cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 28 73 74 72 69 6e 67 2d | ..............(push.(if.(string- |
| 41ce0 | 65 6d 70 74 79 2d 70 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 | empty-p.(match-string.2))....... |
| 41d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 74 72 69 6e 67 22 20 28 63 61 | ...................."string".(ca |
| 41d20 | 72 20 28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 | r.(all-completions.(match-string |
| 41d40 | 20 32 29 20 61 6c 6c 2d 74 79 70 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .2).all-types)))................ |
| 41d60 | 20 20 20 20 20 20 20 74 79 70 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | .......types).................(s |
| 41d80 | 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 | kip-chars-forward.".\t")........ |
| 41da0 | 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 28 65 6f 6c 70 29 20 6e 69 6c 20 28 62 | .........(push.(if.(eolp).nil.(b |
| 41dc0 | 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... |
| 41de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 41e00 | 20 20 20 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 | ....(point).(line-end-position)) |
| 41e20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 | ).......................descript |
| 41e40 | 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c | ions).................(forward-l |
| 41e60 | 69 6e 65 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6f 62 6a 65 | ine.1))).............(let.((obje |
| 41e80 | 63 74 0a 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 74 79 70 | ct....................(list.:typ |
| 41ea0 | 65 20 22 6f 62 6a 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 20 | e."object"...................... |
| 41ec0 | 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....:properties................. |
| 41ee0 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6d 61 70 63 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .........(cl-mapcan............. |
| 41f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 70 20 74 79 70 65 | ..............(lambda.(prop.type |
| 41f20 | 20 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .desc).......................... |
| 41f40 | 20 20 20 60 28 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 3a 22 20 70 72 6f 70 29 29 | ...`(,(intern.(concat.":".prop)) |
| 41f60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 41f80 | 3a 74 79 70 65 20 2c 74 79 70 65 20 2c 40 28 77 68 65 6e 20 64 65 73 63 0a 20 20 20 20 20 20 20 | :type.,type.,@(when.desc........ |
| 41fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 41fc0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 73 74 72 69 | ........(list.:description.(stri |
| 41fe0 | 6e 67 2d 74 72 69 6d 20 64 65 73 63 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng-trim.desc)))))).............. |
| 42000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 72 6f 70 73 29 20 28 6e | .............(nreverse.props).(n |
| 42020 | 72 65 76 65 72 73 65 20 74 79 70 65 73 29 20 28 6e 72 65 76 65 72 73 65 20 64 65 73 63 72 69 70 | reverse.types).(nreverse.descrip |
| 42040 | 74 69 6f 6e 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 | tions)))))...............(setq.s |
| 42060 | 63 68 65 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 77 72 | chema.....................(if.wr |
| 42080 | 61 70 2d 69 6e 2d 61 72 72 61 79 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 61 72 72 61 79 22 20 | ap-in-array.(list.:type."array". |
| 420a0 | 3a 69 74 65 6d 73 20 6f 62 6a 65 63 74 29 20 6f 62 6a 65 63 74 29 29 29 29 29 29 29 29 0a 20 20 | :items.object).object))))))))... |
| 420c0 | 3b 3b 20 54 68 65 20 4f 70 65 6e 41 49 20 61 6e 64 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 73 | ;;.The.OpenAI.and.Anthropic.APIs |
| 420e0 | 20 64 6f 6e 27 74 20 61 6c 6c 6f 77 20 61 72 72 61 79 73 20 61 74 20 74 68 65 20 72 6f 6f 74 20 | .don't.allow.arrays.at.the.root. |
| 42100 | 6f 66 20 74 68 65 20 73 63 68 65 6d 61 2e 0a 20 20 3b 3b 20 57 6f 72 6b 20 61 72 6f 75 6e 64 20 | of.the.schema....;;.Work.around. |
| 42120 | 74 68 69 73 20 62 79 20 77 72 61 70 70 69 6e 67 20 69 74 20 69 6e 20 61 6e 20 6f 62 6a 65 63 74 | this.by.wrapping.it.in.an.object |
| 42140 | 20 77 69 74 68 20 74 68 65 20 66 69 65 6c 64 20 22 69 74 65 6d 73 22 2e 0a 20 20 3b 3b 20 54 4f | .with.the.field."items"....;;.TO |
| 42160 | 44 4f 28 73 63 68 65 6d 61 29 3a 20 46 69 6e 64 20 73 6f 6d 65 20 77 61 79 20 74 6f 20 73 74 72 | DO(schema):.Find.some.way.to.str |
| 42180 | 69 70 20 74 68 69 73 20 65 78 74 72 61 20 6c 61 79 65 72 20 66 72 6f 6d 20 74 68 65 20 72 65 73 | ip.this.extra.layer.from.the.res |
| 421a0 | 70 6f 6e 73 65 2e 0a 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | ponse....(if.(member.(plist-get. |
| 421c0 | 73 63 68 65 6d 61 20 3a 74 79 70 65 29 20 27 28 22 61 72 72 61 79 22 20 61 72 72 61 79 29 29 0a | schema.:type).'("array".array)). |
| 421e0 | 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a 65 63 74 22 0a 20 20 20 20 20 | ......(list.:type."object"...... |
| 42200 | 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 73 74 20 3a 69 74 65 6d 73 20 | .......:properties.(list.:items. |
| 42220 | 73 63 68 65 6d 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 20 5b 22 | schema).............:required.[" |
| 42240 | 69 74 65 6d 73 22 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 | items"].............:additionalP |
| 42260 | 72 6f 70 65 72 74 69 65 73 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 73 63 68 65 6d | roperties.:json-false).....schem |
| 42280 | 61 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 | a))..(defun.gptel--preprocess-sc |
| 422a0 | 68 65 6d 61 20 28 73 70 65 63 29 0a 20 20 22 53 65 74 20 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f | hema.(spec)..."Set.additionalPro |
| 422c0 | 70 65 72 74 69 65 73 20 66 6f 72 20 6f 62 6a 65 63 74 73 20 69 6e 20 53 50 45 43 20 64 65 73 74 | perties.for.objects.in.SPEC.dest |
| 422e0 | 72 75 63 74 69 76 65 6c 79 2e 0a 0a 43 6f 6e 76 65 72 74 20 73 79 6d 62 6f 6c 20 3a 74 79 70 65 | ructively...Convert.symbol.:type |
| 42300 | 73 20 74 6f 20 73 74 72 69 6e 67 73 2e 22 0a 20 20 3b 3b 20 4e 4f 54 45 3a 20 44 6f 20 6e 6f 74 | s.to.strings."...;;.NOTE:.Do.not |
| 42320 | 20 75 73 65 20 60 73 65 71 75 65 6e 63 65 70 27 20 68 65 72 65 2c 20 61 73 20 74 68 61 74 20 63 | .use.`sequencep'.here,.as.that.c |
| 42340 | 6f 76 65 72 73 20 73 74 72 69 6e 67 73 20 74 6f 6f 20 61 6e 64 20 62 72 65 61 6b 73 0a 20 20 3b | overs.strings.too.and.breaks...; |
| 42360 | 3b 20 74 68 69 6e 67 73 2e 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 73 74 70 20 73 70 65 | ;.things....(when.(or.(listp.spe |
| 42380 | 63 29 20 28 76 65 63 74 6f 72 70 20 73 70 65 63 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 | c).(vectorp.spec)).....(cond.... |
| 423a0 | 20 20 28 28 76 65 63 74 6f 72 70 20 73 70 65 63 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 | ..((vectorp.spec).......(cl-loop |
| 423c0 | 20 66 6f 72 20 65 6c 65 6d 65 6e 74 20 61 63 72 6f 73 73 20 73 70 65 63 0a 20 20 20 20 20 20 20 | .for.element.across.spec........ |
| 423e0 | 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 | ........for.idx.upfrom.0........ |
| 42400 | 20 20 20 20 20 20 20 20 64 6f 20 28 61 73 65 74 20 73 70 65 63 20 69 64 78 20 28 67 70 74 65 6c | ........do.(aset.spec.idx.(gptel |
| 42420 | 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 20 65 6c 65 6d 65 6e 74 29 29 29 29 0a | --preprocess-schema.element)))). |
| 42440 | 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 20 | .....((keywordp.(car.spec))..... |
| 42460 | 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 20 28 77 68 | ..(let.((tail.spec)).........(wh |
| 42480 | 69 6c 65 20 74 61 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 63 61 | ile.tail...........(when.(eq.(ca |
| 424a0 | 72 20 74 61 69 6c 29 20 3a 74 79 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | r.tail).:type).............(when |
| 424c0 | 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 20 3b 43 6f 6e 76 65 72 74 20 | .(symbolp.(cadr.tail)).;Convert. |
| 424e0 | 73 79 6d 62 6f 6c 20 3a 74 79 70 65 20 74 6f 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 | symbol.:type.to.string.......... |
| 42500 | 20 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 | .....(setcar.(cdr.tail).(symbol- |
| 42520 | 6e 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 | name.(cadr.tail))))............. |
| 42540 | 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 63 61 64 72 20 74 61 69 6c 29 20 22 6f 62 6a 65 63 74 | (when.(equal.(cadr.tail)."object |
| 42560 | 22 29 20 3b 41 64 64 20 61 64 64 69 74 69 6f 6e 61 6c 20 6f 62 6a 65 63 74 20 66 69 65 6c 64 73 | ").;Add.additional.object.fields |
| 42580 | 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 74 61 69 6c 20 3a | ...............(plist-put.tail.: |
| 425a0 | 61 64 64 69 74 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 | additionalProperties.:json-false |
| 425c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 76 70 72 6f 70 73 20 28 76 | )...............(let.((vprops.(v |
| 425e0 | 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 20 20 20 20 20 | concat.......................... |
| 42600 | 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(cl-loop.................... |
| 42620 | 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 70 72 6f 70 20 69 6e 20 28 70 6c 69 73 74 2d 67 65 | ...........for.prop.in.(plist-ge |
| 42640 | 74 20 74 61 69 6c 20 3a 70 72 6f 70 65 72 74 69 65 73 29 20 62 79 20 23 27 63 64 64 72 0a 20 20 | t.tail.:properties).by.#'cddr... |
| 42660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c | ............................coll |
| 42680 | 65 63 74 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 70 72 6f 70 | ect.(substring.(symbol-name.prop |
| 426a0 | 29 20 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | ).1))))).................(plist- |
| 426c0 | 70 75 74 20 74 61 69 6c 20 3a 72 65 71 75 69 72 65 64 20 76 70 72 6f 70 73 29 0a 20 20 20 20 20 | put.tail.:required.vprops)...... |
| 426e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 61 69 6c 20 3a 70 72 6f 70 | ...........(plist-put.tail.:prop |
| 42700 | 65 72 74 79 4f 72 64 65 72 69 6e 67 20 76 70 72 6f 70 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ertyOrdering.vprops))))......... |
| 42720 | 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 73 74 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 20 | ..(when.(or.(listp.(cadr.tail)). |
| 42740 | 28 76 65 63 74 6f 72 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 | (vectorp.(cadr.tail))).......... |
| 42760 | 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 20 28 63 61 | ...(gptel--preprocess-schema.(ca |
| 42780 | 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 61 69 6c 20 | dr.tail)))...........(setq.tail. |
| 427a0 | 28 63 64 64 72 20 74 61 69 6c 29 29 29 29 29 0a 20 20 20 20 20 28 28 6c 69 73 74 70 20 73 70 65 | (cddr.tail)))))......((listp.spe |
| 427c0 | 63 29 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 65 6e 74 20 73 70 65 63 29 0a 20 20 20 20 20 20 | c).(dolist.(element.spec)....... |
| 427e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 69 73 74 70 20 65 6c 65 6d | ...............(when.(listp.elem |
| 42800 | 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 28 67 70 74 | ent)........................(gpt |
| 42820 | 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 20 65 6c 65 6d 65 6e 74 29 29 29 | el--preprocess-schema.element))) |
| 42840 | 29 29 29 0a 20 20 73 70 65 63 29 0a 0a 0c 0a 3b 3b 3b 20 54 6f 6f 6c 20 75 73 65 0a 0a 28 64 65 | )))...spec)....;;;.Tool.use..(de |
| 42860 | 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 |
| 42880 | 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 |
| 428a0 | 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 |
| 428c0 | 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. |
| 428e0 | 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 |
| 42900 | 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 |
| 42920 | 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 |
| 42940 | 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 |
| 42960 | 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 |
| 42980 | 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 |
| 429a0 | 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 |
| 429c0 | 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 |
| 429e0 | 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 |
| 42a00 | 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 |
| 42a20 | 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. |
| 42a40 | 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. |
| 42a60 | 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 |
| 42a80 | 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 |
| 42aa0 | 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 |
| 42ac0 | 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...... |
| 42ae0 | 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).... |
| 42b00 | 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 |
| 42b20 | 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 |
| 42b40 | 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 |
| 42b60 | 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... |
| 42b80 | 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. |
| 42ba0 | 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 |
| 42bc0 | 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 |
| 42be0 | 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 |
| 42c00 | 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 |
| 42c20 | 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 |
| 42c40 | 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 |
| 42c60 | 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 |
| 42c80 | 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 |
| 42ca0 | 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' |
| 42cc0 | 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 |
| 42ce0 | 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).. |
| 42d00 | 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) |
| 42d20 | 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 |
| 42d40 | 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- |
| 42d60 | 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 |
| 42d80 | 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 |
| 42da0 | 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 |
| 42dc0 | 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 |
| 42de0 | 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 |
| 42e00 | 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 |
| 42e20 | 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 |
| 42e40 | 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 |
| 42e60 | 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 |
| 42e80 | 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 |
| 42ea0 | 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'. |
| 42ec0 | 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 |
| 42ee0 | 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)... |
| 42f00 | 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). |
| 42f20 | 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 |
| 42f40 | 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 |
| 42f60 | 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 |
| 42f80 | 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 |
| 42fa0 | 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,. |
| 42fc0 | 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 |
| 42fe0 | 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. |
| 43000 | 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 |
| 43020 | 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.( |
| 43040 | 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 6e 69 6c 29 0a 20 20 | gptel-tool.(:constructor.nil)... |
| 43060 | 20 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 6e 73 74 72 | ........................(:constr |
| 43080 | 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 2d 69 6e 74 65 72 6e 61 6c 0a | uctor.gptel--make-tool-internal. |
| 430a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 26 6b 65 79 | ...........................(&key |
| 430c0 | 20 66 75 6e 63 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 0a | .function.name.description.args. |
| 430e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 43100 | 20 61 73 79 6e 63 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 0a | .async.category.confirm.include. |
| 43120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 43140 | 20 26 61 6c 6c 6f 77 2d 6f 74 68 65 72 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .&allow-other-keys))............ |
| 43160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 2d 63 | ...............(:copier.gptel--c |
| 43180 | 6f 70 79 2d 74 6f 6f 6c 29 29 0a 20 20 22 53 74 72 75 63 74 20 74 6f 20 73 70 65 63 69 66 79 20 | opy-tool))..."Struct.to.specify. |
| 431a0 | 74 6f 6f 6c 73 20 66 6f 72 20 4c 4c 4d 73 20 74 6f 20 72 75 6e 2e 0a 0a 41 20 74 6f 6f 6c 20 69 | tools.for.LLMs.to.run...A.tool.i |
| 431c0 | 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 20 73 65 6e 74 20 | s.a.function.specification.sent. |
| 431e0 | 74 6f 20 74 68 65 20 4c 4c 4d 20 61 6c 6f 6e 67 20 77 69 74 68 0a 61 20 28 70 6c 61 69 6e 20 6c | to.the.LLM.along.with.a.(plain.l |
| 43200 | 61 6e 67 75 61 67 65 29 20 74 61 73 6b 2e 20 20 49 66 20 74 68 65 20 4c 4c 4d 20 64 65 63 69 64 | anguage).task...If.the.LLM.decid |
| 43220 | 65 73 20 74 6f 20 75 73 65 20 74 68 65 20 74 6f 6f 6c 20 74 6f 0a 61 63 63 6f 6d 70 6c 69 73 68 | es.to.use.the.tool.to.accomplish |
| 43240 | 20 74 68 65 20 74 61 73 6b 2c 20 67 70 74 65 6c 20 77 69 6c 6c 20 72 75 6e 20 74 68 65 20 74 6f | .the.task,.gptel.will.run.the.to |
| 43260 | 6f 6c 20 61 6e 64 20 28 6f 70 74 69 6f 6e 61 6c 6c 79 29 0a 66 65 65 64 20 74 68 65 20 4c 4c 4d | ol.and.(optionally).feed.the.LLM |
| 43280 | 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 59 6f 75 20 63 61 6e 20 61 64 64 20 74 6f 6f 6c 73 | .the.results...You.can.add.tools |
| 432a0 | 20 76 69 61 0a 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 | .via.`gptel-make-tool',.which.se |
| 432c0 | 65 2e 22 0a 20 20 28 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 20 3a 74 79 70 65 20 66 75 6e 63 74 69 | e."...(function.nil.:type.functi |
| 432e0 | 6f 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 46 75 6e 63 74 69 6f 6e 20 74 68 61 74 | on.:documentation."Function.that |
| 43300 | 20 72 75 6e 73 20 74 68 65 20 74 6f 6f 6c 22 29 0a 20 20 28 6e 61 6d 65 20 6e 69 6c 20 3a 74 79 | .runs.the.tool")...(name.nil.:ty |
| 43320 | 70 65 20 73 74 72 69 6e 67 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 54 6f 6f 6c 20 6e | pe.string.:documentation."Tool.n |
| 43340 | 61 6d 65 2c 20 73 6e 61 6b 65 5f 63 61 73 65 20 72 65 63 6f 6d 6d 65 6e 64 65 64 22 29 0a 20 20 | ame,.snake_case.recommended")... |
| 43360 | 28 64 65 73 63 72 69 70 74 69 6f 6e 20 6e 69 6c 20 3a 74 79 70 65 20 73 74 72 69 6e 67 20 3a 64 | (description.nil.:type.string.:d |
| 43380 | 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 57 68 61 74 20 74 68 65 20 74 6f 6f 6c 20 64 6f 65 73 | ocumentation."What.the.tool.does |
| 433a0 | 2c 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 74 68 65 20 4c 4c 4d 22 29 0a 20 20 28 61 72 67 73 | ,.intended.for.the.LLM")...(args |
| 433c0 | 20 6e 69 6c 20 3a 74 79 70 65 20 6c 69 73 74 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 | .nil.:type.list.:documentation." |
| 433e0 | 4c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 73 70 65 63 69 66 79 69 6e 67 20 66 75 6e 63 74 69 | List.of.plists.specifying.functi |
| 43400 | 6f 6e 20 61 72 67 75 6d 65 6e 74 73 22 29 0a 20 20 28 61 73 79 6e 63 20 6e 69 6c 20 3a 74 79 70 | on.arguments")...(async.nil.:typ |
| 43420 | 65 20 62 6f 6f 6c 65 61 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 57 68 65 74 68 65 | e.boolean.:documentation."Whethe |
| 43440 | 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 | r.the.function.runs.asynchronous |
| 43460 | 6c 79 22 29 0a 20 20 28 63 61 74 65 67 6f 72 79 20 6e 69 6c 20 3a 74 79 70 65 20 73 74 72 69 6e | ly")...(category.nil.:type.strin |
| 43480 | 67 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 55 73 65 20 74 6f 20 67 72 6f 75 70 20 74 | g.:documentation."Use.to.group.t |
| 434a0 | 6f 6f 6c 73 20 62 79 20 70 75 72 70 6f 73 65 22 29 0a 20 20 28 63 6f 6e 66 69 72 6d 20 6e 69 6c | ools.by.purpose")...(confirm.nil |
| 434c0 | 20 3a 74 79 70 65 20 62 6f 6f 6c 65 61 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 53 | .:type.boolean.:documentation."S |
| 434e0 | 65 65 6b 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 62 65 66 6f 72 65 20 72 75 6e 6e 69 6e 67 20 | eek.confirmation.before.running. |
| 43500 | 74 6f 6f 6c 3f 22 29 0a 20 20 28 69 6e 63 6c 75 64 65 20 6e 69 6c 20 3a 74 79 70 65 20 62 6f 6f | tool?")...(include.nil.:type.boo |
| 43520 | 6c 65 61 6e 20 3a 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 22 49 6e 63 6c 75 64 65 20 74 6f 6f | lean.:documentation."Include.too |
| 43540 | 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 62 75 66 66 65 72 3f 22 29 29 0a 0a 28 64 65 66 75 6e 20 | l.results.in.buffer?"))..(defun. |
| 43560 | 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 28 73 70 65 | gptel--preprocess-tool-args.(spe |
| 43580 | 63 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 | c)..."Convert.symbol.:type.value |
| 435a0 | 73 20 69 6e 20 74 6f 6f 6c 20 53 50 45 43 20 74 6f 20 73 74 72 69 6e 67 73 20 64 65 73 74 72 75 | s.in.tool.SPEC.to.strings.destru |
| 435c0 | 63 74 69 76 65 6c 79 2e 22 0a 20 20 3b 3b 20 4e 4f 54 45 3a 20 44 6f 20 6e 6f 74 20 75 73 65 20 | ctively."...;;.NOTE:.Do.not.use. |
| 435e0 | 60 73 65 71 75 65 6e 63 65 70 27 20 68 65 72 65 2c 20 61 73 20 74 68 61 74 20 63 6f 76 65 72 73 | `sequencep'.here,.as.that.covers |
| 43600 | 20 73 74 72 69 6e 67 73 20 74 6f 6f 20 61 6e 64 20 62 72 65 61 6b 73 0a 20 20 3b 3b 20 74 68 69 | .strings.too.and.breaks...;;.thi |
| 43620 | 6e 67 73 2e 0a 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 73 74 70 20 73 70 65 63 29 20 28 76 | ngs....(when.(or.(listp.spec).(v |
| 43640 | 65 63 74 6f 72 70 20 73 70 65 63 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 76 | ectorp.spec)).....(cond......((v |
| 43660 | 65 63 74 6f 72 70 20 73 70 65 63 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 | ectorp.spec).......(cl-loop.for. |
| 43680 | 65 6c 65 6d 65 6e 74 20 61 63 72 6f 73 73 20 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 | element.across.spec............. |
| 436a0 | 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...for.idx.upfrom.0............. |
| 436c0 | 20 20 20 64 6f 20 28 61 73 65 74 20 73 70 65 63 20 69 64 78 20 28 67 70 74 65 6c 2d 2d 70 72 65 | ...do.(aset.spec.idx.(gptel--pre |
| 436e0 | 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 61 72 67 73 20 65 6c 65 6d 65 6e 74 29 29 29 29 0a 20 20 | process-tool-args.element))))... |
| 43700 | 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 20 20 20 | ...((keywordp.(car.spec))....... |
| 43720 | 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 20 28 77 68 69 6c | (let.((tail.spec)).........(whil |
| 43740 | 65 20 74 61 69 6c 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 71 20 | e.tail...........(when.(and.(eq. |
| 43760 | 28 63 61 72 20 74 61 69 6c 29 20 3a 74 79 70 65 29 20 28 73 79 6d 62 6f 6c 70 20 28 63 61 64 72 | (car.tail).:type).(symbolp.(cadr |
| 43780 | 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 20 28 63 64 | .tail))).............(setcar.(cd |
| 437a0 | 72 20 74 61 69 6c 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 64 72 20 74 61 69 6c 29 | r.tail).(symbol-name.(cadr.tail) |
| 437c0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 3a 65 | )))...........;;.TODO:.Handle.:e |
| 437e0 | 6e 75 6d 20 28 22 70 72 6f 76 69 64 65 64 22 20 22 61 73 22 20 22 6c 69 73 74 22 29 20 68 65 72 | num.("provided"."as"."list").her |
| 43800 | 65 2c 20 63 6f 6e 76 65 72 74 20 74 6f 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 3a 65 6e 75 6d | e,.convert.to...........;;.:enum |
| 43820 | 20 5b 22 70 72 6f 76 69 64 65 64 22 20 22 61 73 22 20 22 61 72 72 61 79 22 5d 0a 20 20 20 20 20 | .["provided"."as"."array"]...... |
| 43840 | 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 69 73 74 70 20 28 63 61 64 72 20 74 61 69 6c | .....(when.(or.(listp.(cadr.tail |
| 43860 | 29 29 20 28 76 65 63 74 6f 72 70 20 28 63 61 64 72 20 74 61 69 6c 29 29 29 0a 20 20 20 20 20 20 | )).(vectorp.(cadr.tail)))....... |
| 43880 | 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 2d 61 72 | ......(gptel--preprocess-tool-ar |
| 438a0 | 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 28 73 65 74 71 | gs.(cadr.tail)))...........(setq |
| 438c0 | 20 74 61 69 6c 20 28 63 64 64 72 20 74 61 69 6c 29 29 29 29 29 0a 20 20 20 20 20 28 28 6c 69 73 | .tail.(cddr.tail)))))......((lis |
| 438e0 | 74 70 20 73 70 65 63 29 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 65 6e 74 20 73 70 65 63 29 0a | tp.spec).(dolist.(element.spec). |
| 43900 | 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 6c 69 73 74 | .....................(when.(list |
| 43920 | 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 20 20 20 20 20 20 | p.element)...................... |
| 43940 | 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 2d 61 72 67 73 20 65 | ..(gptel--preprocess-tool-args.e |
| 43960 | 6c 65 6d 65 6e 74 29 29 29 29 29 29 0a 20 20 73 70 65 63 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | lement))))))...spec)..(defun.gpt |
| 43980 | 65 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 28 26 72 65 73 74 20 73 70 65 63 29 0a 20 20 22 43 6f | el--make-tool.(&rest.spec)..."Co |
| 439a0 | 6e 73 74 72 75 63 74 20 61 20 67 70 74 65 6c 2d 74 6f 6f 6c 20 61 63 63 6f 72 64 69 6e 67 20 74 | nstruct.a.gptel-tool.according.t |
| 439c0 | 6f 20 53 50 45 43 2e 22 0a 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 74 6f | o.SPEC."...(gptel--preprocess-to |
| 439e0 | 6f 6c 2d 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 73 70 65 63 20 3a 61 72 67 73 29 29 0a | ol-args.(plist-get.spec.:args)). |
| 43a00 | 20 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 2d 69 6e 74 65 | ..(apply.#'gptel--make-tool-inte |
| 43a20 | 72 6e 61 6c 20 73 70 65 63 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 | rnal.spec))..(defvar.gptel--know |
| 43a40 | 6e 2d 74 6f 6f 6c 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 67 70 74 65 6c 20 74 6f | n-tools.nil..."Alist.of.gptel.to |
| 43a60 | 6f 6c 73 20 61 72 72 61 6e 67 65 64 20 62 79 20 63 61 74 65 67 6f 72 79 2e 0a 0a 41 20 5c 22 74 | ols.arranged.by.category...A.\"t |
| 43a80 | 6f 6f 6c 5c 22 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 73 70 65 63 20 28 64 65 66 69 6e 69 | ool\".is.a.function.spec.(defini |
| 43aa0 | 74 69 6f 6e 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 70 72 6f 76 69 64 65 64 20 62 | tion.and.description).provided.b |
| 43ac0 | 79 20 67 70 74 65 6c 20 74 6f 20 61 6e 20 4c 4c 4d 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d 74 | y.gptel.to.an.LLM...See.`gptel-t |
| 43ae0 | 6f 6f 6c 27 2e 20 20 45 61 63 68 20 74 6f 6f 6c 20 69 73 0a 61 73 73 69 67 6e 65 64 20 61 20 63 | ool'...Each.tool.is.assigned.a.c |
| 43b00 | 61 74 65 67 6f 72 79 20 77 68 65 6e 20 69 74 20 69 73 20 63 72 65 61 74 65 64 2c 20 77 69 74 68 | ategory.when.it.is.created,.with |
| 43b20 | 20 61 20 63 61 74 65 67 6f 72 79 20 6f 66 0a 5c 22 6d 69 73 63 5c 22 20 69 66 20 6e 6f 6e 65 20 | .a.category.of.\"misc\".if.none. |
| 43b40 | 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 77 6f 2d 6c 65 76 | is.specified...This.is.a.two-lev |
| 43b60 | 65 6c 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 63 61 74 65 67 6f 72 69 65 73 20 61 6e 64 20 | el.alist.mapping.categories.and. |
| 43b80 | 74 6f 6f 6c 20 6e 61 6d 65 73 20 74 6f 0a 74 68 65 20 74 6f 6f 6c 20 69 74 73 65 6c 66 2e 20 20 | tool.names.to.the.tool.itself... |
| 43ba0 | 49 74 20 69 73 20 75 73 65 64 20 61 73 20 61 20 67 6c 6f 62 61 6c 20 72 65 67 69 73 74 65 72 20 | It.is.used.as.a.global.register. |
| 43bc0 | 6f 66 20 61 76 61 69 6c 61 62 6c 65 0a 74 6f 6f 6c 73 20 61 6e 64 20 69 6e 20 67 70 74 65 6c 27 | of.available.tools.and.in.gptel' |
| 43be0 | 73 20 55 49 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2e 0a 0a 49 6e 20 74 68 69 | s.UI,.see.`gptel-tools'...In.thi |
| 43c00 | 73 20 65 78 61 6d 70 6c 65 20 73 74 72 75 63 74 75 72 65 2c 20 63 61 74 2d 74 6f 6f 6c 20 61 6e | s.example.structure,.cat-tool.an |
| 43c20 | 64 20 74 68 65 20 72 65 73 74 20 61 72 65 20 63 6c 2d 73 74 72 75 63 74 73 0a 6f 66 20 74 79 70 | d.the.rest.are.cl-structs.of.typ |
| 43c40 | 65 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 3a 0a 0a 20 20 20 43 41 54 45 47 4f 52 59 20 20 20 20 | e.`gptel-tool':.....CATEGORY.... |
| 43c60 | 20 20 20 20 20 54 4f 4f 4c 20 4e 41 4d 45 20 20 20 20 20 20 20 20 20 20 54 4f 4f 4c 0a 20 28 28 | .....TOOL.NAME..........TOOL..(( |
| 43c80 | 5c 22 66 69 6c 65 73 79 73 74 65 6d 5c 22 20 2e 20 28 28 5c 22 72 65 61 64 5f 66 69 6c 65 5c 22 | \"filesystem\"...((\"read_file\" |
| 43ca0 | 20 20 20 20 20 20 2e 20 63 61 74 2d 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........cat-tool)............... |
| 43cc0 | 20 20 20 20 20 28 5c 22 6c 69 73 74 5f 64 69 72 65 63 74 6f 72 79 5c 22 20 2e 20 6c 73 2d 74 6f | .....(\"list_directory\"...ls-to |
| 43ce0 | 6f 6c 29 29 29 0a 20 20 28 5c 22 65 6d 61 63 73 5c 22 20 20 20 20 20 20 2e 20 28 28 5c 22 72 65 | ol)))...(\"emacs\"........((\"re |
| 43d00 | 61 64 5f 62 75 66 66 65 72 5c 22 20 20 20 20 2e 20 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e | ad_buffer\"......buffer-substrin |
| 43d20 | 67 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 28 5c 22 73 65 | g-tool)....................(\"se |
| 43d40 | 6e 64 5f 6d 65 73 73 61 67 65 5c 22 20 20 20 2e 20 6d 65 73 73 61 67 65 2d 74 6f 6f 6c 29 29 29 | nd_message\".....message-tool))) |
| 43d60 | 29 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c | )..This.variable.is.for.internal |
| 43d80 | 20 75 73 65 20 6f 6e 6c 79 2c 20 74 6f 20 64 65 66 69 6e 65 20 61 20 74 6f 6f 6c 20 75 73 65 0a | .use.only,.to.define.a.tool.use. |
| 43da0 | 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f 6c 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | `gptel-make-tool'.")..(defun.gpt |
| 43dc0 | 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 28 70 61 74 68 29 0a 20 20 22 46 69 6e 64 20 74 6f 6f 6c 20 | el-get-tool.(path)..."Find.tool. |
| 43de0 | 69 6e 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 72 65 67 69 73 74 72 79 20 61 74 20 50 41 54 48 | in.gptel's.tool.registry.at.PATH |
| 43e00 | 2e 0a 0a 50 41 54 48 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 0a 2d 20 61 73 20 61 20 | ...PATH.can.be.specified.-.as.a. |
| 43e20 | 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 74 68 65 20 74 6f 6f 6c 20 6e 61 6d | string.representing.the.tool.nam |
| 43e40 | 65 2c 20 6c 69 6b 65 20 5c 22 73 65 61 72 63 68 5f 64 62 5c 22 2c 0a 2d 20 6f 72 20 61 73 20 61 | e,.like.\"search_db\",.-.or.as.a |
| 43e60 | 20 6c 69 73 74 20 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 63 61 74 65 67 6f 72 79 20 61 6e | .list.representing.a.category.an |
| 43e80 | 64 20 74 6f 6f 6c 20 6e 61 6d 65 2c 0a 20 20 6c 69 6b 65 20 5c 5c 3d 27 28 5c 22 65 6d 61 63 73 | d.tool.name,...like.\\='(\"emacs |
| 43ea0 | 5c 22 20 5c 22 72 65 61 64 5f 62 75 66 66 65 72 5c 22 29 2e 0a 49 6e 20 62 6f 74 68 20 63 61 73 | \".\"read_buffer\")..In.both.cas |
| 43ec0 | 65 73 2c 20 74 68 65 20 66 69 72 73 74 20 6d 61 74 63 68 69 6e 67 20 67 70 74 65 6c 2d 74 6f 6f | es,.the.first.matching.gptel-too |
| 43ee0 | 6c 20 69 73 20 72 65 74 75 72 6e 65 64 2e 0a 0a 2d 20 61 73 20 61 20 73 74 72 69 6e 67 20 72 65 | l.is.returned...-.as.a.string.re |
| 43f00 | 70 72 65 73 65 6e 74 69 6e 67 20 61 20 63 61 74 65 67 6f 72 79 2c 20 6c 69 6b 65 20 5c 22 66 69 | presenting.a.category,.like.\"fi |
| 43f20 | 6c 65 73 79 73 74 65 6d 5c 22 2e 0a 49 6e 20 74 68 69 73 20 63 61 73 65 20 61 20 6c 69 73 74 20 | lesystem\"..In.this.case.a.list. |
| 43f40 | 6f 66 20 61 6c 6c 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 77 69 74 68 20 74 68 69 73 20 63 61 74 | of.all.gptel-tools.with.this.cat |
| 43f60 | 65 67 6f 72 79 20 69 73 0a 72 65 74 75 72 6e 65 64 2e 22 0a 20 20 28 6f 72 20 28 63 6c 2d 65 74 | egory.is.returned."...(or.(cl-et |
| 43f80 | 79 70 65 63 61 73 65 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 6c 65 74 20 | ypecase.path.........(cons.(let. |
| 43fa0 | 28 28 74 63 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 6e 6f 77 | ((tc.(map-nested-elt.gptel--know |
| 43fc0 | 6e 2d 74 6f 6f 6c 73 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-tools.path)))................. |
| 43fe0 | 28 69 66 20 28 63 6f 6e 73 70 20 74 63 29 20 28 6d 61 70 2d 76 61 6c 75 65 73 20 74 63 29 20 74 | (if.(consp.tc).(map-values.tc).t |
| 44000 | 63 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 28 69 66 2d 6c 65 74 2a 20 28 28 | c))).........(string.(if-let*.(( |
| 44020 | 63 61 74 65 67 6f 72 79 20 28 61 73 73 6f 63 20 70 61 74 68 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 | category.(assoc.path.gptel--know |
| 44040 | 6e 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | n-tools))).....................( |
| 44060 | 6d 61 70 2d 76 61 6c 75 65 73 20 28 63 64 72 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 | map-values.(cdr.category))...... |
| 44080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 5f 20 2e 20 74 | .............(cl-loop.for.(_...t |
| 440a0 | 6f 6f 6c 73 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 | ools).in.gptel--known-tools..... |
| 440c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 61 73 73 6f 63 | .......................if.(assoc |
| 440e0 | 20 70 61 74 68 20 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 | .path.tools).................... |
| 44100 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 28 63 64 72 20 69 74 29 29 29 29 29 0a 20 20 20 20 | ........return.(cdr.it)))))..... |
| 44120 | 20 20 28 65 72 72 6f 72 20 22 4e 6f 20 74 6f 6f 6c 20 6d 61 74 63 68 65 73 20 66 6f 72 20 25 53 | ..(error."No.tool.matches.for.%S |
| 44140 | 22 20 70 61 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 74 6f 6f | ".path)))..(defun.gptel-make-too |
| 44160 | 6c 20 28 26 72 65 73 74 20 73 6c 6f 74 73 29 0a 20 20 22 4d 61 6b 65 20 61 20 67 70 74 65 6c 20 | l.(&rest.slots)..."Make.a.gptel. |
| 44180 | 74 6f 6f 6c 20 66 6f 72 20 4c 4c 4d 20 75 73 65 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 | tool.for.LLM.use...The.following |
| 441a0 | 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 61 76 61 69 6c 61 62 6c 65 | .keyword.arguments.are.available |
| 441c0 | 2c 20 6f 66 20 77 68 69 63 68 20 74 68 65 20 66 69 72 73 74 0a 66 6f 75 72 20 61 72 65 20 72 65 | ,.of.which.the.first.four.are.re |
| 441e0 | 71 75 69 72 65 64 2e 0a 0a 4e 41 4d 45 3a 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 74 | quired...NAME:.The.name.of.the.t |
| 44200 | 6f 6f 6c 2c 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 62 65 20 69 6e 20 4a 61 76 61 73 63 | ool,.recommended.to.be.in.Javasc |
| 44220 | 72 69 70 74 20 73 74 79 6c 65 20 73 6e 61 6b 65 5f 63 61 73 65 2e 0a 0a 46 55 4e 43 54 49 4f 4e | ript.style.snake_case...FUNCTION |
| 44240 | 3a 20 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 74 73 65 6c 66 20 28 6c 61 6d 62 64 61 20 6f 72 | :.The.function.itself.(lambda.or |
| 44260 | 20 73 79 6d 62 6f 6c 29 20 74 68 61 74 20 72 75 6e 73 20 74 68 65 20 74 6f 6f 6c 2e 0a 0a 44 45 | .symbol).that.runs.the.tool...DE |
| 44280 | 53 43 52 49 50 54 49 4f 4e 3a 20 41 20 76 65 72 62 6f 73 65 20 64 65 73 63 72 69 70 74 69 6f 6e | SCRIPTION:.A.verbose.description |
| 442a0 | 20 6f 66 20 77 68 61 74 20 74 68 65 20 74 6f 6f 6c 20 64 6f 65 73 2c 20 68 6f 77 20 74 6f 0a 63 | .of.what.the.tool.does,.how.to.c |
| 442c0 | 61 6c 6c 20 69 74 20 61 6e 64 20 77 68 61 74 20 69 74 20 72 65 74 75 72 6e 73 2e 0a 0a 41 52 47 | all.it.and.what.it.returns...ARG |
| 442e0 | 53 3a 20 41 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 73 70 65 63 69 66 79 69 6e 67 20 74 | S:.A.list.of.plists.specifying.t |
| 44300 | 68 65 20 61 72 67 75 6d 65 6e 74 73 2c 20 6f 72 20 6e 69 6c 20 66 6f 72 20 61 20 66 75 6e 63 74 | he.arguments,.or.nil.for.a.funct |
| 44320 | 69 6f 6e 20 74 68 61 74 0a 74 61 6b 65 73 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 20 20 45 61 | ion.that.takes.no.arguments...Ea |
| 44340 | 63 68 20 70 6c 69 73 74 20 69 6e 20 41 52 47 53 20 72 65 71 75 69 72 65 73 20 74 68 65 20 66 6f | ch.plist.in.ARGS.requires.the.fo |
| 44360 | 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 2d 20 61 72 67 75 6d 65 6e 74 20 3a 6e 61 6d 65 20 61 | llowing.keys:.-.argument.:name.a |
| 44380 | 6e 64 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 2d 20 61 | nd.:description,.as.strings..-.a |
| 443a0 | 72 67 75 6d 65 6e 74 20 3a 74 79 70 65 2c 20 61 73 20 61 20 73 79 6d 62 6f 6c 2e 20 20 41 6c 6c | rgument.:type,.as.a.symbol...All |
| 443c0 | 6f 77 65 64 20 74 79 70 65 73 20 61 72 65 20 74 68 6f 73 65 20 75 6e 64 65 72 73 74 6f 6f 64 20 | owed.types.are.those.understood. |
| 443e0 | 62 79 20 74 68 65 20 4a 53 4f 4e 0a 20 20 73 63 68 65 6d 61 3a 20 73 74 72 69 6e 67 2c 20 6e 75 | by.the.JSON...schema:.string,.nu |
| 44400 | 6d 62 65 72 2c 20 69 6e 74 65 67 65 72 2c 20 62 6f 6f 6c 65 61 6e 2c 20 61 72 72 61 79 2c 20 6f | mber,.integer,.boolean,.array,.o |
| 44420 | 62 6a 65 63 74 20 6f 72 20 6e 75 6c 6c 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 70 6c 69 | bject.or.null..The.following.pli |
| 44440 | 73 74 20 6b 65 79 73 20 61 72 65 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 2f 6f 70 74 69 6f 6e 61 6c | st.keys.are.conditional/optional |
| 44460 | 3a 0a 2d 20 3a 6f 70 74 69 6f 6e 61 6c 2c 20 62 6f 6f 6c 65 61 6e 20 69 6e 64 69 63 61 74 69 6e | :.-.:optional,.boolean.indicatin |
| 44480 | 67 20 69 66 20 61 72 67 75 6d 65 6e 74 20 69 73 20 6f 70 74 69 6f 6e 61 6c 0a 2d 20 3a 65 6e 75 | g.if.argument.is.optional.-.:enu |
| 444a0 | 6d 20 66 6f 72 20 65 6e 75 6d 65 72 61 74 65 64 20 74 79 70 65 73 2c 20 77 68 6f 73 65 20 76 61 | m.for.enumerated.types,.whose.va |
| 444c0 | 6c 75 65 20 69 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 73 74 72 69 6e 67 73 20 72 65 70 72 65 | lue.is.a.vector.of.strings.repre |
| 444e0 | 73 65 6e 74 69 6e 67 0a 20 20 61 6c 6c 6f 77 65 64 20 76 61 6c 75 65 73 2e 20 20 4e 6f 74 65 20 | senting...allowed.values...Note. |
| 44500 | 74 68 61 74 20 3a 74 79 70 65 20 69 73 20 73 74 69 6c 6c 20 72 65 71 75 69 72 65 64 20 66 6f 72 | that.:type.is.still.required.for |
| 44520 | 20 65 6e 75 6d 73 2e 0a 2d 20 3a 69 74 65 6d 73 2c 20 69 66 20 74 68 65 20 3a 74 79 70 65 20 69 | .enums..-.:items,.if.the.:type.i |
| 44540 | 73 20 61 72 72 61 79 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 | s.array...Its.value.must.be.a.pl |
| 44560 | 69 73 74 20 69 6e 63 6c 75 64 69 6e 67 20 61 74 20 6c 65 61 73 74 0a 20 20 74 68 65 20 69 74 65 | ist.including.at.least...the.ite |
| 44580 | 6d 27 73 20 3a 74 79 70 65 2e 0a 2d 20 3a 70 72 6f 70 65 72 74 69 65 73 2c 20 69 66 20 74 68 65 | m's.:type..-.:properties,.if.the |
| 445a0 | 20 74 79 70 65 20 69 73 20 6f 62 6a 65 63 74 2e 20 20 49 74 73 20 76 61 6c 75 65 20 6d 75 73 74 | .type.is.object...Its.value.must |
| 445c0 | 20 62 65 20 61 20 70 6c 69 73 74 20 74 68 61 74 20 63 61 6e 20 62 65 0a 20 20 73 65 72 69 61 6c | .be.a.plist.that.can.be...serial |
| 445e0 | 69 7a 65 64 20 69 6e 74 6f 20 61 20 4a 53 4f 4e 20 6f 62 6a 65 63 74 20 73 70 65 63 69 66 69 63 | ized.into.a.JSON.object.specific |
| 44600 | 61 74 69 6f 6e 20 62 79 20 60 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 27 2e 0a 0a 41 53 59 4e | ation.by.`json-serialize'...ASYN |
| 44620 | 43 3a 20 62 6f 6f 6c 65 61 6e 20 69 6e 64 69 63 61 74 69 6e 67 20 69 66 20 74 68 65 20 65 6c 69 | C:.boolean.indicating.if.the.eli |
| 44640 | 73 70 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2e 0a 49 66 20 | sp.function.is.asynchronous..If. |
| 44660 | 41 53 59 4e 43 20 69 73 20 74 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 | ASYNC.is.t,.the.function.should. |
| 44680 | 74 61 6b 65 20 61 20 63 61 6c 6c 62 61 63 6b 20 61 73 20 69 74 73 20 66 69 72 73 74 0a 61 72 67 | take.a.callback.as.its.first.arg |
| 446a0 | 75 6d 65 6e 74 2c 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 65 20 61 72 67 75 6d 65 6e 74 73 20 | ument,.along.with.the.arguments. |
| 446c0 | 73 70 65 63 69 66 69 65 64 20 69 6e 20 41 52 47 53 2c 20 61 6e 64 20 72 75 6e 20 74 68 65 0a 63 | specified.in.ARGS,.and.run.the.c |
| 446e0 | 61 6c 6c 62 61 63 6b 20 77 69 74 68 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c | allback.with.the.tool.call.resul |
| 44700 | 74 20 77 68 65 6e 20 69 74 27 73 20 72 65 61 64 79 2e 20 20 54 68 65 20 63 61 6c 6c 62 61 63 6b | t.when.it's.ready...The.callback |
| 44720 | 0a 69 74 73 65 6c 66 20 69 73 20 61 6e 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 64 65 74 | .itself.is.an.implementation.det |
| 44740 | 61 69 6c 20 61 6e 64 20 6d 75 73 74 20 6e 6f 74 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 0a | ail.and.must.not.be.included.in. |
| 44760 | 41 52 47 53 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 20 61 72 65 20 6f 70 | ARGS...The.following.keys.are.op |
| 44780 | 74 69 6f 6e 61 6c 0a 0a 43 41 54 45 47 4f 52 59 3a 20 41 20 73 74 72 69 6e 67 20 69 6e 64 69 63 | tional..CATEGORY:.A.string.indic |
| 447a0 | 61 74 69 6e 67 20 61 20 63 61 74 65 67 6f 72 79 20 66 6f 72 20 74 68 65 20 74 6f 6f 6c 2e 20 20 | ating.a.category.for.the.tool... |
| 447c0 | 54 68 69 73 20 69 73 0a 75 73 65 64 20 6f 6e 6c 79 20 66 6f 72 20 67 72 6f 75 70 69 6e 67 20 69 | This.is.used.only.for.grouping.i |
| 447e0 | 6e 20 67 70 74 65 6c 27 73 20 55 49 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 6d 69 73 | n.gptel's.UI...Defaults.to.\"mis |
| 44800 | 63 5c 22 2e 0a 0a 43 4f 4e 46 49 52 4d 3a 20 57 68 65 74 68 65 72 20 74 68 65 20 74 6f 6f 6c 20 | c\"...CONFIRM:.Whether.the.tool. |
| 44820 | 63 61 6c 6c 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 74 6f | call.should.wait.for.the.user.to |
| 44840 | 20 72 75 6e 0a 69 74 2e 20 20 49 66 20 74 72 75 65 2c 20 74 68 65 20 75 73 65 72 20 77 69 6c 6c | .run.it...If.true,.the.user.will |
| 44860 | 20 62 65 20 70 72 6f 6d 70 74 65 64 20 77 69 74 68 20 74 68 65 20 70 72 6f 70 6f 73 65 64 20 74 | .be.prompted.with.the.proposed.t |
| 44880 | 6f 6f 6c 0a 63 61 6c 6c 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 65 78 61 6d 69 6e 65 64 2c | ool.call,.which.can.be.examined, |
| 448a0 | 20 61 63 63 65 70 74 65 64 2c 20 64 65 66 65 72 72 65 64 20 6f 72 20 63 61 6e 63 65 6c 65 64 2e | .accepted,.deferred.or.canceled. |
| 448c0 | 0a 0a 49 4e 43 4c 55 44 45 3a 20 57 68 65 74 68 65 72 20 74 68 65 20 74 6f 6f 6c 20 72 65 73 75 | ..INCLUDE:.Whether.the.tool.resu |
| 448e0 | 6c 74 73 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 63 6c 75 64 65 64 20 61 73 20 70 61 72 74 20 6f | lts.should.be.included.as.part.o |
| 44900 | 66 0a 74 68 65 20 4c 4c 4d 20 6f 75 74 70 75 74 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 | f.the.LLM.output...This.is.usefu |
| 44920 | 6c 20 66 6f 72 20 6c 6f 67 67 69 6e 67 20 61 6e 64 20 61 73 20 63 6f 6e 74 65 78 74 20 66 6f 72 | l.for.logging.and.as.context.for |
| 44940 | 0a 73 75 62 73 65 71 75 65 6e 74 20 72 65 71 75 65 73 74 73 20 69 6e 20 74 68 65 20 73 61 6d 65 | .subsequent.requests.in.the.same |
| 44960 | 20 62 75 66 66 65 72 2e 20 20 54 68 69 73 20 69 73 20 70 72 69 6d 61 72 69 6c 79 20 75 73 65 66 | .buffer...This.is.primarily.usef |
| 44980 | 75 6c 0a 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 48 65 72 65 20 69 73 20 61 6e 20 | ul.in.chat.buffers...Here.is.an. |
| 449a0 | 65 78 61 6d 70 6c 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 0a 0a 20 20 28 67 70 74 65 6c 2d 6d 61 | example.definition:....(gptel-ma |
| 449c0 | 6b 65 2d 74 6f 6f 6c 0a 20 20 20 3a 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 6c 6f | ke-tool....:function.(lambda.(lo |
| 449e0 | 63 61 74 69 6f 6e 20 75 6e 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 72 | cation.unit).................(ur |
| 44a00 | 6c 2d 72 65 74 72 69 65 76 65 2d 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 20 5c 22 61 70 69 2e 77 | l-retrieve-synchronously.\"api.w |
| 44a20 | 65 61 74 68 65 72 2e 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 | eather.com/...\"................ |
| 44a40 | 20 20 20 20 20 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 6f 63 | .............................loc |
| 44a60 | 61 74 69 6f 6e 20 75 6e 69 74 29 29 0a 20 20 20 3a 6e 61 6d 65 20 5c 22 67 65 74 5f 77 65 61 74 | ation.unit))....:name.\"get_weat |
| 44a80 | 68 65 72 5c 22 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 5c 22 47 65 74 20 74 68 65 20 | her\"....:description.\"Get.the. |
| 44aa0 | 63 75 72 72 65 6e 74 20 77 65 61 74 68 65 72 20 69 6e 20 61 20 67 69 76 65 6e 20 6c 6f 63 61 74 | current.weather.in.a.given.locat |
| 44ac0 | 69 6f 6e 5c 22 0a 20 20 20 3a 61 72 67 73 20 28 6c 69 73 74 20 5c 5c 3d 27 28 3a 6e 61 6d 65 20 | ion\"....:args.(list.\\='(:name. |
| 44ae0 | 5c 22 6c 6f 63 61 74 69 6f 6e 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 | \"location\"..................:t |
| 44b00 | 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 64 65 73 | ype.string..................:des |
| 44b20 | 63 72 69 70 74 69 6f 6e 20 5c 22 54 68 65 20 63 69 74 79 20 61 6e 64 20 73 74 61 74 65 2c 20 65 | cription.\"The.city.and.state,.e |
| 44b40 | 2e 67 2e 20 53 61 6e 20 46 72 61 6e 63 69 73 63 6f 2c 20 43 41 5c 22 29 0a 20 20 20 20 20 20 20 | .g..San.Francisco,.CA\")........ |
| 44b60 | 20 20 20 20 20 20 20 20 5c 5c 3d 27 28 3a 6e 61 6d 65 20 5c 22 75 6e 69 74 5c 22 0a 20 20 20 20 | ........\\='(:name.\"unit\"..... |
| 44b80 | 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 20 20 20 20 20 | .............:type.string....... |
| 44ba0 | 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 75 6d 20 5b 5c 22 63 65 6c 73 69 75 73 5c 22 20 5c 22 | ...........:enum.[\"celsius\".\" |
| 44bc0 | 66 61 72 65 6e 68 65 69 74 5c 22 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 | farenheit\"]..................:d |
| 44be0 | 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 22 54 68 | escription..................\"Th |
| 44c00 | 65 20 75 6e 69 74 20 6f 66 20 74 65 6d 70 65 72 61 74 75 72 65 2c 20 65 69 74 68 65 72 20 5c 5c | e.unit.of.temperature,.either.\\ |
| 44c20 | 3d 27 63 65 6c 73 69 75 73 5c 5c 3d 27 20 6f 72 20 5c 5c 3d 27 66 61 68 72 65 6e 68 65 69 74 5c | ='celsius\\='.or.\\='fahrenheit\ |
| 44c40 | 5c 3d 27 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 70 74 69 6f 6e 61 6c | \='\"..................:optional |
| 44c60 | 20 74 29 29 29 0a 0a 49 66 20 74 68 65 20 74 6f 6f 6c 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f | .t)))..If.the.tool.is.asynchrono |
| 44c80 | 75 73 2c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6d 6f 64 69 66 69 65 64 20 74 6f 20 | us,.the.function.is.modified.to. |
| 44ca0 | 74 61 6b 65 20 61 0a 63 61 6c 6c 62 61 63 6b 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 | take.a.callback.as.its.first.arg |
| 44cc0 | 75 6d 65 6e 74 2c 20 77 68 69 63 68 20 69 74 20 72 75 6e 73 20 77 69 74 68 20 74 68 65 20 72 65 | ument,.which.it.runs.with.the.re |
| 44ce0 | 73 75 6c 74 3a 0a 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 63 61 6c 6c 62 61 63 6b 20 6c 6f 63 61 | sult:.....(lambda.(callback.loca |
| 44d00 | 74 69 6f 6e 20 75 6e 69 74 29 0a 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 20 5c 22 | tion.unit)......(url-retrieve.\" |
| 44d20 | 61 70 69 2e 77 65 61 74 68 65 72 2e 63 6f 6d 2f 2e 2e 2e 5c 22 0a 20 20 20 20 20 20 20 20 20 20 | api.weather.com/...\"........... |
| 44d40 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .........(lambda.(_)............ |
| 44d60 | 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 70 61 72 73 65 2d 74 | ..........(let.((result.(parse-t |
| 44d80 | 68 69 73 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | his-buffer)))................... |
| 44da0 | 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 72 65 73 75 6c 74 29 29 29 | .....(funcall.callback.result))) |
| 44dc0 | 29 29 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 20 28 61 70 70 6c 79 20 23 27 67 70 74 65 | ))"...(let*.((tool.(apply.#'gpte |
| 44de0 | 6c 2d 2d 6d 61 6b 65 2d 74 6f 6f 6c 20 73 6c 6f 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 | l--make-tool.slots))..........(c |
| 44e00 | 61 74 65 67 6f 72 79 20 28 6f 72 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 | ategory.(or.(gptel-tool-category |
| 44e20 | 20 74 6f 6f 6c 29 20 22 6d 69 73 63 22 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 | .tool)."misc"))).....(setf.(alis |
| 44e40 | 74 2d 67 65 74 0a 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 | t-get............(gptel-tool-nam |
| 44e60 | 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 69 73 74 2d 67 65 74 20 63 61 | e.tool)............(alist-get.ca |
| 44e80 | 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 6e 69 6c 20 6e 69 | tegory.gptel--known-tools.nil.ni |
| 44ea0 | 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 | l.#'equal)............nil.nil.#' |
| 44ec0 | 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 | equal)...........tool)))..(cl-de |
| 44ee0 | 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 73 20 28 5f 62 61 | fgeneric.gptel--parse-tools.(_ba |
| 44f00 | 63 6b 65 6e 64 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 61 6e 64 20 | ckend.tools)..."Parse.TOOLS.and. |
| 44f20 | 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 54 4f 4f 4c 53 | return.a.list.of.prompts...TOOLS |
| 44f40 | 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 27 20 73 74 72 75 63 | .is.a.list.of.`gptel-tool'.struc |
| 44f60 | 74 73 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 5f 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 | ts,.which.see..._BACKEND.is.the. |
| 44f80 | 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 | LLM.backend.in.use...This.is.the |
| 44fa0 | 20 64 65 66 61 75 6c 74 0a 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 2c 20 75 73 65 64 20 62 79 | .default.implementation,.used.by |
| 44fc0 | 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 73 20 61 6e 64 20 4f 6c 6c 61 | .OpenAI-compatible.APIs.and.Olla |
| 44fe0 | 6d 61 2e 22 0a 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 28 | ma."...(vconcat....(mapcar.....( |
| 45000 | 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 0a 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 | lambda.(tool).......(list....... |
| 45020 | 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 3a 66 75 6e 63 74 69 | .:type."function"........:functi |
| 45040 | 6f 6e 0a 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a | on........(append.........(list. |
| 45060 | 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 | .........:name.(gptel-tool-name. |
| 45080 | 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 67 70 74 | tool)..........:description.(gpt |
| 450a0 | 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 29 0a 20 20 20 20 20 | el-tool-description.tool))...... |
| 450c0 | 20 20 20 28 69 66 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 | ...(if.(gptel-tool-args.tool)... |
| 450e0 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ...........(list...............: |
| 45100 | 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 6c 69 73 74 20 3a | parameters...............(list.: |
| 45120 | 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 20 20 20 20 20 20 | type."object"................... |
| 45140 | 20 20 3b 3b 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 20 61 72 67 73 20 73 70 65 63 20 69 73 20 63 | ..;;.gptel's.tool.args.spec.is.c |
| 45160 | 6c 6f 73 65 20 74 6f 20 74 68 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 2c 20 65 78 63 65 70 74 0a | lose.to.the.JSON.schema,.except. |
| 45180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 61 74 20 77 65 20 75 | ....................;;.that.we.u |
| 451a0 | 73 65 20 28 3a 6e 61 6d 65 20 22 61 72 67 6e 61 6d 65 22 20 2e 2e 2e 29 0a 20 20 20 20 20 20 20 | se.(:name."argname"....)........ |
| 451c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f 66 20 20 28 3a 61 72 | .............;;.instead.of..(:ar |
| 451e0 | 67 6e 61 6d 65 20 28 2e 2e 2e 29 29 2c 20 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gname.(...)),.and............... |
| 45200 | 20 20 20 20 20 20 3b 3b 20 28 3a 6f 70 74 69 6f 6e 61 6c 20 74 29 20 66 6f 72 20 65 61 63 68 20 | ......;;.(:optional.t).for.each. |
| 45220 | 61 72 67 20 69 6e 73 74 65 61 64 20 6f 66 20 28 3a 72 65 71 75 69 72 65 64 20 5b 2e 2e 2e 5d 29 | arg.instead.of.(:required.[...]) |
| 45240 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 72 20 61 6c 6c 20 | .....................;;.for.all. |
| 45260 | 61 72 67 73 20 61 74 20 6f 6e 63 65 2e 20 20 48 61 6e 64 6c 65 20 74 68 69 73 20 64 69 66 66 65 | args.at.once...Handle.this.diffe |
| 45280 | 72 65 6e 63 65 20 62 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | rence.by.....................;;. |
| 452a0 | 6d 6f 64 69 66 79 69 6e 67 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 67 70 74 65 6c 20 74 6f | modifying.a.copy.of.the.gptel.to |
| 452c0 | 6f 6c 20 61 72 67 20 73 70 65 63 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ol.arg.spec..................... |
| 452e0 | 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:properties.................... |
| 45300 | 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | .(cl-loop......................f |
| 45320 | 6f 72 20 61 72 67 20 69 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 | or.arg.in.(gptel-tool-args.tool) |
| 45340 | 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 73 70 65 | ......................for.argspe |
| 45360 | 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 | c.=.(copy-sequence.arg)......... |
| 45380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 70 6c 69 73 74 2d 67 | .............for.name.=.(plist-g |
| 453a0 | 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 20 3b 68 61 6e 64 6c 65 64 20 64 69 66 66 65 72 65 6e 74 | et.arg.:name).;handled.different |
| 453c0 | 6c 79 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 77 6e | ly......................for.newn |
| 453e0 | 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 20 6e | ame.=.(or.(and.(keywordp.name).n |
| 45400 | 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 20 20 | ame)............................ |
| 45420 | 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 61 74 | ............(make-symbol.(concat |
| 45440 | 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 20 20 | .":".name))).................... |
| 45460 | 20 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 52 47 53 50 45 43 20 69 73 20 | ..do................;ARGSPEC.is. |
| 45480 | 41 52 47 20 77 69 74 68 6f 75 74 20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 0a 20 20 | ARG.without.unrecognized.keys... |
| 454a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 | ...................(cl-remf.args |
| 454c0 | 70 65 63 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 | pec.:name)...................... |
| 454e0 | 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6f 70 74 69 6f 6e 61 6c 29 0a 20 20 20 20 | (cl-remf.argspec.:optional)..... |
| 45500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 | .................if.(equal.(plis |
| 45520 | 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 | t-get.arg.:type)."object")...... |
| 45540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 | ................do.(unless.(plis |
| 45560 | 74 2d 6d 65 6d 62 65 72 20 61 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 20 | t-member.argspec.:required)..... |
| 45580 | 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 |
| 455a0 | 20 61 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 20 5b 5d 29 29 0a 20 20 20 20 20 20 20 20 | .argspec.:required.[]))......... |
| 455c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 61 72 67 73 70 65 63 20 | .............(plist-put.argspec. |
| 455e0 | 3a 61 64 64 69 74 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 | :additionalProperties.:json-fals |
| 45600 | 65 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 20 28 | e)......................append.( |
| 45620 | 6c 69 73 74 20 6e 65 77 6e 61 6d 65 20 61 72 67 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 20 | list.newname.argspec)).......... |
| 45640 | 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........:required............ |
| 45660 | 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(vconcat............... |
| 45680 | 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 | .......(delq.nil.(mapcar........ |
| 456a0 | 20 20 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 | .........................(lambda |
| 456c0 | 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 74 20 61 72 67 20 | .(arg).(and.(not.(plist-get.arg. |
| 456e0 | 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 20 20 20 20 20 20 | :optional))..................... |
| 45700 | 20 20 20 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 |
| 45720 | 2d 67 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 | -get.arg.:name)))............... |
| 45740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 | ..................(gptel-tool-ar |
| 45760 | 67 73 20 74 6f 6f 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 | gs.tool))))..................... |
| 45780 | 3a 61 64 64 69 74 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 | :additionalProperties.:json-fals |
| 457a0 | 65 29 29 0a 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 | e))...........(list.:parameters. |
| 457c0 | 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a 65 63 74 22 20 3a 70 72 6f 70 65 72 74 69 65 73 | (list.:type."object".:properties |
| 457e0 | 20 6e 69 6c 29 29 29 29 29 29 0a 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 74 6f 6f 6c | .nil)))))).....(ensure-list.tool |
| 45800 | 73 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 | s))))..(cl-defgeneric.gptel--par |
| 45820 | 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 62 61 63 6b 65 6e 64 20 72 65 73 75 6c 74 73 | se-tool-results.(backend.results |
| 45840 | 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 42 41 43 4b 45 4e 44 2d 61 70 70 72 6f 70 72 69 61 74 | )..."Return.a.BACKEND-appropriat |
| 45860 | 65 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 52 45 | e.prompt.containing.tool.call.RE |
| 45880 | 53 55 4c 54 53 2e 0a 0a 54 68 69 73 20 77 69 6c 6c 20 62 65 20 69 6e 6a 65 63 74 65 64 20 69 6e | SULTS...This.will.be.injected.in |
| 458a0 | 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 6c 69 73 74 20 69 6e 20 74 68 65 20 70 72 6f 6d | to.the.messages.list.in.the.prom |
| 458c0 | 70 74 20 74 6f 0a 73 65 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 22 29 0a 0a 3b 3b 20 46 49 58 | pt.to.send.to.the.LLM.")..;;.FIX |
| 458e0 | 4d 45 28 66 73 6d 29 20 75 6e 69 66 79 20 74 68 69 73 20 77 69 74 68 20 60 67 70 74 65 6c 2d 2d | ME(fsm).unify.this.with.`gptel-- |
| 45900 | 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 27 2c 20 77 68 69 63 68 20 69 73 20 61 20 6d 65 | wrap-user-prompt',.which.is.a.me |
| 45920 | 73 73 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d | ss.(cl-defgeneric.gptel--inject- |
| 45940 | 70 72 6f 6d 70 74 0a 20 20 28 5f 62 61 63 6b 65 6e 64 20 64 61 74 61 20 6e 65 77 2d 70 72 6f 6d | prompt...(_backend.data.new-prom |
| 45960 | 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 70 6f 73 69 74 69 6f 6e 29 0a 20 20 22 41 70 70 65 6e | pt.&optional._position)..."Appen |
| 45980 | 64 20 4e 45 57 2d 50 52 4f 4d 50 54 20 74 6f 20 65 78 69 73 74 69 6e 67 20 70 72 6f 6d 70 74 73 | d.NEW-PROMPT.to.existing.prompts |
| 459a0 | 20 69 6e 20 71 75 65 72 79 20 44 41 54 41 2e 0a 0a 4e 45 57 2d 50 52 4f 4d 50 54 20 63 61 6e 20 | .in.query.DATA...NEW-PROMPT.can. |
| 459c0 | 62 65 20 61 20 73 69 6e 67 6c 65 20 6d 65 73 73 61 67 65 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 | be.a.single.message.or.a.list.of |
| 459e0 | 20 6d 65 73 73 61 67 65 73 2e 0a 0a 4e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 3a 20 69 66 20 | .messages...Not.implemented:.if. |
| 45a00 | 50 4f 53 49 54 49 4f 4e 20 69 73 0a 2d 20 61 20 6e 6f 6e 2d 6e 65 67 61 74 69 76 65 20 6e 75 6d | POSITION.is.-.a.non-negative.num |
| 45a20 | 62 65 72 2c 20 69 6e 73 65 72 74 20 69 74 20 61 74 20 74 68 61 74 20 70 6f 73 69 74 69 6f 6e 20 | ber,.insert.it.at.that.position. |
| 45a40 | 69 6e 20 50 52 4f 4d 50 54 53 2e 0a 2d 20 61 20 6e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 2c | in.PROMPTS..-.a.negative.number, |
| 45a60 | 20 69 6e 73 65 72 74 20 69 74 20 74 68 65 72 65 20 63 6f 75 6e 74 69 6e 67 20 66 72 6f 6d 20 74 | .insert.it.there.counting.from.t |
| 45a80 | 68 65 20 65 6e 64 2e 0a 0a 54 68 69 73 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 | he.end...This.generic.implementa |
| 45aa0 | 74 69 6f 6e 20 68 61 6e 64 6c 65 73 20 74 68 65 20 41 6e 74 68 72 6f 70 69 63 2c 0a 4f 70 65 6e | tion.handles.the.Anthropic,.Open |
| 45ac0 | 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 61 6e 64 20 4f 6c 6c 61 6d 61 20 6d 65 73 73 61 67 65 | AI-compatible.and.Ollama.message |
| 45ae0 | 20 66 6f 72 6d 61 74 73 2e 22 0a 20 20 3b 3b 20 3b 54 4f 44 4f 28 66 73 6d 29 3a 20 69 6d 70 6c | .formats."...;;.;TODO(fsm):.impl |
| 45b00 | 65 6d 65 6e 74 20 5f 50 4f 53 49 54 49 4f 4e 0a 20 20 28 77 68 65 6e 20 28 6b 65 79 77 6f 72 64 | ement._POSITION...(when.(keyword |
| 45b20 | 70 20 28 63 61 72 2d 73 61 66 65 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 20 3b 49 73 20 6e 65 77 | p.(car-safe.new-prompt)).;Is.new |
| 45b40 | 2d 70 72 6f 6d 70 74 20 6f 6e 65 20 6f 72 20 6d 61 6e 79 3f 0a 20 20 20 20 28 73 65 74 71 20 6e | -prompt.one.or.many?.....(setq.n |
| 45b60 | 65 77 2d 70 72 6f 6d 70 74 20 28 6c 69 73 74 20 6e 65 77 2d 70 72 6f 6d 70 74 29 29 29 0a 20 20 | ew-prompt.(list.new-prompt)))... |
| 45b80 | 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a | (let.((prompts.(plist-get.data.: |
| 45ba0 | 6d 65 73 73 61 67 65 73 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 64 61 74 61 20 | messages))).....(plist-put.data. |
| 45bc0 | 3a 6d 65 73 73 61 67 65 73 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 20 6e 65 77 2d 70 | :messages.(vconcat.prompts.new-p |
| 45be0 | 72 6f 6d 70 74 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 | rompt))))....;;;.State.machine.f |
| 45c00 | 6f 72 20 64 72 69 76 69 6e 67 20 72 65 71 75 65 73 74 73 0a 0a 28 64 65 66 76 61 72 20 67 70 74 | or.driving.requests..(defvar.gpt |
| 45c20 | 65 6c 2d 72 65 71 75 65 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 0a 20 20 60 28 28 49 4e 49 | el-request--transitions...`((INI |
| 45c40 | 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 20 20 20 20 20 2e 20 | T...((t......................... |
| 45c60 | 57 41 49 54 29 29 29 0a 20 20 20 20 28 57 41 49 54 20 2e 20 28 28 74 20 20 20 20 20 20 20 20 20 | WAIT))).....(WAIT...((t......... |
| 45c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 54 59 50 45 29 29 29 0a 20 20 20 20 28 54 59 50 | ................TYPE))).....(TYP |
| 45ca0 | 45 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 20 2e 20 | E...((,#'gptel--error-p......... |
| 45cc0 | 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 2d 74 6f | ERRS)..............(,#'gptel--to |
| 45ce0 | 6f 6c 2d 75 73 65 2d 70 20 20 20 20 2e 20 54 4f 4f 4c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ol-use-p......TOOL)............. |
| 45d00 | 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 4f 4e 45 | .(t.........................DONE |
| 45d20 | 29 29 29 0a 20 20 20 20 28 54 4f 4f 4c 20 2e 20 28 28 2c 23 27 67 70 74 65 6c 2d 2d 65 72 72 6f | ))).....(TOOL...((,#'gptel--erro |
| 45d40 | 72 2d 70 20 20 20 20 20 20 20 2e 20 45 52 52 53 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | r-p.........ERRS)..............( |
| 45d60 | 2c 23 27 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 2d 70 20 2e 20 57 41 49 54 29 0a | ,#'gptel--tool-result-p...WAIT). |
| 45d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .............(t................. |
| 45da0 | 20 20 20 20 20 20 2e 20 44 4f 4e 45 29 29 29 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 | ........DONE))))..."Alist.specif |
| 45dc0 | 79 69 6e 67 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 | ying.gptel's.default.state.trans |
| 45de0 | 69 74 69 6f 6e 20 74 61 62 6c 65 20 66 6f 72 20 72 65 71 75 65 73 74 73 2e 0a 0a 45 61 63 68 20 | ition.table.for.requests...Each. |
| 45e00 | 65 6e 74 72 79 20 69 73 20 61 20 6c 69 73 74 20 77 68 6f 73 65 20 63 61 72 20 69 73 20 61 20 72 | entry.is.a.list.whose.car.is.a.r |
| 45e20 | 65 71 75 65 73 74 20 73 74 61 74 65 20 28 61 6e 79 20 73 79 6d 62 6f 6c 29 0a 61 6e 64 20 77 68 | equest.state.(any.symbol).and.wh |
| 45e40 | 6f 73 65 20 63 64 72 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6c 69 73 74 69 6e 67 20 70 6f 73 73 | ose.cdr.is.an.alist.listing.poss |
| 45e60 | 69 62 6c 65 20 6e 65 78 74 20 73 74 61 74 65 73 2e 20 20 45 61 63 68 20 6b 65 79 0a 69 73 20 65 | ible.next.states...Each.key.is.e |
| 45e80 | 69 74 68 65 72 20 61 20 70 72 65 64 69 63 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 60 74 | ither.a.predicate.function.or.`t |
| 45ea0 | 27 2e 20 20 57 68 65 6e 20 60 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 74 27 20 69 73 0a 63 61 | '...When.`gptel--fsm-next'.is.ca |
| 45ec0 | 6c 6c 65 64 2c 20 74 68 65 20 70 72 65 64 69 63 61 74 65 73 20 61 72 65 20 63 61 6c 6c 65 64 20 | lled,.the.predicates.are.called. |
| 45ee0 | 69 6e 20 74 68 65 20 6f 72 64 65 72 20 74 68 65 79 20 61 70 70 65 61 72 20 68 65 72 65 0a 74 6f | in.the.order.they.appear.here.to |
| 45f00 | 20 66 69 6e 64 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 2e 20 20 45 61 63 68 20 70 72 65 64 | .find.the.next.state...Each.pred |
| 45f20 | 69 63 61 74 65 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 73 74 61 74 65 0a 6d | icate.is.called.with.the.state.m |
| 45f40 | 61 63 68 69 6e 65 27 73 20 49 4e 46 4f 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 66 73 6d 27 2e 20 | achine's.INFO,.see.`gptel-fsm'.. |
| 45f60 | 20 41 20 70 72 65 64 69 63 61 74 65 20 6f 66 20 60 74 27 20 69 73 0a 63 6f 6e 73 69 64 65 72 65 | .A.predicate.of.`t'.is.considere |
| 45f80 | 64 20 61 20 73 75 63 63 65 73 73 20 61 6e 64 20 61 63 74 73 20 61 73 20 61 20 64 65 66 61 75 6c | d.a.success.and.acts.as.a.defaul |
| 45fa0 | 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e | t.")..(defvar.gptel-request--han |
| 45fc0 | 64 6c 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 | dlers...`((WAIT.,#'gptel--handle |
| 45fe0 | 2d 77 61 69 74 29 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 | -wait).....(TOOL.,#'gptel--handl |
| 46000 | 65 2d 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 | e-tool-use))..."Alist.specifying |
| 46020 | 20 68 61 6e 64 6c 65 72 73 20 66 6f 72 20 67 70 74 65 6c 27 73 20 64 65 66 61 75 6c 74 20 73 74 | .handlers.for.gptel's.default.st |
| 46040 | 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 73 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 69 73 20 | ate.transitions...Each.entry.is. |
| 46060 | 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 |
| 46080 | 61 74 65 20 28 61 20 73 79 6d 62 6f 6c 29 20 61 6e 64 0a 77 68 6f 73 65 20 63 64 72 20 69 73 20 | ate.(a.symbol).and.whose.cdr.is. |
| 460a0 | 61 20 6c 69 73 74 20 6f 66 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6c 6c | a.list.of.handler.functions.call |
| 460c0 | 65 64 20 77 68 65 6e 0a 74 72 61 6e 73 69 74 69 6f 6e 69 6e 67 20 74 6f 20 74 68 61 74 20 73 74 | ed.when.transitioning.to.that.st |
| 460e0 | 61 74 65 2e 20 20 54 68 65 20 68 61 6e 64 6c 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 69 6e | ate...The.handlers.are.called.in |
| 46100 | 20 74 68 65 0a 73 65 71 75 65 6e 63 65 20 74 68 61 74 20 74 68 65 79 20 61 70 70 65 61 72 20 69 | .the.sequence.that.they.appear.i |
| 46120 | 6e 20 74 68 65 20 6c 69 73 74 2c 20 61 6e 64 20 65 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 72 65 | n.the.list,.and.each.function.re |
| 46140 | 63 65 69 76 65 73 0a 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 61 73 20 69 74 73 20 | ceives.the.state.machine.as.its. |
| 46160 | 6f 6e 6c 79 20 61 72 67 75 6d 65 6e 74 2e 20 20 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 | only.argument...Information.abou |
| 46180 | 74 20 74 68 65 0a 72 65 71 75 65 73 74 20 73 74 61 74 65 20 63 61 6e 20 62 65 20 72 65 74 72 69 | t.the.request.state.can.be.retri |
| 461a0 | 65 76 65 64 20 76 69 61 20 74 68 65 20 6d 61 63 68 69 6e 65 27 73 20 49 4e 46 4f 20 73 6c 6f 74 | eved.via.the.machine's.INFO.slot |
| 461c0 | 2c 20 73 65 65 0a 60 67 70 74 65 6c 2d 66 73 6d 27 2e 0a 0a 48 61 6e 64 6c 65 72 73 20 61 72 65 | ,.see.`gptel-fsm'...Handlers.are |
| 461e0 | 20 72 65 73 70 6f 6e 73 69 62 6c 65 20 66 6f 72 20 64 6f 69 6e 67 20 73 74 61 74 65 2d 72 65 6c | .responsible.for.doing.state-rel |
| 46200 | 61 74 65 64 20 74 61 73 6b 73 20 28 6c 69 6b 65 0a 6c 6f 67 67 69 6e 67 20 65 72 72 6f 72 73 20 | ated.tasks.(like.logging.errors. |
| 46220 | 6f 72 20 69 6e 73 65 72 74 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 29 20 61 6e 64 20 74 72 61 6e | or.inserting.responses).and.tran |
| 46240 | 73 69 74 69 6f 6e 69 6e 67 20 74 6f 20 74 68 65 0a 6e 65 78 74 20 73 74 61 74 65 20 62 79 20 63 | sitioning.to.the.next.state.by.c |
| 46260 | 61 6c 6c 69 6e 67 20 60 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 27 2e 0a | alling.`gptel--fsm-transition'.. |
| 46280 | 0a 48 61 6e 64 6c 65 72 73 20 63 61 6e 20 62 65 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 69 | .Handlers.can.be.asynchronous,.i |
| 462a0 | 6e 20 77 68 69 63 68 20 63 61 73 65 20 74 68 65 20 74 72 61 6e 73 69 74 69 6f 6e 20 63 61 6c 6c | n.which.case.the.transition.call |
| 462c0 | 0a 73 68 6f 75 6c 64 20 74 79 70 69 63 61 6c 6c 79 20 62 65 20 70 6c 61 63 65 64 20 69 6e 20 69 | .should.typically.be.placed.in.i |
| 462e0 | 74 73 20 63 61 6c 6c 62 61 63 6b 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 73 65 | ts.callback.")..(defvar.gptel-se |
| 46300 | 6e 64 2d 2d 68 61 6e 64 6c 65 72 73 0a 20 20 60 28 28 57 41 49 54 20 2c 23 27 67 70 74 65 6c 2d | nd--handlers...`((WAIT.,#'gptel- |
| 46320 | 2d 68 61 6e 64 6c 65 2d 77 61 69 74 29 0a 20 20 20 20 28 54 59 50 45 20 2c 23 27 67 70 74 65 6c | -handle-wait).....(TYPE.,#'gptel |
| 46340 | 2d 2d 68 61 6e 64 6c 65 2d 70 72 65 2d 69 6e 73 65 72 74 29 0a 20 20 20 20 28 45 52 52 53 20 2c | --handle-pre-insert).....(ERRS., |
| 46360 | 23 27 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 2c 23 27 67 70 74 65 6c 2d 2d | #'gptel--handle-error.,#'gptel-- |
| 46380 | 66 73 6d 2d 6c 61 73 74 29 0a 20 20 20 20 28 54 4f 4f 4c 20 2c 23 27 67 70 74 65 6c 2d 2d 68 61 | fsm-last).....(TOOL.,#'gptel--ha |
| 463a0 | 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 28 44 4f 4e 45 20 2c 23 27 67 70 74 65 | ndle-tool-use).....(DONE.,#'gpte |
| 463c0 | 6c 2d 2d 68 61 6e 64 6c 65 2d 70 6f 73 74 2d 69 6e 73 65 72 74 20 2c 23 27 67 70 74 65 6c 2d 2d | l--handle-post-insert.,#'gptel-- |
| 463e0 | 66 73 6d 2d 6c 61 73 74 29 29 0a 20 20 22 41 6c 69 73 74 20 73 70 65 63 69 66 79 69 6e 67 20 68 | fsm-last))..."Alist.specifying.h |
| 46400 | 61 6e 64 6c 65 72 73 20 66 6f 72 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 73 74 61 74 65 20 74 | andlers.for.`gptel-send'.state.t |
| 46420 | 72 61 6e 73 69 74 69 6f 6e 73 2e 0a 0a 53 65 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 2d | ransitions...See.`gptel-request- |
| 46440 | 2d 68 61 6e 64 6c 65 72 73 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 29 0a 0a 28 63 6c 2d 64 | -handlers'.for.details.")..(cl-d |
| 46460 | 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 66 73 6d 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f | efstruct.(gptel-fsm.(:constructo |
| 46480 | 72 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.gptel-make-fsm)............... |
| 464a0 | 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 63 6f 70 79 2d 66 | ...........(:copier.gptel-copy-f |
| 464c0 | 73 6d 29 29 0a 20 20 22 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 67 70 74 65 6c 20 | sm))..."State.machine.for.gptel. |
| 464e0 | 72 65 71 75 65 73 74 73 2e 0a 0a 53 54 41 54 45 3a 20 54 68 65 20 63 75 72 72 65 6e 74 20 73 74 | requests...STATE:.The.current.st |
| 46500 | 61 74 65 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 2c 20 63 61 6e 20 62 65 20 61 6e 79 20 73 | ate.of.the.machine,.can.be.any.s |
| 46520 | 79 6d 62 6f 6c 2e 0a 0a 54 41 42 4c 45 3a 20 41 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 73 74 61 | ymbol...TABLE:.Alist.mapping.sta |
| 46540 | 74 65 73 20 74 6f 20 70 6f 73 73 69 62 6c 65 20 6e 65 78 74 20 73 74 61 74 65 73 0a 61 6c 6f 6e | tes.to.possible.next.states.alon |
| 46560 | 67 20 77 69 74 68 20 70 72 65 64 69 63 61 74 65 73 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 74 | g.with.predicates.to.determine.t |
| 46580 | 68 65 20 6e 65 78 74 20 73 74 61 74 65 2e 20 20 53 65 65 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 | he.next.state...See.`gptel-reque |
| 465a0 | 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 2e | st--transitions'.for.an.example. |
| 465c0 | 0a 0a 48 41 4e 44 4c 45 52 53 3a 20 41 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 73 74 61 74 65 73 | ..HANDLERS:.Alist.mapping.states |
| 465e0 | 20 74 6f 20 73 74 61 74 65 20 68 61 6e 64 6c 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 48 61 6e | .to.state.handler.functions..Han |
| 46600 | 64 6c 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 65 6e 74 65 72 69 6e 67 20 65 | dlers.are.called.when.entering.e |
| 46620 | 61 63 68 20 73 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 | ach.state...See.`gptel-request-- |
| 46640 | 68 61 6e 64 6c 65 72 73 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 0a 0a 49 4e 46 4f 3a 20 | handlers'.for.an.example..INFO:. |
| 46660 | 54 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 27 73 20 63 75 72 72 65 6e 74 20 63 6f 6e 74 | The.state.machine's.current.cont |
| 46680 | 65 78 74 2e 20 20 54 68 69 73 20 69 73 20 61 20 70 6c 69 73 74 0a 68 6f 6c 64 69 6e 67 20 61 6c | ext...This.is.a.plist.holding.al |
| 466a0 | 6c 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 74 | l.the.information.required.for.t |
| 466c0 | 68 65 20 6f 6e 67 6f 69 6e 67 20 72 65 71 75 65 73 74 2c 20 61 6e 64 0a 63 61 6e 20 62 65 20 75 | he.ongoing.request,.and.can.be.u |
| 466e0 | 73 65 64 20 74 6f 20 74 77 65 61 6b 20 61 6e 64 20 72 65 73 75 6d 65 20 61 20 70 61 75 73 65 64 | sed.to.tweak.and.resume.a.paused |
| 46700 | 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 73 68 6f 75 6c 64 20 62 65 0a 63 61 6c 6c 65 64 | .request...This.should.be.called |
| 46720 | 20 5c 22 63 6f 6e 74 65 78 74 5c 22 2c 20 62 75 74 20 63 6f 6e 74 65 78 74 20 6d 65 61 6e 73 20 | .\"context\",.but.context.means. |
| 46740 | 74 6f 6f 20 6d 61 6e 79 20 74 68 69 6e 67 73 20 61 6c 72 65 61 64 79 20 69 6e 0a 67 70 74 65 6c | too.many.things.already.in.gptel |
| 46760 | 27 73 20 63 6f 64 65 21 0a 0a 45 61 63 68 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 69 73 20 | 's.code!..Each.gptel.request.is. |
| 46780 | 70 61 73 73 65 64 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 74 68 69 73 0a 73 74 61 74 65 | passed.an.instance.of.this.state |
| 467a0 | 20 6d 61 63 68 69 6e 65 20 61 6e 64 20 64 72 69 76 65 6e 20 62 79 20 69 74 2e 22 0a 20 20 28 73 | .machine.and.driven.by.it."...(s |
| 467c0 | 74 61 74 65 20 27 49 4e 49 54 29 0a 20 20 28 74 61 62 6c 65 20 67 70 74 65 6c 2d 72 65 71 75 65 | tate.'INIT)...(table.gptel-reque |
| 467e0 | 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 29 0a 20 20 28 68 61 6e 64 6c 65 72 73 20 67 70 74 | st--transitions)...(handlers.gpt |
| 46800 | 65 6c 2d 72 65 71 75 65 73 74 2d 2d 68 61 6e 64 6c 65 72 73 29 20 69 6e 66 6f 29 0a 0a 28 64 65 | el-request--handlers).info)..(de |
| 46820 | 66 75 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 28 6d 61 63 68 69 | fun.gptel--fsm-transition.(machi |
| 46840 | 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 6e 65 77 2d 73 74 61 74 65 29 0a 20 20 22 4d 6f 76 65 20 | ne.&optional.new-state)..."Move. |
| 46860 | 4d 41 43 48 49 4e 45 20 74 6f 20 69 74 73 20 6e 65 78 74 20 73 74 61 74 65 2e 0a 0a 4d 41 43 48 | MACHINE.to.its.next.state...MACH |
| 46880 | 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 66 73 6d | INE.is.an.instance.of.`gptel-fsm |
| 468a0 | 27 2e 0a 0a 54 68 65 20 6e 65 78 74 20 73 74 61 74 65 20 69 73 20 4e 45 57 2d 53 54 41 54 45 20 | '...The.next.state.is.NEW-STATE. |
| 468c0 | 69 66 20 67 69 76 65 6e 2e 20 20 4f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 64 65 74 65 72 | if.given...Otherwise.it.is.deter |
| 468e0 | 6d 69 6e 65 64 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 66 72 6f 6d 20 4d 41 43 48 49 4e 45 | mined.automatically.from.MACHINE |
| 46900 | 27 73 20 74 72 61 6e 73 69 74 69 6f 6e 20 74 61 62 6c 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 | 's.transition.table."...(unless. |
| 46920 | 6e 65 77 2d 73 74 61 74 65 20 28 73 65 74 71 20 6e 65 77 2d 73 74 61 74 65 20 28 67 70 74 65 6c | new-state.(setq.new-state.(gptel |
| 46940 | 2d 2d 66 73 6d 2d 6e 65 78 74 20 6d 61 63 68 69 6e 65 29 29 29 0a 20 20 28 70 75 73 68 20 28 67 | --fsm-next.machine)))...(push.(g |
| 46960 | 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 0a 20 20 20 20 20 20 20 20 | ptel-fsm-state.machine)......... |
| 46980 | 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 6d 61 63 68 69 | (plist-get.(gptel-fsm-info.machi |
| 469a0 | 6e 65 29 20 3a 68 69 73 74 6f 72 79 29 29 0a 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d 66 73 | ne).:history))...(setf.(gptel-fs |
| 469c0 | 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 20 6e 65 77 2d 73 74 61 74 65 29 0a 20 20 28 77 | m-state.machine).new-state)...(w |
| 469e0 | 68 65 6e 2d 6c 65 74 2a 20 28 28 68 61 6e 64 6c 65 72 73 20 28 61 6c 69 73 74 2d 67 65 74 20 6e | hen-let*.((handlers.(alist-get.n |
| 46a00 | 65 77 2d 73 74 61 74 65 20 28 67 70 74 65 6c 2d 66 73 6d 2d 68 61 6e 64 6c 65 72 73 20 6d 61 63 | ew-state.(gptel-fsm-handlers.mac |
| 46a20 | 68 69 6e 65 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 28 68 29 20 28 | hine)))).....(mapc.(lambda.(h).( |
| 46a40 | 66 75 6e 63 61 6c 6c 20 68 20 6d 61 63 68 69 6e 65 29 29 20 68 61 6e 64 6c 65 72 73 29 29 29 0a | funcall.h.machine)).handlers))). |
| 46a60 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6e 65 78 74 20 28 6d 61 63 68 69 6e 65 | .(defun.gptel--fsm-next.(machine |
| 46a80 | 29 0a 20 20 22 44 65 74 65 72 6d 69 6e 65 20 4d 41 43 48 49 4e 45 27 73 20 6e 65 78 74 20 73 74 | )..."Determine.MACHINE's.next.st |
| 46aa0 | 61 74 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 69 74 73 20 74 72 61 6e 73 69 74 69 6f 6e 20 | ate.according.to.its.transition. |
| 46ac0 | 74 61 62 6c 65 2e 0a 0a 4d 41 43 48 49 4e 45 20 69 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f | table...MACHINE.is.an.instance.o |
| 46ae0 | 66 20 60 67 70 74 65 6c 2d 66 73 6d 27 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 | f.`gptel-fsm'"...(let*.((current |
| 46b00 | 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 6d 61 63 68 69 6e 65 29 29 0a 20 20 20 20 | .(gptel-fsm-state.machine))..... |
| 46b20 | 20 20 20 20 20 28 74 72 61 6e 73 69 74 69 6f 6e 73 20 28 61 6c 69 73 74 2d 67 65 74 20 63 75 72 | .....(transitions.(alist-get.cur |
| 46b40 | 72 65 6e 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 74 61 62 6c 65 20 6d 61 63 68 69 6e 65 29 29 29 | rent.(gptel-fsm-table.machine))) |
| 46b60 | 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 77 69 74 68 20 69 6e 66 6f 20 3d 20 | ).....(cl-loop......with.info.=. |
| 46b80 | 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 6d 61 63 68 69 6e 65 29 0a 20 20 20 20 20 66 6f | (gptel-fsm-info.machine)......fo |
| 46ba0 | 72 20 28 70 72 65 64 20 2e 20 6e 65 78 74 29 20 69 6e 20 74 72 61 6e 73 69 74 69 6f 6e 73 0a 20 | r.(pred...next).in.transitions.. |
| 46bc0 | 20 20 20 20 77 68 65 6e 20 28 6f 72 20 28 65 71 20 70 72 65 64 20 74 29 20 28 66 75 6e 63 61 6c | ....when.(or.(eq.pred.t).(funcal |
| 46be0 | 6c 20 70 72 65 64 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 78 74 29 29 | l.pred.info))......return.next)) |
| 46c00 | 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 | )..(defvar-local.gptel--fsm-last |
| 46c20 | 20 6e 69 6c 0a 20 20 22 53 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 6c 61 74 65 73 74 | .nil..."State.machine.for.latest |
| 46c40 | 20 72 65 71 75 65 73 74 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 75 | .request.in.the.buffer.")..(defu |
| 46c60 | 6e 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 28 66 73 6d 29 0a 20 20 20 20 22 43 61 70 | n.gptel--fsm-last.(fsm)....."Cap |
| 46c80 | 74 75 72 65 20 74 68 65 20 6c 61 74 65 73 74 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 46 53 | ture.the.latest.request.state.FS |
| 46ca0 | 4d 20 66 6f 72 20 69 6e 74 72 6f 73 70 65 63 74 69 6f 6e 2e 22 0a 20 20 20 20 28 6c 65 74 20 28 | M.for.introspection.".....(let.( |
| 46cc0 | 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 29 0a 20 20 20 | (info.(gptel-fsm-info.fsm))).... |
| 46ce0 | 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 0a 20 20 20 20 20 | ...(unless.gptel-log-level...... |
| 46d00 | 20 20 20 28 6c 65 74 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 | ...(let.((data.(plist-get.info.: |
| 46d20 | 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 27 | data)))...........(dolist.(key.' |
| 46d40 | 28 3a 6d 65 73 73 61 67 65 73 20 3a 63 6f 6e 74 65 6e 74 73 20 3a 71 75 65 72 79 29 29 0a 20 20 | (:messages.:contents.:query))... |
| 46d60 | 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 64 61 74 61 20 | ..........(setf.(plist-get.data. |
| 46d80 | 6b 65 79 29 20 6e 69 6c 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 67 70 74 65 6c 2d | key).nil)))).......(setf.(gptel- |
| 46da0 | 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | fsm-info.fsm).............(plist |
| 46dc0 | 2d 70 75 74 20 69 6e 66 6f 20 3a 65 6e 64 2d 74 69 6d 65 20 28 63 75 72 72 65 6e 74 2d 74 69 6d | -put.info.:end-time.(current-tim |
| 46de0 | 65 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | e-string))).......(with-current- |
| 46e00 | 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 29 0a | buffer.(plist-get.info.:buffer). |
| 46e20 | 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 61 73 74 20 66 73 | ........(setq.gptel--fsm-last.fs |
| 46e40 | 6d 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d | m))))..(defun.gptel--inspect-fsm |
| 46e60 | 20 28 26 6f 70 74 69 6f 6e 61 6c 20 66 73 6d 29 0a 20 20 22 49 6e 73 70 65 63 74 20 67 70 74 65 | .(&optional.fsm)..."Inspect.gpte |
| 46e80 | 6c 20 72 65 71 75 65 73 74 20 73 74 61 74 65 20 46 53 4d 2e 0a 0a 46 53 4d 20 64 65 66 61 75 6c | l.request.state.FSM...FSM.defaul |
| 46ea0 | 74 73 20 74 6f 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 6c 61 73 74 20 72 65 71 75 | ts.to.the.state.of.the.last.requ |
| 46ec0 | 65 73 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 2e 22 0a 20 20 28 75 | est.in.the.current.buffer."...(u |
| 46ee0 | 6e 6c 65 73 73 20 66 73 6d 0a 20 20 20 20 28 73 65 74 71 20 66 73 6d 20 28 6f 72 20 28 63 64 72 | nless.fsm.....(setq.fsm.(or.(cdr |
| 46f00 | 2d 73 61 66 65 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 | -safe.(cl-find-if............... |
| 46f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 2d 6c 69 73 | ...............(lambda.(proc-lis |
| 46f40 | 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).............................. |
| 46f60 | 20 20 28 65 71 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 20 28 63 61 64 72 20 70 72 6f 63 2d 6c | ..(eq.(thread-first.(cadr.proc-l |
| 46f80 | 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 20 20 20 | ist)............................ |
| 46fa0 | 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 66 73 6d | ......................(gptel-fsm |
| 46fc0 | 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -info).......................... |
| 46fe0 | 20 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 |
| 47000 | 65 74 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.:buffer)).................... |
| 47020 | 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 62 75 66 66 65 72 29 | ................(current-buffer) |
| 47040 | 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 | )).............................. |
| 47060 | 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 20 20 | gptel--request-alist)).......... |
| 47080 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 29 0a 20 20 28 75 | .........gptel--fsm-last)))...(u |
| 470a0 | 6e 6c 65 73 73 20 28 63 6c 2d 74 79 70 65 70 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 | nless.(cl-typep.gptel--fsm-last. |
| 470c0 | 27 67 70 74 65 6c 2d 66 73 6d 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 | 'gptel-fsm).....(user-error."No. |
| 470e0 | 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 6c 6f 67 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 | gptel.request.log.in.this.buffer |
| 47100 | 20 79 65 74 21 22 29 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 74 61 62 75 6c 61 74 65 64 2d 6c | .yet!"))...(require.'tabulated-l |
| 47120 | 69 73 74 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 | ist)...(with-current-buffer.(get |
| 47140 | 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 64 69 61 67 6e 6f 73 74 69 | -buffer-create."*gptel-diagnosti |
| 47160 | 63 2a 22 29 0a 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 66 6f | c*").....(setq.tabulated-list-fo |
| 47180 | 72 6d 61 74 20 5b 28 22 52 65 71 75 65 73 74 20 61 74 74 72 69 62 75 74 65 22 20 33 30 20 74 29 | rmat.[("Request.attribute".30.t) |
| 471a0 | 20 28 22 56 61 6c 75 65 22 20 33 30 29 5d 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 70 62 20 28 | .("Value".30)]).....(let*.((pb.( |
| 471c0 | 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.' |
| 471e0 | 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 75 69 6c 74 69 6e 2d 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 | font-lock-builtin-face)))....... |
| 47200 | 20 20 20 20 20 28 70 73 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 70 72 6f 70 65 72 74 69 7a 65 | .....(ps.(lambda.(s).(propertize |
| 47220 | 20 73 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 | .s.'face.'font-lock-string-face) |
| 47240 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6d 74 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 | ))............(fmt.(lambda.(s).( |
| 47260 | 63 6f 6e 64 20 28 28 6d 65 6d 71 20 28 63 61 72 2d 73 61 66 65 20 73 29 20 27 28 63 6c 6f 73 75 | cond.((memq.(car-safe.s).'(closu |
| 47280 | 72 65 20 6c 61 6d 62 64 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | re.lambda))..................... |
| 472a0 | 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 3c 6c 61 6d 62 64 61 20 25 23 78 3e | ..........(format."#<lambda.%#x> |
| 472c0 | 22 20 28 73 78 68 61 73 68 20 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ".(sxhash.s))).................. |
| 472e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 79 74 65 2d 63 6f 64 65 2d 66 75 6e 63 74 69 6f 6e | ............((byte-code-function |
| 47300 | 2d 70 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -p.s)........................... |
| 47320 | 20 20 20 20 28 66 6f 72 6d 61 74 20 22 23 3c 63 6f 6d 70 69 6c 65 64 20 25 23 78 3e 22 20 28 73 | ....(format."#<compiled.%#x>".(s |
| 47340 | 78 68 61 73 68 20 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 | xhash.s)))...................... |
| 47360 | 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e 67 2d 72 65 70 | ........((stringp.s).(string-rep |
| 47380 | 6c 61 63 65 20 22 5c 6e 22 20 22 e2 ae 90 20 22 20 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | lace."\n"."....".s))............ |
| 473a0 | 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 6e 31 2d 74 6f 2d 73 | ..................(t.(prin1-to-s |
| 473c0 | 74 72 69 6e 67 20 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 | tring.s)))))............(inhibit |
| 473e0 | 2d 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 69 6e 66 6f 20 28 | -read-only.t)............(info.( |
| 47400 | 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))............ |
| 47420 | 28 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 28 63 6c 2d 6c 6f | (entries-info.............(cl-lo |
| 47440 | 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 33 | op..............for.idx.upfrom.3 |
| 47460 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 29 20 6f 6e 20 69 | ..............for.(key.val).on.i |
| 47480 | 6e 66 6f 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 73 | nfo.by.#'cddr..............unles |
| 474a0 | 73 20 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 64 61 74 61 20 3a 68 69 73 74 6f 72 79 20 3a 74 6f | s.(memq.key.'(:data.:history.:to |
| 474c0 | 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ols............................. |
| 474e0 | 20 20 20 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 | ....:partial_text.:partial_json) |
| 47500 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 | )..............collect.......... |
| 47520 | 20 20 20 20 28 6c 69 73 74 20 69 64 78 20 60 5b 2c 28 66 75 6e 63 61 6c 6c 20 70 62 20 28 73 79 | ....(list.idx.`[,(funcall.pb.(sy |
| 47540 | 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbol-name.key))................. |
| 47560 | 20 20 20 20 20 20 20 20 20 2c 28 66 75 6e 63 61 6c 6c 20 70 73 20 28 66 75 6e 63 61 6c 6c 20 66 | .........,(funcall.ps.(funcall.f |
| 47580 | 6d 74 20 76 61 6c 29 29 5d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 74 72 69 65 73 | mt.val))])))............(entries |
| 475a0 | 2d 64 61 74 61 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 | -data.............(cl-loop...... |
| 475c0 | 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 35 30 0a 20 20 20 20 20 20 | ........for.idx.upfrom.50....... |
| 475e0 | 20 20 20 20 20 20 20 66 6f 72 20 28 6b 65 79 20 76 61 6c 29 20 6f 6e 20 28 70 6c 69 73 74 2d 67 | .......for.(key.val).on.(plist-g |
| 47600 | 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 20 | et.info.:data).by.#'cddr........ |
| 47620 | 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 6d 65 73 73 61 67 | ......unless.(memq.key.'(:messag |
| 47640 | 65 73 20 3a 73 74 72 65 61 6d 20 3a 63 6f 6e 74 65 6e 74 73 20 3a 71 75 65 72 79 29 29 0a 20 20 | es.:stream.:contents.:query))... |
| 47660 | 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........collect.............. |
| 47680 | 28 6c 69 73 74 20 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 | (list.idx.`[,(funcall.pb.(symbol |
| 476a0 | 2d 6e 61 6d 65 20 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 | -name.key))..................... |
| 476c0 | 20 20 20 20 20 2c 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 | .....,(funcall.ps.(funcall.fmt.v |
| 476e0 | 61 6c 29 29 5d 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 61 62 75 6c 61 74 65 64 2d | al))])))).......(setq.tabulated- |
| 47700 | 6c 69 73 74 2d 65 6e 74 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 | list-entries.............(nconc. |
| 47720 | 28 6c 69 73 74 20 60 28 32 20 5b 2c 28 66 75 6e 63 61 6c 6c 20 70 62 20 22 3a 73 74 61 74 65 22 | (list.`(2.[,(funcall.pb.":state" |
| 47740 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 47760 | 2c 28 66 75 6e 63 61 6c 6c 20 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ,(funcall.ps.................... |
| 47780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 | .............(mapconcat......... |
| 477a0 | 20 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 6d 74 20 28 72 65 | .........................fmt.(re |
| 477c0 | 76 65 72 73 65 20 28 63 6f 6e 73 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 66 73 6d | verse.(cons.(gptel-fsm-state.fsm |
| 477e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 47800 | 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 6f | .................(plist-get.info |
| 47820 | 20 3a 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:history))).................... |
| 47840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 e2 86 92 20 22 29 29 5d 29 29 0a 20 20 20 20 20 | .............."....."))]))...... |
| 47860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 69 65 73 2d 69 6e 66 6f 0a 20 20 20 20 20 | ..............entries-info...... |
| 47880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 74 72 69 65 73 2d 64 61 74 61 29 29 0a 20 20 20 | ..............entries-data)).... |
| 478a0 | 20 20 20 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 70 72 69 6e 74 29 0a 20 20 20 20 20 20 | ...(tabulated-list-print)....... |
| 478c0 | 28 74 61 62 75 6c 61 74 65 64 2d 6c 69 73 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 61 62 | (tabulated-list-mode).......(tab |
| 478e0 | 75 6c 61 74 65 64 2d 6c 69 73 74 2d 69 6e 69 74 2d 68 65 61 64 65 72 29 0a 20 20 20 20 20 20 28 | ulated-list-init-header).......( |
| 47900 | 68 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 | hl-line-mode.1).......(display-b |
| 47920 | 75 66 66 65 72 0a 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 | uffer........(current-buffer)... |
| 47940 | 20 20 20 20 20 27 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 69 6e 2d 73 69 64 65 2d 77 | .....'((display-buffer-in-side-w |
| 47960 | 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 28 73 69 64 65 20 2e 20 62 6f 74 74 6f 6d 29 0a | indow)..........(side...bottom). |
| 47980 | 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 66 69 74 2d 77 69 | .........(window-height...fit-wi |
| 479a0 | 6e 64 6f 77 2d 74 6f 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 73 6c 6f 74 20 2e | ndow-to-buffer)..........(slot.. |
| 479c0 | 20 31 30 29 0a 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 73 | .10)..........(body-function...s |
| 479e0 | 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 53 74 61 74 65 20 6d | elect-window))))))..;;;;.State.m |
| 47a00 | 61 63 68 69 6e 65 20 68 61 6e 64 6c 65 72 73 0a 3b 3b 20 54 68 65 20 6e 65 78 74 20 66 65 77 20 | achine.handlers.;;.The.next.few. |
| 47a20 | 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 64 65 66 61 75 6c 74 20 73 74 61 74 65 20 68 61 6e 64 | functions.are.default.state.hand |
| 47a40 | 6c 65 72 73 20 66 6f 72 20 67 70 74 65 6c 27 73 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 2c 0a | lers.for.gptel's.state.machine,. |
| 47a60 | 3b 3b 20 73 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 27 | ;;.see.`gptel-request--handlers' |
| 47a80 | 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 68 61 6e 64 6c 65 2d 77 61 69 74 20 28 66 73 | ...(defun.gptel--handle-wait.(fs |
| 47aa0 | 6d 29 0a 20 20 22 46 69 72 65 20 74 68 65 20 72 65 71 75 65 73 74 20 63 6f 6e 74 61 69 6e 65 64 | m)..."Fire.the.request.contained |
| 47ac0 | 20 69 6e 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 46 53 4d 27 73 20 69 6e 66 6f 2e 22 0a 20 | .in.state.machine.FSM's.info.".. |
| 47ae0 | 20 3b 3b 20 52 65 73 65 74 20 73 6f 6d 65 20 66 6c 61 67 73 20 69 6e 20 69 6e 66 6f 2e 20 20 54 | .;;.Reset.some.flags.in.info...T |
| 47b00 | 68 69 73 20 69 73 20 6e 65 63 65 73 73 61 72 79 20 77 68 65 6e 20 72 65 75 73 69 6e 67 20 66 73 | his.is.necessary.when.reusing.fs |
| 47b20 | 6d 27 73 20 63 6f 6e 74 65 78 74 20 66 6f 72 0a 20 20 3b 3b 20 61 20 73 65 63 6f 6e 64 20 6e 65 | m's.context.for...;;.a.second.ne |
| 47b40 | 74 77 6f 72 6b 20 72 65 71 75 65 73 74 3a 20 67 70 74 65 6c 20 74 65 73 74 73 20 66 6f 72 20 74 | twork.request:.gptel.tests.for.t |
| 47b60 | 68 65 20 70 72 65 73 65 6e 63 65 20 6f 66 20 74 68 65 73 65 20 66 6c 61 67 73 20 74 6f 0a 20 20 | he.presence.of.these.flags.to... |
| 47b80 | 3b 3b 20 68 61 6e 64 6c 65 20 73 74 61 74 65 20 74 72 61 6e 73 69 74 69 6f 6e 73 2e 20 20 28 4e | ;;.handle.state.transitions...(N |
| 47ba0 | 4f 54 45 3a 20 44 6f 6e 27 74 20 61 64 64 20 3a 74 6f 6b 65 6e 20 74 6f 20 74 68 69 73 2e 29 0a | OTE:.Don't.add.:token.to.this.). |
| 47bc0 | 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 | ..(let.((info.(gptel-fsm-info.fs |
| 47be0 | 6d 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6b 65 79 20 27 28 3a 74 6f 6f 6c 2d 73 75 | m))).....(dolist.(key.'(:tool-su |
| 47c00 | 63 63 65 73 73 20 3a 74 6f 6f 6c 2d 75 73 65 20 3a 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 | ccess.:tool-use.:error.......... |
| 47c20 | 20 20 20 20 20 20 20 20 20 20 3a 68 74 74 70 2d 73 74 61 74 75 73 20 3a 72 65 61 73 6f 6e 69 6e | ..........:http-status.:reasonin |
| 47c40 | 67 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e | g.:reasoning-block)).......(when |
| 47c60 | 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 20 20 20 20 20 28 70 | .(plist-get.info.key).........(p |
| 47c80 | 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 0a 20 20 28 66 75 6e | list-put.info.key.nil))))...(fun |
| 47ca0 | 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 6c 0a 20 20 20 20 20 | call....(if.gptel-use-curl...... |
| 47cc0 | 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 73 65 0a 20 20 20 20 | ..#'gptel-curl-get-response..... |
| 47ce0 | 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 65 29 0a 20 20 20 66 | .#'gptel--url-get-response)....f |
| 47d00 | 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 6f 73 74 2d 72 65 71 | sm)...(run-hooks.'gptel-post-req |
| 47d20 | 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 74 2d 62 75 66 66 65 | uest-hook)...(with-current-buffe |
| 47d40 | 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 6e 66 6f 20 66 73 6d | r.(plist-get.(gptel-fsm-info.fsm |
| 47d60 | 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 64 61 74 65 2d 73 74 | ).:buffer).....(gptel--update-st |
| 47d80 | 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 6e 67 29 29 29 0a 0a | atus.".Waiting...".'warning))).. |
| 47da0 | 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 69 6e 73 65 72 74 20 | (defun.gptel--handle-pre-insert. |
| 47dc0 | 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 65 72 74 69 6e 67 20 | (fsm)..."Tasks.before.inserting. |
| 47de0 | 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 65 20 46 53 4d 2e 0a | the.LLM.response.for.state.FSM.. |
| 47e00 | 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 20 61 6e 64 20 72 75 | .Handle.read-only.buffers.and.ru |
| 47e20 | 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 20 6f 6e 6c 79 20 69 | n.pre-response.hooks.(but.only.i |
| 47e40 | 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 22 0a 20 20 28 6c 65 | f.the.request.succeeded)."...(le |
| 47e60 | 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 0a | t*.((info.(gptel-fsm-info.fsm)). |
| 47e80 | 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 2d 67 65 | .........(start-marker.(plist-ge |
| 47ea0 | 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 77 68 65 6e 20 28 61 | t.info.:position))).....(when.(a |
| 47ec0 | 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | nd............(memq.(plist-get.i |
| 47ee0 | 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 20 20 | nfo.:callback).................. |
| 47f00 | 27 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 63 | '(gptel--insert-response.gptel-c |
| 47f20 | 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 | url--stream-insert-response))... |
| 47f40 | 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 70 | .........(with-current-buffer.(p |
| 47f60 | 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 20 | list-get.info.:buffer).......... |
| 47f80 | 20 20 20 20 28 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 | ....(or.buffer-read-only........ |
| 47fa0 | 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 73 74 61 | ..........(get-char-property.sta |
| 47fc0 | 72 74 2d 6d 61 72 6b 65 72 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 29 29 0a 20 20 20 20 20 20 28 | rt-marker.'read-only)))).......( |
| 47fe0 | 6d 65 73 73 61 67 65 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 | message."Buffer.is.read.only,.di |
| 48000 | 73 70 6c 61 79 69 6e 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 | splaying.reply.in.buffer.\"*LLM. |
| 48020 | 72 65 73 70 6f 6e 73 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 | response*\"").......(display-buf |
| 48040 | 66 65 72 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | fer........(with-current-buffer. |
| 48060 | 28 67 65 74 2d 62 75 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 | (get-buffer-create."*LLM.respons |
| 48080 | 65 2a 22 29 0a 20 20 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 | e*")..........(visual-line-mode. |
| 480a0 | 31 29 0a 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 | 1)..........(goto-char.(point-ma |
| 480c0 | 78 29 29 0a 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 | x))..........(move-marker.start- |
| 480e0 | 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 | marker.(point).(current-buffer)) |
| 48100 | 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 | ..........(current-buffer))..... |
| 48120 | 20 20 20 27 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 64 6f | ...'((display-buffer-reuse-windo |
| 48140 | 77 0a 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 70 6f 70 2d 75 | w...........display-buffer-pop-u |
| 48160 | 70 2d 77 69 6e 64 6f 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 | p-window)..........(reusable-fra |
| 48180 | 6d 65 73 20 2e 20 76 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 | mes...visible)))).....(with-curr |
| 481a0 | 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d | ent-buffer.(marker-buffer.start- |
| 481c0 | 6d 61 72 6b 65 72 29 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 | marker).......(when.(plist-get.i |
| 481e0 | 6e 66 6f 20 3a 73 74 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 | nfo.:stream).........(gptel--upd |
| 48200 | 61 74 65 2d 73 74 61 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 | ate-status.".Typing...".'success |
| 48220 | 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 20 20 20 20 20 20 | )).......(save-excursion........ |
| 48240 | 20 28 67 6f 74 6f 2d 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 | .(goto-char.start-marker)....... |
| 48260 | 20 20 28 77 68 65 6e 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 | ..(when.(and.(member.(plist-get. |
| 48280 | 69 6e 66 6f 20 3a 68 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 | info.:http-status).'("200"."100" |
| 482a0 | 29 29 0a 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 70 72 65 2d | ))....................gptel-pre- |
| 482c0 | 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 28 72 75 6e 2d 68 6f | response-hook)...........(run-ho |
| 482e0 | 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 29 29 29 29 | oks.'gptel-pre-response-hook)))) |
| 48300 | 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 6f 73 74 2d 69 6e | ))..(defun.gptel--handle-post-in |
| 48320 | 73 65 72 74 20 28 66 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 | sert.(fsm)..."Tasks.after.succes |
| 48340 | 73 66 75 6c 6c 79 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 | sfully.inserting.the.LLM.respons |
| 48360 | 65 20 77 69 74 68 20 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 | e.with.state.FSM...Indicate.gpte |
| 48380 | 6c 20 73 74 61 74 75 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 | l.status,.pulse.the.inserted.tex |
| 483a0 | 74 20 61 6e 64 20 72 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 | t.and.run.post-response.hooks... |
| 483c0 | 4e 6f 20 73 74 61 74 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 | No.state.transition.here.since.t |
| 483e0 | 68 61 74 27 73 20 68 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 | hat's.handled.by.the.process.sen |
| 48400 | 74 69 6e 65 6c 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 | tinels."...(let*.((info.(gptel-f |
| 48420 | 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 | sm-info.fsm))..........(start-ma |
| 48440 | 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 | rker.(plist-get.info.:position)) |
| 48460 | 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 6f 72 20 28 | ..........(tracking-marker.(or.( |
| 48480 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 | plist-get.info.:tracking-marker) |
| 484a0 | 0a 20 20 20 20 20 20 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 | ...............................s |
| 484c0 | 74 61 72 74 2d 6d 61 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 | tart-marker))..........;;.start- |
| 484e0 | 6d 61 72 6b 65 72 20 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 | marker.may.have.been.moved.if.:b |
| 48500 | 75 66 66 65 72 20 77 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 | uffer.was.read-only..........(gp |
| 48520 | 74 65 6c 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 | tel-buffer.(marker-buffer.start- |
| 48540 | 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | marker))).....(with-current-buff |
| 48560 | 65 72 20 67 70 74 65 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 | er.gptel-buffer.......(if.(not.t |
| 48580 | 72 61 63 6b 69 6e 67 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 | racking-marker).........;Empty.r |
| 485a0 | 65 73 70 6f 6e 73 65 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 | esponse...........(when.gptel-mo |
| 485c0 | 64 65 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 45 6d 70 74 79 | de.(gptel--update-status.".Empty |
| 485e0 | 20 72 65 73 70 6f 6e 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 | .response".'success)).........(p |
| 48600 | 75 6c 73 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 | ulse-momentary-highlight-region. |
| 48620 | 73 74 61 72 74 2d 6d 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 | start-marker.tracking-marker)... |
| 48640 | 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 | ......(when.gptel-mode.......... |
| 48660 | 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 74 72 61 63 | .(save-excursion.(goto-char.trac |
| 48680 | 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | king-marker).................... |
| 486a0 | 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 73 65 | .......(insert.gptel-response-se |
| 486c0 | 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | parator......................... |
| 486e0 | 20 20 20 20 20 20 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 | ..........(gptel-prompt-prefix-s |
| 48700 | 74 72 69 6e 67 29 29 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 | tring)))...........(gptel--updat |
| 48720 | 65 2d 73 74 61 74 75 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 | e-status..".Ready".'success)))). |
| 48740 | 20 20 20 20 3b 3b 20 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 | ....;;.Run.hook.in.visible.windo |
| 48760 | 77 20 74 6f 20 73 65 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 | w.to.set.window-point,.BUG.#269. |
| 48780 | 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 77 69 6e 64 6f 77 20 28 67 65 74 | ....(if-let*.((gptel-window.(get |
| 487a0 | 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c 2d 62 75 66 66 65 72 20 27 76 69 73 | -buffer-window.gptel-buffer.'vis |
| 487c0 | 69 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 | ible))).........(with-selected-w |
| 487e0 | 69 6e 64 6f 77 20 67 70 74 65 6c 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 | indow.gptel-window...........(ru |
| 48800 | 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 20 20 27 67 70 74 | n-hook-with-args............'gpt |
| 48820 | 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 20 | el-post-response-functions...... |
| 48840 | 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 61 72 | ......(marker-position.start-mar |
| 48860 | 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 2d 6d | ker).(marker-position.tracking-m |
| 48880 | 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | arker))).......(with-current-buf |
| 488a0 | 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f | fer.gptel-buffer.........(run-ho |
| 488c0 | 6f 6b 2d 77 69 74 68 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 70 6f 73 | ok-with-args..........'gptel-pos |
| 488e0 | 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6d | t-response-functions..........(m |
| 48900 | 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 61 | arker-position.start-marker).(ma |
| 48920 | 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 29 | rker-position.tracking-marker))) |
| 48940 | 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 65 72 72 6f 72 20 | )))..(defun.gptel--handle-error. |
| 48960 | 28 66 73 6d 29 0a 20 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 | (fsm)..."Check.for.errors.in.req |
| 48980 | 75 65 73 74 20 73 74 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 | uest.state.FSM.perform.UI.update |
| 489a0 | 73 2e 0a 0a 52 75 6e 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 | s...Run.post-response.hooks."... |
| 489c0 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 | (when-let*.((info.(gptel-fsm-inf |
| 489e0 | 6f 20 66 73 6d 29 29 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 | o.fsm))...............(error-dat |
| 48a00 | 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 29 29 0a 20 20 20 20 20 | a.(plist-get.info.:error))...... |
| 48a20 | 20 20 20 20 20 20 20 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 | .........(http-msg...(plist-get. |
| 48a40 | 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 20 20 20 28 67 70 | info.:status))...............(gp |
| 48a60 | 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 | tel-buffer.(plist-get.info.:buff |
| 48a80 | 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 | er))...............(start-marker |
| 48aa0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 | .(plist-get.info.:position)).... |
| 48ac0 | 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 6f 72 20 | ...........(tracking-marker.(or. |
| 48ae0 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 | (plist-get.info.:tracking-marker |
| 48b00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 48b20 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 | start-marker))...............(ba |
| 48b40 | 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 28 67 70 74 65 6c | ckend-name................(gptel |
| 48b60 | 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 28 62 | -backend-name.................(b |
| 48b80 | 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 62 61 63 6b 65 6e 64 | uffer-local-value.'gptel-backend |
| 48ba0 | 20 67 70 74 65 6c 2d 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 | .gptel-buffer)))).....(if.(strin |
| 48bc0 | 67 70 20 65 72 72 6f 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 | gp.error-data).........(message. |
| 48be0 | 22 25 73 20 65 72 72 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 | "%s.error:.(%s).%s".backend-name |
| 48c00 | 20 68 74 74 70 2d 6d 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 | .http-msg.(string-trim.error-dat |
| 48c20 | 61 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 2d 74 79 70 | a)).......(when-let*.((error-typ |
| 48c40 | 65 20 28 70 6c 69 73 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 | e.(plist-get.error-data.:type))) |
| 48c60 | 0a 20 20 20 20 20 20 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 | .........(setq.http-msg.(concat. |
| 48c80 | 22 28 22 20 20 68 74 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 | "("..http-msg.").".(string-trim. |
| 48ca0 | 65 72 72 6f 72 2d 74 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 | error-type)))).......(when-let*. |
| 48cc0 | 28 28 65 72 72 6f 72 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 | ((error-msg.(plist-get.error-dat |
| 48ce0 | 61 20 3a 6d 65 73 73 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 | a.:message))).........(message." |
| 48d00 | 25 73 20 65 72 72 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 | %s.error:.(%s).%s".backend-name. |
| 48d20 | 68 74 74 70 2d 6d 73 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 | http-msg.(string-trim.error-msg) |
| 48d40 | 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 | ))).....(with-current-buffer.gpt |
| 48d60 | 65 6c 2d 62 75 66 66 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 | el-buffer.......(when.gptel-mode |
| 48d80 | 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 74 75 73 0a 20 | .........(gptel--update-status.. |
| 48da0 | 20 20 20 20 20 20 20 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 | ........(format.".Error:.%s".htt |
| 48dc0 | 70 2d 6d 73 67 29 20 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 | p-msg).'error))).....(if-let*.(( |
| 48de0 | 67 70 74 65 6c 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 | gptel-window.(get-buffer-window. |
| 48e00 | 67 70 74 65 6c 2d 62 75 66 66 65 72 20 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 | gptel-buffer.'visible)))........ |
| 48e20 | 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c 2d 77 69 6e | .(with-selected-window.gptel-win |
| 48e40 | 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 | dow...........(run-hook-with-arg |
| 48e60 | 73 0a 20 20 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 6e 73 | s............'gptel-post-respons |
| 48e80 | 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 | e-functions............(marker-p |
| 48ea0 | 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 |
| 48ec0 | 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 0a 20 20 20 20 20 20 | sition.tracking-marker)))....... |
| 48ee0 | 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 65 | (with-current-buffer.gptel-buffe |
| 48f00 | 72 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 0a 20 20 | r.........(run-hook-with-args... |
| 48f20 | 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 | .......'gptel-post-response-func |
| 48f40 | 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 | tions..........(marker-position. |
| 48f60 | 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 74 | start-marker).(marker-position.t |
| 48f80 | 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | racking-marker))))))..(defun.gpt |
| 48fa0 | 65 6c 2d 2d 68 61 6e 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 | el--handle-tool-use.(fsm)..."Run |
| 48fc0 | 20 74 6f 6f 6c 20 63 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 | .tool.calls.captured.in.FSM,.and |
| 48fe0 | 20 61 64 76 61 6e 63 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 | .advance.the.state.machine.with. |
| 49000 | 74 68 65 20 72 65 73 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 | the.results."...(when-let*.((inf |
| 49020 | 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 | o.(gptel-fsm-info.fsm))......... |
| 49040 | 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 69 6e 66 6f 20 3a | ......(backend.(plist-get.info.: |
| 49060 | 62 61 63 6b 65 6e 64 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 | backend))...............;;.This. |
| 49080 | 66 75 6e 63 74 69 6f 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 | function.might.run.many.times,.s |
| 490a0 | 6f 20 6f 6e 6c 79 20 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 | o.only.act.on.the.remaining.tool |
| 490c0 | 20 63 61 6c 6c 73 2e 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 | .calls................(tool-use. |
| 490e0 | 28 63 6c 2d 72 65 6d 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 | (cl-remove-if.(lambda.(tc).(plis |
| 49100 | 74 2d 67 65 74 20 74 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 | t-get.tc.:result)).............. |
| 49120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | .........................(plist- |
| 49140 | 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | get.info.:tool-use)))........... |
| 49160 | 20 20 20 20 28 6e 74 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 | ....(ntools.(length.tool-use)).. |
| 49180 | 20 20 20 20 20 20 20 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 | .............(tool-idx.0)).....( |
| 491a0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | with-current-buffer.(plist-get.i |
| 491c0 | 6e 66 6f 20 3a 62 75 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 | nfo.:buffer).......(when.gptel-m |
| 491e0 | 6f 64 65 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 74 75 | ode.........(gptel--update-statu |
| 49200 | 73 0a 20 20 20 20 20 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 | s..........(format.".Calling.too |
| 49220 | 6c 2e 2e 2e 22 20 29 20 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 0a 0a 20 | l...".).'mode-line-emphasis))... |
| 49240 | 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 20 28 70 65 6e 64 69 | .....(let.((result-alist).(pendi |
| 49260 | 6e 67 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 20 20 20 20 20 20 20 | ng-calls)).........(mapc........ |
| 49280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 43 6f 6e 73 74 72 75 63 74 20 66 | ...................;.Construct.f |
| 492a0 | 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | unction.calls..........(lambda.( |
| 492c0 | 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 | tool-call)............(letrec.(( |
| 492e0 | 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 | args.(plist-get.tool-call.:args) |
| 49300 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c 69 | ).....................(name.(pli |
| 49320 | 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 | st-get.tool-call.:name))........ |
| 49340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 2d 76 61 6c 75 65 73 20 6e 69 6c 29 0a 20 20 | .............(arg-values.nil)... |
| 49360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 73 70 65 63 0a 20 20 20 | ..................(tool-spec.... |
| 49380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 | ..................(cl-find-if... |
| 493a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 73 29 | ....................(lambda.(ts) |
| 493c0 | 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 73 29 20 6e 61 6d | .(equal.(gptel-tool-name.ts).nam |
| 493e0 | 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 28 70 6c 69 73 74 | e)).......................(plist |
| 49400 | 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 20 20 20 20 | -get.info.:tools)))............. |
| 49420 | 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 20 20 | ........(process-tool-result.... |
| 49440 | 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 |
| 49460 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | t)........................(plist |
| 49480 | 2d 70 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 | -put.info.:tool-success.t)...... |
| 494a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 20 | ..................(let.((result. |
| 494c0 | 28 67 70 74 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 | (gptel--to-string.result)))..... |
| 494e0 | 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. |
| 49500 | 74 6f 6f 6c 2d 63 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 | tool-call.:result.result)....... |
| 49520 | 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 74 | ...................(push.(list.t |
| 49540 | 6f 6f 6c 2d 73 70 65 63 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 72 65 73 75 6c 74 2d 61 6c 69 | ool-spec.args.result).result-ali |
| 49560 | 73 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 28 63 6c 2d | st))........................(cl- |
| 49580 | 69 6e 63 66 20 74 6f 6f 6c 2d 69 64 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | incf.tool-idx).................. |
| 495a0 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 74 6f 6f 6c 2d 69 64 78 20 6e 74 6f 6f 6c 73 29 | ......(when.(>=.tool-idx.ntools) |
| 495c0 | 20 3b 20 41 6c 6c 20 74 6f 6f 6c 73 20 68 61 76 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 | .;.All.tools.have.run........... |
| 495e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 | ...............(gptel--inject-pr |
| 49600 | 6f 6d 70 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 62 | ompt...........................b |
| 49620 | 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 | ackend.(plist-get.info.:data)... |
| 49640 | 20 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-- |
| 49660 | 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | parse-tool-results.............. |
| 49680 | 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 74 | ..............backend.(plist-get |
| 496a0 | 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:tool-use))).............. |
| 496c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 | ............(funcall.(plist-get. |
| 496e0 | 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 20 | info.:callback)................. |
| 49700 | 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 74 6f 6f 6c 2d 72 65 | ..................(cons.'tool-re |
| 49720 | 73 75 6c 74 20 72 65 73 75 6c 74 2d 61 6c 69 73 74 29 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 | sult.result-alist).info)........ |
| 49740 | 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 74 72 | ..................(gptel--fsm-tr |
| 49760 | 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 20 20 20 20 20 28 | ansition.fsm)))))..............( |
| 49780 | 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 20 20 20 20 | if.(null.tool-spec)............. |
| 497a0 | 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 65 72 73 61 | .....(if.(equal.name.gptel--ersa |
| 497c0 | 74 7a 2d 6a 73 6f 6e 2d 74 6f 6f 6c 29 20 3b 43 6f 75 6c 64 20 62 65 20 61 20 4a 53 4f 4e 20 72 | tz-json-tool).;Could.be.a.JSON.r |
| 497e0 | 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 3b 3b 20 | esponse......................;;. |
| 49800 | 48 61 6e 64 6c 65 20 73 74 72 75 63 74 75 72 65 64 20 4a 53 4f 4e 20 6f 75 74 70 75 74 20 73 75 | Handle.structured.JSON.output.su |
| 49820 | 70 70 6c 69 65 64 20 61 73 20 74 6f 6f 6c 20 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | pplied.as.tool.call............. |
| 49840 | 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | .........(funcall.(plist-get.inf |
| 49860 | 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 20 20 20 20 | o.:callback).................... |
| 49880 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 | ...........(gptel--json-encode.( |
| 498a0 | 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 0a 20 20 20 20 | plist-get.tool-call.:args))..... |
| 498c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 29 0a | ..........................info). |
| 498e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 55 6e 6b | ...................(message."Unk |
| 49900 | 6e 6f 77 6e 20 74 6f 6f 6c 20 63 61 6c 6c 65 64 20 62 79 20 6d 6f 64 65 6c 3a 20 25 73 22 20 6e | nown.tool.called.by.model:.%s".n |
| 49920 | 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 2d 76 | ame))................(setq.arg-v |
| 49940 | 61 6c 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 | alues......................(mapc |
| 49960 | 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 28 6c 61 6d 62 64 61 | ar.......................(lambda |
| 49980 | 20 28 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .(arg).........................( |
| 499a0 | 6c 65 74 20 28 28 6b 65 79 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 3a 22 20 28 70 | let.((key.(intern.(concat.":".(p |
| 499c0 | 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | list-get.arg.:name)))))......... |
| 499e0 | 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 72 67 | ..................(plist-get.arg |
| 49a00 | 73 20 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | s.key))).......................( |
| 49a20 | 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 29 29 29 0a 20 20 20 | gptel-tool-args.tool-spec))).... |
| 49a40 | 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 6c 20 72 65 71 | ............;;.Check.if.tool.req |
| 49a60 | 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 20 20 20 20 20 | uires.confirmation.............. |
| 49a80 | 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 2d 63 61 | ..(if.(and.gptel-confirm-tool-ca |
| 49aa0 | 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 6c 2d 63 | lls.(or.(eq.gptel-confirm-tool-c |
| 49ac0 | 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 20 20 20 | alls.t)......................... |
| 49ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | .............................(gp |
| 49b00 | 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 20 | tel-tool-confirm.tool-spec)))... |
| 49b20 | 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 74 6f 6f | .................(push.(list.too |
| 49b40 | 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 2d 72 | l-spec.arg-values.process-tool-r |
| 49b60 | 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | esult).......................... |
| 49b80 | 70 65 6e 64 69 6e 67 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pending-calls).................. |
| 49ba0 | 3b 3b 20 49 66 20 6e 6f 74 2c 20 72 75 6e 20 74 68 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 | ;;.If.not,.run.the.tool......... |
| 49bc0 | 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 79 6e 63 20 74 | .........(if.(gptel-tool-async.t |
| 49be0 | 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ool-spec)......................( |
| 49c00 | 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 6f 6c 2d | apply.(gptel-tool-function.tool- |
| 49c20 | 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | spec)........................... |
| 49c40 | 20 20 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 61 72 67 2d 76 61 6c 75 65 73 | ..process-tool-result.arg-values |
| 49c60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 | )....................(let.((resu |
| 49c80 | 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | lt...........................(co |
| 49ca0 | 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 72 72 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 | ndition-case.errdata............ |
| 49cc0 | 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 74 65 6c | ...................(apply.(gptel |
| 49ce0 | 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 20 61 72 67 2d 76 61 | -tool-function.tool-spec).arg-va |
| 49d00 | 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 20 20 20 20 20 20 20 | lues)........................... |
| 49d20 | 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 2d | ..(error.(mapconcat.#'gptel--to- |
| 49d40 | 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 20 | string.errdata.".")))))......... |
| 49d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 65 73 73 2d 74 6f | .............(funcall.process-to |
| 49d80 | 6f 6c 2d 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ol-result.result)))))))......... |
| 49da0 | 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 70 65 6e 64 69 6e 67 | .tool-use).........(when.pending |
| 49dc0 | 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 66 73 | -calls...........(setq.gptel--fs |
| 49de0 | 6d 2d 6c 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 | m-last.fsm)...........(when.gpte |
| 49e00 | 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 | l-mode.(gptel--update-status.... |
| 49e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | .........................(format |
| 49e40 | 20 22 20 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 | .".Run.tools?".).'mode-line-emph |
| 49e60 | 61 73 69 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 | asis))...........(funcall.(plist |
| 49e80 | 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 20 20 20 20 20 | -get.info.:callback)............ |
| 49ea0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 27 74 6f 6f 6c 2d 63 61 6c 6c 20 70 65 6e 64 69 6e 67 | ........(cons.'tool-call.pending |
| 49ec0 | 2d 63 61 6c 6c 73 29 20 69 6e 66 6f 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 53 74 61 74 65 20 6d | -calls).info))))))..;;;;.State.m |
| 49ee0 | 61 63 68 69 6e 65 20 70 72 65 64 69 63 61 74 65 73 0a 3b 3b 20 50 72 65 64 69 63 61 74 65 73 20 | achine.predicates.;;.Predicates. |
| 49f00 | 75 73 65 64 20 74 6f 20 66 69 6e 64 20 74 68 65 20 6e 65 78 74 20 73 74 61 74 65 20 74 6f 20 74 | used.to.find.the.next.state.to.t |
| 49f20 | 72 61 6e 73 69 74 69 6f 6e 20 74 6f 2c 20 73 65 65 0a 3b 3b 20 60 67 70 74 65 6c 2d 72 65 71 75 | ransition.to,.see.;;.`gptel-requ |
| 49f40 | 65 73 74 2d 2d 74 72 61 6e 73 69 74 69 6f 6e 73 27 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | est--transitions'...(defun.gptel |
| 49f60 | 2d 2d 65 72 72 6f 72 2d 70 20 28 69 6e 66 6f 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | --error-p.(info).(plist-get.info |
| 49f80 | 20 3a 65 72 72 6f 72 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 75 73 | .:error))..(defun.gptel--tool-us |
| 49fa0 | 65 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 74 6f 6f 6c | e-p.(info).(plist-get.info.:tool |
| 49fc0 | 2d 75 73 65 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 6f 6f 6c 2d 72 65 73 75 6c | -use))..(defun.gptel--tool-resul |
| 49fe0 | 74 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 74 6f 6f 6c | t-p.(info).(plist-get.info.:tool |
| 4a000 | 2d 73 75 63 63 65 73 73 29 29 0a 0a 3b 3b 20 54 4f 44 4f 28 70 72 6f 6d 70 74 2d 6c 69 73 74 29 | -success))..;;.TODO(prompt-list) |
| 4a020 | 3a 20 44 6f 63 75 6d 65 6e 74 20 6e 65 77 20 70 72 6f 6d 70 74 20 69 6e 70 75 74 20 66 6f 72 6d | :.Document.new.prompt.input.form |
| 4a040 | 61 74 20 74 6f 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 2e 0a 0c 0a 3b 3b 3b 20 53 65 6e | at.to.`gptel-request'....;;;.Sen |
| 4a060 | 64 20 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 | d.queries,.handle.responses.(cl- |
| 4a080 | 64 65 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 | defun.gptel-request.....(&option |
| 4a0a0 | 61 6c 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 | al.prompt.&key.callback......... |
| 4a0c0 | 20 20 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 | .......(buffer.(current-buffer)) |
| 4a0e0 | 0a 20 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 | ................position.context |
| 4a100 | 20 64 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 | .dry-run................(stream. |
| 4a120 | 6e 69 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 | nil).(in-place.nil)............. |
| 4a140 | 20 20 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 | ...(system.gptel--system-message |
| 4a160 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 63 68 65 6d 61 20 74 72 61 6e 73 66 6f 72 | )................schema.transfor |
| 4a180 | 6d 73 20 28 66 73 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 29 29 29 0a 20 20 22 52 65 | ms.(fsm.(gptel-make-fsm)))..."Re |
| 4a1a0 | 71 75 65 73 74 20 61 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 60 67 70 74 65 6c | quest.a.response.from.the.`gptel |
| 4a1c0 | 2d 62 61 63 6b 65 6e 64 27 20 66 6f 72 20 50 52 4f 4d 50 54 2e 0a 0a 54 68 65 20 72 65 71 75 65 | -backend'.for.PROMPT...The.reque |
| 4a1e0 | 73 74 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 74 68 69 73 20 66 75 6e 63 74 69 6f | st.is.asynchronous,.this.functio |
| 4a200 | 6e 20 72 65 74 75 72 6e 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 2e 0a 0a 49 66 20 50 52 4f 4d 50 | n.returns.immediately...If.PROMP |
| 4a220 | 54 20 69 73 0a 2d 20 61 20 73 74 72 69 6e 67 2c 20 69 74 20 69 73 20 75 73 65 64 20 74 6f 20 63 | T.is.-.a.string,.it.is.used.to.c |
| 4a240 | 72 65 61 74 65 20 61 20 66 75 6c 6c 20 70 72 6f 6d 70 74 20 73 75 69 74 61 62 6c 65 20 66 6f 72 | reate.a.full.prompt.suitable.for |
| 4a260 | 0a 20 20 73 65 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 2d 20 41 20 6c 69 73 74 20 | ...sending.to.the.LLM..-.A.list. |
| 4a280 | 6f 66 20 73 74 72 69 6e 67 73 2c 20 69 74 20 69 73 20 69 6e 74 65 72 70 72 65 74 65 64 20 61 73 | of.strings,.it.is.interpreted.as |
| 4a2a0 | 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2c 20 69 2e 65 2e 20 61 0a 20 20 73 65 72 69 65 73 | .a.conversation,.i.e..a...series |
| 4a2c0 | 20 6f 66 20 61 6c 74 65 72 6e 61 74 69 6e 67 20 75 73 65 72 20 70 72 6f 6d 70 74 73 20 61 6e 64 | .of.alternating.user.prompts.and |
| 4a2e0 | 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 0a 20 20 28 5c 22 75 73 65 72 20 6d 73 67 20 31 5c | .LLM.responses....(\"user.msg.1\ |
| 4a300 | 22 20 5c 22 6c 6c 6d 20 6d 73 67 20 31 5c 22 20 5c 22 75 73 65 72 20 6d 73 67 20 32 5c 22 20 5c | ".\"llm.msg.1\".\"user.msg.2\".\ |
| 4a320 | 22 6c 6c 6d 20 6d 73 67 20 32 5c 22 20 2e 2e 2e 29 0a 2d 20 6e 69 6c 20 62 75 74 20 72 65 67 69 | "llm.msg.2\"....).-.nil.but.regi |
| 4a340 | 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 | on.is.active,.the.region.content |
| 4a360 | 73 20 61 72 65 20 75 73 65 64 2e 0a 2d 20 6e 69 6c 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 | s.are.used..-.nil,.the.current.b |
| 4a380 | 75 66 66 65 72 27 73 20 63 6f 6e 74 65 6e 74 73 20 75 70 20 74 6f 20 28 70 6f 69 6e 74 29 20 61 | uffer's.contents.up.to.(point).a |
| 4a3a0 | 72 65 20 75 73 65 64 2e 0a 20 20 50 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 73 20 66 72 | re.used....Previous.responses.fr |
| 4a3c0 | 6f 6d 20 74 68 65 20 4c 4c 4d 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 64 20 61 73 20 72 65 73 | om.the.LLM.are.identified.as.res |
| 4a3e0 | 70 6f 6e 73 65 73 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 41 4c | ponses...Keyword.arguments:..CAL |
| 4a400 | 4c 42 41 43 4b 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 69 73 20 61 20 66 75 6e 63 74 69 6f | LBACK,.if.supplied,.is.a.functio |
| 4a420 | 6e 20 6f 66 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 63 61 6c 6c 65 64 0a 77 69 74 68 20 | n.of.two.arguments,.called.with. |
| 4a440 | 74 68 65 20 52 45 53 50 4f 4e 53 45 20 28 75 73 75 61 6c 6c 79 20 61 20 73 74 72 69 6e 67 29 20 | the.RESPONSE.(usually.a.string). |
| 4a460 | 61 6e 64 20 49 4e 46 4f 20 28 61 20 70 6c 69 73 74 29 3a 0a 0a 20 28 66 75 6e 63 61 6c 6c 20 43 | and.INFO.(a.plist):...(funcall.C |
| 4a480 | 41 4c 4c 42 41 43 4b 20 52 45 53 50 4f 4e 53 45 20 49 4e 46 4f 29 0a 0a 52 45 53 50 4f 4e 53 45 | ALLBACK.RESPONSE.INFO)..RESPONSE |
| 4a4a0 | 20 69 73 0a 0a 2d 20 41 20 73 74 72 69 6e 67 20 69 66 20 74 68 65 20 72 65 71 75 65 73 74 20 77 | .is..-.A.string.if.the.request.w |
| 4a4c0 | 61 73 20 73 75 63 63 65 73 73 66 75 6c 0a 2d 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 | as.successful.-.nil.if.there.was |
| 4a4e0 | 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 6f 72 20 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 65 73 65 | .no.response.or.an.error...These |
| 4a500 | 20 61 72 65 20 74 68 65 20 6f 6e 6c 79 20 74 77 6f 20 63 61 73 65 73 20 79 6f 75 20 74 79 70 69 | .are.the.only.two.cases.you.typi |
| 4a520 | 63 61 6c 6c 79 20 6e 65 65 64 20 74 6f 20 63 6f 6e 73 69 64 65 72 2c 0a 75 6e 6c 65 73 73 20 79 | cally.need.to.consider,.unless.y |
| 4a540 | 6f 75 20 6e 65 65 64 20 74 6f 20 63 6c 65 61 6e 20 75 70 20 61 66 74 65 72 20 61 62 6f 72 74 65 | ou.need.to.clean.up.after.aborte |
| 4a560 | 64 20 72 65 71 75 65 73 74 73 2c 20 75 73 65 20 4c 4c 4d 0a 74 6f 6f 6c 73 2c 20 68 61 6e 64 6c | d.requests,.use.LLM.tools,.handl |
| 4a580 | 65 20 5c 22 72 65 61 73 6f 6e 69 6e 67 5c 22 20 63 6f 6e 74 65 6e 74 20 73 70 65 63 69 61 6c 6c | e.\"reasoning\".content.speciall |
| 4a5a0 | 79 20 6f 72 20 73 74 72 65 61 6d 0a 72 65 73 70 6f 6e 73 65 73 20 28 73 65 65 20 53 54 52 45 41 | y.or.stream.responses.(see.STREA |
| 4a5c0 | 4d 29 2e 20 20 49 6e 20 74 68 65 73 65 20 63 61 73 65 73 2c 20 52 45 53 50 4f 4e 53 45 20 63 61 | M)...In.these.cases,.RESPONSE.ca |
| 4a5e0 | 6e 20 62 65 0a 0a 2d 20 54 68 65 20 73 79 6d 62 6f 6c 20 60 61 62 6f 72 74 27 20 69 66 20 74 68 | n.be..-.The.symbol.`abort'.if.th |
| 4a600 | 65 20 72 65 71 75 65 73 74 20 69 73 20 61 62 6f 72 74 65 64 2c 20 73 65 65 20 60 67 70 74 65 6c | e.request.is.aborted,.see.`gptel |
| 4a620 | 2d 61 62 6f 72 74 27 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 | -abort'...-.A.cons.cell.of.the.f |
| 4a640 | 6f 72 6d 0a 0a 20 20 28 74 6f 6f 6c 2d 63 61 6c 6c 20 2e 20 28 28 54 4f 4f 4c 20 41 52 47 53 20 | orm....(tool-call...((TOOL.ARGS. |
| 4a660 | 43 42 29 20 2e 2e 2e 29 29 0a 0a 20 20 77 68 65 72 65 20 54 4f 4f 4c 20 69 73 20 61 20 67 70 74 | CB)....))....where.TOOL.is.a.gpt |
| 4a680 | 65 6c 2d 74 6f 6f 6c 20 73 74 72 75 63 74 2c 20 41 52 47 53 20 69 73 20 61 20 70 6c 69 73 74 20 | el-tool.struct,.ARGS.is.a.plist. |
| 4a6a0 | 6f 66 0a 20 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 6e 64 20 43 42 20 69 73 20 61 20 66 75 6e 63 | of...arguments,.and.CB.is.a.func |
| 4a6c0 | 74 69 6f 6e 20 66 6f 72 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 73 2e 20 20 | tion.for.handling.the.results... |
| 4a6e0 | 59 6f 75 0a 20 20 63 61 6e 20 63 61 6c 6c 20 43 42 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c | You...can.call.CB.with.the.resul |
| 4a700 | 74 20 6f 66 20 63 61 6c 6c 69 6e 67 20 74 68 65 20 74 6f 6f 6c 20 74 6f 20 63 6f 6e 74 69 6e 75 | t.of.calling.the.tool.to.continu |
| 4a720 | 65 20 74 68 65 0a 20 20 72 65 71 75 65 73 74 2e 0a 0a 2d 20 41 20 63 6f 6e 73 20 63 65 6c 6c 20 | e.the...request...-.A.cons.cell. |
| 4a740 | 6f 66 20 74 68 65 20 66 6f 72 6d 0a 0a 20 20 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 2e 20 28 28 | of.the.form....(tool-result...(( |
| 4a760 | 54 4f 4f 4c 20 41 52 47 53 20 52 45 53 55 4c 54 29 20 2e 2e 2e 29 29 0a 0a 20 20 77 68 65 72 65 | TOOL.ARGS.RESULT)....))....where |
| 4a780 | 20 54 4f 4f 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 | .TOOL.is.a.gptel-tool.struct,.AR |
| 4a7a0 | 47 53 20 69 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 | GS.is.a.plist.of...arguments,.an |
| 4a7c0 | 64 20 52 45 53 55 4c 54 20 77 61 73 20 72 65 74 75 72 6e 65 64 20 66 72 6f 6d 20 63 61 6c 6c 69 | d.RESULT.was.returned.from.calli |
| 4a7e0 | 6e 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 66 75 6e 63 74 69 6f 6e 2e 0a 0a 2d 20 41 20 63 6f 6e | ng.the.tool...function...-.A.con |
| 4a800 | 73 20 63 65 6c 6c 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 0a 20 20 28 72 65 61 73 6f 6e 69 6e 67 | s.cell.of.the.form....(reasoning |
| 4a820 | 20 2e 20 74 65 78 74 29 0a 0a 20 20 77 68 65 72 65 20 74 65 78 74 20 69 73 20 74 68 65 20 63 6f | ...text)....where.text.is.the.co |
| 4a840 | 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 2e 20 20 | ntents.of.the.reasoning.block... |
| 4a860 | 28 41 6c 73 6f 20 73 65 65 0a 20 20 53 54 52 45 41 4d 20 69 66 20 79 6f 75 20 61 72 65 20 75 73 | (Also.see...STREAM.if.you.are.us |
| 4a880 | 69 6e 67 20 73 74 72 65 61 6d 69 6e 67 2e 29 0a 0a 53 65 65 20 60 67 70 74 65 6c 2d 2d 69 6e 73 | ing.streaming.)..See.`gptel--ins |
| 4a8a0 | 65 72 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 61 6e 20 65 78 61 6d 70 6c 65 20 63 61 6c | ert-response'.for.an.example.cal |
| 4a8c0 | 6c 62 61 63 6b 20 68 61 6e 64 6c 69 6e 67 20 61 6c 6c 0a 63 61 73 65 73 2e 0a 0a 54 68 65 20 49 | lback.handling.all.cases...The.I |
| 4a8e0 | 4e 46 4f 20 70 6c 69 73 74 20 68 61 73 20 28 61 74 20 6c 65 61 73 74 29 20 74 68 65 20 66 6f 6c | NFO.plist.has.(at.least).the.fol |
| 4a900 | 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 3a 64 61 74 61 20 20 20 20 20 20 20 20 20 2d 20 54 68 65 | lowing.keys:.:data.........-.The |
| 4a920 | 20 72 65 71 75 65 73 74 20 64 61 74 61 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 | .request.data.included.with.the. |
| 4a940 | 71 75 65 72 79 0a 3a 70 6f 73 69 74 69 6f 6e 20 20 20 20 20 2d 20 6d 61 72 6b 65 72 20 61 74 20 | query.:position.....-.marker.at. |
| 4a960 | 74 68 65 20 70 6f 69 6e 74 20 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 20 | the.point.the.request.was.sent,. |
| 4a980 | 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 | unless.................POSITION. |
| 4a9a0 | 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 3a 62 75 66 66 65 72 20 20 20 20 20 20 20 2d 20 54 68 | is.specified..:buffer.......-.Th |
| 4a9c0 | 65 20 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 | e.buffer.current.when.the.reques |
| 4a9e0 | 74 20 77 61 73 20 73 65 6e 74 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 | t.was.sent,.................unle |
| 4aa00 | 73 73 20 42 55 46 46 45 52 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 3a 73 74 61 74 75 73 20 | ss.BUFFER.is.specified..:status. |
| 4aa20 | 20 20 20 20 20 20 2d 20 53 68 6f 72 74 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 | ......-.Short.string.describing. |
| 4aa40 | 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2c 0a 20 20 20 20 20 | the.result.of.the.request,...... |
| 4aa60 | 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 69 6e 67 20 70 6f 73 73 69 62 6c 65 20 48 54 | ...........including.possible.HT |
| 4aa80 | 54 50 20 65 72 72 6f 72 73 2e 0a 0a 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 61 6c 6c 62 61 63 | TP.errors...Example.of.a.callbac |
| 4aaa0 | 6b 20 74 68 61 74 20 6d 65 73 73 61 67 65 73 20 74 68 65 20 75 73 65 72 20 77 69 74 68 20 74 68 | k.that.messages.the.user.with.th |
| 4aac0 | 65 20 72 65 73 70 6f 6e 73 65 0a 61 6e 64 20 69 6e 66 6f 3a 0a 0a 20 28 6c 61 6d 62 64 61 20 28 | e.response.and.info:...(lambda.( |
| 4aae0 | 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 72 65 | response.info)...(if.(stringp.re |
| 4ab00 | 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 6e 20 28 6d 61 72 6b 65 | sponse).......(let.((posn.(marke |
| 4ab20 | 72 2d 70 6f 73 69 74 69 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 | r-position.(plist-get.info.:posi |
| 4ab40 | 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 20 28 62 75 66 66 65 | tion))).............(buf..(buffe |
| 4ab60 | 72 2d 6e 61 6d 65 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 | r-name.(plist-get.info.:buffer)) |
| 4ab80 | 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 5c 22 52 65 73 70 6f 6e 73 65 20 66 | )).........(message.\"Response.f |
| 4aba0 | 6f 72 20 72 65 71 75 65 73 74 20 66 72 6f 6d 20 25 53 20 61 74 20 25 64 3a 20 25 73 5c 22 0a 20 | or.request.from.%S.at.%d:.%s\".. |
| 4abc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 20 70 6f 73 6e 20 72 65 73 70 6f 6e 73 | ................buf.posn.respons |
| 4abe0 | 65 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 5c 22 67 70 74 65 6c 2d 72 65 71 75 65 73 74 | e)).....(message.\"gptel-request |
| 4ac00 | 20 66 61 69 6c 65 64 20 77 69 74 68 20 6d 65 73 73 61 67 65 3a 20 25 73 5c 22 0a 20 20 20 20 20 | .failed.with.message:.%s\"...... |
| 4ac20 | 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 73 29 | ........(plist-get.info.:status) |
| 4ac40 | 29 29 29 0a 0a 4f 72 2c 20 66 6f 72 20 6a 75 73 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 3a 0a | )))..Or,.for.just.the.response:. |
| 4ac60 | 0a 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 6f 6e 73 65 20 5f 29 0a 20 20 3b 3b 20 44 6f 20 73 | ..(lambda.(response._)...;;.Do.s |
| 4ac80 | 6f 6d 65 74 68 69 6e 67 20 77 69 74 68 20 72 65 73 70 6f 6e 73 65 0a 20 20 28 6d 65 73 73 61 67 | omething.with.response...(messag |
| 4aca0 | 65 20 28 72 6f 74 31 33 2d 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 49 66 20 | e.(rot13-string.response)))..If. |
| 4acc0 | 43 41 4c 4c 42 41 43 4b 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 72 65 73 70 6f 6e 73 | CALLBACK.is.omitted,.the.respons |
| 4ace0 | 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 0a 72 | e.is.inserted.at.the.point.the.r |
| 4ad00 | 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f | equest.was.sent...STREAM.is.a.bo |
| 4ad20 | 6f 6c 65 61 6e 20 74 68 61 74 20 64 65 74 65 72 6d 69 6e 65 73 20 69 66 20 74 68 65 20 72 65 73 | olean.that.determines.if.the.res |
| 4ad40 | 70 6f 6e 73 65 20 73 68 6f 75 6c 64 20 62 65 0a 73 74 72 65 61 6d 65 64 2c 20 61 73 20 69 6e 20 | ponse.should.be.streamed,.as.in. |
| 4ad60 | 60 67 70 74 65 6c 2d 73 74 72 65 61 6d 27 2e 20 20 49 66 20 74 68 65 20 6d 6f 64 65 6c 20 6f 72 | `gptel-stream'...If.the.model.or |
| 4ad80 | 20 74 68 65 20 62 61 63 6b 65 6e 64 20 64 6f 65 73 0a 6e 6f 74 20 73 75 70 70 6f 72 74 20 73 74 | .the.backend.does.not.support.st |
| 4ada0 | 72 65 61 6d 69 6e 67 2c 20 74 68 69 73 20 77 69 6c 6c 20 62 65 20 69 67 6e 6f 72 65 64 2e 0a 0a | reaming,.this.will.be.ignored... |
| 4adc0 | 57 68 65 6e 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 0a 2d 20 43 41 4c 4c | When.streaming.responses..-.CALL |
| 4ade0 | 42 41 43 4b 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 72 65 70 65 61 74 65 64 6c 79 20 77 | BACK.will.be.called.repeatedly.w |
| 4ae00 | 69 74 68 20 65 61 63 68 20 52 45 53 50 4f 4e 53 45 20 74 65 78 74 0a 20 20 63 68 75 6e 6b 20 28 | ith.each.RESPONSE.text...chunk.( |
| 4ae20 | 61 20 73 74 72 69 6e 67 29 20 61 73 20 69 74 20 69 73 20 72 65 63 65 69 76 65 64 2e 0a 2d 20 57 | a.string).as.it.is.received..-.W |
| 4ae40 | 68 65 6e 20 74 68 65 20 48 54 54 50 20 72 65 71 75 65 73 74 20 65 6e 64 73 20 73 75 63 63 65 73 | hen.the.HTTP.request.ends.succes |
| 4ae60 | 73 66 75 6c 6c 79 2c 20 43 41 4c 4c 42 41 43 4b 20 77 69 6c 6c 20 62 65 0a 20 20 63 61 6c 6c 65 | sfully,.CALLBACK.will.be...calle |
| 4ae80 | 64 20 77 69 74 68 20 61 20 52 45 53 50 4f 4e 53 45 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 74 20 | d.with.a.RESPONSE.argument.of.t. |
| 4aea0 | 74 6f 20 69 6e 64 69 63 61 74 65 20 73 75 63 63 65 73 73 2e 0a 2d 20 53 69 6d 69 6c 61 72 6c 79 | to.indicate.success..-.Similarly |
| 4aec0 | 2c 20 43 41 4c 4c 42 41 43 4b 20 77 69 6c 6c 20 62 65 20 63 61 6c 6c 65 64 20 77 69 74 68 0a 20 | ,.CALLBACK.will.be.called.with.. |
| 4aee0 | 20 28 72 65 61 73 6f 6e 69 6e 67 20 2e 20 74 65 78 74 2d 63 68 75 6e 6b 29 20 66 6f 72 20 65 61 | .(reasoning...text-chunk).for.ea |
| 4af00 | 63 68 20 72 65 61 73 6f 6e 69 6e 67 20 63 68 75 6e 6b 2c 20 61 6e 64 0a 20 20 28 72 65 61 73 6f | ch.reasoning.chunk,.and...(reaso |
| 4af20 | 6e 69 6e 67 20 2e 20 74 29 20 74 6f 20 69 6e 64 69 63 61 74 65 20 74 68 65 20 65 6e 64 20 6f 66 | ning...t).to.indicate.the.end.of |
| 4af40 | 20 74 68 65 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 2e 0a 0a 42 55 46 46 45 52 20 61 6e | .the.reasoning.block...BUFFER.an |
| 4af60 | 64 20 50 4f 53 49 54 49 4f 4e 20 61 72 65 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f | d.POSITION.are.the.buffer.and.po |
| 4af80 | 73 69 74 69 6f 6e 20 28 69 6e 74 65 67 65 72 20 6f 72 0a 6d 61 72 6b 65 72 29 20 61 74 20 77 68 | sition.(integer.or.marker).at.wh |
| 4afa0 | 69 63 68 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 2e 20 20 49 | ich.the.response.is.inserted...I |
| 4afc0 | 66 20 61 20 43 41 4c 4c 42 41 43 4b 20 69 73 0a 73 70 65 63 69 66 69 65 64 2c 20 6e 6f 20 72 65 | f.a.CALLBACK.is.specified,.no.re |
| 4afe0 | 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 61 6e 64 20 74 68 65 73 65 20 61 72 67 | sponse.is.inserted.and.these.arg |
| 4b000 | 75 6d 65 6e 74 73 20 61 72 65 0a 69 67 6e 6f 72 65 64 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 | uments.are.ignored,.but.they.are |
| 4b020 | 20 73 74 69 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 | .still.available.in.the.INFO.pli |
| 4b040 | 73 74 20 70 61 73 73 65 64 0a 74 6f 20 43 41 4c 4c 42 41 43 4b 20 66 6f 72 20 79 6f 75 20 74 6f | st.passed.to.CALLBACK.for.you.to |
| 4b060 | 20 75 73 65 2e 0a 0a 42 55 46 46 45 52 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 | .use...BUFFER.defaults.to.the.cu |
| 4b080 | 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e 20 74 6f 20 74 68 | rrent.buffer,.and.POSITION.to.th |
| 4b0a0 | 65 20 76 61 6c 75 65 0a 6f 66 20 28 70 6f 69 6e 74 29 20 6f 72 20 28 72 65 67 69 6f 6e 2d 65 6e | e.value.of.(point).or.(region-en |
| 4b0c0 | 64 29 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 67 | d),.depending.on.whether.the.reg |
| 4b0e0 | 69 6f 6e 20 69 73 0a 61 63 74 69 76 65 2e 0a 0a 43 4f 4e 54 45 58 54 20 69 73 20 61 6e 79 20 61 | ion.is.active...CONTEXT.is.any.a |
| 4b100 | 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 61 20 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 63 61 | dditional.data.needed.for.the.ca |
| 4b120 | 6c 6c 62 61 63 6b 20 74 6f 20 72 75 6e 2e 20 49 74 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e | llback.to.run..It.is.included.in |
| 4b140 | 20 74 68 65 20 49 4e 46 4f 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 | .the.INFO.argument.to.the.callba |
| 4b160 | 63 6b 2e 0a 4e 6f 74 65 3a 20 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 64 20 66 6f 72 20 73 | ck..Note:.This.is.intended.for.s |
| 4b180 | 74 6f 72 69 6e 67 20 45 6d 61 63 73 20 73 74 61 74 65 20 74 6f 20 62 65 20 75 73 65 64 20 62 79 | toring.Emacs.state.to.be.used.by |
| 4b1a0 | 0a 43 41 4c 4c 42 41 43 4b 2c 20 61 6e 64 20 75 6e 72 65 6c 61 74 65 64 20 74 6f 20 74 68 65 20 | .CALLBACK,.and.unrelated.to.the. |
| 4b1c0 | 63 6f 6e 74 65 78 74 20 73 75 70 70 6c 69 65 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 0a 0a 53 59 | context.supplied.to.the.LLM...SY |
| 4b1e0 | 53 54 45 4d 20 69 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 6f 72 20 65 78 | STEM.is.the.system.message.or.ex |
| 4b200 | 74 65 6e 64 65 64 20 63 68 61 74 20 64 69 72 65 63 74 69 76 65 20 73 65 6e 74 20 74 6f 0a 74 68 | tended.chat.directive.sent.to.th |
| 4b220 | 65 20 4c 4c 4d 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 61 20 | e.LLM...This.can.be.a.string,.a. |
| 4b240 | 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 0a 74 68 | list.of.strings.or.a.function.th |
| 4b260 | 61 74 20 72 65 74 75 72 6e 73 20 65 69 74 68 65 72 3b 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 | at.returns.either;.see.`gptel-di |
| 4b280 | 72 65 63 74 69 76 65 73 27 20 66 6f 72 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 | rectives'.for.more.information.. |
| 4b2a0 | 49 66 20 53 59 53 54 45 4d 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 76 61 6c 75 65 20 | If.SYSTEM.is.omitted,.the.value. |
| 4b2c0 | 6f 66 0a 60 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 27 20 66 6f 72 20 74 | of.`gptel--system-message'.for.t |
| 4b2e0 | 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 75 73 65 64 2e 0a 0a 54 68 65 20 | he.current.buffer.is.used...The. |
| 4b300 | 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 77 6f 72 64 73 20 61 72 65 20 6d 61 69 6e 6c 79 20 66 6f | following.keywords.are.mainly.fo |
| 4b320 | 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 3a 0a 0a 49 4e 2d 50 4c 41 43 45 20 69 73 20 61 20 62 | r.internal.use:..IN-PLACE.is.a.b |
| 4b340 | 6f 6f 6c 65 61 6e 20 75 73 65 64 20 62 79 20 74 68 65 20 64 65 66 61 75 6c 74 20 63 61 6c 6c 62 | oolean.used.by.the.default.callb |
| 4b360 | 61 63 6b 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 20 | ack.when.inserting.the.response. |
| 4b380 | 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 64 65 6c 69 6d 69 74 65 72 73 20 61 72 65 20 6e | to.determine.if.delimiters.are.n |
| 4b3a0 | 65 65 64 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 0a 70 72 6f 6d 70 74 20 61 6e 64 20 74 68 65 | eeded.between.the.prompt.and.the |
| 4b3c0 | 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 49 66 20 44 52 59 2d 52 55 4e 20 69 73 20 6e 6f 6e 2d 6e 69 | .response...If.DRY-RUN.is.non-ni |
| 4b3e0 | 6c 2c 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 20 20 43 6f 6e | l,.do.not.send.the.request...Con |
| 4b400 | 73 74 72 75 63 74 20 61 6e 64 0a 72 65 74 75 72 6e 20 61 20 73 74 61 74 65 20 6d 61 63 68 69 6e | struct.and.return.a.state.machin |
| 4b420 | 65 20 6f 62 6a 65 63 74 20 74 68 61 74 20 63 61 6e 20 62 65 20 69 6e 74 72 6f 73 70 65 63 74 65 | e.object.that.can.be.introspecte |
| 4b440 | 64 20 61 6e 64 0a 72 65 73 75 6d 65 64 2e 0a 0a 54 52 41 4e 53 46 4f 52 4d 53 20 69 73 20 61 20 | d.and.resumed...TRANSFORMS.is.a. |
| 4b460 | 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 20 74 6f 20 74 72 61 6e 73 66 | list.of.functions.used.to.transf |
| 4b480 | 6f 72 6d 20 74 68 65 20 70 72 6f 6d 70 74 20 6f 72 20 71 75 65 72 79 0a 70 61 72 61 6d 65 74 65 | orm.the.prompt.or.query.paramete |
| 4b4a0 | 72 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 2e 20 20 45 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 | rs.dynamically...Each.function.i |
| 4b4c0 | 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 72 0a 63 | s.called.in.a.temporary.buffer.c |
| 4b4e0 | 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 20 62 65 20 73 65 6e 74 2c | ontaining.the.prompt.to.be.sent, |
| 4b500 | 20 61 6e 64 20 63 61 6e 20 63 6f 6e 64 69 74 69 6f 6e 61 6c 6c 79 20 6d 6f 64 69 66 79 20 74 68 | .and.can.conditionally.modify.th |
| 4b520 | 69 73 0a 62 75 66 66 65 72 2e 20 20 54 68 69 73 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 63 68 61 | is.buffer...This.can.include.cha |
| 4b540 | 6e 67 69 6e 67 20 74 68 65 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 29 20 76 61 6c 75 65 73 20 | nging.the.(buffer-local).values. |
| 4b560 | 6f 66 20 74 68 65 0a 6d 6f 64 65 6c 2c 20 62 61 63 6b 65 6e 64 20 6f 72 20 73 79 73 74 65 6d 20 | of.the.model,.backend.or.system. |
| 4b580 | 70 72 6f 6d 70 74 2c 20 6f 72 20 61 75 67 6d 65 6e 74 69 6e 67 20 74 68 65 20 70 72 6f 6d 70 74 | prompt,.or.augmenting.the.prompt |
| 4b5a0 | 20 77 69 74 68 0a 61 64 64 69 74 69 6f 6e 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 28 73 75 | .with.additional.information.(su |
| 4b5c0 | 63 68 20 61 73 20 66 72 6f 6d 20 61 20 52 41 47 20 65 6e 67 69 6e 65 29 2e 0a 0a 2d 20 53 79 6e | ch.as.from.a.RAG.engine)...-.Syn |
| 4b5e0 | 63 68 72 6f 6e 6f 75 73 20 74 72 61 6e 73 66 6f 72 6d 65 72 73 20 61 72 65 20 63 61 6c 6c 65 64 | chronous.transformers.are.called |
| 4b600 | 20 77 69 74 68 20 7a 65 72 6f 20 6f 72 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 74 68 65 0a | .with.zero.or.one.argument,.the. |
| 4b620 | 20 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 2e | ..state.machine.for.the.request. |
| 4b640 | 0a 0a 2d 20 41 73 79 6e 63 68 72 6f 6e 6f 75 73 20 74 72 61 6e 73 66 6f 72 6d 65 72 73 20 61 72 | ..-.Asynchronous.transformers.ar |
| 4b660 | 65 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 61 20 63 | e.called.with.two.arguments,.a.c |
| 4b680 | 61 6c 6c 62 61 63 6b 0a 20 20 61 6e 64 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 2e | allback...and.the.state.machine. |
| 4b6a0 | 20 20 49 74 20 73 68 6f 75 6c 64 20 72 75 6e 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 61 66 74 | ..It.should.run.the.callback.aft |
| 4b6c0 | 65 72 20 66 69 6e 69 73 68 69 6e 67 20 69 74 73 0a 20 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f | er.finishing.its...transformatio |
| 4b6e0 | 6e 2e 0a 0a 53 65 65 20 60 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d | n...See.`gptel-prompt-transform- |
| 4b700 | 66 75 6e 63 74 69 6f 6e 73 27 20 66 6f 72 20 6d 6f 72 65 2e 0a 0a 49 66 20 70 72 6f 76 69 64 65 | functions'.for.more...If.provide |
| 4b720 | 64 2c 20 53 43 48 45 4d 41 20 66 6f 72 63 65 73 20 74 68 65 20 4c 4c 4d 20 74 6f 20 67 65 6e 65 | d,.SCHEMA.forces.the.LLM.to.gene |
| 4b740 | 72 61 74 65 20 4a 53 4f 4e 20 6f 75 74 70 75 74 2e 20 20 49 74 73 20 76 61 6c 75 65 0a 69 73 20 | rate.JSON.output...Its.value.is. |
| 4b760 | 61 20 4a 53 4f 4e 20 73 63 68 65 6d 61 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 70 72 6f 76 | a.JSON.schema,.which.can.be.prov |
| 4b780 | 69 64 65 64 20 61 73 0a 2d 20 61 6e 20 65 6c 69 73 70 20 6f 62 6a 65 63 74 2c 20 61 20 6e 65 73 | ided.as.-.an.elisp.object,.a.nes |
| 4b7a0 | 74 65 64 20 70 6c 69 73 74 20 73 74 72 75 63 74 75 72 65 2e 0a 2d 20 41 20 4a 53 4f 4e 20 73 63 | ted.plist.structure..-.A.JSON.sc |
| 4b7c0 | 68 65 6d 61 20 73 65 72 69 61 6c 69 7a 65 64 20 74 6f 20 61 20 73 74 72 69 6e 67 0a 2d 20 41 20 | hema.serialized.to.a.string.-.A. |
| 4b7e0 | 73 68 6f 72 74 68 61 6e 64 20 6f 62 6a 65 63 74 2f 61 72 72 61 79 20 64 65 73 63 72 69 70 74 69 | shorthand.object/array.descripti |
| 4b800 | 6f 6e 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d | on,.see.`gptel--dispatch-schema- |
| 4b820 | 74 79 70 65 27 2e 0a 53 65 65 20 74 68 65 20 6d 61 6e 75 61 6c 20 6f 72 20 74 68 65 20 77 69 6b | type'..See.the.manual.or.the.wik |
| 4b840 | 69 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 0a 0a 4e 6f 74 65 3a 20 53 43 48 45 4d 41 20 69 73 | i.for.examples...Note:.SCHEMA.is |
| 4b860 | 20 70 72 65 73 65 6e 74 6c 79 20 65 78 70 65 72 69 6d 65 6e 74 61 6c 20 61 6e 64 20 73 75 62 6a | .presently.experimental.and.subj |
| 4b880 | 65 63 74 20 74 6f 20 63 68 61 6e 67 65 2c 20 61 6e 64 20 6e 6f 74 0a 61 6c 6c 20 70 72 6f 76 69 | ect.to.change,.and.not.all.provi |
| 4b8a0 | 64 65 72 73 20 73 75 70 70 6f 72 74 20 73 74 72 75 63 74 75 72 65 64 20 6f 75 74 70 75 74 2e 0a | ders.support.structured.output.. |
| 4b8c0 | 0a 46 53 4d 20 69 73 20 74 68 65 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 64 72 69 76 69 6e | .FSM.is.the.state.machine.drivin |
| 4b8e0 | 67 20 74 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 | g.the.request...This.can.be.used |
| 4b900 | 0a 74 6f 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 | .to.define.a.custom.request.cont |
| 4b920 | 72 6f 6c 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 | rol.flow,.see.`gptel-fsm'.for.de |
| 4b940 | 74 61 69 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 | tails...You.can.safely.ignore.th |
| 4b960 | 69 73 20 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 | is.--.FSM.is.an.unstable.feature |
| 4b980 | 20 61 6e 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 | .and.subject.to.change...Note:.. |
| 4b9a0 | 31 2e 20 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 | 1..This.function.is.not.fully.se |
| 4b9c0 | 6c 66 2d 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 | lf-contained...Consider.let-bind |
| 4b9e0 | 69 6e 67 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 | ing.the.parameters.`gptel-backen |
| 4ba00 | 64 27 2c 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 | d',.`gptel-model',.`gptel-use-to |
| 4ba20 | 6f 6c 73 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 | ols'.and.`gptel-use-context'.aro |
| 4ba40 | 75 6e 64 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 | und.calls.to.it.as.required...2. |
| 4ba60 | 20 54 68 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 | .The.return.value.of.this.functi |
| 4ba80 | 6f 6e 20 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 | on.is.a.state.machine.that.may.b |
| 4baa0 | 65 20 75 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 | e.used.to.rerun.or.continue.the. |
| 4bac0 | 72 65 71 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 | request.at.a.later.time."...(dec |
| 4bae0 | 6c 61 72 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 | lare.(indent.1))...;;.TODO.Remov |
| 4bb00 | 65 20 74 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 | e.this.check.in.version.1.0...(g |
| 4bb20 | 70 74 65 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 | ptel--sanitize-model)...(let*.(( |
| 4bb40 | 73 74 61 72 74 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 | start-marker...........(cond.... |
| 4bb60 | 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 | ........((null.position)........ |
| 4bb80 | 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 20 20 20 | .....(if.(use-region-p)......... |
| 4bba0 | 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 72 6b 65 72 | ........(set-marker.(make-marker |
| 4bbc0 | 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ).(region-end))...............(g |
| 4bbe0 | 70 74 65 6c 2d 2d 61 74 2d 77 6f 72 64 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 | ptel--at-word-end.(point-marker) |
| 4bc00 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 61 72 6b 65 72 70 20 70 6f 73 69 74 69 6f | )))............((markerp.positio |
| 4bc20 | 6e 29 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 69 6e 74 65 67 65 | n).position)............((intege |
| 4bc40 | 72 70 20 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 | rp.position).............(set-ma |
| 4bc60 | 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 70 6f 73 69 74 69 6f 6e 20 62 75 66 66 | rker.(make-marker).position.buff |
| 4bc80 | 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 20 73 | er))))..........(gptel--schema.s |
| 4bca0 | 63 68 65 6d 61 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 0a 20 | chema)..........(prompt-buffer.. |
| 4bcc0 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(cond.................. |
| 4bce0 | 20 20 20 20 20 3b 70 72 6f 6d 70 74 20 66 72 6f 6d 20 62 75 66 66 65 72 20 6f 72 20 65 78 70 6c | .....;prompt.from.buffer.or.expl |
| 4bd00 | 69 63 69 74 6c 79 20 73 75 70 70 6c 69 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c | icitly.supplied............((nul |
| 4bd20 | 6c 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 63 72 | l.prompt).............(gptel--cr |
| 4bd40 | 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | eate-prompt-buffer.(point))).... |
| 4bd60 | 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 | ........((stringp.prompt)....... |
| 4bd80 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 2d 63 6f 70 79 20 62 | ......(gptel--with-buffer-copy.b |
| 4bda0 | 75 66 66 65 72 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | uffer.nil.nil...............(ins |
| 4bdc0 | 65 72 74 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 | ert.prompt)...............(curre |
| 4bde0 | 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 | nt-buffer)))............((consp. |
| 4be00 | 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 67 70 74 65 6c 2d 2d 70 | prompt).............;;.(gptel--p |
| 4be20 | 61 72 73 65 2d 6c 69 73 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 29 0a | arse-list.gptel-backend.prompt). |
| 4be40 | 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 66 65 72 2d | ............(gptel--with-buffer- |
| 4be60 | 63 6f 70 79 20 62 75 66 66 65 72 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | copy.buffer.nil.nil............. |
| 4be80 | 20 20 3b 3b 20 54 45 4d 50 20 44 65 63 69 64 65 20 6f 6e 20 74 68 65 20 61 6e 6e 6f 61 74 65 64 | ..;;.TEMP.Decide.on.the.annoated |
| 4bea0 | 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .prompt-list.format............. |
| 4bec0 | 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 2d 61 6e 64 2d 69 6e 73 65 72 74 20 | ..(gptel--parse-list-and-insert. |
| 4bee0 | 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 | prompt)...............(current-b |
| 4bf00 | 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 6c 69 73 74 20 | uffer)))))..........(info.(list. |
| 4bf20 | 3a 64 61 74 61 20 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | :data.prompt-buffer............. |
| 4bf40 | 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 20 20 20 20 20 | .........:buffer.buffer......... |
| 4bf60 | 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 74 2d 6d 61 72 | .............:position.start-mar |
| 4bf80 | 6b 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 72 61 6e 73 66 6f 72 6d 73 20 28 70 6c 69 | ker))).....(when.transforms.(pli |
| 4bfa0 | 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 74 72 61 6e 73 66 6f 72 | st-put.info.:transforms.transfor |
| 4bfc0 | 6d 73 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 70 72 | ms)).....(with-current-buffer.pr |
| 4bfe0 | 6f 6d 70 74 2d 62 75 66 66 65 72 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d | ompt-buffer.(setq.gptel--system- |
| 4c000 | 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 74 72 65 61 | message.system)).....(when.strea |
| 4c020 | 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 20 73 74 72 65 61 6d | m.(plist-put.info.:stream.stream |
| 4c040 | 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 6e 6f | )).....;;.This.context.should.no |
| 4c060 | 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 20 61 | t.be.confused.with.the.context.a |
| 4c080 | 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 63 61 | ggregation.context!.....(when.ca |
| 4c0a0 | 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 63 6b | llback.(plist-put.info.:callback |
| 4c0c0 | 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 28 70 | .callback)).....(when.context.(p |
| 4c0e0 | 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 29 29 | list-put.info.:context.context)) |
| 4c100 | 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 20 69 | .....(when.in-place.(plist-put.i |
| 4c120 | 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 3b 3b 20 | nfo.:in-place.in-place)).....;;. |
| 4c140 | 41 64 64 20 69 6e 66 6f 20 74 6f 20 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 63 6f 6e 74 65 78 | Add.info.to.state.machine.contex |
| 4c160 | 74 0a 20 20 20 20 28 77 68 65 6e 20 64 72 79 2d 72 75 6e 20 28 70 6c 69 73 74 2d 70 75 74 20 69 | t.....(when.dry-run.(plist-put.i |
| 4c180 | 6e 66 6f 20 3a 64 72 79 2d 72 75 6e 20 64 72 79 2d 72 75 6e 29 29 0a 20 20 20 20 28 73 65 74 66 | nfo.:dry-run.dry-run)).....(setf |
| 4c1a0 | 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 20 69 6e 66 6f 29 29 0a 0a 20 20 | .(gptel-fsm-info.fsm).info)).... |
| 4c1c0 | 3b 3b 20 54 45 4d 50 3a 20 41 75 67 6d 65 6e 74 20 69 6e 20 73 65 70 61 72 61 74 65 20 6c 65 74 | ;;.TEMP:.Augment.in.separate.let |
| 4c1e0 | 20 62 6c 6f 63 6b 20 66 6f 72 20 6e 6f 77 2e 20 20 41 72 65 20 77 65 20 6f 76 65 72 63 61 70 74 | .block.for.now...Are.we.overcapt |
| 4c200 | 75 72 69 6e 67 3f 0a 20 20 3b 3b 20 46 49 58 4d 45 28 61 75 67 6d 65 6e 74 29 3a 20 43 61 6c 6c | uring?...;;.FIXME(augment):.Call |
| 4c220 | 20 61 75 67 6d 65 6e 74 6f 72 73 20 77 69 74 68 20 49 4e 46 4f 2c 20 6e 6f 74 20 46 53 4d 0a 20 | .augmentors.with.INFO,.not.FSM.. |
| 4c240 | 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d | .(let.((info.(gptel-fsm-info.fsm |
| 4c260 | 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c | ))).....(with-current-buffer.(pl |
| 4c280 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 28 73 65 74 71 2d | ist-get.info.:data).......(setq- |
| 4c2a0 | 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e | local.gptel-prompt-transform-fun |
| 4c2c0 | 63 74 69 6f 6e 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 | ctions.(plist-get.info.:transfor |
| 4c2e0 | 6d 73 29 29 0a 20 20 20 20 20 20 3b 3b 20 50 72 65 73 65 74 20 68 61 73 20 68 69 67 68 65 73 74 | ms)).......;;.Preset.has.highest |
| 4c300 | 20 70 72 69 6f 72 69 74 79 20 62 65 63 61 75 73 65 20 69 74 20 63 61 6e 20 63 68 61 6e 67 65 20 | .priority.because.it.can.change. |
| 4c320 | 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 | prompt-transform-functions...... |
| 4c340 | 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 27 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 | .(when.(memq.'gptel--transform-a |
| 4c360 | 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f | pply-preset.gptel-prompt-transfo |
| 4c380 | 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 74 72 | rm-functions).........(gptel--tr |
| 4c3a0 | 61 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 66 73 6d 29 0a 20 20 20 20 20 20 | ansform-apply-preset.fsm)....... |
| 4c3c0 | 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 | ..(setq.gptel-prompt-transform-f |
| 4c3e0 | 75 6e 63 74 69 6f 6e 73 20 3b 61 76 6f 69 64 20 6d 75 74 61 74 69 6f 6e 2c 20 63 6f 70 79 20 74 | unctions.;avoid.mutation,.copy.t |
| 4c400 | 72 61 6e 73 66 6f 72 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 71 20 27 67 | ransforms...............(remq.'g |
| 4c420 | 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 67 70 74 | ptel--transform-apply-preset.gpt |
| 4c440 | 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 | el-prompt-transform-functions))) |
| 4c460 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 75 67 6d 65 6e 74 2d 74 6f 74 61 6c 20 20 20 20 20 | .......(let.((augment-total..... |
| 4c480 | 20 20 20 20 20 20 20 20 20 3b 61 63 74 20 6c 69 6b 65 20 61 20 68 6f 6f 6b 2c 20 63 6f 75 6e 74 | .........;act.like.a.hook,.count |
| 4c4a0 | 20 74 6f 74 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 71 20 74 20 | .total..............(if.(memq.t. |
| 4c4c0 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 | gptel-prompt-transform-functions |
| 4c4e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 0a 20 20 20 20 20 | )..................(length...... |
| 4c500 | 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 70 72 6f 6d 70 74 2d | .............(setq.gptel-prompt- |
| 4c520 | 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | transform-functions............. |
| 4c540 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 72 65 6d 71 20 74 20 67 70 74 65 6c | ............(nconc.(remq.t.gptel |
| 4c560 | 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 | -prompt-transform-functions).... |
| 4c580 | 20 20 20 20 20 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 | ............................(def |
| 4c5a0 | 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f | ault-value.'gptel-prompt-transfo |
| 4c5c0 | 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rm-functions))))................ |
| 4c5e0 | 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 | (length.gptel-prompt-transform-f |
| 4c600 | 75 6e 63 74 69 6f 6e 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 75 67 6d 65 6e 74 | unctions))).............(augment |
| 4c620 | 2d 69 64 78 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 65 6c | -idx.0)).........(if.(null.gptel |
| 4c640 | 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 | -prompt-transform-functions).... |
| 4c660 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 | .........(gptel--realize-query.f |
| 4c680 | 73 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | sm)...........(with-current-buff |
| 4c6a0 | 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 20 3b 41 70 70 | er.(plist-get.info.:buffer).;App |
| 4c6c0 | 6c 79 20 70 72 6f 6d 70 74 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 | ly.prompt.transformations....... |
| 4c6e0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 41 75 | ......(gptel--update-status.".Au |
| 4c700 | 67 6d 65 6e 74 69 6e 67 2e 2e 2e 22 20 27 6d 6f 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 | gmenting...".'mode-line-emphasis |
| 4c720 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 28 61 75 67 6d 65 6e 74 29 3a 20 | ))...........;;.FIXME(augment):. |
| 4c740 | 54 68 69 73 20 6e 65 65 64 73 20 74 6f 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 69 6e 74 6f 20 | This.needs.to.be.converted.into. |
| 4c760 | 61 20 6c 69 6e 65 61 72 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 | a.linear.callback...........;;.c |
| 4c780 | 68 61 69 6e 20 74 6f 20 61 76 6f 69 64 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 73 20 77 69 | hain.to.avoid.race.conditions.wi |
| 4c7a0 | 74 68 20 6d 75 6c 74 69 70 6c 65 20 61 73 79 6e 63 20 61 75 67 6d 65 6e 74 6f 72 73 2e 0a 20 20 | th.multiple.async.augmentors.... |
| 4c7c0 | 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 72 61 70 70 65 64 0a 20 20 20 20 20 20 | ........(run-hook-wrapped....... |
| 4c7e0 | 20 20 20 20 20 27 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e | .....'gptel-prompt-transform-fun |
| 4c800 | 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 66 75 6e 63 20 | ctions............(lambda.(func. |
| 4c820 | 66 73 6d 2d 61 72 67 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 | fsm-arg)..............(with-curr |
| 4c840 | 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 | ent-buffer.(plist-get.info.:data |
| 4c860 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 | )................(goto-char.(poi |
| 4c880 | 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 | nt-max))................(if.(=.( |
| 4c8a0 | 63 61 72 20 28 66 75 6e 63 2d 61 72 69 74 79 20 66 75 6e 63 29 29 20 32 29 20 3b 61 73 79 6e 63 | car.(func-arity.func)).2).;async |
| 4c8c0 | 20 61 75 67 6d 65 6e 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 | .augmentor....................(f |
| 4c8e0 | 75 6e 63 61 6c 6c 20 66 75 6e 63 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 | uncall.func.(lambda.().......... |
| 4c900 | 20 20 20 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 69 6e | ..........................(cl-in |
| 4c920 | 63 66 20 61 75 67 6d 65 6e 74 2d 69 64 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cf.augment-idx)................. |
| 4c940 | 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 3d 20 61 75 67 | ...................(when.(>=.aug |
| 4c960 | 6d 65 6e 74 2d 69 64 78 20 61 75 67 6d 65 6e 74 2d 74 6f 74 61 6c 29 20 3b 41 6c 6c 20 61 75 67 | ment-idx.augment-total).;All.aug |
| 4c980 | 6d 65 6e 74 6f 72 73 20 68 61 76 65 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mentors.have.run................ |
| 4c9a0 | 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 72 65 | ......................(gptel--re |
| 4c9c0 | 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 73 6d 2d 61 72 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 | alize-query.fsm-arg))).......... |
| 4c9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 73 6d 2d 61 72 67 29 0a 20 20 20 20 | ...................fsm-arg)..... |
| 4ca00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 63 61 72 20 28 66 75 6e 63 2d 61 | .............(if.(=.(car.(func-a |
| 4ca20 | 72 69 74 79 20 66 75 6e 63 29 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rity.func)).0).................. |
| 4ca40 | 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(funcall.func).............. |
| 4ca60 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 63 20 66 73 6d 2d 61 72 67 29 29 20 3b 73 | ......(funcall.func.fsm-arg)).;s |
| 4ca80 | 79 6e 63 20 61 75 67 6d 65 6e 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ync.augmentor..................( |
| 4caa0 | 63 6c 2d 69 6e 63 66 20 61 75 67 6d 65 6e 74 2d 69 64 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 | cl-incf.augment-idx)............ |
| 4cac0 | 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e 3d 20 61 75 67 6d 65 6e 74 2d 69 64 78 20 61 75 67 6d | ......(when.(>=.augment-idx.augm |
| 4cae0 | 65 6e 74 2d 74 6f 74 61 6c 29 20 3b 41 6c 6c 20 61 75 67 6d 65 6e 74 6f 72 73 20 68 61 76 65 20 | ent-total).;All.augmentors.have. |
| 4cb00 | 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 | run....................(gptel--r |
| 4cb20 | 65 61 6c 69 7a 65 2d 71 75 65 72 79 20 66 73 6d 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 | ealize-query.fsm-arg))))........ |
| 4cb40 | 20 20 20 20 20 20 6e 69 6c 29 20 20 20 20 20 20 20 20 20 20 20 3b 61 6c 77 61 79 73 20 72 65 74 | ......nil)...........;always.ret |
| 4cb60 | 75 72 6e 20 6e 69 6c 20 73 6f 20 72 75 6e 2d 68 6f 6f 6b 2d 77 72 61 70 70 65 64 20 64 6f 65 73 | urn.nil.so.run-hook-wrapped.does |
| 4cb80 | 6e 27 74 20 61 62 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 73 6d 29 29 29 29 29 0a 20 20 | n't.abort............fsm)))))... |
| 4cba0 | 66 73 6d 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 61 6c 69 7a 65 2d 71 75 65 72 | fsm)..(defun.gptel--realize-quer |
| 4cbc0 | 79 20 28 66 73 6d 29 0a 20 20 22 52 65 61 6c 69 7a 65 20 74 68 65 20 71 75 65 72 79 20 70 61 79 | y.(fsm)..."Realize.the.query.pay |
| 4cbe0 | 6c 6f 61 64 20 66 6f 72 20 46 53 4d 20 66 72 6f 6d 20 69 74 73 20 70 72 6f 6d 70 74 20 62 75 66 | load.for.FSM.from.its.prompt.buf |
| 4cc00 | 66 65 72 2e 0a 0a 49 6e 69 74 69 61 74 65 20 74 68 65 20 72 65 71 75 65 73 74 20 77 68 65 6e 20 | fer...Initiate.the.request.when. |
| 4cc20 | 64 6f 6e 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d | done."...(let.((info.(gptel-fsm- |
| 4cc40 | 69 6e 66 6f 20 66 73 6d 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 | info.fsm))).....(with-current-bu |
| 4cc60 | 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 | ffer.(plist-get.info.:data)..... |
| 4cc80 | 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 69 76 65 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 | ..(let*.((directive.(gptel--pars |
| 4cca0 | 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 |
| 4ccc0 | 65 20 27 72 61 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 44 49 52 45 43 54 49 | e.'raw))..............;;.DIRECTI |
| 4cce0 | 56 45 20 63 6f 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 | VE.contains.both.the.system.mess |
| 4cd00 | 61 67 65 20 61 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 | age.and.the.template.prompts.... |
| 4cd20 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 | ..........(gptel--system-message |
| 4cd40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d 2d 6d | ...............(unless.(gptel--m |
| 4cd60 | 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 20 28 63 61 72 20 64 | odel-capable-p.'nosystem).(car.d |
| 4cd80 | 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f | irective)))..............;;.TODO |
| 4cda0 | 28 74 6f 6f 6c 29 20 4c 69 6d 69 74 20 74 6f 6f 6c 20 75 73 65 20 74 6f 20 63 61 70 61 62 6c 65 | (tool).Limit.tool.use.to.capable |
| 4cdc0 | 20 6d 6f 64 65 6c 73 20 61 66 74 65 72 20 64 6f 63 75 6d 65 6e 74 69 6e 67 20 3a 63 61 70 61 62 | .models.after.documenting.:capab |
| 4cde0 | 69 6c 69 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 67 70 74 65 6c 2d 75 | ilities..............;;.(gptel-u |
| 4ce00 | 73 65 2d 74 6f 6f 6c 73 20 28 61 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 | se-tools.(and.(gptel--model-capa |
| 4ce20 | 62 6c 65 2d 70 20 27 74 6f 6f 6c 2d 75 73 65 29 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 | ble-p.'tool-use).gptel-use-tools |
| 4ce40 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 28 61 6e 64 20 28 70 6c | ))..............(stream.(and.(pl |
| 4ce60 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 20 67 70 74 65 6c 2d 75 73 65 2d | ist-get.info.:stream).gptel-use- |
| 4ce80 | 63 75 72 6c 20 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 20 | curl.gptel-stream............... |
| 4cea0 | 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 20 6e 6f 20 73 74 | ............;;.HACK(tool):.no.st |
| 4cec0 | 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 65 65 64 20 74 6f | ream.if.Ollama.+.tools...Need.to |
| 4cee0 | 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 20 20 20 20 20 20 | .find.a.better.way.............. |
| 4cf00 | 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 70 65 | .............(not.(and.(eq.(type |
| 4cf20 | 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 6d 61 | -of.gptel-backend).'gptel-ollama |
| 4cf40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 4cf60 | 20 20 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 | ......gptel-tools.gptel-use-tool |
| 4cf80 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | s))...........................;; |
| 4cfa0 | 20 43 68 65 63 6b 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 | .Check.model-specific.request-pa |
| 4cfc0 | 72 61 6d 73 20 66 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 | rams.for.streaming.preference... |
| 4cfe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 | ........................(let*.(( |
| 4d000 | 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 | model-params.(gptel--model-reque |
| 4d020 | 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 | st-params.gptel-model))......... |
| 4d040 | 20 20 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 65 61 6d | .........................(stream |
| 4d060 | 2d 73 70 65 63 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 20 3a 73 | -spec.(plist-get.model-params.:s |
| 4d080 | 74 72 65 61 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 20 20 | tream)))........................ |
| 4d0a0 | 20 20 20 20 20 3b 3b 20 49 66 20 6e 6f 74 20 70 72 65 73 65 6e 74 2c 20 74 68 65 72 65 20 69 73 | .....;;.If.not.present,.there.is |
| 4d0c0 | 20 6e 6f 20 6d 6f 64 65 6c 2d 73 70 65 63 69 66 69 63 20 70 72 65 66 65 72 65 6e 63 65 0a 20 20 | .no.model-specific.preference... |
| 4d0e0 | 20 20 20 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 6e | ..........................(or.(n |
| 4d100 | 6f 74 20 28 6d 65 6d 71 20 3a 73 74 72 65 61 6d 20 6d 6f 64 65 6c 2d 70 61 72 61 6d 73 29 29 0a | ot.(memq.:stream.model-params)). |
| 4d120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4d140 | 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 20 62 65 20 3a 6a | ;;.If.present,.it.must.not.be.:j |
| 4d160 | 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 20 20 20 20 20 20 | son-false.or.nil................ |
| 4d180 | 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 70 65 | .................(and.stream-spe |
| 4d1a0 | 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 61 6c | c.(not.(eq.stream-spec.:json-fal |
| 4d1c0 | 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 20 20 | se)))))......................... |
| 4d1e0 | 20 20 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 | ..;;.Check.backend-specific.stre |
| 4d200 | 61 6d 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 | aming.settings.................. |
| 4d220 | 20 20 20 20 20 20 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 | .........(gptel-backend-stream.g |
| 4d240 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | ptel-backend)))..............(gp |
| 4d260 | 74 65 6c 2d 73 74 72 65 61 6d 20 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-stream.stream).............. |
| 4d280 | 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 64 | (full-prompt)).........(when.(cd |
| 4d2a0 | 72 20 64 69 72 65 63 74 69 76 65 29 20 20 20 20 20 20 20 3b 20 70 72 6f 6d 70 74 20 63 6f 6e 73 | r.directive).......;.prompt.cons |
| 4d2c0 | 74 72 75 63 74 65 64 20 66 72 6f 6d 20 64 69 72 65 63 74 69 76 65 2f 74 65 6d 70 6c 61 74 65 0a | tructed.from.directive/template. |
| 4d2e0 | 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d | ..........(save-excursion.(goto- |
| 4d300 | 63 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 | char.(point-min))............... |
| 4d320 | 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 6c 69 73 74 2d 61 | ............(gptel--parse-list-a |
| 4d340 | 6e 64 2d 69 6e 73 65 72 74 20 28 63 64 72 20 64 69 72 65 63 74 69 76 65 29 29 29 29 0a 20 20 20 | nd-insert.(cdr.directive)))).... |
| 4d360 | 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)).... |
| 4d380 | 20 20 20 20 20 28 73 65 74 71 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 20 28 67 70 74 65 6c 2d 2d 70 | .....(setq.full-prompt.(gptel--p |
| 4d3a0 | 61 72 73 65 2d 62 75 66 66 65 72 20 3b 70 72 6f 6d 70 74 20 66 72 6f 6d 20 62 75 66 66 65 72 20 | arse-buffer.;prompt.from.buffer. |
| 4d3c0 | 6f 72 20 65 78 70 6c 69 63 69 74 6c 79 20 73 75 70 70 6c 69 65 64 0a 20 20 20 20 20 20 20 20 20 | or.explicitly.supplied.......... |
| 4d3e0 | 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 20 | ..................gptel-backend. |
| 4d400 | 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 64 | (and.gptel--num-messages-to-send |
| 4d420 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4d440 | 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 2d 6d | ...............(*.2.gptel--num-m |
| 4d460 | 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 | essages-to-send)))).........;;.I |
| 4d480 | 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 72 73 | nject.media.chunks.into.the.firs |
| 4d4a0 | 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 64 69 | t.user.prompt.if.required...Medi |
| 4d4c0 | 61 0a 20 20 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 | a.........;;.chunks.are.always.i |
| 4d4e0 | 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 |
| 4d500 | 61 67 65 2c 0a 20 20 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 | age,.........;;.irrespective.of. |
| 4d520 | 74 68 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 | the.preference.in.`gptel-use-con |
| 4d540 | 74 65 78 74 27 2e 20 20 54 68 69 73 20 69 73 0a 20 20 20 20 20 20 20 20 3b 3b 20 62 65 63 61 75 | text'...This.is.........;;.becau |
| 4d560 | 73 65 20 6d 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 | se.media.cannot.be.included.(in. |
| 4d580 | 67 65 6e 65 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 | general).with.system.messages... |
| 4d5a0 | 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 61 75 67 6d 65 6e 74 29 3a 20 46 69 6e 64 20 61 20 | .......;;.TODO(augment):.Find.a. |
| 4d5c0 | 77 61 79 20 74 6f 20 64 6f 20 74 68 69 73 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2d 62 75 66 | way.to.do.this.in.the.prompt-buf |
| 4d5e0 | 66 65 72 3f 0a 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 63 6f | fer?.........(when.(and.gptel-co |
| 4d600 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a 20 | ntext--alist.gptel-use-context.. |
| 4d620 | 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 72 61 63 6b 2d 6d 65 | ..................gptel-track-me |
| 4d640 | 64 69 61 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 | dia.(gptel--model-capable-p.'med |
| 4d660 | 69 61 29 29 0a 20 20 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 | ia))...........(gptel--wrap-user |
| 4d680 | 2d 70 72 6f 6d 70 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 | -prompt.gptel-backend.full-promp |
| 4d6a0 | 74 20 27 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 74 72 65 61 | t.'media)).........(unless.strea |
| 4d6c0 | 6d 20 28 63 6c 2d 72 65 6d 66 20 69 6e 66 6f 20 3a 73 74 72 65 61 6d 29 29 0a 20 20 20 20 20 20 | m.(cl-remf.info.:stream))....... |
| 4d6e0 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 20 67 70 74 65 6c | ..(plist-put.info.:backend.gptel |
| 4d700 | 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 69 6e | -backend).........(when.gptel-in |
| 4d720 | 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 20 20 20 3b 52 65 71 75 69 72 65 64 20 66 6f 72 20 | clude-reasoning...;Required.for. |
| 4d740 | 6e 65 78 74 2d 72 65 71 75 65 73 74 2d 6f 6e 6c 79 20 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 | next-request-only.scope......... |
| 4d760 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f | ..(plist-put.info.:include-reaso |
| 4d780 | 6e 69 6e 67 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 | ning.gptel-include-reasoning)).. |
| 4d7a0 | 20 20 20 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 74 6f 6f 6c | .......(when.(and.gptel-use-tool |
| 4d7c0 | 73 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | s.gptel-tools)...........(plist- |
| 4d7e0 | 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 29 29 0a 20 20 | put.info.:tools.gptel-tools))... |
| 4d800 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 64 61 74 61 0a 20 20 20 20 | ......(plist-put.info.:data..... |
| 4d820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 | ...............(gptel--request-d |
| 4d840 | 61 74 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 29 | ata.gptel-backend.full-prompt))) |
| 4d860 | 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | .......(kill-buffer.(current-buf |
| 4d880 | 66 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 49 4e 49 54 20 2d 3e 20 57 41 49 54 0a 20 20 20 20 28 | fer))).....;;.INIT.->.WAIT.....( |
| 4d8a0 | 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 72 79 2d 72 75 6e 29 | unless.(plist-get.info.:dry-run) |
| 4d8c0 | 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 0a 20 20 | .(gptel--fsm-transition.fsm))... |
| 4d8e0 | 20 20 66 73 6d 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 62 6f 72 74 20 28 62 75 66 | ..fsm))..(defun.gptel-abort.(buf |
| 4d900 | 29 0a 20 20 22 53 74 6f 70 20 61 6e 79 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 70 72 6f 63 65 | )..."Stop.any.active.gptel.proce |
| 4d920 | 73 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a | ss.associated.with.buffer.BUF... |
| 4d940 | 42 55 46 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 | BUF.defaults.to.the.current.buff |
| 4d960 | 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 63 75 72 72 65 | er."...(interactive.(list.(curre |
| 4d980 | 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 63 | nt-buffer)))...(when-let*.((proc |
| 4d9a0 | 2d 61 74 74 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 | -attrs................(cl-find-i |
| 4d9c0 | 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 65 6e 74 72 79 | f.................(lambda.(entry |
| 4d9e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 61 63 68 20 65 6e 74 72 | )...................;;.each.entr |
| 4da00 | 79 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 50 52 4f 43 20 2e 20 28 46 53 4d 20 41 42 4f 52 | y.has.the.form.(PROC...(FSM.ABOR |
| 4da20 | 54 2d 46 4e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 74 68 | T-FN))...................(eq.(th |
| 4da40 | 72 65 61 64 2d 66 69 72 73 74 20 28 63 61 64 72 20 65 6e 74 72 79 29 20 3b 20 46 53 4d 0a 20 20 | read-first.(cadr.entry).;.FSM... |
| 4da60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4da80 | 20 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(gptel-fsm-info).............. |
| 4daa0 | 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 |
| 4dac0 | 74 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.:buffer))..................... |
| 4dae0 | 20 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 | ..buf)).................gptel--r |
| 4db00 | 65 71 75 65 73 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 | equest-alist))...............(pr |
| 4db20 | 6f 63 20 28 63 61 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | oc.(car.proc-attrs))............ |
| 4db40 | 20 20 20 28 66 73 6d 20 28 63 61 64 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 0a 20 20 20 20 20 | ...(fsm.(cadr.proc-attrs))...... |
| 4db60 | 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 | .........(info.(gptel-fsm-info.f |
| 4db80 | 73 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 62 6f 72 74 2d 66 6e 20 28 63 64 | sm))...............(abort-fn.(cd |
| 4dba0 | 64 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 29 0a 20 20 20 20 3b 3b 20 52 75 6e 20 3a 63 61 6c | dr.proc-attrs))).....;;.Run.:cal |
| 4dbc0 | 6c 62 61 63 6b 20 77 69 74 68 20 61 62 6f 72 74 20 73 69 67 6e 61 6c 0a 20 20 20 20 28 77 69 74 | lback.with.abort.signal.....(wit |
| 4dbe0 | 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 43 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 | h-demoted-errors."Callback.error |
| 4dc00 | 3a 20 25 53 22 0a 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 63 62 20 28 70 6c 69 73 | :.%S".......(and-let*.((cb.(plis |
| 4dc20 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 | t-get.info.:callback)).......... |
| 4dc40 | 20 20 20 20 20 20 20 20 28 28 66 75 6e 63 74 69 6f 6e 70 20 63 62 29 29 29 0a 20 20 20 20 20 20 | ........((functionp.cb)))....... |
| 4dc60 | 20 20 28 66 75 6e 63 61 6c 6c 20 63 62 20 27 61 62 6f 72 74 20 69 6e 66 6f 29 29 29 0a 20 20 20 | ..(funcall.cb.'abort.info))).... |
| 4dc80 | 20 28 66 75 6e 63 61 6c 6c 20 61 62 6f 72 74 2d 66 6e 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 | .(funcall.abort-fn).....(setf.(a |
| 4dca0 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 | list-get.proc.gptel--request-ali |
| 4dcc0 | 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 28 77 69 74 68 2d 63 | st.nil.'remove).nil).....(with-c |
| 4dce0 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 | urrent-buffer.buf.......(when.gp |
| 4dd00 | 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 20 | tel-mode.(gptel--update-status.. |
| 4dd20 | 22 20 41 62 6f 72 74 22 20 27 65 72 72 6f 72 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 | ".Abort".'error))).....(message. |
| 4dd40 | 22 53 74 6f 70 70 65 64 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 69 6e 20 62 75 66 66 65 72 | "Stopped.gptel.request.in.buffer |
| 4dd60 | 20 25 53 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 29 0a 0a 3b 3b 20 54 4f | .%S".(buffer-name.buf))))..;;.TO |
| 4dd80 | 44 4f 3a 20 48 61 6e 64 6c 65 20 6d 75 6c 74 69 70 6c 65 20 72 65 71 75 65 73 74 73 28 23 31 35 | DO:.Handle.multiple.requests(#15 |
| 4dda0 | 29 2e 20 28 4f 6e 6c 79 20 6f 6e 65 20 72 65 71 75 65 73 74 20 66 72 6f 6d 20 6f 6e 65 20 62 75 | )..(Only.one.request.from.one.bu |
| 4ddc0 | 66 66 65 72 20 61 74 20 61 20 74 69 6d 65 3f 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a | ffer.at.a.time?).;;;###autoload. |
| 4dde0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 65 6e 64 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 | (defun.gptel-send.(&optional.arg |
| 4de00 | 29 0a 20 20 22 53 75 62 6d 69 74 20 74 68 69 73 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 63 | )..."Submit.this.prompt.to.the.c |
| 4de20 | 75 72 72 65 6e 74 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c | urrent.LLM.backend...By.default, |
| 4de40 | 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 | .the.contents.of.the.buffer.up.t |
| 4de60 | 6f 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 0a 61 72 65 20 73 65 6e 74 2e 20 | o.the.cursor.position.are.sent.. |
| 4de80 | 20 49 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 69 74 73 20 63 6f | .If.the.region.is.active,.its.co |
| 4dea0 | 6e 74 65 6e 74 73 20 61 72 65 20 73 65 6e 74 0a 69 6e 73 74 65 61 64 2e 0a 0a 54 68 65 20 72 65 | ntents.are.sent.instead...The.re |
| 4dec0 | 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 69 73 20 69 6e 73 65 72 74 65 64 20 | sponse.from.the.LLM.is.inserted. |
| 4dee0 | 62 65 6c 6f 77 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 0a 61 74 20 74 68 65 | below.the.cursor.position.at.the |
| 4df00 | 20 74 69 6d 65 20 6f 66 20 73 65 6e 64 69 6e 67 2e 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 69 | .time.of.sending...To.change.thi |
| 4df20 | 73 20 62 65 68 61 76 69 6f 72 20 6f 72 20 6d 6f 64 65 6c 0a 70 61 72 61 6d 65 74 65 72 73 2c 20 | s.behavior.or.model.parameters,. |
| 4df40 | 75 73 65 20 70 72 65 66 69 78 20 61 72 67 20 41 52 47 20 61 63 74 69 76 61 74 65 20 61 20 74 72 | use.prefix.arg.ARG.activate.a.tr |
| 4df60 | 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 77 69 74 68 0a 6d 6f 72 65 20 6f 70 74 69 6f 6e 73 20 69 | ansient.menu.with.more.options.i |
| 4df80 | 6e 73 74 65 61 64 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 61 73 79 6e 63 68 72 | nstead...This.command.is.asynchr |
| 4dfa0 | 6f 6e 6f 75 73 2c 20 79 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e 75 65 20 74 6f 20 75 73 65 20 45 | onous,.you.can.continue.to.use.E |
| 4dfc0 | 6d 61 63 73 20 77 68 69 6c 65 0a 77 61 69 74 69 6e 67 20 66 6f 72 20 74 68 65 20 72 65 73 70 6f | macs.while.waiting.for.the.respo |
| 4dfe0 | 6e 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 69 66 20 | nse."...(interactive."P")...(if. |
| 4e000 | 28 61 6e 64 20 61 72 67 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 | (and.arg.(require.'gptel-transie |
| 4e020 | 6e 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 | nt.nil.t)).......(call-interacti |
| 4e040 | 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 | vely.#'gptel-menu).....(gptel--s |
| 4e060 | 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 73 6d 20 28 67 | anitize-model).....(let.((fsm.(g |
| 4e080 | 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 20 3a 68 61 6e 64 6c 65 72 73 20 67 70 74 65 6c 2d 73 65 | ptel-make-fsm.:handlers.gptel-se |
| 4e0a0 | 6e 64 2d 2d 68 61 6e 64 6c 65 72 73 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 72 65 71 | nd--handlers))).......(gptel-req |
| 4e0c0 | 75 65 73 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 | uest.nil.........:stream.gptel-s |
| 4e0e0 | 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 67 70 74 65 6c 2d | tream.........:transforms.gptel- |
| 4e100 | 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 | prompt-transform-functions...... |
| 4e120 | 20 20 20 3a 66 73 6d 20 66 73 6d 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 51 75 65 | ...:fsm.fsm).......(message."Que |
| 4e140 | 72 79 69 6e 67 20 25 73 2e 2e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 | rying.%s..."................(thr |
| 4e160 | 65 61 64 2d 66 69 72 73 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 0a 20 | ead-first.(gptel-fsm-info.fsm).. |
| 4e180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | ............................(pli |
| 4e1a0 | 73 74 2d 67 65 74 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st-get.:backend)................ |
| 4e1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | ..............(or.gptel-backend) |
| 4e1e0 | 0a 20 20 20 20 20 20 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 |
| 4e200 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c | ptel-backend-name)))).....(gptel |
| 4e220 | 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 | --update-status.".Waiting...".'w |
| 4e240 | 61 72 6e 69 6e 67 29 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f | arning)))..(declare-function.jso |
| 4e260 | 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d 62 75 66 66 65 72 20 22 6a 73 6f 6e 22 29 0a 28 64 | n-pretty-print-buffer."json").(d |
| 4e280 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 20 28 26 6f 70 74 69 | efun.gptel--inspect-query.(&opti |
| 4e2a0 | 6f 6e 61 6c 20 72 65 71 75 65 73 74 2d 66 73 6d 20 66 6f 72 6d 61 74 29 0a 20 20 22 53 68 6f 77 | onal.request-fsm.format)..."Show |
| 4e2c0 | 20 74 68 65 20 66 75 6c 6c 20 4c 4c 4d 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 | .the.full.LLM.query.that.will.be |
| 4e2e0 | 20 73 65 6e 74 20 69 6e 20 61 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f | .sent.in.a.buffer...This.functio |
| 4e300 | 6e 73 20 61 73 20 61 20 64 72 79 20 72 75 6e 20 6f 66 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 2e | ns.as.a.dry.run.of.`gptel-send'. |
| 4e320 | 20 20 54 68 65 20 72 65 71 75 65 73 74 20 64 61 74 61 0a 6d 61 79 20 62 65 20 65 64 69 74 65 64 | ..The.request.data.may.be.edited |
| 4e340 | 20 61 6e 64 20 74 68 65 20 71 75 65 72 79 20 63 6f 6e 74 69 6e 75 65 64 20 66 72 6f 6d 20 74 68 | .and.the.query.continued.from.th |
| 4e360 | 69 73 20 62 75 66 66 65 72 2e 0a 0a 52 45 51 55 45 53 54 2d 46 53 4d 20 69 73 20 74 68 65 20 73 | is.buffer...REQUEST-FSM.is.the.s |
| 4e380 | 74 61 74 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2c 20 61 73 20 72 65 74 75 72 6e 65 64 | tate.of.the.request,.as.returned |
| 4e3a0 | 20 62 79 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 2e 20 20 49 66 20 46 4f 52 4d 41 54 20 | .by.`gptel-request'...If.FORMAT. |
| 4e3c0 | 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 20 6a 73 6f 6e 2c 20 73 68 6f 77 20 74 68 65 20 65 6e 63 | is.the.symbol.json,.show.the.enc |
| 4e3e0 | 6f 64 65 64 0a 4a 53 4f 4e 20 71 75 65 72 79 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 4c | oded.JSON.query.instead.of.the.L |
| 4e400 | 69 73 70 20 73 74 72 75 63 74 75 72 65 20 67 70 74 65 6c 20 75 73 65 73 2e 22 0a 20 20 28 75 6e | isp.structure.gptel.uses."...(un |
| 4e420 | 6c 65 73 73 20 72 65 71 75 65 73 74 2d 66 73 6d 20 28 73 65 74 71 20 72 65 71 75 65 73 74 2d 66 | less.request-fsm.(setq.request-f |
| 4e440 | 73 6d 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 0a 20 20 28 69 66 20 28 62 75 66 66 | sm.gptel--fsm-last))...(if.(buff |
| 4e460 | 65 72 70 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 72 | erp.(plist-get.(gptel-fsm-info.r |
| 4e480 | 65 71 75 65 73 74 2d 66 73 6d 29 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 | equest-fsm).:data)).......(letre |
| 4e4a0 | 63 20 28 28 64 72 79 2d 72 75 6e 2d 70 6f 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | c.((dry-run-poll................ |
| 4e4c0 | 20 28 72 75 6e 2d 77 69 74 68 2d 74 69 6d 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(run-with-timer................ |
| 4e4e0 | 20 20 30 20 31 20 28 6c 61 6d 62 64 61 20 28 66 73 6d 20 66 6f 72 6d 29 0a 20 20 20 20 20 20 20 | ..0.1.(lambda.(fsm.form)........ |
| 4e500 | 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 62 75 66 66 65 72 70 | ................(unless.(bufferp |
| 4e520 | 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 | .(plist-get.(gptel-fsm-info.fsm) |
| 4e540 | 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 20 20 20 20 20 20 | .:data))........................ |
| 4e560 | 20 20 28 63 61 6e 63 65 6c 2d 74 69 6d 65 72 20 64 72 79 2d 72 75 6e 2d 70 6f 6c 6c 29 0a 20 20 | ..(cancel-timer.dry-run-poll)... |
| 4e580 | 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 69 | .......................(gptel--i |
| 4e5a0 | 6e 73 70 65 63 74 2d 71 75 65 72 79 20 66 73 6d 20 66 6f 72 6d 29 29 29 0a 20 20 20 20 20 20 20 | nspect-query.fsm.form)))........ |
| 4e5c0 | 20 20 20 20 20 20 20 20 20 20 72 65 71 75 65 73 74 2d 66 73 6d 20 66 6f 72 6d 61 74 29 29 29 29 | ..........request-fsm.format)))) |
| 4e5e0 | 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 6c 69 73 74 | .....(with-current-buffer.(plist |
| 4e600 | 2d 67 65 74 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 72 65 71 75 65 73 74 2d 66 73 6d | -get.(gptel-fsm-info.request-fsm |
| 4e620 | 29 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d | ).:buffer).......(gptel--update- |
| 4e640 | 73 74 61 74 75 73 20 22 20 52 65 61 64 79 22 20 27 73 75 63 63 65 73 73 29 29 0a 20 20 20 20 28 | status.".Ready".'success)).....( |
| 4e660 | 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 66 66 65 72 2d | with-current-buffer.(get-buffer- |
| 4e680 | 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 20 20 20 20 28 6c | create."*gptel-query*").......(l |
| 4e6a0 | 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 6e 74 2d 62 | et*.((standard-output.(current-b |
| 4e6c0 | 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 | uffer))..............(inhibit-re |
| 4e6e0 | 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 65 73 74 | ad-only.t)..............(request |
| 4e700 | 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 | -data...............(plist-get.( |
| 4e720 | 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 72 65 71 75 65 73 74 2d 66 73 6d 29 20 3a 64 61 74 | gptel-fsm-info.request-fsm).:dat |
| 4e740 | 61 29 29 29 0a 20 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 | a))).........(buffer-disable-und |
| 4e760 | 6f 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 20 20 20 20 20 20 | o).........(erase-buffer)....... |
| 4e780 | 20 20 28 69 66 20 28 65 71 20 66 6f 72 6d 61 74 20 27 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 | ..(if.(eq.format.'json)......... |
| 4e7a0 | 20 20 20 20 28 70 72 6f 67 6e 20 28 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 | ....(progn.(fundamental-mode)... |
| 4e7c0 | 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 74 65 6c 2d | .................(insert.(gptel- |
| 4e7e0 | 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 72 65 71 75 65 73 74 2d 64 61 74 61 29 29 0a 20 20 20 20 | -json-encode.request-data))..... |
| 4e800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e | ...............(json-pretty-prin |
| 4e820 | 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 70 2d 64 61 74 61 2d | t-buffer))...........(lisp-data- |
| 4e840 | 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 20 72 65 71 75 65 73 74 2d 64 | mode)...........(prin1.request-d |
| 4e860 | 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 70 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 | ata)...........(pp-buffer))..... |
| 4e880 | 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 | ....(setq-local.gptel--fsm-last. |
| 4e8a0 | 72 65 71 75 65 73 74 2d 66 73 6d 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | request-fsm).........(goto-char. |
| 4e8c0 | 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 20 | (point-min)).........(view-mode. |
| 4e8e0 | 31 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 75 6e 64 6f 2d 6c 69 73 | 1).........(setq.buffer-undo-lis |
| 4e900 | 74 20 6e 69 6c 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 | t.nil).........(use-local-map... |
| 4e920 | 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.... |
| 4e940 | 20 20 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 | .......(define-keymap........... |
| 4e960 | 20 20 22 43 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 | .."C-c.C-c".#'gptel--continue-qu |
| 4e980 | 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 77 22 20 28 6c 61 6d 62 64 | ery............."C-c.C-w".(lambd |
| 4e9a0 | 61 20 28 29 20 22 43 6f 70 79 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 71 75 65 72 | a.()."Copy.Curl.command.for.quer |
| 4e9c0 | 79 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 | y.".........................(int |
| 4e9e0 | 65 72 61 63 74 69 76 65 29 20 28 67 70 74 65 6c 2d 2d 63 6f 6e 74 69 6e 75 65 2d 71 75 65 72 79 | eractive).(gptel--continue-query |
| 4ea00 | 20 27 63 6f 70 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 | .'copy))............."C-c.C-k".# |
| 4ea20 | 27 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 | 'quit-window)...........(current |
| 4ea40 | 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 68 65 | -local-map))).........(unless.he |
| 4ea60 | 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 28 73 65 74 71 | ader-line-format...........(setq |
| 4ea80 | 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 20 20 | .header-line-format............. |
| 4eaa0 | 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 | ....(substitute-command-keys.... |
| 4eac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 | ..............(concat........... |
| 4eae0 | 20 20 20 20 20 20 20 20 22 45 64 69 74 20 72 65 71 75 65 73 74 3a 20 5c 5c 5b 72 65 61 64 2d 6f | ........"Edit.request:.\\[read-o |
| 4eb00 | 6e 6c 79 2d 6d 6f 64 65 5d 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 | nly-mode],"...................". |
| 4eb20 | 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 6f 6e 74 69 6e 75 65 | Send.request:.\\[gptel--continue |
| 4eb40 | 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 20 20 20 28 66 6f 72 | -query],"...................(for |
| 4eb60 | 6d 61 74 20 22 20 43 6f 70 79 20 43 75 72 6c 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 | mat.".Copy.Curl:.%s"............ |
| 4eb80 | 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 43 2d 63 20 | ...............(propertize."C-c. |
| 4eba0 | 43 2d 77 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 0a 20 | C-w".'face.'help-key-binding)).. |
| 4ebc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 51 75 69 74 3a 20 5c 5c 5b 71 75 69 74 | .................".Quit:.\\[quit |
| 4ebe0 | 2d 77 69 6e 64 6f 77 5d 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 | -window]")))).........(display-b |
| 4ec00 | 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 2d 64 69 73 | uffer.(current-buffer).gptel-dis |
| 4ec20 | 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 29 29 29 29 29 0a 0a 28 64 65 63 6c 61 72 | play-buffer-action)))))..(declar |
| 4ec40 | 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 61 72 67 73 20 | e-function.gptel-curl--get-args. |
| 4ec60 | 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 6c 2d 2d 63 6f 6e | "gptel-curl")..(defun.gptel--con |
| 4ec80 | 74 69 6e 75 65 2d 71 75 65 72 79 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 70 79 29 0a 20 20 22 | tinue-query.(&optional.copy)..." |
| 4eca0 | 43 6f 6e 74 69 6e 75 65 20 73 65 6e 64 69 6e 67 20 74 68 65 20 67 70 74 65 6c 20 71 75 65 72 79 | Continue.sending.the.gptel.query |
| 4ecc0 | 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 54 68 65 20 | .displayed.in.this.buffer...The. |
| 4ece0 | 72 65 71 75 65 73 74 20 69 73 20 63 6f 6e 74 69 6e 75 65 64 20 77 69 74 68 20 74 68 65 20 73 61 | request.is.continued.with.the.sa |
| 4ed00 | 6d 65 20 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 6f 72 69 67 69 6e 61 6c 6c 79 0a 73 70 65 63 | me.parameters.as.originally.spec |
| 4ed20 | 69 66 69 65 64 2e 0a 0a 57 69 74 68 20 70 72 65 66 69 78 20 61 72 67 20 43 4f 50 59 2c 20 63 6f | ified...With.prefix.arg.COPY,.co |
| 4ed40 | 70 79 20 74 68 65 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 74 68 65 20 72 65 71 75 | py.the.Curl.command.for.the.requ |
| 4ed60 | 65 73 74 20 74 6f 20 74 68 65 0a 6b 69 6c 6c 20 72 69 6e 67 20 69 6e 73 74 65 61 64 2e 22 0a 20 | est.to.the.kill.ring.instead.".. |
| 4ed80 | 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 20 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 | .(interactive."P".lisp-data-mode |
| 4eda0 | 20 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 | .fundamental-mode)...(unless.(eq |
| 4edc0 | 75 61 6c 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a | ual.(buffer-name)."*gptel-query* |
| 4ede0 | 22 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 | ").....(user-error."This.command |
| 4ee00 | 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 75 73 65 20 69 6e 20 61 20 67 70 74 65 6c 20 64 72 79 | .is.meant.for.use.in.a.gptel.dry |
| 4ee20 | 2d 72 75 6e 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | -run.buffer"))...(save-excursion |
| 4ee40 | 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | .....(goto-char.(point-min)).... |
| 4ee60 | 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 |
| 4ee80 | 6c 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 64 61 74 61 20 28 69 66 20 | l.........(when-let*.((data.(if. |
| 4eea0 | 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a | (eq.major-mode.'lisp-data-mode). |
| 4eec0 | 20 20 20 20 20 20 20 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 |
| 4eee0 | 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ead.(current-buffer))........... |
| 4ef00 | 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 |
| 4ef20 | 65 61 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 74 20 28 63 6c | ead))))...........(cl-assert.(cl |
| 4ef40 | 2d 74 79 70 65 70 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 20 27 67 70 74 65 6c 2d 66 73 | -typep.gptel--fsm-last.'gptel-fs |
| 4ef60 | 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 67 70 74 65 6c 2d | m))...........(plist-put.(gptel- |
| 4ef80 | 66 73 6d 2d 69 6e 66 6f 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 20 3a 64 61 74 61 20 | fsm-info.gptel--fsm-last).:data. |
| 4efa0 | 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 6f 70 79 20 20 20 20 20 20 20 20 | data)...........(if.copy........ |
| 4efc0 | 20 20 20 20 20 20 20 20 20 3b 43 6f 70 79 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 69 6e 73 74 | .........;Copy.Curl.command.inst |
| 4efe0 | 65 61 64 20 6f 66 20 73 65 6e 64 69 6e 67 20 72 65 71 75 65 73 74 0a 20 20 20 20 20 20 20 20 20 | ead.of.sending.request.......... |
| 4f000 | 20 20 20 20 20 28 6c 65 74 20 28 28 61 72 67 73 20 28 61 6e 64 20 28 72 65 71 75 69 72 65 20 27 | .....(let.((args.(and.(require.' |
| 4f020 | 67 70 74 65 6c 2d 63 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 | gptel-curl)..................... |
| 4f040 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 61 72 67 73 | ...........(gptel-curl--get-args |
| 4f060 | 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 | .(gptel-fsm-info.gptel--fsm-last |
| 4f080 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 4f0a0 | 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 64 35 20 28 66 6f 72 | .......................(md5.(for |
| 4f0c0 | 6d 61 74 20 22 25 73 22 20 28 72 61 6e 64 6f 6d 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | mat."%s".(random)))))))......... |
| 4f0e0 | 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(kill-new............... |
| 4f100 | 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 | ...(mapconcat.#'shell-quote-argu |
| 4f120 | 6d 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 20 20 | ment............................ |
| 4f140 | 20 28 63 6f 6e 73 20 28 67 70 74 65 6c 2d 2d 63 75 72 6c 2d 70 61 74 68 29 20 61 72 67 73 29 20 | .(cons.(gptel--curl-path).args). |
| 4f160 | 22 20 5c 5c 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 | ".\\\n")).................(messa |
| 4f180 | 67 65 20 22 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 66 6f 72 20 72 65 71 75 65 73 74 20 63 6f 70 | ge."Curl.command.for.request.cop |
| 4f1a0 | 69 65 64 20 74 6f 20 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 | ied.to.kill-ring"))............. |
| 4f1c0 | 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 2d 66 73 | (gptel--fsm-transition.gptel--fs |
| 4f1e0 | 6d 2d 6c 61 73 74 29 20 3b 49 4e 49 54 20 2d 3e 20 57 41 49 54 0a 20 20 20 20 20 20 20 20 20 20 | m-last).;INIT.->.WAIT........... |
| 4f200 | 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 | ..(quit-window))).......(error.. |
| 4f220 | 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 75 6d | ......(user-error."Can.not.resum |
| 4f240 | 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 20 66 | e.request:.could.not.read.data.f |
| 4f260 | 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 6c 2d | rom.buffer!")))))..(defun.gptel- |
| 4f280 | 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 6f 20 | -insert-response.(response.info. |
| 4f2a0 | 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 4c 4d | &optional.raw)..."Insert.the.LLM |
| 4f2c0 | 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 72 2e | .RESPONSE.into.the.gptel.buffer. |
| 4f2e0 | 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 6e 66 | ..INFO.is.a.plist.containing.inf |
| 4f300 | 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 65 72 | ormation.relevant.to.this.buffer |
| 4f320 | 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 27 20 | ..See.`gptel--url-get-response'. |
| 4f340 | 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 61 62 | for.details...Optional.RAW.disab |
| 4f360 | 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 6f 72 | les.text.properties.and.transfor |
| 4f380 | 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 72 20 | mation."...(let*.((gptel-buffer. |
| 4f3a0 | 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 20 20 | (plist-get.info.:buffer))....... |
| 4f3c0 | 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | ...(start-marker.(plist-get.info |
| 4f3e0 | 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d | .:position))..........(tracking- |
| 4f400 | 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 67 | marker.(plist-get.info.:tracking |
| 4f420 | 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 0a 20 | -marker))).....(pcase.response.. |
| 4f440 | 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 20 20 | .....((pred.stringp)............ |
| 4f460 | 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 68 2d | ....;Response.text........(with- |
| 4f480 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 | current-buffer.gptel-buffer..... |
| 4f4a0 | 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 20 20 | .....(when.tracking-marker...... |
| 4f4c0 | 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 65 73 | .....;separate.from.previous.res |
| 4f4e0 | 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 65 20 | ponse............(setq.response. |
| 4f500 | 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 6f 72 | (concat.gptel-response-separator |
| 4f520 | 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 63 75 | .response)))..........(save-excu |
| 4f540 | 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 2d 62 | rsion............(with-current-b |
| 4f560 | 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 65 | uffer.(marker-buffer.start-marke |
| 4f580 | 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 20 74 | r)..............(goto-char.(or.t |
| 4f5a0 | 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 20 20 | racking-marker.start-marker))... |
| 4f5c0 | 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 6c 2d | ...........;;.(run-hooks.'gptel- |
| 4f5e0 | 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 20 20 | pre-response-hook).............. |
| 4f600 | 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 69 6e | (unless.(or.(bobp).(plist-get.in |
| 4f620 | 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 20 20 | fo.:in-place)................... |
| 4f640 | 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 20 20 | .......tracking-marker)......... |
| 4f660 | 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 73 65 | .......(insert.gptel-response-se |
| 4f680 | 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 67 70 | parator)................(when.gp |
| 4f6a0 | 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 65 72 | tel-mode..................(inser |
| 4f6c0 | 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 67 29 | t.(gptel-response-prefix-string) |
| 4f6e0 | 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 20 73 | ))................(move-marker.s |
| 4f700 | 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 20 20 | tart-marker.(point)))........... |
| 4f720 | 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 28 77 | ...(unless.raw................(w |
| 4f740 | 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 67 65 | hen-let*.((transformer.(plist-ge |
| 4f760 | 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 20 20 | t.info.:transformer))).......... |
| 4f780 | 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 6c 20 | ........(setq.response.(funcall. |
| 4f7a0 | 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 20 20 | transformer.response)))......... |
| 4f7c0 | 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..... |
| 4f7e0 | 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 29 20 | ............0.(length.response). |
| 4f800 | 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 28 67 | '(gptel.response.front-sticky.(g |
| 4f820 | 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 20 28 | ptel)).response))..............( |
| 4f840 | 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 28 70 | insert.response)..............(p |
| 4f860 | 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 20 28 | list-put.info.:tracking-marker.( |
| 4f880 | 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 72 6b | setq.tracking-marker.(point-mark |
| 4f8a0 | 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 6f 72 | er)))..............;;.for.unifor |
| 4f8c0 | 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 20 20 | mity.with.streaming.responses... |
| 4f8e0 | 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 6f 6e | ...........(set-marker-insertion |
| 4f900 | 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 20 20 | -type.tracking-marker.t))))).... |
| 4f920 | 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 20 20 | ...(`(reasoning...,text)........ |
| 4f940 | 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 74 20 | (when-let*.((include.(plist-get. |
| 4f960 | 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 20 20 | info.:include-reasoning)))...... |
| 4f980 | 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 20 20 | ....(if.(stringp.include)....... |
| 4f9a0 | 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 65 74 | .......(with-current-buffer.(get |
| 4f9c0 | 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 20 20 | -buffer-create.................. |
| 4f9e0 | 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 |
| 4fa00 | 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 20 20 | o.:include-reasoning)).......... |
| 4fa20 | 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 61 72 | ......(save-excursion.(goto-char |
| 4fa40 | 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 20 20 | .(point-max)).(insert.text)))... |
| 4fa60 | 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 6d | .........(with-current-buffer.(m |
| 4fa80 | 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 20 20 | arker-buffer.start-marker)...... |
| 4faa0 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 70 61 72 61 74 6f 72 20 20 20 20 20 20 20 20 | ........(let.((separator........ |
| 4fac0 | 20 3b 53 65 70 61 72 61 74 65 20 66 72 6f 6d 20 72 65 73 70 6f 6e 73 65 20 70 72 65 66 69 78 20 | .;Separate.from.response.prefix. |
| 4fae0 | 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.required..................... |
| 4fb00 | 28 61 6e 64 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 20 67 70 74 65 6c | (and.(not.tracking-marker).gptel |
| 4fb20 | 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -mode..........................( |
| 4fb40 | 6e 6f 74 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 20 22 5c 6e 22 20 28 67 70 74 65 6c | not.(string-suffix-p."\n".(gptel |
| 4fb60 | 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 | -response-prefix-string)))...... |
| 4fb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 | ...................."\n"))...... |
| 4fba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6c 6f 63 6b 73 20 28 69 66 20 28 64 65 72 69 76 | ..............(blocks.(if.(deriv |
| 4fbc0 | 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 20 20 | ed-mode-p.'org-mode)............ |
| 4fbe0 | 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 5f 72 | ....................`("#+begin_r |
| 4fc00 | 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 64 5f | easoning\n"...,(concat."\n#+end_ |
| 4fc20 | 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"...................... |
| 4fc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4fc60 | 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 29 29 | ......gptel-response-separator)) |
| 4fc80 | 0a 20 20 20 20 20 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 | ..............................;; |
| 4fca0 | 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 74 69 | .TODO(reasoning).remove.properti |
| 4fcc0 | 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 20 20 | es.and.strip.instead............ |
| 4fce0 | 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 72 74 | ..................(cons.(propert |
| 4fd00 | 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 69 67 | ize."```.reasoning\n".'gptel.'ig |
| 4fd20 | 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)........................... |
| 4fd40 | 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 5c 6e | .........(concat.(propertize."\n |
| 4fd60 | 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 20 20 | ```".'gptel.'ignore)............ |
| 4fd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 4fda0 | 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 20 20 | gptel-response-separator)))))... |
| 4fdc0 | 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 69 67 | .............(if.(eq.include.'ig |
| 4fde0 | 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 6e 0a | nore)....................(progn. |
| 4fe00 | 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 2d 70 | .....................(add-text-p |
| 4fe20 | 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....................... |
| 4fe40 | 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 20 66 | 0.(length.text).'(gptel.ignore.f |
| 4fe60 | 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 20 20 | ront-sticky.(gptel)).text)...... |
| 4fe80 | 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 2d 72 | ................(gptel--insert-r |
| 4fea0 | 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 28 63 | esponse.......................(c |
| 4fec0 | 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 6c 6f | oncat.(car.blocks).text.(cdr.blo |
| 4fee0 | 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 20 20 | cks)).info.t)).................. |
| 4ff00 | 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 6f 6e 63 61 74 20 | (gptel--insert-response.(concat. |
| 4ff20 | 73 65 70 61 72 61 74 6f 72 20 28 63 61 72 20 62 6c 6f 63 6b 73 29 29 20 69 6e 66 6f 20 74 29 0a | separator.(car.blocks)).info.t). |
| 4ff40 | 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 2d | .................(gptel--insert- |
| 4ff60 | 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | response.text.info)............. |
| 4ff80 | 20 20 20 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 64 | .....(gptel--insert-response.(cd |
| 4ffa0 | 72 20 62 6c 6f 63 6b 73 29 20 69 6e 66 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.blocks).info.t)).............. |
| 4ffc0 | 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 2d 6d 6f 64 | ..(when.(derived-mode-p.'org-mod |
| 4ffe0 | 65 29 20 3b 66 6f 6c 64 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e).;fold.block.................. |
| 50000 | 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................. |
| 50020 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 | ...(goto-char.(plist-get.info.:t |
| 50040 | 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 20 20 20 20 | racking-marker))................ |
| 50060 | 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 23 2b 65 6e 64 5f 72 65 61 73 | ....(search-backward."#+end_reas |
| 50080 | 6f 6e 69 6e 67 22 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 | oning".start-marker.t).......... |
| 500a0 | 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 20 22 5e 23 5c | ..........(when.(looking-at."^#\ |
| 500c0 | 5c 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \+end_reasoning")............... |
| 500e0 | 20 20 20 20 20 20 20 28 6f 72 67 2d 63 79 63 6c 65 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 | .......(org-cycle)))))))))...... |
| 50100 | 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 20 20 20 | .(`(tool-call...,tool-calls).... |
| 50120 | 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 74 | ....(gptel--display-tool-calls.t |
| 50140 | 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 2d 72 | ool-calls.info)).......(`(tool-r |
| 50160 | 65 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 20 20 28 67 | esult...,tool-results)........(g |
| 50180 | 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 74 6f 6f 6c 2d | ptel--display-tool-results.tool- |
| 501a0 | 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | results.info)))))..(defun.gptel- |
| 501c0 | 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c | -create-prompt-buffer.(&optional |
| 501e0 | 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 66 66 65 72 20 | .prompt-end)..."Return.a.buffer. |
| 50200 | 77 69 74 68 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 | with.the.conversation.prompt.to. |
| 50220 | 62 65 20 73 65 6e 74 2e 0a 0a 49 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 | be.sent...If.the.region.is.activ |
| 50240 | 65 20 6c 69 6d 69 74 20 74 68 65 20 70 72 6f 6d 70 74 20 74 65 78 74 20 74 6f 20 74 68 65 20 72 | e.limit.the.prompt.text.to.the.r |
| 50260 | 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 2e 0a 4f 74 68 65 72 77 69 73 65 20 74 68 65 20 70 72 | egion.contents..Otherwise.the.pr |
| 50280 | 6f 6d 70 74 20 74 65 78 74 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 | ompt.text.is.constructed.from.th |
| 502a0 | 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 0a 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 | e.contents.of.the.current.buffer |
| 502c0 | 20 75 70 20 74 6f 20 70 6f 69 6e 74 2c 20 6f 72 20 50 52 4f 4d 50 54 2d 45 4e 44 20 69 66 20 70 | .up.to.point,.or.PROMPT-END.if.p |
| 502e0 | 72 6f 76 69 64 65 64 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 | rovided."...(save-excursion..... |
| 50300 | 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 74 20 28 28 62 | (save-restriction.......(let.((b |
| 50320 | 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 | uf.(current-buffer))).........(c |
| 50340 | 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f | ond..........((derived-mode-p.'o |
| 50360 | 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 | rg-mode)...........(require.'gpt |
| 50380 | 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6c 73 6f 20 68 61 6e 64 6c 65 | el-org)...........;;.Also.handle |
| 503a0 | 73 20 72 65 67 69 6f 6e 73 20 69 6e 20 4f 72 67 20 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 | s.regions.in.Org.mode........... |
| 503c0 | 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 | (gptel-org--create-prompt-buffer |
| 503e0 | 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 | .prompt-end))..........((use-reg |
| 50400 | 69 6f 6e 2d 70 29 0a 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 | ion-p)...........(let.((rb.(regi |
| 50420 | 6f 6e 2d 62 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 | on-beginning)).(re.(region-end)) |
| 50440 | 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 68 2d 62 75 66 66 65 | ).............(gptel--with-buffe |
| 50460 | 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 20 28 | r-copy.buf.rb.re...............( |
| 50480 | 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 20 20 20 28 74 20 28 | current-buffer))))..........(t.( |
| 504a0 | 75 6e 6c 65 73 73 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 73 65 74 71 20 70 72 6f 6d 70 74 2d 65 | unless.prompt-end.(setq.prompt-e |
| 504c0 | 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | nd.(point))).............(gptel- |
| 504e0 | 2d 77 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 | -with-buffer-copy.buf.(point-min |
| 50500 | 29 20 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 28 63 75 72 72 | ).prompt-end...............(curr |
| 50520 | 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | ent-buffer))))))))..(defun.gptel |
| 50540 | 2d 2d 63 72 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 | --create-prompt.(&optional.promp |
| 50560 | 74 2d 65 6e 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 | t-end)..."Return.a.full.conversa |
| 50580 | 74 69 6f 6e 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 | tion.prompt.from.the.contents.of |
| 505a0 | 20 74 68 69 73 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 | .this.buffer...If.`gptel--num-me |
| 505c0 | 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 |
| 505e0 | 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 49 66 | .that.many.recent.exchanges...If |
| 50600 | 20 50 52 4f 4d 50 54 2d 45 4e 44 20 28 61 20 6d 61 72 6b 65 72 29 20 69 73 20 70 72 6f 76 69 64 | .PROMPT-END.(a.marker).is.provid |
| 50620 | 65 64 2c 20 65 6e 64 20 74 68 65 20 70 72 6f 6d 70 74 20 63 6f 6e 74 65 6e 74 73 0a 74 68 65 72 | ed,.end.the.prompt.contents.ther |
| 50640 | 65 2e 20 20 54 68 69 73 20 64 65 66 61 75 6c 74 73 20 74 6f 20 28 70 6f 69 6e 74 29 2e 22 0a 20 | e...This.defaults.to.(point).".. |
| 50660 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 70 74 65 6c 2d 2d 63 72 | .(with-current-buffer.(gptel--cr |
| 50680 | 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 | eate-prompt-buffer.prompt-end).. |
| 506a0 | 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 | ...(unwind-protect.........(gpte |
| 506c0 | 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 62 | l--parse-buffer..........gptel-b |
| 506e0 | 61 63 6b 65 6e 64 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 | ackend.(and.gptel--num-messages- |
| 50700 | 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | to-send......................... |
| 50720 | 20 20 20 20 28 2a 20 32 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d | ....(*.2.gptel--num-messages-to- |
| 50740 | 73 65 6e 64 29 29 29 0a 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 | send))).......(kill-buffer.(curr |
| 50760 | 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 20 | ent-buffer)))))..(make-obsolete. |
| 50780 | 27 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 27 67 70 74 65 6c 2d 2d 63 72 | 'gptel--create-prompt.'gptel--cr |
| 507a0 | 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | eate-prompt-buffer.............. |
| 507c0 | 20 20 22 30 2e 39 2e 39 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c | .."0.9.9")..(cl-defgeneric.gptel |
| 507e0 | 2d 2d 70 61 72 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 | --parse-buffer.(backend.max-entr |
| 50800 | 69 65 73 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 62 61 63 | ies)..."Parse.current.buffer.bac |
| 50820 | 6b 77 61 72 64 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 | kwards.from.point.and.return.a.l |
| 50840 | 69 73 74 20 6f 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 | ist.of.prompts...BACKEND.is.the. |
| 50860 | 4c 4c 4d 20 62 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 | LLM.backend.in.use...MAX-ENTRIES |
| 50880 | 20 69 73 20 74 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 | .is.the.number.of.queries/respon |
| 508a0 | 73 65 73 20 74 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 | ses.to.include.for.contexbt.").. |
| 508c0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 2d 61 6e 64 2d 69 6e 73 | (defun.gptel--parse-list-and-ins |
| 508e0 | 65 72 74 20 28 70 72 6f 6d 70 74 73 29 0a 20 20 22 49 6e 73 65 72 74 20 50 52 4f 4d 50 54 53 2c | ert.(prompts)..."Insert.PROMPTS, |
| 50900 | 20 61 20 6c 69 73 74 20 6f 66 20 6d 65 73 73 61 67 65 73 20 69 6e 74 6f 20 74 68 65 20 63 75 72 | .a.list.of.messages.into.the.cur |
| 50920 | 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 50 72 6f 70 65 72 74 69 7a 65 20 74 68 65 20 69 6e 73 | rent.buffer...Propertize.the.ins |
| 50940 | 65 72 74 69 6f 6e 73 20 69 6e 20 61 20 66 6f 72 6d 61 74 20 67 70 74 65 6c 20 63 61 6e 20 70 61 | ertions.in.a.format.gptel.can.pa |
| 50960 | 72 73 65 20 69 6e 74 6f 20 61 0a 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 0a 50 52 4f 4d 50 54 | rse.into.a.conversation...PROMPT |
| 50980 | 53 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 69 6e 70 75 74 20 74 6f 20 60 67 70 74 | S.is.typically.the.input.to.`gpt |
| 509a0 | 65 6c 2d 72 65 71 75 65 73 74 27 2c 20 65 69 74 68 65 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 | el-request',.either.a.list.of.st |
| 509c0 | 72 69 6e 67 73 0a 72 65 70 72 65 73 65 6e 74 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f | rings.representing.a.conversatio |
| 509e0 | 6e 20 77 69 74 68 20 61 6c 74 65 72 6e 61 74 65 20 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 | n.with.alternate.prompt/response |
| 50a00 | 20 74 75 72 6e 73 2c 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 0a 6c 69 73 74 73 20 77 69 74 68 20 | .turns,.or.a.list.of.lists.with. |
| 50a20 | 65 78 70 6c 69 63 69 74 20 72 6f 6c 65 73 20 28 70 72 6f 6d 70 74 2f 72 65 73 70 6f 6e 73 65 2f | explicit.roles.(prompt/response/ |
| 50a40 | 74 6f 6f 6c 29 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 | tool)...See.the.documentation.of |
| 50a60 | 0a 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 20 66 6f 72 20 74 68 65 20 6c 61 74 74 65 72 2e | .`gptel-request'.for.the.latter. |
| 50a80 | 22 0a 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 29 20 | "...(if.(stringp.(car.prompts)). |
| 50aa0 | 20 20 20 20 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 | ........;.Simple.format,.list.of |
| 50ac0 | 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 | .strings.......(cl-loop.for.text |
| 50ae0 | 20 69 6e 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 | .in.prompts................for.r |
| 50b00 | 65 73 70 6f 6e 73 65 20 3d 20 6e 69 6c 20 74 68 65 6e 20 28 6e 6f 74 20 72 65 73 70 6f 6e 73 65 | esponse.=.nil.then.(not.response |
| 50b20 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 74 65 78 74 0a 20 20 20 20 20 | )................when.text...... |
| 50b40 | 20 20 20 20 20 20 20 20 20 20 69 66 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | ..........if.response........... |
| 50b60 | 20 20 20 20 20 64 6f 20 28 69 6e 73 65 72 74 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 | .....do.(insert.gptel-response-s |
| 50b80 | 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eparator........................ |
| 50ba0 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 74 65 78 74 20 27 67 70 74 65 6c 20 27 72 65 73 70 | ...(propertize.text.'gptel.'resp |
| 50bc0 | 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse)........................... |
| 50be0 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 65 70 61 72 61 74 6f 72 29 0a 20 20 20 20 20 20 | gptel-response-separator)....... |
| 50c00 | 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 29 0a | .........else.do.(insert.text)). |
| 50c20 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 73 29 20 20 20 20 20 | ....(dolist.(entry.prompts)..... |
| 50c40 | 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 | ........;.Advanced.format,.list. |
| 50c60 | 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 | of.lists.......(pcase.entry..... |
| 50c80 | 20 20 20 20 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 20 28 69 6e 73 65 72 74 20 28 6f | ....(`(prompt...,msg).(insert.(o |
| 50ca0 | 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 29 0a 20 20 20 20 20 20 20 20 | r.(car-safe.msg).msg)))......... |
| 50cc0 | 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e | (`(response...,msg)..........(in |
| 50ce0 | 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 0a 20 20 | sert.gptel-response-separator... |
| 50d00 | 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 28 6f 72 20 28 | ...............(propertize.(or.( |
| 50d20 | 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f | car-safe.msg).msg).'gptel.'respo |
| 50d40 | 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a | nse))).........(`(tool...,call). |
| 50d60 | 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- |
| 50d80 | 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 | separator..................(prop |
| 50da0 | 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 28 63 6f 6e 63 61 74 | ertize...................(concat |
| 50dc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 3a 6e 61 6d 65 20 22 20 28 70 | ...................."(:name.".(p |
| 50de0 | 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 20 22 20 3a 61 72 67 73 20 22 0a 20 | list-get.call.:name).".:args.".. |
| 50e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 | ..................(prin1-to-stri |
| 50e20 | 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 20 22 29 5c 6e 5c | ng.(plist-get.call.:args)).")\n\ |
| 50e40 | 6e 22 0a 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 | n"....................(plist-get |
| 50e60 | 20 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .call.:result))................. |
| 50e80 | 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f 6c 20 2e 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 | ..'gptel.`(tool...,(plist-get.ca |
| 50ea0 | 6c 6c 20 3a 69 64 29 29 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 | ll.:id)))))))))..(cl-defgeneric. |
| 50ec0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 | gptel--parse-list.(backend.promp |
| 50ee0 | 74 2d 6c 69 73 74 29 0a 20 20 22 50 61 72 73 65 20 50 52 4f 4d 50 54 2d 4c 49 53 54 20 61 6e 64 | t-list)..."Parse.PROMPT-LIST.and |
| 50f00 | 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 20 73 75 69 74 61 62 | .return.a.list.of.prompts.suitab |
| 50f20 | 6c 65 20 66 6f 72 0a 42 41 43 4b 45 4e 44 2e 0a 0a 50 52 4f 4d 50 54 2d 4c 49 53 54 20 69 73 20 | le.for.BACKEND...PROMPT-LIST.is. |
| 50f40 | 69 6e 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 | interpreted.as.a.conversation,.i |
| 50f60 | 2e 65 2e 20 61 6e 20 61 6c 74 65 72 6e 61 74 69 6e 67 0a 73 65 72 69 65 73 20 6f 66 20 75 73 65 | .e..an.alternating.series.of.use |
| 50f80 | 72 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 20 20 54 68 | r.prompts.and.LLM.responses...Th |
| 50fa0 | 65 20 72 65 74 75 72 6e 65 64 20 73 74 72 75 63 74 75 72 65 0a 69 73 20 73 75 69 74 61 62 6c 65 | e.returned.structure.is.suitable |
| 50fc0 | 20 66 6f 72 20 69 6e 63 6c 75 64 69 6e 67 20 69 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 70 61 | .for.including.in.the.request.pa |
| 50fe0 | 79 6c 6f 61 64 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 | yload...BACKEND.is.the.LLM.backe |
| 51000 | 6e 64 20 69 6e 20 75 73 65 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 | nd.in.use.")..(cl-defgeneric.gpt |
| 51020 | 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b 73 20 28 6d 6f 64 65 20 62 65 67 20 | el--parse-media-links.(mode.beg. |
| 51040 | 65 6e 64 29 0a 20 20 22 46 69 6e 64 20 6d 65 64 69 61 20 6c 69 6e 6b 73 20 62 65 74 77 65 65 6e | end)..."Find.media.links.between |
| 51060 | 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 0a 4d 4f 44 45 20 69 73 20 74 68 65 20 6d 61 6a 6f 72 | .BEG.and.END...MODE.is.the.major |
| 51080 | 2d 6d 6f 64 65 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 52 65 74 75 72 6e 73 20 61 20 | -mode.of.the.buffer...Returns.a. |
| 510a0 | 70 6c 69 73 74 20 77 68 65 72 65 20 65 61 63 68 20 65 6e 74 72 79 20 69 73 20 6f 66 20 74 68 65 | plist.where.each.entry.is.of.the |
| 510c0 | 20 66 6f 72 6d 0a 20 20 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 6f 72 | .form...(:text.\"some.text\").or |
| 510e0 | 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 6d 65 64 69 61 20 75 72 69 20 6f 72 20 66 69 6c 65 20 70 | ...(:media.\"media.uri.or.file.p |
| 51100 | 61 74 68 5c 22 29 2e 22 0a 20 20 28 69 67 6e 6f 72 65 20 6d 6f 64 65 29 20 20 20 20 20 20 20 20 | ath\")."...(ignore.mode)........ |
| 51120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 0a | .................;byte-compiler. |
| 51140 | 20 20 28 6c 69 73 74 20 60 28 3a 74 65 78 74 20 2c 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 | ..(list.`(:text.,(buffer-substri |
| 51160 | 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................ |
| 51180 | 20 20 20 62 65 67 20 65 6e 64 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6d 61 72 6b 64 6f 77 6e | ...beg.end))))..(defvar.markdown |
| 511a0 | 2d 72 65 67 65 78 2d 6c 69 6e 6b 2d 69 6e 6c 69 6e 65 29 0a 28 64 65 66 76 61 72 20 6d 61 72 6b | -regex-link-inline).(defvar.mark |
| 511c0 | 64 6f 77 6e 2d 72 65 67 65 78 2d 61 6e 67 6c 65 2d 75 72 69 29 0a 28 64 65 63 6c 61 72 65 2d 66 | down-regex-angle-uri).(declare-f |
| 511e0 | 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 64 6f 77 6e 2d 6c 69 6e 6b 2d 61 74 2d 70 6f 73 20 22 6d 61 | unction.markdown-link-at-pos."ma |
| 51200 | 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 69 6f 6e 20 | rkdown-mode").(declare-function. |
| 51220 | 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 6d 65 2d 74 79 70 65 20 22 | mailcap-file-name-to-mime-type." |
| 51240 | 6d 61 69 6c 63 61 70 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d | mailcap")..(cl-defmethod.gptel-- |
| 51260 | 70 61 72 73 65 2d 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 | parse-media-links.((_mode.(eql.' |
| 51280 | 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 29 29 20 62 65 67 20 65 6e 64 29 0a 20 20 22 50 61 72 73 | markdown-mode)).beg.end)..."Pars |
| 512a0 | 65 20 74 65 78 74 20 61 6e 64 20 61 63 74 69 6f 6e 61 62 6c 65 20 6c 69 6e 6b 73 20 62 65 74 77 | e.text.and.actionable.links.betw |
| 512c0 | 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 0a 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 | een.BEG.and.END...Return.a.list. |
| 512e0 | 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 74 | of.the.form..((:text.\"some.text |
| 51300 | 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 70 | \")...(:media.\"/path/to/media.p |
| 51320 | 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 65 | ng\".:mime.\"image/png\")...(:te |
| 51340 | 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 0a 66 6f 72 20 69 6e 63 6c 75 73 69 6f 6e | xt.\"More.text\")).for.inclusion |
| 51360 | 20 69 6e 74 6f 20 74 68 65 20 75 73 65 72 20 70 72 6f 6d 70 74 20 66 6f 72 20 74 68 65 20 67 70 | .into.the.user.prompt.for.the.gp |
| 51380 | 74 65 6c 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 6d 61 69 6c 63 61 | tel.request."...(require.'mailca |
| 513a0 | 70 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 49 58 4d 45 20 41 76 6f | p)....................;FIXME.Avo |
| 513c0 | 69 64 20 74 68 69 73 20 73 6f 6d 65 68 6f 77 0a 20 20 28 6c 65 74 20 28 28 70 61 72 74 73 29 20 | id.this.somehow...(let.((parts). |
| 513e0 | 28 66 72 6f 6d 2d 70 74 29 20 28 6d 69 6d 65 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 | (from-pt).(mime)).....(save-excu |
| 51400 | 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 67 6f 74 6f 2d | rsion.......(setq.from-pt.(goto- |
| 51420 | 63 68 61 72 20 62 65 67 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 | char.beg)).......(while.(re-sear |
| 51440 | 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 63 61 74 | ch-forward...............(concat |
| 51460 | 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 69 6e 6c | ."\\(?:".markdown-regex-link-inl |
| 51480 | 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 20 20 20 | ine."\\|"....................... |
| 514a0 | 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 22 29 0a | markdown-regex-angle-uri."\\)"). |
| 514c0 | 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 28 73 65 | ..............end.t).........(se |
| 514e0 | 74 71 20 6d 69 6d 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | tq.mime.nil).........(when-let*. |
| 51500 | 28 28 6c 69 6e 6b 2d 61 74 2d 70 74 20 28 6d 61 72 6b 64 6f 77 6e 2d 6c 69 6e 6b 2d 61 74 2d 70 | ((link-at-pt.(markdown-link-at-p |
| 51520 | 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | os.(point))).................... |
| 51540 | 20 28 28 67 70 74 65 6c 2d 2d 6c 69 6e 6b 2d 73 74 61 6e 64 61 6c 6f 6e 65 2d 70 0a 20 20 20 20 | .((gptel--link-standalone-p..... |
| 51560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 6c 69 6e 6b 2d 61 74 2d 70 | ..................(car.link-at-p |
| 51580 | 74 29 20 28 63 61 64 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 | t).(cadr.link-at-pt))).......... |
| 515a0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 6e 74 68 20 33 20 6c 69 6e 6b 2d 61 74 2d | ...........(path.(nth.3.link-at- |
| 515c0 | 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 74 68 20 28 | pt)).....................(path.( |
| 515e0 | 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 70 72 65 66 69 78 20 22 66 69 6c 65 3a 2f 2f 22 20 70 | string-remove-prefix."file://".p |
| 51600 | 61 74 68 29 29 29 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 | ath)))...........(cond.......... |
| 51620 | 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 74 72 69 6e 67 | ..((seq-some.(lambda.(p).(string |
| 51640 | 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 20 20 20 20 20 | -prefix-p.p.path)).............. |
| 51660 | 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 20 22 66 74 70 | .........'("https:"."http:"."ftp |
| 51680 | 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 20 74 65 78 74 | :")).............;;.Collect.text |
| 516a0 | 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 65 63 74 20 74 | .up.to.this.image,.and.collect.t |
| 516c0 | 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 77 68 65 6e 20 | his.image.url.............(when. |
| 516e0 | 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 6c 29 20 3b 20 | (gptel--model-capable-p.'url).;. |
| 51700 | 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 0a 20 | FIXME.This.is.not.a.good.place.. |
| 51720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 51740 | 20 20 20 20 20 20 20 3b 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 20 75 72 6c 20 63 61 70 61 62 69 | .......;.to.check.for.url.capabi |
| 51760 | 6c 69 74 79 21 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 | lity!...............(let.((text. |
| 51780 | 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. |
| 517a0 | 66 72 6f 6d 2d 70 74 20 28 63 61 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 29 0a 20 20 20 20 | from-pt.(car.link-at-pt))))..... |
| 517c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e | ............(unless.(string-blan |
| 517e0 | 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 | k-p.text).(push.(list.:text.text |
| 51800 | 29 20 70 61 72 74 73 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 | ).parts)).................(push. |
| 51820 | 28 6c 69 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 | (list.:url.path.:mime.mime).part |
| 51840 | 73 29 0a 20 20 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 | s).................(setq.from-pt |
| 51860 | 20 28 63 61 64 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | .(cadr.link-at-pt))))).......... |
| 51880 | 20 20 28 28 66 69 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 | ..((file-readable-p.path)....... |
| 518a0 | 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d | ......(if.(or.(not.(gptel--file- |
| 518c0 | 62 69 6e 61 72 79 2d 70 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | binary-p.path))................. |
| 518e0 | 20 20 20 20 28 61 6e 64 20 28 73 65 74 71 20 6d 69 6d 65 20 28 6d 61 69 6c 63 61 70 2d 66 69 6c | ....(and.(setq.mime.(mailcap-fil |
| 51900 | 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 0a 20 20 20 20 20 | e-name-to-mime-type.path))...... |
| 51920 | 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 |
| 51940 | 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 20 20 | l-mime-capable-p.mime)))........ |
| 51960 | 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 74 | .........;;.Collect.text.up.to.t |
| 51980 | 68 69 73 20 69 6d 61 67 65 2c 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 | his.image,.and.collect.this.imag |
| 519a0 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 78 74 20 28 62 | e.................(let.((text.(b |
| 519c0 | 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 66 72 | uffer-substring-no-properties.fr |
| 519e0 | 6f 6d 2d 70 74 20 28 63 61 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 | om-pt.(car.link-at-pt))))....... |
| 51a00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e | ............(unless.(string-blan |
| 51a20 | 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 | k-p.text).(push.(list.:text.text |
| 51a40 | 29 20 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 | ).parts))...................(pus |
| 51a60 | 68 20 28 69 66 20 6d 69 6d 65 20 28 6c 69 73 74 20 3a 6d 65 64 69 61 20 70 61 74 68 20 3a 6d 69 | h.(if.mime.(list.:media.path.:mi |
| 51a80 | 6d 65 20 6d 69 6d 65 29 20 28 6c 69 73 74 20 3a 74 65 78 74 66 69 6c 65 20 70 61 74 68 29 29 20 | me.mime).(list.:textfile.path)). |
| 51aa0 | 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 | parts)...................(setq.f |
| 51ac0 | 72 6f 6d 2d 70 74 20 28 63 61 64 72 20 6c 69 6e 6b 2d 61 74 2d 70 74 29 29 29 0a 20 20 20 20 20 | rom-pt.(cadr.link-at-pt)))...... |
| 51ae0 | 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 6e 6f 72 69 6e 67 20 75 6e 73 75 | .........(message."Ignoring.unsu |
| 51b00 | 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 5c 22 25 73 5c 22 2e 22 20 70 61 74 | pported.binary.file.\"%s\".".pat |
| 51b20 | 68 29 29 29 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 66 72 6f 6d 2d 70 74 20 | h))))))).....(unless.(=.from-pt. |
| 51b40 | 65 6e 64 29 0a 20 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 | end).......(push.(list.:text.(bu |
| 51b60 | 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 66 72 6f | ffer-substring-no-properties.fro |
| 51b80 | 6d 2d 70 74 20 65 6e 64 29 29 20 70 61 72 74 73 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 | m-pt.end)).parts)).....(nreverse |
| 51ba0 | 20 70 61 72 74 73 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 | .parts)))..(cl-defgeneric.gptel- |
| 51bc0 | 2d 77 72 61 70 2d 75 73 65 72 2d 70 72 6f 6d 70 74 20 28 62 61 63 6b 65 6e 64 20 5f 70 72 6f 6d | -wrap-user-prompt.(backend._prom |
| 51be0 | 70 74 73 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 70 72 6f 6d 70 74 20 69 6e 20 | pts)..."Wrap.the.last.prompt.in. |
| 51c00 | 50 52 4f 4d 50 54 53 20 77 69 74 68 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 0a 0a 50 | PROMPTS.with.gptel's.context...P |
| 51c20 | 52 4f 4d 50 54 53 20 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 61 73 20 72 65 74 75 72 6e 65 | ROMPTS.is.a.structure.as.returne |
| 51c40 | 64 20 62 79 20 60 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 27 2e 0a 54 79 70 69 | d.by.`gptel--parse-buffer'..Typi |
| 51c60 | 63 61 6c 6c 79 20 74 68 69 73 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 2e 0a | cally.this.is.a.list.of.plists.. |
| 51c80 | 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 69 6e | .BACKEND.is.the.gptel.backend.in |
| 51ca0 | 20 75 73 65 2e 22 0a 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 27 28 67 | .use."...(display-warning....'(g |
| 51cc0 | 70 74 65 6c 20 63 6f 6e 74 65 78 74 29 0a 20 20 20 28 66 6f 72 6d 61 74 20 22 43 6f 6e 74 65 78 | ptel.context)....(format."Contex |
| 51ce0 | 74 20 73 75 70 70 6f 72 74 20 6e 6f 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 66 6f 72 20 62 61 | t.support.not.implemented.for.ba |
| 51d00 | 63 6b 65 6e 64 20 25 73 2c 20 69 67 6e 6f 72 69 6e 67 20 63 6f 6e 74 65 78 74 22 0a 20 20 20 20 | ckend.%s,.ignoring.context"..... |
| 51d20 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 | .......(gptel-backend-name.backe |
| 51d40 | 6e 64 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 72 65 | nd))))..(cl-defgeneric.gptel--re |
| 51d60 | 71 75 65 73 74 2d 64 61 74 61 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 | quest-data.(backend.prompts)..." |
| 51d80 | 47 65 6e 65 72 61 74 65 20 61 20 70 6c 69 73 74 20 6f 66 20 61 6c 6c 20 64 61 74 61 20 66 6f 72 | Generate.a.plist.of.all.data.for |
| 51da0 | 20 61 6e 20 4c 4c 4d 20 71 75 65 72 79 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c | .an.LLM.query...BACKEND.is.the.L |
| 51dc0 | 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 50 52 4f 4d 50 54 53 20 69 73 20 74 | LM.backend.in.use...PROMPTS.is.t |
| 51de0 | 68 65 20 70 6c 69 73 74 20 6f 66 20 70 72 65 76 69 6f 75 73 20 75 73 65 72 20 71 75 65 72 69 65 | he.plist.of.previous.user.querie |
| 51e00 | 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 | s.and.LLM.responses.")..(defun.g |
| 51e20 | 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 28 66 73 6d 29 0a 20 20 22 | ptel--url-get-response.(fsm)..." |
| 51e40 | 46 65 74 63 68 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 70 72 6f 6d 70 74 20 69 6e 20 73 74 61 74 | Fetch.response.to.prompt.in.stat |
| 51e60 | 65 20 46 53 4d 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 2e 0a 0a 46 53 4d 20 69 73 20 74 68 65 20 | e.FSM.from.the.LLM...FSM.is.the. |
| 51e80 | 73 74 61 74 65 20 6d 61 63 68 69 6e 65 20 64 72 69 76 69 6e 67 20 74 68 69 73 20 72 65 71 75 65 | state.machine.driving.this.reque |
| 51ea0 | 73 74 2e 20 20 49 74 73 20 49 4e 46 4f 20 73 6c 6f 74 0a 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 | st...Its.INFO.slot.contains.the. |
| 51ec0 | 64 61 74 61 20 72 65 71 75 69 72 65 64 20 66 6f 72 20 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 | data.required.for.setting.up.the |
| 51ee0 | 20 72 65 71 75 65 73 74 2e 20 20 49 4e 46 4f 20 69 73 20 61 0a 70 6c 69 73 74 20 77 69 74 68 20 | .request...INFO.is.a.plist.with. |
| 51f00 | 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 2c 20 61 6d 6f 6e 67 20 6f 74 68 65 72 73 | the.following.keys,.among.others |
| 51f20 | 3a 0a 2d 20 3a 64 61 74 61 20 20 20 20 20 28 74 68 65 20 64 61 74 61 20 62 65 69 6e 67 20 73 65 | :.-.:data.....(the.data.being.se |
| 51f40 | 6e 74 29 0a 2d 20 3a 62 75 66 66 65 72 20 20 20 28 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 | nt).-.:buffer...(the.gptel.buffe |
| 51f60 | 72 29 0a 2d 20 3a 70 6f 73 69 74 69 6f 6e 20 28 6d 61 72 6b 65 72 20 61 74 20 77 68 69 63 68 20 | r).-.:position.(marker.at.which. |
| 51f80 | 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 29 2e 0a 2d 20 3a 63 61 6c 6c | to.insert.the.response)..-.:call |
| 51fa0 | 62 61 63 6b 20 28 6f 70 74 69 6f 6e 61 6c 2c 20 74 68 65 20 72 65 71 75 65 73 74 20 63 61 6c 6c | back.(optional,.the.request.call |
| 51fc0 | 62 61 63 6b 29 0a 0a 43 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 74 68 65 20 72 65 | back)..Call.CALLBACK.with.the.re |
| 51fe0 | 73 70 6f 6e 73 65 20 61 6e 64 20 49 4e 46 4f 20 61 66 74 65 72 77 61 72 64 73 2e 20 20 49 66 20 | sponse.and.INFO.afterwards...If. |
| 52000 | 6f 6d 69 74 74 65 64 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 | omitted.the.response.is.inserted |
| 52020 | 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 66 74 65 72 20 70 | .into.the.current.buffer.after.p |
| 52040 | 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e 68 69 62 69 74 2d 6d 65 73 73 61 67 65 | oint."...(let*.((inhibit-message |
| 52060 | 20 74 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 2d 6c 6f 67 2d 6d 61 78 20 6e 69 | .t)..........(message-log-max.ni |
| 52080 | 6c 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 | l)..........(url-request-method. |
| 520a0 | 22 50 4f 53 54 22 29 0a 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 | "POST")..........(url-request-ex |
| 520c0 | 74 72 61 2d 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 27 28 | tra-headers...........(append.'( |
| 520e0 | 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 6f 6e 2f 6a | ("Content-Type"..."application/j |
| 52100 | 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 65 6e 2d 6c | son"))...................(when-l |
| 52120 | 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 68 65 61 64 | et*.((header.(gptel-backend-head |
| 52140 | 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 20 20 20 20 | er.gptel-backend)))............. |
| 52160 | 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 72 29 0a 20 | ........(if.(functionp.header).. |
| 52180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 | .......................(funcall. |
| 521a0 | 68 65 61 64 65 72 29 20 68 65 61 64 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 | header).header))))..........(inf |
| 521c0 | 6f 20 28 67 70 74 65 6c 2d 66 73 6d 2d 69 6e 66 6f 20 66 73 6d 29 29 0a 20 20 20 20 20 20 20 20 | o.(gptel-fsm-info.fsm))......... |
| 521e0 | 20 28 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 | .(backend.(plist-get.info.:backe |
| 52200 | 6e 64 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 | nd))..........(callback.(or.(pli |
| 52220 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 61 6c 6c 62 61 63 6b 29 20 3b 69 66 20 6e 6f 74 20 74 | st-get.info.:callback).;if.not.t |
| 52240 | 68 65 20 66 69 72 73 74 20 72 75 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | he.first.run.................... |
| 52260 | 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 29 20 3b | ....#'gptel--insert-response)).; |
| 52280 | 64 65 66 61 75 6c 74 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 4f 54 | default.callback..........;;.NOT |
| 522a0 | 45 3a 20 57 65 20 64 6f 6e 27 74 20 6e 65 65 64 20 74 68 65 20 64 65 63 6f 64 65 2d 63 6f 64 69 | E:.We.don't.need.the.decode-codi |
| 522c0 | 6e 67 2d 73 74 72 69 6e 67 20 64 61 6e 63 65 20 68 65 72 65 20 73 69 6e 63 65 20 77 65 0a 20 20 | ng-string.dance.here.since.we... |
| 522e0 | 20 20 20 20 20 20 20 3b 3b 20 64 6f 6e 27 74 20 70 61 73 73 20 69 74 20 74 6f 20 74 68 65 20 4f | .......;;.don't.pass.it.to.the.O |
| 52300 | 53 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 61 6e 64 20 43 75 72 6c 2e 0a 20 20 20 20 20 20 20 20 | S.environment.and.Curl.......... |
| 52320 | 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 20 28 67 70 | .(url-request-data...........(gp |
| 52340 | 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 20 69 6e 66 6f | tel--json-encode.(plist-get.info |
| 52360 | 20 3a 64 61 74 61 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 77 69 74 68 2d 63 75 72 72 65 | .:data)))).....(when.(with-curre |
| 52380 | 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 | nt-buffer.(plist-get.info.:buffe |
| 523a0 | 72 29 0a 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 | r).............(and.(derived-mod |
| 523c0 | 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-p.'org-mode).................. |
| 523e0 | 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 29 29 0a 20 20 20 | gptel-org-convert-response)).... |
| 52400 | 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 72 61 6e 73 66 6f 72 6d 65 72 20 | ...(plist-put.info.:transformer. |
| 52420 | 23 27 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 29 29 | #'gptel--convert-markdown->org)) |
| 52440 | 0a 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 63 | .....(plist-put.info.:callback.c |
| 52460 | 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 | allback).....(when.gptel-log-lev |
| 52480 | 65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 | el...............;logging....... |
| 524a0 | 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 | (when.(eq.gptel-log-level.'debug |
| 524c0 | 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 | ).........(gptel--log.(gptel--js |
| 524e0 | 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | on-encode......................( |
| 52500 | 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 20 28 69 6e 74 | mapcar.(lambda.(pair).(cons.(int |
| 52520 | 65 72 6e 20 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 20 | ern.(car.pair)).(cdr.pair))).... |
| 52540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 72 6c 2d 72 65 | ..........................url-re |
| 52560 | 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | quest-extra-headers))........... |
| 52580 | 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 22 29 29 0a 20 20 | .........."request.headers"))... |
| 525a0 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 75 72 6c 2d 72 65 71 75 65 73 74 2d 64 61 74 61 | ....(gptel--log.url-request-data |
| 525c0 | 20 22 72 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f | ."request.body")).....(let.((pro |
| 525e0 | 63 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 74 72 69 65 76 65 20 28 | c-buf............(url-retrieve.( |
| 52600 | 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 2d 75 72 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | let.((backend-url.(gptel-backend |
| 52620 | 2d 75 72 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -url.gptel-backend)))........... |
| 52640 | 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 70 20 | .................(if.(functionp. |
| 52660 | 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backend-url).................... |
| 52680 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | ............(with-current-buffer |
| 526a0 | 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 20 | .(plist-get.info.:buffer)....... |
| 526c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 | ...........................(func |
| 526e0 | 61 6c 6c 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | all.backend-url))............... |
| 52700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 | ...............backend-url)).... |
| 52720 | 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 5f | ......................(lambda.(_ |
| 52740 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | )............................(se |
| 52760 | 74 2d 62 75 66 66 65 72 2d 6d 75 6c 74 69 62 79 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 | t-buffer-multibyte.t)........... |
| 52780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 66 69 6c | .................(set-buffer-fil |
| 527a0 | 65 2d 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 27 75 74 66 2d 38 2d 75 6e 69 78 29 0a 20 20 20 | e-coding-system.'utf-8-unix).... |
| 527c0 | 20 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 63 61 73 65 2d 6c | ........................(pcase-l |
| 527e0 | 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 73 74 61 74 75 73 20 2c 68 | et.((`(,response.,http-status.,h |
| 52800 | 74 74 70 2d 6d 73 67 20 2c 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ttp-msg.,error)................. |
| 52820 | 20 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-- |
| 52840 | 75 72 6c 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 62 61 63 6b 65 6e 64 20 69 6e 66 6f 29 | url-parse-response.backend.info) |
| 52860 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 52880 | 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 | .........(buf.(current-buffer))) |
| 528a0 | 0a 20 20 20 20 20 20 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 |
| 528c0 | 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d | list-put.info.:http-status.http- |
| 528e0 | 73 74 61 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | status)......................... |
| 52900 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 | .....(plist-put.info.:status.htt |
| 52920 | 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p-msg).......................... |
| 52940 | 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 29 20 | ....(gptel--fsm-transition.fsm). |
| 52960 | 3b 57 41 49 54 20 2d 3e 20 54 59 50 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ;WAIT.->.TYPE................... |
| 52980 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 | ...........(when.error.(plist-pu |
| 529a0 | 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 20 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | t.info.:error.error))........... |
| 529c0 | 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 72 65 73 70 6f 6e 73 | ...................(when.respons |
| 529e0 | 65 20 3b 4c 6f 6f 6b 20 66 6f 72 20 61 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 | e.;Look.for.a.reasoning.block... |
| 52a00 | 20 20 20 20 20 20 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 |
| 52a20 | 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5e 5c 5c 73 2d 2a 3c 74 68 69 6e 6b 3e 22 | .(string-match-p."^\\s-*<think>" |
| 52a40 | 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 20 20 20 20 20 | .response)...................... |
| 52a60 | 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 69 64 78 20 28 | ..............(when-let*.((idx.( |
| 52a80 | 73 74 72 69 6e 67 2d 73 65 61 72 63 68 20 22 3c 2f 74 68 69 6e 6b 3e 22 20 72 65 73 70 6f 6e 73 | string-search."</think>".respons |
| 52aa0 | 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e)))............................ |
| 52ac0 | 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." |
| 52ae0 | 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"....... |
| 52b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52b20 | 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 20 20 20 | .(funcall.callback.............. |
| 52b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52b60 | 20 20 20 28 63 6f 6e 73 20 27 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...(cons.'reasoning............. |
| 52b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52ba0 | 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 6e 69 | ..........(substring.response.ni |
| 52bc0 | 6c 20 28 2b 20 69 64 78 20 38 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.(+.idx.8)))................... |
| 52be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e | ..............................in |
| 52c00 | 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo))............................ |
| 52c20 | 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 73 74 72 69 6e 67 | ..........(setq.response.(string |
| 52c40 | 2d 74 72 69 6d 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -trim-left...................... |
| 52c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52c80 | 28 73 75 62 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 28 2b 20 69 64 78 20 38 29 29 29 29 | (substring.response.(+.idx.8)))) |
| 52ca0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 52cc0 | 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 |
| 52ce0 | 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 | -get.info.:reasoning)).......... |
| 52d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52d20 | 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 | ....((stringp.reasoning)))...... |
| 52d40 | 20 20 20 20 20 20 20 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 |
| 52d60 | 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 6e 67 | uncall.callback.(cons.'reasoning |
| 52d80 | 20 72 65 61 73 6f 6e 69 6e 67 29 20 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .reasoning).info))))............ |
| 52da0 | 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 6f 72 20 72 65 73 70 | ..................(when.(or.resp |
| 52dc0 | 6f 6e 73 65 20 28 6e 6f 74 20 28 6d 65 6d 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 | onse.(not.(member.http-status.'( |
| 52de0 | 22 32 30 30 22 20 22 31 30 30 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "200"."100"))))................. |
| 52e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 | ...............(with-demoted-err |
| 52e20 | 6f 72 73 20 22 67 70 74 65 6c 20 63 61 6c 6c 62 61 63 6b 20 65 72 72 6f 72 3a 20 25 53 22 0a 20 | ors."gptel.callback.error:.%S".. |
| 52e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 52e60 | 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 | (funcall.callback.response.info) |
| 52e80 | 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 | )).............................. |
| 52ea0 | 28 67 70 74 65 6c 2d 2d 66 73 6d 2d 74 72 61 6e 73 69 74 69 6f 6e 20 66 73 6d 29 20 3b 54 59 50 | (gptel--fsm-transition.fsm).;TYP |
| 52ec0 | 45 20 2d 3e 20 6e 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | E.->.next....................... |
| 52ee0 | 20 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 62 75 66 20 67 70 74 65 | .......(setf.(alist-get.buf.gpte |
| 52f00 | 6c 2d 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 | l--request-alist.nil.'remove).ni |
| 52f20 | 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l).............................. |
| 52f40 | 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (kill-buffer.buf)))............. |
| 52f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 | .............nil.t.nil)))....... |
| 52f80 | 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 74 72 61 6e 73 66 6f 72 6d 65 72 20 68 65 72 65 2e 0a 20 | ;;.TODO:.Add.transformer.here... |
| 52fa0 | 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 62 75 66 20 67 | .....(setf.(alist-get.proc-buf.g |
| 52fc0 | 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ptel--request-alist)............ |
| 52fe0 | 20 28 63 6f 6e 73 20 66 73 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 | .(cons.fsm...................#'( |
| 53000 | 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.()....................... |
| 53020 | 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 69 67 6e 6f | (plist-put.info.:callback.#'igno |
| 53040 | 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 | re).......................(let.( |
| 53060 | 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 71 75 65 72 79 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 | kill-buffer-query-functions).... |
| 53080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 43 61 6e 27 74 20 73 74 6f | .....................;;Can't.sto |
| 530a0 | 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 20 20 20 20 20 | p.url-retrieve.process.......... |
| 530c0 | 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 70 72 6f 63 | ...............(kill-buffer.proc |
| 530e0 | 2d 62 75 66 29 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 | -buf))))))))..(cl-defgeneric.gpt |
| 53100 | 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 70 | el--parse-response.(backend.resp |
| 53120 | 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 72 | onse.proc-info)..."Response.extr |
| 53140 | 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 44 | actor.for.LLM.requests...BACKEND |
| 53160 | 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 53 | .is.the.LLM.backend.in.use...RES |
| 53180 | 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 20 | PONSE.is.the.parsed.JSON.of.the. |
| 531a0 | 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 4f | response,.as.a.plist...PROC-INFO |
| 531c0 | 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 61 | .is.a.plist.with.process.informa |
| 531e0 | 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 74 | tion.and.other.context..See.`gpt |
| 53200 | 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 63 | el-curl--get-response'.for.its.c |
| 53220 | 6f 6e 74 65 6e 74 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 6c 2d 70 61 | ontents.")..(defun.gptel--url-pa |
| 53240 | 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 6e 66 6f 29 | rse-response.(backend.proc-info) |
| 53260 | 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 45 4e 44 20 | ..."Parse.response.from.BACKEND. |
| 53280 | 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 65 6c 2d 6c | with.PROC-INFO."...(when.gptel-l |
| 532a0 | 6f 67 2d 6c 65 76 65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e | og-level.................;loggin |
| 532c0 | 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 |
| 532e0 | 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). |
| 53300 | 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. |
| 53320 | 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 |
| 53340 | 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 |
| 53360 | 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 |
| 53380 | 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 |
| 533a0 | 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 |
| 533c0 | 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 |
| 533e0 | 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))........... |
| 53400 | 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 |
| 53420 | 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 |
| 53440 | 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- |
| 53460 | 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)....................... |
| 53480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 534a0 | 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))))........... |
| 534c0 | 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 |
| 534e0 | 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 |
| 53500 | 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]+.+\\ |
| 53520 | 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)........... |
| 53540 | 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 |
| 53560 | 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 |
| 53580 | 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 |
| 535a0 | 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)......................... |
| 535c0 | 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........ |
| 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 28 67 70 74 65 6c | ..........................(gptel |
| 53600 | 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).................... |
| 53620 | 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 |
| 53640 | 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 |
| 53660 | 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. |
| 53680 | 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 |
| 536a0 | 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 |
| 536c0 | 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) |
| 536e0 | 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."\ |
| 53700 | 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))... |
| 53720 | 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 |
| 53740 | 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 |
| 53760 | 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse.proc-info))................ |
| 53780 | 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 | ..........((not.(string-blank-p. |
| 537a0 | 72 65 73 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 | resp)))).................(string |
| 537c0 | 2d 74 72 69 6d 20 72 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d | -trim.resp))...............http- |
| 537e0 | 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 28 28 61 6e 64 2d 6c | status.http-msg))........((and-l |
| 53800 | 65 74 2a 20 28 28 65 72 72 6f 72 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et*.((error-data................ |
| 53820 | 20 20 20 20 20 28 63 6f 6e 64 20 28 28 70 6c 69 73 74 70 20 72 65 73 70 6f 6e 73 65 29 20 28 70 | .....(cond.((plistp.response).(p |
| 53840 | 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 29 0a 20 20 20 20 20 | list-get.response.:error))...... |
| 53860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 72 72 61 79 70 20 72 65 | .....................((arrayp.re |
| 53880 | 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sponse)......................... |
| 538a0 | 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 65 6c 29 20 28 70 6c 69 73 74 2d | ...(cl-some.(lambda.(el).(plist- |
| 538c0 | 67 65 74 20 65 6c 20 3a 65 72 72 6f 72 29 29 20 72 65 73 70 6f 6e 73 65 29 29 29 29 29 0a 20 20 | get.el.:error)).response)))))... |
| 538e0 | 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 68 74 | ........(list.nil.http-status.ht |
| 53900 | 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 64 61 74 61 29 29 29 0a 20 20 20 20 20 20 20 28 28 65 71 | tp-msg.error-data)))........((eq |
| 53920 | 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)..... |
| 53940 | 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 74 75 73 20 28 63 6f 6e 63 61 | ....(list.nil.http-status.(conca |
| 53960 | 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e | t."(".http-msg.").Malformed.JSON |
| 53980 | 20 69 6e 20 72 65 73 70 6f 6e 73 65 2e 22 29 20 22 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 | .in.response.")."json-read-error |
| 539a0 | 22 29 29 0a 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 68 74 74 70 2d 73 74 61 | "))........(t.(list.nil.http-sta |
| 539c0 | 74 75 73 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c | tus.(concat."(".http-msg.").Coul |
| 539e0 | 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 | d.not.parse.HTTP.response.").... |
| 53a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 | ............."Could.not.parse.HT |
| 53a20 | 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 | TP.response."))).....(list.nil.( |
| 53a40 | 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 |
| 53a60 | 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.")......... |
| 53a80 | 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 | .."Could.not.parse.HTTP.response |
| 53aa0 | 2e 22 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 | .")))..(cl-defun.gptel--sanitize |
| 53ac0 | 2d 6d 6f 64 65 6c 20 28 26 6b 65 79 20 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b | -model.(&key.(backend.gptel-back |
| 53ae0 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end)............................ |
| 53b00 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 | ...........(model.gptel-model).. |
| 53b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 53b40 | 20 20 20 20 20 28 73 68 6f 6f 73 68 20 74 29 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 4d 4f 44 | .....(shoosh.t))..."Check.if.MOD |
| 53b60 | 45 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 42 41 43 4b 45 4e 44 2c 20 61 64 6a 75 | EL.is.available.in.BACKEND,.adju |
| 53b80 | 73 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 0a 49 66 20 53 48 4f 4f 53 48 20 69 73 20 74 72 | st.accordingly...If.SHOOSH.is.tr |
| 53ba0 | 75 65 2c 20 64 6f 6e 27 74 20 69 73 73 75 65 20 61 20 77 61 72 6e 69 6e 67 2e 22 0a 20 20 28 6c | ue,.don't.issue.a.warning."...(l |
| 53bc0 | 65 74 20 28 28 61 76 61 69 6c 61 62 6c 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f | et.((available.(gptel-backend-mo |
| 53be0 | 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e | dels.backend))).....(when.(strin |
| 53c00 | 67 70 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 6f 73 68 0a 20 | gp.model).......(unless.shoosh.. |
| 53c20 | 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 | .......(display-warning......... |
| 53c40 | 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 60 67 70 74 65 6c | .'gptel..........(format."`gptel |
| 53c60 | 2d 6d 6f 64 65 6c 27 20 65 78 70 65 63 74 73 20 61 20 73 79 6d 62 6f 6c 2c 20 66 6f 75 6e 64 20 | -model'.expects.a.symbol,.found. |
| 53c80 | 73 74 72 69 6e 67 20 5c 22 25 73 5c 22 0a 20 20 20 52 65 73 65 74 74 69 6e 67 20 60 67 70 74 65 | string.\"%s\"....Resetting.`gpte |
| 53ca0 | 6c 2d 6d 6f 64 65 6c 27 20 74 6f 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-model'.to.%s"................. |
| 53cc0 | 20 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 | .model.model))).......(setq.gpte |
| 53ce0 | 6c 2d 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 2d 69 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 0a 20 20 | l-model.(gptel--intern.model)... |
| 53d00 | 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 | ..........model.gptel-model))... |
| 53d20 | 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 6d 6f 64 65 6c 20 61 76 61 69 6c 61 62 6c | ..(unless.(member.model.availabl |
| 53d40 | 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 61 6c 6c 62 61 63 6b 20 28 63 61 72 20 61 76 | e).......(let.((fallback.(car.av |
| 53d60 | 61 69 6c 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 6f 73 | ailable))).........(unless.shoos |
| 53d80 | 68 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 | h...........(display-warning.... |
| 53da0 | 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 | ........'gptel............(forma |
| 53dc0 | 74 20 28 63 6f 6e 63 61 74 20 22 50 72 65 66 65 72 72 65 64 20 60 67 70 74 65 6c 2d 6d 6f 64 65 | t.(concat."Preferred.`gptel-mode |
| 53de0 | 6c 27 20 5c 22 25 73 5c 22 20 6e 6f 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l'.\"%s\".not".................. |
| 53e00 | 20 20 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 65 64 20 69 6e 20 5c 22 25 73 5c 22 2c 20 | .........."supported.in.\"%s\",. |
| 53e20 | 75 73 69 6e 67 20 5c 22 25 73 5c 22 20 69 6e 73 74 65 61 64 22 29 0a 20 20 20 20 20 20 20 20 20 | using.\"%s\".instead").......... |
| 53e40 | 20 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e | ..........model.(gptel-backend-n |
| 53e60 | 61 6d 65 20 62 61 63 6b 65 6e 64 29 20 66 61 6c 6c 62 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 | ame.backend).fallback)))........ |
| 53e80 | 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 66 61 6c 6c 62 61 63 | .(setq-local.gptel-model.fallbac |
| 53ea0 | 6b 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 | k)))))..;;;###autoload.(defun.gp |
| 53ec0 | 74 65 6c 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 69 6e 69 74 69 61 6c 20 69 6e | tel.(name.&optional._.initial.in |
| 53ee0 | 74 65 72 61 63 74 69 76 65 70 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6f 72 20 73 74 61 72 | teractivep)..."Switch.to.or.star |
| 53f00 | 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 41 73 6b | t.a.chat.session.with.NAME...Ask |
| 53f20 | 20 66 6f 72 20 41 50 49 2d 4b 45 59 20 69 66 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 | .for.API-KEY.if.`gptel-api-key'. |
| 53f40 | 69 73 20 75 6e 73 65 74 2e 0a 0a 49 66 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 | is.unset...If.region.is.active,. |
| 53f60 | 75 73 65 20 69 74 20 61 73 20 74 68 65 20 49 4e 49 54 49 41 4c 20 70 72 6f 6d 70 74 2e 20 20 52 | use.it.as.the.INITIAL.prompt...R |
| 53f80 | 65 74 75 72 6e 73 20 74 68 65 0a 62 75 66 66 65 72 20 63 72 65 61 74 65 64 20 6f 72 20 73 77 69 | eturns.the.buffer.created.or.swi |
| 53fa0 | 74 63 68 65 64 20 74 6f 2e 0a 0a 49 4e 54 45 52 41 43 54 49 56 45 50 20 69 73 20 74 20 77 68 65 | tched.to...INTERACTIVEP.is.t.whe |
| 53fc0 | 6e 20 67 70 74 65 6c 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e | n.gptel.is.called.interactively. |
| 53fe0 | 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 6b | "...(interactive....(let*.((back |
| 54000 | 65 6e 64 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e | end.(default-value.'gptel-backen |
| 54020 | 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 | d))...........(backend-name..... |
| 54040 | 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 2a 25 73 2a 22 20 28 67 70 74 65 6c 2d 62 61 63 | .......(format."*%s*".(gptel-bac |
| 54060 | 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 | kend-name.backend))))......(list |
| 54080 | 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 43 72 65 61 74 | .(read-buffer............."Creat |
| 540a0 | 65 20 6f 72 20 63 68 6f 6f 73 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 | e.or.choose.gptel.buffer:."..... |
| 540c0 | 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 6e 69 6c 20 20 20 20 20 20 20 20 | ........backend-name.nil........ |
| 540e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 44 45 46 41 55 4c 54 20 61 6e 64 20 52 | .................;.DEFAULT.and.R |
| 54100 | 45 51 55 49 52 45 2d 4d 41 54 43 48 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 | EQUIRE-MATCH.............(lambda |
| 54120 | 20 28 62 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(b)............................ |
| 54140 | 20 20 20 20 20 20 20 3b 20 50 52 45 44 49 43 41 54 45 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......;.PREDICATE.............. |
| 54160 | 20 3b 3b 20 4e 4f 54 45 3a 20 62 75 66 66 65 72 20 63 68 65 63 6b 20 69 73 20 72 65 71 75 69 72 | .;;.NOTE:.buffer.check.is.requir |
| 54180 | 65 64 20 28 23 34 35 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 | ed.(#450)...............(and-let |
| 541a0 | 2a 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 | *.((buf.(get-buffer.(or.(car-saf |
| 541c0 | 65 20 62 29 20 62 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 | e.b).b)))).................(buff |
| 541e0 | 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 20 62 75 66 29 29 | er-local-value.'gptel-mode.buf)) |
| 54200 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 | ))............(condition-case.ni |
| 54220 | 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 | l................(gptel--get-api |
| 54240 | 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b | -key.................(gptel-back |
| 54260 | 65 6e 64 2d 6b 65 79 20 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | end-key.backend))..............( |
| 54280 | 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (error.user-error).............. |
| 542a0 | 20 28 73 65 74 71 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 | .(setq.gptel-api-key............ |
| 542c0 | 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 20 20 20 | .........(read-passwd........... |
| 542e0 | 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 20 41 50 49 20 6b 65 79 3a 20 | ...........(format."%s.API.key:. |
| 54300 | 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | ".backend-name)))))............( |
| 54320 | 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | and.(use-region-p).............. |
| 54340 | 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 72 65 67 69 6f 6e 2d 62 65 67 | ...(buffer-substring.(region-beg |
| 54360 | 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inning)......................... |
| 54380 | 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 | ..........(region-end)))........ |
| 543a0 | 20 20 20 20 74 29 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | ....t)))...(with-current-buffer. |
| 543c0 | 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6e 61 6d 65 29 0a 20 20 20 20 28 63 6f | (get-buffer-create.name).....(co |
| 543e0 | 6e 64 20 3b 53 65 74 20 6d 61 6a 6f 72 20 6d 6f 64 65 0a 20 20 20 20 20 28 28 65 71 20 6d 61 6a | nd.;Set.major.mode......((eq.maj |
| 54400 | 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 0a 20 20 20 | or-mode.gptel-default-mode)).... |
| 54420 | 20 20 28 28 65 71 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 20 27 74 65 78 74 2d | ..((eq.gptel-default-mode.'text- |
| 54440 | 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 76 | mode).......(text-mode).......(v |
| 54460 | 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 20 28 74 20 28 66 75 6e | isual-line-mode.1))......(t.(fun |
| 54480 | 63 61 6c 6c 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 28 | call.gptel-default-mode))).....( |
| 544a0 | 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 20 3a 62 61 63 6b 65 6e 64 20 28 | gptel--sanitize-model.:backend.( |
| 544c0 | 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 | default-value.'gptel-backend)... |
| 544e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 20 | .........................:model. |
| 54500 | 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 | (default-value.'gptel-model).... |
| 54520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 68 6f 6f 73 68 20 | ........................:shoosh. |
| 54540 | 6e 69 6c 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 | nil).....(unless.gptel-mode.(gpt |
| 54560 | 65 6c 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e | el-mode.1)).....(goto-char.(poin |
| 54580 | 74 2d 6d 61 78 29 29 0a 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 | t-max)).....(skip-chars-backward |
| 545a0 | 20 22 5c 74 5c 72 5c 6e 22 29 0a 20 20 20 20 28 69 66 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 | ."\t\r\n").....(if.(bobp).(inser |
| 545c0 | 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 | t.(or.initial.(gptel-prompt-pref |
| 545e0 | 69 78 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 | ix-string)))).....(when.interact |
| 54600 | 69 76 65 70 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 | ivep.......(display-buffer.(curr |
| 54620 | 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 | ent-buffer).gptel-display-buffer |
| 54640 | 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 53 65 6e 64 20 79 6f | -action).......(message."Send.yo |
| 54660 | 75 72 20 71 75 65 72 79 20 77 69 74 68 20 25 73 21 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ur.query.with.%s!".............. |
| 54680 | 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 5c 5c 5b 67 | ..(substitute-command-keys."\\[g |
| 546a0 | 70 74 65 6c 2d 73 65 6e 64 5d 22 29 29 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 | ptel-send]"))).....(current-buff |
| 546c0 | 65 72 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 61 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 20 55 | er)))....;;;.Reasoning.content.U |
| 546e0 | 49 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d | I.(declare-function.gptel-curl-- |
| 54700 | 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 22 67 70 74 65 6c 2d 63 75 | stream-insert-response."gptel-cu |
| 54720 | 72 6c 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 72 65 61 73 | rl")..(defun.gptel--display-reas |
| 54740 | 6f 6e 69 6e 67 2d 73 74 72 65 61 6d 20 28 74 65 78 74 20 69 6e 66 6f 29 0a 20 20 22 53 68 6f 77 | oning-stream.(text.info)..."Show |
| 54760 | 20 72 65 61 73 6f 6e 69 6e 67 20 54 45 58 54 20 69 6e 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 | .reasoning.TEXT.in.an.appropriat |
| 54780 | 65 20 6c 6f 63 61 74 69 6f 6e 2e 0a 0a 49 4e 46 4f 20 69 73 20 74 68 65 20 72 65 71 75 65 73 74 | e.location...INFO.is.the.request |
| 547a0 | 20 49 4e 46 4f 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f | .INFO,.see.`gptel--url-get-respo |
| 547c0 | 6e 73 65 27 2e 20 20 54 68 69 73 20 69 73 0a 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 | nse'...This.is.for.streaming.res |
| 547e0 | 70 6f 6e 73 65 73 20 6f 6e 6c 79 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 69 6e 63 | ponses.only."...(when-let*.((inc |
| 54800 | 6c 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 69 6e 63 6c 75 64 65 2d 72 65 | lude.(plist-get.info.:include-re |
| 54820 | 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 69 6e 63 6c | asoning))).....(if.(stringp.incl |
| 54840 | 75 64 65 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 74 65 78 74 20 74 29 | ude).........(unless.(eq.text.t) |
| 54860 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | ...........(with-current-buffer. |
| 54880 | 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 69 6e 63 6c 75 64 65 29 0a 20 20 20 20 | (get-buffer-create.include)..... |
| 548a0 | 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 |
| 548c0 | 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.(point-max))................. |
| 548e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 29 29 29 0a 20 20 20 | ............(insert.text)))).... |
| 54900 | 20 20 20 28 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 | ...(let*.((reasoning-marker.(pli |
| 54920 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a | st-get.info.:reasoning-marker)). |
| 54940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 | .............(tracking-marker.(p |
| 54960 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 | list-get.info.:tracking-marker)) |
| 54980 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c 69 | ..............(start-marker.(pli |
| 549a0 | 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 20 20 20 | st-get.info.:position)))........ |
| 549c0 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 | .(with-current-buffer.(marker-bu |
| 549e0 | 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 | ffer.start-marker)...........(if |
| 54a00 | 20 28 65 71 20 74 65 78 74 20 74 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 65 6e 64 20 | .(eq.text.t)...............;end. |
| 54a20 | 6f 66 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 | of.stream...............(progn.. |
| 54a40 | 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 74 72 65 | ...............(gptel-curl--stre |
| 54a60 | 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | am-insert-response.............. |
| 54a80 | 20 20 20 20 28 63 6f 6e 63 61 74 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 | ....(concat.(if.(derived-mode-p. |
| 54aa0 | 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 20 20 | 'org-mode)...................... |
| 54ac0 | 20 20 20 20 20 20 20 20 22 5c 6e 23 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 0a 20 20 20 20 | ........"\n#+end_reasoning"..... |
| 54ae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 72 | .......................;;.TODO(r |
| 54b00 | 65 61 73 6f 6e 69 6e 67 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 | easoning).remove.properties.and. |
| 54b20 | 73 74 72 69 70 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | strip.instead................... |
| 54b40 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 60 60 60 22 20 27 67 70 | .........(propertize."\n```".'gp |
| 54b60 | 74 65 6c 20 27 69 67 6e 6f 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel.'ignore))................... |
| 54b80 | 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 29 | .......gptel-response-separator) |
| 54ba0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 74 29 0a 20 20 20 20 20 20 | ..................info.t)....... |
| 54bc0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 | ..........(when.(derived-mode-p. |
| 54be0 | 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 | 'org-mode).;fold.block.......... |
| 54c00 | 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 | .........(ignore-errors......... |
| 54c20 | 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 20 | ............(save-excursion..... |
| 54c40 | 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 74 72 61 | ..................(goto-char.tra |
| 54c60 | 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cking-marker)................... |
| 54c80 | 20 20 20 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 23 2b 65 6e 64 5f 72 65 61 73 | ....(search-backward."#+end_reas |
| 54ca0 | 6f 6e 69 6e 67 22 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 74 29 0a 20 20 20 20 20 20 20 20 20 | oning".start-marker.t).......... |
| 54cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 | .............(when.(looking-at." |
| 54ce0 | 5e 23 5c 5c 2b 65 6e 64 5f 72 65 61 73 6f 6e 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ^#\\+end_reasoning")............ |
| 54d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 63 79 63 6c 65 29 29 29 29 29 29 0a 20 20 | .............(org-cycle))))))... |
| 54d20 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 72 65 61 73 6f 6e 69 6e 67 | ..........(unless.(and.reasoning |
| 54d40 | 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 | -marker.tracking-marker......... |
| 54d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 | .................(=.reasoning-ma |
| 54d80 | 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 | rker.tracking-marker)).......... |
| 54da0 | 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 70 61 72 61 74 6f 72 20 20 20 20 20 20 20 20 3b 53 65 | .....(let.((separator........;Se |
| 54dc0 | 70 61 72 61 74 65 20 66 72 6f 6d 20 72 65 73 70 6f 6e 73 65 20 70 72 65 66 69 78 20 69 66 20 72 | parate.from.response.prefix.if.r |
| 54de0 | 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e | equired......................(an |
| 54e00 | 64 20 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 20 67 70 74 65 6c 2d 6d 6f | d.(not.tracking-marker).gptel-mo |
| 54e20 | 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 28 6e 6f | de...........................(no |
| 54e40 | 74 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.(string-suffix-p.............. |
| 54e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 28 67 70 74 65 6c 2d 72 | ..................."\n".(gptel-r |
| 54e80 | 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 | esponse-prefix-string)))........ |
| 54ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 | ..................."\n")))...... |
| 54ec0 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 | ...........(gptel-curl--stream-i |
| 54ee0 | 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nsert-response.................. |
| 54f00 | 28 63 6f 6e 63 61 74 20 73 65 70 61 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (concat.separator............... |
| 54f20 | 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.' |
| 54f40 | 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 20 20 20 | org-mode)....................... |
| 54f60 | 20 20 20 20 20 20 20 22 23 2b 62 65 67 69 6e 5f 72 65 61 73 6f 6e 69 6e 67 5c 6e 22 0a 20 20 20 | ......."#+begin_reasoning\n".... |
| 54f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 | ........................;;.TODO( |
| 54fa0 | 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 | reasoning).remove.properties.and |
| 54fc0 | 20 73 74 72 69 70 20 69 6e 73 74 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .strip.instead.................. |
| 54fe0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 60 60 60 20 72 65 61 73 6f | ..........(propertize."```.reaso |
| 55000 | 6e 69 6e 67 5c 6e 22 20 27 67 70 74 65 6c 20 27 69 67 6e 6f 72 65 29 29 29 0a 20 20 20 20 20 20 | ning\n".'gptel.'ignore)))....... |
| 55020 | 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ...........info.t)))............ |
| 55040 | 20 28 69 66 20 28 65 71 20 69 6e 63 6c 75 64 65 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 | .(if.(eq.include.'ignore)....... |
| 55060 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(progn................ |
| 55080 | 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......... |
| 550a0 | 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 74 65 78 74 29 20 27 28 67 70 74 | ...........0.(length.text).'(gpt |
| 550c0 | 65 6c 20 69 67 6e 6f 72 65 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 29 29 20 | el.ignore.front-sticky.(gptel)). |
| 550e0 | 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 | text)...................(gptel-c |
| 55100 | 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 65 78 74 | url--stream-insert-response.text |
| 55120 | 20 69 6e 66 6f 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 | .info.t))...............(gptel-c |
| 55140 | 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 74 65 78 74 | url--stream-insert-response.text |
| 55160 | 20 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 69 6e | .info)))...........(setq.trackin |
| 55180 | 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 |
| 551a0 | 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 72 65 61 73 6f 6e | ng-marker))...........(if.reason |
| 551c0 | 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d | ing-marker...............(move-m |
| 551e0 | 61 72 6b 65 72 20 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d | arker.reasoning-marker.tracking- |
| 55200 | 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 | marker).............(plist-put.i |
| 55220 | 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 | nfo.:reasoning-marker........... |
| 55240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 | .............(copy-marker.tracki |
| 55260 | 6e 67 2d 6d 61 72 6b 65 72 20 6e 69 6c 29 29 29 29 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 54 6f 6f | ng-marker.nil))))))))....;;;.Too |
| 55280 | 6c 20 75 73 65 20 55 49 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 | l.use.UI.(defun.gptel--display-t |
| 552a0 | 6f 6f 6c 2d 63 61 6c 6c 73 20 28 74 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 20 26 6f 70 74 69 | ool-calls.(tool-calls.info.&opti |
| 552c0 | 6f 6e 61 6c 20 75 73 65 2d 6d 69 6e 69 62 75 66 66 65 72 29 0a 20 20 22 48 61 6e 64 6c 65 20 74 | onal.use-minibuffer)..."Handle.t |
| 552e0 | 6f 6f 6c 20 63 61 6c 6c 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a 0a 54 4f 4f 4c 2d 43 41 4c | ool.call.confirmation...TOOL-CAL |
| 55300 | 4c 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 74 6f 6f 6c 20 63 61 6c 6c | LS.should.be.a.list.of.tool.call |
| 55320 | 20 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 6f 72 20 72 65 73 75 6c 74 73 2c 0a 73 74 72 75 | .specifications.or.results,.stru |
| 55340 | 63 74 75 72 65 64 20 61 73 3a 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 63 61 6c 6c 62 61 63 | ctured.as:...((tool.args.callbac |
| 55360 | 6b 29 20 2e 2e 2e 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 73 70 65 63 69 66 69 63 61 | k)....)..for.tool.call.specifica |
| 55380 | 74 69 6f 6e 73 20 74 6f 20 62 65 20 63 6f 6e 66 69 72 6d 65 64 2e 20 20 49 4e 46 4f 20 63 6f 6e | tions.to.be.confirmed...INFO.con |
| 553a0 | 74 61 69 6e 73 20 74 68 65 0a 73 74 61 74 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 | tains.the.state.of.the.request.. |
| 553c0 | 20 54 6f 20 70 72 6f 6d 70 74 20 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 63 6f 6e 66 69 72 6d | .To.prompt.for.tool.call.confirm |
| 553e0 | 61 74 69 6f 6e 2c 20 75 73 65 0a 65 69 74 68 65 72 20 61 6e 20 6f 76 65 72 6c 61 79 20 69 6e 20 | ation,.use.either.an.overlay.in. |
| 55400 | 74 68 65 20 72 65 71 75 65 73 74 20 62 75 66 66 65 72 20 6f 72 20 74 68 65 20 6d 69 6e 69 62 75 | the.request.buffer.or.the.minibu |
| 55420 | 66 66 65 72 20 28 69 66 0a 55 53 45 2d 4d 49 4e 49 42 55 46 46 45 52 20 69 73 20 6e 6f 6e 2d 6e | ffer.(if.USE-MINIBUFFER.is.non-n |
| 55440 | 69 6c 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6c | il)."...(let*.((start-marker.(pl |
| 55460 | 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))........ |
| 55480 | 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | ..(tracking-marker.(plist-get.in |
| 554a0 | 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 70 65 | fo.:tracking-marker))).....;;.pe |
| 554c0 | 6e 64 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 6c 6f 6f 6b 20 6c 69 6b 65 20 28 28 74 6f 6f | nding.tool.calls.look.like.((too |
| 554e0 | 6c 20 63 61 6c 6c 62 61 63 6b 20 61 72 67 73 29 20 2e 2e 2e 29 0a 20 20 20 20 28 77 69 74 68 2d | l.callback.args)....).....(with- |
| 55500 | 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 20 3a | current-buffer.(plist-get.info.: |
| 55520 | 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 69 66 20 75 73 65 2d 6d 69 6e 69 62 75 66 66 65 72 | buffer).......(if.use-minibuffer |
| 55540 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 70 72 6f 6d 70 74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 | ............;prompt.for.confirma |
| 55560 | 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 | tion.from.the.minibuffer........ |
| 55580 | 20 20 20 28 6c 65 74 2a 20 28 28 6d 69 6e 69 62 75 66 66 65 72 2d 61 6c 6c 6f 77 2d 74 65 78 74 | ...(let*.((minibuffer-allow-text |
| 555a0 | 2d 70 72 6f 70 65 72 74 69 65 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -properties.t).................. |
| 555c0 | 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d | (backend-name.(gptel-backend-nam |
| 555e0 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 | e.(plist-get.info.:backend)))... |
| 55600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 20 28 66 6f 72 6d 61 74 20 22 | ...............(prompt.(format." |
| 55620 | 25 73 20 77 61 6e 74 73 20 74 6f 20 72 75 6e 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 | %s.wants.to.run.".backend-name)) |
| 55640 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 | ).............(map-y-or-n-p..... |
| 55660 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 2d 73 70 65 63 | .........(lambda.(tool-call-spec |
| 55680 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 20 | )................(concat.prompt. |
| 556a0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 28 63 61 | (propertize.(gptel-tool-name.(ca |
| 556c0 | 72 20 74 6f 6f 6c 2d 63 61 6c 6c 2d 73 70 65 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.tool-call-spec)).............. |
| 556e0 | 20 20 20 20 20 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 |
| 55700 | 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 0a 20 20 20 20 | ce.'font-lock-keyword-face)..... |
| 55720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3a 20 22 29 29 0a 20 20 20 20 20 20 | ...................":."))....... |
| 55740 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 63 73 29 20 28 67 70 74 65 6c 2d 2d 61 63 63 | .......(lambda.(tcs).(gptel--acc |
| 55760 | 65 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 6c 69 73 74 20 74 63 73 29 20 6e 69 6c 29 29 0a | ept-tool-calls.(list.tcs).nil)). |
| 55780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 27 28 22 74 6f 6f 6c 20 | .............tool-calls.'("tool. |
| 557a0 | 63 61 6c 6c 22 20 22 74 6f 6f 6c 20 63 61 6c 6c 73 22 20 22 72 75 6e 22 29 0a 20 20 20 20 20 20 | call"."tool.calls"."run")....... |
| 557c0 | 20 20 20 20 20 20 20 60 28 28 3f 69 20 2c 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 73 61 76 65 2d | .......`((?i.,(lambda.(_).(save- |
| 557e0 | 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | window-excursion................ |
| 55800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e | ..............(with-selected-win |
| 55820 | 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | dow............................. |
| 55840 | 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 2d 2d | .....(gptel--inspect-fsm.gptel-- |
| 55860 | 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 20 20 | fsm-last)....................... |
| 55880 | 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)) |
| 558a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 558c0 | 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 22 5e 3a | (when.(search-forward-regexp."^: |
| 558e0 | 74 6f 6f 6c 2d 75 73 65 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-use".nil.t)................ |
| 55900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 | ..................(forward-line. |
| 55920 | 30 29 20 28 68 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 | 0).(hl-line-highlight))......... |
| 55940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 6c 6f 63 61 | .......................(use-loca |
| 55960 | 6c 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-map........................... |
| 55980 | 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 20 | ......(make-composed-keymap..... |
| 559a0 | 20 20 20 20 20 20 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 | .............................(de |
| 559c0 | 66 69 6e 65 2d 6b 65 79 6d 61 70 20 22 71 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 | fine-keymap."q".(lambda.().(inte |
| 559e0 | 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ractive)........................ |
| 55a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 55a20 | 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | quit-window).................... |
| 55a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55a60 | 20 20 20 28 65 78 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 0a 20 20 20 20 20 | ...(exit-recursive-edit)))...... |
| 55a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 | ............................(cur |
| 55aa0 | 72 65 6e 74 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rent-local-map)))............... |
| 55ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 | .................(recursive-edit |
| 55ae0 | 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 6e 73 | ).nil)))...................."ins |
| 55b00 | 70 65 63 74 20 63 61 6c 6c 28 73 29 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 50 72 6f | pect.call(s)")))).........;;.Pro |
| 55b20 | 6d 70 74 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 65 20 63 68 | mpt.for.confirmation.from.the.ch |
| 55b40 | 61 74 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e | at.buffer.........(let*.((backen |
| 55b60 | 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 73 | d-name.(gptel-backend-name.(plis |
| 55b80 | 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 20 | t-get.info.:backend))).......... |
| 55ba0 | 20 20 20 20 20 20 28 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 | ......(actions-string........... |
| 55bc0 | 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 52 75 6e 20 74 | ......(concat.(propertize."Run.t |
| 55be0 | 6f 6f 6c 73 3a 20 22 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d | ools:.".'face.'font-lock-string- |
| 55c00 | 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | face).........................(p |
| 55c20 | 72 6f 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 63 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d | ropertize."C-c.C-c".'face.'help- |
| 55c40 | 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | key-binding).................... |
| 55c60 | 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2c 20 43 61 6e 63 65 6c 20 72 65 71 75 65 | .....(propertize.",.Cancel.reque |
| 55c80 | 73 74 3a 20 22 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 | st:.".'face.'font-lock-string-fa |
| 55ca0 | 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | ce).........................(pro |
| 55cc0 | 70 65 72 74 69 7a 65 20 22 43 2d 63 20 43 2d 6b 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 | pertize."C-c.C-k".'face.'help-ke |
| 55ce0 | 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y-binding)...................... |
| 55d00 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2c 20 49 6e 73 70 65 63 74 3a 20 22 20 27 66 61 | ...(propertize.",.Inspect:.".'fa |
| 55d20 | 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 20 20 20 | ce.'font-lock-string-face)...... |
| 55d40 | 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 20 22 | ...................(propertize." |
| 55d60 | 43 2d 63 20 43 2d 69 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 | C-c.C-i".'face.'help-key-binding |
| 55d80 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 66 69 72 6d 2d 73 74 72 69 | )))................(confirm-stri |
| 55da0 | 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 6f 6e 63 61 | ngs.................(list.(conca |
| 55dc0 | 74 20 22 5c 6e 22 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 | t."\n".actions-string........... |
| 55de0 | 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 65 20 | ....................(propertize. |
| 55e00 | 22 5c 6e 22 20 27 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d | "\n".'face.'(:inherit.font-lock- |
| 55e20 | 73 74 72 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | string-face..................... |
| 55e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55e60 | 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 64 | ............:underline.t.:extend |
| 55e80 | 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .t))............................ |
| 55ea0 | 20 20 20 28 66 6f 72 6d 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 25 73 20 77 61 6e | ...(format.(propertize."\n%s.wan |
| 55ec0 | 74 73 20 74 6f 20 72 75 6e 3a 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ts.to.run:\n"................... |
| 55ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55f00 | 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)... |
| 55f20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 55f40 | 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ....backend-name))))............ |
| 55f60 | 20 20 20 20 3b 3b 20 46 49 58 4d 45 28 74 6f 6f 6c 29 20 75 73 65 20 61 20 77 72 61 70 70 65 72 | ....;;.FIXME(tool).use.a.wrapper |
| 55f80 | 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 6d 61 6e 75 61 6c 20 74 65 78 74 2d 70 72 6f 70 65 72 | .instead.of.a.manual.text-proper |
| 55fa0 | 74 79 20 73 65 61 72 63 68 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 | ty.search,................;;.thi |
| 55fc0 | 73 20 69 73 20 66 72 61 67 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 2d | s.is.fragile................(ov- |
| 55fe0 | 73 74 61 72 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 | start.(save-excursion........... |
| 56000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 | .................(goto-char.star |
| 56020 | 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-marker)....................... |
| 56040 | 20 20 20 20 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 | .....(text-property-search-backw |
| 56060 | 61 72 64 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 | ard.'gptel.'response)........... |
| 56080 | 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 20 20 | .................(point)))...... |
| 560a0 | 20 20 20 20 20 20 20 20 20 20 28 6f 76 20 28 6f 72 20 28 63 64 72 2d 73 61 66 65 20 28 67 65 74 | ..........(ov.(or.(cdr-safe.(get |
| 560c0 | 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 20 20 20 | -char-property-and-overlay...... |
| 560e0 | 20 20 20 20 20 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 | .............................sta |
| 56100 | 72 74 2d 6d 61 72 6b 65 72 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 | rt-marker.'gptel-tool))......... |
| 56120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 6f 76 2d | ...............(make-overlay.ov- |
| 56140 | 73 74 61 72 74 20 28 6f 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d | start.(or.tracking-marker.start- |
| 56160 | 6d 61 72 6b 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 | marker)))))...........;;.If.the. |
| 56180 | 63 75 72 73 6f 72 20 69 73 20 61 74 20 74 68 65 20 6f 76 65 72 6c 61 79 2d 65 6e 64 2c 20 69 74 | cursor.is.at.the.overlay-end,.it |
| 561a0 | 20 65 6e 64 73 20 75 70 20 6f 75 74 73 69 64 65 2c 20 73 6f 20 6d 6f 76 65 20 69 74 20 62 61 63 | .ends.up.outside,.so.move.it.bac |
| 561c0 | 6b 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 | k...........(unless.tracking-mar |
| 561e0 | 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 70 6f 69 6e 74 29 | ker.............(when.(=.(point) |
| 56200 | 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 | .start-marker).(ignore-errors.(b |
| 56220 | 61 63 6b 77 61 72 64 2d 63 68 61 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 | ackward-char))))...........(pcas |
| 56240 | 65 2d 64 6f 6c 69 73 74 20 28 60 28 2c 74 6f 6f 6c 2d 73 70 65 63 20 2c 61 72 67 2d 76 61 6c 75 | e-dolist.(`(,tool-spec.,arg-valu |
| 56260 | 65 73 20 5f 29 20 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | es._).tool-calls).............(p |
| 56280 | 75 73 68 20 28 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 67 70 | ush.(gptel--format-tool-call.(gp |
| 562a0 | 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 2d 73 70 65 63 29 20 61 72 67 2d 76 61 6c | tel-tool-name.tool-spec).arg-val |
| 562c0 | 75 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 66 69 72 6d 2d 73 | ues)...................confirm-s |
| 562e0 | 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 63 61 74 | trings))...........(push.(concat |
| 56300 | 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 22 20 27 66 61 63 65 20 27 28 3a 69 6e 68 65 72 | .(propertize."\n".'face.'(:inher |
| 56320 | 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 | it.font-lock-string-face........ |
| 56340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 56360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 6e 64 65 72 6c 69 6e 65 20 74 20 | ...................:underline.t. |
| 56380 | 3a 65 78 74 65 6e 64 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e | :extend.t))).................con |
| 563a0 | 66 69 72 6d 2d 73 74 72 69 6e 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 63 | firm-strings)...........;;.Add.c |
| 563c0 | 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 6f 76 65 72 6c 61 | onfirmation.prompt.to.the.overla |
| 563e0 | 79 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 61 66 74 | y...........(overlay-put.ov.'aft |
| 56400 | 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er-string....................... |
| 56420 | 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 66 69 | .(apply.#'concat.(nreverse.confi |
| 56440 | 72 6d 2d 73 74 72 69 6e 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 | rm-strings)))...........(overlay |
| 56460 | 2d 70 75 74 20 6f 76 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 0a | -put.ov.'mouse-face.'highlight). |
| 56480 | 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 74 65 6c | ..........(overlay-put.ov.'gptel |
| 564a0 | 2d 74 6f 6f 6c 20 74 6f 6f 6c 2d 63 61 6c 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 | -tool.tool-calls)...........(ove |
| 564c0 | 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 20 20 20 20 | rlay-put.ov.'help-echo.......... |
| 564e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 54 6f 6f 6c 20 63 61 6c 6c | ..............(concat."Tool.call |
| 56500 | 28 73 29 20 72 65 71 75 65 73 74 65 64 3a 20 22 20 61 63 74 69 6f 6e 73 2d 73 74 72 69 6e 67 29 | (s).requested:.".actions-string) |
| 56520 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 6b 65 79 | )...........(overlay-put.ov.'key |
| 56540 | 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 69 | map........................(defi |
| 56560 | 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ne-keymap....................... |
| 56580 | 20 20 20 22 3c 6d 6f 75 73 65 2d 31 3e 22 20 23 27 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 | ..."<mouse-1>".#'gptel--dispatch |
| 565a0 | 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -tool-calls..................... |
| 565c0 | 20 20 20 20 20 22 43 2d 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 2d 61 63 63 65 70 74 2d 74 | ....."C-c.C-c".#'gptel--accept-t |
| 565e0 | 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-calls....................... |
| 56600 | 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f | ..."C-c.C-k".#'gptel--reject-too |
| 56620 | 6c 2d 63 61 6c 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-calls......................... |
| 56640 | 20 22 43 2d 63 20 43 2d 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."C-c.C-i"...................... |
| 56660 | 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 | ....(lambda.().(interactive).... |
| 56680 | 20 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 2d 73 65 | ........................(with-se |
| 566a0 | 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lected-window................... |
| 566c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 66 73 6d | .............(gptel--inspect-fsm |
| 566e0 | 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel--fsm-last)............... |
| 56700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 | ...............(goto-char.(point |
| 56720 | 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -min)).......................... |
| 56740 | 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 | ....(when.(search-forward-regexp |
| 56760 | 20 22 5e 3a 74 6f 6f 6c 2d 75 73 65 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ."^:tool-use".nil.t)............ |
| 56780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e | ....................(forward-lin |
| 567a0 | 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.0)............................ |
| 567c0 | 20 20 20 20 28 68 6c 2d 6c 69 6e 65 2d 68 69 67 68 6c 69 67 68 74 29 29 29 29 29 29 29 29 29 29 | ....(hl-line-highlight)))))))))) |
| 567e0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 | )..(defun.gptel--display-tool-re |
| 56800 | 73 75 6c 74 73 20 28 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 0a 20 20 22 49 6e 73 | sults.(tool-results.info)..."Ins |
| 56820 | 65 72 74 20 54 4f 4f 4c 2d 52 45 53 55 4c 54 53 20 69 6e 74 6f 20 62 75 66 66 65 72 2e 0a 0a 54 | ert.TOOL-RESULTS.into.buffer...T |
| 56840 | 4f 4f 4c 2d 52 45 53 55 4c 54 53 20 69 73 0a 0a 20 28 28 74 6f 6f 6c 20 61 72 67 73 20 72 65 73 | OOL-RESULTS.is...((tool.args.res |
| 56860 | 75 6c 74 29 20 2e 2e 2e 29 0a 0a 66 6f 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 | ult)....)..for.tool.call.results |
| 56880 | 2e 20 20 49 4e 46 4f 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 | ...INFO.contains.the.state.of.th |
| 568a0 | 65 20 72 65 71 75 65 73 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 72 74 2d 6d 61 72 6b | e.request."...(let*.((start-mark |
| 568c0 | 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 | er.(plist-get.info.:position)).. |
| 568e0 | 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........(tool-marker.(plist-get. |
| 56900 | 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 | info.:tool-marker))..........(tr |
| 56920 | 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 |
| 56940 | 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 | racking-marker))).....;;.Insert. |
| 56960 | 74 6f 6f 6c 20 72 65 73 75 6c 74 73 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 69 6e 63 | tool.results.....(when.gptel-inc |
| 56980 | 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 | lude-tool-results.......(with-cu |
| 569a0 | 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 | rrent-buffer.(marker-buffer.star |
| 569c0 | 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 | t-marker).........(cl-loop...... |
| 569e0 | 20 20 20 20 66 6f 72 20 28 74 6f 6f 6c 20 61 72 67 73 20 72 65 73 75 6c 74 29 20 69 6e 20 74 6f | ....for.(tool.args.result).in.to |
| 56a00 | 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 20 20 20 20 20 20 20 77 69 74 68 20 69 6e 63 6c 75 64 65 | ol-results..........with.include |
| 56a20 | 2d 6e 61 6d 65 73 20 3d 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 67 70 74 65 | -names.=..........(mapcar.#'gpte |
| 56a40 | 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c | l-tool-name..................(cl |
| 56a60 | 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e 6f 74 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 69 6e 63 6c | -remove-if-not.#'gptel-tool-incl |
| 56a80 | 75 64 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 | ude.(plist-get.info.:tools)))... |
| 56aa0 | 20 20 20 20 20 20 20 69 66 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d | .......if.(or.(eq.gptel-include- |
| 56ac0 | 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-results.t)................. |
| 56ae0 | 28 6d 65 6d 62 65 72 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 20 69 | (member.(gptel-tool-name.tool).i |
| 56b00 | 6e 63 6c 75 64 65 2d 6e 61 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 64 6f 20 28 66 75 6e 63 | nclude-names))..........do.(func |
| 56b20 | 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f | all..............(plist-get.info |
| 56b40 | 20 3a 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 | .:callback)..............(let*.( |
| 56b60 | 28 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 29 0a 20 20 | (name.(gptel-tool-name.tool))... |
| 56b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 70 61 72 61 74 6f 72 20 20 20 20 | ..................(separator.... |
| 56ba0 | 20 20 20 20 3b 53 65 70 61 72 61 74 65 20 66 72 6f 6d 20 72 65 73 70 6f 6e 73 65 20 70 72 65 66 | ....;Separate.from.response.pref |
| 56bc0 | 69 78 20 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ix.if.required.................. |
| 56be0 | 20 20 20 20 28 63 6f 6e 64 20 28 28 6e 6f 74 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 | ....(cond.((not.tracking-marker) |
| 56c00 | 0a 20 20 20 20 20 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 |
| 56c20 | 64 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.gptel-mode.................... |
| 56c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 73 75 66 66 69 | ..............(not.(string-suffi |
| 56c60 | 78 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | x-p............................. |
| 56c80 | 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d | ..........."\n".(gptel-response- |
| 56ca0 | 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | prefix-string)))................ |
| 56cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 20 20 20 20 20 20 20 20 | .................."\n"))........ |
| 56ce0 | 20 20 20 3b 73 74 61 72 74 20 6f 66 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | ...;start.of.response........... |
| 56d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 61 6e 64 20 74 6f 6f 6c | .................((not.(and.tool |
| 56d20 | 2d 6d 61 72 6b 65 72 20 3b 6e 6f 74 20 63 6f 6e 73 65 63 75 74 69 76 65 20 74 6f 6f 6c 20 72 65 | -marker.;not.consecutive.tool.re |
| 56d40 | 73 75 6c 74 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sult.blocks..................... |
| 56d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 74 72 61 63 6b 69 6e 67 2d 6d 61 | ..................(=.tracking-ma |
| 56d80 | 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | rker.tool-marker)))............. |
| 56da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 73 | ................gptel-response-s |
| 56dc0 | 65 70 61 72 61 74 6f 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eparator)))..................... |
| 56de0 | 28 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | (tool-use......................; |
| 56e00 | 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 61 6c 73 6f 20 63 68 65 63 6b 20 61 72 67 73 20 73 69 6e | ;.TODO(tool).also.check.args.sin |
| 56e20 | 63 65 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 6d 6f 72 65 20 74 68 61 6e 0a 20 20 20 20 20 20 | ce.there.may.be.more.than....... |
| 56e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 65 20 63 61 6c 6c 2f 72 65 73 75 6c | ...............;;.one.call/resul |
| 56e60 | 74 20 66 6f 72 20 74 68 65 20 73 61 6d 65 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t.for.the.same.tool............. |
| 56e80 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 | .........(cl-find-if............ |
| 56ea0 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 75 29 20 28 65 71 75 61 6c 20 28 | ...........(lambda.(tu).(equal.( |
| 56ec0 | 70 6c 69 73 74 2d 67 65 74 20 74 75 20 3a 6e 61 6d 65 29 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 | plist-get.tu.:name).name))...... |
| 56ee0 | 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 6f | .................(plist-get.info |
| 56f00 | 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:tool-use)))................... |
| 56f20 | 20 20 28 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 75 73 65 20 3a 69 64 29 29 0a | ..(id.(plist-get.tool-use.:id)). |
| 56f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 63 61 6c | ....................(display-cal |
| 56f60 | 6c 20 28 66 6f 72 6d 61 74 20 22 28 25 73 20 25 73 29 22 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 | l.(format."(%s.%s)".name........ |
| 56f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 56fa0 | 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 | ...(string-trim.(prin1-to-string |
| 56fc0 | 20 61 72 67 73 29 20 22 28 22 20 22 29 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .args)."(".")")))............... |
| 56fe0 | 20 20 20 20 20 20 28 63 61 6c 6c 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 60 28 3a | ......(call.(prin1-to-string.`(: |
| 57000 | 6e 61 6d 65 20 2c 6e 61 6d 65 20 3a 61 72 67 73 20 2c 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 | name.,name.:args.,args)))....... |
| 57020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c 20 28 74 | ..............(truncated-call.(t |
| 57040 | 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 20 20 | runcate-string-to-width......... |
| 57060 | 20 20 20 20 20 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 | .............................dis |
| 57080 | 70 6c 61 79 2d 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | play-call....................... |
| 570a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f 6f 72 20 28 2a 20 28 77 69 6e 64 6f 77 | ...............(floor.(*.(window |
| 570c0 | 2d 77 69 64 74 68 29 20 30 2e 36 29 29 20 30 20 6e 69 6c 20 22 20 2e 2e 2e 29 22 29 29 29 0a 20 | -width).0.6)).0.nil."....)"))).. |
| 570e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d | ..............(if.(derived-mode- |
| 57100 | 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).................... |
| 57120 | 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 70 61 | (concat.....................sepa |
| 57140 | 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 23 2b 62 65 67 | rator....................."#+beg |
| 57160 | 69 6e 5f 74 6f 6f 6c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 72 | in_tool.".....................tr |
| 57180 | 75 6e 63 61 74 65 64 2d 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uncated-call.................... |
| 571a0 | 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.................... |
| 571c0 | 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 22 20 63 61 6c 6c 20 22 5c 6e 5c 6e 22 20 28 6f 72 67 2d | ..(concat."\n".call."\n\n".(org- |
| 571e0 | 65 73 63 61 70 65 2d 63 6f 64 65 2d 69 6e 2d 73 74 72 69 6e 67 20 72 65 73 75 6c 74 29 29 0a 20 | escape-code-in-string.result)).. |
| 57200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f | ....................'gptel.`(too |
| 57220 | 6c 20 2e 20 2c 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c | l...,id))....................."\ |
| 57240 | 6e 23 2b 65 6e 64 5f 74 6f 6f 6c 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n#+end_tool\n")................. |
| 57260 | 20 3b 3b 20 54 4f 44 4f 28 74 6f 6f 6c 29 20 65 6c 73 65 20 62 72 61 6e 63 68 20 69 73 20 68 61 | .;;.TODO(tool).else.branch.is.ha |
| 57280 | 6e 64 6c 69 6e 67 20 61 6c 6c 20 66 72 6f 6e 74 2d 65 6e 64 73 20 61 73 20 6d 61 72 6b 64 6f 77 | ndling.all.front-ends.as.markdow |
| 572a0 | 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 74 20 6c 65 61 73 74 20 | n...................;;.At.least. |
| 572c0 | 65 73 63 61 70 65 20 6d 61 72 6b 64 6f 77 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | escape.markdown................. |
| 572e0 | 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 65 70 61 | ..(concat...................sepa |
| 57300 | 72 61 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 28 | rator...................;;.TODO( |
| 57320 | 74 6f 6f 6c 29 20 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 73 74 72 69 | tool).remove.properties.and.stri |
| 57340 | 70 20 69 6e 73 74 65 61 64 20 6f 66 20 69 67 6e 6f 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 | p.instead.of.ignoring........... |
| 57360 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 60 60 60 | ........(propertize.(format."``` |
| 57380 | 20 74 6f 6f 6c 20 25 73 22 20 74 72 75 6e 63 61 74 65 64 2d 63 61 6c 6c 29 20 27 67 70 74 65 6c | .tool.%s".truncated-call).'gptel |
| 573a0 | 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | .'ignore)...................(pro |
| 573c0 | 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f | pertize....................;;.TO |
| 573e0 | 44 4f 28 74 6f 6f 6c 29 20 65 73 63 61 70 65 20 6d 61 72 6b 64 6f 77 6e 20 69 6e 20 72 65 73 75 | DO(tool).escape.markdown.in.resu |
| 57400 | 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c | lt....................(concat."\ |
| 57420 | 6e 22 20 63 61 6c 6c 20 22 5c 6e 5c 6e 22 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 | n".call."\n\n".result).......... |
| 57440 | 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 60 28 74 6f 6f 6c 20 2e 20 2c 69 64 29 29 0a | ..........'gptel.`(tool...,id)). |
| 57460 | 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 20 | ..................;;.TODO(tool). |
| 57480 | 72 65 6d 6f 76 65 20 70 72 6f 70 65 72 74 69 65 73 20 61 6e 64 20 73 74 72 69 70 20 69 6e 73 74 | remove.properties.and.strip.inst |
| 574a0 | 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 20 | ead.of.ignoring................. |
| 574c0 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 60 60 60 5c 6e 22 20 27 67 70 74 65 6c 20 27 | ..(propertize."\n```\n".'gptel.' |
| 574e0 | 69 67 6e 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 0a 20 20 20 | ignore))))..............info.... |
| 57500 | 20 20 20 20 20 20 20 20 20 20 27 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 74 6f 6f 6c | ..........'raw)..........;;.tool |
| 57520 | 2d 72 65 73 75 6c 74 20 69 6e 73 65 72 74 69 6f 6e 20 68 61 73 20 75 70 64 61 74 65 64 20 74 68 | -result.insertion.has.updated.th |
| 57540 | 65 20 74 72 61 63 6b 69 6e 67 20 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 | e.tracking.marker..........(unle |
| 57560 | 73 73 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 | ss.tracking-marker............(s |
| 57580 | 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | etq.tracking-marker.(plist-get.i |
| 575a0 | 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 | nfo.:tracking-marker)))......... |
| 575c0 | 20 28 69 66 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(if.tool-marker................ |
| 575e0 | 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e | (move-marker.tool-marker.trackin |
| 57600 | 67 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 6f 6f | g-marker)..............(setq.too |
| 57620 | 6c 2d 6d 61 72 6b 65 72 20 28 63 6f 70 79 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d | l-marker.(copy-marker.tracking-m |
| 57640 | 61 72 6b 65 72 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | arker.nil))..............(plist- |
| 57660 | 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 6d 61 72 6b 65 72 20 74 6f 6f 6c 2d 6d 61 72 6b 65 | put.info.:tool-marker.tool-marke |
| 57680 | 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 | r))..........(when.(derived-mode |
| 576a0 | 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 20 3b 66 6f 6c 64 20 64 72 61 77 65 72 0a 20 20 20 20 20 | -p.'org-mode).;fold.drawer...... |
| 576c0 | 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 | ......(ignore-errors............ |
| 576e0 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(save-excursion............... |
| 57700 | 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).... |
| 57720 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 | ............(forward-line.-1)... |
| 57740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 | .............(when.(looking-at." |
| 57760 | 5e 23 5c 5c 2b 65 6e 64 5f 74 6f 6f 6c 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ^#\\+end_tool")................. |
| 57780 | 20 28 6f 72 67 2d 63 79 63 6c 65 29 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | .(org-cycle))))))))))..(defun.gp |
| 577a0 | 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 20 28 6e 61 6d 65 20 61 72 67 2d | tel--format-tool-call.(name.arg- |
| 577c0 | 76 61 6c 75 65 73 29 0a 20 20 22 46 6f 72 6d 61 74 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 20 66 6f | values)..."Format.a.tool.call.fo |
| 577e0 | 72 20 64 69 73 70 6c 61 79 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 4e 41 4d 45 20 61 | r.display.in.the.buffer...NAME.a |
| 57800 | 6e 64 20 41 52 47 2d 56 41 4c 55 45 53 20 61 72 65 20 74 68 65 20 6e 61 6d 65 20 61 6e 64 20 61 | nd.ARG-VALUES.are.the.name.and.a |
| 57820 | 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 2e 22 0a 20 20 28 66 6f 72 6d 61 | rguments.for.the.call."...(forma |
| 57840 | 74 20 22 28 25 73 20 25 73 29 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 | t."(%s.%s)\n"...........(propert |
| 57860 | 69 7a 65 20 6e 61 6d 65 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 | ize.name.'face.'font-lock-keywor |
| 57880 | 64 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 | d-face)...........(propertize... |
| 578a0 | 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 28 6c 61 6d 62 64 61 20 28 61 72 67 | .........(mapconcat.(lambda.(arg |
| 578c0 | 29 0a 20 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 20 | ).........................(cond. |
| 578e0 | 28 28 73 74 72 69 6e 67 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ((stringp.arg).................. |
| 57900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 0a 20 | ..............(prin1-to-string.. |
| 57920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 57940 | 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 | replace-regexp-in-string........ |
| 57960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 22 | .........................."\n"." |
| 57980 | e2 ae 90 22 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 0a 20 | ...".(truncate-string-to-width.. |
| 579a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 579c0 | 20 20 20 20 20 20 20 20 20 20 61 72 67 20 28 66 6c 6f 6f 72 20 28 77 69 6e 64 6f 77 2d 77 69 64 | ..........arg.(floor.(window-wid |
| 579e0 | 74 68 29 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | th).2).......................... |
| 57a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 29 0a | ..................nil.nil.t)))). |
| 57a20 | 20 20 20 20 20 20 20 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 |
| 57a40 | 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 | .(prin1-to-string.arg))))....... |
| 57a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 2d 76 61 6c 75 65 73 20 22 20 22 29 0a | ................arg-values."."). |
| 57a80 | 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 | ...........'face.'font-lock-cons |
| 57aa0 | 74 61 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 63 63 65 | tant-face)))..(defun.gptel--acce |
| 57ac0 | 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 73 70 6f 6e 73 | pt-tool-calls.(&optional.respons |
| 57ae0 | 65 20 6f 76 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 70 63 61 73 65 2d 6c 65 74 20 | e.ov)...(interactive.(pcase-let. |
| 57b00 | 28 28 60 28 2c 72 65 73 70 20 2e 20 2c 6f 29 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 | ((`(,resp...,o).(get-char-proper |
| 57b20 | 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ty-and-overlay.................. |
| 57b40 | 20 20 20 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 |
| 57b60 | 29 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).'gptel-tool)))................ |
| 57b80 | 20 20 28 6c 69 73 74 20 72 65 73 70 20 6f 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 | ..(list.resp.o)))...(gptel--upda |
| 57ba0 | 74 65 2d 73 74 61 74 75 73 20 22 20 43 61 6c 6c 69 6e 67 20 74 6f 6f 6c 2e 2e 2e 22 20 27 6d 6f | te-status.".Calling.tool...".'mo |
| 57bc0 | 64 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f | de-line-emphasis)...(message."Co |
| 57be0 | 6e 74 69 6e 75 69 6e 67 20 71 75 65 72 79 2e 2e 2e 22 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 | ntinuing.query...")...(cl-loop.f |
| 57c00 | 6f 72 20 28 74 6f 6f 6c 2d 73 70 65 63 20 61 72 67 2d 76 61 6c 75 65 73 20 70 72 6f 63 65 73 73 | or.(tool-spec.arg-values.process |
| 57c20 | 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 29 20 69 6e 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 | -tool-result).in.response....... |
| 57c40 | 20 20 20 20 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 67 70 74 65 6c 2d 74 6f | .....do............(if.(gptel-to |
| 57c60 | 6f 6c 2d 61 73 79 6e 63 20 74 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ol-async.tool-spec)............. |
| 57c80 | 20 20 20 28 61 70 70 6c 79 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 66 75 6e 63 74 69 6f 6e 20 74 | ...(apply.(gptel-tool-function.t |
| 57ca0 | 6f 6f 6c 2d 73 70 65 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-spec)....................... |
| 57cc0 | 70 72 6f 63 65 73 73 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 20 61 72 67 2d 76 61 6c 75 65 73 29 0a | process-tool-result.arg-values). |
| 57ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 73 75 6c 74 0a 20 20 20 20 20 | .............(let.((result...... |
| 57d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 65 | ...............(condition-case.e |
| 57d20 | 72 72 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | rrdata.........................( |
| 57d40 | 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 6f 6c 2d | apply.(gptel-tool-function.tool- |
| 57d60 | 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 20 20 20 | spec).arg-values)............... |
| 57d80 | 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 67 70 74 65 | ........(error.(mapconcat.#'gpte |
| 57da0 | 6c 2d 2d 74 6f 2d 73 74 72 69 6e 67 20 65 72 72 64 61 74 61 20 22 20 22 29 29 29 29 29 0a 20 20 | l--to-string.errdata.".")))))... |
| 57dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 72 6f 63 65 73 73 2d 74 6f | .............(funcall.process-to |
| 57de0 | 6f 6c 2d 72 65 73 75 6c 74 20 72 65 73 75 6c 74 29 29 29 29 0a 20 20 28 61 6e 64 20 28 6f 76 65 | ol-result.result))))...(and.(ove |
| 57e00 | 72 6c 61 79 70 20 6f 76 29 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 0a | rlayp.ov).(delete-overlay.ov))). |
| 57e20 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 | .(defun.gptel--reject-tool-calls |
| 57e40 | 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 72 65 73 70 6f 6e 73 65 20 6f 76 29 0a 20 20 28 69 6e 74 | .(&optional._response.ov)...(int |
| 57e60 | 65 72 61 63 74 69 76 65 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 20 2e 20 | eractive.(pcase-let.((`(,resp... |
| 57e80 | 2c 6f 29 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c | ,o).(get-char-property-and-overl |
| 57ea0 | 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ay.............................. |
| 57ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 74 6f 6f | ..............(point).'gptel-too |
| 57ee0 | 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 65 73 70 | l)))..................(list.resp |
| 57f00 | 20 6f 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 | .o)))...(gptel--update-status.". |
| 57f20 | 54 6f 6f 6c 73 20 63 61 6e 63 65 6c 6c 65 64 22 20 27 65 72 72 6f 72 29 0a 20 20 28 6d 65 73 73 | Tools.cancelled".'error)...(mess |
| 57f40 | 61 67 65 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 | age.(substitute-command-keys.... |
| 57f60 | 20 20 20 20 20 20 20 20 20 22 54 6f 6f 6c 20 63 61 6c 6c 73 20 63 61 6e 63 65 6c 65 64 2e 20 20 | ........."Tool.calls.canceled... |
| 57f80 | 5c 5c 5b 67 70 74 65 6c 2d 6d 65 6e 75 5d 20 74 6f 20 63 6f 6e 74 69 6e 75 65 20 74 68 65 6d 21 | \\[gptel-menu].to.continue.them! |
| 57fa0 | 22 29 29 0a 20 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 20 28 64 65 6c 65 74 65 | "))...(and.(overlayp.ov).(delete |
| 57fc0 | 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 69 | -overlay.ov)))..(defun.gptel--di |
| 57fe0 | 73 70 61 74 63 68 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 63 68 6f 69 63 65 29 0a 20 20 28 69 6e | spatch-tool-calls.(choice)...(in |
| 58000 | 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 28 6c 65 74 20 28 28 63 68 | teractive....(list.....(let.((ch |
| 58020 | 6f 69 63 65 73 20 27 28 28 3f 79 20 22 79 65 73 22 29 20 28 3f 6e 20 22 64 6f 20 6e 6f 74 68 69 | oices.'((?y."yes").(?n."do.nothi |
| 58040 | 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 6b 20 22 63 | ng")......................(?k."c |
| 58060 | 61 6e 63 65 6c 20 72 65 71 75 65 73 74 22 29 20 28 3f 69 20 22 69 6e 73 70 65 63 74 20 63 61 6c | ancel.request").(?i."inspect.cal |
| 58080 | 6c 28 73 29 22 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 61 64 2d 6d 75 6c 74 69 70 6c 65 2d 63 | l(s)")))).......(read-multiple-c |
| 580a0 | 68 6f 69 63 65 20 22 52 75 6e 20 74 6f 6f 6c 20 63 61 6c 6c 73 3f 20 22 20 63 68 6f 69 63 65 73 | hoice."Run.tool.calls?.".choices |
| 580c0 | 29 29 29 29 0a 20 20 28 70 63 61 73 65 20 28 63 61 72 20 63 68 6f 69 63 65 29 0a 20 20 20 20 28 | ))))...(pcase.(car.choice).....( |
| 580e0 | 3f 79 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 2d | ?y.(call-interactively.#'gptel-- |
| 58100 | 61 63 63 65 70 74 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 6b 20 28 63 61 6c | accept-tool-calls)).....(?k.(cal |
| 58120 | 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 2d 72 65 6a 65 63 74 2d | l-interactively.#'gptel--reject- |
| 58140 | 74 6f 6f 6c 2d 63 61 6c 6c 73 29 29 0a 20 20 20 20 28 3f 69 20 28 67 70 74 65 6c 2d 2d 69 6e 73 | tool-calls)).....(?i.(gptel--ins |
| 58160 | 70 65 63 74 2d 66 73 6d 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 29 29 29 29 0a 0a 0c 0a | pect-fsm.gptel--fsm-last)))).... |
| 58180 | 3b 3b 3b 20 50 72 65 73 65 74 73 0a 3b 3b 3b 3b 20 50 72 65 73 65 74 73 20 69 6d 70 6c 65 6d 65 | ;;;.Presets.;;;;.Presets.impleme |
| 581a0 | 6e 74 61 74 69 6f 6e 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 | ntation.(defvar.gptel--known-pre |
| 581c0 | 73 65 74 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 70 72 65 73 65 74 73 20 66 6f 72 | sets.nil..."Alist.of.presets.for |
| 581e0 | 20 67 70 74 65 6c 2e 0a 0a 45 61 63 68 20 65 6e 74 72 79 20 6d 61 70 73 20 61 20 70 72 65 73 65 | .gptel...Each.entry.maps.a.prese |
| 58200 | 74 20 6e 61 6d 65 20 28 61 20 73 79 6d 62 6f 6c 29 20 74 6f 20 61 20 70 6c 69 73 74 20 6f 66 0a | t.name.(a.symbol).to.a.plist.of. |
| 58220 | 73 70 65 63 69 66 69 63 61 74 69 6f 6e 73 20 28 73 65 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d | specifications.(see.`gptel-make- |
| 58240 | 70 72 65 73 65 74 27 29 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 | preset').")..(defun.gptel-make-p |
| 58260 | 72 65 73 65 74 20 28 6e 61 6d 65 20 26 72 65 73 74 20 6b 65 79 73 29 0a 20 20 22 44 65 66 69 6e | reset.(name.&rest.keys)..."Defin |
| 58280 | 65 20 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 41 20 70 | e.a.gptel.preset.with.NAME...A.p |
| 582a0 | 72 65 73 65 74 20 69 73 20 61 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f 66 20 67 70 74 65 6c 20 | reset.is.a.combination.of.gptel. |
| 582c0 | 6f 70 74 69 6f 6e 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 70 70 6c 69 65 64 20 61 | options.intended.to.be.applied.a |
| 582e0 | 6e 64 0a 75 73 65 64 20 74 6f 67 65 74 68 65 72 2e 20 20 50 72 65 73 65 74 73 20 63 61 6e 20 6d | nd.used.together...Presets.can.m |
| 58300 | 61 6b 65 20 69 74 20 6c 65 73 73 20 74 65 64 69 6f 75 73 20 74 6f 20 63 68 61 6e 67 65 20 67 70 | ake.it.less.tedious.to.change.gp |
| 58320 | 74 65 6c 0a 73 65 74 74 69 6e 67 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e 0a 0a 54 79 70 69 63 61 | tel.settings.on.the.fly...Typica |
| 58340 | 6c 6c 79 20 74 68 69 73 20 77 69 6c 6c 20 69 6e 63 6c 75 64 65 20 61 20 6d 6f 64 65 6c 2c 20 62 | lly.this.will.include.a.model,.b |
| 58360 | 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 70 65 72 68 61 | ackend,.system.message.and.perha |
| 58380 | 70 73 0a 73 6f 6d 65 20 74 6f 6f 6c 73 2c 20 62 75 74 20 61 6e 79 20 73 65 74 20 6f 66 20 67 70 | ps.some.tools,.but.any.set.of.gp |
| 583a0 | 74 65 6c 20 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 73 65 74 20 74 68 69 73 20 77 61 79 2e | tel.options.can.be.set.this.way. |
| 583c0 | 0a 0a 4e 41 4d 45 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e 20 20 4b 45 59 53 20 69 | ..NAME.must.be.a.symbol...KEYS.i |
| 583e0 | 73 20 61 20 70 6c 69 73 74 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 6f | s.a.plist.corresponding.to.the.o |
| 58400 | 70 74 69 6f 6e 73 0a 62 65 69 6e 67 20 73 65 74 2e 20 20 41 6c 6c 20 4b 45 59 53 20 61 72 65 20 | ptions.being.set...All.KEYS.are. |
| 58420 | 6f 70 74 69 6f 6e 61 6c 2e 0a 0a 52 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 3a 0a 0a 44 45 53 | optional...Recognized.keys:..DES |
| 58440 | 43 52 49 50 54 49 4f 4e 20 69 73 20 61 20 64 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 74 68 65 | CRIPTION.is.a.description.of.the |
| 58460 | 20 70 72 65 73 65 74 2c 20 75 73 65 64 20 77 68 65 6e 20 73 65 6c 65 63 74 69 6e 67 20 61 0a 70 | .preset,.used.when.selecting.a.p |
| 58480 | 72 65 73 65 74 2e 0a 0a 50 41 52 45 4e 54 53 20 69 73 20 61 20 70 72 65 73 65 74 20 6e 61 6d 65 | reset...PARENTS.is.a.preset.name |
| 584a0 | 20 28 6f 72 20 6c 69 73 74 20 6f 66 20 70 72 65 73 65 74 20 6e 61 6d 65 73 29 20 74 6f 20 61 70 | .(or.list.of.preset.names).to.ap |
| 584c0 | 70 6c 79 20 62 65 66 6f 72 65 20 74 68 69 73 0a 6f 6e 65 2e 0a 0a 50 52 45 20 61 6e 64 20 50 4f | ply.before.this.one...PRE.and.PO |
| 584e0 | 53 54 20 61 72 65 20 66 75 6e 63 74 69 6f 6e 73 20 74 6f 20 72 75 6e 20 62 65 66 6f 72 65 20 61 | ST.are.functions.to.run.before.a |
| 58500 | 6e 64 20 61 66 74 65 72 20 74 68 65 20 70 72 65 73 65 74 20 69 73 0a 61 70 70 6c 69 65 64 2e 20 | nd.after.the.preset.is.applied.. |
| 58520 | 20 54 68 65 79 20 74 61 6b 65 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 42 41 43 4b 45 4e | .They.take.no.arguments...BACKEN |
| 58540 | 44 20 69 73 20 74 68 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 74 6f 20 73 65 74 2c 20 6f | D.is.the.gptel-backend.to.set,.o |
| 58560 | 72 20 69 74 73 20 6e 61 6d 65 20 28 6c 69 6b 65 20 5c 22 43 68 61 74 47 50 54 5c 22 29 2e 0a 0a | r.its.name.(like.\"ChatGPT\")... |
| 58580 | 4d 4f 44 45 4c 20 69 73 20 74 68 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 2e 0a 0a 53 59 53 54 45 | MODEL.is.the.gptel-model...SYSTE |
| 585a0 | 4d 20 69 73 20 74 68 65 20 64 69 72 65 63 74 69 76 65 2e 20 49 74 20 63 61 6e 20 62 65 0a 2d 20 | M.is.the.directive..It.can.be.-. |
| 585c0 | 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 61 20 73 74 72 69 6e 67 29 2c 0a 2d | the.system.message.(a.string),.- |
| 585e0 | 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 28 61 20 63 6f 6e 76 65 72 73 61 74 69 | .a.list.of.strings.(a.conversati |
| 58600 | 6f 6e 20 74 65 6d 70 6c 61 74 65 29 0a 2d 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 28 64 79 | on.template).-.or.a.function.(dy |
| 58620 | 6e 61 6d 69 63 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 2e 0a 2d 20 49 74 20 63 61 6e 20 | namic.system.message)..-.It.can. |
| 58640 | 61 6c 73 6f 20 62 65 20 61 20 73 79 6d 62 6f 6c 20 6e 61 6d 69 6e 67 20 61 20 64 69 72 65 63 74 | also.be.a.symbol.naming.a.direct |
| 58660 | 69 76 65 20 69 6e 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 0a 0a 54 4f 4f 4c | ive.in.`gptel-directives'...TOOL |
| 58680 | 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 67 70 74 65 6c 20 74 6f 6f 6c 73 20 6f 72 20 74 6f | S.is.a.list.of.gptel.tools.or.to |
| 586a0 | 6f 6c 20 6e 61 6d 65 73 2c 20 6c 69 6b 65 0a 5c 5c 3d 27 28 5c 22 72 65 61 64 5f 75 72 6c 5c 22 | ol.names,.like.\\='(\"read_url\" |
| 586c0 | 20 5c 22 72 65 61 64 5f 62 75 66 66 65 72 5c 22 20 2e 2e 2e 29 0a 0a 52 65 63 6f 67 6e 69 7a 65 | .\"read_buffer\"....)..Recognize |
| 586e0 | 64 20 6b 65 79 73 20 61 72 65 20 6e 6f 74 20 6c 69 6d 69 74 65 64 20 74 6f 20 74 68 65 20 61 62 | d.keys.are.not.limited.to.the.ab |
| 58700 | 6f 76 65 2e 20 20 41 6e 79 20 6f 74 68 65 72 20 6b 65 79 20 28 6c 69 6b 65 0a 60 3a 66 6f 6f 27 | ove...Any.other.key.(like.`:foo' |
| 58720 | 29 20 63 6f 72 72 65 73 70 6f 6e 64 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 65 69 | ).corresponds.to.the.value.of.ei |
| 58740 | 74 68 65 72 20 60 67 70 74 65 6c 2d 66 6f 6f 27 20 28 70 72 65 66 65 72 72 65 64 29 20 6f 72 0a | ther.`gptel-foo'.(preferred).or. |
| 58760 | 60 67 70 74 65 6c 2d 2d 66 6f 6f 27 2e 0a 2d 20 53 6f 20 54 4f 4f 4c 53 20 63 6f 72 72 65 73 70 | `gptel--foo'..-.So.TOOLS.corresp |
| 58780 | 6f 6e 64 73 20 74 6f 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2c 0a 2d 20 43 4f 4e 46 49 52 4d | onds.to.`gptel-tools',.-.CONFIRM |
| 587a0 | 2d 54 4f 4f 4c 2d 43 41 4c 4c 53 20 74 6f 20 60 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f | -TOOL-CALLS.to.`gptel-confirm-to |
| 587c0 | 6f 6c 2d 63 61 6c 6c 73 27 2c 0a 2d 20 54 45 4d 50 45 52 41 54 55 52 45 20 74 6f 20 60 67 70 74 | ol-calls',.-.TEMPERATURE.to.`gpt |
| 587e0 | 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 27 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 53 65 65 20 67 | el-temperature'.and.so.on..See.g |
| 58800 | 70 74 65 6c 27 73 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 73 20 66 6f 72 | ptel's.customization.options.for |
| 58820 | 20 61 6c 6c 20 61 76 61 69 6c 61 62 6c 65 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 64 65 63 | .all.available.settings."...(dec |
| 58840 | 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 20 | lare.(indent.1))...(if-let*.((p. |
| 58860 | 28 61 73 73 6f 63 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 | (assoc.name.gptel--known-presets |
| 58880 | 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 63 64 72 20 70 20 6b 65 79 73 29 0a 20 20 20 20 28 73 | ))).......(setcdr.p.keys).....(s |
| 588a0 | 65 74 71 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 20 20 20 20 20 20 20 | etq.gptel--known-presets........ |
| 588c0 | 20 20 3b 41 64 64 20 61 74 20 65 6e 64 20 6f 66 20 70 72 65 73 65 74 73 20 66 6f 72 20 6d 65 6e | ..;Add.at.end.of.presets.for.men |
| 588e0 | 75 20 6f 72 64 65 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 67 70 74 65 | u.ordering...........(nconc.gpte |
| 58900 | 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 28 6c 69 73 74 20 28 63 6f 6e 73 20 6e 61 6d | l--known-presets.(list.(cons.nam |
| 58920 | 65 20 6b 65 79 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 67 65 74 2d 70 | e.keys))))))..(defun.gptel-get-p |
| 58940 | 72 65 73 65 74 20 28 6e 61 6d 65 29 0a 20 20 22 47 65 74 20 74 68 65 20 67 70 74 65 6c 20 70 72 | reset.(name)..."Get.the.gptel.pr |
| 58960 | 65 73 65 74 20 73 70 65 63 20 77 69 74 68 20 4e 41 4d 45 2e 22 0a 20 20 28 61 6c 69 73 74 2d 67 | eset.spec.with.NAME."...(alist-g |
| 58980 | 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 20 6e 69 6c | et.name.gptel--known-presets.nil |
| 589a0 | 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 | .nil.#'equal))..(defun.gptel--sa |
| 589c0 | 76 65 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 73 63 72 69 | ve-preset.(name.&optional.descri |
| 589e0 | 70 74 69 6f 6e 29 0a 20 20 22 53 61 76 65 20 67 70 74 65 6c 27 73 20 63 75 72 72 65 6e 74 20 73 | ption)..."Save.gptel's.current.s |
| 58a00 | 65 74 74 69 6e 67 73 20 61 73 20 61 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a | ettings.as.a.preset.with.NAME... |
| 58a20 | 4e 41 4d 45 20 6d 75 73 74 20 62 65 20 61 20 73 79 6d 62 6f 6c 2e 20 20 44 45 53 43 52 49 50 54 | NAME.must.be.a.symbol...DESCRIPT |
| 58a40 | 49 4f 4e 20 69 73 20 61 64 64 65 64 20 69 66 20 70 72 6f 76 69 64 65 64 2e 20 20 49 6e 20 61 64 | ION.is.added.if.provided...In.ad |
| 58a60 | 64 69 74 69 6f 6e 0a 74 6f 20 72 65 67 69 73 74 65 72 69 6e 67 20 74 68 65 20 70 72 65 73 65 74 | dition.to.registering.the.preset |
| 58a80 | 2c 20 65 6c 69 73 70 20 63 6f 64 65 20 74 6f 20 64 6f 20 74 68 65 20 73 61 6d 65 20 69 73 20 63 | ,.elisp.code.to.do.the.same.is.c |
| 58aa0 | 6f 70 69 65 64 20 74 6f 20 74 68 65 0a 6b 69 6c 6c 2d 72 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 | opied.to.the.kill-ring."...(inte |
| 58ac0 | 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 69 6e 74 65 72 6e 20 28 63 6f 6d 70 6c 65 | ractive....(list.(intern.(comple |
| 58ae0 | 74 69 6e 67 2d 72 65 61 64 20 22 53 61 76 65 20 67 70 74 65 6c 20 73 65 74 74 69 6e 67 73 20 74 | ting-read."Save.gptel.settings.t |
| 58b00 | 6f 20 28 65 78 69 73 74 69 6e 67 20 6f 72 20 6e 65 77 29 20 70 72 65 73 65 74 3a 20 22 0a 20 20 | o.(existing.or.new).preset:."... |
| 58b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 58b40 | 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 | gptel--known-presets)).......... |
| 58b60 | 28 72 65 61 64 2d 73 74 72 69 6e 67 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 28 6f 70 74 69 6f | (read-string."Description.(optio |
| 58b80 | 6e 61 6c 29 3a 20 22 29 29 29 0a 20 20 28 6c 65 74 20 28 28 70 72 65 73 65 74 2d 63 6f 64 65 0a | nal):.")))...(let.((preset-code. |
| 58ba0 | 20 20 20 20 20 20 20 20 20 60 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 74 20 27 2c 6e | .........`(gptel-make-preset.',n |
| 58bc0 | 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 2c 28 77 68 | ame............:description.,(wh |
| 58be0 | 65 6e 20 28 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | en.(and.description............. |
| 58c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 | ....................(not.(string |
| 58c20 | 2d 62 6c 61 6e 6b 2d 70 20 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 | -blank-p.description)))......... |
| 58c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 | ..................description).. |
| 58c60 | 20 20 20 20 20 20 20 20 20 20 3a 62 61 63 6b 65 6e 64 20 2c 28 67 70 74 65 6c 2d 62 61 63 6b 65 | ..........:backend.,(gptel-backe |
| 58c80 | 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 | nd-name.gptel-backend).......... |
| 58ca0 | 20 20 3a 6d 6f 64 65 6c 20 27 2c 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 | ..:model.',gptel-model.......... |
| 58cc0 | 20 20 3a 73 79 73 74 65 6d 20 2c 28 69 66 2d 6c 65 74 2a 20 28 28 64 69 72 65 63 74 69 76 65 20 | ..:system.,(if-let*.((directive. |
| 58ce0 | 28 63 61 72 2d 73 61 66 65 20 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d | (car-safe.(rassoc.gptel--system- |
| 58d00 | 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......................... |
| 58d20 | 20 20 20 20 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 |
| 58d40 | 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-directives))))................ |
| 58d60 | 20 20 20 20 20 20 20 20 20 20 60 27 2c 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 | ..........`',directive.......... |
| 58d80 | 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 |
| 58da0 | 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 73 20 27 2c 28 6d 61 70 63 61 72 20 | ge)............:tools.',(mapcar. |
| 58dc0 | 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a 20 | #'gptel-tool-name.gptel-tools).. |
| 58de0 | 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 67 70 74 65 6c 2d 73 74 72 65 61 6d 0a | ..........:stream.,gptel-stream. |
| 58e00 | 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 2c 67 70 74 65 6c 2d 74 | ...........:temperature.,gptel-t |
| 58e20 | 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 2d 74 6f 6b 65 6e | emperature............:max-token |
| 58e40 | 73 20 2c 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 3a | s.,gptel-max-tokens............: |
| 58e60 | 75 73 65 2d 63 6f 6e 74 65 78 74 20 27 2c 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 78 74 0a | use-context.',gptel-use-context. |
| 58e80 | 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 63 6b 2d 6d 65 64 69 61 20 2c 67 70 74 65 6c 2d 74 | ...........:track-media.,gptel-t |
| 58ea0 | 72 61 63 6b 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 63 6c 75 64 65 2d 72 | rack-media............:include-r |
| 58ec0 | 65 61 73 6f 6e 69 6e 67 20 2c 28 6c 65 74 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 67 70 74 65 6c | easoning.,(let.((reasoning.gptel |
| 58ee0 | 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -include-reasoning))............ |
| 58f00 | 20 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 20 | ........................(if.(eq. |
| 58f20 | 72 65 61 73 6f 6e 69 6e 67 20 27 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | reasoning.'ignore).............. |
| 58f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 27 69 67 6e 6f | ..........................''igno |
| 58f60 | 72 65 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 29 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 | re.reasoning))))).....(kill-new. |
| 58f80 | 28 70 70 2d 74 6f 2d 73 74 72 69 6e 67 20 70 72 65 73 65 74 2d 63 6f 64 65 29 29 0a 20 20 20 20 | (pp-to-string.preset-code))..... |
| 58fa0 | 28 65 76 61 6c 20 70 72 65 73 65 74 2d 63 6f 64 65 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 | (eval.preset-code).....(message. |
| 58fc0 | 22 50 72 65 73 65 74 20 25 73 20 73 61 76 65 64 2e 20 28 4c 69 73 70 20 65 78 70 72 65 73 73 69 | "Preset.%s.saved..(Lisp.expressi |
| 58fe0 | 6f 6e 20 66 6f 72 20 70 72 65 73 65 74 20 73 61 76 65 64 20 74 6f 20 6b 69 6c 6c 2d 72 69 6e 67 | on.for.preset.saved.to.kill-ring |
| 59000 | 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 73 79 6d | )"..............(propertize.(sym |
| 59020 | 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 27 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 | bol-name.name).'face.'highlight) |
| 59040 | 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 | )))..(defvar.gptel--rewrite-dire |
| 59060 | 63 74 69 76 65 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 | ctive).(defun.gptel--apply-prese |
| 59080 | 74 20 28 70 72 65 73 65 74 20 26 6f 70 74 69 6f 6e 61 6c 20 73 65 74 74 65 72 29 0a 20 20 22 41 | t.(preset.&optional.setter)..."A |
| 590a0 | 70 70 6c 79 20 67 70 74 65 6c 20 50 52 45 53 45 54 20 77 69 74 68 20 53 45 54 54 45 52 2e 0a 0a | pply.gptel.PRESET.with.SETTER... |
| 590c0 | 50 52 45 53 45 54 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 70 72 65 73 65 74 2c 20 | PRESET.is.the.name.of.a.preset,. |
| 590e0 | 6f 72 20 61 20 73 70 65 63 20 28 70 6c 69 73 74 29 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 | or.a.spec.(plist).of.the.form..( |
| 59100 | 3a 4b 45 59 31 20 56 41 4c 31 20 3a 4b 45 59 32 20 56 41 4c 32 20 2e 2e 2e 29 2e 0a 0a 53 45 54 | :KEY1.VAL1.:KEY2.VAL2....)...SET |
| 59120 | 54 45 52 20 69 73 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 64 20 74 6f 20 73 65 74 20 | TER.is.the.function.used.to.set. |
| 59140 | 74 68 65 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 2e 20 20 49 74 20 6d 75 73 74 20 61 63 63 65 | the.gptel.options...It.must.acce |
| 59160 | 70 74 0a 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 20 73 79 6d 62 6f 6c 20 62 65 69 | pt.two.arguments,.the.symbol.bei |
| 59180 | 6e 67 20 73 65 74 20 61 6e 64 20 74 68 65 20 76 61 6c 75 65 20 74 6f 20 73 65 74 20 69 74 20 74 | ng.set.and.the.value.to.set.it.t |
| 591a0 | 6f 2e 20 20 49 74 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 60 73 65 74 27 2c 20 61 6e 64 20 63 61 | o...It.defaults.to.`set',.and.ca |
| 591c0 | 6e 20 62 65 20 73 65 74 20 74 6f 20 61 20 64 69 66 66 65 72 65 6e 74 20 66 75 6e 63 74 69 6f 6e | n.be.set.to.a.different.function |
| 591e0 | 20 74 6f 20 28 66 6f 72 0a 65 78 61 6d 70 6c 65 29 20 61 70 70 6c 79 20 74 68 65 20 70 72 65 73 | .to.(for.example).apply.the.pres |
| 59200 | 65 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 22 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d | et.buffer-locally."...(when.(mem |
| 59220 | 71 20 28 74 79 70 65 2d 6f 66 20 70 72 65 73 65 74 29 20 27 28 73 74 72 69 6e 67 20 73 79 6d 62 | q.(type-of.preset).'(string.symb |
| 59240 | 6f 6c 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 70 65 63 20 28 6f 72 20 28 67 70 74 65 6c 2d | ol)).....(let.((spec.(or.(gptel- |
| 59260 | 67 65 74 2d 70 72 65 73 65 74 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | get-preset.preset).............. |
| 59280 | 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 | .......(user-error."gptel.preset |
| 592a0 | 20 5c 22 25 73 5c 22 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 70 72 65 73 65 74 2e 22 0a 20 20 | .\"%s\":.Cannot.find.preset."... |
| 592c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 | ..............................pr |
| 592e0 | 65 73 65 74 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 73 65 74 20 73 70 65 63 | eset)))).......(setq.preset.spec |
| 59300 | 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 73 65 74 74 65 72 20 28 73 65 74 71 20 73 65 74 74 65 | )))...(unless.setter.(setq.sette |
| 59320 | 72 20 23 27 73 65 74 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 66 75 6e 63 20 28 70 | r.#'set))...(when-let*.((func.(p |
| 59340 | 6c 69 73 74 2d 67 65 74 20 70 72 65 73 65 74 20 3a 70 72 65 29 29 29 20 28 66 75 6e 63 61 6c 6c | list-get.preset.:pre))).(funcall |
| 59360 | 20 66 75 6e 63 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 61 72 65 6e 74 73 20 28 | .func))...(when-let*.((parents.( |
| 59380 | 70 6c 69 73 74 2d 67 65 74 20 70 72 65 73 65 74 20 3a 70 61 72 65 6e 74 73 29 29 29 0a 20 20 20 | plist-get.preset.:parents))).... |
| 593a0 | 20 28 6d 61 70 63 20 23 27 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 28 65 6e | .(mapc.#'gptel--apply-preset.(en |
| 593c0 | 73 75 72 65 2d 6c 69 73 74 20 70 61 72 65 6e 74 73 29 29 29 0a 20 20 28 6d 61 70 2d 64 6f 0a 20 | sure-list.parents)))...(map-do.. |
| 593e0 | 20 20 28 6c 61 6d 62 64 61 20 28 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 20 28 70 63 61 73 65 20 | ..(lambda.(key.val)......(pcase. |
| 59400 | 6b 65 79 0a 20 20 20 20 20 20 20 28 28 6f 72 20 3a 70 61 72 65 6e 74 73 20 3a 64 65 73 63 72 69 | key........((or.:parents.:descri |
| 59420 | 70 74 69 6f 6e 20 3a 70 72 65 20 3a 70 6f 73 74 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 28 | ption.:pre.:post).nil)........(( |
| 59440 | 6f 72 20 3a 73 79 73 74 65 6d 20 3a 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 3a 72 65 77 72 | or.:system.:system-message.:rewr |
| 59460 | 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 | ite-directive).........(let.((sy |
| 59480 | 6d 20 28 69 66 20 28 65 71 20 6b 65 79 20 3a 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 | m.(if.(eq.key.:rewrite-directive |
| 594a0 | 29 0a 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 2d | )........................'gptel- |
| 594c0 | 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 | -rewrite-directive.'gptel--syste |
| 594e0 | 6d 2d 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 | m-message)))...........(if.(and. |
| 59500 | 28 73 79 6d 62 6f 6c 70 20 76 61 6c 29 20 28 6e 6f 74 20 28 66 75 6e 63 74 69 6f 6e 70 20 76 61 | (symbolp.val).(not.(functionp.va |
| 59520 | 6c 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 28 28 64 69 | l)))...............(if-let*.((di |
| 59540 | 72 65 63 74 69 76 65 20 28 61 6c 69 73 74 2d 67 65 74 20 76 61 6c 20 67 70 74 65 6c 2d 64 69 72 | rective.(alist-get.val.gptel-dir |
| 59560 | 65 63 74 69 76 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 | ectives)))...................(fu |
| 59580 | 6e 63 61 6c 6c 20 73 65 74 74 65 72 20 73 79 6d 20 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 | ncall.setter.sym.directive)..... |
| 595a0 | 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 67 70 74 65 6c 20 70 | ............(user-error."gptel.p |
| 595c0 | 72 65 73 65 74 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 64 69 72 65 63 74 69 76 65 20 25 73 22 | reset:.Cannot.find.directive.%s" |
| 595e0 | 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 74 | .val)).............(funcall.sett |
| 59600 | 65 72 20 73 79 6d 20 76 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 28 3a 62 61 63 6b 65 6e 64 0a | er.sym.val))))........(:backend. |
| 59620 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 6c 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 | ........(setq.val.(cl-etypecase. |
| 59640 | 76 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 | val.....................(gptel-b |
| 59660 | 61 63 6b 65 6e 64 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ackend.val)..................... |
| 59680 | 28 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 76 61 6c 29 29 | (string.(gptel-get-backend.val)) |
| 596a0 | 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 76 61 6c 0a 20 20 20 20 20 20 20 20 20 | )).........(unless.val.......... |
| 596c0 | 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 3a 20 43 61 6e 6e | .(user-error."gptel.preset:.Cann |
| 596e0 | 6f 74 20 66 69 6e 64 20 62 61 63 6b 65 6e 64 20 25 73 2e 22 20 76 61 6c 29 29 0a 20 20 20 20 20 | ot.find.backend.%s.".val))...... |
| 59700 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 74 65 72 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e | ...(funcall.setter.'gptel-backen |
| 59720 | 64 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 28 3a 74 6f 6f 6c 73 20 20 20 20 20 20 20 20 20 20 | d.val))........(:tools.......... |
| 59740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 54 45 4d 50 20 43 6f 6e 66 69 72 6d 20 74 68 | ................;TEMP.Confirm.th |
| 59760 | 69 73 20 60 3a 61 70 70 65 6e 64 27 20 63 6f 6e 76 65 6e 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 | is.`:append'.convention......... |
| 59780 | 28 6c 65 74 2a 20 28 28 61 70 70 65 6e 64 20 28 77 68 65 6e 20 28 65 71 20 28 63 61 72 2d 73 61 | (let*.((append.(when.(eq.(car-sa |
| 597a0 | 66 65 20 76 61 6c 29 20 3a 61 70 70 65 6e 64 29 20 28 73 65 74 71 20 76 61 6c 20 28 63 64 72 20 | fe.val).:append).(setq.val.(cdr. |
| 597c0 | 76 61 6c 29 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 73 0a | val)).t))................(tools. |
| 597e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 61 74 74 65 6e 2d 6c 69 73 74 0a 20 20 | ................(flatten-list... |
| 59800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 6f 6f 6c | ...............(cl-loop.for.tool |
| 59820 | 2d 6e 61 6d 65 20 69 6e 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 76 61 6c 29 0a 20 20 20 20 20 | -name.in.(ensure-list.val)...... |
| 59840 | 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 74 6f 6f 6c 20 3d 20 | .....................for.tool.=. |
| 59860 | 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 74 6f 6f 6c 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 | (cl-etypecase.tool-name......... |
| 59880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 598a0 | 67 70 74 65 6c 2d 74 6f 6f 6c 20 74 6f 6f 6c 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 | gptel-tool.tool-name)........... |
| 598c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 | .............................(st |
| 598e0 | 72 69 6e 67 20 28 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 | ring.(ignore-errors............. |
| 59900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 59920 | 20 20 20 20 20 28 67 70 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 74 6f 6f 6c 2d 6e 61 6d 65 29 29 | .....(gptel-get-tool.tool-name)) |
| 59940 | 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 64 6f 20 | ))...........................do. |
| 59960 | 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (unless.tool.................... |
| 59980 | 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 67 70 74 65 6c 20 70 | ............(user-error."gptel.p |
| 599a0 | 72 65 73 65 74 3a 20 43 61 6e 6e 6f 74 20 66 69 6e 64 20 74 6f 6f 6c 20 25 73 2e 22 20 76 61 6c | reset:.Cannot.find.tool.%s.".val |
| 599c0 | 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 63 6f 6c | ))...........................col |
| 599e0 | 6c 65 63 74 20 74 6f 6f 6c 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | lect.tool))))...........(funcall |
| 59a00 | 20 73 65 74 74 65 72 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 3b 61 70 70 65 6e 64 20 6d 61 6b | .setter.'gptel-tools.;append.mak |
| 59a20 | 65 73 20 61 20 63 6f 70 79 20 6f 66 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 2c 20 69 6e 74 65 6e 74 | es.a.copy.of.gptel-tools,.intent |
| 59a40 | 69 6f 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 70 70 | ional....................(if.app |
| 59a60 | 65 6e 64 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 28 61 70 70 65 6e 64 20 67 70 74 65 6c 2d 74 | end.(delete-dups.(append.gptel-t |
| 59a80 | 6f 6f 6c 73 20 74 6f 6f 6c 73 29 29 20 74 6f 6f 6c 73 29 29 29 29 0a 20 20 20 20 20 20 20 28 28 | ools.tools)).tools))))........(( |
| 59aa0 | 61 6e 64 20 28 6c 65 74 20 73 79 6d 20 28 6f 72 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 20 | and.(let.sym.(or.(intern-soft... |
| 59ac0 | 20 20 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 |
| 59ae0 | 20 22 67 70 74 65 6c 2d 22 20 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d | ."gptel-".(substring.(symbol-nam |
| 59b00 | 65 20 6b 65 79 29 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.key).1)))..................... |
| 59b20 | 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(intern-soft.............. |
| 59b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 22 20 | ..............(concat."gptel--". |
| 59b60 | 28 73 75 62 73 74 72 69 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 | (substring.(symbol-name.key).1)) |
| 59b80 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 75 61 72 64 20 28 61 6e 64 20 73 79 6d | )))..............(guard.(and.sym |
| 59ba0 | 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c | .(boundp.sym)))).........(funcal |
| 59bc0 | 6c 20 73 65 74 74 65 72 20 73 79 6d 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 28 5f 20 28 64 69 | l.setter.sym.val))........(_.(di |
| 59be0 | 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c | splay-warning............'(gptel |
| 59c00 | 20 70 72 65 73 65 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 67 70 | .presets)............(format."gp |
| 59c20 | 74 65 6c 20 70 72 65 73 65 74 3a 20 73 65 74 74 69 6e 67 20 66 6f 72 20 25 73 20 6e 6f 74 20 66 | tel.preset:.setting.for.%s.not.f |
| 59c40 | 6f 75 6e 64 2c 20 69 67 6e 6f 72 69 6e 67 2e 22 20 6b 65 79 29 29 29 29 29 0a 20 20 20 70 72 65 | ound,.ignoring.".key)))))....pre |
| 59c60 | 73 65 74 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 66 75 6e 63 20 28 70 6c 69 73 74 2d | set)...(when-let*.((func.(plist- |
| 59c80 | 67 65 74 20 70 72 65 73 65 74 20 3a 70 6f 73 74 29 29 29 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e | get.preset.:post))).(funcall.fun |
| 59ca0 | 63 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 2d 73 79 6d 73 20 | c)))..(defun.gptel--preset-syms. |
| 59cc0 | 28 70 72 65 73 65 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 67 70 74 | (preset)..."Return.a.list.of.gpt |
| 59ce0 | 65 6c 20 76 61 72 69 61 62 6c 65 73 20 28 73 79 6d 62 6f 6c 73 29 20 73 65 74 20 62 79 20 50 52 | el.variables.(symbols).set.by.PR |
| 59d00 | 45 53 45 54 2e 0a 0a 50 52 45 53 45 54 20 69 73 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 70 | ESET...PRESET.is.the.name.of.a.p |
| 59d20 | 72 65 73 65 74 2c 20 6f 72 20 61 20 73 70 65 63 20 28 70 6c 69 73 74 29 20 6f 66 20 74 68 65 20 | reset,.or.a.spec.(plist).of.the. |
| 59d40 | 66 6f 72 6d 0a 20 28 3a 4b 45 59 31 20 56 41 4c 31 20 3a 4b 45 59 32 20 56 41 4c 32 20 2e 2e 2e | form..(:KEY1.VAL1.:KEY2.VAL2.... |
| 59d60 | 29 2e 22 0a 20 20 28 77 68 65 6e 20 28 6d 65 6d 71 20 28 74 79 70 65 2d 6f 66 20 70 72 65 73 65 | )."...(when.(memq.(type-of.prese |
| 59d80 | 74 29 20 27 28 73 74 72 69 6e 67 20 73 79 6d 62 6f 6c 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 | t).'(string.symbol)).....(let.(( |
| 59da0 | 73 70 65 63 20 28 6f 72 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 70 72 65 73 65 | spec.(or.(gptel-get-preset.prese |
| 59dc0 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 | t).....................(user-err |
| 59de0 | 6f 72 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 5c 22 25 73 5c 22 3a 20 43 61 6e 6e 6f 74 20 | or."gptel.preset.\"%s\":.Cannot. |
| 59e00 | 66 69 6e 64 20 70 72 65 73 65 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | find.preset."................... |
| 59e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 73 65 74 29 29 29 29 0a 20 20 20 20 20 20 28 | ..............preset)))).......( |
| 59e40 | 73 65 74 71 20 70 72 65 73 65 74 20 73 70 65 63 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 69 6e | setq.preset.spec)))...(let*.((in |
| 59e60 | 64 65 78 20 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 73 79 6d 73 20 6b 65 79 20 76 61 | dex.preset)..........syms.key.va |
| 59e80 | 6c 29 0a 20 20 20 20 28 77 68 69 6c 65 20 69 6e 64 65 78 0a 20 20 20 20 20 20 28 73 65 74 71 20 | l).....(while.index.......(setq. |
| 59ea0 | 6b 65 79 20 28 70 6f 70 20 69 6e 64 65 78 29 20 76 61 6c 20 28 70 6f 70 20 69 6e 64 65 78 29 29 | key.(pop.index).val.(pop.index)) |
| 59ec0 | 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 6b 65 79 0a 20 20 20 20 20 20 20 20 28 28 6f 72 20 3a | .......(pcase.key.........((or.: |
| 59ee0 | 64 65 73 63 72 69 70 74 69 6f 6e 20 3a 70 72 65 20 3a 70 6f 73 74 29 29 0a 20 20 20 20 20 20 20 | description.:pre.:post))........ |
| 59f00 | 20 28 3a 70 61 72 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 | .(:parents..........(mapc.(lambd |
| 59f20 | 61 20 28 70 61 72 65 6e 74 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.(parent-preset)............... |
| 59f40 | 20 20 20 28 6e 63 6f 6e 63 20 73 79 6d 73 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 2d 73 79 | ...(nconc.syms.(gptel--preset-sy |
| 59f60 | 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 20 20 20 20 20 20 | ms.............................. |
| 59f80 | 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 70 61 72 65 6e 74 2d 70 72 65 73 65 74 | .(gptel-get-preset.parent-preset |
| 59fa0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 | ))))................(ensure-list |
| 59fc0 | 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 3a 73 79 73 74 65 6d 20 28 70 75 73 68 20 27 | .val))).........(:system.(push.' |
| 59fe0 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 6d 73 29 29 0a 20 20 20 | gptel--system-message.syms)).... |
| 5a000 | 20 20 20 20 20 28 5f 20 28 69 66 2d 6c 65 74 2a 20 28 28 76 61 72 20 28 6f 72 20 28 69 6e 74 65 | .....(_.(if-let*.((var.(or.(inte |
| 5a020 | 72 6e 2d 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rn-soft......................... |
| 5a040 | 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 22 20 28 73 75 62 73 74 72 69 | .......(concat."gptel-".(substri |
| 5a060 | 6e 67 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 0a 20 20 20 20 20 20 | ng.(symbol-name.key).1)))....... |
| 5a080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d | ........................(intern- |
| 5a0a0 | 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | soft............................ |
| 5a0c0 | 20 20 20 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 22 20 28 73 75 62 73 74 72 69 6e 67 | ....(concat."gptel--".(substring |
| 5a0e0 | 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 20 31 29 29 29 29 29 29 0a 20 20 20 20 20 | .(symbol-name.key).1))))))...... |
| 5a100 | 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 76 61 72 20 73 79 6d 73 29 0a 20 20 20 20 20 20 | ..........(push.var.syms)....... |
| 5a120 | 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 | .......(display-warning......... |
| 5a140 | 20 20 20 20 20 20 27 28 67 70 74 65 6c 20 70 72 65 73 65 74 73 29 0a 20 20 20 20 20 20 20 20 20 | ......'(gptel.presets).......... |
| 5a160 | 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 67 70 74 65 6c 20 70 72 65 73 65 74 20 5c 22 25 73 5c | .....(format."gptel.preset.\"%s\ |
| 5a180 | 22 3a 20 73 65 74 74 69 6e 67 20 66 6f 72 20 25 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 69 67 6e | ":.setting.for.%s.not.found,.ign |
| 5a1a0 | 6f 72 69 6e 67 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | oring.".......................(c |
| 5a1c0 | 61 72 20 70 72 65 73 65 74 29 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 28 63 6c 2d 64 65 6c | ar.preset).key)))))).....(cl-del |
| 5a1e0 | 65 74 65 2d 64 75 70 6c 69 63 61 74 65 73 20 73 79 6d 73 29 29 29 0a 0a 3b 3b 20 54 68 69 73 20 | ete-duplicates.syms)))..;;.This. |
| 5a200 | 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 60 63 6c 2d 70 72 6f 67 76 27 2c 20 6f 6e 6c 79 | is.identical.to.`cl-progv',.only |
| 5a220 | 20 77 65 20 6c 65 74 2d 62 69 6e 64 20 73 79 6d 62 6f 6c 73 20 53 59 4d 20 66 72 6f 6d 20 74 68 | .we.let-bind.symbols.SYM.from.th |
| 5a240 | 65 20 70 72 65 73 65 74 0a 3b 3b 20 74 6f 20 74 68 65 69 72 20 63 75 72 72 65 6e 74 20 76 61 6c | e.preset.;;.to.their.current.val |
| 5a260 | 75 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 65 76 61 6c 75 61 74 69 6e 67 20 74 68 65 20 76 61 | ues.instead.of.evaluating.the.va |
| 5a280 | 6c 75 65 73 20 65 78 70 6c 69 63 69 74 6c 79 2e 20 28 23 31 30 30 35 29 0a 28 64 65 66 6d 61 63 | lues.explicitly..(#1005).(defmac |
| 5a2a0 | 72 6f 20 67 70 74 65 6c 2d 77 69 74 68 2d 70 72 65 73 65 74 20 28 6e 61 6d 65 20 26 72 65 73 74 | ro.gptel-with-preset.(name.&rest |
| 5a2c0 | 20 62 6f 64 79 29 0a 20 20 22 52 75 6e 20 42 4f 44 59 20 77 69 74 68 20 67 70 74 65 6c 20 70 72 | .body)..."Run.BODY.with.gptel.pr |
| 5a2e0 | 65 73 65 74 20 4e 41 4d 45 20 61 70 70 6c 69 65 64 2e 0a 0a 54 68 69 73 20 6d 61 63 72 6f 20 63 | eset.NAME.applied...This.macro.c |
| 5a300 | 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 63 72 65 61 74 65 20 60 67 70 74 65 6c 2d 72 65 71 75 | an.be.used.to.create.`gptel-requ |
| 5a320 | 65 73 74 27 20 63 6f 6d 6d 61 6e 64 20 77 69 74 68 20 73 65 74 74 69 6e 67 73 0a 66 72 6f 6d 20 | est'.command.with.settings.from. |
| 5a340 | 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 61 70 70 6c 69 65 64 2e 0a 0a 4e 41 4d 45 20 69 73 | a.gptel.preset.applied...NAME.is |
| 5a360 | 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 70 72 65 73 65 74 2c 20 6f 72 20 61 20 73 70 65 63 | .the.name.of.a.preset,.or.a.spec |
| 5a380 | 20 28 70 6c 69 73 74 29 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 3a 4b 45 59 31 20 56 41 4c | .(plist).of.the.form..(:KEY1.VAL |
| 5a3a0 | 31 20 3a 4b 45 59 32 20 56 41 4c 32 20 2e 2e 2e 29 2e 20 20 49 74 20 6d 75 73 74 20 62 65 20 71 | 1.:KEY2.VAL2....)...It.must.be.q |
| 5a3c0 | 75 6f 74 65 64 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 | uoted."...(declare.(indent.1)).. |
| 5a3e0 | 20 28 6c 65 74 20 28 28 73 79 6d 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 73 79 6d 73 22 | .(let.((syms.(make-symbol."syms" |
| 5a400 | 29 29 0a 20 20 20 20 20 20 20 20 28 62 69 6e 64 73 20 28 6d 61 6b 65 2d 73 79 6d 62 6f 6c 20 22 | )).........(binds.(make-symbol." |
| 5a420 | 62 69 6e 64 73 22 29 29 0a 20 20 20 20 20 20 20 20 28 62 6f 64 79 66 75 6e 20 28 6d 61 6b 65 2d | binds")).........(bodyfun.(make- |
| 5a440 | 73 79 6d 62 6f 6c 20 22 62 6f 64 79 22 29 29 29 0a 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 73 | symbol."body"))).....`(let*.((,s |
| 5a460 | 79 6d 73 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 2d 73 79 6d 73 20 2c 6e 61 6d 65 29 29 0a | yms.(gptel--preset-syms.,name)). |
| 5a480 | 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 62 6f 64 79 66 75 6e 20 28 6c 61 6d 62 64 61 20 28 29 | ............(,bodyfun.(lambda.() |
| 5a4a0 | 20 28 67 70 74 65 6c 2d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 2c 6e 61 6d 65 29 20 2c 40 62 | .(gptel--apply-preset.,name).,@b |
| 5a4c0 | 6f 64 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 62 69 6e 64 73 20 6e 69 6c 29 29 0a | ody)).............(,binds.nil)). |
| 5a4e0 | 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 2c 73 79 6d 73 20 28 70 75 73 68 20 28 6c 69 73 74 20 | .......(while.,syms.(push.(list. |
| 5a500 | 28 63 61 72 20 2c 73 79 6d 73 29 20 28 70 6f 70 20 2c 73 79 6d 73 29 29 20 2c 62 69 6e 64 73 29 | (car.,syms).(pop.,syms)).,binds) |
| 5a520 | 29 0a 20 20 20 20 20 20 20 28 65 76 61 6c 20 28 6c 69 73 74 20 27 6c 65 74 20 28 6e 72 65 76 65 | )........(eval.(list.'let.(nreve |
| 5a540 | 72 73 65 20 2c 62 69 6e 64 73 29 20 28 6c 69 73 74 20 27 66 75 6e 63 61 6c 6c 20 28 6c 69 73 74 | rse.,binds).(list.'funcall.(list |
| 5a560 | 20 27 71 75 6f 74 65 20 2c 62 6f 64 79 66 75 6e 29 29 29 29 29 29 29 0a 0a 3b 3b 3b 3b 20 50 72 | .'quote.,bodyfun)))))))..;;;;.Pr |
| 5a580 | 65 73 65 74 73 20 69 6e 2d 62 75 66 66 65 72 20 55 49 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | esets.in-buffer.UI.(defun.gptel- |
| 5a5a0 | 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 70 70 6c 79 2d 70 72 65 73 65 74 20 28 5f 66 73 6d 29 0a 20 | -transform-apply-preset.(_fsm).. |
| 5a5c0 | 20 22 41 70 70 6c 79 20 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 74 6f 20 74 68 65 20 62 75 | ."Apply.a.gptel.preset.to.the.bu |
| 5a5e0 | 66 66 65 72 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 0a 0a 49 | ffer.depending.on.the.prompt...I |
| 5a600 | 66 20 74 68 65 20 6c 61 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 69 6e 63 6c 75 64 65 73 20 | f.the.last.user.prompt.includes. |
| 5a620 | 40 66 6f 6f 2c 20 74 68 65 20 70 72 65 73 65 74 20 66 6f 6f 20 69 73 20 61 70 70 6c 69 65 64 2e | @foo,.the.preset.foo.is.applied. |
| 5a640 | 0a 42 65 66 6f 72 65 20 61 70 70 6c 79 69 6e 67 20 74 68 65 20 70 72 65 73 65 74 2c 20 5c 22 40 | .Before.applying.the.preset,.\"@ |
| 5a660 | 66 6f 6f 5c 22 20 69 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6d 70 74 | foo\".is.removed.from.the.prompt |
| 5a680 | 20 61 6e 64 0a 70 6f 69 6e 74 20 69 73 20 70 6c 61 63 65 64 20 61 74 20 69 74 73 20 70 6f 73 69 | .and.point.is.placed.at.its.posi |
| 5a6a0 | 74 69 6f 6e 2e 22 0a 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 | tion."...(when.gptel--known-pres |
| 5a6c0 | 65 74 73 0a 20 20 20 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 | ets.....(text-property-search-ba |
| 5a6e0 | 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 77 68 69 6c 65 20 | ckward.'gptel.nil.t).....(while. |
| 5a700 | 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e | (re-search-forward."@\\([^[:blan |
| 5a720 | 6b 3a 5d 5d 2b 5c 5c 29 5c 5c 5f 3e 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 3b 3b 20 54 68 | k:]]+\\)\\_>".nil.t).......;;.Th |
| 5a740 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 76 6f 6c 75 74 65 64 20 63 68 65 63 6b 20 69 73 20 | e.following.convoluted.check.is. |
| 5a760 | 62 65 63 61 75 73 65 20 72 65 2d 73 65 61 72 63 68 20 69 73 20 6d 75 63 68 20 66 61 73 74 65 72 | because.re-search.is.much.faster |
| 5a780 | 20 69 66 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 73 65 61 72 63 68 20 70 61 74 74 65 72 6e 20 | .if.......;;.the.search.pattern. |
| 5a7a0 | 62 65 67 69 6e 73 20 77 69 74 68 20 61 20 6e 6f 6e 2d 77 68 69 74 65 73 70 61 63 65 20 63 68 61 | begins.with.a.non-whitespace.cha |
| 5a7c0 | 72 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 3d 20 28 6d 61 74 63 68 2d 62 65 67 | r........(when.(or.(=.(match-beg |
| 5a7e0 | 69 6e 6e 69 6e 67 20 30 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 | inning.0).(point-min)).......... |
| 5a800 | 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 73 79 6e 74 61 78 20 28 63 68 61 72 2d | .......(memq.(char-syntax.(char- |
| 5a820 | 62 65 66 6f 72 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 20 27 28 33 | before.(match-beginning.0))).'(3 |
| 5a840 | 32 20 36 32 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6e 61 6d | 2.62))).........(when-let*.((nam |
| 5a860 | 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | e.(match-string.1))............. |
| 5a880 | 20 20 20 20 20 20 20 20 28 70 72 65 73 65 74 20 28 6f 72 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 | ........(preset.(or.(gptel-get-p |
| 5a8a0 | 72 65 73 65 74 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 | reset.(intern-soft.name))....... |
| 5a8c0 | 20 20 20 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 |
| 5a8e0 | 2d 67 65 74 2d 70 72 65 73 65 74 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | -get-preset.name))))...........( |
| 5a900 | 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 6e 67 20 30 | delete-region.(match-beginning.0 |
| 5a920 | 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f | ).(match-end.0))...........;;.Po |
| 5a940 | 69 6e 74 20 6d 75 73 74 20 62 65 20 61 66 74 65 72 20 40 66 6f 6f 20 77 68 65 6e 20 74 68 65 20 | int.must.be.after.@foo.when.the. |
| 5a960 | 70 72 65 73 65 74 20 69 73 20 61 70 70 6c 69 65 64 20 74 6f 20 61 6c 6c 6f 77 20 66 6f 72 0a 20 | preset.is.applied.to.allow.for.. |
| 5a980 | 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 6f 72 65 20 61 64 76 61 6e 63 65 64 20 74 72 61 6e 73 66 | .........;;.more.advanced.transf |
| 5a9a0 | 6f 72 6d 61 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 70 70 | ormations............(gptel--app |
| 5a9c0 | 6c 79 2d 70 72 65 73 65 74 20 70 72 65 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ly-preset.preset................ |
| 5a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c | ................(lambda.(sym.val |
| 5aa00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 5aa20 | 20 20 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d | ...(set.(make-local-variable.sym |
| 5aa40 | 29 20 76 61 6c 29 29 29 29 29 29 29 29 0a 0a 3b 3b 20 3b 3b 20 41 6c 74 65 72 6e 61 74 69 76 65 | ).val))))))))..;;.;;.Alternative |
| 5aa60 | 20 61 70 70 72 6f 61 63 68 20 77 69 74 68 20 73 74 72 69 6e 67 20 73 65 61 72 63 68 0a 3b 3b 20 | .approach.with.string.search.;;. |
| 5aa80 | 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 22 20 6e 69 6c 20 74 29 0a 3b 3b 20 28 69 | (search-forward."@".nil.t).;;.(i |
| 5aaa0 | 66 20 28 61 6e 64 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 73 79 6e 74 61 78 20 28 63 68 61 72 2d | f.(and.(memq.(char-syntax.(char- |
| 5aac0 | 62 65 66 6f 72 65 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 20 27 28 33 32 20 36 32 29 29 0a | before.(1-.(point)))).'(32.62)). |
| 5aae0 | 3b 3b 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 5b 5e 5b 3a | ;;..........(looking-at."\\([^[: |
| 5ab00 | 62 6c 61 6e 6b 3a 5d 5d 2b 3f 5c 5c 29 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 3f 5c 5c 73 2d 2b 22 29 | blank:]]+?\\)[[:punct:]]?\\s-+") |
| 5ab20 | 29 0a 3b 3b 20 20 20 20 20 64 6f 2d 73 74 75 66 66 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | ).;;.....do-stuff)..(defun.gptel |
| 5ab40 | 2d 2d 66 6f 6e 74 69 66 79 2d 70 72 65 73 65 74 2d 6b 65 79 77 6f 72 64 20 28 65 6e 64 29 0a 20 | --fontify-preset-keyword.(end).. |
| 5ab60 | 20 22 46 6f 6e 74 2d 6c 6f 63 6b 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 70 72 65 73 65 74 20 | ."Font-lock.function.for.preset. |
| 5ab80 | 69 6e 64 69 63 61 74 6f 72 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a 0a 52 65 74 | indicators.in.chat.buffers...Ret |
| 5aba0 | 75 72 6e 20 70 72 65 73 65 74 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 69 6e 66 6f 20 66 6f | urn.preset.fontification.info.fo |
| 5abc0 | 72 20 74 65 78 74 20 75 70 20 74 6f 20 45 4e 44 2e 22 0a 20 20 28 61 6e 64 20 28 72 65 2d 73 65 | r.text.up.to.END."...(and.(re-se |
| 5abe0 | 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c | arch-forward."@\\([^[:blank:]]+\ |
| 5ac00 | 5c 29 5c 5c 5f 3e 22 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 28 6f 72 20 28 3d 20 28 6d 61 | \)\\_>".end.t)........(or.(=.(ma |
| 5ac20 | 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 | tch-beginning.0).(point-min))... |
| 5ac40 | 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 63 68 61 72 2d 73 79 6e 74 61 78 20 28 63 68 61 | .........(memq.(char-syntax.(cha |
| 5ac60 | 72 2d 62 65 66 6f 72 65 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 20 27 | r-before.(match-beginning.0))).' |
| 5ac80 | 28 33 32 20 36 32 29 29 29 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 70 6c 69 73 74 2d 67 65 74 | (32.62)))........(not.(plist-get |
| 5aca0 | 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 2d 61 74 20 28 6d 61 74 63 68 2d 62 65 67 69 | .(text-properties-at.(match-begi |
| 5acc0 | 6e 6e 69 6e 67 20 31 29 29 20 27 67 70 74 65 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | nning.1)).'gptel))))..(defun.gpt |
| 5ace0 | 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 28 29 0a 20 20 22 43 6f 6d 70 6c 65 74 69 6f 6e 20 | el-preset-capf.()..."Completion. |
| 5ad00 | 61 74 20 70 6f 69 6e 74 20 66 6f 72 20 67 70 74 65 6c 20 70 72 65 73 65 74 73 20 69 6e 20 60 67 | at.point.for.gptel.presets.in.`g |
| 5ad20 | 70 74 65 6c 2d 6d 6f 64 65 27 2e 0a 0a 41 64 64 20 74 68 69 73 20 74 6f 20 60 63 6f 6d 70 6c 65 | ptel-mode'...Add.this.to.`comple |
| 5ad40 | 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 61 6e | tion-at-point-functions'."...(an |
| 5ad60 | 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 0a 20 20 20 20 20 20 20 28 73 | d.gptel--known-presets........(s |
| 5ad80 | 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 75 | ave-excursion..........(let.((nu |
| 5ada0 | 6d 20 28 2d 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 62 61 63 6b 77 61 72 64 20 22 77 5f 22 29 | m.(-.(skip-syntax-backward."w_") |
| 5adc0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 6c 20 28 63 68 61 72 2d | )))............(when.(eql.(char- |
| 5ade0 | 62 65 66 6f 72 65 29 20 3f 40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 | before).?@)..............(list.( |
| 5ae00 | 70 6f 69 6e 74 29 20 28 2b 20 28 70 6f 69 6e 74 29 20 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 20 | point).(+.(point).num).......... |
| 5ae20 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 0a 20 | ..........gptel--known-presets.. |
| 5ae40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 63 6c 75 73 69 76 65 20 27 6e 6f | ..................:exclusive.'no |
| 5ae60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 6e 6e 6f 74 61 74 69 6f 6e 2d | ....................:annotation- |
| 5ae80 | 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 28 6c | function....................#'(l |
| 5aea0 | 61 6d 62 64 61 20 28 63 29 20 28 74 68 72 65 61 64 2d 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 | ambda.(c).(thread-first......... |
| 5aec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f | ......................(intern-so |
| 5aee0 | 66 74 20 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ft.c)........................... |
| 5af00 | 20 20 20 20 28 61 73 73 71 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 29 20 | ....(assq.gptel--known-presets). |
| 5af20 | 28 63 64 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cdr)........................... |
| 5af40 | 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 29 29 29 29 | ....(plist-get.:description))))) |
| 5af60 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 65 74 74 69 66 79 2d 70 72 65 | ))))..(defun.gptel--prettify-pre |
| 5af80 | 73 65 74 20 28 29 0a 20 20 22 47 65 74 20 76 69 73 75 61 6c 20 61 6e 64 20 63 6f 6d 70 6c 65 74 | set.()..."Get.visual.and.complet |
| 5afa0 | 69 6f 6e 20 68 65 6c 70 20 77 69 74 68 20 70 72 65 73 65 74 73 20 69 6e 20 67 70 74 65 6c 20 62 | ion.help.with.presets.in.gptel.b |
| 5afc0 | 75 66 66 65 72 73 2e 0a 0a 49 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f | uffers...Intended.to.be.added.to |
| 5afe0 | 20 60 67 70 74 65 6c 2d 6d 6f 64 65 2d 68 6f 6f 6b 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 6b 65 | .`gptel-mode-hook'."...(let.((ke |
| 5b000 | 79 77 6f 72 64 20 27 28 28 67 70 74 65 6c 2d 2d 66 6f 6e 74 69 66 79 2d 70 72 65 73 65 74 2d 6b | yword.'((gptel--fontify-preset-k |
| 5b020 | 65 79 77 6f 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 75 | eyword.....................;;.su |
| 5b040 | 62 65 78 70 20 30 20 68 65 72 65 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 2c 20 77 65 20 | bexp.0.here.is.not.required,.we. |
| 5b060 | 72 65 74 61 69 6e 20 69 74 20 74 6f 20 6d 61 6b 65 20 69 74 0a 20 20 20 20 20 20 20 20 20 20 20 | retain.it.to.make.it............ |
| 5b080 | 20 20 20 20 20 20 20 20 20 3b 3b 20 65 61 73 79 20 74 6f 20 73 77 74 69 63 68 20 74 6f 20 6d 6f | .........;;.easy.to.swtich.to.mo |
| 5b0a0 | 72 65 20 63 6f 6d 70 6c 65 78 20 70 61 74 74 65 72 6e 73 20 69 6e 20 74 68 65 20 66 75 74 75 72 | re.complex.patterns.in.the.futur |
| 5b0c0 | 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 77 68 65 6e 2d 6c 65 | e.....................0.(when-le |
| 5b0e0 | 74 2a 20 28 28 63 6f 6d 70 73 20 28 61 6c 6c 2d 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 28 6d 61 74 | t*.((comps.(all-completions.(mat |
| 5b100 | 63 68 2d 73 74 72 69 6e 67 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ch-string.1).................... |
| 5b120 | 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 6b 6e | .......................gptel--kn |
| 5b140 | 6f 77 6e 2d 70 72 65 73 65 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | own-presets))................... |
| 5b160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 28 6d 61 74 63 68 2d | ................((member.(match- |
| 5b180 | 73 74 72 69 6e 67 20 31 29 20 63 6f 6d 70 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | string.1).comps))).............. |
| 5b1a0 | 20 20 20 20 20 20 20 20 20 20 27 28 3a 62 6f 78 20 2d 31 20 3a 69 6e 68 65 72 69 74 20 73 65 63 | ..........'(:box.-1.:inherit.sec |
| 5b1c0 | 6f 6e 64 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ondary-selection)).............. |
| 5b1e0 | 20 20 20 20 20 20 20 70 72 65 70 65 6e 64 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 | .......prepend)))).....(cond.... |
| 5b200 | 20 20 28 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 | ..(gptel-mode.......(font-lock-a |
| 5b220 | 64 64 2d 6b 65 79 77 6f 72 64 73 20 6e 69 6c 20 6b 65 79 77 6f 72 64 20 74 29 0a 20 20 20 20 20 | dd-keywords.nil.keyword.t)...... |
| 5b240 | 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d | .(add-hook.'completion-at-point- |
| 5b260 | 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 6e 69 | functions.#'gptel-preset-capf.ni |
| 5b280 | 6c 20 74 29 29 0a 20 20 20 20 20 28 74 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 72 65 6d 6f 76 65 2d | l.t))......(t.(font-lock-remove- |
| 5b2a0 | 6b 65 79 77 6f 72 64 73 20 6e 69 6c 20 6b 65 79 77 6f 72 64 29 0a 20 20 20 20 20 20 20 20 28 72 | keywords.nil.keyword).........(r |
| 5b2c0 | 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d | emove-hook.'completion-at-point- |
| 5b2e0 | 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d 70 72 65 73 65 74 2d 63 61 70 66 20 74 29 | functions.#'gptel-preset-capf.t) |
| 5b300 | 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 52 65 73 70 6f 6e 73 65 20 74 77 65 61 6b 69 6e 67 20 63 6f | ))))....;;;.Response.tweaking.co |
| 5b320 | 6d 6d 61 6e 64 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 65 73 | mmands..(defun.gptel--attach-res |
| 5b340 | 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 28 68 69 73 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c | ponse-history.(history.&optional |
| 5b360 | 20 62 75 66 29 0a 20 20 22 41 74 74 61 63 68 20 48 49 53 54 4f 52 59 20 74 6f 20 74 68 65 20 6e | .buf)..."Attach.HISTORY.to.the.n |
| 5b380 | 65 78 74 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 62 75 66 66 65 72 20 42 55 46 | ext.gptel.response.in.buffer.BUF |
| 5b3a0 | 2e 0a 0a 48 49 53 54 4f 52 59 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 | ...HISTORY.is.a.list.of.strings. |
| 5b3c0 | 74 79 70 69 63 61 6c 6c 79 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 65 78 74 20 72 65 70 6c 61 63 | typically.containing.text.replac |
| 5b3e0 | 65 64 0a 62 79 20 67 70 74 65 6c 2e 20 20 42 55 46 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 | ed.by.gptel...BUF.is.the.current |
| 5b400 | 20 62 75 66 66 65 72 20 69 66 20 6e 6f 74 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 | .buffer.if.not.specified...This. |
| 5b420 | 69 73 20 75 73 65 64 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 76 61 72 69 61 6e 74 73 20 6f 66 20 | is.used.to.maintain.variants.of. |
| 5b440 | 70 72 6f 6d 70 74 73 20 6f 72 20 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 64 69 66 66 0a 61 67 61 | prompts.or.responses.to.diff.aga |
| 5b460 | 69 6e 73 74 20 69 66 20 72 65 71 75 69 72 65 64 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 | inst.if.required."...(with-curre |
| 5b480 | 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | nt-buffer.(or.buf.(current-buffe |
| 5b4a0 | 72 29 29 0a 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d | r)).....(letrec.((gptel--attach- |
| 5b4c0 | 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 20 65 | after...............(lambda.(b.e |
| 5b4e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 62 20 65 | ).................(when.(and.b.e |
| 5b500 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 | )...................(add-text-pr |
| 5b520 | 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 20 65 20 | operties....................b.e. |
| 5b540 | 60 28 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | `(gptel-history................. |
| 5b560 | 20 20 20 20 20 20 20 20 20 2c 28 61 70 70 65 6e 64 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 68 | .........,(append.(ensure-list.h |
| 5b580 | 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | istory)......................... |
| 5b5a0 | 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 31 2d 20 65 29 20 27 67 70 | ...(get-char-property.(1-.e).'gp |
| 5b5c0 | 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-history))................... |
| 5b5e0 | 20 20 20 20 20 20 20 66 72 6f 6e 74 2d 73 74 69 63 6b 79 20 28 67 70 74 65 6c 20 67 70 74 65 6c | .......front-sticky.(gptel.gptel |
| 5b600 | 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | -history)))).................(re |
| 5b620 | 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 | move-hook.'gptel-post-response-f |
| 5b640 | 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | unctions........................ |
| 5b660 | 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 20 27 6c 6f 63 61 6c | ......gptel--attach-after.'local |
| 5b680 | 29 29 29 29 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 | )))).......(add-hook.'gptel-post |
| 5b6a0 | 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 | -response-functions.gptel--attac |
| 5b6c0 | 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6c 6f 63 | h-after.................nil.'loc |
| 5b6e0 | 61 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 20 28 26 6f 70 | al))))..(defun.gptel--ediff.(&op |
| 5b700 | 74 69 6f 6e 61 6c 20 61 72 67 20 62 6f 75 6e 64 73 2d 66 75 6e 63 29 0a 20 20 22 45 64 69 66 66 | tional.arg.bounds-func)..."Ediff |
| 5b720 | 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 20 70 72 65 76 69 | .response.at.point.against.previ |
| 5b740 | 6f 75 73 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 49 66 20 70 72 65 66 69 78 20 | ous.gptel.responses...If.prefix. |
| 5b760 | 41 52 47 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 65 6c 65 63 74 20 74 68 65 20 70 72 65 76 69 | ARG.is.non-nil,.select.the.previ |
| 5b780 | 6f 75 73 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 65 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 6e | ous.response.to.ediff.against.in |
| 5b7a0 | 74 65 72 61 63 74 69 76 65 6c 79 2e 0a 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 | teractively...If.specified,.use. |
| 5b7c0 | 42 4f 55 4e 44 53 2d 46 55 4e 43 20 74 6f 20 63 6f 6d 70 75 74 65 20 74 68 65 20 62 6f 75 6e 64 | BOUNDS-FUNC.to.compute.the.bound |
| 5b7e0 | 73 20 6f 66 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 68 69 | s.of.the.response.at.point...Thi |
| 5b800 | 73 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 61 64 64 69 74 69 6f | s.can.be.used.to.include.additio |
| 5b820 | 6e 61 6c 0a 63 6f 6e 74 65 78 74 20 66 6f 72 20 74 68 65 20 65 64 69 66 66 20 73 65 73 73 69 6f | nal.context.for.the.ediff.sessio |
| 5b840 | 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 77 68 65 6e 20 | n."...(interactive."P")...(when. |
| 5b860 | 28 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 29 0a 20 | (gptel--at-response-history-p).. |
| 5b880 | 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 | ...(pcase-let*.((`(,beg...,end). |
| 5b8a0 | 28 66 75 6e 63 61 6c 6c 20 28 6f 72 20 62 6f 75 6e 64 73 2d 66 75 6e 63 20 23 27 67 70 74 65 6c | (funcall.(or.bounds-func.#'gptel |
| 5b8c0 | 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 | --get-response-bounds)))........ |
| 5b8e0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 | ..........(prev-response........ |
| 5b900 | 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(if.arg.............. |
| 5b920 | 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 43 68 6f 6f 73 | .........(completing-read."Choos |
| 5b940 | 65 20 72 65 73 70 6f 6e 73 65 20 76 61 72 69 61 6e 74 20 74 6f 20 64 69 66 66 20 61 67 61 69 6e | e.response.variant.to.diff.again |
| 5b960 | 73 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st:."........................... |
| 5b980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 | .............(get-char-property. |
| 5b9a0 | 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 | (point).'gptel-history)......... |
| 5b9c0 | 20 20 20 20 20 20 20 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 | ...............................n |
| 5b9e0 | 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 2d 73 | il.t).....................(car-s |
| 5ba00 | 61 66 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 | afe.(get-char-property.(point).' |
| 5ba20 | 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-history))))............... |
| 5ba40 | 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 | ...(buffer-mode.major-mode)..... |
| 5ba60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 6e 61 6d 65 20 28 62 75 66 66 65 72 2d 6e 61 | .............(bufname.(buffer-na |
| 5ba80 | 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 2c 6e 65 77 2d 62 75 | me))..................(`(,new-bu |
| 5baa0 | 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e 65 77 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | f.,new-beg.,new-end)............ |
| 5bac0 | 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 | .......(with-current-buffer..... |
| 5bae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 | ..................(get-buffer-cr |
| 5bb00 | 65 61 74 65 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 53 2d | eate.(concat.bufname."-PREVIOUS- |
| 5bb20 | 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | *")).....................(let.(( |
| 5bb40 | 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 20 | inhibit-read-only.t))........... |
| 5bb60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 | ............(erase-buffer)...... |
| 5bb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f | .................(delay-mode-hoo |
| 5bba0 | 6b 73 20 28 66 75 6e 63 61 6c 6c 20 62 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 | ks.(funcall.buffer-mode))....... |
| 5bbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 | ................(visual-line-mod |
| 5bbe0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 | e).......................(insert |
| 5bc00 | 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .prev-response)................. |
| 5bc20 | 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 | ......(goto-char.(point-min))... |
| 5bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 75 72 72 65 | ....................(list.(curre |
| 5bc60 | 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 | nt-buffer).(point-min).(point-ma |
| 5bc80 | 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 70 72 65 76 2d 72 65 73 70 6f | x)))))).......(unless.prev-respo |
| 5bca0 | 6e 73 65 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 | nse.(user-error."gptel.response. |
| 5bcc0 | 69 73 20 61 64 64 69 74 69 76 65 3a 20 6e 6f 20 63 68 61 6e 67 65 73 20 74 6f 20 65 64 69 66 66 | is.additive:.no.changes.to.ediff |
| 5bce0 | 22 29 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 64 69 66 66 29 0a 20 20 20 20 20 | ")).......(require.'ediff)...... |
| 5bd00 | 20 28 6c 65 74 72 65 63 20 28 28 63 77 63 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 | .(letrec.((cwc.(current-window-c |
| 5bd20 | 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | onfiguration))................(g |
| 5bd40 | 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--ediff-restore............. |
| 5bd60 | 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(lambda.().................. |
| 5bd80 | 20 28 77 68 65 6e 20 28 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 20 63 | .(when.(window-configuration-p.c |
| 5bda0 | 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e | wc).....................(set-win |
| 5bdc0 | 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 77 63 29 29 0a 20 20 20 20 20 20 20 20 | dow-configuration.cwc))......... |
| 5bde0 | 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 | ..........(kill-buffer.(get-buff |
| 5be00 | 65 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 50 52 45 56 49 4f 55 53 2d 2a 22 | er.(concat.bufname."-PREVIOUS-*" |
| 5be20 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 | )))...................(kill-buff |
| 5be40 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 | er.(get-buffer.(concat.bufname." |
| 5be60 | 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -CURRENT-*"))).................. |
| 5be80 | 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 | .(remove-hook.'ediff-quit-hook.g |
| 5bea0 | 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 | ptel--ediff-restore))))......... |
| 5bec0 | 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c | (add-hook.'ediff-quit-hook.gptel |
| 5bee0 | 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 0a | --ediff-restore).........(apply. |
| 5bf00 | 20 20 20 20 20 20 20 20 20 23 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 | .........#'ediff-regions-interna |
| 5bf20 | 6c 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 65 64 69 66 66 2d 6d 61 | l..........(get-buffer.(ediff-ma |
| 5bf40 | 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | ke-cloned-buffer.(current-buffer |
| 5bf60 | 29 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e | )."-CURRENT-*"))..........beg.en |
| 5bf80 | 64 20 6e 65 77 2d 62 75 66 20 6e 65 77 2d 62 65 67 20 6e 65 77 2d 65 6e 64 0a 20 20 20 20 20 20 | d.new-buf.new-beg.new-end....... |
| 5bfa0 | 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 | ...nil..........(list.'ediff-reg |
| 5bfc0 | 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 20 | ions-wordwise.'word-wise.nil)... |
| 5bfe0 | 20 20 20 20 20 20 20 3b 3b 20 28 69 66 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 2d 76 61 6c | .......;;.(if.(transient-arg-val |
| 5c000 | 75 65 20 22 2d 77 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 20 20 28 6c | ue."-w".args)..........;;.....(l |
| 5c020 | 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 77 6f 72 64 77 69 73 65 20 27 77 6f 72 | ist.'ediff-regions-wordwise.'wor |
| 5c040 | 64 2d 77 69 73 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 20 20 28 6c 69 73 74 20 | d-wise.nil)..........;;...(list. |
| 5c060 | 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 6c 69 6e 65 77 69 73 65 20 6e 69 6c 20 6e 69 6c 29 | 'ediff-regions-linewise.nil.nil) |
| 5c080 | 29 0a 20 20 20 20 20 20 20 20 20 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | )..........)))))..(defun.gptel-- |
| 5c0a0 | 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a 20 20 22 4d 61 72 6b 20 67 70 74 65 6c 20 72 | mark-response.()..."Mark.gptel.r |
| 5c0c0 | 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 69 6e | esponse.at.point,.if.any."...(in |
| 5c0e0 | 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 67 70 74 65 6c 2d 2d 69 6e 2d | teractive)...(unless.(gptel--in- |
| 5c100 | 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 67 70 74 65 | response-p).(user-error."No.gpte |
| 5c120 | 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 29 0a 20 20 28 70 63 61 73 65 2d | l.response.at.point"))...(pcase- |
| 5c140 | 6c 65 74 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 67 70 74 65 6c 2d 2d 67 65 74 | let.((`(,beg...,end).(gptel--get |
| 5c160 | 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 | -response-bounds))).....(goto-ch |
| 5c180 | 61 72 20 62 65 67 29 20 28 70 75 73 68 2d 6d 61 72 6b 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 | ar.beg).(push-mark).(goto-char.e |
| 5c1a0 | 6e 64 29 20 28 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | nd).(activate-mark)))..(defun.gp |
| 5c1c0 | 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c | tel--previous-variant.(&optional |
| 5c1e0 | 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 70 74 65 | .arg)..."Switch.to.previous.gpte |
| 5c200 | 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 20 | l-response.at.this.point,.if.it. |
| 5c220 | 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 | exists."...(interactive."p")...( |
| 5c240 | 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 67 70 74 | pcase-let*.((`(,beg...,end).(gpt |
| 5c260 | 65 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 | el--get-response-bounds))....... |
| 5c280 | 20 20 20 20 20 20 20 20 20 28 68 69 73 74 6f 72 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 | .........(history.(get-char-prop |
| 5c2a0 | 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 | erty.(point).'gptel-history))... |
| 5c2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 2d | .............(alt-response.(car- |
| 5c2e0 | 73 61 66 65 20 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | safe.history))................(o |
| 5c300 | 66 66 73 65 74 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 68 69 73 74 6f 72 79 | ffset)).....(unless.(and.history |
| 5c320 | 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 | .alt-response).......(user-error |
| 5c340 | 20 22 4e 6f 20 76 61 72 69 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 20 61 76 61 69 6c 61 62 6c 65 | ."No.variant.responses.available |
| 5c360 | 22 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 | ")).....(if.(>.arg.0).........(s |
| 5c380 | 65 74 71 20 68 69 73 74 6f 72 79 20 28 61 70 70 65 6e 64 20 28 63 64 72 20 68 69 73 74 6f 72 79 | etq.history.(append.(cdr.history |
| 5c3a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 5c3c0 | 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 |
| 5c3e0 | 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 20 | rties.beg.end)))).......(setq... |
| 5c400 | 20 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 20 28 6c 61 73 74 20 68 69 73 | .....alt-response.(car.(last.his |
| 5c420 | 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 20 28 63 6f 6e 73 20 28 62 75 66 | tory))........history.(cons.(buf |
| 5c440 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 | fer-substring-no-properties.beg. |
| 5c460 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 62 75 74 6c | end)......................(nbutl |
| 5c480 | 61 73 74 20 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 | ast.history)))).....(add-text-pr |
| 5c4a0 | 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 | operties..............0.(length. |
| 5c4c0 | 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 67 70 74 | alt-response)..............`(gpt |
| 5c4e0 | 65 6c 20 72 65 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 20 2c 68 69 73 74 6f | el.response.gptel-history.,histo |
| 5c500 | 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 | ry)..............alt-response).. |
| 5c520 | 20 20 20 28 73 65 74 71 20 6f 66 66 73 65 74 20 28 6d 69 6e 20 28 2d 20 28 70 6f 69 6e 74 29 20 | ...(setq.offset.(min.(-.(point). |
| 5c540 | 62 65 67 29 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 | beg).(1-.(length.alt-response))) |
| 5c560 | 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 | ).....(delete-region.beg.end)... |
| 5c580 | 20 20 28 69 6e 73 65 72 74 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 67 6f 74 | ..(insert.alt-response).....(got |
| 5c5a0 | 6f 2d 63 68 61 72 20 28 2b 20 62 65 67 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 70 75 6c 73 | o-char.(+.beg.offset)).....(puls |
| 5c5c0 | 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 62 65 67 | e-momentary-highlight-region.beg |
| 5c5e0 | 20 28 2b 20 62 65 67 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 | .(+.beg.(length.alt-response)))) |
| 5c600 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6e 65 78 74 2d 76 61 72 69 61 6e 74 20 28 26 | )..(defun.gptel--next-variant.(& |
| 5c620 | 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 | optional.arg)..."Switch.to.next. |
| 5c640 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 | gptel-response.at.this.point,.if |
| 5c660 | 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 | .it.exists."...(interactive."p") |
| 5c680 | 0a 20 20 28 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 2d 20 61 | ...(gptel--previous-variant.(-.a |
| 5c6a0 | 72 67 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 29 0a 3b 3b 3b 20 67 70 74 65 | rg)))..(provide.'gptel).;;;.gpte |
| 5c6c0 | 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c | l.el.ends.here..;;.Local.Variabl |
| 5c6e0 | 65 73 3a 0a 3b 3b 20 62 75 67 2d 72 65 66 65 72 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 74 3a | es:.;;.bug-reference-url-format: |
| 5c700 | 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 | ."https://github.com/karthink/gp |
| 5c720 | 74 65 6c 2f 69 73 73 75 65 73 2f 25 73 22 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 | tel/issues/%s".;;.End:.......... |
| 5c740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c800 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2e 65 6c 00 00 | gptel-0.9.9/gptel-anthropic.el.. |
| 5c820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c860 | 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 |
| 5c880 | 30 30 37 35 35 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 34 34 00 20 30 00 00 00 | 0075535.00000000000.014744..0... |
| 5c8a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c8c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c8e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c900 | 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................... |
| 5c920 | 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................... |
| 5c940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c9a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c9c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5c9e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 5ca00 | 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 |
| 5ca20 | 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..-*- |
| 5ca40 | 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 |
| 5ca60 | 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 | yright.(C).2023-2025..Karthik.Ch |
| 5ca80 | 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 | ikmagalur..;;.Author:.Karthik.Ch |
| 5caa0 | 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d | ikmagalur.<karthikchikmagalur@gm |
| 5cac0 | 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 | ail.com>..;;.This.program.is.fre |
| 5cae0 | 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 |
| 5cb00 | 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 |
| 5cb20 | 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 |
| 5cb40 | 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 |
| 5cb60 | 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 |
| 5cb80 | 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.; |
| 5cba0 | 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 |
| 5cbc0 | 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 |
| 5cbe0 | 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 |
| 5cc00 | 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 |
| 5cc20 | 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. |
| 5cc40 | 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 |
| 5cc60 | 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 |
| 5cc80 | 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 |
| 5cca0 | 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...;; |
| 5ccc0 | 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 |
| 5cce0 | 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 |
| 5cd00 | 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... |
| 5cd20 | 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 |
| 5cd40 | 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:..; |
| 5cd60 | 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 6e 74 | ;.This.file.adds.support.for.Ant |
| 5cd80 | 68 72 6f 70 69 63 27 73 20 4d 65 73 73 61 67 65 73 20 41 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a | hropic's.Messages.API.to.gptel.. |
| 5cda0 | 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a | ;;;.Code:.(require.'cl-generic). |
| 5cdc0 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 | (require.'cl-lib).(require.'map) |
| 5cde0 | 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d | .(require.'gptel)..(defvar.json- |
| 5ce00 | 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | object-type)..(declare-function. |
| 5ce20 | 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d | prop-match-value."text-property- |
| 5ce40 | 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 2d | search").(declare-function.text- |
| 5ce60 | 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d 70 | property-search-backward."text-p |
| 5ce80 | 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | roperty-search").(declare-functi |
| 5cea0 | 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a 28 64 65 63 6c 61 72 65 | on.json-read."json".()).(declare |
| 5cec0 | 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 | -function.gptel-context--wrap."g |
| 5cee0 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ptel-context").(declare-function |
| 5cf00 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 20 22 67 | .gptel-context--collect-media."g |
| 5cf20 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 3b 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 28 4d | ptel-context")..;;;.Anthropic.(M |
| 5cf40 | 65 73 73 61 67 65 73 20 41 50 49 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 | essages.API).(cl-defstruct.(gpte |
| 5cf60 | 6c 2d 61 6e 74 68 72 6f 70 69 63 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d | l-anthropic.(:constructor.gptel- |
| 5cf80 | 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -make-anthropic)................ |
| 5cfa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 | ................(:copier.nil)... |
| 5cfc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 | .............................(:i |
| 5cfe0 | 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 | nclude.gptel-backend)))..;;.NOTE |
| 5d000 | 20 74 68 65 20 63 72 75 63 69 61 6c 20 64 69 66 66 65 72 65 6e 63 65 20 62 65 74 77 65 65 6e 0a | .the.crucial.difference.between. |
| 5d020 | 3b 3b 20 2d 20 28 70 75 73 68 20 76 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | ;;.-.(push.val.(plist-get.info.: |
| 5d040 | 6b 65 79 29 29 20 61 6e 64 0a 3b 3b 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 70 6c 69 73 74 | key)).and.;;...(plist-put.(plist |
| 5d060 | 2d 67 65 74 20 69 6e 66 6f 20 3a 6b 65 79 29 20 28 63 6f 6e 73 20 76 61 6c 20 2e 2e 2e 29 29 0a | -get.info.:key).(cons.val....)). |
| 5d080 | 3b 3b 0a 3b 3b 20 2d 20 28 73 65 74 66 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 6b | ;;.;;.-.(setf.(plist-get.info.:k |
| 5d0a0 | 65 79 29 20 76 61 6c 29 20 61 6e 64 0a 3b 3b 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 | ey).val).and.;;...(plist-put.inf |
| 5d0c0 | 6f 20 3a 6b 65 79 20 76 61 6c 29 0a 3b 3b 0a 3b 3b 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 | o.:key.val).;;.;;.in.the.followi |
| 5d0e0 | 6e 67 20 66 75 6e 63 74 69 6f 6e 2e 20 20 54 68 65 20 66 69 72 73 74 20 76 61 72 69 61 6e 74 20 | ng.function...The.first.variant. |
| 5d100 | 63 6f 6e 73 65 73 20 61 74 20 74 68 65 20 68 65 61 64 20 6f 66 20 69 6e 66 6f 2c 20 74 68 65 0a | conses.at.the.head.of.info,.the. |
| 5d120 | 3b 3b 20 73 65 63 6f 6e 64 20 6f 6e 65 20 61 74 20 74 68 65 20 74 61 69 6c 2e 20 20 54 68 69 73 | ;;.second.one.at.the.tail...This |
| 5d140 | 20 6d 65 61 6e 73 20 6f 6e 6c 79 20 74 68 65 20 73 65 63 6f 6e 64 20 6f 70 74 69 6f 6e 20 69 73 | .means.only.the.second.option.is |
| 5d160 | 20 76 69 61 62 6c 65 20 66 6f 72 0a 3b 3b 20 6d 75 74 61 74 69 6e 67 20 61 20 70 6c 69 73 74 20 | .viable.for.;;.mutating.a.plist. |
| 5d180 | 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 20 74 68 61 74 27 73 20 70 61 73 73 65 64 20 | function.argument.that's.passed. |
| 5d1a0 | 62 79 20 72 65 66 65 72 65 6e 63 65 2e 0a 3b 3b 20 44 6f 20 4e 4f 54 20 63 68 61 6e 67 65 20 74 | by.reference..;;.Do.NOT.change.t |
| 5d1c0 | 68 65 20 70 6c 69 73 74 2d 70 75 74 20 74 6f 20 70 75 73 68 20 6f 72 20 73 65 74 66 21 0a 0a 3b | he.plist-put.to.push.or.setf!..; |
| 5d1e0 | 3b 20 4e 4f 54 45 3a 20 54 68 65 20 73 74 72 65 61 6d 20 70 61 72 73 65 72 20 6c 6f 6f 6b 73 20 | ;.NOTE:.The.stream.parser.looks. |
| 5d200 | 63 6f 6d 70 6c 69 63 61 74 65 64 20 6f 6e 6c 79 20 62 65 63 61 75 73 65 20 69 74 20 68 61 6e 64 | complicated.only.because.it.hand |
| 5d220 | 6c 65 73 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 74 6f 6f 6c 20 63 61 6c 6c 73 2c 20 73 74 72 | les.streaming.;;.tool.calls,.str |
| 5d240 | 65 61 6d 69 6e 67 20 22 74 68 69 6e 6b 69 6e 67 22 20 62 6c 6f 63 6b 73 20 61 6e 64 20 74 68 65 | eaming."thinking".blocks.and.the |
| 5d260 | 69 72 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 2e 20 20 53 74 72 65 61 6d 0a 3b 3b 20 70 61 72 73 | ir.interactions...Stream.;;.pars |
| 5d280 | 69 6e 67 20 69 73 20 73 69 6d 70 6c 65 3a 20 69 66 20 79 6f 75 20 61 72 65 20 73 74 75 64 79 69 | ing.is.simple:.if.you.are.studyi |
| 5d2a0 | 6e 67 20 74 68 69 73 20 63 6f 64 65 2c 20 6c 6f 6f 6b 20 69 6e 73 74 65 61 64 20 61 74 20 61 20 | ng.this.code,.look.instead.at.a. |
| 5d2c0 | 63 6f 6d 6d 69 74 0a 3b 3b 20 66 72 6f 6d 20 62 65 66 6f 72 65 20 74 6f 6f 6c 2d 75 73 65 20 73 | commit.;;.from.before.tool-use.s |
| 5d2e0 | 75 70 70 6f 72 74 20 77 61 73 20 61 64 64 65 64 20 74 6f 20 67 70 74 65 6c 2e 0a 28 63 6c 2d 64 | upport.was.added.to.gptel..(cl-d |
| 5d300 | 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 |
| 5d320 | 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 69 6e | m.((_backend.gptel-anthropic).in |
| 5d340 | 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 41 6e 74 68 72 6f 70 69 63 20 64 61 74 61 20 73 | fo)..."Parse.an.Anthropic.data.s |
| 5d360 | 74 72 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 72 65 73 70 6f 6e 73 65 | tream...Return.the.text.response |
| 5d380 | 20 61 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c | .accumulated.since.the.last.call |
| 5d3a0 | 20 74 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 | .to.this.function...Additionally |
| 5d3c0 | 2c 20 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 74 6f 6f 6c 2d | ,.mutate.state.INFO.to.add.tool- |
| 5d3e0 | 75 73 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 73 74 72 65 61 6d 20 63 6f | use.information.if.the.stream.co |
| 5d400 | 6e 74 61 69 6e 73 20 69 74 2e 20 20 4e 6f 74 20 6d 79 20 62 65 73 74 20 77 6f 72 6b 2c 20 49 20 | ntains.it...Not.my.best.work,.I. |
| 5d420 | 6b 6e 6f 77 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 | know."...(let*.((content-strs).. |
| 5d440 | 20 20 20 20 20 20 20 20 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 | ........(pt.(point))).....(condi |
| 5d460 | 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 | tion-case.nil.........(while.(re |
| 5d480 | 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 65 76 65 6e 74 3a 20 22 20 6e 69 6c 20 74 | -search-forward."^event:.".nil.t |
| 5d4a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 | )...........(setq.pt.(match-begi |
| 5d4c0 | 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 | nning.0))...........(if.(equal.( |
| 5d4e0 | 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a | line-end-position).(point-max)). |
| 5d500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 44 61 74 61 20 62 6c 6f 63 6b | ..............(error."Data.block |
| 5d520 | 20 69 6e 63 6f 6d 70 6c 65 74 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 | .incomplete"))...........(cond.. |
| 5d540 | 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f | ..........((looking-at."content_ |
| 5d560 | 62 6c 6f 63 6b 5f 64 65 6c 74 61 22 29 20 3b 63 6f 6c 6c 65 63 74 20 69 6e 63 72 65 6d 65 6e 74 | block_delta").;collect.increment |
| 5d580 | 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 | al.............(forward-line.1). |
| 5d5a0 | 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 20 20 3b 74 65 78 74 2c 20 74 6f 6f 6c 20 6f 72 | (forward-char.5)..;text,.tool.or |
| 5d5c0 | 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | .thinking.block.............(whe |
| 5d5e0 | 6e 2d 6c 65 74 2a 20 28 28 64 65 6c 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 28 67 70 74 65 6c | n-let*.((delta.(plist-get.(gptel |
| 5d600 | 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 20 3a 64 65 6c 74 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 | --json-read).:delta))).......... |
| 5d620 | 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 | .....(if-let*.((content.(plist-g |
| 5d640 | 65 74 20 64 65 6c 74 61 20 3a 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.delta.:text))................ |
| 5d660 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c 6c | .........((not.(eq.content.:null |
| 5d680 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e | ))))...................(push.con |
| 5d6a0 | 74 65 6e 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 20 3b 63 6f 6c 6c 65 63 74 20 74 65 78 74 | tent.content-strs).;collect.text |
| 5d6c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 61 72 74 | .................(if-let*.((part |
| 5d6e0 | 69 61 6c 2d 6a 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 70 61 72 74 69 | ial-json.(plist-get.delta.:parti |
| 5d700 | 61 6c 5f 6a 73 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | al_json))).....................( |
| 5d720 | 70 6c 69 73 74 2d 70 75 74 20 20 20 20 20 20 20 20 20 20 3b 63 6f 6c 6c 65 63 74 20 70 61 72 74 | plist-put..........;collect.part |
| 5d740 | 69 61 6c 20 74 6f 6f 6c 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ial.tool.input.................. |
| 5d760 | 20 20 20 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 | ....info.:partial_json.......... |
| 5d780 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 70 61 72 74 69 61 6c 2d 6a 73 6f 6e 20 28 | ............(cons.partial-json.( |
| 5d7a0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 0a | plist-get.info.:partial_json))). |
| 5d7c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 74 68 69 | ..................(if-let*.((thi |
| 5d7e0 | 6e 6b 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 74 68 69 6e 6b 69 6e 67 | nking.(plist-get.delta.:thinking |
| 5d800 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 | ))).......................(plist |
| 5d820 | 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 | -put.info.:reasoning............ |
| 5d840 | 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 |
| 5d860 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 74 68 69 6e 6b 69 | list-get.info.:reasoning).thinki |
| 5d880 | 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 | ng)).....................(if-let |
| 5d8a0 | 2a 20 28 28 73 69 67 6e 61 74 75 72 65 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a | *.((signature.(plist-get.delta.: |
| 5d8c0 | 73 69 67 6e 61 74 75 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | signature))).................... |
| 5d8e0 | 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 73 69 67 6e 61 74 75 72 65 0a | .....(plist-put.info.:signature. |
| 5d900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5d920 | 20 20 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 69 67 6e | ...(concat.(plist-get.info.:sign |
| 5d940 | 61 74 75 72 65 29 20 73 69 67 6e 61 74 75 72 65 29 29 29 29 29 29 29 29 0a 0a 20 20 20 20 20 20 | ature).signature))))))))........ |
| 5d960 | 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b | .....((looking-at."content_block |
| 5d980 | 5f 73 74 61 72 74 22 29 20 3b 49 73 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 62 6c 6f 63 6b | _start").;Is.the.following.block |
| 5d9a0 | 20 74 65 78 74 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .text.or.tool-use?.............( |
| 5d9c0 | 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 | forward-line.1).(forward-char.5) |
| 5d9e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 62 6c 6f 63 6b | .............(when-let*.((cblock |
| 5da00 | 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).: |
| 5da20 | 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | content_block)))...............( |
| 5da40 | 70 63 61 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 79 70 65 29 0a 20 | pcase.(plist-get.cblock.:type).. |
| 5da60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 65 78 74 22 20 28 70 75 73 68 20 28 70 6c | ...............("text".(push.(pl |
| 5da80 | 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 65 78 74 29 20 63 6f 6e 74 65 6e 74 2d 73 74 | ist-get.cblock.:text).content-st |
| 5daa0 | 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 5f 75 73 65 22 | rs)).................("tool_use" |
| 5dac0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 | .(plist-put.info.:tool-use...... |
| 5dae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5db00 | 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c | ..(cons.(list.:id.(plist-get.cbl |
| 5db20 | 6f 63 6b 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ock.:id)........................ |
| 5db40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | ............................:nam |
| 5db60 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 | e.(plist-get.cblock.:name))..... |
| 5db80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5dba0 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 | .........(plist-get.info.:tool-u |
| 5dbc0 | 73 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 68 69 6e 6b 69 6e | se)))).................("thinkin |
| 5dbe0 | 67 22 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 28 70 | g".(plist-put.info.:reasoning.(p |
| 5dc00 | 6c 69 73 74 2d 67 65 74 20 63 62 6c 6f 63 6b 20 3a 74 68 69 6e 6b 69 6e 67 29 29 0a 20 20 20 20 | list-get.cblock.:thinking))..... |
| 5dc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 | .............(plist-put.info.:re |
| 5dc40 | 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 27 69 6e 29 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 | asoning-block.'in))))).......... |
| 5dc60 | 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 5f 73 | ...((looking-at."content_block_s |
| 5dc80 | 74 6f 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 | top").............(cond......... |
| 5dca0 | 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a | .....((plist-get.info.:partial_j |
| 5dcc0 | 73 6f 6e 29 20 20 20 3b 45 6e 64 20 6f 66 20 74 6f 6f 6c 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | son)...;End.of.tool.block....... |
| 5dce0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 2d 75 6e 6c 65 73 73 2d 64 | ........(condition-case-unless-d |
| 5dd00 | 65 62 75 67 20 6e 69 6c 20 3b 43 6f 6d 62 69 6e 65 20 70 61 72 74 69 61 6c 20 74 6f 6f 6c 20 69 | ebug.nil.;Combine.partial.tool.i |
| 5dd20 | 6e 70 75 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 | nputs...................(let*.(( |
| 5dd40 | 61 72 67 73 2d 6a 73 6f 6e 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 | args-json.(apply.#'concat.(nreve |
| 5dd60 | 72 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f | rse.(plist-get.info.:partial_jso |
| 5dd80 | 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | n))))..........................( |
| 5dda0 | 61 72 67 73 2d 64 65 63 6f 64 65 64 20 20 3b 48 61 6e 64 6c 65 20 62 6c 61 6e 6b 20 61 72 67 75 | args-decoded..;Handle.blank.argu |
| 5ddc0 | 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.................... |
| 5dde0 | 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 61 72 67 73 2d | .......(if.(string-empty-p.args- |
| 5de00 | 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | json)........................... |
| 5de20 | 20 20 20 20 6e 69 6c 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 72 69 6e 67 | ....nil.(gptel--json-read-string |
| 5de40 | 20 61 72 67 73 2d 6a 73 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .args-json)))).................. |
| 5de60 | 20 20 20 3b 3b 20 41 64 64 20 74 68 65 20 69 6e 70 75 74 20 74 6f 20 74 68 65 20 74 6f 6f 6c 2d | ...;;.Add.the.input.to.the.tool- |
| 5de80 | 63 61 6c 6c 20 73 70 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | call.spec.....................(p |
| 5dea0 | 6c 69 73 74 2d 70 75 74 20 28 63 61 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 | list-put.(car.(plist-get.info.:t |
| 5dec0 | 6f 6f 6c 2d 75 73 65 29 29 20 3a 69 6e 70 75 74 20 61 72 67 73 2d 64 65 63 6f 64 65 64 29 29 0a | ool-use)).:input.args-decoded)). |
| 5dee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 74 68 65 72 65 20 77 61 73 20 | ................;;.If.there.was. |
| 5df00 | 61 6e 20 65 72 72 6f 72 20 69 6e 20 72 65 61 64 69 6e 67 20 74 68 61 74 20 74 6f 6f 6c 2c 20 77 | an.error.in.reading.that.tool,.w |
| 5df20 | 65 20 69 67 6e 6f 72 65 20 69 74 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | e.ignore.it:.................;;. |
| 5df40 | 54 4f 44 4f 28 74 6f 6f 6c 29 20 68 61 6e 64 6c 65 20 74 68 69 73 20 65 72 72 6f 72 20 62 65 74 | TODO(tool).handle.this.error.bet |
| 5df60 | 74 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 70 6f 70 20 | ter.................(error.(pop. |
| 5df80 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 29 29 20 3b 54 | (plist-get.info.:tool-use)))).;T |
| 5dfa0 | 4f 44 4f 3a 20 6e 72 65 76 65 72 73 65 20 3a 74 6f 6f 6c 2d 75 73 65 20 6c 69 73 74 0a 20 20 20 | ODO:.nreverse.:tool-use.list.... |
| 5dfc0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 | ...........(plist-put.info.:part |
| 5dfe0 | 69 61 6c 5f 6a 73 6f 6e 20 6e 69 6c 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 | ial_json.nil))...............((e |
| 5e000 | 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f | q.(plist-get.info.:reasoning-blo |
| 5e020 | 63 6b 29 20 27 69 6e 29 20 3b 45 6e 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 62 6c 6f 63 6b | ck).'in).;End.of.reasoning.block |
| 5e040 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 5e060 | 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 29 29 29 20 3b 53 69 67 6e 61 6c 20 65 6e | reasoning-block.t)))).;Signal.en |
| 5e080 | 64 20 6f 66 20 72 65 61 73 6f 6e 69 6e 67 20 73 74 72 65 61 6d 20 74 6f 20 66 69 6c 74 65 72 0a | d.of.reasoning.stream.to.filter. |
| 5e0a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 6d 65 73 73 61 67 | ............((looking-at."messag |
| 5e0c0 | 65 5f 64 65 6c 74 61 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 6c 65 63 74 | e_delta").............;;.collect |
| 5e0e0 | 20 73 74 6f 70 5f 72 65 61 73 6f 6e 2c 20 75 73 61 67 65 5f 74 6f 6b 65 6e 73 20 61 6e 64 20 70 | .stop_reason,.usage_tokens.and.p |
| 5e100 | 72 65 70 61 72 65 20 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 | repare.tools.............(forwar |
| 5e120 | 64 2d 6c 69 6e 65 20 31 29 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 0a 20 20 20 20 20 | d-line.1).(forward-char.5)...... |
| 5e140 | 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 75 73 65 20 28 70 6c | .......(when-let*.((tool-use.(pl |
| 5e160 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 | ist-get.info.:tool-use))........ |
| 5e180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 | .................(response.(gpte |
| 5e1a0 | 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | l--json-read)))...............(l |
| 5e1c0 | 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 | et*.((data.(plist-get.info.:data |
| 5e1e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 73 | ))......................(prompts |
| 5e200 | 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 29 29 29 0a 20 20 | .(plist-get.data.:messages)))... |
| 5e220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 3b 20 41 70 70 65 6e | ..............(plist-put.;.Appen |
| 5e240 | 64 20 61 20 43 4f 50 59 20 6f 66 20 72 65 73 70 6f 6e 73 65 20 74 65 78 74 20 2b 20 74 6f 6f 6c | d.a.COPY.of.response.text.+.tool |
| 5e260 | 2d 75 73 65 20 74 6f 20 74 68 65 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 | -use.to.the.prompts.list........ |
| 5e280 | 20 20 20 20 20 20 20 20 20 20 64 61 74 61 20 3a 6d 65 73 73 61 67 65 73 0a 20 20 20 20 20 20 20 | ..........data.:messages........ |
| 5e2a0 | 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(vconcat.............. |
| 5e2c0 | 20 20 20 20 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 | .....prompts...................` |
| 5e2e0 | 28 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ((:role."assistant"............. |
| 5e300 | 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 2c 28 76 63 6f 6e 63 61 74 20 3b 49 6e 73 | .........:content.,(vconcat.;Ins |
| 5e320 | 65 72 74 20 61 6e 79 20 4c 4c 4d 20 74 65 78 74 20 61 6e 64 20 74 68 69 6e 6b 69 6e 67 20 74 65 | ert.any.LLM.text.and.thinking.te |
| 5e340 | 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | xt.............................. |
| 5e360 | 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 28 70 6c 69 73 74 2d | ...(and-let*.((reasoning.(plist- |
| 5e380 | 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 | get.info.:partial_reasoning))).. |
| 5e3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5e3c0 | 60 28 28 3a 74 79 70 65 20 22 74 68 69 6e 6b 69 6e 67 22 20 3a 74 68 69 6e 6b 69 6e 67 20 2c 72 | `((:type."thinking".:thinking.,r |
| 5e3e0 | 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | easoning........................ |
| 5e400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 69 67 6e 61 74 75 72 65 20 2c 28 70 6c 69 73 74 2d | .............:signature.,(plist- |
| 5e420 | 67 65 74 20 69 6e 66 6f 20 3a 73 69 67 6e 61 74 75 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 | get.info.:signature))))......... |
| 5e440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 | ........................(and-let |
| 5e460 | 2a 20 28 28 73 74 72 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 | *.((strs.(plist-get.info.:partia |
| 5e480 | 6c 5f 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l_text)))....................... |
| 5e4a0 | 20 20 20 20 20 20 20 20 20 20 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 | ...........`((:type."text".:text |
| 5e4c0 | 20 2c 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 73 74 72 73 | .,(apply.#'concat.(nreverse.strs |
| 5e4e0 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )))))........................... |
| 5e500 | 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c | ......(mapcar.(lambda.(tool-call |
| 5e520 | 29 20 3b 66 6f 6c 6c 6f 77 65 64 20 62 79 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 0a 20 20 | ).;followed.by.the.tool.calls... |
| 5e540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 5e560 | 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 74 6f 6f | ........(append.(list.:type."too |
| 5e580 | 6c 5f 75 73 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l_use")......................... |
| 5e5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 | ...................(copy-sequenc |
| 5e5c0 | 65 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.tool-call))).................. |
| 5e5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 29 29 0a 20 | ................tool-use)))))).. |
| 5e600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a | ...............(plist-put.info.: |
| 5e620 | 70 61 72 74 69 61 6c 5f 74 65 78 74 20 6e 69 6c 29 20 3b 20 43 6c 65 61 72 20 61 6e 79 20 63 61 | partial_text.nil).;.Clear.any.ca |
| 5e640 | 70 74 75 72 65 64 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 | ptured.text.................;;.T |
| 5e660 | 68 65 6e 20 73 68 61 70 65 20 74 68 65 20 74 6f 6f 6c 2d 75 73 65 20 62 6c 6f 63 6b 20 62 79 20 | hen.shape.the.tool-use.block.by. |
| 5e680 | 61 64 64 69 6e 67 20 61 72 67 73 20 73 6f 20 77 65 20 63 61 6e 20 63 61 6c 6c 20 74 68 65 20 66 | adding.args.so.we.can.call.the.f |
| 5e6a0 | 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 28 | unctions.................(mapc.( |
| 5e6c0 | 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | lambda.(tool-call).............. |
| 5e6e0 | 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. |
| 5e700 | 3a 61 72 67 73 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 6e 70 75 | :args.(plist-get.tool-call.:inpu |
| 5e720 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | t)).........................(pli |
| 5e740 | 73 74 2d 70 75 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 6e 70 75 74 20 6e 69 6c 29 0a 20 20 20 | st-put.tool-call.:input.nil).... |
| 5e760 | 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. |
| 5e780 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 | tool-call.:id.(plist-get.tool-ca |
| 5e7a0 | 6c 6c 20 3a 69 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll.:id)))....................... |
| 5e7c0 | 74 6f 6f 6c 2d 75 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | tool-use))...............(plist- |
| 5e7e0 | 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 | put.info.:output-tokens......... |
| 5e800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 | .................(map-nested-elt |
| 5e820 | 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 6f 75 74 70 75 74 5f 74 6f 6b 65 6e | .response.'(:usage.:output_token |
| 5e840 | 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e | s)))...............(plist-put.in |
| 5e860 | 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.:stop-reason................. |
| 5e880 | 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 | .........(map-nested-elt.respons |
| 5e8a0 | 65 20 27 28 3a 64 65 6c 74 61 20 3a 73 74 6f 70 5f 72 65 61 73 6f 6e 29 29 29 29 29 29 29 0a 20 | e.'(:delta.:stop_reason))))))).. |
| 5e8c0 | 20 20 20 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 74 29 29 29 0a 20 20 20 | .....(error.(goto-char.pt))).... |
| 5e8e0 | 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 74 65 78 74 20 28 61 70 70 6c 79 20 23 27 63 | .(let.((response-text.(apply.#'c |
| 5e900 | 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 | oncat.(nreverse.content-strs)))) |
| 5e920 | 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 | .......(unless.(string-empty-p.r |
| 5e940 | 65 73 70 6f 6e 73 65 2d 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | esponse-text).........(plist-put |
| 5e960 | 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:partial_text............. |
| 5e980 | 20 20 20 20 20 20 20 28 63 6f 6e 73 20 72 65 73 70 6f 6e 73 65 2d 74 65 78 74 20 28 70 6c 69 73 | .......(cons.response-text.(plis |
| 5e9a0 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 74 65 78 74 29 29 29 29 0a 20 20 20 | t-get.info.:partial_text)))).... |
| 5e9c0 | 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 73 29 | ...(when.(plist-get.info.:tools) |
| 5e9e0 | 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 61 73 6f 6e 69 6e 67 20 | .........(when-let*.((reasoning. |
| 5ea00 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 29 0a 20 20 | (plist-get.info.:reasoning)))... |
| 5ea20 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c | ........(plist-put.info.:partial |
| 5ea40 | 5f 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _reasoning...................... |
| 5ea60 | 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c | (concat.(plist-get.info.:partial |
| 5ea80 | 5f 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 61 73 6f 6e 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 | _reasoning).reasoning))))....... |
| 5eaa0 | 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. |
| 5eac0 | 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 |
| 5eae0 | 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) |
| 5eb00 | 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 |
| 5eb20 | 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 |
| 5eb40 | 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 |
| 5eb60 | 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 |
| 5eb80 | 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. |
| 5eba0 | 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 |
| 5ebc0 | 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........ |
| 5ebe0 | 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.' |
| 5ec00 | 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- |
| 5ec20 | 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 |
| 5ec40 | 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 |
| 5ec60 | 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.=. |
| 5ec80 | 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.( |
| 5eca0 | 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 |
| 5ecc0 | 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 |
| 5ece0 | 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 |
| 5ed00 | 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. |
| 5ed20 | 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 |
| 5ed40 | 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 |
| 5ed60 | 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 |
| 5ed80 | 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..... |
| 5eda0 | 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 |
| 5edc0 | 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 |
| 5ede0 | 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.... |
| 5ee00 | 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 |
| 5ee20 | 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 |
| 5ee40 | 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 |
| 5ee60 | 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 |
| 5ee80 | 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))). |
| 5eea0 | 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.: |
| 5eec0 | 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 |
| 5eee0 | 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. |
| 5ef00 | 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 |
| 5ef20 | 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 |
| 5ef40 | 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 |
| 5ef60 | 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 |
| 5ef80 | 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 |
| 5efa0 | 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 |
| 5efc0 | 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))....... |
| 5efe0 | 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)..... |
| 5f000 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 | ..(plist-put.call.:id.(plist-get |
| 5f020 | 20 63 61 6c 6c 20 3a 69 64 29 29 0a 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 63 61 6c 6c 20 69 | .call.:id)).......collect.call.i |
| 5f040 | 6e 74 6f 20 63 61 6c 6c 73 0a 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 28 70 6c 69 73 | nto.calls.......finally.do.(plis |
| 5f060 | 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 20 63 61 6c 6c 73 29 29 29 0a 20 20 | t-put.info.:tool-use.calls)))... |
| 5f080 | 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 28 61 6e 64 20 63 6f 6e 74 65 6e 74 2d | .finally.return....(and.content- |
| 5f0a0 | 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 | strs.(apply.#'concat.content-str |
| 5f0c0 | 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 | s))))..(cl-defmethod.gptel--requ |
| 5f0e0 | 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 | est-data.((backend.gptel-anthrop |
| 5f100 | 69 63 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d | ic).prompts)..."JSON.encode.PROM |
| 5f120 | 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 | PTS.for.sending.to.ChatGPT."...( |
| 5f140 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a | let.((prompts-plist..........`(: |
| 5f160 | 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | model.,(gptel--model-name.gptel- |
| 5f180 | 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 | model)............:stream.,(or.g |
| 5f1a0 | 70 74 65 6c 2d 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 | ptel-stream.:json-false)........ |
| 5f1c0 | 20 20 20 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 20 2c 28 6f 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 | ....:max_tokens.,(or.gptel-max-t |
| 5f1e0 | 6f 6b 65 6e 73 20 34 30 39 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 73 73 61 67 65 73 | okens.4096)............:messages |
| 5f200 | 20 5b 2c 40 70 72 6f 6d 70 74 73 5d 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d | .[,@prompts]))).....(when.gptel- |
| 5f220 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 | -system-message.......(if.(and.( |
| 5f240 | 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 61 63 68 65 20 74 29 20 28 6d 65 6d 71 20 27 73 79 73 | or.(eq.gptel-cache.t).(memq.'sys |
| 5f260 | 74 65 6d 20 67 70 74 65 6c 2d 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tem.gptel-cache))............... |
| 5f280 | 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 63 61 63 68 65 29 | .(gptel--model-capable-p.'cache) |
| 5f2a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | )...........;;.gptel--system-mes |
| 5f2c0 | 73 61 67 65 20 69 73 20 67 75 61 72 61 6e 74 65 65 64 20 74 6f 20 62 65 20 61 20 73 74 72 69 6e | sage.is.guaranteed.to.be.a.strin |
| 5f2e0 | 67 0a 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 | g...........(plist-put.prompts-p |
| 5f300 | 6c 69 73 74 20 3a 73 79 73 74 65 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list.:system.................... |
| 5f320 | 20 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 67 70 74 65 6c 2d 2d | ..`[(:type."text".:text.,gptel-- |
| 5f340 | 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | system-message.................. |
| 5f360 | 20 20 20 20 20 20 20 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 | .......:cache_control.(:type."ep |
| 5f380 | 68 65 6d 65 72 61 6c 22 20 3a 74 74 6c 20 22 31 68 22 29 29 5d 29 0a 20 20 20 20 20 20 20 20 28 | hemeral".:ttl."1h"))]).........( |
| 5f3a0 | 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d 20 | plist-put.prompts-plist.:system. |
| 5f3c0 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 28 77 68 | gptel--system-message))).....(wh |
| 5f3e0 | 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 70 6c 69 73 | en.gptel-temperature.......(plis |
| 5f400 | 74 2d 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 | t-put.prompts-plist.:temperature |
| 5f420 | 20 67 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 | .gptel-temperature)).....(when.g |
| 5f440 | 70 74 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 | ptel-use-tools.......(when.(eq.g |
| 5f460 | 70 74 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 | ptel-use-tools.'force).........( |
| 5f480 | 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 5f 63 68 | plist-put.prompts-plist.:tool_ch |
| 5f4a0 | 6f 69 63 65 20 27 28 3a 74 79 70 65 20 22 61 6e 79 22 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 | oice.'(:type."any"))).......(whe |
| 5f4c0 | 6e 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 6f 6f | n.gptel-tools.........(let.((too |
| 5f4e0 | 6c 73 2d 61 72 72 61 79 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 62 61 63 | ls-array.(gptel--parse-tools.bac |
| 5f500 | 6b 65 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 | kend.gptel-tools)))...........(p |
| 5f520 | 6c 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 73 20 74 6f | list-put.prompts-plist.:tools.to |
| 5f540 | 6f 6c 73 2d 61 72 72 61 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 | ols-array)...........(when.(and. |
| 5f560 | 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 61 63 68 65 20 74 29 20 28 6d 65 6d 71 20 27 74 6f | (or.(eq.gptel-cache.t).(memq.'to |
| 5f580 | 6f 6c 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 | ol.gptel-cache))................ |
| 5f5a0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 63 | ......(gptel--model-capable-p.'c |
| 5f5c0 | 61 63 68 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 | ache)).............(nconc.(aref. |
| 5f5e0 | 74 6f 6f 6c 73 2d 61 72 72 61 79 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 74 6f 6f 6c 73 2d 61 72 | tools-array.(1-.(length.tools-ar |
| 5f600 | 72 61 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 63 61 63 | ray)))....................'(:cac |
| 5f620 | 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 20 3a 74 | he_control.(:type."ephemeral".:t |
| 5f640 | 74 6c 20 22 31 68 22 29 29 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d | tl."1h"))))))).....(when.gptel-- |
| 5f660 | 73 63 68 65 6d 61 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d | schema.......(plist-put.prompts- |
| 5f680 | 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 28 76 | plist.:tools..................(v |
| 5f6a0 | 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 28 6c 69 73 74 20 28 | concat...................(list.( |
| 5f6c0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 73 63 68 65 6d 61 20 62 61 63 6b 65 6e 64 20 67 70 74 65 | gptel--parse-schema.backend.gpte |
| 5f6e0 | 6c 2d 2d 73 63 68 65 6d 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | l--schema))...................(p |
| 5f700 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 73 29 29 29 | list-get.prompts-plist.:tools))) |
| 5f720 | 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. |
| 5f740 | 3a 74 6f 6f 6c 5f 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 | :tool_choice..................`( |
| 5f760 | 3a 74 79 70 65 20 22 74 6f 6f 6c 22 20 3a 6e 61 6d 65 20 2c 67 70 74 65 6c 2d 2d 65 72 73 61 74 | :type."tool".:name.,gptel--ersat |
| 5f780 | 7a 2d 6a 73 6f 6e 2d 74 6f 6f 6c 29 29 29 0a 20 20 20 20 3b 3b 20 4d 65 72 67 65 20 72 65 71 75 | z-json-tool))).....;;.Merge.requ |
| 5f7a0 | 65 73 74 20 70 61 72 61 6d 73 20 77 69 74 68 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e | est.params.with.model.and.backen |
| 5f7c0 | 64 20 70 61 72 61 6d 73 2e 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 | d.params......(gptel--merge-plis |
| 5f7e0 | 74 73 0a 20 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 67 70 74 65 6c | ts......prompts-plist......gptel |
| 5f800 | 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 | --request-params......(gptel-bac |
| 5f820 | 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 |
| 5f840 | 64 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 | d)......(gptel--model-request-pa |
| 5f860 | 72 61 6d 73 20 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | rams..gptel-model))))..(cl-defme |
| 5f880 | 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 73 63 68 65 6d 61 20 28 28 5f 62 61 63 6b | thod.gptel--parse-schema.((_back |
| 5f8a0 | 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 73 63 68 65 6d 61 29 0a 20 20 3b | end.gptel-anthropic).schema)...; |
| 5f8c0 | 3b 20 55 6e 6c 69 6b 65 20 74 68 65 20 6f 74 68 65 72 20 62 61 63 6b 65 6e 64 73 2c 20 41 6e 74 | ;.Unlike.the.other.backends,.Ant |
| 5f8e0 | 68 72 6f 70 69 63 20 67 65 6e 65 72 61 74 65 73 20 4a 53 4f 4e 20 75 73 69 6e 67 20 61 20 74 6f | hropic.generates.JSON.using.a.to |
| 5f900 | 6f 6c 20 63 61 6c 6c 2e 20 20 57 65 0a 20 20 3b 3b 20 77 72 69 74 65 20 74 68 65 20 74 6f 6f 6c | ol.call...We...;;.write.the.tool |
| 5f920 | 20 68 65 72 65 2c 20 6d 65 61 6e 74 20 74 6f 20 62 65 20 61 64 64 65 64 20 74 6f 20 3a 74 6f 6f | .here,.meant.to.be.added.to.:too |
| 5f940 | 6c 73 2e 0a 20 20 28 6c 69 73 74 0a 20 20 20 3a 6e 61 6d 65 20 22 72 65 73 70 6f 6e 73 65 5f 6a | ls....(list....:name."response_j |
| 5f960 | 73 6f 6e 22 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 63 6f 72 64 20 4a 53 4f | son"....:description."Record.JSO |
| 5f980 | 4e 20 6f 75 74 70 75 74 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 75 73 65 72 20 70 72 6f 6d 70 | N.output.according.to.user.promp |
| 5f9a0 | 74 22 0a 20 20 20 3a 69 6e 70 75 74 5f 73 63 68 65 6d 61 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 | t"....:input_schema.(gptel--prep |
| 5f9c0 | 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rocess-schema................... |
| 5f9e0 | 28 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 73 63 68 | (gptel--dispatch-schema-type.sch |
| 5fa00 | 65 6d 61 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 | ema))))..(cl-defmethod.gptel--pa |
| 5fa20 | 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 61 6e 74 68 72 | rse-tools.((_backend.gptel-anthr |
| 5fa40 | 6f 70 69 63 29 20 74 6f 6f 6c 73 29 0a 20 20 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 74 6f 20 74 | opic).tools)..."Parse.TOOLS.to.t |
| 5fa60 | 68 65 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 20 74 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e | he.Anthropic.API.tool.definition |
| 5fa80 | 20 73 70 65 63 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 60 67 70 74 65 | .spec...TOOLS.is.a.list.of.`gpte |
| 5faa0 | 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 65 2e 22 0a 20 20 28 | l-tool'.structs,.which.see."...( |
| 5fac0 | 76 63 6f 6e 63 61 74 0a 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 | vconcat....(mapcar.....(lambda.( |
| 5fae0 | 74 6f 6f 6c 29 0a 20 20 20 20 20 20 28 6c 69 73 74 20 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 | tool).......(list.:name.(gptel-t |
| 5fb00 | 6f 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 | ool-name.tool).............:desc |
| 5fb20 | 72 69 70 74 69 6f 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 | ription.(gptel-tool-description. |
| 5fb40 | 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 5f 73 63 68 65 6d 61 20 | tool).............:input_schema. |
| 5fb60 | 3b 4e 4f 54 45 3a 20 41 6e 74 68 72 6f 70 69 63 20 77 61 6e 74 73 20 22 7b 7d 22 20 69 66 20 74 | ;NOTE:.Anthropic.wants."{}".if.t |
| 5fb80 | 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 6e 6f 20 61 72 67 73 2c 20 6e 6f 74 20 6e | he.function.takes.no.args,.not.n |
| 5fba0 | 75 6c 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a | ull.............(list.:type."obj |
| 5fbc0 | 65 63 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 74 68 | ect"...................;;.See.th |
| 5fbe0 | 65 20 67 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 6e 20 | e.generic.implementation.for.an. |
| 5fc00 | 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 66 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | explanation.of.this............. |
| 5fc20 | 20 20 20 20 20 20 3b 3b 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 | ......;;.transformation......... |
| 5fc40 | 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 | ...........:properties.......... |
| 5fc60 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(cl-loop............... |
| 5fc80 | 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 72 67 73 | .....for.arg.in.(gptel-tool-args |
| 5fca0 | 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 | .tool)....................for.ar |
| 5fcc0 | 67 73 70 65 63 20 3d 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 61 72 67 29 0a 20 20 20 20 | gspec.=.(copy-sequence.arg)..... |
| 5fce0 | 20 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 | ...............for.name.=.(plist |
| 5fd00 | 2d 67 65 74 20 61 72 67 20 3a 6e 61 6d 65 29 20 3b 68 61 6e 64 6c 65 64 20 64 69 66 66 65 72 65 | -get.arg.:name).;handled.differe |
| 5fd20 | 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 65 77 6e | ntly....................for.newn |
| 5fd40 | 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 20 6e | ame.=.(or.(and.(keywordp.name).n |
| 5fd60 | 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 20 20 | ame)............................ |
| 5fd80 | 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 61 74 20 22 | ..........(make-symbol.(concat." |
| 5fda0 | 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 20 20 64 6f | :".name)))....................do |
| 5fdc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 52 47 53 50 45 43 20 69 73 20 41 52 | ..................;ARGSPEC.is.AR |
| 5fde0 | 47 20 77 69 74 68 6f 75 74 20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 0a 20 20 20 20 | G.without.unrecognized.keys..... |
| 5fe00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 | ...............(cl-remf.argspec. |
| 5fe20 | 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 28 63 6c 2d 72 65 | :name)....................(cl-re |
| 5fe40 | 6d 66 20 61 72 67 73 70 65 63 20 3a 6f 70 74 69 6f 6e 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | mf.argspec.:optional)........... |
| 5fe60 | 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 | .........if.(equal.(plist-get.ar |
| 5fe80 | 67 20 3a 74 79 70 65 29 20 22 6f 62 6a 65 63 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.:type)."object").............. |
| 5fea0 | 20 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 61 | ......do.(unless.(plist-member.a |
| 5fec0 | 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rgspec.:required)............... |
| 5fee0 | 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 61 72 67 73 70 65 63 20 3a 72 65 | ..........(plist-put.argspec.:re |
| 5ff00 | 71 75 69 72 65 64 20 5b 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 | quired.[]))....................a |
| 5ff20 | 70 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 20 61 72 67 73 70 65 63 29 29 0a 20 20 | ppend.(list.newname.argspec))... |
| 5ff40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 | ................:required....... |
| 5ff60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ............(vconcat............ |
| 5ff80 | 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....... |
| 5ffa0 | 20 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. |
| 5ffc0 | 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 74 20 61 72 67 20 3a | (arg).(and.(not.(plist-get.arg.: |
| 5ffe0 | 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 20 20 20 20 20 20 20 | optional))...................... |
| 60000 | 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 |
| 60020 | 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 20 | t.arg.:name))).................. |
| 60040 | 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 61 72 67 73 20 74 6f | .............(gptel-tool-args.to |
| 60060 | 6f 6c 29 29 29 29 29 29 29 0a 20 20 20 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 74 6f 6f 6c 73 | ol))))))).....(ensure-list.tools |
| 60080 | 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 |
| 600a0 | 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 61 | -tool-results.((_backend.gptel-a |
| 600c0 | 6e 74 68 72 6f 70 69 63 29 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 | nthropic).tool-use)..."Return.a. |
| 600e0 | 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 | prompt.containing.tool.call.resu |
| 60100 | 6c 74 73 20 69 6e 20 54 4f 4f 4c 2d 55 53 45 2e 0a 0a 54 4f 4f 4c 2d 55 53 45 20 69 73 20 61 20 | lts.in.TOOL-USE...TOOL-USE.is.a. |
| 60120 | 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 6e | list.of.plists.containing.tool.n |
| 60140 | 61 6d 65 73 2c 20 61 72 67 75 6d 65 6e 74 73 20 61 6e 64 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 | ames,.arguments.and.call.results |
| 60160 | 2e 22 0a 20 20 3b 3b 20 28 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 | ."...;;.(declare.(side-effect-fr |
| 60180 | 65 65 20 74 29 29 0a 20 20 28 6c 69 73 74 0a 20 20 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 | ee.t))...(list....:role."user".. |
| 601a0 | 20 20 3a 63 6f 6e 74 65 6e 74 0a 20 20 20 28 76 63 6f 6e 63 61 74 0a 20 20 20 20 28 6d 61 70 63 | ..:content....(vconcat.....(mapc |
| 601c0 | 61 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 | ar......(lambda.(tool-call)..... |
| 601e0 | 20 20 20 28 6c 65 74 2a 20 28 28 72 65 73 75 6c 74 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f | ...(let*.((result.(plist-get.too |
| 60200 | 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | l-call.:result))...............( |
| 60220 | 66 6f 72 6d 61 74 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a | formatted................(list.: |
| 60240 | 74 79 70 65 20 22 74 6f 6f 6c 5f 72 65 73 75 6c 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | type."tool_result".............. |
| 60260 | 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 75 73 65 5f 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........:tool_use_id.(plist-get. |
| 60280 | 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-call.:id).................. |
| 602a0 | 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 72 65 73 75 6c 74 | ....:content.(if.(stringp.result |
| 602c0 | 29 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).result........................ |
| 602e0 | 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 20 72 65 73 75 6c 74 | .........(prin1-to-string.result |
| 60300 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 66 6f 72 6d 61 74 74 65 64 0a | )))))..........(prog1.formatted. |
| 60320 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c | ...........(when.(plist-get.tool |
| 60340 | 2d 63 61 6c 6c 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 | -call.:error)..............(plis |
| 60360 | 74 2d 70 75 74 20 66 6f 72 6d 61 74 74 65 64 20 3a 69 73 5f 65 72 72 6f 72 20 74 29 29 29 29 29 | t-put.formatted.:is_error.t))))) |
| 60380 | 0a 20 20 20 20 20 74 6f 6f 6c 2d 75 73 65 29 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 | ......tool-use))))..;;.NOTE:.No. |
| 603a0 | 60 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 27 20 6d 65 74 68 6f 64 20 72 65 | `gptel--inject-prompt'.method.re |
| 603c0 | 71 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 2c 20 73 69 6e 63 | quired.for.gptel-anthropic,.sinc |
| 603e0 | 65 0a 3b 3b 20 74 68 69 73 20 69 73 20 68 61 6e 64 6c 65 64 20 62 79 20 69 74 73 20 64 65 66 67 | e.;;.this.is.handled.by.its.defg |
| 60400 | 65 6e 65 72 69 63 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 | eneric.implementation..;;.TODO:. |
| 60420 | 52 65 6d 6f 76 65 20 74 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 28 23 37 39 32 29 0a 28 64 | Remove.these.functions.(#792).(d |
| 60440 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f | efun.gptel--anthropic-format-too |
| 60460 | 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 2d 69 64 | l-id.(tool-id)...(unless.tool-id |
| 60480 | 0a 20 20 20 20 28 73 65 74 71 20 74 6f 6f 6c 2d 69 64 20 28 73 75 62 73 74 72 69 6e 67 0a 20 20 | .....(setq.tool-id.(substring... |
| 604a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 22 25 | .................(md5.(format."% |
| 604c0 | 73 25 73 22 20 28 72 61 6e 64 6f 6d 29 20 28 66 6c 6f 61 74 2d 74 69 6d 65 29 29 29 0a 20 20 20 | s%s".(random).(float-time))).... |
| 604e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 32 34 29 29 29 0a 20 20 28 69 66 20 | ................nil.24)))...(if. |
| 60500 | 28 6f 72 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 63 61 6c 6c 5f 22 20 74 6f 6f | (or.(string-prefix-p."call_".too |
| 60520 | 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 | l-id)...........(string-prefix-p |
| 60540 | 20 22 74 6f 6f 6c 75 5f 22 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 | ."toolu_".tool-id)).......tool-i |
| 60560 | 64 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 74 6f 6f 6c 75 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 | d.....(format."toolu_%s".tool-id |
| 60580 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 75 6e 66 | )))..(defun.gptel--anthropic-unf |
| 605a0 | 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 28 74 6f 6f 6c 2d 69 64 29 0a 20 20 28 6f 72 20 28 61 | ormat-tool-id.(tool-id)...(or.(a |
| 605c0 | 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 74 6f 6f 6c 75 5f 5c 5c 28 2e 2b 5c 5c 29 | nd.(string-match."toolu_\\(.+\\) |
| 605e0 | 22 20 74 6f 6f 6c 2d 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 | ".tool-id)............(match-str |
| 60600 | 69 6e 67 20 31 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 29 29 0a | ing.1.tool-id)).......tool-id)). |
| 60620 | 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 | .(cl-defmethod.gptel--parse-list |
| 60640 | 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 63 29 20 70 72 6f 6d | .((backend.gptel-anthropic).prom |
| 60660 | 70 74 2d 6c 69 73 74 29 0a 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 0a 20 20 | pt-list)...(let.((full-prompt... |
| 60680 | 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d 6c 69 | .......(if.(consp.(car.prompt-li |
| 606a0 | 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 | st))..............(let.((prompts |
| 606c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 | ))................(dolist.(entry |
| 606e0 | 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c | .prompt-list).;.Advanced.format, |
| 60700 | 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .list.of.lists.................. |
| 60720 | 28 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (pcase.entry.................... |
| 60740 | 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (`(prompt...,msg)............... |
| 60760 | 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 22 0a 20 | ......(push.(list.:role."user".. |
| 60780 | 20 20 20 20 20 20 20 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 | ...............................: |
| 607a0 | 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 20 2c 28 | content.`[(:type."text".:text.,( |
| 607c0 | 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 | or.(car-safe.msg).msg))])....... |
| 607e0 | 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))... |
| 60800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c | .................(`(response..., |
| 60820 | 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 | msg).....................(push.( |
| 60840 | 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 | list.:role."assistant".......... |
| 60860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 | .......................:content. |
| 60880 | 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 28 6f 72 20 28 63 61 72 2d | `[(:type."text".:text.,(or.(car- |
| 608a0 | 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | safe.msg).msg))])............... |
| 608c0 | 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ............prompts))........... |
| 608e0 | 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 | .........(`(tool...,call)....... |
| 60900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 | ..............(unless.(plist-get |
| 60920 | 20 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .call.:id)...................... |
| 60940 | 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 74 | .(plist-put.call.:id.(gptel--ant |
| 60960 | 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 6e 69 6c 29 29 29 0a 20 20 20 | hropic-format-tool-id.nil))).... |
| 60980 | 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 |
| 609a0 | 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 20 20 | le."assistant".................. |
| 609c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 20 3a 74 79 70 | ...............:content.`[(.:typ |
| 609e0 | 65 20 22 74 6f 6f 6c 5f 75 73 65 22 20 3a 69 64 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c | e."tool_use".:id.,(plist-get.cal |
| 60a00 | 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.:id).......................... |
| 60a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 | ....................:name.,(plis |
| 60a40 | 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.call.:name)............... |
| 60a60 | 20 20 20 20 20 20 20 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 | ...............................: |
| 60a80 | 69 6e 70 75 74 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 5d 29 | input.,(plist-get.call.:args))]) |
| 60aa0 | 0a 20 20 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 | ...........................promp |
| 60ac0 | 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 67 | ts).....................(push.(g |
| 60ae0 | 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 61 63 6b 65 6e 64 | ptel--parse-tool-results.backend |
| 60b00 | 20 28 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 29 29 29 20 70 72 6f 6d 70 74 73 29 29 29 29 | .(list.(cdr.entry))).prompts)))) |
| 60b20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 72 6f 6d 70 74 | ................(nreverse.prompt |
| 60b40 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 | s))............(cl-loop.for.text |
| 60b60 | 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c | .in.prompt-list.;.Simple.format, |
| 60b80 | 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .list.of.strings................ |
| 60ba0 | 20 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 20 72 6f 6c 65 | .....for.role.=.t.then.(not.role |
| 60bc0 | 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 74 65 78 74 0a 20 20 | ).....................if.text... |
| 60be0 | 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 6c 69 73 74 20 | ..................collect.(list. |
| 60c00 | 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 74 61 6e 74 | :role.(if.role."user"."assistant |
| 60c20 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ").............................. |
| 60c40 | 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 | .....:content.`[(:type."text".:t |
| 60c60 | 65 78 74 20 2c 74 65 78 74 29 5d 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 63 61 63 68 65 20 6d 65 | ext.,text)]))))).....;;.cache.me |
| 60c80 | 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 6f | ssages.if.required:.add.cache_co |
| 60ca0 | 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 77 | ntrol.to.the.last.message.....(w |
| 60cc0 | 68 65 6e 20 28 61 6e 64 20 28 6f 72 20 28 65 71 20 67 70 74 65 6c 2d 63 61 63 68 65 20 74 29 20 | hen.(and.(or.(eq.gptel-cache.t). |
| 60ce0 | 28 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 | (memq.'message.gptel-cache)).... |
| 60d00 | 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 6c | ............(gptel--model-capabl |
| 60d20 | 65 2d 70 20 27 63 61 63 68 65 29 29 0a 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 | e-p.'cache)).......(nconc.(aref. |
| 60d40 | 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 66 75 6c 6c 2d 70 72 6f 6d 70 | (plist-get.(car.(last.full-promp |
| 60d60 | 74 29 29 20 3a 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 | t)).:content).0)..............'( |
| 60d80 | 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c | :cache_control.(:type."ephemeral |
| 60da0 | 22 20 3a 74 74 6c 20 22 31 68 22 29 29 29 29 0a 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 | ".:ttl."1h")))).....full-prompt) |
| 60dc0 | 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 | )..(cl-defmethod.gptel--parse-bu |
| 60de0 | 66 66 65 72 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 63 29 20 | ffer.((backend.gptel-anthropic). |
| 60e00 | 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 | &optional.max-entries)...(let.(( |
| 60e20 | 70 72 6f 6d 70 74 73 29 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 | prompts).(prev-pt.(point)))..... |
| 60e40 | 28 69 66 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 | (if.(or.gptel-mode.gptel-track-r |
| 60e60 | 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 6f 72 | esponse).........(while.(and.(or |
| 60e80 | 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 72 69 | .(not.max-entries).(>=.max-entri |
| 60ea0 | 65 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f | es.0)).....................(goto |
| 60ec0 | 2d 63 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 65 72 74 79 2d | -char.(previous-single-property- |
| 60ee0 | 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | change.......................... |
| 60f00 | 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 70 6f 69 6e 74 | .......(point).'gptel.nil.(point |
| 60f20 | 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 | -min))).....................(not |
| 60f40 | 20 28 3d 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 | .(=.(point).prev-pt))).......... |
| 60f60 | 20 3b 3b 20 48 41 43 4b 20 55 6e 74 69 6c 20 77 65 20 63 61 6e 20 66 69 6e 64 20 61 20 6d 6f 72 | .;;.HACK.Until.we.can.find.a.mor |
| 60f80 | 65 20 72 6f 62 75 73 74 20 73 6f 6c 75 74 69 6f 6e 20 66 6f 72 20 65 64 69 74 69 6e 67 0a 20 20 | e.robust.solution.for.editing... |
| 60fa0 | 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 70 6f 6e 73 65 73 2c 20 69 67 6e 6f 72 65 20 70 72 6f | ........;;.responses,.ignore.pro |
| 60fc0 | 6d 70 74 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79 20 77 68 69 74 65 73 70 61 63 65 2c | mpts.containing.only.whitespace, |
| 60fe0 | 20 61 73 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 41 | .as.the...........;;.Anthropic.A |
| 61000 | 50 49 20 63 61 6e 27 74 20 68 61 6e 64 6c 65 20 69 74 2e 20 20 53 65 65 20 23 34 35 32 2c 20 23 | PI.can't.handle.it...See.#452,.# |
| 61020 | 34 30 39 2c 20 23 34 30 36 2c 20 23 33 35 31 20 61 6e 64 20 23 33 32 31 0a 20 20 20 20 20 20 20 | 409,.#406,.#351.and.#321........ |
| 61040 | 20 20 20 3b 3b 20 57 65 20 63 68 65 63 6b 20 66 6f 72 20 62 6c 61 6e 6b 20 70 72 6f 6d 70 74 73 | ...;;.We.check.for.blank.prompts |
| 61060 | 20 62 79 20 73 6b 69 70 70 69 6e 67 20 77 68 69 74 65 73 70 61 63 65 20 61 6e 64 20 63 6f 6d 70 | .by.skipping.whitespace.and.comp |
| 61080 | 61 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 | aring...........;;.point.against |
| 610a0 | 20 74 68 65 20 70 72 65 76 69 6f 75 73 2e 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | .the.previous............(unless |
| 610c0 | 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f | .(save-excursion.(skip-syntax-fo |
| 610e0 | 72 77 61 72 64 20 22 20 22 29 20 28 3e 3d 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 | rward.".").(>=.(point).prev-pt)) |
| 61100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 | .............(pcase.(get-char-pr |
| 61120 | 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 | operty.(point).'gptel).......... |
| 61140 | 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 20 20 28 | .....('response................( |
| 61160 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | when-let*.((content............. |
| 61180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 | ................(gptel--trim-pre |
| 611a0 | 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fixes........................... |
| 611c0 | 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | ...(buffer-substring-no-properti |
| 611e0 | 65 73 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | es.(point).prev-pt)))).......... |
| 61200 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b | ........(when.(not.(string-blank |
| 61220 | 2d 70 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -p.content)).................... |
| 61240 | 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 63 | (push.(list.:role."assistant".:c |
| 61260 | 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 0a 20 20 20 20 | ontent.content).prompts))))..... |
| 61280 | 20 20 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 | ..........(`(tool...,id)........ |
| 612a0 | 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......... |
| 612c0 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 | .........(condition-case.nil.... |
| 612e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 63 | ..................(let*.((tool-c |
| 61300 | 61 6c 6c 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 | all.(read.(current-buffer))).... |
| 61320 | 20 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 28 69 64 20 | .........................;;.(id. |
| 61340 | 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 | (gptel--anthropic-format-tool-id |
| 61360 | 20 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 20 20 20 20 | .id))........................... |
| 61380 | 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 6e 61 | ..(name.(plist-get.tool-call.:na |
| 613a0 | 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 20 20 20 20 | me))............................ |
| 613c0 | 20 28 61 72 67 75 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 | .(arguments.(plist-get.tool-call |
| 613e0 | 20 3a 61 72 67 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 | .:args)))....................... |
| 61400 | 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 69 64 29 0a 20 20 | .(plist-put.tool-call.:id.id)... |
| 61420 | 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. |
| 61440 | 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 20 20 20 20 | tool-call.:result............... |
| 61460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d | ....................(string-trim |
| 61480 | 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 |
| 614a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 614c0 | 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 |
| 614e0 | 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 70 75 73 68 | )))........................(push |
| 61500 | 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 61 63 6b | .(gptel--parse-tool-results.back |
| 61520 | 65 6e 64 20 28 6c 69 73 74 20 74 6f 6f 6c 2d 63 61 6c 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 | end.(list.tool-call))........... |
| 61540 | 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 20 20 | ...................prompts)..... |
| 61560 | 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.: |
| 61580 | 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"................ |
| 615a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 60 5b 28 | ....................:content.`[( |
| 615c0 | 20 3a 74 79 70 65 20 22 74 6f 6f 6c 5f 75 73 65 22 20 3a 69 64 20 2c 69 64 20 3a 6e 61 6d 65 20 | .:type."tool_use".:id.,id.:name. |
| 615e0 | 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 20 20 20 | ,name........................... |
| 61600 | 20 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 20 2c 61 72 | ......................:input.,ar |
| 61620 | 67 75 6d 65 6e 74 73 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | guments)])...................... |
| 61640 | 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........prompts))............... |
| 61660 | 20 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 61 64 2d | .....((end-of-file.invalid-read- |
| 61680 | 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 | syntax).....................(mes |
| 616a0 | 73 61 67 65 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 6f | sage.(format."Could.not.parse.to |
| 616c0 | 6f 6c 2d 63 61 6c 6c 20 25 73 20 6f 6e 20 6c 69 6e 65 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 | ol-call.%s.on.line.%s".......... |
| 616e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 64 20 28 | ............................id.( |
| 61700 | 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))))))) |
| 61720 | 29 0a 20 20 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 | )...............('ignore)....... |
| 61740 | 20 20 20 20 20 20 20 20 28 27 6e 69 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........('nil................... |
| 61760 | 20 20 3b 20 75 73 65 72 20 72 6f 6c 65 3a 20 70 6f 73 73 69 62 6c 79 20 77 69 74 68 20 6d 65 64 | ..;.user.role:.possibly.with.med |
| 61780 | 69 61 0a 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 | ia................(if.gptel-trac |
| 617a0 | 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 28 77 68 65 6e | k-media....................(when |
| 617c0 | 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 | -let*.((content.(gptel--anthropi |
| 617e0 | 63 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 20 20 | c-parse-multipart............... |
| 61800 | 20 20 20 20 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 |
| 61820 | 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. |
| 61840 | 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))))............. |
| 61860 | 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 6e 74 65 6e | .........(when.(>.(length.conten |
| 61880 | 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 20 20 28 70 75 | t).0)........................(pu |
| 618a0 | 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 | sh.(list.:role."user".:content.c |
| 618c0 | 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontent).prompts))).............. |
| 618e0 | 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- |
| 61900 | 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 20 20 | -trim-prefixes.................. |
| 61920 | 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 |
| 61940 | 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 |
| 61960 | 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | ev-pt))))....................(pu |
| 61980 | 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 | sh.(list.:role."user".:content.c |
| 619a0 | 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ontent).prompts))))))........... |
| 619c0 | 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 20 20 20 20 20 20 20 | (setq.prev-pt.(point)).......... |
| 619e0 | 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 66 20 6d 61 78 2d 65 | .(and.max-entries.(cl-decf.max-e |
| 61a00 | 6e 74 72 69 65 73 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e | ntries))).......(when-let*.((con |
| 61a20 | 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 72 | tent.(string-trim.(buffer-substr |
| 61a40 | 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing-no-properties............... |
| 61a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e | ...........................(poin |
| 61a80 | 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b | t-min).(point-max))))).........; |
| 61aa0 | 3b 20 58 58 58 20 66 61 69 6c 73 20 69 66 20 63 6f 6e 74 65 6e 74 20 69 73 20 65 6d 70 74 79 2e | ;.XXX.fails.if.content.is.empty. |
| 61ac0 | 20 20 54 68 65 20 63 6f 72 72 65 63 74 20 65 72 72 6f 72 20 62 65 68 61 76 69 6f 72 20 69 73 20 | ..The.correct.error.behavior.is. |
| 61ae0 | 6c 65 66 74 20 74 6f 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 20 66 75 74 75 72 65 20 64 69 73 63 | left.to.........;;.a.future.disc |
| 61b00 | 75 73 73 69 6f 6e 2e 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 | ussion..........(push.(list.:rol |
| 61b20 | 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 29 20 70 72 6f 6d 70 | e."user".:content.content).promp |
| 61b40 | 74 73 29 29 29 0a 20 20 20 20 3b 3b 20 43 61 63 68 65 20 6d 65 73 73 61 67 65 73 20 69 66 20 72 | ts))).....;;.Cache.messages.if.r |
| 61b60 | 65 71 75 69 72 65 64 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 | equired:.add.cache_control.to.th |
| 61b80 | 65 20 6c 61 73 74 20 6d 65 73 73 61 67 65 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 6f 72 20 | e.last.message.....(if.(and.(or. |
| 61ba0 | 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 |
| 61bc0 | 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 28 67 70 | e.gptel-cache))..............(gp |
| 61be0 | 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 0a 20 20 | tel--model-capable-p.'cache))... |
| 61c00 | 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 61 73 74 2d 6d 65 73 73 61 67 65 20 28 70 6c 69 73 74 | ......(let.((last-message.(plist |
| 61c20 | 2d 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 | -get.(car.(last.prompts)).:conte |
| 61c40 | 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 6c 61 73 | nt)))...........(if.(stringp.las |
| 61c60 | 74 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | t-message)...............(plist- |
| 61c80 | 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 | put................(car.(last.pr |
| 61ca0 | 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ompts)).:content................ |
| 61cc0 | 60 5b 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 6c 61 73 74 2d 6d 65 73 73 | `[(:type."text".:text.,last-mess |
| 61ce0 | 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 63 68 65 5f 63 6f 6e | age...................:cache_con |
| 61d00 | 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 6c 22 20 3a 74 74 6c 20 22 31 68 | trol.(:type."ephemeral".:ttl."1h |
| 61d20 | 22 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 61 72 65 66 20 28 | "))]).............(nconc.(aref.( |
| 61d40 | 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 20 3a | plist-get.(car.(last.prompts)).: |
| 61d60 | 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 20 27 | content).0)....................' |
| 61d80 | 28 3a 63 61 63 68 65 5f 63 6f 6e 74 72 6f 6c 20 28 3a 74 79 70 65 20 22 65 70 68 65 6d 65 72 61 | (:cache_control.(:type."ephemera |
| 61da0 | 6c 22 20 3a 74 74 6c 20 22 31 68 22 29 29 29 29 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 | l".:ttl."1h")))))).....prompts)) |
| 61dc0 | 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 70 61 72 73 65 2d | ..(defun.gptel--anthropic-parse- |
| 61de0 | 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 72 74 20 61 20 6d | multipart.(parts)..."Convert.a.m |
| 61e00 | 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 68 65 20 41 6e 74 | ultipart.prompt.PARTS.to.the.Ant |
| 61e20 | 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 70 75 74 20 69 73 | hropic.API.format...The.input.is |
| 61e40 | 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 5c | .an.alist.of.the.form..((:text.\ |
| 61e60 | 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/ |
| 61e80 | 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 |
| 61ea0 | 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 2e 0a 0a 54 | \")...(:text.\"More.text\"))...T |
| 61ec0 | 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 65 6e 74 72 69 65 73 | he.output.is.a.vector.of.entries |
| 61ee0 | 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 74 | .in.a.backend-appropriate.format |
| 61f00 | 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 72 | ."...(cl-loop....for.part.in.par |
| 61f20 | 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 73 | ts....for.n.upfrom.1....with.las |
| 61f40 | 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 20 74 79 70 65 0a | t.=.(length.parts)....with.type. |
| 61f60 | 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 61 72 74 20 3a 74 | ...for.text.=.(plist-get.part.:t |
| 61f80 | 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 67 65 74 20 70 61 | ext)....for.mime.=.(plist-get.pa |
| 61fa0 | 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 70 6c 69 73 74 2d | rt.:mime)....for.media.=.(plist- |
| 61fc0 | 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 20 64 6f 0a 20 | get.part.:media)....if.text.do.. |
| 61fe0 | 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 74 29 29 20 28 | ..(and.(or.(=.n.1).(=.n.last)).( |
| 62000 | 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 69 78 65 73 20 | setq.text.(gptel--trim-prefixes. |
| 62020 | 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 6f 6c 6c 65 63 | text))).and....if.text....collec |
| 62040 | 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 78 74 29 20 69 6e | t.`(:type."text".:text.,text).in |
| 62060 | 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 20 69 66 20 6d 65 | to.parts-array.end....else.if.me |
| 62080 | 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 6f 6e 64 20 20 20 | dia....do....(setq.type.(cond... |
| 620a0 | 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 6c 79 20 73 75 70 | ..................;Currently.sup |
| 620c0 | 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 20 20 20 20 20 20 | ported:.Images.and.PDFs......... |
| 620e0 | 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 6d 69 6d 65 20 30 | .......((equal.(substring.mime.0 |
| 62100 | 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 20 20 20 20 20 20 | .5)."image")."image")........... |
| 62120 | 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 33 2e 35 20 53 6f | .....;;.NOTE:.Only.Claude.3.5.So |
| 62140 | 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 73 3a 0a 20 20 20 | nnet.supports.PDF.documents:.... |
| 62160 | 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 61 70 70 6c 69 63 | ............((equal.mime."applic |
| 62180 | 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 20 20 20 20 20 20 | ation/pdf")."document")......... |
| 621a0 | 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 28 67 70 74 65 6c | .......(t.(error.(concat."(gptel |
| 621c0 | 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 64 3a 20 22 0a 20 | -anthropic).Request.aborted:.".. |
| 621e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 62200 | 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 64 20 4d 49 4d 45 | "trying.to.send.unsupported.MIME |
| 62220 | 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 20 20 20 20 20 20 | .type.%s")...................... |
| 62240 | 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 74 0a 20 20 20 60 | ....mime))))....and.collect....` |
| 62260 | 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 28 3a 74 79 70 65 | (:type.,type......:source.(:type |
| 62280 | 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 65 64 69 61 5f 74 | ."base64"...............:media_t |
| 622a0 | 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 29 0a 20 20 20 20 | ype.,(plist-get.part.:mime)..... |
| 622c0 | 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 61 73 65 36 34 2d | ..........:data.,(gptel--base64- |
| 622e0 | 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 72 | encode.media)))....into.parts-ar |
| 62300 | 72 61 79 0a 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 3a | ray....else.if.(plist-get.part.: |
| 62320 | 74 65 78 74 66 69 6c 65 29 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 20 22 74 65 | textfile).collect....`(:type."te |
| 62340 | 78 74 22 0a 20 20 20 20 20 3a 74 65 78 74 20 2c 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 | xt"......:text.,(with-temp-buffe |
| 62360 | 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 | r...............(gptel--insert-f |
| 62380 | 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 | ile-string.(plist-get.part.:text |
| 623a0 | 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 | file))...............(buffer-str |
| 623c0 | 69 6e 67 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 0a 20 20 20 66 69 | ing)))....into.parts-array....fi |
| 623e0 | 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 28 76 63 6f 6e 63 61 74 20 70 61 72 74 73 2d 61 72 72 61 | nally.return.(vconcat.parts-arra |
| 62400 | 79 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 77 72 61 70 2d | y)))..(cl-defmethod.gptel--wrap- |
| 62420 | 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 61 6e 74 | user-prompt.((_backend.gptel-ant |
| 62440 | 68 72 6f 70 69 63 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 | hropic).prompts................. |
| 62460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c | .......................&optional |
| 62480 | 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 29 0a 20 20 22 57 72 61 70 20 74 68 65 20 6c 61 73 74 20 | .inject-media)..."Wrap.the.last. |
| 624a0 | 75 73 65 72 20 70 72 6f 6d 70 74 20 69 6e 20 50 52 4f 4d 50 54 53 20 77 69 74 68 20 74 68 65 20 | user.prompt.in.PROMPTS.with.the. |
| 624c0 | 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 2e 0a 0a 49 66 20 49 4e 4a 45 43 54 2d 4d 45 44 49 41 | context.string...If.INJECT-MEDIA |
| 624e0 | 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 77 72 61 70 20 69 74 20 77 69 74 68 20 62 61 73 65 36 34 2d | .is.non-nil.wrap.it.with.base64- |
| 62500 | 65 6e 63 6f 64 65 64 20 6d 65 64 69 61 0a 66 69 6c 65 73 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 | encoded.media.files.in.the.conte |
| 62520 | 78 74 2e 22 0a 20 20 28 69 66 20 69 6e 6a 65 63 74 2d 6d 65 64 69 61 0a 20 20 20 20 20 20 3b 3b | xt."...(if.inject-media.......;; |
| 62540 | 20 57 72 61 70 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 6f 6d 70 74 20 77 69 74 68 | .Wrap.the.first.user.prompt.with |
| 62560 | 20 69 6e 63 6c 75 64 65 64 20 6d 65 64 69 61 20 66 69 6c 65 73 2f 63 6f 6e 74 65 78 74 73 0a 20 | .included.media.files/contexts.. |
| 62580 | 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6d 65 64 69 61 2d 6c 69 73 74 20 28 67 70 | .....(when-let*.((media-list.(gp |
| 625a0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 29 29 29 0a 20 20 | tel-context--collect-media)))... |
| 625c0 | 20 20 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 | ......(cl-callf.(lambda.(current |
| 625e0 | 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 0a 20 | ).....................(vconcat.. |
| 62600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 6e 74 68 | ....................(gptel--anth |
| 62620 | 72 6f 70 69 63 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 | ropic-parse-multipart.media-list |
| 62640 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 74 79 70 65 63 | )......................(cl-typec |
| 62660 | 61 73 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ase.current..................... |
| 62680 | 20 20 20 28 73 74 72 69 6e 67 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 | ...(string.`((:type."text".:text |
| 626a0 | 20 2c 63 75 72 72 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .,current))).................... |
| 626c0 | 20 20 20 20 28 76 65 63 74 6f 72 20 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ....(vector.current)............ |
| 626e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 63 75 72 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 | ............(t.current))))...... |
| 62700 | 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 20 | .......(plist-get.(car.prompts). |
| 62720 | 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 20 74 68 65 20 6c 61 73 74 | :content))).....;;.Wrap.the.last |
| 62740 | 20 75 73 65 72 20 70 72 6f 6d 70 74 20 77 69 74 68 20 69 6e 63 6c 75 64 65 64 20 74 65 78 74 20 | .user.prompt.with.included.text. |
| 62760 | 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 | contexts.....(cl-callf.(lambda.( |
| 62780 | 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 | current).................(cl-ety |
| 627a0 | 70 65 63 61 73 65 20 63 75 72 72 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pecase.current.................. |
| 627c0 | 20 28 73 74 72 69 6e 67 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 63 75 | .(string.(gptel-context--wrap.cu |
| 627e0 | 72 72 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f | rrent))...................(vecto |
| 62800 | 72 20 28 69 66 2d 6c 65 74 2a 20 28 28 77 72 61 70 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | r.(if-let*.((wrapped.(gptel-cont |
| 62820 | 65 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ext--wrap.nil)))................ |
| 62840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 60 28 28 3a 74 79 70 65 | ...............(vconcat.`((:type |
| 62860 | 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 29 0a 20 20 20 20 20 20 20 | ."text".:text.,wrapped))........ |
| 62880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 628a0 | 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | current)........................ |
| 628c0 | 20 20 20 20 20 63 75 72 72 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | .....current)))).........(plist- |
| 628e0 | 67 65 74 20 28 63 61 72 20 28 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e | get.(car.(last.prompts)).:conten |
| 62900 | 74 29 29 29 29 0a 0a 3b 3b 20 28 69 66 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 78 74 2d 73 74 72 | t))))..;;.(if-let*.((context-str |
| 62920 | 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 67 70 74 65 6c | ing.(gptel-context--string.gptel |
| 62940 | 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 29 0a 3b 3b 20 20 20 20 20 28 63 6c 2d 63 61 | -context--alist))).;;.....(cl-ca |
| 62960 | 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 70 72 65 76 69 6f 75 73 29 0a 3b 3b 20 20 20 20 20 20 20 | llf.(lambda.(previous).;;....... |
| 62980 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 74 79 70 65 63 61 73 65 20 70 72 65 76 69 6f 75 73 0a | ..........(cl-typecase.previous. |
| 629a0 | 3b 3b 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 20 28 63 6f | ;;...................(string.(co |
| 629c0 | 6e 63 61 74 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 70 72 65 76 69 6f 75 73 29 29 0a 3b | ncat.context-string.previous)).; |
| 629e0 | 3b 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 76 63 6f | ;...................(vector.(vco |
| 62a00 | 6e 63 61 74 20 60 28 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 3a 74 65 78 74 20 2c 70 72 65 76 | ncat.`((:type."text".:text.,prev |
| 62a20 | 69 6f 75 73 29 29 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 20 | ious)).;;....................... |
| 62a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 65 76 69 6f 75 73 29 29 0a 3b 3b 20 20 20 20 20 20 | .............previous)).;;...... |
| 62a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 29 | .............(t.context-string)) |
| 62a80 | 29 0a 3b 3b 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 28 6c 61 | ).;;.........(plist-get.(car.(la |
| 62aa0 | 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 63 6f | st.prompts)).:content)))..(defco |
| 62ac0 | 6e 73 74 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 | nst.gptel--anthropic-models...'( |
| 62ae0 | 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 0a 20 20 20 20 | (claude-3-7-sonnet-20250219..... |
| 62b00 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 79 62 72 69 64 20 6d 6f 64 65 6c 20 63 61 70 61 | .:description."Hybrid.model.capa |
| 62b20 | 62 6c 65 20 6f 66 20 73 74 61 6e 64 61 72 64 20 74 68 69 6e 6b 69 6e 67 20 61 6e 64 20 65 78 74 | ble.of.standard.thinking.and.ext |
| 62b40 | 65 6e 64 65 64 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 | ended.thinking.modes"......:capa |
| 62b60 | 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). |
| 62b80 | 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"." |
| 62ba0 | 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 |
| 62bc0 | 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e | bp"."application/pdf")......:con |
| 62be0 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 | text-window.200......:input-cost |
| 62c00 | 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 | .3......:output-cost.15......:cu |
| 62c20 | 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 32 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 | toff-date."2025-02").....(claude |
| 62c40 | 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 | -sonnet-4-20250514......:descrip |
| 62c60 | 74 69 6f 6e 20 22 48 69 67 68 2d 70 65 72 66 6f 72 6d 61 6e 63 65 20 6d 6f 64 65 6c 20 77 69 74 | tion."High-performance.model.wit |
| 62c80 | 68 20 65 78 63 65 70 74 69 6f 6e 61 6c 20 72 65 61 73 6f 6e 69 6e 67 20 61 6e 64 20 65 66 66 69 | h.exceptional.reasoning.and.effi |
| 62ca0 | 63 69 65 6e 63 79 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 | ciency"......:capabilities.(medi |
| 62cc0 | 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 | a.tool-use.cache)......:mime-typ |
| 62ce0 | 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d | es.("image/jpeg"."image/png"."im |
| 62d00 | 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 | age/gif"."image/webp"."applicati |
| 62d20 | 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 | on/pdf")......:context-window.20 |
| 62d40 | 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 | 0......:input-cost.3......:outpu |
| 62d60 | 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 | t-cost.15......:cutoff-date."202 |
| 62d80 | 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 31 2d 32 30 32 35 | 5-03").....(claude-opus-4-1-2025 |
| 62da0 | 30 38 30 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 63 61 70 | 0805......:description."Most.cap |
| 62dc0 | 61 62 6c 65 20 6d 6f 64 65 6c 20 66 6f 72 20 63 6f 6d 70 6c 65 78 20 72 65 61 73 6f 6e 69 6e 67 | able.model.for.complex.reasoning |
| 62de0 | 20 61 6e 64 20 61 64 76 61 6e 63 65 64 20 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 | .and.advanced.coding"......:capa |
| 62e00 | 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). |
| 62e20 | 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"." |
| 62e40 | 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 |
| 62e60 | 62 70 22 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e | bp"."application/pdf")......:con |
| 62e80 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 | text-window.200......:input-cost |
| 62ea0 | 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 63 | .15......:output-cost.75......:c |
| 62ec0 | 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 | utoff-date."2025-03").....(claud |
| 62ee0 | 65 2d 6f 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 | e-opus-4-20250514......:descript |
| 62f00 | 69 6f 6e 20 22 41 6e 74 68 72 6f 70 69 63 27 73 20 70 72 65 76 69 6f 75 73 20 66 6c 61 67 73 68 | ion."Anthropic's.previous.flagsh |
| 62f20 | 69 70 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 | ip.model"......:capabilities.(me |
| 62f40 | 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 | dia.tool-use.cache)......:mime-t |
| 62f60 | 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 | ypes.("image/jpeg"."image/png"." |
| 62f80 | 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 61 | image/gif"."image/webp"."applica |
| 62fa0 | 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 | tion/pdf")......:context-window. |
| 62fc0 | 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 | 200......:input-cost.15......:ou |
| 62fe0 | 74 70 75 74 2d 63 6f 73 74 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.75......:cutoff-date." |
| 63000 | 32 30 32 35 2d 30 33 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 | 2025-03").....(claude-3-5-sonnet |
| 63020 | 2d 32 30 32 34 31 30 32 32 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 | -20241022......:description."Hig |
| 63040 | 68 65 73 74 20 6c 65 76 65 6c 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 63 | hest.level.of.intelligence.and.c |
| 63060 | 61 70 61 62 69 6c 69 74 79 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d | apability"......:capabilities.(m |
| 63080 | 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d | edia.tool-use.cache)......:mime- |
| 630a0 | 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 70 6e 67 22 20 | types.("image/jpeg"."image/png". |
| 630c0 | 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 61 70 70 6c 69 63 | "image/gif"."image/webp"."applic |
| 630e0 | 61 74 69 6f 6e 2f 70 64 66 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 | ation/pdf")......:context-window |
| 63100 | 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 | .200......:input-cost.3......:ou |
| 63120 | 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.15......:cutoff-date." |
| 63140 | 32 30 32 34 2d 30 34 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 73 6f 6e 6e 65 74 | 2024-04").....(claude-3-5-sonnet |
| 63160 | 2d 32 30 32 34 30 36 32 30 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 | -20240620......:description."Hig |
| 63180 | 68 65 73 74 20 6c 65 76 65 6c 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 63 | hest.level.of.intelligence.and.c |
| 631a0 | 61 70 61 62 69 6c 69 74 79 20 28 65 61 72 6c 69 65 72 20 76 65 72 73 69 6f 6e 29 22 0a 20 20 20 | apability.(earlier.version)".... |
| 631c0 | 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 | ..:capabilities.(media.tool-use. |
| 631e0 | 63 61 63 68 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f | cache)......:mime-types.("image/ |
| 63200 | 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 |
| 63220 | 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 |
| 63240 | 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f 75 | .200......:input-cost.3......:ou |
| 63260 | 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 | tput-cost.15......:cutoff-date." |
| 63280 | 32 30 32 34 2d 30 34 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 35 2d 68 61 69 6b 75 2d | 2024-04").....(claude-3-5-haiku- |
| 632a0 | 32 30 32 34 31 30 32 32 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 74 65 | 20241022......:description."Inte |
| 632c0 | 6c 6c 69 67 65 6e 63 65 20 61 74 20 62 6c 61 7a 69 6e 67 20 73 70 65 65 64 73 22 0a 20 20 20 20 | lligence.at.blazing.speeds"..... |
| 632e0 | 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a | .:capabilities.(tool-use.cache). |
| 63300 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 | .....:context-window.200......:i |
| 63320 | 6e 70 75 74 2d 63 6f 73 74 20 31 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | nput-cost.1.00......:output-cost |
| 63340 | 20 35 2e 30 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 37 | .5.00......:cutoff-date."2024-07 |
| 63360 | 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 0a 20 | ").....(claude-3-opus-20240229.. |
| 63380 | 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 6f 70 2d 6c 65 76 65 6c 20 70 65 72 66 | ....:description."Top-level.perf |
| 633a0 | 6f 72 6d 61 6e 63 65 2c 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 2c 20 66 6c 75 65 6e 63 79 2c 20 | ormance,.intelligence,.fluency,. |
| 633c0 | 61 6e 64 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c | and.understanding"......:capabil |
| 633e0 | 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 | ities.(media.tool-use.cache).... |
| 63400 | 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 | ..:mime-types.("image/jpeg"."ima |
| 63420 | 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 67 69 66 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | ge/png"."image/gif"."image/webp" |
| 63440 | 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 | )......:context-window.200...... |
| 63460 | 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | :input-cost.15......:output-cost |
| 63480 | 20 37 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 30 38 22 29 | .75......:cutoff-date."2023-08") |
| 634a0 | 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 0a 20 | .....(claude-3-sonnet-20240229.. |
| 634c0 | 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 42 61 6c 61 6e 63 65 20 6f 66 20 69 6e 74 | ....:description."Balance.of.int |
| 634e0 | 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 73 70 65 65 64 20 28 6c 65 67 61 63 79 20 6d 6f 64 65 | elligence.and.speed.(legacy.mode |
| 63500 | 6c 29 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6d 65 64 69 61 20 74 6f | l)"......:capabilities.(media.to |
| 63520 | 6f 6c 2d 75 73 65 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 | ol-use)......:mime-types.("image |
| 63540 | 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"." |
| 63560 | 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 |
| 63580 | 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 3a 6f | w.200......:input-cost.3......:o |
| 635a0 | 75 74 70 75 74 2d 63 6f 73 74 20 31 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 | utput-cost.15......:cutoff-date. |
| 635c0 | 22 32 30 32 33 2d 30 38 22 29 0a 20 20 20 20 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 | "2023-08").....(claude-3-haiku-2 |
| 635e0 | 30 32 34 30 33 30 37 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 20 | 0240307......:description."Fast. |
| 63600 | 61 6e 64 20 6d 6f 73 74 20 63 6f 6d 70 61 63 74 20 6d 6f 64 65 6c 20 66 6f 72 20 6e 65 61 72 2d | and.most.compact.model.for.near- |
| 63620 | 69 6e 73 74 61 6e 74 20 72 65 73 70 6f 6e 73 69 76 65 6e 65 73 73 22 0a 20 20 20 20 20 3a 63 61 | instant.responsiveness"......:ca |
| 63640 | 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 63 61 63 68 65 29 0a 20 20 20 20 | pabilities.(tool-use.cache)..... |
| 63660 | 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 32 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 | .:context-window.200......:input |
| 63680 | 2d 63 6f 73 74 20 30 2e 32 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 32 | -cost.0.25......:output-cost.1.2 |
| 636a0 | 35 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 33 2d 30 38 22 29 29 0a | 5......:cutoff-date."2023-08")). |
| 636c0 | 20 20 22 4c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 41 6e 74 68 72 6f 70 69 63 20 6d | .."List.of.available.Anthropic.m |
| 636e0 | 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 2e | odels.and.associated.properties. |
| 63700 | 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 65 | .Keys:..-.`:description':.a.brie |
| 63720 | 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 60 | f.description.of.the.model...-.` |
| 63740 | 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 69 | :capabilities':.a.list.of.capabi |
| 63760 | 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 0a | lities.supported.by.the.model... |
| 63780 | 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 6f | -.`:mime-types':.a.list.of.suppo |
| 637a0 | 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 2e | rted.MIME.types.for.media.files. |
| 637c0 | 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 65 | ..-.`:context-window':.the.conte |
| 637e0 | 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 20 | xt.window.size,.in.thousands.of. |
| 63800 | 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 6e | tokens...-.`:input-cost':.the.in |
| 63820 | 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 6c | put.cost,.in.US.dollars.per.mill |
| 63840 | 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 74 | ion.tokens...-.`:output-cost':.t |
| 63860 | 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 65 | he.output.cost,.in.US.dollars.pe |
| 63880 | 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 61 | r.million.tokens...-.`:cutoff-da |
| 638a0 | 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 0a | te':.the.knowledge.cutoff.date.. |
| 638c0 | 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 66 | .-.`:request-params':.a.plist.of |
| 638e0 | 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 74 | .additional.request.parameters.t |
| 63900 | 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 65 | o...include.when.using.this.mode |
| 63920 | 6c 2e 0a 0a 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 41 6e 74 68 72 6f | l...Information.about.the.Anthro |
| 63940 | 70 69 63 20 6d 6f 64 65 6c 73 20 77 61 73 20 6f 62 74 61 69 6e 65 64 20 66 72 6f 6d 20 74 68 65 | pic.models.was.obtained.from.the |
| 63960 | 20 66 6f 6c 6c 6f 77 69 6e 67 0a 63 6f 6d 70 61 72 69 73 6f 6e 20 74 61 62 6c 65 3a 0a 0a 55 52 | .following.comparison.table:..UR |
| 63980 | 4c 20 60 68 74 74 70 73 3a 2f 2f 64 6f 63 73 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 2f 65 6e | L.`https://docs.anthropic.com/en |
| 639a0 | 2f 64 6f 63 73 2f 61 62 6f 75 74 2d 63 6c 61 75 64 65 2f 6d 6f 64 65 6c 73 23 6d 6f 64 65 6c 2d | /docs/about-claude/models#model- |
| 639c0 | 63 6f 6d 70 61 72 69 73 6f 6e 2d 74 61 62 6c 65 27 22 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c | comparison-table'")..;;;###autol |
| 639e0 | 6f 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 | oad.(cl-defun.gptel-make-anthrop |
| 63a00 | 69 63 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 | ic.....(name.&key.curl-args.stre |
| 63a20 | 61 6d 20 6b 65 79 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 | am.key.request-params........... |
| 63a40 | 28 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 | (header............(lambda.().(w |
| 63a60 | 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b | hen-let*.((key.(gptel--get-api-k |
| 63a80 | 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 78 2d 61 | ey)))....................`(("x-a |
| 63aa0 | 70 69 2d 6b 65 79 22 20 2e 20 2c 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pi-key"...,key)................. |
| 63ac0 | 20 20 20 20 20 28 22 61 6e 74 68 72 6f 70 69 63 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 32 30 32 | .....("anthropic-version"..."202 |
| 63ae0 | 33 2d 30 36 2d 30 31 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | 3-06-01")......................( |
| 63b00 | 22 61 6e 74 68 72 6f 70 69 63 2d 62 65 74 61 22 20 2e 20 22 65 78 74 65 6e 64 65 64 2d 63 61 63 | "anthropic-beta"..."extended-cac |
| 63b20 | 68 65 2d 74 74 6c 2d 32 30 32 35 2d 30 34 2d 31 31 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | he-ttl-2025-04-11")))))......... |
| 63b40 | 20 20 28 6d 6f 64 65 6c 73 20 67 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c | ..(models.gptel--anthropic-model |
| 63b60 | 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 61 6e 74 68 72 6f 70 69 | s)...........(host."api.anthropi |
| 63b80 | 63 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 | c.com")...........(protocol."htt |
| 63ba0 | 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 76 31 2f 6d 65 | ps")...........(endpoint."/v1/me |
| 63bc0 | 73 73 61 67 65 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 41 6e 74 68 72 6f 70 | ssages"))..."Register.an.Anthrop |
| 63be0 | 69 63 20 41 50 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 | ic.API-compatible.backend.for.gp |
| 63c00 | 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 | tel.with.NAME...Keyword.argument |
| 63c20 | 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 | s:..CURL-ARGS.(optional).is.a.li |
| 63c40 | 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e | st.of.additional.Curl.arguments. |
| 63c60 | 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 | ..HOST.(optional).is.the.API.hos |
| 63c80 | 74 2c 20 5c 22 61 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 5c 22 20 62 79 20 64 65 66 61 | t,.\"api.anthropic.com\".by.defa |
| 63ca0 | 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 20 61 76 61 69 6c 61 | ult...MODELS.is.a.list.of.availa |
| 63cc0 | 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2c 20 61 73 20 73 79 6d 62 6f 6c 73 2e 0a 41 64 64 | ble.model.names,.as.symbols..Add |
| 63ce0 | 69 74 69 6f 6e 61 6c 6c 79 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 69 66 79 20 73 75 70 70 6f | itionally,.you.can.specify.suppo |
| 63d00 | 72 74 65 64 20 4c 4c 4d 20 63 61 70 61 62 69 6c 69 74 69 65 73 20 6c 69 6b 65 0a 76 69 73 69 6f | rted.LLM.capabilities.like.visio |
| 63d20 | 6e 20 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 61 20 70 6c 69 | n.or.tool-use.by.appending.a.pli |
| 63d40 | 73 74 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 20 77 69 74 68 20 6d 6f 72 65 0a 69 6e 66 6f 72 6d | st.to.the.model.with.more.inform |
| 63d60 | 61 74 69 6f 6e 2c 20 69 6e 20 74 68 65 20 66 6f 72 6d 0a 0a 20 28 6d 6f 64 65 6c 2d 6e 61 6d 65 | ation,.in.the.form...(model-name |
| 63d80 | 20 2e 20 70 6c 69 73 74 29 0a 0a 46 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 63 75 72 72 65 6e 74 | ...plist)..For.a.list.of.current |
| 63da0 | 6c 79 20 72 65 63 6f 67 6e 69 7a 65 64 20 70 6c 69 73 74 20 6b 65 79 73 2c 20 73 65 65 0a 60 67 | ly.recognized.plist.keys,.see.`g |
| 63dc0 | 70 74 65 6c 2d 2d 61 6e 74 68 72 6f 70 69 63 2d 6d 6f 64 65 6c 73 27 2e 20 41 6e 20 65 78 61 6d | ptel--anthropic-models'..An.exam |
| 63de0 | 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 6f 6e 0a 69 6e 63 | ple.of.a.model.specification.inc |
| 63e00 | 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 3a 0a 0a 3a 6d 6f | luding.both.kinds.of.specs:..:mo |
| 63e20 | 64 65 6c 73 0a 5c 5c 3d 27 28 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 30 33 30 | dels.\\='(claude-3-haiku-2024030 |
| 63e40 | 37 20 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 0a 20 20 | 7...............;Simple.specs... |
| 63e60 | 63 6c 61 75 64 65 2d 33 2d 6f 70 75 73 2d 32 30 32 34 30 32 32 39 0a 20 20 28 63 6c 61 75 64 65 | claude-3-opus-20240229...(claude |
| 63e80 | 2d 33 2d 35 2d 73 6f 6e 6e 65 74 2d 32 30 32 34 30 36 32 30 20 20 20 20 20 20 20 20 20 20 20 3b | -3-5-sonnet-20240620...........; |
| 63ea0 | 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 20 5c 22 42 61 6c | Full.spec....:description..\"Bal |
| 63ec0 | 61 6e 63 65 20 6f 66 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 61 6e 64 20 73 70 65 65 64 5c 22 | ance.of.intelligence.and.speed\" |
| 63ee0 | 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 74 6f 6f 6c 20 6a 73 | ....:capabilities.(media.tool.js |
| 63f00 | 6f 6e 29 0a 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 0a 20 20 20 28 5c 22 69 6d 61 67 65 2f 6a | on)....:mime-types....(\"image/j |
| 63f20 | 70 65 67 5c 22 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 20 5c 22 69 6d 61 67 65 2f 67 69 66 5c | peg\".\"image/png\".\"image/gif\ |
| 63f40 | 22 20 5c 22 69 6d 61 67 65 2f 77 65 62 70 5c 22 29 29 29 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 | ".\"image/webp\")))..STREAM.is.a |
| 63f60 | 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 | .boolean.to.toggle.streaming.res |
| 63f80 | 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 | ponses,.defaults.to.false...PROT |
| 63fa0 | 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 | OCOL.(optional).specifies.the.pr |
| 63fc0 | 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f | otocol,.https.by.default...ENDPO |
| 63fe0 | 49 4e 54 20 28 6f 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 | INT.(optional).is.the.API.endpoi |
| 64000 | 6e 74 20 66 6f 72 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 | nt.for.completions,.defaults.to. |
| 64020 | 5c 22 2f 76 31 2f 6d 65 73 73 61 67 65 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f | \"/v1/messages\"...HEADER.(optio |
| 64040 | 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 | nal).is.for.additional.headers.t |
| 64060 | 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 | o.send.with.each.request...It.sh |
| 64080 | 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 | ould.be.an.alist.or.a.function.t |
| 640a0 | 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 | hat.retuns.an.alist,.like:..((\" |
| 640c0 | 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a | Content-Type\"...\"application/j |
| 640e0 | 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 | son\"))..KEY.is.a.variable.whose |
| 64100 | 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 |
| 64120 | 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 |
| 64140 | 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 |
| 64160 | 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 |
| 64180 | 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. |
| 641a0 | 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 |
| 641c0 | 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 |
| 641e0 | 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. |
| 64200 | 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 28 6c 65 74 20 | "...(declare.(indent.1))...(let. |
| 64220 | 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 | ((backend.(gptel--make-anthropic |
| 64240 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 | ...................:curl-args.cu |
| 64260 | 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 | rl-args...................:name. |
| 64280 | 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 6f 73 | name...................:host.hos |
| 642a0 | 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 61 64 | t...................:header.head |
| 642c0 | 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 20 20 | er...................:key.key... |
| 642e0 | 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 2d 2d | ................:models.(gptel-- |
| 64300 | 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 20 20 | process-models.models).......... |
| 64320 | 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 20 20 | .........:protocol.protocol..... |
| 64340 | 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 6e 74 | ..............:endpoint.endpoint |
| 64360 | 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 65 61 | ...................:stream.strea |
| 64380 | 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 61 72 | m...................:request-par |
| 643a0 | 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 20 20 | ams.request-params.............. |
| 643c0 | 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 | .....:url.(if.protocol.......... |
| 643e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 | ..................(concat.protoc |
| 64400 | 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 | ol."://".host.endpoint)......... |
| 64420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e | .................(concat.host.en |
| 64440 | 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 | dpoint))))).....(prog1.backend.. |
| 64460 | 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c | .....(setf.(alist-get.name.gptel |
| 64480 | 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 20 20 | --known-backends................ |
| 644a0 | 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 20 20 | ........nil.nil.#'equal)........ |
| 644c0 | 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 | ...........backend))))..(provide |
| 644e0 | 20 27 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 61 6e 74 | .'gptel-anthropic).;;;.gptel-ant |
| 64500 | 68 72 6f 70 69 63 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 | hropic.el.ends.here..;;.Local.Va |
| 64520 | 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 | riables:.;;.byte-compile-warning |
| 64540 | 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 0a 00 00 00 | s:.(not.docstrings).;;.End:..... |
| 64560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 645a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 645c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 645e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64600 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 4c 49 43 45 4e 53 45 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/LICENSE............. |
| 64620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64660 | 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 |
| 64680 | 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 32 00 20 30 00 00 00 | 0104511.00000000000.012312..0... |
| 646a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 646c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 646e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64700 | 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................... |
| 64720 | 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................... |
| 64740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 647a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 647c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 647e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 64800 | 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. |
| 64820 | 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.................. |
| 64840 | 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... |
| 64860 | 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 |
| 64880 | 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 |
| 648a0 | 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 |
| 648c0 | 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 |
| 648e0 | 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 |
| 64900 | 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.... |
| 64920 | 20 20 20 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 |
| 64940 | 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 |
| 64960 | 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 |
| 64980 | 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 |
| 649a0 | 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 |
| 649c0 | 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 |
| 649e0 | 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 |
| 64a00 | 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. |
| 64a20 | 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 |
| 64a40 | 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 |
| 64a60 | 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 |
| 64a80 | 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 |
| 64aa0 | 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 |
| 64ac0 | 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 |
| 64ae0 | 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 |
| 64b00 | 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 |
| 64b20 | 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 |
| 64b40 | 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 |
| 64b60 | 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 |
| 64b80 | 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 |
| 64ba0 | 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 |
| 64bc0 | 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 |
| 64be0 | 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 |
| 64c00 | 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 |
| 64c20 | 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 |
| 64c40 | 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 |
| 64c60 | 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 |
| 64c80 | 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 |
| 64ca0 | 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. |
| 64cc0 | 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. |
| 64ce0 | 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 |
| 64d00 | 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 |
| 64d20 | 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 |
| 64d40 | 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 |
| 64d60 | 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 |
| 64d80 | 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 |
| 64da0 | 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 |
| 64dc0 | 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. |
| 64de0 | 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 |
| 64e00 | 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 |
| 64e20 | 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 |
| 64e40 | 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 |
| 64e60 | 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 |
| 64e80 | 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 |
| 64ea0 | 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. |
| 64ec0 | 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 |
| 64ee0 | 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 |
| 64f00 | 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 |
| 64f20 | 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 |
| 64f40 | 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 |
| 64f60 | 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 |
| 64f80 | 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 |
| 64fa0 | 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 |
| 64fc0 | 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 |
| 64fe0 | 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). |
| 65000 | 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 |
| 65020 | 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 |
| 65040 | 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. |
| 65060 | 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 |
| 65080 | 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 |
| 650a0 | 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. |
| 650c0 | 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 |
| 650e0 | 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. |
| 65100 | 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. |
| 65120 | 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 |
| 65140 | 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 |
| 65160 | 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 |
| 65180 | 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 |
| 651a0 | 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 |
| 651c0 | 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 |
| 651e0 | 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 |
| 65200 | 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 |
| 65220 | 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. |
| 65240 | 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 |
| 65260 | 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 |
| 65280 | 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 |
| 652a0 | 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 |
| 652c0 | 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 |
| 652e0 | 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 |
| 65300 | 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 |
| 65320 | 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. |
| 65340 | 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 |
| 65360 | 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.. |
| 65380 | 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 |
| 653a0 | 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 |
| 653c0 | 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. |
| 653e0 | 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 |
| 65400 | 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 |
| 65420 | 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 |
| 65440 | 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 |
| 65460 | 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 |
| 65480 | 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 |
| 654a0 | 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 |
| 654c0 | 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 |
| 654e0 | 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 |
| 65500 | 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. |
| 65520 | 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 |
| 65540 | 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 |
| 65560 | 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 |
| 65580 | 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 |
| 655a0 | 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 |
| 655c0 | 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 |
| 655e0 | 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 |
| 65600 | 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 |
| 65620 | 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........................ |
| 65640 | 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 |
| 65660 | 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 |
| 65680 | 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 |
| 656a0 | 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 |
| 656c0 | 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 |
| 656e0 | 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 |
| 65700 | 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 |
| 65720 | 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 |
| 65740 | 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 |
| 65760 | 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. |
| 65780 | 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 |
| 657a0 | 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 |
| 657c0 | 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. |
| 657e0 | 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 |
| 65800 | 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 |
| 65820 | 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 |
| 65840 | 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. |
| 65860 | 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 |
| 65880 | 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 |
| 658a0 | 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. |
| 658c0 | 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 |
| 658e0 | 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 |
| 65900 | 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 |
| 65920 | 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... |
| 65940 | 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 |
| 65960 | 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 |
| 65980 | 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 |
| 659a0 | 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 |
| 659c0 | 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 |
| 659e0 | 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 |
| 65a00 | 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 |
| 65a20 | 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 |
| 65a40 | 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 |
| 65a60 | 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. |
| 65a80 | 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. |
| 65aa0 | 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. |
| 65ac0 | 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 |
| 65ae0 | 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 |
| 65b00 | 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. |
| 65b20 | 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 |
| 65b40 | 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 |
| 65b60 | 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 |
| 65b80 | 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 |
| 65ba0 | 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 |
| 65bc0 | 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" |
| 65be0 | 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. |
| 65c00 | 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 |
| 65c20 | 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 |
| 65c40 | 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,. |
| 65c60 | 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 |
| 65c80 | 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 |
| 65ca0 | 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 |
| 65cc0 | 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 |
| 65ce0 | 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 |
| 65d00 | 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 |
| 65d20 | 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 |
| 65d40 | 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 |
| 65d60 | 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, |
| 65d80 | 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 |
| 65da0 | 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 |
| 65dc0 | 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. |
| 65de0 | 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. |
| 65e00 | 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 |
| 65e20 | 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 |
| 65e40 | 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.. |
| 65e60 | 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. |
| 65e80 | 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 |
| 65ea0 | 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 |
| 65ec0 | 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. |
| 65ee0 | 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 |
| 65f00 | 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 |
| 65f20 | 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. |
| 65f40 | 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 |
| 65f60 | 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 |
| 65f80 | 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 |
| 65fa0 | 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 |
| 65fc0 | 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 |
| 65fe0 | 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 |
| 66000 | 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 |
| 66020 | 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 |
| 66040 | 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 |
| 66060 | 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 |
| 66080 | 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 |
| 660a0 | 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 |
| 660c0 | 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 |
| 660e0 | 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 |
| 66100 | 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 |
| 66120 | 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 |
| 66140 | 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 |
| 66160 | 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 |
| 66180 | 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 |
| 661a0 | 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 |
| 661c0 | 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 |
| 661e0 | 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 |
| 66200 | 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 |
| 66220 | 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. |
| 66240 | 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 |
| 66260 | 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, |
| 66280 | 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 |
| 662a0 | 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. |
| 662c0 | 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 |
| 662e0 | 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 |
| 66300 | 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' |
| 66320 | 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 |
| 66340 | 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 |
| 66360 | 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 |
| 66380 | 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. |
| 663a0 | 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 |
| 663c0 | 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 |
| 663e0 | 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 |
| 66400 | 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 |
| 66420 | 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, |
| 66440 | 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. |
| 66460 | 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 |
| 66480 | 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 |
| 664a0 | 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,. |
| 664c0 | 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 |
| 664e0 | 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 |
| 66500 | 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 |
| 66520 | 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 |
| 66540 | 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 |
| 66560 | 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 |
| 66580 | 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. |
| 665a0 | 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 |
| 665c0 | 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 |
| 665e0 | 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 |
| 66600 | 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. |
| 66620 | 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 |
| 66640 | 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 |
| 66660 | 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,. |
| 66680 | 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 |
| 666a0 | 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 |
| 666c0 | 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 |
| 666e0 | 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 |
| 66700 | 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 |
| 66720 | 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 |
| 66740 | 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 |
| 66760 | 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,. |
| 66780 | 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 |
| 667a0 | 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 |
| 667c0 | 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 |
| 667e0 | 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 |
| 66800 | 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 |
| 66820 | 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 |
| 66840 | 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 |
| 66860 | 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. |
| 66880 | 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 |
| 668a0 | 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 |
| 668c0 | 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 |
| 668e0 | 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 |
| 66900 | 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 |
| 66920 | 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 |
| 66940 | 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. |
| 66960 | 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 |
| 66980 | 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 |
| 669a0 | 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 |
| 669c0 | 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 |
| 669e0 | 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 |
| 66a00 | 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 |
| 66a20 | 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 |
| 66a40 | 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 |
| 66a60 | 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. |
| 66a80 | 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 |
| 66aa0 | 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 |
| 66ac0 | 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 |
| 66ae0 | 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 |
| 66b00 | 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 |
| 66b20 | 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 |
| 66b40 | 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. |
| 66b60 | 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 |
| 66b80 | 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 |
| 66ba0 | 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 |
| 66bc0 | 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 |
| 66be0 | 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 |
| 66c00 | 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. |
| 66c20 | 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 |
| 66c40 | 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 |
| 66c60 | 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 |
| 66c80 | 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 |
| 66ca0 | 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 |
| 66cc0 | 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 |
| 66ce0 | 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 |
| 66d00 | 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 |
| 66d20 | 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 |
| 66d40 | 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 |
| 66d60 | 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 |
| 66d80 | 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. |
| 66da0 | 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. |
| 66dc0 | 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 |
| 66de0 | 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 |
| 66e00 | 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 |
| 66e20 | 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 |
| 66e40 | 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 |
| 66e60 | 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 |
| 66e80 | 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 |
| 66ea0 | 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 |
| 66ec0 | 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 |
| 66ee0 | 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 |
| 66f00 | 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 |
| 66f20 | 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 |
| 66f40 | 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 |
| 66f60 | 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 |
| 66f80 | 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 |
| 66fa0 | 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 |
| 66fc0 | 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 |
| 66fe0 | 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 |
| 67000 | 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. |
| 67020 | 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. |
| 67040 | 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 |
| 67060 | 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 |
| 67080 | 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. |
| 670a0 | 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 |
| 670c0 | 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. |
| 670e0 | 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 |
| 67100 | 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. |
| 67120 | 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 |
| 67140 | 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 |
| 67160 | 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 |
| 67180 | 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. |
| 671a0 | 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. |
| 671c0 | 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 |
| 671e0 | 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 |
| 67200 | 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. |
| 67220 | 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). |
| 67240 | 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 |
| 67260 | 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 |
| 67280 | 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 |
| 672a0 | 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. |
| 672c0 | 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 |
| 672e0 | 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 |
| 67300 | 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". |
| 67320 | 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 |
| 67340 | 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 |
| 67360 | 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 |
| 67380 | 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 |
| 673a0 | 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 |
| 673c0 | 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 |
| 673e0 | 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 |
| 67400 | 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 |
| 67420 | 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 |
| 67440 | 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 |
| 67460 | 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 |
| 67480 | 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, |
| 674a0 | 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. |
| 674c0 | 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 |
| 674e0 | 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 |
| 67500 | 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 |
| 67520 | 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 |
| 67540 | 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 |
| 67560 | 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 |
| 67580 | 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 |
| 675a0 | 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,. |
| 675c0 | 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 |
| 675e0 | 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 |
| 67600 | 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 |
| 67620 | 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. |
| 67640 | 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 |
| 67660 | 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 |
| 67680 | 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 |
| 676a0 | 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 |
| 676c0 | 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 |
| 676e0 | 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 |
| 67700 | 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. |
| 67720 | 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. |
| 67740 | 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 |
| 67760 | 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 |
| 67780 | 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 |
| 677a0 | 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 |
| 677c0 | 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 |
| 677e0 | 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 |
| 67800 | 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 |
| 67820 | 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 |
| 67840 | 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 |
| 67860 | 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 |
| 67880 | 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,. |
| 678a0 | 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 |
| 678c0 | 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 |
| 678e0 | 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. |
| 67900 | 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:.. |
| 67920 | 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 |
| 67940 | 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 |
| 67960 | 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 |
| 67980 | 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 |
| 679a0 | 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 |
| 679c0 | 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 |
| 679e0 | 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 |
| 67a00 | 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 |
| 67a20 | 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 |
| 67a40 | 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 |
| 67a60 | 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. |
| 67a80 | 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 |
| 67aa0 | 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. |
| 67ac0 | 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.... |
| 67ae0 | 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 |
| 67b00 | 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 |
| 67b20 | 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 |
| 67b40 | 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 |
| 67b60 | 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 |
| 67b80 | 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 |
| 67ba0 | 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 |
| 67bc0 | 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 |
| 67be0 | 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 |
| 67c00 | 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 |
| 67c20 | 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. |
| 67c40 | 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 |
| 67c60 | 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 |
| 67c80 | 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 |
| 67ca0 | 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 |
| 67cc0 | 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 |
| 67ce0 | 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 |
| 67d00 | 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 |
| 67d20 | 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 |
| 67d40 | 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. |
| 67d60 | 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 |
| 67d80 | 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 |
| 67da0 | 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 |
| 67dc0 | 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. |
| 67de0 | 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 |
| 67e00 | 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 |
| 67e20 | 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 |
| 67e40 | 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 |
| 67e60 | 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 |
| 67e80 | 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 |
| 67ea0 | 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. |
| 67ec0 | 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.... |
| 67ee0 | 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 |
| 67f00 | 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... |
| 67f20 | 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 |
| 67f40 | 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 |
| 67f60 | 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. |
| 67f80 | 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 |
| 67fa0 | 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 |
| 67fc0 | 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. |
| 67fe0 | 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 |
| 68000 | 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,. |
| 68020 | 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. |
| 68040 | 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 |
| 68060 | 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..... |
| 68080 | 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 |
| 680a0 | 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 |
| 680c0 | 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. |
| 680e0 | 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.. |
| 68100 | 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 |
| 68120 | 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 |
| 68140 | 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 |
| 68160 | 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 |
| 68180 | 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. |
| 681a0 | 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. |
| 681c0 | 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. |
| 681e0 | 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 |
| 68200 | 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 |
| 68220 | 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 |
| 68240 | 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 |
| 68260 | 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 |
| 68280 | 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 |
| 682a0 | 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 |
| 682c0 | 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 |
| 682e0 | 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 |
| 68300 | 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 |
| 68320 | 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 |
| 68340 | 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 |
| 68360 | 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 |
| 68380 | 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 |
| 683a0 | 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 |
| 683c0 | 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 |
| 683e0 | 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 |
| 68400 | 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. |
| 68420 | 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 |
| 68440 | 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 |
| 68460 | 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 |
| 68480 | 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 |
| 684a0 | 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 |
| 684c0 | 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. |
| 684e0 | 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 |
| 68500 | 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 |
| 68520 | 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 |
| 68540 | 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.. |
| 68560 | 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 |
| 68580 | 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 |
| 685a0 | 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 |
| 685c0 | 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,. |
| 685e0 | 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 |
| 68600 | 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 |
| 68620 | 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 |
| 68640 | 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 |
| 68660 | 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 |
| 68680 | 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 |
| 686a0 | 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 |
| 686c0 | 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 |
| 686e0 | 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 |
| 68700 | 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 |
| 68720 | 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 |
| 68740 | 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. |
| 68760 | 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 |
| 68780 | 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 |
| 687a0 | 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 |
| 687c0 | 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 |
| 687e0 | 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. |
| 68800 | 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 |
| 68820 | 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 |
| 68840 | 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 |
| 68860 | 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 |
| 68880 | 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 |
| 688a0 | 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 |
| 688c0 | 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 |
| 688e0 | 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 |
| 68900 | 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 |
| 68920 | 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 |
| 68940 | 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 |
| 68960 | 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 |
| 68980 | 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 |
| 689a0 | 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 |
| 689c0 | 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 |
| 689e0 | 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 |
| 68a00 | 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 |
| 68a20 | 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 |
| 68a40 | 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 |
| 68a60 | 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 |
| 68a80 | 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 |
| 68aa0 | 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 |
| 68ac0 | 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 |
| 68ae0 | 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 |
| 68b00 | 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 |
| 68b20 | 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 |
| 68b40 | 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. |
| 68b60 | 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 |
| 68b80 | 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 |
| 68ba0 | 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 |
| 68bc0 | 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 |
| 68be0 | 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 |
| 68c00 | 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 |
| 68c20 | 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 |
| 68c40 | 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 |
| 68c60 | 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 |
| 68c80 | 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 |
| 68ca0 | 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 |
| 68cc0 | 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 |
| 68ce0 | 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 |
| 68d00 | 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 |
| 68d20 | 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 |
| 68d40 | 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. |
| 68d60 | 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... |
| 68d80 | 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 |
| 68da0 | 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 |
| 68dc0 | 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 |
| 68de0 | 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 |
| 68e00 | 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.. |
| 68e20 | 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. |
| 68e40 | 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 |
| 68e60 | 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 |
| 68e80 | 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,. |
| 68ea0 | 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 |
| 68ec0 | 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 |
| 68ee0 | 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 |
| 68f00 | 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. |
| 68f20 | 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 |
| 68f40 | 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 |
| 68f60 | 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. |
| 68f80 | 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 |
| 68fa0 | 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 |
| 68fc0 | 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 |
| 68fe0 | 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 |
| 69000 | 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 |
| 69020 | 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. |
| 69040 | 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 |
| 69060 | 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 |
| 69080 | 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 |
| 690a0 | 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 |
| 690c0 | 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 |
| 690e0 | 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 |
| 69100 | 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 |
| 69120 | 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 |
| 69140 | 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. |
| 69160 | 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, |
| 69180 | 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 |
| 691a0 | 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. |
| 691c0 | 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 |
| 691e0 | 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. |
| 69200 | 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:..... |
| 69220 | 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 |
| 69240 | 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. |
| 69260 | 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 |
| 69280 | 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). |
| 692a0 | 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 |
| 692c0 | 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. |
| 692e0 | 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. |
| 69300 | 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 |
| 69320 | 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 |
| 69340 | 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 |
| 69360 | 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 |
| 69380 | 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.. |
| 693a0 | 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 |
| 693c0 | 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 |
| 693e0 | 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 |
| 69400 | 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 |
| 69420 | 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 |
| 69440 | 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 |
| 69460 | 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 |
| 69480 | 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 |
| 694a0 | 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. |
| 694c0 | 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, |
| 694e0 | 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 |
| 69500 | 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 |
| 69520 | 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. |
| 69540 | 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. |
| 69560 | 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 |
| 69580 | 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 |
| 695a0 | 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. |
| 695c0 | 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 |
| 695e0 | 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 |
| 69600 | 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... |
| 69620 | 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... |
| 69640 | 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 |
| 69660 | 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 |
| 69680 | 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 |
| 696a0 | 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 |
| 696c0 | 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 |
| 696e0 | 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 |
| 69700 | 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 |
| 69720 | 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. |
| 69740 | 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 |
| 69760 | 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 |
| 69780 | 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 |
| 697a0 | 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 |
| 697c0 | 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 |
| 697e0 | 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 |
| 69800 | 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. |
| 69820 | 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 |
| 69840 | 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. |
| 69860 | 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 |
| 69880 | 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 |
| 698a0 | 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. |
| 698c0 | 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 |
| 698e0 | 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, |
| 69900 | 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 |
| 69920 | 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,. |
| 69940 | 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. |
| 69960 | 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 |
| 69980 | 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 |
| 699a0 | 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 |
| 699c0 | 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. |
| 699e0 | 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 |
| 69a00 | 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 |
| 69a20 | 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.... |
| 69a40 | 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 |
| 69a60 | 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 |
| 69a80 | 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. |
| 69aa0 | 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 |
| 69ac0 | 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 |
| 69ae0 | 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 |
| 69b00 | 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 |
| 69b20 | 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 |
| 69b40 | 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 |
| 69b60 | 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 |
| 69b80 | 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 |
| 69ba0 | 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 |
| 69bc0 | 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 |
| 69be0 | 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 |
| 69c00 | 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. |
| 69c20 | 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 |
| 69c40 | 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 |
| 69c60 | 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 |
| 69c80 | 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 |
| 69ca0 | 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 |
| 69cc0 | 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. |
| 69ce0 | 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. |
| 69d00 | 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 |
| 69d20 | 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 |
| 69d40 | 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. |
| 69d60 | 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 |
| 69d80 | 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 |
| 69da0 | 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 |
| 69dc0 | 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 |
| 69de0 | 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,. |
| 69e00 | 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 |
| 69e20 | 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 |
| 69e40 | 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. |
| 69e60 | 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 |
| 69e80 | 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 |
| 69ea0 | 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 |
| 69ec0 | 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 |
| 69ee0 | 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 |
| 69f00 | 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 |
| 69f20 | 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 |
| 69f40 | 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 |
| 69f60 | 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 |
| 69f80 | 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. |
| 69fa0 | 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 |
| 69fc0 | 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 |
| 69fe0 | 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 |
| 6a000 | 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 |
| 6a020 | 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 |
| 6a040 | 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 |
| 6a060 | 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 |
| 6a080 | 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 |
| 6a0a0 | 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 |
| 6a0c0 | 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 |
| 6a0e0 | 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 |
| 6a100 | 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 |
| 6a120 | 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 |
| 6a140 | 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 |
| 6a160 | 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 |
| 6a180 | 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,. |
| 6a1a0 | 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. |
| 6a1c0 | 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 |
| 6a1e0 | 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. |
| 6a200 | 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 |
| 6a220 | 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 |
| 6a240 | 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 |
| 6a260 | 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,. |
| 6a280 | 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 |
| 6a2a0 | 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. |
| 6a2c0 | 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 |
| 6a2e0 | 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 |
| 6a300 | 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 |
| 6a320 | 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 |
| 6a340 | 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 |
| 6a360 | 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 |
| 6a380 | 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 |
| 6a3a0 | 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 |
| 6a3c0 | 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 |
| 6a3e0 | 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 |
| 6a400 | 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 |
| 6a420 | 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 |
| 6a440 | 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 |
| 6a460 | 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 |
| 6a480 | 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 |
| 6a4a0 | 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 |
| 6a4c0 | 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 |
| 6a4e0 | 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 |
| 6a500 | 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 |
| 6a520 | 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 |
| 6a540 | 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 |
| 6a560 | 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. |
| 6a580 | 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 |
| 6a5a0 | 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 |
| 6a5c0 | 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 |
| 6a5e0 | 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. |
| 6a600 | 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 |
| 6a620 | 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. |
| 6a640 | 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 |
| 6a660 | 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 |
| 6a680 | 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 |
| 6a6a0 | 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) |
| 6a6c0 | 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. |
| 6a6e0 | 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 |
| 6a700 | 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 |
| 6a720 | 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 |
| 6a740 | 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." |
| 6a760 | 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 |
| 6a780 | 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 |
| 6a7a0 | 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 |
| 6a7c0 | 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. |
| 6a7e0 | 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 |
| 6a800 | 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 |
| 6a820 | 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." |
| 6a840 | 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 |
| 6a860 | 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 |
| 6a880 | 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 |
| 6a8a0 | 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 |
| 6a8c0 | 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 |
| 6a8e0 | 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 |
| 6a900 | 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 |
| 6a920 | 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,. |
| 6a940 | 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 |
| 6a960 | 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 |
| 6a980 | 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. |
| 6a9a0 | 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 |
| 6a9c0 | 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 |
| 6a9e0 | 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 |
| 6aa00 | 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 |
| 6aa20 | 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 |
| 6aa40 | 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 |
| 6aa60 | 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 |
| 6aa80 | 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 |
| 6aaa0 | 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 |
| 6aac0 | 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. |
| 6aae0 | 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, |
| 6ab00 | 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 |
| 6ab20 | 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. |
| 6ab40 | 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 |
| 6ab60 | 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 |
| 6ab80 | 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 |
| 6aba0 | 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 |
| 6abc0 | 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. |
| 6abe0 | 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 |
| 6ac00 | 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 |
| 6ac20 | 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 |
| 6ac40 | 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 |
| 6ac60 | 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 |
| 6ac80 | 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 |
| 6aca0 | 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 |
| 6acc0 | 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 |
| 6ace0 | 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 |
| 6ad00 | 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 |
| 6ad20 | 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 |
| 6ad40 | 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 |
| 6ad60 | 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 |
| 6ad80 | 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 |
| 6ada0 | 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 |
| 6adc0 | 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 |
| 6ade0 | 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. |
| 6ae00 | 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 |
| 6ae20 | 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 |
| 6ae40 | 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 |
| 6ae60 | 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 |
| 6ae80 | 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). |
| 6aea0 | 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. |
| 6aec0 | 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 |
| 6aee0 | 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 |
| 6af00 | 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..." |
| 6af20 | 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 |
| 6af40 | 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 |
| 6af60 | 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 |
| 6af80 | 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 |
| 6afa0 | 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 |
| 6afc0 | 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 |
| 6afe0 | 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 |
| 6b000 | 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 |
| 6b020 | 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 |
| 6b040 | 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 |
| 6b060 | 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 |
| 6b080 | 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 |
| 6b0a0 | 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 |
| 6b0c0 | 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 |
| 6b0e0 | 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 |
| 6b100 | 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 |
| 6b120 | 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, |
| 6b140 | 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 |
| 6b160 | 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 |
| 6b180 | 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 |
| 6b1a0 | 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 |
| 6b1c0 | 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 |
| 6b1e0 | 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. |
| 6b200 | 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 |
| 6b220 | 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 |
| 6b240 | 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 |
| 6b260 | 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 |
| 6b280 | 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. |
| 6b2a0 | 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 |
| 6b2c0 | 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 |
| 6b2e0 | 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. |
| 6b300 | 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 |
| 6b320 | 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 |
| 6b340 | 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 |
| 6b360 | 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 |
| 6b380 | 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 |
| 6b3a0 | 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. |
| 6b3c0 | 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 |
| 6b3e0 | 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 |
| 6b400 | 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 |
| 6b420 | 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 |
| 6b440 | 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 |
| 6b460 | 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 |
| 6b480 | 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 |
| 6b4a0 | 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 |
| 6b4c0 | 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 |
| 6b4e0 | 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 |
| 6b500 | 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 |
| 6b520 | 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 |
| 6b540 | 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. |
| 6b560 | 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 |
| 6b580 | 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 |
| 6b5a0 | 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 |
| 6b5c0 | 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 |
| 6b5e0 | 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 |
| 6b600 | 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 |
| 6b620 | 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 |
| 6b640 | 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 |
| 6b660 | 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 |
| 6b680 | 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 |
| 6b6a0 | 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 |
| 6b6c0 | 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 |
| 6b6e0 | 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 |
| 6b700 | 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 |
| 6b720 | 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 |
| 6b740 | 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 |
| 6b760 | 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 |
| 6b780 | 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 |
| 6b7a0 | 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. |
| 6b7c0 | 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, |
| 6b7e0 | 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 |
| 6b800 | 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 |
| 6b820 | 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 |
| 6b840 | 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. |
| 6b860 | 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 |
| 6b880 | 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, |
| 6b8a0 | 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. |
| 6b8c0 | 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 |
| 6b8e0 | 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 |
| 6b900 | 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 |
| 6b920 | 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 |
| 6b940 | 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 |
| 6b960 | 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 |
| 6b980 | 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 |
| 6b9a0 | 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 |
| 6b9c0 | 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 |
| 6b9e0 | 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 |
| 6ba00 | 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 |
| 6ba20 | 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 |
| 6ba40 | 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 |
| 6ba60 | 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 |
| 6ba80 | 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 |
| 6baa0 | 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 |
| 6bac0 | 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 |
| 6bae0 | 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 |
| 6bb00 | 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 |
| 6bb20 | 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 |
| 6bb40 | 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 |
| 6bb60 | 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. |
| 6bb80 | 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. |
| 6bba0 | 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 |
| 6bbc0 | 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 |
| 6bbe0 | 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 |
| 6bc00 | 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 |
| 6bc20 | 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 |
| 6bc40 | 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 |
| 6bc60 | 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 |
| 6bc80 | 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 |
| 6bca0 | 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 |
| 6bcc0 | 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. |
| 6bce0 | 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 |
| 6bd00 | 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" |
| 6bd20 | 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 |
| 6bd40 | 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 |
| 6bd60 | 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 |
| 6bd80 | 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 |
| 6bda0 | 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 |
| 6bdc0 | 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 |
| 6bde0 | 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 |
| 6be00 | 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 |
| 6be20 | 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 |
| 6be40 | 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 |
| 6be60 | 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 |
| 6be80 | 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 |
| 6bea0 | 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 |
| 6bec0 | 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. |
| 6bee0 | 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 |
| 6bf00 | 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 |
| 6bf20 | 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 |
| 6bf40 | 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 |
| 6bf60 | 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. |
| 6bf80 | 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 |
| 6bfa0 | 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 |
| 6bfc0 | 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 |
| 6bfe0 | 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. |
| 6c000 | 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. |
| 6c020 | 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 |
| 6c040 | 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. |
| 6c060 | 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,. |
| 6c080 | 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 |
| 6c0a0 | 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 |
| 6c0c0 | 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 |
| 6c0e0 | 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 |
| 6c100 | 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 |
| 6c120 | 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. |
| 6c140 | 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, |
| 6c160 | 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 |
| 6c180 | 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 |
| 6c1a0 | 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 |
| 6c1c0 | 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. |
| 6c1e0 | 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 |
| 6c200 | 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. |
| 6c220 | 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 |
| 6c240 | 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 |
| 6c260 | 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... |
| 6c280 | 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... |
| 6c2a0 | 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 |
| 6c2c0 | 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. |
| 6c2e0 | 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 |
| 6c300 | 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 |
| 6c320 | 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 |
| 6c340 | 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 |
| 6c360 | 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 |
| 6c380 | 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 |
| 6c3a0 | 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. |
| 6c3c0 | 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 |
| 6c3e0 | 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 |
| 6c400 | 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 |
| 6c420 | 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 |
| 6c440 | 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 |
| 6c460 | 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. |
| 6c480 | 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 |
| 6c4a0 | 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 |
| 6c4c0 | 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. |
| 6c4e0 | 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..... |
| 6c500 | 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 |
| 6c520 | 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 |
| 6c540 | 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 |
| 6c560 | 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. |
| 6c580 | 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 |
| 6c5a0 | 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 |
| 6c5c0 | 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 |
| 6c5e0 | 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 |
| 6c600 | 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 |
| 6c620 | 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 |
| 6c640 | 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 |
| 6c660 | 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 |
| 6c680 | 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. |
| 6c6a0 | 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 |
| 6c6c0 | 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........ |
| 6c6e0 | 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 |
| 6c700 | 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 |
| 6c720 | 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 |
| 6c740 | 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 |
| 6c760 | 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. |
| 6c780 | 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 |
| 6c7a0 | 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 |
| 6c7c0 | 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 |
| 6c7e0 | 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 |
| 6c800 | 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 |
| 6c820 | 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. |
| 6c840 | 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 |
| 6c860 | 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. |
| 6c880 | 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 |
| 6c8a0 | 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 |
| 6c8c0 | 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 |
| 6c8e0 | 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 |
| 6c900 | 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 |
| 6c920 | 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 |
| 6c940 | 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.( |
| 6c960 | 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}..... |
| 6c980 | 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:. |
| 6c9a0 | 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 |
| 6c9c0 | 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. |
| 6c9e0 | 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 |
| 6ca00 | 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 |
| 6ca20 | 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. |
| 6ca40 | 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 |
| 6ca60 | 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..... |
| 6ca80 | 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 |
| 6caa0 | 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 |
| 6cac0 | 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;. |
| 6cae0 | 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 |
| 6cb00 | 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 |
| 6cb20 | 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 |
| 6cb40 | 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 |
| 6cb60 | 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 |
| 6cb80 | 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. |
| 6cba0 | 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.. |
| 6cbc0 | 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. |
| 6cbe0 | 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 |
| 6cc00 | 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. |
| 6cc20 | 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 |
| 6cc40 | 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 |
| 6cc60 | 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, |
| 6cc80 | 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 |
| 6cca0 | 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 |
| 6ccc0 | 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}.. |
| 6cce0 | 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} |
| 6cd00 | 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 |
| 6cd20 | 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 |
| 6cd40 | 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 |
| 6cd60 | 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 |
| 6cd80 | 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 |
| 6cda0 | 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 |
| 6cdc0 | 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 |
| 6cde0 | 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 |
| 6ce00 | 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 |
| 6ce20 | 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 |
| 6ce40 | 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 |
| 6ce60 | 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 |
| 6ce80 | 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 |
| 6cea0 | 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 |
| 6cec0 | 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 |
| 6cee0 | 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 |
| 6cf00 | 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 |
| 6cf20 | 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 |
| 6cf40 | 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. |
| 6cf60 | 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. |
| 6cf80 | 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 |
| 6cfa0 | 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 |
| 6cfc0 | 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 |
| 6cfe0 | 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 |
| 6d000 | 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 |
| 6d020 | 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. |
| 6d040 | 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 |
| 6d060 | 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 |
| 6d080 | 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 |
| 6d0a0 | 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 |
| 6d0c0 | 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 |
| 6d0e0 | 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 |
| 6d100 | 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 |
| 6d120 | 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 |
| 6d140 | 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>......................... |
| 6d160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d200 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 | gptel-0.9.9/gptel-pkg.el........ |
| 6d220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d260 | 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 |
| 6d280 | 30 30 30 30 37 33 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 31 37 00 20 30 00 00 00 | 0000730.00000000000.013517..0... |
| 6d2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d300 | 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................... |
| 6d320 | 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................... |
| 6d340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d400 | 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 |
| 6d420 | 20 66 72 6f 6d 20 67 70 74 65 6c 2e 65 6c 20 20 2d 2a 2d 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 | .from.gptel.el..-*-.no-byte-comp |
| 6d440 | 69 6c 65 3a 20 74 20 2d 2a 2d 0a 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 67 70 74 65 | ile:.t.-*-.(define-package."gpte |
| 6d460 | 6c 22 20 22 30 2e 39 2e 39 22 20 22 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 43 68 61 74 47 50 | l"."0.9.9"."Interact.with.ChatGP |
| 6d480 | 54 20 6f 72 20 6f 74 68 65 72 20 4c 4c 4d 73 22 20 27 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 | T.or.other.LLMs".'((emacs."27.1" |
| 6d4a0 | 29 20 28 74 72 61 6e 73 69 65 6e 74 20 22 30 2e 37 2e 34 22 29 20 28 63 6f 6d 70 61 74 20 22 33 | ).(transient."0.7.4").(compat."3 |
| 6d4c0 | 30 2e 31 2e 30 2e 30 22 29 29 20 3a 63 6f 6d 6d 69 74 20 22 38 31 36 31 38 66 32 34 65 32 31 39 | 0.1.0.0")).:commit."81618f24e219 |
| 6d4e0 | 30 35 36 38 65 61 37 34 35 64 63 61 38 32 62 61 35 30 32 36 37 65 65 64 33 32 31 61 22 20 3a 61 | 0568ea745dca82ba50267eed321a".:a |
| 6d500 | 75 74 68 6f 72 73 20 27 28 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 22 20 | uthors.'(("Karthik.Chikmagalur". |
| 6d520 | 2e 20 22 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d | .."karthik.chikmagalur@gmail.com |
| 6d540 | 22 29 29 20 3a 6d 61 69 6e 74 61 69 6e 65 72 20 27 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d | ")).:maintainer.'("Karthik.Chikm |
| 6d560 | 61 67 61 6c 75 72 22 20 2e 20 22 6b 61 72 74 68 69 6b 2e 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 | agalur"..."karthik.chikmagalur@g |
| 6d580 | 6d 61 69 6c 2e 63 6f 6d 22 29 20 3a 6b 65 79 77 6f 72 64 73 20 27 28 22 63 6f 6e 76 65 6e 69 65 | mail.com").:keywords.'("convenie |
| 6d5a0 | 6e 63 65 22 20 22 74 6f 6f 6c 73 22 29 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 | nce"."tools").:url."https://gith |
| 6d5c0 | 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 74 65 6c 22 29 0a 00 00 00 00 00 00 00 00 | ub.com/karthink/gptel")......... |
| 6d5e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d600 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 00 00 00 00 00 | gptel-0.9.9/gptel-gemini.el..... |
| 6d620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d660 | 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 |
| 6d680 | 30 30 36 37 33 32 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 32 34 00 20 30 00 00 00 | 0067326.00000000000.014224..0... |
| 6d6a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d6c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d6e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d700 | 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................... |
| 6d720 | 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................... |
| 6d740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d7a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d7c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d7e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6d800 | 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. |
| 6d820 | 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- |
| 6d840 | 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 |
| 6d860 | 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | ).2023-2025..Karthik.Chikmagalur |
| 6d880 | 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 |
| 6d8a0 | 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a | .<karthikchikmagalur@gmail.com>. |
| 6d8c0 | 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 | .;;.This.program.is.free.softwar |
| 6d8e0 | 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f | e;.you.can.redistribute.it.and/o |
| 6d900 | 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f | r.modify.;;.it.under.the.terms.o |
| 6d920 | 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 | f.the.GNU.General.Public.License |
| 6d940 | 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 | .as.published.by.;;.the.Free.Sof |
| 6d960 | 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e | tware.Foundation,.either.version |
| 6d980 | 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 | .3.of.the.License,.or.;;.(at.you |
| 6d9a0 | 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b | r.option).any.later.version...;; |
| 6d9c0 | 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 | .This.program.is.distributed.in. |
| 6d9e0 | 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c | the.hope.that.it.will.be.useful, |
| 6da00 | 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 | .;;.but.WITHOUT.ANY.WARRANTY;.wi |
| 6da20 | 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 | thout.even.the.implied.warranty. |
| 6da40 | 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 | of.;;.MERCHANTABILITY.or.FITNESS |
| 6da60 | 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 | .FOR.A.PARTICULAR.PURPOSE...See. |
| 6da80 | 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | the.;;.GNU.General.Public.Licens |
| 6daa0 | 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 | e.for.more.details...;;.You.shou |
| 6dac0 | 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 | ld.have.received.a.copy.of.the.G |
| 6dae0 | 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f | NU.General.Public.License.;;.alo |
| 6db00 | 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 | ng.with.this.program...If.not,.s |
| 6db20 | 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 | ee.<https://www.gnu.org/licenses |
| 6db40 | 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 | />...;;;.Commentary:..;;.This.fi |
| 6db60 | 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 47 65 6d 69 6e 69 20 41 | le.adds.support.for.the.Gemini.A |
| 6db80 | 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 | PI.to.gptel..;;;.Code:.(require. |
| 6dba0 | 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 72 | 'gptel).(require.'cl-generic).(r |
| 6dbc0 | 65 71 75 69 72 65 20 27 6d 61 70 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 | equire.'map).(eval-when-compile. |
| 6dbe0 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | (require.'cl-lib))..(declare-fun |
| 6dc00 | 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f | ction.prop-match-value."text-pro |
| 6dc20 | 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | perty-search").(declare-function |
| 6dc40 | 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 | .text-property-search-backward." |
| 6dc60 | 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d | text-property-search").(declare- |
| 6dc80 | 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 29 0a 28 64 65 63 6c | function.json-read."json").(decl |
| 6dca0 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 | are-function.gptel-context--wrap |
| 6dcc0 | 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 |
| 6dce0 | 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d 65 64 69 61 | ion.gptel-context--collect-media |
| 6dd00 | 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f | ."gptel-context").(defvar.json-o |
| 6dd20 | 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 3b 3b 3b 20 47 65 6d 69 6e 69 0a 28 63 6c 2d 64 65 66 73 | bject-type)..;;;.Gemini.(cl-defs |
| 6dd40 | 74 72 75 63 74 0a 20 20 20 20 28 67 70 74 65 6c 2d 67 65 6d 69 6e 69 20 28 3a 63 6f 6e 73 74 72 | truct.....(gptel-gemini.(:constr |
| 6dd60 | 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 29 0a 20 20 20 20 20 20 | uctor.gptel--make-gemini)....... |
| 6dd80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 | ............(:copier.nil)....... |
| 6dda0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b | ............(:include.gptel-back |
| 6ddc0 | 65 6e 64 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 55 73 69 6e 67 20 61 6c 74 3d 73 73 65 20 69 | end)))..;;.TODO:.Using.alt=sse.i |
| 6dde0 | 6e 20 74 68 65 20 71 75 65 72 79 20 75 72 6c 20 67 65 6e 65 72 61 74 65 73 20 61 6e 20 4f 70 65 | n.the.query.url.generates.an.Ope |
| 6de00 | 6e 41 49 20 73 74 79 6c 65 20 73 74 72 65 61 6d 69 6e 67 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 2c | nAI.style.streaming.;;.response, |
| 6de20 | 20 77 69 74 68 20 6d 6f 72 65 20 69 6d 6d 65 64 69 61 74 65 20 75 70 64 61 74 65 73 2e 20 20 4d | .with.more.immediate.updates...M |
| 6de40 | 61 79 62 65 20 77 65 20 73 68 6f 75 6c 64 20 73 77 69 74 63 68 20 74 6f 20 74 68 61 74 20 61 6e | aybe.we.should.switch.to.that.an |
| 6de60 | 64 0a 3b 3b 20 72 65 77 72 69 74 65 20 74 68 65 20 73 74 72 65 61 6d 20 70 61 72 73 65 72 3f 0a | d.;;.rewrite.the.stream.parser?. |
| 6de80 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d | (cl-defmethod.gptel-curl--parse- |
| 6dea0 | 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 | stream.((_backend.gptel-gemini). |
| 6dec0 | 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 20 47 65 6d 69 6e 69 20 64 61 74 61 20 73 74 72 | info)..."Parse.a.Gemini.data.str |
| 6dee0 | 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 74 20 72 65 73 70 6f 6e 73 65 20 61 | eam...Return.the.text.response.a |
| 6df00 | 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 20 6c 61 73 74 20 63 61 6c 6c 20 74 | ccumulated.since.the.last.call.t |
| 6df20 | 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 | o.this.function...Additionally,. |
| 6df40 | 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f 20 61 64 64 20 74 6f 6f 6c 2d 75 73 | mutate.state.INFO.to.add.tool-us |
| 6df60 | 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 20 73 74 72 65 61 6d 20 63 6f 6e 74 | e.information.if.the.stream.cont |
| 6df80 | 61 69 6e 73 20 69 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 | ains.it."...(let*.((content-strs |
| 6dfa0 | 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 | )).....(condition-case.nil...... |
| 6dfc0 | 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f 67 31 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 | ...(while.(prog1.(search-forward |
| 6dfe0 | 20 22 7b 22 20 6e 69 6c 20 74 29 20 3b 20 77 68 69 6c 65 2d 6c 65 74 20 69 73 20 45 6d 61 63 73 | ."{".nil.t).;.while-let.is.Emacs |
| 6e000 | 20 32 39 2e 31 2b 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 | .29.1+.only..................(ba |
| 6e020 | 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | ckward-char.1))...........(save- |
| 6e040 | 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 | match-data.............(when-let |
| 6e060 | 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 | *.((response.(gptel--json-read)) |
| 6e080 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 | .........................(text.( |
| 6e0a0 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 | gptel--parse-response........... |
| 6e0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 | .....................(plist-get. |
| 6e0e0 | 69 6e 66 6f 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:backend).................. |
| 6e100 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 20 27 69 6e 63 | ..............response.info.'inc |
| 6e120 | 6c 75 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 74 65 78 74 | lude)))...............(push.text |
| 6e140 | 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 | .content-strs)))).......(error.. |
| 6e160 | 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 |
| 6e180 | 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 | g.0)))).....(apply.#'concat.(nre |
| 6e1a0 | 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | verse.content-strs))))..(cl-defm |
| 6e1c0 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 | ethod.gptel--parse-response.((_b |
| 6e1e0 | 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 72 65 73 70 6f 6e 73 65 20 69 6e | ackend.gptel-gemini).response.in |
| 6e200 | 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fo.............................. |
| 6e220 | 20 20 20 20 20 20 20 20 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 63 6c 75 64 65 2d 74 65 78 74 29 0a | ........&optional.include-text). |
| 6e240 | 20 20 22 50 61 72 73 65 20 61 6e 20 47 65 6d 69 6e 69 20 28 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e | .."Parse.an.Gemini.(non-streamin |
| 6e260 | 67 29 20 52 45 53 50 4f 4e 53 45 20 61 6e 64 20 72 65 74 75 72 6e 20 72 65 73 70 6f 6e 73 65 20 | g).RESPONSE.and.return.response. |
| 6e280 | 74 65 78 74 2e 0a 0a 4d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 77 69 74 68 20 72 65 | text...Mutate.state.INFO.with.re |
| 6e2a0 | 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 0a 0a 49 66 20 49 4e 43 4c 55 44 45 2d 54 45 58 | sponse.metadata...If.INCLUDE-TEX |
| 6e2c0 | 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 63 6c 75 64 65 20 72 65 73 70 6f 6e 73 65 20 74 | T.is.non-nil,.include.response.t |
| 6e2e0 | 65 78 74 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 73 0a 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 | ext.in.the.prompts.list."...(let |
| 6e300 | 2a 20 28 28 63 61 6e 64 30 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e | *.((cand0.(map-nested-elt.respon |
| 6e320 | 73 65 20 27 28 3a 63 61 6e 64 69 64 61 74 65 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 | se.'(:candidates.0)))..........( |
| 6e340 | 70 61 72 74 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 63 61 6e 64 30 20 27 28 3a 63 | parts.(map-nested-elt.cand0.'(:c |
| 6e360 | 6f 6e 74 65 6e 74 20 3a 70 61 72 74 73 29 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | ontent.:parts)))).....(plist-put |
| 6e380 | 20 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 | .info.:stop-reason.(plist-get.ca |
| 6e3a0 | 6e 64 30 20 3a 66 69 6e 69 73 68 52 65 61 73 6f 6e 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 | nd0.:finishReason)).....(plist-p |
| 6e3c0 | 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 | ut.info.:output-tokens.......... |
| 6e3e0 | 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 | ......(map-nested-elt........... |
| 6e400 | 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 4d 65 74 61 64 61 74 61 20 | ......response.'(:usageMetadata. |
| 6e420 | 3a 63 61 6e 64 69 64 61 74 65 73 54 6f 6b 65 6e 43 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 63 6c | :candidatesTokenCount))).....(cl |
| 6e440 | 2d 6c 6f 6f 70 0a 20 20 20 20 20 66 6f 72 20 70 61 72 74 20 61 63 72 6f 73 73 20 70 61 72 74 73 | -loop......for.part.across.parts |
| 6e460 | 0a 20 20 20 20 20 66 6f 72 20 74 78 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a | ......for.tx.=.(plist-get.part.: |
| 6e480 | 74 65 78 74 29 0a 20 20 20 20 20 69 66 20 28 61 6e 64 20 74 78 20 28 6e 6f 74 20 28 65 71 20 74 | text)......if.(and.tx.(not.(eq.t |
| 6e4a0 | 78 20 3a 6e 75 6c 6c 29 29 29 0a 20 20 20 20 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 | x.:null)))......if.(plist-get.pa |
| 6e4c0 | 72 74 20 3a 74 68 6f 75 67 68 74 29 0a 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c | rt.:thought)......do.(unless.(pl |
| 6e4e0 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 0a 20 | ist-get.info.:reasoning-block).. |
| 6e500 | 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e | .........(plist-put.info.:reason |
| 6e520 | 69 6e 67 2d 62 6c 6f 63 6b 20 27 69 6e 29 29 0a 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | ing-block.'in))......(plist-put. |
| 6e540 | 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 73 74 2d 67 | info.:reasoning.(concat.(plist-g |
| 6e560 | 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 74 78 29 29 0a 20 20 20 20 20 65 6c | et.info.:reasoning).tx))......el |
| 6e580 | 73 65 20 64 6f 0a 20 20 20 20 20 28 69 66 20 28 65 71 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | se.do......(if.(eq.(plist-get.in |
| 6e5a0 | 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 69 6e 29 0a 20 20 20 20 20 20 | fo.:reasoning-block).'in)....... |
| 6e5c0 | 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 | .(plist-put.info.:reasoning-bloc |
| 6e5e0 | 6b 20 74 29 29 0a 20 20 20 20 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 78 20 69 6e 74 6f 20 63 | k.t))......and.collect.tx.into.c |
| 6e600 | 6f 6e 74 65 6e 74 2d 73 74 72 73 20 65 6e 64 0a 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 70 6c | ontent-strs.end......else.if.(pl |
| 6e620 | 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 66 75 6e 63 74 69 6f 6e 43 61 6c 6c 29 0a 20 20 20 20 | ist-get.part.:functionCall)..... |
| 6e640 | 20 63 6f 6c 6c 65 63 74 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 69 74 29 20 69 6e 74 6f | .collect.(copy-sequence.it).into |
| 6e660 | 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 20 20 20 20 20 20 | .tool-use......finally.do....... |
| 6e680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 64 64 20 74 65 78 74 20 61 6e 64 20 | ..................;Add.text.and. |
| 6e6a0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 20 70 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 | tool-calls.to.prompts.list...... |
| 6e6c0 | 28 77 68 65 6e 20 28 6f 72 20 74 6f 6f 6c 2d 75 73 65 20 69 6e 63 6c 75 64 65 2d 74 65 78 74 29 | (when.(or.tool-use.include-text) |
| 6e6e0 | 0a 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 | ........(let*.((data.(plist-get. |
| 6e700 | 69 6e 66 6f 20 3a 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 6d | info.:data))...............(prom |
| 6e720 | 70 74 73 20 28 70 6c 69 73 74 2d 67 65 74 20 64 61 74 61 20 3a 63 6f 6e 74 65 6e 74 73 29 29 0a | pts.(plist-get.data.:contents)). |
| 6e740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 73 74 2d 70 72 6f 6d 70 74 20 28 61 72 65 66 | ..............(last-prompt.(aref |
| 6e760 | 20 70 72 6f 6d 70 74 73 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 70 72 6f 6d 70 74 73 29 29 29 29 | .prompts.(1-.(length.prompts)))) |
| 6e780 | 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 | )..........(if.(equal.(plist-get |
| 6e7a0 | 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 72 6f 6c 65 29 20 22 6d 6f 64 65 6c 22 29 0a 20 20 20 | .last-prompt.:role)."model").... |
| 6e7c0 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 68 65 6e 20 73 74 72 65 61 6d 69 6e 67 2c 20 74 68 65 | ..........;;.When.streaming,.the |
| 6e7e0 | 20 6c 61 73 74 20 70 72 6f 6d 70 74 20 6d 61 79 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 74 68 | .last.prompt.may.already.have.th |
| 6e800 | 65 20 72 6f 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 22 6d 6f 64 65 6c 22 20 66 | e.role..............;;."model".f |
| 6e820 | 72 6f 6d 20 70 72 69 6f 72 20 63 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e | rom.prior.calls.to.this.function |
| 6e840 | 2e 20 20 41 70 70 65 6e 64 20 74 6f 20 69 74 73 20 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 | ...Append.to.its.parts.......... |
| 6e860 | 20 20 20 20 3b 3b 20 69 6e 73 74 65 61 64 20 6f 66 20 61 64 64 69 6e 67 20 61 20 6e 65 77 20 6d | ....;;.instead.of.adding.a.new.m |
| 6e880 | 6f 64 65 6c 20 72 6f 6c 65 20 74 68 65 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | odel.role.then...............(pl |
| 6e8a0 | 69 73 74 2d 70 75 74 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 70 61 72 74 73 0a 20 20 20 20 20 | ist-put.last-prompt.:parts...... |
| 6e8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 28 70 6c 69 | ...................(vconcat.(pli |
| 6e8e0 | 73 74 2d 67 65 74 20 6c 61 73 74 2d 70 72 6f 6d 70 74 20 3a 70 61 72 74 73 29 20 70 61 72 74 73 | st-get.last-prompt.:parts).parts |
| 6e900 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 20 20 20 20 20 20 20 | ))............(plist-put........ |
| 6e920 | 20 20 20 20 20 20 20 20 20 20 20 3b 6f 74 68 65 72 77 69 73 65 20 63 72 65 61 74 65 20 61 20 6e | ...........;otherwise.create.a.n |
| 6e940 | 65 77 20 22 6d 6f 64 65 6c 22 20 72 6f 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 | ew."model".role.............data |
| 6e960 | 20 3a 63 6f 6e 74 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 | .:contents.............(vconcat. |
| 6e980 | 70 72 6f 6d 70 74 73 20 60 28 28 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 20 3a 70 61 72 74 73 20 | prompts.`((:role."model".:parts. |
| 6e9a0 | 2c 70 61 72 74 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 74 6f 6f 6c 2d 75 73 | ,parts)))))))......(when.tool-us |
| 6e9c0 | 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 43 61 70 74 75 72 65 20 74 6f | e....................;Capture.to |
| 6e9e0 | 6f 6c 20 63 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 6f 6f 6c 73 0a 20 | ol.call.data.for.running.tools.. |
| 6ea00 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 0a | ......(plist-put.info.:tool-use. |
| 6ea20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 70 6c 69 73 74 2d | ..................(nconc.(plist- |
| 6ea40 | 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 29 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a | get.info.:tool-use).tool-use))). |
| 6ea60 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 28 61 6e 64 20 63 6f | .....finally.return......(and.co |
| 6ea80 | 6e 74 65 6e 74 2d 73 74 72 73 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 63 6f 6e 74 65 | ntent-strs.(apply.#'concat.conte |
| 6eaa0 | 6e 74 2d 73 74 72 73 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 | nt-strs)))))..(cl-defmethod.gpte |
| 6eac0 | 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | l--request-data.((backend.gptel- |
| 6eae0 | 67 65 6d 69 6e 69 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 | gemini).prompts)..."JSON.encode. |
| 6eb00 | 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 47 65 6d 69 6e 69 2e 22 0a | PROMPTS.for.sending.to.Gemini.". |
| 6eb20 | 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 | ..(let.((prompts-plist.......... |
| 6eb40 | 28 6c 69 73 74 20 3a 63 6f 6e 74 65 6e 74 73 20 28 76 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 73 | (list.:contents.(vconcat.prompts |
| 6eb60 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 66 65 74 79 53 65 74 74 69 6e 67 73 | )................:safetySettings |
| 6eb80 | 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 5f 48 41 52 41 | .[(:category."HARM_CATEGORY_HARA |
| 6eba0 | 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 20 20 20 20 20 | SSMENT"......................... |
| 6ebc0 | 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" |
| 6ebe0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 6ec00 | 20 20 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 5f 53 45 58 55 | ..(:category."HARM_CATEGORY_SEXU |
| 6ec20 | 41 4c 4c 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 | ALLY_EXPLICIT".................. |
| 6ec40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 | ................:threshold."BLOC |
| 6ec60 | 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | K_NONE")........................ |
| 6ec80 | 20 20 20 20 20 20 20 20 20 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f | .........(:category."HARM_CATEGO |
| 6eca0 | 52 59 5f 44 41 4e 47 45 52 4f 55 53 5f 43 4f 4e 54 45 4e 54 22 0a 20 20 20 20 20 20 20 20 20 20 | RY_DANGEROUS_CONTENT"........... |
| 6ecc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c | .......................:threshol |
| 6ece0 | 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d."BLOCK_NONE")................. |
| 6ed00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 61 74 65 67 6f 72 79 20 22 48 41 52 4d | ................(:category."HARM |
| 6ed20 | 5f 43 41 54 45 47 4f 52 59 5f 48 41 54 45 5f 53 50 45 45 43 48 22 0a 20 20 20 20 20 20 20 20 20 | _CATEGORY_HATE_SPEECH".......... |
| 6ed40 | 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 74 68 72 65 73 68 6f | ........................:thresho |
| 6ed60 | 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 5d 29 29 0a 20 20 20 20 20 20 20 20 70 61 72 61 | ld."BLOCK_NONE")])).........para |
| 6ed80 | 6d 73 29 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 | ms).....(if.gptel--system-messag |
| 6eda0 | 65 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 70 6c 69 | e.........(plist-put.prompts-pli |
| 6edc0 | 73 74 20 3a 73 79 73 74 65 6d 5f 69 6e 73 74 72 75 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 | st.:system_instruction.......... |
| 6ede0 | 20 20 20 20 20 20 20 20 20 20 60 28 3a 70 61 72 74 73 20 28 3a 74 65 78 74 20 2c 67 70 74 65 6c | ..........`(:parts.(:text.,gptel |
| 6ee00 | 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 28 77 68 65 6e 20 67 | --system-message)))).....(when.g |
| 6ee20 | 70 74 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 | ptel-use-tools.......(when.(eq.g |
| 6ee40 | 70 74 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 | ptel-use-tools.'force).........( |
| 6ee60 | 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 74 6f 6f 6c 5f 63 6f | plist-put.prompts-plist.:tool_co |
| 6ee80 | 6e 66 69 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 66 75 6e 63 74 | nfig....................'(:funct |
| 6eea0 | 69 6f 6e 5f 63 61 6c 6c 69 6e 67 5f 63 6f 6e 66 69 67 20 28 3a 6d 6f 64 65 20 22 41 4e 59 22 29 | ion_calling_config.(:mode."ANY") |
| 6eec0 | 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 6c 73 0a 20 20 20 20 | ))).......(when.gptel-tools..... |
| 6eee0 | 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 3a 74 6f | ....(plist-put.prompts-plist.:to |
| 6ef00 | 6f 6c 73 0a 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 | ols....................(gptel--p |
| 6ef20 | 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 29 | arse-tools.backend.gptel-tools)) |
| 6ef40 | 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 61 74 75 72 65 0a 20 | )).....(when.gptel-temperature.. |
| 6ef60 | 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | .....(setq.params.............(p |
| 6ef80 | 6c 69 73 74 2d 70 75 74 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | list-put.params................. |
| 6efa0 | 20 20 20 20 20 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 28 6d 61 78 20 67 70 74 65 6c 2d 74 | .......:temperature.(max.gptel-t |
| 6efc0 | 65 6d 70 65 72 61 74 75 72 65 20 31 2e 30 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 | emperature.1.0)))).....(when.gpt |
| 6efe0 | 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 73 | el-max-tokens.......(setq.params |
| 6f000 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 61 72 61 6d 73 0a 20 | .............(plist-put.params.. |
| 6f020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 4f 75 74 70 75 74 | ......................:maxOutput |
| 6f040 | 54 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 28 | Tokens.gptel-max-tokens))).....( |
| 6f060 | 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 0a 20 20 20 | when.gptel-include-reasoning.... |
| 6f080 | 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | ...(setq.params.............(pli |
| 6f0a0 | 73 74 2d 70 75 74 20 70 61 72 61 6d 73 20 3a 74 68 69 6e 6b 69 6e 67 43 6f 6e 66 69 67 20 27 28 | st-put.params.:thinkingConfig.'( |
| 6f0c0 | 3a 69 6e 63 6c 75 64 65 54 68 6f 75 67 68 74 73 20 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e | :includeThoughts.t)))).....(when |
| 6f0e0 | 20 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d | .gptel--schema.......(setq.param |
| 6f100 | 73 20 28 6e 63 6f 6e 63 20 70 61 72 61 6d 73 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 | s.(nconc.params.(gptel--gemini-f |
| 6f120 | 69 6c 74 65 72 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ilter-schema.................... |
| 6f140 | 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 73 63 68 | ...............(gptel--parse-sch |
| 6f160 | 65 6d 61 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 29 29 29 29 29 0a 20 | ema.backend.gptel--schema))))).. |
| 6f180 | 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 74 2d 70 75 74 | ...(when.params.......(plist-put |
| 6f1a0 | 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 20 20 20 20 20 | .prompts-plist.................. |
| 6f1c0 | 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 20 20 20 20 3b | :generationConfig.params)).....; |
| 6f1e0 | 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 20 77 69 74 68 20 6d 6f 64 65 | ;.Merge.request.params.with.mode |
| 6f200 | 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 6d 73 2e 0a 20 20 20 20 28 67 70 74 65 6c | l.and.backend.params......(gptel |
| 6f220 | 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 | --merge-plists......prompts-plis |
| 6f240 | 74 0a 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 | t......gptel--request-params.... |
| 6f260 | 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 61 6d 73 20 | ..(gptel-backend-request-params. |
| 6f280 | 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 6d 6f 64 65 | gptel-backend)......(gptel--mode |
| 6f2a0 | 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 6c 29 29 29 | l-request-params..gptel-model))) |
| 6f2c0 | 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 73 63 | )..(cl-defmethod.gptel--parse-sc |
| 6f2e0 | 68 65 6d 61 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 73 63 | hema.((_backend.gptel-gemini).sc |
| 6f300 | 68 65 6d 61 29 0a 20 20 28 6c 69 73 74 20 3a 72 65 73 70 6f 6e 73 65 4d 69 6d 65 54 79 70 65 20 | hema)...(list.:responseMimeType. |
| 6f320 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 22 0a 20 20 20 20 20 20 20 20 3a 72 65 73 70 | "application/json".........:resp |
| 6f340 | 6f 6e 73 65 53 63 68 65 6d 61 20 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 | onseSchema.(gptel--preprocess-sc |
| 6f360 | 68 65 6d 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 28 67 | hema..........................(g |
| 6f380 | 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 73 63 68 65 6d | ptel--dispatch-schema-type.schem |
| 6f3a0 | 61 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 | a))))..(defun.gptel--gemini-filt |
| 6f3c0 | 65 72 2d 73 63 68 65 6d 61 20 28 73 63 68 65 6d 61 29 0a 20 20 22 44 65 73 74 72 75 63 74 69 76 | er-schema.(schema)..."Destructiv |
| 6f3e0 | 65 6c 79 20 66 69 6c 74 65 72 20 75 6e 73 75 70 70 6f 72 74 65 64 20 61 74 74 72 69 62 75 74 65 | ely.filter.unsupported.attribute |
| 6f400 | 73 20 66 72 6f 6d 20 53 43 48 45 4d 41 2e 0a 0a 47 65 6d 69 6e 69 27 73 20 41 50 49 20 64 6f 65 | s.from.SCHEMA...Gemini's.API.doe |
| 6f420 | 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 60 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 | s.not.support.`additionalPropert |
| 6f440 | 69 65 73 27 2e 22 0a 20 20 28 63 6c 2d 72 65 6d 66 20 73 63 68 65 6d 61 20 3a 61 64 64 69 74 69 | ies'."...(cl-remf.schema.:additi |
| 6f460 | 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 0a 20 20 28 77 68 65 6e 20 28 70 6c 69 73 74 70 20 | onalProperties)...(when.(plistp. |
| 6f480 | 73 63 68 65 6d 61 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 76 61 | schema).....(cl-loop.for.(key.va |
| 6f4a0 | 6c 29 20 6f 6e 20 73 63 68 65 6d 61 20 62 79 20 23 27 63 64 64 72 0a 20 20 20 20 20 20 20 20 20 | l).on.schema.by.#'cddr.......... |
| 6f4c0 | 20 20 20 20 64 6f 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | ....do.(cond..................;; |
| 6f4e0 | 20 52 65 63 75 72 73 69 76 65 6c 79 20 6d 6f 64 69 66 79 20 73 63 68 65 6d 61 73 20 77 69 74 68 | .Recursively.modify.schemas.with |
| 6f500 | 69 6e 20 76 65 63 74 6f 72 73 20 28 61 6e 79 4f 66 2f 61 6c 6c 4f 66 29 0a 20 20 20 20 20 20 20 | in.vectors.(anyOf/allOf)........ |
| 6f520 | 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 61 6e 79 4f 66 20 3a 61 | ..........((memq.key.'(:anyOf.:a |
| 6f540 | 6c 6c 4f 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 | llOf))...................(dotime |
| 6f560 | 73 20 28 69 20 28 6c 65 6e 67 74 68 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | s.(i.(length.val)).............. |
| 6f580 | 20 20 20 20 20 20 20 28 61 73 65 74 20 76 61 6c 20 69 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e | .......(aset.val.i.(gptel--gemin |
| 6f5a0 | 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 28 61 72 65 66 20 76 61 6c 20 69 29 29 29 29 29 | i-filter-schema.(aref.val.i))))) |
| 6f5c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 52 65 63 75 72 73 69 76 65 6c 79 | ..................;;.Recursively |
| 6f5e0 | 20 6d 6f 64 69 66 79 20 70 6c 69 73 74 20 76 61 6c 75 65 73 2c 20 77 68 69 63 68 20 6d 61 79 20 | .modify.plist.values,.which.may. |
| 6f600 | 63 6f 6e 74 61 69 6e 20 73 75 62 2d 73 63 68 65 6d 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | contain.sub-schemas............. |
| 6f620 | 20 20 20 20 20 28 28 70 6c 69 73 74 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....((plistp.val).............. |
| 6f640 | 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d 72 65 6d 66 20 76 61 6c 20 3a 61 64 64 69 74 69 6f | .....(when.(cl-remf.val.:additio |
| 6f660 | 6e 61 6c 50 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 20 20 20 | nalProperties).................. |
| 6f680 | 20 20 20 28 63 6c 2d 72 65 6d 66 20 28 70 6c 69 73 74 2d 67 65 74 20 73 63 68 65 6d 61 20 6b 65 | ...(cl-remf.(plist-get.schema.ke |
| 6f6a0 | 79 29 20 3a 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 29 29 0a 20 20 20 20 20 | y).:additionalProperties))...... |
| 6f6c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 66 69 6c 74 | .............(gptel--gemini-filt |
| 6f6e0 | 65 72 2d 73 63 68 65 6d 61 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er-schema.val))................. |
| 6f700 | 20 3b 3b 20 44 65 66 61 75 6c 74 3a 20 64 6f 20 6e 6f 74 68 69 6e 67 20 74 6f 20 6f 74 68 65 72 | .;;.Default:.do.nothing.to.other |
| 6f720 | 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73 20 79 65 74 2e 0a 20 20 20 20 20 20 20 20 20 20 | .key-value.pairs.yet............ |
| 6f740 | 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 0a 20 20 73 63 68 65 6d 61 29 0a 0a 28 63 6c | .......(t.nil))))...schema)..(cl |
| 6f760 | 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 28 28 | -defmethod.gptel--parse-tools.(( |
| 6f780 | 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 20 74 6f 6f 6c 73 29 0a 20 20 | _backend.gptel-gemini).tools)... |
| 6f7a0 | 22 50 61 72 73 65 20 54 4f 4f 4c 53 20 74 6f 20 74 68 65 20 47 65 6d 69 6e 69 20 41 50 49 20 74 | "Parse.TOOLS.to.the.Gemini.API.t |
| 6f7c0 | 6f 6f 6c 20 64 65 66 69 6e 69 74 69 6f 6e 20 73 70 65 63 2e 0a 0a 54 4f 4f 4c 53 20 69 73 20 61 | ool.definition.spec...TOOLS.is.a |
| 6f7e0 | 20 6c 69 73 74 20 6f 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 | .list.of.`gptel-tool'.structs,.w |
| 6f800 | 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 74 6f 6f | hich.see."...(cl-loop....for.too |
| 6f820 | 6c 20 69 6e 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 74 6f 6f 6c 73 29 0a 20 20 20 63 6f 6c 6c | l.in.(ensure-list.tools)....coll |
| 6f840 | 65 63 74 0a 20 20 20 28 6c 69 73 74 0a 20 20 20 20 3a 6e 61 6d 65 20 28 67 70 74 65 6c 2d 74 6f | ect....(list.....:name.(gptel-to |
| 6f860 | 6f 6c 2d 6e 61 6d 65 20 74 6f 6f 6c 29 0a 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 | ol-name.tool).....:description.( |
| 6f880 | 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 74 6f 6f 6c 29 0a 20 20 20 | gptel-tool-description.tool).... |
| 6f8a0 | 20 3a 70 61 72 61 6d 65 74 65 72 73 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 67 70 74 65 6c | .:parameters.....(if.(not.(gptel |
| 6f8c0 | 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c 29 29 0a 20 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c | -tool-args.tool))..........:null |
| 6f8e0 | 20 20 20 20 20 20 20 20 20 20 20 3b 4e 4f 54 45 3a 20 47 65 6d 69 6e 69 20 77 61 6e 74 73 20 3a | ...........;NOTE:.Gemini.wants.: |
| 6f900 | 6e 75 6c 6c 20 69 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 74 61 6b 65 73 20 6e 6f 20 61 72 | null.if.the.function.takes.no.ar |
| 6f920 | 67 73 0a 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6f 62 6a 65 63 74 22 0a 20 20 | gs.......(list.:type."object"... |
| 6f940 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 65 20 74 68 65 20 67 65 6e 65 72 69 63 20 69 6d 70 | ..........;;.See.the.generic.imp |
| 6f960 | 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 61 6e 20 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f | lementation.for.an.explanation.o |
| 6f980 | 66 20 74 68 69 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 72 61 6e 73 66 6f 72 6d 61 | f.this.............;;.transforma |
| 6f9a0 | 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 70 65 72 74 69 65 73 0a 20 20 | tion..............:properties... |
| 6f9c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........(cl-loop.............. |
| 6f9e0 | 66 6f 72 20 61 72 67 20 69 6e 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 61 72 67 73 20 74 6f 6f 6c | for.arg.in.(gptel-tool-args.tool |
| 6fa00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 61 72 67 73 70 65 63 20 3d 20 28 63 6f | )..............for.argspec.=.(co |
| 6fa20 | 70 79 2d 73 65 71 75 65 6e 63 65 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f | py-sequence.arg)..............fo |
| 6fa40 | 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 61 6d 65 29 20 3b | r.name.=.(plist-get.arg.:name).; |
| 6fa60 | 68 61 6e 64 6c 65 64 20 64 69 66 66 65 72 65 6e 74 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 | handled.differently............. |
| 6fa80 | 20 66 6f 72 20 6e 65 77 6e 61 6d 65 20 3d 20 28 6f 72 20 28 61 6e 64 20 28 6b 65 79 77 6f 72 64 | .for.newname.=.(or.(and.(keyword |
| 6faa0 | 70 20 6e 61 6d 65 29 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.name).name)................... |
| 6fac0 | 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 61 | .............(make-symbol.(conca |
| 6fae0 | 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 64 6f 20 20 20 | t.":".name)))..............do... |
| 6fb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 41 52 47 53 50 45 43 20 69 73 | .....................;ARGSPEC.is |
| 6fb20 | 20 41 52 47 20 77 69 74 68 6f 75 74 20 75 6e 72 65 63 6f 67 6e 69 7a 65 64 20 6b 65 79 73 0a 20 | .ARG.without.unrecognized.keys.. |
| 6fb40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 63 20 3a 6e 61 | ............(cl-remf.argspec.:na |
| 6fb60 | 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 66 20 61 72 67 73 70 65 | me)..............(cl-remf.argspe |
| 6fb80 | 63 20 3a 6f 70 74 69 6f 6e 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 65 71 | c.:optional)..............if.(eq |
| 6fba0 | 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 20 22 6f 62 6a 65 63 | ual.(plist-get.arg.:type)."objec |
| 6fbc0 | 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 | t")..............do.(unless.(pli |
| 6fbe0 | 73 74 2d 6d 65 6d 62 65 72 20 61 72 67 73 70 65 63 20 3a 72 65 71 75 69 72 65 64 29 0a 20 20 20 | st-member.argspec.:required).... |
| 6fc00 | 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 61 72 67 73 70 65 | ...............(plist-put.argspe |
| 6fc20 | 63 20 3a 72 65 71 75 69 72 65 64 20 5b 5d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 | c.:required.[]))..............if |
| 6fc40 | 20 28 65 71 75 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 61 72 67 20 3a 74 79 70 65 29 20 22 73 | .(equal.(plist-get.arg.:type)."s |
| 6fc60 | 74 72 69 6e 67 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 63 6c 2d 72 65 6d 66 | tring")..............do.(cl-remf |
| 6fc80 | 20 61 72 67 73 70 65 63 20 3a 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 61 | .argspec.:format)..............a |
| 6fca0 | 70 70 65 6e 64 20 28 6c 69 73 74 20 6e 65 77 6e 61 6d 65 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 | ppend.(list.newname.(gptel--gemi |
| 6fcc0 | 6e 69 2d 66 69 6c 74 65 72 2d 73 63 68 65 6d 61 20 61 72 67 73 70 65 63 29 29 29 0a 20 20 20 20 | ni-filter-schema.argspec)))..... |
| 6fce0 | 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 76 | ........:required.............(v |
| 6fd00 | 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 6d | concat..............(delq.nil.(m |
| 6fd20 | 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 6c | apcar.........................(l |
| 6fd40 | 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 74 | ambda.(arg).(and.(not.(plist-get |
| 6fd60 | 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 20 | .arg.:optional))................ |
| 6fd80 | 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 |
| 6fda0 | 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 20 | t.arg.:name))).................. |
| 6fdc0 | 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 29 | .......(gptel-tool-args.tool)))) |
| 6fde0 | 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 6c | )))....into.tool-specs....finall |
| 6fe00 | 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 6f | y.return.`[(:function_declaratio |
| 6fe20 | 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 63 | ns.,(vconcat.tool-specs))]))..(c |
| 6fe40 | 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 65 | l-defmethod.gptel--parse-tool-re |
| 6fe60 | 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 74 | sults.((_backend.gptel-gemini).t |
| 6fe80 | 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 74 | ool-use)..."Return.a.prompt.cont |
| 6fea0 | 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 4c | aining.tool.call.results.in.TOOL |
| 6fec0 | 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 20 | -USE."...(list....:role."user".. |
| 6fee0 | 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 72 | ..:parts....(vconcat.....(mapcar |
| 6ff00 | 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 20 | ......(lambda.(tool-call)....... |
| 6ff20 | 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 63 | .(let.((result.(plist-get.tool-c |
| 6ff40 | 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 65 | all.:result))..............(name |
| 6ff60 | 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 20 | .(plist-get.tool-call.:name))).. |
| 6ff80 | 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 20 | ........`(:functionResponse..... |
| 6ffa0 | 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 20 | .......(:name.,name.:response... |
| 6ffc0 | 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 20 | ..........(:name.,name.:content. |
| 6ffe0 | 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 0a | ,result)))))......tool-use)))).. |
| 70000 | 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 6d | (cl-defmethod.gptel--inject-prom |
| 70020 | 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 61 | pt.((_backend.gptel-gemini).data |
| 70040 | 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 29 | .new-prompt.&optional._position) |
| 70060 | 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 6e | ..."Append.NEW-PROMPT.to.existin |
| 70080 | 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 65 | g.prompts.in.query.DATA...See.ge |
| 700a0 | 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 6f | neric.implementation.for.full.do |
| 700c0 | 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 28 | cumentation."...(let.((prompts.( |
| 700e0 | 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 20 | plist-get.data.:contents)))..... |
| 70100 | 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 63 | (plist-put.data.:contents.(vconc |
| 70120 | 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 29 | at.prompts.(list.new-prompt))))) |
| 70140 | 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 | ..(cl-defmethod.gptel--parse-lis |
| 70160 | 74 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 74 | t.((backend.gptel-gemini).prompt |
| 70180 | 2d 6c 69 73 74 29 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d | -list)...(if.(consp.(car.prompt- |
| 701a0 | 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 | list)).......(let.((full-prompt) |
| 701c0 | 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 | )..............;.Advanced.format |
| 701e0 | 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 | ,.list.of.lists.........(dolist. |
| 70200 | 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 | (entry.prompt-list)...........(p |
| 70220 | 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 | case.entry.............(`(prompt |
| 70240 | 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 | ...,msg)..............(push.(lis |
| 70260 | 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.:role."user".................. |
| 70280 | 20 20 20 20 20 20 20 20 3a 70 61 72 74 73 20 60 5b 28 3a 74 65 78 74 20 2c 28 6f 72 20 28 63 61 | ........:parts.`[(:text.,(or.(ca |
| 702a0 | 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r-safe.msg).msg))])............. |
| 702c0 | 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .......full-prompt))............ |
| 702e0 | 20 28 60 28 72 65 73 70 6f 6e 73 65 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .(`(response...,msg)............ |
| 70300 | 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 0a 20 20 20 20 | ..(push.(list.:role."model"..... |
| 70320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 74 73 20 60 5b 28 3a | .....................:parts.`[(: |
| 70340 | 74 65 78 74 20 2c 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 5d 29 | text.,(or.(car-safe.msg).msg))]) |
| 70360 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 | ....................full-prompt) |
| 70380 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 63 61 6c 6c 29 0a 20 | ).............(`(tool...,call).. |
| 703a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d | ............(push.(list.:role."m |
| 703c0 | 6f 64 65 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | odel"..........................: |
| 703e0 | 70 61 72 74 73 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 | parts.(vector.`(:functionCall.(. |
| 70400 | 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 | :name.,(plist-get.call.:name)... |
| 70420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 70440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 2c 28 | ........................:args.,( |
| 70460 | 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 | plist-get.call.:args)))))....... |
| 70480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 | .............full-prompt)....... |
| 704a0 | 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 6f 6f 6c 2d | .......(push.(gptel--parse-tool- |
| 704c0 | 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 28 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 | results.backend.(list.(cdr.entry |
| 704e0 | 29 29 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 | ))).full-prompt)))).........(nre |
| 70500 | 76 65 72 73 65 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 | verse.full-prompt)).....(cl-loop |
| 70520 | 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 6f 6d 70 74 2d 6c 69 73 74 20 20 20 20 3b 20 53 69 | .for.text.in.prompt-list....;.Si |
| 70540 | 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 | mple.format,.list.of.strings.... |
| 70560 | 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 6f 6c 65 20 3d 20 74 20 74 68 65 6e 20 28 6e 6f 74 | ..........for.role.=.t.then.(not |
| 70580 | 20 72 6f 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 74 65 78 74 0a 20 20 20 20 | .role)..............if.text..... |
| 705a0 | 20 20 20 20 20 20 20 20 20 69 66 20 72 6f 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f | .........if.role..............co |
| 705c0 | 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 3a 70 61 72 74 73 20 | llect.(list.:role."user".:parts. |
| 705e0 | 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 6f 6d 70 74 73 0a 20 | `[(:text.,text)]).into.prompts.. |
| 70600 | 20 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 69 73 74 20 3a | ............else.collect.(list.: |
| 70620 | 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 20 2c 74 65 78 | role."model".:parts.`(:text.,tex |
| 70640 | 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 20 20 20 66 69 | t)).into.prompts..............fi |
| 70660 | 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 70 72 6f 6d 70 74 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 | nally.return.prompts)))..(cl-def |
| 70680 | 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 |
| 706a0 | 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 61 78 | kend.gptel-gemini).&optional.max |
| 706c0 | 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 |
| 706e0 | 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 67 70 74 65 6c | v-pt.(point))).....(if.(or.gptel |
| 70700 | 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)..... |
| 70720 | 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 |
| 70740 | 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))....... |
| 70760 | 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 |
| 70780 | 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....... |
| 707a0 | 20 20 20 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 |
| 707c0 | 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)))...... |
| 707e0 | 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 |
| 70800 | 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 65 20 28 67 65 74 2d | rev-pt)))...........(pcase.(get- |
| 70820 | 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 29 0a 20 20 | char-property.(point).'gptel)... |
| 70840 | 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 20 20 20 20 20 20 20 | ..........('response............ |
| 70860 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 74 | ..(when-let*.((content.(gptel--t |
| 70880 | 72 69 6d 2d 70 72 65 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rim-prefixes.................... |
| 708a0 | 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 |
| 708c0 | 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 65 76 2d 70 74 29 | g-no-properties.(point).prev-pt) |
| 708e0 | 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 28 6c 69 73 74 20 3a | )))................(push.(list.: |
| 70900 | 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 20 3a 74 65 78 74 20 | role."model".:parts.(list.:text. |
| 70920 | 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 20 20 20 20 20 20 20 | content)).prompts)))............ |
| 70940 | 20 28 60 28 74 6f 6f 6c 20 2e 20 2c 5f 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 | .(`(tool...,_id)..............(s |
| 70960 | 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 28 63 6f | ave-excursion................(co |
| 70980 | 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................ |
| 709a0 | 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 72 | ....(let*.((tool-call.(read.(cur |
| 709c0 | 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rent-buffer))).................. |
| 709e0 | 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 | .........(name.(plist-get.tool-c |
| 70a00 | 61 6c 6c 20 3a 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | all.:name))..................... |
| 70a20 | 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 67 65 74 20 74 6f 6f | ......(arguments..(plist-get.too |
| 70a40 | 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-call.:args)))................. |
| 70a60 | 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 |
| 70a80 | 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............................... |
| 70aa0 | 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 6e 67 | ..(string-trim.(buffer-substring |
| 70ac0 | 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.................. |
| 70ae0 | 20 20 20 20 20 20 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 |
| 70b00 | 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | int).prev-pt)))................. |
| 70b20 | 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 6f 6f 6c 2d 72 65 | .....(push.(gptel--parse-tool-re |
| 70b40 | 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 61 6c 6c 29 29 0a | sults.backend.(list.tool-call)). |
| 70b60 | 20 20 20 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 | ...........................promp |
| 70b80 | 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 28 70 75 73 68 20 28 | ts)......................(push.( |
| 70ba0 | 6c 69 73 74 20 3a 72 6f 6c 65 20 22 6d 6f 64 65 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | list.:role."model".............. |
| 70bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 74 73 0a 20 20 20 20 20 | ....................:parts...... |
| 70be0 | 20 20 20 20 20 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 | ............................(vec |
| 70c00 | 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 6d 65 20 2c 6e 61 6d | tor.`(:functionCall.(.:name.,nam |
| 70c20 | 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............................... |
| 70c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 | .............................:ar |
| 70c60 | 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 20 20 20 20 20 20 20 | gs.,arguments))))............... |
| 70c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 | .............prompts)).......... |
| 70ca0 | 20 20 20 20 20 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 | ........((end-of-file.invalid-re |
| 70cc0 | 61 64 2d 73 79 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 | ad-syntax)...................(me |
| 70ce0 | 73 73 61 67 65 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 | ssage.(format."Could.not.parse.t |
| 70d00 | 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 20 20 20 20 20 20 20 | ool-call.on.line.%s"............ |
| 70d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 | ........................(line-nu |
| 70d40 | 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 29 0a 20 20 20 20 20 | mber-at-pos.(point))))))))...... |
| 70d60 | 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 20 20 20 20 28 27 6e | .......('ignore).............('n |
| 70d80 | 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d | il..............(if.gptel-track- |
| 70da0 | 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 6c 65 74 | media..................(when-let |
| 70dc0 | 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 72 73 65 | *.((content.(gptel--gemini-parse |
| 70de0 | 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 20 20 20 | -multipart...................... |
| 70e00 | 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- |
| 70e20 | 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 29 20 70 | media-links.major-mode.(point).p |
| 70e40 | 72 65 76 2d 70 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | rev-pt))))....................(w |
| 70e60 | 68 65 6e 20 28 3e 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 6e 74 29 20 30 29 0a 20 20 20 20 20 | hen.(>.(length.content).0)...... |
| 70e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c | ................(push.(list.:rol |
| 70ea0 | 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 70 74 73 | e."user".:parts.content).prompts |
| 70ec0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | )))................(when-let*.(( |
| 70ee0 | 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 0a 20 20 | content.(gptel--trim-prefixes... |
| 70f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 70f20 | 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | ...(buffer-substring-no-properti |
| 70f40 | 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.............................. |
| 70f60 | 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 20 | .........(point).prev-pt)))).... |
| 70f80 | 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 20 | ..............(push.(list.:role. |
| 70fa0 | 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 74 29 | "user".:parts.`[(:text.,content) |
| 70fc0 | 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 74 71 20 | ]).prompts)))))...........(setq. |
| 70fe0 | 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 | prev-pt.(point))...........(and. |
| 71000 | 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 | max-entries.(cl-decf.max-entries |
| 71020 | 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 6e 74 20 28 73 74 72 69 6e 67 | ))).......(let.((content.(string |
| 71040 | 2d 74 72 69 6d 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 | -trim.(buffer-substring-no-prope |
| 71060 | 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........................... |
| 71080 | 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | .........(point-min).(point-max) |
| 710a0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 | )))).........(push.(list.:role." |
| 710c0 | 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 74 29 5d | user".:parts.`[(:text.,content)] |
| 710e0 | 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 64 65 66 | ).prompts))).....prompts))..(def |
| 71100 | 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 61 72 74 | un.gptel--gemini-parse-multipart |
| 71120 | 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 72 74 20 | .(parts)..."Convert.a.multipart. |
| 71140 | 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 49 20 66 | prompt.PARTS.to.the.Gemini.API.f |
| 71160 | 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 20 6f 66 | ormat...The.input.is.an.alist.of |
| 71180 | 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 74 5c 22 | .the.form..((:text.\"some.text\" |
| 711a0 | 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 | )...(:media.\"/path/to/media.png |
| 711c0 | 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 | \".:mime.\"image/png\")...(:text |
| 711e0 | 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 69 73 | .\"More.text\"))...The.output.is |
| 71200 | 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 6b 65 6e | .a.vector.of.entries.in.a.backen |
| 71220 | 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 6c 6f 6f | d-appropriate.format."...(cl-loo |
| 71240 | 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 20 6e 20 | p....for.part.in.parts....for.n. |
| 71260 | 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 74 68 20 | upfrom.1....with.last.=.(length. |
| 71280 | 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 65 74 20 | parts)....for.text.=.(plist-get. |
| 712a0 | 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 6c 69 73 | part.:text)....for.media.=.(plis |
| 712c0 | 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 20 64 6f | t-get.part.:media)....if.text.do |
| 712e0 | 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 74 29 29 | ....(and.(or.(=.n.1).(=.n.last)) |
| 71300 | 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 69 78 65 | .(setq.text.(gptel--trim-prefixe |
| 71320 | 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 6f 6c 6c | s.text))).and....if.text....coll |
| 71340 | 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 72 74 73 | ect.(list.:text.text).into.parts |
| 71360 | 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 20 20 63 | -array.end....else.if.media....c |
| 71380 | 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 20 28 3a | ollect....`(:inline_data......(: |
| 713a0 | 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 69 6d 65 | mime_type.,(plist-get.part.:mime |
| 713c0 | 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 2d 65 6e | ).......:data.,(gptel--base64-en |
| 713e0 | 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 72 72 61 | code.media)))....into.parts-arra |
| 71400 | 79 0a 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 3a 74 65 | y....else.if.(plist-get.part.:te |
| 71420 | 78 74 66 69 6c 65 29 0a 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 28 6c 69 73 74 20 3a 74 65 78 | xtfile)....collect....(list.:tex |
| 71440 | 74 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 20 20 | t.(with-temp-buffer............. |
| 71460 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 | .....(gptel--insert-file-string. |
| 71480 | 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 | (plist-get.part.:textfile))..... |
| 714a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 20 | .............(buffer-string))).. |
| 714c0 | 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 |
| 714e0 | 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 |
| 71500 | 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 |
| 71520 | 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 70 72 6f | mpt.((_backend.gptel-gemini).pro |
| 71540 | 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 20 20 20 | mpts............................ |
| 71560 | 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 6d 65 64 | ............&optional.inject-med |
| 71580 | 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 6d 70 74 | ia)..."Wrap.the.last.user.prompt |
| 715a0 | 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 73 74 72 | .in.PROMPTS.with.the.context.str |
| 715c0 | 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 6e 69 6c | ing...If.INJECT-MEDIA.is.non-nil |
| 715e0 | 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 6d 65 64 | .wrap.it.with.base64-encoded.med |
| 71600 | 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 69 66 20 | ia.files.in.the.context."...(if. |
| 71620 | 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 65 20 66 | inject-media.......;;.Wrap.the.f |
| 71640 | 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 64 20 6d | irst.user.prompt.with.included.m |
| 71660 | 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 65 6e 2d | edia.files/contexts.......(when- |
| 71680 | 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 65 78 74 | let*.((media-list.(gptel-context |
| 716a0 | 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 6c 2d 63 | --collect-media))).........(cl-c |
| 716c0 | 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 20 20 20 | allf.(lambda.(current).......... |
| 716e0 | 20 20 20 20 20 20 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 2d 67 65 6d 69 | ...........(vconcat.(gptel--gemi |
| 71700 | 6e 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 | ni-parse-multipart.media-list).. |
| 71720 | 20 20 20 20 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 |
| 71740 | 65 6e 74 29 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 28 63 61 | ent)).............(plist-get.(ca |
| 71760 | 72 20 70 72 6f 6d 70 74 73 29 20 3a 70 61 72 74 73 29 29 29 0a 20 20 20 20 3b 3b 20 57 72 61 70 | r.prompts).:parts))).....;;.Wrap |
| 71780 | 20 74 68 65 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 | .the.last.user.prompt.with.inclu |
| 717a0 | 64 65 64 20 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 | ded.text.contexts.....(cl-callf. |
| 717c0 | 28 6c 61 6d 62 64 61 20 28 63 75 72 72 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (lambda.(current)............... |
| 717e0 | 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 77 72 61 70 70 65 64 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | ..(if-let*.((wrapped.(gptel-cont |
| 71800 | 65 78 74 2d 2d 77 72 61 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ext--wrap.nil)))................ |
| 71820 | 20 20 20 20 20 28 76 63 6f 6e 63 61 74 20 60 28 28 3a 74 65 78 74 20 2c 77 72 61 70 70 65 64 29 | .....(vconcat.`((:text.,wrapped) |
| 71840 | 29 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 63 75 72 | ).current)...................cur |
| 71860 | 72 65 6e 74 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 20 28 | rent)).........(plist-get.(car.( |
| 71880 | 6c 61 73 74 20 70 72 6f 6d 70 74 73 29 29 20 3a 70 61 72 74 73 29 29 29 29 0a 0a 28 64 65 66 63 | last.prompts)).:parts))))..(defc |
| 718a0 | 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 67 65 6d 69 6e 69 2d 6d 6f 64 65 6c 73 0a 20 20 27 28 28 67 | onst.gptel--gemini-models...'((g |
| 718c0 | 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | emini-2.5-pro......:description. |
| 718e0 | 22 4d 6f 73 74 20 70 6f 77 65 72 66 75 6c 20 47 65 6d 69 6e 69 20 74 68 69 6e 6b 69 6e 67 20 6d | "Most.powerful.Gemini.thinking.m |
| 71900 | 6f 64 65 6c 20 77 69 74 68 20 73 74 61 74 65 2d 6f 66 2d 74 68 65 2d 61 72 74 20 70 65 72 66 6f | odel.with.state-of-the-art.perfo |
| 71920 | 72 6d 61 6e 63 65 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c | rmance"......:capabilities.(tool |
| 71940 | 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 20 61 75 64 69 6f 20 76 69 64 65 6f 29 0a 20 20 20 | -use.json.media.audio.video).... |
| 71960 | 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 |
| 71980 | 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 |
| 719a0 | 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".................. |
| 719c0 | 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 | ."application/pdf"."text/plain". |
| 719e0 | 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 | "text/csv"."text/html".......... |
| 71a00 | 20 20 20 20 20 20 20 20 20 22 61 75 64 69 6f 2f 6d 70 65 67 22 20 22 61 75 64 69 6f 2f 77 61 76 | ........."audio/mpeg"."audio/wav |
| 71a20 | 22 20 22 61 75 64 69 6f 2f 6f 67 67 22 20 22 61 75 64 69 6f 2f 66 6c 61 63 22 20 22 61 75 64 69 | "."audio/ogg"."audio/flac"."audi |
| 71a40 | 6f 2f 61 61 63 22 20 22 61 75 64 69 6f 2f 6d 70 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | o/aac"."audio/mp3".............. |
| 71a60 | 20 20 20 20 20 22 76 69 64 65 6f 2f 6d 70 34 22 20 22 76 69 64 65 6f 2f 6d 70 65 67 22 20 22 76 | ....."video/mp4"."video/mpeg"."v |
| 71a80 | 69 64 65 6f 2f 61 76 69 22 20 22 76 69 64 65 6f 2f 71 75 69 63 6b 74 69 6d 65 22 20 22 76 69 64 | ideo/avi"."video/quicktime"."vid |
| 71aa0 | 65 6f 2f 77 65 62 6d 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 | eo/webm")......:context-window.1 |
| 71ac0 | 30 34 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 | 048...............;.65536.output |
| 71ae0 | 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e | .token.limit......:input-cost.1. |
| 71b00 | 32 35 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 32 2e 35 30 20 66 6f 72 | 25)...................;.2.50.for |
| 71b20 | 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 | .>200k.tokens.....(gemini-2.5-pr |
| 71b40 | 6f 2d 65 78 70 2d 30 33 2d 32 35 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4c | o-exp-03-25......:description."L |
| 71b60 | 69 6b 65 20 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 33 2d 32 35 | ike.gemini-2.5-pro-preview-03-25 |
| 71b80 | 20 62 75 74 20 6c 69 6d 69 74 65 64 20 74 6f 20 35 20 72 65 71 2f 6d 69 6e 2c 20 32 35 20 72 65 | .but.limited.to.5.req/min,.25.re |
| 71ba0 | 71 2f 64 61 79 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 | q/day"......:capabilities.(tool- |
| 71bc0 | 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 | use.json.media)......:mime-types |
| 71be0 | 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 | .("image/png"."image/jpeg"."imag |
| 71c00 | 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 | e/webp"."image/heic"."image/heif |
| 71c20 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e | "..................."application |
| 71c40 | 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 | /pdf"."text/plain"."text/csv"."t |
| 71c60 | 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 | ext/html")......:context-window. |
| 71c80 | 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 | 1000......:input-cost.0.00...... |
| 71ca0 | 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 30 30 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 | :output-cost.0.00).....(gemini-2 |
| 71cc0 | 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 33 2d 32 35 0a 20 20 20 20 20 3a 64 65 73 63 72 | .5-pro-preview-03-25......:descr |
| 71ce0 | 69 70 74 69 6f 6e 20 22 45 6e 68 61 6e 63 65 64 20 72 65 61 73 6f 6e 69 6e 67 2c 20 6d 75 6c 74 | iption."Enhanced.reasoning,.mult |
| 71d00 | 69 6d 6f 64 61 6c 20 75 6e 64 65 72 73 74 61 6e 64 69 6e 67 20 26 20 61 64 76 61 6e 63 65 64 20 | imodal.understanding.&.advanced. |
| 71d20 | 63 6f 64 69 6e 67 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c | coding"......:capabilities.(tool |
| 71d40 | 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 | -use.json.media)......:mime-type |
| 71d60 | 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 | s.("image/png"."image/jpeg"."ima |
| 71d80 | 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 | ge/webp"."image/heic"."image/hei |
| 71da0 | 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f | f"..................."applicatio |
| 71dc0 | 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 | n/pdf"."text/plain"."text/csv"." |
| 71de0 | 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 | text/html")......:context-window |
| 71e00 | 20 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 31 2e 32 35 20 3b 20 32 2e | .1000......:input-cost.1.25.;.2. |
| 71e20 | 35 30 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 | 50.for.>200k.tokens......:output |
| 71e40 | 2d 63 6f 73 74 20 31 30 2e 30 30 20 3b 20 31 35 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e | -cost.10.00.;.15.for.>200k.token |
| 71e60 | 73 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 | s......:cutoff-date."2025-01").. |
| 71e80 | 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 2d 70 72 65 76 69 65 77 2d 30 35 2d | ...(gemini-2.5-flash-preview-05- |
| 71ea0 | 32 30 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 45 50 52 45 43 41 54 45 44 | 20......:description."DEPRECATED |
| 71ec0 | 3a 20 50 6c 65 61 73 65 20 75 73 65 20 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 20 69 6e | :.Please.use.gemini-2.5-flash.in |
| 71ee0 | 73 74 65 61 64 2e 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 | stead."......:capabilities.(tool |
| 71f00 | 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 | -use.json.media)......:mime-type |
| 71f20 | 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 | s.("image/png"."image/jpeg"."ima |
| 71f40 | 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 | ge/webp"."image/heic"."image/hei |
| 71f60 | 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f | f"..................."applicatio |
| 71f80 | 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 | n/pdf"."text/plain"."text/csv"." |
| 71fa0 | 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 | text/html")......:context-window |
| 71fc0 | 20 31 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 | .1048.;.65536.output.token.limit |
| 71fe0 | 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 74 | ......:input-cost.0.15......:out |
| 72000 | 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 20 3b 20 33 2e 35 30 20 66 6f 72 20 74 68 69 6e 6b 69 6e | put-cost.0.60.;.3.50.for.thinkin |
| 72020 | 67 0a 20 20 20 20 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 | g......:cutoff-date."2025-01").. |
| 72040 | 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 0a 20 20 20 20 20 3a 64 65 73 63 72 | ...(gemini-2.5-flash......:descr |
| 72060 | 69 70 74 69 6f 6e 20 22 42 65 73 74 20 6d 6f 64 65 6c 20 69 6e 20 74 65 72 6d 73 20 6f 66 20 70 | iption."Best.model.in.terms.of.p |
| 72080 | 72 69 63 65 2d 70 65 72 66 6f 72 6d 61 6e 63 65 2c 20 6f 66 66 65 72 69 6e 67 20 77 65 6c 6c 2d | rice-performance,.offering.well- |
| 720a0 | 72 6f 75 6e 64 65 64 20 63 61 70 61 62 69 6c 69 74 69 65 73 22 0a 20 20 20 20 20 3a 63 61 70 61 | rounded.capabilities"......:capa |
| 720c0 | 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 20 61 75 | bilities.(tool-use.json.media.au |
| 720e0 | 64 69 6f 20 76 69 64 65 6f 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d | dio.video)......:mime-types.("im |
| 72100 | 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 62 | age/png"."image/jpeg"."image/web |
| 72120 | 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 20 | p"."image/heic"."image/heif".... |
| 72140 | 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 22 | ..............."application/pdf" |
| 72160 | 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 |
| 72180 | 74 6d 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 64 69 6f 2f 6d 70 | tml"..................."audio/mp |
| 721a0 | 65 67 22 20 22 61 75 64 69 6f 2f 77 61 76 22 20 22 61 75 64 69 6f 2f 6f 67 67 22 20 22 61 75 64 | eg"."audio/wav"."audio/ogg"."aud |
| 721c0 | 69 6f 2f 66 6c 61 63 22 20 22 61 75 64 69 6f 2f 61 61 63 22 20 22 61 75 64 69 6f 2f 6d 70 33 22 | io/flac"."audio/aac"."audio/mp3" |
| 721e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 69 64 65 6f 2f 6d 70 34 22 20 22 | ..................."video/mp4"." |
| 72200 | 76 69 64 65 6f 2f 6d 70 65 67 22 20 22 76 69 64 65 6f 2f 61 76 69 22 20 22 76 69 64 65 6f 2f 71 | video/mpeg"."video/avi"."video/q |
| 72220 | 75 69 63 6b 74 69 6d 65 22 20 22 76 69 64 65 6f 2f 77 65 62 6d 22 29 0a 20 20 20 20 20 3a 63 6f | uicktime"."video/webm")......:co |
| 72240 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 | ntext-window.1048.;.65536.output |
| 72260 | 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e | .token.limit......:input-cost.0. |
| 72280 | 33 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 32 2e 35 30 0a 20 20 20 20 20 3a 63 | 3......:output-cost.2.50......:c |
| 722a0 | 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e | utoff-date."2025-01").....(gemin |
| 722c0 | 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 35 2d 30 36 0a 20 20 20 20 20 3a 64 65 | i-2.5-pro-preview-05-06......:de |
| 722e0 | 73 63 72 69 70 74 69 6f 6e 20 22 50 72 65 76 69 6f 75 73 6c 79 20 6d 6f 73 74 20 70 6f 77 65 72 | scription."Previously.most.power |
| 72300 | 66 75 6c 20 74 68 69 6e 6b 69 6e 67 20 6d 6f 64 65 6c 20 77 69 74 68 20 73 74 61 74 65 2d 6f 66 | ful.thinking.model.with.state-of |
| 72320 | 2d 74 68 65 2d 61 72 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 22 0a 20 20 20 20 20 3a 63 61 70 61 | -the-art.performance"......:capa |
| 72340 | 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 | bilities.(tool-use.json.media).. |
| 72360 | 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d | ....:mime-types.("image/png"."im |
| 72380 | 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 65 2f 68 65 | age/jpeg"."image/webp"."image/he |
| 723a0 | 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ic"."image/heif"................ |
| 723c0 | 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e | ..."application/pdf"."text/plain |
| 723e0 | 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a | "."text/csv"."text/html")......: |
| 72400 | 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 | context-window.1048.;.65536.outp |
| 72420 | 75 74 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 | ut.token.limit......:input-cost. |
| 72440 | 31 2e 32 35 20 3b 20 32 2e 35 30 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 | 1.25.;.2.50.for.>200k.tokens.... |
| 72460 | 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 2e 30 30 29 20 20 20 20 20 20 20 20 20 20 20 | ..:output-cost.10.00)........... |
| 72480 | 20 20 20 20 20 3b 20 31 35 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 28 | .....;.15.for.>200k.tokens.....( |
| 724a0 | 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 36 2d 30 35 0a 20 20 20 | gemini-2.5-pro-preview-06-05.... |
| 724c0 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 6f 73 74 20 70 6f 77 65 72 66 75 6c 20 74 68 | ..:description."Most.powerful.th |
| 724e0 | 69 6e 6b 69 6e 67 20 6d 6f 64 65 6c 20 77 69 74 68 20 73 74 61 74 65 2d 6f 66 2d 74 68 65 2d 61 | inking.model.with.state-of-the-a |
| 72500 | 72 74 20 70 65 72 66 6f 72 6d 61 6e 63 65 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 | rt.performance"......:capabiliti |
| 72520 | 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d | es.(tool-use.json.media)......:m |
| 72540 | 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 65 2f 6a 70 | ime-types.("image/png"."image/jp |
| 72560 | 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 22 20 22 69 | eg"."image/webp"."image/heic"."i |
| 72580 | 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 20 22 61 70 | mage/heif"..................."ap |
| 725a0 | 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 | plication/pdf"."text/plain"."tex |
| 725c0 | 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 | t/csv"."text/html")......:contex |
| 725e0 | 74 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 36 35 | t-window.1048...............;.65 |
| 72600 | 35 33 36 20 6f 75 74 70 75 74 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 | 536.output.token.limit......:inp |
| 72620 | 75 74 2d 63 6f 73 74 20 31 2e 32 35 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ut-cost.1.25...................; |
| 72640 | 20 32 2e 35 30 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 6f 75 74 | .2.50.for.>200k.tokens......:out |
| 72660 | 70 75 74 2d 63 6f 73 74 20 31 30 2e 30 30 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | put-cost.10.00.................; |
| 72680 | 20 31 35 20 66 6f 72 20 3e 32 30 30 6b 20 74 6f 6b 65 6e 73 0a 20 20 20 20 20 3a 63 75 74 6f 66 | .15.for.>200k.tokens......:cutof |
| 726a0 | 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e | f-date."2025-01").....(gemini-2. |
| 726c0 | 35 2d 66 6c 61 73 68 2d 6c 69 74 65 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | 5-flash-lite......:description." |
| 726e0 | 46 61 73 74 65 73 74 20 61 6e 64 20 63 68 65 61 70 65 73 74 20 32 2e 35 20 6d 6f 64 65 6c 2c 20 | Fastest.and.cheapest.2.5.model,. |
| 72700 | 66 6f 72 20 68 69 67 68 2d 76 6f 6c 75 6d 65 2c 20 6c 61 74 65 6e 63 79 2d 73 65 6e 73 69 74 69 | for.high-volume,.latency-sensiti |
| 72720 | 76 65 20 74 61 73 6b 73 2e 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 | ve.tasks."......:capabilities.(t |
| 72740 | 6f 6f 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 61 70 61 62 69 | ool-use.json.media)......:capabi |
| 72760 | 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 20 61 75 64 69 | lities.(tool-use.json.media.audi |
| 72780 | 6f 20 76 69 64 65 6f 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 | o.video)......:mime-types.("imag |
| 727a0 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | e/png"."image/jpeg"."image/webp" |
| 727c0 | 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 6c 61 69 6e 22 0a | ."application/pdf"."text/plain". |
| 727e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 64 69 6f 2f 78 2d 61 61 63 22 20 | .................."audio/x-aac". |
| 72800 | 22 61 75 64 69 6f 2f 66 6c 61 63 22 20 22 61 75 64 69 6f 2f 6d 70 33 22 20 22 61 75 64 69 6f 2f | "audio/flac"."audio/mp3"."audio/ |
| 72820 | 6d 34 61 22 20 22 61 75 64 69 6f 2f 6d 70 65 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m4a"."audio/mpeg"............... |
| 72840 | 20 20 20 20 22 61 75 64 69 6f 2f 6d 70 67 61 22 20 22 61 75 64 69 6f 2f 6d 70 34 22 20 22 61 75 | ...."audio/mpga"."audio/mp4"."au |
| 72860 | 64 69 6f 2f 6f 70 75 73 22 20 22 61 75 64 69 6f 2f 70 63 6d 22 20 22 61 75 64 69 6f 2f 77 61 76 | dio/opus"."audio/pcm"."audio/wav |
| 72880 | 22 20 22 61 75 64 69 6f 2f 77 65 62 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "."audio/webm".................. |
| 728a0 | 20 22 76 69 64 65 6f 2f 78 2d 66 6c 76 22 20 22 76 69 64 65 6f 2f 71 75 69 63 6b 74 69 6d 65 22 | ."video/x-flv"."video/quicktime" |
| 728c0 | 20 22 76 69 64 65 6f 2f 6d 70 65 67 22 20 22 76 69 64 65 6f 2f 6d 70 34 22 0a 20 20 20 20 20 20 | ."video/mpeg"."video/mp4"....... |
| 728e0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 76 69 64 65 6f 2f 77 65 62 6d 22 20 22 76 69 64 65 6f 2f | ............"video/webm"."video/ |
| 72900 | 77 6d 76 22 20 22 76 69 64 65 6f 2f 33 67 70 70 22 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 | wmv"."video/3gpp")......:context |
| 72920 | 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 3b 20 36 34 30 30 30 20 6f 75 74 70 75 74 20 74 6f 6b 65 | -window.1048.;.64000.output.toke |
| 72940 | 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 0a 20 20 | n.limit......:input-cost.0.10... |
| 72960 | 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a 63 75 74 6f 66 | ...:output-cost.0.40......:cutof |
| 72980 | 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e | f-date."2025-01").....(gemini-2. |
| 729a0 | 35 2d 66 6c 61 73 68 2d 6c 69 74 65 2d 70 72 65 76 69 65 77 2d 30 36 2d 31 37 0a 20 20 20 20 20 | 5-flash-lite-preview-06-17...... |
| 729c0 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 46 61 73 74 65 73 74 20 61 6e 64 20 63 68 65 61 70 65 | :description."Fastest.and.cheape |
| 729e0 | 73 74 20 32 2e 35 20 6d 6f 64 65 6c 2c 20 66 6f 72 20 68 69 67 68 2d 76 6f 6c 75 6d 65 2c 20 6c | st.2.5.model,.for.high-volume,.l |
| 72a00 | 61 74 65 6e 63 79 2d 73 65 6e 73 69 74 69 76 65 20 74 61 73 6b 73 2e 22 0a 20 20 20 20 20 3a 63 | atency-sensitive.tasks."......:c |
| 72a20 | 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 |
| 72a40 | 20 61 75 64 69 6f 20 76 69 64 65 6f 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 | .audio.video)......:mime-types.( |
| 72a60 | 22 69 6d 61 67 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f | "image/png"."image/jpeg"."image/ |
| 72a80 | 77 65 62 70 22 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 | webp"."application/pdf"."text/pl |
| 72aa0 | 61 69 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 75 64 69 6f 2f 78 2d | ain"..................."audio/x- |
| 72ac0 | 61 61 63 22 20 22 61 75 64 69 6f 2f 66 6c 61 63 22 20 22 61 75 64 69 6f 2f 6d 70 33 22 20 22 61 | aac"."audio/flac"."audio/mp3"."a |
| 72ae0 | 75 64 69 6f 2f 6d 34 61 22 20 22 61 75 64 69 6f 2f 6d 70 65 67 22 0a 20 20 20 20 20 20 20 20 20 | udio/m4a"."audio/mpeg".......... |
| 72b00 | 20 20 20 20 20 20 20 20 20 22 61 75 64 69 6f 2f 6d 70 67 61 22 20 22 61 75 64 69 6f 2f 6d 70 34 | ........."audio/mpga"."audio/mp4 |
| 72b20 | 22 20 22 61 75 64 69 6f 2f 6f 70 75 73 22 20 22 61 75 64 69 6f 2f 70 63 6d 22 20 22 61 75 64 69 | "."audio/opus"."audio/pcm"."audi |
| 72b40 | 6f 2f 77 61 76 22 20 22 61 75 64 69 6f 2f 77 65 62 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | o/wav"."audio/webm"............. |
| 72b60 | 20 20 20 20 20 20 22 76 69 64 65 6f 2f 78 2d 66 6c 76 22 20 22 76 69 64 65 6f 2f 71 75 69 63 6b | ......"video/x-flv"."video/quick |
| 72b80 | 74 69 6d 65 22 20 22 76 69 64 65 6f 2f 6d 70 65 67 22 20 22 76 69 64 65 6f 2f 6d 70 34 22 0a 20 | time"."video/mpeg"."video/mp4".. |
| 72ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 76 69 64 65 6f 2f 77 65 62 6d 22 20 22 76 | ................."video/webm"."v |
| 72bc0 | 69 64 65 6f 2f 77 6d 76 22 20 22 76 69 64 65 6f 2f 33 67 70 70 22 29 0a 20 20 20 20 20 3a 63 6f | ideo/wmv"."video/3gpp")......:co |
| 72be0 | 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 34 38 20 3b 20 36 35 35 33 36 20 6f 75 74 70 75 74 | ntext-window.1048.;.65536.output |
| 72c00 | 20 74 6f 6b 65 6e 20 6c 69 6d 69 74 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e | .token.limit......:input-cost.0. |
| 72c20 | 31 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 34 30 0a 20 20 20 20 20 3a | 10......:output-cost.0.40......: |
| 72c40 | 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 35 2d 30 31 22 29 0a 20 20 20 20 28 67 65 6d 69 | cutoff-date."2025-01").....(gemi |
| 72c60 | 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 20 22 | ni-2.0-flash......:description." |
| 72c80 | 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 6c | Next.gen,.high.speed,.multimodal |
| 72ca0 | 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 22 | .for.a.diverse.variety.of.tasks" |
| 72cc0 | 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 |
| 72ce0 | 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 |
| 72d00 | 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 |
| 72d20 | 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"..... |
| 72d40 | 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". |
| 72d60 | 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 |
| 72d80 | 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.. |
| 72da0 | 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 30 29 0a 20 20 20 20 28 67 65 6d 69 6e | ....:input-cost.0.10).....(gemin |
| 72dc0 | 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 6c 69 74 65 2d 70 72 65 76 69 65 77 2d 30 32 2d 30 35 0a 20 | i-2.0-flash-lite-preview-02-05.. |
| 72de0 | 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 65 6d 69 6e 69 20 32 2e 30 20 46 6c 61 | ....:description."Gemini.2.0.Fla |
| 72e00 | 73 68 20 6d 6f 64 65 6c 20 6f 70 74 69 6d 69 7a 65 64 20 66 6f 72 20 63 6f 73 74 20 65 66 66 69 | sh.model.optimized.for.cost.effi |
| 72e20 | 63 69 65 6e 63 79 20 61 6e 64 20 6c 6f 77 20 6c 61 74 65 6e 63 79 22 0a 20 20 20 20 20 3a 63 61 | ciency.and.low.latency"......:ca |
| 72e40 | 70 61 62 69 6c 69 74 69 65 73 20 28 6a 73 6f 6e 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d | pabilities.(json)......:context- |
| 72e60 | 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 30 | window.1000......:input-cost.0.0 |
| 72e80 | 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 33 30 0a 20 20 20 20 20 3a | 75......:output-cost.0.30......: |
| 72ea0 | 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 30 38 22 29 0a 20 20 20 20 28 67 65 6d 69 | cutoff-date."2024-08").....(gemi |
| 72ec0 | 6e 69 2d 32 2e 30 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 | ni-2.0-flash-exp......:descripti |
| 72ee0 | 6f 6e 20 22 4e 65 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 | on."Next.generation.features,.su |
| 72f00 | 70 65 72 69 6f 72 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 | perior.speed,.native.tool.use".. |
| 72f20 | 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e | ....:capabilities.(tool-use.json |
| 72f40 | 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 | .media)......:mime-types.("image |
| 72f60 | 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 | /png"."image/jpeg"."image/webp". |
| 72f80 | 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 | "image/heic"."image/heif"....... |
| 72fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 | ............"application/pdf"."t |
| 72fc0 | 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c | ext/plain"."text/csv"."text/html |
| 72fe0 | 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 29 0a 20 20 | ")......:context-window.1000)... |
| 73000 | 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e 6b 69 6e 67 2d 65 78 70 | ..(gemini-2.0-flash-thinking-exp |
| 73020 | 2d 30 31 2d 32 31 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4e 65 78 74 20 67 | -01-21......:description."Next.g |
| 73040 | 65 6e 2c 20 68 69 67 68 20 73 70 65 65 64 2c 20 6d 75 6c 74 69 6d 6f 64 61 6c 20 66 6f 72 20 61 | en,.high.speed,.multimodal.for.a |
| 73060 | 20 64 69 76 65 72 73 65 20 76 61 72 69 65 74 79 20 6f 66 20 74 61 73 6b 73 22 0a 20 20 20 20 20 | .diverse.variety.of.tasks"...... |
| 73080 | 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 6a 73 6f 6e 29 0a 20 20 20 20 20 3a 69 6e 70 75 74 | :capabilities.(json)......:input |
| 730a0 | 2d 63 6f 73 74 20 30 2e 30 30 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 30 | -cost.0.00......:output-cost.0.0 |
| 730c0 | 30 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e 6b 69 6e | 0).....(gemini-2.0-flash-thinkin |
| 730e0 | 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 45 43 41 | g-exp......:description."DEPRECA |
| 73100 | 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 61 73 68 | TED:.Please.use.gemini-2.0-flash |
| 73120 | 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 0a 20 20 | -thinking-exp-01-21.instead."... |
| 73140 | 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 64 69 61 | ...:capabilities.(tool-use.media |
| 73160 | 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 20 20 3a | )......:context-window.32......: |
| 73180 | 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 65 2f 6a | mime-types.("image/png"."image/j |
| 731a0 | 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 22 20 22 | peg"."image/webp"."image/heic"." |
| 731c0 | 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 20 22 74 | image/heif"..................."t |
| 731e0 | 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c | ext/plain"."text/csv"."text/html |
| 73200 | 22 29 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 2d 70 72 6f 2d 6c 61 74 65 73 74 0a 20 | ")).....(gemini-1.5-pro-latest.. |
| 73220 | 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 6f 6f 67 6c 65 27 73 20 6c 61 74 65 73 | ....:description."Google's.lates |
| 73240 | 74 20 6d 6f 64 65 6c 20 77 69 74 68 20 65 6e 68 61 6e 63 65 64 20 63 61 70 61 62 69 6c 69 74 69 | t.model.with.enhanced.capabiliti |
| 73260 | 65 73 20 61 63 72 6f 73 73 20 76 61 72 69 6f 75 73 20 74 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 | es.across.various.tasks"......:c |
| 73280 | 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 |
| 732a0 | 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". |
| 732c0 | 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 |
| 732e0 | 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"............. |
| 73300 | 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 |
| 73320 | 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").... |
| 73340 | 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 3b 3b 20 69 | ..:context-window.2000......;;.i |
| 73360 | 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 20 69 73 20 68 61 6c 76 65 64 20 66 6f | nput.&.output.price.is.halved.fo |
| 73380 | 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 6f 6b 65 6e 73 20 6f 72 20 6c 65 73 73 | r.prompts.of.128k.tokens.or.less |
| 733a0 | 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 2e 35 30 0a 20 20 20 20 20 3a 6f 75 74 | ......:input-cost.2.50......:out |
| 733c0 | 70 75 74 2d 63 6f 73 74 20 31 30 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 2d 66 6c 61 | put-cost.10).....(gemini-1.5-fla |
| 733e0 | 73 68 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 20 66 61 73 74 65 72 2c 20 | sh......:description."A.faster,. |
| 73400 | 6d 6f 72 65 20 65 66 66 69 63 69 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 47 65 6d 69 6e 69 | more.efficient.version.of.Gemini |
| 73420 | 20 31 2e 35 20 6f 70 74 69 6d 69 7a 65 64 20 66 6f 72 20 73 70 65 65 64 22 0a 20 20 20 20 20 3a | .1.5.optimized.for.speed"......: |
| 73440 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 6d 65 64 69 | capabilities.(tool-use.json.medi |
| 73460 | 61 29 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 65 2f 70 6e 67 22 | a)......:mime-types.("image/png" |
| 73480 | 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 20 22 69 6d 61 67 | ."image/jpeg"."image/webp"."imag |
| 734a0 | 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 20 20 20 20 20 20 | e/heic"."image/heif"............ |
| 734c0 | 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 74 65 78 74 2f 70 | ......."application/pdf"."text/p |
| 734e0 | 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d 6c 22 29 0a 20 20 | lain"."text/csv"."text/html")... |
| 73500 | 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3b 3b 20 | ...:context-window.1000......;;. |
| 73520 | 69 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 20 69 73 20 68 61 6c 76 65 64 20 66 | input.&.output.price.is.halved.f |
| 73540 | 6f 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 6f 6b 65 6e 73 20 6f 72 20 6c 65 73 | or.prompts.of.128k.tokens.or.les |
| 73560 | 73 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 31 35 0a 20 20 20 20 20 3a 6f 75 | s......:input-cost.0.15......:ou |
| 73580 | 74 70 75 74 2d 63 6f 73 74 20 30 2e 36 30 29 0a 20 20 20 20 28 67 65 6d 69 6e 69 2d 31 2e 35 2d | tput-cost.0.60).....(gemini-1.5- |
| 735a0 | 66 6c 61 73 68 2d 38 62 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 48 69 67 68 | flash-8b......:description."High |
| 735c0 | 20 76 6f 6c 75 6d 65 20 61 6e 64 20 6c 6f 77 65 72 20 69 6e 74 65 6c 6c 69 67 65 6e 63 65 20 74 | .volume.and.lower.intelligence.t |
| 735e0 | 61 73 6b 73 22 0a 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 28 74 6f 6f 6c 2d 75 | asks"......:capabilities.(tool-u |
| 73600 | 73 65 20 6a 73 6f 6e 20 6d 65 64 69 61 29 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | se.json.media)......:context-win |
| 73620 | 64 6f 77 20 31 30 30 30 0a 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 20 28 22 69 6d 61 67 | dow.1000......:mime-types.("imag |
| 73640 | 65 2f 70 6e 67 22 20 22 69 6d 61 67 65 2f 6a 70 65 67 22 20 22 69 6d 61 67 65 2f 77 65 62 70 22 | e/png"."image/jpeg"."image/webp" |
| 73660 | 20 22 69 6d 61 67 65 2f 68 65 69 63 22 20 22 69 6d 61 67 65 2f 68 65 69 66 22 0a 20 20 20 20 20 | ."image/heic"."image/heif"...... |
| 73680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 70 64 66 22 20 22 | ............."application/pdf"." |
| 736a0 | 74 65 78 74 2f 70 6c 61 69 6e 22 20 22 74 65 78 74 2f 63 73 76 22 20 22 74 65 78 74 2f 68 74 6d | text/plain"."text/csv"."text/htm |
| 736c0 | 6c 22 29 0a 20 20 20 20 20 3b 3b 20 69 6e 70 75 74 20 26 20 6f 75 74 70 75 74 20 70 72 69 63 65 | l")......;;.input.&.output.price |
| 736e0 | 20 69 73 20 68 61 6c 76 65 64 20 66 6f 72 20 70 72 6f 6d 70 74 73 20 6f 66 20 31 32 38 6b 20 74 | .is.halved.for.prompts.of.128k.t |
| 73700 | 6f 6b 65 6e 73 20 6f 72 20 6c 65 73 73 0a 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 | okens.or.less......:input-cost.0 |
| 73720 | 2e 30 37 35 0a 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 33 30 0a 20 20 20 20 | .075......:output-cost.0.30..... |
| 73740 | 20 3a 63 75 74 6f 66 66 2d 64 61 74 65 20 22 32 30 32 34 2d 31 30 22 29 29 0a 20 20 22 4c 69 73 | .:cutoff-date."2024-10"))..."Lis |
| 73760 | 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 20 61 6e 64 | t.of.available.Gemini.models.and |
| 73780 | 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 2d | .associated.properties..Keys:..- |
| 737a0 | 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 70 | .`:description':.a.brief.descrip |
| 737c0 | 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 69 | tion.of.the.model...-.`:capabili |
| 737e0 | 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 75 | ties':.a.list.of.capabilities.su |
| 73800 | 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 2d | pported.by.the.model...-.`:mime- |
| 73820 | 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 45 | types':.a.list.of.supported.MIME |
| 73840 | 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 6e | .types.for.media.files...-.`:con |
| 73860 | 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 77 | text-window':.the.context.window |
| 73880 | 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 0a | .size,.in.thousands.of.tokens... |
| 738a0 | 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 2c | -.`:input-cost':.the.input.cost, |
| 738c0 | 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 6e | .in.US.dollars.per.million.token |
| 738e0 | 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 74 | s...-.`:output-cost':.the.output |
| 73900 | 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 6e | .cost,.in.US.dollars.per.million |
| 73920 | 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 20 | .tokens...-.`:cutoff-date':.the. |
| 73940 | 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 75 | knowledge.cutoff.date...-.`:requ |
| 73960 | 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 6e | est-params':.a.plist.of.addition |
| 73980 | 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 75 | al.request.parameters.to...inclu |
| 739a0 | 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 72 | de.when.using.this.model...Infor |
| 739c0 | 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 20 77 | mation.about.the.Gemini.models.w |
| 739e0 | 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 73 | as.obtained.from.the.following.s |
| 73a00 | 6f 75 72 63 65 3a 0a 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 61 69 2e 67 6f 6f 67 6c 65 2e 64 65 76 | ource:..-.<https://ai.google.dev |
| 73a20 | 2f 70 72 69 63 69 6e 67 3e 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 63 6c 6f 75 64 2e 67 6f 6f 67 6c | /pricing>.-.<https://cloud.googl |
| 73a40 | 65 2e 63 6f 6d 2f 76 65 72 74 65 78 2d 61 69 2f 67 65 6e 65 72 61 74 69 76 65 2d 61 69 2f 64 6f | e.com/vertex-ai/generative-ai/do |
| 73a60 | 63 73 2f 6c 65 61 72 6e 2f 6d 6f 64 65 6c 73 3e 0a 2d 20 3c 68 74 74 70 73 3a 2f 2f 61 69 2e 67 | cs/learn/models>.-.<https://ai.g |
| 73a80 | 6f 6f 67 6c 65 2e 64 65 76 2f 67 65 6d 69 6e 69 2d 61 70 69 2f 64 6f 63 73 2f 6d 6f 64 65 6c 73 | oogle.dev/gemini-api/docs/models |
| 73aa0 | 3e 22 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 |
| 73ac0 | 74 65 6c 2d 6d 61 6b 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 | tel-make-gemini.....(name.&key.c |
| 73ae0 | 75 72 6c 2d 61 72 67 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 | url-args.header.key.request-para |
| 73b00 | 6d 73 0a 20 20 20 20 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 | ms...........(stream.nil)....... |
| 73b20 | 20 20 20 20 28 68 6f 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 | ....(host."generativelanguage.go |
| 73b40 | 6f 67 6c 65 61 70 69 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 | ogleapis.com")...........(protoc |
| 73b60 | 6f 6c 20 22 68 74 74 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 | ol."https")...........(models.gp |
| 73b80 | 74 65 6c 2d 2d 67 65 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 | tel--gemini-models)...........(e |
| 73ba0 | 6e 64 70 6f 69 6e 74 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 | ndpoint."/v1beta/models"))...."R |
| 73bc0 | 65 67 69 73 74 65 72 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 | egister.a.Gemini.backend.for.gpt |
| 73be0 | 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 | el.with.NAME...Keyword.arguments |
| 73c00 | 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 | :..CURL-ARGS.(optional).is.a.lis |
| 73c20 | 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a | t.of.additional.Curl.arguments.. |
| 73c40 | 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 | .HOST.(optional).is.the.API.host |
| 73c60 | 2c 20 64 65 66 61 75 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 | ,.defaults.to.\"generativelangua |
| 73c80 | 67 65 2e 67 6f 6f 67 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 | ge.googleapis.com\"...MODELS.is. |
| 73ca0 | 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 61 6d 65 73 2c | a.list.of.available.model.names, |
| 73cc0 | 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 2c 20 79 6f 75 20 63 | .as.symbols..Additionally,.you.c |
| 73ce0 | 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 63 61 70 61 62 69 6c | an.specify.supported.LLM.capabil |
| 73d00 | 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 2d 75 73 65 20 62 79 | ities.like.vision.or.tool-use.by |
| 73d20 | 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 20 6d 6f 64 65 6c 20 | .appending.a.plist.to.the.model. |
| 73d40 | 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 20 74 68 65 20 66 6f | with.more.information,.in.the.fo |
| 73d60 | 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 0a 0a 46 6f 72 20 61 | rm...(model-name...plist)..For.a |
| 73d80 | 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 69 7a 65 64 20 70 6c | .list.of.currently.recognized.pl |
| 73da0 | 69 73 74 20 6b 65 79 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 | ist.keys,.see.`gptel--gemini-mod |
| 73dc0 | 65 6c 73 27 2e 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 6d 6f 64 65 6c 20 73 70 65 63 | els'..An.example.of.a.model.spec |
| 73de0 | 69 66 69 63 61 74 69 6f 6e 0a 69 6e 63 6c 75 64 69 6e 67 20 62 6f 74 68 20 6b 69 6e 64 73 20 6f | ification.including.both.kinds.o |
| 73e00 | 66 20 73 70 65 63 73 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 | f.specs:..:models.\\='(gemini-2. |
| 73e20 | 30 2d 66 6c 61 73 68 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 | 0-flash-lite..............;Simpl |
| 73e40 | 65 20 73 70 65 63 73 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 | e.specs...gemini-1.5-flash...(ge |
| 73e60 | 6d 69 6e 69 2d 31 2e 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 | mini-1.5-pro-latest............. |
| 73e80 | 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 | ...;Full.spec....:description... |
| 73ea0 | 20 5c 22 43 6f 6d 70 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 | .\"Complex.reasoning.tasks,.prob |
| 73ec0 | 6c 65 6d 20 73 6f 6c 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 | lem.solving.and.data.extraction\ |
| 73ee0 | 22 0a 20 20 20 3a 63 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 | "....:capabilities.(tool.json).. |
| 73f00 | 20 20 3a 6d 69 6d 65 2d 74 79 70 65 73 0a 20 20 20 28 5c 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 | ..:mime-types....(\"image/jpeg\" |
| 73f20 | 20 5c 22 69 6d 61 67 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 | .\"image/png\".\"image/webp\".\" |
| 73f40 | 69 6d 61 67 65 2f 68 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 | image/heic\")))...STREAM.is.a.bo |
| 73f60 | 6f 6c 65 61 6e 20 74 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 | olean.to.enable.streaming.respon |
| 73f80 | 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 4f | ses,.defaults.to.false...PROTOCO |
| 73fa0 | 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f | L.(optional).specifies.the.proto |
| 73fc0 | 63 6f 6c 2c 20 5c 22 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 | col,.\"https\".by.default...ENDP |
| 73fe0 | 4f 49 4e 54 20 28 6f 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 | OINT.(optional).is.the.API.endpo |
| 74000 | 69 6e 74 20 66 6f 72 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 | int.for.completions,.defaults.to |
| 74020 | 0a 5c 22 2f 76 31 62 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 | .\"/v1beta/models\"...HEADER.(op |
| 74040 | 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 | tional).is.for.additional.header |
| 74060 | 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 | s.to.send.with.each.request...It |
| 74080 | 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f | .should.be.an.alist.or.a.functio |
| 740a0 | 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 20 28 | n.that.retuns.an.alist,.like:..( |
| 740c0 | 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f | (\"Content-Type\"...\"applicatio |
| 740e0 | 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 | n/json\"))..KEY.(optional).is.a. |
| 74100 | 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 50 49 20 | variable.whose.value.is.the.API. |
| 74120 | 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 | key,.or.function.that.returns.th |
| 74140 | 65 20 6b 65 79 2e 0a 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 | e.key...REQUEST-PARAMS.(optional |
| 74160 | 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 20 48 54 54 50 20 | ).is.a.plist.of.additional.HTTP. |
| 74180 | 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 73 74 20 6b 65 79 | request.parameters.(as.plist.key |
| 741a0 | 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 20 74 68 65 20 41 | s).and.values.supported.by.the.A |
| 741c0 | 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 6d 65 74 65 72 73 | PI...Use.these.to.set.parameters |
| 741e0 | 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 64 65 20 75 73 65 | .that.gptel.does.not.provide.use |
| 74200 | 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 20 28 69 6e 64 65 | r.options.for."...(declare.(inde |
| 74220 | 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 70 74 65 6c 2d 2d | nt.1))...(let.((backend.(gptel-- |
| 74240 | 6d 61 6b 65 2d 67 65 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 | make-gemini...................:c |
| 74260 | 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 20 20 20 | url-args.curl-args.............. |
| 74280 | 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....:name.name................. |
| 742a0 | 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ..:host.host...................: |
| 742c0 | 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | header.header................... |
| 742e0 | 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 6d | :models.(gptel--process-models.m |
| 74300 | 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 | odels)...................:protoc |
| 74320 | 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 | ol.protocol...................:e |
| 74340 | 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndpoint.endpoint................ |
| 74360 | 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:stream.stream............... |
| 74380 | 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 72 61 | ....:request-params.request-para |
| 743a0 | 6d 73 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 20 20 | ms...................:key.key... |
| 743c0 | 20 20 20 20 20 20 20 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 | ................:url.(lambda.(). |
| 743e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 | .........................(let.(( |
| 74400 | 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | method.......................... |
| 74420 | 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 75 73 65 | .......(if.(and.stream.gptel-use |
| 74440 | 2d 63 75 72 6c 20 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 | -curl.gptel-stream)............. |
| 74460 | 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 47 | ........................"streamG |
| 74480 | 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 20 | enerateContent"................. |
| 744a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 65 6e 65 72 61 74 65 43 6f 6e 74 65 | .................."generateConte |
| 744c0 | 6e 74 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt"))).......................... |
| 744e0 | 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 2f 2f 25 73 25 73 2f 25 73 3a 25 73 3f 6b 65 79 3d 25 | ..(format."%s://%s%s/%s:%s?key=% |
| 74500 | 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s".............................. |
| 74520 | 20 20 20 20 20 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 | ......protocol.................. |
| 74540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 | ..................host.......... |
| 74560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 70 6f 69 | ..........................endpoi |
| 74580 | 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 20 20 20 20 | nt.............................. |
| 745a0 | 20 20 20 20 20 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 20 20 | ......gptel-model............... |
| 745c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f 64 0a 20 20 20 20 | .....................method..... |
| 745e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 74600 | 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 29 29 0a 20 20 20 20 28 70 | gptel--get-api-key))))))).....(p |
| 74620 | 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- |
| 74640 | 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.. |
| 74660 | 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.#' |
| 74680 | 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)))).. |
| 746a0 | 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 0a 3b 3b 3b 20 67 70 74 65 | (provide.'gptel-gemini).;;;.gpte |
| 746c0 | 6c 2d 67 65 6d 69 6e 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 | l-gemini.el.ends.here........... |
| 746e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 747a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 747c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 747e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74800 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 00 00 | gptel-0.9.9/gptel-transient.el.. |
| 74820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74860 | 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 |
| 74880 | 30 32 34 31 33 32 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 35 35 00 20 30 00 00 00 | 0241326.00000000000.014755..0... |
| 748a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 748c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 748e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74900 | 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................... |
| 74920 | 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................... |
| 74940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 749a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 749c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 749e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 74a00 | 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 |
| 74a20 | 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ient.menu.for.gptel..-*-.lexical |
| 74a40 | 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.( |
| 74a60 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| 74a80 | 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 |
| 74aa0 | 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> |
| 74ac0 | 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 | .;;.Keywords:.convenience..;;.SP |
| 74ae0 | 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f | DX-License-Identifier:.GPL-3.0-o |
| 74b00 | 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 | r-later..;;.This.program.is.free |
| 74b20 | 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 | .software;.you.can.redistribute. |
| 74b40 | 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 | it.and/or.modify.;;.it.under.the |
| 74b60 | 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 | .terms.of.the.GNU.General.Public |
| 74b80 | 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 | .License.as.published.by.;;.the. |
| 74ba0 | 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 | Free.Software.Foundation,.either |
| 74bc0 | 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b | .version.3.of.the.License,.or.;; |
| 74be0 | 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 | .(at.your.option).any.later.vers |
| 74c00 | 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 | ion...;;.This.program.is.distrib |
| 74c20 | 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 | uted.in.the.hope.that.it.will.be |
| 74c40 | 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 | .useful,.;;.but.WITHOUT.ANY.WARR |
| 74c60 | 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 | ANTY;.without.even.the.implied.w |
| 74c80 | 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 | arranty.of.;;.MERCHANTABILITY.or |
| 74ca0 | 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 | .FITNESS.FOR.A.PARTICULAR.PURPOS |
| 74cc0 | 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 | E...See.the.;;.GNU.General.Publi |
| 74ce0 | 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 | c.License.for.more.details...;;. |
| 74d00 | 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 | You.should.have.received.a.copy. |
| 74d20 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| 74d40 | 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 | e.;;.along.with.this.program...I |
| 74d60 | 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f | f.not,.see.<https://www.gnu.org/ |
| 74d80 | 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b | licenses/>...;;;.Commentary:..;; |
| 74da0 | 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 | ..;;;.Code:.(require.'cl-lib).(r |
| 74dc0 | 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 6e 73 69 65 | equire.'gptel).(require.'transie |
| 74de0 | 6e 74 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 72 65 67 | nt)..(declare-function.ediff-reg |
| 74e00 | 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 20 22 65 64 69 66 66 22 29 0a 28 64 65 63 6c 61 72 65 2d | ions-internal."ediff").(declare- |
| 74e20 | 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 | function.ediff-make-cloned-buffe |
| 74e40 | 72 20 22 65 64 69 66 66 2d 75 74 69 6c 73 22 29 0a 0a 0c 0a 3b 3b 20 2a 20 48 65 6c 70 65 72 20 | r."ediff-utils")....;;.*.Helper. |
| 74e60 | 66 75 6e 63 74 69 6f 6e 73 20 61 6e 64 20 76 61 72 73 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 | functions.and.vars..(defvar-loca |
| 74e80 | 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 6e 69 6c 0a 20 20 | l.gptel--rewrite-overlays.nil... |
| 74ea0 | 22 4c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 73 | "List.of.active.rewrite.overlays |
| 74ec0 | 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | .in.the.buffer.")..(defun.gptel- |
| 74ee0 | 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 20 28 29 0a 20 20 | -rewrite-sanitize-overlays.()... |
| 74f00 | 22 45 6e 73 75 72 65 20 67 70 74 65 6c 27 73 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c 61 79 73 | "Ensure.gptel's.rewrite.overlays |
| 74f20 | 20 69 6e 20 62 75 66 66 65 72 20 61 72 65 20 63 6f 6e 73 69 73 74 65 6e 74 2e 22 0a 20 20 28 73 | .in.buffer.are.consistent."...(s |
| 74f40 | 65 74 71 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 | etq.gptel--rewrite-overlays..... |
| 74f60 | 20 20 20 20 28 63 6c 2d 64 65 6c 65 74 65 2d 69 66 2d 6e 6f 74 20 23 27 6f 76 65 72 6c 61 79 2d | ....(cl-delete-if-not.#'overlay- |
| 74f80 | 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer.......................... |
| 74fa0 | 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 29 29 0a 0a 28 64 65 | .gptel--rewrite-overlays)))..(de |
| 74fc0 | 66 76 61 72 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6e | fvar.gptel--set-buffer-locally.n |
| 74fe0 | 69 6c 0a 20 20 22 53 65 74 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 20 66 72 6f 6d 20 | il..."Set.model.parameters.from. |
| 75000 | 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 0a 0a 41 66 | `gptel-menu'.buffer-locally...Af |
| 75020 | 66 65 63 74 73 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 74 6f 6f 2e 22 29 0a | fects.the.system.message.too."). |
| 75040 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 28 73 | .(defun.gptel--set-with-scope.(s |
| 75060 | 79 6d 20 76 61 6c 75 65 20 26 6f 70 74 69 6f 6e 61 6c 20 73 63 6f 70 65 29 0a 20 20 22 53 65 74 | ym.value.&optional.scope)..."Set |
| 75080 | 20 53 59 4d 42 4f 4c 27 73 20 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 74 6f 20 56 41 4c 55 45 20 | .SYMBOL's.symbol-value.to.VALUE. |
| 750a0 | 77 69 74 68 20 53 43 4f 50 45 2e 0a 0a 49 66 20 53 43 4f 50 45 20 69 73 20 74 2c 20 73 65 74 20 | with.SCOPE...If.SCOPE.is.t,.set. |
| 750c0 | 69 74 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 0a 49 66 20 53 43 4f 50 45 20 69 73 20 31 | it.buffer-locally..If.SCOPE.is.1 |
| 750e0 | 2c 20 72 65 73 65 74 20 69 74 20 61 66 74 65 72 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 2d | ,.reset.it.after.the.next.gptel- |
| 75100 | 72 65 71 75 65 73 74 2e 20 28 6f 6e 65 73 68 6f 74 29 0a 4f 74 68 65 72 77 69 73 65 2c 20 63 6c | request..(oneshot).Otherwise,.cl |
| 75120 | 65 61 72 20 61 6e 79 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 20 61 6e 64 20 73 | ear.any.buffer-local.value.and.s |
| 75140 | 65 74 20 69 74 73 20 64 65 66 61 75 6c 74 0a 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 22 0a 20 20 | et.its.default.global.value."... |
| 75160 | 28 70 63 61 73 65 20 73 63 6f 70 65 0a 20 20 20 20 28 31 20 28 70 75 74 20 73 79 6d 20 27 67 70 | (pcase.scope.....(1.(put.sym.'gp |
| 75180 | 74 65 6c 2d 68 69 73 74 6f 72 79 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 73 79 6d 29 29 0a | tel-history.(symbol-value.sym)). |
| 751a0 | 20 20 20 20 20 20 20 28 73 65 74 20 73 79 6d 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 28 6c | .......(set.sym.value)........(l |
| 751c0 | 65 74 72 65 63 20 28 28 72 65 73 74 6f 72 65 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 | etrec.((restore-value........... |
| 751e0 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(lambda.()............... |
| 75200 | 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 | .....(remove-hook.'gptel-post-re |
| 75220 | 71 75 65 73 74 2d 68 6f 6f 6b 20 72 65 73 74 6f 72 65 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 | quest-hook.restore-value)....... |
| 75240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 20 20 20 20 20 20 | .............(run-at-time....... |
| 75260 | 20 20 3b 20 52 65 71 75 69 72 65 64 20 74 6f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 6c 65 74 20 | ..;.Required.to.work.around.let. |
| 75280 | 62 69 6e 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 6e | bindings.....................0.n |
| 752a0 | 69 6c 20 28 6c 61 6d 62 64 61 20 28 73 29 20 20 20 20 20 20 20 20 3b 20 6f 74 68 65 72 77 69 73 | il.(lambda.(s)........;.otherwis |
| 752c0 | 65 20 74 68 69 73 20 63 68 61 6e 67 65 20 69 73 20 6f 76 65 72 77 72 69 74 74 65 6e 21 0a 20 20 | e.this.change.is.overwritten!... |
| 752e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 20 73 | ..........................(set.s |
| 75300 | 20 28 67 65 74 20 73 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 | .(get.s.'gptel-history))........ |
| 75320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 20 73 20 27 67 70 74 | .....................(put.s.'gpt |
| 75340 | 65 6c 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-history.nil))................ |
| 75360 | 20 20 20 20 20 73 79 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 | .....sym))))..........(add-hook. |
| 75380 | 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 71 75 65 73 74 2d 68 6f 6f 6b 20 72 65 73 74 6f 72 65 | 'gptel-post-request-hook.restore |
| 753a0 | 2d 76 61 6c 75 65 29 29 29 0a 20 20 20 20 28 27 74 20 28 73 65 74 20 28 6d 61 6b 65 2d 6c 6f 63 | -value))).....('t.(set.(make-loc |
| 753c0 | 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 5f 20 | al-variable.sym).value)).....(_. |
| 753e0 | 28 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 73 79 6d 29 0a 20 20 20 20 20 20 | (kill-local-variable.sym)....... |
| 75400 | 20 28 73 65 74 20 73 79 6d 20 76 61 6c 75 65 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 | .(set.sym.value))))..(defvar.gpt |
| 75420 | 65 6c 2d 2d 70 72 65 73 65 74 20 6e 69 6c 0a 20 20 22 4e 61 6d 65 20 6f 66 20 6c 61 73 74 20 61 | el--preset.nil..."Name.of.last.a |
| 75440 | 70 70 6c 69 65 64 20 67 70 74 65 6c 20 70 72 65 73 65 74 2e 0a 0a 46 6f 72 20 69 6e 74 65 72 6e | pplied.gptel.preset...For.intern |
| 75460 | 61 6c 20 75 73 65 20 6f 6e 6c 79 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 | al.use.only.")..(defun.gptel--pr |
| 75480 | 65 73 65 74 2d 6d 69 73 6d 61 74 63 68 2d 70 20 28 6e 61 6d 65 29 0a 20 20 22 43 68 65 63 6b 20 | eset-mismatch-p.(name)..."Check. |
| 754a0 | 69 66 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 77 69 74 68 20 4e 41 4d 45 20 69 73 20 69 6e 20 | if.gptel.preset.with.NAME.is.in. |
| 754c0 | 65 66 66 65 63 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6c 6d 20 28 6f 72 20 28 67 70 74 65 6c | effect."...(let.((elm.(or.(gptel |
| 754e0 | 2d 67 65 74 2d 70 72 65 73 65 74 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -get-preset.name)............... |
| 75500 | 20 20 20 28 67 70 74 65 6c 2d 67 65 74 2d 70 72 65 73 65 74 20 28 69 6e 74 65 72 6e 2d 73 6f 66 | ...(gptel-get-preset.(intern-sof |
| 75520 | 74 20 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 6b 65 79 20 76 61 6c 29 0a 20 20 20 20 | t.name)))).........key.val)..... |
| 75540 | 28 63 61 74 63 68 20 27 6d 69 73 6d 61 74 63 68 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 65 6c | (catch.'mismatch.......(while.el |
| 75560 | 6d 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6b 65 79 20 28 70 6f 70 20 65 6c 6d 29 20 76 61 | m.........(setq.key.(pop.elm).va |
| 75580 | 6c 20 28 70 6f 70 20 65 6c 6d 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | l.(pop.elm)).........(cond...... |
| 755a0 | 20 20 20 20 28 28 6d 65 6d 71 20 6b 65 79 20 27 28 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 3a 70 | ....((memq.key.'(:description.:p |
| 755c0 | 61 72 65 6e 74 73 29 29 20 27 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6b 65 79 | arents)).'nil)..........((eq.key |
| 755e0 | 20 3a 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 65 71 75 61 6c 20 67 | .:system)...........(or.(equal.g |
| 75600 | 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 76 61 6c 29 0a 20 20 20 20 20 20 | ptel--system-message.val)....... |
| 75620 | 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 28 28 73 79 6d 62 6f 6c 70 20 76 61 6c | ........(and-let*.(((symbolp.val |
| 75640 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 20 28 | ))..........................(p.( |
| 75660 | 61 73 73 71 20 76 61 6c 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 29 0a 20 20 20 | assq.val.gptel-directives))).... |
| 75680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 75 61 6c 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 | .............(equal.gptel--syste |
| 756a0 | 6d 2d 6d 65 73 73 61 67 65 20 28 63 64 72 20 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | m-message.(cdr.p)))............. |
| 756c0 | 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 | ..(throw.'mismatch.t)))......... |
| 756e0 | 20 28 28 65 71 20 6b 65 79 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f | .((eq.key.:backend)...........(o |
| 75700 | 72 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r.(if.(stringp.val)............. |
| 75720 | 20 20 20 20 20 20 28 65 71 75 61 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 | ......(equal.(gptel-backend-name |
| 75740 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 76 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .gptel-backend).val)............ |
| 75760 | 20 20 20 20 20 28 65 71 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 76 61 6c 29 29 0a 20 20 20 | .....(eq.gptel-backend.val)).... |
| 75780 | 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 | ...........(throw.'mismatch.t))) |
| 757a0 | 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 6b 65 79 20 3a 74 6f 6f 6c 73 29 0a 20 20 20 20 20 | ..........((eq.key.:tools)...... |
| 757c0 | 20 20 20 20 20 28 69 66 20 28 65 71 20 28 63 61 72 2d 73 61 66 65 20 76 61 6c 29 20 3a 61 70 70 | .....(if.(eq.(car-safe.val).:app |
| 757e0 | 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 | end)...............(cl-loop.for. |
| 75800 | 6e 61 6d 65 20 69 6e 20 28 63 64 72 20 76 61 6c 29 20 3b 70 72 65 73 65 74 20 74 6f 6f 6c 73 20 | name.in.(cdr.val).;preset.tools. |
| 75820 | 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 | contained.in.gptel-tools........ |
| 75840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 28 67 70 | ................unless.(memq.(gp |
| 75860 | 74 65 6c 2d 67 65 74 2d 74 6f 6f 6c 20 6e 61 6d 65 29 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 0a | tel-get-tool.name).gptel-tools). |
| 75880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 74 68 72 6f 77 | .......................do.(throw |
| 758a0 | 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | .'mismatch.t)).............(or.( |
| 758c0 | 65 71 75 61 6c 20 28 73 6f 72 74 20 76 61 6c 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 20 | equal.(sort.val.#'string-lessp). |
| 758e0 | 3b 70 72 65 73 65 74 20 74 6f 6f 6c 73 20 73 61 6d 65 20 61 73 20 67 70 74 65 6c 2d 74 6f 6f 6c | ;preset.tools.same.as.gptel-tool |
| 75900 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 20 28 | s........................(sort.( |
| 75920 | 6d 61 70 63 61 72 20 23 27 67 70 74 65 6c 2d 74 6f 6f 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 74 | mapcar.#'gptel-tool-name.gptel-t |
| 75940 | 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ools)........................... |
| 75960 | 20 20 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...#'string-lessp))............. |
| 75980 | 20 20 20 20 28 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 29 0a 20 20 20 20 20 | ....(throw.'mismatch.t))))...... |
| 759a0 | 20 20 20 20 28 74 20 28 6c 65 74 2a 20 28 28 73 75 66 66 69 78 20 28 73 75 62 73 74 72 69 6e 67 | ....(t.(let*.((suffix.(substring |
| 759c0 | 0a 20 20 20 20 20 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 |
| 759e0 | 20 28 73 79 6d 62 6f 6c 70 20 6b 65 79 29 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6b 65 79 29 | .(symbolp.key).(symbol-name.key) |
| 75a00 | 20 6b 65 79 29 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 | .key).1))....................(sy |
| 75a20 | 6d 20 28 6f 72 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 | m.(or.(intern-soft.(concat."gpte |
| 75a40 | 6c 2d 22 20 73 75 66 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-".suffix)).................... |
| 75a60 | 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 20 28 63 6f 6e 63 61 74 20 22 67 | .........(intern-soft.(concat."g |
| 75a80 | 70 74 65 6c 2d 2d 22 20 73 75 66 66 69 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--".suffix)))))............. |
| 75aa0 | 20 20 28 6f 72 20 28 6e 75 6c 6c 20 73 79 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(or.(null.sym)................ |
| 75ac0 | 20 20 20 28 61 6e 64 20 28 62 6f 75 6e 64 70 20 73 79 6d 29 20 28 65 71 75 61 6c 20 28 65 76 61 | ...(and.(boundp.sym).(equal.(eva |
| 75ae0 | 6c 20 73 79 6d 29 20 76 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | l.sym).val))...................( |
| 75b00 | 74 68 72 6f 77 20 27 6d 69 73 6d 61 74 63 68 20 74 29 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 | throw.'mismatch.t)))))))))..(def |
| 75b20 | 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 28 61 72 67 73 29 0a 20 | un.gptel--get-directive.(args).. |
| 75b40 | 20 22 46 69 6e 64 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 20 | ."Find.the.additional.directive. |
| 75b60 | 69 6e 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 41 52 47 53 2e 0a 0a 4d 65 61 6e 74 20 74 6f | in.the.transient.ARGS...Meant.to |
| 75b80 | 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 69 73 20 | .be.called.when.`gptel-menu'.is. |
| 75ba0 | 61 63 74 69 76 65 2e 22 0a 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 73 29 20 | active."...(cl-some.(lambda.(s). |
| 75bc0 | 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d | (and.(stringp.s).(string-prefix- |
| 75be0 | 70 20 22 3a 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.":".s)........................ |
| 75c00 | 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (substring.s.1)))............... |
| 75c20 | 20 20 20 20 61 72 67 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 | ....args))..(defun.gptel--instru |
| 75c40 | 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 74 65 78 74 20 26 6f 70 74 69 6f | ctions-make-overlay.(text.&optio |
| 75c60 | 6e 61 6c 20 6f 76 29 0a 20 20 22 4d 61 6b 65 20 6f 72 20 6d 6f 76 65 20 6f 76 65 72 6c 61 79 20 | nal.ov)..."Make.or.move.overlay. |
| 75c80 | 4f 56 20 77 69 74 68 20 54 45 58 54 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | OV.with.TEXT."...(save-excursion |
| 75ca0 | 0a 20 20 20 20 3b 3b 20 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6f 76 65 72 6c 61 79 20 70 6f | .....;;.Move.point.to.overlay.po |
| 75cc0 | 73 69 74 69 6f 6e 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 | sition.....(cond......((use-regi |
| 75ce0 | 6f 6e 2d 70 29 0a 20 20 20 20 20 20 28 69 66 20 28 70 6f 73 2d 76 69 73 69 62 6c 65 2d 69 6e 2d | on-p).......(if.(pos-visible-in- |
| 75d00 | 77 69 6e 64 6f 77 2d 70 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 0a 20 20 20 | window-p.(region-beginning)).... |
| 75d20 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e | .......(goto-char.(region-beginn |
| 75d40 | 69 6e 67 29 29 29 29 0a 20 20 20 20 20 28 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 | ing))))......((gptel--in-respons |
| 75d60 | 65 2d 70 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 | e-p).......(gptel-beginning-of-r |
| 75d80 | 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 | esponse).......(skip-chars-forwa |
| 75da0 | 72 64 20 22 5c 6e 20 5c 74 22 29 29 0a 20 20 20 20 20 28 74 20 28 74 65 78 74 2d 70 72 6f 70 65 | rd."\n.\t"))......(t.(text-prope |
| 75dc0 | 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 27 72 65 73 70 | rty-search-backward.'gptel.'resp |
| 75de0 | 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 | onse).........(skip-chars-forwar |
| 75e00 | 64 20 22 5c 6e 20 5c 74 22 29 29 29 0a 20 20 20 20 3b 3b 20 4d 61 6b 65 20 6f 76 65 72 6c 61 79 | d."\n.\t"))).....;;.Make.overlay |
| 75e20 | 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 6f 76 20 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 29 0a | .....(if.(and.ov.(overlayp.ov)). |
| 75e40 | 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 20 6f 76 20 28 70 6f 69 6e 74 29 | ........(move-overlay.ov.(point) |
| 75e60 | 20 28 70 6f 69 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 | .(point).(current-buffer))...... |
| 75e80 | 20 28 73 65 74 71 20 6f 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 | .(setq.ov.(make-overlay.(point). |
| 75ea0 | 28 70 6f 69 6e 74 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | (point).nil.t))).....(overlay-pu |
| 75ec0 | 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a 20 20 20 20 3b 3b 20 | t.ov.'before-string.nil).....;;. |
| 75ee0 | 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 | (unless.(or.(bobp).(eq.(char-bef |
| 75f00 | 6f 72 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 3b 3b 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | ore)."\n")).....;;...(overlay-pu |
| 75f20 | 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | t.ov.'before-string.(propertize. |
| 75f40 | 22 5c 6e 22 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 73 68 61 64 6f 77 29 29 29 0a | "\n".'font-lock-face.'shadow))). |
| 75f60 | 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 63 61 74 65 67 6f 72 79 20 27 67 | ....(overlay-put.ov.'category.'g |
| 75f80 | 70 74 65 6c 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 0a 20 20 20 20 20 6f 76 20 27 | ptel).....(overlay-put......ov.' |
| 75fa0 | 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 | after-string......(concat.(prope |
| 75fc0 | 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 22 44 49 52 45 43 54 49 56 45 3a 20 22 20 74 65 78 74 | rtize.(concat."DIRECTIVE:.".text |
| 75fe0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6f 6e 74 | )..........................'font |
| 76000 | 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 20 3a 77 65 | -lock-face.'(:inherit.shadow.:we |
| 76020 | 69 67 68 74 20 62 6f 6c 64 20 20 3a 62 6f 78 20 74 29 29 0a 20 20 20 20 20 20 22 5c 6e 22 29 29 | ight.bold..:box.t))......."\n")) |
| 76040 | 0a 20 20 20 20 6f 76 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 72 65 61 64 | .....ov))..(defconst.gptel--read |
| 76060 | 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 65 6c 70 0a 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 28 | -with-prefix-help...(concat....( |
| 76080 | 70 72 6f 70 65 72 74 69 7a 65 20 22 54 41 42 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 | propertize."TAB".'face.'help-key |
| 760a0 | 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 3a 20 65 78 70 61 | -binding)....(propertize.":.expa |
| 760c0 | 6e 64 2c 20 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 28 70 72 6f 70 65 72 | nd,.".'face.'default)....(proper |
| 760e0 | 74 69 7a 65 20 22 4d 2d 6e 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 | tize."M-n".'face.'help-key-bindi |
| 76100 | 6e 67 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 2f 22 20 27 66 61 63 65 20 27 64 65 | ng)....(propertize."/".'face.'de |
| 76120 | 66 61 75 6c 74 29 0a 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4d 2d 70 22 20 27 66 61 63 | fault)....(propertize."M-p".'fac |
| 76140 | 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a 20 20 20 28 70 72 6f 70 65 72 74 | e.'help-key-binding)....(propert |
| 76160 | 69 7a 65 20 22 3a 20 6e 65 78 74 2f 70 72 65 76 69 6f 75 73 22 20 27 66 61 63 65 20 27 64 65 66 | ize.":.next/previous".'face.'def |
| 76180 | 61 75 6c 74 29 29 0a 20 20 22 48 65 6c 70 20 73 74 72 69 6e 67 20 3b 54 4f 44 4f 3a 20 22 29 0a | ault))..."Help.string.;TODO:."). |
| 761a0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 20 | .(defun.gptel--read-with-prefix. |
| 761c0 | 28 70 72 65 66 69 78 29 0a 20 20 22 53 68 6f 77 20 73 74 72 69 6e 67 20 50 52 45 46 49 58 20 69 | (prefix)..."Show.string.PREFIX.i |
| 761e0 | 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 61 66 74 65 72 20 74 68 65 20 6d 69 6e 69 62 | n.the.minibuffer.after.the.minib |
| 76200 | 75 66 66 65 72 20 70 72 6f 6d 70 74 2e 0a 0a 50 52 45 46 49 58 20 69 73 20 73 68 6f 77 6e 20 69 | uffer.prompt...PREFIX.is.shown.i |
| 76220 | 6e 20 61 6e 20 6f 76 65 72 6c 61 79 2e 20 20 52 65 70 65 61 74 65 64 20 63 61 6c 6c 73 20 74 6f | n.an.overlay...Repeated.calls.to |
| 76240 | 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a 77 69 6c 6c 20 74 6f 67 67 6c 65 20 69 74 73 20 76 | .this.function.will.toggle.its.v |
| 76260 | 69 73 69 62 69 6c 69 74 79 20 73 74 61 74 65 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 6d 69 6e | isibility.state."...(unless.(min |
| 76280 | 69 62 75 66 66 65 72 70 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 54 68 69 73 20 | ibufferp).....(user-error."This. |
| 762a0 | 63 6f 6d 6d 61 6e 64 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 62 65 20 75 73 65 64 20 69 | command.is.intended.to.be.used.i |
| 762c0 | 6e 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 22 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 75 | n.the.minibuffer."))...(let*.((u |
| 762e0 | 70 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 6f 76 20 73 29 0a 20 20 | pdate..........(lambda.(ov.s)... |
| 76300 | 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........... |
| 76320 | 20 20 6f 76 20 27 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ..ov.'after-string.............( |
| 76340 | 61 6e 64 20 73 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 | and.s.(concat.(propertize.(conca |
| 76360 | 74 20 22 5c 6e 22 20 73 20 22 5c 6e 22 29 20 27 66 61 63 65 20 27 73 68 61 64 6f 77 29 0a 20 20 | t."\n".s."\n").'face.'shadow)... |
| 76380 | 20 20 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 |
| 763a0 | 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 | eparator-line))))))..........(ma |
| 763c0 | 78 2d 77 69 64 74 68 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 28 6d 69 6e 69 62 | x-width.(-.(window-width).(minib |
| 763e0 | 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 | uffer-prompt-end)))..........(ma |
| 76400 | 78 20 28 6f 72 20 6d 61 78 2d 6d 69 6e 69 2d 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 30 2e 34 | x.(or.max-mini-window-height.0.4 |
| 76420 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 78 2d 68 65 69 67 68 74 20 28 2d 20 28 6f 72 20 28 | ))..........(max-height.(-.(or.( |
| 76440 | 61 6e 64 20 28 6e 61 74 6e 75 6d 70 20 6d 61 78 29 20 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 | and.(natnump.max).max).......... |
| 76460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6c 6f 6f 72 20 28 2a 20 6d 61 78 | ...................(floor.(*.max |
| 76480 | 20 28 66 72 61 6d 65 2d 68 65 69 67 68 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(frame-height)))).............. |
| 764a0 | 20 20 20 20 20 20 20 20 20 20 20 35 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 70 72 65 | ...........5))).....(if.(and.pre |
| 764c0 | 66 69 78 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 70 72 65 66 69 78 29 | fix.(not.(string-empty-p.prefix) |
| 764e0 | 29 20 28 3e 20 6d 61 78 2d 68 65 69 67 68 74 20 31 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f | ).(>.max-height.1)).........(pro |
| 76500 | 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 76 69 73 75 61 6c 2d 6c 69 6e 65 | gn...........(unless.visual-line |
| 76520 | 2d 6d 6f 64 65 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 20 | -mode.(visual-line-mode.1))..... |
| 76540 | 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 2d 70 72 6f | ......(goto-char.(minibuffer-pro |
| 76560 | 6d 70 74 2d 65 6e 64 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 | mpt-end))...........(pcase-let.( |
| 76580 | 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)................. |
| 765a0 | 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 2d 61 6e 64 2d 6f 76 | .......(get-char-property-and-ov |
| 765c0 | 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | erlay.........................(p |
| 765e0 | 6f 69 6e 74 2d 6d 69 6e 29 20 27 67 70 74 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | oint-min).'gptel)))............. |
| 76600 | 28 75 6e 6c 65 73 73 20 6f 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f | (unless.ov...............(setq.o |
| 76620 | 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | v.(make-overlay................. |
| 76640 | 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d | ........(point-min).(minibuffer- |
| 76660 | 70 72 6f 6d 70 74 2d 65 6e 64 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | prompt-end).nil.t)))............ |
| 76680 | 20 28 70 63 61 73 65 20 70 72 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 61 72 | .(pcase.prop...............('par |
| 766a0 | 74 69 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 | tial................(if.(>.(leng |
| 766c0 | 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)........... |
| 766e0 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........(progn................. |
| 76700 | 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 70 72 65 | .....(overlay-put.ov.'gptel.'pre |
| 76720 | 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 28 6c 65 74 20 28 | fix)......................(let.( |
| 76740 | 28 64 69 73 70 2d 73 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (disp-size...................... |
| 76760 | 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 68 61 72 20 61 63 72 6f 73 73 20 | .......(cl-loop.for.char.across. |
| 76780 | 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | prefix.......................... |
| 767a0 | 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 69 64 78 20 75 70 66 72 6f 6d 20 30 0a 20 20 20 | ............for.idx.upfrom.0.... |
| 767c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 767e0 | 20 20 77 69 74 68 20 6e 20 3d 20 30 20 77 69 74 68 20 6d 61 78 2d 6c 65 6e 67 74 68 20 3d 20 28 | ..with.n.=.0.with.max-length.=.( |
| 76800 | 2a 20 6d 61 78 2d 68 65 69 67 68 74 20 6d 61 78 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 | *.max-height.max-width)......... |
| 76820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 | .............................if. |
| 76840 | 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 0a 20 20 20 | (eq.char.?\n).do.(cl-incf.n).... |
| 76860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76880 | 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 |
| 768a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 768c0 | 20 20 20 20 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 | ......if.(>.idx.max-length)..... |
| 768e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76900 | 20 72 65 74 75 72 6e 20 69 64 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .return.idx..................... |
| 76920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 | .................finally.return. |
| 76940 | 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 28 66 | nil)))........................(f |
| 76960 | 75 6e 63 61 6c 6c 20 75 70 64 61 74 65 20 6f 76 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uncall.update.ov................ |
| 76980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 69 73 70 2d 73 69 7a 65 0a 20 | .................(if.disp-size.. |
| 769a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 769c0 | 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 74 68 0a 20 20 20 | ...(truncate-string-to-width.... |
| 769e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76a00 | 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 27 65 6c 6c | ..prefix.disp-size..nil.nil.'ell |
| 76a20 | 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 20 20 20 20 | ipsis).......................... |
| 76a40 | 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))))............. |
| 76a60 | 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 68 69 64 | .....(overlay-put.ov.'gptel.'hid |
| 76a80 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 75 70 64 | e)..................(funcall.upd |
| 76aa0 | 61 74 65 20 6f 76 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 27 70 72 | ate.ov.nil)))...............('pr |
| 76ac0 | 65 66 69 78 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 20 27 68 69 64 | efix.(overlay-put.ov.'gptel.'hid |
| 76ae0 | 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 66 75 6e 63 61 | e)........................(funca |
| 76b00 | 6c 6c 20 75 70 64 61 74 65 20 6f 76 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ll.update.ov.nil)).............. |
| 76b20 | 20 28 5f 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 70 61 72 74 | .(_.(overlay-put.ov.'gptel.'part |
| 76b40 | 69 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 75 | ial)..................(funcall.u |
| 76b60 | 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 74 6f 2d 77 69 64 | pdate.ov.(truncate-string-to-wid |
| 76b80 | 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 20 20 | th.............................. |
| 76ba0 | 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 69 6c | ........prefix.max-width.nil.nil |
| 76bc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 76be0 | 20 20 20 20 20 20 27 65 6c 6c 69 70 73 69 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 | ......'ellipsis)))))).......(whe |
| 76c00 | 6e 2d 6c 65 74 2a 20 28 28 70 72 6f 70 2d 6f 76 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 | n-let*.((prop-ov.(get-char-prope |
| 76c20 | 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 27 67 70 74 | rty-and-overlay.(point-min).'gpt |
| 76c40 | 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 70 20 28 63 | el))).........(when.(overlayp.(c |
| 76c60 | 64 72 20 70 72 6f 70 2d 6f 76 29 29 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 28 63 64 | dr.prop-ov)).(delete-overlay.(cd |
| 76c80 | 72 20 70 72 6f 70 2d 6f 76 29 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | r.prop-ov)))))))..(defvar.gptel- |
| 76ca0 | 2d 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 0a 20 | -minibuffer-prompt-history.nil.. |
| 76cc0 | 20 22 48 69 73 74 6f 72 79 20 6f 66 20 70 72 6f 6d 70 74 73 20 72 65 61 64 20 66 72 6f 6d 20 74 | ."History.of.prompts.read.from.t |
| 76ce0 | 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 62 79 20 67 70 74 65 6c 2e 22 29 0a 0a 28 64 65 66 75 | he.minibuffer.by.gptel.")..(defu |
| 76d00 | 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 20 | n.gptel--read-minibuffer-prompt. |
| 76d20 | 28 26 6f 70 74 69 6f 6e 61 6c 20 72 65 61 64 2d 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 61 64 20 | (&optional.read-prompt)..."Read. |
| 76d40 | 61 20 75 73 65 72 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 | a.user.prompt.from.the.minibuffe |
| 76d60 | 72 2e 0a 0a 50 72 6f 6d 70 74 20 77 69 74 68 20 52 45 41 44 2d 50 52 4f 4d 50 54 20 69 66 20 73 | r...Prompt.with.READ-PROMPT.if.s |
| 76d80 | 75 70 70 6c 69 65 64 2e 20 20 52 65 74 75 72 6e 20 61 20 63 6f 6e 73 20 63 65 6c 6c 20 6f 66 20 | upplied...Return.a.cons.cell.of. |
| 76da0 | 74 68 65 20 62 75 66 66 65 72 0a 72 65 67 69 6f 6e 20 28 69 66 20 69 6e 63 6c 75 64 65 64 29 20 | the.buffer.region.(if.included). |
| 76dc0 | 61 6e 64 20 74 68 65 20 70 72 6f 76 69 64 65 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 22 0a | and.the.provided.instructions.". |
| 76de0 | 20 20 28 6c 65 74 2a 20 28 28 69 6e 63 6c 75 64 65 2d 72 65 67 69 6f 6e 20 28 75 73 65 2d 72 65 | ..(let*.((include-region.(use-re |
| 76e00 | 67 69 6f 6e 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 62 20 28 63 75 72 72 65 6e 74 2d 62 | gion-p))..........(cb.(current-b |
| 76e20 | 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 72 65 67 69 6f 6e 20 28 6c 61 | uffer))..........(get-region.(la |
| 76e40 | 6d 62 64 61 20 28 29 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 63 62 0a | mbda.().(with-current-buffer.cb. |
| 76e60 | 20 20 20 20 20 20 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 |
| 76e80 | 64 20 69 6e 63 6c 75 64 65 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.include-region................ |
| 76ea0 | 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 62 73 74 | ...................(buffer-subst |
| 76ec0 | 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.............. |
| 76ee0 | 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 62 65 | ......................(region-be |
| 76f00 | 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 29 0a 20 20 20 20 20 | ginning).(region-end))))))...... |
| 76f20 | 20 20 20 20 28 63 79 63 6c 65 2d 70 72 65 66 69 78 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e | ....(cycle-prefix.(lambda.().(in |
| 76f40 | 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | teractive)...................... |
| 76f60 | 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))).......... |
| 76f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 | ..................(gptel--read-w |
| 76fa0 | 69 74 68 2d 70 72 65 66 69 78 20 28 66 75 6e 63 61 6c 6c 20 67 65 74 2d 72 65 67 69 6f 6e 29 29 | ith-prefix.(funcall.get-region)) |
| 76fc0 | 0a 20 20 20 20 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 | ............................(got |
| 76fe0 | 6f 2d 63 68 61 72 20 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 6f 67 67 6c 65 2d 72 65 | o-char.p))))..........(toggle-re |
| 77000 | 67 69 6f 6e 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 | gion.(lambda.().(interactive)... |
| 77020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 63 6c | ........................(if.incl |
| 77040 | 75 64 65 2d 72 65 67 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 | ude-region...................... |
| 77060 | 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 69 6e 63 6c 75 64 65 2d 72 65 | .........(progn.(setq.include-re |
| 77080 | 67 69 6f 6e 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 | gion.nil)....................... |
| 770a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 | ...............(gptel--read-with |
| 770c0 | 2d 70 72 65 66 69 78 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 | -prefix.nil))................... |
| 770e0 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 63 6c 75 64 65 2d 72 65 67 69 6f 6e 20 74 | ..........(setq.include-region.t |
| 77100 | 29 0a 20 20 20 20 20 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 |
| 77120 | 75 6e 63 61 6c 6c 20 63 79 63 6c 65 2d 70 72 65 66 69 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 | uncall.cycle-prefix))))......... |
| 77140 | 20 28 65 64 69 74 2d 69 6e 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | .(edit-in-buffer...........(lamb |
| 77160 | 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | da.().(interactive)............. |
| 77180 | 28 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 76 65 20 6e 69 6c 0a 20 20 20 20 20 | (gptel--edit-directive.nil...... |
| 771a0 | 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 69 61 6c 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 63 6f | .........:initial.(minibuffer-co |
| 771c0 | 6e 74 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 6d 70 74 20 28 69 | ntents)...............:prompt.(i |
| 771e0 | 66 20 69 6e 63 6c 75 64 65 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f.include-region................ |
| 77200 | 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. |
| 77220 | 63 62 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 | cb.(buffer-substring-no-properti |
| 77240 | 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.............................. |
| 77260 | 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 62 65 | ......................(region-be |
| 77280 | 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 | ginning).(region-end)))......... |
| 772a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 23 20 45 64 69 74 20 70 72 6f 6d 70 74 20 62 | ................"#.Edit.prompt.b |
| 772c0 | 65 6c 6f 77 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 65 74 75 70 20 28 6c 61 6d | elow")...............:setup.(lam |
| 772e0 | 62 64 61 20 28 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 | bda.().(goto-char.(point-max)).( |
| 77300 | 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 72 65 63 65 6e 74 65 72 29 29 0a 20 | run-at-time.0.nil.#'recenter)).. |
| 77320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 | .............:callback.(lambda.( |
| 77340 | 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | msg)...........................( |
| 77360 | 69 66 20 28 6e 6f 74 20 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.(not.msg).................... |
| 77380 | 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 71 75 69 74 2d 72 65 63 75 | ...........(minibuffer-quit-recu |
| 773a0 | 72 73 69 76 65 2d 65 64 69 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rsive-edit)..................... |
| 773c0 | 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 69 6e 69 62 75 66 66 | ........(delete-region.(minibuff |
| 773e0 | 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 | er-prompt-end).(point-max))..... |
| 77400 | 20 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 20 | ........................(insert. |
| 77420 | 6d 73 67 29 20 28 65 78 69 74 2d 6d 69 6e 69 62 75 66 66 65 72 29 29 29 29 29 29 0a 20 20 20 20 | msg).(exit-minibuffer))))))..... |
| 77440 | 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 70 0a 20 20 20 20 20 | .....(minibuffer-local-map...... |
| 77460 | 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f 6d 70 6f 73 65 64 2d 6b 65 79 6d 61 70 20 28 64 65 66 69 | .....(make-composed-keymap.(defi |
| 77480 | 6e 65 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ne-keymap....................... |
| 774a0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 4d 2d 52 45 54 22 20 74 6f 67 67 6c 65 2d 72 65 67 69 6f | ............"M-RET".toggle-regio |
| 774c0 | 6e 20 22 43 2d 63 20 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 | n."C-c.C-e".edit-in-buffer)..... |
| 774e0 | 20 20 20 20 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 6e 69 | ............................mini |
| 77500 | 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 75 | buffer-local-map))).....(let.((u |
| 77520 | 73 65 72 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 | ser-prompt............(minibuffe |
| 77540 | 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r-with-setup-hook............... |
| 77560 | 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f | .(lambda.().(add-hook.'completio |
| 77580 | 6e 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 | n-at-point-functions............ |
| 775a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 70 72 65 73 | ....................#'gptel-pres |
| 775c0 | 65 74 2d 63 61 70 66 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 | et-capf.nil.t).................. |
| 775e0 | 28 66 75 6e 63 61 6c 6c 20 63 79 63 6c 65 2d 70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 | (funcall.cycle-prefix).......... |
| 77600 | 20 20 20 20 20 20 20 20 3b 3b 20 48 41 43 4b 20 66 6f 72 20 6c 75 63 69 64 20 45 6d 61 63 73 2c | ........;;.HACK.for.lucid.Emacs, |
| 77620 | 20 77 68 65 72 65 20 60 6d 61 6b 65 2d 73 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 27 20 69 73 20 | .where.`make-separator-line'.is. |
| 77640 | 77 6f 6e 6b 79 2e 20 20 54 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | wonky...The..................;;. |
| 77660 | 6d 69 6e 69 62 75 66 66 65 72 20 70 72 6f 6d 70 74 20 67 65 74 73 20 63 75 74 20 6f 66 66 20 2d | minibuffer.prompt.gets.cut.off.- |
| 77680 | 2d 20 66 6f 72 63 65 20 72 65 64 69 73 70 6c 61 79 20 74 6f 20 66 69 78 3a 0a 20 20 20 20 20 20 | -.force.redisplay.to.fix:....... |
| 776a0 | 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 22 29 20 28 72 65 64 69 73 70 6c | ...........(insert.".").(redispl |
| 776c0 | 61 79 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ay).(delete-char.-1))........... |
| 776e0 | 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | ...(read-string...............(o |
| 77700 | 72 20 72 65 61 64 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | r.read-prompt................... |
| 77720 | 28 63 6f 6e 63 61 74 20 28 66 6f 72 6d 61 74 20 22 41 73 6b 20 25 73 22 20 28 67 70 74 65 6c 2d | (concat.(format."Ask.%s".(gptel- |
| 77740 | 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 20 20 20 | backend-name.gptel-backend)).... |
| 77760 | 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 75 73 65 2d | .......................(if.(use- |
| 77780 | 72 65 67 69 6f 6e 2d 70 29 20 3b 4e 4f 54 45 3a 20 6e 6f 74 20 22 69 6e 63 6c 75 64 65 2d 72 65 | region-p).;NOTE:.not."include-re |
| 777a0 | 67 69 6f 6e 22 20 61 73 20 74 68 69 73 20 69 73 20 6f 6e 6c 79 20 72 65 61 64 20 6f 6e 63 65 0a | gion".as.this.is.only.read.once. |
| 777c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | ............................(con |
| 777e0 | 63 61 74 20 22 20 28 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 4d 2d 52 45 54 22 20 27 66 61 | cat.".(".(propertize."M-RET".'fa |
| 77800 | 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 20 | ce.'help-key-binding)........... |
| 77820 | 20 20 20 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 | ..........................(prope |
| 77840 | 72 74 69 7a 65 20 22 3a 20 49 6e 63 6c 75 64 65 2f 49 67 6e 6f 72 65 20 73 65 6c 65 63 74 69 6f | rtize.":.Include/Ignore.selectio |
| 77860 | 6e 22 20 27 66 61 63 65 20 27 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | n".'face.'default).............. |
| 77880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 3a 20 22 29 0a 20 20 | ......................."):.")... |
| 778a0 | 20 20 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 3a 20 22 29 29 | ..........................":.")) |
| 778c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 67 70 74 65 6c 2d 2d 6d 69 6e 69 | )...............nil.'gptel--mini |
| 778e0 | 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 | buffer-prompt-history))))....... |
| 77900 | 28 63 6f 6e 73 20 28 66 75 6e 63 61 6c 6c 20 67 65 74 2d 72 65 67 69 6f 6e 29 20 75 73 65 72 2d | (cons.(funcall.get-region).user- |
| 77920 | 70 72 6f 6d 70 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 | prompt))))..(defun.gptel--transi |
| 77940 | 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 20 28 70 72 6f 6d 70 74 20 5f 69 6e 69 74 69 61 6c | ent-read-number.(prompt._initial |
| 77960 | 2d 69 6e 70 75 74 20 68 69 73 74 6f 72 79 29 0a 20 20 22 52 65 61 64 20 61 20 6e 75 6d 65 72 69 | -input.history)..."Read.a.numeri |
| 77980 | 63 20 76 61 6c 75 65 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 50 52 | c.value.from.the.minibuffer...PR |
| 779a0 | 4f 4d 50 54 2c 20 5f 49 4e 49 54 49 41 4c 2d 49 4e 50 55 54 20 61 6e 64 20 48 49 53 54 4f 52 59 | OMPT,._INITIAL-INPUT.and.HISTORY |
| 779c0 | 20 61 72 65 20 61 73 20 69 6e 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 72 65 61 64 65 72 0a | .are.as.in.the.transient.reader. |
| 779e0 | 64 6f 63 75 6d 65 6e 74 69 6f 6e 2e 20 20 52 65 74 75 72 6e 20 6e 69 6c 20 69 66 20 75 73 65 72 | documention...Return.nil.if.user |
| 77a00 | 20 64 6f 65 73 20 6e 6f 74 20 70 72 6f 76 69 64 65 20 61 20 6e 75 6d 62 65 72 2c 20 66 6f 72 20 | .does.not.provide.a.number,.for. |
| 77a20 | 64 65 66 61 75 6c 74 2e 22 0a 20 20 3b 3b 20 57 6f 72 6b 61 72 6f 75 6e 64 20 66 6f 72 20 62 75 | default."...;;.Workaround.for.bu |
| 77a40 | 67 67 79 20 74 72 61 6e 73 69 65 6e 74 20 62 65 68 61 76 69 6f 75 72 20 77 68 65 6e 20 64 65 61 | ggy.transient.behaviour.when.dea |
| 77a60 | 6c 69 6e 67 20 77 69 74 68 0a 20 20 3b 3b 20 6e 6f 6e 2d 73 74 72 69 6e 67 20 76 61 6c 75 65 73 | ling.with...;;.non-string.values |
| 77a80 | 2e 20 20 53 65 65 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6d 61 67 69 74 | ...See:.https://github.com/magit |
| 77aa0 | 2f 74 72 61 6e 73 69 65 6e 74 2f 69 73 73 75 65 73 2f 31 37 32 0a 20 20 28 77 68 65 6e 2d 6c 65 | /transient/issues/172...(when-le |
| 77ac0 | 74 2a 20 28 28 76 61 6c 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 68 69 73 74 6f 72 79 29 29 | t*.((val.(symbol-value.history)) |
| 77ae0 | 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 70 20 28 63 61 72 20 76 | ).....(when.(not.(stringp.(car.v |
| 77b00 | 61 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 63 61 72 20 76 61 6c 20 28 6e 75 6d 62 65 72 2d | al))).......(setcar.val.(number- |
| 77b20 | 74 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 76 61 6c 29 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 | to-string.(car.val)))))...(let*. |
| 77b40 | 28 28 6d 69 6e 69 62 75 66 66 65 72 2d 64 65 66 61 75 6c 74 2d 70 72 6f 6d 70 74 2d 66 6f 72 6d | ((minibuffer-default-prompt-form |
| 77b60 | 61 74 20 22 22 29 0a 09 20 28 6e 75 6d 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 70 72 6f 6d 70 | at."")...(num.(read-number.promp |
| 77b80 | 74 20 2d 31 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 28 69 66 20 28 3d 20 6e 75 6d 20 2d | t.-1.history))).....(if.(=.num.- |
| 77ba0 | 31 29 20 6e 69 6c 20 6e 75 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 79 73 74 | 1).nil.num)))..(defun.gptel-syst |
| 77bc0 | 65 6d 2d 70 72 6f 6d 70 74 2d 2d 66 6f 72 6d 61 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 73 | em-prompt--format.(&optional.mes |
| 77be0 | 73 61 67 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 73 79 73 74 65 6d 20 4d 45 53 53 41 | sage)..."Format.the.system.MESSA |
| 77c00 | 47 45 20 66 6f 72 20 64 69 73 70 6c 61 79 20 69 6e 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 | GE.for.display.in.gptel's.transi |
| 77c20 | 65 6e 74 20 6d 65 6e 75 73 2e 0a 0a 48 61 6e 64 6c 65 20 66 6f 72 6d 61 74 74 69 6e 67 20 66 6f | ent.menus...Handle.formatting.fo |
| 77c40 | 72 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 20 77 68 65 6e 20 74 68 65 20 61 63 74 69 76 | r.system.messages.when.the.activ |
| 77c60 | 65 0a 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 | e.`gptel-model'.does.not.support |
| 77c80 | 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 28 73 65 74 71 20 6d 65 73 73 61 | .system.messages."...(setq.messa |
| 77ca0 | 67 65 20 28 6f 72 20 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | ge.(or.message.gptel--system-mes |
| 77cc0 | 73 61 67 65 29 29 0a 20 20 28 69 66 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 | sage))...(if.(gptel--model-capab |
| 77ce0 | 6c 65 2d 70 20 27 6e 6f 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 | le-p.'nosystem).......(concat.(p |
| 77d00 | 72 6f 70 65 72 74 69 7a 65 20 22 5b 4e 6f 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 73 75 | ropertize."[No.system.message.su |
| 77d20 | 70 70 6f 72 74 20 66 6f 72 20 6d 6f 64 65 6c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pport.for.model."............... |
| 77d40 | 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 | ............'face.'transient-hea |
| 77d60 | 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | ding)...............(propertize. |
| 77d80 | 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a | (gptel--model-name.gptel-model). |
| 77da0 | 20 20 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. |
| 77dc0 | 27 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 | 'warning)...............(propert |
| 77de0 | 69 7a 65 20 22 5d 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 | ize."]".'face.'transient-heading |
| 77e00 | 29 29 0a 20 20 20 20 28 69 66 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 | )).....(if.message.........(gpte |
| 77e20 | 6c 2d 2d 64 65 73 63 72 69 62 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 6d | l--describe-directive..........m |
| 77e40 | 65 73 73 61 67 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 32 | essage.(max.(-.(window-width).12 |
| 77e60 | 29 20 31 34 29 20 22 e2 ae 90 20 22 29 0a 20 20 20 20 20 20 22 5b 4e 6f 20 73 79 73 74 65 6d 20 | ).14)."....")......."[No.system. |
| 77e80 | 6d 65 73 73 61 67 65 20 73 65 74 5d 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | message.set]")))..(defun.gptel-- |
| 77ea0 | 74 6f 6f 6c 73 2d 69 6e 69 74 2d 76 61 6c 75 65 20 28 6f 62 6a 29 0a 20 20 22 53 65 74 20 74 68 | tools-init-value.(obj)..."Set.th |
| 77ec0 | 65 20 69 6e 69 74 69 61 6c 20 73 74 61 74 65 20 6f 66 20 61 20 74 6f 6f 6c 20 4f 42 4a 20 69 6e | e.initial.state.of.a.tool.OBJ.in |
| 77ee0 | 20 60 67 70 74 65 6c 2d 74 6f 6f 6c 73 27 2e 0a 0a 4f 42 4a 20 69 73 20 61 20 74 6f 6f 6c 2d 69 | .`gptel-tools'...OBJ.is.a.tool-i |
| 77f00 | 6e 66 69 78 20 6f 66 20 74 79 70 65 20 60 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 27 2e 22 0a 20 | nfix.of.type.`gptel--switch'.".. |
| 77f20 | 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 63 61 72 20 28 6d 65 6d 62 65 72 20 | .(when-let*.((name.(car.(member. |
| 77f40 | 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (oref.obj.argument)............. |
| 77f60 | 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 23 27 63 | .....................(mapcar.#'c |
| 77f80 | 61 64 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | adr............................. |
| 77fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 | .............(plist-get.(transie |
| 77fc0 | 6e 74 2d 73 63 6f 70 65 29 20 3a 74 6f 6f 6c 73 29 29 29 29 29 29 0a 20 20 20 20 28 6f 73 65 74 | nt-scope).:tools)))))).....(oset |
| 77fe0 | 20 6f 62 6a 20 76 61 6c 75 65 20 28 6c 69 73 74 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 | .obj.value.(list.(oref.obj.categ |
| 78000 | 6f 72 79 29 20 6e 61 6d 65 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 63 72 | ory).name))))..(defvar.gptel--cr |
| 78020 | 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 75 72 6c 0a 20 20 22 68 74 74 70 73 3a | owdsourced-prompts-url..."https: |
| 78040 | 2f 2f 72 61 77 2e 67 69 74 68 75 62 75 73 65 72 63 6f 6e 74 65 6e 74 2e 63 6f 6d 2f 66 2f 61 77 | //raw.githubusercontent.com/f/aw |
| 78060 | 65 73 6f 6d 65 2d 63 68 61 74 67 70 74 2d 70 72 6f 6d 70 74 73 2f 6d 61 69 6e 2f 70 72 6f 6d 70 | esome-chatgpt-prompts/main/promp |
| 78080 | 74 73 2e 63 73 76 22 0a 20 20 22 55 52 4c 20 66 6f 72 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 | ts.csv"..."URL.for.crowdsourced. |
| 780a0 | 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 76 61 72 20 67 | LLM.system.prompts.")..(defvar.g |
| 780c0 | 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 0a 20 20 28 6d 61 | ptel--crowdsourced-prompts...(ma |
| 780e0 | 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 22 | ke-hash-table.:test.#'equal)..." |
| 78100 | 43 72 6f 77 64 73 6f 75 72 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 2e | Crowdsourced.LLM.system.prompts. |
| 78120 | 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 73 76 2d 63 6f 6c 75 6d | ")..(defun.gptel--read-csv-colum |
| 78140 | 6e 20 28 29 0a 20 20 22 52 65 61 64 20 6e 65 78 74 20 43 53 56 20 63 6f 6c 75 6d 6e 20 69 6e 20 | n.()..."Read.next.CSV.column.in. |
| 78160 | 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 53 75 70 70 6f 72 74 73 20 62 6f | the.current.buffer...Supports.bo |
| 78180 | 74 68 20 71 75 6f 74 65 64 20 61 6e 64 20 6e 6f 6e 2d 71 75 6f 74 65 64 20 63 6f 6c 75 6d 6e 73 | th.quoted.and.non-quoted.columns |
| 781a0 | 20 28 52 46 43 20 34 31 38 30 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f | .(RFC.4180)."...(let.((start.(po |
| 781c0 | 69 6e 74 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 6f 6c 70 29 0a 20 20 20 20 20 20 | int))).....(unless.(eolp)....... |
| 781e0 | 28 6c 65 74 20 28 28 63 6f 6c 75 6d 6e 0a 09 20 20 20 20 20 28 69 66 20 28 65 71 20 28 63 68 61 | (let.((column.......(if.(eq.(cha |
| 78200 | 72 2d 61 66 74 65 72 29 20 3f 5c 22 29 0a 09 09 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 | r-after).?\")....(when.(re-searc |
| 78220 | 68 2d 66 6f 72 77 61 72 64 20 22 5c 22 2c 5c 5c 7c 5c 22 24 22 20 6e 69 6c 20 74 29 0a 09 09 20 | h-forward."\",\\|\"$".nil.t).... |
| 78240 | 20 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 29 | ..(let.((end.(match-beginning.0) |
| 78260 | 29 29 0a 09 09 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 | ))........(buffer-substring-no-p |
| 78280 | 72 6f 70 65 72 74 69 65 73 20 28 2b 20 73 74 61 72 74 20 31 29 20 28 69 66 20 28 65 6f 6c 70 29 | roperties.(+.start.1).(if.(eolp) |
| 782a0 | 20 28 2d 20 65 6e 64 20 31 29 20 65 6e 64 29 29 29 29 0a 09 20 20 20 20 20 20 20 28 77 68 65 6e | .(-.end.1).end)))).........(when |
| 782c0 | 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 2c 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 | .(search-forward.",".(line-end-p |
| 782e0 | 6f 73 69 74 69 6f 6e 29 20 74 29 0a 09 09 20 28 6c 65 74 20 28 28 65 6e 64 20 28 6d 61 74 63 68 | osition).t)....(let.((end.(match |
| 78300 | 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 09 09 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 | -beginning.0)))......(buffer-sub |
| 78320 | 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 | string-no-properties.start.end)) |
| 78340 | 29 29 29 29 0a 09 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 22 5c 22 22 20 22 5c 22 | ))))..(string-replace."\"\""."\" |
| 78360 | 22 20 63 6f 6c 75 6d 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 72 6f | ".column)))))..(defun.gptel--cro |
| 78380 | 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 20 28 29 0a 20 20 22 41 63 71 75 69 72 65 20 | wdsourced-prompts.()..."Acquire. |
| 783a0 | 61 6e 64 20 72 65 61 64 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 6d | and.read.crowdsourced.LLM.system |
| 783c0 | 20 70 72 6f 6d 70 74 73 2e 0a 0a 54 68 65 73 65 20 61 72 65 20 73 74 6f 72 65 64 20 69 6e 20 74 | .prompts...These.are.stored.in.t |
| 783e0 | 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | he.variable.`gptel--crowdsourced |
| 78400 | 2d 70 72 6f 6d 70 74 73 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 | -prompts',.which.see."...(when.( |
| 78420 | 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | hash-table-p.gptel--crowdsourced |
| 78440 | 2d 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 61 73 68 2d 74 61 62 6c 65 2d | -prompts).....(when.(hash-table- |
| 78460 | 65 6d 70 74 79 2d 70 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d | empty-p.gptel--crowdsourced-prom |
| 78480 | 70 74 73 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f | pts).......(unless.gptel-crowdso |
| 784a0 | 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d | urced-prompts-file.........(run- |
| 784c0 | 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f | at-time.0.nil.#'gptel-system-pro |
| 784e0 | 6d 70 74 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 63 72 6f | mpt).........(user-error."No.cro |
| 78500 | 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 29 0a 20 | wdsourced.prompts.available")).. |
| 78520 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 | .....(unless.(and.(file-exists-p |
| 78540 | 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 | .gptel-crowdsourced-prompts-file |
| 78560 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 6c 65 73 73 2d | )....................(time-less- |
| 78580 | 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 69 6d 65 2d 73 75 62 74 | p.....................(time-subt |
| 785a0 | 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d | ract.(current-time).(days-to-tim |
| 785c0 | 65 20 31 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 | e.14)).....................(file |
| 785e0 | 2d 61 74 74 72 69 62 75 74 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 74 69 6d 65 0a 20 20 20 | -attribute-modification-time.... |
| 78600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 | ..................(file-attribut |
| 78620 | 65 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 73 2d 66 69 | es.gptel-crowdsourced-prompts-fi |
| 78640 | 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 79 2d 6f 72 2d 6e 2d 70 0a 20 | le)))).........(when.(y-or-n-p.. |
| 78660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 | ..............(concat........... |
| 78680 | 20 20 20 20 20 20 22 46 65 74 63 68 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 65 6d | ......"Fetch.crowdsourced.system |
| 786a0 | 20 70 72 6f 6d 70 74 73 20 66 72 6f 6d 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .prompts.from."................. |
| 786c0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f | (propertize."https://github.com/ |
| 786e0 | 66 2f 61 77 65 73 6f 6d 65 2d 63 68 61 74 67 70 74 2d 70 72 6f 6d 70 74 73 22 20 27 66 61 63 65 | f/awesome-chatgpt-prompts".'face |
| 78700 | 20 27 6c 69 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 | .'link)................."?"))... |
| 78720 | 20 20 20 20 20 20 20 20 3b 3b 20 46 65 74 63 68 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 | ........;;.Fetch.file........... |
| 78740 | 28 6d 65 73 73 61 67 65 20 22 46 65 74 63 68 69 6e 67 20 70 72 6f 6d 70 74 73 2e 2e 2e 22 29 0a | (message."Fetching.prompts..."). |
| 78760 | 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 66 69 6c 65 2d 6e 61 6d 65 2d | ..........(let.((dir.(file-name- |
| 78780 | 64 69 72 65 63 74 6f 72 79 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f | directory.gptel-crowdsourced-pro |
| 787a0 | 6d 70 74 73 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | mpts-file))).............(unless |
| 787c0 | 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 64 69 72 29 20 28 6d 6b 64 69 72 20 64 69 72 20 | .(file-exists-p.dir).(mkdir.dir. |
| 787e0 | 27 63 72 65 61 74 65 2d 70 61 72 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | 'create-parents)).............(i |
| 78800 | 66 20 28 75 72 6c 2d 63 6f 70 79 2d 66 69 6c 65 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 | f.(url-copy-file.gptel--crowdsou |
| 78820 | 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rced-prompts-url................ |
| 78840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 | ................gptel-crowdsourc |
| 78860 | 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ed-prompts-file................. |
| 78880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f 6b 2d 69 66 2d 61 6c 72 65 61 64 79 2d 65 78 | ...............'ok-if-already-ex |
| 788a0 | 69 73 74 73 29 0a 09 09 28 6d 65 73 73 61 67 65 20 22 46 65 74 63 68 69 6e 67 20 70 72 6f 6d 70 | ists)...(message."Fetching.promp |
| 788c0 | 74 73 2e 2e 2e 20 64 6f 6e 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 | ts....done.")...............(mes |
| 788e0 | 73 61 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 6e 65 77 20 70 72 6f | sage."Could.not.retrieve.new.pro |
| 78900 | 6d 70 74 73 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 28 66 69 6c 65 | mpts."))))).......(if.(not.(file |
| 78920 | 2d 72 65 61 64 61 62 6c 65 2d 70 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 | -readable-p.gptel-crowdsourced-p |
| 78940 | 72 6f 6d 70 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 | rompts-file))...........(progn.( |
| 78960 | 6d 65 73 73 61 67 65 20 22 4e 6f 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 70 72 6f 6d 70 74 73 | message."No.crowdsourced.prompts |
| 78980 | 20 61 76 61 69 6c 61 62 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | .available")..................(c |
| 789a0 | 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 73 79 73 74 65 6d | all-interactively.#'gptel-system |
| 789c0 | 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 | -prompt)).........(with-temp-buf |
| 789e0 | 66 65 72 0a 20 20 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 | fer...........(insert-file-conte |
| 78a00 | 6e 74 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 73 2d 66 | nts.gptel-crowdsourced-prompts-f |
| 78a20 | 69 6c 65 29 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 74 | ile)...........(goto-char.(point |
| 78a40 | 2d 6d 69 6e 29 29 0a 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 | -min))...........(forward-line.1 |
| 78a60 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a | )...........(while.(not.(eobp)). |
| 78a80 | 09 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 61 63 74 20 28 67 70 74 65 6c 2d 2d 72 65 | .....(when-let*.((act.(gptel--re |
| 78aa0 | 61 64 2d 63 73 76 2d 63 6f 6c 75 6d 6e 29 29 0a 09 09 09 28 70 72 6f 6d 70 74 20 28 67 70 74 65 | ad-csv-column))....(prompt.(gpte |
| 78ac0 | 6c 2d 2d 72 65 61 64 2d 63 73 76 2d 63 6f 6c 75 6d 6e 29 29 29 0a 09 09 28 70 75 74 68 61 73 68 | l--read-csv-column)))...(puthash |
| 78ae0 | 20 61 63 74 20 70 72 6f 6d 70 74 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d | .act.prompt.gptel--crowdsourced- |
| 78b00 | 70 72 6f 6d 70 74 73 29 29 0a 09 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 | prompts))........(forward-line.1 |
| 78b20 | 29 29 29 29 29 0a 20 20 20 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 | ))))).....gptel--crowdsourced-pr |
| 78b40 | 6f 6d 70 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d | ompts))..(defun.gptel--describe- |
| 78b60 | 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 20 28 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 | infix-context.()...(if.(null.gpt |
| 78b80 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 20 22 43 6f 6e 74 65 78 74 22 0a 20 20 20 | el-context--alist)."Context".... |
| 78ba0 | 20 28 70 63 61 73 65 2d 6c 65 74 2a 0a 20 20 20 20 20 20 20 20 28 28 63 6f 6e 74 65 78 74 73 20 | .(pcase-let*.........((contexts. |
| 78bc0 | 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 29 0a 20 20 20 20 20 20 | (gptel-context--collect))....... |
| 78be0 | 20 20 20 28 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 28 6c 65 6e 67 74 68 20 63 6f 6e 74 65 78 74 | ...(buffer-count.(length.context |
| 78c00 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 60 28 2c 66 69 6c 65 2d 63 6f 75 6e 74 20 2c 6f 76 2d | s))..........(`(,file-count.,ov- |
| 78c20 | 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 62 75 66 66 65 72 2d 63 | count)...........(if.(>.buffer-c |
| 78c40 | 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 | ount.0)...............(cl-loop.f |
| 78c60 | 6f 72 20 28 62 75 66 2d 66 69 6c 65 20 2e 20 6f 76 73 29 20 69 6e 20 63 6f 6e 74 65 78 74 73 0a | or.(buf-file...ovs).in.contexts. |
| 78c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 65 | .......................if.(buffe |
| 78ca0 | 72 70 20 62 75 66 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rp.buf-file).................... |
| 78cc0 | 20 20 20 20 73 75 6d 20 28 6c 65 6e 67 74 68 20 6f 76 73 29 20 69 6e 74 6f 20 6f 76 2d 63 6f 75 | ....sum.(length.ovs).into.ov-cou |
| 78ce0 | 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 65 6c 73 65 20 63 | nt........................else.c |
| 78d00 | 6f 75 6e 74 20 28 73 74 72 69 6e 67 70 20 62 75 66 2d 66 69 6c 65 29 20 69 6e 74 6f 20 66 69 6c | ount.(stringp.buf-file).into.fil |
| 78d20 | 65 2d 63 6f 75 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 66 | e-count........................f |
| 78d40 | 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 28 6c 69 73 74 20 66 69 6c 65 2d 63 6f 75 6e 74 20 6f | inally.return.(list.file-count.o |
| 78d60 | 76 2d 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 30 20 30 29 | v-count)).............(list.0.0) |
| 78d80 | 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 43 6f 6e 74 65 78 74 20 28 22 0a 20 20 | ))).......(concat."Context.("... |
| 78da0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 | ............(propertize......... |
| 78dc0 | 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .......(concat.................( |
| 78de0 | 61 6e 64 20 28 3e 20 6f 76 2d 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | and.(>.ov-count.0).............. |
| 78e00 | 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 64 20 72 65 67 69 6f 6e 25 73 20 69 6e 20 | ........(format."%d.region%s.in. |
| 78e20 | 25 64 20 62 75 66 66 65 72 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | %d.buffer%s".................... |
| 78e40 | 20 20 20 20 20 20 20 20 20 20 6f 76 2d 63 6f 75 6e 74 20 28 69 66 20 28 3e 20 6f 76 2d 63 6f 75 | ..........ov-count.(if.(>.ov-cou |
| 78e60 | 6e 74 20 31 29 20 22 73 22 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nt.1)."s"."")................... |
| 78e80 | 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 66 69 6c 65 2d | ...........(-.buffer-count.file- |
| 78ea0 | 63 6f 75 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 | count).......................... |
| 78ec0 | 20 20 20 20 28 69 66 20 28 3e 20 28 20 2d 20 62 75 66 66 65 72 2d 63 6f 75 6e 74 20 66 69 6c 65 | ....(if.(>.(.-.buffer-count.file |
| 78ee0 | 2d 63 6f 75 6e 74 29 20 31 29 20 22 73 22 20 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -count).1)."s"."")))............ |
| 78f00 | 20 20 20 20 20 28 61 6e 64 20 28 3e 20 66 69 6c 65 2d 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 | .....(and.(>.file-count.0)...... |
| 78f20 | 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 25 64 20 66 69 | ................(format."%s%d.fi |
| 78f40 | 6c 65 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 | le%s"........................... |
| 78f60 | 20 20 20 28 69 66 20 28 3e 20 6f 76 2d 63 6f 75 6e 74 20 30 29 20 22 2c 20 22 20 22 22 29 20 66 | ...(if.(>.ov-count.0).",."."").f |
| 78f80 | 69 6c 65 2d 63 6f 75 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 | ile-count....................... |
| 78fa0 | 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 66 69 6c 65 2d 63 6f 75 6e 74 20 31 29 20 22 73 22 20 | .......(if.(>.file-count.1)."s". |
| 78fc0 | 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 77 61 72 | ""))))................'face.'war |
| 78fe0 | 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 29 29 29 0a 0a 28 64 65 | ning)...............")"))))..(de |
| 79000 | 66 75 6e 20 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 | fun.gptel--describe-suffix-send. |
| 79020 | 28 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 65 20 61 63 74 69 6f 6e 20 6f 66 20 60 67 70 | ()..."Describe.the.action.of.`gp |
| 79040 | 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 27 2e 22 0a 20 20 28 63 6c 2d 66 6c 65 74 20 28 | tel--suffix-send'."...(cl-flet.( |
| 79060 | 28 70 74 76 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 77 61 | (ptv.(s).(propertize.s.'face.'wa |
| 79080 | 72 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 68 20 28 73 29 20 28 70 72 | rning)).............(pth.(s).(pr |
| 790a0 | 6f 70 65 72 74 69 7a 65 20 73 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 | opertize.s.'face.'transient-head |
| 790c0 | 69 6e 67 29 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 61 72 67 73 20 28 6f 72 20 28 61 6e 64 | ing))).....(let*.((args.(or.(and |
| 790e0 | 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 0a 20 20 20 20 20 | .transient-current-command...... |
| 79100 | 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 6e 73 69 65 6e 74 2d | .....................(transient- |
| 79120 | 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 6e 64 29 29 | args.transient-current-command)) |
| 79140 | 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 4e 6f 74 20 79 65 74 | ......................;;.Not.yet |
| 79160 | 20 65 78 70 6f 72 74 65 64 2c 20 73 69 6d 75 6c 61 74 65 2e 20 20 48 41 43 4b 3a 20 57 65 20 61 | .exported,.simulate...HACK:.We.a |
| 79180 | 72 65 20 61 63 63 65 73 73 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | re.accessing.................... |
| 791a0 | 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 76 61 72 69 61 62 | ..;;.Transient's.internal.variab |
| 791c0 | 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 0a 20 20 20 20 20 | les.here.for.live.updates....... |
| 791e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 74 72 61 6e 73 69 65 6e | ................(let*.((transien |
| 79200 | 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 20 28 6f 72 65 66 20 74 72 61 6e 73 69 65 6e | t-current-command.(oref.transien |
| 79220 | 74 2d 2d 70 72 65 66 69 78 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t--prefix.command))............. |
| 79240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 | ................(transient-curre |
| 79260 | 6e 74 2d 73 75 66 66 69 78 65 73 20 74 72 61 6e 73 69 65 6e 74 2d 2d 73 75 66 66 69 78 65 73 29 | nt-suffixes.transient--suffixes) |
| 79280 | 29 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 74 72 61 6e 73 69 | )........................(transi |
| 792a0 | 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 |
| 792c0 | 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 62 65 67 20 28 6c 69 6e 65 2d 6e 75 | nd))))............(lbeg.(line-nu |
| 792e0 | 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 | mber-at-pos.(if.(use-region-p).( |
| 79300 | 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 20 | region-beginning)............... |
| 79320 | 20 20 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 | .........................(point- |
| 79340 | 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 6e 64 20 28 6c 69 6e 65 2d 6e | min))))............(lend.(line-n |
| 79360 | 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 | umber-at-pos.(if.(use-region-p). |
| 79380 | 28 72 65 67 69 6f 6e 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (region-end).................... |
| 793a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 | ....................(point)))).. |
| 793c0 | 20 20 20 20 20 20 20 20 20 20 28 6c 74 65 78 74 20 28 70 74 76 20 28 69 66 20 28 3e 20 6c 65 6e | ..........(ltext.(ptv.(if.(>.len |
| 793e0 | 64 20 6c 62 65 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 | d.lbeg)......................... |
| 79400 | 20 20 20 28 66 6f 72 6d 61 74 20 22 20 28 6c 69 6e 65 73 20 25 64 2d 25 64 29 22 20 6c 62 65 67 | ...(format.".(lines.%d-%d)".lbeg |
| 79420 | 20 6c 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .lend).......................... |
| 79440 | 28 66 6f 72 6d 61 74 20 22 20 28 6c 69 6e 65 20 25 64 29 22 20 6c 62 65 67 29 29 29 29 0a 20 20 | (format.".(line.%d)".lbeg))))... |
| 79460 | 20 20 20 20 20 20 20 20 20 28 64 65 73 74 29 20 28 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 | .........(dest).(context))...... |
| 79480 | 20 28 73 65 74 71 20 64 65 73 74 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(setq.dest.(cond............... |
| 794a0 | 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 65 22 20 61 72 67 73 29 20 28 70 74 76 20 22 65 63 68 | ....((member."e".args).(ptv."ech |
| 794c0 | 6f 20 61 72 65 61 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 | o.area"))...................((me |
| 794e0 | 6d 62 65 72 20 22 6b 22 20 61 72 67 73 29 20 28 70 74 76 20 22 6b 69 6c 6c 2d 72 69 6e 67 22 29 | mber."k".args).(ptv."kill-ring") |
| 79500 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6c 2d 73 6f 6d 65 20 28 6c | )...................((cl-some.(l |
| 79520 | 61 6d 62 64 61 20 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 20 | ambda.(s)....................... |
| 79540 | 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 6d 65 6d 71 20 28 | ........(and.(stringp.s).(memq.( |
| 79560 | 61 72 65 66 20 73 20 30 29 20 27 28 3f 67 20 3f 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | aref.s.0).'(?g.?b))............. |
| 79580 | 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 65 71 75 | .......................(not.(equ |
| 795a0 | 61 6c 20 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 | al.(substring.s.1).(buffer-name) |
| 795c0 | 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 | )).............................. |
| 795e0 | 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 62 75 66 66 65 72 20 22 29 20 28 70 | ......(concat.(pth."buffer.").(p |
| 79600 | 74 76 20 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | tv.(substring.s.1))))).......... |
| 79620 | 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 29 29 0a 20 20 20 20 | ...................args))))..... |
| 79640 | 20 20 28 73 65 74 71 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 | ..(setq.context.............(and |
| 79660 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 | .gptel-context--alist........... |
| 79680 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6c 63 20 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 63 | .......(let.((lc.(length.gptel-c |
| 796a0 | 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontext--alist)))................ |
| 796c0 | 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 20 61 6c 6f 6e 67 20 77 69 74 68 20 22 29 | ....(concat.(pth.".along.with.") |
| 796e0 | 20 28 70 74 76 20 28 66 6f 72 6d 61 74 20 22 25 64 22 20 6c 63 29 29 0a 20 20 20 20 20 20 20 20 | .(ptv.(format."%d".lc))......... |
| 79700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 68 20 28 63 6f 6e 63 61 74 20 | ...................(pth.(concat. |
| 79720 | 22 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 22 20 28 61 6e 64 20 28 2f 3d 20 6c 63 20 31 29 | ".context.source".(and.(/=.lc.1) |
| 79740 | 20 22 73 22 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6d 65 6d 62 65 72 | ."s"))))))).......(cond.((member |
| 79760 | 20 22 6d 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | ."m".args)..............(concat. |
| 79780 | 28 70 74 68 20 22 52 65 61 64 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 22 29 20 28 70 74 76 20 22 | (pth."Read.prompt.from.").(ptv." |
| 797a0 | 6d 69 6e 69 62 75 66 66 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | minibuffer").................... |
| 797c0 | 20 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 20 28 | ..context......................( |
| 797e0 | 69 66 20 64 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 72 65 73 70 6f 6e 73 65 | if.dest.(concat.(pth.",.response |
| 79800 | 20 74 6f 20 22 29 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .to.").dest).................... |
| 79820 | 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 20 72 65 73 70 6f | ....(concat.(pth.",.insert.respo |
| 79840 | 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | nse.at.point"))))).............( |
| 79860 | 28 6d 65 6d 62 65 72 20 22 79 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | (member."y".args)..............( |
| 79880 | 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 6e 64 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 22 29 | concat.(pth."Send.prompt.from.") |
| 798a0 | 0a 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 |
| 798c0 | 74 76 20 22 6b 69 6c 6c 2d 72 69 6e 67 20 28 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tv."kill-ring.(")............... |
| 798e0 | 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 76 61 6c 20 28 63 | ...............(if-let*.((val.(c |
| 79900 | 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | urrent-kill.0))................. |
| 79920 | 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 61 6c 20 28 73 75 62 | .......................(val.(sub |
| 79940 | 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 76 61 6c 29 29 0a 20 20 20 20 20 | string-no-properties.val))...... |
| 79960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79980 | 20 20 28 6c 65 6e 20 28 6c 65 6e 67 74 68 20 76 61 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(len.(length.val)))........... |
| 799a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 76 20 28 63 6f 6e | .......................(ptv.(con |
| 799c0 | 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cat............................. |
| 799e0 | 20 20 20 20 20 20 20 20 20 20 20 22 5c 22 22 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 0a | ..........."\"".(string-replace. |
| 79a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 22 e2 ae 90 22 0a 20 20 20 20 20 20 20 20 | ............."\n"."..."......... |
| 79a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79a60 | 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 74 68 0a 20 | .....(truncate-string-to-width.. |
| 79a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 20 32 30 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a | .............val.20.nil.nil.t)). |
| 79ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79ae0 | 20 20 20 20 20 20 20 22 5c 22 22 20 28 77 68 65 6e 20 28 3e 20 6c 65 6e 20 32 30 29 0a 20 20 20 | ......."\"".(when.(>.len.20).... |
| 79b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79b20 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(concat.............. |
| 79b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79b60 | 20 20 22 2c 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 | ..",.".......................... |
| 79b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 73 69 7a 65 | ......................(file-size |
| 79ba0 | 2d 68 75 6d 61 6e 2d 72 65 61 64 61 62 6c 65 20 6c 65 6e 20 27 73 69 20 22 20 22 29 0a 20 20 20 | -human-readable.len.'si.".").... |
| 79bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 79be0 | 20 20 20 20 20 20 20 20 20 20 20 20 22 20 63 68 61 72 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 | ............".chars"))))........ |
| 79c00 | 20 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 |
| 79c20 | 69 7a 65 20 22 65 6d 70 74 79 22 20 27 66 61 63 65 20 27 65 72 72 6f 72 29 29 0a 20 20 20 20 20 | ize."empty".'face.'error))...... |
| 79c40 | 20 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 74 76 20 22 29 22 | ........................(ptv.")" |
| 79c60 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 0a | ))......................context. |
| 79c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 64 65 73 74 20 28 63 | .....................(if.dest.(c |
| 79ca0 | 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 22 29 20 64 65 73 | oncat.(pth.",.response.to.").des |
| 79cc0 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | t)........................(conca |
| 79ce0 | 74 20 28 70 74 68 20 22 2c 20 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 | t.(pth.",.insert.response.at.poi |
| 79d00 | 6e 74 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 69 | nt"))))).............((member."i |
| 79d20 | 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 67 | ".args)..............(let*.((reg |
| 79d40 | 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(use-region-p))................ |
| 79d60 | 20 20 20 20 20 28 73 72 63 20 28 70 74 76 20 28 69 66 20 72 65 67 20 22 73 65 6c 65 63 74 69 6f | .....(src.(ptv.(if.reg."selectio |
| 79d80 | 6e 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | n".(buffer-name)))))............ |
| 79da0 | 20 20 20 20 28 69 66 20 64 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 6e 64 20 | ....(if.dest.(concat.(pth."Send. |
| 79dc0 | 22 29 20 73 72 63 20 6c 74 65 78 74 20 63 6f 6e 74 65 78 74 20 28 70 74 68 20 22 2c 20 77 69 74 | ").src.ltext.context.(pth.",.wit |
| 79de0 | 68 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h.response.to.")................ |
| 79e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 74 76 20 64 65 73 74 29 20 28 70 74 68 | .................(ptv.dest).(pth |
| 79e20 | 20 22 3b 20 6b 69 6c 6c 22 29 20 6c 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .";.kill").ltext................ |
| 79e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6e 6f 74 20 72 65 67 29 20 | .................(and.(not.reg). |
| 79e60 | 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 20 69 6e 20 22 29 20 73 72 63 29 29 29 0a 20 20 20 20 | (concat.(pth.".in.").src)))..... |
| 79e80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 52 65 70 6c 61 | .............(concat.(pth."Repla |
| 79ea0 | 63 65 20 22 29 20 73 72 63 20 6c 74 65 78 74 20 28 70 74 68 20 22 20 77 69 74 68 20 72 65 73 70 | ce.").src.ltext.(pth.".with.resp |
| 79ec0 | 6f 6e 73 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onse").......................... |
| 79ee0 | 28 61 6e 64 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (and.context.................... |
| 79f00 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 20 28 20 77 69 74 68 | ...........(concat.(pth.".(.with |
| 79f20 | 22 29 20 28 73 75 62 73 74 72 69 6e 67 20 63 6f 6e 74 65 78 74 20 31 31 29 20 22 20 29 22 29 29 | ").(substring.context.11).".)")) |
| 79f40 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 | )))).............((use-region-p) |
| 79f60 | 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 6e 64 | ..............(concat.(pth."Send |
| 79f80 | 20 22 29 20 28 70 74 76 20 22 73 65 6c 65 63 74 69 6f 6e 22 29 20 6c 74 65 78 74 0a 20 20 20 20 | .").(ptv."selection").ltext..... |
| 79fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 20 28 69 66 20 64 65 73 | .................context.(if.des |
| 79fc0 | 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 77 69 74 68 20 72 65 73 70 6f 6e 73 65 20 | t.(concat.(pth.",.with.response. |
| 79fe0 | 74 6f 20 22 29 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | to.").dest)..................... |
| 7a000 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 69 6e 73 65 72 | ...........(concat.(pth.",.inser |
| 7a020 | 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 72 65 67 69 6f 6e 20 65 6e 64 22 29 29 29 29 29 0a 20 | t.response.at.region.end"))))).. |
| 7a040 | 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 53 65 6e 64 | ...........(t.(concat.(pth."Send |
| 7a060 | 20 22 29 20 28 70 74 76 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 20 6c 74 65 78 74 0a 20 20 | .").(ptv.(buffer-name)).ltext... |
| 7a080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 20 28 69 66 | .....................context.(if |
| 7a0a0 | 20 64 65 73 74 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c 20 77 69 74 68 20 72 65 73 70 6f | .dest.(concat.(pth.",.with.respo |
| 7a0c0 | 6e 73 65 20 74 6f 20 22 29 20 64 65 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nse.to.").dest)................. |
| 7a0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 74 68 20 22 2c | .................(concat.(pth.", |
| 7a100 | 20 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 29 29 29 29 29 | .insert.response.at.point")))))) |
| 7a120 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 65 74 | )))..(defun.gptel--format-preset |
| 7a140 | 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 22 46 6f 72 6d 61 74 20 74 68 65 20 70 72 65 73 65 74 20 | -string.()..."Format.the.preset. |
| 7a160 | 69 6e 64 69 63 61 74 6f 72 20 64 69 73 70 6c 61 79 20 66 6f 72 20 60 67 70 74 65 6c 2d 6d 65 6e | indicator.display.for.`gptel-men |
| 7a180 | 75 27 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 | u'."...(if.(and.gptel--known-pre |
| 7a1a0 | 73 65 74 73 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 0a 20 20 20 20 20 20 28 61 70 70 6c 79 | sets.gptel--preset).......(apply |
| 7a1c0 | 0a 20 20 20 20 20 20 20 23 27 66 6f 72 6d 61 74 20 22 20 28 25 73 25 73 29 22 0a 20 20 20 20 20 | ........#'format.".(%s%s)"...... |
| 7a1e0 | 20 20 28 6c 65 74 20 28 28 6d 69 73 6d 61 74 63 68 20 28 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 | ..(let.((mismatch.(gptel--preset |
| 7a200 | 2d 6d 69 73 6d 61 74 63 68 2d 70 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 29 29 0a 20 20 20 | -mismatch-p.gptel--preset))).... |
| 7a220 | 20 20 20 20 20 20 28 6c 69 73 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 40 22 20 27 66 61 63 | ......(list.(propertize."@".'fac |
| 7a240 | 65 20 28 69 66 20 6d 69 73 6d 61 74 63 68 20 27 74 72 61 6e 73 69 65 6e 74 2d 6b 65 79 0a 20 20 | e.(if.mismatch.'transient-key... |
| 7a260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7a280 | 20 20 20 20 20 27 28 20 3a 69 6e 68 65 72 69 74 20 74 72 61 6e 73 69 65 6e 74 2d 6b 65 79 0a 20 | .....'(.:inherit.transient-key.. |
| 7a2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7a2c0 | 20 20 20 20 20 20 20 20 20 3a 69 6e 68 65 72 69 74 20 73 65 63 6f 6e 64 61 72 79 2d 73 65 6c 65 | .........:inherit.secondary-sele |
| 7a2e0 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ction........................... |
| 7a300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 6f 78 20 2d 31 20 3a 77 65 69 67 68 74 20 | ................:box.-1.:weight. |
| 7a320 | 62 6f 6c 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | bold)))................(properti |
| 7a340 | 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 29 20 27 | ze.(format."%s".gptel--preset).' |
| 7a360 | 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 20 | face............................ |
| 7a380 | 28 69 66 20 6d 69 73 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.mismatch.................... |
| 7a3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 69 6e 68 65 72 69 74 20 77 61 72 6e 69 6e 67 20 3a | ............'(:inherit.warning.: |
| 7a3c0 | 73 74 72 69 6b 65 2d 74 68 72 6f 75 67 68 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | strike-through.t)............... |
| 7a3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 69 6e 68 65 72 69 74 20 73 65 63 6f 6e 64 | ...............'(:inherit.second |
| 7a400 | 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 20 3a 62 6f 78 20 2d 31 29 29 29 29 29 29 0a 20 20 20 20 | ary-selection.:box.-1))))))..... |
| 7a420 | 28 66 6f 72 6d 61 74 20 22 20 28 25 73 25 73 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | (format.".(%s%s)".............(p |
| 7a440 | 72 6f 70 65 72 74 69 7a 65 20 22 40 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 6b | ropertize."@".'face.'transient-k |
| 7a460 | 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 70 72 65 | ey).............(propertize."pre |
| 7a480 | 73 65 74 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 | set".'face.'transient-inactive-v |
| 7a4a0 | 61 6c 75 65 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 63 6c 61 73 73 | alue))))....;;.*.Transient.class |
| 7a4c0 | 65 73 20 61 6e 64 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 67 70 74 65 6c 0a 0a 3b 3b 20 2a 2a 20 | es.and.methods.for.gptel..;;.**. |
| 7a4e0 | 43 6c 61 73 73 20 66 6f 72 20 67 65 6e 65 72 69 63 20 67 70 74 65 6c 20 65 6c 69 73 70 20 76 61 | Class.for.generic.gptel.elisp.va |
| 7a500 | 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 | riables..(defclass.gptel-lisp-va |
| 7a520 | 72 69 61 62 6c 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 | riable.(transient-lisp-variable) |
| 7a540 | 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c | ...((display-nil.:initarg.:displ |
| 7a560 | 61 79 2d 6e 69 6c 29 20 20 3b 53 74 72 69 6e 67 20 74 6f 20 64 69 73 70 6c 61 79 20 69 66 20 76 | ay-nil)..;String.to.display.if.v |
| 7a580 | 61 6c 75 65 20 69 66 20 6e 69 6c 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 6d 61 70 20 3a 69 6e 69 | alue.if.nil....(display-map.:ini |
| 7a5a0 | 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 3a 69 6e 69 74 66 6f 72 6d 20 6e 69 6c 29 | targ.:display-map.:initform.nil) |
| 7a5c0 | 29 20 3b 44 69 73 70 6c 61 79 20 73 74 72 69 6e 67 20 66 72 6f 6d 20 61 6c 69 73 74 20 64 69 73 | ).;Display.string.from.alist.dis |
| 7a5e0 | 70 6c 61 79 2d 6d 61 70 0a 20 20 22 4c 69 73 70 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 | play-map..."Lisp.variables.that. |
| 7a600 | 73 68 6f 77 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 69 6e 73 74 65 61 64 20 6f 66 20 6e 69 6c | show.:display-nil.instead.of.nil |
| 7a620 | 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 | .")..(cl-defmethod.transient-for |
| 7a640 | 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 | mat-value.((obj.gptel-lisp-varia |
| 7a660 | 62 6c 65 29 29 0a 20 20 28 6c 65 74 20 28 28 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 0a 20 20 20 | ble))...(let.((display-value.... |
| 7a680 | 20 20 20 20 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 20 64 69 73 70 6c 61 79 | ......(with-slots.(value.display |
| 7a6a0 | 2d 6e 69 6c 20 64 69 73 70 6c 61 79 2d 6d 61 70 29 20 6f 62 6a 0a 20 20 20 20 20 20 20 20 20 20 | -nil.display-map).obj........... |
| 7a6c0 | 20 28 63 6f 6e 64 20 28 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 64 69 73 70 6c 61 79 2d 6e 69 6c | .(cond.((null.value).display-nil |
| 7a6e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 6d 61 70 20 | )..................(display-map. |
| 7a700 | 28 6f 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d 6d 61 | (or.(cdr.(assoc.value.display-ma |
| 7a720 | 70 29 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 | p)).value))..................(t. |
| 7a740 | 76 61 6c 75 65 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 | value))))).....(propertize...... |
| 7a760 | 28 69 66 20 28 73 74 72 69 6e 67 70 20 64 69 73 70 6c 61 79 2d 76 61 6c 75 65 29 20 64 69 73 70 | (if.(stringp.display-value).disp |
| 7a780 | 6c 61 79 2d 76 61 6c 75 65 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 64 69 73 70 6c | lay-value.(prin1-to-string.displ |
| 7a7a0 | 61 79 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 | ay-value))......'face.'transient |
| 7a7c0 | 2d 76 61 6c 75 65 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 | -value)))..(cl-defmethod.transie |
| 7a7e0 | 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 | nt-infix-set.((obj.gptel-lisp-va |
| 7a800 | 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 66 20 | riable).value)...(funcall.(oref. |
| 7a820 | 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 | obj.set-value)............(oref. |
| 7a840 | 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f | obj.variable)............(oset.o |
| 7a860 | 62 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c | bj.value.value)............gptel |
| 7a880 | 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c | --set-buffer-locally))..;;.**.Cl |
| 7a8a0 | 61 73 73 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 20 74 6f 6f 6c 73 0a 0a 28 64 | ass.for.managing.gptel.tools..(d |
| 7a8c0 | 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 20 28 74 72 61 6e 73 69 65 6e 74 | efclass.gptel--switch.(transient |
| 7a8e0 | 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 20 3a | -switch)...((category.:initarg.: |
| 7a900 | 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 72 67 | category))..."Class.used.for.arg |
| 7a920 | 75 6d 65 6e 74 73 20 74 68 61 74 20 73 68 61 72 65 20 61 20 63 61 74 65 67 6f 72 79 2e 22 29 0a | uments.that.share.a.category."). |
| 7a940 | 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 | .(cl-defmethod.transient-infix-s |
| 7a960 | 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 29 20 76 61 6c 75 65 29 0a 20 | et.((obj.gptel--switch).value).. |
| 7a980 | 20 22 53 65 74 20 56 41 4c 55 45 20 6f 66 20 61 20 60 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 27 | ."Set.VALUE.of.a.`gptel--switch' |
| 7a9a0 | 20 4f 42 4a 2e 0a 0a 49 74 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 74 68 65 20 63 61 74 65 67 | .OBJ...It.is.a.list.of.the.categ |
| 7a9c0 | 6f 72 79 20 61 6e 64 20 61 72 67 75 6d 65 6e 74 2c 20 65 2e 67 2e 0a 20 28 5c 22 66 69 6c 65 73 | ory.and.argument,.e.g...(\"files |
| 7a9e0 | 79 73 74 65 6d 5c 22 20 5c 22 72 65 61 64 5f 66 69 6c 65 5c 22 29 2e 22 0a 20 20 28 6c 65 74 20 | ystem\".\"read_file\")."...(let. |
| 7aa00 | 28 28 73 74 61 74 65 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 29 0a 20 20 20 20 20 | ((state.(transient-scope))...... |
| 7aa20 | 20 20 20 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 | ...(category.(oref.obj.category) |
| 7aa40 | 29 29 0a 20 20 20 20 28 69 66 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a | )).....(if.value.........(progn. |
| 7aa60 | 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 6c 69 73 74 20 63 61 74 65 | ..........(cl-pushnew.(list.cate |
| 7aa80 | 67 6f 72 79 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gory.value)..................... |
| 7aaa0 | 20 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 29 20 3a 74 65 73 74 | ..(plist-get.state.:tools).:test |
| 7aac0 | 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 | .#'equal)...........(oset.obj.va |
| 7aae0 | 6c 75 65 20 28 6c 69 73 74 20 63 61 74 65 67 6f 72 79 20 76 61 6c 75 65 29 29 29 0a 20 20 20 20 | lue.(list.category.value)))..... |
| 7ab00 | 20 20 28 70 6c 69 73 74 2d 70 75 74 20 73 74 61 74 65 20 3a 74 6f 6f 6c 73 0a 20 20 20 20 20 20 | ..(plist-put.state.:tools....... |
| 7ab20 | 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 20 28 6c 69 73 74 20 63 61 74 65 67 6f 72 | ...........(delete.(list.categor |
| 7ab40 | 79 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 | y.(oref.obj.argument)).......... |
| 7ab60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 73 74 61 74 65 | ................(plist-get.state |
| 7ab80 | 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 | .:tools))).......(oset.obj.value |
| 7aba0 | 20 6e 69 6c 29 29 0a 20 20 20 20 28 6f 73 65 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 65 66 | .nil)).....(oset.transient--pref |
| 7abc0 | 69 78 20 73 63 6f 70 65 20 73 74 61 74 65 29 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 20 66 | ix.scope.state)))..;;.**.Class.f |
| 7abe0 | 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 20 74 6f 6f 6c 20 63 61 74 65 67 6f 72 69 65 | or.managing.gptel.tool.categorie |
| 7ac00 | 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 | s..(defclass.gptel--switch-categ |
| 7ac20 | 6f 72 79 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 77 69 74 63 68 29 0a 20 20 28 28 63 61 74 65 67 | ory.(transient-switch)...((categ |
| 7ac40 | 6f 72 79 20 3a 69 6e 69 74 61 72 67 20 3a 63 61 74 65 67 6f 72 79 29 29 0a 20 20 22 43 6c 61 73 | ory.:initarg.:category))..."Clas |
| 7ac60 | 73 20 75 73 65 64 20 66 6f 72 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 73 77 69 74 63 68 | s.used.for.arguments.that.switch |
| 7ac80 | 20 61 20 67 72 6f 75 70 20 6f 66 20 6f 74 68 65 72 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 54 68 | .a.group.of.other.arguments...Th |
| 7aca0 | 65 69 72 20 6f 77 6e 20 76 61 6c 75 65 20 69 73 20 69 67 6e 6f 72 65 64 22 29 0a 0a 28 63 6c 2d | eir.own.value.is.ignored")..(cl- |
| 7acc0 | 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 | defmethod.transient-format-value |
| 7ace0 | 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 29 0a | .((obj.gptel--switch-category)). |
| 7ad00 | 20 20 28 6c 65 74 2a 20 28 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 | ..(let*.((category.(oref.obj.cat |
| 7ad20 | 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 63 74 69 76 65 2d 63 6f 75 6e 74 0a 20 | egory))..........(active-count.. |
| 7ad40 | 20 20 20 20 20 20 20 20 20 28 63 6c 2d 63 6f 75 6e 74 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 74 | .........(cl-count-if.(lambda.(t |
| 7ad60 | 6c 29 20 28 65 71 75 61 6c 20 28 63 61 72 20 74 6c 29 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 | l).(equal.(car.tl).category))... |
| 7ad80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 | .....................(plist-get. |
| 7ada0 | 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 74 6f 6f 6c 73 29 29 29 0a 20 20 20 20 | (transient-scope).:tools)))..... |
| 7adc0 | 20 20 20 20 20 28 74 6f 74 61 6c 2d 63 6f 75 6e 74 20 28 6c 65 6e 67 74 68 20 28 63 64 72 20 28 | .....(total-count.(length.(cdr.( |
| 7ade0 | 61 73 73 6f 63 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c | assoc.category.gptel--known-tool |
| 7ae00 | 73 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 61 63 74 69 76 65 2d 63 6f 75 6e 74 20 30 | s))))).....(if.(>.active-count.0 |
| 7ae20 | 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 28 | ).........(propertize.(format."( |
| 7ae40 | 25 64 2f 25 64 29 22 20 61 63 74 69 76 65 2d 63 6f 75 6e 74 20 74 6f 74 61 6c 2d 63 6f 75 6e 74 | %d/%d)".active-count.total-count |
| 7ae60 | 29 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 | ).'face.'transient-value)....... |
| 7ae80 | 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 28 30 2f 25 64 29 22 20 74 6f 74 | (propertize.(format."(0/%d)".tot |
| 7aea0 | 61 6c 2d 63 6f 75 6e 74 29 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 | al-count).'face.'transient-inact |
| 7aec0 | 69 76 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a 3b 3b 20 50 72 65 73 73 69 6e 67 20 61 20 74 6f 6f | ive-value))))..;;.Pressing.a.too |
| 7aee0 | 6c 20 63 61 74 65 67 6f 72 79 20 6b 65 79 20 73 68 6f 75 6c 64 20 68 61 76 65 20 64 69 66 66 65 | l.category.key.should.have.diffe |
| 7af00 | 72 65 6e 74 20 62 65 68 61 76 69 6f 72 73 20 69 6e 20 64 69 66 66 65 72 65 6e 74 0a 3b 3b 20 63 | rent.behaviors.in.different.;;.c |
| 7af20 | 6f 6e 74 65 78 74 73 3a 0a 3b 3b 20 2d 20 49 66 20 74 68 65 20 74 6f 6f 6c 73 20 66 6f 72 20 74 | ontexts:.;;.-.If.the.tools.for.t |
| 7af40 | 68 65 20 63 61 74 65 67 6f 72 79 20 61 72 65 20 6e 6f 74 20 73 68 6f 77 6e 2c 20 73 68 6f 77 20 | he.category.are.not.shown,.show. |
| 7af60 | 74 68 65 6d 2c 20 64 6f 20 6e 6f 74 68 69 6e 67 20 65 6c 73 65 0a 3b 3b 20 2d 20 49 66 20 74 68 | them,.do.nothing.else.;;.-.If.th |
| 7af80 | 65 20 74 6f 6f 6c 73 20 61 72 65 20 73 68 6f 77 69 6e 67 20 61 6e 64 20 61 6e 79 20 6f 66 20 74 | e.tools.are.showing.and.any.of.t |
| 7afa0 | 68 65 6d 20 61 72 65 20 73 65 6c 65 63 74 65 64 2c 20 64 65 73 65 6c 65 63 74 20 61 6c 6c 0a 3b | hem.are.selected,.deselect.all.; |
| 7afc0 | 3b 20 2d 20 49 66 20 74 68 65 20 74 6f 6f 6c 73 20 61 72 65 20 73 68 6f 77 69 6e 67 20 61 6e 64 | ;.-.If.the.tools.are.showing.and |
| 7afe0 | 20 6e 6f 6e 65 20 6f 66 20 74 68 65 6d 20 61 72 65 20 73 65 6c 65 63 74 65 64 2c 20 73 65 6c 65 | .none.of.them.are.selected,.sele |
| 7b000 | 63 74 20 61 6c 6c 0a 0a 3b 3b 20 54 6f 20 64 6f 20 74 68 69 73 20 77 65 20 69 6e 64 65 70 65 6e | ct.all..;;.To.do.this.we.indepen |
| 7b020 | 64 65 6e 74 6c 79 20 74 72 61 63 6b 20 77 68 65 74 68 65 72 20 74 68 65 20 63 61 74 65 67 6f 72 | dently.track.whether.the.categor |
| 7b040 | 79 20 74 6f 6f 6c 73 20 61 72 65 20 76 69 73 69 62 6c 65 0a 3b 3b 20 28 22 61 63 74 69 76 65 22 | y.tools.are.visible.;;.("active" |
| 7b060 | 29 2c 20 61 6e 64 20 77 68 65 74 68 65 72 20 61 6e 79 20 63 61 74 65 67 6f 72 79 20 74 6f 6f 6c | ),.and.whether.any.category.tool |
| 7b080 | 73 20 68 61 76 65 20 62 65 65 6e 20 22 73 65 6c 65 63 74 65 64 22 3a 0a 28 63 6c 2d 64 65 66 6d | s.have.been."selected":.(cl-defm |
| 7b0a0 | 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a | ethod.transient-infix-read.((obj |
| 7b0c0 | 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 29 0a 20 20 22 44 65 74 | .gptel--switch-category))..."Det |
| 7b0e0 | 65 72 6d 69 6e 65 20 4f 42 4a 20 76 61 6c 75 65 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 61 | ermine.OBJ.value.according.to.ca |
| 7b100 | 74 65 67 6f 72 79 20 74 6f 67 67 6c 65 20 73 65 74 74 69 6e 67 73 2e 22 0a 20 20 28 6c 65 74 2a | tegory.toggle.settings."...(let* |
| 7b120 | 20 28 28 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 29 | .((category.(oref.obj.category)) |
| 7b140 | 0a 20 20 20 20 20 20 20 20 20 28 61 63 74 69 76 65 20 28 65 71 75 61 6c 20 63 61 74 65 67 6f 72 | ..........(active.(equal.categor |
| 7b160 | 79 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a | y.(plist-get.(transient-scope).: |
| 7b180 | 63 61 74 65 67 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 65 64 20 28 | category)))..........(selected.( |
| 7b1a0 | 63 6c 2d 73 6f 6d 65 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 73 70 65 63 29 20 28 65 71 75 | cl-some.(lambda.(tool-spec).(equ |
| 7b1c0 | 61 6c 20 63 61 74 65 67 6f 72 79 20 28 63 61 72 20 74 6f 6f 6c 2d 73 70 65 63 29 29 29 0a 20 20 | al.category.(car.tool-spec)))... |
| 7b1e0 | 20 20 20 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 |
| 7b200 | 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 74 6f 6f 6c 73 29 29 29 | -get.(transient-scope).:tools))) |
| 7b220 | 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 28 | ).....(if.(not.active).........( |
| 7b240 | 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 28 69 66 20 73 65 6c 65 63 74 | oref.obj.value).......(if.select |
| 7b260 | 65 64 20 6e 69 6c 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 29 29 29 0a 0a | ed.nil.(oref.obj.argument))))).. |
| 7b280 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 | (cl-defmethod.transient-infix-se |
| 7b2a0 | 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 29 20 | t.((obj.gptel--switch-category). |
| 7b2c0 | 76 61 6c 75 65 29 0a 20 20 22 57 68 65 6e 20 73 65 74 74 69 6e 67 20 56 41 4c 55 45 2c 20 73 65 | value)..."When.setting.VALUE,.se |
| 7b2e0 | 74 20 61 6c 6c 20 6f 70 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 63 61 74 65 67 6f 72 79 20 6f 66 | t.all.options.in.the.category.of |
| 7b300 | 20 4f 42 4a 2e 22 0a 20 20 28 64 6f 6c 69 73 74 20 28 73 75 66 66 69 78 2d 6f 62 6a 20 74 72 61 | .OBJ."...(dolist.(suffix-obj.tra |
| 7b320 | 6e 73 69 65 6e 74 2d 2d 73 75 66 66 69 78 65 73 29 0a 20 20 20 20 3b 3b 20 46 69 6e 64 20 61 6c | nsient--suffixes).....;;.Find.al |
| 7b340 | 6c 20 73 75 66 66 69 78 65 73 20 74 68 61 74 20 68 61 76 65 20 74 68 69 73 20 63 61 74 65 67 6f | l.suffixes.that.have.this.catego |
| 7b360 | 72 79 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 28 63 6c 2d 74 79 70 65 70 20 73 75 | ry.....(when-let*.(((cl-typep.su |
| 7b380 | 66 66 69 78 2d 6f 62 6a 20 27 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 29 29 0a 20 20 20 20 20 20 | ffix-obj.'gptel--switch))....... |
| 7b3a0 | 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 28 6f 72 65 66 20 73 75 66 66 69 78 2d 6f | ..........((equal.(oref.suffix-o |
| 7b3c0 | 62 6a 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bj.category).................... |
| 7b3e0 | 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 63 61 74 65 67 6f 72 79 29 29 29 0a 20 20 20 20 20 | .....(oref.obj.category)))...... |
| 7b400 | 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 20 28 69 66 20 28 73 6c 6f 74 2d 62 6f 75 6e 64 70 | ...........(arg.(if.(slot-boundp |
| 7b420 | 20 73 75 66 66 69 78 2d 6f 62 6a 20 27 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 | .suffix-obj.'argument).......... |
| 7b440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 73 75 66 66 69 78 2d 6f 62 6a | ................(oref.suffix-obj |
| 7b460 | 20 61 72 67 75 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .argument)...................... |
| 7b480 | 20 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 2d 66 6f 72 6d 61 74 29 29 29 29 0a | ..(oref.obj.argument-format)))). |
| 7b4a0 | 20 20 20 20 20 20 28 69 66 20 76 61 6c 75 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(if.value................. |
| 7b4c0 | 20 20 20 20 20 20 20 20 3b 20 54 75 72 6e 20 6f 6e 2f 6f 66 66 20 61 6c 6c 20 6d 65 6d 62 65 72 | ........;.Turn.on/off.all.member |
| 7b4e0 | 73 20 69 6e 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 | s.in.category...........(transie |
| 7b500 | 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 73 75 66 66 69 78 2d 6f 62 6a 20 61 72 67 29 0a 20 20 20 | nt-infix-set.suffix-obj.arg).... |
| 7b520 | 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 73 75 66 66 69 78 | .....(transient-infix-set.suffix |
| 7b540 | 2d 6f 62 6a 20 6e 69 6c 29 29 29 29 0a 20 20 3b 3b 20 55 70 64 61 74 65 20 74 68 65 20 61 63 74 | -obj.nil))))...;;.Update.the.act |
| 7b560 | 69 76 65 20 6d 65 6e 75 20 63 61 74 65 67 6f 72 79 20 61 6e 64 20 6b 65 79 20 69 6e 20 74 68 65 | ive.menu.category.and.key.in.the |
| 7b580 | 20 70 72 65 66 69 78 20 73 63 6f 70 65 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 61 6e | .prefix.scope...(plist-put.(tran |
| 7b5a0 | 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 63 61 74 65 67 6f 72 79 20 28 6f 72 65 66 20 6f 62 6a | sient-scope).:category.(oref.obj |
| 7b5c0 | 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 61 6e 73 69 | .category))...(plist-put.(transi |
| 7b5e0 | 65 6e 74 2d 73 63 6f 70 65 29 20 3a 6b 65 79 20 28 6f 72 65 66 20 6f 62 6a 20 6b 65 79 29 29 0a | ent-scope).:key.(oref.obj.key)). |
| 7b600 | 20 20 3b 3b 20 46 69 6e 61 6c 6c 79 20 73 65 74 20 74 68 65 20 22 76 61 6c 75 65 22 20 6f 66 20 | ..;;.Finally.set.the."value".of. |
| 7b620 | 74 68 65 20 63 61 74 65 67 6f 72 79 20 69 74 73 65 6c 66 0a 20 20 28 6f 73 65 74 20 6f 62 6a 20 | the.category.itself...(oset.obj. |
| 7b640 | 76 61 6c 75 65 20 76 61 6c 75 65 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 20 66 6f 72 20 67 | value.value))..;;.**.Class.for.g |
| 7b660 | 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 74 68 61 74 20 61 72 65 20 74 68 72 65 65 2d 77 61 79 20 | ptel.options.that.are.three-way. |
| 7b680 | 73 77 69 74 63 68 65 73 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 | switches..(defclass.gptel--switc |
| 7b6a0 | 68 65 73 20 28 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 64 69 | hes.(gptel-lisp-variable)...((di |
| 7b6c0 | 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d | splay-if-true.:initarg.:display- |
| 7b6e0 | 69 66 2d 74 72 75 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 54 72 75 65 22 29 0a 20 20 20 28 64 69 | if-true.:initform."True")....(di |
| 7b700 | 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 | splay-if-false.:initarg.:display |
| 7b720 | 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 46 61 6c 73 65 22 29 29 0a 20 20 | -if-false.:initform."False"))... |
| 7b740 | 22 42 6f 6f 6c 65 61 6e 20 6c 69 73 70 20 76 61 72 69 61 62 6c 65 20 63 6c 61 73 73 20 66 6f 72 | "Boolean.lisp.variable.class.for |
| 7b760 | 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | .gptel-transient.")..(cl-defmeth |
| 7b780 | 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a 20 67 70 | od.transient-infix-read.((obj.gp |
| 7b7a0 | 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 67 68 | tel--switches))..."Cycle.through |
| 7b7c0 | 20 74 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 20 73 77 69 74 63 68 65 73 | .the.mutually.exclusive.switches |
| 7b7e0 | 2e 22 0a 20 20 28 6e 6f 74 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 29 0a 0a 28 63 | ."...(not.(oref.obj.value)))..(c |
| 7b800 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c | l-defmethod.transient-format-val |
| 7b820 | 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 28 77 69 | ue.((obj.gptel--switches))...(wi |
| 7b840 | 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 | th-slots.(value.display-if-true. |
| 7b860 | 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 29 20 6f 62 6a 0a 20 20 20 20 20 20 28 66 6f 72 | display-if-false).obj.......(for |
| 7b880 | 6d 61 74 0a 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 25 73 29 22 20 27 66 | mat........(propertize."(%s)".'f |
| 7b8a0 | 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 20 20 | ace.'transient-delimiter)....... |
| 7b8c0 | 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 64 69 73 | .(concat.........(propertize.dis |
| 7b8e0 | 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | play-if-false................... |
| 7b900 | 20 20 27 66 61 63 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 | ..'face.(if.value.'transient-ina |
| 7b920 | 63 74 69 76 65 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 20 | ctive-value.'transient-value)).. |
| 7b940 | 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 7c 22 20 27 66 61 63 65 20 27 74 72 | .......(propertize."|".'face.'tr |
| 7b960 | 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 | ansient-delimiter).........(prop |
| 7b980 | 65 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 | ertize.display-if-true.......... |
| 7b9a0 | 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 61 6e | ...........'face.(if.value.'tran |
| 7b9c0 | 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- |
| 7b9e0 | 76 61 6c 75 65 29 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 43 6c 61 73 73 20 66 6f 72 20 67 70 74 | value))))))..;;.**.Class.for.gpt |
| 7ba00 | 65 6c 27 73 20 73 63 6f 70 65 20 6d 61 6e 61 67 65 6d 65 6e 74 2c 20 73 69 6e 67 6c 65 74 6f 6e | el's.scope.management,.singleton |
| 7ba20 | 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 20 28 67 70 74 65 6c 2d | ..(defclass.gptel--scope.(gptel- |
| 7ba40 | 2d 73 77 69 74 63 68 65 73 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 3a | -switches)...((display-if-true.: |
| 7ba60 | 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 |
| 7ba80 | 72 6d 20 22 62 75 66 66 65 72 22 29 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 | rm."buffer")....(display-if-fals |
| 7baa0 | 65 20 3a 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e | e.:initarg.:display-if-false.:in |
| 7bac0 | 69 74 66 6f 72 6d 20 22 67 6c 6f 62 61 6c 22 29 29 0a 20 20 22 53 69 6e 67 6c 65 74 6f 6e 20 6c | itform."global"))..."Singleton.l |
| 7bae0 | 69 73 70 20 76 61 72 69 61 62 6c 65 20 63 6c 61 73 73 20 66 6f 72 20 60 67 70 74 65 6c 2d 2d 73 | isp.variable.class.for.`gptel--s |
| 7bb00 | 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 27 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 | et-buffer-locally'...This.is.use |
| 7bb20 | 64 20 6f 6e 6c 79 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 | d.only.for.setting.this.variable |
| 7bb40 | 20 76 69 61 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 | .via.`gptel-menu'.")..(cl-defmet |
| 7bb60 | 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 72 65 61 64 20 28 28 6f 62 6a 20 67 | hod.transient-infix-read.((obj.g |
| 7bb80 | 70 74 65 6c 2d 2d 73 63 6f 70 65 29 29 0a 20 20 22 43 79 63 6c 65 20 74 68 72 6f 75 67 68 20 74 | ptel--scope))..."Cycle.through.t |
| 7bba0 | 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 65 20 73 77 69 74 63 68 65 73 2e 22 | he.mutually.exclusive.switches." |
| 7bbc0 | 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 29 20 6f 62 6a 0a 20 20 20 20 28 | ...(with-slots.(value).obj.....( |
| 7bbe0 | 70 63 61 73 65 20 76 61 6c 75 65 0a 20 20 20 20 20 20 28 27 74 20 28 6d 65 73 73 61 67 65 20 22 | pcase.value.......('t.(message." |
| 7bc00 | 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 65 74 20 66 6f 72 20 74 68 65 20 6e | Parameters.will.be.set.for.the.n |
| 7bc20 | 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 22 29 29 0a 20 20 20 20 20 20 28 27 6e 69 6c 20 | ext.request.only")).......('nil. |
| 7bc40 | 28 6d 65 73 73 61 67 65 20 22 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 65 74 | (message."Parameters.will.be.set |
| 7bc60 | 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 22 29 29 0a 20 20 20 20 20 20 28 31 20 28 6d 65 73 | .buffer-locally")).......(1.(mes |
| 7bc80 | 73 61 67 65 20 22 50 61 72 61 6d 65 74 65 72 73 20 77 69 6c 6c 20 62 65 20 73 65 74 20 67 6c 6f | sage."Parameters.will.be.set.glo |
| 7bca0 | 62 61 6c 6c 79 22 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 20 76 61 6c 75 65 20 28 27 74 20 31 | bally"))).....(pcase.value.('t.1 |
| 7bcc0 | 29 20 28 27 6e 69 6c 20 74 29 20 28 31 20 6e 69 6c 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | ).('nil.t).(1.nil))))..(cl-defme |
| 7bce0 | 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 | thod.transient-format-value.((ob |
| 7bd00 | 6a 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 29 29 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 | j.gptel--scope))...(with-slots.( |
| 7bd20 | 76 61 6c 75 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 20 64 69 73 70 6c 61 79 2d 69 66 | value.display-if-true.display-if |
| 7bd40 | 2d 66 61 6c 73 65 29 20 6f 62 6a 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 | -false).obj.......(format....... |
| 7bd60 | 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 25 73 29 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 | .(propertize."(%s)".'face.'trans |
| 7bd80 | 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 | ient-delimiter)........(concat.. |
| 7bda0 | 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 | .......(propertize.display-if-fa |
| 7bdc0 | 6c 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 | lse.....................'face.(i |
| 7bde0 | 66 20 28 6e 75 6c 6c 20 76 61 6c 75 65 29 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 | f.(null.value).'transient-value. |
| 7be00 | 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 | 'transient-inactive-value))..... |
| 7be20 | 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 7c 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 | ....(propertize."|".'face.'trans |
| 7be40 | 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 | ient-delimiter).........(propert |
| 7be60 | 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ize.display-if-true............. |
| 7be80 | 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 66 20 28 65 71 20 76 61 6c 75 65 20 74 29 20 27 | ........'face.(if.(eq.value.t).' |
| 7bea0 | 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 | transient-value.'transient-inact |
| 7bec0 | 69 76 65 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | ive-value)).........(propertize. |
| 7bee0 | 22 7c 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 65 72 29 0a | "|".'face.'transient-delimiter). |
| 7bf00 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 6f 6e 65 73 68 6f 74 22 20 27 66 | ........(propertize."oneshot".'f |
| 7bf20 | 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 6c | ace.....................(if.(eql |
| 7bf40 | 20 76 61 6c 75 65 20 31 29 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 61 6e | .value.1).'transient-value.'tran |
| 7bf60 | 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 29 29 0a 0a 28 63 6c 2d | sient-inactive-value))))))..(cl- |
| 7bf80 | 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 28 28 | defmethod.transient-infix-set.(( |
| 7bfa0 | 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 63 6f 70 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 6e 63 | obj.gptel--scope).value)...(func |
| 7bfc0 | 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 20 | all.(oref.obj.set-value)........ |
| 7bfe0 | 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 20 | ....(oref.obj.variable)......... |
| 7c000 | 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 29 29 0a 0a 3b 3b 20 | ...(oset.obj.value.value)))..;;. |
| 7c020 | 2a 2a 20 43 6c 61 73 73 20 66 6f 72 20 6d 61 6e 61 67 69 6e 67 20 67 70 74 65 6c 27 73 20 62 61 | **.Class.for.managing.gptel's.ba |
| 7c040 | 63 6b 65 6e 64 20 61 6e 64 20 6d 6f 64 65 6c 2c 20 73 69 6e 67 6c 65 74 6f 6e 0a 0a 28 64 65 66 | ckend.and.model,.singleton..(def |
| 7c060 | 63 6c 61 73 73 20 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 20 28 74 | class.gptel-provider-variable.(t |
| 7c080 | 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 62 61 63 6b | ransient-lisp-variable)...((back |
| 7c0a0 | 65 6e 64 20 20 20 20 20 20 20 3a 69 6e 69 74 61 72 67 20 3a 62 61 63 6b 65 6e 64 29 0a 20 20 20 | end.......:initarg.:backend).... |
| 7c0c0 | 28 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 62 61 63 6b 65 6e 64 | (backend-value.:initarg.:backend |
| 7c0e0 | 2d 76 61 6c 75 65 29 0a 20 20 20 28 61 6c 77 61 79 73 2d 72 65 61 64 20 3a 69 6e 69 74 66 6f 72 | -value)....(always-read.:initfor |
| 7c100 | 6d 20 74 29 0a 20 20 20 28 73 65 74 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 73 65 74 | m.t)....(set-value.:initarg.:set |
| 7c120 | 2d 76 61 6c 75 65 20 3a 69 6e 69 74 66 6f 72 6d 20 23 27 73 65 74 29 29 0a 20 20 22 43 6c 61 73 | -value.:initform.#'set))..."Clas |
| 7c140 | 73 20 75 73 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 73 2e 22 29 0a 0a 28 63 | s.used.for.gptel-backends.")..(c |
| 7c160 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c | l-defmethod.transient-format-val |
| 7c180 | 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 | ue.((obj.gptel-provider-variable |
| 7c1a0 | 29 29 0a 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 | ))...(propertize.(concat........ |
| 7c1c0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 | ........(gptel-backend-name..... |
| 7c1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 | ............(buffer-local-value. |
| 7c200 | 28 6f 72 65 66 20 6f 62 6a 20 62 61 63 6b 65 6e 64 29 20 74 72 61 6e 73 69 65 6e 74 2d 2d 6f 72 | (oref.obj.backend).transient--or |
| 7c220 | 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 29 29 20 22 3a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | iginal-buffer)).":"............. |
| 7c240 | 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 28 6f 72 65 66 20 6f 62 6a 20 | ...(gptel--model-name.(oref.obj. |
| 7c260 | 76 61 6c 75 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 | value)))...............'face.'tr |
| 7c280 | 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 | ansient-value))..(cl-defmethod.t |
| 7c2a0 | 72 61 6e 73 69 65 6e 74 2d 69 6e 66 69 78 2d 73 65 74 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 70 | ransient-infix-set.((obj.gptel-p |
| 7c2c0 | 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 70 63 61 73 | rovider-variable).value)...(pcas |
| 7c2e0 | 65 2d 6c 65 74 20 28 28 60 28 2c 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 20 2c 6d 6f 64 65 6c 2d | e-let.((`(,backend-value.,model- |
| 7c300 | 76 61 6c 75 65 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 | value).value)).....(funcall.(ore |
| 7c320 | 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | f.obj.set-value)..............(o |
| 7c340 | 72 65 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ref.obj.variable)..............( |
| 7c360 | 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 6d 6f 64 65 6c 2d 76 61 6c 75 65 29 0a 20 20 20 20 | oset.obj.value.model-value)..... |
| 7c380 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c | .........gptel--set-buffer-local |
| 7c3a0 | 6c 79 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 66 20 6f 62 6a 20 73 65 74 2d 76 | ly).....(funcall.(oref.obj.set-v |
| 7c3c0 | 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 62 61 63 | alue)..............(oref.obj.bac |
| 7c3e0 | 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 62 61 63 | kend)..............(oset.obj.bac |
| 7c400 | 6b 65 6e 64 2d 76 61 6c 75 65 20 62 61 63 6b 65 6e 64 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 | kend-value.backend-value)....... |
| 7c420 | 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 | .......gptel--set-buffer-locally |
| 7c440 | 29 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 3b 3b 20 2a 2a 20 43 | ))...(transient-setup))..;;.**.C |
| 7c460 | 6c 61 73 73 20 66 6f 72 20 69 6e 66 69 78 20 6f 70 74 69 6f 6e 73 20 77 69 74 68 20 69 6e 2d 62 | lass.for.infix.options.with.in-b |
| 7c480 | 75 66 66 65 72 20 6f 76 65 72 6c 61 79 20 64 69 73 70 6c 61 79 0a 0a 28 64 65 66 63 6c 61 73 73 | uffer.overlay.display..(defclass |
| 7c4a0 | 20 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 20 28 74 72 61 6e 73 69 65 6e | .gptel-option-overlaid.(transien |
| 7c4c0 | 74 2d 6f 70 74 69 6f 6e 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a 69 6e 69 74 61 | t-option)...((display-nil.:inita |
| 7c4e0 | 72 67 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 29 0a 20 20 20 28 6f 76 65 72 6c 61 79 20 3a 69 6e | rg.:display-nil)....(overlay.:in |
| 7c500 | 69 74 61 72 67 20 3a 6f 76 65 72 6c 61 79 29 29 0a 20 20 22 54 72 61 6e 73 69 65 6e 74 20 6f 70 | itarg.:overlay))..."Transient.op |
| 7c520 | 74 69 6f 6e 73 20 66 6f 72 20 6f 76 65 72 6c 61 79 73 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 | tions.for.overlays.displayed.in. |
| 7c540 | 74 68 65 20 77 6f 72 6b 69 6e 67 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | the.working.buffer.")..(cl-defme |
| 7c560 | 74 68 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 | thod.transient-format-value.((ob |
| 7c580 | 6a 20 67 70 74 65 6c 2d 6f 70 74 69 6f 6e 2d 6f 76 65 72 6c 61 69 64 29 29 0a 20 20 22 53 65 74 | j.gptel-option-overlaid))..."Set |
| 7c5a0 | 20 75 70 20 74 68 65 20 69 6e 2d 62 75 66 66 65 72 20 6f 76 65 72 6c 61 79 20 66 6f 72 20 61 64 | .up.the.in-buffer.overlay.for.ad |
| 7c5c0 | 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 63 74 69 76 65 2c 20 61 20 73 74 72 69 6e 67 2e 0a 0a 41 | ditional.directive,.a.string...A |
| 7c5e0 | 6c 73 6f 20 66 6f 72 6d 61 74 20 69 74 73 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 54 72 61 6e | lso.format.its.value.in.the.Tran |
| 7c600 | 73 69 65 6e 74 20 6d 65 6e 75 2e 22 0a 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 6f 72 65 | sient.menu."...(let.((value.(ore |
| 7c620 | 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 6f 76 20 20 20 20 28 6f 72 | f.obj.value)).........(ov....(or |
| 7c640 | 65 66 20 6f 62 6a 20 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 | ef.obj.overlay)).........(argume |
| 7c660 | 6e 74 20 28 6f 72 65 66 20 6f 62 6a 20 61 72 67 75 6d 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 | nt.(oref.obj.argument))).....;;. |
| 7c680 | 4d 61 6b 69 6e 67 20 61 6e 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e | Making.an.overlay.....(if.(or.(n |
| 7c6a0 | 6f 74 20 76 61 6c 75 65 29 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 76 61 6c 75 65 29 | ot.value).(string-empty-p.value) |
| 7c6c0 | 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6f 76 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c | ).........(when.ov.(delete-overl |
| 7c6e0 | 61 79 20 6f 76 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | ay.ov)).......(with-current-buff |
| 7c700 | 65 72 20 74 72 61 6e 73 69 65 6e 74 2d 2d 6f 72 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 0a 20 20 | er.transient--original-buffer... |
| 7c720 | 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 6f 76 65 72 6c 61 79 20 28 67 70 74 65 6c 2d 2d | ......(oset.obj.overlay.(gptel-- |
| 7c740 | 69 6e 73 74 72 75 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 76 61 6c 75 65 20 | instructions-make-overlay.value. |
| 7c760 | 6f 76 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 6f 76 2d 63 6c 65 61 72 2d 68 | ov))).......(letrec.((ov-clear-h |
| 7c780 | 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 | ook.................(lambda.().( |
| 7c7a0 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 20 28 6f 72 65 66 20 6f 62 6a 20 6f 76 65 72 6c 61 79 | when-let*.((ov.(oref.obj.overlay |
| 7c7c0 | 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 | )).............................. |
| 7c7e0 | 20 20 20 20 20 28 28 6f 76 65 72 6c 61 79 70 20 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | .....((overlayp.ov)))........... |
| 7c800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 74 72 61 6e | ..............(remove-hook.'tran |
| 7c820 | 73 69 65 6e 74 2d 65 78 69 74 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sient-exit-hook................. |
| 7c840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 76 2d 63 6c 65 61 72 2d 68 6f | .....................ov-clear-ho |
| 7c860 | 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c | ok).........................(del |
| 7c880 | 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 | ete-overlay.ov))))).........(add |
| 7c8a0 | 2d 68 6f 6f 6b 20 27 74 72 61 6e 73 69 65 6e 74 2d 65 78 69 74 2d 68 6f 6f 6b 20 6f 76 2d 63 6c | -hook.'transient-exit-hook.ov-cl |
| 7c8c0 | 65 61 72 2d 68 6f 6f 6b 29 29 29 0a 20 20 20 20 3b 3b 20 55 70 64 61 74 69 6e 67 20 74 72 61 6e | ear-hook))).....;;.Updating.tran |
| 7c8e0 | 73 69 65 6e 74 20 6d 65 6e 75 20 64 69 73 70 6c 61 79 0a 20 20 20 20 28 69 66 20 76 61 6c 75 65 | sient.menu.display.....(if.value |
| 7c900 | 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 61 72 67 | .........(propertize.(concat.arg |
| 7c920 | 75 6d 65 6e 74 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 | ument.(truncate-string-to-width. |
| 7c940 | 76 61 6c 75 65 20 33 35 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | value.35.nil.nil.t))............ |
| 7c960 | 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 | .........'face.'transient-value) |
| 7c980 | 0a 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | .......(propertize........(conca |
| 7c9a0 | 74 20 22 28 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6f 72 65 66 20 6f 62 6a 20 64 69 73 | t."(".(symbol-name.(oref.obj.dis |
| 7c9c0 | 70 6c 61 79 2d 6e 69 6c 29 29 20 22 29 22 29 0a 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 | play-nil)).")")........'face.'tr |
| 7c9e0 | 61 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a 0c 0a 3b 3b | ansient-inactive-value))))....;; |
| 7ca00 | 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 50 72 65 66 69 78 65 73 0a 0a 3b 3b 3b 23 23 23 61 75 74 | .*.Transient.Prefixes..;;;###aut |
| 7ca20 | 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 20 22 67 70 74 | oload.(autoload.'gptel-menu."gpt |
| 7ca40 | 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d | el-transient".nil.t).(transient- |
| 7ca60 | 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 6d 65 6e 75 20 28 29 0a 20 20 22 43 | define-prefix.gptel-menu.()..."C |
| 7ca80 | 68 61 6e 67 65 20 70 61 72 61 6d 65 74 65 72 73 20 6f 66 20 70 72 6f 6d 70 74 20 74 6f 20 73 65 | hange.parameters.of.prompt.to.se |
| 7caa0 | 6e 64 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 22 0a 20 20 3a 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 | nd.to.the.LLM."...:incompatible. |
| 7cac0 | 27 28 28 22 6d 22 20 22 79 22 20 22 69 22 29 20 28 22 65 22 20 22 67 22 20 22 62 22 20 22 6b 22 | '(("m"."y"."i").("e"."g"."b"."k" |
| 7cae0 | 29 29 0a 20 20 3b 3b 20 3a 76 61 6c 75 65 20 28 6c 69 73 74 20 28 63 6f 6e 63 61 74 20 22 62 22 | ))...;;.:value.(list.(concat."b" |
| 7cb00 | 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e | .(buffer-name)))...[:description |
| 7cb20 | 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d 66 6f 72 6d 61 74 0a 20 20 20 | .gptel-system-prompt--format.... |
| 7cb40 | 5b 22 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6e 6f 74 20 28 67 70 74 | ["".....:if.(lambda.().(not.(gpt |
| 7cb60 | 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 29 29 | el--model-capable-p.'nosystem))) |
| 7cb80 | 0a 20 20 20 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 22 0a 20 20 20 20 28 22 73 22 20 22 53 65 | ....."Instructions".....("s"."Se |
| 7cba0 | 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 | t.system.message".gptel-system-p |
| 7cbc0 | 72 6f 6d 70 74 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d | rompt.:transient.t).....(gptel-- |
| 7cbe0 | 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 74 69 76 65 29 5d 0a 20 20 20 5b 3a 70 61 64 2d 6b | infix-add-directive)]....[:pad-k |
| 7cc00 | 65 79 73 20 74 20 22 22 0a 20 20 20 20 28 3a 69 6e 66 6f 20 23 27 67 70 74 65 6c 2d 2d 64 65 73 | eys.t."".....(:info.#'gptel--des |
| 7cc20 | 63 72 69 62 65 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 3a 66 61 63 65 20 74 | cribe-infix-context......:face.t |
| 7cc40 | 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 20 3a 66 6f 72 6d 61 74 20 22 25 64 22 29 0a 20 | ransient-heading.:format."%d").. |
| 7cc60 | 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 75 72 | ...(gptel--infix-context-add-cur |
| 7cc80 | 72 65 6e 74 2d 6b 69 6c 6c 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e | rent-kill).....(gptel--infix-con |
| 7cca0 | 74 65 78 74 2d 61 64 64 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 | text-add-region).....(gptel--inf |
| 7ccc0 | 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 67 70 74 65 | ix-context-add-buffer).....(gpte |
| 7cce0 | 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 20 28 | l--infix-context-add-file).....( |
| 7cd00 | 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 29 | gptel--infix-context-remove-all) |
| 7cd20 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 | .....(gptel--suffix-context-buff |
| 7cd40 | 65 72 29 5d 0a 20 20 20 5b 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 3a 69 66 20 28 6c 61 | er)]....[:pad-keys.t.....:if.(la |
| 7cd60 | 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 0a 20 20 20 | mbda.().(and.gptel-use-tools.... |
| 7cd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e | ................(or.gptel--known |
| 7cda0 | 2d 74 6f 6f 6c 73 20 28 66 65 61 74 75 72 65 70 20 27 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 | -tools.(featurep.'gptel-integrat |
| 7cdc0 | 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 22 22 20 28 3a 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 28 | ions))))....."".(:info.........( |
| 7cde0 | 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 | lambda.()...........(concat..... |
| 7ce00 | 20 20 20 20 20 20 20 22 54 6f 6f 6c 73 22 20 28 61 6e 64 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a | ......."Tools".(and.gptel-tools. |
| 7ce20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 | ........................(concat. |
| 7ce40 | 22 20 28 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 25 64 20 73 65 6c | ".(".(propertize.(format."%d.sel |
| 7ce60 | 65 63 74 65 64 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ected".......................... |
| 7ce80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7cea0 | 28 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | (length.gptel-tools))........... |
| 7cec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 7cee0 | 20 20 20 20 20 20 20 27 66 61 63 65 20 27 77 61 72 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 | .......'face.'warning).......... |
| 7cf00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 29 29 29 0a 20 | .......................")")))).. |
| 7cf20 | 20 20 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 25 64 22 20 3a 66 61 63 65 20 74 72 61 6e 73 69 | .......:format."%d".:face.transi |
| 7cf40 | 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 28 22 74 22 20 22 53 65 6c 65 63 74 20 74 6f | ent-heading).....("t"."Select.to |
| 7cf60 | 6f 6c 73 22 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 | ols".gptel-tools.:transient.t).. |
| 7cf80 | 20 20 20 28 22 54 22 20 22 43 6f 6e 74 69 6e 75 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 22 0a 20 20 | ...("T"."Continue.tool.calls"... |
| 7cfa0 | 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 20 28 67 70 74 | ...(lambda.().(interactive).(gpt |
| 7cfc0 | 65 6c 2d 2d 68 61 6e 64 6c 65 2d 74 6f 6f 6c 2d 75 73 65 20 67 70 74 65 6c 2d 2d 66 73 6d 2d 6c | el--handle-tool-use.gptel--fsm-l |
| 7cfe0 | 61 73 74 29 29 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 | ast))......:if.(lambda.().(and.g |
| 7d000 | 70 74 65 6c 2d 2d 66 73 6d 2d 6c 61 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel--fsm-last.................. |
| 7d020 | 20 20 20 28 65 71 20 28 67 70 74 65 6c 2d 66 73 6d 2d 73 74 61 74 65 20 67 70 74 65 6c 2d 2d 66 | ...(eq.(gptel-fsm-state.gptel--f |
| 7d040 | 73 6d 2d 6c 61 73 74 29 20 27 54 4f 4f 4c 29 29 29 29 5d 5d 0a 20 20 5b 5b 28 67 70 74 65 6c 2d | sm-last).'TOOL))))]]...[[(gptel- |
| 7d060 | 2d 70 72 65 73 65 74 0a 20 20 20 20 20 3a 6b 65 79 20 22 40 22 20 3a 66 6f 72 6d 61 74 20 22 25 | -preset......:key."@".:format."% |
| 7d080 | 64 22 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 28 6c 61 6d 62 64 | d"......:description......(lambd |
| 7d0a0 | 61 20 28 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 | a.()........(concat.(propertize. |
| 7d0c0 | 22 52 65 71 75 65 73 74 20 50 61 72 61 6d 65 74 65 72 73 22 20 27 66 61 63 65 20 27 74 72 61 6e | "Request.Parameters".'face.'tran |
| 7d0e0 | 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 28 67 | sient-heading)................(g |
| 7d100 | 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 65 74 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 | ptel--format-preset-string)))).. |
| 7d120 | 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 | ...(gptel--infix-variable-scope) |
| 7d140 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 70 72 6f 76 69 64 65 72 29 0a 20 20 20 | .....(gptel--infix-provider).... |
| 7d160 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 20 20 20 20 28 | .(gptel--infix-max-tokens).....( |
| 7d180 | 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e | gptel--infix-num-messages-to-sen |
| 7d1a0 | 64 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 65 6c | d......:if.(lambda.().(and.gptel |
| 7d1c0 | 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -expert-commands................ |
| 7d1e0 | 20 20 20 20 20 28 6f 72 20 67 70 74 65 6c 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d | .....(or.gptel-mode.gptel-track- |
| 7d200 | 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 | response)))).....(gptel--infix-t |
| 7d220 | 65 6d 70 65 72 61 74 75 72 65 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d | emperature.:if.(lambda.().gptel- |
| 7d240 | 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e | expert-commands)).....(gptel--in |
| 7d260 | 66 69 78 2d 75 73 65 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 | fix-use-context).....(gptel--inf |
| 7d280 | 69 78 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 28 67 70 74 65 6c | ix-include-reasoning).....(gptel |
| 7d2a0 | 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 | --infix-use-tools).....(gptel--i |
| 7d2c0 | 6e 66 69 78 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 | nfix-track-response......:if.(la |
| 7d2e0 | 6d 62 64 61 20 28 29 20 28 61 6e 64 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e | mbda.().(and.gptel-expert-comman |
| 7d300 | 64 73 20 28 6e 6f 74 20 67 70 74 65 6c 2d 6d 6f 64 65 29 29 29 29 0a 20 20 20 20 28 67 70 74 65 | ds.(not.gptel-mode)))).....(gpte |
| 7d320 | 6c 2d 2d 69 6e 66 69 78 2d 74 72 61 63 6b 2d 6d 65 64 69 61 20 3a 69 66 20 28 6c 61 6d 62 64 61 | l--infix-track-media.:if.(lambda |
| 7d340 | 20 28 29 20 67 70 74 65 6c 2d 6d 6f 64 65 29 29 5d 0a 20 20 20 5b 22 20 3c 50 72 6f 6d 70 74 20 | .().gptel-mode))]....[".<Prompt. |
| 7d360 | 66 72 6f 6d 22 0a 20 20 20 20 28 22 6d 22 20 22 4d 69 6e 69 62 75 66 66 65 72 20 69 6e 73 74 65 | from".....("m"."Minibuffer.inste |
| 7d380 | 61 64 22 20 22 6d 22 29 0a 20 20 20 20 28 22 79 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 20 69 6e 73 | ad"."m").....("y"."Kill-ring.ins |
| 7d3a0 | 74 65 61 64 22 20 22 79 22 29 0a 20 20 20 20 22 22 0a 20 20 20 20 28 22 69 22 20 22 52 65 73 70 | tead"."y")....."".....("i"."Resp |
| 7d3c0 | 6f 6e 64 20 69 6e 20 70 6c 61 63 65 22 20 22 69 22 29 5d 0a 20 20 20 5b 22 20 3e 52 65 73 70 6f | ond.in.place"."i")]....[".>Respo |
| 7d3e0 | 6e 73 65 20 74 6f 22 0a 20 20 20 20 28 22 65 22 20 22 45 63 68 6f 20 61 72 65 61 22 20 22 65 22 | nse.to".....("e"."Echo.area"."e" |
| 7d400 | 29 0a 20 20 20 20 28 22 62 22 20 22 4f 74 68 65 72 20 62 75 66 66 65 72 22 20 22 62 22 0a 20 20 | ).....("b"."Other.buffer"."b"... |
| 7d420 | 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 20 20 | ...:class.transient-option...... |
| 7d440 | 3a 70 72 6f 6d 70 74 20 22 4f 75 74 70 75 74 20 74 6f 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 | :prompt."Output.to.buffer:.".... |
| 7d460 | 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 | ..:reader.(lambda.(prompt._._his |
| 7d480 | 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 | tory)................(read-buffe |
| 7d4a0 | 72 20 70 72 6f 6d 70 74 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 6f 74 68 65 72 2d 62 75 66 | r.prompt.(buffer-name.(other-buf |
| 7d4c0 | 66 65 72 29 29 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 22 67 22 20 22 67 70 74 65 6c 20 73 65 73 | fer)).nil))).....("g"."gptel.ses |
| 7d4e0 | 73 69 6f 6e 22 20 22 67 22 0a 20 20 20 20 20 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d | sion"."g"......:class.transient- |
| 7d500 | 6f 70 74 69 6f 6e 0a 20 20 20 20 20 3a 70 72 6f 6d 70 74 20 22 45 78 69 73 74 69 6e 67 20 6f 72 | option......:prompt."Existing.or |
| 7d520 | 20 6e 65 77 20 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 3a 20 22 0a 20 20 20 20 20 3a 72 65 61 64 | .new.gptel.session:."......:read |
| 7d540 | 65 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 74 6f | er......(lambda.(prompt._._histo |
| 7d560 | 72 79 29 0a 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 | ry)........(read-buffer......... |
| 7d580 | 70 72 6f 6d 70 74 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 | prompt.(generate-new-buffer-name |
| 7d5a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 67 70 | .................(concat."*".(gp |
| 7d5c0 | 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 | tel-backend-name.gptel-backend). |
| 7d5e0 | 22 2a 22 29 29 0a 20 20 20 20 20 20 20 20 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e | "*")).........nil.(lambda.(buf-n |
| 7d600 | 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 62 75 | ame)...............(if.(consp.bu |
| 7d620 | 66 2d 6e 61 6d 65 29 20 28 73 65 74 71 20 62 75 66 2d 6e 61 6d 65 20 28 63 61 72 20 62 75 66 2d | f-name).(setq.buf-name.(car.buf- |
| 7d640 | 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 | name)))...............(let.((buf |
| 7d660 | 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 | .(get-buffer.buf-name)))........ |
| 7d680 | 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 | .........(and.(buffer-local-valu |
| 7d6a0 | 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.'gptel-mode.buf).............. |
| 7d6c0 | 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | ........(not.(eq.(current-buffer |
| 7d6e0 | 29 20 62 75 66 29 29 29 29 29 29 29 29 0a 20 20 20 20 28 22 6b 22 20 22 4b 69 6c 6c 2d 72 69 6e | ).buf)))))))).....("k"."Kill-rin |
| 7d700 | 67 22 20 22 6b 22 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 | g"."k")]]...[[:description.(lamb |
| 7d720 | 64 61 20 28 29 20 28 63 6f 6e 63 61 74 20 28 61 6e 64 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | da.().(concat.(and.gptel--rewrit |
| 7d740 | 65 2d 6f 76 65 72 6c 61 79 73 20 22 43 6f 6e 74 69 6e 75 65 20 22 29 0a 20 20 20 20 20 20 20 20 | e-overlays."Continue.")......... |
| 7d760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 77 72 69 74 65 22 | ......................."Rewrite" |
| 7d780 | 29 29 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 75 73 65 2d 72 | )).....:if.(lambda.().(or.(use-r |
| 7d7a0 | 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 | egion-p)...................(and. |
| 7d7c0 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 0a 20 20 20 20 20 20 20 20 | gptel--rewrite-overlays......... |
| 7d7e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 73 | ...............(gptel--rewrite-s |
| 7d800 | 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 29 29 29 29 0a 20 20 20 20 28 22 72 22 0a 20 20 | anitize-overlays)))).....("r"... |
| 7d820 | 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 | ...(lambda.().(if.(get-char-prop |
| 7d840 | 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 | erty.(point).'gptel-rewrite).... |
| 7d860 | 20 20 20 20 20 20 20 20 20 20 20 20 22 49 74 65 72 61 74 65 22 20 22 52 65 77 72 69 74 65 22 29 | ............"Iterate"."Rewrite") |
| 7d880 | 29 0a 20 20 20 20 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 5d 0a 20 20 20 5b 22 54 77 65 61 | )......gptel-rewrite)]....["Twea |
| 7d8a0 | 6b 20 52 65 73 70 6f 6e 73 65 22 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e | k.Response".:if.gptel--in-respon |
| 7d8c0 | 73 65 2d 70 20 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 28 22 53 50 43 22 20 22 4d 61 72 | se-p.:pad-keys.t.....("SPC"."Mar |
| 7d8e0 | 6b 22 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 22 4d | k".gptel--mark-response).....("M |
| 7d900 | 2d 52 45 54 22 20 22 52 65 67 65 6e 65 72 61 74 65 22 20 67 70 74 65 6c 2d 2d 72 65 67 65 6e 65 | -RET"."Regenerate".gptel--regene |
| 7d920 | 72 61 74 65 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 0a 20 | rate.:if.gptel--in-response-p).. |
| 7d940 | 20 20 20 28 22 50 22 20 22 50 72 65 76 69 6f 75 73 20 76 61 72 69 61 6e 74 22 20 67 70 74 65 6c | ...("P"."Previous.variant".gptel |
| 7d960 | 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 0a 20 20 20 20 20 3a 69 66 20 67 70 74 65 | --previous-variant......:if.gpte |
| 7d980 | 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 0a 20 20 20 20 20 3a 74 | l--at-response-history-p......:t |
| 7d9a0 | 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 22 4e 22 20 22 4e 65 78 74 20 76 61 72 69 61 | ransient.t).....("N"."Next.varia |
| 7d9c0 | 6e 74 22 20 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 0a 20 20 20 20 | nt".gptel--previous-variant..... |
| 7d9e0 | 20 3a 69 66 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d | .:if.gptel--at-response-history- |
| 7da00 | 70 0a 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 22 45 22 20 22 45 | p......:transient.t).....("E"."E |
| 7da20 | 64 69 66 66 20 70 72 65 76 69 6f 75 73 22 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 0a 20 20 20 20 | diff.previous".gptel--ediff..... |
| 7da40 | 20 3a 69 66 20 67 70 74 65 6c 2d 2d 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d | .:if.gptel--at-response-history- |
| 7da60 | 70 29 5d 0a 20 20 20 5b 22 44 72 79 20 52 75 6e 22 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 | p)]....["Dry.Run".:if.(lambda.() |
| 7da80 | 20 28 6f 72 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 65 6c 2d 65 78 70 65 72 | .(or.gptel-log-level.gptel-exper |
| 7daa0 | 74 2d 63 6f 6d 6d 61 6e 64 73 29 29 0a 20 20 20 20 28 22 49 22 20 22 49 6e 73 70 65 63 74 20 71 | t-commands)).....("I"."Inspect.q |
| 7dac0 | 75 65 72 79 20 28 4c 69 73 70 29 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 | uery.(Lisp)"......(lambda.().... |
| 7dae0 | 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 68 65 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c | ...."Inspect.the.query.that.will |
| 7db00 | 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 6c 69 73 70 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 | .be.sent.as.a.lisp.object."..... |
| 7db20 | 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d | ...(interactive)........(gptel-- |
| 7db40 | 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 | sanitize-model)........(gptel--i |
| 7db60 | 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 | nspect-query.........(gptel--suf |
| 7db80 | 66 69 78 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 72 61 | fix-send..........(cons."I".(tra |
| 7dba0 | 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f | nsient-args.transient-current-co |
| 7dbc0 | 6d 6d 61 6e 64 29 29 29 29 29 29 0a 20 20 20 20 28 22 4a 22 20 22 49 6e 73 70 65 63 74 20 71 75 | mmand)))))).....("J"."Inspect.qu |
| 7dbe0 | 65 72 79 20 28 4a 53 4f 4e 29 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 | ery.(JSON)"......(lambda.()..... |
| 7dc00 | 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. |
| 7dc20 | 62 65 20 73 65 6e 74 20 61 73 20 61 20 4a 53 4f 4e 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 | be.sent.as.a.JSON.object."...... |
| 7dc40 | 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 |
| 7dc60 | 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 |
| 7dc80 | 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 |
| 7dca0 | 69 78 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 22 49 22 20 28 74 72 61 6e | ix-send..........(cons."I".(tran |
| 7dcc0 | 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d | sient-args.transient-current-com |
| 7dce0 | 6d 61 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 27 6a 73 6f 6e 29 29 29 5d 0a 20 20 20 5b 22 4c | mand))).........'json)))]....["L |
| 7dd00 | 6f 67 67 69 6e 67 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 67 | ogging".....:if.(lambda.().(or.g |
| 7dd20 | 70 74 65 6c 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 | ptel-log-level.gptel-expert-comm |
| 7dd40 | 61 6e 64 73 29 29 0a 20 20 20 20 28 22 2d 6c 22 20 22 4c 6f 67 20 6c 65 76 65 6c 22 20 22 2d 6c | ands)).....("-l"."Log.level"."-l |
| 7dd60 | 22 0a 20 20 20 20 20 3a 63 6c 61 73 73 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c | "......:class.gptel-lisp-variabl |
| 7dd80 | 65 0a 20 20 20 20 20 3a 76 61 72 69 61 62 6c 65 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c | e......:variable.gptel-log-level |
| 7dda0 | 0a 20 20 20 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 | ......:set-value.gptel--set-with |
| 7ddc0 | 2d 73 63 6f 70 65 0a 20 20 20 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 4f 66 66 22 0a 20 | -scope......:display-nil."Off".. |
| 7dde0 | 20 20 20 20 3a 70 72 6f 6d 70 74 20 22 4c 6f 67 20 6c 65 76 65 6c 3a 20 22 0a 20 20 20 20 20 3a | ....:prompt."Log.level:."......: |
| 7de00 | 72 65 61 64 65 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 29 | reader......(lambda.(prompt._._) |
| 7de20 | 0a 20 20 20 20 20 20 20 22 4d 61 6e 61 67 65 20 67 70 74 65 6c 27 73 20 6c 6f 67 67 69 6e 67 2e | ........"Manage.gptel's.logging. |
| 7de40 | 22 0a 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 28 63 6f 6d 70 6c 65 74 69 6e | "........(let.((state.(completin |
| 7de60 | 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d | g-read......................prom |
| 7de80 | 70 74 20 27 28 22 6f 66 66 22 20 22 69 6e 66 6f 22 20 22 64 65 62 75 67 22 29 20 6e 69 6c 20 74 | pt.'("off"."info"."debug").nil.t |
| 7dea0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4c 6f 67 20 6c 65 76 65 6c | )))..........(message."Log.level |
| 7dec0 | 20 73 65 74 20 74 6f 20 25 73 22 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 | .set.to.%s".state)..........(if. |
| 7dee0 | 28 73 74 72 69 6e 67 3d 20 73 74 61 74 65 20 22 6f 66 66 22 29 20 6e 69 6c 20 28 69 6e 74 65 72 | (string=.state."off").nil.(inter |
| 7df00 | 6e 20 73 74 61 74 65 29 29 29 29 29 0a 20 20 20 20 28 22 4c 22 20 22 49 6e 73 70 65 63 74 20 4c | n.state))))).....("L"."Inspect.L |
| 7df20 | 6f 67 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 | og"......(lambda.().(interactive |
| 7df40 | 29 0a 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 | )........(pop-to-buffer.(get-buf |
| 7df60 | 66 65 72 2d 63 72 65 61 74 65 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d | fer-create.gptel--log-buffer-nam |
| 7df80 | 65 29 29 29 0a 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b 20 25 64 22 29 5d 5d 0a 20 | e)))......:format."..%k.%d")]].. |
| 7dfa0 | 20 5b 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 29 5d 0a 20 20 28 69 6e 74 65 72 | .[(gptel--suffix-send)]...(inter |
| 7dfc0 | 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c | active)...(gptel--sanitize-model |
| 7dfe0 | 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 6d 65 6e 75 | )...(transient-setup.'gptel-menu |
| 7e000 | 29 29 0a 0a 3b 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 65 74 74 69 6e 67 20 74 68 65 | ))..;;.**.Prefix.for.setting.the |
| 7e020 | 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 2e 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 | .system.prompt...(defun.gptel--s |
| 7e040 | 65 74 75 70 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 20 28 73 79 6d 20 6d 73 67 20 26 6f 70 | etup-directive-menu.(sym.msg.&op |
| 7e060 | 74 69 6f 6e 61 6c 20 65 78 74 65 72 6e 61 6c 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 | tional.external)..."Return.a.lis |
| 7e080 | 74 20 6f 66 20 74 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 20 64 65 66 69 6e 69 74 69 6f 6e 73 | t.of.transient.infix.definitions |
| 7e0a0 | 20 66 6f 72 20 73 65 74 74 69 6e 67 20 67 70 74 65 6c 0a 64 69 72 65 63 74 69 76 65 73 2e 0a 0a | .for.setting.gptel.directives... |
| 7e0c0 | 53 59 4d 20 69 73 20 74 68 65 20 73 79 6d 62 6f 6c 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 | SYM.is.the.symbol.whose.value.is |
| 7e0e0 | 20 73 65 74 20 74 6f 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 64 69 72 65 63 74 69 76 65 2e 2e | .set.to.the.selected.directive.. |
| 7e100 | 0a 4d 53 47 20 69 73 20 74 68 65 20 6d 65 61 6e 69 6e 67 20 6f 66 20 73 79 6d 62 6f 6c 2c 20 75 | .MSG.is.the.meaning.of.symbol,.u |
| 7e120 | 73 65 64 20 77 68 65 6e 20 6d 65 73 73 61 67 69 6e 67 2e 0a 49 66 20 45 58 54 45 52 4e 41 4c 20 | sed.when.messaging..If.EXTERNAL. |
| 7e140 | 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 63 6c 75 64 65 20 65 78 74 65 72 6e 61 6c 20 73 6f 75 | is.non-nil,.include.external.sou |
| 7e160 | 72 63 65 73 20 6f 66 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 | rces.of.directives."...(cl-loop. |
| 7e180 | 66 6f 72 20 28 74 79 70 65 20 2e 20 70 72 6f 6d 70 74 29 20 69 6e 20 67 70 74 65 6c 2d 64 69 72 | for.(type...prompt).in.gptel-dir |
| 7e1a0 | 65 63 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 63 6c 61 73 | ectives............;;.Avoid.clas |
| 7e1c0 | 68 65 73 20 77 69 74 68 20 74 68 65 20 63 75 73 74 6f 6d 20 64 69 72 65 63 74 69 76 65 20 6b 65 | hes.with.the.custom.directive.ke |
| 7e1e0 | 79 0a 20 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 | y............with.unused-keys.=. |
| 7e200 | 28 64 65 6c 65 74 65 20 3f 73 20 28 6e 63 6f 6e 63 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e | (delete.?s.(nconc.(number-sequen |
| 7e220 | 63 65 20 3f 61 20 3f 7a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce.?a.?z)....................... |
| 7e240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 | ..........................(numbe |
| 7e260 | 72 2d 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 77 | r-sequence.?0.?9)))............w |
| 7e280 | 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 20 20 | ith.width.=.(window-width)...... |
| 7e2a0 | 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 74 79 | ......for.name.=.(symbol-name.ty |
| 7e2c0 | 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 66 69 | pe)............for.key.=.(seq-fi |
| 7e2e0 | 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 64 2d | nd.(lambda.(k).(member.k.unused- |
| 7e300 | 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 6b 65 | keys)).name.(seq-first.unused-ke |
| 7e320 | 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 64 2d | ys))............do.(setq.unused- |
| 7e340 | 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 0a 20 | keys.(delete.key.unused-keys)).. |
| 7e360 | 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 61 72 | ..........;;.The.explicit.declar |
| 7e380 | 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 6f 2d | ation.":transient.transient--do- |
| 7e3a0 | 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 65 61 | return".here............;;.appea |
| 7e3c0 | 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 74 20 | rs.to.be.required.for.Transient. |
| 7e3e0 | 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 65 0a | v0.5.and.up...Without.it,.these. |
| 7e400 | 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 75 66 | ...........;;.are.treated.as.suf |
| 7e420 | 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 74 65 | fixes.when.invoking.`gptel-syste |
| 7e440 | 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 20 3b | m-prompt'.directly,............; |
| 7e460 | 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 67 68 | ;.and.infixes.when.going.through |
| 7e480 | 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 4f 44 | .`gptel-menu'.............;;.TOD |
| 7e4a0 | 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 6e 74 | O:.Raise.an.issue.with.Transient |
| 7e4c0 | 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 20 20 | .............collect............ |
| 7e4e0 | 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 65 79 | (list.(key-description.(list.key |
| 7e500 | 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 61 70 | ))..................(concat.(cap |
| 7e520 | 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 20 20 | italize.name)."."............... |
| 7e540 | 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 73 70 | ...........(propertize.".".'disp |
| 7e560 | 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 20 20 | lay.'(space.:align-to.20))...... |
| 7e580 | 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 65 0a | ....................(propertize. |
| 7e5a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 | ..........................(conca |
| 7e5c0 | 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 76 65 | t."(".(gptel--describe-directive |
| 7e5e0 | 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 20 20 | .prompt.(-.width.30)).")")...... |
| 7e600 | 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 61 64 | .....................'face.'shad |
| 7e620 | 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 20 28 | ow))..................`(lambda.( |
| 7e640 | 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 20 20 | ).(interactive)................. |
| 7e660 | 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 70 74 | ....(message."%s:.%s".,msg.,(gpt |
| 7e680 | 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 31 30 | el--describe-directive.prompt.10 |
| 7e6a0 | 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 20 28 | 0."....")).....................( |
| 7e6c0 | 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 70 72 | gptel--set-with-scope.',sym.',pr |
| 7e6e0 | 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 29 29 | ompt.gptel--set-buffer-locally)) |
| 7e700 | 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 6e 74 | ...........:transient.'transient |
| 7e720 | 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 72 6f | --do-return)............into.pro |
| 7e740 | 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 79 20 | mpt-suffixes............finally. |
| 7e760 | 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 20 20 | return............(nconc........ |
| 7e780 | 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 20 20 | .....prompt-suffixes............ |
| 7e7a0 | 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 20 20 | .(list.(list."DEL"."None"....... |
| 7e7c0 | 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 28 69 | ..................`(lambda.().(i |
| 7e7e0 | 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nteractive)..................... |
| 7e800 | 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 67 29 | .......(message."%s.unset".,msg) |
| 7e820 | 0a 20 20 20 20 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 |
| 7e840 | 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 70 74 | el--set-with-scope.',sym.nil.gpt |
| 7e860 | 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 20 20 | el--set-buffer-locally))........ |
| 7e880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 | .................:transient.'tra |
| 7e8a0 | 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 20 20 | nsient--do-return))............. |
| 7e8c0 | 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 20 28 | (and.external..................( |
| 7e8e0 | 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 75 72 | list.(list."SPC"."Pick.crowdsour |
| 7e900 | 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 20 20 | ced.prompt"..................... |
| 7e920 | 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 72 63 | .........'gptel--read-crowdsourc |
| 7e940 | 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 54 45 | ed-prompt................;;.NOTE |
| 7e960 | 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 20 77 | :.Quitting.the.completing.read.w |
| 7e980 | 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 3b 20 | hen.picking.a................;;. |
| 7e9a0 | 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 20 74 | crowdsourced.prompt.will.cause.t |
| 7e9c0 | 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 20 20 | he.transient.to.exit............ |
| 7e9e0 | 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 20 74 | ....;;.instead.of.returning.to.t |
| 7ea00 | 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 20 20 | he.system.prompt.menu........... |
| 7ea20 | 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 20 27 | ....................:transient.' |
| 7ea40 | 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 23 23 | transient--do-exit))))))..;;;### |
| 7ea60 | 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 65 6d | autoload.(autoload.'gptel-system |
| 7ea80 | 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 74 29 | -prompt."gptel-transient".nil.t) |
| 7eaa0 | 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 6c 2d | .(transient-define-prefix.gptel- |
| 7eac0 | 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 4d 20 | system-prompt.()..."Set.the.LLM. |
| 7eae0 | 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 74 69 | system.message.for.LLM.interacti |
| 7eb00 | 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 73 74 | ons...The.\"system.message\".est |
| 7eb20 | 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 61 74 | ablishes.directives.for.the.chat |
| 7eb40 | 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 76 69 | .session.and.modifies.the.behavi |
| 7eb60 | 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 66 0a | or.of.the.LLM..Some.examples.of. |
| 7eb80 | 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 20 68 | system.prompts.are:..You.are.a.h |
| 7eba0 | 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 6e 63 | elpful.assistant..Answer.as.conc |
| 7ebc0 | 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 77 69 | isely.as.possible..Reply.only.wi |
| 7ebe0 | 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 2e 0a | th.shell.commands.and.no.prose.. |
| 7ec00 | 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 76 65 | You.are.a.poet..Reply.only.in.ve |
| 7ec20 | 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 73 73 | rse...More.extensive.system.mess |
| 7ec40 | 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 63 20 | ages.can.be.useful.for.specific. |
| 7ec60 | 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 74 69 | tasks...Customize.`gptel-directi |
| 7ec80 | 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 2e 22 | ves'.for.task-specific.prompts." |
| 7eca0 | 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 70 72 | ...[:description.gptel-system-pr |
| 7ecc0 | 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 78 2d | ompt--format....[(gptel--suffix- |
| 7ece0 | 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 6e 66 | system-message)]....[(gptel--inf |
| 7ed00 | 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 73 20 | ix-variable-scope)]]....[:class. |
| 7ed20 | 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 69 6c | transient-column.....:setup-chil |
| 7ed40 | 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 74 2d | dren.....(lambda.(_).(transient- |
| 7ed60 | 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 74 65 | parse-suffixes.............'gpte |
| 7ed80 | 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 70 74 | l-system-prompt.............(gpt |
| 7eda0 | 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 20 20 | el--setup-directive-menu........ |
| 7edc0 | 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 44 69 | ......'gptel--system-message."Di |
| 7ede0 | 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 29 0a | rective".t))).....:pad-keys.t]). |
| 7ee00 | 0a 3b 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 61 76 69 6e 67 20 61 6e 64 20 61 70 70 | .;;.**.Prefix.for.saving.and.app |
| 7ee20 | 6c 79 69 6e 67 20 70 72 65 73 65 74 73 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | lying.presets..(transient-define |
| 7ee40 | 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 20 28 29 0a 20 20 22 41 70 70 6c | -prefix.gptel--preset.()..."Appl |
| 7ee60 | 79 20 61 20 67 70 74 65 6c 20 70 72 65 73 65 74 2c 20 6f 72 20 73 61 76 65 20 74 68 65 20 63 75 | y.a.gptel.preset,.or.save.the.cu |
| 7ee80 | 72 72 65 6e 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 61 73 20 61 20 70 72 65 73 65 74 2e | rrent.configuration.as.a.preset. |
| 7eea0 | 0a 0a 41 20 5c 22 70 72 65 73 65 74 5c 22 20 69 73 20 61 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f | ..A.\"preset\".is.a.collection.o |
| 7eec0 | 66 20 67 70 74 65 6c 20 73 65 74 74 69 6e 67 73 2c 20 73 75 63 68 20 61 73 20 74 68 65 20 6d 6f | f.gptel.settings,.such.as.the.mo |
| 7eee0 | 64 65 6c 2c 0a 62 61 63 6b 65 6e 64 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 | del,.backend,.system.message.and |
| 7ef00 | 20 65 6e 61 62 6c 65 64 20 74 6f 6f 6c 73 2c 20 74 68 61 74 20 61 72 65 20 61 70 70 6c 69 65 64 | .enabled.tools,.that.are.applied |
| 7ef20 | 20 61 6e 64 20 75 73 65 64 0a 74 6f 67 65 74 68 65 72 2e 20 20 53 65 65 20 60 67 70 74 65 6c 2d | .and.used.together...See.`gptel- |
| 7ef40 | 6d 61 6b 65 2d 70 72 65 73 65 74 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 74 72 | make-preset'.for.details."...:tr |
| 7ef60 | 61 6e 73 69 65 6e 74 2d 73 75 66 66 69 78 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 | ansient-suffix.#'transient--do-r |
| 7ef80 | 65 74 75 72 6e 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 61 76 65 20 6f 72 20 61 | eturn...[:description."Save.or.a |
| 7efa0 | 70 70 6c 79 20 61 20 70 72 65 73 65 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 6f 66 20 67 70 74 65 | pply.a.preset.collection.of.gpte |
| 7efc0 | 6c 20 6f 70 74 69 6f 6e 73 22 0a 20 20 20 5b 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 28 | l.options"....[:pad-keys.t.....( |
| 7efe0 | 22 43 2d 73 22 20 22 53 61 76 65 20 63 75 72 72 65 6e 74 20 73 65 74 74 69 6e 67 73 20 61 73 20 | "C-s"."Save.current.settings.as. |
| 7f000 | 6e 65 77 20 70 72 65 73 65 74 22 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 70 72 65 73 65 74 29 5d | new.preset".gptel--save-preset)] |
| 7f020 | 5d 0a 20 20 5b 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e | ]...[:if.(lambda.().gptel--known |
| 7f040 | 2d 70 72 65 73 65 74 73 29 0a 20 20 20 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f | -presets)....:class.transient-co |
| 7f060 | 6c 75 6d 6e 0a 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 65 6e 0a 20 20 20 28 6c 61 6d 62 | lumn....:setup-children....(lamb |
| 7f080 | 64 61 20 28 5f 29 0a 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 70 61 72 73 65 2d 73 75 66 | da.(_)......(transient-parse-suf |
| 7f0a0 | 66 69 78 65 73 0a 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 0a 20 20 20 20 20 | fixes.......'gptel--preset...... |
| 7f0c0 | 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 66 6f 72 20 28 6e 61 6d 65 2d 73 79 6d 20 2e | .(cl-loop........for.(name-sym.. |
| 7f0e0 | 20 70 72 65 73 65 74 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 70 72 65 73 65 74 73 | .preset).in.gptel--known-presets |
| 7f100 | 0a 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 | ........for.name.=.(format."%s". |
| 7f120 | 6e 61 6d 65 2d 73 79 6d 29 0a 20 20 20 20 20 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 | name-sym)........with.unused-key |
| 7f140 | 73 20 3d 20 28 6e 63 6f 6e 63 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 61 20 3f | s.=.(nconc.(number-sequence.?a.? |
| 7f160 | 7a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | z).............................. |
| 7f180 | 20 20 20 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 29 0a 20 20 20 | ....(number-sequence.?0.?9)).... |
| 7f1a0 | 20 20 20 20 66 6f 72 20 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 | ....for.description.=.(plist-get |
| 7f1c0 | 20 70 72 65 73 65 74 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 66 6f 72 | .preset.:description)........for |
| 7f1e0 | 20 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d 62 64 61 20 28 6b 29 20 28 6d 65 | .key.=.(seq-find.(lambda.(k).(me |
| 7f200 | 6d 62 65 72 20 6b 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | mber.k.unused-keys))............ |
| 7f220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 28 73 65 71 2d 66 69 72 73 74 20 | ................name.(seq-first. |
| 7f240 | 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 6e | unused-keys))........do.(setq.un |
| 7f260 | 75 73 65 64 2d 6b 65 79 73 20 28 64 65 6c 71 20 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 | used-keys.(delq.key.unused-keys) |
| 7f280 | 29 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 | )........collect........(list... |
| 7f2a0 | 20 20 20 20 20 20 28 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 6b 65 79 | ......(key-description.(list.key |
| 7f2c0 | 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 | )).........(concat.name......... |
| 7f2e0 | 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 | ........(propertize.".".'display |
| 7f300 | 20 27 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 32 30 29 29 0a 20 20 20 20 20 20 20 20 | .'(space.:align-to.20))......... |
| 7f320 | 20 20 20 20 20 20 20 20 28 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 | ........(and.description........ |
| 7f340 | 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 28 63 6f 6e 63 61 | ..............(propertize.(conca |
| 7f360 | 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............................... |
| 7f380 | 20 20 20 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 | ...."(".(gptel--describe-directi |
| 7f3a0 | 76 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 | ve.............................. |
| 7f3c0 | 20 20 20 20 20 20 20 20 20 20 64 65 73 63 72 69 70 74 69 6f 6e 20 28 2d 20 28 77 69 6e 64 6f 77 | ..........description.(-.(window |
| 7f3e0 | 2d 77 69 64 74 68 29 20 33 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -width).30)).................... |
| 7f400 | 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 20 20 20 20 | ...............")")............. |
| 7f420 | 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 61 64 | .....................'face.'shad |
| 7f440 | 6f 77 29 29 29 0a 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 | ow))).........`(lambda.().(inter |
| 7f460 | 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 | active)............(gptel--set-w |
| 7f480 | 69 74 68 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 2d 70 72 65 73 65 74 20 27 2c 6e 61 6d 65 2d | ith-scope.'gptel--preset.',name- |
| 7f4a0 | 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 | sym.............gptel--set-buffe |
| 7f4c0 | 72 2d 6c 6f 63 61 6c 6c 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 70 | r-locally)............(gptel--ap |
| 7f4e0 | 70 6c 79 2d 70 72 65 73 65 74 20 27 2c 70 72 65 73 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ply-preset.',preset............. |
| 7f500 | 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 76 61 6c 29 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 | (lambda.(sym.val).(gptel--set-wi |
| 7f520 | 74 68 2d 73 63 6f 70 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 | th-scope........................ |
| 7f540 | 20 20 20 73 79 6d 20 76 61 6c 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 | ...sym.val.gptel--set-buffer-loc |
| 7f560 | 61 6c 6c 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 41 70 70 | ally)))............(message."App |
| 7f580 | 6c 69 65 64 20 67 70 74 65 6c 20 70 72 65 73 65 74 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 | lied.gptel.preset.%s"........... |
| 7f5a0 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 2c 6e 61 6d 65 20 27 66 61 63 65 20 27 74 72 61 6e 73 | ..(propertize.,name.'face.'trans |
| 7f5c0 | 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 74 72 | ient-value))............(when.tr |
| 7f5e0 | 61 6e 73 69 65 6e 74 2d 2d 73 74 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d | ansient--stack.............(run- |
| 7f600 | 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 75 70 29 | at-time.0.nil.#'transient-setup) |
| 7f620 | 29 29 29 0a 20 20 20 20 20 20 20 69 6e 74 6f 20 67 65 6e 65 72 61 74 65 64 0a 20 20 20 20 20 20 | )))........into.generated....... |
| 7f640 | 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 6c | .finally.return........(nconc.(l |
| 7f660 | 69 73 74 20 27 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 | ist.'(gptel--infix-variable-scop |
| 7f680 | 65 0a 20 20 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 | e.......................:format. |
| 7f6a0 | 22 25 64 20 25 6b 20 25 76 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "%d.%k.%v"...................... |
| 7f6c0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:description................... |
| 7f6e0 | 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 66 6f 72 6d 61 74 20 22 25 73 20 20 20 20 20 20 | ....(lambda.().(format."%s...... |
| 7f700 | 20 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"........................... |
| 7f720 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 41 70 70 6c 79 20 70 72 65 73 65 74 22 20 27 66 | ...(propertize."Apply.preset".'f |
| 7f740 | 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 | ace.'transient-heading)......... |
| 7f760 | 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 65 | .....................(propertize |
| 7f780 | 20 22 53 63 6f 70 65 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 61 63 74 69 76 65 | ."Scope".'face.'transient-active |
| 7f7a0 | 2d 70 72 65 66 69 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 65 6e 65 72 | -prefix)))))...............gener |
| 7f7c0 | 61 74 65 64 29 29 29 29 5d 29 0a 0a 3b 3b 20 2a 2a 20 50 72 65 66 69 78 20 66 6f 72 20 73 65 6c | ated))))])..;;.**.Prefix.for.sel |
| 7f7e0 | 65 63 74 69 6e 67 20 74 6f 6f 6c 73 0a 0a 3b 3b 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6f 66 66 | ecting.tools..;;.gptel-tools.off |
| 7f800 | 65 72 73 20 61 20 74 77 6f 2d 6c 65 76 65 6c 20 6d 65 6e 75 20 66 6f 72 20 73 65 6c 65 63 74 69 | ers.a.two-level.menu.for.selecti |
| 7f820 | 6e 67 20 74 6f 6f 6c 73 2c 20 69 74 73 20 64 65 73 69 67 6e 20 69 73 20 61 0a 3b 3b 20 6c 69 74 | ng.tools,.its.design.is.a.;;.lit |
| 7f840 | 74 6c 65 20 63 6f 6e 76 6f 6c 75 74 65 64 20 73 6f 20 68 65 72 65 27 73 20 61 6e 20 65 78 70 6c | tle.convoluted.so.here's.an.expl |
| 7f860 | 61 6e 61 74 69 6f 6e 3a 0a 3b 3b 0a 3b 3b 20 4e 6f 72 6d 61 6c 6c 79 20 61 20 74 72 61 6e 73 69 | anation:.;;.;;.Normally.a.transi |
| 7f880 | 65 6e 74 20 70 72 65 66 69 78 20 65 78 70 6f 72 74 73 20 69 74 73 20 76 61 6c 75 65 20 76 69 61 | ent.prefix.exports.its.value.via |
| 7f8a0 | 20 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 2c 20 74 6f 20 62 65 0a 3b 3b 20 63 6f 6e 73 75 6d | .transient-args,.to.be.;;.consum |
| 7f8c0 | 65 64 20 62 79 20 73 75 66 66 69 78 65 73 2c 20 77 68 65 72 65 20 74 68 65 73 65 20 61 72 67 73 | ed.by.suffixes,.where.these.args |
| 7f8e0 | 20 61 72 65 20 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 | .are.determined.by.the.state.of. |
| 7f900 | 74 68 65 0a 3b 3b 20 6d 65 6e 75 20 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 65 78 70 6f 72 | the.;;.menu.at.the.time.of.expor |
| 7f920 | 74 2e 20 20 54 68 65 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6d 65 6e 75 20 69 73 20 64 79 6e 61 | t...The.gptel-tools.menu.is.dyna |
| 7f940 | 6d 69 63 20 61 6e 64 20 6e 65 65 64 73 20 74 6f 0a 3b 3b 20 73 74 6f 72 65 20 74 6f 6f 6c 20 73 | mic.and.needs.to.;;.store.tool.s |
| 7f960 | 65 6c 65 63 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 6e 6f 74 20 62 65 20 76 69 73 69 62 6c | elections.that.may.not.be.visibl |
| 7f980 | 65 20 69 6e 20 74 68 65 20 6d 65 6e 79 20 61 6e 79 20 6d 6f 72 65 2c 20 73 6f 20 77 65 0a 3b 3b | e.in.the.meny.any.more,.so.we.;; |
| 7f9a0 | 20 63 61 6e 6e 6f 74 20 75 73 65 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 2e 0a | .cannot.use.the.transient-args.. |
| 7f9c0 | 3b 3b 0a 3b 3b 20 57 65 20 63 61 6e 20 6e 6f 74 20 28 73 68 6f 75 6c 64 20 6e 6f 74 3f 29 20 63 | ;;.;;.We.can.not.(should.not?).c |
| 7f9e0 | 6f 6e 74 72 6f 6c 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 72 65 66 69 78 20 64 | ontrol.the.value.of.the.prefix.d |
| 7fa00 | 69 72 65 63 74 6c 79 2c 20 73 6f 20 77 65 0a 3b 3b 20 69 6e 73 74 65 61 64 20 75 73 65 20 74 68 | irectly,.so.we.;;.instead.use.th |
| 7fa20 | 65 20 73 63 6f 70 65 20 28 61 20 73 65 63 6f 6e 64 61 72 79 20 76 61 6c 75 65 29 20 6f 66 20 74 | e.scope.(a.secondary.value).of.t |
| 7fa40 | 68 65 20 70 72 65 66 69 78 20 74 6f 20 6d 61 69 6e 74 61 69 6e 20 74 68 65 0a 3b 3b 20 68 69 73 | he.prefix.to.maintain.the.;;.his |
| 7fa60 | 74 6f 72 79 20 6f 66 20 73 65 6c 65 63 74 69 6f 6e 73 2e 20 20 57 68 65 6e 20 72 75 6e 6e 69 6e | tory.of.selections...When.runnin |
| 7fa80 | 67 20 61 20 73 75 66 66 69 78 2c 20 77 65 20 67 61 74 68 65 72 20 74 6f 6f 6c 20 73 65 6c 65 63 | g.a.suffix,.we.gather.tool.selec |
| 7faa0 | 74 69 6f 6e 73 20 66 72 6f 6d 0a 3b 3b 20 74 68 65 20 73 63 6f 70 65 2e 20 20 54 68 65 20 73 63 | tions.from.;;.the.scope...The.sc |
| 7fac0 | 6f 70 65 20 69 73 20 61 6c 73 6f 20 75 73 65 64 20 61 73 20 61 20 6d 65 73 73 61 67 65 20 63 68 | ope.is.also.used.as.a.message.ch |
| 7fae0 | 61 6e 6e 65 6c 20 66 6f 72 20 63 6f 6e 6e 65 63 74 69 6e 67 20 74 68 65 0a 3b 3b 20 63 61 74 65 | annel.for.connecting.the.;;.cate |
| 7fb00 | 67 6f 72 79 20 6d 65 6e 75 20 61 6e 64 20 74 68 65 20 74 6f 6f 6c 20 6c 69 73 74 20 6d 65 6e 75 | gory.menu.and.the.tool.list.menu |
| 7fb20 | 20 66 6f 72 20 74 68 61 74 20 63 61 74 65 67 6f 72 79 2e 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c | .for.that.category...;;;###autol |
| 7fb40 | 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 22 67 70 74 65 | oad.(autoload.'gptel-tools."gpte |
| 7fb60 | 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 |
| 7fb80 | 65 66 69 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 28 29 0a 20 20 22 53 | efine-prefix.gptel-tools.()..."S |
| 7fba0 | 65 6c 65 63 74 20 74 6f 6f 6c 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 77 69 74 68 20 67 70 74 65 | elect.tools.to.include.with.gpte |
| 7fbc0 | 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 54 6f 6f 6c 73 20 61 72 65 20 6f 72 67 61 6e 69 7a 65 64 | l.requests...Tools.are.organized |
| 7fbe0 | 20 69 6e 74 6f 20 63 61 74 65 67 6f 72 69 65 73 2e 20 20 53 65 6c 65 63 74 69 6e 67 20 74 68 65 | .into.categories...Selecting.the |
| 7fc00 | 20 63 61 74 65 67 6f 72 79 0a 74 6f 67 67 6c 65 73 20 61 6c 6c 20 74 68 65 20 74 6f 6f 6c 73 20 | .category.toggles.all.the.tools. |
| 7fc20 | 77 69 74 68 20 74 68 61 74 20 63 61 74 65 67 6f 72 79 2e 0a 0a 54 6f 20 61 64 64 20 74 6f 6f 6c | with.that.category...To.add.tool |
| 7fc40 | 73 20 74 6f 20 74 68 69 73 20 6c 69 73 74 2c 20 75 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d | s.to.this.list,.use.`gptel-make- |
| 7fc60 | 74 6f 6f 6c 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 0a 55 73 69 6e 67 20 74 68 65 20 73 63 6f | tool',.which.see...Using.the.sco |
| 7fc80 | 70 65 20 6f 70 74 69 6f 6e 2c 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 6f 6f 6c 73 20 74 6f 20 | pe.option,.you.can.set.tools.to. |
| 7fca0 | 75 73 65 20 77 69 74 68 20 67 70 74 65 6c 0a 72 65 71 75 65 73 74 73 20 67 6c 6f 62 61 6c 6c 79 | use.with.gptel.requests.globally |
| 7fcc0 | 2c 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 20 6f 72 20 66 6f 72 20 74 68 65 20 6e 65 78 74 | ,.in.this.buffer.or.for.the.next |
| 7fce0 | 20 72 65 71 75 65 73 74 0a 6f 6e 6c 79 20 28 5c 22 6f 6e 65 73 68 6f 74 5c 22 29 2e 22 0a 20 20 | .request.only.(\"oneshot\")."... |
| 7fd00 | 3a 72 65 66 72 65 73 68 2d 73 75 66 66 69 78 65 73 20 74 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 | :refresh-suffixes.t...[:descript |
| 7fd20 | 69 6f 6e 20 22 50 72 6f 76 69 64 65 20 74 68 65 20 4c 4c 4d 20 77 69 74 68 20 74 6f 6f 6c 73 20 | ion."Provide.the.LLM.with.tools. |
| 7fd40 | 74 6f 20 72 75 6e 20 74 61 73 6b 73 20 66 6f 72 20 79 6f 75 22 0a 20 20 20 5b 22 22 0a 20 20 20 | to.run.tasks.for.you"....["".... |
| 7fd60 | 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 0a 20 | .(gptel--infix-variable-scope).. |
| 7fd80 | 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 20 20 | ...(gptel--infix-use-tools)..... |
| 7fda0 | 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 | (gptel--infix-confirm-tool-calls |
| 7fdc0 | 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c | ).....(gptel--infix-include-tool |
| 7fde0 | 2d 72 65 73 75 6c 74 73 29 5d 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 22 52 45 54 22 20 22 43 6f | -results)]....["".....("RET"."Co |
| 7fe00 | 6e 66 69 72 6d 20 73 65 6c 65 63 74 69 6f 6e 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 | nfirm.selection"......(lambda.(t |
| 7fe20 | 6f 6f 6c 73 29 0a 20 20 20 20 20 20 20 3b 3b 20 57 65 20 64 6f 6e 27 74 20 63 61 72 65 20 61 62 | ools)........;;.We.don't.care.ab |
| 7fe40 | 6f 75 74 20 74 68 65 20 74 72 61 6e 73 69 65 6e 74 20 61 72 67 73 20 6f 66 20 74 68 69 73 20 70 | out.the.transient.args.of.this.p |
| 7fe60 | 72 65 66 69 78 20 61 74 20 61 6c 6c 2c 20 73 69 6e 63 65 0a 20 20 20 20 20 20 20 3b 3b 20 74 68 | refix.at.all,.since........;;.th |
| 7fe80 | 65 20 73 74 61 74 65 20 69 73 20 6d 61 6e 61 67 65 64 20 65 6e 74 69 72 65 6c 79 20 74 68 72 6f | e.state.is.managed.entirely.thro |
| 7fea0 | 75 67 68 20 69 74 73 20 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 3a 0a 20 20 20 20 20 20 20 | ugh.its.transient-scope:........ |
| 7fec0 | 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 | (interactive.(list.(plist-get.(t |
| 7fee0 | 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 29 20 3a 74 6f | ransient-scope.'gptel-tools).:to |
| 7ff00 | 6f 6c 73 29 29 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 | ols)))........(gptel--set-with-s |
| 7ff20 | 63 6f 70 65 0a 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 | cope.........'gptel-tools....... |
| 7ff40 | 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 63 61 74 65 67 6f 72 79 2d 61 6e 64 2d | ..(mapcar.(lambda.(category-and- |
| 7ff60 | 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 | name)...................(map-nes |
| 7ff80 | 74 65 64 2d 65 6c 74 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 20 63 61 74 65 67 | ted-elt.gptel--known-tools.categ |
| 7ffa0 | 6f 72 79 2d 61 6e 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ory-and-name)).................( |
| 7ffc0 | 63 6c 2d 64 65 6c 65 74 65 2d 69 66 2d 6e 6f 74 20 23 27 63 6f 6e 73 70 20 74 6f 6f 6c 73 29 29 | cl-delete-if-not.#'consp.tools)) |
| 7ffe0 | 0a 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c | .........gptel--set-buffer-local |
| 80000 | 6c 79 29 29 0a 20 20 20 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d | ly))......:transient.transient-- |
| 80020 | 64 6f 2d 72 65 74 75 72 6e 29 0a 20 20 20 20 28 22 71 22 20 22 43 61 6e 63 65 6c 22 20 74 72 61 | do-return).....("q"."Cancel".tra |
| 80040 | 6e 73 69 65 6e 74 2d 71 75 69 74 2d 6f 6e 65 29 5d 5d 0a 20 20 5b 5b 3a 63 6c 61 73 73 20 74 72 | nsient-quit-one)]]...[[:class.tr |
| 80060 | 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 44 69 73 70 | ansient-column.............;Disp |
| 80080 | 6c 61 79 20 6b 6e 6f 77 6e 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 20 3a 73 65 74 75 70 2d | lay.known.categories.....:setup- |
| 800a0 | 63 68 69 6c 64 72 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 28 | children.....(lambda.(_).......( |
| 800c0 | 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 20 20 20 20 20 | transient-parse-suffixes........ |
| 800e0 | 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 | 'gptel-tools........(cl-loop.... |
| 80100 | 20 20 20 20 20 20 3b 6c 6f 6f 70 20 74 68 72 6f 75 67 68 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e | ......;loop.through.gptel--known |
| 80120 | 20 74 6f 6f 6c 73 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 | .tools.and.collect.categories... |
| 80140 | 20 20 20 20 20 20 66 6f 72 20 28 63 61 74 65 67 6f 72 79 20 2e 20 74 6f 6f 6c 73 2d 61 6c 69 73 | ......for.(category...tools-alis |
| 80160 | 74 29 20 69 6e 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 | t).in.gptel--known-tools........ |
| 80180 | 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 6e 63 6f 6e 63 20 28 64 65 6c 65 | .with.unused-keys.=.(nconc.(dele |
| 801a0 | 74 65 20 3f 71 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 61 20 3f 7a 29 29 0a 20 | te.?q.(number-sequence.?a.?z)).. |
| 801c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 801e0 | 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 30 20 3f 39 29 0a 20 20 20 20 20 20 20 | .(number-sequence.?0.?9)........ |
| 80200 | 20 20 20 20 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 | ...........................(dele |
| 80220 | 74 65 20 3f 4d 20 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 41 20 3f 5a 29 29 29 20 | te.?M.(number-sequence.?A.?Z))). |
| 80240 | 3b 4d 20 75 73 65 64 20 62 79 20 4d 43 50 20 69 6e 74 65 67 72 61 74 69 6f 6e 0a 20 20 20 20 20 | ;M.used.by.MCP.integration...... |
| 80260 | 20 20 20 66 6f 72 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 | ...for.category-key.=.(seq-find. |
| 80280 | 28 6c 61 6d 62 64 61 20 28 6b 29 20 28 6d 65 6d 62 65 72 20 6b 20 75 6e 75 73 65 64 2d 6b 65 79 | (lambda.(k).(member.k.unused-key |
| 802a0 | 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | s))............................. |
| 802c0 | 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 6d 6f 76 65 2d 70 72 65 66 69 78 20 22 | .........(string-remove-prefix." |
| 802e0 | 6d 63 70 2d 22 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mcp-".category)................. |
| 80300 | 20 20 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 | .....................(seq-first. |
| 80320 | 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 | unused-keys)).........do.(setq.u |
| 80340 | 6e 75 73 65 64 2d 6b 65 79 73 20 28 64 65 6c 65 74 65 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 20 | nused-keys.(delete.category-key. |
| 80360 | 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c | unused-keys)).........collect.(l |
| 80380 | 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 63 61 74 65 67 | ist.(key-description.(list.categ |
| 803a0 | 6f 72 79 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 | ory-key))....................... |
| 803c0 | 28 63 6f 6e 63 61 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 63 61 74 65 67 6f 72 79 20 27 66 61 | (concat.(propertize.category.'fa |
| 803e0 | 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 | ce.'transient-heading).......... |
| 80400 | 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 74 72 69 6e | .....................(make-strin |
| 80420 | 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 79 29 29 20 | g.(max.(-.14.(length.category)). |
| 80440 | 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 20 20 28 63 | 0).?.)).......................(c |
| 80460 | 68 61 72 2d 74 6f 2d 73 74 72 69 6e 67 20 63 61 74 65 67 6f 72 79 2d 6b 65 79 29 0a 20 20 20 20 | har-to-string.category-key)..... |
| 80480 | 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 20 25 | ..................:format.".%k.% |
| 804a0 | 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 3a 63 6c 61 | d.%v".......................:cla |
| 804c0 | 73 73 20 27 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 2d 63 61 74 65 67 6f 72 79 0a 20 20 20 20 20 | ss.'gptel--switch-category...... |
| 804e0 | 20 20 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 67 | .................:category.categ |
| 80500 | 6f 72 79 29 0a 20 20 20 20 20 20 20 20 69 6e 74 6f 20 63 61 74 65 67 6f 72 69 65 73 0a 20 20 20 | ory).........into.categories.... |
| 80520 | 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 28 70 6c 69 73 74 2d 70 75 74 20 28 74 72 61 6e | .....finally.do.(plist-put.(tran |
| 80540 | 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 6b 65 79 73 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 0a | sient-scope).:keys.unused-keys). |
| 80560 | 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 20 63 61 74 65 67 6f 72 69 65 | ........finally.return.categorie |
| 80580 | 73 29 29 29 5d 0a 20 20 20 5b 3a 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d | s)))]....[:class.transient-colum |
| 805a0 | 6e 20 20 20 20 20 20 20 20 20 20 20 3b 44 69 73 70 6c 61 79 20 6b 6e 6f 77 6e 20 74 6f 6f 6c 73 | n...........;Display.known.tools |
| 805c0 | 20 66 6f 72 20 73 65 6c 65 63 74 65 64 20 63 61 74 65 67 6f 72 79 0a 20 20 20 20 3a 73 65 74 75 | .for.selected.category.....:setu |
| 805e0 | 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 0a 20 20 20 20 20 | p-children.....(lambda.(_)...... |
| 80600 | 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 20 20 20 | .(transient-parse-suffixes...... |
| 80620 | 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 0a 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a | ..'gptel-tools........(when-let* |
| 80640 | 20 28 28 63 61 74 65 67 6f 72 79 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e | .((category.(plist-get.(transien |
| 80660 | 74 2d 73 63 6f 70 65 29 20 3a 63 61 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t-scope).:category))............ |
| 80680 | 20 20 20 20 20 20 20 20 28 74 6f 6f 6c 2d 6b 65 79 73 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 | ........(tool-keys.(plist-get.(t |
| 806a0 | 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 20 3a 6b 65 79 73 29 29 29 0a 20 20 20 20 20 20 20 | ransient-scope).:keys)))........ |
| 806c0 | 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f | ..(cl-loop...................;fo |
| 806e0 | 72 20 65 61 63 68 20 63 61 74 65 67 6f 72 79 2c 20 63 6f 6c 6c 65 63 74 20 74 6f 6f 6c 73 20 61 | r.each.category,.collect.tools.a |
| 80700 | 73 20 69 6e 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 77 69 74 68 20 74 6f 6f 6c 73 2d 61 | s.infixes...........with.tools-a |
| 80720 | 6c 69 73 74 20 3d 20 28 63 64 72 20 28 61 73 73 6f 63 20 63 61 74 65 67 6f 72 79 20 67 70 74 65 | list.=.(cdr.(assoc.category.gpte |
| 80740 | 6c 2d 2d 6b 6e 6f 77 6e 2d 74 6f 6f 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 | l--known-tools))...........for.( |
| 80760 | 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 20 20 20 20 | name...tool).in.tools-alist..... |
| 80780 | 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 28 | ......for.tool-key.=.(seq-find.( |
| 807a0 | 6c 61 6d 62 64 61 20 28 6b 29 20 28 6d 65 6d 62 65 72 20 6b 20 74 6f 6f 6c 2d 6b 65 79 73 29 29 | lambda.(k).(member.k.tool-keys)) |
| 807c0 | 20 6e 61 6d 65 20 28 73 65 71 2d 66 69 72 73 74 20 74 6f 6f 6c 2d 6b 65 79 73 29 29 0a 20 20 20 | .name.(seq-first.tool-keys)).... |
| 807e0 | 20 20 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 74 6f 6f 6c 2d 6b 65 79 73 20 28 64 65 6c 65 74 | .......do.(setq.tool-keys.(delet |
| 80800 | 65 20 74 6f 6f 6c 2d 6b 65 79 20 74 6f 6f 6c 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 | e.tool-key.tool-keys)).......... |
| 80820 | 20 63 6f 6c 6c 65 63 74 20 20 20 20 20 20 20 20 20 20 3b 45 61 63 68 20 6c 69 73 74 20 69 73 20 | .collect..........;Each.list.is. |
| 80840 | 61 20 74 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 20 6f 66 20 74 79 70 65 20 67 70 74 65 6c 2d | a.transient.infix.of.type.gptel- |
| 80860 | 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 6b 65 79 2d 64 65 73 | -switch...........(list.(key-des |
| 80880 | 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 74 6f 6f 6c 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 | cription.(list.tool-key))....... |
| 808a0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 | ..........(concat.(make-string.( |
| 808c0 | 6d 61 78 20 28 2d 20 32 30 20 28 6c 65 6e 67 74 68 20 6e 61 6d 65 29 29 20 30 29 20 3f 20 29 0a | max.(-.20.(length.name)).0).?.). |
| 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 70 72 6f 70 65 72 74 | ........................(propert |
| 80900 | 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | ize..........................(co |
| 80920 | 6e 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 | ncat."(".(gptel--describe-direct |
| 80940 | 69 76 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 | ive............................. |
| 80960 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 74 6f 6f 6c 2d 64 65 73 63 72 69 70 74 69 6f | ..........(gptel-tool-descriptio |
| 80980 | 6e 20 74 6f 6f 6c 29 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 36 30 29 29 0a 20 | n.tool).(-.(window-width).60)).. |
| 809a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 809c0 | 22 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 27 66 | ")")..........................'f |
| 809e0 | 61 63 65 20 27 73 68 61 64 6f 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ace.'shadow)).................(g |
| 80a00 | 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 20 20 20 20 20 | ptel-tool-name.tool)............ |
| 80a20 | 20 20 20 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 76 20 25 64 22 0a 20 20 20 20 20 20 20 | .....:format.".%k.%v.%d"........ |
| 80a40 | 20 20 20 20 20 20 20 20 20 3a 69 6e 69 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 74 6f | .........:init-value.#'gptel--to |
| 80a60 | 6f 6c 73 2d 69 6e 69 74 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ols-init-value.................: |
| 80a80 | 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 | class.'gptel--switch............ |
| 80aa0 | 20 20 20 20 20 3a 63 61 74 65 67 6f 72 79 20 63 61 74 65 67 6f 72 79 29 0a 20 20 20 20 20 20 20 | .....:category.category)........ |
| 80ac0 | 20 20 20 69 6e 74 6f 20 69 6e 66 69 78 65 73 2d 66 6f 72 2d 63 61 74 65 67 6f 72 79 0a 20 20 20 | ...into.infixes-for-category.... |
| 80ae0 | 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 | .......finally.return........... |
| 80b00 | 28 63 6f 6e 73 20 28 6c 69 73 74 20 3a 69 6e 66 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (cons.(list.:info............... |
| 80b20 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 | ........(lambda.().(concat...... |
| 80b40 | 20 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 |
| 80b60 | 69 7a 65 20 28 70 6c 69 73 74 2d 67 65 74 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 63 6f 70 65 29 | ize.(plist-get.(transient-scope) |
| 80b80 | 20 3a 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:key).......................... |
| 80ba0 | 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 6e 73 69 65 6e 74 | ................'face.'transient |
| 80bc0 | 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -key)........................... |
| 80be0 | 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 74 6f 67 67 6c 65 20 61 6c 6c 22 20 27 66 61 | ...(propertize.".toggle.all".'fa |
| 80c00 | 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 20 20 20 | ce.'transient-heading)))........ |
| 80c20 | 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 64 22 29 0a 20 20 | ...............:format.".%d")... |
| 80c40 | 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 6f | ..............infixes-for-catego |
| 80c60 | 72 79 29 29 29 29 29 5d 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 74 72 61 | ry)))))]]...(interactive)...(tra |
| 80c80 | 6e 73 69 65 6e 74 2d 73 65 74 75 70 0a 20 20 20 27 67 70 74 65 6c 2d 74 6f 6f 6c 73 20 6e 69 6c | nsient-setup....'gptel-tools.nil |
| 80ca0 | 20 6e 69 6c 0a 20 20 20 3a 73 63 6f 70 65 20 28 6c 69 73 74 20 3a 74 6f 6f 6c 73 20 28 6d 61 70 | .nil....:scope.(list.:tools.(map |
| 80cc0 | 63 61 72 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 29 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d | car.(lambda.(tool).(list.(gptel- |
| 80ce0 | 74 6f 6f 6c 2d 63 61 74 65 67 6f 72 79 20 74 6f 6f 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tool-category.tool)............. |
| 80d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 80d20 | 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 29 29 0a 20 20 20 20 | ...(gptel-tool-name.tool)))..... |
| 80d40 | 20 20 20 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 |
| 80d60 | 2d 74 6f 6f 6c 73 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 49 6e 66 | -tools))))....;;.*.Transient.Inf |
| 80d80 | 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 74 20 | ixes..;;.**.Infixes.for.context. |
| 80da0 | 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 2d 69 | aggregation..(transient-define-i |
| 80dc0 | 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 28 29 | nfix.gptel--infix-use-context.() |
| 80de0 | 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 6e 20 | ..."Describe.target.destination. |
| 80e00 | 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 77 69 | for.context.injection...gptel.wi |
| 80e20 | 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 74 20 | ll.include.with.the.LLM.request. |
| 80e40 | 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 69 74 | any.additional.context.added.wit |
| 80e60 | 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 61 6e | h.`gptel-add'...This.context.can |
| 80e80 | 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 20 73 | .be.ignored,.included.with.the.s |
| 80ea0 | 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 20 74 | ystem.message.or.included.with.t |
| 80ec0 | 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 72 65 | he.user.prompt...Where.in.the.re |
| 80ee0 | 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 20 64 | quest.this.context.is.included.d |
| 80f00 | 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 75 73 | epends.on.the.value.of.`gptel-us |
| 80f20 | 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 3a 64 | e-context',.set.from.here."...:d |
| 80f40 | 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 20 3a | escription."Include.context"...: |
| 80f60 | 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 76 61 | class.'gptel-lisp-variable...:va |
| 80f80 | 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 6f 72 | riable.'gptel-use-context...:for |
| 80fa0 | 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 27 67 | mat.".%k.%d.%v"...:set-value.#'g |
| 80fc0 | 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d | ptel--set-with-scope...:display- |
| 80fe0 | 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 20 20 | nil."No"...:display-map.'((nil.. |
| 81000 | 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 73 74 | ...."No")..................(syst |
| 81020 | 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 20 20 | em..."with.system.message")..... |
| 81040 | 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 73 65 | .............(user....."with.use |
| 81060 | 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 64 65 | r.prompt"))...:key."-i"...:reade |
| 81080 | 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 | r.(lambda.(prompt.&rest._)...... |
| 810a0 | 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 20 20 | .......(let*.((choices.'(("No".. |
| 810c0 | 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 20 20 | ..................nil).......... |
| 810e0 | 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 73 74 | .....................("with.syst |
| 81100 | 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 20 20 | em.message"...system)........... |
| 81120 | 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 72 20 | ....................("with.user. |
| 81140 | 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 20 20 | prompt"......user)))............ |
| 81160 | 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 6e 67 | ........(destination.(completing |
| 81180 | 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 20 | -read.prompt.choices.nil.t)))... |
| 811a0 | 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 61 74 | ............(cdr.(assoc.destinat |
| 811c0 | 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 73 20 | ion.choices)))))..;;.**.Infixes. |
| 811e0 | 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 6e 74 | for.model.parameters..(transient |
| 81200 | 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 69 61 | -define-infix.gptel--infix-varia |
| 81220 | 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 64 65 | ble-scope.()..."Set.gptel's.mode |
| 81240 | 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 65 20 | l.parameters.and.system.message. |
| 81260 | 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 20 3a | in.this.buffer.or.globally."...: |
| 81280 | 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 67 70 | argument."scope"...:variable.'gp |
| 812a0 | 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 73 73 | tel--set-buffer-locally...:class |
| 812c0 | 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 20 25 | .'gptel--scope...:format."..%k.% |
| 812e0 | 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 6e 20 | d.%v"...:key."="...:description. |
| 81300 | 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 6e 73 | (propertize."Scope".'face.'trans |
| 81320 | 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 6e 73 | ient-inactive-argument))..(trans |
| 81340 | 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 6e | ient-define-infix.gptel--infix-n |
| 81360 | 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 65 72 | um-messages-to-send.()..."Number |
| 81380 | 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 74 68 | .of.recent.messages.to.send.with |
| 813a0 | 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 68 65 | .each.exchange...By.default,.the |
| 813c0 | 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 73 65 | .full.conversation.history.is.se |
| 813e0 | 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 20 72 | nt.with.every.new.prompt..This.r |
| 81400 | 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 20 63 | etains.the.full.context.of.the.c |
| 81420 | 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 69 76 | onversation,.but.can.be.expensiv |
| 81440 | 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 72 65 | e.in.token.size..Set.how.many.re |
| 81460 | 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 64 65 | cent.messages.to.include."...:de |
| 81480 | 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 0a 20 | scription."previous.responses".. |
| 814a0 | 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...: |
| 814c0 | 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f | variable.'gptel--num-messages-to |
| 814e0 | 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 74 2d | -send...:set-value.#'gptel--set- |
| 81500 | 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 0a 20 | with-scope...:display-nil.'all.. |
| 81520 | 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 6e 22 | .:format.".%k.%v.%d"...:key."-n" |
| 81540 | 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 73 61 | ...:prompt."Number.of.past.messa |
| 81560 | 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 61 76 | ges.to.include.for.context.(leav |
| 81580 | 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 27 67 | e.empty.for.all):."...:reader.'g |
| 815a0 | 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 6e 75 6d 62 65 72 29 0a 0a 28 74 | ptel--transient-read-number)..(t |
| 815c0 | 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 | ransient-define-infix.gptel--inf |
| 815e0 | 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 20 70 | ix-max-tokens.()..."Max.tokens.p |
| 81600 | 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 74 68 | er.response...This.is.roughly.th |
| 81620 | 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 6e 73 | e.number.of.words.in.the.respons |
| 81640 | 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 67 65 | e..100-300.is.a.reasonable.range |
| 81660 | 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 65 20 | .for.short.answers,.400.or.more. |
| 81680 | 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 72 69 | for.longer.responses."...:descri |
| 816a0 | 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 29 22 | ption."Response.length.(tokens)" |
| 816c0 | 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.. |
| 816e0 | 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 20 3a | .:variable.'gptel-max-tokens...: |
| 81700 | 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 |
| 81720 | 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 22 2d | e...:display-nil.'auto...:key."- |
| 81740 | 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 69 6e | c"...:prompt."Response.length.in |
| 81760 | 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 20 38 | .tokens.(leave.empty:.default,.8 |
| 81780 | 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 22 0a | 0-200:.short,.200-500:.long):.". |
| 817a0 | 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 61 64 | ..:reader.'gptel--transient-read |
| 817c0 | 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 66 69 | -number)..(transient-define-infi |
| 817e0 | 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 41 49 | x.gptel--infix-provider.()..."AI |
| 81800 | 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 70 74 | .Provider.for.Chat."...:descript |
| 81820 | 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 6f 76 | ion."Model"...:class.'gptel-prov |
| 81840 | 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 3a 20 | ider-variable...:prompt."Model:. |
| 81860 | 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 73 65 | "...:variable.'gptel-model...:se |
| 81880 | 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. |
| 818a0 | 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 65 79 | ..:backend.'gptel-backend...:key |
| 818c0 | 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 74 20 | ."-m"...:reader.(lambda.(prompt. |
| 818e0 | 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 20 20 | &rest._).............(cl-loop... |
| 81900 | 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 29 20 | ...........for.(name...backend). |
| 81920 | 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 20 20 | in.gptel--known-backends........ |
| 81940 | 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 20 69 | ......nconc.(cl-loop.for.model.i |
| 81960 | 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 64 29 | n.(gptel-backend-models.backend) |
| 81980 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c | .............................col |
| 819a0 | 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 70 74 | lect.(list.(concat.name.":".(gpt |
| 819c0 | 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 20 20 | el--model-name.model)).......... |
| 819e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 81a00 | 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 69 6e | .backend.model))..............in |
| 81a20 | 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 69 74 | to.models-alist..............wit |
| 81a40 | 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 3d 0a | h.completion-extra-properties.=. |
| 81a60 | 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 63 74 | .............`(:annotation-funct |
| 81a80 | 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 6f 6d | ion................,(lambda.(com |
| 81aa0 | 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 73 73 | p).....(let*.((model.(nth.2.(ass |
| 81ac0 | 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 65 73 | oc.comp.models-alist))).....(des |
| 81ae0 | 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 09 20 | c.(get.model.:description))..... |
| 81b00 | 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 29 29 | (caps.(get.model.:capabilities)) |
| 81b20 | 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 65 78 | .....(context.(get.model.:contex |
| 81b40 | 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 74 20 | t-window)).....(input-cost.(get. |
| 81b60 | 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 74 2d | model.:input-cost)).....(output- |
| 81b80 | 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 0a 09 | cost.(get.model.:output-cost)).. |
| 81ba0 | 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 64 61 | ...(cutoff.(get.model.:cutoff-da |
| 81bc0 | 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 73 20 | te))).......(when.(or.desc.caps. |
| 81be0 | 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 20 63 | context.input-cost.output-cost.c |
| 81c00 | 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 20 20 | utoff).........(concat.......... |
| 81c20 | 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 65 | (propertize.".".'display.`(space |
| 81c40 | 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 20 64 | .:align-to.40))..........(when.d |
| 81c60 | 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 64 65 | esc.(truncate-string-to-width.de |
| 81c80 | 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 20 28 | sc.70.nil.?.t.t))..........".".( |
| 81ca0 | 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 | propertize.".".'display.`(space. |
| 81cc0 | 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 20 63 | :align-to.112))..........(when.c |
| 81ce0 | 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 28 70 | aps.(truncate-string-to-width.(p |
| 81d00 | 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 74 20 | rin1-to-string.caps).21.nil.?.t. |
| 81d20 | 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 20 22 | t))..........".".(propertize."." |
| 81d40 | 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 34 29 | .'display.`(space.:align-to.134) |
| 81d60 | 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 61 74 | )..........(when.context.(format |
| 81d80 | 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 20 28 | ."%5dk".context))..........".".( |
| 81da0 | 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 60 28 73 70 61 63 65 20 | propertize.".".'display.`(space. |
| 81dc0 | 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 20 69 | :align-to.142))..........(when.i |
| 81de0 | 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 69 6e | nput-cost.(format."$%5.2f.in".in |
| 81e00 | 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 6e 70 | put-cost))..........(if.(and.inp |
| 81e20 | 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 09 09 | ut-cost.output-cost).",".".")... |
| 81e40 | 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 73 70 | .......".".(propertize.".".'disp |
| 81e60 | 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 20 20 | lay.`(space.:align-to.153))..... |
| 81e80 | 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 20 22 | .....(when.output-cost.(format." |
| 81ea0 | 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 20 20 | $%6.2f.out".output-cost))....... |
| 81ec0 | 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 79 20 | ...".".(propertize.".".'display. |
| 81ee0 | 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 20 20 | `(space.:align-to.166))......... |
| 81f00 | 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 6c 6c | .cutoff)))))..............finall |
| 81f20 | 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 73 6f | y.return..............(cdr.(asso |
| 81f40 | 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 6c 73 | c.(completing-read.prompt.models |
| 81f60 | 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 6f 6e | -alist.nil.t.nil.nil........(con |
| 81f80 | 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 62 61 | cat.(gptel-backend-name.gptel-ba |
| 81fa0 | 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 65 6c | ckend).":".........(gptel--model |
| 81fc0 | 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 20 20 | -name.gptel-model)))............ |
| 81fe0 | 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 29 0a | ..............models-alist))))). |
| 82000 | 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d | .(transient-define-infix.gptel-- |
| 82020 | 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 61 74 | infix-temperature.()..."Temperat |
| 82040 | 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 6e 20 | ure.of.request."...:description. |
| 82060 | 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 70 6c | "Temperature.(0.-.2.0)"...:displ |
| 82080 | 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 65 6c | ay-nil."default"...:class.'gptel |
| 820a0 | 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 | -lisp-variable...:variable.'gpte |
| 820c0 | 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 70 74 | l-temperature...:set-value.#'gpt |
| 820e0 | 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 0a 20 | el--set-with-scope...:key."-T".. |
| 82100 | 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 20 74 | .:prompt."Temperature.controls.t |
| 82120 | 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 30 2c | he.response.randomness.(0.0-2.0, |
| 82140 | 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 20 22 | .leave.empty.for.API.default):." |
| 82160 | 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 61 | ...:reader.'gptel--transient-rea |
| 82180 | 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 66 | d-number)..(transient-define-inf |
| 821a0 | 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 20 28 | ix.gptel--infix-track-response.( |
| 821c0 | 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 6d 65 | )..."Distinguish.between.user.me |
| 821e0 | 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 6e 20 | ssages.and.LLM.responses...When. |
| 82200 | 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 68 65 | creating.a.prompt.to.send.to.the |
| 82220 | 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 65 65 | .LLM,.gptel.distinguishes.betwee |
| 82240 | 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 20 70 | n.text.entered.by.the.user.and.p |
| 82260 | 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 71 75 | ast.LLM.responses...This.is.requ |
| 82280 | 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 6f 6e | ired.for.multi-turn.conversation |
| 822a0 | 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 65 64 | s,.and.is.always.the.case.in.ded |
| 822c0 | 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 2d 6d | icated.chat.buffers.(in.`gptel-m |
| 822e0 | 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 75 20 | ode')...In.regular.buffers,.you. |
| 82300 | 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 6f 72 | can.toggle.this.behavior.here.or |
| 82320 | 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 65 73 | .by.customizing.`gptel-track-res |
| 82340 | 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 67 20 | ponse'...When.response.tracking. |
| 82360 | 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 65 20 | is.turned.off,.all.text.will.be. |
| 82380 | 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 6e 0a | assigned.the.\"user\".role.when. |
| 823a0 | 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 69 6f | querying.the.LLM."...:descriptio |
| 823c0 | 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 73 73 | n."Track.LLM.responses"...:class |
| 823e0 | 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 27 67 | .'gptel--switches...:variable.'g |
| 82400 | 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 75 65 | ptel-track-response...:set-value |
| 82420 | 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 73 70 | .#'gptel--set-with-scope...:disp |
| 82440 | 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 66 2d | lay-if-true."Yes"...:display-if- |
| 82460 | 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 73 69 | false."No"...:key."-R")..(transi |
| 82480 | 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 74 72 | ent-define-infix.gptel--infix-tr |
| 824a0 | 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 6d 20 | ack-media.()..."Send.media.from. |
| 824c0 | 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 6f 6d | \"standalone\".links.in.the.prom |
| 824e0 | 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 64 65 | pt...When.the.active.`gptel-mode |
| 82500 | 6c 27 20 73 75 70 70 6f 72 74 73 20 69 74 2c 20 67 70 74 65 6c 20 63 61 6e 20 73 65 6e 64 20 69 | l'.supports.it,.gptel.can.send.i |
| 82520 | 6d 61 67 65 73 0a 6f 72 20 6f 74 68 65 72 20 6d 65 64 69 61 20 66 72 6f 6d 20 6c 69 6e 6b 73 20 | mages.or.other.media.from.links. |
| 82540 | 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 79 0a | in.the.buffer.to.the.LLM...Only. |
| 82560 | 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 64 65 | \"standalone\".links.are.conside |
| 82580 | 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 6f 77 | red:.these.are.links.on.their.ow |
| 825a0 | 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 74 2e | n.line.with.no.surrounding.text. |
| 825c0 | 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 65 6e | ..What.link.types.are.sent.depen |
| 825e0 | 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 0a 73 | ds.on.the.mime-types.the.model.s |
| 82600 | 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 69 61 | upports...See.`gptel-track-media |
| 82620 | 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 73 63 | '.for.more.information."...:desc |
| 82640 | 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 22 0a | ription."Send.media.from.links". |
| 82660 | 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 61 72 | ..:class.'gptel--switches...:var |
| 82680 | 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 74 2d | iable.'gptel-track-media...:set- |
| 826a0 | 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... |
| 826c0 | 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 6c 61 | :display-if-true."Yes"...:displa |
| 826e0 | 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 3b 3b | y-if-false."No"...:key."-I")..;; |
| 82700 | 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 6f 76 | .**.Infixes.for.adding.and.remov |
| 82720 | 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 20 67 | ing.context..(declare-function.g |
| 82740 | 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 63 6f | ptel-context--at-point."gptel-co |
| 82760 | 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d | ntext").(declare-function.gptel- |
| 82780 | 61 64 64 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 | add."gptel-context").(declare-fu |
| 827a0 | 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 | nction.gptel-context-add-current |
| 827c0 | 2d 6b 69 6c 6c 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 | -kill."gptel-context")..(transie |
| 827e0 | 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 |
| 82800 | 6e 74 65 78 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 | ntext-add-current-kill.(&optiona |
| 82820 | 6c 20 61 72 67 29 0a 20 20 22 41 64 64 20 63 75 72 72 65 6e 74 20 6b 69 6c 6c 20 74 6f 20 67 70 | l.arg)..."Add.current.kill.to.gp |
| 82840 | 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 | tel's.context."...:transient.'tr |
| 82860 | 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 79 0a 20 20 3a 6b 65 79 20 22 43 2d 79 22 0a 20 20 | ansient--do-stay...:key."C-y"... |
| 82880 | 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d | :if.(lambda.().gptel-expert-comm |
| 828a0 | 61 6e 64 73 29 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 22 59 61 6e 6b 20 74 6f 20 | ands)...:description..."Yank.to. |
| 828c0 | 63 6f 6e 74 65 78 74 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 | context"...(interactive."P")...( |
| 828e0 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 61 | gptel-context-add-current-kill.a |
| 82900 | 72 67 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 29 29 0a 0a 28 74 72 61 6e 73 | rg)...(transient-setup))..(trans |
| 82920 | 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d | ient-define-suffix.gptel--infix- |
| 82940 | 63 6f 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 | context-add-region.()..."Add.cur |
| 82960 | 72 65 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 | rent.region.to.gptel's.context." |
| 82980 | 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 61 | ...:transient.'transient--do-sta |
| 829a0 | 79 0a 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 | y...:key."-r"...:if.(lambda.().( |
| 829c0 | 6f 72 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 | or.(use-region-p)............... |
| 829e0 | 20 20 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 | ..(and.(fboundp.'gptel-context-- |
| 82a00 | 61 74 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 | at-point)......................( |
| 82a20 | 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 29 0a 20 20 3a 64 | gptel-context--at-point))))...:d |
| 82a40 | 65 73 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 | escription...(lambda.().....(if. |
| 82a60 | 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 |
| 82a80 | 2d 70 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 | -point)..............(gptel-cont |
| 82aa0 | 65 78 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 | ext--at-point))........."Remove. |
| 82ac0 | 63 6f 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 | context.at.point"......."Add.reg |
| 82ae0 | 69 6f 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 | ion.to.context"))...(interactive |
| 82b00 | 29 0a 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 | )...(gptel-add)...(transient-set |
| 82b20 | 75 70 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 | up))..(transient-define-suffix.g |
| 82b40 | 70 74 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 | ptel--infix-context-add-buffer.( |
| 82b60 | 29 0a 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 | )..."Add.a.buffer.to.gptel's.con |
| 82b80 | 74 65 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 | text."...:transient.'transient-- |
| 82ba0 | 64 6f 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 | do-stay...:key."-b"...:descripti |
| 82bc0 | 6f 6e 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 | on."Add.a.buffer.to.context"...( |
| 82be0 | 69 6e 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 | interactive)...(gptel-add.'(4)). |
| 82c00 | 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 63 6c 61 72 65 2d 66 | ..(transient-setup))..(declare-f |
| 82c20 | 75 6e 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 | unction.gptel-add-file."gptel-co |
| 82c40 | 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d | ntext").(declare-function.gptel- |
| 82c60 | 63 6f 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 | context-remove-all."gptel-contex |
| 82c80 | 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 | t")..(transient-define-suffix.gp |
| 82ca0 | 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 20 28 29 0a 20 | tel--infix-context-add-file.().. |
| 82cc0 | 20 22 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 | ."Add.a.file.to.gptel's.context. |
| 82ce0 | 22 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 | "...:transient.'transient--do-st |
| 82d00 | 61 79 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 | ay...:key."-f"...:description."A |
| 82d20 | 64 64 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 | dd.a.file.to.context"...(interac |
| 82d40 | 74 69 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 | tive)...(call-interactively.#'gp |
| 82d60 | 74 65 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 | tel-add-file)...(transient-setup |
| 82d80 | 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 |
| 82da0 | 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 28 29 0a | el--infix-context-remove-all.(). |
| 82dc0 | 20 20 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 | .."Clear.gptel's.context."...:if |
| 82de0 | 20 28 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 | .(lambda.().gptel-context--alist |
| 82e00 | 29 0a 20 20 3a 74 72 61 6e 73 69 65 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 73 74 | )...:transient.'transient--do-st |
| 82e20 | 61 79 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 | ay...:key."-d"...:description."R |
| 82e40 | 65 6d 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 | emove.all"...(interactive)...(gp |
| 82e60 | 74 65 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 | tel-context-remove-all.t)...(tra |
| 82e80 | 6e 73 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 | nsient-setup))..;;.**.Infix.for. |
| 82ea0 | 61 64 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 | additional.directive..(transient |
| 82ec0 | 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 61 64 64 2d 64 | -define-infix.gptel--infix-add-d |
| 82ee0 | 69 72 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 | irective.()..."Additional.direct |
| 82f00 | 69 76 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 | ive.intended.for.the.next.query. |
| 82f20 | 6f 6e 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 | only...This.is.useful.to.define. |
| 82f40 | 61 20 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 | a.quick.task.on.top.of.a.more.ex |
| 82f60 | 74 65 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 | tensive.or.detailed.system.messa |
| 82f80 | 67 65 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 | ge...For.example,.with.code/text |
| 82fa0 | 20 73 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 | .selected:..-.Rewrite.this.funct |
| 82fc0 | 69 6f 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 | ion.to.do.X.while.avoiding.Y..-. |
| 82fe0 | 43 68 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 | Change.the.tone.of.the.following |
| 83000 | 20 70 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 | .paragraph.to.be.more.direct...O |
| 83020 | 72 20 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 | r.in.an.extended.conversation:.. |
| 83040 | 2d 20 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 | -.Phrase.you.next.response.in.te |
| 83060 | 6e 20 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 | n.words.or.less..-.Pretend.for.n |
| 83080 | 6f 77 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 | ow.that.you're.an.anthropologist |
| 830a0 | 2e 22 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 | ."...:class.'gptel-option-overla |
| 830c0 | 69 64 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 | id...;;.:variable.'gptel--instru |
| 830e0 | 63 74 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 | ctions...:display-nil.'none...:o |
| 83100 | 76 65 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 | verlay.nil...:argument.":"...:pr |
| 83120 | 6f 6d 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 | ompt.(concat."Add.instructions.f |
| 83140 | 6f 72 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 20 28 22 0a 20 20 20 20 20 20 20 20 | or.next.request.only.("......... |
| 83160 | 20 20 20 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 | ..........gptel--read-with-prefi |
| 83180 | 78 2d 68 65 6c 70 20 22 29 20 22 29 0a 20 20 3b 3b 20 54 4f 44 4f 3a 20 41 64 64 20 74 68 65 20 | x-help.").")...;;.TODO:.Add.the. |
| 831a0 | 61 62 69 6c 69 74 79 20 74 6f 20 65 64 69 74 20 74 68 69 73 20 69 6e 20 61 20 73 65 70 61 72 61 | ability.to.edit.this.in.a.separa |
| 831c0 | 74 65 20 62 75 66 66 65 72 2c 20 77 69 74 68 0a 20 20 3b 3b 20 60 67 70 74 65 6c 2d 2d 65 64 69 | te.buffer,.with...;;.`gptel--edi |
| 831e0 | 74 2d 64 69 72 65 63 74 69 76 65 27 2e 20 20 54 68 69 73 20 72 65 71 75 69 72 65 73 20 73 65 74 | t-directive'...This.requires.set |
| 83200 | 74 69 6e 67 20 75 70 20 67 70 74 65 6c 2d 6d 65 6e 75 20 77 69 74 68 20 74 68 65 0a 20 20 3b 3b | ting.up.gptel-menu.with.the...;; |
| 83220 | 20 72 65 73 75 6c 74 20 61 73 20 74 68 65 20 3a 73 63 6f 70 65 2e 0a 20 20 3a 72 65 61 64 65 72 | .result.as.the.:scope....:reader |
| 83240 | 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 69 6e 69 74 69 61 6c 20 68 69 73 74 6f 72 79 | .(lambda.(prompt.initial.history |
| 83260 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 69 72 65 63 74 69 76 65 0a | ).............(let*.((directive. |
| 83280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 | ....................(car-safe.(g |
| 832a0 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 67 70 74 65 6c 2d 2d 73 79 73 | ptel--parse-directive.gptel--sys |
| 832c0 | 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 72 61 77 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tem-message.'raw)))............. |
| 832e0 | 20 20 20 20 20 20 20 28 63 79 63 6c 65 2d 70 72 65 66 69 78 20 28 6c 61 6d 62 64 61 20 28 29 20 | .......(cycle-prefix.(lambda.(). |
| 83300 | 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)................... |
| 83320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 | .................(gptel--read-wi |
| 83340 | 74 68 2d 70 72 65 66 69 78 20 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 | th-prefix.directive))).......... |
| 83360 | 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 70 0a | ..........(minibuffer-local-map. |
| 83380 | 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 6f 73 | ....................(make-compos |
| 833a0 | 65 64 2d 6b 65 79 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ed-keymap......................( |
| 833c0 | 64 65 66 69 6e 65 2d 6b 65 79 6d 61 70 20 22 54 41 42 22 20 63 79 63 6c 65 2d 70 72 65 66 69 78 | define-keymap."TAB".cycle-prefix |
| 833e0 | 20 22 3c 74 61 62 3e 22 20 63 79 63 6c 65 2d 70 72 65 66 69 78 29 0a 20 20 20 20 20 20 20 20 20 | ."<tab>".cycle-prefix).......... |
| 83400 | 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 70 | ............minibuffer-local-map |
| 83420 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 78 74 72 61 20 28 6d 69 | ))....................(extra.(mi |
| 83440 | 6e 69 62 75 66 66 65 72 2d 77 69 74 68 2d 73 65 74 75 70 2d 68 6f 6f 6b 20 63 79 63 6c 65 2d 70 | nibuffer-with-setup-hook.cycle-p |
| 83460 | 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | refix........................... |
| 83480 | 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 70 72 6f 6d 70 74 20 28 6f 72 20 69 6e 69 74 69 61 | ..(read-string.prompt.(or.initia |
| 834a0 | 6c 20 22 20 22 29 20 68 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.".").history)))).............. |
| 834c0 | 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 65 78 74 72 61 29 20 | .(unless.(string-empty-p.extra). |
| 834e0 | 65 78 74 72 61 29 29 29 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 | extra)))...:format.".%k.%d.%v".. |
| 83500 | 20 3a 6b 65 79 20 22 64 22 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 3a 22 0a 20 20 3a 64 65 73 | .:key."d"...:argument.":"...:des |
| 83520 | 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 69 6e 73 74 72 75 63 74 69 6f 6e 22 0a 20 20 3a 74 72 | cription."Add.instruction"...:tr |
| 83540 | 61 6e 73 69 65 6e 74 20 74 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 20 66 6f 72 20 72 65 61 73 | ansient.t)..;;.**.Infix.for.reas |
| 83560 | 6f 6e 69 6e 67 20 62 6c 6f 63 6b 20 63 6f 6e 74 72 6f 6c 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d | oning.block.control..(transient- |
| 83580 | 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 69 6e 63 6c 75 64 | define-infix.gptel--infix-includ |
| 835a0 | 65 2d 72 65 61 73 6f 6e 69 6e 67 20 28 29 0a 20 20 22 48 6f 77 20 74 6f 20 68 61 6e 64 6c 65 20 | e-reasoning.()..."How.to.handle. |
| 835c0 | 72 65 61 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 6e 67 20 72 65 73 70 6f 6e 73 65 20 62 6c 6f 63 | reasoning/thinking.response.bloc |
| 835e0 | 6b 73 2e 0a 0a 53 6f 6d 65 20 4c 4c 4d 73 20 69 6e 63 6c 75 64 65 20 69 6e 20 74 68 65 69 72 20 | ks...Some.LLMs.include.in.their. |
| 83600 | 72 65 73 70 6f 6e 73 65 20 61 20 5c 22 74 68 69 6e 6b 69 6e 67 5c 22 20 73 65 63 74 69 6f 6e 2e | response.a.\"thinking\".section. |
| 83620 | 20 20 54 68 69 73 0a 74 65 78 74 20 69 6d 70 72 6f 76 65 73 20 74 68 65 20 71 75 61 6c 69 74 79 | ..This.text.improves.the.quality |
| 83640 | 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 66 69 6e 61 6c 20 6f 75 74 70 75 74 2c 20 62 75 74 20 | .of.the.LLM's.final.output,.but. |
| 83660 | 6d 61 79 20 6e 6f 74 0a 62 65 20 69 6e 74 65 72 65 73 74 69 6e 67 20 74 6f 20 79 6f 75 20 62 79 | may.not.be.interesting.to.you.by |
| 83680 | 20 69 74 73 65 6c 66 2e 0a 0a 59 6f 75 20 63 61 6e 20 63 6f 6e 74 72 6f 6c 20 68 6f 77 20 67 70 | .itself...You.can.control.how.gp |
| 836a0 | 74 65 6c 20 73 68 6f 75 6c 64 20 68 61 6e 64 6c 65 20 74 68 65 20 74 68 69 6e 6b 69 6e 67 20 62 | tel.should.handle.the.thinking.b |
| 836c0 | 6c 6f 63 6b 73 20 76 69 61 0a 74 68 69 73 20 6f 70 74 69 6f 6e 2c 20 6f 72 20 62 79 20 73 65 74 | locks.via.this.option,.or.by.set |
| 836e0 | 74 69 6e 67 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 | ting.the.variable.`gptel-include |
| 83700 | 2d 72 65 61 73 6f 6e 69 6e 67 27 0a 76 69 61 20 65 6c 69 73 70 2c 20 77 68 69 63 68 20 73 65 65 | -reasoning'.via.elisp,.which.see |
| 83720 | 2e 0a 0a 41 76 61 69 6c 61 62 6c 65 20 62 65 68 61 76 69 6f 72 73 20 61 72 65 0a 2d 20 74 6f 20 | ...Available.behaviors.are.-.to. |
| 83740 | 69 6e 63 6c 75 64 65 20 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 73 20 77 69 74 68 20 74 68 65 | include.thinking.blocks.with.the |
| 83760 | 20 72 65 73 70 6f 6e 73 65 2c 0a 2d 20 74 6f 20 6f 6d 69 74 20 74 68 65 6d 20 65 6e 74 69 72 65 | .response,.-.to.omit.them.entire |
| 83780 | 6c 79 2c 0a 2d 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 6d 20 62 75 74 20 69 67 6e 6f 72 65 | ly,.-.to.include.them.but.ignore |
| 837a0 | 20 74 68 65 6d 20 69 6e 20 63 6f 6e 73 65 71 75 65 6e 74 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e | .them.in.consequent.conversation |
| 837c0 | 20 74 75 72 6e 73 2c 20 61 6e 64 0a 2d 20 74 6f 20 61 70 70 65 6e 64 20 74 68 65 6d 20 74 6f 20 | .turns,.and.-.to.append.them.to. |
| 837e0 | 61 20 62 75 66 66 65 72 20 6f 66 20 79 6f 75 72 20 63 68 6f 6f 73 69 6e 67 2e 22 0a 20 20 3a 64 | a.buffer.of.your.choosing."...:d |
| 83800 | 65 73 63 72 69 70 74 69 6f 6e 20 22 49 6e 63 6c 75 64 65 20 72 65 61 73 6f 6e 69 6e 67 22 0a 20 | escription."Include.reasoning".. |
| 83820 | 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...: |
| 83840 | 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e | variable.'gptel-include-reasonin |
| 83860 | 67 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 73 65 74 2d 76 | g...:format.".%k.%d.%v"...:set-v |
| 83880 | 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 3a | alue.#'gptel--set-with-scope...: |
| 838a0 | 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 4e 6f 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 | display-nil."No"...:display-map. |
| 838c0 | 27 28 28 6e 69 6c 20 20 20 20 2e 20 22 4e 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | '((nil......"No")............... |
| 838e0 | 20 20 20 28 69 67 6e 6f 72 65 20 2e 20 22 61 6e 64 20 69 67 6e 6f 72 65 22 29 0a 20 20 20 20 20 | ...(ignore..."and.ignore")...... |
| 83900 | 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 20 2e 20 22 77 69 74 68 20 72 65 73 70 | ............(t........"with.resp |
| 83920 | 6f 6e 73 65 22 29 29 0a 20 20 3a 6b 65 79 20 22 2d 76 22 0a 20 20 3a 70 72 6f 6d 70 74 20 22 49 | onse"))...:key."-v"...:prompt."I |
| 83940 | 6e 63 6c 75 64 65 20 72 65 61 73 6f 6e 69 6e 67 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 28 6c | nclude.reasoning:."...:reader.(l |
| 83960 | 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 | ambda.(prompt.&rest._).......... |
| 83980 | 20 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 6e 6f 22 20 20 20 20 20 2e | ...(let*.((choices.'(("no"...... |
| 839a0 | 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)........................... |
| 839c0 | 20 20 20 20 28 22 69 67 6e 6f 72 65 22 20 2e 20 69 67 6e 6f 72 65 29 0a 20 20 20 20 20 20 20 20 | ....("ignore"...ignore)......... |
| 839e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 79 65 73 22 20 20 20 20 | ......................("yes".... |
| 83a00 | 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)............................ |
| 83a20 | 20 20 20 28 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 20 2e 20 62 75 66 66 65 72 29 29 29 0a 20 | ...("other.buffer"...buffer))).. |
| 83a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 73 74 69 6e 61 74 69 6f 6e 0a 20 | ..................(destination.. |
| 83a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 | ...................(completing-r |
| 83a80 | 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 20 | ead.prompt.choices.nil.t)))..... |
| 83aa0 | 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 64 65 73 74 69 6e 61 74 69 6f 6e | ..........(if.(equal.destination |
| 83ac0 | 20 22 6f 74 68 65 72 20 62 75 66 66 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."other.buffer")................ |
| 83ae0 | 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 41 70 70 65 6e 64 20 72 65 61 73 6f 6e 69 6e | ...(read-buffer."Append.reasonin |
| 83b00 | 67 20 74 6f 20 62 75 66 66 65 72 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g.to.buffer:.")................. |
| 83b20 | 28 63 64 72 20 28 61 73 73 6f 63 20 64 65 73 74 69 6e 61 74 69 6f 6e 20 63 68 6f 69 63 65 73 29 | (cdr.(assoc.destination.choices) |
| 83b40 | 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 74 6f 6f 6c 20 75 73 | )))))..;;.**.Infixes.for.tool.us |
| 83b60 | 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c | e..(transient-define-infix.gptel |
| 83b80 | 2d 2d 69 6e 66 69 78 2d 75 73 65 2d 74 6f 6f 6c 73 20 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 | --infix-use-tools.()..."Whether. |
| 83ba0 | 4c 4c 4d 20 74 6f 6f 6c 20 75 73 65 20 77 69 74 68 20 67 70 74 65 6c 20 69 73 20 65 6e 61 62 6c | LLM.tool.use.with.gptel.is.enabl |
| 83bc0 | 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 2e | ed...This.is.a.three-way.toggle. |
| 83be0 | 20 20 41 73 73 75 6d 69 6e 67 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 74 6f 6f 6c 73 20 74 6f 20 | ..Assuming.one.or.more.tools.to. |
| 83c00 | 62 65 0a 73 65 6e 74 20 77 69 74 68 20 72 65 71 75 65 73 74 73 20 68 61 76 65 20 62 65 65 6e 20 | be.sent.with.requests.have.been. |
| 83c20 | 73 65 6c 65 63 74 65 64 2c 20 74 6f 6f 6c 20 75 73 65 20 63 61 6e 20 62 65 0a 0a 2d 20 64 69 73 | selected,.tool.use.can.be..-.dis |
| 83c40 | 61 62 6c 65 64 2c 0a 2d 20 65 6e 61 62 6c 65 64 2c 20 77 68 65 72 65 20 74 68 65 20 4c 4c 4d 20 | abled,.-.enabled,.where.the.LLM. |
| 83c60 | 6d 61 79 20 63 68 6f 6f 73 65 20 74 6f 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 74 6f 6f 6c 20 | may.choose.to.respond.with.tool. |
| 83c80 | 63 61 6c 6c 73 0a 2d 20 66 6f 72 63 65 64 2c 20 77 68 65 72 65 20 74 68 65 20 4c 4c 4d 20 6d 75 | calls.-.forced,.where.the.LLM.mu |
| 83ca0 | 73 74 20 72 65 73 70 6f 6e 64 20 77 69 74 68 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 74 6f 6f 6c | st.respond.with.one.or.more.tool |
| 83cc0 | 20 63 61 6c 6c 73 2e 0a 0a 59 6f 75 20 63 61 6e 20 73 65 74 20 74 68 69 73 20 68 65 72 65 20 6f | .calls...You.can.set.this.here.o |
| 83ce0 | 72 20 62 79 20 63 75 73 74 6f 6d 69 7a 69 6e 67 20 60 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c | r.by.customizing.`gptel-use-tool |
| 83d00 | 73 27 2c 20 77 68 69 63 68 0a 73 65 65 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | s',.which.see."...:description." |
| 83d20 | 55 73 65 20 74 6f 6f 6c 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d | Use.tools"...:class.'gptel-lisp- |
| 83d40 | 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 75 73 65 2d | variable...:variable.'gptel-use- |
| 83d60 | 74 6f 6f 6c 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 28 6c 61 6d 62 64 61 20 28 73 79 6d 20 | tools...:set-value.(lambda.(sym. |
| 83d80 | 76 61 6c 75 65 20 73 63 6f 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 | value.scope)................(gpt |
| 83da0 | 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 73 79 6d 20 76 61 6c 75 65 20 73 63 6f | el--set-with-scope.sym.value.sco |
| 83dc0 | 70 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 | pe)................(transient-se |
| 83de0 | 74 75 70 29 29 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 6f 66 66 22 0a 20 20 3a 64 69 | tup))...:display-nil."off"...:di |
| 83e00 | 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 20 20 2e 20 22 6f 66 66 22 29 0a 20 20 20 20 | splay-map.'((nil....."off")..... |
| 83e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 20 20 2e 20 22 6f 6e 22 29 0a 20 20 20 20 | .............(t......."on")..... |
| 83e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 63 65 20 2e 20 22 66 6f 72 63 65 22 29 29 0a | .............(force..."force")). |
| 83e60 | 20 20 3a 70 72 6f 6d 70 74 20 22 55 73 65 20 74 6f 6f 6c 73 3f 20 22 0a 20 20 3a 72 65 61 64 65 | ..:prompt."Use.tools?."...:reade |
| 83e80 | 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 | r.(lambda.(prompt.&rest._)...... |
| 83ea0 | 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 64 69 73 61 62 | .......(let*.((choices.'(("disab |
| 83ec0 | 6c 65 22 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | le"...nil)...................... |
| 83ee0 | 20 20 20 20 20 20 20 20 20 28 22 65 6e 61 62 6c 65 22 20 20 2e 20 74 29 0a 20 20 20 20 20 20 20 | .........("enable"....t)........ |
| 83f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 66 6f 72 63 65 22 20 | .......................("force". |
| 83f20 | 20 20 2e 20 66 6f 72 63 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....force))).................... |
| 83f40 | 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 68 | (pref.(completing-read.prompt.ch |
| 83f60 | 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 | oices.nil.t)))...............(cd |
| 83f80 | 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 0a 20 20 3a 6b 65 79 | r.(assoc.pref.choices))))...:key |
| 83fa0 | 20 22 2d 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 | ."-t")..(transient-define-infix. |
| 83fc0 | 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 63 6f 6e 66 69 72 6d 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 | gptel--infix-confirm-tool-calls. |
| 83fe0 | 28 29 0a 20 20 22 57 68 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 73 68 6f 75 6c 64 20 | ()..."Whether.tool.calls.should. |
| 84000 | 77 61 69 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f 20 72 75 6e 20 74 68 65 6d 2e 0a 0a | wait.for.the.user.to.run.them... |
| 84020 | 54 68 69 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 20 62 65 74 77 65 | This.is.a.three-way.toggle.betwe |
| 84040 | 65 6e 20 74 68 65 73 65 20 62 65 68 61 76 69 6f 72 73 3a 0a 0a 2d 20 41 6c 6c 20 74 6f 6f 6c 20 | en.these.behaviors:..-.All.tool. |
| 84060 | 63 61 6c 6c 73 20 72 75 6e 20 77 69 74 68 6f 75 74 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 2e 0a | calls.run.without.confirmation.. |
| 84080 | 2d 20 41 6c 6c 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 77 61 69 74 20 66 6f 72 20 63 6f 6e 66 69 72 | -.All.tool.calls.wait.for.confir |
| 840a0 | 6d 61 74 69 6f 6e 2e 0a 2d 20 44 65 63 69 64 65 64 20 70 65 72 2d 74 6f 6f 6c 2c 20 61 63 63 6f | mation..-.Decided.per-tool,.acco |
| 840c0 | 72 64 69 6e 67 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 74 6f 6f 6c 20 73 | rding.to.the.value.of.the.tool.s |
| 840e0 | 70 65 63 27 73 0a 20 20 3a 63 6f 6e 66 69 72 6d 20 73 6c 6f 74 2e 0a 0a 54 68 69 73 20 73 65 74 | pec's...:confirm.slot...This.set |
| 84100 | 73 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d 74 6f | s.the.variable.`gptel-confirm-to |
| 84120 | 6f 6c 2d 63 61 6c 6c 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 6b 65 79 20 22 2d | ol-calls',.which.see."...:key."- |
| 84140 | 63 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 66 69 72 6d 20 74 6f 6f 6c 20 | c"...:description."Confirm.tool. |
| 84160 | 63 61 6c 6c 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 | calls"...:class.'gptel-lisp-vari |
| 84180 | 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 63 6f 6e 66 69 72 6d 2d | able...:variable.'gptel-confirm- |
| 841a0 | 74 6f 6f 6c 2d 63 61 6c 6c 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d | tool-calls...:set-value.#'gptel- |
| 841c0 | 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 | -set-with-scope...:display-nil." |
| 841e0 | 6e 65 76 65 72 22 0a 20 20 3a 64 69 73 70 6c 61 79 2d 6d 61 70 20 27 28 28 6e 69 6c 20 2e 20 22 | never"...:display-map.'((nil..." |
| 84200 | 6e 65 76 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 20 20 2e 20 | never")..................(t..... |
| 84220 | 22 61 6c 77 61 79 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f | "always")..................(auto |
| 84240 | 20 2e 20 22 61 75 74 6f 22 29 29 0a 20 20 3a 70 72 6f 6d 70 74 20 22 54 6f 6f 6c 20 63 61 6c 6c | ..."auto"))...:prompt."Tool.call |
| 84260 | 73 20 72 65 71 75 69 72 65 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 3f 20 22 0a 20 20 3a 72 65 61 | s.require.confirmation?."...:rea |
| 84280 | 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._).... |
| 842a0 | 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 6f 22 | .........(let*.((choices.'(("no" |
| 842c0 | 20 20 20 2e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....nil)....................... |
| 842e0 | 20 20 20 20 20 20 20 20 28 22 61 6c 77 61 79 73 22 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 | ........("always"...t).......... |
| 84300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 20 64 65 63 69 | .....................("tool.deci |
| 84320 | 64 65 73 22 20 2e 20 61 75 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | des"...auto))).................. |
| 84340 | 20 20 28 70 72 65 66 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 | ..(pref.(completing-read.prompt. |
| 84360 | 63 68 6f 69 63 65 73 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | choices.nil.t)))...............( |
| 84380 | 63 64 72 20 28 61 73 73 6f 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a 0a 28 74 | cdr.(assoc.pref.choices)))))..(t |
| 843a0 | 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 | ransient-define-infix.gptel--inf |
| 843c0 | 69 78 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 29 0a 20 20 22 57 68 | ix-include-tool-results.()..."Wh |
| 843e0 | 65 74 68 65 72 20 74 6f 6f 6c 20 63 61 6c 6c 20 72 65 73 75 6c 74 73 20 73 68 6f 75 6c 64 20 62 | ether.tool.call.results.should.b |
| 84400 | 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 | e.included.in.the.response...Thi |
| 84420 | 73 20 69 73 20 61 20 74 68 72 65 65 2d 77 61 79 20 74 6f 67 67 6c 65 20 62 65 74 77 65 65 6e 20 | s.is.a.three-way.toggle.between. |
| 84440 | 74 68 65 73 65 20 62 65 68 61 76 69 6f 72 73 3a 0a 0a 2d 20 41 6c 6c 20 74 6f 6f 6c 20 72 65 73 | these.behaviors:..-.All.tool.res |
| 84460 | 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e 0a 2d 20 4e 6f 20 74 6f 6f 6c 20 72 65 73 | ults.are.included..-.No.tool.res |
| 84480 | 75 6c 74 73 20 61 72 65 20 69 6e 63 6c 75 64 65 64 2e 0a 2d 20 44 65 63 69 64 65 64 20 70 65 72 | ults.are.included..-.Decided.per |
| 844a0 | 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 20 6f 66 | -tool,.according.to.the.value.of |
| 844c0 | 20 74 68 65 20 74 6f 6f 6c 20 73 70 65 63 27 73 0a 20 20 3a 69 6e 63 6c 75 64 65 20 73 6c 6f 74 | .the.tool.spec's...:include.slot |
| 844e0 | 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 74 65 6c | ...This.sets.the.variable.`gptel |
| 84500 | 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 27 2c 20 77 68 69 63 68 20 73 65 | -include-tool-results',.which.se |
| 84520 | 65 2e 22 0a 20 20 3a 6b 65 79 20 22 2d 69 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | e."...:key."-i"...:description." |
| 84540 | 49 6e 63 6c 75 64 65 20 72 65 73 75 6c 74 73 20 20 20 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 | Include.results..."...:class.'gp |
| 84560 | 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 |
| 84580 | 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 0a 20 20 3a 73 65 74 | ptel-include-tool-results...:set |
| 845a0 | 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 | -value.#'gptel--set-with-scope.. |
| 845c0 | 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 22 6e 65 76 65 72 22 0a 20 20 3a 64 69 73 70 6c 61 79 | .:display-nil."never"...:display |
| 845e0 | 2d 6d 61 70 20 27 28 28 6e 69 6c 20 2e 20 22 6e 65 76 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 | -map.'((nil..."never").......... |
| 84600 | 20 20 20 20 20 20 20 20 28 74 20 20 20 2e 20 22 61 6c 77 61 79 73 22 29 0a 20 20 20 20 20 20 20 | ........(t....."always")........ |
| 84620 | 20 20 20 20 20 20 20 20 20 20 28 61 75 74 6f 20 2e 20 22 61 75 74 6f 22 29 29 0a 20 20 3a 70 72 | ..........(auto..."auto"))...:pr |
| 84640 | 6f 6d 70 74 20 22 49 6e 63 6c 75 64 65 20 74 6f 6f 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 4c | ompt."Include.tool.results.in.LL |
| 84660 | 4d 20 72 65 73 70 6f 6e 73 65 3f 20 22 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 | M.response?."...:reader.(lambda. |
| 84680 | 28 70 72 6f 6d 70 74 20 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 | (prompt.&rest._).............(le |
| 846a0 | 74 2a 20 28 28 63 68 6f 69 63 65 73 20 27 28 28 22 6e 65 76 65 72 22 20 20 20 2e 20 6e 69 6c 29 | t*.((choices.'(("never".....nil) |
| 846c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 846e0 | 22 61 6c 77 61 79 73 22 20 2e 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "always"...t)................... |
| 84700 | 20 20 20 20 20 20 20 20 20 20 20 20 28 22 74 6f 6f 6c 20 64 65 63 69 64 65 73 22 20 2e 20 61 75 | ............("tool.decides"...au |
| 84720 | 74 6f 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 20 28 | to)))....................(pref.( |
| 84740 | 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 20 6e | completing-read.prompt.choices.n |
| 84760 | 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f | il.t)))...............(cdr.(asso |
| 84780 | 63 20 70 72 65 66 20 63 68 6f 69 63 65 73 29 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e | c.pref.choices)))))....;;.*.Tran |
| 847a0 | 73 69 65 6e 74 20 53 75 66 66 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 20 74 6f 20 | sient.Suffixes..;;.**.Suffix.to. |
| 847c0 | 73 65 6e 64 20 70 72 6f 6d 70 74 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 | send.prompt..(transient-define-s |
| 847e0 | 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 28 61 72 67 73 29 0a | uffix.gptel--suffix-send.(args). |
| 84800 | 20 20 22 53 65 6e 64 20 41 52 47 53 2e 22 0a 20 20 3a 6b 65 79 20 22 52 45 54 22 0a 20 20 3a 64 | .."Send.ARGS."...:key."RET"...:d |
| 84820 | 65 73 63 72 69 70 74 69 6f 6e 20 23 27 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 2d 73 75 66 | escription.#'gptel--describe-suf |
| 84840 | 66 69 78 2d 73 65 6e 64 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 74 | fix-send...(interactive.(list.(t |
| 84860 | 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ransient-args................... |
| 84880 | 20 20 20 20 28 6f 72 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e | ....(or.transient-current-comman |
| 848a0 | 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 74 72 65 61 | d.'gptel-menu))))...(let.((strea |
| 848c0 | 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 20 20 20 20 20 20 20 20 28 69 6e 2d 70 6c 61 63 | m.gptel-stream).........(in-plac |
| 848e0 | 65 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 69 22 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 | e.(and.(member."i".args).t)).... |
| 84900 | 20 20 20 20 20 28 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 29 0a | .....(output-to-other-buffer-p). |
| 84920 | 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a | ........(backend.gptel-backend). |
| 84940 | 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 | ........(model.gptel-model)..... |
| 84960 | 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 | ....(backend-name.(gptel-backend |
| 84980 | 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 28 62 | -name.gptel-backend)).........(b |
| 849a0 | 75 66 66 65 72 29 20 28 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 63 61 6c 6c 62 | uffer).(position).........(callb |
| 849c0 | 61 63 6b 29 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 | ack).(gptel-buffer-name)........ |
| 849e0 | 20 28 73 79 73 74 65 6d 2d 65 78 74 72 61 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 64 69 72 65 63 | .(system-extra.(gptel--get-direc |
| 84a00 | 74 69 76 65 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 28 64 72 79 2d 72 75 6e 20 28 61 6e | tive.args)).........(dry-run.(an |
| 84a20 | 64 20 28 6d 65 6d 62 65 72 20 22 49 22 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 | d.(member."I".args).t))......... |
| 84a40 | 3b 3b 20 49 6e 70 75 74 20 72 65 64 69 72 65 63 74 69 6f 6e 3a 20 67 72 61 62 20 70 72 6f 6d 70 | ;;.Input.redirection:.grab.promp |
| 84a60 | 74 20 66 72 6f 6d 20 65 6c 73 65 77 68 65 72 65 3f 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 | t.from.elsewhere?.........(promp |
| 84a80 | 74 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d | t..........(cond...........((mem |
| 84aa0 | 62 65 72 20 22 6d 22 20 61 72 67 73 29 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 6d 69 6e 69 62 | ber."m".args).(gptel--read-minib |
| 84ac0 | 75 66 66 65 72 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 | uffer-prompt))...........((membe |
| 84ae0 | 72 20 22 79 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 | r."y".args)............(unless.( |
| 84b00 | 63 61 72 2d 73 61 66 65 20 6b 69 6c 6c 2d 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | car-safe.kill-ring)............. |
| 84b20 | 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 60 6b 69 6c 6c 2d 72 69 6e 67 27 20 69 73 20 65 6d 70 | .(user-error."`kill-ring'.is.emp |
| 84b40 | 74 79 21 20 20 4e 6f 74 68 69 6e 67 20 74 6f 20 73 65 6e 64 22 29 29 0a 20 20 20 20 20 20 20 20 | ty!..Nothing.to.send"))......... |
| 84b60 | 20 20 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 | ...(if.current-prefix-arg....... |
| 84b80 | 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6b 69 6c 6c 2d 72 69 6e 67 20 22 50 | .........(read-from-kill-ring."P |
| 84ba0 | 72 6f 6d 70 74 20 66 72 6f 6d 20 6b 69 6c 6c 2d 72 69 6e 67 3a 20 22 29 0a 20 20 20 20 20 20 20 | rompt.from.kill-ring:.")........ |
| 84bc0 | 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 30 29 29 29 29 29 29 0a 0a 20 20 20 | ......(current-kill.0))))))..... |
| 84be0 | 20 3b 3b 20 4f 75 74 70 75 74 20 72 65 64 69 72 65 63 74 69 6f 6e 3a 20 53 65 6e 64 20 72 65 73 | .;;.Output.redirection:.Send.res |
| 84c00 | 70 6f 6e 73 65 20 65 6c 73 65 77 68 65 72 65 3f 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 | ponse.elsewhere?.....(cond...... |
| 84c20 | 28 28 6d 65 6d 62 65 72 20 22 65 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 | ((member."e".args).......(setq.s |
| 84c40 | 74 72 65 61 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 0a | tream.nil).......(setq.callback. |
| 84c60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 20 69 6e 66 6f 20 26 | ............(lambda.(resp.info.& |
| 84c80 | 6f 70 74 69 6f 6e 61 6c 20 5f 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 | optional._raw)...............(pc |
| 84ca0 | 61 73 65 20 72 65 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 70 72 65 64 20 | ase.resp.................((pred. |
| 84cc0 | 73 74 72 69 6e 67 70 29 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 3a 20 | stringp).(message."%s.response:. |
| 84ce0 | 25 73 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 72 65 73 70 29 29 0a 20 20 20 20 20 20 20 20 | %s".backend-name.resp))......... |
| 84d00 | 20 20 20 20 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 | ........(`(tool-call...,tool-cal |
| 84d20 | 6c 73 29 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 74 | ls).(gptel--display-tool-calls.t |
| 84d40 | 6f 6f 6c 2d 63 61 6c 6c 73 20 69 6e 66 6f 20 27 6d 69 6e 69 62 75 66 66 65 72 29 29 0a 20 20 20 | ool-calls.info.'minibuffer)).... |
| 84d60 | 20 20 20 20 20 20 20 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 | .............(`(tool-result...,t |
| 84d80 | 6f 6f 6c 2d 72 65 73 75 6c 74 73 29 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f | ool-results).(gptel--display-too |
| 84da0 | 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 0a 20 20 | l-results.tool-results.info))... |
| 84dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 5f 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 75 6c | ..............(_.(when.(and.(nul |
| 84de0 | 6c 20 72 65 73 70 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 29 29 | l.resp).(plist-get.info.:error)) |
| 84e00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | ......................(message." |
| 84e20 | 25 73 20 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 | %s.response.error:.%s".......... |
| 84e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d | .....................backend-nam |
| 84e60 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 29 29 29 | e.(plist-get.info.:status))))))) |
| 84e80 | 29 0a 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 6b 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 | )......((member."k".args)....... |
| 84ea0 | 28 73 65 74 71 20 73 74 72 65 61 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 61 | (setq.stream.nil).......(setq.ca |
| 84ec0 | 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 72 65 73 70 | llback.............(lambda.(resp |
| 84ee0 | 20 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 72 61 77 29 0a 20 20 20 20 20 20 20 20 20 20 | .info.&optional._raw)........... |
| 84f00 | 20 20 20 20 28 70 63 61 73 65 20 72 65 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(pcase.resp................. |
| 84f20 | 28 28 70 72 65 64 20 73 74 72 69 6e 67 70 29 20 28 6b 69 6c 6c 2d 6e 65 77 20 72 65 73 70 29 0a | ((pred.stringp).(kill-new.resp). |
| 84f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 | .................(message."%s.re |
| 84f60 | 73 70 6f 6e 73 65 3a 20 5c 22 25 73 5c 22 20 63 6f 70 69 65 64 20 74 6f 20 6b 69 6c 6c 2d 72 69 | sponse:.\"%s\".copied.to.kill-ri |
| 84f80 | 6e 67 2e 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ng.".backend-name............... |
| 84fa0 | 20 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 | ............(truncate-string-to- |
| 84fc0 | 77 69 64 74 68 20 72 65 73 70 20 33 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | width.resp.30)))................ |
| 84fe0 | 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 20 28 67 70 | .(`(tool-call...,tool-calls).(gp |
| 85000 | 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 63 61 6c 6c 73 20 74 6f 6f 6c 2d 63 61 6c | tel--display-tool-calls.tool-cal |
| 85020 | 6c 73 20 69 6e 66 6f 20 27 6d 69 6e 69 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ls.info.'minibuffer))........... |
| 85040 | 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 |
| 85060 | 75 6c 74 73 29 20 28 67 70 74 65 6c 2d 2d 64 69 73 70 6c 61 79 2d 74 6f 6f 6c 2d 72 65 73 75 6c | ults).(gptel--display-tool-resul |
| 85080 | 74 73 20 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 | ts.tool-results.info)).......... |
| 850a0 | 20 20 20 20 20 20 20 28 5f 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 75 6c 6c 20 72 65 73 70 29 | .......(_.(when.(and.(null.resp) |
| 850c0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 65 72 72 6f 72 29 29 0a 20 20 20 20 20 20 | .(plist-get.info.:error))....... |
| 850e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 72 65 73 70 | ...............(message."%s.resp |
| 85100 | 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 | onse.error:.%s".backend-name.... |
| 85120 | 20 20 20 20 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 |
| 85140 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 | t-get.info.:status))))))))...... |
| 85160 | 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........ |
| 85180 | 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.( |
| 851a0 | 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 67 22 20 | stringp.s).(string-prefix-p."g". |
| 851c0 | 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).............................. |
| 851e0 | 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)))........... |
| 85200 | 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 |
| 85220 | 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)....... |
| 85240 | 28 6c 65 74 2a 20 28 28 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 20 20 20 20 20 20 20 20 20 20 | (let*.((reduced-prompt.......... |
| 85260 | 20 20 3b 46 6f 72 20 69 6e 73 65 72 74 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 | ..;For.inserting.into.the.gptel. |
| 85280 | 62 75 66 66 65 72 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer.as....................... |
| 852a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 63 6f 6e 74 65 78 74 2c 20 6e 6f 74 20 | ..................;context,.not. |
| 852c0 | 74 68 65 20 70 72 6f 6d 70 74 20 75 73 65 64 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 20 20 20 | the.prompt.used.for.the......... |
| 852e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 85300 | 3b 72 65 71 75 65 73 74 20 69 74 73 65 6c 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f | ;request.itself...............(o |
| 85320 | 72 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | r.prompt...................(if.( |
| 85340 | 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 20 20 | use-region-p)................... |
| 85360 | 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 | ....(buffer-substring-no-propert |
| 85380 | 69 65 73 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 | ies.(region-beginning).......... |
| 853a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 853c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 | .............(region-end))...... |
| 853e0 | 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 67 | ...............(buffer-substring |
| 85400 | 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.................. |
| 85420 | 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............. |
| 85440 | 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 | ...........(text-property-search |
| 85460 | 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 20 20 20 20 20 20 20 | -backward....................... |
| 85480 | 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..'gptel.'response.............. |
| 854a0 | 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 2d 70 72 6f 70 65 | ...........(when.(get-char-prope |
| 854c0 | 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 70 6f 69 6e 74 29 | rty.(max.(point-min).(1-.(point) |
| 854e0 | 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 | )).............................. |
| 85500 | 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 0a 20 20 20 20 | ....................'gptel)..... |
| 85520 | 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 20 20 20 20 | ......................t))....... |
| 85540 | 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 20 20 20 | .................(point))....... |
| 85560 | 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 2d 65 | ...............(gptel--at-word-e |
| 85580 | 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 | nd.(point))))))..............(gp |
| 855a0 | 74 65 6c 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 | tel-buffer.(get-buffer.gptel-buf |
| 855c0 | 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 | fer-name))..............(gptel-b |
| 855e0 | 75 66 66 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 62 75 | uffer-mode...............(if.(bu |
| 85600 | 66 66 65 72 2d 6c 69 76 65 2d 70 20 67 70 74 65 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 | ffer-live-p.gptel-buffer)....... |
| 85620 | 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 | ............(buffer-local-value. |
| 85640 | 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 | 'major-mode.gptel-buffer)....... |
| 85660 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 29 0a | ..........gptel-default-mode))). |
| 85680 | 20 20 20 20 20 20 20 20 3b 3b 20 41 64 64 20 63 6f 64 65 20 66 65 6e 63 65 73 20 6f 72 20 4f 72 | ........;;.Add.code.fences.or.Or |
| 856a0 | 67 20 73 72 63 20 6d 61 72 6b 65 72 73 20 61 72 6f 75 6e 64 20 74 68 65 20 72 65 64 75 63 65 64 | g.src.markers.around.the.reduced |
| 856c0 | 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 6d 61 6a 6f 72 | -prompt.........(cond.((eq.major |
| 856e0 | 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 | -mode.gptel-buffer-mode))....... |
| 85700 | 20 20 20 20 20 20 20 20 28 28 70 72 6f 76 69 64 65 64 2d 6d 6f 64 65 2d 64 65 72 69 76 65 64 2d | ........((provided-mode-derived- |
| 85720 | 70 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6d 6f 64 65 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 | p.gptel-buffer-mode.'org-mode).. |
| 85740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 64 75 63 65 64 2d 70 72 6f 6d | ..............(setq.reduced-prom |
| 85760 | 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e | pt......................(if.(con |
| 85780 | 73 70 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 3b 65 69 74 68 65 72 20 28 72 65 67 69 6f | sp.reduced-prompt);either.(regio |
| 857a0 | 6e 20 2e 20 70 72 6f 6d 70 74 29 20 6f 72 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 | n...prompt).or.prompt........... |
| 857c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 61 6e 64 20 28 63 61 72 | ...............(concat.(and.(car |
| 857e0 | 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .reduced-prompt)................ |
| 85800 | 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 22 | .......................(concat." |
| 85820 | 23 2b 62 65 67 69 6e 5f 73 72 63 20 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 | #+begin_src.".(gptel--strip-mode |
| 85840 | 2d 73 75 66 66 69 78 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 | -suffix.major-mode)............. |
| 85860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 85880 | 20 20 22 5c 6e 22 20 28 63 61 72 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 20 22 5c 6e 23 | .."\n".(car.reduced-prompt)."\n# |
| 858a0 | 2b 65 6e 64 5f 73 72 63 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | +end_src\n\n"))................. |
| 858c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 65 64 75 63 65 64 2d 70 72 | .................(cdr.reduced-pr |
| 858e0 | 6f 6d 70 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 28 63 | ompt))........................(c |
| 85900 | 6f 6e 63 61 74 20 22 23 2b 62 65 67 69 6e 5f 73 72 63 20 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 | oncat."#+begin_src.".(gptel--str |
| 85920 | 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 | ip-mode-suffix.major-mode)...... |
| 85940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 28 | .........................."\n".( |
| 85960 | 6f 72 20 28 63 64 72 2d 73 61 66 65 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 20 72 65 64 | or.(cdr-safe.reduced-prompt).red |
| 85980 | 75 63 65 64 2d 70 72 6f 6d 70 74 29 20 22 5c 6e 23 2b 65 6e 64 5f 73 72 63 22 29 29 29 29 0a 20 | uced-prompt)."\n#+end_src")))).. |
| 859a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 72 65 64 75 63 65 64 2d 70 72 | .............(t.(setq.reduced-pr |
| 859c0 | 6f 6d 70 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 69 66 20 | ompt........................(if. |
| 859e0 | 28 63 6f 6e 73 70 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 3b 65 69 74 68 65 72 20 28 72 | (consp.reduced-prompt);either.(r |
| 85a00 | 65 67 69 6f 6e 20 2e 20 70 72 6f 6d 70 74 29 20 6f 72 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 | egion...prompt).or.prompt....... |
| 85a20 | 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 61 6e | .....................(concat.(an |
| 85a40 | 64 20 28 63 61 72 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 | d.(car.reduced-prompt).......... |
| 85a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 85a80 | 63 6f 6e 63 61 74 20 20 22 60 60 60 20 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 | concat.."```.".(gptel--strip-mod |
| 85aa0 | 65 2d 73 75 66 66 69 78 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 20 22 5c 6e 22 0a 20 20 20 20 20 20 | e-suffix.major-mode)."\n"....... |
| 85ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 85ae0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 20 | ...........(car.reduced-prompt). |
| 85b00 | 22 5c 6e 60 60 60 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "\n```\n\n"))................... |
| 85b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 65 64 75 63 65 64 2d 70 72 | .................(cdr.reduced-pr |
| 85b40 | 6f 6d 70 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 | ompt)).......................... |
| 85b60 | 28 63 6f 6e 63 61 74 20 22 60 60 60 20 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 | (concat."```.".(gptel--strip-mod |
| 85b80 | 65 2d 73 75 66 66 69 78 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 20 22 5c 6e 22 0a 20 20 20 20 20 20 | e-suffix.major-mode)."\n"....... |
| 85ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 | ...........................(or.( |
| 85bc0 | 63 64 72 2d 73 61 66 65 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 20 72 65 64 75 63 65 64 | cdr-safe.reduced-prompt).reduced |
| 85be0 | 2d 70 72 6f 6d 70 74 29 20 22 5c 6e 60 60 60 22 20 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 | -prompt)."\n```".))))).........( |
| 85c00 | 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 67 70 | cond..........((buffer-live-p.gp |
| 85c20 | 74 65 6c 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 | tel-buffer)...........;;.Insert. |
| 85c40 | 69 6e 74 6f 20 65 78 69 73 74 69 6e 67 20 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 0a 20 20 20 20 | into.existing.gptel.session..... |
| 85c60 | 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 29 | ......(setq.buffer.gptel-buffer) |
| 85c80 | 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 | ...........(with-current-buffer. |
| 85ca0 | 62 75 66 66 65 72 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 70 | buffer.............(goto-char.(p |
| 85cc0 | 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 | oint-max)).............(unless.( |
| 85ce0 | 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............. |
| 85d00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 | ............(get-char-property.( |
| 85d20 | 70 6f 69 6e 74 29 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | point).'read-only))............. |
| 85d40 | 20 20 28 75 6e 6c 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 | ..(unless.(bolp).(insert."\n")). |
| 85d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 64 75 63 65 64 2d 70 72 | ..............(insert.reduced-pr |
| 85d80 | 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f | ompt)).............(setq.positio |
| 85da0 | 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e | n.(point)).............(when.(an |
| 85dc0 | 64 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 6e 6f 74 20 64 72 79 2d 72 75 6e 29 29 0a 20 20 20 20 | d.gptel-mode.(not.dry-run))..... |
| 85de0 | 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 73 20 | ..........(gptel--update-status. |
| 85e00 | 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 29 29 0a 20 20 20 20 20 | ".Waiting...".'warning))))...... |
| 85e20 | 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 69 6e 74 6f 20 6e 65 77 20 67 70 74 65 6c 20 73 65 73 | ....;;.Insert.into.new.gptel.ses |
| 85e40 | 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 62 75 66 66 65 72 0a 20 20 | sion..........(t.(setq.buffer... |
| 85e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 20 67 70 74 65 6c 2d 62 75 66 | ................(gptel.gptel-buf |
| 85e80 | 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fer-name........................ |
| 85ea0 | 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 | ..(condition-case.nil........... |
| 85ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 | ...................(gptel--get-a |
| 85ee0 | 70 69 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pi-key)......................... |
| 85f00 | 20 20 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 | ...((error.user-error).......... |
| 85f20 | 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 67 70 74 65 6c 2d 61 | ...................(setq.gptel-a |
| 85f40 | 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pi-key.......................... |
| 85f60 | 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 20 20 20 | .........(read-passwd........... |
| 85f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | .........................(format |
| 85fa0 | 20 22 25 73 20 41 50 49 20 6b 65 79 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."%s.API.key:."................. |
| 85fc0 | 20 20 20 20 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 |
| 85fe0 | 6c 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 20 | l-backend-name.................. |
| 86000 | 20 20 20 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 |
| 86020 | 2d 62 61 63 6b 65 6e 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -backend)))))).................. |
| 86040 | 20 20 20 20 20 20 20 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 | ........reduced-prompt))........ |
| 86060 | 20 20 20 20 20 3b 3b 20 53 65 74 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 6d 6f 64 65 6c 20 69 6e | .....;;.Set.backend.and.model.in |
| 86080 | 20 6e 65 77 20 73 65 73 73 69 6f 6e 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 | .new.session.from.current.buffer |
| 860a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | .............(with-current-buffe |
| 860c0 | 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 | r.buffer...............(setq.gpt |
| 860e0 | 65 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | el-backend.backend)............. |
| 86100 | 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 | ..(setq.gptel-model.model)...... |
| 86120 | 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 | .........(unless.dry-run........ |
| 86140 | 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 73 20 22 | .........(gptel--update-status." |
| 86160 | 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 | .Waiting...".'warning))......... |
| 86180 | 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 29 29 29 | ......(setq.position.(point))))) |
| 861a0 | 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 65 72 2d 6e 61 6d 65 | ))......((setq.gptel-buffer-name |
| 861c0 | 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 6d 62 64 61 20 28 73 | .............(cl-some.(lambda.(s |
| 861e0 | 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 67 2d 70 72 65 66 69 | ).(and.(stringp.s).(string-prefi |
| 86200 | 78 2d 70 20 22 62 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | x-p."b".s)...................... |
| 86220 | 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 31 29 29 29 0a 20 20 | ............(substring.s.1)))... |
| 86240 | 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 0a 20 20 20 20 20 20 | ...................args))....... |
| 86260 | 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 66 65 72 2d 70 20 74 | (setq.output-to-other-buffer-p.t |
| 86280 | 29 0a 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 | ).......(setq.buffer.(get-buffer |
| 862a0 | 2d 63 72 65 61 74 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 | -create.gptel-buffer-name))..... |
| 862c0 | 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 20 28 73 | ..(with-current-buffer.buffer.(s |
| 862e0 | 65 74 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b | etq.position.(point)))))......;; |
| 86300 | 20 4d 41 59 42 45 3a 20 54 68 69 73 20 69 73 20 6e 6f 20 61 20 67 6f 6f 64 20 77 61 79 20 74 6f | .MAYBE:.This.is.no.a.good.way.to |
| 86320 | 20 68 61 6e 64 6c 65 20 74 77 6f 2d 70 61 72 74 20 28 72 65 67 69 6f 6e 20 2b 20 69 6e 73 74 72 | .handle.two-part.(region.+.instr |
| 86340 | 75 63 74 69 6f 6e 29 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 3b 3b 20 49 66 20 74 68 65 20 70 72 | uction).prompts.....;;.If.the.pr |
| 86360 | 6f 6d 70 74 20 69 73 20 61 20 63 6f 6e 73 20 28 72 65 67 69 6f 6e 2d 74 65 78 74 20 2e 20 69 6e | ompt.is.a.cons.(region-text...in |
| 86380 | 73 74 72 75 63 74 69 6f 6e 73 29 2c 20 63 6f 6c 6c 61 70 73 65 20 69 74 0a 20 20 20 20 28 77 68 | structions),.collapse.it.....(wh |
| 863a0 | 65 6e 20 28 63 6f 6e 73 70 20 70 72 6f 6d 70 74 29 20 28 73 65 74 71 20 70 72 6f 6d 70 74 20 28 | en.(consp.prompt).(setq.prompt.( |
| 863c0 | 63 6f 6e 63 61 74 20 28 63 61 72 20 70 72 6f 6d 70 74 29 20 22 5c 6e 5c 6e 22 20 28 63 64 72 20 | concat.(car.prompt)."\n\n".(cdr. |
| 863e0 | 70 72 6f 6d 70 74 29 29 29 29 0a 0a 20 20 20 20 28 70 72 6f 67 31 20 28 67 70 74 65 6c 2d 72 65 | prompt))))......(prog1.(gptel-re |
| 86400 | 71 75 65 73 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 | quest.prompt..............:buffe |
| 86420 | 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 65 72 29 29 0a 20 | r.(or.buffer.(current-buffer)).. |
| 86440 | 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 74 69 6f 6e 0a 20 | ............:position.position.. |
| 86460 | 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 20 69 6e 2d 70 6c | ............:in-place.(and.in-pl |
| 86480 | 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 75 66 66 65 72 2d | ace.(not.output-to-other-buffer- |
| 864a0 | 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 74 72 65 61 6d 0a | p))..............:stream.stream. |
| 864c0 | 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 20 20 20 20 20 20 | .............:system............ |
| 864e0 | 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 20 20 20 20 20 20 | ..(if.system-extra.............. |
| 86500 | 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 61 6c 2d 64 69 72 | ....(gptel--merge-additional-dir |
| 86520 | 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 20 20 20 20 20 20 | ective.system-extra)............ |
| 86540 | 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 0a 20 20 20 20 20 | ....gptel--system-message)...... |
| 86560 | 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 0a 20 20 20 20 20 | ........:callback.callback...... |
| 86580 | 20 20 20 20 20 20 20 20 3a 74 72 61 6e 73 66 6f 72 6d 73 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 | ........:transforms.gptel-prompt |
| 865a0 | 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 | -transform-functions............ |
| 865c0 | 20 20 3a 66 73 6d 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 66 73 6d 20 3a 68 61 6e 64 6c 65 72 73 | ..:fsm.(gptel-make-fsm.:handlers |
| 865e0 | 20 67 70 74 65 6c 2d 73 65 6e 64 2d 2d 68 61 6e 64 6c 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 | .gptel-send--handlers).......... |
| 86600 | 20 20 20 20 3a 64 72 79 2d 72 75 6e 20 64 72 79 2d 72 75 6e 29 0a 0a 20 20 20 20 20 20 28 75 6e | ....:dry-run.dry-run)........(un |
| 86620 | 6c 65 73 73 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 | less.dry-run.........(gptel--upd |
| 86640 | 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 6e | ate-status.".Waiting...".'warnin |
| 86660 | 67 29 29 0a 0a 20 20 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 50 6f 73 73 69 62 6c 65 20 66 75 74 | g))........;;.NOTE:.Possible.fut |
| 86680 | 75 72 65 20 72 61 63 65 20 63 6f 6e 64 69 74 69 6f 6e 20 68 65 72 65 20 69 66 20 45 6d 61 63 73 | ure.race.condition.here.if.Emacs |
| 866a0 | 20 65 76 65 72 20 64 72 6f 70 73 20 74 68 65 20 47 49 4c 2e 0a 20 20 20 20 20 20 3b 3b 20 54 68 | .ever.drops.the.GIL........;;.Th |
| 866c0 | 65 20 48 54 54 50 20 72 65 71 75 65 73 74 20 63 61 6c 6c 62 61 63 6b 20 6d 69 67 68 74 20 6d 6f | e.HTTP.request.callback.might.mo |
| 866e0 | 64 69 66 79 20 74 68 65 20 62 75 66 66 65 72 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 2d 70 6c | dify.the.buffer.before.the.in-pl |
| 86700 | 61 63 65 0a 20 20 20 20 20 20 3b 3b 20 74 65 78 74 20 69 73 20 6b 69 6c 6c 65 64 20 62 65 6c 6f | ace.......;;.text.is.killed.belo |
| 86720 | 77 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 | w........(when.in-place......... |
| 86740 | 28 69 66 20 28 6f 72 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 28 67 65 74 2d 63 68 | (if.(or.buffer-read-only.(get-ch |
| 86760 | 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 | ar-property.(point).'read-only)) |
| 86780 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 20 72 65 70 6c 61 | .............(message."Not.repla |
| 867a0 | 63 69 6e 67 20 70 72 6f 6d 70 74 3a 20 72 65 67 69 6f 6e 20 69 73 20 72 65 61 64 2d 6f 6e 6c 79 | cing.prompt:.region.is.read-only |
| 867c0 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 69 66 20 28 75 73 65 | ")...........(let.((beg.(if.(use |
| 867e0 | 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -region-p)...................... |
| 86800 | 20 20 20 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 | ....(region-beginning).......... |
| 86820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e | ..............(max.(previous-sin |
| 86840 | 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 20 20 | gle-property-change............. |
| 86860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 | .................(point).'gptel. |
| 86880 | 6e 69 6c 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 | nil.(point-min))................ |
| 868a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 | .............(previous-single-pr |
| 868c0 | 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | operty-change................... |
| 868e0 | 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 72 65 61 64 2d 6f 6e 6c 79 20 6e 69 | ...........(point).'read-only.ni |
| 86900 | 6c 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.(point-min)))))............... |
| 86920 | 20 20 28 65 6e 64 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 72 65 67 69 6f | ..(end.(if.(use-region-p).(regio |
| 86940 | 6e 2d 65 6e 64 29 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 | n-end).(point)))).............(u |
| 86960 | 6e 6c 65 73 73 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 | nless.output-to-other-buffer-p.. |
| 86980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 74 6f 72 65 20 74 68 65 20 6b 69 6c 6c 65 64 | .............;;.store.the.killed |
| 869a0 | 20 74 65 78 74 20 69 6e 20 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 | .text.in.gptel-history.......... |
| 869c0 | 20 20 20 20 20 28 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 | .....(gptel--attach-response-his |
| 869e0 | 74 6f 72 79 0a 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 | tory................(list.(buffe |
| 86a00 | 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e | r-substring-no-properties.beg.en |
| 86a20 | 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 62 | d)))).............(kill-region.b |
| 86a40 | 65 67 20 65 6e 64 29 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 70 75 74 2d 74 | eg.end))))........(when.output-t |
| 86a60 | 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | o-other-buffer-p.........(messag |
| 86a80 | 65 20 28 63 6f 6e 63 61 74 20 22 50 72 6f 6d 70 74 20 73 65 6e 74 20 74 6f 20 62 75 66 66 65 72 | e.(concat."Prompt.sent.to.buffer |
| 86aa0 | 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 28 70 72 | :."..........................(pr |
| 86ac0 | 6f 70 65 72 74 69 7a 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 27 66 61 63 65 | opertize.gptel-buffer-name.'face |
| 86ae0 | 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 | .'help-key-binding))).........(d |
| 86b00 | 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 20 27 28 | isplay-buffer..........buffer.'( |
| 86b20 | 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 64 6f 77 0a 20 20 20 | (display-buffer-reuse-window.... |
| 86b40 | 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 70 | ................display-buffer-p |
| 86b60 | 6f 70 2d 75 70 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 | op-up-window)................... |
| 86b80 | 28 72 65 75 73 61 62 6c 65 2d 66 72 61 6d 65 73 20 2e 20 76 69 73 69 62 6c 65 29 29 29 29 29 29 | (reusable-frames...visible)))))) |
| 86ba0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 61 64 64 69 74 69 6f 6e 61 | )..(defun.gptel--merge-additiona |
| 86bc0 | 6c 2d 64 69 72 65 63 74 69 76 65 20 28 61 64 64 69 74 69 6f 6e 61 6c 20 26 6f 70 74 69 6f 6e 61 | l-directive.(additional.&optiona |
| 86be0 | 6c 20 66 75 6c 6c 29 0a 20 20 22 4d 65 72 67 65 20 41 44 44 49 54 49 4f 4e 41 4c 20 67 70 74 65 | l.full)..."Merge.ADDITIONAL.gpte |
| 86c00 | 6c 20 64 69 72 65 63 74 69 76 65 20 77 69 74 68 20 74 68 65 20 66 75 6c 6c 20 73 79 73 74 65 6d | l.directive.with.the.full.system |
| 86c20 | 20 6d 65 73 73 61 67 65 2e 0a 0a 54 68 65 20 41 44 44 49 54 49 4f 4e 41 4c 20 64 69 72 65 63 74 | .message...The.ADDITIONAL.direct |
| 86c40 | 69 76 65 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 73 70 65 63 69 66 69 65 64 20 66 72 6f 6d 20 | ive.is.typically.specified.from. |
| 86c60 | 60 67 70 74 65 6c 2d 6d 65 6e 75 27 0a 61 6e 64 20 61 70 70 6c 69 65 73 20 6f 6e 6c 79 20 74 6f | `gptel-menu'.and.applies.only.to |
| 86c80 | 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2c 20 73 65 65 0a 60 67 70 | .the.next.gptel.request,.see.`gp |
| 86ca0 | 74 65 6c 2d 2d 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 74 69 76 65 27 2e 0a 0a 46 55 4c 4c | tel--infix-add-directive'...FULL |
| 86cc0 | 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 61 63 74 69 76 65 2c 20 66 75 6c 6c 20 73 79 | .defaults.to.the.active,.full.sy |
| 86ce0 | 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 20 20 49 74 20 6d 61 79 20 62 65 20 61 0a 73 74 72 69 6e | stem.message...It.may.be.a.strin |
| 86d00 | 67 2c 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 20 6f 72 20 61 20 66 75 6e 63 74 69 | g,.a.list.of.prompts.or.a.functi |
| 86d20 | 6f 6e 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 0a 66 6f 72 20 64 | on,.see.`gptel-directives'.for.d |
| 86d40 | 65 74 61 69 6c 73 2e 22 0a 20 20 28 73 65 74 71 20 66 75 6c 6c 20 28 6f 72 20 66 75 6c 6c 20 67 | etails."...(setq.full.(or.full.g |
| 86d60 | 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 28 63 6c 2d 74 79 70 | ptel--system-message))...(cl-typ |
| 86d80 | 65 63 61 73 65 20 66 75 6c 6c 0a 20 20 20 20 28 73 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 20 66 | ecase.full.....(string.(concat.f |
| 86da0 | 75 6c 6c 20 22 5c 6e 5c 6e 22 20 61 64 64 69 74 69 6f 6e 61 6c 29 29 0a 20 20 20 20 28 6c 69 73 | ull."\n\n".additional)).....(lis |
| 86dc0 | 74 20 28 6c 65 74 20 28 28 63 6f 70 79 20 28 63 6f 70 79 2d 73 65 71 75 65 6e 63 65 20 66 75 6c | t.(let.((copy.(copy-sequence.ful |
| 86de0 | 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 63 61 72 20 63 6f 70 79 20 28 63 | l))).............(setcar.copy.(c |
| 86e00 | 6f 6e 63 61 74 20 28 63 61 72 20 63 6f 70 79 29 20 22 5c 6e 5c 6e 22 20 61 64 64 69 74 69 6f 6e | oncat.(car.copy)."\n\n".addition |
| 86e20 | 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 70 79 29 29 0a 20 20 20 20 28 66 75 6e | al)).............copy)).....(fun |
| 86e40 | 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 61 | ction.(lambda.().(gptel--merge-a |
| 86e60 | 64 64 69 74 69 6f 6e 61 6c 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | dditional-directive............. |
| 86e80 | 20 20 20 20 20 20 20 20 20 61 64 64 69 74 69 6f 6e 61 6c 20 28 66 75 6e 63 61 6c 6c 20 66 75 6c | .........additional.(funcall.ful |
| 86ea0 | 6c 29 29 29 29 0a 20 20 20 20 28 6f 74 68 65 72 77 69 73 65 20 61 64 64 69 74 69 6f 6e 61 6c 29 | l)))).....(otherwise.additional) |
| 86ec0 | 29 29 0a 0a 3b 3b 20 41 6c 6c 6f 77 20 63 61 6c 6c 69 6e 67 20 66 72 6f 6d 20 65 6c 69 73 70 0a | ))..;;.Allow.calling.from.elisp. |
| 86ee0 | 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 27 69 6e 74 65 72 61 | (put.'gptel--suffix-send.'intera |
| 86f00 | 63 74 69 76 65 2d 6f 6e 6c 79 20 6e 69 6c 29 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 20 74 6f | ctive-only.nil)..;;.**.Suffix.to |
| 86f20 | 20 72 65 67 65 6e 65 72 61 74 65 20 72 65 73 70 6f 6e 73 65 0a 0a 28 64 65 66 75 6e 20 67 70 74 | .regenerate.response..(defun.gpt |
| 86f40 | 65 6c 2d 2d 72 65 67 65 6e 65 72 61 74 65 20 28 29 0a 20 20 22 52 65 67 65 6e 65 72 61 74 65 20 | el--regenerate.()..."Regenerate. |
| 86f60 | 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 69 6e 74 | gptel.response.at.point."...(int |
| 86f80 | 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 | eractive)...(when.(gptel--in-res |
| 86fa0 | 70 6f 6e 73 65 2d 70 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 | ponse-p).....(pcase-let*.((`(,be |
| 86fc0 | 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 6e 73 65 2d 62 | g...,end).(gptel--get-response-b |
| 86fe0 | 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 28 68 69 73 74 6f 72 | ounds))..................(histor |
| 87000 | 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 27 67 70 | y.(get-char-property.(point).'gp |
| 87020 | 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | tel-history))..................( |
| 87040 | 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 73 20 28 63 6f 6e 73 20 28 62 75 66 66 65 72 2d 73 75 62 | prev-responses.(cons.(buffer-sub |
| 87060 | 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 29 0a 20 20 | string-no-properties.beg.end)... |
| 87080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 870a0 | 20 20 20 20 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 | .....history))).......(when.gpte |
| 870c0 | 6c 2d 6d 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 52 65 6d 6f 76 65 20 | l-mode..................;Remove. |
| 870e0 | 70 72 65 66 69 78 2f 73 75 66 66 69 78 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 | prefix/suffix.........(save-excu |
| 87100 | 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a | rsion...........(goto-char.beg). |
| 87120 | 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 62 61 63 6b 20 28 63 | ..........(when.(looking-back.(c |
| 87140 | 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c | oncat."\n+".(regexp-quote.(gptel |
| 87160 | 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 | -response-prefix-string)))...... |
| 87180 | 20 20 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 | .........................(point- |
| 871a0 | 6d 69 6e 29 20 27 67 72 65 65 64 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | min).'greedy).............(setq. |
| 871c0 | 62 65 67 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 20 | beg.(match-beginning.0)))....... |
| 871e0 | 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 | ....(goto-char.end)...........(w |
| 87200 | 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | hen.(looking-at................. |
| 87220 | 20 28 63 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 | .(concat."\n+".(regexp-quote.(gp |
| 87240 | 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)))).... |
| 87260 | 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 | .........(setq.end.(match-end.0) |
| 87280 | 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e | )))).......(delete-region.beg.en |
| 872a0 | 64 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 65 73 70 6f 6e 73 65 | d).......(gptel--attach-response |
| 872c0 | 2d 68 69 73 74 6f 72 79 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 73 29 0a 20 20 20 20 20 20 28 | -history.prev-responses).......( |
| 872e0 | 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 2d 73 75 66 66 | call-interactively.#'gptel--suff |
| 87300 | 69 78 2d 73 65 6e 64 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 53 65 74 20 73 79 73 74 65 6d 20 6d 65 | ix-send))))..;;.**.Set.system.me |
| 87320 | 73 73 61 67 65 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 63 72 6f 77 64 73 6f | ssage.(defun.gptel--read-crowdso |
| 87340 | 75 72 63 65 64 2d 70 72 6f 6d 70 74 20 28 29 0a 20 20 22 50 69 63 6b 20 61 20 63 72 6f 77 64 73 | urced-prompt.()..."Pick.a.crowds |
| 87360 | 6f 75 72 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 20 66 6f 72 20 67 70 74 65 6c 2e 0a | ourced.system.prompt.for.gptel.. |
| 87380 | 0a 54 68 69 73 20 75 73 65 73 20 74 68 65 20 70 72 6f 6d 70 74 73 20 69 6e 20 74 68 65 20 76 61 | .This.uses.the.prompts.in.the.va |
| 873a0 | 72 69 61 62 6c 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 | riable.`gptel--crowdsourced-prom |
| 873c0 | 70 74 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 | pts',.which.see."...(interactive |
| 873e0 | 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 65 6d 70 74 79 2d 70 | )...(if.(not.(hash-table-empty-p |
| 87400 | 20 28 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 29 | .(gptel--crowdsourced-prompts))) |
| 87420 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 | .......(let.((choice............ |
| 87440 | 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(completing-read.............. |
| 87460 | 20 22 50 69 63 6b 20 61 6e 64 20 65 64 69 74 20 70 72 6f 6d 70 74 3a 20 22 0a 20 20 20 20 20 20 | ."Pick.and.edit.prompt:."....... |
| 87480 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 72 20 70 72 65 64 20 61 63 74 69 6f 6e | ........(lambda.(str.pred.action |
| 874a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 61 63 74 69 6f 6e | ).................(if.(eq.action |
| 874c0 | 20 27 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'metadata)..................... |
| 874e0 | 60 28 6d 65 74 61 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 | `(metadata...................... |
| 87500 | 20 28 61 66 66 69 78 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 2e 0a 20 20 20 20 20 20 20 20 | .(affixation-function........... |
| 87520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 61 6e 64 73 29 0a 20 | ...............(lambda.(cands).. |
| 87540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a | ........................(mapcar. |
| 87560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 | ..........................(lambd |
| 87580 | 61 20 28 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | a.(c)........................... |
| 875a0 | 20 20 28 6c 69 73 74 20 63 20 22 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(list.c."".................... |
| 875c0 | 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 20 | ..........(concat.(propertize.". |
| 875e0 | 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 74 6f 20 32 32 29 | ".'display.'(space.:align-to.22) |
| 87600 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 87620 | 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 65 74 68 61 73 68 20 63 20 67 70 74 65 6c | ".".(propertize.(gethash.c.gptel |
| 87640 | 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 20 20 | --crowdsourced-prompts)......... |
| 87660 | 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 63 6f | .......................'face.'co |
| 87680 | 6d 70 6c 65 74 69 6f 6e 73 2d 61 6e 6e 6f 74 61 74 69 6f 6e 73 29 29 29 29 0a 20 20 20 20 20 20 | mpletions-annotations))))....... |
| 876a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 61 6e 64 73 29 29 29 29 0a 20 20 | ....................cands))))... |
| 876c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 65 2d 77 69 74 68 2d 61 | ................(complete-with-a |
| 876e0 | 63 74 69 6f 6e 20 61 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | ction.action.gptel--crowdsourced |
| 87700 | 2d 70 72 6f 6d 70 74 73 20 73 74 72 20 70 72 65 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -prompts.str.pred)))............ |
| 87720 | 20 20 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | ...nil.t))).........(when-let*.( |
| 87740 | 28 70 72 6f 6d 70 74 20 28 67 65 74 68 61 73 68 20 63 68 6f 69 63 65 20 67 70 74 65 6c 2d 2d 63 | (prompt.(gethash.choice.gptel--c |
| 87760 | 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 | rowdsourced-prompts))).......... |
| 87780 | 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 | .(gptel--set-with-scope......... |
| 877a0 | 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 70 72 6f 6d 70 74 | ...'gptel--system-message.prompt |
| 877c0 | 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 0a 20 20 20 20 | .gptel--set-buffer-locally)..... |
| 877e0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 74 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 | ......(gptel--edit-directive.'gp |
| 87800 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel--system-message............. |
| 87820 | 3a 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 | :callback.(lambda.().(call-inter |
| 87840 | 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 0a 20 20 20 20 28 | actively.#'gptel-menu))))).....( |
| 87860 | 6d 65 73 73 61 67 65 20 22 4e 6f 20 70 72 6f 6d 70 74 73 20 61 76 61 69 6c 61 62 6c 65 2e 22 29 | message."No.prompts.available.") |
| 87880 | 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 |
| 878a0 | 65 6c 2d 2d 73 75 66 66 69 78 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 28 26 6f 70 74 69 | el--suffix-system-message.(&opti |
| 878c0 | 6f 6e 61 6c 20 63 61 6e 63 65 6c 29 0a 20 20 22 45 64 69 74 20 4c 4c 4d 20 73 79 73 74 65 6d 20 | onal.cancel)..."Edit.LLM.system. |
| 878e0 | 6d 65 73 73 61 67 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 | message...CANCEL.is.used.to.avoi |
| 87900 | 64 20 74 6f 75 63 68 69 6e 67 20 64 79 6e 61 6d 69 63 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 | d.touching.dynamic.system.messag |
| 87920 | 65 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 | es,.generated.from.functions.".. |
| 87940 | 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 65 78 69 74 0a | .:transient.'transient--do-exit. |
| 87960 | 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 65 74 20 6f 72 20 65 64 69 74 20 73 79 73 74 | ..:description."Set.or.edit.syst |
| 87980 | 65 6d 20 6d 65 73 73 61 67 65 22 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 20 20 25 64 22 | em.message"...:format.".%k...%d" |
| 879a0 | 0a 20 20 3a 6b 65 79 20 22 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c | ...:key."s"...(interactive....(l |
| 879c0 | 69 73 74 20 28 61 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 | ist.(and.(functionp.gptel--syste |
| 879e0 | 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 28 6e 6f 74 20 28 79 | m-message)...............(not.(y |
| 87a00 | 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 41 63 74 | -or-n-p....................."Act |
| 87a20 | 69 76 65 20 64 69 72 65 63 74 69 76 65 20 69 73 20 64 79 6e 61 6d 69 63 61 6c 6c 79 20 67 65 6e | ive.directive.is.dynamically.gen |
| 87a40 | 65 72 61 74 65 64 3a 20 45 64 69 74 20 69 74 73 20 63 75 72 72 65 6e 74 20 76 61 6c 75 65 20 69 | erated:.Edit.its.current.value.i |
| 87a60 | 6e 73 74 65 61 64 3f 22 29 29 29 29 29 0a 20 20 28 69 66 20 63 61 6e 63 65 6c 20 28 70 72 6f 67 | nstead?")))))...(if.cancel.(prog |
| 87a80 | 6e 20 28 6d 65 73 73 61 67 65 20 22 45 64 69 74 20 63 61 6e 63 65 6c 65 64 22 29 0a 20 20 20 20 | n.(message."Edit.canceled")..... |
| 87aa0 | 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 69 76 | ................(call-interactiv |
| 87ac0 | 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 | ely.#'gptel-menu)).....(gptel--e |
| 87ae0 | 64 69 74 2d 64 69 72 65 63 74 69 76 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | dit-directive.'gptel--system-mes |
| 87b00 | 73 61 67 65 0a 20 20 20 20 20 20 3a 73 65 74 75 70 20 23 27 61 63 74 69 76 61 74 65 2d 6d 61 72 | sage.......:setup.#'activate-mar |
| 87b20 | 6b 0a 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 63 | k.......:callback.(lambda.(_).(c |
| 87b40 | 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 65 6e 75 29 29 | all-interactively.#'gptel-menu)) |
| 87b60 | 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 20 62 65 | )))..;;.MAYBE:.Eventually.can.be |
| 87b80 | 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 20 61 66 | .simplified.with.string-edit,.af |
| 87ba0 | 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 61 63 73 | ter.we.drop.support.;;.for.Emacs |
| 87bc0 | 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 64 69 72 | .28.2..(cl-defun.gptel--edit-dir |
| 87be0 | 65 63 74 69 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 79 6d 20 26 6b 65 79 20 70 72 6f 6d 70 | ective.(&optional.sym.&key.promp |
| 87c00 | 74 20 69 6e 69 74 69 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 | t.initial.callback.setup.buffer) |
| 87c20 | 0a 20 20 22 45 64 69 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 | ..."Edit.a.gptel.directive.in.a. |
| 87c40 | 64 65 64 69 63 61 74 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 | dedicated.buffer...Store.the.res |
| 87c60 | 75 6c 74 20 69 6e 20 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 | ult.in.SYM,.a.symbol...PROMPT.an |
| 87c80 | 64 20 49 4e 49 54 49 41 4c 20 61 72 65 20 74 68 65 20 68 65 61 64 69 6e 67 0a 61 6e 64 20 69 6e | d.INITIAL.are.the.heading.and.in |
| 87ca0 | 69 74 69 61 6c 20 74 65 78 74 2e 20 20 49 66 20 53 45 54 55 50 20 69 73 20 61 20 66 75 6e 63 74 | itial.text...If.SETUP.is.a.funct |
| 87cc0 | 69 6f 6e 2c 20 72 75 6e 20 69 74 20 61 66 74 65 72 20 73 65 74 74 69 6e 67 20 75 70 20 74 68 65 | ion,.run.it.after.setting.up.the |
| 87ce0 | 0a 62 75 66 66 65 72 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 | .buffer...If.CALLBACK.is.specifi |
| 87d00 | 65 64 2c 20 69 74 20 69 73 20 72 75 6e 20 61 66 74 65 72 20 65 78 69 74 69 6e 67 20 74 68 65 20 | ed,.it.is.run.after.exiting.the. |
| 87d20 | 65 64 69 74 2e 20 20 49 74 0a 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6f 6e 65 20 61 72 67 | edit...It.is.called.with.one.arg |
| 87d40 | 75 6d 65 6e 74 3a 20 74 68 65 20 62 75 66 66 65 72 20 74 65 78 74 20 6f 72 20 77 69 74 68 20 6e | ument:.the.buffer.text.or.with.n |
| 87d60 | 69 6c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 0a 77 68 65 74 68 65 72 20 74 68 65 20 61 63 74 69 | il.depending.on.whether.the.acti |
| 87d80 | 6f 6e 20 69 73 20 63 6f 6e 66 69 72 6d 65 64 2f 63 61 6e 63 65 6c 6c 65 64 2e 22 0a 20 20 28 64 | on.is.confirmed/cancelled."...(d |
| 87da0 | 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 6f 72 69 67 | eclare.(indent.1))...(let.((orig |
| 87dc0 | 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 66 65 72 29 | -buf.(or.buffer.(current-buffer) |
| 87de0 | 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 6d 61 72 6b | )).........(msg-start.(make-mark |
| 87e00 | 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 62 6f 6c 2d | er)).........(directive.(symbol- |
| 87e20 | 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 74 69 6f 6e | value.sym))).....(when.(function |
| 87e40 | 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 65 63 74 69 | p.directive).......(setq.directi |
| 87e60 | 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 20 3b 3b 20 | ve.(funcall.directive))).....;;. |
| 87e80 | 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 2d 73 74 72 | TODO:.Handle.editing.list-of-str |
| 87ea0 | 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 72 72 65 6e | ings.directives.....(with-curren |
| 87ec0 | 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 | t-buffer.(get-buffer-create."*gp |
| 87ee0 | 74 65 6c 2d 70 72 6f 6d 70 74 2a 22 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 | tel-prompt*").......(let.((inhib |
| 87f00 | 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 73 61 67 65 | it-read-only.t).(inhibit-message |
| 87f20 | 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 20 20 20 20 | .t)).........(erase-buffer)..... |
| 87f40 | 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 75 61 6c 2d | ....(text-mode).........(visual- |
| 87f60 | 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 65 61 64 65 | line-mode.1).........(setq.heade |
| 87f80 | 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 28 63 6f 6e | r-line-format...............(con |
| 87fa0 | 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 62 65 6c 6f | cat."Edit.your.instructions.belo |
| 87fc0 | 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 20 20 20 20 | w.and.press."................... |
| 87fe0 | 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 61 63 65 20 | ....(propertize."C-c.C-c".'face. |
| 88000 | 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 20 20 20 20 | 'help-key-binding).............. |
| 88020 | 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 20 20 20 20 | .........".when.ready,.or."..... |
| 88040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 43 | ..................(propertize."C |
| 88060 | 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 69 6e 67 29 | -c.C-k".'face.'help-key-binding) |
| 88080 | 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 61 62 6f 72 | .......................".to.abor |
| 880a0 | 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 20 20 20 28 | t.")).........(insert..........( |
| 880c0 | 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 61 74 0a 20 | or.prompt..............(concat.. |
| 880e0 | 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 20 61 72 65 | ............."#.Example:.You.are |
| 88100 | 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 20 61 73 20 | .a.helpful.assistant..Answer.as. |
| 88120 | 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 20 20 20 20 | concisely.as.possible.\n"....... |
| 88140 | 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 6c 79 20 77 | ........"#.Example:.Reply.only.w |
| 88160 | 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 2e | ith.shell.commands.and.no.prose. |
| 88180 | 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 3a 20 59 6f | \n"..............."#.Example:.Yo |
| 881a0 | 75 20 61 72 65 20 61 20 70 6f 65 74 2e 20 52 65 70 6c 79 20 6f 6e 6c 79 20 69 6e 20 76 65 72 73 | u.are.a.poet..Reply.only.in.vers |
| 881c0 | 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 20 20 20 28 | e.")).........."\n\n").........( |
| 881e0 | 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 20 28 70 6f | add-text-properties..........(po |
| 88200 | 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 69 73 74 20 | int-min).(point)..........(list. |
| 88220 | 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 6b 2d 63 6f | 'read-only.t.'face.'font-lock-co |
| 88240 | 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 72 65 61 72 | mment-face.'front-sticky.t.'rear |
| 88260 | 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 6d 61 72 6b | -nonsticky.t)).........(set-mark |
| 88280 | 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 20 20 28 73 | er.msg-start.(point)).........(s |
| 882a0 | 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 66 20 69 74 | ave-excursion...........;;.If.it |
| 882c0 | 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 79 73 74 65 | 's.a.list,.insert.only.the.syste |
| 882e0 | 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 3b 3b 20 49 66 20 61 | m.message.part...........;;.If.a |
| 88300 | 6c 6c 20 69 73 20 6e 69 6c 2c 20 69 6e 73 65 72 74 20 22 22 20 61 74 20 6c 65 61 73 74 0a 20 20 | ll.is.nil,.insert."".at.least... |
| 88320 | 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 63 61 72 | ........(insert.(or.initial.(car |
| 88340 | 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 65 20 64 69 | -safe.(gptel--parse-directive.di |
| 88360 | 72 65 63 74 69 76 65 20 27 72 61 77 29 29 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 | rective.'raw)).""))...........(p |
| 88380 | 75 73 68 2d 6d 61 72 6b 20 6e 69 6c 20 27 6e 6f 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 28 61 | ush-mark.nil.'nomsg)).........(a |
| 883a0 | 6e 64 20 28 66 75 6e 63 74 69 6f 6e 70 20 73 65 74 75 70 29 20 28 66 75 6e 63 61 6c 6c 20 73 65 | nd.(functionp.setup).(funcall.se |
| 883c0 | 74 75 70 29 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 28 63 75 | tup))).......(display-buffer.(cu |
| 883e0 | 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 20 20 20 | rrent-buffer)................... |
| 88400 | 20 20 20 20 60 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 62 65 6c 6f 77 2d 73 65 6c 65 | ....`((display-buffer-below-sele |
| 88420 | 63 74 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 64 69 | cted..........................di |
| 88440 | 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 75 73 65 2d 73 6f 6d 65 2d 77 69 6e 64 6f 77 29 0a 20 20 | splay-buffer-use-some-window)... |
| 88460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6f 6d 65 2d 77 69 6e 64 | ......................(some-wind |
| 88480 | 6f 77 20 20 20 2e 20 6c 72 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ow.....lru)..................... |
| 884a0 | 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 63 74 2d 77 | ....(body-function...,#'select-w |
| 884c0 | 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 28 | indow).........................( |
| 884e0 | 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 74 6f | window-height...,#'fit-window-to |
| 88500 | 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 71 75 69 74 2d 74 6f 2d | -buffer))).......(let.((quit-to- |
| 88520 | 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 22 43 61 | menu..............(lambda.()."Ca |
| 88540 | 6e 63 65 6c 20 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 | ncel.system.message.update.and.r |
| 88560 | 65 74 75 72 6e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e | eturn."................(quit-win |
| 88580 | 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 69 6e | dow)................(unless.(min |
| 885a0 | 69 62 75 66 66 65 72 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 | ibufferp)..................(disp |
| 885c0 | 6c 61 79 2d 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 | lay-buffer.orig-buf............. |
| 885e0 | 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 2d | .....................`((display- |
| 88600 | 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 20 20 20 20 20 20 20 | buffer-reuse-window............. |
| 88620 | 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 79 2d | ........................display- |
| 88640 | 62 75 66 66 65 72 2d 75 73 65 2d 73 6f 6d 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 | buffer-use-some-window)......... |
| 88660 | 20 20 20 20 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 6f 64 79 | ...........................(body |
| 88680 | 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 23 27 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 29 29 29 | -function...,#'select-window)))) |
| 886a0 | 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 20 | ))).........(use-local-map...... |
| 886c0 | 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 20 | ....(make-composed-keymap....... |
| 886e0 | 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 22 | ....(define-keymap............." |
| 88700 | 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 20 | C-c.C-c".............(lambda.(). |
| 88720 | 22 43 6f 6e 66 69 72 6d 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 75 | "Confirm.system.message.and.retu |
| 88740 | 72 6e 2e 22 0a 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 | rn."...............(interactive) |
| 88760 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 79 73 74 65 6d 2d 6d 65 73 | ...............(let.((system-mes |
| 88780 | 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 28 62 75 66 66 65 | sage......................(buffe |
| 887a0 | 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 6d 73 67 2d 73 74 | r-substring-no-properties.msg-st |
| 887c0 | 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | art.(point-max)))).............. |
| 887e0 | 20 20 20 28 77 68 65 6e 20 73 79 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...(when.sym...................( |
| 88800 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 72 69 67 2d 62 75 66 0a 20 20 20 | with-current-buffer.orig-buf.... |
| 88820 | 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 73 65 74 2d 77 69 74 | .................(gptel--set-wit |
| 88840 | 68 2d 73 63 6f 70 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 79 6d | h-scope......................sym |
| 88860 | 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 48 61 6e 64 6c | .(if.(cdr-safe.directive).;Handl |
| 88880 | 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 20 20 20 20 20 | e.list.of.strings............... |
| 888a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 64 69 72 65 63 74 69 76 65 20 | ...............(prog1.directive. |
| 888c0 | 28 73 65 74 63 61 72 20 64 69 72 65 63 74 69 76 65 20 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 | (setcar.directive.system-message |
| 888e0 | 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 73 79 | ))............................sy |
| 88900 | 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 20 20 20 20 | stem-message)................... |
| 88920 | 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 29 0a | ...gptel--set-buffer-locally))). |
| 88940 | 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 71 75 69 74 2d 74 6f | ................(funcall.quit-to |
| 88960 | 2d 6d 65 6e 75 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 66 75 | -menu).................(when.(fu |
| 88980 | 6e 63 74 69 6f 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 | nctionp.callback).(funcall.callb |
| 889a0 | 61 63 6b 20 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 | ack.system-message)))).......... |
| 889c0 | 20 20 20 22 43 2d 63 20 43 2d 6b 22 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 | ..."C-c.C-k".(lambda.().(interac |
| 889e0 | 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 28 66 | tive).........................(f |
| 88a00 | 75 6e 63 61 6c 6c 20 71 75 69 74 2d 74 6f 2d 6d 65 6e 75 29 0a 20 20 20 20 20 20 20 20 20 20 20 | uncall.quit-to-menu)............ |
| 88a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 61 | .............(when.(functionp.ca |
| 88a40 | 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 20 6e 69 6c 29 29 29 | llback).(funcall.callback.nil))) |
| 88a60 | 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 0a | )...........text-mode-map)))))). |
| 88a80 | 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 64 | .;;.**.Suffix.for.displaying.and |
| 88aa0 | 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 74 | .removing.context.(declare-funct |
| 88ac0 | 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 20 | ion.gptel-context--buffer-setup. |
| 88ae0 | 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 69 | "gptel-context").(declare-functi |
| 88b00 | 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 6c | on.gptel-context--collect."gptel |
| 88b20 | 2d 63 6f 6e 74 65 78 74 22 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 | -context")..(transient-define-su |
| 88b40 | 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 65 | ffix.gptel--suffix-context-buffe |
| 88b60 | 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 6f | r.()..."Display.all.contexts.fro |
| 88b80 | 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 73 | m.all.buffers.&.files."...:trans |
| 88ba0 | 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 20 | ient.'transient--do-exit...:key. |
| 88bc0 | 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 74 | ".C"...:if.(lambda.().gptel-cont |
| 88be0 | 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 70 | ext--alist)...:description."Insp |
| 88c00 | 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 28 | ect.context"...(interactive)...( |
| 88c20 | 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 28 | gptel-context--buffer-setup))..( |
| 88c40 | 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 70 | provide.'gptel-transient).;;;.gp |
| 88c60 | 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 4c | tel-transient.el.ends.here..;;.L |
| 88c80 | 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 78 | ocal.Variables:.;;.outline-regex |
| 88ca0 | 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 2d | p:."^;;.\\*+".;;.eval:.(outline- |
| 88cc0 | 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 00 | minor-mode.1).;;.End:........... |
| 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 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 2e | gptel-0.9.9/gptel-openai-extras. |
| 88e20 | 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.............................. |
| 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 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 |
| 88e80 | 30 30 33 37 33 31 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 32 31 00 20 30 00 00 00 | 0037310.00000000000.015521..0... |
| 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 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................... |
| 88f20 | 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................... |
| 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 | 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 |
| 89020 | 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.-*-. |
| 89040 | 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 |
| 89060 | 72 69 67 68 74 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 | right.(C).2023-2025..Karthik.Chi |
| 89080 | 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 73 3a 20 4b 61 72 74 68 69 6b 20 43 68 | kmagalur..;;.Authors:.Karthik.Ch |
| 890a0 | 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d | ikmagalur.<karthikchikmagalur@gm |
| 890c0 | 61 69 6c 2e 63 6f 6d 3e 20 61 6e 64 20 70 69 72 6d 69 6e 6a 0a 0a 3b 3b 20 54 68 69 73 20 70 72 | ail.com>.and.pirminj..;;.This.pr |
| 890e0 | 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 | ogram.is.free.software;.you.can. |
| 89100 | 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b | redistribute.it.and/or.modify.;; |
| 89120 | 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 | .it.under.the.terms.of.the.GNU.G |
| 89140 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 | eneral.Public.License.as.publish |
| 89160 | 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 | ed.by.;;.the.Free.Software.Found |
| 89180 | 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c | ation,.either.version.3.of.the.L |
| 891a0 | 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 | icense,.or.;;.(at.your.option).a |
| 891c0 | 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 | ny.later.version...;;.This.progr |
| 891e0 | 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 | am.is.distributed.in.the.hope.th |
| 89200 | 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 | at.it.will.be.useful,.;;.but.WIT |
| 89220 | 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 | HOUT.ANY.WARRANTY;.without.even. |
| 89240 | 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 | the.implied.warranty.of.;;.MERCH |
| 89260 | 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 | ANTABILITY.or.FITNESS.FOR.A.PART |
| 89280 | 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 | ICULAR.PURPOSE...See.the.;;.GNU. |
| 892a0 | 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 | General.Public.License.for.more. |
| 892c0 | 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 | details...;;.You.should.have.rec |
| 892e0 | 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 | eived.a.copy.of.the.GNU.General. |
| 89300 | 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 | Public.License.;;.along.with.thi |
| 89320 | 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f | s.program...If.not,.see.<https:/ |
| 89340 | 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f | /www.gnu.org/licenses/>...;;;.Co |
| 89360 | 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 | mmentary:..;;.This.file.adds.sup |
| 89380 | 70 6f 72 74 20 66 6f 72 20 50 72 69 76 61 74 65 67 70 74 27 73 20 4d 65 73 73 61 67 65 73 20 41 | port.for.Privategpt's.Messages.A |
| 893a0 | 50 49 20 61 6e 64 0a 3b 3b 20 50 65 72 70 6c 65 78 69 74 79 27 73 20 43 69 74 61 74 69 6f 6e 73 | PI.and.;;.Perplexity's.Citations |
| 893c0 | 20 66 65 61 74 75 72 65 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 | .feature.to.gptel..;;;.Code:.(re |
| 893e0 | 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f | quire.'cl-generic).(eval-when-co |
| 89400 | 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 | mpile...(require.'cl-lib)).(requ |
| 89420 | 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 | ire.'map).(require.'gptel)..(def |
| 89440 | 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d | var.json-object-type)..(declare- |
| 89460 | 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d | function.prop-match-value."text- |
| 89480 | 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 |
| 894a0 | 69 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 | ion.text-property-search-backwar |
| 894c0 | 64 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 | d."text-property-search").(decla |
| 894e0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 | re-function.json-read."json".()) |
| 89500 | 0a 0a 0a 0a 3b 3b 3b 20 50 72 69 76 61 74 65 67 70 74 20 28 4d 65 73 73 61 67 65 73 20 41 50 49 | ....;;;.Privategpt.(Messages.API |
| 89520 | 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 | ).(cl-defstruct.(gptel-privategp |
| 89540 | 74 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 70 72 69 76 | t.(:constructor.gptel--make-priv |
| 89560 | 61 74 65 67 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ategpt)......................... |
| 89580 | 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)............ |
| 895a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 | ....................(:include.gp |
| 895c0 | 74 65 6c 2d 6f 70 65 6e 61 69 29 29 0a 20 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 29 0a | tel-openai))...context.sources). |
| 895e0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 65 67 70 74 2d 70 61 72 73 65 2d | .(defun.gptel--privategpt-parse- |
| 89600 | 73 6f 75 72 63 65 73 20 28 72 65 73 70 6f 6e 73 65 29 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 77 69 | sources.(response)...(cl-loop.wi |
| 89620 | 74 68 20 73 6f 75 72 63 65 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 | th.source-alist............for.s |
| 89640 | 6f 75 72 63 65 20 61 63 72 6f 73 73 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 | ource.across.(map-nested-elt.res |
| 89660 | 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 73 6f 75 72 63 65 73 29 29 0a 20 20 | ponse.'(:choices.0.:sources))... |
| 89680 | 20 20 20 20 20 20 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d | .........for.name.=.(map-nested- |
| 896a0 | 65 6c 74 20 73 6f 75 72 63 65 20 27 28 3a 64 6f 63 75 6d 65 6e 74 20 3a 64 6f 63 5f 6d 65 74 61 | elt.source.'(:document.:doc_meta |
| 896c0 | 64 61 74 61 20 3a 66 69 6c 65 5f 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 | data.:file_name))............for |
| 896e0 | 20 70 61 67 65 20 3d 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 73 6f 75 72 63 65 20 27 | .page.=.(map-nested-elt.source.' |
| 89700 | 28 3a 64 6f 63 75 6d 65 6e 74 20 3a 64 6f 63 5f 6d 65 74 61 64 61 74 61 20 3a 70 61 67 65 5f 6c | (:document.:doc_metadata.:page_l |
| 89720 | 61 62 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 70 75 73 68 20 70 61 67 65 20 | abel))............do.(push.page. |
| 89740 | 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 73 6f 75 72 63 65 2d 61 6c 69 73 74 20 6e 69 6c | (alist-get.name.source-alist.nil |
| 89760 | 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c | .nil.#'equal))............finall |
| 89780 | 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 | y.return............(cl-loop.for |
| 897a0 | 20 28 66 69 6c 65 2d 6e 61 6d 65 20 2e 20 66 69 6c 65 2d 70 61 67 65 73 29 20 69 6e 20 73 6f 75 | .(file-name...file-pages).in.sou |
| 897c0 | 72 63 65 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f | rce-alist.....................fo |
| 897e0 | 72 20 70 61 67 65 73 20 3d 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 28 64 65 6c 71 20 6e 69 6c | r.pages.=.(delete-dups.(delq.nil |
| 89800 | 20 66 69 6c 65 2d 70 61 67 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .file-pages))................... |
| 89820 | 20 20 69 66 20 70 61 67 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | ..if.pages.....................c |
| 89840 | 6f 6c 6c 65 63 74 20 28 66 6f 72 6d 61 74 20 22 2d 20 25 73 20 28 70 61 67 65 20 25 73 29 22 20 | ollect.(format."-.%s.(page.%s)". |
| 89860 | 66 69 6c 65 2d 6e 61 6d 65 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 | file-name.(mapconcat.#'identity. |
| 89880 | 70 61 67 65 73 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pages.",.")).................... |
| 898a0 | 20 69 6e 74 6f 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .into.source-items.............. |
| 898c0 | 20 20 20 20 20 20 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 28 66 6f 72 6d 61 74 20 22 2d 20 25 | .......else.collect.(format."-.% |
| 898e0 | 73 22 20 66 69 6c 65 2d 6e 61 6d 65 29 20 69 6e 74 6f 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 0a | s".file-name).into.source-items. |
| 89900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 | ....................finally.retu |
| 89920 | 72 6e 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 28 63 6f 6e 73 20 22 | rn.(mapconcat.#'identity.(cons." |
| 89940 | 5c 6e 5c 6e 53 6f 75 72 63 65 73 3a 22 20 73 6f 75 72 63 65 2d 69 74 65 6d 73 29 20 22 5c 6e 22 | \n\nSources:".source-items)."\n" |
| 89960 | 29 29 29 29 0a 0a 3b 3b 20 46 49 58 4d 45 28 74 6f 6f 6c 29 20 61 64 64 20 74 6f 6f 6c 20 75 73 | ))))..;;.FIXME(tool).add.tool.us |
| 89980 | 65 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 | e.(cl-defmethod.gptel-curl--pars |
| 899a0 | 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 | e-stream.((_backend.gptel-privat |
| 899c0 | 65 67 70 74 29 20 69 6e 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 | egpt).info)...(let*.((content-st |
| 899e0 | 72 73 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 | rs)).....(condition-case.nil.... |
| 89a00 | 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 | .....(while.(re-search-forward." |
| 89a20 | 5e 64 61 74 61 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d | ^data:".nil.t)...........(save-m |
| 89a40 | 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 | atch-data.............(if.(looki |
| 89a60 | 6e 67 2d 61 74 20 22 20 2a 5c 5c 5b 44 4f 4e 45 5c 5c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 | ng-at.".*\\[DONE\\]")........... |
| 89a80 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 73 6f 75 72 63 65 73 2d 73 74 72 69 6e | ......(when-let*.((sources-strin |
| 89aa0 | 67 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 29 29 29 0a 20 20 | g.(plist-get.info.:sources)))... |
| 89ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 73 6f 75 72 63 65 73 2d 73 74 | ................(push.sources-st |
| 89ae0 | 72 69 6e 67 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ring.content-strs))............. |
| 89b00 | 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 | ..(let.((response.(gptel--json-r |
| 89b20 | 65 61 64 29 29 29 0a 09 09 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | ead)))...(unless.(or.(plist-get. |
| 89b40 | 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:sources).................. |
| 89b60 | 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 | ...........(not.(gptel-privategp |
| 89b80 | 74 2d 73 6f 75 72 63 65 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 61 63 6b 65 | t-sources.(plist-get.info.:backe |
| 89ba0 | 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d | nd))))...................(plist- |
| 89bc0 | 70 75 74 20 69 6e 66 6f 20 3a 73 6f 75 72 63 65 73 20 28 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 | put.info.:sources.(gptel--privat |
| 89be0 | 65 67 70 74 2d 70 61 72 73 65 2d 73 6f 75 72 63 65 73 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 09 | egpt-parse-sources.response))).. |
| 89c00 | 09 28 6c 65 74 2a 20 28 28 64 65 6c 74 61 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 | .(let*.((delta.(map-nested-elt.r |
| 89c20 | 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 20 30 20 3a 64 65 6c 74 61 29 29 29 0a 09 | esponse.'(:choices.0.:delta))).. |
| 89c40 | 09 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 | ........(content.(plist-get.delt |
| 89c60 | 61 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 09 09 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 | a.:content))).....(push.content. |
| 89c80 | 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a | content-strs)))))).......(error. |
| 89ca0 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 | .......(goto-char.(match-beginni |
| 89cc0 | 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 | ng.0)))).....(apply.#'concat.(nr |
| 89ce0 | 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 3b 3b 20 46 49 58 4d | everse.content-strs))))..;;.FIXM |
| 89d00 | 45 28 74 6f 6f 6c 29 20 61 64 64 20 74 6f 6f 6c 20 75 73 65 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | E(tool).add.tool.use.(cl-defmeth |
| 89d20 | 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 |
| 89d40 | 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 74 29 20 72 65 73 70 6f 6e 73 65 20 69 | end.gptel-privategpt).response.i |
| 89d60 | 6e 66 6f 29 0a 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 28 6d | nfo)...(let.((response-string.(m |
| 89d80 | 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 | ap-nested-elt.response.'(:choice |
| 89da0 | 73 20 30 20 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 | s.0.:message.:content)))........ |
| 89dc0 | 20 28 73 6f 75 72 63 65 73 2d 73 74 72 69 6e 67 20 28 61 6e 64 20 28 67 70 74 65 6c 2d 70 72 69 | .(sources-string.(and.(gptel-pri |
| 89de0 | 76 61 74 65 67 70 74 2d 73 6f 75 72 63 65 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | vategpt-sources.(plist-get.info. |
| 89e00 | 3a 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :backend))...................... |
| 89e20 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 72 69 76 61 74 65 67 70 74 2d 70 61 72 73 65 | ........(gptel--privategpt-parse |
| 89e40 | 2d 73 6f 75 72 63 65 73 20 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 | -sources.response)))).....(conca |
| 89e60 | 74 20 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 73 6f 75 72 63 65 73 2d 73 74 72 69 6e 67 | t.response-string.sources-string |
| 89e80 | 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 | )))..(cl-defmethod.gptel--reques |
| 89ea0 | 74 2d 64 61 74 61 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 | t-data.((_backend.gptel-privateg |
| 89ec0 | 70 74 29 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d | pt).prompts)..."JSON.encode.PROM |
| 89ee0 | 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 | PTS.for.sending.to.ChatGPT."...( |
| 89f00 | 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a | let.((prompts-plist..........`(: |
| 89f20 | 6d 6f 64 65 6c 20 2c 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d | model.,(gptel--model-name.gptel- |
| 89f40 | 6d 6f 64 65 6c 29 0a 09 20 20 20 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 70 72 6f 6d 70 74 73 5d | model).....:messages.[,@prompts] |
| 89f60 | 0a 09 20 20 20 3a 75 73 65 5f 63 6f 6e 74 65 78 74 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 70 72 | .....:use_context.,(or.(gptel-pr |
| 89f80 | 69 76 61 74 65 67 70 74 2d 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 | ivategpt-context.gptel-backend). |
| 89fa0 | 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 09 20 20 20 3a 69 6e 63 6c 75 64 65 5f 73 6f 75 72 63 65 | :json-false).....:include_source |
| 89fc0 | 73 20 2c 28 6f 72 20 28 67 70 74 65 6c 2d 70 72 69 76 61 74 65 67 70 74 2d 73 6f 75 72 63 65 73 | s.,(or.(gptel-privategpt-sources |
| 89fe0 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 | .gptel-backend).:json-false).... |
| 8a000 | 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 70 74 65 6c 2d 73 74 72 65 61 | ........:stream.,(or.gptel-strea |
| 8a020 | 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 | m.:json-false)))).....(when.(and |
| 8a040 | 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 | .gptel--system-message.......... |
| 8a060 | 20 20 20 20 20 20 28 6e 6f 74 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 | ......(not.(gptel--model-capable |
| 8a080 | 2d 70 20 27 6e 6f 73 79 73 74 65 6d 29 29 29 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | -p.'nosystem))).......(plist-put |
| 8a0a0 | 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 73 79 | .prompts-plist.:system.gptel--sy |
| 8a0c0 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 | stem-message)).....(when.gptel-t |
| 8a0e0 | 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d | emperature.......(plist-put.prom |
| 8a100 | 70 74 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d | pts-plist.:temperature.gptel-tem |
| 8a120 | 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 | perature)).....(when.gptel-max-t |
| 8a140 | 6f 6b 65 6e 73 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 | okens.......(plist-put.prompts-p |
| 8a160 | 6c 69 73 74 20 3a 6d 61 78 5f 74 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e | list.:max_tokens.gptel-max-token |
| 8a180 | 73 29 29 0a 20 20 20 20 3b 3b 20 4d 65 72 67 65 20 72 65 71 75 65 73 74 20 70 61 72 61 6d 73 20 | s)).....;;.Merge.request.params. |
| 8a1a0 | 77 69 74 68 20 6d 6f 64 65 6c 20 61 6e 64 20 62 61 63 6b 65 6e 64 20 70 61 72 61 6d 73 2e 0a 20 | with.model.and.backend.params... |
| 8a1c0 | 20 20 20 28 67 70 74 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 0a 20 20 20 20 20 70 72 6f | ...(gptel--merge-plists......pro |
| 8a1e0 | 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 72 | mpts-plist......(gptel-backend-r |
| 8a200 | 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 | equest-params.gptel-backend).... |
| 8a220 | 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 20 | ..(gptel--model-request-params.. |
| 8a240 | 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 29 29 0a 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | gptel-model))))...;;;###autoload |
| 8a260 | 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 | .(cl-defun.gptel-make-privategpt |
| 8a280 | 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d | .....(name.&key.curl-args.stream |
| 8a2a0 | 20 6b 65 79 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 | .key.request-params...........(h |
| 8a2c0 | 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 | eader............(lambda.().(whe |
| 8a2e0 | 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 | n-let*.((key.(gptel--get-api-key |
| 8a300 | 29 29 29 0a 09 09 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 | )))......`(("Authorization"...,( |
| 8a320 | 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 | concat."Bearer.".key))))))...... |
| 8a340 | 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 38 30 30 31 22 29 0a 20 20 20 | .....(host."localhost:8001").... |
| 8a360 | 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 29 0a 09 20 20 28 6d 6f 64 | .......(protocol."http")....(mod |
| 8a380 | 65 6c 73 20 27 28 70 72 69 76 61 74 65 2d 67 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 | els.'(private-gpt))...........(e |
| 8a3a0 | 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"). |
| 8a3c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 78 74 20 74 29 20 28 73 6f 75 72 63 65 73 20 74 | ..........(context.t).(sources.t |
| 8a3e0 | 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 50 72 69 76 61 74 65 67 70 74 20 41 50 49 | ))..."Register.an.Privategpt.API |
| 8a400 | 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 | -compatible.backend.for.gptel.wi |
| 8a420 | 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 | th.NAME...Keyword.arguments:..CU |
| 8a440 | 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 | RL-ARGS.(optional).is.a.list.of. |
| 8a460 | 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 | additional.Curl.arguments...HOST |
| 8a480 | 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 | .(optional).is.the.API.host,.\"a |
| 8a4a0 | 70 69 2e 70 72 69 76 61 74 65 67 70 74 2e 63 6f 6d 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a | pi.privategpt.com\".by.default.. |
| 8a4c0 | 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d | .MODELS.is.a.list.of.available.m |
| 8a4e0 | 6f 64 65 6c 20 6e 61 6d 65 73 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e | odel.names...STREAM.is.a.boolean |
| 8a500 | 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,. |
| 8a520 | 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 |
| 8a540 | 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,. |
| 8a560 | 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 | https.by.default...ENDPOINT.(opt |
| 8a580 | 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 | ional).is.the.API.endpoint.for.c |
| 8a5a0 | 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 2f 6d 65 | ompletions,.defaults.to.\"/v1/me |
| 8a5c0 | 73 73 61 67 65 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 | ssages\"...HEADER.(optional).is. |
| 8a5e0 | 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 | for.additional.headers.to.send.w |
| 8a600 | 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 | ith.each.request..It.should.be.a |
| 8a620 | 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 |
| 8a640 | 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 | s.an.alist,.like:.((\"Content-Ty |
| 8a660 | 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b | pe\"...\"application/json\"))..K |
| 8a680 | 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 | EY.is.a.variable.whose.value.is. |
| 8a6a0 | 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 72 65 | the.API.key,.or.function.that.re |
| 8a6c0 | 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 43 4f 4e 54 45 58 54 20 61 6e 64 20 53 4f 55 52 | turns.the.key...CONTEXT.and.SOUR |
| 8a6e0 | 43 45 53 3a 20 69 66 20 74 72 75 65 20 28 74 68 65 20 64 65 66 61 75 6c 74 29 2c 20 75 73 65 20 | CES:.if.true.(the.default),.use. |
| 8a700 | 61 76 61 69 6c 61 62 6c 65 20 63 6f 6e 74 65 78 74 0a 61 6e 64 20 70 72 6f 76 69 64 65 20 73 6f | available.context.and.provide.so |
| 8a720 | 75 72 63 65 73 20 75 73 65 64 20 62 79 20 74 68 65 20 6d 6f 64 65 6c 20 74 6f 20 67 65 6e 65 72 | urces.used.by.the.model.to.gener |
| 8a740 | 61 74 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 52 45 51 55 45 53 54 2d 50 41 52 41 4d | ate.the.response...REQUEST-PARAM |
| 8a760 | 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 73 74 20 6f 66 20 61 64 64 69 74 | S.(optional).is.a.plist.of.addit |
| 8a780 | 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 72 61 6d 65 74 65 72 73 20 28 61 | ional.HTTP.request.parameters.(a |
| 8a7a0 | 73 20 70 6c 69 73 74 20 6b 65 79 73 29 20 61 6e 64 20 76 61 6c 75 65 73 20 73 75 70 70 6f 72 74 | s.plist.keys).and.values.support |
| 8a7c0 | 65 64 20 62 79 20 74 68 65 20 41 50 49 2e 20 20 55 73 65 0a 74 68 65 73 65 20 74 6f 20 73 65 74 | ed.by.the.API...Use.these.to.set |
| 8a7e0 | 20 70 61 72 61 6d 65 74 65 72 73 20 74 68 61 74 20 67 70 74 65 6c 20 64 6f 65 73 20 6e 6f 74 20 | .parameters.that.gptel.does.not. |
| 8a800 | 70 72 6f 76 69 64 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 73 0a 66 6f 72 2e 22 0a 20 20 28 64 65 | provide.user.options.for."...(de |
| 8a820 | 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 |
| 8a840 | 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 70 72 69 76 61 74 65 67 70 74 0a 20 20 20 20 20 | nd.(gptel--make-privategpt...... |
| 8a860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 | .............:curl-args.curl-arg |
| 8a880 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 | s...................:name.name.. |
| 8a8a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 | .................:host.host..... |
| 8a8c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 | ..............:header.header.... |
| 8a8e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 | ...............:key.key......... |
| 8a900 | 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 | ..........:models.models........ |
| 8a920 | 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... |
| 8a940 | 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 |
| 8a960 | 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 |
| 8a980 | 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 |
| 8a9a0 | 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............ |
| 8a9c0 | 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 | .......:url.(if.protocol........ |
| 8a9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 | ....................(concat.prot |
| 8aa00 | 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 | ocol."://".host.endpoint)....... |
| 8aa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 | ...................(concat.host. |
| 8aa40 | 65 6e 64 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f | endpoint))...................:co |
| 8aa60 | 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ntext.context................... |
| 8aa80 | 3a 73 6f 75 72 63 65 73 20 73 6f 75 72 63 65 73 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 | :sources.sources))).....(prog1.b |
| 8aaa0 | 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 | ackend.......(setf.(alist-get.na |
| 8aac0 | 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 | me.gptel--known-backends........ |
| 8aae0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 | ................nil.nil.#'equal) |
| 8ab00 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 0a 3b 3b 3b 20 50 | .............backend))))...;;;.P |
| 8ab20 | 65 72 70 6c 65 78 69 74 79 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 70 | erplexity.(cl-defstruct.(gptel-p |
| 8ab40 | 65 72 70 6c 65 78 69 74 79 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d | erplexity.(:constructor.gptel--m |
| 8ab60 | 61 6b 65 2d 70 65 72 70 6c 65 78 69 74 79 29 0a 09 09 09 09 28 3a 63 6f 70 69 65 72 20 6e 69 6c | ake-perplexity).....(:copier.nil |
| 8ab80 | 29 0a 09 09 09 09 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 29 29 0a | ).....(:include.gptel-openai))). |
| 8aba0 | 0a 28 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 2d 70 65 72 70 6c 65 78 69 74 79 2d 70 61 72 | .(defsubst.gptel--perplexity-par |
| 8abc0 | 73 65 2d 63 69 74 61 74 69 6f 6e 73 20 28 63 69 74 61 74 69 6f 6e 73 29 0a 20 20 28 6c 65 74 20 | se-citations.(citations)...(let. |
| 8abe0 | 28 28 63 6f 75 6e 74 65 72 20 30 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 43 | ((counter.0)).....(concat."\n\nC |
| 8ac00 | 69 74 61 74 69 6f 6e 73 3a 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e | itations:\n".............(mapcon |
| 8ac20 | 63 61 74 20 28 6c 61 6d 62 64 61 20 28 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | cat.(lambda.(url)............... |
| 8ac40 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 75 6e 74 65 72 20 28 31 2b 20 63 6f 75 | ...........(setq.counter.(1+.cou |
| 8ac60 | 6e 74 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nter)).......................... |
| 8ac80 | 28 66 6f 72 6d 61 74 20 22 5b 25 64 5d 20 25 73 22 20 63 6f 75 6e 74 65 72 20 75 72 6c 29 29 0a | (format."[%d].%s".counter.url)). |
| 8aca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 69 74 61 74 69 6f 6e 73 | .......................citations |
| 8acc0 | 20 22 5c 6e 22 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d | ."\n"))))..(cl-defmethod.gptel-- |
| 8ace0 | 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d | parse-response.((_backend.gptel- |
| 8ad00 | 70 65 72 70 6c 65 78 69 74 79 29 20 72 65 73 70 6f 6e 73 65 20 5f 69 6e 66 6f 29 0a 20 20 22 50 | perplexity).response._info)..."P |
| 8ad20 | 61 72 73 65 20 50 65 72 70 6c 65 78 69 74 79 20 72 65 73 70 6f 6e 73 65 20 52 45 53 50 4f 4e 53 | arse.Perplexity.response.RESPONS |
| 8ad40 | 45 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 28 6d 61 | E."...(let.((response-string.(ma |
| 8ad60 | 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 68 6f 69 63 65 73 | p-nested-elt.response.'(:choices |
| 8ad80 | 20 30 20 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | .0.:message.:content)))......... |
| 8ada0 | 28 63 69 74 61 74 69 6f 6e 73 2d 73 74 72 69 6e 67 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 | (citations-string.(when-let*.((c |
| 8adc0 | 69 74 61 74 69 6f 6e 73 20 28 6d 61 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 63 69 74 61 | itations.(map-elt.response.:cita |
| 8ade0 | 74 69 6f 6e 73 29 29 29 0a 09 09 09 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 65 72 70 6c 65 78 69 | tions)))........(gptel--perplexi |
| 8ae00 | 74 79 2d 70 61 72 73 65 2d 63 69 74 61 74 69 6f 6e 73 20 63 69 74 61 74 69 6f 6e 73 29 29 29 29 | ty-parse-citations.citations)))) |
| 8ae20 | 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 72 65 73 70 6f 6e 73 65 2d 73 74 72 69 6e 67 20 63 69 74 | .....(concat.response-string.cit |
| 8ae40 | 61 74 69 6f 6e 73 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 | ations-string)))..(cl-defmethod. |
| 8ae60 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b | gptel-curl--parse-stream.((_back |
| 8ae80 | 65 6e 64 20 67 70 74 65 6c 2d 70 65 72 70 6c 65 78 69 74 79 29 20 69 6e 66 6f 29 0a 20 20 22 50 | end.gptel-perplexity).info)..."P |
| 8aea0 | 61 72 73 65 20 61 20 50 65 72 70 6c 65 78 69 74 79 20 41 50 49 20 64 61 74 61 20 73 74 72 65 61 | arse.a.Perplexity.API.data.strea |
| 8aec0 | 6d 20 77 69 74 68 20 49 4e 46 4f 2e 0a 0a 49 66 20 61 76 61 69 6c 61 62 6c 65 2c 20 63 6f 6c 6c | m.with.INFO...If.available,.coll |
| 8aee0 | 65 63 74 20 63 69 74 61 74 69 6f 6e 73 20 61 74 20 74 68 65 20 65 6e 64 20 61 6e 64 20 69 6e 63 | ect.citations.at.the.end.and.inc |
| 8af00 | 6c 75 64 65 20 74 68 65 6d 20 77 69 74 68 0a 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 | lude.them.with.the.response."... |
| 8af20 | 28 6c 65 74 20 28 28 72 65 73 70 20 28 63 6c 2d 63 61 6c 6c 2d 6e 65 78 74 2d 6d 65 74 68 6f 64 | (let.((resp.(cl-call-next-method |
| 8af40 | 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 | ))).....(unless.(plist-get.info. |
| 8af60 | 3a 63 69 74 61 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f | :citations).......(save-excursio |
| 8af80 | 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | n.........(goto-char.(point-max) |
| 8afa0 | 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 | ).........(when.(search-backward |
| 8afc0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 0a 20 20 20 20 20 20 20 | .(plist-get.info.:token)........ |
| 8afe0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 | ........................(line-be |
| 8b000 | 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ginning-position).t)...........( |
| 8b020 | 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | forward-line.0)...........(when. |
| 8b040 | 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5e 64 61 74 61 3a 20 22 20 6e 69 | (re-search-backward."^data:.".ni |
| 8b060 | 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 | l.t).............(goto-char.(mat |
| 8b080 | 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 | ch-end.0)).............(ignore-e |
| 8b0a0 | 72 72 6f 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 | rrors...............(when-let*.( |
| 8b0c0 | 28 63 68 75 6e 6b 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 | (chunk.(gptel--json-read))...... |
| 8b0e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 69 74 61 74 69 6f 6e 73 20 | .....................(citations. |
| 8b100 | 28 6d 61 70 2d 65 6c 74 20 63 68 75 6e 6b 20 3a 63 69 74 61 74 69 6f 6e 73 29 29 29 0a 20 20 20 | (map-elt.chunk.:citations))).... |
| 8b120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 69 | .............(plist-put.info.:ci |
| 8b140 | 74 61 74 69 6f 6e 73 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | tations.t).................(setq |
| 8b160 | 20 72 65 73 70 20 28 63 6f 6e 63 61 74 20 72 65 73 70 20 28 67 70 74 65 6c 2d 2d 70 65 72 70 6c | .resp.(concat.resp.(gptel--perpl |
| 8b180 | 65 78 69 74 79 2d 70 61 72 73 65 2d 63 69 74 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 | exity-parse-citations........... |
| 8b1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 | ...............................c |
| 8b1c0 | 69 74 61 74 69 6f 6e 73 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 72 65 73 70 29 29 0a 0a 3b 3b | itations))))))))).....resp))..;; |
| 8b1e0 | 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 |
| 8b200 | 65 2d 70 65 72 70 6c 65 78 69 74 79 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c | e-perplexity.....(name.&key.curl |
| 8b220 | 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 | -args.stream.key...........(head |
| 8b240 | 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c | er............(lambda.().(when-l |
| 8b260 | 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 | et*.((key.(gptel--get-api-key))) |
| 8b280 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a | ....................`(("Authoriz |
| 8b2a0 | 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 | ation"...,(concat."Bearer.".key) |
| 8b2c0 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 70 69 2e 70 65 72 70 6c | )))))...........(host."api.perpl |
| 8b2e0 | 65 78 69 74 79 2e 61 69 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 | exity.ai")...........(protocol." |
| 8b300 | 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 74 74 70 73 3a 2f 2f 64 6f 63 | https")...........;;.https://doc |
| 8b320 | 73 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 69 2f 67 75 69 64 65 73 2f 6d 6f 64 65 6c 2d 63 61 72 | s.perplexity.ai/guides/model-car |
| 8b340 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 73 6f 6e 61 72 20 73 6f 6e | ds...........(models.'(sonar.son |
| 8b360 | 61 72 2d 70 72 6f 20 73 6f 6e 61 72 2d 72 65 61 73 6f 6e 69 6e 67 20 73 6f 6e 61 72 2d 72 65 61 | ar-pro.sonar-reasoning.sonar-rea |
| 8b380 | 73 6f 6e 69 6e 67 2d 70 72 6f 20 73 6f 6e 61 72 2d 64 65 65 70 2d 72 65 73 65 61 72 63 68 29 29 | soning-pro.sonar-deep-research)) |
| 8b3a0 | 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 63 68 61 74 2f 63 6f 6d 70 | ...........(endpoint."/chat/comp |
| 8b3c0 | 6c 65 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 72 65 71 75 65 73 74 2d 70 61 72 61 | letions")...........request-para |
| 8b3e0 | 6d 73 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 50 65 72 70 6c 65 78 69 74 79 20 62 61 63 | ms)..."Register.a.Perplexity.bac |
| 8b400 | 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f | kend.for.gptel.with.NAME...Keywo |
| 8b420 | 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e | rd.arguments:..CURL-ARGS.(option |
| 8b440 | 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c | al).is.a.list.of.additional.Curl |
| 8b460 | 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 | .arguments...HOST.(optional).is. |
| 8b480 | 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 70 69 2e 70 65 72 70 6c 65 78 69 74 79 2e 61 | the.API.host,.\"api.perplexity.a |
| 8b4a0 | 69 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 | i\".by.default...MODELS.is.a.lis |
| 8b4c0 | 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2e 0a 0a 53 54 52 | t.of.available.model.names...STR |
| 8b4e0 | 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 | EAM.is.a.boolean.to.toggle.strea |
| 8b500 | 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f | ming.responses...PROTOCOL.(optio |
| 8b520 | 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 | nal).specifies.the.protocol,.htt |
| 8b540 | 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e | ps.by.default...ENDPOINT.(option |
| 8b560 | 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 | al).is.the.API.endpoint.for.comp |
| 8b580 | 6c 65 74 69 6f 6e 73 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 | letions...HEADER.(optional).is.f |
| 8b5a0 | 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 |
| 8b5c0 | 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e | th.each.request..It.should.be.an |
| 8b5e0 | 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e | .alist.or.a.function.that.return |
| 8b600 | 73 20 61 6e 0a 61 6c 69 73 74 2e 0a 0a 4b 45 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 | s.an.alist...KEY.is.a.variable.w |
| 8b620 | 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 | hose.value.is.the.API.key,.or.fu |
| 8b640 | 6e 63 74 69 6f 6e 20 74 68 61 74 0a 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 52 45 | nction.that.returns.the.key...RE |
| 8b660 | 51 55 45 53 54 2d 50 41 52 41 4d 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 70 6c 69 | QUEST-PARAMS.(optional).is.a.pli |
| 8b680 | 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 48 54 54 50 20 72 65 71 75 65 73 74 0a 70 61 | st.of.additional.HTTP.request.pa |
| 8b6a0 | 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 | rameters."...(declare.(indent.1) |
| 8b6c0 | 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d | )...(let.((backend.(gptel--make- |
| 8b6e0 | 70 65 72 70 6c 65 78 69 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 | perplexity...................:cu |
| 8b700 | 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rl-args.curl-args............... |
| 8b720 | 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....:name.name.................. |
| 8b740 | 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 | .:host.host...................:h |
| 8b760 | 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | eader.header...................: |
| 8b780 | 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c | key.key...................:model |
| 8b7a0 | 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 | s.models...................:prot |
| 8b7c0 | 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ocol.protocol................... |
| 8b7e0 | 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :endpoint.endpoint.............. |
| 8b800 | 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....:stream.stream............. |
| 8b820 | 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 61 | ......:request-params.request-pa |
| 8b840 | 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 69 66 20 | rams...................:url.(if. |
| 8b860 | 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol........................ |
| 8b880 | 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 | ....(concat.protocol."://".host. |
| 8b8a0 | 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | endpoint)....................... |
| 8b8c0 | 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 | ...(concat.host.endpoint)))))... |
| 8b8e0 | 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c | ..(prog1.backend.......(setf.(al |
| 8b900 | 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e | ist-get.name.gptel--known-backen |
| 8b920 | 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 | ds........................nil.ni |
| 8b940 | 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 | l.#'equal).............backend)) |
| 8b960 | 29 29 0a 0a 3b 3b 3b 20 44 65 65 70 73 65 65 6b 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 | ))..;;;.Deepseek.(cl-defstruct.( |
| 8b980 | 67 70 74 65 6c 2d 64 65 65 70 73 65 65 6b 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 6f | gptel-deepseek.(:include.gptel-o |
| 8b9a0 | 70 65 6e 61 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | penai).......................... |
| 8b9c0 | 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(:copier.nil).............. |
| 8b9e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 | .................(:constructor.g |
| 8ba00 | 70 74 65 6c 2d 2d 6d 61 6b 65 2d 64 65 65 70 73 65 65 6b 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | ptel--make-deepseek)))..(cl-defm |
| 8ba20 | 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 72 6f 75 6e | ethod.gptel--parse-buffer.:aroun |
| 8ba40 | 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 20 5f 6d 61 | d.((_backend.gptel-deepseek)._ma |
| 8ba60 | 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 65 20 70 | x-entries)..."Merge.successive.p |
| 8ba80 | 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 61 74 20 | rompts.in.the.prompts.list.that. |
| 8baa0 | 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 73 65 65 | have.the.same.role...The.Deepsee |
| 8bac0 | 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 6e 61 74 | k.API.requires.strictly.alternat |
| 8bae0 | 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 20 6d 65 | ing.roles.(user/assistant).in.me |
| 8bb00 | 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 6c 2d 63 | ssages."...(let*.((prompts.(cl-c |
| 8bb20 | 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 6e 64 65 | all-next-method))..........(inde |
| 8bb40 | 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 73 0a 20 | x.prompts)).....(prog1.prompts.. |
| 8bb60 | 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 74 20 28 | .....(while.index.........(let.( |
| 8bb80 | 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 20 20 28 | (p1.(car.index))...............( |
| 8bba0 | 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 20 20 28 | p2.(cadr.index))...............( |
| 8bbc0 | 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 28 77 68 | rest.(cdr.index)))...........(wh |
| 8bbe0 | 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 70 31 20 | en.(and.p2.(equal.(plist-get.p1. |
| 8bc00 | 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 20 20 20 | :role).......................... |
| 8bc20 | 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 20 20 20 | ......(plist-get.p2.:role))).... |
| 8bc40 | 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 3a 63 6f | .........(setf.(plist-get.p1.:co |
| 8bc60 | 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 63 61 74 | ntent)...................(concat |
| 8bc80 | 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 0a 20 20 | .(plist-get.p1.:content)."\n"... |
| 8bca0 | 20 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 |
| 8bcc0 | 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 20 28 73 | et.p2.:content))).............(s |
| 8bce0 | 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 20 20 20 | etcdr.index.(cdr.rest)))........ |
| 8bd00 | 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 29 29 29 | ...(setq.index.(cdr.index))))))) |
| 8bd20 | 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 6c | ..;;;###autoload.(cl-defun.gptel |
| 8bd40 | 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 20 63 75 | -make-deepseek.....(name.&key.cu |
| 8bd60 | 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 72 61 6d | rl-args.stream.key.request-param |
| 8bd80 | 73 0a 20 20 20 20 20 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 20 28 | s...........(header.(lambda.().( |
| 8bda0 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d | when-let*.((key.(gptel--get-api- |
| 8bdc0 | 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | key))).......................... |
| 8bde0 | 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." |
| 8be00 | 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 |
| 8be20 | 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").......... |
| 8be40 | 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 |
| 8be60 | 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"). |
| 8be80 | 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 |
| 8bea0 | 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 |
| 8bec0 | 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)...... |
| 8bee0 | 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. |
| 8bf00 | 31 32 38 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 | 128......................:input- |
| 8bf20 | 63 6f 73 74 20 30 2e 35 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | cost.0.56......................: |
| 8bf40 | 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 36 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | output-cost.1.68)............... |
| 8bf60 | 20 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 | ......(deepseek-chat............ |
| 8bf80 | 20 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 | ..........:capabilities.(tool).. |
| 8bfa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e | ....................:context-win |
| 8bfc0 | 64 6f 77 20 31 32 38 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 | dow.128......................:in |
| 8bfe0 | 70 75 74 2d 63 6f 73 74 20 30 2e 35 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | put-cost.0.56................... |
| 8c000 | 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 36 38 29 29 29 29 0a 20 20 22 52 65 67 69 | ...:output-cost.1.68))))..."Regi |
| 8c020 | 73 74 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 | ster.a.DeepSeek.backend.for.gpte |
| 8c040 | 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 46 6f 72 20 74 68 65 20 6d 65 61 6e 69 6e 67 73 20 6f | l.with.NAME...For.the.meanings.o |
| 8c060 | 66 20 74 68 65 20 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 2c 20 73 65 65 20 60 67 70 | f.the.keyword.arguments,.see.`gp |
| 8c080 | 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 | tel-make-openai'."...(declare.(i |
| 8c0a0 | 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 70 74 65 | ndent.1))...(let.((backend.(gpte |
| 8c0c0 | 6c 2d 2d 6d 61 6b 65 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 | l--make-deepseek................ |
| 8c0e0 | 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:name.name................... |
| 8c100 | 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 | :host.host...................:he |
| 8c120 | 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b | ader.header...................:k |
| 8c140 | 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 | ey.key...................:models |
| 8c160 | 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). |
| 8c180 | 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 |
| 8c1a0 | 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 |
| 8c1c0 | 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 |
| 8c1e0 | 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 |
| 8c200 | 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..... |
| 8c220 | 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 72 | ..............:curl-args.curl-ar |
| 8c240 | 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 63 6f 6e 63 61 | gs...................:url.(conca |
| 8c260 | 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 | t.protocol."://".host.endpoint)) |
| 8c280 | 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 | )).....(setf.(alist-get.name.gpt |
| 8c2a0 | 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 | el--known-backends.nil.nil.#'equ |
| 8c2c0 | 61 6c 29 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 0a 3b 3b 3b 20 | al).backend).....backend))..;;;. |
| 8c2e0 | 78 41 49 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 | xAI.;;;###autoload.(cl-defun.gpt |
| 8c300 | 65 6c 2d 6d 61 6b 65 2d 78 61 69 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d | el-make-xai.....(name.&key.curl- |
| 8c320 | 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 72 61 6d 73 0a 20 | args.stream.key.request-params.. |
| 8c340 | 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 28 77 68 65 | .........(header.(lambda.().(whe |
| 8c360 | 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 | n-let*.((key.(gptel--get-api-key |
| 8c380 | 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 60 28 | )))...........................`( |
| 8c3a0 | 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 42 65 61 | ("Authorization"...,(concat."Bea |
| 8c3c0 | 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 73 74 20 | rer.".key))))))...........(host. |
| 8c3e0 | 22 61 70 69 2e 78 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 | "api.x.ai")...........(protocol. |
| 8c400 | 22 68 74 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 76 | "https")...........(endpoint."/v |
| 8c420 | 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 20 20 20 20 20 28 | 1/chat/completions")...........( |
| 8c440 | 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 27 28 28 67 72 6f 6b 2d 34 0a 20 20 20 20 | models............'((grok-4..... |
| 8c460 | 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 72 6f 6b 20 46 6c 61 | ..........:description."Grok.Fla |
| 8c480 | 67 73 68 69 70 20 6d 6f 64 65 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 | gship.model"...............:capa |
| 8c4a0 | 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 72 65 61 73 6f 6e 69 | bilities.'(tool-use.json.reasoni |
| 8c4c0 | 6e 67 29 0a 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 | ng)...............:context-windo |
| 8c4e0 | 77 20 32 35 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 | w.256...............:input-cost. |
| 8c500 | 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 35 29 | 3...............:output-cost.15) |
| 8c520 | 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 63 6f 64 65 2d 66 61 73 74 2d 31 | ...............(grok-code-fast-1 |
| 8c540 | 0a 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 22 46 61 73 | ...............:description."Fas |
| 8c560 | 74 20 72 65 61 73 6f 6e 69 6e 67 20 6d 6f 64 65 6c 20 66 6f 72 20 61 67 65 6e 74 69 63 20 63 6f | t.reasoning.model.for.agentic.co |
| 8c580 | 64 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 | ding"...............:capabilitie |
| 8c5a0 | 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 | s.'(tool-use.json.reasoning).... |
| 8c5c0 | 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 32 35 36 0a 20 | ...........:context-window.256.. |
| 8c5e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 32 0a 20 20 20 | .............:input-cost.0.2.... |
| 8c600 | 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 2e 35 29 0a 0a 20 20 | ...........:output-cost.1.5).... |
| 8c620 | 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(grok-3.............. |
| 8c640 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 | .:description."Grok.3".......... |
| 8c660 | 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 | .....:capabilities.'(tool-use.js |
| 8c680 | 6f 6e 20 72 65 61 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e | on.reasoning)...............:con |
| 8c6a0 | 74 65 78 74 2d 77 69 6e 64 6f 77 20 31 33 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 | text-window.131...............:i |
| 8c6c0 | 6e 70 75 74 2d 63 6f 73 74 20 33 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 | nput-cost.3...............:outpu |
| 8c6e0 | 74 2d 63 6f 73 74 20 31 35 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 | t-cost.15)...............(grok-3 |
| 8c700 | 2d 66 61 73 74 0a 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 | -fast...............:description |
| 8c720 | 20 22 46 61 73 74 65 72 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ."Faster.Grok.3"...............: |
| 8c740 | 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 72 65 61 | capabilities.'(tool-use.json.rea |
| 8c760 | 73 6f 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 | soning)...............:context-w |
| 8c780 | 69 6e 64 6f 77 20 31 33 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 | indow.131...............:input-c |
| 8c7a0 | 6f 73 74 20 35 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 | ost.5...............:output-cost |
| 8c7c0 | 20 32 35 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 2d 6d 69 6e 69 0a | .25)...............(grok-3-mini. |
| 8c7e0 | 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 22 4d 69 6e 69 | ..............:description."Mini |
| 8c800 | 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 70 61 62 69 6c 69 | .Grok.3"...............:capabili |
| 8c820 | 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 72 65 61 73 6f 6e 69 6e 67 29 0a | ties.'(tool-use.json.reasoning). |
| 8c840 | 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 31 33 | ..............:context-window.13 |
| 8c860 | 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 30 2e 33 0a | 1...............:input-cost.0.3. |
| 8c880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 30 2e 35 29 0a | ..............:output-cost.0.5). |
| 8c8a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 33 2d 6d 69 6e 69 2d 66 61 73 74 0a | ..............(grok-3-mini-fast. |
| 8c8c0 | 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 22 46 61 73 74 | ..............:description."Fast |
| 8c8e0 | 65 72 20 6d 69 6e 69 20 47 72 6f 6b 20 33 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 | er.mini.Grok.3"...............:c |
| 8c900 | 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e 20 72 65 61 73 | apabilities.'(tool-use.json.reas |
| 8c920 | 6f 6e 69 6e 67 29 0a 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 | oning)...............:context-wi |
| 8c940 | 6e 64 6f 77 20 31 33 31 30 37 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 | ndow.131072...............:input |
| 8c960 | 2d 63 6f 73 74 20 30 2e 36 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6f 75 74 70 75 74 2d | -cost.0.6...............:output- |
| 8c980 | 63 6f 73 74 20 34 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 6b 2d 32 2d 76 69 | cost.4)...............(grok-2-vi |
| 8c9a0 | 73 69 6f 6e 2d 31 32 31 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 64 65 73 63 72 69 70 | sion-1212...............:descrip |
| 8c9c0 | 74 69 6f 6e 20 22 47 72 6f 6b 20 32 20 56 69 73 69 6f 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 | tion."Grok.2.Vision"............ |
| 8c9e0 | 20 20 20 3a 63 61 70 61 62 69 6c 69 74 69 65 73 20 27 28 74 6f 6f 6c 2d 75 73 65 20 6a 73 6f 6e | ...:capabilities.'(tool-use.json |
| 8ca00 | 20 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 69 6d 65 2d 74 79 70 65 | .media)...............:mime-type |
| 8ca20 | 73 20 27 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 | s.'("image/jpeg"."image/png"."im |
| 8ca40 | 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 20 20 20 20 | age/gif"."image/webp").......... |
| 8ca60 | 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 2d 77 69 6e 64 6f 77 20 33 32 37 36 38 0a 20 20 20 20 20 | .....:context-window.32768...... |
| 8ca80 | 20 20 20 20 20 20 20 20 20 3a 69 6e 70 75 74 2d 63 6f 73 74 20 32 0a 20 20 20 20 20 20 20 20 20 | .........:input-cost.2.......... |
| 8caa0 | 20 20 20 20 20 3a 6f 75 74 70 75 74 2d 63 6f 73 74 20 31 30 29 29 29 29 0a 20 20 22 52 65 67 69 | .....:output-cost.10))))..."Regi |
| 8cac0 | 73 74 65 72 20 61 6e 20 78 41 49 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 | ster.an.xAI.backend.for.gptel.wi |
| 8cae0 | 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 4b 45 | th.NAME...Keyword.arguments:..KE |
| 8cb00 | 59 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 | Y.is.a.variable.whose.value.is.t |
| 8cb20 | 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 0a 72 65 74 | he.API.key,.or.function.that.ret |
| 8cb40 | 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 | urns.the.key...STREAM.is.a.boole |
| 8cb60 | 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 | an.to.toggle.streaming.responses |
| 8cb80 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 54 68 65 20 6f 74 68 65 72 20 | ,.defaults.to.false...The.other. |
| 8cba0 | 6b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 61 6c 6c 20 6f 70 74 69 6f 6e | keyword.arguments.are.all.option |
| 8cbc0 | 61 6c 2e 20 20 46 6f 72 20 74 68 65 69 72 20 6d 65 61 6e 69 6e 67 73 0a 73 65 65 20 60 67 70 74 | al...For.their.meanings.see.`gpt |
| 8cbe0 | 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e | el-make-openai'."...(declare.(in |
| 8cc00 | 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 70 74 65 6c | dent.1))...(let.((backend.(gptel |
| 8cc20 | 2d 2d 6d 61 6b 65 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 | --make-deepseek................. |
| 8cc40 | 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | ..:name.name...................: |
| 8cc60 | 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 | host.host...................:hea |
| 8cc80 | 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 | der.header...................:ke |
| 8cca0 | 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 | y.key...................:models. |
| 8ccc0 | 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 20 | (gptel--process-models.models).. |
| 8cce0 | 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 6f | .................:protocol.proto |
| 8cd00 | 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 20 | col...................:endpoint. |
| 8cd20 | 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 65 | endpoint...................:stre |
| 8cd40 | 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 71 | am.stream...................:req |
| 8cd60 | 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 20 | uest-params.request-params...... |
| 8cd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 | .............:curl-args.curl-arg |
| 8cda0 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 72 6c 20 28 63 6f 6e 63 61 74 | s...................:url.(concat |
| 8cdc0 | 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 | .protocol."://".host.endpoint))) |
| 8cde0 | 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 | ).....(setf.(alist-get.name.gpte |
| 8ce00 | 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 | l--known-backends.nil.nil.#'equa |
| 8ce20 | 6c 29 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 0a 0a 28 70 72 6f | l).backend).....backend))...(pro |
| 8ce40 | 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 29 0a 3b 3b 3b 20 67 | vide.'gptel-openai-extras).;;;.g |
| 8ce60 | 70 74 65 6c 2d 6f 70 65 6e 61 69 2d 65 78 74 72 61 73 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a | ptel-openai-extras.el.ends.here. |
| 8ce80 | 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d | .;;.Local.Variables:.;;.byte-com |
| 8cea0 | 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 72 69 6e 67 73 29 0a | pile-warnings:.(not.docstrings). |
| 8cec0 | 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 00 00 | ;;.End:......................... |
| 8cee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cf80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8cfe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 00 00 00 00 | gptel-0.9.9/gptel-context.el.... |
| 8d020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d060 | 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 |
| 8d080 | 30 30 36 37 30 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 33 34 00 20 30 00 00 00 | 0067034.00000000000.014434..0... |
| 8d0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d100 | 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................... |
| 8d120 | 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................... |
| 8d140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 8d200 | 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 |
| 8d220 | 20 61 67 67 72 65 67 61 74 6f 72 20 66 6f 72 20 67 70 74 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 | .aggregator.for.gptel..-*-.lexic |
| 8d240 | 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 |
| 8d260 | 20 28 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 | .(C).2023-2025..Karthik.Chikmaga |
| 8d280 | 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 64 61 65 64 73 69 64 6f 67 20 3c 63 6f 6e 74 61 | lur..;;.Author:.daedsidog.<conta |
| 8d2a0 | 63 74 40 64 61 65 64 73 69 64 6f 67 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f 72 64 73 3a 20 63 | ct@daedsidog.com>.;;.Keywords:.c |
| 8d2c0 | 6f 6e 76 65 6e 69 65 6e 63 65 2c 20 62 75 66 66 65 72 73 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 | onvenience,.buffers..;;.SPDX-Lic |
| 8d2e0 | 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 | ense-Identifier:.GPL-3.0-or-late |
| 8d300 | 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 | r..;;.This.program.is.free.softw |
| 8d320 | 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 | are;.you.can.redistribute.it.and |
| 8d340 | 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 | /or.modify.;;.it.under.the.terms |
| 8d360 | 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 |
| 8d380 | 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 | se.as.published.by.;;.the.Free.S |
| 8d3a0 | 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 | oftware.Foundation,.either.versi |
| 8d3c0 | 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 | on.3.of.the.License,.or.;;.(at.y |
| 8d3e0 | 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a | our.option).any.later.version... |
| 8d400 | 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 | ;;.This.program.is.distributed.i |
| 8d420 | 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 | n.the.hope.that.it.will.be.usefu |
| 8d440 | 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 | l,.;;.but.WITHOUT.ANY.WARRANTY;. |
| 8d460 | 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 |
| 8d480 | 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 | y.of.;;.MERCHANTABILITY.or.FITNE |
| 8d4a0 | 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 | SS.FOR.A.PARTICULAR.PURPOSE...Se |
| 8d4c0 | 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 | e.the.;;.GNU.General.Public.Lice |
| 8d4e0 | 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 | nse.for.more.details...;;.You.sh |
| 8d500 | 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 | ould.have.received.a.copy.of.the |
| 8d520 | 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 | .GNU.General.Public.License.;;.a |
| 8d540 | 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c | long.with.this.program...If.not, |
| 8d560 | 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 | .see.<https://www.gnu.org/licens |
| 8d580 | 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 65 20 63 | es/>...;;;.Commentary:..;;.The.c |
| 8d5a0 | 6f 6e 74 65 78 74 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 63 6f 6e 76 65 6e 69 65 6e 74 6c | ontext.allows.you.to.convenientl |
| 8d5c0 | 79 20 63 72 65 61 74 65 20 63 6f 6e 74 65 78 74 73 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 66 | y.create.contexts.which.can.be.f |
| 8d5e0 | 65 64 0a 3b 3b 20 74 6f 20 67 70 74 65 6c 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 3b 3b 3b 20 | ed.;;.to.gptel...;;;.Code:..;;;. |
| 8d600 | 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 20 2d 2a 2d 0a 28 72 65 71 75 | -*-.lexical-binding:.t.-*-.(requ |
| 8d620 | 69 72 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 | ire.'gptel).(require.'cl-lib)..( |
| 8d640 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 6d 65 6e 75 20 22 67 70 74 | declare-function.gptel-menu."gpt |
| 8d660 | 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | el-transient").(declare-function |
| 8d680 | 20 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 20 22 64 69 72 65 64 22 29 | .dired-get-marked-files."dired") |
| 8d6a0 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 69 6d 61 67 65 2d 66 69 6c 65 2d 6e 61 | .(declare-function.image-file-na |
| 8d6c0 | 6d 65 2d 72 65 67 65 78 70 20 22 69 6d 61 67 65 2d 66 69 6c 65 22 29 0a 28 64 65 63 6c 61 72 65 | me-regexp."image-file").(declare |
| 8d6e0 | 2d 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 2d 69 6d 61 67 65 20 22 69 6d 61 67 65 22 29 0a | -function.create-image."image"). |
| 8d700 | 0a 28 64 65 66 66 61 63 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 68 69 67 68 6c 69 67 68 | .(defface.gptel-context-highligh |
| 8d720 | 74 2d 66 61 63 65 0a 20 20 27 28 28 28 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 20 20 | t-face...'((((background.dark).. |
| 8d740 | 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 29 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 67 72 | (min-colors.88)).:background."gr |
| 8d760 | 61 79 34 22 20 3a 65 78 74 65 6e 64 20 74 29 0a 20 20 20 20 28 28 28 62 61 63 6b 67 72 6f 75 6e | ay4".:extend.t).....(((backgroun |
| 8d780 | 64 20 6c 69 67 68 74 29 20 28 6d 69 6e 2d 63 6f 6c 6f 72 73 20 38 38 29 29 20 3a 62 61 63 6b 67 | d.light).(min-colors.88)).:backg |
| 8d7a0 | 72 6f 75 6e 64 20 22 61 6c 69 63 65 20 62 6c 75 65 22 20 3a 65 78 74 65 6e 64 20 74 29 0a 20 20 | round."alice.blue".:extend.t)... |
| 8d7c0 | 20 20 28 74 20 3a 69 6e 68 65 72 69 74 20 6d 6f 64 65 2d 6c 69 6e 65 29 29 0a 20 20 22 46 61 63 | ..(t.:inherit.mode-line))..."Fac |
| 8d7e0 | 65 20 75 73 65 64 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 | e.used.to.highlight.gptel.contex |
| 8d800 | 74 73 20 69 6e 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 | ts.in.buffers."...:group.'gptel) |
| 8d820 | 0a 0a 28 64 65 66 66 61 63 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f | ..(defface.gptel-context-deletio |
| 8d840 | 6e 2d 66 61 63 65 0a 20 20 27 28 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d | n-face...'((((class.color).(min- |
| 8d860 | 63 6f 6c 6f 72 73 20 32 35 37 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 6c 69 67 68 74 29 29 0a | colors.257).(background.light)). |
| 8d880 | 20 20 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 66 66 65 65 65 65 22 20 3a 65 78 74 65 | .....:background."#ffeeee".:exte |
| 8d8a0 | 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 |
| 8d8c0 | 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))... |
| 8d8e0 | 20 20 20 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 66 66 64 64 64 64 22 20 3a 65 78 74 65 6e 64 | ...:background."#ffdddd".:extend |
| 8d900 | 20 74 29 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 20 28 6d 69 6e 2d 63 6f 6c | .t).....(((class.color).(min-col |
| 8d920 | 6f 72 73 20 38 38 29 20 28 62 61 63 6b 67 72 6f 75 6e 64 20 64 61 72 6b 29 29 0a 20 20 20 20 20 | ors.88).(background.dark))...... |
| 8d940 | 3a 62 61 63 6b 67 72 6f 75 6e 64 20 22 23 35 35 33 33 33 33 22 20 3a 65 78 74 65 6e 64 20 74 29 | :background."#553333".:extend.t) |
| 8d960 | 0a 20 20 20 20 28 28 28 63 6c 61 73 73 20 63 6f 6c 6f 72 29 29 20 3a 66 6f 72 65 67 72 6f 75 6e | .....(((class.color)).:foregroun |
| 8d980 | 64 20 22 72 65 64 22 20 3a 65 78 74 65 6e 64 20 74 29 29 0a 20 20 22 46 61 63 65 20 75 73 65 64 | d."red".:extend.t))..."Face.used |
| 8d9a0 | 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 73 20 74 6f 20 | .to.highlight.gptel.contexts.to. |
| 8d9c0 | 62 65 20 64 65 6c 65 74 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 69 6e 20 67 70 74 | be.deleted...This.is.used.in.gpt |
| 8d9e0 | 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 | el.context.buffers."...:group.'g |
| 8da00 | 70 74 65 6c 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 72 61 | ptel)..(defvar.gptel-context-wra |
| 8da20 | 70 2d 66 75 6e 63 74 69 6f 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 66 6f | p-function.nil..."Function.to.fo |
| 8da40 | 72 6d 61 74 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 20 73 65 6e 74 20 77 69 74 | rmat.the.context.string.sent.wit |
| 8da60 | 68 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 22 29 0a 28 6d 61 6b 65 2d 6f 62 73 | h.the.gptel.request.").(make-obs |
| 8da80 | 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 77 | olete-variable..'gptel-context-w |
| 8daa0 | 72 61 70 2d 66 75 6e 63 74 69 6f 6e 0a 20 22 43 75 73 74 6f 6d 20 66 75 6e 63 74 69 6f 6e 73 20 | rap-function.."Custom.functions. |
| 8dac0 | 66 6f 72 20 77 72 61 70 70 69 6e 67 20 63 6f 6e 74 65 78 74 20 61 72 65 20 6e 6f 20 6c 6f 6e 67 | for.wrapping.context.are.no.long |
| 8dae0 | 65 72 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 67 70 74 65 6c 2e 5c 0a 20 20 53 65 65 20 60 67 | er.supported.by.gptel.\...See.`g |
| 8db00 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 27 20 66 6f | ptel-context--wrap-in-buffer'.fo |
| 8db20 | 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 22 30 2e 39 2e 39 22 29 0a 0a 28 64 65 66 63 75 73 74 6f | r.details.".."0.9.9")..(defcusto |
| 8db40 | 6d 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 20 | m.gptel-context-string-function. |
| 8db60 | 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 74 72 69 6e 67 0a 20 20 22 46 75 6e 63 74 | #'gptel-context--string..."Funct |
| 8db80 | 69 6f 6e 20 74 6f 20 70 72 65 70 61 72 65 20 74 68 65 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e | ion.to.prepare.the.context.strin |
| 8dba0 | 67 20 73 65 6e 74 20 77 69 74 68 20 74 68 65 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 2e 0a 0a | g.sent.with.the.gptel.request... |
| 8dbc0 | 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 20 62 65 20 73 79 6e 63 68 72 6f 6e 6f 75 73 | This.function.can.be.synchronous |
| 8dbe0 | 20 6f 72 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 61 6e 64 20 72 65 63 65 69 76 65 73 20 6f | .or.asynchronous,.and.receives.o |
| 8dc00 | 6e 65 20 6f 72 0a 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 20 72 65 73 70 65 63 74 69 76 65 6c 79 | ne.or.two.arguments.respectively |
| 8dc20 | 2e 0a 0a 53 79 6e 63 68 72 6f 6e 6f 75 73 3a 20 41 6e 20 61 6c 69 73 74 20 6f 66 20 63 6f 6e 74 | ...Synchronous:.An.alist.of.cont |
| 8dc40 | 65 78 74 73 20 77 69 74 68 20 62 75 66 66 65 72 73 20 6f 72 20 66 69 6c 65 73 20 28 74 68 65 20 | exts.with.buffers.or.files.(the. |
| 8dc60 | 63 6f 6e 74 65 78 74 0a 61 6c 69 73 74 29 2e 0a 41 73 79 6e 63 68 72 6f 6e 6f 75 73 3a 20 41 20 | context.alist)..Asynchronous:.A. |
| 8dc80 | 63 61 6c 6c 62 61 63 6b 20 74 6f 20 63 61 6c 6c 20 77 69 74 68 20 74 68 65 20 72 65 73 75 6c 74 | callback.to.call.with.the.result |
| 8dca0 | 2c 20 61 6e 64 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 6c 69 73 74 2e 0a 0a 54 68 65 20 63 6f | ,.and.the.context.alist...The.co |
| 8dcc0 | 6e 74 65 78 74 20 61 6c 69 73 74 20 69 73 20 73 74 72 75 63 74 75 72 65 64 20 61 73 20 66 6f 6c | ntext.alist.is.structured.as.fol |
| 8dce0 | 6c 6f 77 73 3a 0a 0a 20 28 28 62 75 66 66 65 72 31 20 2e 20 28 6f 76 65 72 6c 61 79 31 20 6f 76 | lows:...((buffer1...(overlay1.ov |
| 8dd00 | 65 72 6c 61 79 32 29 0a 20 20 28 5c 22 70 61 74 68 2f 74 6f 2f 66 69 6c 65 5c 22 29 0a 20 20 28 | erlay2)...(\"path/to/file\")...( |
| 8dd20 | 62 75 66 66 65 72 32 20 2e 20 28 6f 76 65 72 6c 61 79 33 20 6f 76 65 72 6c 61 79 34 20 6f 76 65 | buffer2...(overlay3.overlay4.ove |
| 8dd40 | 72 6c 61 79 35 29 29 0a 20 20 28 5c 22 70 61 74 68 2f 74 6f 2f 69 6d 61 67 65 2f 66 69 6c 65 5c | rlay5))...(\"path/to/image/file\ |
| 8dd60 | 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 6a 70 65 67 5c 22 29 29 29 0a 0a 45 61 63 68 20 | ".:mime.\"image/jpeg\")))..Each. |
| 8dd80 | 67 70 74 65 6c 20 5c 22 63 6f 6e 74 65 78 74 5c 22 20 69 73 20 65 69 74 68 65 72 20 61 20 66 69 | gptel.\"context\".is.either.a.fi |
| 8dda0 | 6c 65 20 70 61 74 68 20 6f 72 20 61 6e 20 6f 76 65 72 6c 61 79 20 69 6e 20 61 0a 62 75 66 66 65 | le.path.or.an.overlay.in.a.buffe |
| 8ddc0 | 72 2e 20 20 45 61 63 68 20 6f 76 65 72 6c 61 79 20 63 6f 76 65 72 73 20 61 20 62 75 66 66 65 72 | r...Each.overlay.covers.a.buffer |
| 8dde0 | 20 72 65 67 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 0a 63 6f 6e 74 65 78 74 20 63 | .region.containing.the.context.c |
| 8de00 | 68 75 6e 6b 2e 20 20 54 68 69 73 20 69 73 20 61 63 63 65 73 73 69 62 6c 65 20 61 73 2c 20 66 6f | hunk...This.is.accessible.as,.fo |
| 8de20 | 72 20 65 78 61 6d 70 6c 65 3a 0a 0a 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | r.example:...(with-current-buffe |
| 8de40 | 72 20 62 75 66 66 65 72 31 0a 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 | r.buffer1....(buffer-substring.( |
| 8de60 | 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 65 72 6c 61 79 31 29 0a 20 20 20 20 20 20 20 20 | overlay-start.overlay1)......... |
| 8de80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 20 20 6f 76 65 72 | .............(overlay-end...over |
| 8dea0 | 6c 61 79 31 29 29 29 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 | lay1)))"...:group.'gptel...:type |
| 8dec0 | 20 27 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | .'function)..(defun.gptel-contex |
| 8dee0 | 74 2d 61 64 64 2d 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 | t-add-current-kill.(&optional.ar |
| 8df00 | 67 29 0a 20 20 22 41 64 64 20 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 74 6f 20 67 70 74 65 6c 2c | g)..."Add.current-kill.to.gptel, |
| 8df20 | 20 61 63 63 75 6d 75 6c 61 74 69 6e 67 20 69 66 20 61 72 67 20 69 73 20 6e 6f 6e 2d 6e 69 6c 22 | .accumulating.if.arg.is.non-nil" |
| 8df40 | 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 74 20 28 28 6b 69 | ...(interactive."P")...(let.((ki |
| 8df60 | 6c 6c 20 28 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 20 30 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d | ll.(current-kill.0))).....(with- |
| 8df80 | 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 |
| 8dfa0 | 65 20 22 20 2a 67 70 74 65 6c 2d 6b 69 6c 6c 2d 72 69 6e 67 2d 63 6f 6e 74 65 78 74 2a 22 29 0a | e.".*gptel-kill-ring-context*"). |
| 8dfc0 | 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b | ......(if.(not.arg)...........(k |
| 8dfe0 | 69 6c 6c 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 | ill-region.(point-min).(point-ma |
| 8e000 | 78 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 | x)).........(goto-char.(point-ma |
| 8e020 | 78 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 62 70 29 0a 20 20 20 20 20 | x)).........(unless.(bobp)...... |
| 8e040 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 2d 2d 2d 2d 5c 6e 22 29 29 29 0a 20 20 20 20 20 | .....(insert."\n----\n")))...... |
| 8e060 | 20 28 69 6e 73 65 72 74 20 6b 69 6c 6c 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | .(insert.kill).......(gptel-cont |
| 8e080 | 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 | ext--add-region.(current-buffer) |
| 8e0a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8e0c0 | 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 | ..(point-min).(point-max))...... |
| 8e0e0 | 20 28 6d 65 73 73 61 67 65 20 22 2a 63 75 72 72 65 6e 74 2d 6b 69 6c 6c 2a 20 68 61 73 20 62 65 | .(message."*current-kill*.has.be |
| 8e100 | 65 6e 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 | en.added.as.context."))))..(defu |
| 8e120 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 | n.gptel-context-add.(&optional.a |
| 8e140 | 72 67 20 63 6f 6e 66 69 72 6d 29 0a 20 20 22 41 64 64 20 63 6f 6e 74 65 78 74 20 74 6f 20 67 70 | rg.confirm)..."Add.context.to.gp |
| 8e160 | 74 65 6c 20 69 6e 20 61 20 44 57 49 4d 20 66 61 73 68 69 6f 6e 2e 0a 0a 2d 20 49 66 20 61 20 72 | tel.in.a.DWIM.fashion...-.If.a.r |
| 8e180 | 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 64 64 20 74 68 65 20 73 65 6c 65 63 | egion.is.selected,.add.the.selec |
| 8e1a0 | 74 65 64 20 72 65 67 69 6f 6e 20 74 6f 20 74 68 65 0a 20 20 63 6f 6e 74 65 78 74 2e 20 20 49 66 | ted.region.to.the...context...If |
| 8e1c0 | 20 74 68 65 72 65 20 69 73 20 61 6c 72 65 61 64 79 20 61 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 | .there.is.already.a.gptel.contex |
| 8e1e0 | 74 20 61 74 20 70 6f 69 6e 74 2c 20 72 65 6d 6f 76 65 20 69 74 0a 20 20 69 6e 73 74 65 61 64 2e | t.at.point,.remove.it...instead. |
| 8e200 | 0a 0a 2d 20 49 66 20 69 6e 20 44 69 72 65 64 2c 20 61 64 64 20 6d 61 72 6b 65 64 20 66 69 6c 65 | ..-.If.in.Dired,.add.marked.file |
| 8e220 | 73 20 6f 72 20 66 69 6c 65 20 61 74 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 | s.or.file.at.point.to.the.contex |
| 8e240 | 74 2e 20 49 66 0a 20 20 74 68 65 20 73 65 6c 65 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 64 | t..If...the.selection.includes.d |
| 8e260 | 69 72 65 63 74 6f 72 69 65 73 2c 20 61 64 64 20 61 6c 6c 20 74 68 65 69 72 20 66 69 6c 65 73 20 | irectories,.add.all.their.files. |
| 8e280 | 72 65 63 75 72 73 69 76 65 6c 79 2c 0a 20 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 | recursively,...prompting.the.use |
| 8e2a0 | 72 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 69 66 20 63 61 6c 6c 65 64 20 69 6e 74 | r.for.confirmation.if.called.int |
| 8e2c0 | 65 72 61 63 74 69 76 65 6c 79 20 6f 72 0a 20 20 43 4f 4e 46 49 52 4d 20 69 73 20 6e 6f 6e 2d 6e | eractively.or...CONFIRM.is.non-n |
| 8e2e0 | 69 6c 2e 20 57 69 74 68 20 6e 65 67 61 74 69 76 65 20 70 72 65 66 69 78 20 41 52 47 2c 20 72 65 | il..With.negative.prefix.ARG,.re |
| 8e300 | 6d 6f 76 65 20 61 6c 6c 20 66 69 6c 65 73 20 66 72 6f 6d 0a 20 20 74 68 65 20 63 6f 6e 74 65 78 | move.all.files.from...the.contex |
| 8e320 | 74 20 69 6e 73 74 65 61 64 2e 0a 0a 2d 20 4f 74 68 65 72 77 69 73 65 20 61 64 64 20 74 68 65 20 | t.instead...-.Otherwise.add.the. |
| 8e340 | 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 20 20 | current.buffer.to.the.context... |
| 8e360 | 57 69 74 68 20 70 6f 73 69 74 69 76 65 0a 20 20 70 72 65 66 69 78 20 41 52 47 2c 20 70 72 6f 6d | With.positive...prefix.ARG,.prom |
| 8e380 | 70 74 20 66 6f 72 20 61 20 62 75 66 66 65 72 20 6e 61 6d 65 20 61 6e 64 20 61 64 64 20 69 74 20 | pt.for.a.buffer.name.and.add.it. |
| 8e3a0 | 74 6f 20 74 68 65 20 63 6f 6e 74 65 78 74 2e 0a 0a 2d 20 57 69 74 68 20 6e 65 67 61 74 69 76 65 | to.the.context...-.With.negative |
| 8e3c0 | 20 70 72 65 66 69 78 20 41 52 47 2c 20 72 65 6d 6f 76 65 20 61 6c 6c 20 67 70 74 65 6c 20 63 6f | .prefix.ARG,.remove.all.gptel.co |
| 8e3e0 | 6e 74 65 78 74 73 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 20 20 62 75 66 66 65 72 | ntexts.from.the.current...buffer |
| 8e400 | 2c 20 70 72 6f 6d 70 74 69 6e 67 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 63 6f 6e 66 69 72 6d | ,.prompting.the.user.for.confirm |
| 8e420 | 61 74 69 6f 6e 20 69 66 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 0a 20 20 | ation.if.called.interactively... |
| 8e440 | 6f 72 20 43 4f 4e 46 49 52 4d 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 69 6e 74 65 72 | or.CONFIRM.is.non-nil."...(inter |
| 8e460 | 61 63 74 69 76 65 20 22 50 5c 6e 70 22 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 3b 3b 20 41 20 72 | active."P\np")...(cond....;;.A.r |
| 8e480 | 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2e 0a 20 20 20 28 28 75 73 65 2d 72 65 67 69 | egion.is.selected.....((use-regi |
| 8e4a0 | 6f 6e 2d 70 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 | on-p).....(gptel-context--add-re |
| 8e4c0 | 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 | gion.(current-buffer)........... |
| 8e4e0 | 20 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- |
| 8e500 | 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | beginning)...................... |
| 8e520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 28 | .............(region-end)).....( |
| 8e540 | 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 | deactivate-mark).....(message."C |
| 8e560 | 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 | urrent.region.added.as.context." |
| 8e580 | 29 29 0a 20 20 20 3b 3b 20 49 66 20 69 6e 20 64 69 72 65 64 0a 20 20 20 28 28 64 65 72 69 76 65 | ))....;;.If.in.dired....((derive |
| 8e5a0 | 64 2d 6d 6f 64 65 2d 70 20 27 64 69 72 65 64 2d 6d 6f 64 65 29 0a 20 20 20 20 28 6c 65 74 2a 20 | d-mode-p.'dired-mode).....(let*. |
| 8e5c0 | 28 28 66 69 6c 65 73 20 28 64 69 72 65 64 2d 67 65 74 2d 6d 61 72 6b 65 64 2d 66 69 6c 65 73 29 | ((files.(dired-get-marked-files) |
| 8e5e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 69 72 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 | )............(dirs.(cl-remove-if |
| 8e600 | 2d 6e 6f 74 20 23 27 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 73 29 29 0a | -not.#'file-directory-p.files)). |
| 8e620 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 70 20 28 3c 20 28 70 72 65 66 69 78 2d | ...........(remove-p.(<.(prefix- |
| 8e640 | 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a 09 20 20 20 28 61 63 74 69 | numeric-value.arg).0)).....(acti |
| 8e660 | 6f 6e 2d 66 6e 20 28 69 66 20 72 65 6d 6f 76 65 2d 70 0a 09 09 09 20 20 23 27 67 70 74 65 6c 2d | on-fn.(if.remove-p......#'gptel- |
| 8e680 | 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 09 09 09 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | context-remove....#'gptel-contex |
| 8e6a0 | 74 2d 61 64 64 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 72 65 | t-add-file))).......(when.(or.re |
| 8e6c0 | 6d 6f 76 65 2d 70 20 28 6e 75 6c 6c 20 64 69 72 73 29 20 28 6e 75 6c 6c 20 63 6f 6e 66 69 72 6d | move-p.(null.dirs).(null.confirm |
| 8e6e0 | 29 0a 09 09 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 52 65 63 75 72 73 69 76 65 | )...(y-or-n-p.(format."Recursive |
| 8e700 | 6c 79 20 61 64 64 20 66 69 6c 65 73 20 66 72 6f 6d 20 25 64 20 64 69 72 65 63 74 6f 72 25 73 3f | ly.add.files.from.%d.director%s? |
| 8e720 | 20 22 0a 09 09 09 09 20 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 0a 09 09 09 09 20 20 28 69 66 | .".......(length.dirs).......(if |
| 8e740 | 20 28 3d 20 28 6c 65 6e 67 74 68 20 64 69 72 73 29 20 31 29 20 22 79 22 20 22 69 65 73 22 29 29 | .(=.(length.dirs).1)."y"."ies")) |
| 8e760 | 29 29 0a 09 28 6d 61 70 63 20 61 63 74 69 6f 6e 2d 66 6e 20 66 69 6c 65 73 29 29 29 29 0a 20 20 | ))..(mapc.action-fn.files))))... |
| 8e780 | 20 3b 3b 20 49 66 20 69 6e 20 61 6e 20 69 6d 61 67 65 20 62 75 66 66 65 72 0a 20 20 20 28 28 61 | .;;.If.in.an.image.buffer....((a |
| 8e7a0 | 6e 64 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 69 6d 61 67 65 2d 6d 6f 64 65 29 0a | nd.(derived-mode-p.'image-mode). |
| 8e7c0 | 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 |
| 8e7e0 | 20 27 6d 65 64 69 61 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e | .'media)..........(buffer-file-n |
| 8e800 | 61 6d 65 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 66 20 28 61 6e 64 20 61 72 67 20 | ame)).....(funcall.(if.(and.arg. |
| 8e820 | 28 3c 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 | (<.(prefix-numeric-value.arg).0) |
| 8e840 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | )...............#'gptel-context- |
| 8e860 | 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e | remove...............#'gptel-con |
| 8e880 | 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 | text-add-file)...........(buffer |
| 8e8a0 | 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 20 20 20 3b 3b 20 4e 6f 20 72 65 67 69 6f 6e 20 69 73 | -file-name)))....;;.No.region.is |
| 8e8c0 | 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 41 52 47 20 69 73 20 70 6f 73 69 74 69 76 65 2e 0a | .selected,.and.ARG.is.positive.. |
| 8e8e0 | 20 20 20 28 28 61 6e 64 20 61 72 67 20 28 3e 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d | ...((and.arg.(>.(prefix-numeric- |
| 8e900 | 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 65 | value.arg).0)).....(let*.((buffe |
| 8e920 | 72 2d 6e 61 6d 65 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 22 43 68 6f 6f 73 65 20 62 75 66 66 | r-name.(read-buffer."Choose.buff |
| 8e940 | 65 72 20 74 6f 20 61 64 64 20 61 73 20 63 6f 6e 74 65 78 74 3a 20 22 0a 20 20 20 20 20 20 20 20 | er.to.add.as.context:."......... |
| 8e960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 | .............................(cu |
| 8e980 | 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 | rrent-buffer).t))............(st |
| 8e9a0 | 61 72 74 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d | art.(with-current-buffer.buffer- |
| 8e9c0 | 6e 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 | name.(point-min)))............(e |
| 8e9e0 | 6e 64 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e | nd.(with-current-buffer.buffer-n |
| 8ea00 | 61 6d 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d | ame.(point-max)))).......(gptel- |
| 8ea20 | 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 28 67 65 74 2d | context--add-region........(get- |
| 8ea40 | 62 75 66 66 65 72 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 20 73 74 61 72 74 20 65 6e 64 20 74 29 | buffer.buffer-name).start.end.t) |
| 8ea60 | 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 66 66 65 72 20 27 25 73 27 20 61 64 64 | .......(message."Buffer.'%s'.add |
| 8ea80 | 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 20 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 | ed.as.context.".buffer-name))).. |
| 8eaa0 | 20 20 3b 3b 20 4e 6f 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c 65 63 74 65 64 2c 20 61 6e 64 20 | ..;;.No.region.is.selected,.and. |
| 8eac0 | 41 52 47 20 69 73 20 6e 65 67 61 74 69 76 65 2e 0a 20 20 20 28 28 61 6e 64 20 61 72 67 20 28 3c | ARG.is.negative.....((and.arg.(< |
| 8eae0 | 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 61 72 67 29 20 30 29 29 0a | .(prefix-numeric-value.arg).0)). |
| 8eb00 | 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 63 6f 6e 66 69 72 6d 29 0a 09 20 20 | ....(when.(or.(null.confirm).... |
| 8eb20 | 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 52 65 6d 6f 76 65 20 61 6c 6c 20 63 6f 6e 74 65 78 | ....(y-or-n-p."Remove.all.contex |
| 8eb40 | 74 73 20 66 72 6f 6d 20 74 68 69 73 20 62 75 66 66 65 72 3f 20 22 29 29 0a 20 20 20 20 20 20 28 | ts.from.this.buffer?.")).......( |
| 8eb60 | 6c 65 74 20 28 28 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 20 30 29 29 0a 20 20 20 20 20 | let.((removed-contexts.0))...... |
| 8eb80 | 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f 76 20 69 6e 0a 20 20 20 20 20 20 20 20 20 | ...(cl-loop.for.cov.in.......... |
| 8eba0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f | ........(gptel-context--in-regio |
| 8ebc0 | 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 | n.(current-buffer).(point-min).( |
| 8ebe0 | 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 | point-max))..................do. |
| 8ec00 | 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c | (progn.......................(cl |
| 8ec20 | 2d 69 6e 63 66 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 | -incf.removed-contexts)......... |
| 8ec40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d | ..............(gptel-context-rem |
| 8ec60 | 6f 76 65 20 63 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 66 6f 72 | ove.cov))).........(message.(for |
| 8ec80 | 6d 61 74 20 22 25 64 20 63 6f 6e 74 65 78 74 25 73 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 | mat."%d.context%s.removed.from.c |
| 8eca0 | 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | urrent.buffer."................. |
| 8ecc0 | 20 20 20 20 20 20 20 20 20 72 65 6d 6f 76 65 64 2d 63 6f 6e 74 65 78 74 73 0a 20 20 20 20 20 20 | .........removed-contexts....... |
| 8ece0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 72 65 6d 6f 76 65 | ...................(if.(=.remove |
| 8ed00 | 64 2d 63 6f 6e 74 65 78 74 73 20 31 29 20 22 22 20 22 73 22 29 29 29 29 29 29 0a 20 20 20 28 74 | d-contexts.1).""."s"))))))....(t |
| 8ed20 | 20 3b 20 44 65 66 61 75 6c 74 20 62 65 68 61 76 69 6f 72 0a 20 20 20 20 28 69 66 20 28 67 70 74 | .;.Default.behavior.....(if.(gpt |
| 8ed40 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 28 70 | el-context--at-point).........(p |
| 8ed60 | 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 | rogn...........(gptel-context-re |
| 8ed80 | 6d 6f 76 65 20 28 63 61 72 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 | move.(car.(gptel-context--in-reg |
| 8eda0 | 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ion.(current-buffer)............ |
| 8edc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8ede0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d | ....................(max.(point- |
| 8ee00 | 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | min).(1-.(point))).............. |
| 8ee20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8ee40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 | ..................(point)))).... |
| 8ee60 | 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 6e 74 65 78 74 20 75 6e 64 65 72 20 70 | .......(message."Context.under.p |
| 8ee80 | 6f 69 6e 74 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 22 29 29 0a 20 20 20 20 20 20 | oint.has.been.removed."))....... |
| 8eea0 | 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 | (gptel-context--add-region.(curr |
| 8eec0 | 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d | ent-buffer).(point-min).(point-m |
| 8eee0 | 61 78 29 20 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 75 72 72 65 6e 74 20 62 | ax).t).......(message."Current.b |
| 8ef00 | 75 66 66 65 72 20 61 64 64 65 64 20 61 73 20 63 6f 6e 74 65 78 74 2e 22 29 29 29 29 29 0a 0a 3b | uffer.added.as.context.")))))..; |
| 8ef20 | 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 61 | ;;###autoload.(autoload.'gptel-a |
| 8ef40 | 64 64 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 20 22 41 64 64 2f 72 65 6d 6f 76 65 20 72 | dd."gptel-context"."Add/remove.r |
| 8ef60 | 65 67 69 6f 6e 73 20 6f 72 20 62 75 66 66 65 72 73 20 66 72 6f 6d 20 67 70 74 65 6c 27 73 20 63 | egions.or.buffers.from.gptel's.c |
| 8ef80 | 6f 6e 74 65 78 74 2e 22 20 74 29 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 61 64 64 | ontext.".t).(defalias.'gptel-add |
| 8efa0 | 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 29 0a 0a 28 64 65 66 75 6e 20 67 70 | .#'gptel-context-add)..(defun.gp |
| 8efc0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 28 70 61 74 68 | tel-context--add-text-file.(path |
| 8efe0 | 29 0a 20 20 22 41 64 64 20 74 65 78 74 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 74 6f 20 63 6f | )..."Add.text.file.at.PATH.to.co |
| 8f000 | 6e 74 65 78 74 2e 22 0a 20 20 28 63 6c 2d 70 75 73 68 6e 65 77 20 28 6c 69 73 74 20 70 61 74 68 | ntext."...(cl-pushnew.(list.path |
| 8f020 | 29 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 3a 74 65 73 74 20 23 27 65 | ).gptel-context--alist.:test.#'e |
| 8f040 | 71 75 61 6c 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 61 64 | qual)...(message."File.\"%s\".ad |
| 8f060 | 64 65 64 20 74 6f 20 63 6f 6e 74 65 78 74 2e 22 20 70 61 74 68 29 0a 20 20 70 61 74 68 29 0a 0a | ded.to.context.".path)...path).. |
| 8f080 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 62 69 6e 61 72 79 | (defun.gptel-context--add-binary |
| 8f0a0 | 2d 66 69 6c 65 20 28 70 61 74 68 29 0a 20 20 22 41 64 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 | -file.(path)..."Add.binary.file. |
| 8f0c0 | 61 74 20 50 41 54 48 20 74 6f 20 63 6f 6e 74 65 78 74 20 69 66 20 73 75 70 70 6f 72 74 65 64 2e | at.PATH.to.context.if.supported. |
| 8f0e0 | 0a 52 65 74 75 72 6e 20 50 41 54 48 20 69 66 20 61 64 64 65 64 2c 20 6e 69 6c 20 69 66 20 69 67 | .Return.PATH.if.added,.nil.if.ig |
| 8f100 | 6e 6f 72 65 64 2e 22 0a 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 67 70 74 65 6c 2d 2d 6d 6f 64 | nored."...(if-let*.(((gptel--mod |
| 8f120 | 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6d 65 64 69 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 | el-capable-p.'media))........... |
| 8f140 | 20 20 28 6d 69 6d 65 20 28 6d 61 69 6c 63 61 70 2d 66 69 6c 65 2d 6e 61 6d 65 2d 74 6f 2d 6d 69 | ..(mime.(mailcap-file-name-to-mi |
| 8f160 | 6d 65 2d 74 79 70 65 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 67 70 74 | me-type.path)).............((gpt |
| 8f180 | 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c 65 2d 70 20 6d 69 6d 65 29 29 29 | el--model-mime-capable-p.mime))) |
| 8f1a0 | 0a 20 20 20 20 20 20 28 70 72 6f 67 31 20 70 61 74 68 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 70 | .......(prog1.path.........(cl-p |
| 8f1c0 | 75 73 68 6e 65 77 20 28 6c 69 73 74 20 70 61 74 68 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 0a 20 20 | ushnew.(list.path.:mime.mime)... |
| 8f1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d | ..................gptel-context- |
| 8f200 | 2d 61 6c 69 73 74 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 28 6d | -alist.:test.#'equal).........(m |
| 8f220 | 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 5c 22 20 61 64 64 65 64 20 74 6f 20 63 6f 6e | essage."File.\"%s\".added.to.con |
| 8f240 | 74 65 78 74 2e 22 20 70 61 74 68 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 6e 6f | text.".path)).....(message."Igno |
| 8f260 | 72 69 6e 67 20 75 6e 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 5c 22 25 | ring.unsupported.binary.file.\"% |
| 8f280 | 73 5c 22 2e 22 20 70 61 74 68 29 0a 20 20 20 20 6e 69 6c 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | s\".".path).....nil))..(defun.gp |
| 8f2a0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 28 70 61 74 68 | tel-context--add-directory.(path |
| 8f2c0 | 20 61 63 74 69 6f 6e 29 0a 20 20 22 50 72 6f 63 65 73 73 20 61 6c 6c 20 66 69 6c 65 73 20 69 6e | .action)..."Process.all.files.in |
| 8f2e0 | 20 64 69 72 65 63 74 6f 72 79 20 61 74 20 50 41 54 48 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 | .directory.at.PATH.according.to. |
| 8f300 | 41 43 54 49 4f 4e 2e 0a 41 43 54 49 4f 4e 20 73 68 6f 75 6c 64 20 62 65 20 65 69 74 68 65 72 20 | ACTION..ACTION.should.be.either. |
| 8f320 | 60 61 64 64 27 20 6f 72 20 60 72 65 6d 6f 76 65 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 6c | `add'.or.`remove'."...(let.((fil |
| 8f340 | 65 73 20 28 64 69 72 65 63 74 6f 72 79 2d 66 69 6c 65 73 2d 72 65 63 75 72 73 69 76 65 6c 79 20 | es.(directory-files-recursively. |
| 8f360 | 70 61 74 68 20 22 2e 22 20 74 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 28 6c 61 6d 62 64 61 20 | path.".".t))).....(mapc.(lambda. |
| 8f380 | 28 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 | (file).............(unless.(file |
| 8f3a0 | 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -directory-p.file).............. |
| 8f3c0 | 20 28 70 63 61 73 65 2d 65 78 68 61 75 73 74 69 76 65 20 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 | .(pcase-exhaustive.action....... |
| 8f3e0 | 20 20 20 20 20 20 20 20 20 20 28 27 61 64 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........('add................. |
| 8f400 | 20 28 69 66 20 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 66 69 6c 65 29 | .(if.(gptel--file-binary-p.file) |
| 8f420 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e | ......................(gptel-con |
| 8f440 | 74 65 78 74 2d 2d 61 64 64 2d 62 69 6e 61 72 79 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 | text--add-binary-file.file)..... |
| 8f460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 | ...............(gptel-context--a |
| 8f480 | 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | dd-text-file.file)))............ |
| 8f4a0 | 20 20 20 20 20 28 27 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | .....('remove..................( |
| 8f4c0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 66 69 6c 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 | setf.(alist-get.file.gptel-conte |
| 8f4e0 | 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 |
| 8f500 | 69 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 73 29 0a 20 20 20 20 28 77 68 | il)))))...........files).....(wh |
| 8f520 | 65 6e 20 28 65 71 20 61 63 74 69 6f 6e 20 27 72 65 6d 6f 76 65 29 0a 20 20 20 20 20 20 28 6d 65 | en.(eq.action.'remove).......(me |
| 8f540 | 73 73 61 67 65 20 22 44 69 72 65 63 74 6f 72 79 20 5c 22 25 73 5c 22 20 72 65 6d 6f 76 65 64 20 | ssage."Directory.\"%s\".removed. |
| 8f560 | 66 72 6f 6d 20 63 6f 6e 74 65 78 74 2e 22 20 70 61 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | from.context.".path))))..(defun. |
| 8f580 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 20 28 70 61 74 68 29 0a 20 20 | gptel-context-add-file.(path)... |
| 8f5a0 | 22 41 64 64 20 74 68 65 20 66 69 6c 65 20 61 74 20 50 41 54 48 20 74 6f 20 74 68 65 20 67 70 74 | "Add.the.file.at.PATH.to.the.gpt |
| 8f5c0 | 65 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 66 20 50 41 54 48 20 69 73 20 61 20 64 69 72 65 63 74 | el.context...If.PATH.is.a.direct |
| 8f5e0 | 6f 72 79 2c 20 72 65 63 75 72 73 69 76 65 6c 79 20 61 64 64 20 61 6c 6c 20 66 69 6c 65 73 20 69 | ory,.recursively.add.all.files.i |
| 8f600 | 6e 20 69 74 2e 0a 50 41 54 48 20 73 68 6f 75 6c 64 20 62 65 20 72 65 61 64 61 62 6c 65 20 61 73 | n.it..PATH.should.be.readable.as |
| 8f620 | 20 74 65 78 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 43 68 6f 6f 73 65 20 | .text."...(interactive."fChoose. |
| 8f640 | 66 69 6c 65 20 74 6f 20 61 64 64 20 74 6f 20 63 6f 6e 74 65 78 74 3a 20 22 29 0a 20 20 28 63 6f | file.to.add.to.context:.")...(co |
| 8f660 | 6e 64 20 28 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 70 61 74 68 29 0a 09 20 28 67 | nd.((file-directory-p.path)...(g |
| 8f680 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 | ptel-context--add-directory.path |
| 8f6a0 | 20 27 61 64 64 29 29 0a 09 28 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 | .'add))..((gptel--file-binary-p. |
| 8f6c0 | 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 | path)..........(gptel-context--a |
| 8f6e0 | 64 64 2d 62 69 6e 61 72 79 2d 66 69 6c 65 20 70 61 74 68 29 29 0a 09 28 28 67 70 74 65 6c 2d 63 | dd-binary-file.path))..((gptel-c |
| 8f700 | 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 74 65 78 74 2d 66 69 6c 65 20 70 61 74 68 29 29 29 29 0a 0a | ontext--add-text-file.path)))).. |
| 8f720 | 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d | ;;;###autoload.(autoload.'gptel- |
| 8f740 | 61 64 64 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 20 22 41 64 64 20 66 69 | add-file."gptel-context"."Add.fi |
| 8f760 | 6c 65 73 20 74 6f 20 67 70 74 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 22 20 74 29 0a 28 64 65 66 | les.to.gptel's.context.".t).(def |
| 8f780 | 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 61 64 64 2d 66 69 6c 65 20 23 27 67 70 74 65 6c 2d 63 6f | alias.'gptel-add-file.#'gptel-co |
| 8f7a0 | 6e 74 65 78 74 2d 61 64 64 2d 66 69 6c 65 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f | ntext-add-file)..(defun.gptel-co |
| 8f7c0 | 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 29 | ntext-remove.(&optional.context) |
| 8f7e0 | 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 43 4f 4e 54 45 58 54 20 6f 76 65 72 6c 61 79 20 66 | ..."Remove.the.CONTEXT.overlay.f |
| 8f800 | 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 78 74 73 20 6c 69 73 74 2e 0a 0a 49 66 20 43 4f 4e 54 45 | rom.the.contexts.list...If.CONTE |
| 8f820 | 58 54 20 69 73 20 6e 69 6c 2c 20 72 65 6d 6f 76 65 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 | XT.is.nil,.removes.the.context.a |
| 8f840 | 74 20 70 6f 69 6e 74 2e 0a 49 66 20 73 65 6c 65 63 74 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c | t.point..If.selection.is.active, |
| 8f860 | 20 72 65 6d 6f 76 65 73 20 61 6c 6c 20 63 6f 6e 74 65 78 74 73 20 77 69 74 68 69 6e 20 73 65 6c | .removes.all.contexts.within.sel |
| 8f880 | 65 63 74 69 6f 6e 2e 0a 49 66 20 43 4f 4e 54 45 58 54 20 69 73 20 61 20 64 69 72 65 63 74 6f 72 | ection..If.CONTEXT.is.a.director |
| 8f8a0 | 79 2c 20 72 65 63 75 72 73 69 76 65 6c 79 20 72 65 6d 6f 76 65 73 20 61 6c 6c 20 66 69 6c 65 73 | y,.recursively.removes.all.files |
| 8f8c0 | 20 69 6e 20 69 74 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 6f 76 65 72 6c 61 79 70 20 63 | .in.it."...(cond....((overlayp.c |
| 8f8e0 | 6f 6e 74 65 78 74 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 63 6f 6e 74 | ontext).....(delete-overlay.cont |
| 8f900 | 65 78 74 29 0a 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 51 75 61 64 72 61 74 69 63 20 63 6f 73 | ext).....;;.FIXME:.Quadratic.cos |
| 8f920 | 74 20 77 68 65 6e 20 63 6c 65 61 72 69 6e 67 20 61 20 62 75 6e 63 68 20 6f 66 20 63 6f 6e 74 65 | t.when.clearing.a.bunch.of.conte |
| 8f940 | 78 74 73 20 61 74 20 6f 6e 63 65 0a 20 20 20 20 28 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 | xts.at.once.....(unless......... |
| 8f960 | 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 66 6f 72 20 6f 76 20 69 6e 20 28 61 6c 69 | (cl-loop..........for.ov.in.(ali |
| 8f980 | 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 |
| 8f9a0 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 74 68 65 72 65 69 73 20 28 | ntext--alist)..........thereis.( |
| 8f9c0 | 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 29 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 | overlay-start.ov)).......(setf.( |
| 8f9e0 | 61 6c 69 73 74 2d 67 65 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 65 6c | alist-get.(current-buffer).gptel |
| 8fa00 | 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c | -context--alist.nil.'remove).nil |
| 8fa20 | 29 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 70 20 63 6f 6e 74 65 78 74 29 20 20 20 20 20 20 20 | )))....((stringp.context)....... |
| 8fa40 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 69 6c 65 20 6f 72 20 64 69 72 65 63 74 6f 72 79 0a 20 | ............;file.or.directory.. |
| 8fa60 | 20 20 20 28 69 66 20 28 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 2d 70 20 63 6f 6e 74 65 78 74 | ...(if.(file-directory-p.context |
| 8fa80 | 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 64 69 | ).........(gptel-context--add-di |
| 8faa0 | 72 65 63 74 6f 72 79 20 63 6f 6e 74 65 78 74 20 27 72 65 6d 6f 76 65 29 0a 20 20 20 20 20 20 28 | rectory.context.'remove).......( |
| 8fac0 | 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 63 6f 6e 74 65 78 74 20 67 70 74 65 6c 2d 63 6f | setf.(alist-get.context.gptel-co |
| 8fae0 | 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 20 23 27 65 71 75 61 6c | ntext--alist.nil.'remove.#'equal |
| 8fb00 | 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 69 6c 65 20 5c 22 25 73 | ).nil).......(message."File.\"%s |
| 8fb20 | 5c 22 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 63 6f 6e 74 65 78 74 2e 22 20 63 6f 6e 74 65 78 | \".removed.from.context.".contex |
| 8fb40 | 74 29 29 29 0a 20 20 20 28 28 72 65 67 69 6f 6e 2d 61 63 74 69 76 65 2d 70 29 0a 20 20 20 20 28 | t)))....((region-active-p).....( |
| 8fb60 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 78 74 73 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | when-let*.((contexts.(gptel-cont |
| 8fb80 | 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a | ext--in-region.(current-buffer). |
| 8fba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8fbc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 | ....................(region-begi |
| 8fbe0 | 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nning).......................... |
| 8fc00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 69 | ...........................(regi |
| 8fc20 | 6f 6e 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 74 | on-end)))).......(cl-loop.for.ct |
| 8fc40 | 78 20 69 6e 20 63 6f 6e 74 65 78 74 73 20 64 6f 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 | x.in.contexts.do.(delete-overlay |
| 8fc60 | 20 63 74 78 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | .ctx))))....(t.....(when-let*.(( |
| 8fc80 | 63 74 78 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a | ctx.(gptel-context--at-point))). |
| 8fca0 | 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 63 74 78 29 29 29 29 29 0a 0a | ......(delete-overlay.ctx))))).. |
| 8fcc0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 | (defun.gptel-context-remove-all. |
| 8fce0 | 28 26 6f 70 74 69 6f 6e 61 6c 20 76 65 72 62 6f 73 65 29 0a 20 20 22 52 65 6d 6f 76 65 20 61 6c | (&optional.verbose)..."Remove.al |
| 8fd00 | 6c 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 66 20 56 45 52 42 4f 53 45 20 69 73 20 | l.gptel.context...If.VERBOSE.is. |
| 8fd20 | 6e 6f 6e 2d 6e 69 6c 2c 20 61 73 6b 20 66 6f 72 20 63 6f 6e 66 69 72 6d 61 74 69 6f 6e 20 61 6e | non-nil,.ask.for.confirmation.an |
| 8fd40 | 64 20 6d 65 73 73 61 67 65 0a 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 | d.message.afterwards."...(intera |
| 8fd60 | 63 74 69 76 65 20 28 6c 69 73 74 20 74 29 29 0a 20 20 28 69 66 20 28 6e 75 6c 6c 20 67 70 74 65 | ctive.(list.t))...(if.(null.gpte |
| 8fd80 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 76 65 | l-context--alist).......(when.ve |
| 8fda0 | 72 62 6f 73 65 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 | rbose.(message."No.gptel.context |
| 8fdc0 | 20 73 6f 75 72 63 65 73 20 74 6f 20 72 65 6d 6f 76 65 2e 22 29 29 0a 20 20 20 20 28 77 68 65 6e | .sources.to.remove.")).....(when |
| 8fde0 | 20 28 6f 72 20 28 6e 6f 74 20 76 65 72 62 6f 73 65 29 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 52 65 | .(or.(not.verbose).(y-or-n-p."Re |
| 8fe00 | 6d 6f 76 65 20 61 6c 6c 20 63 6f 6e 74 65 78 74 3f 20 22 29 29 0a 20 20 20 20 20 20 28 63 6c 2d | move.all.context?.")).......(cl- |
| 8fe20 | 6c 6f 6f 70 0a 20 20 20 20 20 20 20 66 6f 72 20 28 73 6f 75 72 63 65 20 2e 20 6f 76 73 29 20 69 | loop........for.(source...ovs).i |
| 8fe40 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 69 66 | n.gptel-context--alist........if |
| 8fe60 | 20 28 62 75 66 66 65 72 70 20 73 6f 75 72 63 65 29 20 64 6f 20 20 20 20 20 20 20 20 20 20 20 3b | .(bufferp.source).do...........; |
| 8fe80 | 42 75 66 66 65 72 73 20 61 6e 64 20 62 75 66 66 65 72 20 72 65 67 69 6f 6e 73 0a 20 20 20 20 20 | Buffers.and.buffer.regions...... |
| 8fea0 | 20 20 28 6d 61 70 63 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 6f | ..(mapc.#'gptel-context-remove.o |
| 8fec0 | 76 73 29 0a 20 20 20 20 20 20 20 65 6c 73 65 20 64 6f 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | vs)........else.do.(gptel-contex |
| 8fee0 | 74 2d 72 65 6d 6f 76 65 20 73 6f 75 72 63 65 29 20 3b 66 69 6c 65 73 20 6f 72 20 6f 74 68 65 72 | t-remove.source).;files.or.other |
| 8ff00 | 20 74 79 70 65 73 0a 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 64 6f 20 28 73 65 74 71 20 67 | .types........finally.do.(setq.g |
| 8ff20 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 | ptel-context--alist.nil))).....( |
| 8ff40 | 77 68 65 6e 20 76 65 72 62 6f 73 65 20 28 6d 65 73 73 61 67 65 20 22 52 65 6d 6f 76 65 64 20 61 | when.verbose.(message."Removed.a |
| 8ff60 | 6c 6c 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 73 2e 22 29 29 29 29 0a 0a | ll.gptel.context.sources.")))).. |
| 8ff80 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 6d 61 6b 65 2d 6f 76 65 72 6c | (defun.gptel-context--make-overl |
| 8ffa0 | 61 79 20 28 73 74 61 72 74 20 65 6e 64 20 26 6f 70 74 69 6f 6e 61 6c 20 61 64 76 61 6e 63 65 29 | ay.(start.end.&optional.advance) |
| 8ffc0 | 0a 20 20 22 48 69 67 68 6c 69 67 68 74 20 74 68 65 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 53 54 | ..."Highlight.the.region.from.ST |
| 8ffe0 | 41 52 54 20 74 6f 20 45 4e 44 2e 0a 0a 41 44 56 41 4e 43 45 20 63 6f 6e 74 72 6f 6c 73 20 74 68 | ART.to.END...ADVANCE.controls.th |
| 90000 | 65 20 6f 76 65 72 6c 61 79 20 62 6f 75 6e 64 61 72 79 20 62 65 68 61 76 69 6f 72 2e 22 0a 20 20 | e.overlay.boundary.behavior."... |
| 90020 | 28 6c 65 74 20 28 28 6f 76 65 72 6c 61 79 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 73 74 61 | (let.((overlay.(make-overlay.sta |
| 90040 | 72 74 20 65 6e 64 20 6e 69 6c 20 28 6e 6f 74 20 61 64 76 61 6e 63 65 29 20 61 64 76 61 6e 63 65 | rt.end.nil.(not.advance).advance |
| 90060 | 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 79 20 27 65 76 | ))).....(overlay-put.overlay.'ev |
| 90080 | 61 70 6f 72 61 74 65 20 74 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 | aporate.t).....(overlay-put.over |
| 900a0 | 6c 61 79 20 27 66 61 63 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 68 69 67 68 6c 69 67 | lay.'face.'gptel-context-highlig |
| 900c0 | 68 74 2d 66 61 63 65 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 65 72 6c 61 | ht-face).....(overlay-put.overla |
| 900e0 | 79 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 74 29 0a 20 20 20 20 28 70 75 73 68 20 6f 76 | y.'gptel-context.t).....(push.ov |
| 90100 | 65 72 6c 61 79 20 28 61 6c 69 73 74 2d 67 65 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | erlay.(alist-get.(current-buffer |
| 90120 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 | )..............................g |
| 90140 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 6f 76 65 72 6c 61 | ptel-context--alist)).....overla |
| 90160 | 79 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | y))..;;;###autoload.(defun.gptel |
| 90180 | 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 28 63 61 6c 6c 62 61 63 6b 20 64 61 74 61 2d 62 75 | -context--wrap.(callback.data-bu |
| 901a0 | 66 29 0a 20 20 22 41 64 64 20 72 65 71 75 65 73 74 20 63 6f 6e 74 65 78 74 20 74 6f 20 44 41 54 | f)..."Add.request.context.to.DAT |
| 901c0 | 41 2d 42 55 46 20 61 6e 64 20 72 75 6e 20 43 41 4c 4c 42 41 43 4b 2e 0a 0a 44 41 54 41 2d 42 55 | A-BUF.and.run.CALLBACK...DATA-BU |
| 901e0 | 46 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 68 65 20 72 65 71 75 65 73 | F.is.the.buffer.where.the.reques |
| 90200 | 74 20 70 72 6f 6d 70 74 20 69 73 20 63 6f 6e 73 74 72 75 63 74 65 64 2e 22 0a 20 20 28 69 66 20 | t.prompt.is.constructed."...(if. |
| 90220 | 28 3d 20 28 63 61 72 20 28 66 75 6e 63 2d 61 72 69 74 79 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | (=.(car.(func-arity.gptel-contex |
| 90240 | 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 29 29 20 32 29 0a 20 20 20 20 20 20 28 66 75 | t-string-function)).2).......(fu |
| 90260 | 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 2d 66 75 6e 63 74 | ncall.gptel-context-string-funct |
| 90280 | 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 20 28 | ion................(lambda.(c).( |
| 902a0 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 61 74 61 2d 62 75 66 0a 20 20 20 | with-current-buffer.data-buf.... |
| 902c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 | .....................(gptel-cont |
| 902e0 | 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 29 29 0a 20 20 20 20 20 20 20 20 | ext--wrap-in-buffer.c))......... |
| 90300 | 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 | .........(funcall.callback)).... |
| 90320 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c | ............(gptel-context--coll |
| 90340 | 65 63 74 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 64 | ect)).....(with-current-buffer.d |
| 90360 | 61 74 61 2d 62 75 66 0a 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 6c 61 73 74 20 28 67 70 74 65 | ata-buf.......(thread-last.(gpte |
| 90380 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | l-context--collect)............. |
| 903a0 | 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 73 74 | .......(funcall.gptel-context-st |
| 903c0 | 72 69 6e 67 2d 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ring-function).................. |
| 903e0 | 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 | ..(gptel-context--wrap-in-buffer |
| 90400 | 29 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 61 63 6b 29 29 29 0a 0a 28 64 | ))).....(funcall.callback)))..(d |
| 90420 | 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 | efun.gptel-context--wrap-in-buff |
| 90440 | 65 72 20 28 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 65 74 | er.(context-string.&optional.met |
| 90460 | 68 6f 64 29 0a 20 20 22 49 6e 6a 65 63 74 20 43 4f 4e 54 45 58 54 2d 53 54 52 49 4e 47 20 74 6f | hod)..."Inject.CONTEXT-STRING.to |
| 90480 | 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 75 73 69 6e 67 20 4d 45 54 48 4f 44 2e 0a 0a 4d | .current.buffer.using.METHOD...M |
| 904a0 | 45 54 48 4f 44 20 69 73 20 65 69 74 68 65 72 20 73 79 73 74 65 6d 20 6f 72 20 75 73 65 72 2c 20 | ETHOD.is.either.system.or.user,. |
| 904c0 | 61 6e 64 20 64 65 66 61 75 6c 74 73 20 74 6f 20 60 67 70 74 65 6c 2d 75 73 65 2d 63 6f 6e 74 65 | and.defaults.to.`gptel-use-conte |
| 904e0 | 78 74 27 2e 0a 54 68 69 73 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a | xt'..This.modifies.the.buffer.". |
| 90500 | 20 20 28 77 68 65 6e 20 28 6c 65 6e 67 74 68 3e 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 | ..(when.(length>.context-string. |
| 90520 | 30 29 0a 20 20 20 20 28 70 63 61 73 65 20 28 6f 72 20 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 75 | 0).....(pcase.(or.method.gptel-u |
| 90540 | 73 65 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 28 27 73 79 73 74 65 6d 0a 20 20 20 20 20 | se-context).......('system...... |
| 90560 | 20 20 28 69 66 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6e | ..(if.(gptel--model-capable-p.'n |
| 90580 | 6f 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 | osystem)............(gptel-conte |
| 905a0 | 78 74 2d 2d 77 72 61 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e | xt--wrap-in-buffer.context-strin |
| 905c0 | 67 20 27 75 73 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 2d 73 79 73 | g.'user)..........(if.gptel--sys |
| 905e0 | 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 65 74 79 | tem-message..............(cl-ety |
| 90600 | 70 65 63 61 73 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 | pecase.gptel--system-message.... |
| 90620 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ............(string............. |
| 90640 | 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a | ....(setq.gptel--system-message. |
| 90660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 67 70 | ......................(concat.gp |
| 90680 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 22 5c 6e 5c 6e 22 20 63 6f 6e 74 65 | tel--system-message."\n\n".conte |
| 906a0 | 78 74 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e | xt-string)))................(fun |
| 906c0 | 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 | ction.................(setq.gpte |
| 906e0 | 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............... |
| 90700 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 64 69 72 65 63 74 69 76 65 20 | ........(gptel--parse-directive. |
| 90720 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 27 72 61 77 29 29 0a 20 20 20 | gptel--system-message.'raw)).... |
| 90740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 | .............(gptel-context--wra |
| 90760 | 70 2d 69 6e 2d 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 | p-in-buffer.context-string)).... |
| 90780 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ............(list............... |
| 907a0 | 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 3b 63 | ..(setq.gptel--system-message.;c |
| 907c0 | 6f 6e 73 20 61 20 6e 65 77 20 6c 69 73 74 20 74 6f 20 61 76 6f 69 64 20 6d 75 74 61 74 69 6f 6e | ons.a.new.list.to.avoid.mutation |
| 907e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 28 63 6f | .......................(cons.(co |
| 90800 | 6e 63 61 74 20 28 63 61 72 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 | ncat.(car.gptel--system-message) |
| 90820 | 20 22 5c 6e 5c 6e 22 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 | ."\n\n".context-string)......... |
| 90840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 67 70 74 65 6c 2d 2d | ....................(cdr.gptel-- |
| 90860 | 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | system-message)))))............( |
| 90880 | 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 63 6f 6e 74 65 | setq.gptel--system-message.conte |
| 908a0 | 78 74 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 28 27 75 73 65 72 0a 20 20 20 20 20 | xt-string)))).......('user...... |
| 908c0 | 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 | ..(goto-char.(point-max))....... |
| 908e0 | 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 | .(text-property-search-backward. |
| 90900 | 27 67 70 74 65 6c 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 28 61 6e 64 20 67 70 74 65 6c 2d | 'gptel.nil.t)........(and.gptel- |
| 90920 | 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 20 | mode.............(looking-at.... |
| 90940 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5b 5c 6e 5b 3a 62 6c 61 6e 6b 3a 5d 5d | ..........(concat."[\n[:blank:]] |
| 90960 | 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 | *"......................(and-let |
| 90980 | 2a 20 28 28 70 72 65 66 69 78 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d | *.((prefix.(gptel-prompt-prefix- |
| 909a0 | 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | string))........................ |
| 909c0 | 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 70 | .........((not.(string-empty-p.p |
| 909e0 | 72 65 66 69 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | refix))))....................... |
| 90a00 | 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 3f 3a 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 | .(concat."\\(?:".(regexp-quote.p |
| 90a20 | 72 65 66 69 78 29 20 22 5c 5c 29 3f 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | refix)."\\)?")))).............(d |
| 90a40 | 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 | elete-region.(match-beginning.0) |
| 90a60 | 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | .(match-end.0)))........(insert. |
| 90a80 | 22 5c 6e 22 20 63 6f 6e 74 65 78 74 2d 73 74 72 69 6e 67 20 22 5c 6e 5c 6e 22 29 29 29 29 29 0a | "\n".context-string."\n\n"))))). |
| 90aa0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 2d 6d | .(defun.gptel-context--collect-m |
| 90ac0 | 65 64 69 61 20 28 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 22 43 6f 6c | edia.(&optional.contexts)..."Col |
| 90ae0 | 6c 65 63 74 20 6d 65 64 69 61 20 43 4f 4e 54 45 58 54 53 2e 0a 0a 43 4f 4e 54 45 58 54 53 2c 20 | lect.media.CONTEXTS...CONTEXTS,. |
| 90b00 | 77 68 69 63 68 20 61 72 65 20 74 79 70 69 63 61 6c 6c 79 20 70 61 74 68 73 20 74 6f 20 62 69 6e | which.are.typically.paths.to.bin |
| 90b20 | 61 72 79 20 66 69 6c 65 73 2c 20 61 72 65 0a 62 61 73 65 36 34 2d 65 6e 63 6f 64 65 64 20 61 6e | ary.files,.are.base64-encoded.an |
| 90b40 | 64 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 74 68 65 20 66 69 72 73 74 20 75 73 65 72 20 70 72 | d.prepended.to.the.first.user.pr |
| 90b60 | 6f 6d 70 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 69 6e | ompt."...(cl-loop.for.context.in |
| 90b80 | 20 28 6f 72 20 63 6f 6e 74 65 78 74 73 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 | .(or.contexts.gptel-context--ali |
| 90ba0 | 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 70 61 74 68 20 2e 20 70 72 6f 70 73 | st)............for.(path...props |
| 90bc0 | 29 20 3d 20 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 77 68 65 6e 20 28 61 6e 64 | ).=.context............when.(and |
| 90be0 | 20 28 73 74 72 69 6e 67 70 20 70 61 74 68 29 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 70 73 | .(stringp.path).(plist-get.props |
| 90c00 | 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 6e | .:mime))............collect.(con |
| 90c20 | 73 20 3a 6d 65 64 69 61 20 63 6f 6e 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 67 | s.:media.context)))..(cl-defun.g |
| 90c40 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 64 64 2d 72 65 67 69 6f 6e 20 28 62 75 66 66 65 72 | ptel-context--add-region.(buffer |
| 90c60 | 20 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 20 26 6f 70 | .region-beginning.region-end.&op |
| 90c80 | 74 69 6f 6e 61 6c 20 61 64 76 61 6e 63 65 29 0a 20 20 22 41 64 64 20 72 65 67 69 6f 6e 20 64 65 | tional.advance)..."Add.region.de |
| 90ca0 | 6c 69 6d 69 74 65 64 20 62 79 20 52 45 47 49 4f 4e 2d 42 45 47 49 4e 4e 49 4e 47 2c 20 52 45 47 | limited.by.REGION-BEGINNING,.REG |
| 90cc0 | 49 4f 4e 2d 45 4e 44 20 69 6e 20 42 55 46 46 45 52 20 61 73 20 63 6f 6e 74 65 78 74 2e 0a 0a 49 | ION-END.in.BUFFER.as.context...I |
| 90ce0 | 66 20 41 44 56 41 4e 43 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 63 6f 6e 74 65 78 | f.ADVANCE.is.non-nil,.the.contex |
| 90d00 | 74 20 6f 76 65 72 6c 61 79 20 65 6e 76 65 6c 6f 70 65 73 20 63 68 61 6e 67 65 73 20 61 74 0a 74 | t.overlay.envelopes.changes.at.t |
| 90d20 | 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 2e 22 0a 20 20 3b 3b 20 52 65 6d 6f | he.beginning.and.end."...;;.Remo |
| 90d40 | 76 65 20 65 78 69 73 74 69 6e 67 20 63 6f 6e 74 65 78 74 73 20 69 6e 20 74 68 65 20 73 61 6d 65 | ve.existing.contexts.in.the.same |
| 90d60 | 20 72 65 67 69 6f 6e 2c 20 69 66 20 61 6e 79 2e 0a 20 20 28 6d 61 70 63 20 23 27 67 70 74 65 6c | .region,.if.any....(mapc.#'gptel |
| 90d80 | 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 | -context-remove.........(gptel-c |
| 90da0 | 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 62 75 66 66 65 72 20 72 65 67 69 6f 6e 2d | ontext--in-region.buffer.region- |
| 90dc0 | 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 28 70 72 6f 67 31 20 | beginning.region-end))...(prog1. |
| 90de0 | 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..... |
| 90e00 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 6d 61 6b 65 2d 6f 76 65 72 | .......(gptel-context--make-over |
| 90e20 | 6c 61 79 20 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 20 72 65 67 69 6f 6e 2d 65 6e 64 20 | lay.region-beginning.region-end. |
| 90e40 | 61 64 76 61 6e 63 65 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 67 69 6f 6e | advance)).......(message."Region |
| 90e60 | 20 61 64 64 65 64 20 74 6f 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 2e 22 29 29 29 0a 0a 28 | .added.to.context.buffer.")))..( |
| 90e80 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 2d 72 65 67 69 6f 6e 20 28 | defun.gptel-context--in-region.( |
| 90ea0 | 62 75 66 66 65 72 20 73 74 61 72 74 20 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 | buffer.start.end)..."Return.the. |
| 90ec0 | 6c 69 73 74 20 6f 66 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 20 69 6e 20 74 68 65 20 | list.of.context.overlays.in.the. |
| 90ee0 | 67 69 76 65 6e 20 72 65 67 69 6f 6e 2c 20 69 66 20 61 6e 79 2c 20 69 6e 20 42 55 46 46 45 52 2e | given.region,.if.any,.in.BUFFER. |
| 90f00 | 0a 53 54 41 52 54 20 61 6e 64 20 45 4e 44 20 73 69 67 6e 69 66 79 20 74 68 65 20 72 65 67 69 6f | .START.and.END.signify.the.regio |
| 90f20 | 6e 20 64 65 6c 69 6d 69 74 65 72 73 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | n.delimiters."...(with-current-b |
| 90f40 | 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 2d 6e | uffer.buffer.....(cl-remove-if-n |
| 90f60 | 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. |
| 90f80 | 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'gptel-context))................ |
| 90fa0 | 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 73 74 61 72 74 20 65 6e 64 29 29 29 | .......(overlays-in.start.end))) |
| 90fc0 | 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 74 2d 70 6f 69 6e | )..(defun.gptel-context--at-poin |
| 90fe0 | 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c | t.()..."Return.the.context.overl |
| 91000 | 61 79 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 61 6e 79 2e 22 0a 20 20 28 63 6c 2d 66 69 6e 64 | ay.at.point,.if.any."...(cl-find |
| 91020 | 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 | -if.(lambda.(ov).(overlay-get.ov |
| 91040 | 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'gptel-context))............... |
| 91060 | 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 | (overlays-at.(point))))..;;;###a |
| 91080 | 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f | utoload.(defun.gptel-context--co |
| 910a0 | 6c 6c 65 63 74 20 28 29 0a 20 20 22 47 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 | llect.()..."Get.the.list.of.all. |
| 910c0 | 61 63 74 69 76 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 2e 22 0a 20 20 3b 3b 20 47 | active.context.overlays."...;;.G |
| 910e0 | 65 74 20 6f 6e 6c 79 20 74 68 65 20 6e 6f 6e 2d 64 65 67 65 6e 65 72 61 74 65 20 6f 76 65 72 6c | et.only.the.non-degenerate.overl |
| 91100 | 61 79 73 2c 20 63 6f 6c 6c 65 63 74 20 74 68 65 6d 2c 20 61 6e 64 20 75 70 64 61 74 65 20 74 68 | ays,.collect.them,.and.update.th |
| 91120 | 65 20 6f 76 65 72 6c 61 79 73 20 76 61 72 69 61 62 6c 65 2e 0a 20 20 28 73 65 74 71 20 67 70 74 | e.overlays.variable....(setq.gpt |
| 91140 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f | el-context--alist.........(cl-lo |
| 91160 | 6f 70 20 66 6f 72 20 28 62 75 66 20 2e 20 6f 76 73 29 20 69 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 | op.for.(buf...ovs).in.gptel-cont |
| 91180 | 65 78 74 2d 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 | ext--alist..................if.( |
| 911a0 | 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer-live-p.buf).............. |
| 911c0 | 20 20 20 20 20 20 69 66 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6f 76 20 69 6e 20 6f 76 73 20 | ......if.(cl-loop.for.ov.in.ovs. |
| 911e0 | 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 63 6f 6c 6c 65 63 74 20 | when.(overlay-start.ov).collect. |
| 91200 | 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 | ov)....................collect.( |
| 91220 | 63 6f 6e 73 20 62 75 66 20 69 74 29 20 69 6e 74 6f 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 | cons.buf.it).into.elements...... |
| 91240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..............end............... |
| 91260 | 20 20 20 65 6c 73 65 20 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 62 75 66 29 20 28 66 | ...else.if.(and.(stringp.buf).(f |
| 91280 | 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ile-exists-p.buf)).............. |
| 912a0 | 20 20 20 20 69 66 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 0a 20 20 20 | ....if.(plist-get.ovs.:mime).... |
| 912c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 63 6f 6e 73 20 62 75 66 20 | ..............collect.(cons.buf. |
| 912e0 | 6f 76 73 29 20 69 6e 74 6f 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ovs).into.elements.............. |
| 91300 | 20 20 20 20 65 6c 73 65 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 62 75 66 29 20 69 6e 74 6f | ....else.collect.(list.buf).into |
| 91320 | 20 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c | .elements..................final |
| 91340 | 6c 79 20 72 65 74 75 72 6e 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | ly.return.elements)))..(defun.gp |
| 91360 | 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 74 72 69 6e | tel-context--insert-buffer-strin |
| 91380 | 67 20 28 62 75 66 66 65 72 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 22 49 6e 73 65 72 74 20 61 74 | g.(buffer.contexts)..."Insert.at |
| 913a0 | 20 70 6f 69 6e 74 20 61 20 63 6f 6e 74 65 78 74 20 73 74 72 69 6e 67 20 66 72 6f 6d 20 61 6c 6c | .point.a.context.string.from.all |
| 913c0 | 20 43 4f 4e 54 45 58 54 53 20 69 6e 20 42 55 46 46 45 52 2e 22 0a 20 20 20 20 28 6c 65 74 20 28 | .CONTEXTS.in.BUFFER.".....(let.( |
| 913e0 | 28 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 | (is-top-snippet.t)...........(pr |
| 91400 | 65 76 69 6f 75 73 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 | evious-line.1)).......(insert.(f |
| 91420 | 6f 72 6d 61 74 20 22 49 6e 20 62 75 66 66 65 72 20 60 25 73 60 3a 22 20 28 62 75 66 66 65 72 2d | ormat."In.buffer.`%s`:".(buffer- |
| 91440 | 6e 61 6d 65 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c | name.buffer))..............."\n\ |
| 91460 | 6e 60 60 60 22 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 | n```".(gptel--strip-mode-suffix. |
| 91480 | 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (buffer-local-value............. |
| 914a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 914c0 | 20 20 20 20 20 20 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 | .......'major-mode.buffer))..... |
| 914e0 | 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 | .........."\n").......(dolist.(c |
| 91500 | 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 | ontext.contexts).........(let*.( |
| 91520 | 28 73 74 61 72 74 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 63 6f 6e 74 65 78 74 29 29 0a | (start.(overlay-start.context)). |
| 91540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 | ...............(end.(overlay-end |
| 91560 | 20 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 6e | .context))................conten |
| 91580 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 6c 69 6e 65 6e 6f 20 63 6f 6c 75 6d 6e | t)...........(let.(lineno.column |
| 915a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | ).............(with-current-buff |
| 915c0 | 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 6f 75 74 | er.buffer...............(without |
| 915e0 | 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 | -restriction.................(se |
| 91600 | 74 71 20 6c 69 6e 65 6e 6f 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 73 74 | tq.lineno.(line-number-at-pos.st |
| 91620 | 61 72 74 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c | art.t).......................col |
| 91640 | 75 6d 6e 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 | umn.(save-excursion.(goto-char.s |
| 91660 | 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tart)........................... |
| 91680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 | ...................(current-colu |
| 916a0 | 6d 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 65 | mn)).......................conte |
| 916c0 | 6e 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | nt.(buffer-substring-no-properti |
| 916e0 | 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | es.start.end)))).............;;. |
| 91700 | 57 65 20 64 6f 20 6e 6f 74 20 6e 65 65 64 20 74 6f 20 69 6e 73 65 72 74 20 61 20 6c 69 6e 65 20 | We.do.not.need.to.insert.a.line. |
| 91720 | 6e 75 6d 62 65 72 20 69 6e 64 69 63 61 74 6f 72 20 69 66 20 77 65 20 68 61 76 65 20 74 77 6f 20 | number.indicator.if.we.have.two. |
| 91740 | 72 65 67 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 6e 20 74 68 65 20 73 61 | regions.............;;.on.the.sa |
| 91760 | 6d 65 20 6c 69 6e 65 2c 20 62 65 63 61 75 73 65 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 | me.line,.because.the.previous.re |
| 91780 | 67 69 6f 6e 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 6c 72 65 61 64 79 20 70 75 74 20 74 68 65 | gion.should.have.already.put.the |
| 917a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 69 63 61 74 6f 72 2e 0a 20 20 20 20 20 | .............;;.indicator....... |
| 917c0 | 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 | .......(unless.(=.previous-line. |
| 917e0 | 6c 69 6e 65 6e 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d | lineno)...............(unless.(= |
| 91800 | 20 6c 69 6e 65 6e 6f 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 | .lineno.1).................(unle |
| 91820 | 73 73 20 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ss.is-top-snippet............... |
| 91840 | 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(insert."\n")).............. |
| 91860 | 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 2e 2e 2e 20 28 4c 69 6e 65 20 25 64 | ...(insert.(format."....(Line.%d |
| 91880 | 29 5c 6e 22 20 6c 69 6e 65 6e 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 | )\n".lineno)))).............(set |
| 918a0 | 71 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 6c 69 6e 65 6e 6f 29 0a 20 20 20 20 20 20 20 20 | q.previous-line.lineno)......... |
| 918c0 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 7a 65 72 6f 70 20 63 6f 6c 75 6d 6e 29 20 28 69 6e 73 65 | ....(unless.(zerop.column).(inse |
| 918e0 | 72 74 20 22 20 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 73 2d 74 | rt."....")).............(if.is-t |
| 91900 | 6f 70 2d 73 6e 69 70 70 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | op-snippet.................(setq |
| 91920 | 20 69 73 2d 74 6f 70 2d 73 6e 69 70 70 65 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .is-top-snippet.nil)............ |
| 91940 | 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 20 6c 69 6e 65 | ...(unless.(=.previous-line.line |
| 91960 | 6e 6f 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | no).(insert."\n"))))...........( |
| 91980 | 69 6e 73 65 72 74 20 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 | insert.content))).......(unless. |
| 919a0 | 28 3e 3d 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 28 63 61 72 20 28 6c 61 73 74 20 63 6f 6e 74 | (>=.(overlay-end.(car.(last.cont |
| 919c0 | 65 78 74 73 29 29 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e | exts))).(point-max)).........(in |
| 919e0 | 73 65 72 74 20 22 5c 6e 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e | sert."\n...")).......(insert."\n |
| 91a00 | 60 60 60 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 73 | ```")))..(defun.gptel-context--s |
| 91a20 | 74 72 69 6e 67 20 28 63 6f 6e 74 65 78 74 2d 61 6c 69 73 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 | tring.(context-alist)..."Format. |
| 91a40 | 74 68 65 20 61 67 67 72 65 67 61 74 65 64 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 61 73 20 | the.aggregated.gptel.context.as. |
| 91a60 | 61 6e 6e 6f 74 61 74 65 64 20 6d 61 72 6b 64 6f 77 6e 20 66 72 61 67 6d 65 6e 74 73 2e 0a 0a 52 | annotated.markdown.fragments...R |
| 91a80 | 65 74 75 72 6e 73 20 61 20 73 74 72 69 6e 67 2e 20 20 43 4f 4e 54 45 58 54 2d 41 4c 49 53 54 20 | eturns.a.string...CONTEXT-ALIST. |
| 91aa0 | 69 73 20 61 20 73 74 72 75 63 74 75 72 65 20 63 6f 6e 74 61 69 6e 69 6e 67 0a 63 6f 6e 74 65 78 | is.a.structure.containing.contex |
| 91ac0 | 74 20 6f 76 65 72 6c 61 79 73 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d | t.overlays,.see.`gptel-context-- |
| 91ae0 | 61 6c 69 73 74 27 2e 22 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 | alist'."...(with-temp-buffer.... |
| 91b00 | 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 62 75 66 20 2e 20 6f 76 73 29 20 69 6e 20 63 6f 6e | .(cl-loop.for.(buf...ovs).in.con |
| 91b20 | 74 65 78 74 2d 61 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 62 75 66 66 | text-alist..............if.(buff |
| 91b40 | 65 72 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 67 70 74 65 6c 2d | erp.buf)..............do.(gptel- |
| 91b60 | 63 6f 6e 74 65 78 74 2d 2d 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 74 72 69 6e 67 20 62 75 | context--insert-buffer-string.bu |
| 91b80 | 66 20 6f 76 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6c 73 65 20 69 66 20 28 6e 6f 74 | f.ovs)..............else.if.(not |
| 91ba0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 | .(plist-get.ovs.:mime))......... |
| 91bc0 | 20 20 20 20 20 64 6f 20 28 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 66 69 6c 65 2d 73 74 72 69 | .....do.(gptel--insert-file-stri |
| 91be0 | 6e 67 20 62 75 66 29 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 28 69 6e 73 | ng.buf).end..............do.(ins |
| 91c00 | 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 | ert."\n\n")..............finally |
| 91c20 | 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 62 61 63 | .do..............(skip-chars-bac |
| 91c40 | 6b 77 61 72 64 20 22 5c 6e 5c 74 5c 72 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 | kward."\n\t\r.")..............(d |
| 91c60 | 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 | elete-region.(point).(point-max) |
| 91c80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 62 70 29 0a 20 20 | )..............(unless.(bobp)... |
| 91ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d | .............(goto-char.(point-m |
| 91cc0 | 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 52 65 71 | in))................(insert."Req |
| 91ce0 | 75 65 73 74 20 63 6f 6e 74 65 78 74 3a 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | uest.context:\n\n"))............ |
| 91d00 | 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ..finally.return...............( |
| 91d20 | 61 6e 64 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 | and.(>.(buffer-size).0)......... |
| 91d40 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 0a | ...........(buffer-string))))).. |
| 91d60 | 3b 3b 3b 20 4d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 69 6e 73 70 65 | ;;;.Major.mode.for.context.inspe |
| 91d80 | 63 74 69 6f 6e 20 62 75 66 66 65 72 73 0a 28 64 65 66 76 61 72 2d 6b 65 79 6d 61 70 20 67 70 74 | ction.buffers.(defvar-keymap.gpt |
| 91da0 | 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 43 2d | el-context-buffer-mode-map..."C- |
| 91dc0 | 63 20 43 2d 63 22 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 6f 6e 66 69 72 6d 0a 20 | c.C-c".#'gptel-context-confirm.. |
| 91de0 | 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 0a | ."C-c.C-k".#'gptel-context-quit. |
| 91e00 | 20 20 22 52 45 54 22 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 73 69 | .."RET".....#'gptel-context-visi |
| 91e20 | 74 0a 20 20 22 6e 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 | t..."n".......#'gptel-context-ne |
| 91e40 | 78 74 0a 20 20 22 70 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 | xt..."p".......#'gptel-context-p |
| 91e60 | 72 65 76 69 6f 75 73 0a 20 20 22 64 22 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 | revious..."d".......#'gptel-cont |
| 91e80 | 65 78 74 2d 66 6c 61 67 2d 64 65 6c 65 74 69 6f 6e 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 | ext-flag-deletion)..(define-deri |
| 91ea0 | 76 65 64 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f | ved-mode.gptel-context-buffer-mo |
| 91ec0 | 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 22 0a | de.special-mode."gptel-context". |
| 91ee0 | 20 20 22 4d 61 6a 6f 72 2d 6d 6f 64 65 20 66 6f 72 20 69 6e 73 70 65 63 74 69 6e 67 20 63 6f 6e | .."Major-mode.for.inspecting.con |
| 91f00 | 74 65 78 74 20 75 73 65 64 20 62 79 20 67 70 74 65 6c 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 | text.used.by.gptel."...:group.'g |
| 91f20 | 70 74 65 6c 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 | ptel...(add-hook.'post-command-h |
| 91f40 | 6f 6f 6b 20 23 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e | ook.#'gptel-context--post-comman |
| 91f60 | 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 | d.............nil.t)...(setq-loc |
| 91f80 | 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 20 23 27 67 70 74 65 | al.revert-buffer-function.#'gpte |
| 91fa0 | 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 29 29 0a 0a 28 64 65 66 75 | l-context--buffer-setup))..(defu |
| 91fc0 | 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 73 65 74 75 70 20 28 26 | n.gptel-context--buffer-setup.(& |
| 91fe0 | 6f 70 74 69 6f 6e 61 6c 20 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 6f 6e 66 69 72 6d | optional._ignore-auto._noconfirm |
| 92000 | 29 0a 20 20 22 53 65 74 20 75 70 20 74 68 65 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 | )..."Set.up.the.gptel.context.bu |
| 92020 | 66 66 65 72 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 | ffer."...(with-current-buffer.(g |
| 92040 | 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | et-buffer-create."*gptel-context |
| 92060 | 2a 22 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 62 75 66 66 65 72 2d 6d 6f | *").....(gptel-context-buffer-mo |
| 92080 | 64 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 | de).....(let.((inhibit-read-only |
| 920a0 | 20 74 29 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 | .t)).......(erase-buffer)....... |
| 920c0 | 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 | (setq.header-line-format........ |
| 920e0 | 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 | .....(substitute-command-keys... |
| 92100 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........(concat.............. |
| 92120 | 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 66 6c 61 67 2d 64 65 6c 65 74 69 6f 6e | ."\\[gptel-context-flag-deletion |
| 92140 | 5d 3a 20 4d 61 72 6b 2f 75 6e 6d 61 72 6b 20 64 65 6c 65 74 69 6f 6e 2c 20 22 0a 20 20 20 20 20 | ]:.Mark/unmark.deletion,."...... |
| 92160 | 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 78 74 5d | ........."\\[gptel-context-next] |
| 92180 | 2f 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 72 65 76 69 6f 75 73 5d 3a 20 6e 65 78 | /\\[gptel-context-previous]:.nex |
| 921a0 | 74 2f 70 72 65 76 69 6f 75 73 2c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b | t/previous,."..............."\\[ |
| 921c0 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 73 69 74 5d 3a 20 76 69 73 69 74 2c 20 22 0a 20 | gptel-context-visit]:.visit,.".. |
| 921e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 | ............."\\[gptel-context-c |
| 92200 | 6f 6e 66 69 72 6d 5d 3a 20 61 70 70 6c 79 2c 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | onfirm]:.apply,."............... |
| 92220 | 22 5c 5c 5b 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 5d 3a 20 63 61 6e 63 65 6c 2c | "\\[gptel-context-quit]:.cancel, |
| 92240 | 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 71 75 69 74 2d 77 69 6e 64 6f 77 | ."..............."\\[quit-window |
| 92260 | 5d 3a 20 71 75 69 74 22 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f | ]:.quit"))).......(save-excursio |
| 92280 | 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 73 20 67 70 74 65 6c 2d | n.........(let.((contexts.gptel- |
| 922a0 | 63 6f 6e 74 65 78 74 2d 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 | context--alist))...........(if.( |
| 922c0 | 6c 65 6e 67 74 68 3e 20 63 6f 6e 74 65 78 74 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | length>.contexts.0)............. |
| 922e0 | 20 20 28 6c 65 74 20 28 62 65 67 20 6f 76 20 6c 31 20 6c 32 29 0a 20 20 20 20 20 20 20 20 20 20 | ..(let.(beg.ov.l1.l2)........... |
| 92300 | 20 20 20 20 20 20 28 70 63 61 73 65 2d 64 6f 6c 69 73 74 20 28 60 28 2c 62 75 66 20 2e 20 2c 6f | ......(pcase-dolist.(`(,buf...,o |
| 92320 | 76 73 29 20 63 6f 6e 74 65 78 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | vs).contexts)................... |
| 92340 | 28 69 66 20 28 62 75 66 66 65 72 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (if.(bufferp.buf)............... |
| 92360 | 20 20 20 20 20 20 20 20 3b 3b 20 49 74 27 73 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 73 6f | ........;;.It's.a.buffer.with.so |
| 92380 | 6d 65 20 6f 76 65 72 6c 61 79 28 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me.overlay(s)................... |
| 923a0 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 73 6f 75 72 63 65 2d 6f 76 20 6f 76 73 29 0a 20 20 20 20 | ....(dolist.(source-ov.ovs)..... |
| 923c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e | ....................(with-curren |
| 923e0 | 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-buffer.buf.................... |
| 92400 | 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 31 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d | .......(setq.l1.(line-number-at- |
| 92420 | 70 6f 73 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 63 65 2d 6f 76 29 29 0a 20 | pos.(overlay-start.source-ov)).. |
| 92440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c | ...............................l |
| 92460 | 32 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 28 6f 76 65 72 6c 61 79 2d 65 | 2.(line-number-at-pos.(overlay-e |
| 92480 | 6e 64 20 73 6f 75 72 63 65 2d 6f 76 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd.source-ov))))................ |
| 924a0 | 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f | .........(insert.(propertize.(fo |
| 924c0 | 72 6d 61 74 20 22 49 6e 20 62 75 66 66 65 72 20 25 73 20 28 6c 69 6e 65 73 20 25 64 2d 25 64 29 | rmat."In.buffer.%s.(lines.%d-%d) |
| 924e0 | 3a 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :\n\n".......................... |
| 92500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 | ...........................(buff |
| 92520 | 65 72 2d 6e 61 6d 65 20 62 75 66 29 20 6c 31 20 6c 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | er-name.buf).l1.l2)............. |
| 92540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 92560 | 27 66 61 63 65 20 27 62 6f 6c 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'face.'bold))................... |
| 92580 | 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 | ......(setq.beg.(point))........ |
| 925a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d | .................(insert-buffer- |
| 925c0 | 73 75 62 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | substring....................... |
| 925e0 | 20 20 20 62 75 66 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 63 65 2d 6f 76 29 | ...buf.(overlay-start.source-ov) |
| 92600 | 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 73 6f 75 72 63 65 2d 6f 76 29 29 0a 20 20 20 20 20 20 | .(overlay-end.source-ov))....... |
| 92620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a | ..................(insert."\n"). |
| 92640 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 | ........................(setq.ov |
| 92660 | 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | .(make-overlay.beg.(point))).... |
| 92680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | .....................(overlay-pu |
| 926a0 | 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 73 6f 75 72 63 65 2d 6f 76 29 0a 20 | t.ov.'gptel-context.source-ov).. |
| 926c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d | .......................(overlay- |
| 926e0 | 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 6f 76 65 72 6c 61 79 20 74 29 0a 20 20 20 20 20 20 20 | put.ov.'gptel-overlay.t)........ |
| 92700 | 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 |
| 92720 | 20 27 65 76 61 70 6f 72 61 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'evaporate.t).................. |
| 92740 | 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 20 28 6d 61 6b 65 2d 73 65 70 61 72 61 | .......(insert."\n".(make-separa |
| 92760 | 74 6f 72 2d 6c 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tor-line)."\n"))................ |
| 92780 | 20 20 20 20 20 3b 3b 20 42 55 46 20 69 73 20 61 20 66 69 6c 65 20 70 61 74 68 2c 20 6e 6f 74 20 | .....;;.BUF.is.a.file.path,.not. |
| 927a0 | 61 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e | a.buffer.....................(in |
| 927c0 | 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 66 6f 72 6d 61 74 20 22 49 6e 20 66 69 6c | sert.(propertize.(format."In.fil |
| 927e0 | 65 20 25 73 3a 5c 6e 5c 6e 22 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f | e.%s:\n\n".(file-name-nondirecto |
| 92800 | 72 79 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ry.buf))........................ |
| 92820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 62 6f 6c 64 29 29 0a 20 | .................'face.'bold)).. |
| 92840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f | ...................(setq.beg.(po |
| 92860 | 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 | int)).....................(if-le |
| 92880 | 74 2a 20 28 28 6d 69 6d 65 20 28 70 6c 69 73 74 2d 67 65 74 20 6f 76 73 20 3a 6d 69 6d 65 29 29 | t*.((mime.(plist-get.ovs.:mime)) |
| 928a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 42 55 46 | ).........................;;.BUF |
| 928c0 | 20 69 73 20 61 20 62 69 6e 61 72 79 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .is.a.binary.file............... |
| 928e0 | 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 73 74 72 69 6e 67 2d 6d 61 74 | ..........(if-let*.(((string-mat |
| 92900 | 63 68 2d 70 20 28 69 6d 61 67 65 2d 66 69 6c 65 2d 6e 61 6d 65 2d 72 65 67 65 78 70 29 20 62 75 | ch-p.(image-file-name-regexp).bu |
| 92920 | 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | f))............................. |
| 92940 | 20 20 20 20 20 20 28 69 6d 67 20 28 63 72 65 61 74 65 2d 69 6d 61 67 65 20 62 75 66 29 29 29 0a | ......(img.(create-image.buf))). |
| 92960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | ............................(ins |
| 92980 | 65 72 74 2d 69 6d 61 67 65 20 69 6d 67 20 22 2a 22 29 20 3b 20 43 61 6e 20 62 65 20 64 69 73 70 | ert-image.img."*").;.Can.be.disp |
| 929a0 | 6c 61 79 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | layed........................... |
| 929c0 | 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (insert......................... |
| 929e0 | 20 20 20 62 75 66 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 28 4e 6f 20 70 72 65 76 | ...buf.".".(propertize."(No.prev |
| 92a00 | 69 65 77 20 66 6f 72 20 62 69 6e 61 72 79 20 66 69 6c 65 29 22 0a 20 20 20 20 20 20 20 20 20 20 | iew.for.binary.file)"........... |
| 92a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 92a40 | 20 20 20 20 20 27 66 61 63 65 20 27 28 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 20 3a 73 6c | .....'face.'(:inherit.shadow.:sl |
| 92a60 | 61 6e 74 20 69 74 61 6c 69 63 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ant.italic)))).................. |
| 92a80 | 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 62 75 66 29 29 | .....(insert-file-contents.buf)) |
| 92aa0 | 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. |
| 92ac0 | 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (point-max)).................... |
| 92ae0 | 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(insert."\n").................. |
| 92b00 | 20 20 20 28 73 65 74 71 20 6f 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 28 70 | ...(setq.ov.(make-overlay.beg.(p |
| 92b20 | 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 | oint))).....................(ove |
| 92b40 | 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 20 62 75 66 29 0a | rlay-put.ov.'gptel-context.buf). |
| 92b60 | 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 |
| 92b80 | 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)........... |
| 92ba0 | 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 65 76 61 70 6f | ..........(overlay-put.ov.'evapo |
| 92bc0 | 72 61 74 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | rate.t).....................(ins |
| 92be0 | 65 72 74 20 22 5c 6e 22 20 28 6d 61 6b 65 2d 73 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 29 20 22 | ert."\n".(make-separator-line)." |
| 92c00 | 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | \n"))).................(goto-cha |
| 92c20 | 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | r.(point-min))).............(ins |
| 92c40 | 65 72 74 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 | ert."There.are.no.active.gptel.c |
| 92c60 | 6f 6e 74 65 78 74 73 2e 22 29 29 29 29 29 0a 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 | ontexts."))))).....(display-buff |
| 92c80 | 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | er.(current-buffer)............. |
| 92ca0 | 20 20 20 20 20 20 20 20 60 28 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d | ........`((display-buffer-reuse- |
| 92cc0 | 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 | window........................di |
| 92ce0 | 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 6d 6f 64 65 2d 77 69 6e 64 6f 77 0a 20 | splay-buffer-reuse-mode-window.. |
| 92d00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 | ......................display-bu |
| 92d20 | 66 66 65 72 2d 62 65 6c 6f 77 2d 73 65 6c 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ffer-below-selected)............ |
| 92d40 | 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 64 79 2d 66 75 6e 63 74 69 6f 6e 20 2e 20 2c 23 27 73 | ...........(body-function...,#'s |
| 92d60 | 65 6c 65 63 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elect-window)................... |
| 92d80 | 20 20 20 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 20 2e 20 2c 23 27 66 69 74 2d 77 69 6e 64 | ....(window-height...,#'fit-wind |
| 92da0 | 6f 77 2d 74 6f 2d 62 75 66 66 65 72 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c | ow-to-buffer)))))..(defvar.gptel |
| 92dc0 | 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 6e 69 6c 0a 20 20 22 | -context--buffer-reverse.nil..." |
| 92de0 | 4c 61 73 74 20 64 69 72 65 63 74 69 6f 6e 20 6f 66 20 63 75 72 73 6f 72 20 6d 6f 76 65 6d 65 6e | Last.direction.of.cursor.movemen |
| 92e00 | 74 20 69 6e 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 6e | t.in.gptel.context.buffer...If.n |
| 92e20 | 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 73 20 62 61 63 6b 77 61 72 64 20 6d 6f 76 65 6d | on-nil,.indicates.backward.movem |
| 92e40 | 65 6e 74 2e 22 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | ent.")..(defalias.'gptel-context |
| 92e60 | 2d 2d 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 0a 20 20 28 6c 65 74 20 28 28 68 69 67 68 6c 69 67 68 | --post-command...(let.((highligh |
| 92e80 | 74 2d 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 | t-overlay)).....(lambda.()...... |
| 92ea0 | 20 3b 3b 20 4f 6e 6c 79 20 75 70 64 61 74 65 20 69 66 20 70 6f 69 6e 74 20 6d 6f 76 65 64 20 6f | .;;.Only.update.if.point.moved.o |
| 92ec0 | 75 74 73 69 64 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 0a 20 20 20 20 20 | utside.the.current.region....... |
| 92ee0 | 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 | .(unless.(memq.highlight-overlay |
| 92f00 | 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 | .(overlays-at.(point)))......... |
| 92f20 | 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 | (let.((context-overlay.......... |
| 92f40 | 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6f 76 20 69 6e 20 28 6f 76 65 72 6c 61 | ......(cl-loop.for.ov.in.(overla |
| 92f60 | 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ys-at.(point)).................. |
| 92f80 | 20 20 20 20 20 20 20 74 68 65 72 65 69 73 20 28 61 6e 64 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 | .......thereis.(and.(overlay-get |
| 92fa0 | 20 6f 76 20 27 67 70 74 65 6c 2d 6f 76 65 72 6c 61 79 29 20 6f 76 29 29 29 29 0a 20 20 20 20 20 | .ov.'gptel-overlay).ov))))...... |
| 92fc0 | 20 20 20 20 20 28 77 68 65 6e 20 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 | .....(when.highlight-overlay.... |
| 92fe0 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 68 69 67 68 6c 69 67 68 74 2d | .........(overlay-put.highlight- |
| 93000 | 6f 76 65 72 6c 61 79 20 27 66 61 63 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 | overlay.'face.nil))...........(w |
| 93020 | 68 65 6e 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 | hen.context-overlay............. |
| 93040 | 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 79 20 27 66 61 | (overlay-put.context-overlay.'fa |
| 93060 | 63 65 20 27 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | ce.'highlight))...........(setq. |
| 93080 | 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 63 6f 6e 74 65 78 74 2d 6f 76 65 72 6c 61 | highlight-overlay.context-overla |
| 930a0 | 79 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 76 69 | y))))))..(defun.gptel-context-vi |
| 930c0 | 73 69 74 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 74 68 65 20 6c 6f 63 61 74 69 6f 6e 20 6f | sit.()..."Display.the.location.o |
| 930e0 | 66 20 74 68 69 73 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 20 69 6e 20 69 74 | f.this.gptel.context.chunk.in.it |
| 93100 | 73 20 6f 72 69 67 69 6e 61 6c 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | s.original.buffer."...(interacti |
| 93120 | 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 6c | ve)...(let.((ov-here.(car.(overl |
| 93140 | 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 | ays-at.(point))))).....(if-let*. |
| 93160 | 28 28 73 6f 75 72 63 65 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 2d 68 65 72 65 20 27 67 | ((source.(overlay-get.ov-here.'g |
| 93180 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 | ptel-context))...............(bu |
| 931a0 | 66 20 28 69 66 20 28 6f 76 65 72 6c 61 79 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 | f.(if.(overlayp.source)......... |
| 931c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 73 | ...............(overlay-buffer.s |
| 931e0 | 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e | ource)......................(fin |
| 93200 | 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 73 6f 75 72 63 65 29 29 29 0a 20 20 20 20 20 20 | d-file-noselect.source)))....... |
| 93220 | 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6f 76 65 72 | ........(offset.(-.(point).(over |
| 93240 | 6c 61 79 2d 73 74 61 72 74 20 6f 76 2d 68 65 72 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 | lay-start.ov-here)))).........(w |
| 93260 | 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 28 64 69 73 70 6c 61 79 2d 62 75 66 | ith-selected-window.(display-buf |
| 93280 | 66 65 72 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 69 | fer.buf)...........(goto-char.(i |
| 932a0 | 66 20 28 6f 76 65 72 6c 61 79 70 20 73 6f 75 72 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | f.(overlayp.source)............. |
| 932c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 73 6f 75 72 | .............(overlay-start.sour |
| 932e0 | 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e | ce)........................(poin |
| 93300 | 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 | t-min)))...........(forward-char |
| 93320 | 20 6f 66 66 73 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 29 29 0a 20 | .offset)...........(recenter)).. |
| 93340 | 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 73 6f 75 72 63 65 20 6c 6f 63 61 74 69 6f | .....(message."No.source.locatio |
| 93360 | 6e 20 66 6f 72 20 74 68 69 73 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 2e 22 | n.for.this.gptel.context.chunk." |
| 93380 | 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 6e 65 78 74 20 | ))))..(defun.gptel-context-next. |
| 933a0 | 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 6e 65 78 74 20 67 70 74 65 6c 20 63 6f 6e 74 65 78 74 | ()..."Move.to.next.gptel.context |
| 933c0 | 20 63 68 75 6e 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 | .chunk."...(interactive)...(let. |
| 933e0 | 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f 69 | ((ov-here.(car.(overlays-at.(poi |
| 93400 | 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 65 78 74 2d 73 74 61 72 74 20 28 6e 65 78 74 | nt)))).........(next-start.(next |
| 93420 | 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 28 | -overlay-change.(point)))).....( |
| 93440 | 77 68 65 6e 20 28 61 6e 64 20 28 2f 3d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 6e 65 78 74 2d 73 | when.(and.(/=.(point-max).next-s |
| 93460 | 74 61 72 74 29 20 6f 76 2d 68 65 72 65 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 77 65 72 65 20 | tart).ov-here).......;;.We.were. |
| 93480 | 69 6e 73 69 64 65 20 74 68 65 20 6f 76 65 72 6c 61 79 2c 20 73 6f 20 77 65 20 77 61 6e 74 20 74 | inside.the.overlay,.so.we.want.t |
| 934a0 | 68 65 20 6e 65 78 74 20 6f 76 65 72 6c 61 79 20 63 68 61 6e 67 65 2c 20 77 68 69 63 68 0a 20 20 | he.next.overlay.change,.which... |
| 934c0 | 20 20 20 20 3b 3b 20 77 6f 75 6c 64 20 62 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 65 | ....;;.would.be.the.start.of.the |
| 934e0 | 20 6e 65 78 74 20 6f 76 65 72 6c 61 79 2e 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 78 74 2d | .next.overlay........(setq.next- |
| 93500 | 73 74 61 72 74 20 28 6e 65 78 74 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 6e 65 78 74 2d | start.(next-overlay-change.next- |
| 93520 | 73 74 61 72 74 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 2f 3d 20 6e 65 78 74 2d 73 74 61 72 | start))).....(when.(/=.next-star |
| 93540 | 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c | t.(point-max)).......(setq.gptel |
| 93560 | 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 6e 69 6c 29 0a 20 20 | -context--buffer-reverse.nil)... |
| 93580 | 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 6e 65 78 74 2d 73 74 61 72 74 29 0a 20 20 20 20 20 | ....(goto-char.next-start)...... |
| 935a0 | 20 28 72 65 63 65 6e 74 65 72 20 28 66 6c 6f 6f 72 20 28 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 | .(recenter.(floor.(window-height |
| 935c0 | 29 20 34 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 70 | ).4)))))..(defun.gptel-context-p |
| 935e0 | 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 | revious.()..."Move.to.previous.g |
| 93600 | 70 74 65 6c 20 63 6f 6e 74 65 78 74 20 63 68 75 6e 6b 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 | ptel.context.chunk."...(interact |
| 93620 | 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 2d 68 65 72 65 20 28 63 61 72 20 28 6f 76 65 72 | ive)...(let.((ov-here.(car.(over |
| 93640 | 6c 61 79 73 2d 61 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6f 76 | lays-at.(point))))).....(when.ov |
| 93660 | 2d 68 65 72 65 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 | -here.(goto-char.(overlay-start. |
| 93680 | 6f 76 2d 68 65 72 65 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 76 69 6f 75 73 2d 63 | ov-here))).....(let.((previous-c |
| 936a0 | 6f 6e 74 65 78 74 2d 70 6f 73 20 28 70 72 65 76 69 6f 75 73 2d 6f 76 65 72 6c 61 79 2d 63 68 61 | ontext-pos.(previous-overlay-cha |
| 936c0 | 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nge............................. |
| 936e0 | 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 6f 76 65 72 6c 61 79 2d 63 68 61 6e 67 65 20 28 70 | .....(previous-overlay-change.(p |
| 93700 | 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 50 72 65 76 65 6e 74 20 70 6f 69 6e 74 | oint))))).......;;.Prevent.point |
| 93720 | 20 66 72 6f 6d 20 6a 75 6d 70 69 6e 67 20 74 6f 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 | .from.jumping.to.the.start.of.th |
| 93740 | 65 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 70 72 65 76 69 | e.buffer........(unless.(=.previ |
| 93760 | 6f 75 73 2d 63 6f 6e 74 65 78 74 2d 70 6f 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 | ous-context-pos.(point-min)).... |
| 93780 | 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 72 65 76 69 6f 75 73 2d 63 6f 6e 74 65 78 74 | .....(goto-char.previous-context |
| 937a0 | 2d 70 6f 73 29 0a 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 20 28 66 6c 6f 6f 72 20 28 | -pos).........(recenter.(floor.( |
| 937c0 | 77 69 6e 64 6f 77 2d 68 65 69 67 68 74 29 20 34 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 | window-height).4)).........(setq |
| 937e0 | 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d 72 65 76 65 72 73 65 20 74 | .gptel-context--buffer-reverse.t |
| 93800 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 66 6c 61 67 | )))))..(defun.gptel-context-flag |
| 93820 | 2d 64 65 6c 65 74 69 6f 6e 20 28 29 0a 20 20 22 4d 61 72 6b 20 67 70 74 65 6c 20 63 6f 6e 74 65 | -deletion.()..."Mark.gptel.conte |
| 93840 | 78 74 20 63 68 75 6e 6b 20 61 74 20 70 6f 69 6e 74 20 66 6f 72 20 72 65 6d 6f 76 61 6c 2e 22 0a | xt.chunk.at.point.for.removal.". |
| 93860 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6f 76 65 72 6c 61 | ..(interactive)...(let*.((overla |
| 93880 | 79 73 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 | ys.(if.(use-region-p)........... |
| 938a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 72 65 67 69 6f | .............(overlays-in.(regio |
| 938c0 | 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 | n-beginning).(region-end))...... |
| 938e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 61 74 20 28 70 6f | ................(overlays-at.(po |
| 93900 | 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 69 6f 6e 2d 6f 76 29 0a 20 | int))))..........(deletion-ov).. |
| 93920 | 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 64 2d 6f 76 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 | ........(marked-ovs.(cl-remove-i |
| 93940 | 66 2d 6e 6f 74 20 28 6c 61 6d 62 64 61 20 28 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 | f-not.(lambda.(ov).(overlay-get. |
| 93960 | 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 29 | ov.'gptel-context-deletion-mark) |
| 93980 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 939a0 | 20 20 20 20 20 20 20 20 20 6f 76 65 72 6c 61 79 73 29 29 29 0a 20 20 20 20 28 69 66 20 6d 61 72 | .........overlays))).....(if.mar |
| 939c0 | 6b 65 64 2d 6f 76 73 0a 20 20 20 20 20 20 20 20 28 6d 61 70 63 20 23 27 64 65 6c 65 74 65 2d 6f | ked-ovs.........(mapc.#'delete-o |
| 939e0 | 76 65 72 6c 61 79 20 6d 61 72 6b 65 64 2d 6f 76 73 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 | verlay.marked-ovs).......(save-e |
| 93a00 | 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 6f 76 65 | xcursion.........(dolist.(ov.ove |
| 93a20 | 72 6c 61 79 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6f 76 65 72 6c 61 79 2d | rlays)...........(when.(overlay- |
| 93a40 | 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 | get.ov.'gptel-context).......... |
| 93a60 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 | ...(goto-char.(overlay-start.ov) |
| 93a80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 | ).............(setq.deletion-ov. |
| 93aa0 | 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 | (make-overlay.(overlay-start.ov) |
| 93ac0 | 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .(overlay-end.ov)))............. |
| 93ae0 | 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 67 70 74 65 6c 2d | (overlay-put.deletion-ov.'gptel- |
| 93b00 | 63 6f 6e 74 65 78 74 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 | context.(overlay-get.ov.'gptel-c |
| 93b20 | 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 | ontext)).............(overlay-pu |
| 93b40 | 74 20 64 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 70 72 69 6f 72 69 74 79 20 2d 38 30 29 0a 20 20 20 | t.deletion-ov.'priority.-80).... |
| 93b60 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 65 6c 65 74 69 6f 6e 2d 6f | .........(overlay-put.deletion-o |
| 93b80 | 76 20 27 66 61 63 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 6f 6e 2d | v.'face.'gptel-context-deletion- |
| 93ba0 | 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 64 | face).............(overlay-put.d |
| 93bc0 | 65 6c 65 74 69 6f 6e 2d 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 64 65 6c 65 74 69 | eletion-ov.'gptel-context-deleti |
| 93be0 | 6f 6e 2d 6d 61 72 6b 20 74 29 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 | on-mark.t))))).....(if.(use-regi |
| 93c00 | 6f 6e 2d 70 29 0a 20 20 20 20 20 20 20 20 28 64 65 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 0a | on-p).........(deactivate-mark). |
| 93c20 | 20 20 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 62 75 66 66 65 72 2d | ......(if.gptel-context--buffer- |
| 93c40 | 72 65 76 65 72 73 65 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | reverse...........(gptel-context |
| 93c60 | 2d 70 72 65 76 69 6f 75 73 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | -previous).........(gptel-contex |
| 93c80 | 74 2d 6e 65 78 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 | t-next)))))..(defun.gptel-contex |
| 93ca0 | 74 2d 71 75 69 74 20 28 29 0a 20 20 22 43 61 6e 63 65 6c 20 70 65 6e 64 69 6e 67 20 6f 70 65 72 | t-quit.()..."Cancel.pending.oper |
| 93cc0 | 61 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 67 70 74 65 6c 27 73 20 6d 65 6e | ations.and.return.to.gptel's.men |
| 93ce0 | 75 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 71 75 69 74 2d 77 69 6e 64 | u."...(interactive)...(quit-wind |
| 93d00 | 6f 77 29 0a 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 | ow)...(call-interactively.#'gpte |
| 93d20 | 6c 2d 6d 65 6e 75 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 63 | l-menu))..(defun.gptel-context-c |
| 93d40 | 6f 6e 66 69 72 6d 20 28 29 0a 20 20 22 43 6f 6e 66 69 72 6d 20 70 65 6e 64 69 6e 67 20 6f 70 65 | onfirm.()..."Confirm.pending.ope |
| 93d60 | 72 61 74 69 6f 6e 73 20 61 6e 64 20 72 65 74 75 72 6e 20 74 6f 20 67 70 74 65 6c 27 73 20 6d 65 | rations.and.return.to.gptel's.me |
| 93d80 | 6e 75 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 44 65 6c 65 74 65 | nu."...(interactive)...;;.Delete |
| 93da0 | 20 61 6c 6c 20 74 68 65 20 63 6f 6e 74 65 78 74 20 6f 76 65 72 6c 61 79 73 20 74 68 61 74 20 68 | .all.the.context.overlays.that.h |
| 93dc0 | 61 76 65 20 62 65 65 6e 20 6d 61 72 6b 65 64 20 66 6f 72 20 64 65 6c 65 74 69 6f 6e 2e 0a 20 20 | ave.been.marked.for.deletion.... |
| 93de0 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 73 0a 20 20 20 20 | (when-let*.((deletion-marks..... |
| 93e00 | 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 71 20 6e 69 6c 20 28 6d 61 70 63 61 72 0a 20 20 20 | ...........(delq.nil.(mapcar.... |
| 93e20 | 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.( |
| 93e40 | 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ov)............................. |
| 93e60 | 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (and............................ |
| 93e80 | 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 | ..(overlay-get.ov.'gptel-context |
| 93ea0 | 2d 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -deletion-mark)................. |
| 93ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 | .............(overlay-get.ov.'gp |
| 93ee0 | 74 65 6c 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-context))).................. |
| 93f00 | 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 73 2d 69 6e 20 28 70 6f 69 6e 74 2d 6d 69 6e | .........(overlays-in.(point-min |
| 93f20 | 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 28 6d 61 70 63 20 23 27 67 | ).(point-max)))))).....(mapc.#'g |
| 93f40 | 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 20 64 65 6c 65 74 69 6f 6e 2d 6d 61 72 | ptel-context-remove.deletion-mar |
| 93f60 | 6b 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 63 6f 6c 6c 65 63 74 29 | ks).....(gptel-context--collect) |
| 93f80 | 20 20 20 20 20 20 20 20 20 20 20 3b 55 70 64 61 74 65 20 63 6f 6e 74 65 78 74 73 20 61 6e 64 20 | ...........;Update.contexts.and. |
| 93fa0 | 72 65 76 65 72 74 20 62 75 66 66 65 72 20 28 23 34 38 32 29 0a 20 20 20 20 28 72 65 76 65 72 74 | revert.buffer.(#482).....(revert |
| 93fc0 | 2d 62 75 66 66 65 72 29 29 0a 20 20 28 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 71 75 69 74 29 | -buffer))...(gptel-context-quit) |
| 93fe0 | 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 29 0a 3b 3b 3b 20 | )..(provide.'gptel-context).;;;. |
| 94000 | 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 2e 0a 00 00 00 00 | gptel-context.el.ends.here...... |
| 94020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 940a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 940c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 940e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 941a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 941c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 941e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94200 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 4e 45 57 53 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-0.9.9/NEWS................ |
| 94220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94260 | 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 |
| 94280 | 30 30 34 35 34 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 32 30 31 37 00 20 30 00 00 00 | 0045473.00000000000.012017..0... |
| 942a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 942c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 942e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94300 | 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................... |
| 94320 | 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................... |
| 94340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 943a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 943c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 943e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 94400 | 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 39 20 32 30 | #.-*-.mode:.org;.-*-..*.0.9.9.20 |
| 94420 | 32 35 2d 30 38 2d 30 32 0a 0a 2a 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 0a 0a 2d | 25-08-02..**.Breaking.changes..- |
| 94440 | 20 54 68 65 20 73 75 66 66 69 78 20 3d 2d 6c 61 74 65 73 74 3d 20 68 61 73 20 62 65 65 6e 20 64 | .The.suffix.=-latest=.has.been.d |
| 94460 | 72 6f 70 70 65 64 20 66 72 6f 6d 20 47 72 6f 6b 20 6d 6f 64 65 6c 73 2c 20 61 73 20 74 68 65 79 | ropped.from.Grok.models,.as.they |
| 94480 | 20 61 72 65 0a 20 20 6e 6f 20 6c 6f 6e 67 65 72 20 72 65 71 75 69 72 65 64 2e 20 20 53 6f 20 74 | .are...no.longer.required...So.t |
| 944a0 | 68 65 20 6d 6f 64 65 6c 73 20 3d 67 72 6f 6b 2d 33 2d 6c 61 74 65 73 74 3d 2c 0a 20 20 3d 67 72 | he.models.=grok-3-latest=,...=gr |
| 944c0 | 6f 6b 2d 33 2d 6d 69 6e 69 2d 6c 61 74 65 73 74 3d 20 68 61 76 65 20 62 65 65 6e 20 72 65 6e 61 | ok-3-mini-latest=.have.been.rena |
| 944e0 | 6d 65 64 20 74 6f 20 6a 75 73 74 20 3d 67 72 6f 6b 2d 33 3d 2c 0a 20 20 3d 67 72 6f 6b 2d 33 2d | med.to.just.=grok-3=,...=grok-3- |
| 94500 | 6d 69 6e 69 3d 20 61 6e 64 20 73 6f 20 6f 6e 2e 0a 0a 2d 20 54 68 65 20 6d 6f 64 65 6c 73 20 3d | mini=.and.so.on...-.The.models.= |
| 94520 | 67 65 6d 69 6e 69 2d 65 78 70 2d 31 32 30 36 3d 2c 20 3d 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 | gemini-exp-1206=,.=gemini-2.5-pr |
| 94540 | 6f 2d 70 72 65 76 69 65 77 2d 30 33 2d 32 35 3d 2c 0a 20 20 3d 67 65 6d 69 6e 69 2d 32 2e 35 2d | o-preview-03-25=,...=gemini-2.5- |
| 94560 | 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 35 2d 30 36 3d 2c 20 3d 67 65 6d 69 6e 69 2d 32 2e 35 2d | pro-preview-05-06=,.=gemini-2.5- |
| 94580 | 66 6c 61 73 68 2d 70 72 65 76 69 65 77 2d 30 34 2d 31 37 3d 0a 20 20 68 61 76 65 20 62 65 65 6e | flash-preview-04-17=...have.been |
| 945a0 | 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 64 65 66 61 75 6c 74 20 6c 69 73 74 20 6f | .removed.from.the.default.list.o |
| 945c0 | 66 20 47 65 6d 69 6e 69 20 6d 6f 64 65 6c 73 2e 20 20 54 68 65 20 66 69 72 73 74 0a 20 20 6f 6e | f.Gemini.models...The.first...on |
| 945e0 | 65 20 69 73 20 6e 6f 20 6c 6f 6e 67 65 72 20 61 76 61 69 6c 61 62 6c 65 2c 20 61 6e 64 20 74 68 | e.is.no.longer.available,.and.th |
| 94600 | 65 20 6f 74 68 65 72 73 20 61 72 65 20 73 75 70 65 72 73 65 64 65 64 20 62 79 20 74 68 65 69 72 | e.others.are.superseded.by.their |
| 94620 | 0a 20 20 73 74 61 62 6c 65 2c 20 6e 6f 6e 2d 70 72 65 76 69 65 77 20 76 65 72 73 69 6f 6e 73 2e | ...stable,.non-preview.versions. |
| 94640 | 20 20 49 66 20 72 65 71 75 69 72 65 64 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 65 73 65 | ..If.required,.you.can.add.these |
| 94660 | 20 6d 6f 64 65 6c 73 0a 20 20 62 61 63 6b 20 74 6f 20 74 68 65 20 47 65 6d 69 6e 69 20 62 61 63 | .models...back.to.the.Gemini.bac |
| 94680 | 6b 65 6e 64 20 69 6e 20 79 6f 75 72 20 70 65 72 73 6f 6e 61 6c 20 63 6f 6e 66 69 67 75 72 61 74 | kend.in.your.personal.configurat |
| 946a0 | 69 6f 6e 3a 0a 20 20 23 2b 62 65 67 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 | ion:...#+begin_src.emacs-lisp... |
| 946c0 | 28 70 75 73 68 20 27 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d 30 33 | (push.'gemini-2.5-pro-preview-03 |
| 946e0 | 2d 32 35 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c | -25.........(gptel-backend-model |
| 94700 | 73 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 22 47 65 6d 69 6e 69 22 29 29 29 | s.(gptel-get-backend."Gemini"))) |
| 94720 | 0a 20 20 23 2b 65 6e 64 5f 73 72 63 0a 0a 2a 2a 20 4e 65 77 20 6d 6f 64 65 6c 73 20 61 6e 64 20 | ...#+end_src..**.New.models.and. |
| 94740 | 62 61 63 6b 65 6e 64 73 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 67 72 6f | backends..-.Add.support.for.~gro |
| 94760 | 6b 2d 63 6f 64 65 2d 66 61 73 74 2d 31 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 | k-code-fast-1~...-.Add.support.f |
| 94780 | 6f 72 20 7e 67 70 74 2d 35 7e 2c 20 7e 67 70 74 2d 35 2d 6d 69 6e 69 7e 20 61 6e 64 20 7e 67 70 | or.~gpt-5~,.~gpt-5-mini~.and.~gp |
| 947a0 | 74 2d 35 2d 6e 61 6e 6f 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 63 | t-5-nano~...-.Add.support.for.~c |
| 947c0 | 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 31 2d 32 30 32 35 30 38 30 35 7e 2e 0a 0a 2d 20 41 64 64 | laude-opus-4-1-20250805~...-.Add |
| 947e0 | 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 7e 2c 20 7e | .support.for.~gemini-2.5-pro~,.~ |
| 94800 | 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 7e 2c 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 | gemini-2.5-flash~,...~gemini-2.5 |
| 94820 | 2d 66 6c 61 73 68 2d 6c 69 74 65 2d 70 72 65 76 69 65 77 2d 30 36 2d 31 37 7e 2e 0a 0a 2d 20 41 | -flash-lite-preview-06-17~...-.A |
| 94840 | 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4f 70 65 6e 20 57 65 62 55 49 2e 20 20 4f 70 65 6e | dd.support.for.Open.WebUI...Open |
| 94860 | 20 57 65 62 55 49 20 70 72 6f 76 69 64 65 73 20 61 6e 0a 20 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 | .WebUI.provides.an...OpenAI-comp |
| 94880 | 61 74 69 62 6c 65 20 41 50 49 2c 20 73 6f 20 74 68 65 20 22 73 75 70 70 6f 72 74 22 20 69 73 20 | atible.API,.so.the."support".is. |
| 948a0 | 6a 75 73 74 20 61 20 6e 65 77 20 73 65 63 74 69 6f 6e 20 6f 66 20 74 68 65 0a 20 20 52 45 41 44 | just.a.new.section.of.the...READ |
| 948c0 | 4d 45 20 77 69 74 68 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 0a 0a 2d 20 41 64 64 20 73 75 70 | ME.with.instructions...-.Add.sup |
| 948e0 | 70 6f 72 74 20 66 6f 72 20 4d 6f 6f 6e 73 68 6f 74 20 28 4b 69 6d 69 29 2c 20 69 6e 20 61 20 73 | port.for.Moonshot.(Kimi),.in.a.s |
| 94900 | 69 6d 69 6c 61 72 20 73 65 6e 73 65 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 | imilar.sense...-.Add.support.for |
| 94920 | 20 74 68 65 20 41 49 2f 4d 4c 20 41 50 49 2c 20 69 6e 20 61 20 73 69 6d 69 6c 61 72 20 73 65 6e | .the.AI/ML.API,.in.a.similar.sen |
| 94940 | 73 65 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 67 72 6f 6b 2d 34 7e 2e | se...-.Add.support.for.~grok-4~. |
| 94960 | 0a 0a 2a 2a 20 4e 65 77 20 66 65 61 74 75 72 65 73 20 61 6e 64 20 55 49 20 63 68 61 6e 67 65 73 | ..**.New.features.and.UI.changes |
| 94980 | 0a 0a 2d 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 20 6e 6f 77 20 6e 6f 20 6c 6f 6e 67 65 | ..-.~gptel-rewrite~.now.no.longe |
| 949a0 | 72 20 70 6f 70 73 20 75 70 20 61 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 20 20 49 6e 73 | r.pops.up.a.Transient.menu...Ins |
| 949c0 | 74 65 61 64 2c 20 69 74 0a 20 20 72 65 61 64 73 20 61 20 72 65 77 72 69 74 65 20 69 6e 73 74 72 | tead,.it...reads.a.rewrite.instr |
| 949e0 | 75 63 74 69 6f 6e 20 61 6e 64 20 73 74 61 72 74 73 20 74 68 65 20 72 65 77 72 69 74 65 20 69 6d | uction.and.starts.the.rewrite.im |
| 94a00 | 6d 65 64 69 61 74 65 6c 79 2e 20 20 54 68 69 73 0a 20 20 69 73 20 69 6e 74 65 6e 64 65 64 20 74 | mediately...This...is.intended.t |
| 94a20 | 6f 20 72 65 64 75 63 65 20 74 68 65 20 66 72 69 63 74 69 6f 6e 20 6f 66 20 75 73 69 6e 67 20 7e | o.reduce.the.friction.of.using.~ |
| 94a40 | 67 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 2e 20 20 59 6f 75 20 63 61 6e 0a 20 20 73 74 69 6c 6c | gptel-rewrite~...You.can...still |
| 94a60 | 20 62 72 69 6e 67 20 75 70 20 74 68 65 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 62 79 20 | .bring.up.the.Transient.menu.by. |
| 94a80 | 70 72 65 73 73 69 6e 67 20 3d 4d 2d 52 45 54 3d 20 69 6e 73 74 65 61 64 20 6f 66 20 3d 52 45 54 | pressing.=M-RET=.instead.of.=RET |
| 94aa0 | 3d 0a 20 20 77 68 65 6e 20 73 75 70 70 6c 79 69 6e 67 20 74 68 65 20 72 65 77 72 69 74 65 20 69 | =...when.supplying.the.rewrite.i |
| 94ac0 | 6e 73 74 72 75 63 74 69 6f 6e 2e 20 20 49 66 20 6e 6f 20 72 65 67 69 6f 6e 20 69 73 20 73 65 6c | nstruction...If.no.region.is.sel |
| 94ae0 | 65 63 74 65 64 20 61 6e 64 0a 20 20 74 68 65 72 65 20 61 72 65 20 70 65 6e 64 69 6e 67 20 72 65 | ected.and...there.are.pending.re |
| 94b00 | 77 72 69 74 65 73 2c 20 74 68 65 20 72 65 77 72 69 74 65 20 6d 65 6e 75 20 69 73 20 64 69 73 70 | writes,.the.rewrite.menu.is.disp |
| 94b20 | 6c 61 79 65 64 2e 0a 0a 2d 20 7e 67 70 74 65 6c 2d 72 65 77 72 69 74 65 7e 20 77 69 6c 6c 20 6e | layed...-.~gptel-rewrite~.will.n |
| 94b40 | 6f 77 20 70 72 6f 64 75 63 65 20 6d 6f 72 65 20 72 65 66 69 6e 65 64 20 6d 65 72 67 65 20 63 6f | ow.produce.more.refined.merge.co |
| 94b60 | 6e 66 6c 69 63 74 73 20 77 68 65 6e 0a 20 20 75 73 69 6e 67 20 74 68 65 20 6d 65 72 67 65 20 61 | nflicts.when...using.the.merge.a |
| 94b80 | 63 74 69 6f 6e 2e 20 20 49 74 20 77 6f 72 6b 73 20 62 79 20 66 65 65 64 69 6e 67 20 74 68 65 20 | ction...It.works.by.feeding.the. |
| 94ba0 | 6f 72 69 67 69 6e 61 6c 20 61 6e 64 0a 20 20 72 65 77 72 69 74 74 65 6e 20 74 65 78 74 20 74 6f | original.and...rewritten.text.to |
| 94bc0 | 20 67 69 74 20 28 77 68 65 6e 20 69 74 20 69 73 20 61 76 61 69 6c 61 62 6c 65 29 2e 0a 0a 2d 20 | .git.(when.it.is.available)...-. |
| 94be0 | 4e 65 77 20 63 6f 6d 6d 61 6e 64 20 7e 67 70 74 65 6c 2d 67 68 2d 6c 6f 67 69 6e 7e 20 74 6f 20 | New.command.~gptel-gh-login~.to. |
| 94c00 | 61 75 74 68 65 6e 74 69 63 61 74 65 20 77 69 74 68 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 | authenticate.with.GitHub.Copilot |
| 94c20 | 2e 20 20 54 68 65 0a 20 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 73 74 65 70 20 68 61 70 | ...The...authentication.step.hap |
| 94c40 | 70 65 6e 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 77 68 65 6e 20 79 6f 75 20 75 73 65 20 | pens.automatically.when.you.use. |
| 94c60 | 67 70 74 65 6c 2c 20 73 6f 0a 20 20 69 6e 76 6f 6b 69 6e 67 20 69 74 20 6d 61 6e 75 61 6c 6c 79 | gptel,.so...invoking.it.manually |
| 94c80 | 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 2e 20 20 42 75 74 20 79 6f 75 20 63 61 6e 20 75 | .is.not.required...But.you.can.u |
| 94ca0 | 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 0a 20 20 63 68 61 6e 67 65 20 61 63 63 6f | se.this.command.to...change.acco |
| 94cc0 | 75 6e 74 73 20 6f 72 20 72 65 66 72 65 73 68 20 79 6f 75 72 20 6c 6f 67 69 6e 20 69 66 20 72 65 | unts.or.refresh.your.login.if.re |
| 94ce0 | 71 75 69 72 65 64 2e 0a 0a 2d 20 67 70 74 65 6c 20 6e 6f 77 20 73 75 70 70 6f 72 74 73 20 68 61 | quired...-.gptel.now.supports.ha |
| 94d00 | 6e 64 6c 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 6e 67 20 62 6c 6f 63 6b 73 | ndling.reasoning/thinking.blocks |
| 94d20 | 20 69 6e 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 66 72 6f 6d 20 78 41 49 27 73 20 47 72 6f 6b 20 | .in.responses...from.xAI's.Grok. |
| 94d40 | 6d 6f 64 65 6c 73 2e 20 20 54 68 69 73 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 20 62 79 0a 20 | models...This.is.controlled.by.. |
| 94d60 | 20 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 2c 20 69 6e 20 74 | .~gptel-include-reasoning~,.in.t |
| 94d80 | 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 74 20 68 61 6e 64 6c 65 73 20 6f 74 68 65 | he.same.way.that.it.handles.othe |
| 94da0 | 72 0a 20 20 41 50 49 73 2e 0a 0a 2d 20 57 68 65 6e 20 69 6e 63 6c 75 64 69 6e 67 20 61 20 66 69 | r...APIs...-.When.including.a.fi |
| 94dc0 | 6c 65 20 69 6e 20 74 68 65 20 63 6f 6e 74 65 78 74 2c 20 74 68 65 20 61 62 62 72 65 76 69 61 74 | le.in.the.context,.the.abbreviat |
| 94de0 | 65 64 20 66 75 6c 6c 20 70 61 74 68 20 6f 66 0a 20 20 74 68 65 20 66 69 6c 65 20 69 73 20 69 6e | ed.full.path.of...the.file.is.in |
| 94e00 | 63 6c 75 64 65 64 20 69 73 20 6e 6f 77 20 69 6e 63 6c 75 64 65 64 20 69 6e 73 74 65 61 64 20 6f | cluded.is.now.included.instead.o |
| 94e20 | 66 20 74 68 65 20 62 61 73 65 6e 61 6d 65 2e 0a 20 20 53 70 65 63 69 66 69 63 61 6c 6c 79 2c 20 | f.the.basename....Specifically,. |
| 94e40 | 3d 2f 68 6f 6d 65 2f 75 73 65 72 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 3d 20 69 73 20 69 6e 63 | =/home/user/path/to/file=.is.inc |
| 94e60 | 6c 75 64 65 64 20 61 73 0a 20 20 3d 7e 2f 70 61 74 68 2f 74 6f 2f 66 69 6c 65 3d 2e 20 20 54 68 | luded.as...=~/path/to/file=...Th |
| 94e80 | 69 73 20 69 73 20 74 6f 20 70 72 6f 76 69 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6e 74 | is.is.to.provide.additional.cont |
| 94ea0 | 65 78 74 20 66 6f 72 20 4c 4c 4d 0a 20 20 61 63 74 69 6f 6e 73 2c 20 69 6e 63 6c 75 64 69 6e 67 | ext.for.LLM...actions,.including |
| 94ec0 | 20 74 6f 6f 6c 2d 75 73 65 20 69 6e 20 73 75 62 73 65 71 75 65 6e 74 20 63 6f 6e 76 65 72 73 61 | .tool-use.in.subsequent.conversa |
| 94ee0 | 74 69 6f 6e 20 74 75 72 6e 73 2e 20 20 54 68 69 73 0a 20 20 61 70 70 6c 69 65 73 20 74 6f 20 63 | tion.turns...This...applies.to.c |
| 94f00 | 6f 6e 74 65 78 74 20 69 6e 63 6c 75 64 65 64 20 76 69 61 20 7e 67 70 74 65 6c 2d 61 64 64 7e 20 | ontext.included.via.~gptel-add~. |
| 94f20 | 6f 72 20 61 73 20 61 20 6c 69 6e 6b 20 69 6e 20 61 0a 20 20 62 75 66 66 65 72 2e 0a 0a 2d 20 53 | or.as.a.link.in.a...buffer...-.S |
| 94f40 | 74 72 75 63 74 75 72 65 64 20 6f 75 74 70 75 74 20 73 75 70 70 6f 72 74 3a 20 7e 67 70 74 65 6c | tructured.output.support:.~gptel |
| 94f60 | 2d 72 65 71 75 65 73 74 7e 20 63 61 6e 20 6e 6f 77 20 74 61 6b 65 20 61 6e 20 6f 70 74 69 6f 6e | -request~.can.now.take.an.option |
| 94f80 | 61 6c 0a 20 20 73 63 68 65 6d 61 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 63 6f 6e 73 74 72 61 69 | al...schema.argument.to.constrai |
| 94fa0 | 6e 20 4c 4c 4d 20 6f 75 74 70 75 74 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 4a 53 | n.LLM.output.to.the.specified.JS |
| 94fc0 | 4f 4e 20 73 63 68 65 6d 61 2e 0a 20 20 54 68 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 63 61 6e | ON.schema....The.JSON.schema.can |
| 94fe0 | 20 62 65 20 70 72 6f 76 69 64 65 64 20 61 73 0a 20 20 2d 20 61 6e 20 65 6c 69 73 70 20 6f 62 6a | .be.provided.as...-.an.elisp.obj |
| 95000 | 65 63 74 2c 20 61 20 6e 65 73 74 65 64 20 70 6c 69 73 74 20 73 74 72 75 63 74 75 72 65 2e 0a 20 | ect,.a.nested.plist.structure... |
| 95020 | 20 2d 20 41 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 73 65 72 69 61 6c 69 7a 65 64 20 74 6f 20 61 | .-.A.JSON.schema.serialized.to.a |
| 95040 | 20 73 74 72 69 6e 67 2e 0a 20 20 2d 20 41 20 73 68 6f 72 74 68 61 6e 64 20 6f 62 6a 65 63 74 2f | .string....-.A.shorthand.object/ |
| 95060 | 61 72 72 61 79 20 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 | array.description,.described.in. |
| 95080 | 74 68 65 20 6d 61 6e 75 61 6c 20 28 61 6e 64 0a 20 20 20 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 | the.manual.(and.....the.document |
| 950a0 | 61 74 69 6f 6e 20 6f 66 20 7e 67 70 74 65 6c 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 | ation.of.~gptel--dispatch-schema |
| 950c0 | 2d 74 79 70 65 7e 2e 29 0a 0a 20 20 54 68 69 73 20 66 65 61 74 75 72 65 20 77 6f 72 6b 73 20 77 | -type~.)....This.feature.works.w |
| 950e0 | 69 74 68 20 61 6c 6c 20 6d 61 6a 6f 72 20 62 61 63 6b 65 6e 64 73 3a 20 4f 70 65 6e 41 49 2c 20 | ith.all.major.backends:.OpenAI,. |
| 95100 | 41 6e 74 68 72 6f 70 69 63 2c 20 47 65 6d 69 6e 69 2c 0a 20 20 6c 6c 61 6d 61 2d 63 70 70 20 61 | Anthropic,.Gemini,...llama-cpp.a |
| 95120 | 6e 64 20 4f 6c 6c 61 6d 61 2e 20 20 49 74 20 69 73 20 70 72 65 73 65 6e 74 6c 79 20 73 75 70 70 | nd.Ollama...It.is.presently.supp |
| 95140 | 6f 72 74 65 64 20 62 79 20 73 6f 6d 65 20 62 75 74 20 6e 6f 74 20 61 6c 6c 0a 20 20 22 4f 70 65 | orted.by.some.but.not.all..."Ope |
| 95160 | 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 22 20 70 72 6f 76 69 64 65 72 73 2e 0a 0a | nAI-compatible.API".providers... |
| 95180 | 20 20 4e 6f 74 65 20 74 68 61 74 20 74 68 69 73 20 69 73 20 6f 6e 6c 79 20 61 76 61 69 6c 61 62 | ..Note.that.this.is.only.availab |
| 951a0 | 6c 65 20 76 69 61 20 74 68 65 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 7e 20 41 50 49 2c 20 | le.via.the.~gptel-request~.API,. |
| 951c0 | 61 6e 64 0a 20 20 63 75 72 72 65 6e 74 6c 79 20 75 6e 73 75 70 70 6f 72 74 65 64 20 62 79 20 7e | and...currently.unsupported.by.~ |
| 951e0 | 67 70 74 65 6c 2d 73 65 6e 64 7e 2e 0a 0a 2d 20 67 70 74 65 6c 27 73 20 6c 6f 67 20 62 75 66 66 | gptel-send~...-.gptel's.log.buff |
| 95200 | 65 72 20 61 6e 64 20 6c 6f 67 67 69 6e 67 20 73 65 74 74 69 6e 67 73 20 61 72 65 20 6e 6f 77 20 | er.and.logging.settings.are.now. |
| 95220 | 61 63 63 65 73 73 69 62 6c 65 20 66 72 6f 6d 0a 20 20 67 70 74 65 6c 27 73 20 54 72 61 6e 73 69 | accessible.from...gptel's.Transi |
| 95240 | 65 6e 74 20 6d 65 6e 75 2e 20 20 54 6f 20 73 65 65 20 74 68 65 73 65 20 74 75 72 6e 20 6f 6e 20 | ent.menu...To.see.these.turn.on. |
| 95260 | 74 68 65 20 66 75 6c 6c 20 69 6e 74 65 72 66 61 63 65 20 62 79 0a 20 20 73 65 74 74 69 6e 67 20 | the.full.interface.by...setting. |
| 95280 | 7e 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 7e 2e 0a 0a 2d 20 50 72 65 73 | ~gptel-expert-commands~...-.Pres |
| 952a0 | 65 74 73 3a 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 73 70 65 63 69 66 79 20 7e 3a 72 65 71 75 65 | ets:.You.can.now.specify.~:reque |
| 952c0 | 73 74 2d 70 61 72 61 6d 73 7e 20 28 41 50 49 2d 73 70 65 63 69 66 69 63 20 72 65 71 75 65 73 74 | st-params~.(API-specific.request |
| 952e0 | 0a 20 20 70 61 72 61 6d 65 74 65 72 73 29 20 69 6e 20 61 20 70 72 65 73 65 74 2e 0a 0a 2d 20 46 | ...parameters).in.a.preset...-.F |
| 95300 | 72 6f 6d 20 74 68 65 20 64 72 79 2d 72 75 6e 20 69 6e 73 70 65 63 74 6f 72 20 62 75 66 66 65 72 | rom.the.dry-run.inspector.buffer |
| 95320 | 2c 20 79 6f 75 20 63 61 6e 20 6e 6f 77 20 63 6f 70 79 20 74 68 65 20 43 75 72 6c 20 63 6f 6d 6d | ,.you.can.now.copy.the.Curl.comm |
| 95340 | 61 6e 64 0a 20 20 66 6f 72 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 4c 69 6b 65 20 77 68 65 | and...for.the.request...Like.whe |
| 95360 | 6e 20 63 6f 6e 74 69 6e 75 69 6e 67 20 74 68 65 20 71 75 65 72 79 2c 20 74 68 65 20 72 65 71 75 | n.continuing.the.query,.the.requ |
| 95380 | 65 73 74 20 69 73 0a 20 20 63 6f 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f | est.is...constructed.from.the.co |
| 953a0 | 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 77 68 69 63 68 20 69 73 20 65 | ntents.of.the.buffer,.which.is.e |
| 953c0 | 64 69 74 61 62 6c 65 2e 0a 0a 2d 20 67 70 74 65 6c 20 6e 6f 77 20 68 61 6e 64 6c 65 73 20 4f 6c | ditable...-.gptel.now.handles.Ol |
| 953e0 | 6c 61 6d 61 20 6d 6f 64 65 6c 73 20 74 68 61 74 20 72 65 74 75 72 6e 20 62 6f 74 68 20 72 65 61 | lama.models.that.return.both.rea |
| 95400 | 73 6f 6e 69 6e 67 20 63 6f 6e 74 65 6e 74 0a 20 20 61 6e 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 | soning.content...and.tool.calls. |
| 95420 | 69 6e 20 61 20 73 69 6e 67 6c 65 20 72 65 71 75 65 73 74 2e 0a 0a 2d 20 54 68 65 20 22 50 72 6f | in.a.single.request...-.The."Pro |
| 95440 | 6d 70 74 20 66 72 6f 6d 20 6d 69 6e 69 62 75 66 66 65 72 22 20 6f 70 74 69 6f 6e 20 69 6e 20 67 | mpt.from.minibuffer".option.in.g |
| 95460 | 70 74 65 6c 27 73 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 0a 20 20 62 65 68 61 76 65 73 20 | ptel's.Transient.menu...behaves. |
| 95480 | 73 6c 69 67 68 74 6c 79 20 64 69 66 66 65 72 65 6e 74 6c 79 20 6e 6f 77 2e 20 20 49 66 20 61 20 | slightly.differently.now...If.a. |
| 954a0 | 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 20 69 6e 20 74 68 65 0a 20 20 62 75 66 66 65 72 | region.is.active.in.the...buffer |
| 954c0 | 2c 20 69 74 20 63 61 6e 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 62 65 20 69 6e 63 6c 75 64 65 64 20 | ,.it.can.optionally.be.included. |
| 954e0 | 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 2e 20 20 54 68 65 20 6b 65 79 62 69 6e 64 69 6e 67 0a 20 | in.the.prompt...The.keybinding.. |
| 95500 | 20 74 6f 20 74 6f 67 67 6c 65 20 74 68 69 73 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 64 75 72 | .to.toggle.this.is.displayed.dur |
| 95520 | 69 6e 67 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2d 72 65 61 64 2e 0a 0a 20 20 41 64 64 69 | ing.the.minibuffer-read.....Addi |
| 95540 | 74 69 6f 6e 61 6c 6c 79 2c 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 61 20 70 72 6f 6d 70 74 20 | tionally,.when.reading.a.prompt. |
| 95560 | 6f 72 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 0a 20 20 6d 69 6e 69 62 | or.instructions.from.the...minib |
| 95580 | 75 66 66 65 72 20 79 6f 75 20 63 61 6e 20 73 77 69 74 63 68 20 74 6f 20 61 20 64 65 64 69 63 61 | uffer.you.can.switch.to.a.dedica |
| 955a0 | 74 65 64 20 63 6f 6d 70 6f 73 69 74 69 6f 6e 20 62 75 66 66 65 72 20 76 69 61 0a 20 20 3d 43 2d | ted.composition.buffer.via...=C- |
| 955c0 | 63 20 43 2d 65 3d 2e 0a 0a 2a 20 30 2e 39 2e 38 2e 35 20 32 30 32 35 2d 30 36 2d 31 31 0a 0a 2a | c.C-e=...*.0.9.8.5.2025-06-11..* |
| 955e0 | 2a 20 42 72 65 61 6b 69 6e 67 20 63 68 61 6e 67 65 73 0a 0a 2d 20 7e 67 70 74 65 6c 2d 6f 72 67 | *.Breaking.changes..-.~gptel-org |
| 95600 | 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 7e 20 69 73 20 6e 6f 77 20 61 20 67 6c 6f | -branching-context~.is.now.a.glo |
| 95620 | 62 61 6c 20 76 61 72 69 61 62 6c 65 2e 20 20 49 74 20 77 61 73 0a 20 20 62 75 66 66 65 72 2d 6c | bal.variable...It.was...buffer-l |
| 95640 | 6f 63 61 6c 20 62 79 20 64 65 66 61 75 6c 74 20 69 6e 20 70 61 73 74 20 72 65 6c 65 61 73 65 73 | ocal.by.default.in.past.releases |
| 95660 | 2e 0a 0a 2d 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6d 6f 64 65 6c 73 20 68 61 76 65 20 62 | ...-.The.following.models.have.b |
| 95680 | 65 65 6e 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 64 65 66 61 75 6c 74 20 43 68 61 | een.removed.from.the.default.Cha |
| 956a0 | 74 47 50 54 20 62 61 63 6b 65 6e 64 3a 0a 20 20 2d 20 7e 6f 31 2d 70 72 65 76 69 65 77 7e 3a 20 | tGPT.backend:...-.~o1-preview~:. |
| 956c0 | 75 73 65 20 7e 6f 31 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 2d 34 2d 74 75 72 | use.~o1~.instead....-.~gpt-4-tur |
| 956e0 | 62 6f 2d 70 72 65 76 69 65 77 7e 3a 20 75 73 65 20 7e 67 70 74 2d 34 6f 7e 20 6f 72 20 7e 67 70 | bo-preview~:.use.~gpt-4o~.or.~gp |
| 95700 | 74 2d 34 2d 74 75 72 62 6f 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 2d 20 7e 67 70 74 2d 34 2d 33 | t-4-turbo~.instead....-.~gpt-4-3 |
| 95720 | 32 6b 7e 2c 20 7e 67 70 74 2d 34 2d 30 31 32 35 2d 70 72 65 76 69 65 77 7e 20 61 6e 64 20 7e 67 | 2k~,.~gpt-4-0125-preview~.and.~g |
| 95740 | 70 74 2d 34 2d 31 31 30 36 2d 70 72 65 76 69 65 77 7e 3a 20 75 73 65 0a 20 20 20 20 7e 67 70 74 | pt-4-1106-preview~:.use.....~gpt |
| 95760 | 2d 34 6f 7e 20 6f 72 20 7e 67 70 74 2d 34 7e 20 69 6e 73 74 65 61 64 2e 0a 20 20 41 6c 74 65 72 | -4o~.or.~gpt-4~.instead....Alter |
| 95780 | 6e 61 74 69 76 65 6c 79 2c 20 79 6f 75 20 63 61 6e 20 61 64 64 20 74 68 65 73 65 20 6d 6f 64 65 | natively,.you.can.add.these.mode |
| 957a0 | 6c 73 20 62 61 63 6b 20 74 6f 20 74 68 65 20 62 61 63 6b 65 6e 64 20 69 6e 20 79 6f 75 72 0a 20 | ls.back.to.the.backend.in.your.. |
| 957c0 | 20 70 65 72 73 6f 6e 61 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 0a 20 20 23 2b 62 65 67 | .personal.configuration:...#+beg |
| 957e0 | 69 6e 5f 73 72 63 20 65 6d 61 63 73 2d 6c 69 73 70 0a 20 20 28 70 75 73 68 20 27 67 70 74 2d 34 | in_src.emacs-lisp...(push.'gpt-4 |
| 95800 | 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 | -turbo-preview.........(gptel-ba |
| 95820 | 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 | ckend-models.(gptel-get-backend. |
| 95840 | 22 43 68 61 74 47 50 54 22 29 29 29 0a 20 20 23 2b 65 6e 64 5f 73 72 63 0a 0a 2d 20 4f 6e 6c 79 | "ChatGPT")))...#+end_src..-.Only |
| 95860 | 20 72 65 6c 65 76 61 6e 74 20 69 66 20 79 6f 75 20 75 73 65 20 7e 67 70 74 65 6c 2d 72 65 71 75 | .relevant.if.you.use.~gptel-requ |
| 95880 | 65 73 74 7e 20 69 6e 20 79 6f 75 72 20 65 6c 69 73 70 20 63 6f 64 65 2c 0a 20 20 2f 69 6e 74 65 | est~.in.your.elisp.code,.../inte |
| 958a0 | 72 61 63 74 69 76 65 20 67 70 74 65 6c 20 75 73 61 67 65 20 69 73 20 75 6e 61 66 66 65 63 74 65 | ractive.gptel.usage.is.unaffecte |
| 958c0 | 64 2f 3a 20 7e 67 70 74 65 6c 2d 72 65 71 75 65 73 74 7e 20 6e 6f 77 20 74 61 6b 65 73 20 61 0a | d/:.~gptel-request~.now.takes.a. |
| 958e0 | 20 20 6e 65 77 2c 20 6f 70 74 69 6f 6e 61 6c 20 3d 3a 74 72 61 6e 73 66 6f 72 6d 73 3d 20 61 72 | ..new,.optional.=:transforms=.ar |
| 95900 | 67 75 6d 65 6e 74 2e 20 20 41 6e 79 20 70 72 6f 6d 70 74 20 6d 6f 64 69 66 69 63 61 74 69 6f 6e | gument...Any.prompt.modification |
| 95920 | 73 0a 20 20 28 6c 69 6b 65 20 61 64 64 69 6e 67 20 63 6f 6e 74 65 78 74 20 74 6f 20 72 65 71 75 | s...(like.adding.context.to.requ |
| 95940 | 65 73 74 73 29 20 6d 75 73 74 20 6e 6f 77 20 62 65 20 73 70 65 63 69 66 69 65 64 20 76 69 61 20 | ests).must.now.be.specified.via. |
| 95960 | 74 68 69 73 0a 20 20 61 72 67 75 6d 65 6e 74 2e 20 20 53 65 65 20 74 68 65 20 64 65 66 69 6e 69 | this...argument...See.the.defini |
| 95980 | 74 69 6f 6e 20 6f 66 20 7e 67 70 74 65 6c 2d 73 65 6e 64 7e 20 66 6f 72 20 61 6e 20 65 78 61 6d | tion.of.~gptel-send~.for.an.exam |
| 959a0 | 70 6c 65 2e 0a 0a 2a 2a 20 4e 65 77 20 6d 6f 64 65 6c 73 20 61 6e 64 20 62 61 63 6b 65 6e 64 73 | ple...**.New.models.and.backends |
| 959c0 | 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 7e 67 70 74 2d 34 2e 31 7e 2c 20 7e | ..-.Add.support.for.~gpt-4.1~,.~ |
| 959e0 | 67 70 74 2d 34 2e 31 2d 6d 69 6e 69 7e 2c 20 7e 67 70 74 2d 34 2e 31 2d 6e 61 6e 6f 7e 2c 20 7e | gpt-4.1-mini~,.~gpt-4.1-nano~,.~ |
| 95a00 | 6f 33 7e 20 61 6e 64 0a 20 20 7e 6f 34 2d 6d 69 6e 69 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 | o3~.and...~o4-mini~...-.Add.supp |
| 95a20 | 6f 72 74 20 66 6f 72 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 65 78 70 2d 30 33 2d 32 | ort.for.~gemini-2.5-pro-exp-03-2 |
| 95a40 | 35 7e 2c 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 66 6c 61 73 68 2d 70 72 65 76 69 65 77 2d | 5~,...~gemini-2.5-flash-preview- |
| 95a60 | 30 34 2d 31 37 7e 2c 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 76 69 65 77 2d | 04-17~,.~gemini-2.5-pro-preview- |
| 95a80 | 30 35 2d 30 36 7e 20 61 6e 64 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 35 2d 70 72 6f 2d 70 72 65 | 05-06~.and...~gemini-2.5-pro-pre |
| 95aa0 | 76 69 65 77 2d 30 36 2d 30 35 7e 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 | view-06-05~...-.Add.support.for. |
| 95ac0 | 7e 63 6c 61 75 64 65 2d 73 6f 6e 6e 65 74 2d 34 2d 32 30 32 35 30 35 31 34 7e 20 61 6e 64 0a 20 | ~claude-sonnet-4-20250514~.and.. |
| 95ae0 | 20 7e 63 6c 61 75 64 65 2d 6f 70 75 73 2d 34 2d 32 30 32 35 30 35 31 34 7e 2e 0a 0a 2d 20 41 64 | .~claude-opus-4-20250514~...-.Ad |
| 95b00 | 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 57 53 20 42 65 64 72 6f 63 6b 20 6d 6f 64 65 6c 73 | d.support.for.AWS.Bedrock.models |
| 95b20 | 2e 20 20 59 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 6e 20 41 57 53 20 42 65 64 72 6f 63 6b | ...You.can.create.an.AWS.Bedrock |
| 95b40 | 0a 20 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b | ...gptel.backend.with.~gptel-mak |
| 95b60 | 65 2d 62 65 64 72 6f 63 6b 7e 2c 20 77 68 69 63 68 20 73 65 65 2e 20 20 50 6c 65 61 73 65 20 6e | e-bedrock~,.which.see...Please.n |
| 95b80 | 6f 74 65 3a 0a 20 20 41 57 53 20 42 65 64 72 6f 63 6b 20 73 75 70 70 6f 72 74 20 72 65 71 75 69 | ote:...AWS.Bedrock.support.requi |
| 95ba0 | 72 65 73 20 43 75 72 6c 20 38 2e 39 2e 30 20 6f 72 20 68 69 67 68 65 72 2e 0a 0a 2d 20 59 6f 75 | res.Curl.8.9.0.or.higher...-.You |
| 95bc0 | 20 63 61 6e 20 6e 6f 77 20 63 72 65 61 74 65 20 61 6e 20 78 41 49 20 62 61 63 6b 65 6e 64 20 77 | .can.now.create.an.xAI.backend.w |
| 95be0 | 69 74 68 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 78 61 69 7e 2c 20 77 68 69 63 68 20 73 65 65 2e | ith.~gptel-make-xai~,.which.see. |
| 95c00 | 0a 20 20 28 78 41 49 20 77 61 73 20 73 75 70 70 6f 72 74 65 64 20 62 65 66 6f 72 65 20 62 75 74 | ...(xAI.was.supported.before.but |
| 95c20 | 20 74 68 65 20 6d 6f 64 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 73 20 6e 6f 77 20 | .the.model.configuration.is.now. |
| 95c40 | 68 61 6e 64 6c 65 64 0a 20 20 66 6f 72 20 79 6f 75 20 62 79 20 74 68 69 73 20 66 75 6e 63 74 69 | handled...for.you.by.this.functi |
| 95c60 | 6f 6e 2e 29 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 47 69 74 48 75 62 20 43 | on.)..-.Add.support.for.GitHub.C |
| 95c80 | 6f 70 69 6c 6f 74 20 43 68 61 74 2e 20 20 53 65 65 20 74 68 65 20 52 45 41 44 4d 45 20 61 6e 64 | opilot.Chat...See.the.README.and |
| 95ca0 | 0a 20 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 68 2d 63 6f 70 69 6c 6f 74 7e 2e 20 20 50 6c 65 | ...~gptel-make-gh-copilot~...Ple |
| 95cc0 | 61 73 65 20 6e 6f 74 65 3a 20 74 68 69 73 20 69 73 20 6f 6e 6c 79 20 74 68 65 20 63 68 61 74 0a | ase.note:.this.is.only.the.chat. |
| 95ce0 | 20 20 63 6f 6d 70 6f 6e 65 6e 74 20 6f 66 20 47 69 74 48 75 62 20 43 6f 70 69 6c 6f 74 2e 20 20 | ..component.of.GitHub.Copilot... |
| 95d00 | 43 6f 70 69 6c 6f 74 27 73 20 7e 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 7e 0a | Copilot's.~completion-at-point~. |
| 95d20 | 20 20 28 74 61 62 2d 63 6f 6d 70 6c 65 74 69 6f 6e 29 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 | ..(tab-completion).functionality |
| 95d40 | 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 67 70 74 65 6c 2e 0a 0a 2d 20 41 | .is.not.supported.by.gptel...-.A |
| 95d60 | 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 53 61 6d 62 61 6e 6f 76 61 2e 20 20 54 68 69 73 20 | dd.support.for.Sambanova...This. |
| 95d80 | 69 73 20 61 6e 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 49 20 73 6f 20 79 | is.an.OpenAI-compatible.API.so.y |
| 95da0 | 6f 75 0a 20 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 7e | ou...can.create.a.backend.with.~ |
| 95dc0 | 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 2c 20 73 65 65 20 74 68 65 20 52 45 41 44 | gptel-make-openai~,.see.the.READ |
| 95de0 | 4d 45 20 66 6f 72 0a 20 20 64 65 74 61 69 6c 73 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 | ME.for...details...-.Add.support |
| 95e00 | 20 66 6f 72 20 4d 69 73 74 72 61 6c 20 4c 65 20 43 68 61 74 2e 20 20 54 68 69 73 20 69 73 20 61 | .for.Mistral.Le.Chat...This.is.a |
| 95e20 | 6e 20 61 6e 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 0a 20 20 41 50 49 20 73 6f 20 | n.an.OpenAI-compatible...API.so. |
| 95e40 | 79 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 7e 67 | you.can.create.a.backend.with.~g |
| 95e60 | 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 7e 2c 20 73 65 65 20 74 68 65 0a 20 20 52 45 41 | ptel-make-openai~,.see.the...REA |
| 95e80 | 44 4d 45 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 0a 0a 2a 2a 20 4e 65 77 20 66 65 61 74 75 72 65 | DME.for.details...**.New.feature |
| 95ea0 | 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 20 6e 6f 77 20 73 75 | s.and.UI.changes..-.gptel.now.su |
| 95ec0 | 70 70 6f 72 74 73 20 68 61 6e 64 6c 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 2f 74 68 69 6e 6b 69 | pports.handling.reasoning/thinki |
| 95ee0 | 6e 67 20 62 6c 6f 63 6b 73 20 69 6e 20 72 65 73 70 6f 6e 73 65 73 0a 20 20 66 72 6f 6d 20 47 65 | ng.blocks.in.responses...from.Ge |
| 95f00 | 6d 69 6e 69 20 6d 6f 64 65 6c 73 2e 20 20 54 68 69 73 20 69 73 20 63 6f 6e 74 72 6f 6c 6c 65 64 | mini.models...This.is.controlled |
| 95f20 | 20 62 79 0a 20 20 7e 67 70 74 65 6c 2d 69 6e 63 6c 75 64 65 2d 72 65 61 73 6f 6e 69 6e 67 7e 2c | .by...~gptel-include-reasoning~, |
| 95f40 | 20 69 6e 20 74 68 65 20 73 61 6d 65 20 77 61 79 20 74 68 61 74 20 69 74 20 68 61 6e 64 6c 65 73 | .in.the.same.way.that.it.handles |
| 95f60 | 20 6f 74 68 65 72 0a 20 20 41 50 49 73 2e 0a 0a 2d 20 54 68 65 20 6e 65 77 20 6f 70 74 69 6f 6e | .other...APIs...-.The.new.option |
| 95f80 | 20 7e 67 70 74 65 6c 2d 63 75 72 6c 2d 65 78 74 72 61 2d 61 72 67 73 7e 20 63 61 6e 20 62 65 20 | .~gptel-curl-extra-args~.can.be. |
| 95fa0 | 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 65 78 74 72 61 0a 20 20 61 72 67 75 6d 65 6e 74 | used.to.specify.extra...argument |
| 95fc0 | 73 20 74 6f 20 74 68 65 20 43 75 72 6c 20 63 6f 6d 6d 61 6e 64 20 75 73 65 64 20 66 6f 72 20 74 | s.to.the.Curl.command.used.for.t |
| 95fe0 | 68 65 20 72 65 71 75 65 73 74 2e 20 20 54 68 69 73 20 69 73 20 74 68 65 0a 20 20 67 6c 6f 62 61 | he.request...This.is.the...globa |
| 96000 | 6c 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 73 | l.version.of.the.gptel-backend-s |
| 96020 | 70 65 63 69 66 69 63 20 7e 3a 63 75 72 6c 2d 61 72 67 73 7e 20 73 6c 6f 74 2c 0a 20 20 77 68 69 | pecific.~:curl-args~.slot,...whi |
| 96040 | 63 68 20 63 61 6e 20 62 65 20 75 73 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 43 75 72 6c 20 61 | ch.can.be.used.to.specify.Curl.a |
| 96060 | 72 67 75 6d 65 6e 74 73 20 77 68 65 6e 20 75 73 69 6e 67 20 61 20 73 70 65 63 69 66 69 63 0a 20 | rguments.when.using.a.specific.. |
| 96080 | 20 62 61 63 6b 65 6e 64 2e 0a 0a 2d 20 54 6f 6f 6c 73 20 6e 6f 77 20 72 75 6e 20 69 6e 20 74 68 | .backend...-.Tools.now.run.in.th |
| 960a0 | 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 72 65 71 75 65 73 74 20 | e.buffer.from.which.the.request. |
| 960c0 | 6f 72 69 67 69 6e 61 74 65 73 2e 20 20 54 68 69 73 0a 20 20 63 61 6e 20 62 65 20 73 69 67 6e 69 | originates...This...can.be.signi |
| 960e0 | 66 69 63 61 6e 74 20 77 68 65 6e 20 74 6f 6f 6c 73 20 72 65 61 64 20 6f 72 20 6d 61 6e 69 70 75 | ficant.when.tools.read.or.manipu |
| 96100 | 6c 61 74 65 20 45 6d 61 63 73 27 20 73 74 61 74 65 2e 0a 0a 2d 20 67 70 74 65 6c 20 63 61 6e 20 | late.Emacs'.state...-.gptel.can. |
| 96120 | 61 63 63 65 73 73 20 4d 43 50 20 73 65 72 76 65 72 20 74 6f 6f 6c 73 20 62 79 20 69 6e 74 65 67 | access.MCP.server.tools.by.integ |
| 96140 | 72 61 74 69 6e 67 20 77 69 74 68 20 74 68 65 20 6d 63 70 2e 65 6c 0a 20 20 70 61 63 6b 61 67 65 | rating.with.the.mcp.el...package |
| 96160 | 2c 20 77 68 69 63 68 20 69 73 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d | ,.which.is.at.https://github.com |
| 96180 | 2f 6c 69 7a 71 77 65 72 73 63 6f 74 74 2f 6d 63 70 2e 65 6c 2e 0a 20 20 28 6d 63 70 2e 65 6c 20 | /lizqwerscott/mcp.el....(mcp.el. |
| 961a0 | 69 73 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 4d 45 4c 50 41 2e 29 20 20 54 6f 20 68 65 6c 70 | is.available.on.MELPA.)..To.help |
| 961c0 | 20 77 69 74 68 20 74 68 65 20 69 6e 74 65 67 72 61 74 69 6f 6e 2c 20 74 77 6f 0a 20 20 6e 65 77 | .with.the.integration,.two...new |
| 961e0 | 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 70 72 6f 76 69 64 65 64 3a 20 7e 67 70 74 65 6c 2d 6d | .commands.are.provided:.~gptel-m |
| 96200 | 63 70 2d 63 6f 6e 6e 65 63 74 7e 20 61 6e 64 0a 20 20 7e 67 70 74 65 6c 2d 6d 63 70 2d 64 69 73 | cp-connect~.and...~gptel-mcp-dis |
| 96220 | 63 6f 6e 6e 65 63 74 7e 2e 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 73 65 20 74 6f 20 | connect~...You.can.use.these.to. |
| 96240 | 73 74 61 72 74 20 4d 43 50 20 73 65 72 76 65 72 73 0a 20 20 73 65 6c 65 63 74 69 76 65 6c 79 20 | start.MCP.servers...selectively. |
| 96260 | 61 6e 64 20 61 64 64 20 74 6f 6f 6c 73 20 74 6f 20 67 70 74 65 6c 2e 20 20 54 68 65 73 65 20 63 | and.add.tools.to.gptel...These.c |
| 96280 | 6f 6d 6d 61 6e 64 73 20 61 72 65 20 61 6c 73 6f 0a 20 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f | ommands.are.also...available.fro |
| 962a0 | 6d 20 67 70 74 65 6c 27 73 20 74 6f 6f 6c 73 20 6d 65 6e 75 2e 0a 20 20 0a 20 20 54 68 65 73 65 | m.gptel's.tools.menu.......These |
| 962c0 | 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 6e 6f 74 20 61 75 74 6f | .commands.are.currently.not.auto |
| 962e0 | 6c 6f 61 64 65 64 20 62 79 20 67 70 74 65 6c 2e 20 20 54 6f 20 61 63 63 65 73 73 0a 20 20 74 68 | loaded.by.gptel...To.access...th |
| 96300 | 65 6d 2c 20 72 65 71 75 69 72 65 20 74 68 65 20 7e 67 70 74 65 6c 2d 69 6e 74 65 67 72 61 74 69 | em,.require.the.~gptel-integrati |
| 96320 | 6f 6e 73 7e 20 66 65 61 74 75 72 65 2e 0a 0a 2d 20 59 6f 75 20 63 61 6e 20 6e 6f 77 20 64 65 66 | ons~.feature...-.You.can.now.def |
| 96340 | 69 6e 65 20 22 70 72 65 73 65 74 73 22 2c 20 77 68 69 63 68 20 61 72 65 20 61 20 62 75 6e 64 6c | ine."presets",.which.are.a.bundl |
| 96360 | 65 20 6f 66 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 2c 0a 20 20 73 75 63 68 20 61 73 20 74 68 | e.of.gptel.options,...such.as.th |
| 96380 | 65 20 62 61 63 6b 65 6e 64 2c 20 6d 6f 64 65 6c 2c 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 | e.backend,.model,.system.message |
| 963a0 | 2c 20 69 6e 63 6c 75 64 65 64 20 74 6f 6f 6c 73 2c 0a 20 20 74 65 6d 70 65 72 61 74 75 72 65 20 | ,.included.tools,...temperature. |
| 963c0 | 61 6e 64 20 73 6f 20 6f 6e 2e 20 20 54 68 69 73 20 73 65 74 20 6f 66 20 6f 70 74 69 6f 6e 73 20 | and.so.on...This.set.of.options. |
| 963e0 | 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 74 6f 67 65 74 68 65 72 2c 0a 20 20 6d 61 6b 69 6e | can.be.applied.together,...makin |
| 96400 | 67 20 69 74 20 65 61 73 79 20 74 6f 20 73 77 69 74 63 68 20 62 65 74 77 65 65 6e 20 64 69 66 66 | g.it.easy.to.switch.between.diff |
| 96420 | 65 72 65 6e 74 20 74 61 73 6b 73 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 20 20 46 72 6f 6d 0a 20 | erent.tasks.using.gptel...From.. |
| 96440 | 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2c 20 79 6f 75 20 63 61 6e | .gptel's.transient.menu,.you.can |
| 96460 | 20 73 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 | .save.the.current.configuration. |
| 96480 | 61 73 20 61 0a 20 20 70 72 65 73 65 74 20 6f 72 20 61 70 70 6c 79 20 61 6e 6f 74 68 65 72 20 6f | as.a...preset.or.apply.another.o |
| 964a0 | 6e 65 2e 20 20 50 72 65 73 65 74 73 20 63 61 6e 20 62 65 20 61 70 70 6c 69 65 64 20 67 6c 6f 62 | ne...Presets.can.be.applied.glob |
| 964c0 | 61 6c 6c 79 2c 0a 20 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 | ally,...buffer-locally.or.for.th |
| 964e0 | 65 20 6e 65 78 74 20 72 65 71 75 65 73 74 20 6f 6e 6c 79 2e 20 20 54 6f 20 70 65 72 73 69 73 74 | e.next.request.only...To.persist |
| 96500 | 20 70 72 65 73 65 74 73 0a 20 20 61 63 72 6f 73 73 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 | .presets...across.Emacs.sessions |
| 96520 | 2c 20 64 65 66 69 6e 65 20 70 72 65 73 65 74 73 20 69 6e 20 79 6f 75 72 20 63 6f 6e 66 69 67 75 | ,.define.presets.in.your.configu |
| 96540 | 72 61 74 69 6f 6e 20 75 73 69 6e 67 0a 20 20 7e 67 70 74 65 6c 2d 6d 61 6b 65 2d 70 72 65 73 65 | ration.using...~gptel-make-prese |
| 96560 | 74 7e 2e 0a 0a 2d 20 57 68 65 6e 20 75 73 69 6e 67 20 7e 67 70 74 65 6c 2d 73 65 6e 64 7e 20 66 | t~...-.When.using.~gptel-send~.f |
| 96580 | 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 2c 20 79 6f 75 20 63 61 6e 20 6e | rom.anywhere.in.Emacs,.you.can.n |
| 965a0 | 6f 77 20 69 6e 63 6c 75 64 65 0a 20 20 61 20 22 63 6f 6f 6b 69 65 22 20 6f 66 20 74 68 65 20 66 | ow.include...a."cookie".of.the.f |
| 965c0 | 6f 72 6d 20 3d 40 70 72 65 73 65 74 2d 6e 61 6d 65 3d 20 69 6e 20 74 68 65 20 70 72 6f 6d 70 74 | orm.=@preset-name=.in.the.prompt |
| 965e0 | 20 74 65 78 74 20 74 6f 20 61 70 70 6c 79 0a 20 20 74 68 61 74 20 70 72 65 73 65 74 20 62 65 66 | .text.to.apply...that.preset.bef |
| 96600 | 6f 72 65 20 73 65 6e 64 69 6e 67 2e 20 20 54 68 65 20 70 72 65 73 65 74 20 69 73 20 61 70 70 6c | ore.sending...The.preset.is.appl |
| 96620 | 69 65 64 20 66 6f 72 20 74 68 61 74 20 72 65 71 75 65 73 74 0a 20 20 6f 6e 6c 79 2e 20 20 54 68 | ied.for.that.request...only...Th |
| 96640 | 69 73 20 69 73 20 61 6e 20 65 61 73 79 20 77 61 79 20 74 6f 20 73 70 65 63 69 66 79 20 6d 6f 64 | is.is.an.easy.way.to.specify.mod |
| 96660 | 65 6c 73 2c 20 74 6f 6f 6c 73 2c 20 73 79 73 74 65 6d 0a 20 20 6d 65 73 73 61 67 65 73 20 28 65 | els,.tools,.system...messages.(e |
| 96680 | 74 63 29 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 20 49 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 | tc).on.the.fly...In.chat.buffers |
| 966a0 | 20 74 68 65 20 70 72 65 73 65 74 20 63 6f 6f 6b 69 65 20 69 73 0a 20 20 66 6f 6e 74 69 66 69 65 | .the.preset.cookie.is...fontifie |
| 966c0 | 64 20 61 6e 64 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 76 | d.and.available.for.completion.v |
| 966e0 | 69 61 20 7e 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 7e 2e 0a 0a 2d 20 46 6f 72 | ia.~completion-at-point~...-.For |
| 96700 | 20 73 63 72 69 70 74 69 6e 67 20 70 75 72 70 6f 73 65 73 2c 20 70 72 6f 76 69 64 65 20 61 20 7e | .scripting.purposes,.provide.a.~ |
| 96720 | 67 70 74 65 6c 2d 77 69 74 68 2d 70 72 65 73 65 74 7e 20 6d 61 63 72 6f 20 74 6f 0a 20 20 63 72 | gptel-with-preset~.macro.to...cr |
| 96740 | 65 61 74 65 20 61 6e 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 77 69 74 68 20 61 20 70 72 65 73 65 | eate.an.environment.with.a.prese |
| 96760 | 74 20 61 70 70 6c 69 65 64 2e 0a 0a 2d 20 4c 69 6e 6b 73 20 74 6f 20 70 6c 61 69 6e 2d 74 65 78 | t.applied...-.Links.to.plain-tex |
| 96780 | 74 20 66 69 6c 65 73 20 69 6e 20 63 68 61 74 20 62 75 66 66 65 72 73 20 63 61 6e 20 62 65 20 66 | t.files.in.chat.buffers.can.be.f |
| 967a0 | 6f 6c 6c 6f 77 65 64 2c 20 61 6e 64 20 74 68 65 69 72 0a 20 20 63 6f 6e 74 65 6e 74 73 20 69 6e | ollowed,.and.their...contents.in |
| 967c0 | 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 72 65 71 75 65 73 74 2e 20 20 55 73 69 6e 67 20 | cluded.with.the.request...Using. |
| 967e0 | 4f 72 67 20 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 6c 69 6e 6b 73 20 69 73 0a 20 20 61 6e 20 65 61 | Org.or.Markdown.links.is...an.ea |
| 96800 | 73 79 2c 20 69 6e 74 75 69 74 69 76 65 2c 20 70 65 72 73 69 73 74 65 6e 74 20 61 6e 64 20 62 75 | sy,.intuitive,.persistent.and.bu |
| 96820 | 66 66 65 72 2d 6c 6f 63 61 6c 20 77 61 79 20 74 6f 20 73 70 65 63 69 66 79 0a 20 20 63 6f 6e 74 | ffer-local.way.to.specify...cont |
| 96840 | 65 78 74 2e 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 2c 20 74 | ext...To.enable.this.behavior,.t |
| 96860 | 75 72 6e 20 6f 6e 20 7e 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 7e 2e 20 54 68 69 73 | urn.on.~gptel-track-media~..This |
| 96880 | 0a 20 20 69 73 20 61 20 70 72 65 2d 65 78 69 73 74 69 6e 67 20 6f 70 74 69 6f 6e 20 74 68 61 74 | ...is.a.pre-existing.option.that |
| 968a0 | 20 61 6c 73 6f 20 63 6f 6e 74 72 6f 6c 73 20 77 68 65 74 68 65 72 20 69 6d 61 67 65 2f 64 6f 63 | .also.controls.whether.image/doc |
| 968c0 | 75 6d 65 6e 74 0a 20 20 6c 69 6e 6b 73 20 61 72 65 20 66 6f 6c 6c 6f 77 65 64 20 61 6e 64 20 73 | ument...links.are.followed.and.s |
| 968e0 | 65 6e 74 20 28 77 68 65 6e 20 74 68 65 20 6d 6f 64 65 6c 20 73 75 70 70 6f 72 74 73 20 69 74 29 | ent.(when.the.model.supports.it) |
| 96900 | 2e 0a 0a 2d 20 41 20 6e 65 77 20 68 6f 6f 6b 20 7e 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 | ...-.A.new.hook.~gptel-prompt-tr |
| 96920 | 61 6e 73 66 6f 72 6d 2d 66 75 6e 63 74 69 6f 6e 73 7e 20 69 73 20 70 72 6f 76 69 64 65 64 20 66 | ansform-functions~.is.provided.f |
| 96940 | 6f 72 0a 20 20 61 72 62 69 74 72 61 72 79 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f 6e 73 20 6f | or...arbitrary.transformations.o |
| 96960 | 66 20 74 68 65 20 70 72 6f 6d 70 74 20 70 72 69 6f 72 20 74 6f 20 73 65 6e 64 69 6e 67 20 61 20 | f.the.prompt.prior.to.sending.a. |
| 96980 | 72 65 71 75 65 73 74 2e 0a 20 20 54 68 69 73 20 68 6f 6f 6b 20 72 75 6e 73 20 69 6e 20 61 20 74 | request....This.hook.runs.in.a.t |
| 969a0 | 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 20 74 68 65 20 74 | emporary.buffer.containing.the.t |
| 969c0 | 65 78 74 20 74 6f 20 62 65 20 73 65 6e 74 2e 0a 20 20 41 6e 79 20 61 73 70 65 63 74 20 6f 66 20 | ext.to.be.sent....Any.aspect.of. |
| 969e0 | 74 68 65 20 72 65 71 75 65 73 74 20 28 74 68 65 20 74 65 78 74 2c 20 64 65 73 74 69 6e 61 74 69 | the.request.(the.text,.destinati |
| 96a00 | 6f 6e 2c 20 72 65 71 75 65 73 74 0a 20 20 70 61 72 61 6d 65 74 65 72 73 2c 20 72 65 73 70 6f 6e | on,.request...parameters,.respon |
| 96a20 | 73 65 20 68 61 6e 64 6c 69 6e 67 20 70 72 65 66 65 72 65 6e 63 65 73 29 20 63 61 6e 20 62 65 20 | se.handling.preferences).can.be. |
| 96a40 | 6d 6f 64 69 66 69 65 64 0a 20 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 68 65 72 65 2e 20 | modified...buffer-locally.here.. |
| 96a60 | 20 54 68 65 73 65 20 68 6f 6f 6b 20 66 75 6e 63 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 61 73 79 | .These.hook.functions.can.be.asy |
| 96a80 | 6e 63 68 72 6f 6e 6f 75 73 2e 0a 0a 2d 20 54 68 65 20 75 73 65 72 20 6f 70 74 69 6f 6e 20 7e 67 | nchronous...-.The.user.option.~g |
| 96aa0 | 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 7e 20 63 61 6e 20 6e 6f 77 20 62 65 20 75 73 65 64 20 74 | ptel-use-curl~.can.now.be.used.t |
| 96ac0 | 6f 20 73 70 65 63 69 66 79 20 61 20 43 75 72 6c 0a 20 20 70 61 74 68 2e 0a 0a 2d 20 54 68 65 20 | o.specify.a.Curl...path...-.The. |
| 96ae0 | 63 75 72 72 65 6e 74 20 6b 69 6c 6c 20 63 61 6e 20 62 65 20 61 64 64 65 64 20 74 6f 20 67 70 74 | current.kill.can.be.added.to.gpt |
| 96b00 | 65 6c 27 73 20 63 6f 6e 74 65 78 74 2e 20 20 54 6f 20 65 6e 61 62 6c 65 20 74 68 69 73 2c 0a 20 | el's.context...To.enable.this,.. |
| 96b20 | 20 74 75 72 6e 20 6f 6e 20 7e 67 70 74 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 7e | .turn.on.~gptel-expert-commands~ |
| 96b40 | 20 61 6e 64 20 75 73 65 20 67 70 74 65 6c 27 73 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e | .and.use.gptel's.transient.menu. |
| 96b60 | 20 0a 0a 2d 20 54 68 65 20 74 6f 6f 6c 73 20 6d 65 6e 75 20 28 7e 67 70 74 65 6c 2d 74 6f 6f 6c | ...-.The.tools.menu.(~gptel-tool |
| 96b80 | 73 7e 29 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 | s~).has.been.redesigned...It.now |
| 96ba0 | 20 64 69 73 70 6c 61 79 73 0a 20 20 74 6f 6f 6c 20 63 61 74 65 67 6f 72 69 65 73 20 61 6e 64 20 | .displays...tool.categories.and. |
| 96bc0 | 61 73 73 6f 63 69 61 74 65 64 20 74 6f 6f 6c 73 20 69 6e 20 74 77 6f 20 63 6f 6c 75 6d 6e 73 2c | associated.tools.in.two.columns, |
| 96be0 | 20 61 6e 64 20 69 74 20 73 68 6f 75 6c 64 0a 20 20 73 63 61 6c 65 20 62 65 74 74 65 72 20 74 6f | .and.it.should...scale.better.to |
| 96c00 | 20 61 6e 79 20 6e 75 6d 62 65 72 20 6f 66 20 74 6f 6f 6c 73 2e 20 20 41 73 20 61 20 62 6f 6e 75 | .any.number.of.tools...As.a.bonu |
| 96c20 | 73 2c 20 74 68 65 20 6e 65 77 20 6d 65 6e 75 0a 20 20 72 65 71 75 69 72 65 73 20 68 61 6c 66 20 | s,.the.new.menu...requires.half. |
| 96c40 | 61 73 20 6d 61 6e 79 20 6b 65 79 73 74 72 6f 6b 65 73 20 61 73 20 62 65 66 6f 72 65 20 74 6f 20 | as.many.keystrokes.as.before.to. |
| 96c60 | 65 6e 61 62 6c 65 20 69 6e 64 69 76 69 64 75 61 6c 0a 20 20 74 6f 6f 6c 73 20 6f 72 20 74 6f 67 | enable.individual...tools.or.tog |
| 96c80 | 67 6c 65 20 63 61 74 65 67 6f 72 69 65 73 2e 0a 0a 2a 2a 20 4e 6f 74 61 62 6c 65 20 42 75 67 20 | gle.categories...**.Notable.Bug. |
| 96ca0 | 66 69 78 65 73 0a 0a 2d 20 46 69 78 20 6d 6f 72 65 20 4f 72 67 20 6d 61 72 6b 75 70 20 63 6f 6e | fixes..-.Fix.more.Org.markup.con |
| 96cc0 | 76 65 72 73 69 6f 6e 20 65 64 67 65 20 63 61 73 65 73 20 69 6e 76 6f 6c 76 69 6e 67 20 6e 65 73 | version.edge.cases.involving.nes |
| 96ce0 | 74 65 64 20 4d 61 72 6b 64 6f 77 6e 0a 20 20 64 65 6c 69 6d 69 74 65 72 73 2e 0a 0a 2a 20 30 2e | ted.Markdown...delimiters...*.0. |
| 96d00 | 39 2e 38 20 32 30 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 | 9.8.2025-03-13..Version.0.9.8.ad |
| 96d20 | 64 73 20 73 75 70 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 | ds.support.for.new.Gemini,.Anthr |
| 96d40 | 6f 70 69 63 2c 20 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 | opic,.OpenAI,.Perplexity,.and.De |
| 96d60 | 65 70 53 65 65 6b 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 | epSeek.models,.introduces.LLM.to |
| 96d80 | 6f 6c 20 75 73 65 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 | ol.use/function.calling,.a.redes |
| 96da0 | 69 67 6e 20 6f 66 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 | ign.of.~gptel-menu~,.includes.ne |
| 96dc0 | 77 20 63 75 73 74 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 | w.customization.hooks,.dry-run.o |
| 96de0 | 70 74 69 6f 6e 73 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 | ptions.and.refined.settings,.imp |
| 96e00 | 72 6f 76 65 6d 65 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 | rovements.to.the.rewrite.feature |
| 96e20 | 20 61 6e 64 20 63 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 | .and.control.of.LLM."reasoning". |
| 96e40 | 63 6f 6e 74 65 6e 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 | content...**.Breaking.changes..- |
| 96e60 | 20 7e 67 65 6d 69 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 | .~gemini-pro~.has.been.removed.f |
| 96e80 | 72 6f 6d 20 74 68 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 | rom.the.list.of.Gemini.models,.a |
| 96ea0 | 73 0a 20 20 74 68 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 | s...this.model.is.no.longer.supp |
| 96ec0 | 6f 72 74 65 64 20 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 | orted.by.the.Gemini.API...-.Send |
| 96ee0 | 69 6e 67 20 61 6e 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 | ing.an.active.region.in.Org.mode |
| 96f00 | 20 77 69 6c 6c 20 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 | .will.now.apply.Org...mode-speci |
| 96f20 | 66 69 63 20 72 75 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 | fic.rules.to.the.text,.such.as.b |
| 96f40 | 72 61 6e 63 68 69 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 | ranching.context...-.The.followi |
| 96f60 | 6e 67 20 6f 62 73 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 | ng.obsolete.variables.and.functi |
| 96f80 | 6f 6e 73 20 68 61 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 | ons.have.been.removed:...-.~gpte |
| 96fa0 | 6c 2d 73 65 6e 64 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 | l-send-menu~:.Use.~gptel-menu~.i |
| 96fc0 | 6e 73 74 65 61 64 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 | nstead....-.~gptel-host~:.Use.~g |
| 96fe0 | 70 74 65 6c 2d 6d 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 | ptel-make-openai~.instead....-.~ |
| 97000 | 67 70 74 65 6c 2d 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 | gptel-playback~:.Use.~gptel-stre |
| 97020 | 61 6d 7e 20 69 6e 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 | am~.instead....-.~gptel--debug~: |
| 97040 | 20 55 73 65 20 7e 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 | .Use.~gptel-log-level~.instead.. |
| 97060 | 0a 2a 2a 20 4e 65 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 | .**.New.models.and.backends..-.A |
| 97080 | 64 64 20 73 75 70 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 | dd.support.for.several.new.Gemin |
| 970a0 | 69 20 6d 6f 64 65 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 | i.models.including...~gemini-2.0 |
| 970c0 | 2d 66 6c 61 73 68 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 | -flash~,.~gemini-2.0-pro-exp~.an |
| 970e0 | 64 0a 20 20 7e 67 65 6d 69 6e 69 2d 32 2e 30 2d 66 6c 61 73 68 2d 74 68 69 6e 6b 69 6e 67 2d 65 | d...~gemini-2.0-flash-thinking-e |
| 97100 | 78 70 7e 2c 20 61 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 | xp~,.among.others...-.Add.suppor |
| 97120 | 74 20 66 6f 72 20 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 | t.for.the.Anthropic.model.~claud |
| 97140 | 65 2d 33 2d 37 2d 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 | e-3-7-sonnet-20250219~,...includ |
| 97160 | 69 6e 67 20 69 74 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 | ing.its."reasoning".output...-.A |
| 97180 | 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 20 4f 70 65 6e 41 49 27 73 20 7e 6f 31 7e 2c 20 7e 6f | dd.support.for.OpenAI's.~o1~,.~o |
| 971a0 | 33 2d 6d 69 6e 69 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 | 3-mini~.and.~gpt-4.5-preview~... |
| 971c0 | 6d 6f 64 65 6c 73 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 | models...-.Add.support.for.Perpl |
| 971e0 | 65 78 69 74 79 2e 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 | exity...While.gptel.supported.Pe |
| 97200 | 72 70 6c 65 78 69 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 | rplexity.in...earlier.releases.b |
| 97220 | 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 74 2c 20 74 68 | y.reusing.its.OpenAI.support,.th |
| 97240 | 65 72 65 20 69 73 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 | ere.is.now.first...class.support |
| 97260 | 20 66 6f 72 20 74 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 | .for.the.Perplexity.API,.includi |
| 97280 | 6e 67 20 63 69 74 61 74 69 6f 6e 73 2e 0a 0a 2d 20 41 64 64 20 73 75 70 70 6f 72 74 20 66 6f 72 | ng.citations...-.Add.support.for |
| 972a0 | 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 72 74 65 | .DeepSeek...While.gptel.supporte |
| 972c0 | 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 73 65 73 | d.DeepSeek.in.earlier...releases |
| 972e0 | 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 74 2c 20 | .by.reusing.its.OpenAI.support,. |
| 97300 | 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 70 70 6f | there.is.now.first.class...suppo |
| 97320 | 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 75 64 69 | rt.for.the.DeepSeek.API,.includi |
| 97340 | 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 61 73 6f | ng.support.for.handling..."reaso |
| 97360 | 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 73 20 61 | ning".output...**.New.features.a |
| 97380 | 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 74 65 7e | nd.UI.changes..-.~gptel-rewrite~ |
| 973a0 | 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 73 70 6f | .now.supports.iterating.on.respo |
| 973c0 | 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 62 69 6c | nses...-.gptel.supports.the.abil |
| 973e0 | 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 73 74 73 | ity.to.simulate/dry-run.requests |
| 97400 | 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 74 20 77 | .so.you.can...see.exactly.what.w |
| 97420 | 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 65 76 69 | ill.be.sent...This.payload.previ |
| 97440 | 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 63 65 20 | ew.can.now.be...edited.in.place. |
| 97460 | 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 20 44 69 | and.the.request.continued...-.Di |
| 97480 | 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 20 67 70 | rectories.can.now.be.added.to.gp |
| 974a0 | 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 73 6f 0a | tel's.global.context...Doing.so. |
| 974c0 | 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 69 72 65 | ..will.add.all.files.in.the.dire |
| 974e0 | 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 74 22 20 | ctory.recursively...-."Oneshot". |
| 97500 | 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 54 72 61 | settings:.when.using.gptel's.Tra |
| 97520 | 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 65 74 65 | nsient.menus,.request...paramete |
| 97540 | 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 6e 6f 77 | rs,.directives.and.tools.can.now |
| 97560 | 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 20 20 6f | .be.set.for.the.next.request...o |
| 97580 | 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 63 72 6f | nly.in.addition.to.globally.acro |
| 975a0 | 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 66 66 65 | ss.the.Emacs.session.and...buffe |
| 975c0 | 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 72 20 6d | r-locally...This.is.useful.for.m |
| 975e0 | 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 20 64 69 | aking.one-off.requests.with...di |
| 97600 | 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 6f 64 65 | fferent.settings...-.~gptel-mode |
| 97620 | 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 73 20 64 | ~.can.now.be.used.in.all.modes.d |
| 97640 | 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 70 74 65 | erived.from.~text-mode~...-.gpte |
| 97660 | 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 70 6f 6e | l.now.tries.to.handle.LLM.respon |
| 97680 | 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 61 72 6b | ses.that.are.in.mixed...Org/Mark |
| 976a0 | 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 20 7e 67 | down.markup.correctly...-.Add.~g |
| 976c0 | 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 20 74 6f | ptel-org-convert-response~.to.to |
| 976e0 | 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 0a 20 20 | ggle.the.automatic.conversion... |
| 97700 | 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 74 65 64 | of.(possibly).Markdown-formatted |
| 97720 | 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 77 68 65 | .LLM.responses.to.Org.markup.whe |
| 97740 | 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 6e 6f 77 | re...appropriate...-.You.can.now |
| 97760 | 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 6b 65 6e | .look.up.registered.gptel.backen |
| 97780 | 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 6b 65 6e | ds.using.the...~gptel-get-backen |
| 977a0 | 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 64 20 74 | d~.function...This.is.intended.t |
| 977c0 | 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 75 72 69 | o.make.scripting...and.configuri |
| 977e0 | 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 62 61 63 | ng.gptel.easier...~gptel-get-bac |
| 97800 | 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 61 62 6c | kend~.is.a.generalized...variabl |
| 97820 | 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 20 77 69 | e.so.you.can.(un)set.backends.wi |
| 97840 | 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 20 6e 6f | th.~setf~...-.Tool.use:.gptel.no |
| 97860 | 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 75 6e 63 | w.supports.LLM.tool.use,.or.func |
| 97880 | 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 6f 75 20 | tion.calling....Essentially.you. |
| 978a0 | 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 6c 69 74 | can.equip.the.LLM.with.capabilit |
| 978c0 | 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 65 73 73 | ies.(such.as...filesystem.access |
| 978e0 | 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 73 20 6f | ,.web.search,.control.of.Emacs.o |
| 97900 | 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 74 61 74 | r.introspection.of...Emacs'.stat |
| 97920 | 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 6f 20 70 | e.and.more).that.it.can.use.to.p |
| 97940 | 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 20 72 75 | erform.tasks.for.you....gptel.ru |
| 97960 | 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 20 76 61 | ns.these.tools.using.argument.va |
| 97980 | 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 54 68 69 | lues.provided.by.the.LLMs....Thi |
| 979a0 | 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 77 68 69 | s.requires.specifying.tools,.whi |
| 979c0 | 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 6c 61 69 | ch.are.elisp.functions.with.plai |
| 979e0 | 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 72 20 61 | n...text.descriptions.of.their.a |
| 97a00 | 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 64 6f 65 | rguments.and.results...gptel.doe |
| 97a20 | 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 20 6f 66 | s.not...include.any.tools.out.of |
| 97a40 | 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 20 75 70 | .the.box.yet...-.You.can.look.up |
| 97a60 | 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 20 74 68 | .registered.gptel.tools.using.th |
| 97a80 | 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 2e 20 20 | e.~gptel-get-tool~...function... |
| 97aa0 | 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 70 74 69 | This.is.intended.to.make.scripti |
| 97ac0 | 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 73 69 65 | ng.and.configuring.gptel...easie |
| 97ae0 | 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 65 72 61 | r...~gptel-get-tool~.is.a.genera |
| 97b00 | 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 75 6e 29 | lized.variable.so.you.can...(un) |
| 97b20 | 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 20 68 6f | set.tools.with.~setf~...-.New.ho |
| 97b40 | 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 70 74 65 | oks.for.customization:...+.~gpte |
| 97b60 | 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 20 61 20 | l-prompt-filter-hook~.runs.in.a. |
| 97b80 | 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 20 20 20 | temporary.buffer.containing..... |
| 97ba0 | 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 68 65 20 | the.text.to.be.sent,.before.the. |
| 97bc0 | 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 6e 20 62 | full.query.is.created...It.can.b |
| 97be0 | 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 20 74 72 | e.....used.for.arbitrary.text.tr |
| 97c00 | 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 65 78 74 | ansformations.to.the.source.text |
| 97c20 | 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 6b 7e 20 | ....+.~gptel-post-request-hook~. |
| 97c40 | 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 74 2c 20 | runs.after.the.request.is.sent,. |
| 97c60 | 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 20 72 65 | and.....(possibly).before.any.re |
| 97c80 | 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 69 6e 74 | sponse.is.received...This.is.int |
| 97ca0 | 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 65 74 20 | ended.for.....preparatory/reset. |
| 97cc0 | 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 2d 68 6f | code....+.~gptel-post-rewrite-ho |
| 97ce0 | 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 74 65 7e | ok~.runs.after.a.~gptel-rewrite~ |
| 97d00 | 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 61 6e 64 | .request.is.....successfully.and |
| 97d20 | 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 6e 75 7e | .fully.received...-.~gptel-menu~ |
| 97d40 | 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 20 73 68 | .has.been.redesigned...It.now.sh |
| 97d60 | 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 66 20 77 | ows.a.verbose...description.of.w |
| 97d80 | 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 65 20 6f | hat.will.be.sent.and.where.the.o |
| 97da0 | 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 65 6e 64 | utput.will.go...This...is.intend |
| 97dc0 | 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 6c 27 73 | ed.to.provide.clarity.on.gptel's |
| 97de0 | 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 2c 20 61 | .default.prompting...behavior,.a |
| 97e00 | 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 61 72 69 | s.well.as.the.effect.of.the.vari |
| 97e20 | 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 74 69 6f | ous.prompt/response...redirectio |
| 97e40 | 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 63 6f 6d | n.it.provides...Incompatible.com |
| 97e60 | 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 77 20 64 | binations.of.options.are...now.d |
| 97e80 | 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 77 65 65 | isallowed...-.The.spacing.betwee |
| 97ea0 | 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 68 65 20 | n.the.end.of.the.prompt.and.the. |
| 97ec0 | 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 6e 20 62 | beginning.of.the...response.in.b |
| 97ee0 | 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 61 0a 20 | uffers.is.now.customizable.via.. |
| 97f00 | 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 61 6e 64 | .~gptel-response-separator~,.and |
| 97f20 | 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 2d 63 6f | .can.be.any.string...-.~gptel-co |
| 97f40 | 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 6e 74 65 | ntext-remove-all~.is.now.an.inte |
| 97f60 | 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 20 68 61 | ractive.command...-.gptel.now.ha |
| 97f80 | 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 64 75 63 | ndles."reasoning".content.produc |
| 97fa0 | 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 75 64 65 | ed.by.LLMs...Some.LLMs...include |
| 97fc0 | 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 67 22 20 | .in.their.response.a."thinking". |
| 97fe0 | 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 0a 20 20 | or."reasoning".section...This... |
| 98000 | 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 74 68 65 | text.improves.the.quality.of.the |
| 98020 | 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 79 20 6e | .LLM...s.final.output,.but.may.n |
| 98040 | 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 20 69 74 | ot.be...interesting.to.you.by.it |
| 98060 | 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 7e 67 70 | self...The.new.user.option...~gp |
| 98080 | 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 6c 73 20 | tel-include-reasoning~.controls. |
| 980a0 | 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 73 0a 20 | whether.and.how.gptel.displays.. |
| 980c0 | 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 41 50 49 | .this.content...-.(Anthropic.API |
| 980e0 | 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 63 61 63 | .only).Some.LLM.backends.can.cac |
| 98100 | 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 74 65 6c | he.content.sent.to.it...by.gptel |
| 98120 | 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 75 64 65 | ,.so.that.only.the.newly.include |
| 98140 | 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 20 62 65 | d.part.of.the.text.needs.to...be |
| 98160 | 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 65 72 73 | .processed.on.subsequent.convers |
| 98180 | 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 0a 20 20 | ation.turns...This.results.in... |
| 981a0 | 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 70 65 72 | faster.and.significantly.cheaper |
| 981c0 | 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 69 6f 6e | .processing..The.new.user.option |
| 981e0 | 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 74 6f 20 | ...~gptel-cache~.can.be.used.to. |
| 98200 | 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 6f 72 0a | specify.caching.preferences.for. |
| 98220 | 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 20 61 6e | ..prompts,.the.system.message.an |
| 98240 | 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 69 73 0a | d/or.tool.definitions...This.is. |
| 98260 | 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 6f 70 69 | ..supported.only.by.the.Anthropi |
| 98280 | 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 29 20 4f | c.API.right.now...-.(Org.mode).O |
| 982a0 | 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 74 72 69 | rg.property.drawers.are.now.stri |
| 982c0 | 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 65 66 6f | pped.from.the.prompt...text.befo |
| 982e0 | 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 63 6f 6e | re.sending.queries...You.can.con |
| 98300 | 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 66 79 20 | trol.this.behavior.or...specify. |
| 98320 | 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 6e 6f 72 | additional.Org.elements.to.ignor |
| 98340 | 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 6d 65 6e | e.via...~gptel-org-ignore-elemen |
| 98360 | 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 72 6f 63 | ts~...(For.more.complex.pre-proc |
| 98380 | 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 72 6f 6d | essing.you...can.use.~gptel-prom |
| 983a0 | 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 20 42 75 | pt-filter-hook~.)..**.Notable.Bu |
| 983c0 | 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 70 20 77 | g.fixes..-.Fix.response.mix-up.w |
| 983e0 | 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 74 73 20 | hen.running.concurrent.requests. |
| 98400 | 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 6c 20 6e | in.Org.mode...buffers..-.gptel.n |
| 98420 | 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 69 63 61 | ow.works.around.an.Org.fontifica |
| 98440 | 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 73 70 6f | tion.bug.where.streaming...respo |
| 98460 | 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 74 69 6d | nses.in.Org.mode.buffers.sometim |
| 98480 | 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 74 6f 0a | es.caused.source.code.blocks.to. |
| 984a0 | 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 37 20 32 | ..remain.unfontified...*.0.9.7.2 |
| 984c0 | 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 20 64 79 | 024-12-04..Version.0.9.7.adds.dy |
| 984e0 | 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 77 72 69 | namic.directives,.a.better.rewri |
| 98500 | 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 72 74 20 | te.interface,.streaming.support. |
| 98520 | 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 20 6d 6f | to.the.gptel.request.API,.and.mo |
| 98540 | 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 66 69 67 | re.flexible.model/backend.config |
| 98560 | 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 0a 7e 67 | uration...**.Breaking.changes.~g |
| 98580 | 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 62 73 6f | ptel-rewrite-menu~.has.been.obso |
| 985a0 | 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 6e 73 74 | leted...Use.~gptel-rewrite~.inst |
| 985c0 | 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 72 74 20 | ead...**.Backends.-.Add.support. |
| 985e0 | 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 20 7e 6f | for.OpenAI's.~o1-preview~.and.~o |
| 98600 | 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 6e 74 68 | 1-mini~...-.Add.support.for.Anth |
| 98620 | 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 41 64 64 | ropic's.Claude.3.5.Haiku...-.Add |
| 98640 | 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 6f 72 74 | .support.for.xAI...-.Add.support |
| 98660 | 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 72 65 73 | .for.Novita.AI...**.New.features |
| 98680 | 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 72 65 63 | .and.UI.changes..-.gptel's.direc |
| 986a0 | 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 29 20 63 | tives.(see.~gptel-directives~).c |
| 986c0 | 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 75 64 65 | an.now.be.dynamic,.and...include |
| 986e0 | 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 2e 20 20 | .more.than.the.system.message... |
| 98700 | 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 73 61 74 | You.can."pre-fill".a...conversat |
| 98720 | 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 61 67 65 | ion.with.canned.user/LLM.message |
| 98740 | 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 75 6e 63 | s...Directives.can.now.be...func |
| 98760 | 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 74 65 20 | tions.that.dynamically.generate. |
| 98780 | 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 65 72 73 | the.system.message.and...convers |
| 987a0 | 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 72 72 65 | ation.history.based.on.the.curre |
| 987c0 | 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 20 77 61 | nt.context...This.paves.the...wa |
| 987e0 | 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 63 69 66 | y.for.fully.flexible.task-specif |
| 98800 | 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 65 73 0a | ic.templates,.which.the.UI.does. |
| 98820 | 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 20 67 70 | ..not.yet.support.in.full...-.gp |
| 98840 | 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 65 65 6e | tel's.rewrite.interface.has.been |
| 98860 | 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 69 6e 67 | .reworked...If.using.a.streaming |
| 98880 | 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 78 74 20 | ...endpoint,.the.rewritten.text. |
| 988a0 | 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 6c 61 63 | is.streamed.in.as.a.preview.plac |
| 988c0 | 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 6c 6c 20 | ed.over...the.original...In.all. |
| 988e0 | 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 77 20 62 | cases,.clicking.on.the.preview.b |
| 98900 | 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 20 75 73 | rings.up.a...dispatch.you.can.us |
| 98920 | 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 65 2c 20 | e.to.easily.diff,.ediff,.merge,. |
| 98940 | 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 73 20 28 | accept.or.reject...the.changes.( |
| 98960 | 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 75 72 65 | 4ae9c1b2),.and.you.can.configure |
| 98980 | 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 61 63 74 | .gptel.to.run.one.of...these.act |
| 989a0 | 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 52 45 41 | ions.automatically...See.the.REA |
| 989c0 | 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 62 6f 72 | DME.for.examples...-.~gptel-abor |
| 989e0 | 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 6e 20 70 | t~,.used.to.cancel.requests.in.p |
| 98a00 | 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 68 65 20 | rogress,.now.works.across...the. |
| 98a20 | 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 6e 67 20 | board,.including.when.not.using. |
| 98a40 | 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 0a 0a 2d | Curl.or.with.~gptel-rewrite~...- |
| 98a60 | 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 65 78 70 | .The.~gptel-request~.API.now.exp |
| 98a80 | 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 73 70 6f | licitly.supports.streaming.respo |
| 98aa0 | 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 69 74 65 | nses...,.making.it.easy.to.write |
| 98ac0 | 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 20 77 69 | .your.own.helpers.or.features.wi |
| 98ae0 | 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 41 50 49 | th...streaming.support...The.API |
| 98b00 | 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 74 6f 20 | .also.supports.~gptel-abort~.to. |
| 98b20 | 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 2e 0a 0a | stop.and...clean.up.responses... |
| 98b40 | 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 6d 20 6d | -.You.can.now.unset.the.system.m |
| 98b60 | 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 69 6e 67 | essage.--.different.from.setting |
| 98b80 | 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 74 65 6c | .it.to...an.empty.string...gptel |
| 98ba0 | 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 62 6c 65 | .will.also.automatically.disable |
| 98bc0 | 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 69 6e 67 | .the.system...message.when.using |
| 98be0 | 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 2e 0a 0a | .models.that.don't.support.it... |
| 98c00 | 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 77 69 74 | -.Support.for.including.PDFs.wit |
| 98c20 | 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 73 20 68 | h.requests.to.Anthropic.models.h |
| 98c40 | 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 69 65 73 | as...been.added...(These.queries |
| 98c60 | 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 31 30 25 | .are.cached,.so.you.pay.only.10% |
| 98c80 | 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 44 46 20 | .of.the...token.cost.of.the.PDF. |
| 98ca0 | 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 74 68 61 | in.follow-up.queries.)..Note.tha |
| 98cc0 | 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 63 29 20 | t.document...support.(PDFs.etc). |
| 98ce0 | 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 61 69 6c | for.Gemini.models.has.been.avail |
| 98d00 | 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 64 65 66 | able.since...v0.9.5...-.When.def |
| 98d20 | 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 64 2c 20 | ining.a.gptel.model.or.backend,. |
| 98d40 | 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 61 72 61 | you.can.specify.arbitrary...para |
| 98d60 | 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 65 71 75 | meters.to.be.sent.with.each.requ |
| 98d80 | 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 29 0a 20 | est...This.includes.the.(many).. |
| 98da0 | 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 74 68 61 | .API.options.across.all.APIs.tha |
| 98dc0 | 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 65 78 70 | t.gptel.does.not.yet.provide.exp |
| 98de0 | 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 72 61 6e | licit...support.for...-.New.tran |
| 98e00 | 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 79 20 72 | sient.command.option.to.easily.r |
| 98e20 | 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 63 68 75 | emove.all.included.context...chu |
| 98e40 | 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 50 72 65 | nks...**.Notable.Bug.fixes.-.Pre |
| 98e60 | 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 20 69 6e | ssing.~RET~.on.included.files.in |
| 98e80 | 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 20 6e 6f | .the.context.inspector.buffer.no |
| 98ea0 | 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 79 2e 0a | w...pops.up.the.file.correctly.. |
| 98ec0 | 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 69 74 65 | -.API.keys.are.stripped.of.white |
| 98ee0 | 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 70 6c 65 | space.before.sending..-.Multiple |
| 98f00 | 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 72 75 63 | .UI,.backend.and.prompt.construc |
| 98f20 | 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 00 00 00 | tion.bugs.have.been.fixed....... |
| 98f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 98fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2e 65 6c 00 00 00 00 | gptel-0.9.9/gptel-rewrite.el.... |
| 99020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99060 | 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 |
| 99080 | 30 31 30 31 32 37 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 34 32 33 00 20 30 00 00 00 | 0101273.00000000000.014423..0... |
| 990a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 990c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 990e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99100 | 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................... |
| 99120 | 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................... |
| 99140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 991a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 991c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 991e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 99200 | 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 |
| 99220 | 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 |
| 99240 | 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 |
| 99260 | 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 |
| 99280 | 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 |
| 992a0 | 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> |
| 992c0 | 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 |
| 992e0 | 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 |
| 99300 | 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 |
| 99320 | 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 |
| 99340 | 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 |
| 99360 | 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.;; |
| 99380 | 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 |
| 993a0 | 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,. |
| 993c0 | 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 |
| 993e0 | 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 |
| 99400 | 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 |
| 99420 | 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 |
| 99440 | 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 |
| 99460 | 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 |
| 99480 | 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 |
| 994a0 | 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. |
| 994c0 | 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. |
| 994e0 | 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. |
| 99500 | 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 |
| 99520 | 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 |
| 99540 | 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 |
| 99560 | 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 |
| 99580 | 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 |
| 995a0 | 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)..( |
| 995c0 | 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 |
| 995e0 | 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 |
| 99600 | 73 29 0a 28 64 65 66 76 61 72 20 65 64 69 66 66 2d 77 69 6e 64 6f 77 2d 73 65 74 75 70 2d 66 75 | s).(defvar.ediff-window-setup-fu |
| 99620 | 6e 63 74 69 6f 6e 29 0a 28 64 65 66 76 61 72 20 65 64 69 66 66 2d 73 70 6c 69 74 2d 77 69 6e 64 | nction).(defvar.ediff-split-wind |
| 99640 | 6f 77 2d 66 75 6e 63 74 69 6f 6e 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 | ow-function)..(declare-function. |
| 99660 | 64 69 66 66 2d 6e 6f 2d 73 65 6c 65 63 74 20 22 64 69 66 66 22 29 0a 28 64 65 63 6c 61 72 65 2d | diff-no-select."diff").(declare- |
| 99680 | 66 75 6e 63 74 69 6f 6e 20 72 6d 63 2d 2d 61 64 64 2d 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f | function.rmc--add-key-descriptio |
| 996a0 | 6e 20 22 72 6d 63 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 | n."rmc").(declare-function.ediff |
| 996c0 | 2d 73 65 74 75 70 2d 77 69 6e 64 6f 77 73 2d 70 6c 61 69 6e 20 22 65 64 69 66 66 2d 77 69 6e 64 | -setup-windows-plain."ediff-wind |
| 996e0 | 22 29 0a 0a 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 | ")..;;.*.User.options..(defcusto |
| 99700 | 6d 20 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 20 | m.gptel-rewrite-directives-hook. |
| 99720 | 6e 69 6c 0a 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 | nil..."Hook.run.to.generate.gpte |
| 99740 | 6c 27 73 20 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 | l's.default.rewrite.directives.. |
| 99760 | 0a 45 61 63 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 | .Each.function.in.this.hook.is.c |
| 99780 | 61 6c 6c 65 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 | alled.with.no.arguments.until.on |
| 997a0 | 65 0a 72 65 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 | e.returns.a.non-nil.value,.the.b |
| 997c0 | 61 73 65 20 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 | ase.string.to.use.as.the.rewrite |
| 997e0 | 20 69 6e 73 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 | .instruction...Use.this.hook.to. |
| 99800 | 74 61 69 6c 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 | tailor.context-specific.rewrite. |
| 99820 | 64 69 72 65 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 | directives..For.example,.you.can |
| 99840 | 20 73 70 65 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 | .specialize.the.default.rewrite. |
| 99860 | 64 69 72 65 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 | directive.for.a.particular.major |
| 99880 | 2d 6d 6f 64 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 | -mode.or.project."...:group.'gpt |
| 998a0 | 65 6c 0a 20 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 | el...:type.'hook)..(defcustom.gp |
| 998c0 | 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 20 6e 69 6c 0a 20 | tel-post-rewrite-functions.nil.. |
| 998e0 | 20 22 41 62 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 | ."Abnormal.hook.run.after.a.`gpt |
| 99900 | 65 6c 2d 72 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 | el-rewrite'.action...This.hook.i |
| 99920 | 73 20 63 61 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 | s.called.after.the.LLM.response. |
| 99940 | 66 6f 72 20 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 | for.the.rewrite.action.has.been. |
| 99960 | 66 75 6c 6c 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 | fully.received.in.a.temporary.bu |
| 99980 | 66 66 65 72 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 | ffer...Each.function.is.called.w |
| 999a0 | 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 | ith.two.arguments:.the.response. |
| 999c0 | 62 65 67 69 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 | beginning.and.end.positions...No |
| 999e0 | 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 |
| 99a00 | 65 77 72 69 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 | ewrite.request.succeeds."...:typ |
| 99a20 | 65 20 27 68 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 | e.'hook...:group.'gptel)..(defcu |
| 99a40 | 73 74 6f 6d 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 | stom.gptel-rewrite-default-actio |
| 99a60 | 6e 20 6e 69 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 | n.nil..."Action.to.take.when.rew |
| 99a80 | 72 69 74 69 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 | riting.a.text.region.using.gptel |
| 99aa0 | 2e 0a 0a 57 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 | ...When.the.LLM.response.with.th |
| 99ac0 | 65 20 72 65 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 | e.rewritten.text.is.received,.yo |
| 99ae0 | 75 20 63 61 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 | u.can.-.merge.it.with.the.curren |
| 99b00 | 74 20 72 65 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 | t.region,.possibly.creating.a.me |
| 99b20 | 72 67 65 20 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 | rge.conflict,.-.diff.or.ediff.ag |
| 99b40 | 61 69 6e 73 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 | ainst.the.original.region,.-.or. |
| 99b60 | 61 63 63 65 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 | accept.it.in.place,.replacing.th |
| 99b80 | 65 20 6f 72 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 | e.original.region..-.display.a.d |
| 99ba0 | 69 73 70 61 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 | ispatch.menu.with.the.above.choi |
| 99bc0 | 63 65 73 2e 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 | ces...If.this.option.is.nil.(the |
| 99be0 | 20 64 65 66 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 | .default),.gptel.waits.for.an.ex |
| 99c00 | 70 6c 69 63 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 | plicit.command...Set.it.to.the.s |
| 99c20 | 79 6d 62 6f 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 | ymbol.`merge',.`diff',.`ediff',. |
| 99c40 | 60 61 63 63 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 | `accept'.or.`dispatch'.to.automa |
| 99c60 | 74 69 63 61 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 | tically.do.one.of.these.things.i |
| 99c80 | 6e 73 74 65 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 | nstead...You.can.also.set.it.to. |
| 99ca0 | 61 20 66 75 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 | a.function.of.your.choosing.for. |
| 99cc0 | 61 20 63 75 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 | a.custom.action...This.function. |
| 99ce0 | 72 65 63 65 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 | receives.one.argument,.the.rewri |
| 99d00 | 74 65 0a 6f 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 | te.overlay."...:group.'gptel...: |
| 99d20 | 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.: |
| 99d40 | 74 61 67 20 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 | tag."Wait".nil)...........(const |
| 99d60 | 20 3a 74 61 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 | .:tag."Merge.with.current.region |
| 99d80 | 22 20 6d 65 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 | ".merge)...........(const.:tag.. |
| 99da0 | 22 44 69 66 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 | "Diff.against.current.region".di |
| 99dc0 | 66 66 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 45 64 69 66 66 | ff)...........(const.:tag."Ediff |
| 99de0 | 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 65 64 69 66 66 29 0a | .against.current.region".ediff). |
| 99e00 | 20 20 20 20 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 | ..........(const.:tag."Accept.re |
| 99e20 | 77 72 69 74 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 | write".accept)...........(const. |
| 99e40 | 3a 74 61 67 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 | :tag."Dispatch".dispatch)....... |
| 99e60 | 20 20 20 20 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 | ....(function.:tag."Custom.actio |
| 99e80 | 6e 22 29 29 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 | n")))..(defface.gptel-rewrite-hi |
| 99ea0 | 67 68 6c 69 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 | ghlight-face...'((((class.color) |
| 99ec0 | 20 28 6d 69 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 | .(min-colors.88).(background.dar |
| 99ee0 | 6b 29 29 0a 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 | k))......:background."#041714".: |
| 99f00 | 65 78 74 65 6e 64 20 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 28 | extend.t.:inherit.default).....( |
| 99f20 | 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 38 29 20 28 | ((class.color).(min-colors.88).( |
| 99f40 | 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 61 63 6b 67 72 6f | background.light))......:backgro |
| 99f60 | 75 6e 64 20 22 6c 69 67 68 74 20 67 6f 6c 64 65 6e 72 6f 64 20 79 65 6c 6c 6f 77 22 20 3a 65 78 | und."light.goldenrod.yellow".:ex |
| 99f80 | 74 65 6e 64 20 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 0a 20 20 20 20 28 74 20 | tend.t.:inherit.default).....(t. |
| 99fa0 | 3a 69 6e 68 65 72 69 74 20 73 65 63 6f 6e 64 61 72 79 2d 73 65 6c 65 63 74 69 6f 6e 29 29 0a 20 | :inherit.secondary-selection)).. |
| 99fc0 | 20 22 46 61 63 65 20 66 6f 72 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 72 65 67 69 6f 6e 73 20 | ."Face.for.highlighting.regions. |
| 99fe0 | 77 69 74 68 20 70 65 6e 64 69 6e 67 20 72 65 77 72 69 74 65 73 2e 22 0a 20 20 3a 67 72 6f 75 70 | with.pending.rewrites."...:group |
| 9a000 | 20 27 67 70 74 65 6c 29 0a 0a 3b 3b 20 2a 20 56 61 72 69 61 62 6c 65 73 0a 0a 28 64 65 66 76 61 | .'gptel)..;;.*.Variables..(defva |
| 9a020 | 72 2d 6b 65 79 6d 61 70 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 61 63 74 69 6f 6e 73 2d 6d | r-keymap.gptel-rewrite-actions-m |
| 9a040 | 61 70 0a 20 20 3a 64 6f 63 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 | ap...:doc."Keymap.for.gptel.rewr |
| 9a060 | 69 74 65 20 61 63 74 69 6f 6e 73 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 22 52 45 54 22 20 23 | ite.actions.at.point."..."RET".# |
| 9a080 | 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 3c 6d 6f 75 | 'gptel--rewrite-dispatch..."<mou |
| 9a0a0 | 73 65 2d 31 3e 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 73 70 61 74 63 68 | se-1>".#'gptel--rewrite-dispatch |
| 9a0c0 | 0a 20 20 22 43 2d 63 20 43 2d 61 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 | ..."C-c.C-a".#'gptel--rewrite-ac |
| 9a0e0 | 63 65 70 74 0a 20 20 22 43 2d 63 20 43 2d 72 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | cept..."C-c.C-r".#'gptel--rewrit |
| 9a100 | 65 2d 69 74 65 72 61 74 65 0a 20 20 22 43 2d 63 20 43 2d 6b 22 20 23 27 67 70 74 65 6c 2d 2d 72 | e-iterate..."C-c.C-k".#'gptel--r |
| 9a120 | 65 77 72 69 74 65 2d 72 65 6a 65 63 74 0a 20 20 22 43 2d 63 20 43 2d 64 22 20 23 27 67 70 74 65 | ewrite-reject..."C-c.C-d".#'gpte |
| 9a140 | 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 66 66 0a 20 20 22 43 2d 63 20 43 2d 65 22 20 23 27 67 70 | l--rewrite-diff..."C-c.C-e".#'gp |
| 9a160 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 0a 20 20 22 43 2d 63 20 43 2d 6e 22 20 23 | tel--rewrite-ediff..."C-c.C-n".# |
| 9a180 | 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6e 65 78 74 0a 20 20 22 43 2d 63 20 43 2d 70 22 | 'gptel--rewrite-next..."C-c.C-p" |
| 9a1a0 | 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 76 69 6f 75 73 0a 20 20 22 43 2d | .#'gptel--rewrite-previous..."C- |
| 9a1c0 | 63 20 43 2d 6d 22 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 29 0a 0a | c.C-m".#'gptel--rewrite-merge).. |
| 9a1e0 | 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 | (defvar-local.gptel--rewrite-ove |
| 9a200 | 72 6c 61 79 73 20 6e 69 6c 0a 20 20 22 4c 69 73 74 20 6f 66 20 61 63 74 69 76 65 20 72 65 77 72 | rlays.nil..."List.of.active.rewr |
| 9a220 | 69 74 65 20 6f 76 65 72 6c 61 79 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 | ite.overlays.in.the.buffer.")..( |
| 9a240 | 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 | defvar-local.gptel--rewrite-mess |
| 9a260 | 61 67 65 20 6e 69 6c 0a 20 20 22 52 65 71 75 65 73 74 2d 73 70 65 63 69 66 69 63 20 69 6e 73 74 | age.nil..."Request-specific.inst |
| 9a280 | 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 61 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 61 63 74 | ructions.for.a.gptel-rewrite.act |
| 9a2a0 | 69 6f 6e 2e 22 29 0a 0a 3b 3b 20 41 64 64 20 74 68 65 20 72 65 77 72 69 74 65 20 64 69 72 65 63 | ion.")..;;.Add.the.rewrite.direc |
| 9a2c0 | 74 69 76 65 20 74 6f 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 0a 28 75 6e 6c 65 | tive.to.`gptel-directives'.(unle |
| 9a2e0 | 73 73 20 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 69 72 | ss.(alist-get.'rewrite.gptel-dir |
| 9a300 | 65 63 74 69 76 65 73 29 0a 20 20 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 67 70 74 65 6c 2d 64 | ectives)...(add-to-list.'gptel-d |
| 9a320 | 69 72 65 63 74 69 76 65 73 20 60 28 72 65 77 72 69 74 65 20 2e 20 2c 23 27 67 70 74 65 6c 2d 2d | irectives.`(rewrite...,#'gptel-- |
| 9a340 | 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 64 65 66 61 75 6c 74 29 29 29 0a 0a 28 64 | rewrite-directive-default)))..(d |
| 9a360 | 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 | efvar.gptel--rewrite-directive.. |
| 9a380 | 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 | .(or.(alist-get.'rewrite.gptel-d |
| 9a3a0 | 69 72 65 63 74 69 76 65 73 29 0a 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | irectives).......#'gptel--rewrit |
| 9a3c0 | 65 2d 64 69 72 65 63 74 69 76 65 2d 64 65 66 61 75 6c 74 29 0a 20 20 22 41 63 74 69 76 65 20 73 | e-directive-default)..."Active.s |
| 9a3e0 | 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 20 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e | ystem.message.for.rewrite.action |
| 9a400 | 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 69 73 20 66 6f 72 20 69 6e 74 65 72 6e 61 | s...This.variable.is.for.interna |
| 9a420 | 6c 20 75 73 65 20 6f 6e 6c 79 2e 20 20 54 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 20 72 65 | l.use.only...To.customize.the.re |
| 9a440 | 77 72 69 74 65 0a 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 73 65 74 20 61 20 73 79 73 74 | write.system.message,.set.a.syst |
| 9a460 | 65 6d 20 6d 65 73 73 61 67 65 20 28 6f 72 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 67 65 6e | em.message.(or.function.that.gen |
| 9a480 | 65 72 61 74 65 73 0a 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 29 20 61 73 20 74 68 | erates.the.system.message).as.th |
| 9a4a0 | 65 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 60 72 65 77 72 69 74 65 27 20 6b 65 79 20 69 6e 0a | e.value.of.the.`rewrite'.key.in. |
| 9a4c0 | 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 3a 0a 0a 20 28 73 65 74 66 20 28 61 6c 69 | `gptel-directives':...(setf.(ali |
| 9a4e0 | 73 74 2d 67 65 74 20 5c 5c 3d 27 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 | st-get.\\='rewrite.gptel-directi |
| 9a500 | 76 65 73 29 0a 20 20 20 20 20 20 20 23 5c 5c 3d 27 6d 79 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 | ves)........#\\='my-rewrite-mess |
| 9a520 | 61 67 65 2d 67 65 6e 65 72 61 74 6f 72 29 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 63 75 73 | age-generator)..You.can.also.cus |
| 9a540 | 74 6f 6d 69 7a 65 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 73 | tomize.`gptel-rewrite-directives |
| 9a560 | 2d 68 6f 6f 6b 27 20 74 6f 0a 64 79 6e 61 6d 69 63 61 6c 6c 79 20 69 6e 6a 65 63 74 20 61 20 72 | -hook'.to.dynamically.inject.a.r |
| 9a580 | 65 77 72 69 74 65 2d 73 70 65 63 69 66 69 63 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 22 | ewrite-specific.system.message." |
| 9a5a0 | 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 72 65 63 74 69 | )..(defun.gptel--rewrite-directi |
| 9a5c0 | 76 65 2d 64 65 66 61 75 6c 74 20 28 29 0a 20 20 22 47 65 6e 65 72 69 63 20 64 69 72 65 63 74 69 | ve-default.()..."Generic.directi |
| 9a5e0 | 76 65 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 20 6f 72 20 72 65 66 61 63 74 6f 72 69 6e 67 2e | ve.for.rewriting.or.refactoring. |
| 9a600 | 0a 0a 54 68 65 73 65 20 61 72 65 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 6e 6f 74 20 73 70 65 | ..These.are.instructions.not.spe |
| 9a620 | 63 69 66 69 63 20 74 6f 20 61 6e 79 20 70 61 72 74 69 63 75 6c 61 72 20 72 65 71 75 69 72 65 64 | cific.to.any.particular.required |
| 9a640 | 0a 63 68 61 6e 67 65 2e 0a 0a 54 68 65 20 72 65 74 75 72 6e 65 64 20 73 74 72 69 6e 67 20 69 73 | .change...The.returned.string.is |
| 9a660 | 20 69 6e 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 | .interpreted.as.the.system.messa |
| 9a680 | 67 65 20 66 6f 72 20 74 68 65 0a 72 65 77 72 69 74 65 20 72 65 71 75 65 73 74 2e 20 20 54 6f 20 | ge.for.the.rewrite.request...To. |
| 9a6a0 | 75 73 65 20 79 6f 75 72 20 6f 77 6e 2c 20 61 64 64 20 61 20 64 69 66 66 65 72 65 6e 74 20 64 69 | use.your.own,.add.a.different.di |
| 9a6c0 | 72 65 63 74 69 76 65 20 74 6f 0a 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2c 20 6f | rective.to.`gptel-directives',.o |
| 9a6e0 | 72 20 61 64 64 20 74 6f 20 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 | r.add.to.`gptel-rewrite-directiv |
| 9a700 | 65 73 2d 68 6f 6f 6b 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 6f 72 20 28 73 61 76 | es-hook',.which.see."...(or.(sav |
| 9a720 | 65 2d 6d 61 72 6b 2d 61 6e 64 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 72 75 | e-mark-and-excursion.........(ru |
| 9a740 | 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 2d 75 6e 74 69 6c 2d 73 75 63 63 65 73 73 0a 20 | n-hook-with-args-until-success.. |
| 9a760 | 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 | ........'gptel-rewrite-directive |
| 9a780 | 73 2d 68 6f 6f 6b 29 29 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6c 61 6e 67 20 28 64 6f 77 | s-hook)).......(let*.((lang.(dow |
| 9a7a0 | 6e 63 61 73 65 20 28 67 70 74 65 6c 2d 2d 73 74 72 69 70 2d 6d 6f 64 65 2d 73 75 66 66 69 78 20 | ncase.(gptel--strip-mode-suffix. |
| 9a7c0 | 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 74 69 | major-mode)))..............(arti |
| 9a7e0 | 63 6c 65 20 28 69 66 20 28 61 6e 64 20 6c 61 6e 67 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 | cle.(if.(and.lang.(not.(string-e |
| 9a800 | 6d 70 74 79 2d 70 20 6c 61 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mpty-p.lang))................... |
| 9a820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 28 61 72 65 66 20 6c 61 6e 67 20 30 29 | .............(memq.(aref.lang.0) |
| 9a840 | 20 27 28 3f 61 20 3f 65 20 3f 69 20 3f 6f 20 3f 75 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | .'(?a.?e.?i.?o.?u)))............ |
| 9a860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 22 20 22 61 22 29 29 29 0a 20 20 20 20 20 | ..............."an"."a")))...... |
| 9a880 | 20 20 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 6f 67 2d 6d 6f 64 | ...(if.(derived-mode-p.'prog-mod |
| 9a8a0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 | e).............(format.(concat." |
| 9a8c0 | 59 6f 75 20 61 72 65 20 25 73 20 25 73 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 20 22 0a 20 20 20 | You.are.%s.%s.programmer...".... |
| 9a8e0 | 20 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 46 6f 6c 6c 6f 77 | ........................."Follow |
| 9a900 | 20 6d 79 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 61 6e 64 20 72 65 66 61 63 74 6f 72 20 25 73 | .my.instructions.and.refactor.%s |
| 9a920 | 20 63 6f 64 65 20 49 20 70 72 6f 76 69 64 65 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .code.I.provide.\n"............. |
| 9a940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 20 47 65 6e 65 72 61 74 65 20 4f 4e 4c 59 | ................"-.Generate.ONLY |
| 9a960 | 20 25 73 20 63 6f 64 65 20 61 73 20 6f 75 74 70 75 74 2c 20 77 69 74 68 6f 75 74 20 22 0a 20 20 | .%s.code.as.output,.without."... |
| 9a980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 79 20 65 | .........................."any.e |
| 9a9a0 | 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 72 20 6d 61 72 6b 64 6f 77 6e 20 63 6f 64 65 20 66 65 6e 63 | xplanation.or.markdown.code.fenc |
| 9a9c0 | 65 73 2e 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 | es.\n".......................... |
| 9a9e0 | 20 20 20 22 2d 20 47 65 6e 65 72 61 74 65 20 63 6f 64 65 20 69 6e 20 66 75 6c 6c 2c 20 64 6f 20 | ..."-.Generate.code.in.full,.do. |
| 9aa00 | 6e 6f 74 20 61 62 62 72 65 76 69 61 74 65 20 6f 72 20 6f 6d 69 74 20 63 6f 64 65 2e 5c 6e 22 0a | not.abbreviate.or.omit.code.\n". |
| 9aa20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 20 44 | ............................"-.D |
| 9aa40 | 6f 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6c 61 72 69 66 69 63 61 74 | o.not.ask.for.further.clarificat |
| 9aa60 | 69 6f 6e 2c 20 61 6e 64 20 6d 61 6b 65 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ion,.and.make."................. |
| 9aa80 | 20 20 20 20 20 20 20 20 20 20 20 20 22 61 6e 79 20 61 73 73 75 6d 70 74 69 6f 6e 73 20 79 6f 75 | ............"any.assumptions.you |
| 9aaa0 | 20 6e 65 65 64 20 74 6f 20 66 6f 6c 6c 6f 77 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 2e 22 29 0a | .need.to.follow.instructions."). |
| 9aac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 74 69 63 6c 65 20 6c 61 6e 67 | ....................article.lang |
| 9aae0 | 20 6c 61 6e 67 20 6c 61 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 | .lang.lang)...........(concat... |
| 9ab00 | 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 61 6e | .........(if.(string-empty-p.lan |
| 9ab20 | 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 59 6f 75 20 61 72 65 20 61 6e 20 65 64 | g)................"You.are.an.ed |
| 9ab40 | 69 74 6f 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f 75 | itor."..............(format."You |
| 9ab60 | 20 61 72 65 20 25 73 20 25 73 20 65 64 69 74 6f 72 2e 22 20 61 72 74 69 63 6c 65 20 6c 61 6e 67 | .are.%s.%s.editor.".article.lang |
| 9ab80 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 20 46 6f 6c 6c 6f 77 20 6d 79 20 69 6e 73 74 72 | ))............"..Follow.my.instr |
| 9aba0 | 75 63 74 69 6f 6e 73 20 61 6e 64 20 69 6d 70 72 6f 76 65 20 6f 72 20 72 65 77 72 69 74 65 20 74 | uctions.and.improve.or.rewrite.t |
| 9abc0 | 68 65 20 74 65 78 74 20 49 20 70 72 6f 76 69 64 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 22 | he.text.I.provide."............" |
| 9abe0 | 20 20 47 65 6e 65 72 61 74 65 20 4f 4e 4c 59 20 74 68 65 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 | ..Generate.ONLY.the.replacement. |
| 9ac00 | 74 65 78 74 2c 22 0a 20 20 20 20 20 20 20 20 20 20 20 22 20 77 69 74 68 6f 75 74 20 61 6e 79 20 | text,"............".without.any. |
| 9ac20 | 65 78 70 6c 61 6e 61 74 69 6f 6e 20 6f 72 20 6d 61 72 6b 64 6f 77 6e 20 63 6f 64 65 20 66 65 6e | explanation.or.markdown.code.fen |
| 9ac40 | 63 65 73 2e 22 29 29 29 29 29 0a 0a 3b 3b 20 2a 20 48 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e | ces.")))))..;;.*.Helper.function |
| 9ac60 | 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6b 65 79 2d 68 65 6c | s..(defun.gptel--rewrite-key-hel |
| 9ac80 | 70 20 28 63 61 6c 6c 62 61 63 6b 29 0a 20 20 22 45 6c 64 6f 63 20 64 6f 63 75 6d 65 6e 74 61 74 | p.(callback)..."Eldoc.documentat |
| 9aca0 | 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 61 | ion.function.for.gptel.rewrite.a |
| 9acc0 | 63 74 69 6f 6e 73 2e 0a 0a 43 41 4c 4c 42 41 43 4b 20 69 73 20 73 75 70 70 6c 69 65 64 20 62 79 | ctions...CALLBACK.is.supplied.by |
| 9ace0 | 20 45 6c 64 6f 63 2c 20 73 65 65 0a 60 65 6c 64 6f 63 2d 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e | .Eldoc,.see.`eldoc-documentation |
| 9ad00 | 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 22 0a 20 20 28 77 68 65 6e 20 28 61 6e 64 20 67 70 74 65 6c | -functions'."...(when.(and.gptel |
| 9ad20 | 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 20 20 20 20 20 | --rewrite-overlays.............. |
| 9ad40 | 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 |
| 9ad60 | 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 61 6c 6c 62 | l-rewrite)).......(funcall.callb |
| 9ad80 | 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 28 73 75 62 73 | ack................(format.(subs |
| 9ada0 | 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 25 73 20 72 65 77 72 69 74 65 20 | titute-command-keys."%s.rewrite. |
| 9adc0 | 61 76 61 69 6c 61 62 6c 65 3a 20 61 63 63 65 70 74 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 72 | available:.accept.\\[gptel--rewr |
| 9ade0 | 69 74 65 2d 61 63 63 65 70 74 5d 2c 20 69 74 65 72 61 74 65 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 | ite-accept],.iterate.\\[gptel--r |
| 9ae00 | 65 77 72 69 74 65 2d 69 74 65 72 61 74 65 5d 2c 20 63 6c 65 61 72 20 5c 5c 5b 67 70 74 65 6c 2d | ewrite-iterate],.clear.\\[gptel- |
| 9ae20 | 2d 72 65 77 72 69 74 65 2d 72 65 6a 65 63 74 5d 2c 20 6d 65 72 67 65 20 5c 5c 5b 67 70 74 65 6c | -rewrite-reject],.merge.\\[gptel |
| 9ae40 | 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 5d 2c 20 64 69 66 66 20 5c 5c 5b 67 70 74 65 6c 2d | --rewrite-merge],.diff.\\[gptel- |
| 9ae60 | 2d 72 65 77 72 69 74 65 2d 64 69 66 66 5d 20 6f 72 20 65 64 69 66 66 20 5c 5c 5b 67 70 74 65 6c | -rewrite-diff].or.ediff.\\[gptel |
| 9ae80 | 2d 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | --rewrite-ediff]").............. |
| 9aea0 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 70 74 65 6c 2d 2d 6d 6f | ..........(propertize.(gptel--mo |
| 9aec0 | 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 20 27 66 61 63 65 20 27 6d 6f 64 | del-name.gptel-model).'face.'mod |
| 9aee0 | 65 2d 6c 69 6e 65 2d 65 6d 70 68 61 73 69 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | e-line-emphasis)))))..(defun.gpt |
| 9af00 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 6f 76 65 20 28 73 65 61 72 63 68 2d 66 75 6e 63 29 0a 20 | el--rewrite-move.(search-func).. |
| 9af20 | 20 22 4d 6f 76 65 20 64 69 72 65 63 74 69 6f 6e 61 6c 6c 79 20 74 6f 20 61 20 67 70 74 65 6c 20 | ."Move.directionally.to.a.gptel. |
| 9af40 | 72 65 77 72 69 74 65 20 6c 6f 63 61 74 69 6f 6e 20 75 73 69 6e 67 20 53 45 41 52 43 48 2d 46 55 | rewrite.location.using.SEARCH-FU |
| 9af60 | 4e 43 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6f 76 20 28 63 64 72 20 28 67 65 74 2d 63 68 61 72 | NC."...(let*.((ov.(cdr.(get-char |
| 9af80 | 2d 70 72 6f 70 65 72 74 79 2d 61 6e 64 2d 6f 76 65 72 6c 61 79 20 28 70 6f 69 6e 74 29 20 27 67 | -property-and-overlay.(point).'g |
| 9afa0 | 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 28 70 74 20 28 73 61 | ptel-rewrite)))..........(pt.(sa |
| 9afc0 | 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 28 69 66 20 | ve-excursion................(if. |
| 9afe0 | 6f 76 0a 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 | ov....................(goto-char |
| 9b000 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 | .....................(funcall.se |
| 9b020 | 61 72 63 68 2d 66 75 6e 63 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 27 67 70 | arch-func.(overlay-start.ov).'gp |
| 9b040 | 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | tel-rewrite))..................( |
| 9b060 | 67 6f 74 6f 2d 63 68 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 | goto-char...................(max |
| 9b080 | 20 28 31 2d 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 | .(1-.(funcall.search-func.(point |
| 9b0a0 | 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).'gptel-rewrite)).............. |
| 9b0c0 | 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))))........ |
| 9b0e0 | 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 75 6e 63 20 28 70 6f | ........(funcall.search-func.(po |
| 9b100 | 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 | int).'gptel-rewrite)))).....(if. |
| 9b120 | 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 70 74 20 27 67 70 74 65 6c 2d 72 65 77 | (get-char-property.pt.'gptel-rew |
| 9b140 | 72 69 74 65 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 | rite).........(goto-char.pt).... |
| 9b160 | 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 66 75 72 74 68 65 72 20 72 65 77 72 69 | ...(user-error."No.further.rewri |
| 9b180 | 74 65 20 72 65 67 69 6f 6e 73 21 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | te.regions!"))))..(defun.gptel-- |
| 9b1a0 | 72 65 77 72 69 74 65 2d 6e 65 78 74 20 28 29 0a 20 20 22 47 6f 20 74 6f 20 6e 65 78 74 20 70 65 | rewrite-next.()..."Go.to.next.pe |
| 9b1c0 | 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 77 72 69 74 65 20 69 6e 20 62 75 66 66 65 72 2c 20 69 66 20 | nding.LLM.rewrite.in.buffer,.if. |
| 9b1e0 | 6f 6e 65 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 | one.exists."...(interactive)...( |
| 9b200 | 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 6f 76 65 20 23 27 6e 65 78 74 2d 73 69 6e 67 6c | gptel--rewrite-move.#'next-singl |
| 9b220 | 65 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 2d 63 68 61 6e 67 65 29 29 0a 0a 28 64 65 66 75 6e | e-char-property-change))..(defun |
| 9b240 | 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 70 72 65 76 69 6f 75 73 20 28 29 0a 20 20 22 47 | .gptel--rewrite-previous.()..."G |
| 9b260 | 6f 20 74 6f 20 70 72 65 76 69 6f 75 73 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 77 72 69 74 | o.to.previous.pending.LLM.rewrit |
| 9b280 | 65 20 69 6e 20 62 75 66 66 65 72 2c 20 69 66 20 6f 6e 65 20 65 78 69 73 74 73 2e 22 0a 20 20 28 | e.in.buffer,.if.one.exists."...( |
| 9b2a0 | 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 6d | interactive)...(gptel--rewrite-m |
| 9b2c0 | 6f 76 65 20 23 27 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 63 68 61 72 2d 70 72 6f 70 65 | ove.#'previous-single-char-prope |
| 9b2e0 | 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 2d 2d 72 65 77 72 | rty-change))..(defun.gptel--rewr |
| 9b300 | 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 | ite-overlay-at.(&optional.pt)... |
| 9b320 | 22 43 68 65 63 6b 20 66 6f 72 20 61 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 20 6f 76 65 72 6c | "Check.for.a.gptel.rewrite.overl |
| 9b340 | 61 79 20 61 74 20 50 54 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 0a 49 66 20 6e 6f 20 73 | ay.at.PT.and.return.it...If.no.s |
| 9b360 | 75 69 74 61 62 6c 65 20 6f 76 65 72 6c 61 79 20 69 73 20 66 6f 75 6e 64 2c 20 72 61 69 73 65 20 | uitable.overlay.is.found,.raise. |
| 9b380 | 61 6e 20 65 72 72 6f 72 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 | an.error."...(pcase-let.((`(,res |
| 9b3a0 | 70 6f 6e 73 65 20 2e 20 2c 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 | ponse...,ov)................(get |
| 9b3c0 | 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 20 28 6f 72 20 70 | -char-property-and-overlay.(or.p |
| 9b3e0 | 74 20 28 70 6f 69 6e 74 29 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 | t.(point)).'gptel-rewrite))..... |
| 9b400 | 20 20 20 20 20 20 20 20 20 20 28 64 69 66 66 2d 65 6e 74 69 72 65 2d 62 75 66 66 65 72 73 20 6e | ..........(diff-entire-buffers.n |
| 9b420 | 69 6c 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6f 76 20 28 75 73 65 72 2d 65 72 72 6f 72 20 | il)).....(unless.ov.(user-error. |
| 9b440 | 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 72 65 67 69 6f 6e 20 62 65 69 6e 67 20 72 65 77 | "Could.not.find.region.being.rew |
| 9b460 | 72 69 74 74 65 6e 2e 22 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 72 65 73 70 6f 6e 73 65 20 | ritten.")).....(unless.response. |
| 9b480 | 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 4c 4c 4d 20 6f 75 74 70 75 74 20 61 76 61 69 6c | (user-error."No.LLM.output.avail |
| 9b4a0 | 61 62 6c 65 20 66 6f 72 20 74 68 69 73 20 72 65 77 72 69 74 65 2e 22 29 29 0a 20 20 20 20 6f 76 | able.for.this.rewrite.")).....ov |
| 9b4c0 | 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 70 72 65 70 61 72 | ))..(defun.gptel--rewrite-prepar |
| 9b4e0 | 65 2d 62 75 66 66 65 72 20 28 6f 76 73 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 | e-buffer.(ovs.&optional.buf)..." |
| 9b500 | 50 72 65 70 61 72 65 20 6e 65 77 20 62 75 66 66 65 72 20 77 69 74 68 20 4c 4c 4d 20 63 68 61 6e | Prepare.new.buffer.with.LLM.chan |
| 9b520 | 67 65 73 20 61 70 70 6c 69 65 64 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 2e 0a 0a 54 68 69 73 | ges.applied.and.return.it...This |
| 9b540 | 20 69 73 20 75 73 65 64 20 66 6f 72 20 28 65 29 64 69 66 66 20 70 75 72 70 6f 73 65 73 2e 0a 0a | .is.used.for.(e)diff.purposes... |
| 9b560 | 52 45 53 50 4f 4e 53 45 20 69 73 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2e 20 20 4f | RESPONSE.is.the.LLM.response...O |
| 9b580 | 56 53 20 61 72 65 20 74 68 65 20 6f 76 65 72 6c 61 79 73 20 73 70 65 63 69 66 79 69 6e 67 0a 74 | VS.are.the.overlays.specifying.t |
| 9b5a0 | 68 65 20 63 68 61 6e 67 65 64 20 72 65 67 69 6f 6e 73 2e 20 42 55 46 20 69 73 20 74 68 65 20 28 | he.changed.regions..BUF.is.the.( |
| 9b5c0 | 63 75 72 72 65 6e 74 29 20 62 75 66 66 65 72 2e 22 0a 20 20 28 73 65 74 71 20 62 75 66 20 28 6f | current).buffer."...(setq.buf.(o |
| 9b5e0 | 72 20 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 | r.buf.(overlay-buffer.(or.(car-s |
| 9b600 | 61 66 65 20 6f 76 73 29 20 6f 76 73 29 29 29 29 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | afe.ovs).ovs))))...(with-current |
| 9b620 | 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 28 6c 65 74 20 28 28 70 6d 69 6e 20 28 70 6f 69 | -buffer.buf.....(let.((pmin.(poi |
| 9b640 | 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 6d 61 78 20 28 70 6f 69 6e 74 2d | nt-min))...........(pmax.(point- |
| 9b660 | 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 74 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 | max))...........(pt...(point)).. |
| 9b680 | 20 20 20 20 20 20 20 20 20 3b 3b 20 28 6d 6f 64 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 | .........;;.(mode.major-mode)... |
| 9b6a0 | 20 20 20 20 20 20 20 20 28 6e 65 77 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 | ........(newbuf.(get-buffer-crea |
| 9b6c0 | 74 65 20 22 2a 67 70 74 65 6c 2d 64 69 66 66 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 | te."*gptel-diff*"))...........(i |
| 9b6e0 | 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 | nhibit-read-only.t)...........(i |
| 9b700 | 6e 68 69 62 69 74 2d 6d 65 73 73 61 67 65 20 74 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 72 | nhibit-message.t)).......(save-r |
| 9b720 | 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 | estriction.........(widen)...... |
| 9b740 | 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6e 65 77 62 75 66 0a 20 | ...(with-current-buffer.newbuf.. |
| 9b760 | 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 | .........(erase-buffer)......... |
| 9b780 | 20 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 75 66 29 29 | ..(insert-buffer-substring.buf)) |
| 9b7a0 | 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 6e 65 77 | ).......(with-current-buffer.new |
| 9b7c0 | 62 75 66 0a 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 70 6d | buf.........(narrow-to-region.pm |
| 9b7e0 | 69 6e 20 70 6d 61 78 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 74 29 0a | in.pmax).........(goto-char.pt). |
| 9b800 | 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 6d 6f 73 74 6c 79 20 6a 75 73 74 20 77 61 6e 74 20 66 | ........;;.We.mostly.just.want.f |
| 9b820 | 6f 6e 74 2d 6c 6f 63 6b 69 6e 67 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 64 65 6c 61 79 2d 6d 6f | ont-locking.........;;.(delay-mo |
| 9b840 | 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 | de-hooks.(funcall.mode))........ |
| 9b860 | 20 3b 3b 20 41 70 70 6c 79 20 74 68 65 20 63 68 61 6e 67 65 73 20 74 6f 20 74 68 65 20 6e 65 77 | .;;.Apply.the.changes.to.the.new |
| 9b880 | 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a | .buffer.........(save-excursion. |
| 9b8a0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 | ..........(gptel--rewrite-accept |
| 9b8c0 | 20 6f 76 73 20 6e 65 77 62 75 66 29 29 29 0a 20 20 20 20 20 20 6e 65 77 62 75 66 29 29 29 0a 0a | .ovs.newbuf))).......newbuf))).. |
| 9b8e0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 72 65 61 64 2d 6d 65 73 73 61 | (defun.gptel--rewrite-read-messa |
| 9b900 | 67 65 20 28 70 72 6f 6d 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 68 69 73 74 6f 72 79 29 0a | ge.(prompt.&optional._.history). |
| 9b920 | 20 20 22 52 65 61 64 20 61 20 72 65 77 72 69 74 65 20 6d 65 73 73 61 67 65 20 66 72 6f 6d 20 74 | .."Read.a.rewrite.message.from.t |
| 9b940 | 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 77 69 74 68 20 63 75 73 74 6f 6d 20 6b 65 79 62 69 6e | he.minibuffer.with.custom.keybin |
| 9b960 | 64 69 6e 67 73 20 66 6f 72 0a 63 79 63 6c 69 6e 67 2c 20 65 64 69 74 69 6e 67 2c 20 61 6e 64 20 | dings.for.cycling,.editing,.and. |
| 9b980 | 73 75 62 6d 69 74 74 69 6e 67 20 74 68 65 20 67 70 74 65 6c 20 72 65 77 72 69 74 65 2e 0a 0a 50 | submitting.the.gptel.rewrite...P |
| 9b9a0 | 52 4f 4d 50 54 20 69 73 20 74 68 65 20 70 72 6f 6d 70 74 20 73 74 72 69 6e 67 20 74 6f 20 64 69 | ROMPT.is.the.prompt.string.to.di |
| 9b9c0 | 73 70 6c 61 79 2e 20 20 48 49 53 54 4f 52 59 2c 20 69 66 20 70 72 6f 76 69 64 65 64 2c 20 69 73 | splay...HISTORY,.if.provided,.is |
| 9b9e0 | 20 74 68 65 0a 69 6e 70 75 74 20 68 69 73 74 6f 72 79 20 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 | .the.input.history.list."...(let |
| 9ba00 | 2a 20 28 28 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 | *.((rewrite-directive........... |
| 9ba20 | 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 |
| 9ba40 | 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 20 27 72 61 77 29 | e.gptel--rewrite-directive.'raw) |
| 9ba60 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 62 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 | ))..........(cb.(current-buffer) |
| 9ba80 | 29 0a 20 20 20 20 20 20 20 20 20 28 63 79 63 6c 65 2d 70 72 65 66 69 78 20 28 6c 61 6d 62 64 61 | )..........(cycle-prefix.(lambda |
| 9baa0 | 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)............... |
| 9bac0 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 | ...........(gptel--read-with-pre |
| 9bae0 | 66 69 78 20 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 | fix.rewrite-directive).......... |
| 9bb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 29 20 28 67 6f 74 | ................(push-mark).(got |
| 9bb20 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | o-char.(point-max))............. |
| 9bb40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 0a 20 | .............(activate-mark))).. |
| 9bb60 | 20 20 20 20 20 20 20 20 28 73 65 74 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 0a 20 20 20 | ........(set-rewrite-message.... |
| 9bb80 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | .......(lambda.().............(l |
| 9bba0 | 65 74 20 28 28 6d 65 73 73 61 67 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e | et.((message.(buffer-substring-n |
| 9bbc0 | 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 20 20 | o-properties.................... |
| 9bbe0 | 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 | .........(minibuffer-prompt-end) |
| 9bc00 | 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | .(point-max))))...............(w |
| 9bc20 | 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 63 62 20 28 73 65 74 71 20 67 70 74 65 | ith-current-buffer.cb.(setq.gpte |
| 9bc40 | 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 6d 65 73 73 61 67 65 29 29 0a 20 20 20 | l--rewrite-message.message)).... |
| 9bc60 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 27 67 70 74 | ...........(setf.(alist-get.'gpt |
| 9bc80 | 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 72 61 20 74 72 61 6e 73 69 65 6e | el--infix-rewrite-extra.transien |
| 9bca0 | 74 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 28 | t-history).....................( |
| 9bcc0 | 64 65 6c 65 74 65 2d 64 75 70 73 20 28 63 6f 6e 73 20 6d 65 73 73 61 67 65 20 74 72 61 6e 73 69 | delete-dups.(cons.message.transi |
| 9bce0 | 65 6e 74 2d 2d 68 69 73 74 6f 72 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 | ent--history))))))..........(sta |
| 9bd00 | 72 74 2d 72 65 77 72 69 74 65 2d 6d 61 79 62 65 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 | rt-rewrite-maybe...........(lamb |
| 9bd20 | 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | da.().(interactive)............. |
| 9bd40 | 28 69 66 20 74 72 61 6e 73 69 65 6e 74 2d 2d 70 72 65 66 69 78 20 20 20 20 3b 43 61 6c 6c 65 64 | (if.transient--prefix....;Called |
| 9bd60 | 20 66 72 6f 6d 20 74 72 61 6e 73 69 65 6e 74 3f 20 44 6f 6e 27 74 20 73 74 61 72 74 20 72 65 77 | .from.transient?.Don't.start.rew |
| 9bd80 | 72 69 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d | rite.................(run-at-tim |
| 9bda0 | 65 20 30 20 6e 69 6c 20 23 27 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c | e.0.nil.#'transient-setup.'gptel |
| 9bdc0 | 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d | -rewrite)...............(run-at- |
| 9bde0 | 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 | time.0.nil.#'gptel--suffix-rewri |
| 9be00 | 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 29 29 0a 20 20 20 20 | te.gptel--rewrite-message))..... |
| 9be20 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 69 6e 69 62 75 66 66 65 72 70 29 0a 20 20 20 20 | ........(when.(minibufferp)..... |
| 9be40 | 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 2d 72 65 77 72 69 74 65 2d 6d | ..........(funcall.set-rewrite-m |
| 9be60 | 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 | essage)...............(minibuffe |
| 9be80 | 72 2d 71 75 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 29 0a 20 20 20 20 20 20 | r-quit-recursive-edit))))....... |
| 9bea0 | 20 20 20 28 73 74 61 72 74 2d 74 72 61 6e 73 69 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 28 6c | ...(start-transient...........(l |
| 9bec0 | 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).......... |
| 9bee0 | 20 20 20 28 72 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 | ...(run-at-time.0.nil.#'transien |
| 9bf00 | 74 2d 73 65 74 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 | t-setup.'gptel-rewrite)......... |
| 9bf20 | 20 20 20 20 28 77 68 65 6e 20 28 6d 69 6e 69 62 75 66 66 65 72 70 29 0a 20 20 20 20 20 20 20 20 | ....(when.(minibufferp)......... |
| 9bf40 | 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 74 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 | ......(funcall.set-rewrite-messa |
| 9bf60 | 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 71 75 | ge)...............(minibuffer-qu |
| 9bf80 | 69 74 2d 72 65 63 75 72 73 69 76 65 2d 65 64 69 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 | it-recursive-edit))))..........( |
| 9bfa0 | 65 64 69 74 2d 69 6e 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 | edit-in-buffer...........(lambda |
| 9bfc0 | 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 28 6c | .().(interactive).............(l |
| 9bfe0 | 65 74 20 28 28 6f 66 66 73 65 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6d 69 6e 69 62 75 66 66 | et.((offset.(-.(point).(minibuff |
| 9c000 | 65 72 2d 70 72 6f 6d 70 74 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er-prompt-end))))............... |
| 9c020 | 28 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 72 | (gptel--edit-directive.'gptel--r |
| 9c040 | 65 77 72 69 74 65 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 3a | ewrite-message.................: |
| 9c060 | 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 74 69 61 | prompt.rewrite-directive.:initia |
| 9c080 | 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 20 20 20 | l.(minibuffer-contents)......... |
| 9c0a0 | 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 63 62 20 3a 73 65 74 75 70 20 28 6c 61 6d 62 64 | ........:buffer.cb.:setup.(lambd |
| 9c0c0 | 61 20 28 29 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 66 6f 72 77 61 72 64 2d 63 68 61 | a.().(ignore-errors.(forward-cha |
| 9c0e0 | 72 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6c | r.offset))).................:cal |
| 9c100 | 6c 62 61 63 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 6d | lback.................(lambda.(m |
| 9c120 | 73 67 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 6d 73 67 0a | sg)...................(when.msg. |
| 9c140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 | ....................(run-at-time |
| 9c160 | 20 30 20 6e 69 6c 20 23 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 29 0a | .0.nil.#'gptel--suffix-rewrite). |
| 9c180 | 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 62 75 66 66 65 | ....................(push.(buffe |
| 9c1a0 | 72 2d 6c 6f 63 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 | r-local-value.'gptel--rewrite-me |
| 9c1c0 | 73 73 61 67 65 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 | ssage.cb)....................... |
| 9c1e0 | 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 72 65 77 | ....(alist-get.'gptel--infix-rew |
| 9c200 | 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 29 29 0a | rite-extra.transient-history))). |
| 9c220 | 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 6d 69 6e 69 62 75 66 | ..................(when.(minibuf |
| 9c240 | 66 65 72 70 29 20 28 6d 69 6e 69 62 75 66 66 65 72 2d 71 75 69 74 2d 72 65 63 75 72 73 69 76 65 | ferp).(minibuffer-quit-recursive |
| 9c260 | 2d 65 64 69 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 62 75 66 66 65 | -edit)))))))..........(minibuffe |
| 9c280 | 72 2d 6c 6f 63 61 6c 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 63 6f 6d 70 | r-local-map...........(make-comp |
| 9c2a0 | 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...... |
| 9c2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 54 41 | ............................."TA |
| 9c2e0 | 42 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 | B".cycle-prefix."<tab>".cycle-pr |
| 9c300 | 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | efix............................ |
| 9c320 | 20 20 20 20 20 20 20 22 43 2d 63 20 43 2d 65 22 20 65 64 69 74 2d 69 6e 2d 62 75 66 66 65 72 0a | ......."C-c.C-e".edit-in-buffer. |
| 9c340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9c360 | 20 20 22 3c 72 65 6d 61 70 3e 20 3c 65 78 69 74 2d 6d 69 6e 69 62 75 66 66 65 72 3e 22 20 73 74 | .."<remap>.<exit-minibuffer>".st |
| 9c380 | 61 72 74 2d 72 65 77 72 69 74 65 2d 6d 61 79 62 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | art-rewrite-maybe............... |
| 9c3a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4d 2d 52 45 54 22 20 73 74 61 72 | ...................."M-RET".star |
| 9c3c0 | 74 2d 74 72 61 6e 73 69 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-transient).................... |
| 9c3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 69 6e 69 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 6d 61 | .............minibuffer-local-ma |
| 9c400 | 70 29 29 29 0a 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 | p))).....(minibuffer-with-setup- |
| 9c420 | 68 6f 6f 6b 20 63 79 63 6c 65 2d 70 72 65 66 69 78 0a 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 | hook.cycle-prefix.......(read-st |
| 9c440 | 72 69 6e 67 0a 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 28 6f 72 20 67 70 74 65 6c 2d 2d 72 65 | ring........prompt.(or.gptel--re |
| 9c460 | 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 22 52 65 77 72 69 74 65 3a 20 22 29 0a 20 20 20 20 20 | write-message."Rewrite:.")...... |
| 9c480 | 20 20 68 69 73 74 6f 72 79 29 29 29 29 0a 0a 3b 3b 20 2a 20 52 65 77 72 69 74 65 20 61 63 74 69 | ..history))))..;;.*.Rewrite.acti |
| 9c4a0 | 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 | on.functions..(defun.gptel--rewr |
| 9c4c0 | 69 74 65 2d 72 65 6a 65 63 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 29 0a 20 20 22 43 6c | ite-reject.(&optional.ovs)..."Cl |
| 9c4e0 | 65 61 72 20 70 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 | ear.pending.LLM.responses.in.OVS |
| 9c500 | 20 6f 72 20 61 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 | .or.at.point."...(interactive.(l |
| 9c520 | 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 29 | ist.(gptel--rewrite-overlay-at)) |
| 9c540 | 29 0a 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 | )...(dolist.(ov.(ensure-list.ovs |
| 9c560 | 29 29 0a 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 | )).....(setq.gptel--rewrite-over |
| 9c580 | 6c 61 79 73 20 28 64 65 6c 71 20 6f 76 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 | lays.(delq.ov.gptel--rewrite-ove |
| 9c5a0 | 72 6c 61 79 73 29 29 0a 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 | rlays)).....(delete-overlay.ov)) |
| 9c5c0 | 0a 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 | ...(unless.gptel--rewrite-overla |
| 9c5e0 | 79 73 0a 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 6c 64 6f 63 2d 64 6f 63 75 6d | ys.....(remove-hook.'eldoc-docum |
| 9c600 | 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 | entation-functions.'gptel--rewri |
| 9c620 | 74 65 2d 6b 65 79 2d 68 65 6c 70 20 27 6c 6f 63 61 6c 29 29 0a 20 20 28 6d 65 73 73 61 67 65 20 | te-key-help.'local))...(message. |
| 9c640 | 22 43 6c 65 61 72 65 64 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 28 73 29 | "Cleared.pending.LLM.response(s) |
| 9c660 | 2e 22 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 61 63 63 65 | ."))..(defun.gptel--rewrite-acce |
| 9c680 | 70 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 20 62 75 66 29 0a 20 20 22 41 70 70 6c 79 20 | pt.(&optional.ovs.buf)..."Apply. |
| 9c6a0 | 70 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 | pending.LLM.responses.in.OVS.or. |
| 9c6c0 | 61 74 20 70 6f 69 6e 74 2e 0a 0a 42 55 46 20 69 73 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 | at.point...BUF.is.the.buffer.to. |
| 9c6e0 | 6d 6f 64 69 66 79 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 6f 76 65 72 6c 61 79 20 | modify,.defaults.to.the.overlay. |
| 9c700 | 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 67 | buffer."...(interactive.(list.(g |
| 9c720 | 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 77 | ptel--rewrite-overlay-at)))...(w |
| 9c740 | 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 65 | hen-let*.((ov-buf.(overlay-buffe |
| 9c760 | 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 20 | r.(or.(car-safe.ovs).ovs)))..... |
| 9c780 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 6f 72 20 62 75 66 20 6f 76 2d 62 75 66 29 29 0a | ..........(buf.(or.buf.ov-buf)). |
| 9c7a0 | 20 20 20 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 62 75 | ..............((buffer-live-p.bu |
| 9c7c0 | 66 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6f 76 | f))).....(with-current-buffer.ov |
| 9c7e0 | 2d 62 75 66 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 6f 76 20 69 6e 20 28 65 | -buf.......(cl-loop.for.ov.in.(e |
| 9c800 | 6e 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 | nsure-list.ovs)................f |
| 9c820 | 6f 72 20 6f 76 2d 62 65 67 20 3d 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 0a 20 | or.ov-beg.=.(overlay-start.ov).. |
| 9c840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 6f 76 2d 65 6e 64 20 3d 20 28 6f 76 65 72 | ..............for.ov-end.=.(over |
| 9c860 | 6c 61 79 2d 65 6e 64 20 6f 76 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 | lay-end.ov)................for.r |
| 9c880 | 65 73 70 6f 6e 73 65 20 3d 20 28 6f 76 65 72 6c 61 79 2d 67 65 74 20 6f 76 20 27 67 70 74 65 6c | esponse.=.(overlay-get.ov.'gptel |
| 9c8a0 | 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 64 6f 20 28 6f 76 65 | -rewrite)................do.(ove |
| 9c8c0 | 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 6e 69 6c 29 0a | rlay-put.ov.'before-string.nil). |
| 9c8e0 | 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 75 66 | ...............(with-current-buf |
| 9c900 | 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 28 67 6f 74 6f 2d 63 | fer.buf..................(goto-c |
| 9c920 | 68 61 72 20 6f 76 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 | har.ov-beg)..................(de |
| 9c940 | 6c 65 74 65 2d 72 65 67 69 6f 6e 20 6f 76 2d 62 65 67 20 6f 76 2d 65 6e 64 29 0a 20 20 20 20 20 | lete-region.ov-beg.ov-end)...... |
| 9c960 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 29 29 29 29 | ............(insert.response)))) |
| 9c980 | 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 52 65 70 6c 61 63 65 64 20 72 65 67 69 6f 6e 28 73 | .....(message."Replaced.region(s |
| 9c9a0 | 29 20 77 69 74 68 20 4c 4c 4d 20 6f 75 74 70 75 74 20 69 6e 20 62 75 66 66 65 72 3a 20 25 73 2e | ).with.LLM.output.in.buffer:.%s. |
| 9c9c0 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6f 76 2d 62 | "..............(buffer-name.ov-b |
| 9c9e0 | 75 66 29 29 29 29 0a 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | uf))))..(defalias.'gptel--rewrit |
| 9ca00 | 65 2d 69 74 65 72 61 74 65 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 0a 20 20 22 49 74 65 72 | e-iterate.'gptel-rewrite..."Iter |
| 9ca20 | 61 74 65 20 6f 6e 20 70 65 6e 64 69 6e 67 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 | ate.on.pending.LLM.response.at.p |
| 9ca40 | 6f 69 6e 74 2e 22 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 | oint.")..(defun.gptel--rewrite-d |
| 9ca60 | 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 73 20 73 77 69 74 63 68 65 73 29 0a 20 20 22 | iff.(&optional.ovs.switches)..." |
| 9ca80 | 44 69 66 66 20 70 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 | Diff.pending.LLM.responses.in.OV |
| 9caa0 | 53 20 6f 72 20 61 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 | S.or.at.point."...(interactive.( |
| 9cac0 | 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 2d 61 74 29 | list.(gptel--rewrite-overlay-at) |
| 9cae0 | 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 65 72 6c 61 | ))...(when-let*.((ov-buf.(overla |
| 9cb00 | 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 6f 76 73 29 | y-buffer.(or.(car-safe.ovs).ovs) |
| 9cb20 | 29 29 0a 20 20 20 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 | ))...............((buffer-live-p |
| 9cb40 | 20 6f 76 2d 62 75 66 29 29 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 64 69 66 66 29 0a 20 | .ov-buf))).....(require.'diff).. |
| 9cb60 | 20 20 20 28 6c 65 74 2a 20 28 28 6e 65 77 62 75 66 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | ...(let*.((newbuf.(gptel--rewrit |
| 9cb80 | 65 2d 70 72 65 70 61 72 65 2d 62 75 66 66 65 72 20 6f 76 73 29 29 0a 20 20 20 20 20 20 20 20 20 | e-prepare-buffer.ovs)).......... |
| 9cba0 | 20 20 28 64 69 66 66 2d 62 75 66 20 28 64 69 66 66 2d 6e 6f 2d 73 65 6c 65 63 74 20 6f 76 2d 62 | ..(diff-buf.(diff-no-select.ov-b |
| 9cbc0 | 75 66 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 | uf.newbuf.switches))).......(wit |
| 9cbe0 | 68 2d 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 | h-current-buffer.diff-buf....... |
| 9cc00 | 20 20 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 | ..(setq-local.diff-jump-to-old-f |
| 9cc20 | 69 6c 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 | ile.t)).......(display-buffer.di |
| 9cc40 | 66 66 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 | ff-buf))))..(defun.gptel--rewrit |
| 9cc60 | 65 2d 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 | e-ediff.(&optional.ovs)..."Ediff |
| 9cc80 | 20 70 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 | .pending.LLM.responses.in.OVS.or |
| 9cca0 | 20 61 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 | .at.point."...(interactive.(list |
| 9ccc0 | 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 2d 61 74 29 29 29 0a 20 | .(gptel--rewrite-overlay-at))).. |
| 9cce0 | 20 28 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 | .(when-let*.((ov-buf.(overlay-bu |
| 9cd00 | 66 66 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 | ffer.(or.(car-safe.ovs).ovs))).. |
| 9cd20 | 20 20 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 | .............((buffer-live-p.ov- |
| 9cd40 | 62 75 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 | buf))).....(letrec.((newbuf.(gpt |
| 9cd60 | 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 29 | el--rewrite-prepare-buffer.ovs)) |
| 9cd80 | 0a 20 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 | ..............(cwc.(current-wind |
| 9cda0 | 6f 77 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 | ow-configuration)).............. |
| 9cdc0 | 28 68 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 | (hideshow...............(lambda. |
| 9cde0 | 28 26 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 | (&optional.restore)............. |
| 9ce00 | 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6f 76 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 20 6f 76 73 | ....(dolist.(ov.(ensure-list.ovs |
| 9ce20 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | ))...................(when-let*. |
| 9ce40 | 28 28 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 | ((overlay-buffer.ov))........... |
| 9ce60 | 20 20 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 | ..........(let.((disp.(overlay-g |
| 9ce80 | 65 74 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 | et.ov.'display))................ |
| 9cea0 | 20 20 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 | ...........(stored.(overlay-get. |
| 9cec0 | 6f 76 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 | ov.'gptel--ediff)))............. |
| 9cee0 | 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 66 61 63 65 20 | ..........(overlay-put.ov.'face. |
| 9cf00 | 28 61 6e 64 20 72 65 73 74 6f 72 65 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 68 69 67 68 | (and.restore.'gptel-rewrite-high |
| 9cf20 | 6c 69 67 68 74 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | light-face)).................... |
| 9cf40 | 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 20 28 61 6e 64 | ...(overlay-put.ov.'display.(and |
| 9cf60 | 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 20 20 20 20 20 | .restore.stored))............... |
| 9cf80 | 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 2d | ........(overlay-put.ov.'gptel-- |
| 9cfa0 | 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 29 29 29 29 29 | ediff.(unless.restore.disp)))))) |
| 9cfc0 | 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 66 2d 72 65 73 | )..............(gptel--ediff-res |
| 9cfe0 | 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 28 29 0a 20 20 | tore...............(lambda.()... |
| 9d000 | 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 2d 63 6f 6e 66 | ..............(when.(window-conf |
| 9d020 | 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 20 20 20 20 20 | iguration-p.cwc)................ |
| 9d040 | 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 6e 20 63 77 63 | ...(set-window-configuration.cwc |
| 9d060 | 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 20 68 69 64 65 | )).................(funcall.hide |
| 9d080 | 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 20 20 20 20 28 | show.'restore).................( |
| 9d0a0 | 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 | remove-hook.'ediff-quit-hook.gpt |
| 9d0c0 | 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e | el--ediff-restore)))).......(fun |
| 9d0e0 | 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 6f 6f 6b 20 27 | call.hideshow).......(add-hook.' |
| 9d100 | 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 | ediff-quit-hook.gptel--ediff-res |
| 9d120 | 74 6f 72 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 64 69 66 66 2d 77 69 6e 64 6f 77 2d | tore).......(let.((ediff-window- |
| 9d140 | 73 65 74 75 70 2d 66 75 6e 63 74 69 6f 6e 20 23 27 65 64 69 66 66 2d 73 65 74 75 70 2d 77 69 6e | setup-function.#'ediff-setup-win |
| 9d160 | 64 6f 77 73 2d 70 6c 61 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 65 64 69 66 66 2d 73 | dows-plain).............(ediff-s |
| 9d180 | 70 6c 69 74 2d 77 69 6e 64 6f 77 2d 66 75 6e 63 74 69 6f 6e 20 23 27 73 70 6c 69 74 2d 77 69 6e | plit-window-function.#'split-win |
| 9d1a0 | 64 6f 77 2d 68 6f 72 69 7a 6f 6e 74 61 6c 6c 79 29 29 0a 20 20 20 20 20 20 20 20 28 65 64 69 66 | dow-horizontally)).........(edif |
| 9d1c0 | 66 2d 62 75 66 66 65 72 73 20 6f 76 2d 62 75 66 20 6e 65 77 62 75 66 29 29 29 29 29 0a 0a 28 64 | f-buffers.ov-buf.newbuf)))))..(d |
| 9d1e0 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 2d 67 69 74 20 28 62 | efun.gptel--rewrite-merge-git.(b |
| 9d200 | 65 67 20 65 6e 64 20 6e 65 77 2d 73 74 72 29 0a 20 20 22 50 72 6f 64 75 63 65 20 61 20 6d 65 72 | eg.end.new-str)..."Produce.a.mer |
| 9d220 | 67 65 20 63 6f 6e 66 6c 69 63 74 20 72 65 67 69 6f 6e 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 | ge.conflict.region.between.BEG.a |
| 9d240 | 6e 64 20 45 4e 44 2e 0a 0a 4d 65 72 67 65 20 74 68 65 20 72 65 67 69 6f 6e 20 77 69 74 68 20 4e | nd.END...Merge.the.region.with.N |
| 9d260 | 45 57 2d 53 54 52 20 75 73 69 6e 67 20 67 69 74 20 6d 65 72 67 65 2d 66 69 6c 65 2e 22 0a 20 20 | EW-STR.using.git.merge-file."... |
| 9d280 | 28 6c 65 74 20 28 28 6f 72 69 67 69 6e 61 6c 2d 74 65 6d 70 2d 66 69 6c 65 20 28 6d 61 6b 65 2d | (let.((original-temp-file.(make- |
| 9d2a0 | 74 65 6d 70 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 6d 65 72 67 65 2d 22 29 29 0a 20 20 20 20 20 | temp-file."gptel-merge-"))...... |
| 9d2c0 | 20 20 20 28 65 6d 70 74 79 2d 74 65 6d 70 2d 66 69 6c 65 20 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 | ...(empty-temp-file.(make-temp-f |
| 9d2e0 | 69 6c 65 20 22 67 70 74 65 6c 2d 6d 65 72 67 65 2d 22 29 29 20 3b 20 75 73 65 20 2f 64 65 76 2f | ile."gptel-merge-")).;.use./dev/ |
| 9d300 | 6e 75 6c 6c 3f 20 28 77 69 6e 64 6f 77 73 3f 29 0a 20 20 20 20 20 20 20 20 28 6e 65 77 2d 74 65 | null?.(windows?).........(new-te |
| 9d320 | 6d 70 2d 66 69 6c 65 20 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 67 70 74 65 6c 2d 6d | mp-file.(make-temp-file."gptel-m |
| 9d340 | 65 72 67 65 2d 22 29 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 | erge-"))).....(unwind-protect... |
| 9d360 | 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 77 72 69 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 | ......(progn.(write-region.beg.e |
| 9d380 | 6e 64 20 6f 72 69 67 69 6e 61 6c 2d 74 65 6d 70 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 | nd.original-temp-file).......... |
| 9d3a0 | 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 65 6d 70 74 79 2d 74 65 6d 70 | ......(with-temp-file.empty-temp |
| 9d3c0 | 2d 66 69 6c 65 20 28 69 6e 73 65 72 74 20 22 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -file.(insert."")).............. |
| 9d3e0 | 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 66 69 6c 65 20 6e 65 77 2d 74 65 6d 70 2d 66 69 6c 65 20 | ..(with-temp-file.new-temp-file. |
| 9d400 | 28 69 6e 73 65 72 74 20 6e 65 77 2d 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (insert.new-str))............... |
| 9d420 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(goto-char.beg)................ |
| 9d440 | 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | (delete-region.beg.end)......... |
| 9d460 | 20 20 20 20 20 20 20 28 63 61 6c 6c 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 | .......(call-process............ |
| 9d480 | 20 20 20 20 20 22 67 69 74 22 20 6e 69 6c 20 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 | ....."git".nil.(list.(current-bu |
| 9d4a0 | 66 66 65 72 29 20 6e 69 6c 29 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 | ffer).nil).nil................." |
| 9d4c0 | 6d 65 72 67 65 2d 66 69 6c 65 22 20 22 2d 2d 6e 6f 2d 64 69 66 66 33 22 20 22 2d 4c 22 20 22 6f | merge-file"."--no-diff3"."-L"."o |
| 9d4e0 | 72 69 67 69 6e 61 6c 22 20 22 2d 4c 22 20 22 45 6d 70 74 79 22 20 22 2d 4c 22 0a 20 20 20 20 20 | riginal"."-L"."Empty"."-L"...... |
| 9d500 | 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 2d 6e 61 6d 65 20 67 | ...........(gptel-backend-name.g |
| 9d520 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 2d 70 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-backend)."-p".............. |
| 9d540 | 20 20 20 6f 72 69 67 69 6e 61 6c 2d 74 65 6d 70 2d 66 69 6c 65 20 65 6d 70 74 79 2d 74 65 6d 70 | ...original-temp-file.empty-temp |
| 9d560 | 2d 66 69 6c 65 20 6e 65 77 2d 74 65 6d 70 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 | -file.new-temp-file)............ |
| 9d580 | 20 20 20 20 3b 3b 20 4d 61 6b 65 20 6d 65 72 67 65 20 6d 61 72 6b 65 72 20 61 63 74 69 76 65 20 | ....;;.Make.merge.marker.active. |
| 9d5a0 | 69 66 20 72 65 71 75 69 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f | if.required................(goto |
| 9d5c0 | 2d 63 68 61 72 20 62 65 67 29 20 28 75 6e 6c 65 73 73 20 28 62 6f 6c 70 29 20 28 69 6e 73 65 72 | -char.beg).(unless.(bolp).(inser |
| 9d5e0 | 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 6f 72 69 | t."\n"))).......(delete-file.ori |
| 9d600 | 67 69 6e 61 6c 2d 74 65 6d 70 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 | ginal-temp-file).......(delete-f |
| 9d620 | 69 6c 65 20 65 6d 70 74 79 2d 74 65 6d 70 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 64 65 6c 65 | ile.empty-temp-file).......(dele |
| 9d640 | 74 65 2d 66 69 6c 65 20 6e 65 77 2d 74 65 6d 70 2d 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 | te-file.new-temp-file))))..(defu |
| 9d660 | 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 2d 73 69 6d 70 6c 65 20 28 62 | n.gptel--rewrite-merge-simple.(b |
| 9d680 | 65 67 20 65 6e 64 20 6e 65 77 2d 73 74 72 29 0a 20 20 22 50 72 6f 64 75 63 65 20 61 20 6d 65 72 | eg.end.new-str)..."Produce.a.mer |
| 9d6a0 | 67 65 20 63 6f 6e 66 6c 69 63 74 20 72 65 67 69 6f 6e 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 | ge.conflict.region.between.BEG.a |
| 9d6c0 | 6e 64 20 45 4e 44 2e 0a 0a 4e 45 57 2d 53 54 52 20 69 73 20 74 68 65 20 6e 65 77 20 73 74 72 69 | nd.END...NEW-STR.is.the.new.stri |
| 9d6e0 | 6e 67 20 69 6e 74 65 6e 64 65 64 20 74 6f 20 72 65 70 6c 61 63 65 20 74 68 65 20 72 65 67 69 6f | ng.intended.to.replace.the.regio |
| 9d700 | 6e 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 20 20 20 20 20 20 20 20 20 20 20 | n."...(goto-char.end)........... |
| 9d720 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 45 6e 64 20 66 69 72 73 74 20 74 6f 20 70 72 65 73 65 72 | ............;End.first.to.preser |
| 9d740 | 76 65 20 6f 72 64 65 72 69 6e 67 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 6f 6c 70 29 20 28 69 6e | ve.ordering...(unless.(bolp).(in |
| 9d760 | 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 28 69 6e 73 65 72 74 20 22 3d 3d 3d 3d 3d 3d 3d 5c 6e | sert."\n"))...(insert."=======\n |
| 9d780 | 22 20 6e 65 77 2d 73 74 72 20 22 5c 6e 3e 3e 3e 3e 3e 3e 3e 20 22 0a 20 20 20 20 20 20 20 20 20 | ".new-str."\n>>>>>>>.".......... |
| 9d7a0 | 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 |
| 9d7c0 | 6e 64 29 20 22 5c 6e 22 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 28 75 | nd)."\n")...(goto-char.beg)...(u |
| 9d7e0 | 6e 6c 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 28 69 | nless.(bolp).(insert."\n"))...(i |
| 9d800 | 6e 73 65 72 74 2d 62 65 66 6f 72 65 2d 6d 61 72 6b 65 72 73 20 22 3c 3c 3c 3c 3c 3c 3c 20 6f 72 | nsert-before-markers."<<<<<<<.or |
| 9d820 | 69 67 69 6e 61 6c 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 | iginal\n"))..(defun.gptel--rewri |
| 9d840 | 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 20 22 49 6e 73 65 | te-merge.(&optional.ovs)..."Inse |
| 9d860 | 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 6e 20 4f 56 53 20 | rt.pending.LLM.responses.in.OVS. |
| 9d880 | 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 74 65 72 61 63 74 | as.merge.conflicts."...(interact |
| 9d8a0 | 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 | ive.(list.(gptel--rewrite-overla |
| 9d8c0 | 79 2d 61 74 29 29 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 62 75 66 20 28 6f | y-at)))...(when-let*.((ov-buf.(o |
| 9d8e0 | 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6f 76 73 29 | verlay-buffer.(or.(car-safe.ovs) |
| 9d900 | 20 6f 76 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 62 75 66 66 65 72 2d 6c | .ovs)))...............((buffer-l |
| 9d920 | 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 63 75 72 72 65 6e | ive-p.ov-buf))).....(with-curren |
| 9d940 | 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 20 28 28 63 68 61 | t-buffer.ov-buf.......(let.((cha |
| 9d960 | 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 20 28 65 6e 73 75 | nged)).........(dolist.(ov.(ensu |
| 9d980 | 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 61 76 65 2d 65 78 | re-list.ovs))...........(save-ex |
| 9d9a0 | 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 6c 65 74 2a 20 28 | cursion.............(when-let*.( |
| 9d9c0 | 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 67 70 74 65 6c 2d | (new-str.(overlay-get.ov.'gptel- |
| 9d9e0 | 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 28 69 66 20 28 65 78 | rewrite)))...............(if.(ex |
| 9da00 | 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 67 69 74 22 29 20 3b 52 65 70 6c 61 63 65 20 6f 76 | ecutable-find."git").;Replace.ov |
| 9da20 | 65 72 6c 61 79 20 63 6f 6e 74 65 6e 74 20 77 69 74 68 20 6d 65 72 67 65 20 72 65 73 75 6c 74 0a | erlay.content.with.merge.result. |
| 9da40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | ..................(gptel--rewrit |
| 9da60 | 65 2d 6d 65 72 67 65 2d 67 69 74 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 28 | e-merge-git.(overlay-start.ov).( |
| 9da80 | 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f 76 29 20 6e 65 77 2d 73 74 72 29 0a 20 20 20 20 20 20 20 | overlay-end.ov).new-str)........ |
| 9daa0 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 2d 73 | .........(gptel--rewrite-merge-s |
| 9dac0 | 69 6d 70 6c 65 20 28 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 28 6f 76 65 72 6c 61 | imple.(overlay-start.ov).(overla |
| 9dae0 | 79 2d 65 6e 64 20 6f 76 29 20 6e 65 77 2d 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | y-end.ov).new-str))............. |
| 9db00 | 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 20 20 28 77 | ..(setq.changed.t)))).........(w |
| 9db20 | 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 29 0a 20 20 | hen.changed.(smerge-mode.1)))... |
| 9db40 | 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 76 73 29 29 | ....(gptel--rewrite-reject.ovs)) |
| 9db60 | 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 73 70 61 74 | ))..(defun.gptel--rewrite-dispat |
| 9db80 | 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 61 74 63 68 | ch.(&optional.ov.ci)..."Dispatch |
| 9dba0 | 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 0a 0a 4f 56 | .actions.for.gptel.rewrites...OV |
| 9dbc0 | 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 69 73 20 74 | .is.the.rewrite.overlay,.CI.is.t |
| 9dbe0 | 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 20 20 28 69 | rue.for.interactive.calls."...(i |
| 9dc00 | 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | nteractive.(list.(gptel--rewrite |
| 9dc20 | 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 6f 69 63 65 | -overlay-at).t))...(let.((choice |
| 9dc40 | 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 20 20 20 28 | )).....(unwind-protect.........( |
| 9dc60 | 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 63 63 65 70 | pcase-let.((choices.'((?a."accep |
| 9dc80 | 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 74 65 22 29 | t").(?k."reject").(?r."iterate") |
| 9dca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 9dcc0 | 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 20 22 65 64 | (?m."merge").(?d."diff").(?e."ed |
| 9dce0 | 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 28 68 69 6e | iff"))).....................(hin |
| 9dd00 | 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 64 65 6c 2d | t-str.(concat."[".(gptel--model- |
| 9dd20 | 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 20 20 20 20 | name.gptel-model)."]\n")))...... |
| 9dd40 | 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 20 6f 76 20 | .....(overlay-put............ov. |
| 9dd60 | 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 6f 6e 63 61 | 'before-string............(conca |
| 9dd80 | 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 68 61 72 2d | t.............(unless.(eq.(char- |
| 9dda0 | 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 5c 6e 29 20 | before.(overlay-start.ov)).?\n). |
| 9ddc0 | 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 65 20 22 52 | "\n").............(propertize."R |
| 9dde0 | 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 73 73 29 0a | EWRITE.READY:.".'face.'success). |
| 9de00 | 09 20 20 20 20 28 77 68 65 6e 20 28 66 62 6f 75 6e 64 70 20 23 27 72 6d 63 2d 2d 61 64 64 2d 6b | .....(when.(fboundp.#'rmc--add-k |
| 9de20 | 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 29 20 20 3b 20 69 6e 74 72 6f 64 75 63 65 64 20 69 6e | ey-description)..;.introduced.in |
| 9de40 | 20 45 6d 61 63 73 20 32 39 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 | .Emacs.29...............(mapconc |
| 9de60 | 61 74 20 28 6c 61 6d 62 64 61 20 28 65 29 20 28 63 64 72 20 65 29 29 20 28 6d 61 70 63 61 72 20 | at.(lambda.(e).(cdr.e)).(mapcar. |
| 9de80 | 23 27 72 6d 63 2d 2d 61 64 64 2d 6b 65 79 2d 64 65 73 63 72 69 70 74 69 6f 6e 20 63 68 6f 69 63 | #'rmc--add-key-description.choic |
| 9dea0 | 65 73 29 20 22 2c 20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | es).",.")).............(properti |
| 9dec0 | 7a 65 0a 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 20 60 28 73 | ze..............".".'display.`(s |
| 9dee0 | 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 28 2d 20 72 69 67 68 74 20 2c 28 31 2b 20 28 6c 65 | pace.:align-to.(-.right.,(1+.(le |
| 9df00 | 6e 67 74 68 20 68 69 6e 74 2d 73 74 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ngth.hint-str))))).............( |
| 9df20 | 70 72 6f 70 65 72 74 69 7a 65 20 68 69 6e 74 2d 73 74 72 20 27 66 61 63 65 20 27 73 75 63 63 65 | propertize.hint-str.'face.'succe |
| 9df40 | 73 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 68 6f 69 63 65 20 28 72 65 | ss)))...........(setq.choice.(re |
| 9df60 | 61 64 2d 6d 75 6c 74 69 70 6c 65 2d 63 68 6f 69 63 65 20 22 41 63 74 69 6f 6e 3a 20 22 20 63 68 | ad-multiple-choice."Action:.".ch |
| 9df80 | 6f 69 63 65 73 29 29 29 0a 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 | oices))).......(overlay-put.ov.' |
| 9dfa0 | 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 6e 69 6c 29 29 0a 20 20 20 20 28 69 66 20 63 69 0a 20 | before-string.nil)).....(if.ci.. |
| 9dfc0 | 20 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 28 69 6e 74 65 | .......(call-interactively.(inte |
| 9dfe0 | 72 6e 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 63 61 | rn.(concat."gptel--rewrite-".(ca |
| 9e000 | 64 72 20 63 68 6f 69 63 65 29 29 29 29 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 6e | dr.choice)))).......(funcall.(in |
| 9e020 | 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 22 20 28 | tern.(concat."gptel--rewrite-".( |
| 9e040 | 63 61 64 72 20 63 68 6f 69 63 65 29 29 29 20 6f 76 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | cadr.choice))).ov))))..(defun.gp |
| 9e060 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 20 28 72 65 73 70 6f 6e 73 65 20 | tel--rewrite-callback.(response. |
| 9e080 | 69 6e 66 6f 29 0a 20 20 22 43 61 6c 6c 62 61 63 6b 20 66 6f 72 20 67 70 74 65 6c 20 72 65 77 72 | info)..."Callback.for.gptel.rewr |
| 9e0a0 | 69 74 65 20 61 63 74 69 6f 6e 73 2e 0a 0a 53 68 6f 77 20 74 68 65 20 72 65 77 72 69 74 65 20 72 | ite.actions...Show.the.rewrite.r |
| 9e0c0 | 65 73 75 6c 74 20 69 6e 20 61 6e 20 6f 76 65 72 6c 61 79 20 6f 76 65 72 20 74 68 65 20 6f 72 69 | esult.in.an.overlay.over.the.ori |
| 9e0e0 | 67 69 6e 61 6c 20 74 65 78 74 2c 20 61 6e 64 0a 73 65 74 20 75 70 20 64 69 73 70 61 74 63 68 20 | ginal.text,.and.set.up.dispatch. |
| 9e100 | 61 63 74 69 6f 6e 73 2e 0a 0a 52 45 53 50 4f 4e 53 45 20 69 73 20 74 68 65 20 72 65 73 70 6f 6e | actions...RESPONSE.is.the.respon |
| 9e120 | 73 65 20 72 65 63 65 69 76 65 64 2e 20 20 49 74 20 6d 61 79 20 61 6c 73 6f 20 62 65 20 74 20 28 | se.received...It.may.also.be.t.( |
| 9e140 | 74 6f 20 69 6e 64 69 63 61 74 65 0a 73 75 63 63 65 73 73 29 20 6e 69 6c 20 28 74 6f 20 69 6e 64 | to.indicate.success).nil.(to.ind |
| 9e160 | 69 63 61 74 65 20 66 61 69 6c 75 72 65 29 2c 20 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 20 60 61 | icate.failure),.or.the.symbol.`a |
| 9e180 | 62 6f 72 74 27 2e 0a 0a 49 4e 46 4f 20 69 73 20 74 68 65 20 61 73 79 6e 63 20 63 6f 6d 6d 75 6e | bort'...INFO.is.the.async.commun |
| 9e1a0 | 69 63 61 74 69 6f 6e 20 63 68 61 6e 6e 65 6c 20 66 6f 72 20 74 68 65 20 72 65 77 72 69 74 65 20 | ication.channel.for.the.rewrite. |
| 9e1c0 | 72 65 71 75 65 73 74 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f 76 2d 61 6e 64 2d | request."...(when-let*.((ov-and- |
| 9e1e0 | 62 75 66 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 29 0a 20 | buf.(plist-get.info.:context)).. |
| 9e200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 20 28 63 61 72 20 6f 76 2d 61 6e 64 2d 62 75 66 | .............(ov.(car.ov-and-buf |
| 9e220 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 2d 62 75 66 20 28 63 64 72 20 | ))...............(proc-buf.(cdr. |
| 9e240 | 6f 76 2d 61 6e 64 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 | ov-and-buf))...............(buf. |
| 9e260 | 28 6f 76 65 72 6c 61 79 2d 62 75 66 66 65 72 20 6f 76 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 0a | (overlay-buffer.ov))).....(cond. |
| 9e280 | 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 20 72 65 73 70 6f 6e 73 65 29 20 20 20 20 20 20 20 20 | .....((stringp.response)........ |
| 9e2a0 | 20 20 20 20 20 20 20 20 3b 70 61 72 74 69 61 6c 20 6f 72 20 66 75 6c 6c 79 20 73 75 63 63 65 73 | ........;partial.or.fully.succes |
| 9e2c0 | 73 66 75 6c 20 72 65 73 75 6c 74 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | sful.result.......(with-current- |
| 9e2e0 | 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 20 20 20 20 20 3b 61 75 78 69 6c 69 61 72 79 20 62 | buffer.proc-buf.....;auxiliary.b |
| 9e300 | 75 66 66 65 72 2c 20 69 6e 73 65 72 74 20 74 65 78 74 20 68 65 72 65 20 61 6e 64 20 63 6f 70 79 | uffer,.insert.text.here.and.copy |
| 9e320 | 20 74 6f 20 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 | .to.overlay.........(let.((inhib |
| 9e340 | 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 68 6f 6f 6b 73 20 6e 69 6c 29 0a 20 20 20 20 20 | it-modification-hooks.nil)...... |
| 9e360 | 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a | .........(inhibit-read-only.t)). |
| 9e380 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 | ..........(when.(=.(buffer-size) |
| 9e3a0 | 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d | .0).............(buffer-disable- |
| 9e3c0 | 75 6e 64 6f 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 6f | undo).............(overlay-put.o |
| 9e3e0 | 76 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 | v.'gptel-rewrite.nil)........... |
| 9e400 | 20 20 28 69 6e 73 65 72 74 2d 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 75 66 20 28 | ..(insert-buffer-substring.buf.( |
| 9e420 | 6f 76 65 72 6c 61 79 2d 73 74 61 72 74 20 6f 76 29 20 28 6f 76 65 72 6c 61 79 2d 65 6e 64 20 6f | overlay-start.ov).(overlay-end.o |
| 9e440 | 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 63 68 61 72 2d | v)).............(when.(eq.(char- |
| 9e460 | 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 3f 5c 6e 29 0a 20 20 20 20 20 20 20 | before.(point-max)).?\n)........ |
| 9e480 | 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6e 65 77 6c 69 6e 65 20 | .......(plist-put.info.:newline. |
| 9e4a0 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 | t)).............(setq.major-mode |
| 9e4c0 | 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 65 | .(buffer-local-value.'major-mode |
| 9e4e0 | 20 62 75 66 29 29 20 3b 44 6f 6e 27 74 20 74 75 72 6e 20 6f 6e 20 6d 61 6a 6f 72 2d 6d 6f 64 65 | .buf)).;Don't.turn.on.major-mode |
| 9e500 | 20 28 23 37 33 30 2c 20 23 37 32 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 | .(#730,.#722).............(add-t |
| 9e520 | 65 78 74 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 | ext-properties.(point-min).(poin |
| 9e540 | 74 2d 6d 61 78 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 | t-max).'(face.shadow.font-lock-f |
| 9e560 | 61 63 65 20 73 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 | ace.shadow)).............(goto-c |
| 9e580 | 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 28 69 6e 73 | har.(point-min)))...........(ins |
| 9e5a0 | 65 72 74 20 72 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 | ert.response)...........(unless. |
| 9e5c0 | 28 65 6f 62 70 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 | (eobp).(ignore-errors.(delete-ch |
| 9e5e0 | 61 72 20 28 6c 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 | ar.(length.response))))......... |
| 9e600 | 20 20 28 66 6f 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 | ..(font-lock-ensure)...........( |
| 9e620 | 6f 76 65 72 6c 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 | overlay-put.ov.'display.(buffer- |
| 9e640 | 73 74 72 69 6e 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 | string)))).......(unless.(plist- |
| 9e660 | 67 65 74 20 69 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 | get.info.:stream).(gptel--rewrit |
| 9e680 | 65 2d 63 61 6c 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 | e-callback.t.info)))......((eq.r |
| 9e6a0 | 65 73 70 6f 6e 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 | esponse.'abort)..............;re |
| 9e6c0 | 71 75 65 73 74 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 | quest.aborted.......(when-let*.( |
| 9e6e0 | 28 70 72 6f 63 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 | (proc-buf.(cdr-safe.(plist-get.i |
| 9e700 | 6e 66 6f 20 3a 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 | nfo.:context)))).........(kill-b |
| 9e720 | 75 66 66 65 72 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 | uffer.proc-buf)).......(delete-o |
| 9e740 | 76 65 72 6c 61 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 | verlay.ov))......((null.response |
| 9e760 | 29 20 20 20 20 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 | )...................;finished.wi |
| 9e780 | 74 68 20 65 72 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 | th.error.......(message.(concat. |
| 9e7a0 | 22 4c 4c 4d 20 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 | "LLM.response.error:.%s..Rewrite |
| 9e7c0 | 20 69 6e 20 62 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 | .in.buffer.%s.canceled.")....... |
| 9e7e0 | 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 73 | .........(plist-get.info.:status |
| 9e800 | 29 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 | ).(plist-get.info.:buffer))..... |
| 9e820 | 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 20 27 61 62 6f 72 | ..(gptel--rewrite-callback.'abor |
| 9e840 | 74 20 69 6e 66 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 | t.info))......((consp.response)) |
| 9e860 | 20 3b 72 65 61 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 | .;reasoning.or.tool.calls.--.don |
| 9e880 | 27 74 20 63 61 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 | 't.care.and.not.implemented,.res |
| 9e8a0 | 70 65 63 74 69 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 | pectively......(t.(let.((proc-bu |
| 9e8c0 | 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 63 6f 6e | f.(cdr-safe.(plist-get.info.:con |
| 9e8e0 | 74 65 78 74 29 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 | text))).;finished.successfully.. |
| 9e900 | 20 20 20 20 20 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 | .............(mkb.(propertize."< |
| 9e920 | 6d 6f 75 73 65 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 | mouse-1>".'face.'help-key-bindin |
| 9e940 | 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 | g)))...........(with-current-buf |
| 9e960 | 66 65 72 20 70 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 | fer.proc-buf.............(let.(( |
| 9e980 | 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 20 | inhibit-read-only.t))........... |
| 9e9a0 | 20 20 20 20 28 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 | ....(delete-region.(point).(poin |
| 9e9c0 | 74 2d 6d 61 78 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 | t-max))...............;;.Run.pos |
| 9e9e0 | 74 2d 72 65 77 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 | t-rewrite-functions.on.rewritten |
| 9ea00 | 20 74 65 78 74 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 | .text.in.its.buffer............. |
| 9ea20 | 20 20 28 77 69 74 68 2d 64 65 6d 6f 74 65 64 2d 65 72 72 6f 72 73 20 22 67 70 74 65 6c 2d 70 6f | ..(with-demoted-errors."gptel-po |
| 9ea40 | 73 74 2d 72 65 77 72 69 74 65 2d 66 75 6e 63 74 69 6f 6e 73 3a 20 25 53 22 0a 20 20 20 20 20 20 | st-rewrite-functions:.%S"....... |
| 9ea60 | 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 67 | ..........(run-hook-with-args.'g |
| 9ea80 | 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 20 28 70 6f 69 | ptel-post-rewrite-functions.(poi |
| 9eaa0 | 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | nt-min).(point-max)))........... |
| 9eac0 | 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | ....(when.(and.(plist-get.info.: |
| 9eae0 | 6e 65 77 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 20 | newline)........................ |
| 9eb00 | 20 20 28 6e 6f 74 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 2d 6d | ..(not.(eq.(char-before.(point-m |
| 9eb20 | 61 78 29 29 20 3f 5c 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 | ax)).?\n))).................(ins |
| 9eb40 | 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 28 66 6f 6e 74 2d 6c | ert."\n"))...............(font-l |
| 9eb60 | 6f 63 6b 2d 65 6e 73 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 76 65 72 6c 61 | ock-ensure)).............(overla |
| 9eb80 | 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 67 | y-put.ov.'display.(buffer-string |
| 9eba0 | 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 6f 76 20 27 | )).............(overlay-put.ov.' |
| 9ebc0 | 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 | gptel-rewrite.(buffer-string)).. |
| 9ebe0 | 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 | ...........(kill-buffer.proc-buf |
| 9ec00 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d | ))...........(when.(buffer-live- |
| 9ec20 | 70 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | p.buf).............(with-current |
| 9ec40 | 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 6c 73 65 | -buffer.buf...............(pulse |
| 9ec60 | 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 28 6f 76 65 | -momentary-highlight-region.(ove |
| 9ec80 | 72 6c 61 79 2d 73 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 | rlay-start.ov).(overlay-end.ov)) |
| 9eca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 6c 64 6f 63 2d | ...............(add-hook.'eldoc- |
| 9ecc0 | 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 20 23 27 67 70 74 65 6c 2d | documentation-functions.#'gptel- |
| 9ece0 | 2d 72 65 77 72 69 74 65 2d 6b 65 79 2d 68 65 6c 70 20 6e 69 6c 20 27 6c 6f 63 61 6c 29 0a 20 20 | -rewrite-key-help.nil.'local)... |
| 9ed00 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 | ............;;.(overlay-put.ov.' |
| 9ed20 | 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 | gptel-rewrite.response)......... |
| 9ed40 | 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 66 61 63 65 20 27 67 70 74 | ......(overlay-put.ov.'face.'gpt |
| 9ed60 | 65 6c 2d 72 65 77 72 69 74 65 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 09 20 20 20 20 | el-rewrite-highlight-face)...... |
| 9ed80 | 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 70 72 69 6f 72 69 74 79 20 32 30 30 30 | ..(overlay-put.ov.'priority.2000 |
| 9eda0 | 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 20 6f 76 20 | )...............(overlay-put.ov. |
| 9edc0 | 27 6b 65 79 6d 61 70 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 61 63 74 69 6f 6e 73 2d 6d 61 | 'keymap.gptel-rewrite-actions-ma |
| 9ede0 | 70 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 20 6f 76 | p)...............(overlay-put.ov |
| 9ee00 | 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 20 | .'mouse-face.'highlight)........ |
| 9ee20 | 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 20 20 | .......(overlay-put............. |
| 9ee40 | 20 20 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 | ...ov.'help-echo................ |
| 9ee60 | 28 66 6f 72 6d 61 74 20 28 63 6f 6e 63 61 74 20 22 25 73 20 72 65 77 72 69 74 65 20 61 76 61 69 | (format.(concat."%s.rewrite.avai |
| 9ee80 | 6c 61 62 6c 65 3a 20 25 73 20 6f 72 20 5c 5c 5b 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 | lable:.%s.or.\\[gptel--rewrite-d |
| 9eea0 | 69 73 70 61 74 63 68 5d 20 66 6f 72 20 6f 70 74 69 6f 6e 73 22 29 0a 20 20 20 20 20 20 20 20 20 | ispatch].for.options").......... |
| 9eec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 61 63 | ..............(concat.(gptel-bac |
| 9eee0 | 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 3a 22 20 28 67 70 | kend-name.gptel-backend).":".(gp |
| 9ef00 | 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 | tel--model-name.gptel-model))... |
| 9ef20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6b 62 29 29 0a 20 20 20 20 20 | .....................mkb))...... |
| 9ef40 | 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6f 76 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 | .........(push.ov.gptel--rewrite |
| 9ef60 | 2d 6f 76 65 72 6c 61 79 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a | -overlays)).............(if-let* |
| 9ef80 | 20 28 28 73 79 6d 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 | .((sym.gptel-rewrite-default-act |
| 9efa0 | 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 | ion)).................(if-let*.( |
| 9efc0 | 28 61 63 74 69 6f 6e 20 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 67 70 74 65 6c 2d 2d | (action.(intern.(concat."gptel-- |
| 9efe0 | 72 65 77 72 69 74 65 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 73 79 6d 29 29 29 29 0a 20 | rewrite-".(symbol-name.sym)))).. |
| 9f000 | 20 20 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 66 75 6e 63 74 | .........................((funct |
| 9f020 | 69 6f 6e 70 20 61 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ionp.action))).................. |
| 9f040 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 61 63 74 69 6f 6e 20 6f 76 29 20 28 66 75 6e 63 61 6c 6c 20 | ...(funcall.action.ov).(funcall. |
| 9f060 | 73 79 6d 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | sym.ov))...............(message. |
| 9f080 | 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (concat......................... |
| 9f0a0 | 22 4c 4c 4d 20 72 65 77 72 69 74 65 20 6f 75 74 70 75 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 | "LLM.rewrite.output"............ |
| 9f0c0 | 20 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 75 72 72 65 6e | .............(unless.(eq.(curren |
| 9f0e0 | 74 2d 62 75 66 66 65 72 29 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-buffer).buf).................. |
| 9f100 | 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 69 6e 20 62 75 66 66 65 72 20 25 73 20 | .........(format.".in.buffer.%s. |
| 9f120 | 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ".(buffer-name.buf)))........... |
| 9f140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 20 72 65 61 64 79 3a 20 22 | ..............(concat.".ready:." |
| 9f160 | 20 6d 6b 62 20 22 2c 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 52 45 54 22 20 27 66 61 63 | .mkb.",.".(propertize."RET".'fac |
| 9f180 | 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 20 20 | e.'help-key-binding)............ |
| 9f1a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 6f 72 20 22 20 28 73 75 62 | .....................".or.".(sub |
| 9f1c0 | 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 5c 5c 5b 67 70 74 65 6c 2d 72 | stitute-command-keys."\\[gptel-r |
| 9f1e0 | 65 77 72 69 74 65 5d 20 74 6f 20 63 6f 6e 74 69 6e 75 65 2e 22 29 29 29 29 29 29 29 29 29 29 29 | ewrite].to.continue."))))))))))) |
| 9f200 | 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 50 72 65 66 69 78 65 73 20 66 6f 72 20 72 65 | ..;;.*.Transient.Prefixes.for.re |
| 9f220 | 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 65 2d 70 72 65 66 69 | writing..(transient-define-prefi |
| 9f240 | 78 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 6d 65 6e 75 20 | x.gptel--rewrite-directive-menu. |
| 9f260 | 28 29 0a 20 20 22 53 65 74 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 28 73 79 73 74 65 6d 20 | ()..."Set.the.directive.(system. |
| 9f280 | 6d 65 73 73 61 67 65 29 20 66 6f 72 20 72 65 77 72 69 74 65 20 61 63 74 69 6f 6e 73 2e 0a 0a 42 | message).for.rewrite.actions...B |
| 9f2a0 | 79 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 | y.default,.gptel.uses.the.direct |
| 9f2c0 | 69 76 65 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 65 20 60 72 65 77 72 69 74 65 | ive.associated.with.the.`rewrite |
| 9f2e0 | 27 0a 20 6b 65 79 20 69 6e 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 27 2e 20 20 59 | '..key.in.`gptel-directives'...Y |
| 9f300 | 6f 75 20 63 61 6e 20 61 64 64 20 6d 6f 72 65 20 72 65 77 72 69 74 65 2d 73 70 65 63 69 66 69 63 | ou.can.add.more.rewrite-specific |
| 9f320 | 0a 20 64 69 72 65 63 74 69 76 65 73 20 74 6f 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 | ..directives.to.`gptel-directive |
| 9f340 | 73 27 20 61 6e 64 20 70 69 63 6b 20 6f 6e 65 20 66 72 6f 6d 20 68 65 72 65 2e 22 0a 20 20 5b 3a | s'.and.pick.one.from.here."...[: |
| 9f360 | 64 65 73 63 72 69 70 74 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 2d | description.gptel-system-prompt- |
| 9f380 | 2d 66 6f 72 6d 61 74 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 | -format....[(gptel--suffix-rewri |
| 9f3a0 | 74 65 2d 64 69 72 65 63 74 69 76 65 29 5d 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 | te-directive)]....[(gptel--infix |
| 9f3c0 | 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 5d 5d 0a 20 20 20 5b 3a 63 6c 61 73 73 20 74 72 | -variable-scope)]]....[:class.tr |
| 9f3e0 | 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 0a 20 20 20 20 3a 73 65 74 75 70 2d 63 68 69 6c 64 72 | ansient-column.....:setup-childr |
| 9f400 | 65 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 74 72 61 6e 73 69 65 6e 74 2d 70 61 | en.....(lambda.(_).(transient-pa |
| 9f420 | 72 73 65 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d | rse-suffixes.............'gptel- |
| 9f440 | 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 0a 20 20 20 20 20 20 20 20 | -rewrite-directive-menu......... |
| 9f460 | 20 20 20 20 28 67 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 | ....(gptel--setup-directive-menu |
| 9f480 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 | ..............'gptel--rewrite-di |
| 9f4a0 | 72 65 63 74 69 76 65 20 22 52 65 77 72 69 74 65 20 64 69 72 65 63 74 69 76 65 22 29 29 29 0a 20 | rective."Rewrite.directive"))).. |
| 9f4c0 | 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 74 5d 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | ...:pad-keys.t])..;;;###autoload |
| 9f4e0 | 20 28 61 75 74 6f 6c 6f 61 64 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 22 67 70 74 65 6c | .(autoload.'gptel-rewrite."gptel |
| 9f500 | 2d 72 65 77 72 69 74 65 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 | -rewrite".nil.t).(transient-defi |
| 9f520 | 6e 65 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 20 28 29 0a 20 20 22 52 65 | ne-prefix.gptel-rewrite.()..."Re |
| 9f540 | 77 72 69 74 65 20 6f 72 20 72 65 66 61 63 74 6f 72 20 74 65 78 74 20 72 65 67 69 6f 6e 20 75 73 | write.or.refactor.text.region.us |
| 9f560 | 69 6e 67 20 61 6e 20 4c 4c 4d 2e 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 | ing.an.LLM."...[:description.... |
| 9f580 | 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 64 65 73 63 72 69 62 65 | (lambda.()......(gptel--describe |
| 9f5a0 | 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d | -directive.......gptel--rewrite- |
| 9f5c0 | 64 69 72 65 63 74 69 76 65 20 28 6d 61 78 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 | directive.(max.(-.(window-width) |
| 9f5e0 | 20 31 34 29 20 32 30 29 20 22 20 22 29 29 0a 20 20 20 5b 22 22 0a 20 20 20 20 28 67 70 74 65 6c | .14).20)."."))....["".....(gptel |
| 9f600 | 2d 2d 70 72 65 73 65 74 0a 20 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 | --preset......:if.(lambda.().(or |
| 9f620 | 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 | .(get-char-property.(point).'gpt |
| 9f640 | 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | el-rewrite)....................( |
| 9f660 | 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 29 0a 20 20 20 20 20 3a 6b 65 79 20 22 40 22 20 3a 66 | use-region-p)))......:key."@".:f |
| 9f680 | 6f 72 6d 61 74 20 22 25 64 22 0a 20 20 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 | ormat."%d"......:description.... |
| 9f6a0 | 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 72 6f | ..(lambda.()........(concat.(pro |
| 9f6c0 | 70 65 72 74 69 7a 65 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 22 20 27 66 61 63 65 20 27 74 72 | pertize."Instructions".'face.'tr |
| 9f6e0 | 61 6e 73 69 65 6e 74 2d 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ansient-heading)................ |
| 9f700 | 28 67 70 74 65 6c 2d 2d 66 6f 72 6d 61 74 2d 70 72 65 73 65 74 2d 73 74 72 69 6e 67 29 29 29 29 | (gptel--format-preset-string)))) |
| 9f720 | 0a 20 20 20 20 28 22 73 22 20 22 53 65 74 20 66 75 6c 6c 20 64 69 72 65 63 74 69 76 65 22 20 67 | .....("s"."Set.full.directive".g |
| 9f740 | 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 2d 6d 65 6e 75 29 0a 20 20 | ptel--rewrite-directive-menu)... |
| 9f760 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 65 78 74 72 61 29 5d 5d | ..(gptel--infix-rewrite-extra)]] |
| 9f780 | 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 61 72 65 20 72 65 71 75 69 72 69 6e 67 20 60 67 | ...;;.FIXME:.We.are.requiring.`g |
| 9f7a0 | 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 27 20 62 65 63 61 75 73 65 20 6f 66 20 74 68 69 73 20 | ptel-transient'.because.of.this. |
| 9f7c0 | 73 75 66 66 69 78 2c 20 70 65 72 68 61 70 73 0a 20 20 3b 3b 20 77 65 20 63 61 6e 20 67 65 74 20 | suffix,.perhaps...;;.we.can.get. |
| 9f7e0 | 66 69 6e 64 20 73 6f 6d 65 20 77 61 79 20 61 72 6f 75 6e 64 20 74 68 61 74 3f 0a 20 20 5b 3a 64 | find.some.way.around.that?...[:d |
| 9f800 | 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6f 6e 74 65 78 74 20 66 6f 72 20 72 65 77 72 69 74 65 22 | escription."Context.for.rewrite" |
| 9f820 | 0a 20 20 20 3a 69 66 20 75 73 65 2d 72 65 67 69 6f 6e 2d 70 0a 20 20 20 28 67 70 74 65 6c 2d 2d | ....:if.use-region-p....(gptel-- |
| 9f840 | 69 6e 66 69 78 2d 63 6f 6e 74 65 78 74 2d 72 65 6d 6f 76 65 2d 61 6c 6c 20 3a 6b 65 79 20 22 2d | infix-context-remove-all.:key."- |
| 9f860 | 64 22 29 0a 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 63 6f 6e 74 65 78 74 2d 62 75 | d")....(gptel--suffix-context-bu |
| 9f880 | 66 66 65 72 20 3a 6b 65 79 20 22 43 22 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b 20 25 64 22 29 | ffer.:key."C".:format."..%k.%d") |
| 9f8a0 | 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 69 66 66 20 4f 70 74 69 6f 6e 73 | ]...[[:description."Diff.Options |
| 9f8c0 | 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 |
| 9f8e0 | 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 28 22 2d 62 22 20 22 49 67 6e 6f 72 65 20 | ite-overlays).....("-b"."Ignore. |
| 9f900 | 77 68 69 74 65 73 70 61 63 65 20 63 68 61 6e 67 65 73 22 20 20 20 20 20 20 28 22 2d 62 22 20 22 | whitespace.changes"......("-b"." |
| 9f920 | 2d 2d 69 67 6e 6f 72 65 2d 73 70 61 63 65 2d 63 68 61 6e 67 65 22 29 29 0a 20 20 20 20 28 22 2d | --ignore-space-change")).....("- |
| 9f940 | 77 22 20 22 49 67 6e 6f 72 65 20 61 6c 6c 20 77 68 69 74 65 73 70 61 63 65 22 20 20 20 20 20 20 | w"."Ignore.all.whitespace"...... |
| 9f960 | 20 20 20 20 28 22 2d 77 22 20 22 2d 2d 69 67 6e 6f 72 65 2d 61 6c 6c 2d 73 70 61 63 65 22 29 29 | ....("-w"."--ignore-all-space")) |
| 9f980 | 0a 20 20 20 20 28 22 2d 69 22 20 22 49 67 6e 6f 72 65 20 63 61 73 65 22 20 20 20 20 20 20 20 20 | .....("-i"."Ignore.case"........ |
| 9f9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 22 2d 69 22 20 22 2d 2d 69 67 6e 6f 72 65 2d 63 61 73 65 | ............("-i"."--ignore-case |
| 9f9c0 | 22 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 | ")).....(gptel--infix-rewrite-di |
| 9f9e0 | 66 66 3a 2d 55 29 5d 0a 20 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 63 63 65 70 74 | ff:-U)]....[:description."Accept |
| 9fa00 | 20 61 6c 6c 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d | .all".....:if.(lambda.().gptel-- |
| 9fa20 | 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 | rewrite-overlays).....(gptel--su |
| 9fa40 | 66 66 69 78 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d | ffix-rewrite-merge).....(gptel-- |
| 9fa60 | 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 29 0a 20 20 20 20 22 52 65 6a 65 | suffix-rewrite-accept)....."Reje |
| 9fa80 | 63 74 20 61 6c 6c 22 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 | ct.all".....(gptel--suffix-rewri |
| 9faa0 | 74 65 2d 72 65 6a 65 63 74 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 | te-reject)]]...[[:description."D |
| 9fac0 | 69 66 66 20 72 65 77 72 69 74 65 20 72 65 67 69 6f 6e 73 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 | iff.rewrite.regions".....:if.(la |
| 9fae0 | 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 | mbda.().gptel--rewrite-overlays) |
| 9fb00 | 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 64 69 66 66 | .....(gptel--suffix-rewrite-diff |
| 9fb20 | 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 65 64 69 | ).....(gptel--suffix-rewrite-edi |
| 9fb40 | 66 66 29 5d 5d 0a 20 20 5b 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 77 72 69 74 65 22 | ff)]]...[[:description."Rewrite" |
| 9fb60 | 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 28 6f 72 20 28 67 65 74 2d 63 68 61 | .....:if.(lambda.().(or.(get-cha |
| 9fb80 | 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 |
| 9fba0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 72 65 67 69 6f 6e | e)...................(use-region |
| 9fbc0 | 2d 70 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 | -p))).....(gptel--suffix-rewrite |
| 9fbe0 | 29 5d 0a 20 20 20 5b 22 44 72 79 20 52 75 6e 22 0a 20 20 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 | )]....["Dry.Run".....:if.(lambda |
| 9fc00 | 20 28 29 20 28 61 6e 64 20 28 6f 72 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 67 70 74 | .().(and.(or.gptel-log-level.gpt |
| 9fc20 | 65 6c 2d 65 78 70 65 72 74 2d 63 6f 6d 6d 61 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | el-expert-commands)............. |
| 9fc40 | 20 20 20 20 20 20 20 28 6f 72 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 | .......(or.(get-char-property.(p |
| 9fc60 | 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 | oint).'gptel-rewrite)........... |
| 9fc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 29 29 29 0a 20 | .............(use-region-p)))).. |
| 9fca0 | 20 20 20 28 22 49 22 20 22 49 6e 73 70 65 63 74 20 71 75 65 72 79 20 28 4c 69 73 70 29 22 0a 20 | ...("I"."Inspect.query.(Lisp)".. |
| 9fcc0 | 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 | ....(lambda.()........"Inspect.t |
| 9fce0 | 68 65 20 71 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 | he.query.that.will.be.sent.as.a. |
| 9fd00 | 6c 69 73 70 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 | lisp.object."........(interactiv |
| 9fd20 | 65 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c | e)........(gptel--sanitize-model |
| 9fd40 | 29 0a 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 | )........(gptel--inspect-query.. |
| 9fd60 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 67 70 | .......(gptel--suffix-rewrite.gp |
| 9fd80 | 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 74 29 29 29 29 0a 20 20 20 20 28 | tel--rewrite-message.t)))).....( |
| 9fda0 | 22 4a 22 20 22 49 6e 73 70 65 63 74 20 71 75 65 72 79 20 28 4a 53 4f 4e 29 22 0a 20 20 20 20 20 | "J"."Inspect.query.(JSON)"...... |
| 9fdc0 | 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 22 49 6e 73 70 65 63 74 20 74 68 65 20 71 | (lambda.()........"Inspect.the.q |
| 9fde0 | 75 65 72 79 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 73 65 6e 74 20 61 73 20 61 20 4a 53 4f 4e | uery.that.will.be.sent.as.a.JSON |
| 9fe00 | 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 | .object."........(interactive).. |
| 9fe20 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 | ......(gptel--sanitize-model)... |
| 9fe40 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 73 70 65 63 74 2d 71 75 65 72 79 0a 20 20 20 20 20 | .....(gptel--inspect-query...... |
| 9fe60 | 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 67 70 74 65 6c 2d | ...(gptel--suffix-rewrite.gptel- |
| 9fe80 | 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 74 29 0a 20 20 20 20 20 20 20 20 27 6a 73 6f | -rewrite-message.t).........'jso |
| 9fea0 | 6e 29 29 29 5d 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d | n)))]]...(interactive)...(gptel- |
| 9fec0 | 2d 72 65 77 72 69 74 65 2d 73 61 6e 69 74 69 7a 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 28 63 | -rewrite-sanitize-overlays)...(c |
| 9fee0 | 6f 6e 64 0a 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 20 20 20 20 20 20 20 20 20 | ond....((use-region-p).......... |
| 9ff00 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 74 61 72 74 20 61 2f 61 6e 6f 74 68 65 72 20 72 65 77 | ............;Start.a/another.rew |
| 9ff20 | 72 69 74 65 0a 20 20 20 20 28 6c 65 74 20 28 28 74 72 61 6e 73 69 65 6e 74 2d 2d 68 69 73 74 6f | rite.....(let.((transient--histo |
| 9ff40 | 72 79 20 3b 4e 6f 20 74 72 61 6e 73 69 65 6e 74 20 72 65 61 64 65 72 2c 20 73 6f 20 57 65 20 6d | ry.;No.transient.reader,.so.We.m |
| 9ff60 | 61 6e 61 67 65 20 68 69 73 74 6f 72 79 20 6f 75 72 73 65 6c 76 65 73 0a 20 20 20 20 20 20 20 20 | anage.history.ourselves......... |
| 9ff80 | 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 72 65 77 72 | ...(alist-get.'gptel--infix-rewr |
| 9ffa0 | 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 29 29 0a 20 | ite-extra.transient-history))).. |
| 9ffc0 | 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 72 65 61 64 2d 6d 65 73 73 61 67 | .....(gptel--rewrite-read-messag |
| 9ffe0 | 65 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 20 28 | e........(concat."Instructions.( |
| a0000 | 22 20 67 70 74 65 6c 2d 2d 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 65 6c 70 0a 20 | ".gptel--read-with-prefix-help.. |
| a0020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 25 73 25 73 29 20 22 0a | ..............(format.".%s%s).". |
| a0040 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 | .......................(properti |
| a0060 | 7a 65 20 22 4d 2d 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 | ze."M-RET".'face.'help-key-bindi |
| a0080 | 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 28 70 72 6f 70 | ng)........................(prop |
| a00a0 | 65 72 74 69 7a 65 20 22 3a 20 4d 6f 72 65 20 6f 70 74 69 6f 6e 73 22 20 27 66 61 63 65 20 27 64 | ertize.":.More.options".'face.'d |
| a00c0 | 65 66 61 75 6c 74 29 29 29 0a 20 20 20 20 20 20 20 6e 69 6c 20 28 63 6f 6e 73 20 27 74 72 61 6e | efault)))........nil.(cons.'tran |
| a00e0 | 73 69 65 6e 74 2d 2d 68 69 73 74 6f 72 79 20 31 29 29 29 29 0a 20 20 20 28 67 70 74 65 6c 2d 2d | sient--history.1))))....(gptel-- |
| a0100 | 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 52 65 | rewrite-overlays.............;Re |
| a0120 | 77 72 69 74 65 20 61 63 74 69 6f 6e 73 20 70 65 6e 64 69 6e 67 2c 20 73 68 6f 77 20 6f 70 74 69 | write.actions.pending,.show.opti |
| a0140 | 6f 6e 73 0a 20 20 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 | ons.....(transient-setup.'gptel- |
| a0160 | 72 65 77 72 69 74 65 29 29 0a 20 20 20 28 74 20 28 75 73 65 72 2d 65 72 72 6f 72 0a 20 20 20 20 | rewrite))....(t.(user-error..... |
| a0180 | 20 20 20 22 60 67 70 74 65 6c 2d 72 65 77 72 69 74 65 27 20 72 65 71 75 69 72 65 73 20 61 6e 20 | ..."`gptel-rewrite'.requires.an. |
| a01a0 | 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 6f 72 20 72 65 77 72 69 74 65 20 69 6e 20 70 72 6f 67 | active.region.or.rewrite.in.prog |
| a01c0 | 72 65 73 73 2e 22 29 29 29 29 0a 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 69 6e 66 69 78 | ress."))))..;;.*.Transient.infix |
| a01e0 | 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 65 66 | es.for.rewriting..(transient-def |
| a0200 | 69 6e 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 | ine-infix.gptel--infix-rewrite-e |
| a0220 | 78 74 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 | xtra.()..."Chat.directive.(syste |
| a0240 | 6d 20 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 | m.message).to.use.for.rewriting. |
| a0260 | 6f 72 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 | or.refactoring."...:description. |
| a0280 | 22 52 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 | "Rewrite.instruction"...:class.' |
| a02a0 | 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 | gptel-lisp-variable...:variable. |
| a02c0 | 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 0a 20 20 3a 73 65 74 2d 76 | 'gptel--rewrite-message...:set-v |
| a02e0 | 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 3a | alue.#'gptel--set-with-scope...: |
| a0300 | 64 69 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 | display-nil."(None)"...:key."d". |
| a0320 | 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a 70 72 6f 6d 70 74 20 | ..:format.".%k.%d.%v"...:prompt. |
| a0340 | 28 63 6f 6e 63 61 74 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 20 28 22 20 67 70 74 65 6c 2d 2d | (concat."Instructions.(".gptel-- |
| a0360 | 72 65 61 64 2d 77 69 74 68 2d 70 72 65 66 69 78 2d 68 65 6c 70 20 22 29 20 22 29 0a 20 20 3a 72 | read-with-prefix-help.").")...:r |
| a0380 | 65 61 64 65 72 20 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 72 65 61 64 2d 6d 65 73 73 | eader.#'gptel--rewrite-read-mess |
| a03a0 | 61 67 65 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 6d 65 6e 74 | age)..(transient-define-argument |
| a03c0 | 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 55 20 28 29 | .gptel--infix-rewrite-diff:-U.() |
| a03e0 | 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 65 73 22 0a | ...:description."Context.lines". |
| a0400 | 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 20 3a 61 72 | ..:class.'transient-option...:ar |
| a0420 | 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 73 69 65 6e | gument."-U"...:reader.#'transien |
| a0440 | 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 73 69 65 6e | t-read-number-N0)..;;.*.Transien |
| a0460 | 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 72 61 6e 73 | t.suffixes.for.rewriting..(trans |
| a0480 | 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 78 | ient-define-suffix.gptel--suffix |
| a04a0 | 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 6c 20 63 61 | -rewrite-directive.(&optional.ca |
| a04c0 | 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 69 76 65 2e | ncel)..."Edit.Rewrite.directive. |
| a04e0 | 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 75 63 68 69 | ..CANCEL.is.used.to.avoid.touchi |
| a0500 | 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 73 2c 0a 67 | ng.dynamic.rewrite.directives,.g |
| a0520 | 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 3a 74 72 61 | enerated.from.functions."...:tra |
| a0540 | 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 20 3a 64 65 | nsient.'transient--do-exit...:de |
| a0560 | 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 20 64 69 72 | scription."Edit.full.rewrite.dir |
| a0580 | 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 63 74 69 76 | ective"...:key."s"...(interactiv |
| a05a0 | 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 75 6e 63 74 | e....(list.(and...........(funct |
| a05c0 | 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 65 29 0a 20 | ionp.gptel--rewrite-directive).. |
| a05e0 | 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 20 20 20 20 | .........(not.(y-or-n-p......... |
| a0600 | 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 73 20 64 79 | ........"Rewrite.directive.is.dy |
| a0620 | 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 73 20 63 75 | namically.generated:.Edit.its.cu |
| a0640 | 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 20 28 69 66 | rrent.value.instead?")))))...(if |
| a0660 | 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 74 20 63 61 | .cancel.(progn.(message."Edit.ca |
| a0680 | 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 20 28 63 61 | nceled").....................(ca |
| a06a0 | 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 72 69 74 65 | ll-interactively.#'gptel-rewrite |
| a06c0 | 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 65 20 27 67 | )).....(gptel--edit-directive.'g |
| a06e0 | 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 20 20 3a 63 | ptel--rewrite-directive.......:c |
| a0700 | 61 6c 6c 62 61 63 6b 20 28 6c 61 6d 62 64 61 20 28 5f 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 | allback.(lambda.(_).(call-intera |
| a0720 | 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 29 0a 20 20 20 20 20 20 | ctively.#'gptel-rewrite))....... |
| a0740 | 3a 73 65 74 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 | :setup.#'activate-mark)))..(tran |
| a0760 | 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 |
| a0780 | 78 2d 72 65 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 | x-rewrite.(&optional.rewrite-mes |
| a07a0 | 73 61 67 65 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 | sage.dry-run)..."Rewrite.or.refa |
| a07c0 | 63 74 6f 72 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 | ctor.region.contents."...:key."r |
| a07e0 | 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 | "...:description.(lambda.().(if. |
| a0800 | 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 |
| a0820 | 6c 2d 72 65 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 | l-rewrite)."Iterate"."Rewrite")) |
| a0840 | 0a 20 20 28 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 | ...(interactive.(list.gptel--rew |
| a0860 | 72 69 74 65 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 | rite-message))...(let*.((nosyste |
| a0880 | 6d 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 27 6e 6f 73 79 73 | m.(gptel--model-capable-p.'nosys |
| a08a0 | 74 65 6d 29 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 | tem))..........;;.Try.to.send.co |
| a08c0 | 6e 74 65 78 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 | ntext.with.system.message....... |
| a08e0 | 20 20 20 28 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 | ...(gptel-use-context........... |
| a0900 | 28 61 6e 64 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 | (and.gptel-use-context.(if.nosys |
| a0920 | 74 65 6d 20 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 | tem.'user.'system)))..........(p |
| a0940 | 72 6f 6d 70 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 | rompt.(list.(or.(get-char-proper |
| a0960 | 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 0a 20 20 20 20 20 | ty.(point).'gptel-rewrite)...... |
| a0980 | 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 |
| a09a0 | 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 72 65 67 69 6f 6e 2d 62 65 | bstring-no-properties.(region-be |
| a09c0 | 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 | ginning).(region-end)))......... |
| a09e0 | 20 20 20 20 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 | ..............."What.is.the.requ |
| a0a00 | 69 72 65 64 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 | ired.change?"................... |
| a0a20 | 20 20 20 20 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 | .....(or.rewrite-message.gptel-- |
| a0a40 | 72 65 77 72 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 | rewrite-message)))).....(when.no |
| a0a60 | 73 79 73 74 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 | system.......(setcar.prompt.(con |
| a0a80 | 63 61 74 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 | cat.(car-safe.(gptel--parse-dire |
| a0aa0 | 63 74 69 76 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 | ctive........................... |
| a0ac0 | 20 20 20 20 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 | ..............gptel--rewrite-dir |
| a0ae0 | 65 63 74 69 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 | ective.'raw))................... |
| a0b00 | 20 20 20 20 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 | ..........."\n\n".(car.prompt))) |
| a0b20 | 29 0a 20 20 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 | ).....(prog1.(gptel-request.prom |
| a0b40 | 70 74 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 | pt..............:dry-run.dry-run |
| a0b60 | 0a 20 20 20 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 | ..............:system.gptel--rew |
| a0b80 | 72 69 74 65 2d 64 69 72 65 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 | rite-directive..............:str |
| a0ba0 | 65 61 6d 20 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 | eam.gptel-stream..............:c |
| a0bc0 | 6f 6e 74 65 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 | ontext..............(let.((ov.(o |
| a0be0 | 72 20 28 63 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 | r.(cdr-safe.(get-char-property-a |
| a0c00 | 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 65 77 72 69 74 | nd-overlay.(point).'gptel-rewrit |
| a0c20 | 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 20 20 20 20 28 | e))............................( |
| a0c40 | 6d 61 6b 65 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 | make-overlay.(region-beginning). |
| a0c60 | 28 72 65 67 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 | (region-end).nil.t)))).......... |
| a0c80 | 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 63 61 74 65 67 6f 72 79 20 | ......(overlay-put.ov.'category. |
| a0ca0 | 27 67 70 74 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 | 'gptel)................(overlay- |
| a0cc0 | 70 75 74 20 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 | put.ov.'evaporate.t)............ |
| a0ce0 | 20 20 20 20 3b 3b 20 4e 4f 54 45 3a 20 53 77 69 74 63 68 20 74 6f 20 60 67 65 6e 65 72 61 74 65 | ....;;.NOTE:.Switch.to.`generate |
| a0d00 | 2d 6e 65 77 2d 62 75 66 66 65 72 27 20 61 66 74 65 72 20 77 65 20 64 72 6f 70 20 45 6d 61 63 73 | -new-buffer'.after.we.drop.Emacs |
| a0d20 | 20 32 37 2e 31 20 28 23 37 32 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | .27.1.(#724)................(con |
| a0d40 | 73 20 6f 76 20 28 67 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 | s.ov.(gptel--temp-buffer.".*gpte |
| a0d60 | 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 3a 74 72 61 | l-rewrite*")))..............:tra |
| a0d80 | 6e 73 66 6f 72 6d 73 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 74 72 61 6e 73 66 6f 72 6d 2d 66 | nsforms.gptel-prompt-transform-f |
| a0da0 | 75 6e 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 | unctions..............:callback. |
| a0dc0 | 23 27 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 63 61 6c 6c 62 61 63 6b 29 0a 20 20 20 20 20 | #'gptel--rewrite-callback)...... |
| a0de0 | 20 3b 3b 20 4d 6f 76 65 20 62 61 63 6b 20 73 6f 20 74 68 61 74 20 74 68 65 20 63 75 72 73 6f 72 | .;;.Move.back.so.that.the.cursor |
| a0e00 | 20 69 73 20 6f 6e 20 74 68 65 20 6f 76 65 72 6c 61 79 20 77 68 65 6e 20 64 6f 6e 65 2e 0a 20 20 | .is.on.the.overlay.when.done.... |
| a0e20 | 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 | ....(unless.(get-char-property.( |
| a0e40 | 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 28 | point).'gptel-rewrite).........( |
| a0e60 | 77 68 65 6e 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 20 28 62 | when.(=.(point).(region-end)).(b |
| a0e80 | 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 29 29 0a 20 20 20 20 20 20 28 64 65 61 63 74 69 76 | ackward-char.1))).......(deactiv |
| a0ea0 | 61 74 65 2d 6d 61 72 6b 29 29 29 29 0a 0a 3b 3b 20 41 6c 6c 6f 77 20 74 68 69 73 20 74 6f 20 62 | ate-mark))))..;;.Allow.this.to.b |
| a0ec0 | 65 20 63 61 6c 6c 65 64 20 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 66 6f 72 20 64 | e.called.non-interactively.for.d |
| a0ee0 | 72 79 20 72 75 6e 73 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 | ry.runs.(put.'gptel--suffix-rewr |
| a0f00 | 69 74 65 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 28 74 72 61 | ite.'interactive-only.nil)..(tra |
| a0f20 | 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 | nsient-define-suffix.gptel--suff |
| a0f40 | 69 78 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 73 77 69 74 63 | ix-rewrite-diff.(&optional.switc |
| a0f60 | 68 65 73 29 0a 20 20 22 44 69 66 66 20 4c 4c 4d 20 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74 20 | hes)..."Diff.LLM.output.against. |
| a0f80 | 62 75 66 66 65 72 2e 22 0a 20 20 3a 69 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d | buffer."...:if.(lambda.().gptel- |
| a0fa0 | 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 44 22 0a 20 20 | -rewrite-overlays)...:key."D"... |
| a0fc0 | 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 44 69 66 66 20 20 4c 4c 4d 20 72 65 77 72 69 74 65 73 | :description."Diff..LLM.rewrites |
| a0fe0 | 22 0a 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 65 6e | "...(interactive.(list.(transien |
| a1000 | 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 6e 64 | t-args.transient-current-command |
| a1020 | 29 29 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 64 69 66 66 20 67 70 74 65 6c | )))...(gptel--rewrite-diff.gptel |
| a1040 | 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 20 73 77 69 74 63 68 65 73 29 29 0a 0a 28 | --rewrite-overlays.switches))..( |
| a1060 | 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 2d 73 | transient-define-suffix.gptel--s |
| a1080 | 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 20 28 29 0a 20 20 22 45 64 69 66 66 20 | uffix-rewrite-ediff.()..."Ediff. |
| a10a0 | 4c 4c 4d 20 6f 75 74 70 75 74 20 61 67 61 69 6e 73 74 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 69 | LLM.output.against.buffer."...:i |
| a10c0 | 66 20 28 6c 61 6d 62 64 61 20 28 29 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 | f.(lambda.().gptel--rewrite-over |
| a10e0 | 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 45 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 | lays)...:key."E"...:description. |
| a1100 | 22 45 64 69 66 66 20 4c 4c 4d 20 72 65 77 72 69 74 65 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 | "Ediff.LLM.rewrites"...(interact |
| a1120 | 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 65 64 69 66 66 20 67 70 74 | ive)...(gptel--rewrite-ediff.gpt |
| a1140 | 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 |
| a1160 | 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 |
| a1180 | 65 77 72 69 74 65 2d 6d 65 72 67 65 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 4c 4c 4d 20 6f 75 | ewrite-merge.()..."Insert.LLM.ou |
| a11a0 | 74 70 75 74 20 61 73 20 6d 65 72 67 65 20 63 6f 6e 66 6c 69 63 74 73 22 0a 20 20 3a 69 66 20 28 | tput.as.merge.conflicts"...:if.( |
| a11c0 | 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 61 79 | lambda.().gptel--rewrite-overlay |
| a11e0 | 73 29 0a 20 20 3a 6b 65 79 20 22 4d 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 4d 65 | s)...:key."M"...:description."Me |
| a1200 | 72 67 65 20 77 69 74 68 20 63 6f 6e 66 6c 69 63 74 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | rge.with.conflicts"...(interacti |
| a1220 | 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 72 67 65 20 67 70 74 65 | ve)...(gptel--rewrite-merge.gpte |
| a1240 | 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 6e | l--rewrite-overlays))..(transien |
| a1260 | 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 |
| a1280 | 77 72 69 74 65 2d 61 63 63 65 70 74 20 28 29 0a 20 20 22 41 63 63 65 70 74 20 70 65 6e 64 69 6e | write-accept.()..."Accept.pendin |
| a12a0 | 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.( |
| a12c0 | 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 |
| a12e0 | 79 20 22 41 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 63 63 65 70 74 20 61 6e 64 | y."A"...:description."Accept.and |
| a1300 | 20 72 65 70 6c 61 63 65 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 | .replace"...(interactive)...(gpt |
| a1320 | 65 6c 2d 2d 72 65 77 72 69 74 65 2d 61 63 63 65 70 74 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 | el--rewrite-accept.gptel--rewrit |
| a1340 | 65 2d 6f 76 65 72 6c 61 79 73 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d | e-overlays))..(transient-define- |
| a1360 | 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 72 65 77 72 69 74 65 2d 72 65 6a | suffix.gptel--suffix-rewrite-rej |
| a1380 | 65 63 74 20 28 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 77 72 | ect.()..."Clear.pending.LLM.rewr |
| a13a0 | 69 74 65 73 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 | ites."...:if.(lambda.().gptel--r |
| a13c0 | 65 77 72 69 74 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 3a 6b 65 79 20 22 4b 22 0a 20 20 3a 64 | ewrite-overlays)...:key."K"...:d |
| a13e0 | 65 73 63 72 69 70 74 69 6f 6e 20 22 43 6c 65 61 72 20 70 65 6e 64 69 6e 67 20 72 65 77 72 69 74 | escription."Clear.pending.rewrit |
| a1400 | 65 73 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 67 70 74 65 6c 2d 2d 72 65 | es"...(interactive)...(gptel--re |
| a1420 | 77 72 69 74 65 2d 72 65 6a 65 63 74 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6f 76 65 72 | write-reject.gptel--rewrite-over |
| a1440 | 6c 61 79 73 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 72 65 77 72 69 74 65 29 | lays))..(provide.'gptel-rewrite) |
| a1460 | 0a 3b 3b 3b 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a | .;;;.gptel-rewrite.el.ends.here. |
| a1480 | 0a 3b 3b 20 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 | .;;.Local.Variables:.;;.outline- |
| a14a0 | 72 65 67 65 78 70 3a 20 22 5e 3b 3b 20 5c 5c 2a 2b 22 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 | regexp:."^;;.\\*+".;;.End:...... |
| a14c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a14e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a15a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a15c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a15e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1600 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2e 65 6c 00 00 00 00 00 | gptel-0.9.9/gptel-openai.el..... |
| a1620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1660 | 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 |
| a1680 | 30 30 37 33 30 35 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 32 35 00 20 30 00 00 00 | 0073057.00000000000.014225..0... |
| a16a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a16c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a16e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1700 | 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................... |
| a1720 | 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................... |
| a1740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a17a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a17c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a17e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a1800 | 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 |
| a1820 | 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 |
| a1840 | 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.( |
| a1860 | 43 29 20 32 30 32 33 2d 32 30 32 35 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 | C).2023-2025..Karthik.Chikmagalu |
| a1880 | 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 |
| a18a0 | 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> |
| a18c0 | 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 | ..;;.This.program.is.free.softwa |
| a18e0 | 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f | re;.you.can.redistribute.it.and/ |
| a1900 | 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 | or.modify.;;.it.under.the.terms. |
| a1920 | 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 | of.the.GNU.General.Public.Licens |
| a1940 | 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f | e.as.published.by.;;.the.Free.So |
| a1960 | 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f | ftware.Foundation,.either.versio |
| a1980 | 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f | n.3.of.the.License,.or.;;.(at.yo |
| a19a0 | 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b | ur.option).any.later.version...; |
| a19c0 | 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e | ;.This.program.is.distributed.in |
| a19e0 | 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 |
| a1a00 | 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 | ,.;;.but.WITHOUT.ANY.WARRANTY;.w |
| a1a20 | 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 | ithout.even.the.implied.warranty |
| a1a40 | 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 | .of.;;.MERCHANTABILITY.or.FITNES |
| a1a60 | 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 | S.FOR.A.PARTICULAR.PURPOSE...See |
| a1a80 | 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e | .the.;;.GNU.General.Public.Licen |
| a1aa0 | 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f | se.for.more.details...;;.You.sho |
| a1ac0 | 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 | uld.have.received.a.copy.of.the. |
| a1ae0 | 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c | GNU.General.Public.License.;;.al |
| a1b00 | 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 | ong.with.this.program...If.not,. |
| a1b20 | 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 | see.<https://www.gnu.org/license |
| a1b40 | 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 | s/>...;;;.Commentary:..;;.This.f |
| a1b60 | 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 68 61 74 47 50 54 | ile.adds.support.for.the.ChatGPT |
| a1b80 | 20 41 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 | .API.to.gptel..;;;.Code:.(requir |
| a1ba0 | 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c | e.'cl-generic).(eval-when-compil |
| a1bc0 | 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 69 72 65 20 | e...(require.'cl-lib)).(require. |
| a1be0 | 27 6d 61 70 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 28 64 65 66 | 'map)..(defvar.gptel-model).(def |
| a1c00 | 76 61 72 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d | var.gptel-stream).(defvar.gptel- |
| a1c20 | 75 73 65 2d 63 75 72 6c 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 | use-curl).(defvar.gptel-backend) |
| a1c40 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 28 64 65 66 | .(defvar.gptel-temperature).(def |
| a1c60 | 76 61 72 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 28 64 65 66 76 61 72 20 67 70 | var.gptel-max-tokens).(defvar.gp |
| a1c80 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 28 64 65 66 76 61 72 20 6a 73 6f | tel--system-message).(defvar.jso |
| a1ca0 | 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 6f 64 | n-object-type).(defvar.gptel-mod |
| a1cc0 | 65 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 72 65 73 70 6f 6e 73 65 29 | e).(defvar.gptel-track-response) |
| a1ce0 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 74 72 61 63 6b 2d 6d 65 64 69 61 29 0a 28 64 65 66 | .(defvar.gptel-track-media).(def |
| a1d00 | 76 61 72 20 67 70 74 65 6c 2d 75 73 65 2d 74 6f 6f 6c 73 29 0a 28 64 65 66 76 61 72 20 67 70 74 | var.gptel-use-tools).(defvar.gpt |
| a1d20 | 65 6c 2d 74 6f 6f 6c 73 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 29 | el-tools).(defvar.gptel--schema) |
| a1d40 | 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 29 0a | .(defvar.gptel--request-params). |
| a1d60 | 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- |
| a1d80 | 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"). |
| a1da0 | 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 73 65 36 34 2d | (declare-function.gptel--base64- |
| a1dc0 | 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 6e 63 74 69 6f | encode."gptel").(declare-functio |
| a1de0 | 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 65 6c 22 29 0a | n.gptel--trim-prefixes."gptel"). |
| a1e00 | 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 72 73 65 2d 6d | (declare-function.gptel--parse-m |
| a1e20 | 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 65 2d 66 75 6e | edia-links."gptel").(declare-fun |
| a1e40 | 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 70 | ction.gptel--model-capable-p."gp |
| a1e60 | 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 6d | tel").(declare-function.gptel--m |
| a1e80 | 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 2d 66 75 6e 63 | odel-name."gptel").(declare-func |
| a1ea0 | 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 74 65 6c 22 29 | tion.gptel--get-api-key."gptel") |
| a1ec0 | 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 73 65 72 74 | .(declare-function.gptel--insert |
| a1ee0 | 2d 66 69 6c 65 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 66 | -file-string."gptel").(declare-f |
| a1f00 | 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 | unction.prop-match-value."text-p |
| a1f20 | 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | roperty-search").(declare-functi |
| a1f40 | 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 | on.text-property-search-backward |
| a1f60 | 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 72 | ."text-property-search").(declar |
| a1f80 | 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 29 0a 28 64 65 | e-function.json-read."json").(de |
| a1fa0 | 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 | clare-function.gptel-prompt-pref |
| a1fc0 | 69 78 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 66 75 6e 63 | ix-string."gptel").(declare-func |
| a1fe0 | 74 69 6f 6e 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e | tion.gptel-response-prefix-strin |
| a2000 | 67 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 | g."gptel").(declare-function.gpt |
| a2020 | 65 6c 2d 2d 6d 65 72 67 65 2d 70 6c 69 73 74 73 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 | el--merge-plists."gptel").(decla |
| a2040 | 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 72 65 71 75 65 73 74 | re-function.gptel--model-request |
| a2060 | 2d 70 61 72 61 6d 73 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | -params."gptel").(declare-functi |
| a2080 | 6f 6e 20 67 70 74 65 6c 2d 63 6f 6e 74 65 78 74 2d 2d 77 72 61 70 20 22 67 70 74 65 6c 2d 63 6f | on.gptel-context--wrap."gptel-co |
| a20a0 | 6e 74 65 78 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d | ntext").(declare-function.gptel- |
| a20c0 | 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 | -inject-prompt."gptel").(declare |
| a20e0 | 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 20 22 67 70 | -function.gptel--parse-tools."gp |
| a2100 | 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 70 | tel").(declare-function.gptel--p |
| a2120 | 61 72 73 65 2d 73 63 68 65 6d 61 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 | arse-schema."gptel").(declare-fu |
| a2140 | 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 20 | nction.gptel--preprocess-schema. |
| a2160 | 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 6c | "gptel").(declare-function.gptel |
| a2180 | 2d 2d 64 69 73 70 61 74 63 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 22 67 70 74 65 6c 22 29 0a | --dispatch-schema-type."gptel"). |
| a21a0 | 0a 3b 3b 20 4a 53 4f 4e 20 63 6f 6e 76 65 72 73 69 6f 6e 20 73 65 6d 61 6e 74 69 63 73 20 75 73 | .;;.JSON.conversion.semantics.us |
| a21c0 | 65 64 20 62 79 20 67 70 74 65 6c 0a 3b 3b 20 65 6d 70 74 79 20 6f 62 6a 65 63 74 20 22 7b 7d 22 | ed.by.gptel.;;.empty.object."{}" |
| a21e0 | 20 3d 3e 20 65 6d 70 74 79 20 6c 69 73 74 20 27 28 29 20 3d 3d 20 6e 69 6c 0a 3b 3b 20 6e 75 6c | .=>.empty.list.'().==.nil.;;.nul |
| a2200 | 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 3a 6e 75 6c 6c 0a 3b 3b 20 66 61 6c 73 65 | l..............=>.:null.;;.false |
| a2220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 0a 0a 3b 3b 20 | .............=>.:json-false..;;. |
| a2240 | 54 4f 44 4f 28 74 6f 6f 6c 29 20 45 78 63 65 70 74 20 77 68 65 6e 20 72 65 61 64 69 6e 67 20 4a | TODO(tool).Except.when.reading.J |
| a2260 | 53 4f 4e 20 66 72 6f 6d 20 61 20 73 74 72 69 6e 67 2c 20 77 68 65 72 65 20 6e 75 6c 6c 20 3d 3e | SON.from.a.string,.where.null.=> |
| a2280 | 20 6e 69 6c 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 | .nil..(defmacro.gptel--json-read |
| a22a0 | 20 28 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 2d 62 | .()...(if.(fboundp.'json-parse-b |
| a22c0 | 75 66 66 65 72 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 70 61 72 73 65 2d 62 75 66 66 65 72 | uffer).......`(json-parse-buffer |
| a22e0 | 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 69 73 74 0a 20 20 20 | .........:object-type.'plist.... |
| a2300 | 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 20 20 20 | .....:null-object.:null......... |
| a2320 | 3a 66 61 6c 73 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 28 | :false-object.:json-false).....( |
| a2340 | 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d | require.'json).....(defvar.json- |
| a2360 | 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6e 75 | object-type).....(defvar.json-nu |
| a2380 | 6c 6c 29 0a 20 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 | ll).....(declare-function.json-r |
| a23a0 | 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 6a 73 6f 6e 2d | ead."json".()).....`(let.((json- |
| a23c0 | 6f 62 6a 65 63 74 2d 74 79 70 65 20 27 70 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | object-type.'plist)............( |
| a23e0 | 6a 73 6f 6e 2d 6e 75 6c 6c 20 3a 6e 75 6c 6c 29 29 0a 20 20 20 20 20 20 28 6a 73 6f 6e 2d 72 65 | json-null.:null)).......(json-re |
| a2400 | 61 64 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 | ad))))..(defmacro.gptel--json-re |
| a2420 | 61 64 2d 73 74 72 69 6e 67 20 28 73 74 72 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 | ad-string.(str)...(if.(fboundp.' |
| a2440 | 6a 73 6f 6e 2d 70 61 72 73 65 2d 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d | json-parse-string).......`(json- |
| a2460 | 70 61 72 73 65 2d 73 74 72 69 6e 67 20 2c 73 74 72 0a 20 20 20 20 20 20 20 20 3a 6f 62 6a 65 63 | parse-string.,str.........:objec |
| a2480 | 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 2d 6f 62 6a 65 | t-type.'plist.........:null-obje |
| a24a0 | 63 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 3a 66 61 6c 73 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 | ct.nil.........:false-object.:js |
| a24c0 | 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 73 6f 6e 29 0a 20 20 | on-false).....(require.'json)... |
| a24e0 | 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 65 29 0a 20 20 20 20 | ..(defvar.json-object-type)..... |
| a2500 | 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 2d 66 72 6f 6d | (declare-function.json-read-from |
| a2520 | 2d 73 74 72 69 6e 67 20 22 6a 73 6f 6e 22 20 28 29 29 0a 20 20 20 20 60 28 6c 65 74 20 28 28 6a | -string."json".()).....`(let.((j |
| a2540 | 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 20 27 70 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 | son-object-type.'plist)).......( |
| a2560 | 6a 73 6f 6e 2d 72 65 61 64 2d 66 72 6f 6d 2d 73 74 72 69 6e 67 20 2c 73 74 72 29 29 29 29 0a 0a | json-read-from-string.,str)))).. |
| a2580 | 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 6f 62 | (defmacro.gptel--json-encode.(ob |
| a25a0 | 6a 65 63 74 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e 2d 73 65 72 69 61 | ject)...(if.(fboundp.'json-seria |
| a25c0 | 6c 69 7a 65 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 20 2c 6f 62 | lize).......`(json-serialize.,ob |
| a25e0 | 6a 65 63 74 0a 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 3a 6e 75 6c 6c 0a | ject.........:null-object.:null. |
| a2600 | 20 20 20 20 20 20 20 20 3a 66 61 6c 73 65 2d 6f 62 6a 65 63 74 20 3a 6a 73 6f 6e 2d 66 61 6c 73 | ........:false-object.:json-fals |
| a2620 | 65 29 0a 20 20 20 20 28 72 65 71 75 69 72 65 20 27 6a 73 6f 6e 29 0a 20 20 20 20 28 64 65 66 76 | e).....(require.'json).....(defv |
| a2640 | 61 72 20 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d | ar.json-false).....(defvar.json- |
| a2660 | 6e 75 6c 6c 29 0a 20 20 20 20 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e | null).....(declare-function.json |
| a2680 | 2d 65 6e 63 6f 64 65 20 22 6a 73 6f 6e 22 20 28 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 60 28 6c | -encode."json".(object)).....`(l |
| a26a0 | 65 74 20 28 28 6a 73 6f 6e 2d 66 61 6c 73 65 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 | et.((json-false.:json-false).... |
| a26c0 | 20 20 20 20 20 20 20 20 28 6a 73 6f 6e 2d 6e 75 6c 6c 20 20 3a 6e 75 6c 6c 29 29 0a 20 20 20 20 | ........(json-null..:null))..... |
| a26e0 | 20 20 28 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 2c 6f 62 6a 65 63 74 29 29 29 29 0a 0a 28 64 65 66 | ..(json-encode.,object))))..(def |
| a2700 | 75 6e 20 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c 73 20 28 6d 6f 64 65 6c 73 | un.gptel--process-models.(models |
| a2720 | 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 69 74 65 6d 73 20 69 6e 20 4d 4f 44 45 4c 53 20 74 6f 20 | )..."Convert.items.in.MODELS.to. |
| a2740 | 73 79 6d 62 6f 6c 73 20 77 69 74 68 20 61 70 70 72 6f 70 72 69 61 74 65 20 70 72 6f 70 65 72 74 | symbols.with.appropriate.propert |
| a2760 | 69 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 | ies."...(let.((models-processed) |
| a2780 | 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6d 6f 64 65 6c 20 6d 6f 64 65 6c 73 29 0a 20 20 20 | ).....(dolist.(model.models).... |
| a27a0 | 20 20 20 28 63 6c 2d 65 74 79 70 65 63 61 73 65 20 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 28 | ...(cl-etypecase.model.........( |
| a27c0 | 73 74 72 69 6e 67 20 28 70 75 73 68 20 28 69 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 20 6d 6f 64 65 | string.(push.(intern.model).mode |
| a27e0 | 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 29 0a 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 | ls-processed)).........(symbol.( |
| a2800 | 70 75 73 68 20 6d 6f 64 65 6c 20 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 73 65 64 29 29 0a 20 20 | push.model.models-processed))... |
| a2820 | 20 20 20 20 20 20 28 63 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 63 6c 2d 64 65 73 74 72 75 63 | ......(cons..........(cl-destruc |
| a2840 | 74 75 72 69 6e 67 2d 62 69 6e 64 20 28 6e 61 6d 65 20 2e 20 70 72 6f 70 73 29 20 6d 6f 64 65 6c | turing-bind.(name...props).model |
| a2860 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 | ............(setf.(symbol-plist. |
| a2880 | 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 41 59 42 45 3a | name)..................;;.MAYBE: |
| a28a0 | 20 4d 65 72 67 69 6e 67 20 65 78 69 73 74 69 6e 67 20 73 79 6d 62 6f 6c 20 70 6c 69 73 74 73 20 | .Merging.existing.symbol.plists. |
| a28c0 | 69 73 20 73 61 66 65 72 2c 20 62 75 74 20 6d 61 6b 65 73 20 69 74 0a 20 20 20 20 20 20 20 20 20 | is.safer,.but.makes.it.......... |
| a28e0 | 20 20 20 20 20 20 20 20 3b 3b 20 64 69 66 66 69 63 75 6c 74 20 74 6f 20 72 65 73 65 74 20 61 20 | ........;;.difficult.to.reset.a. |
| a2900 | 73 79 6d 62 6f 6c 20 70 6c 69 73 74 2c 20 73 69 6e 63 65 20 72 65 6d 6f 76 69 6e 67 20 6b 65 79 | symbol.plist,.since.removing.key |
| a2920 | 73 20 66 72 6f 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 20 28 61 | s.from..................;;.it.(a |
| a2940 | 73 20 6f 70 70 6f 73 65 64 20 74 6f 20 73 65 74 74 69 6e 67 20 74 68 65 6d 20 74 6f 20 6e 69 6c | s.opposed.to.setting.them.to.nil |
| a2960 | 29 20 69 73 20 6d 6f 72 65 20 77 6f 72 6b 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ).is.more.work.................. |
| a2980 | 20 3b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 6d 61 70 2d 6d 65 72 | .;;..................;;.(map-mer |
| a29a0 | 67 65 20 27 70 6c 69 73 74 20 28 73 79 6d 62 6f 6c 2d 70 6c 69 73 74 20 6e 61 6d 65 29 20 70 72 | ge.'plist.(symbol-plist.name).pr |
| a29c0 | 6f 70 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 70 73 29 0a 20 20 20 | ops)..................props).... |
| a29e0 | 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 61 6d 65 20 6d 6f 64 65 6c 73 2d 70 72 6f 63 65 73 | ........(push.name.models-proces |
| a2a00 | 73 65 64 29 29 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6d 6f 64 65 6c 73 2d 70 72 | sed))))).....(nreverse.models-pr |
| a2a20 | 6f 63 65 73 73 65 64 29 29 29 0a 0a 3b 3b 3b 20 43 6f 6d 6d 6f 6e 20 62 61 63 6b 65 6e 64 20 73 | ocessed)))..;;;.Common.backend.s |
| a2a40 | 74 72 75 63 74 20 66 6f 72 20 4c 4c 4d 20 73 75 70 70 6f 72 74 0a 28 64 65 66 76 61 72 20 67 70 | truct.for.LLM.support.(defvar.gp |
| a2a60 | 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 | tel--known-backends.nil..."Alist |
| a2a80 | 20 6f 66 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 20 6b 6e 6f 77 6e 20 74 6f 20 67 70 74 65 6c 2e | .of.LLM.backends.known.to.gptel. |
| a2aa0 | 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 75 73 65 72 2d | ..This.is.an.alist.mapping.user- |
| a2ac0 | 70 72 6f 76 69 64 65 64 20 6e 61 6d 65 73 20 74 6f 20 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 | provided.names.to.backend.struct |
| a2ae0 | 73 2c 0a 73 65 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 2e 0a 0a 59 6f 75 20 63 61 6e | s,.see.`gptel-backend'...You.can |
| a2b00 | 20 68 61 76 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 62 61 63 6b 65 6e 64 20 70 6f 69 6e | .have.more.than.one.backend.poin |
| a2b20 | 74 69 6e 67 20 74 6f 20 74 68 65 20 73 61 6d 65 20 72 65 73 6f 75 72 63 65 0a 77 69 74 68 20 64 | ting.to.the.same.resource.with.d |
| a2b40 | 69 66 66 65 72 69 6e 67 20 73 65 74 74 69 6e 67 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | iffering.settings.")..(defun.gpt |
| a2b60 | 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 28 6e 61 6d 65 29 0a 20 20 22 52 65 74 75 72 6e 20 | el-get-backend.(name)..."Return. |
| a2b80 | 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 54 68 72 6f 77 20 | gptel.backend.with.NAME...Throw. |
| a2ba0 | 61 6e 20 65 72 72 6f 72 20 69 66 20 74 68 65 72 65 20 69 73 20 6e 6f 20 6d 61 74 63 68 2e 22 0a | an.error.if.there.is.no.match.". |
| a2bc0 | 20 20 28 6f 72 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 | ..(or.(alist-get.name.gptel--kno |
| a2be0 | 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 0a 20 20 20 | wn-backends.nil.nil.#'equal).... |
| a2c00 | 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 42 61 63 6b 65 6e 64 20 25 73 20 69 73 20 6e 6f | ...(user-error."Backend.%s.is.no |
| a2c20 | 74 20 6b 6e 6f 77 6e 20 74 6f 20 62 65 20 64 65 66 69 6e 65 64 22 0a 20 20 20 20 20 20 20 20 20 | t.known.to.be.defined".......... |
| a2c40 | 20 20 20 20 20 20 20 20 20 6e 61 6d 65 29 29 29 0a 0a 28 67 76 2d 64 65 66 69 6e 65 2d 73 65 74 | .........name)))..(gv-define-set |
| a2c60 | 74 65 72 20 67 70 74 65 6c 2d 67 65 74 2d 62 61 63 6b 65 6e 64 20 28 76 61 6c 20 6e 61 6d 65 29 | ter.gptel-get-backend.(val.name) |
| a2c80 | 0a 20 20 60 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 2c 6e 61 6d 65 20 67 70 74 65 6c | ...`(setf.(alist-get.,name.gptel |
| a2ca0 | 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 6e 69 6c 20 74 | --known-backends...........nil.t |
| a2cc0 | 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 2c 76 61 6c 29 29 0a 0a 28 63 6c 2d 64 65 66 73 74 72 | .#'equal).....,val))..(cl-defstr |
| a2ce0 | 75 63 74 0a 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 3a 63 6f 6e 73 74 72 75 | uct.....(gptel-backend.(:constru |
| a2d00 | 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 | ctor.gptel--make-backend)....... |
| a2d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 2d 63 6f 70 | .............(:copier.gptel--cop |
| a2d40 | 79 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 6e 61 6d 65 20 68 6f 73 74 20 68 65 61 64 65 72 20 70 | y-backend))...name.host.header.p |
| a2d60 | 72 6f 74 6f 63 6f 6c 20 73 74 72 65 61 6d 0a 20 20 65 6e 64 70 6f 69 6e 74 20 6b 65 79 20 6d 6f | rotocol.stream...endpoint.key.mo |
| a2d80 | 64 65 6c 73 20 75 72 6c 20 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 20 63 75 72 6c 2d 61 | dels.url.request-params...curl-a |
| a2da0 | 72 67 73 0a 20 20 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 20 6e 69 6c 20 3a 64 6f 63 75 6d 65 | rgs...(coding-system.nil.:docume |
| a2dc0 | 6e 74 61 74 69 6f 6e 20 22 43 61 6e 20 62 65 20 73 65 74 20 74 6f 20 60 62 69 6e 61 72 79 27 20 | ntation."Can.be.set.to.`binary'. |
| a2de0 | 69 66 20 74 68 65 20 62 61 63 6b 65 6e 64 20 65 78 70 65 63 74 73 20 6e 6f 6e 20 55 54 46 2d 38 | if.the.backend.expects.non.UTF-8 |
| a2e00 | 20 6f 75 74 70 75 74 2e 22 29 29 0a 0a 3b 3b 3b 20 4f 70 65 6e 41 49 20 28 43 68 61 74 47 50 54 | .output."))..;;;.OpenAI.(ChatGPT |
| a2e20 | 29 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6f 70 65 6e 61 69 20 28 3a | ).(cl-defstruct.(gptel-openai.(: |
| a2e40 | 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 29 0a | constructor.gptel--make-openai). |
| a2e60 | 20 20 20 20 20 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 | ............................(:co |
| a2e80 | 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pier.nil)....................... |
| a2ea0 | 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 29 | ......(:include.gptel-backend))) |
| a2ec0 | 0a 0a 3b 3b 20 48 6f 77 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 | ..;;.How.the.following.function. |
| a2ee0 | 77 6f 72 6b 73 3a 0a 3b 3b 0a 3b 3b 20 54 68 65 20 4f 70 65 6e 41 49 20 41 50 49 20 72 65 74 75 | works:.;;.;;.The.OpenAI.API.retu |
| a2f00 | 72 6e 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 64 61 74 61 20 63 68 75 6e 6b 73 2e 20 20 45 61 | rns.a.stream.of.data.chunks...Ea |
| a2f20 | 63 68 20 64 61 74 61 20 63 68 75 6e 6b 20 68 61 73 20 61 0a 3b 3b 20 63 6f 6d 70 6f 6e 65 6e 74 | ch.data.chunk.has.a.;;.component |
| a2f40 | 20 74 68 61 74 20 63 61 6e 20 62 65 20 70 61 72 73 65 64 20 61 73 20 4a 53 4f 4e 2e 20 20 42 65 | .that.can.be.parsed.as.JSON...Be |
| a2f60 | 73 69 64 65 73 20 6d 65 74 61 64 61 74 61 2c 20 65 61 63 68 20 63 68 75 6e 6b 20 68 61 73 0a 3b | sides.metadata,.each.chunk.has.; |
| a2f80 | 3b 20 65 69 74 68 65 72 20 73 6f 6d 65 20 74 65 78 74 20 6f 72 20 70 61 72 74 20 6f 66 20 61 20 | ;.either.some.text.or.part.of.a. |
| a2fa0 | 74 6f 6f 6c 20 63 61 6c 6c 2e 0a 3b 3b 0a 3b 3b 20 49 66 20 77 65 20 66 69 6e 64 20 74 65 78 74 | tool.call..;;.;;.If.we.find.text |
| a2fc0 | 2c 20 77 65 20 63 6f 6c 6c 65 63 74 20 69 74 20 69 6e 20 61 20 6c 69 73 74 2c 20 63 6f 6e 63 61 | ,.we.collect.it.in.a.list,.conca |
| a2fe0 | 74 20 74 68 65 6d 20 61 74 20 74 68 65 20 65 6e 64 20 61 6e 64 20 72 65 74 75 72 6e 0a 3b 3b 20 | t.them.at.the.end.and.return.;;. |
| a3000 | 69 74 2e 0a 3b 3b 0a 3b 3b 20 49 66 20 77 65 20 66 69 6e 64 20 70 61 72 74 20 6f 66 20 61 20 74 | it..;;.;;.If.we.find.part.of.a.t |
| a3020 | 6f 6f 6c 20 63 61 6c 6c 2c 20 77 65 20 62 65 67 69 6e 20 63 6f 6c 6c 65 63 74 69 6e 67 20 74 68 | ool.call,.we.begin.collecting.th |
| a3040 | 65 20 70 69 65 63 65 73 20 69 6e 0a 3b 3b 20 49 4e 46 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 | e.pieces.in.;;.INFO.->.:tool-use |
| a3060 | 2e 0a 3b 3b 0a 3b 3b 20 54 6f 6f 6c 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 20 | ..;;.;;.Tool.call.arguments.are. |
| a3080 | 74 68 65 6d 73 65 6c 76 65 73 20 4a 53 4f 4e 20 65 6e 63 6f 64 65 64 20 73 74 72 69 6e 67 73 20 | themselves.JSON.encoded.strings. |
| a30a0 | 63 61 6e 20 62 65 20 73 70 72 65 61 64 20 61 63 72 6f 73 73 0a 3b 3b 20 63 68 75 6e 6b 73 2e 20 | can.be.spread.across.;;.chunks.. |
| a30c0 | 20 57 65 20 63 6f 6c 6c 65 63 74 20 74 68 65 6d 20 69 6e 20 49 4e 46 4f 20 2d 3e 20 3a 70 61 72 | .We.collect.them.in.INFO.->.:par |
| a30e0 | 74 69 61 6c 5f 6a 73 6f 6e 2e 20 20 54 68 65 20 65 6e 64 20 6f 66 20 61 20 74 6f 6f 6c 20 63 61 | tial_json...The.end.of.a.tool.ca |
| a3100 | 6c 6c 0a 3b 3b 20 63 68 75 6e 6b 20 69 73 20 6d 61 72 6b 65 64 20 62 79 20 74 68 65 20 62 65 67 | ll.;;.chunk.is.marked.by.the.beg |
| a3120 | 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 6f 74 68 65 72 2c 20 6f 72 20 62 79 20 74 68 65 20 65 6e 64 | inning.of.another,.or.by.the.end |
| a3140 | 20 6f 66 20 74 68 65 20 73 74 72 65 61 6d 2e 20 20 49 6e 0a 3b 3b 20 65 69 74 68 65 72 20 63 61 | .of.the.stream...In.;;.either.ca |
| a3160 | 73 65 20 77 65 20 66 6c 61 74 65 6e 20 74 68 65 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 20 77 | se.we.flaten.the.:partial_json.w |
| a3180 | 65 20 68 61 76 65 20 74 68 75 73 20 66 61 72 2c 20 61 64 64 20 69 74 20 74 6f 20 74 68 65 20 74 | e.have.thus.far,.add.it.to.the.t |
| a31a0 | 6f 6f 6c 0a 3b 3b 20 63 61 6c 6c 20 73 70 65 63 20 69 6e 20 3a 74 6f 6f 6c 2d 75 73 65 20 61 6e | ool.;;.call.spec.in.:tool-use.an |
| a31c0 | 64 20 72 65 73 65 74 20 69 74 2e 20 20 46 69 6e 61 6c 6c 79 20 77 65 20 61 70 70 65 6e 64 20 74 | d.reset.it...Finally.we.append.t |
| a31e0 | 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 74 6f 20 74 68 65 0a 3b 3b 20 28 49 4e 46 4f 20 2d 3e | he.tool.calls.to.the.;;.(INFO.-> |
| a3200 | 20 3a 64 61 74 61 20 2d 3e 20 3a 6d 65 73 73 61 67 65 73 29 20 6c 69 73 74 20 6f 66 20 70 72 6f | .:data.->.:messages).list.of.pro |
| a3220 | 6d 70 74 73 2e 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 | mpts...(cl-defmethod.gptel-curl- |
| a3240 | 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f | -parse-stream.((_backend.gptel-o |
| a3260 | 70 65 6e 61 69 29 20 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 | penai).info)..."Parse.an.OpenAI. |
| a3280 | 41 50 49 20 64 61 74 61 20 73 74 72 65 61 6d 2e 0a 0a 52 65 74 75 72 6e 20 74 68 65 20 74 65 78 | API.data.stream...Return.the.tex |
| a32a0 | 74 20 72 65 73 70 6f 6e 73 65 20 61 63 63 75 6d 75 6c 61 74 65 64 20 73 69 6e 63 65 20 74 68 65 | t.response.accumulated.since.the |
| a32c0 | 20 6c 61 73 74 20 63 61 6c 6c 20 74 6f 20 74 68 69 73 0a 66 75 6e 63 74 69 6f 6e 2e 20 20 41 64 | .last.call.to.this.function...Ad |
| a32e0 | 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 6d 75 74 61 74 65 20 73 74 61 74 65 20 49 4e 46 4f 20 74 6f | ditionally,.mutate.state.INFO.to |
| a3300 | 20 61 64 64 20 74 6f 6f 6c 2d 75 73 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 66 20 74 68 65 | .add.tool-use.information.if.the |
| a3320 | 20 73 74 72 65 61 6d 20 63 6f 6e 74 61 69 6e 73 20 69 74 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 | .stream.contains.it."...(let*.(( |
| a3340 | 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 | content-strs)).....(condition-ca |
| a3360 | 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 | se.nil.........(while.(re-search |
| a3380 | 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 20 20 | -forward."^data:".nil.t)........ |
| a33a0 | 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 20 20 | ...(save-match-data............. |
| a33c0 | 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 2a 5c 5c 5b 44 4f 4e 45 5c 5c 5d 22 29 0a | (if.(looking-at.".*\\[DONE\\]"). |
| a33e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 65 20 73 74 72 65 61 6d 20 68 61 | ................;;.The.stream.ha |
| a3400 | 73 20 65 6e 64 65 64 2c 20 73 6f 20 77 65 20 64 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 | s.ended,.so.we.do.the.following. |
| a3420 | 74 68 69 6e 67 20 28 69 66 20 77 65 20 66 6f 75 6e 64 20 74 6f 6f 6c 20 63 61 6c 6c 73 29 0a 20 | thing.(if.we.found.tool.calls).. |
| a3440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2d 20 70 61 63 6b 20 74 6f 6f 6c 20 63 61 | ...............;;.-.pack.tool.ca |
| a3460 | 6c 6c 73 20 69 6e 74 6f 20 74 68 65 20 6d 65 73 73 61 67 65 73 20 70 72 6f 6d 70 74 73 20 6c 69 | lls.into.the.messages.prompts.li |
| a3480 | 73 74 20 74 6f 20 73 65 6e 64 20 28 49 4e 46 4f 20 2d 3e 20 3a 64 61 74 61 20 2d 3e 20 3a 6d 65 | st.to.send.(INFO.->.:data.->.:me |
| a34a0 | 73 73 61 67 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 2d 20 63 6f 6c | ssages).................;;.-.col |
| a34c0 | 6c 65 63 74 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 28 66 6f 72 6d 61 74 74 65 64 20 64 69 66 66 65 | lect.tool.calls.(formatted.diffe |
| a34e0 | 72 65 6e 74 6c 79 29 20 69 6e 74 6f 20 28 49 4e 46 4f 20 2d 3e 20 3a 74 6f 6f 6c 2d 75 73 65 29 | rently).into.(INFO.->.:tool-use) |
| a3500 | 0a 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 |
| a3520 | 6f 6c 2d 75 73 65 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 | ol-use.(plist-get.info.:tool-use |
| a3540 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | )).............................( |
| a3560 | 61 72 67 73 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 | args.(apply.#'concat.(nreverse.( |
| a3580 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 61 72 74 69 61 6c 5f 6a 73 6f 6e 29 29 29 29 | plist-get.info.:partial_json)))) |
| a35a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 | .............................(fu |
| a35c0 | 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 61 72 20 74 6f 6f 6c 2d 75 73 65 29 20 3a 66 75 | nc.(plist-get.(car.tool-use).:fu |
| a35e0 | 6e 63 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | nction)))...................(pli |
| a3600 | 73 74 2d 70 75 74 20 66 75 6e 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 61 72 67 73 29 20 3b 55 70 | st-put.func.:arguments.args).;Up |
| a3620 | 64 61 74 65 20 61 72 67 75 6d 65 6e 74 73 20 66 6f 72 20 6c 61 73 74 20 72 65 63 6f 72 64 65 64 | date.arguments.for.last.recorded |
| a3640 | 20 74 6f 6f 6c 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 | .tool...................(gptel-- |
| a3660 | 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | inject-prompt................... |
| a3680 | 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 20 28 70 6c 69 73 | .(plist-get.info.:backend).(plis |
| a36a0 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t-get.info.:data)............... |
| a36c0 | 20 20 20 20 20 60 28 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e | .....`(:role."assistant".:conten |
| a36e0 | 74 20 3a 6e 75 6c 6c 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 2c 28 76 63 6f 6e 63 61 74 20 74 6f | t.:null.:tool_calls.,(vconcat.to |
| a3700 | 6f 6c 2d 75 73 65 29 29 29 20 3b 20 3a 72 65 66 75 73 61 6c 20 3a 6e 75 6c 6c 0a 20 20 20 20 20 | ol-use))).;.:refusal.:null...... |
| a3720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 | .............(cl-loop........... |
| a3740 | 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 6f 6f 6c 2d 63 61 6c 6c 20 69 6e 20 74 6f 6f 6c 2d 75 | .........for.tool-call.in.tool-u |
| a3760 | 73 65 20 3b 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 61 6c 6c 20 73 70 65 63 73 20 66 6f | se.;.Construct.the.call.specs.fo |
| a3780 | 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 73 0a 20 20 20 | r.running.the.function.calls.... |
| a37a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 73 70 65 63 20 3d 20 28 70 6c 69 73 | ................for.spec.=.(plis |
| a37c0 | 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 0a 20 20 20 20 20 | t-get.tool-call.:function)...... |
| a37e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 3a 69 64 20 | ..............collect.(list.:id. |
| a3800 | 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 | (plist-get.tool-call.:id)....... |
| a3820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 | ...........................:name |
| a3840 | 20 28 70 6c 69 73 74 2d 67 65 74 20 73 70 65 63 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 | .(plist-get.spec.:name)......... |
| a3860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 73 20 28 | .........................:args.( |
| a3880 | 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d | ignore-errors.(gptel--json-read- |
| a38a0 | 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.......................... |
| a38c0 | 20 20 20 20 20 20 20 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 |
| a38e0 | 6c 69 73 74 2d 67 65 74 20 73 70 65 63 20 3a 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 | list-get.spec.:arguments)))).... |
| a3900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 63 61 6c 6c 2d 73 70 65 63 73 0a | ................into.call-specs. |
| a3920 | 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 28 70 6c 69 73 | ...................finally.(plis |
| a3940 | 74 2d 70 75 74 20 69 6e 66 6f 20 3a 74 6f 6f 6c 2d 75 73 65 20 63 61 6c 6c 2d 73 70 65 63 73 29 | t-put.info.:tool-use.call-specs) |
| a3960 | 29 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 28 28 72 65 | ))...............(when-let*.((re |
| a3980 | 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 20 | sponse.(gptel--json-read))...... |
| a39a0 | 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 74 61 20 28 6d 61 70 | .....................(delta.(map |
| a39c0 | 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. |
| a39e0 | 30 20 3a 64 65 6c 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | 0.:delta)))).................(if |
| a3a00 | 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 | -let*.((content.(plist-get.delta |
| a3a20 | 20 3a 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:content))..................... |
| a3a40 | 20 20 20 20 20 20 28 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 6f 6e 74 65 6e 74 20 3a 6e 75 6c | ......((not.(or.(eq.content.:nul |
| a3a60 | 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 29 0a | l).(string-empty-p.content))))). |
| a3a80 | 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 63 6f 6e 74 65 6e | ....................(push.conten |
| a3aa0 | 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.content-strs)................. |
| a3ac0 | 20 20 3b 3b 20 4e 6f 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2c 20 73 6f 20 6c 6f 6f 6b 20 66 6f | ..;;.No.text.content,.so.look.fo |
| a3ae0 | 72 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 28 | r.tool.calls...................( |
| a3b00 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 74 6f 6f 6c 2d 63 61 6c 6c 20 28 6d 61 70 2d 6e 65 73 74 65 | when-let*.((tool-call.(map-neste |
| a3b20 | 64 2d 65 6c 74 20 64 65 6c 74 61 20 27 28 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 20 30 29 29 29 0a 20 | d-elt.delta.'(:tool_calls.0))).. |
| a3b40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 | .............................(fu |
| a3b60 | 6e 63 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 66 75 6e 63 74 69 6f | nc.(plist-get.tool-call.:functio |
| a3b80 | 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e | n))).....................(if.(an |
| a3ba0 | 64 20 28 70 6c 69 73 74 2d 67 65 74 20 66 75 6e 63 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 | d.(plist-get.func.:name)........ |
| a3bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 45 4d 50 3a 20 54 | ......................;;.TEMP:.T |
| a3be0 | 68 69 73 20 63 68 65 63 6b 20 69 73 20 66 6f 72 20 6c 69 74 65 6c 6c 6d 20 63 6f 6d 70 61 74 69 | his.check.is.for.litellm.compati |
| a3c00 | 62 69 6c 69 74 79 2c 20 73 68 6f 75 6c 64 20 62 65 20 72 65 6d 6f 76 65 64 0a 20 20 20 20 20 20 | bility,.should.be.removed....... |
| a3c20 | 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 65 71 75 | .......................(not.(equ |
| a3c40 | 61 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 66 75 6e 63 20 3a 6e 61 6d 65 29 20 22 6e 75 6c 6c 22 | al.(plist-get.func.:name)."null" |
| a3c60 | 29 29 29 20 3b 20 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 20 | ))).;.new.tool.block.begins..... |
| a3c80 | 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 20 | ....................(progn...... |
| a3ca0 | 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 20 | .....................(when-let*. |
| a3cc0 | 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 69 | ((partial.(plist-get.info.:parti |
| a3ce0 | 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 20 | al_json)))...................... |
| a3d00 | 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 63 | .......(let*.((prev-tool-call.(c |
| a3d20 | 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 0a | ar.(plist-get.info.:tool-use))). |
| a3d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a3d60 | 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 6f | ...(prev-func.(plist-get.prev-to |
| a3d80 | 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 20 | ol-call.:function)))............ |
| a3da0 | 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 72 | ...................(plist-put.pr |
| a3dc0 | 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 20 | ev-func.:arguments.;update.args. |
| a3de0 | 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 20 | for.old.tool.block.............. |
| a3e00 | 20 20 20 20 20 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 | ............................(app |
| a3e20 | 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 74 | ly.#'concat.(nreverse.(plist-get |
| a3e40 | 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 20 | .info.:partial_json)))))........ |
| a3e60 | 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. |
| a3e80 | 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 20 | info.:partial_json.nil)).;clear. |
| a3ea0 | 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 72 | out.finished.chain.of.partial.ar |
| a3ec0 | 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 20 | gs...........................;;. |
| a3ee0 | 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 6d | Start.new.chain.of.partial.argum |
| a3f00 | 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 20 | ent.strings..................... |
| a3f20 | 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 6a | ......(plist-put.info.:partial_j |
| a3f40 | 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 6d | son.(list.(plist-get.func.:argum |
| a3f60 | 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 20 | ents)))......................... |
| a3f80 | 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 72 | ..;;.NOTE:.Do.NOT.use.`push'.for |
| a3fa0 | 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 74 | .this,.it.prepends.and.we.lose.t |
| a3fc0 | 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 20 | he.reference.................... |
| a3fe0 | 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 65 | .......(plist-put.info.:tool-use |
| a4000 | 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 6f | .(cons.tool-call.(plist-get.info |
| a4020 | 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 20 | .:tool-use)))).................. |
| a4040 | 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 73 | .....;;.old.tool.block.continues |
| a4060 | 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 6e | ,.so.continue.collecting.argumen |
| a4080 | 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 20 | ts.in.:partial_json............. |
| a40a0 | 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 63 | ...........(push.(plist-get.func |
| a40c0 | 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 61 | .:arguments).(plist-get.info.:pa |
| a40e0 | 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 20 | rtial_json)))))................. |
| a4100 | 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 63 | ;;.Check.for.reasoning.blocks,.c |
| a4120 | 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 72 | urrently.only.used.by.Openrouter |
| a4140 | 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 65 71 20 28 70 6c | .................(unless.(eq.(pl |
| a4160 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 29 20 27 | ist-get.info.:reasoning-block).' |
| a4180 | 64 6f 6e 65 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 2a | done)...................(if-let* |
| a41a0 | 20 28 28 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 28 6f 72 20 28 70 6c 69 73 74 2d 67 65 | .((reasoning-chunk.(or.(plist-ge |
| a41c0 | 74 20 64 65 6c 74 61 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 3b 66 6f 72 20 4f 70 65 6e 72 6f 75 | t.delta.:reasoning).;for.Openrou |
| a41e0 | 74 65 72 20 61 6e 64 20 63 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ter.and.co...................... |
| a4200 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 | ............................(pli |
| a4220 | 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) |
| a4240 | 29 29 20 3b 66 6f 72 20 44 65 65 70 73 65 65 6b 2c 20 4c 6c 61 6d 61 2e 63 70 70 0a 20 20 20 20 | )).;for.Deepseek,.Llama.cpp..... |
| a4260 | 20 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 6f | ........................((not.(o |
| a4280 | 72 20 28 65 71 20 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 20 3a 6e 75 6c 6c 29 20 28 73 74 | r.(eq.reasoning-chunk.:null).(st |
| a42a0 | 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 61 73 6f 6e 69 6e 67 2d 63 68 75 6e 6b 29 29 29 29 | ring-empty-p.reasoning-chunk)))) |
| a42c0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 | ).......................(plist-p |
| a42e0 | 75 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ut.info.:reasoning.............. |
| a4300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 70 6c 69 | ....................(concat.(pli |
| a4320 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 72 65 61 73 6f 6e 69 6e | st-get.info.:reasoning).reasonin |
| a4340 | 67 2d 63 68 75 6e 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | g-chunk)).....................;; |
| a4360 | 20 44 6f 6e 65 20 77 69 74 68 20 72 65 61 73 6f 6e 69 6e 67 20 69 66 20 77 65 20 67 65 74 20 6e | .Done.with.reasoning.if.we.get.n |
| a4380 | 6f 6e 2d 65 6d 70 74 79 20 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | on-empty.content................ |
| a43a0 | 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 28 70 6c 69 73 74 2d 6d 65 6d 62 65 72 20 69 6e | .....(if-let*.(((plist-member.in |
| a43c0 | 66 6f 20 3a 72 65 61 73 6f 6e 69 6e 67 29 29 20 3b 49 73 20 74 68 69 73 20 61 20 72 65 61 73 6f | fo.:reasoning)).;Is.this.a.reaso |
| a43e0 | 6e 69 6e 67 20 6d 6f 64 65 6c 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ning.model?..................... |
| a4400 | 20 20 20 20 20 20 20 20 20 20 28 63 20 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 | ..........(c.(plist-get.delta.:c |
| a4420 | 6f 6e 74 65 6e 74 29 29 20 3b 53 74 61 72 74 65 64 20 72 65 63 65 69 76 69 6e 67 20 74 65 78 74 | ontent)).;Started.receiving.text |
| a4440 | 20 63 6f 6e 74 65 6e 74 3f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .content?....................... |
| a4460 | 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 6f 72 20 28 65 71 20 63 20 3a 6e 75 6c 6c 29 20 28 | ........((not.(or.(eq.c.:null).( |
| a4480 | 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 63 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | string-blank-p.c)))))........... |
| a44a0 | 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 72 | ..............(plist-put.info.:r |
| a44c0 | 65 61 73 6f 6e 69 6e 67 2d 62 6c 6f 63 6b 20 74 29 29 29 29 29 29 29 29 20 3b 53 69 67 6e 61 6c | easoning-block.t)))))))).;Signal |
| a44e0 | 20 65 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 28 65 | .end.of.reasoning.block.......(e |
| a4500 | 72 72 6f 72 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 | rror.(goto-char.(match-beginning |
| a4520 | 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 | .0)))).....(apply.#'concat.(nrev |
| a4540 | 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 | erse.content-strs))))..(cl-defme |
| a4560 | 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 | thod.gptel--parse-response.((_ba |
| a4580 | 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 | ckend.gptel-openai).response.inf |
| a45a0 | 6f 29 0a 20 20 22 50 61 72 73 65 20 61 6e 20 4f 70 65 6e 41 49 20 28 6e 6f 6e 2d 73 74 72 65 61 | o)..."Parse.an.OpenAI.(non-strea |
| a45c0 | 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 6e | ming).RESPONSE.and.return.respon |
| a45e0 | 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 68 | se.text...Mutate.state.INFO.with |
| a4600 | 20 72 65 73 70 6f 6e 73 65 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 | .response.metadata."...(let*.((c |
| a4620 | 68 6f 69 63 65 30 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 | hoice0.(map-nested-elt.response. |
| a4640 | 27 28 3a 63 68 6f 69 63 65 73 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 | '(:choices.0)))..........(messag |
| a4660 | 65 20 28 70 6c 69 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 6d 65 73 73 61 67 65 29 29 0a | e.(plist-get.choice0.:message)). |
| a4680 | 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 65 73 | .........(content.(plist-get.mes |
| a46a0 | 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | sage.:content))).....(plist-put. |
| a46c0 | 69 6e 66 6f 20 3a 73 74 6f 70 2d 72 65 61 73 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:stop-reason............... |
| a46e0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 63 68 6f 69 63 65 30 20 3a 66 69 6e 69 73 68 5f 72 65 61 73 | .(plist-get.choice0.:finish_reas |
| a4700 | 6f 6e 29 29 0a 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 6f 75 74 70 75 74 | on)).....(plist-put.info.:output |
| a4720 | 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 2d 6e 65 73 74 | -tokens................(map-nest |
| a4740 | 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 75 73 61 67 65 20 3a 63 6f 6d 70 6c 65 | ed-elt.response.'(:usage.:comple |
| a4760 | 74 69 6f 6e 5f 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 3b 3b 20 4f 70 65 6e 41 49 20 72 65 74 | tion_tokens))).....;;.OpenAI.ret |
| a4780 | 75 72 6e 73 20 65 69 74 68 65 72 20 6e 6f 6e 2d 62 6c 61 6e 6b 20 74 65 78 74 20 63 6f 6e 74 65 | urns.either.non-blank.text.conte |
| a47a0 | 6e 74 20 6f 72 20 61 20 74 6f 6f 6c 20 63 61 6c 6c 2c 20 6e 6f 74 20 62 6f 74 68 2e 0a 20 20 20 | nt.or.a.tool.call,.not.both..... |
| a47c0 | 20 3b 3b 20 48 6f 77 65 76 65 72 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 41 50 | .;;.However.OpenAI-compatible.AP |
| a47e0 | 49 73 20 6c 69 6b 65 20 6c 6c 61 6d 61 2e 63 70 70 20 63 61 6e 20 69 6e 63 6c 75 64 65 20 62 6f | Is.like.llama.cpp.can.include.bo |
| a4800 | 74 68 20 28 23 38 31 39 29 2c 20 73 6f 0a 20 20 20 20 3b 3b 20 77 65 20 63 68 65 63 6b 20 66 6f | th.(#819),.so.....;;.we.check.fo |
| a4820 | 72 20 62 6f 74 68 20 74 6f 6f 6c 20 63 61 6c 6c 73 20 61 6e 64 20 72 65 73 70 6f 6e 73 65 73 20 | r.both.tool.calls.and.responses. |
| a4840 | 69 6e 64 65 70 65 6e 64 65 6e 74 6c 79 2e 0a 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 | independently......(when-let*.(( |
| a4860 | 74 6f 6f 6c 2d 63 61 6c 6c 73 20 28 70 6c 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 74 | tool-calls.(plist-get.message.:t |
| a4880 | 6f 6f 6c 5f 63 61 6c 6c 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f | ool_calls)).................((no |
| a48a0 | 74 20 28 65 71 20 74 6f 6f 6c 2d 63 61 6c 6c 73 20 3a 6e 75 6c 6c 29 29 29 29 0a 20 20 20 20 20 | t.(eq.tool-calls.:null))))...... |
| a48c0 | 20 28 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 20 20 20 20 20 20 20 20 3b 20 | .(gptel--inject-prompt........;. |
| a48e0 | 46 69 72 73 74 20 61 64 64 20 74 68 65 20 74 6f 6f 6c 20 63 61 6c 6c 20 74 6f 20 74 68 65 20 70 | First.add.the.tool.call.to.the.p |
| a4900 | 72 6f 6d 70 74 73 20 6c 69 73 74 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | rompts.list........(plist-get.in |
| a4920 | 66 6f 20 3a 62 61 63 6b 65 6e 64 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 | fo.:backend).(plist-get.info.:da |
| a4940 | 74 61 29 20 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 20 20 20 20 | ta).message).......(cl-loop..... |
| a4960 | 20 20 20 20 20 20 20 20 3b 54 68 65 6e 20 63 61 70 74 75 72 65 20 74 68 65 20 74 6f 6f 6c 20 63 | ........;Then.capture.the.tool.c |
| a4980 | 61 6c 6c 20 64 61 74 61 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 74 6f 6f 6c 0a 20 20 | all.data.for.running.the.tool... |
| a49a0 | 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 6c 2d 63 | .....for.tool-call.across.tool-c |
| a49c0 | 61 6c 6c 73 20 20 3b 72 65 70 6c 61 63 65 20 22 3a 61 72 67 75 6d 65 6e 74 73 22 20 77 69 74 68 | alls..;replace.":arguments".with |
| a49e0 | 20 22 3a 61 72 67 73 22 0a 20 20 20 20 20 20 20 66 6f 72 20 63 61 6c 6c 2d 73 70 65 63 20 3d 20 | .":args"........for.call-spec.=. |
| a4a00 | 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 2d 63 | (copy-sequence.(plist-get.tool-c |
| a4a20 | 61 6c 6c 20 3a 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 64 6f 20 28 69 67 6e 6f 72 | all.:function))........do.(ignor |
| a4a40 | 65 2d 65 72 72 6f 72 73 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 61 | e-errors.(plist-put.call-spec.:a |
| a4a60 | 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 20 20 | rgs............................. |
| a4a80 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 2d 73 74 72 69 6e 67 | ........(gptel--json-read-string |
| a4aa0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a4ac0 | 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 61 72 67 75 | ......(plist-get.call-spec.:argu |
| a4ae0 | 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 63 61 6c 6c | ments))))........(plist-put.call |
| a4b00 | 2d 73 70 65 63 20 3a 61 72 67 75 6d 65 6e 74 73 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 28 70 6c | -spec.:arguments.nil)........(pl |
| a4b20 | 69 73 74 2d 70 75 74 20 63 61 6c 6c 2d 73 70 65 63 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 | ist-put.call-spec.:id.(plist-get |
| a4b40 | 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 69 64 29 29 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 | .tool-call.:id))........collect. |
| a4b60 | 63 61 6c 6c 2d 73 70 65 63 20 69 6e 74 6f 20 74 6f 6f 6c 2d 75 73 65 0a 20 20 20 20 20 20 20 66 | call-spec.into.tool-use........f |
| a4b80 | 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 65 | inally.(plist-put.info.:tool-use |
| a4ba0 | 20 74 6f 6f 6c 2d 75 73 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6f 6e 74 | .tool-use))).....(when.(and.cont |
| a4bc0 | 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 6c 6c 29 20 | ent.(not.(or.(eq.content.:null). |
| a4be0 | 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 20 20 20 20 | (string-empty-p.content))))..... |
| a4c00 | 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 6f 72 20 28 70 6c | ..(when-let*.((reasoning.(or.(pl |
| a4c20 | 69 73 74 2d 67 65 74 20 6d 65 73 73 61 67 65 20 3a 72 65 61 73 6f 6e 69 6e 67 29 20 3b 66 6f 72 | ist-get.message.:reasoning).;for |
| a4c40 | 20 4f 70 65 6e 72 6f 75 74 65 72 20 61 6e 64 20 63 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .Openrouter.and.co.............. |
| a4c60 | 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 6d | ....................(plist-get.m |
| a4c80 | 65 73 73 61 67 65 20 3a 72 65 61 73 6f 6e 69 6e 67 5f 63 6f 6e 74 65 6e 74 29 29 29 20 3b 66 6f | essage.:reasoning_content))).;fo |
| a4ca0 | 72 20 44 65 65 70 73 65 65 6b 2c 20 4c 6c 61 6d 61 2e 63 70 70 0a 20 20 20 20 20 20 20 20 20 20 | r.Deepseek,.Llama.cpp........... |
| a4cc0 | 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 72 65 61 73 6f 6e 69 6e 67 | ........((and.(stringp.reasoning |
| a4ce0 | 29 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 61 73 6f 6e 69 6e 67 | ).(not.(string-empty-p.reasoning |
| a4d00 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 72 | ))))).........(plist-put.info.:r |
| a4d20 | 65 61 73 6f 6e 69 6e 67 20 72 65 61 73 6f 6e 69 6e 67 29 29 0a 20 20 20 20 20 20 63 6f 6e 74 65 | easoning.reasoning)).......conte |
| a4d40 | 6e 74 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 | nt)))..(cl-defmethod.gptel--requ |
| a4d60 | 65 73 74 2d 64 61 74 61 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 | est-data.((backend.gptel-openai) |
| a4d80 | 20 70 72 6f 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 | .prompts)..."JSON.encode.PROMPTS |
| a4da0 | 20 66 6f 72 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 77 68 65 | .for.sending.to.ChatGPT."...(whe |
| a4dc0 | 6e 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 28 70 75 73 | n.gptel--system-message.....(pus |
| a4de0 | 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 73 79 73 74 65 6d 22 0a 20 20 20 20 20 20 20 20 20 | h.(list.:role."system".......... |
| a4e00 | 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | .......:content.gptel--system-me |
| a4e20 | 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 28 6c 65 | ssage)...........prompts))...(le |
| a4e40 | 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 6f | t.((prompts-plist..........`(:mo |
| a4e60 | 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 6f | del.,(gptel--model-name.gptel-mo |
| a4e80 | 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 65 73 73 61 67 65 73 20 5b 2c 40 70 72 6f | del)............:messages.[,@pro |
| a4ea0 | 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 67 70 | mpts]............:stream.,(or.gp |
| a4ec0 | 74 65 6c 2d 73 74 72 65 61 6d 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 0a 20 20 20 20 20 20 | tel-stream.:json-false)))....... |
| a4ee0 | 20 20 28 72 65 61 73 6f 6e 69 6e 67 2d 6d 6f 64 65 6c 2d 70 20 3b 20 54 4f 44 4f 3a 20 45 6d 62 | ..(reasoning-model-p.;.TODO:.Emb |
| a4f00 | 65 64 20 74 68 69 73 20 63 61 70 61 62 69 6c 69 74 79 20 69 6e 20 74 68 65 20 6d 6f 64 65 6c 27 | ed.this.capability.in.the.model' |
| a4f20 | 73 20 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 20 67 70 74 65 | s.properties..........(memq.gpte |
| a4f40 | 6c 2d 6d 6f 64 65 6c 20 27 28 6f 31 20 6f 31 2d 70 72 65 76 69 65 77 20 6f 31 2d 6d 69 6e 69 20 | l-model.'(o1.o1-preview.o1-mini. |
| a4f60 | 6f 33 2d 6d 69 6e 69 20 6f 33 20 6f 34 2d 6d 69 6e 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | o3-mini.o3.o4-mini.............. |
| a4f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 2d 35 20 67 70 74 2d 35 2d 6d | ...................gpt-5.gpt-5-m |
| a4fa0 | 69 6e 69 20 67 70 74 2d 35 2d 6e 61 6e 6f 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e | ini.gpt-5-nano)))).....(when.(an |
| a4fc0 | 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 65 61 73 6f 6e 69 | d.gptel-temperature.(not.reasoni |
| a4fe0 | 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 70 75 74 20 70 72 | ng-model-p)).......(plist-put.pr |
| a5000 | 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 70 74 65 6c 2d 74 | ompts-plist.:temperature.gptel-t |
| a5020 | 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 65 6c 2d 75 73 65 | emperature)).....(when.gptel-use |
| a5040 | 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 65 6c 2d 75 73 65 | -tools.......(when.(eq.gptel-use |
| a5060 | 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 69 73 74 2d 70 75 | -tools.'force).........(plist-pu |
| a5080 | 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 63 65 20 22 72 65 | t.prompts-plist.:tool_choice."re |
| a50a0 | 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 6c 2d 74 6f 6f 6c | quired")).......(when.gptel-tool |
| a50c0 | 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 70 6c 69 | s.........(plist-put.prompts-pli |
| a50e0 | 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 28 67 70 | st.:tools....................(gp |
| a5100 | 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 74 | tel--parse-tools.backend.gptel-t |
| a5120 | 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 73 6f 6e 69 6e 67 | ools)).........(unless.reasoning |
| a5140 | 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 70 75 74 20 70 72 | -model-p...........(plist-put.pr |
| a5160 | 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 5f 63 61 6c 6c 73 | ompts-plist.:parallel_tool_calls |
| a5180 | 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 2d 74 6f 6b 65 6e | .t)))).....(when.gptel-max-token |
| a51a0 | 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 49 20 41 50 49 20 | s.......;;.HACK:.The.OpenAI.API. |
| a51c0 | 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 20 62 75 74 20 77 | has.deprecated.max_tokens,.but.w |
| a51e0 | 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 6f 72 20 4f 70 65 | e.still.need.it.......;;.for.Ope |
| a5200 | 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 50 54 34 41 6c 6c | nAI-compatible.APIs.like.GPT4All |
| a5220 | 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 72 6f 6d 70 74 73 | .(#485).......(plist-put.prompts |
| a5240 | 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 66 20 72 65 61 73 | -plist..................(if.reas |
| a5260 | 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 69 6f 6e 5f 74 6f | oning-model-p.:max_completion_to |
| a5280 | 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 20 20 20 20 20 20 | kens.:max_tokens)............... |
| a52a0 | 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 28 77 68 65 6e 20 | ...gptel-max-tokens)).....(when. |
| a52c0 | 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 | gptel--schema.......(plist-put.p |
| a52e0 | 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 3a 72 | rompts-plist..................:r |
| a5300 | 65 73 70 6f 6e 73 65 5f 66 6f 72 6d 61 74 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 73 63 68 | esponse_format.(gptel--parse-sch |
| a5320 | 65 6d 61 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 73 63 68 65 6d 61 29 29 29 0a 20 20 20 | ema.backend.gptel--schema))).... |
| a5340 | 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 6d 6f | .;;.Merge.request.params.with.mo |
| a5360 | 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 70 74 | del.and.backend.params......(gpt |
| a5380 | 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 70 6c | el--merge-plists......prompts-pl |
| a53a0 | 69 73 74 0a 20 20 20 20 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 0a 20 | ist......gptel--request-params.. |
| a53c0 | 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 61 6d | ....(gptel-backend-request-param |
| a53e0 | 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 6d 6f | s.gptel-backend)......(gptel--mo |
| a5400 | 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 6c 29 | del-request-params..gptel-model) |
| a5420 | 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d | )))..(cl-defmethod.gptel--parse- |
| a5440 | 73 63 68 65 6d 61 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 | schema.((_backend.gptel-openai). |
| a5460 | 73 63 68 65 6d 61 29 0a 20 20 28 6c 69 73 74 20 3a 74 79 70 65 20 22 6a 73 6f 6e 5f 73 63 68 65 | schema)...(list.:type."json_sche |
| a5480 | 6d 61 22 0a 20 20 20 20 20 20 20 20 3a 6a 73 6f 6e 5f 73 63 68 65 6d 61 0a 20 20 20 20 20 20 20 | ma".........:json_schema........ |
| a54a0 | 20 28 6c 69 73 74 20 3a 6e 61 6d 65 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 | .(list.:name.(md5.(format."%s".( |
| a54c0 | 72 61 6e 64 6f 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 63 68 65 6d 61 20 | random)))...............:schema. |
| a54e0 | 28 67 70 74 65 6c 2d 2d 70 72 65 70 72 6f 63 65 73 73 2d 73 63 68 65 6d 61 0a 20 20 20 20 20 20 | (gptel--preprocess-schema....... |
| a5500 | 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 69 73 70 61 74 63 | .................(gptel--dispatc |
| a5520 | 68 2d 73 63 68 65 6d 61 2d 74 79 70 65 20 73 63 68 65 6d 61 29 29 0a 20 20 20 20 20 20 20 20 20 | h-schema-type.schema)).......... |
| a5540 | 20 20 20 20 20 3a 73 74 72 69 63 74 20 74 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 | .....:strict.t)))..;;.NOTE:.No.` |
| a5560 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 73 27 20 6d 65 74 68 6f 64 20 72 65 71 75 69 | gptel--parse-tools'.method.requi |
| a5580 | 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2c 20 73 69 6e 63 65 20 74 68 69 73 | red.for.gptel-openai,.since.this |
| a55a0 | 20 69 73 0a 3b 3b 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 | .is.;;.handled.by.its.defgeneric |
| a55c0 | 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 | .implementation..(cl-defmethod.g |
| a55e0 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 28 28 5f 62 61 63 6b | ptel--parse-tool-results.((_back |
| a5600 | 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 74 6f 6f 6c 2d 75 73 65 29 0a 20 20 22 52 | end.gptel-openai).tool-use)..."R |
| a5620 | 65 74 75 72 6e 20 61 20 70 72 6f 6d 70 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 6f 6f 6c 20 63 | eturn.a.prompt.containing.tool.c |
| a5640 | 61 6c 6c 20 72 65 73 75 6c 74 73 20 69 6e 20 54 4f 4f 4c 2d 55 53 45 2e 22 0a 20 20 3b 3b 20 28 | all.results.in.TOOL-USE."...;;.( |
| a5660 | 64 65 63 6c 61 72 65 20 28 73 69 64 65 2d 65 66 66 65 63 74 2d 66 72 65 65 20 74 29 29 0a 20 20 | declare.(side-effect-free.t))... |
| a5680 | 28 6d 61 70 63 61 72 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 74 6f 6f 6c 2d 63 61 6c 6c 29 0a 20 | (mapcar....(lambda.(tool-call).. |
| a56a0 | 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 3a 72 6f 6c 65 20 22 74 6f 6f 6c 22 0a 20 20 20 | ....(list.......:role."tool".... |
| a56c0 | 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 5f 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 74 6f 6f 6c | ...:tool_call_id.(plist-get.tool |
| a56e0 | 2d 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 20 28 70 6c 69 73 74 | -call.:id).......:content.(plist |
| a5700 | 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 29 29 29 0a 20 20 20 74 6f 6f | -get.tool-call.:result)))....too |
| a5720 | 6c 2d 75 73 65 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 52 65 6d 6f 76 65 20 74 68 65 73 65 20 66 | l-use))..;;.TODO:.Remove.these.f |
| a5740 | 75 6e 63 74 69 6f 6e 73 20 28 23 37 39 32 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 70 | unctions.(#792).(defun.gptel--op |
| a5760 | 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 0a 20 20 | enai-format-tool-id.(tool-id)... |
| a5780 | 22 46 6f 72 6d 61 74 20 54 4f 4f 4c 2d 49 44 20 66 6f 72 20 4f 70 65 6e 41 49 2e 0a 0a 49 66 20 | "Format.TOOL-ID.for.OpenAI...If. |
| a57a0 | 74 68 65 20 49 44 20 68 61 73 20 74 68 65 20 66 6f 72 6d 61 74 20 75 73 65 64 20 62 79 20 61 20 | the.ID.has.the.format.used.by.a. |
| a57c0 | 64 69 66 66 65 72 65 6e 74 20 62 61 63 6b 65 6e 64 2c 20 75 73 65 20 61 73 2d 69 73 2e 22 0a 20 | different.backend,.use.as-is.".. |
| a57e0 | 20 28 75 6e 6c 65 73 73 20 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 28 73 65 74 71 20 74 6f 6f 6c 2d | .(unless.tool-id.....(setq.tool- |
| a5800 | 69 64 20 28 73 75 62 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | id.(substring................... |
| a5820 | 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 22 25 73 25 73 22 20 28 72 61 6e 64 6f 6d 29 20 28 66 | .(md5.(format."%s%s".(random).(f |
| a5840 | 6c 6f 61 74 2d 74 69 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 | loat-time))).................... |
| a5860 | 6e 69 6c 20 32 34 29 29 29 0a 20 20 28 69 66 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 70 72 65 66 | nil.24)))...(if.(or.(string-pref |
| a5880 | 69 78 2d 70 20 22 74 6f 6f 6c 75 5f 22 20 74 6f 6f 6c 2d 69 64 29 20 3b 23 37 34 37 0a 20 20 20 | ix-p."toolu_".tool-id).;#747.... |
| a58a0 | 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 63 61 6c 6c 5f 22 20 | .......(string-prefix-p."call_". |
| a58c0 | 20 74 6f 6f 6c 2d 69 64 29 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 0a 20 20 20 20 28 66 6f | .tool-id)).......tool-id.....(fo |
| a58e0 | 72 6d 61 74 20 22 63 61 6c 6c 5f 25 73 22 20 74 6f 6f 6c 2d 69 64 29 29 29 0a 0a 28 64 65 66 75 | rmat."call_%s".tool-id)))..(defu |
| a5900 | 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 6f 6c 2d 69 64 | n.gptel--openai-unformat-tool-id |
| a5920 | 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 2d 6d 61 | .(tool-id)...(or.(and.(string-ma |
| a5940 | 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 29 0a 20 20 20 | tch."call_\\(.+\\)".tool-id).... |
| a5960 | 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 2d 69 64 29 | ........(match-string.1.tool-id) |
| a5980 | 29 0a 20 20 20 20 20 20 74 6f 6f 6c 2d 69 64 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 4e 6f 20 60 | ).......tool-id))..;;.NOTE:.No.` |
| a59a0 | 67 70 74 65 6c 2d 2d 69 6e 6a 65 63 74 2d 70 72 6f 6d 70 74 27 20 6d 65 74 68 6f 64 20 72 65 71 | gptel--inject-prompt'.method.req |
| a59c0 | 75 69 72 65 64 20 66 6f 72 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2c 20 73 69 6e 63 65 20 74 68 | uired.for.gptel-openai,.since.th |
| a59e0 | 69 73 0a 3b 3b 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 | is.;;.is.handled.by.its.defgener |
| a5a00 | 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 6d 65 74 68 6f 64 | ic.implementation..(cl-defmethod |
| a5a20 | 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6c 69 73 74 20 28 28 62 61 63 6b 65 6e 64 20 67 70 74 | .gptel--parse-list.((backend.gpt |
| a5a40 | 65 6c 2d 6f 70 65 6e 61 69 29 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 0a 20 20 28 69 66 20 28 63 | el-openai).prompt-list)...(if.(c |
| a5a60 | 6f 6e 73 70 20 28 63 61 72 20 70 72 6f 6d 70 74 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 6c | onsp.(car.prompt-list)).......(l |
| a5a80 | 65 74 20 28 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | et.((full-prompt)).............. |
| a5aa0 | 3b 20 41 64 76 61 6e 63 65 64 20 66 6f 72 6d 61 74 2c 20 6c 69 73 74 20 6f 66 20 6c 69 73 74 73 | ;.Advanced.format,.list.of.lists |
| a5ac0 | 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6e 74 72 79 20 70 72 6f 6d 70 74 2d 6c | .........(dolist.(entry.prompt-l |
| a5ae0 | 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 65 6e 74 72 79 0a 20 20 20 20 | ist)...........(pcase.entry..... |
| a5b00 | 20 20 20 20 20 20 20 20 28 60 28 70 72 6f 6d 70 74 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 | ........(`(prompt...,msg)....... |
| a5b20 | 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 22 20 | .......(push.(list.:role."user". |
| a5b40 | 3a 63 6f 6e 74 65 6e 74 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 | :content.(or.(car-safe.msg).msg) |
| a5b60 | 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 72 | ).full-prompt)).............(`(r |
| a5b80 | 65 73 70 6f 6e 73 65 20 2e 20 2c 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | esponse...,msg)..............(pu |
| a5ba0 | 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 | sh.(list.:role."assistant".:cont |
| a5bc0 | 65 6e 74 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 6d 73 67 29 20 6d 73 67 29 29 20 66 75 6c | ent.(or.(car-safe.msg).msg)).ful |
| a5be0 | 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 28 74 6f 6f 6c 20 2e | l-prompt)).............(`(tool.. |
| a5c00 | 20 2c 63 61 6c 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c | .,call)..............(unless.(pl |
| a5c20 | 69 73 74 2d 67 65 74 20 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ist-get.call.:id)............... |
| a5c40 | 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 6f 70 65 | .(plist-put.call.:id.(gptel--ope |
| a5c60 | 6e 61 69 2d 66 6f 72 6d 61 74 2d 74 6f 6f 6c 2d 69 64 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 | nai-format-tool-id.nil)))....... |
| a5c80 | 20 20 20 20 20 20 20 28 70 75 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | .......(push...............(list |
| a5ca0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 | ................:role."assistant |
| a5cc0 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 6f 6f 6c 5f 63 61 6c 6c 73 0a 20 20 20 | "................:tool_calls.... |
| a5ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 76 65 63 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ............(vector............. |
| a5d00 | 20 20 20 20 28 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 | ....(list.:type."function"...... |
| a5d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 69 64 20 28 70 6c 69 73 74 2d 67 65 74 20 | .................:id.(plist-get. |
| a5d40 | 63 61 6c 6c 20 3a 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | call.:id)....................... |
| a5d60 | 3a 66 75 6e 63 74 69 6f 6e 20 60 28 20 3a 6e 61 6d 65 20 2c 28 70 6c 69 73 74 2d 67 65 74 20 63 | :function.`(.:name.,(plist-get.c |
| a5d80 | 61 6c 6c 20 3a 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | all.:name)...................... |
| a5da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 28 64 65 63 6f 64 | ..............:arguments.,(decod |
| a5dc0 | 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 20 20 20 20 20 20 20 | e-coding-string................. |
| a5de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a5e00 | 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 20 63 | (gptel--json-encode.(plist-get.c |
| a5e20 | 61 6c 6c 20 3a 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | all.:args))..................... |
| a5e40 | 20 20 20 20 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 75 74 66 | ............................'utf |
| a5e60 | 2d 38 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 70 72 6f | -8.t)))))...............full-pro |
| a5e80 | 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 61 72 20 28 67 70 | mpt)..............(push.(car.(gp |
| a5ea0 | 74 65 6c 2d 2d 70 61 72 73 65 2d 74 6f 6f 6c 2d 72 65 73 75 6c 74 73 20 62 61 63 6b 65 6e 64 20 | tel--parse-tool-results.backend. |
| a5ec0 | 28 6c 69 73 74 20 28 63 64 72 20 65 6e 74 72 79 29 29 29 29 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 | (list.(cdr.entry)))).full-prompt |
| a5ee0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 66 75 6c 6c 2d 70 72 6f 6d | )))).........(nreverse.full-prom |
| a5f00 | 70 74 29 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 74 65 78 74 20 69 6e 20 70 72 | pt)).....(cl-loop.for.text.in.pr |
| a5f20 | 6f 6d 70 74 2d 6c 69 73 74 20 20 20 20 3b 20 53 69 6d 70 6c 65 20 66 6f 72 6d 61 74 2c 20 6c 69 | ompt-list....;.Simple.format,.li |
| a5f40 | 73 74 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 72 | st.of.strings..............for.r |
| a5f60 | 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)......... |
| a5f80 | 20 20 20 20 20 69 66 20 74 65 78 74 20 63 6f 6c 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 | .....if.text.collect............ |
| a5fa0 | 20 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 72 6f 6c 65 20 22 75 73 65 72 22 20 22 61 | ..(list.:role.(if.role."user"."a |
| a5fc0 | 73 73 69 73 74 61 6e 74 22 29 20 3a 63 6f 6e 74 65 6e 74 20 74 65 78 74 29 29 29 29 0a 0a 28 63 | ssistant").:content.text))))..(c |
| a5fe0 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 | l-defmethod.gptel--parse-buffer. |
| a6000 | 28 28 62 61 63 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 | ((backend.gptel-openai).&optiona |
| a6020 | 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 | l.max-entries)...(let.((prompts) |
| a6040 | 20 28 70 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 | .(prev-pt.(point))).....(if.(or. |
| a6060 | 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 65 29 | gptel-mode.gptel-track-response) |
| a6080 | 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 6d 61 | .........(while.(and.(or.(not.ma |
| a60a0 | 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 0a 20 | x-entries).(>=.max-entries.0)).. |
| a60c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 70 72 65 76 2d 70 74 20 28 | ...................(/=.prev-pt.( |
| a60e0 | 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 20 20 20 20 20 | point-min))..................... |
| a6100 | 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 72 65 76 69 6f 75 73 2d 73 69 6e 67 6c 65 2d 70 72 6f 70 | (goto-char.(previous-single-prop |
| a6120 | 65 72 74 79 2d 63 68 61 6e 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | erty-change..................... |
| a6140 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 20 6e 69 6c 20 28 | ............(point).'gptel.nil.( |
| a6160 | 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 | point-min))))...........(pcase.( |
| a6180 | 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c | get-char-property.(point).'gptel |
| a61a0 | 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 20 20 20 | ).............('response........ |
| a61c0 | 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 | ......(when-let*.((content.(gpte |
| a61e0 | 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................ |
| a6200 | 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 62 73 | ....................(buffer-subs |
| a6220 | 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 65 76 | tring-no-properties.(point).prev |
| a6240 | 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 28 6c 69 | -pt))))................(push.(li |
| a6260 | 73 74 20 3a 72 6f 6c 65 20 22 61 73 73 69 73 74 61 6e 74 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f | st.:role."assistant".:content.co |
| a6280 | 6e 74 65 6e 74 29 20 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 60 | ntent).prompts))).............(` |
| a62a0 | 28 74 6f 6f 6c 20 2e 20 2c 69 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | (tool...,id)..............(save- |
| a62c0 | 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 63 6f 6e 64 69 74 | excursion................(condit |
| a62e0 | 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 20 | ion-case.nil.................... |
| a6300 | 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 72 72 65 6e 74 | (let*.((tool-call.(read.(current |
| a6320 | 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -buffer)))...................... |
| a6340 | 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 6c 6c 20 | .....(name.(plist-get.tool-call. |
| a6360 | 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 20 20 | :name))......................... |
| a6380 | 20 20 28 61 72 67 75 6d 65 6e 74 73 20 28 64 65 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 | ..(arguments.(decode-coding-stri |
| a63a0 | 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 20 20 | ng.............................. |
| a63c0 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 70 6c | .........(gptel--json-encode.(pl |
| a63e0 | 69 73 74 2d 67 65 74 20 74 6f 6f 6c 2d 63 61 6c 6c 20 3a 61 72 67 73 29 29 0a 20 20 20 20 20 20 | ist-get.tool-call.:args))....... |
| a6400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6420 | 27 75 74 66 2d 38 20 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 | 'utf-8.t)))..................... |
| a6440 | 20 28 73 65 74 71 20 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 | .(setq.id.(gptel--openai-format- |
| a6460 | 74 6f 6f 6c 2d 69 64 20 69 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tool-id.id)).................... |
| a6480 | 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 69 64 29 0a 20 | ..(plist-put.tool-call.:id.id).. |
| a64a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 74 | ....................(plist-put.t |
| a64c0 | 6f 6f 6c 2d 63 61 6c 6c 20 3a 72 65 73 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ool-call.:result................ |
| a64e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 62 | .................(string-trim.(b |
| a6500 | 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... |
| a6520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6540 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 74 29 29 29 0a 20 | ............(point).prev-pt))).. |
| a6560 | 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 63 61 72 20 28 | ....................(push.(car.( |
| a6580 | 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 61 63 6b 65 6e | gptel--parse-tool-results.backen |
| a65a0 | 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 20 20 20 20 20 | d.(list.tool-call)))............ |
| a65c0 | 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 20 20 20 20 20 | ................prompts)........ |
| a65e0 | 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 20 | ..............(push.(list.:role. |
| a6600 | 22 61 73 73 69 73 74 61 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "assistant"..................... |
| a6620 | 20 20 20 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 | .............:tool_calls........ |
| a6640 | 20 20 20 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 | ..........................(vecto |
| a6660 | 72 20 28 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 | r.(list.:type."function"........ |
| a6680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a66a0 | 20 20 20 20 20 20 20 20 3a 69 64 20 69 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:id.id.................. |
| a66c0 | 20 20 20 20 20 20 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 | ..............................:f |
| a66e0 | 75 6e 63 74 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 | unction.`(.:name.,name.......... |
| a6700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 61 72 67 75 6d 65 6e 74 73 20 2c 61 | ...................:arguments.,a |
| a6740 | 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)))).................... |
| a6760 | 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........prompts))............... |
| a6780 | 20 20 20 28 28 65 6e 64 2d 6f 66 2d 66 69 6c 65 20 69 6e 76 61 6c 69 64 2d 72 65 61 64 2d 73 79 | ...((end-of-file.invalid-read-sy |
| a67a0 | 6e 74 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 | ntax)...................(message |
| a67c0 | 20 28 66 6f 72 6d 61 74 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 6f 6f 6c 2d 63 | .(format."Could.not.parse.tool-c |
| a67e0 | 61 6c 6c 20 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 | all.%s.on.line.%s".............. |
| a6800 | 20 20 20 20 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 | ......................id.(line-n |
| a6820 | 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 29 0a 20 20 20 20 | umber-at-pos.(point))))))))..... |
| a6840 | 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 20 20 20 20 28 27 | ........('ignore).............(' |
| a6860 | 6e 69 6c 0a 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 | nil..............(and.max-entrie |
| a6880 | 73 20 28 63 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 | s.(cl-decf.max-entries))........ |
| a68a0 | 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 20 | ......(if.gptel-track-media..... |
| a68c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e | .............(when-let*.((conten |
| a68e0 | 74 20 28 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 70 61 72 73 65 2d 6d 75 6c 74 69 70 61 72 74 | t.(gptel--openai-parse-multipart |
| a6900 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6920 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 6d 65 64 69 61 2d 6c 69 6e 6b | ........(gptel--parse-media-link |
| a6940 | 73 20 6d 61 6a 6f 72 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 | s.major-mode.................... |
| a6960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6980 | 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 29 29 29 | ..............(point).prev-pt))) |
| a69a0 | 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 3e 20 28 6c | )....................(when.(>.(l |
| a69c0 | 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)............... |
| a69e0 | 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 22 20 | .......(push.(list.:role."user". |
| a6a00 | 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 20 20 | :content.content).prompts))).... |
| a6a20 | 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 | ............(when-let*.((content |
| a6a40 | 20 28 67 70 74 65 6c 2d 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 28 62 75 66 66 65 72 2d 73 | .(gptel--trim-prefixes.(buffer-s |
| a6a60 | 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 | ubstring-no-properties.......... |
| a6a80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| a6aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 20 70 72 65 76 2d 70 | ..................(point).prev-p |
| a6ac0 | 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 | t))))..................(push.(li |
| a6ae0 | 73 74 20 3a 72 6f 6c 65 20 22 75 73 65 72 22 20 3a 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 6e 74 | st.:role."user".:content.content |
| a6b00 | 29 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 | ).prompts)))))...........(setq.p |
| a6b20 | 72 65 76 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f | rev-pt.(point))).......(let.((co |
| a6b40 | 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 |
| a6b60 | 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.............. |
| a6b80 | 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 69 | .......................(point-mi |
| a6ba0 | 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 75 73 68 | n).(point-max))))).........(push |
| a6bc0 | 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 6e | .(list.:role."user".:content.con |
| a6be0 | 74 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 | tent).prompts))).....prompts)).. |
| a6c00 | 3b 3b 20 54 4f 44 4f 20 54 68 69 73 20 63 6f 75 6c 64 20 62 65 20 61 20 67 65 6e 65 72 69 63 20 | ;;.TODO.This.could.be.a.generic. |
| a6c20 | 66 75 6e 63 74 69 6f 6e 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 2d 70 61 | function.(defun.gptel--openai-pa |
| a6c40 | 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 72 74 | rse-multipart.(parts)..."Convert |
| a6c60 | 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 68 65 | .a.multipart.prompt.PARTS.to.the |
| a6c80 | 20 4f 70 65 6e 41 49 20 41 50 49 20 66 6f 72 6d 61 74 2e 0a 0a 54 68 65 20 69 6e 70 75 74 20 69 | .OpenAI.API.format...The.input.i |
| a6ca0 | 73 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 74 68 65 20 66 6f 72 6d 0a 20 28 28 3a 74 65 78 74 20 | s.an.alist.of.the.form..((:text. |
| a6cc0 | 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 61 20 5c 22 2f 70 61 74 68 | \"some.text\")...(:media.\"/path |
| a6ce0 | 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c 22 69 6d 61 67 65 2f 70 6e | /to/media.png\".:mime.\"image/pn |
| a6d00 | 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 78 74 5c 22 29 29 2e 0a 0a | g\")...(:text.\"More.text\"))... |
| a6d20 | 54 68 65 20 6f 75 74 70 75 74 20 69 73 20 61 20 76 65 63 74 6f 72 20 6f 66 20 65 6e 74 72 69 65 | The.output.is.a.vector.of.entrie |
| a6d40 | 73 20 69 6e 20 61 20 62 61 63 6b 65 6e 64 2d 61 70 70 72 6f 70 72 69 61 74 65 0a 66 6f 72 6d 61 | s.in.a.backend-appropriate.forma |
| a6d60 | 74 2e 22 0a 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 66 6f 72 20 70 61 72 74 20 69 6e 20 70 61 | t."...(cl-loop....for.part.in.pa |
| a6d80 | 72 74 73 0a 20 20 20 66 6f 72 20 6e 20 75 70 66 72 6f 6d 20 31 0a 20 20 20 77 69 74 68 20 6c 61 | rts....for.n.upfrom.1....with.la |
| a6da0 | 73 74 20 3d 20 28 6c 65 6e 67 74 68 20 70 61 72 74 73 29 0a 20 20 20 66 6f 72 20 74 65 78 74 20 | st.=.(length.parts)....for.text. |
| a6dc0 | 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 65 78 74 29 0a 20 20 20 66 6f 72 20 | =.(plist-get.part.:text)....for. |
| a6de0 | 6d 65 64 69 61 20 3d 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 6d 65 64 69 61 29 0a | media.=.(plist-get.part.:media). |
| a6e00 | 20 20 20 69 66 20 74 65 78 74 20 64 6f 0a 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 6e 20 31 | ...if.text.do....(and.(or.(=.n.1 |
| a6e20 | 29 20 28 3d 20 6e 20 6c 61 73 74 29 29 20 28 73 65 74 71 20 74 65 78 74 20 28 67 70 74 65 6c 2d | ).(=.n.last)).(setq.text.(gptel- |
| a6e40 | 2d 74 72 69 6d 2d 70 72 65 66 69 78 65 73 20 74 65 78 74 29 29 29 0a 20 20 20 61 6e 64 20 69 66 | -trim-prefixes.text)))....and.if |
| a6e60 | 20 74 65 78 74 0a 20 20 20 63 6f 6c 6c 65 63 74 20 60 28 3a 74 79 70 65 20 22 74 65 78 74 22 20 | .text....collect.`(:type."text". |
| a6e80 | 3a 74 65 78 74 20 2c 74 65 78 74 29 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 20 65 6e | :text.,text).into.parts-array.en |
| a6ea0 | 64 0a 20 20 20 65 6c 73 65 20 69 66 20 6d 65 64 69 61 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 | d....else.if.media.collect....`( |
| a6ec0 | 3a 74 79 70 65 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 | :type."image_url"......:image_ur |
| a6ee0 | 6c 20 28 3a 75 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 | l.(:url.,(concat."data:".(plist- |
| a6f00 | 67 65 74 20 70 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 | get.part.:mime)................. |
| a6f20 | 20 20 20 20 20 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 | ........";base64,".(gptel--base6 |
| a6f40 | 34 2d 65 6e 63 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 | 4-encode.media))))....into.parts |
| a6f60 | 2d 61 72 72 61 79 0a 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 | -array....else.if.(plist-get.par |
| a6f80 | 74 20 3a 74 65 78 74 66 69 6c 65 29 20 63 6f 6c 6c 65 63 74 0a 20 20 20 60 28 3a 74 79 70 65 20 | t.:textfile).collect....`(:type. |
| a6fa0 | 22 74 65 78 74 22 0a 20 20 20 20 20 3a 74 65 78 74 20 2c 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 | "text"......:text.,(with-temp-bu |
| a6fc0 | 66 66 65 72 0a 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 | ffer...............(gptel--inser |
| a6fe0 | 74 2d 66 69 6c 65 2d 73 74 72 69 6e 67 20 28 70 6c 69 73 74 2d 67 65 74 20 70 61 72 74 20 3a 74 | t-file-string.(plist-get.part.:t |
| a7000 | 65 78 74 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d | extfile))...............(buffer- |
| a7020 | 73 74 72 69 6e 67 29 29 29 0a 20 20 20 69 6e 74 6f 20 70 61 72 74 73 2d 61 72 72 61 79 20 65 6e | string)))....into.parts-array.en |
| a7040 | 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 3a 75 72 6c | d.and....if.(plist-get.part.:url |
| a7060 | 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 67 65 5f 75 | )....collect....`(:type."image_u |
| a7080 | 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 70 6c 69 73 | rl"......:image_url.(:url.,(plis |
| a70a0 | 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 61 72 74 73 | t-get.part.:url)))....into.parts |
| a70c0 | 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 6f 6e 63 61 | -array....finally.return.(vconca |
| a70e0 | 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 6f 65 73 20 | t.parts-array)))..;;.TODO:.Does. |
| a7100 | 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 6e 63 74 69 | this.need.to.be.a.generic.functi |
| a7120 | 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 70 2d 75 73 | on?.(cl-defmethod.gptel--wrap-us |
| a7140 | 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 70 65 6e 61 | er-prompt.((_backend.gptel-opena |
| a7160 | 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 20 20 20 20 | i).prompts...................... |
| a7180 | 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 69 6e 6a 65 | ..................&optional.inje |
| a71a0 | 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 73 65 72 20 | ct-media)..."Wrap.the.last.user. |
| a71c0 | 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 6f 6e 74 65 | prompt.in.PROMPTS.with.the.conte |
| a71e0 | 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 69 73 20 6e | xt.string...If.INJECT-MEDIA.is.n |
| a7200 | 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 6e 63 6f 64 | on-nil.wrap.it.with.base64-encod |
| a7220 | 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 74 2e 22 0a | ed.media.files.in.the.context.". |
| a7240 | 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 57 72 61 70 | ..(if.inject-media.......;;.Wrap |
| a7260 | 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 69 6e 63 6c | .the.first.user.prompt.with.incl |
| a7280 | 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 20 20 20 20 | uded.media.files/contexts....... |
| a72a0 | 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 65 6c 2d 63 | (when-let*.((media-list.(gptel-c |
| a72c0 | 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 20 20 20 20 | ontext--collect-media)))........ |
| a72e0 | 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 0a 20 20 20 | .(cl-callf.(lambda.(current).... |
| a7300 | 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 20 20 20 20 | .................(vconcat....... |
| a7320 | 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 69 2d 70 61 | ...............(gptel--openai-pa |
| a7340 | 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)....... |
| a7360 | 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 |
| a7380 | 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 |
| a73a0 | 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 |
| a73c0 | 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 |
| a73e0 | 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).................... |
| a7400 | 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)))).............( |
| a7420 | 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 |
| a7440 | 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 |
| a7460 | 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 |
| a7480 | 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) |
| a74a0 | 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 |
| a74c0 | 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 |
| a74e0 | 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)). |
| a7500 | 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 |
| a7520 | 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 |
| a7540 | 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)))........................ |
| a7560 | 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". |
| a7580 | 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))................ |
| a75a0 | 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) |
| a75c0 | 0a 20 20 20 20 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 |
| a75e0 | 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 |
| a7600 | 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))))..; |
| a7620 | 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 6c 2d 6d 61 | ;;###autoload.(cl-defun.gptel-ma |
| a7640 | 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 6c 2d 61 72 | ke-openai.....(name.&key.curl-ar |
| a7660 | 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 2d 70 61 72 | gs.models.stream.key.request-par |
| a7680 | 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 20 20 20 20 | ams...........(header........... |
| a76a0 | 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6b 65 79 20 28 67 70 | .(lambda.().(when-let*.((key.(gp |
| a76c0 | 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel--get-api-key)))............. |
| a76e0 | 20 20 20 20 20 20 20 60 28 28 22 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f | .......`(("Authorization"...,(co |
| a7700 | 6e 63 61 74 20 22 42 65 61 72 65 72 20 22 20 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | ncat."Bearer.".key))))))........ |
| a7720 | 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 20 20 20 20 | ...(host."api.openai.com")...... |
| a7740 | 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 20 20 20 20 | .....(protocol."https")......... |
| a7760 | 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 74 69 6f 6e | ..(endpoint."/v1/chat/completion |
| a7780 | 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 50 49 2d 63 | s"))..."Register.an.OpenAI.API-c |
| a77a0 | 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 | ompatible.backend.for.gptel.with |
| a77c0 | 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 |
| a77e0 | 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 |
| a7800 | 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.( |
| a7820 | 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 79 70 69 63 | optional).is.the.API.host,.typic |
| a7840 | 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 44 45 4c 53 | ally.\"api.openai.com\"...MODELS |
| a7860 | 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 61 | .is.a.list.of.available.model.na |
| a7880 | 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 2c 20 79 | mes,.as.symbols..Additionally,.y |
| a78a0 | 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 63 61 70 | ou.can.specify.supported.LLM.cap |
| a78c0 | 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 2d 75 73 | abilities.like.vision.or.tool-us |
| a78e0 | 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 20 6d 6f | e.by.appending.a.plist.to.the.mo |
| a7900 | 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 20 74 68 | del.with.more.information,.in.th |
| a7920 | 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 0a 0a 46 | e.form...(model-name...plist)..F |
| a7940 | 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 69 7a 65 | or.a.list.of.currently.recognize |
| a7960 | 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 65 6e 61 69 | d.plist.keys,.see.`gptel--openai |
| a7980 | 2d 6d 6f 64 65 6c 73 27 2e 20 20 41 6e 20 65 78 61 6d 70 6c 65 20 6f 66 20 61 20 6d 6f 64 65 6c | -models'...An.example.of.a.model |
| a79a0 | 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 20 6b 69 | .specification.including.both.ki |
| a79c0 | 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 70 74 2d | nds.of.specs:..:models.\\='(gpt- |
| a79e0 | 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 20 20 20 | 3.5-turbo....................... |
| a7a00 | 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 0a 20 20 | ..;Simple.specs...gpt-4-turbo... |
| a7a20 | 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 20 20 20 | (gpt-4o-mini.................... |
| a7a40 | 20 20 20 20 20 20 3b 46 75 6c 6c 20 73 70 65 63 0a 20 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e | ......;Full.spec....:description |
| a7a60 | 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 65 6e 74 | ....\"Affordable.and.intelligent |
| a7a80 | 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 74 61 73 | .small.model.for.lightweight.tas |
| a7aa0 | 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 74 6f 6f | ks\"....:capabilities.(media.too |
| a7ac0 | 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 20 28 5c | l.json.url)....:mime-types....(\ |
| a7ae0 | 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 22 69 6d | "image/jpeg\".\"image/png\".\"im |
| a7b00 | 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 53 54 52 | age/gif\".\"image/webp\")))..STR |
| a7b20 | 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 | EAM.is.a.boolean.to.toggle.strea |
| a7b40 | 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 61 6c 73 | ming.responses,.defaults.to.fals |
| a7b60 | 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 66 69 65 | e...PROTOCOL.(optional).specifie |
| a7b80 | 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 75 6c 74 | s.the.protocol,.https.by.default |
| a7ba0 | 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 20 41 50 | ...ENDPOINT.(optional).is.the.AP |
| a7bc0 | 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 65 66 61 | I.endpoint.for.completions,.defa |
| a7be0 | 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 73 5c 22 | ults.to.\"/v1/chat/completions\" |
| a7c00 | 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 69 | ...HEADER.(optional).is.for.addi |
| a7c20 | 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 68 | tional.headers.to.send.with.each |
| a7c40 | 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 74 | .request...It.should.be.an.alist |
| a7c60 | 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 0a 61 | .or.a.function.that.returns.an.a |
| a7c80 | 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\". |
| a7ca0 | 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 |
| a7cc0 | 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 |
| a7ce0 | 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 |
| a7d00 | 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 2d 50 41 | hat.returns.the.key...REQUEST-PA |
| a7d20 | 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 |
| a7d40 | 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 |
| a7d60 | 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 |
| a7d80 | 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. |
| a7da0 | 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 |
| a7dc0 | 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 0a 20 20 | ot.provide.user.options.for."... |
| a7de0 | 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 |
| a7e00 | 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 20 20 20 | ckend.(gptel--make-openai....... |
| a7e20 | 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 |
| a7e40 | 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... |
| a7e60 | 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...... |
| a7e80 | 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..... |
| a7ea0 | 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.......... |
| a7ec0 | 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 |
| a7ee0 | 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)................. |
| a7f00 | 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............ |
| a7f20 | 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....... |
| a7f40 | 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...... |
| a7f60 | 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 |
| a7f80 | 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 |
| a7fa0 | 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................. |
| a7fc0 | 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.":// |
| a7fe0 | 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)................ |
| a8000 | 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) |
| a8020 | 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 |
| a8040 | 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 |
| a8060 | 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....................... |
| a8080 | 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)............... |
| a80a0 | 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 3b 23 23 | ....backend))))..;;;.Azure.;;;## |
| a80c0 | 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 65 2d 61 | #autoload.(cl-defun.gptel-make-a |
| a80e0 | 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 20 68 6f | zure.....(name.&key.curl-args.ho |
| a8100 | 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 22 29 0a | st...........(protocol."https"). |
| a8120 | 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 60 28 28 | ..........(header.(lambda.().`(( |
| a8140 | 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 6b 65 79 | "api-key"...,(gptel--get-api-key |
| a8160 | 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 70 69 2d | )))))...........(key.'gptel-api- |
| a8180 | 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 65 6e 64 | key)...........models.stream.end |
| a81a0 | 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 73 74 65 | point.request-params)..."Registe |
| a81c0 | 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 77 69 74 | r.an.Azure.backend.for.gptel.wit |
| a81e0 | 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 | h.NAME...Keyword.arguments:..CUR |
| a8200 | 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 | L-ARGS.(optional).is.a.list.of.a |
| a8220 | 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 | dditional.Curl.arguments...HOST. |
| a8240 | 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 20 6c 69 | is.the.API.host...MODELS.is.a.li |
| a8260 | 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 61 73 20 | st.of.available.model.names,.as. |
| a8280 | 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 20 74 6f | symbols...STREAM.is.a.boolean.to |
| a82a0 | 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 65 66 | .toggle.streaming.responses,.def |
| a82c0 | 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 6f | aults.to.false...PROTOCOL.(optio |
| a82e0 | 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 | nal).specifies.the.protocol,.htt |
| a8300 | 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 68 65 20 | ps.by.default...ENDPOINT.is.the. |
| a8320 | 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 0a 0a 48 | API.endpoint.for.completions...H |
| a8340 | 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e | EADER.(optional).is.for.addition |
| a8360 | 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 | al.headers.to.send.with.each.req |
| a8380 | 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 | uest...It.should.be.an.alist.or. |
| a83a0 | 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c | a.function.that.retuns.an.alist, |
| a83c0 | 20 6c 69 6b 65 3a 0a 20 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 | .like:..((\"Content-Type\"...\"a |
| a83e0 | 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e | pplication/json\"))..KEY.(option |
| a8400 | 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 | al).is.a.variable.whose.value.is |
| a8420 | 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 | .the.API.key,.or.function.that.r |
| a8440 | 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. |
| a8460 | 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 |
| a8480 | 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. |
| a84a0 | 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 |
| a84c0 | 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 |
| a84e0 | 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 |
| a8500 | 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 70 6c 65 | ovide.user.options.for...Example |
| a8520 | 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 0a 20 20 | :.-------...(gptel-make-azure... |
| a8540 | 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 70 73 5c | \"Azure-1\"...:protocol.\"https\ |
| a8560 | 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 6e 61 69 | "...:host.\"RESOURCE_NAME.openai |
| a8580 | 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 2f 6f 70 | .azure.com\"...:endpoint...\"/op |
| a85a0 | 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 41 4d 45 | enai/deployments/DEPLOYMENT_NAME |
| a85c0 | 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 30 35 | /completions?api-version=2023-05 |
| a85e0 | 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 5c 3d 27 | -15\"...:stream.t...:models.\\=' |
| a8600 | 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 63 6c 61 | (gpt-3.5-turbo.gpt-4))"...(decla |
| a8620 | 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 | re.(indent.1))...(let.((backend. |
| a8640 | 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (gptel--make-openai............. |
| a8660 | 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 | ......:curl-args.curl-args...... |
| a8680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 | .............:name.name......... |
| a86a0 | 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........:host.host............ |
| a86c0 | 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 | .......:header.header........... |
| a86e0 | 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:key.key................ |
| a8700 | 20 20 20 3a 6d 6f 64 65 6c 73 20 28 67 70 74 65 6c 2d 2d 70 72 6f 63 65 73 73 2d 6d 6f 64 65 6c | ...:models.(gptel--process-model |
| a8720 | 73 20 6d 6f 64 65 6c 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f | s.models)...................:pro |
| a8740 | 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tocol.protocol.................. |
| a8760 | 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:endpoint.endpoint............. |
| a8780 | 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 | ......:stream.stream............ |
| a87a0 | 20 20 20 20 20 20 20 3a 72 65 71 75 65 73 74 2d 70 61 72 61 6d 73 20 72 65 71 75 65 73 74 2d 70 | .......:request-params.request-p |
| a87c0 | 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 28 69 66 | arams...................:url.(if |
| a87e0 | 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 20 20 20 | .protocol....................... |
| a8800 | 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 6f 73 74 | .....(concat.protocol."://".host |
| a8820 | 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 20 20 20 | .endpoint)...................... |
| a8840 | 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 29 0a 20 | ....(concat.host.endpoint))))).. |
| a8860 | 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 20 28 61 | ...(prog1.backend.......(setf.(a |
| a8880 | 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 63 6b 65 | list-get.name.gptel--known-backe |
| a88a0 | 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 6c 20 6e | nds........................nil.n |
| a88c0 | 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 6e 64 29 | il.#'equal).............backend) |
| a88e0 | 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 64 0a 28 | )))..;;.GPT4All.;;;###autoload.( |
| a8900 | 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 27 67 70 | defalias.'gptel-make-gpt4all.'gp |
| a8920 | 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 20 47 50 | tel-make-openai..."Register.a.GP |
| a8940 | 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 4e 41 4d | T4All.backend.for.gptel.with.NAM |
| a8960 | 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 47 | E...Keyword.arguments:..CURL-ARG |
| a8980 | 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 69 | S.(optional).is.a.list.of.additi |
| a89a0 | 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 77 68 | onal.Curl.arguments...HOST.is.wh |
| a89c0 | 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 20 74 79 | ere.GPT4All.runs.(with.port),.ty |
| a89e0 | 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 53 20 69 | pically.localhost:4891..MODELS.i |
| a8a00 | 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 61 6d 65 | s.a.list.of.available.model.name |
| a8a20 | 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 6f 6f 6c | s,.as.symbols...STREAM.is.a.bool |
| a8a40 | 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 6e 73 65 | ean.to.toggle.streaming.response |
| a8a60 | 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 4f 4c 20 | s,.defaults.to.false...PROTOCOL. |
| a8a80 | 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 79 | specifies.the.protocol,.https.by |
| a8aa0 | 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 69 | .default...ENDPOINT.(optional).i |
| a8ac0 | 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 6f | s.the.API.endpoint.for.completio |
| a8ae0 | 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 70 6c 65 | ns,.defaults.to.\"/api/v1/comple |
| a8b00 | 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 20 66 6f | tions\"..HEADER.(optional).is.fo |
| a8b20 | 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 | r.additional.headers.to.send.wit |
| a8b40 | 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 | h.each.request..It.should.be.an. |
| a8b60 | 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 | alist.or.a.function.that.retuns. |
| a8b80 | 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 | an.alist,.like:.((\"Content-Type |
| a8ba0 | 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 |
| a8bc0 | 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. |
| a8be0 | 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 |
| a8c00 | 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 69 73 20 | n.that.returns.the.key..This.is. |
| a8c20 | 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 63 61 6c | typically.not.required.for.local |
| a8c40 | 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 54 2d 50 | .models.like.GPT4All...REQUEST-P |
| a8c60 | 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 20 61 | ARAMS.(optional).is.a.plist.of.a |
| a8c80 | 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 65 72 | dditional.HTTP.request.parameter |
| a8ca0 | 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 75 70 | s.(as.plist.keys).and.values.sup |
| a8cc0 | 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 74 6f | ported.by.the.API...Use.these.to |
| a8ce0 | 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 73 20 | .set.parameters.that.gptel.does. |
| a8d00 | 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 0a 0a 45 | not.provide.user.options.for...E |
| a8d20 | 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 67 70 74 | xample:.-------..(gptel-make-gpt |
| a8d40 | 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 5c 22 68 | 4all..\"GPT4All\"..:protocol.\"h |
| a8d60 | 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 5c 22 0a | ttp\"..:host.\"localhost:4891\". |
| a8d80 | 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 6f 72 63 | .:models.\\='(mistral-7b-openorc |
| a8da0 | 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 74 65 6c | a.Q4_0.gguf))")..(provide.'gptel |
| a8dc0 | 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 65 6e 64 | -openai).;;;.gptel-openai.el.end |
| a8de0 | 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 3b 20 62 | s.here..;;.Local.Variables:.;;.b |
| a8e00 | 79 74 65 2d 63 6f 6d 70 69 6c 65 2d 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 64 6f 63 73 74 | yte-compile-warnings:.(not.docst |
| a8e20 | 72 69 6e 67 73 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | rings).;;.End:.................. |
| a8e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a8fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9000 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 2e 64 69 72 2d 6c 6f 63 61 6c 73 2e 65 6c 00 00 00 00 00 00 | gptel-0.9.9/.dir-locals.el...... |
| a9020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9060 | 00 00 00 00 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 |
| a9080 | 30 30 30 30 32 32 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 37 33 32 00 20 30 00 00 00 | 0000224.00000000000.013732..0... |
| a90a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a90c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a90e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9100 | 00 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................... |
| a9120 | 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................... |
| a9140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a91e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9200 | 28 28 6e 69 6c 20 2e 20 28 28 69 6e 64 65 6e 74 2d 74 61 62 73 2d 6d 6f 64 65 20 2e 20 6e 69 6c | ((nil...((indent-tabs-mode...nil |
| a9220 | 29 0a 09 20 28 73 65 6e 74 65 6e 63 65 2d 65 6e 64 2d 64 6f 75 62 6c 65 2d 73 70 61 63 65 20 2e | )...(sentence-end-double-space.. |
| a9240 | 20 74 29 0a 09 20 28 62 75 67 2d 72 65 66 65 72 65 6e 63 65 2d 75 72 6c 2d 66 6f 72 6d 61 74 20 | .t)...(bug-reference-url-format. |
| a9260 | 2e 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 | .."https://github.com/karthink/g |
| a9280 | 70 74 65 6c 2f 69 73 73 75 65 73 2f 25 73 22 29 29 29 29 0a 00 00 00 00 00 00 00 00 00 00 00 00 | ptel/issues/%s"))))............. |
| a92a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a92c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a92e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a93e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9400 | 67 70 74 65 6c 2d 30 2e 39 2e 39 2f 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 00 00 00 00 00 00 00 00 | gptel-0.9.9/gptel-org.el........ |
| a9420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9460 | 00 00 00 00 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 |
| a9480 | 30 31 30 33 30 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 32 36 00 20 30 00 00 00 | 0103043.00000000000.013526..0... |
| a94a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a94c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a94e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9500 | 00 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................... |
| a9520 | 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................... |
| a9540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a95e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| a9600 | 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 |
| a9620 | 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 |
| a9640 | 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.( |
| a9660 | 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..;; |
| a9680 | 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 |
| a96a0 | 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 |
| a96c0 | 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 |
| a96e0 | 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 |
| a9700 | 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 |
| a9720 | 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 |
| a9740 | 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 |
| a9760 | 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 |
| a9780 | 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.; |
| a97a0 | 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 |
| a97c0 | 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 |
| a97e0 | 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 |
| a9800 | 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 |
| a9820 | 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. |
| a9840 | 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 |
| a9860 | 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 |
| a9880 | 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 |
| a98a0 | 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...;; |
| a98c0 | 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 |
| a98e0 | 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 |
| a9900 | 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... |
| a9920 | 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 |
| a9940 | 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:..; |
| a9960 | 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. |
| a9980 | 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 |
| a99a0 | 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 |
| a99c0 | 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 |
| a99e0 | 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 |
| a9a00 | 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-- |
| a9a20 | 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 |
| a9a40 | 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) |
| a9a60 | 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. |
| a9a80 | 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 |
| a9aa0 | 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 |
| a9ac0 | 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 |
| a9ae0 | 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). |
| a9b00 | 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 |
| a9b20 | 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 |
| a9b40 | 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- |
| a9b60 | 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 |
| a9b80 | 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 |
| a9ba0 | 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-- |
| a9bc0 | 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 |
| a9be0 | 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 |
| a9c00 | 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 |
| a9c20 | 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- |
| a9c40 | 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 |
| a9c60 | 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 |
| a9c80 | 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 |
| a9ca0 | 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"). |
| a9cc0 | 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- |
| a9ce0 | 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. |
| a9d00 | 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 |
| a9d20 | 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 |
| a9d40 | 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 |
| a9d60 | 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").( |
| a9d80 | 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 |
| a9da0 | 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 |
| a9dc0 | 69 6f 6e 20 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 22 67 70 74 65 6c 22 | ion.gptel--file-binary-p."gptel" |
| a9de0 | 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6e 74 72 79 2d 67 65 | ).(declare-function.org-entry-ge |
| a9e00 | 74 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 | t."org").(declare-function.org-e |
| a9e20 | 6e 74 72 79 2d 70 75 74 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f | ntry-put."org").(declare-functio |
| a9e40 | 6e 20 6f 72 67 2d 77 69 74 68 2d 77 69 64 65 2d 62 75 66 66 65 72 20 22 6f 72 67 2d 6d 61 63 73 | n.org-with-wide-buffer."org-macs |
| a9e60 | 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 73 65 74 2d 70 72 6f | ").(declare-function.org-set-pro |
| a9e80 | 70 65 72 74 79 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f | perty."org").(declare-function.o |
| a9ea0 | 72 67 2d 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 65 73 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 | rg-property-values."org").(decla |
| a9ec0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 6f 70 65 6e 2d 6c 69 6e 65 20 22 6f 72 67 22 29 | re-function.org-open-line."org") |
| a9ee0 | 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e | .(declare-function.org-at-headin |
| a9f00 | 67 2d 70 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 | g-p."org").(declare-function.org |
| a9f20 | 2d 67 65 74 2d 68 65 61 64 69 6e 67 20 22 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | -get-heading."org").(declare-fun |
| a9f40 | 63 74 69 6f 6e 20 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e 67 2d 70 20 22 6f 72 67 22 29 0a 0a 3b | ction.org-at-heading-p."org")..; |
| a9f60 | 3b 20 42 75 6e 64 6c 65 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 | ;.Bundle.`org-element-lineage-ma |
| a9f80 | 70 27 20 69 66 20 69 74 27 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 28 66 6f 72 20 4f 72 | p'.if.it's.not.available.(for.Or |
| a9fa0 | 67 20 39 2e 36 37 20 6f 72 20 6f 6c 64 65 72 29 0a 28 65 76 61 6c 2d 61 6e 64 2d 63 6f 6d 70 69 | g.9.67.or.older).(eval-and-compi |
| a9fc0 | 6c 65 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c | le...(if.(fboundp.'org-element-l |
| a9fe0 | 69 6e 65 61 67 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c 61 72 | ineage-map).......(progn.(declar |
| aa000 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d | e-function.org-element-lineage-m |
| aa020 | 61 70 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 | ap."org-element-ast")........... |
| aa040 | 20 20 20 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 | ...(defalias.'gptel-org--element |
| aa060 | 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 | -lineage-map.'org-element-lineag |
| aa080 | 65 2d 6d 61 70 29 29 0a 20 20 20 20 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c | e-map)).....(defun.gptel-org--el |
| aa0a0 | 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 28 64 61 74 75 6d 20 66 75 6e 20 26 6f 70 | ement-lineage-map.(datum.fun.&op |
| aa0c0 | 74 69 6f 6e 61 6c 20 74 79 70 65 73 20 77 69 74 68 2d 73 65 6c 66 20 66 69 72 73 74 2d 6d 61 74 | tional.types.with-self.first-mat |
| aa0e0 | 63 68 29 0a 20 20 20 20 20 20 22 4d 61 70 20 46 55 4e 20 61 63 72 6f 73 73 20 61 6e 63 65 73 74 | ch)......."Map.FUN.across.ancest |
| aa100 | 6f 72 73 20 6f 66 20 44 41 54 55 4d 2c 20 66 72 6f 6d 20 63 6c 6f 73 65 73 74 20 74 6f 20 66 75 | ors.of.DATUM,.from.closest.to.fu |
| aa120 | 72 74 68 65 73 74 2e 0a 0a 44 41 54 55 4d 20 69 73 20 61 6e 20 6f 62 6a 65 63 74 20 6f 72 20 65 | rthest...DATUM.is.an.object.or.e |
| aa140 | 6c 65 6d 65 6e 74 2e 20 20 46 6f 72 20 54 59 50 45 53 2c 20 57 49 54 48 2d 53 45 4c 46 20 61 6e | lement...For.TYPES,.WITH-SELF.an |
| aa160 | 64 0a 46 49 52 53 54 2d 4d 41 54 43 48 20 73 65 65 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c | d.FIRST-MATCH.see.`org-element-l |
| aa180 | 69 6e 65 61 67 65 2d 6d 61 70 27 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 70 | ineage-map'...This.function.is.p |
| aa1a0 | 72 6f 76 69 64 65 64 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 20 6f | rovided.for.compatibility.with.o |
| aa1c0 | 6c 64 65 72 20 76 65 72 73 69 6f 6e 73 0a 6f 66 20 4f 72 67 2e 22 0a 20 20 20 20 20 20 28 64 65 | lder.versions.of.Org.".......(de |
| aa1e0 | 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 32 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 75 | clare.(indent.2)).......(setq.fu |
| aa200 | 6e 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 66 75 6e 29 20 66 75 6e 20 60 28 6c 61 6d 62 | n.(if.(functionp.fun).fun.`(lamb |
| aa220 | 64 61 20 28 6e 6f 64 65 29 20 2c 66 75 6e 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 75 | da.(node).,fun))).......(let.((u |
| aa240 | 70 20 28 69 66 20 77 69 74 68 2d 73 65 6c 66 20 64 61 74 75 6d 20 28 6f 72 67 2d 65 6c 65 6d 65 | p.(if.with-self.datum.(org-eleme |
| aa260 | 6e 74 2d 70 61 72 65 6e 74 20 64 61 74 75 6d 29 29 29 0a 09 20 20 20 20 61 63 63 20 72 74 6e 29 | nt-parent.datum)))......acc.rtn) |
| aa280 | 0a 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 3a 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 0a 20 | .........(catch.:--first-match.. |
| aa2a0 | 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .........(while.up.............( |
| aa2c0 | 77 68 65 6e 20 28 6f 72 20 28 6e 6f 74 20 74 79 70 65 73 29 20 28 6f 72 67 2d 65 6c 65 6d 65 6e | when.(or.(not.types).(org-elemen |
| aa2e0 | 74 2d 74 79 70 65 2d 70 20 75 70 20 74 79 70 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | t-type-p.up.types))............. |
| aa300 | 20 20 28 73 65 74 71 20 72 74 6e 20 28 66 75 6e 63 61 6c 6c 20 66 75 6e 20 75 70 29 29 0a 20 20 | ..(setq.rtn.(funcall.fun.up))... |
| aa320 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 66 69 72 73 74 2d 6d 61 74 63 68 | ............(if.(and.first-match |
| aa340 | 20 72 74 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 3a | .rtn)...................(throw.: |
| aa360 | 2d 2d 66 69 72 73 74 2d 6d 61 74 63 68 20 72 74 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | --first-match.rtn).............. |
| aa380 | 20 20 20 28 77 68 65 6e 20 72 74 6e 20 28 70 75 73 68 20 72 74 6e 20 61 63 63 29 29 29 29 0a 20 | ...(when.rtn.(push.rtn.acc)))).. |
| aa3a0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 75 70 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 | ...........(setq.up.(org-element |
| aa3c0 | 2d 70 61 72 65 6e 74 20 75 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 | -parent.up)))...........(nrevers |
| aa3e0 | 65 20 61 63 63 29 29 29 29 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 | e.acc)))))...(if.(fboundp.'org-e |
| aa400 | 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 63 6c | lement-begin).......(progn.(decl |
| aa420 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 22 | are-function.org-element-begin." |
| aa440 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6c | org-element")..............(decl |
| aa460 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 22 6f 72 | are-function.org-element-end."or |
| aa480 | 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6c 61 72 | g-element")..............(declar |
| aa4a0 | 65 2d 66 75 6e 63 74 69 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 20 22 6f | e-function.org-element-parent."o |
| aa4c0 | 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 66 61 6c | rg-element")..............(defal |
| aa4e0 | 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 27 6f | ias.'gptel-org--element-begin.'o |
| aa500 | 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | rg-element-begin)..............( |
| aa520 | 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 | defalias.'gptel-org--element-end |
| aa540 | 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'org-element-end).............. |
| aa560 | 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 70 61 | (defalias.'gptel-org--element-pa |
| aa580 | 72 65 6e 74 20 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 29 29 0a 20 20 20 20 28 | rent.'org-element-parent)).....( |
| aa5a0 | 64 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 | defsubst.gptel-org--element-begi |
| aa5c0 | 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 27 20 70 72 6f | n.(node)......."Get.`:begin'.pro |
| aa5e0 | 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 65 6c 65 6d 65 | perty.of.NODE.".......(org-eleme |
| aa600 | 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 20 20 20 28 64 | nt-property.:begin.node)).....(d |
| aa620 | 65 66 73 75 62 73 74 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 65 6e 64 20 28 | efsubst.gptel-org--element-end.( |
| aa640 | 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 74 79 | node)......."Get.`:end'.property |
| aa660 | 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 70 72 | .of.NODE.".......(org-element-pr |
| aa680 | 6f 70 65 72 74 79 20 3a 65 6e 64 20 6e 6f 64 65 29 29 0a 20 20 20 20 28 64 65 66 73 75 62 73 74 | operty.:end.node)).....(defsubst |
| aa6a0 | 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 20 28 6e 6f 64 65 | .gptel-org--element-parent.(node |
| aa6c0 | 29 0a 20 20 20 20 20 20 22 52 65 74 75 72 6e 20 60 3a 70 61 72 65 6e 74 27 20 70 72 6f 70 65 72 | )......."Return.`:parent'.proper |
| aa6e0 | 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- |
| aa700 | 70 72 6f 70 65 72 74 79 20 3a 70 61 72 65 6e 74 20 6e 6f 64 65 29 29 29 29 0a 0a 0c 0a 3b 3b 3b | property.:parent.node))))....;;; |
| aa720 | 20 55 73 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 | .User.options.(defcustom.gptel-o |
| aa740 | 72 67 2d 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 | rg-branching-context.nil..."Use. |
| aa760 | 74 68 65 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 | the.lineage.of.the.current.headi |
| aa780 | 6e 67 20 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 | ng.as.the.context.for.gptel.in.O |
| aa7a0 | 72 67 20 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 | rg.buffers...This.makes.each.sam |
| aa7c0 | 65 20 6c 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 | e.level.heading.a.separate.conve |
| aa7e0 | 72 73 61 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 | rsation.branch...By.default,.gpt |
| aa800 | 65 6c 20 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 | el.uses.a.linear.context:.all.th |
| aa820 | 65 20 74 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 | e.text.up.to.the.cursor.is.sent. |
| aa840 | 74 6f 20 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 | to.the.LLM...Enabling.this.optio |
| aa860 | 6e 20 6d 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 | n.makes.the.context.the.hierarch |
| aa880 | 69 63 61 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 | ical.lineage.of.the.current.Org. |
| aa8a0 | 68 65 61 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 | heading...In.this.example:..---- |
| aa8c0 | 2d 0a 54 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 | -.Top.level.text..*.Heading.1.he |
| aa8e0 | 61 64 69 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 | ading.1.text..*.Heading.2.headin |
| aa900 | 67 20 32 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 | g.2.text..**.Heading.2.1.heading |
| aa920 | 20 32 2e 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 | .2.1.text.**.Heading.2.2.heading |
| aa940 | 20 32 2e 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 | .2.2.text.-----..With.the.cursor |
| aa960 | 20 61 74 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 | .at.the.end.of.the.buffer,.the.t |
| aa980 | 65 78 74 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 | ext.sent.to.the.LLM.will.be.limi |
| aa9a0 | 74 65 64 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 | ted.to..-----.Top.level.text..*. |
| aa9c0 | 48 65 61 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 | Heading.2.heading.2.text..**.Hea |
| aa9e0 | 64 69 6e 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 | ding.2.2.heading.2.2.text.-----. |
| aaa00 | 0a 54 68 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 | .This.makes.it.feasible.to.have. |
| aaa20 | 6d 75 6c 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 | multiple.conversation.branches." |
| aaa40 | 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 | ...:type.'boolean...:group.'gpte |
| aaa60 | 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d | l)..(defcustom.gptel-org-ignore- |
| aaa80 | 65 6c 65 6d 65 6e 74 73 20 27 28 70 72 6f 70 65 72 74 79 2d 64 72 61 77 65 72 29 0a 20 20 22 4c | elements.'(property-drawer)..."L |
| aaaa0 | 69 73 74 20 6f 66 20 4f 72 67 20 65 6c 65 6d 65 6e 74 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 | ist.of.Org.elements.that.should. |
| aaac0 | 62 65 20 73 74 72 69 70 70 65 64 20 66 72 6f 6d 20 74 68 65 20 70 72 6f 6d 70 74 0a 62 65 66 6f | be.stripped.from.the.prompt.befo |
| aaae0 | 72 65 20 73 65 6e 64 69 6e 67 20 69 74 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 20 67 70 74 65 6c | re.sending.it...By.default.gptel |
| aab00 | 20 77 69 6c 6c 20 72 65 6d 6f 76 65 20 4f 72 67 20 70 72 6f 70 65 72 74 79 20 64 72 61 77 65 72 | .will.remove.Org.property.drawer |
| aab20 | 73 20 66 72 6f 6d 20 74 68 65 0a 70 72 6f 6d 70 74 2e 20 20 46 6f 72 20 74 68 65 20 66 75 6c 6c | s.from.the.prompt...For.the.full |
| aab40 | 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 65 6c 65 6d 65 6e 74 73 2c 20 70 6c 65 | .list.of.available.elements,.ple |
| aab60 | 61 73 65 20 73 65 65 0a 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 61 6c 6c 2d 65 6c 65 6d 65 6e 74 | ase.see.`org-element-all-element |
| aab80 | 73 27 2e 0a 0a 50 6c 65 61 73 65 20 6e 6f 74 65 3a 20 52 65 6d 6f 76 69 6e 67 20 70 72 6f 70 65 | s'...Please.note:.Removing.prope |
| aaba0 | 72 74 79 2d 64 72 61 77 65 72 20 65 6c 65 6d 65 6e 74 73 20 69 73 20 66 61 73 74 2c 20 62 75 74 | rty-drawer.elements.is.fast,.but |
| aabc0 | 0a 61 64 64 69 6e 67 20 65 6c 65 6d 65 6e 74 73 20 74 6f 20 74 68 69 73 20 6c 69 73 74 20 63 61 | .adding.elements.to.this.list.ca |
| aabe0 | 6e 20 73 69 67 6e 69 66 69 63 61 6e 74 6c 79 20 73 6c 6f 77 20 64 6f 77 6e 0a 60 67 70 74 65 6c | n.significantly.slow.down.`gptel |
| aac00 | 2d 73 65 6e 64 27 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 | -send'."...:group.'gptel...:type |
| aac20 | 20 27 28 72 65 70 65 61 74 20 73 79 6d 62 6f 6c 29 29 0a 0a 0c 0a 3b 3b 3b 20 53 65 74 74 69 6e | .'(repeat.symbol))....;;;.Settin |
| aac40 | 67 20 63 6f 6e 74 65 78 74 20 61 6e 64 20 63 72 65 61 74 69 6e 67 20 71 75 65 72 69 65 73 0a 28 | g.context.and.creating.queries.( |
| aac60 | 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 67 65 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 | defun.gptel-org--get-topic-start |
| aac80 | 20 28 29 0a 20 20 22 49 66 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 6f 70 69 63 20 69 | .()..."If.a.conversation.topic.i |
| aaca0 | 73 20 73 65 74 2c 20 72 65 74 75 72 6e 20 69 74 2e 22 0a 20 20 28 77 68 65 6e 20 28 6f 72 67 2d | s.set,.return.it."...(when.(org- |
| aacc0 | 65 6e 74 72 79 2d 67 65 74 20 28 70 6f 69 6e 74 29 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 | entry-get.(point)."GPTEL_TOPIC". |
| aace0 | 27 69 6e 68 65 72 69 74 29 0a 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 6f | 'inherit).....(marker-position.o |
| aad00 | 72 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 | rg-entry-property-inherited-from |
| aad20 | 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 74 6f 70 69 63 20 | )))..(defun.gptel-org-set-topic. |
| aad40 | 28 74 6f 70 69 63 29 0a 20 20 22 53 65 74 20 61 20 54 4f 50 49 43 20 61 6e 64 20 6c 69 6d 69 74 | (topic)..."Set.a.TOPIC.and.limit |
| aad60 | 20 74 68 69 73 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e | .this.conversation.to.the.curren |
| aad80 | 74 20 68 65 61 64 69 6e 67 2e 0a 0a 54 68 69 73 20 6c 69 6d 69 74 73 20 74 68 65 20 63 6f 6e 74 | t.heading...This.limits.the.cont |
| aada0 | 65 78 74 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d 20 74 6f 20 74 68 65 20 74 65 78 74 20 | ext.sent.to.the.LLM.to.the.text. |
| aadc0 | 62 65 74 77 65 65 6e 20 74 68 65 20 63 75 72 72 65 6e 74 0a 68 65 61 64 69 6e 67 20 28 69 2e 65 | between.the.current.heading.(i.e |
| aade0 | 2e 20 74 68 65 20 68 65 61 64 69 6e 67 20 77 69 74 68 20 74 68 65 20 74 6f 70 69 63 20 73 65 74 | ..the.heading.with.the.topic.set |
| aae00 | 29 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 28 69 | ).and.the.cursor.position."...(i |
| aae20 | 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 0a 20 | nteractive....(list.....(progn.. |
| aae40 | 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 6d 6f | .....(or.(derived-mode-p.'org-mo |
| aae60 | 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 70 6f | de)...........(user-error."Suppo |
| aae80 | 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 66 65 | rt.for.multiple.topics.per.buffe |
| aaea0 | 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 2d 6d | r.is.only.implemented.for.`org-m |
| aaec0 | 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 20 22 | ode'")).......(completing-read." |
| aaee0 | 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 20 20 | Set.topic.as:."................. |
| aaf00 | 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 50 54 | .......(org-property-values."GPT |
| aaf20 | 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 20 20 | EL_TOPIC")...................... |
| aaf40 | 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 20 20 | ..nil.nil.(downcase............. |
| aaf60 | 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 |
| aaf80 | 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................... |
| aafa0 | 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 72 6f | ...............(substring-no-pro |
| aafc0 | 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......................... |
| aafe0 | 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 74 72 | ..........(replace-regexp-in-str |
| ab000 | 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 20 | ing............................. |
| ab020 | 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 20 20 | ......."\\s-+"."-".............. |
| ab040 | 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 65 6e 74 72 79 | ......................(org-entry |
| ab060 | 2d 67 65 74 20 6e 69 6c 20 22 49 54 45 4d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | -get.nil."ITEM"))).............. |
| ab080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 35 30 29 29 29 29 29 29 0a 20 20 28 | ....................50))))))...( |
| ab0a0 | 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 74 6f 70 69 63 29 20 28 6f 72 67 2d 73 65 74 2d 70 72 | when.(stringp.topic).(org-set-pr |
| ab0c0 | 6f 70 65 72 74 79 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 74 6f 70 69 63 29 29 29 0a 0a 3b | operty."GPTEL_TOPIC".topic)))..; |
| ab0e0 | 3b 20 4e 4f 54 45 3a 20 54 68 69 73 20 63 61 6e 20 62 65 20 63 6f 6e 76 65 72 74 65 64 20 74 6f | ;.NOTE:.This.can.be.converted.to |
| ab100 | 20 61 20 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 66 6f 72 0a 3b 3b 20 60 67 70 74 65 6c 2d 2d 63 | .a.cl-defmethod.for.;;.`gptel--c |
| ab120 | 72 65 61 74 65 2d 70 72 6f 6d 70 74 2d 62 75 66 66 65 72 27 20 28 63 6f 6e 63 65 70 74 75 61 6c | reate-prompt-buffer'.(conceptual |
| ab140 | 6c 79 20 63 6c 65 61 6e 65 72 29 2c 20 62 75 74 20 77 69 6c 6c 20 63 61 75 73 65 0a 3b 3b 20 6c | ly.cleaner),.but.will.cause.;;.l |
| ab160 | 6f 61 64 2d 6f 72 64 65 72 20 69 73 73 75 65 73 20 69 6e 20 67 70 74 65 6c 2e 65 6c 20 61 6e 64 | oad-order.issues.in.gptel.el.and |
| ab180 | 20 6d 69 67 68 74 20 62 65 20 68 61 72 64 65 72 20 74 6f 20 64 65 62 75 67 2e 0a 28 64 65 66 75 | .might.be.harder.to.debug..(defu |
| ab1a0 | 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 2d 62 75 66 66 65 | n.gptel-org--create-prompt-buffe |
| ab1c0 | 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 65 74 75 | r.(&optional.prompt-end)..."Retu |
| ab1e0 | 72 6e 20 61 20 62 75 66 66 65 72 20 77 69 74 68 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f | rn.a.buffer.with.the.conversatio |
| ab200 | 6e 20 70 72 6f 6d 70 74 20 74 6f 20 62 65 20 73 65 6e 74 2e 0a 0a 49 66 20 74 68 65 20 72 65 67 | n.prompt.to.be.sent...If.the.reg |
| ab220 | 69 6f 6e 20 69 73 20 61 63 74 69 76 65 20 6c 69 6d 69 74 20 74 68 65 20 70 72 6f 6d 70 74 20 74 | ion.is.active.limit.the.prompt.t |
| ab240 | 65 78 74 20 74 6f 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 73 2e 0a 4f 74 68 65 | ext.to.the.region.contents..Othe |
| ab260 | 72 77 69 73 65 20 74 68 65 20 70 72 6f 6d 70 74 20 74 65 78 74 20 69 73 20 63 6f 6e 73 74 72 75 | rwise.the.prompt.text.is.constru |
| ab280 | 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 0a 63 75 | cted.from.the.contents.of.the.cu |
| ab2a0 | 72 72 65 6e 74 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 70 6f 69 6e 74 2c 20 6f 72 20 50 52 4f | rrent.buffer.up.to.point,.or.PRO |
| ab2c0 | 4d 50 54 2d 45 4e 44 20 69 66 20 70 72 6f 76 69 64 65 64 2e 20 20 49 74 73 20 63 6f 6e 74 65 6e | MPT-END.if.provided...Its.conten |
| ab2e0 | 74 73 0a 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 67 70 74 65 6c | ts.depend.on.the.value.of.`gptel |
| ab300 | 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 27 2c 20 77 68 69 63 68 20 73 | -org-branching-context',.which.s |
| ab320 | 65 65 2e 22 0a 20 20 28 77 68 65 6e 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 | ee."...(when.(use-region-p)..... |
| ab340 | 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e | (narrow-to-region.(region-beginn |
| ab360 | 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 70 72 6f | ing).(region-end)).....(setq.pro |
| ab380 | 6d 70 74 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 28 67 6f 74 6f 2d 63 68 | mpt-end.(point-max)))...(goto-ch |
| ab3a0 | 61 72 20 28 6f 72 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 73 65 74 71 20 70 72 6f 6d 70 74 2d 65 | ar.(or.prompt-end.(setq.prompt-e |
| ab3c0 | 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 74 6f 70 69 63 2d 73 74 61 | nd.(point))))...(let.((topic-sta |
| ab3e0 | 72 74 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 67 65 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 29 29 | rt.(gptel-org--get-topic-start)) |
| ab400 | 29 0a 20 20 20 20 28 77 68 65 6e 20 74 6f 70 69 63 2d 73 74 61 72 74 0a 20 20 20 20 20 20 3b 3b | ).....(when.topic-start.......;; |
| ab420 | 20 6e 61 72 72 6f 77 20 74 6f 20 47 50 54 45 4c 5f 54 4f 50 49 43 20 70 72 6f 70 65 72 74 79 20 | .narrow.to.GPTEL_TOPIC.property. |
| ab440 | 73 63 6f 70 65 0a 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 74 6f | scope.......(narrow-to-region.to |
| ab460 | 70 69 63 2d 73 74 61 72 74 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 28 69 66 20 28 | pic-start.prompt-end)).....(if.( |
| ab480 | 61 6e 64 20 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 0a | and.gptel-org-branching-context. |
| ab4a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 66 62 6f 75 6e 64 70 20 27 6f 72 67 2d 65 | .............(or.(fboundp.'org-e |
| ab4c0 | 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | lement-lineage-map)............. |
| ab4e0 | 20 20 20 20 20 28 70 72 6f 67 31 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(prog1.nil................. |
| ab500 | 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...(display-warning............. |
| ab520 | 20 20 20 20 20 20 20 20 27 28 67 70 74 65 6c 20 6f 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ........'(gptel.org)............ |
| ab540 | 20 20 20 20 20 20 20 20 20 22 55 73 69 6e 67 20 60 67 70 74 65 6c 2d 6f 72 67 2d 62 72 61 6e 63 | ........."Using.`gptel-org-branc |
| ab560 | 68 69 6e 67 2d 63 6f 6e 74 65 78 74 27 20 72 65 71 75 69 72 65 73 20 4f 72 67 20 76 65 72 73 69 | hing-context'.requires.Org.versi |
| ab580 | 6f 6e 20 39 2e 37 20 6f 72 20 68 69 67 68 65 72 2c 20 69 74 20 77 69 6c 6c 20 62 65 20 69 67 6e | on.9.7.or.higher,.it.will.be.ign |
| ab5a0 | 6f 72 65 64 2e 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 43 72 65 61 74 65 20 70 72 6f | ored.")))).........;;.Create.pro |
| ab5c0 | 6d 70 74 20 66 72 6f 6d 20 64 69 72 65 63 74 20 61 6e 63 65 73 74 6f 72 73 20 6f 66 20 70 6f 69 | mpt.from.direct.ancestors.of.poi |
| ab5e0 | 6e 74 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 | nt.........(save-excursion...... |
| ab600 | 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6f 72 67 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 | .....(let*.((org-buf.(current-bu |
| ab620 | 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 | ffer))..................;;.Colle |
| ab640 | 63 74 20 61 6c 6c 20 68 65 61 64 69 6e 67 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 20 69 | ct.all.heading.start.positions.i |
| ab660 | 6e 20 74 68 65 20 6c 69 6e 65 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | n.the.lineage..................( |
| ab680 | 66 75 6c 6c 2d 62 6f 75 6e 64 73 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d | full-bounds.(gptel-org--element- |
| ab6a0 | 6c 69 6e 65 61 67 65 2d 6d 61 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | lineage-map..................... |
| ab6c0 | 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 61 74 2d 70 6f | ..............(org-element-at-po |
| ab6e0 | 69 6e 74 29 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 0a | int).#'gptel-org--element-begin. |
| ab700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ab720 | 27 28 68 65 61 64 6c 69 6e 65 29 20 27 77 69 74 68 2d 73 65 6c 66 29 20 29 0a 20 20 20 20 20 20 | '(headline).'with-self).)....... |
| ab740 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 61 67 65 2d 6d 61 70 20 72 65 74 75 72 6e | ...........;;.lineage-map.return |
| ab760 | 73 20 74 68 65 20 66 75 6c 6c 20 6c 69 6e 65 61 67 65 20 69 6e 20 74 68 65 20 75 6e 6e 61 72 72 | s.the.full.lineage.in.the.unnarr |
| ab780 | 6f 77 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 75 66 66 65 72 2e | owed..................;;.buffer. |
| ab7a0 | 20 20 52 65 6d 6f 76 65 20 68 65 61 64 69 6e 67 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 73 | ..Remove.heading.start.positions |
| ab7c0 | 20 62 65 66 6f 72 65 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .before.(point-min)............. |
| ab7e0 | 20 20 20 20 20 3b 3b 20 74 68 61 74 20 61 72 65 20 69 6e 76 61 6c 69 64 20 64 75 65 20 74 6f 20 | .....;;.that.are.invalid.due.to. |
| ab800 | 6e 61 72 72 6f 77 69 6e 67 2c 20 61 6e 64 20 61 64 64 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 69 | narrowing,.and.add.(point-min).i |
| ab820 | 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 74 27 73 20 6e 6f 74 20 61 | f..................;;.it's.not.a |
| ab840 | 6c 72 65 61 64 79 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 6c 69 6e 65 61 67 65 0a 20 | lready.included.in.the.lineage.. |
| ab860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 62 6f 75 6e 64 73 0a 20 20 | ................(start-bounds... |
| ab880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 28 63 6c 2d 64 65 6c 65 74 | ................(nconc.(cl-delet |
| ab8a0 | 65 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 70 29 20 28 3c 20 70 20 28 70 6f 69 6e 74 2d 6d 69 6e | e-if.(lambda.(p).(<.p.(point-min |
| ab8c0 | 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 | )))............................. |
| ab8e0 | 20 20 20 20 20 20 20 20 20 20 20 66 75 6c 6c 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 | ...........full-bounds)......... |
| ab900 | 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 28 73 61 76 65 2d 65 | .................(unless.(save-e |
| ab920 | 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 | xcursion.(goto-char.(point-min)) |
| ab940 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ab960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 | ..................(looking-at-p. |
| ab980 | 6f 75 74 6c 69 6e 65 2d 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | outline-regexp))................ |
| ab9a0 | 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 6e 29 29 29 29 | ............(list.(point-min)))) |
| ab9c0 | 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 64 73 0a 20 | )..................(end-bounds.. |
| ab9e0 | 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 20 20 | .................(cl-loop....... |
| aba00 | 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 6f 75 6e 64 | .............;;.(car.start-bound |
| aba20 | 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 72 72 65 6e | s).is.the.begining.of.the.curren |
| aba40 | 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 20 20 3b 3b | t.element,....................;; |
| aba60 | 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 20 20 20 20 | .not.relevant................... |
| aba80 | 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 73 29 0a 20 | .for.pos.in.(cdr.start-bounds).. |
| abaa0 | 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 68 61 72 20 | ..................do.(goto-char. |
| abac0 | 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 20 20 20 20 | pos).(outline-next-heading)..... |
| abae0 | 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 74 29 20 69 | ...............collect.(point).i |
| abb00 | 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 66 69 6e 61 | nto.ends....................fina |
| abb20 | 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 65 6e 64 73 | lly.return.(cons.prompt-end.ends |
| abb40 | 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 68 2d 62 75 | )))).............(gptel--with-bu |
| abb60 | 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 20 20 20 20 | ffer-copy.org-buf.nil.nil....... |
| abb80 | 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 6e 20 73 74 | ........(cl-loop.for.start.in.st |
| abba0 | 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 20 20 20 20 | art-bounds...................... |
| abbc0 | 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 20 20 20 20 | ..for.end.in.end-bounds......... |
| abbe0 | 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 66 66 65 72 | ...............do.(insert-buffer |
| abc00 | 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 29 0a 20 20 | -substring.org-buf.start.end)... |
| abc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | .....................(goto-char. |
| abc40 | 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 28 67 6f 74 | (point-min)))...............(got |
| abc60 | 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | o-char.(point-max))............. |
| abc80 | 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 72 65 73 75 | ..(gptel-org--unescape-tool-resu |
| abca0 | 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 67 2d 2d 73 | lts)...............(gptel-org--s |
| abcc0 | 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | trip-block-headers)............. |
| abce0 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d | ..(when-let*.((gptel-org-ignore- |
| abd00 | 65 6c 65 6d 65 6e 74 73 20 3b 6e 6f 74 20 63 6f 70 69 65 64 20 62 79 20 2d 77 69 74 68 2d 62 75 | elements.;not.copied.by.-with-bu |
| abd20 | 66 66 65 72 2d 63 6f 70 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffer-copy....................... |
| abd40 | 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 70 74 65 6c 2d | .....(buffer-local-value.'gptel- |
| abd60 | 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 20 20 20 20 | org-ignore-elements............. |
| abd80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| abda0 | 20 20 20 6f 72 67 2d 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | ...org-buf))).................(g |
| abdc0 | 70 74 65 6c 2d 6f 72 67 2d 2d 73 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 | ptel-org--strip-elements))...... |
| abde0 | 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 72 67 2d 63 6f 6d 70 6c 65 78 2d 68 65 61 64 69 | .........(setq.org-complex-headi |
| abe00 | 6e 67 2d 72 65 67 65 78 70 20 3b 46 6f 72 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 63 6f 6e 74 65 | ng-regexp.;For.org-element-conte |
| abe20 | 78 74 20 74 6f 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 28 62 | xt.to.run.....................(b |
| abe40 | 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6f 72 67 2d 63 6f 6d 70 6c 65 78 2d 68 | uffer-local-value.'org-complex-h |
| abe60 | 65 61 64 69 6e 67 2d 72 65 67 65 78 70 20 6f 72 67 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 | eading-regexp.org-buf))......... |
| abe80 | 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 | ......(current-buffer))))....... |
| abea0 | 3b 3b 20 43 72 65 61 74 65 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 75 61 6c 20 77 61 79 0a 20 | ;;.Create.prompt.the.usual.way.. |
| abec0 | 20 20 20 20 20 28 6c 65 74 20 28 28 6f 72 67 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 | .....(let.((org-buf.(current-buf |
| abee0 | 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 70 6f 69 6e 74 2d 6d 69 | fer)).............(beg.(point-mi |
| abf00 | 6e 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 77 69 74 68 2d 62 75 66 66 65 72 | n))).........(gptel--with-buffer |
| abf20 | 2d 63 6f 70 79 20 6f 72 67 2d 62 75 66 20 62 65 67 20 70 72 6f 6d 70 74 2d 65 6e 64 0a 20 20 20 | -copy.org-buf.beg.prompt-end.... |
| abf40 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 75 6e 65 73 63 61 70 65 2d 74 6f 6f 6c | .......(gptel-org--unescape-tool |
| abf60 | 2d 72 65 73 75 6c 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d | -results)...........(gptel-org-- |
| abf80 | 73 74 72 69 70 2d 62 6c 6f 63 6b 2d 68 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 | strip-block-headers)...........( |
| abfa0 | 77 68 65 6e 2d 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 6f 72 67 2d 69 67 6e 6f 72 65 2d 65 6c 65 | when-let*.((gptel-org-ignore-ele |
| abfc0 | 6d 65 6e 74 73 20 3b 6e 6f 74 20 63 6f 70 69 65 64 20 62 79 20 2d 77 69 74 68 2d 62 75 66 66 65 | ments.;not.copied.by.-with-buffe |
| abfe0 | 72 2d 63 6f 70 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 28 62 | r-copy........................(b |
| ac000 | 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 6f 72 67 2d 69 67 6e | uffer-local-value.'gptel-org-ign |
| ac020 | 6f 72 65 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ore-elements.................... |
| ac040 | 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 62 75 66 29 | ........................org-buf) |
| ac060 | 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 2d 6f 72 67 2d 2d 73 | )).................(gptel-org--s |
| ac080 | 74 72 69 70 2d 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 | trip-elements))...........(setq. |
| ac0a0 | 6f 72 67 2d 63 6f 6d 70 6c 65 78 2d 68 65 61 64 69 6e 67 2d 72 65 67 65 78 70 20 3b 46 6f 72 20 | org-complex-heading-regexp.;For. |
| ac0c0 | 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 63 6f 6e 74 65 78 74 20 74 6f 20 72 75 6e 0a 20 20 20 20 20 | org-element-context.to.run...... |
| ac0e0 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 | ...........(buffer-local-value.' |
| ac100 | 6f 72 67 2d 63 6f 6d 70 6c 65 78 2d 68 65 61 64 69 6e 67 2d 72 65 67 65 78 70 20 6f 72 67 2d 62 | org-complex-heading-regexp.org-b |
| ac120 | 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 | uf))...........(current-buffer)) |
| ac140 | 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 6c | ))))..(defun.gptel-org--strip-el |
| ac160 | 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 73 | ements.()..."Remove.all.elements |
| ac180 | 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 20 | .in.`gptel-org-ignore-elements'. |
| ac1a0 | 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 72 | from.the.prompt."...(let.((major |
| ac1c0 | 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 73 | -mode.'org-mode).element-markers |
| ac1e0 | 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 77 | ).....(if.(equal.'(property-draw |
| ac200 | 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 20 | er).gptel-org-ignore-elements).. |
| ac220 | 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 20 | .......(save-excursion.......... |
| ac240 | 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 20 | .(goto-char.(point-min))........ |
| ac260 | 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 67 | ...(while.(re-search-forward.org |
| ac280 | 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 20 | -property-drawer-re.nil.t)...... |
| ac2a0 | 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 65 | .......;;.;;.Slower.but.accurate |
| ac2c0 | 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 6f | .............;;.(let.((drawer.(o |
| ac2e0 | 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 20 | rg-element-at-point))).......... |
| ac300 | 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 2d | ...;;...(when.(org-element-type- |
| ac320 | 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 20 | p.drawer.'property-drawer)...... |
| ac340 | 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 72 | .......;;.....(delete-region.(or |
| ac360 | 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 65 | g-element-begin.drawer).(org-ele |
| ac380 | 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 20 | ment-end.drawer))))............. |
| ac3a0 | 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 66 | .;;.Fast.but.inexact,.can.have.f |
| ac3c0 | 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 65 | alse.positives.............(dele |
| ac3e0 | 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 6d | te-region.(match-beginning.0).(m |
| ac400 | 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 61 | atch-end.0)))).......;;.NOTE:.Pa |
| ac420 | 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 6c | rsing.the.buffer.is.extremely.sl |
| ac440 | 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 20 | ow...Avoid.this.path.unless..... |
| ac460 | 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 6f | ..;;.required........;;.NOTE:.`o |
| ac480 | 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 45 | rg-element-map'.takes.a.third.KE |
| ac4a0 | 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 20 | EP-DEFERRED.argument.in.newer... |
| ac4c0 | 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 65 | ....;;.Org.versions.......(org-e |
| ac4e0 | 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 75 | lement-map.(org-element-parse-bu |
| ac500 | 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 74 | ffer.'element.nil)...........gpt |
| ac520 | 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 28 | el-org-ignore-elements.........( |
| ac540 | 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 6c | lambda.(node)...........(push.(l |
| ac560 | 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 6f | ist.(gptel-org--element-begin.no |
| ac580 | 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 6c | de).......................(gptel |
| ac5a0 | 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 20 | -org--element-end.node))........ |
| ac5c0 | 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 20 | .........element-markers)))..... |
| ac5e0 | 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 72 | ..(dolist.(bounds.element-marker |
| ac600 | 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 6f | s).........(apply.#'delete-regio |
| ac620 | 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 2d | n.bounds)))))..(defun.gptel-org- |
| ac640 | 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 76 | -strip-block-headers.()..."Remov |
| ac660 | 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 65 | e.all.gptel-specific.block.heade |
| ac680 | 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 20 | rs.and.footers..Every.line.that. |
| ac6a0 | 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 79 | matches.will.be.removed.entirely |
| ac6c0 | 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 20 | ...This.removal.is.necessary.to. |
| ac6e0 | 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 28 | avoid.auto-mimicry.by.LLMs."...( |
| ac700 | 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 70 | save-excursion.....(goto-char.(p |
| ac720 | 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 68 | oint-min)).....(while.(re-search |
| ac740 | 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 74 | -forward.............(rx.line-st |
| ac760 | 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 20 | art.(literal."#+").............. |
| ac780 | 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 61 | ...(or.(literal."begin").(litera |
| ac7a0 | 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 6c | l."end")).................(or.(l |
| ac7c0 | 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 6f | iteral."_tool").(literal."_reaso |
| ac7e0 | 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 20 | ning"))).............nil.t)..... |
| ac800 | 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 6e | ..(delete-region.(match-beginnin |
| ac820 | 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 28 | g.0)......................(min.( |
| ac840 | 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 6f | point-max).(1+.(line-end-positio |
| ac860 | 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 73 | n)))))))..(defun.gptel-org--unes |
| ac880 | 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 63 | cape-tool-results.()..."Undo.esc |
| ac8a0 | 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 65 | apes.done.to.keep.results.from.e |
| ac8c0 | 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 66 | scaping.blocks..Scans.backward.f |
| ac8e0 | 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 61 | or.gptel.tool.text.property,.rea |
| ac900 | 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 73 | ds.the.arguments,.then.unescapes |
| ac920 | 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 69 | .the.remainder."...(save-excursi |
| ac940 | 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 20 | on.....(goto-char.(point-max)).. |
| ac960 | 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 20 | ...(let.((prev-pt.(point)))..... |
| ac980 | 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 29 | ..(while.(>.prev-pt.(point-min)) |
| ac9a0 | 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 72 | .........(goto-char..........(pr |
| ac9c0 | 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 6e | evious-single-char-property-chan |
| ac9e0 | 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 74 | ge.(point).'gptel)).........(let |
| aca00 | 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 6e | .((prop.(get-text-property.(poin |
| aca20 | 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 77 | t).'gptel))...............(backw |
| aca40 | 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 20 | ard-progress.(point))).......... |
| aca60 | 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 6c | .(when.(eq.(car-safe.prop).'tool |
| aca80 | 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 63 | ).............;;.User.edits.to.c |
| acaa0 | 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 61 | lean.up.can.potentially.insert.a |
| acac0 | 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 3b | .tool-call.header.............;; |
| acae0 | 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 6c | .that.is.propertized...Tool.call |
| acb00 | 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 20 | .headers.should.not.be.......... |
| acb20 | 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 28 | ...;;.propertized..............( |
| acb40 | 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 2a | when.(looking-at-p."[[:space:]]* |
| acb60 | 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 28 | #\\+begin_tool")...............( |
| acb80 | 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 20 | goto-char.(match-end.0)))....... |
| acba0 | 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 20 | ......(condition-case.nil....... |
| acbc0 | 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 29 | ..........(read.(current-buffer) |
| acbe0 | 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 6e | )...............((end-of-file.in |
| acc00 | 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 20 | valid-read-syntax).............. |
| acc20 | 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 20 | ..(message."Could.not.read.tool. |
| acc40 | 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 44 | arguments"))).............;;.TOD |
| acc60 | 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 70 | O.this.code.is.able.to.put.the.p |
| acc80 | 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 20 | oint.behind.prev-pt,.which...... |
| acca0 | 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 72 | .......;;.makes.the.region.inver |
| accc0 | 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 75 | ted...The.`max'.catches.this,.bu |
| acce0 | 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 61 | t.really.............;;.`read'.a |
| acd00 | 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 73 | nd.`looking-at'.are.the.culprits |
| acd20 | 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 20 | ...Badly.formed.tool............ |
| acd40 | 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 6e | .;;.blocks.can.lead.to.this.bein |
| acd60 | 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 6e | g.necessary..............(org-un |
| acd80 | 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 20 | escape-code-in-region........... |
| acda0 | 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 74 | ...(min.prev-pt.(point)).prev-pt |
| acdc0 | 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 72 | ))...........(goto-char.(setq.pr |
| acde0 | 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 0a | ev-pt.backward-progress))))))).. |
| ace00 | 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 66 | ;;.Handle.media.links.in.the.buf |
| ace20 | 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 6d | fer.(cl-defmethod.gptel--parse-m |
| ace40 | 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 64 | edia-links.((_mode.(eql.'org-mod |
| ace60 | 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 61 | e)).beg.end)..."Parse.text.and.a |
| ace80 | 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 20 | ctionable.links.between.BEG.and. |
| acea0 | 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 0a | END...Return.a.list.of.the.form. |
| acec0 | 20 28 28 3a 74 65 78 74 20 5c 22 73 6f 6d 65 20 74 65 78 74 5c 22 29 0a 20 20 28 3a 6d 65 64 69 | .((:text.\"some.text\")...(:medi |
| acee0 | 61 20 5c 22 2f 70 61 74 68 2f 74 6f 2f 6d 65 64 69 61 2e 70 6e 67 5c 22 20 3a 6d 69 6d 65 20 5c | a.\"/path/to/media.png\".:mime.\ |
| acf00 | 22 69 6d 61 67 65 2f 70 6e 67 5c 22 29 0a 20 20 28 3a 74 65 78 74 20 5c 22 4d 6f 72 65 20 74 65 | "image/png\")...(:text.\"More.te |
| acf20 | 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 73 | xt\")).for.inclusion.into.the.us |
| acf40 | 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 2e | er.prompt.for.the.gptel.request. |
| acf60 | 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 20 | "...(require.'mailcap).......... |
| acf80 | 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 65 | ..........;FIXME.Avoid.this.some |
| acfa0 | 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 20 28 6d | how...(let.((parts).(from-pt).(m |
| acfc0 | 69 6d 65 29 0a 20 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 | ime).........(link-regex.(concat |
| acfe0 | 20 22 5c 5c 28 3f 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 | ."\\(?:".org-link-bracket-re."\\ |
| ad000 | 7c 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 6f | |".............................o |
| ad020 | 72 67 2d 6c 69 6e 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 | rg-link-angle-re."\\)"))).....(s |
| ad040 | 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 72 6f 6d 2d 70 | ave-excursion.......(setq.from-p |
| ad060 | 74 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 | t.(goto-char.beg)).......(while. |
| ad080 | 28 72 65 2d 73 65 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 | (re-search-forward.link-regex.en |
| ad0a0 | 64 20 74 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 69 6d 65 20 6e 69 6c 29 0a 20 20 20 | d.t).........(setq.mime.nil).... |
| ad0c0 | 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 65 6d | .....(when-let*.((link.(org-elem |
| ad0e0 | 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 20 20 | ent-context))................... |
| ad100 | 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 2d 70 | ..((gptel-org--link-standalone-p |
| ad120 | 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 61 77 | .link)).....................(raw |
| ad140 | 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 61 77 | -link.(org-element-property.:raw |
| ad160 | 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 20 20 | -link.link)).................... |
| ad180 | 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 70 61 | .(path.(org-element-property.:pa |
| ad1a0 | 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 28 74 | th.link)).....................(t |
| ad1c0 | 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 65 20 | ype.(org-element-property.:type. |
| ad1e0 | 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 46 49 | link)).....................;;.FI |
| ad200 | 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 6f 20 | XME.This.is.not.a.good.place.to. |
| ad220 | 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 20 20 | check.for.url.capability!....... |
| ad240 | 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 22 61 | ..............((member.type.`("a |
| ad260 | 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 20 20 | ttachment"."file"............... |
| ad280 | 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 67 70 | ......................,@(and.(gp |
| ad2a0 | 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 20 20 | tel--model-capable-p.'url)...... |
| ad2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| ad2e0 | 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 29 0a 20 | ..'("http"."https"."ftp")))))).. |
| ad300 | 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 6d 65 6d 62 | .........(cond............((memb |
| ad320 | 65 72 20 74 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 | er.type.'("file"."attachment")). |
| ad340 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 | ............(if.(file-readable-p |
| ad360 | 20 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f | .path)...............(if.(or.(no |
| ad380 | 74 20 28 67 70 74 65 6c 2d 2d 66 69 6c 65 2d 62 69 6e 61 72 79 2d 70 20 70 61 74 68 29 29 0a 20 | t.(gptel--file-binary-p.path)).. |
| ad3a0 | 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 65 74 71 20 | .....................(and.(setq. |
| ad3c0 | 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- |
| ad3e0 | 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 20 20 20 20 20 20 | type.path))..................... |
| ad400 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 6d 69 6d 65 2d 63 61 70 61 62 6c | .......(gptel--model-mime-capabl |
| ad420 | 65 2d 70 20 6d 69 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | e-p.mime)))...................(p |
| ad440 | 72 6f 67 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 74 65 78 74 20 66 69 6c 65 20 | rogn................;.text.file. |
| ad460 | 6f 72 20 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 0a 20 20 20 20 20 20 20 | or.supported.binary.file........ |
| ad480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 | .............;;.collect.text.up. |
| ad4a0 | 74 6f 20 6c 69 6e 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | to.link.....................(whe |
| ad4c0 | 6e 2d 6c 65 74 2a 20 28 28 74 65 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d | n-let*.((text.(buffer-substring- |
| ad4e0 | 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 20 | no-properties................... |
| ad500 | 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 28 67 70 | .....................from-pt.(gp |
| ad520 | 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 29 29 0a | tel-org--element-begin.link)))). |
| ad540 | 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 28 73 | ......................(unless.(s |
| ad560 | 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 28 6c 69 73 74 20 | tring-blank-p.text).(push.(list. |
| ad580 | 3a 74 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 | :text.text).parts)))............ |
| ad5a0 | 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6f 6c 6c 65 63 74 20 6c 69 6e 6b 0a 20 20 20 20 20 20 20 | .........;;.collect.link........ |
| ad5c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 69 66 20 6d 69 6d 65 20 28 6c 69 73 | .............(push.(if.mime.(lis |
| ad5e0 | 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 28 6c 69 73 74 20 | t.:media.path.:mime.mime).(list. |
| ad600 | 3a 74 65 78 74 66 69 6c 65 20 70 61 74 68 29 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 | :textfile.path)).parts)......... |
| ad620 | 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 70 6f 69 6e 74 | ............(setq.from-pt.(point |
| ad640 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 49 67 | ))).................(message."Ig |
| ad660 | 6e 6f 72 69 6e 67 20 75 6e 73 75 70 70 6f 72 74 65 64 20 62 69 6e 61 72 79 20 66 69 6c 65 20 5c | noring.unsupported.binary.file.\ |
| ad680 | 22 25 73 5c 22 2e 22 20 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 | "%s\".".path))...............(me |
| ad6a0 | 73 73 61 67 65 20 22 49 67 6e 6f 72 69 6e 67 20 69 6e 61 63 63 65 73 73 69 62 6c 65 20 66 69 6c | ssage."Ignoring.inaccessible.fil |
| ad6c0 | 65 20 5c 22 25 73 5c 22 2e 22 20 70 61 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 | e.\"%s\".".path)))............(( |
| ad6e0 | 61 6e 64 20 28 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 | and.(member.type.'("http"."https |
| ad700 | 22 20 22 66 74 70 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | "."ftp"))..................(setq |
| ad720 | 20 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 | .mime.(mailcap-file-name-to-mime |
| ad740 | 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 20 20 20 28 67 | -type.path))..................(g |
| ad760 | 70 74 65 6c 2d 2d 6d 6f 64 65 6c 2d 63 61 70 61 62 6c 65 2d 70 20 6d 69 6d 65 29 29 0a 20 20 20 | ptel--model-capable-p.mime)).... |
| ad780 | 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 6c 6c 65 63 74 20 74 65 78 74 20 75 70 20 74 6f 20 74 | .........;;.Collect.text.up.to.t |
| ad7a0 | 68 69 73 20 69 6d 61 67 65 2c 20 61 6e 64 20 63 6f 6c 6c 65 63 74 20 74 68 69 73 20 69 6d 61 67 | his.image,.and.collect.this.imag |
| ad7c0 | 65 20 75 72 6c 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 74 | e.url.............(when-let*.((t |
| ad7e0 | 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 74 | ext.(buffer-substring-no-propert |
| ad800 | 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 20 | ies............................. |
| ad820 | 20 20 20 66 72 6f 6d 2d 70 74 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 | ...from-pt.(gptel-org--element-b |
| ad840 | 65 67 69 6e 20 6c 69 6e 6b 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c | egin.link))))...............(unl |
| ad860 | 65 73 73 20 28 73 74 72 69 6e 67 2d 62 6c 61 6e 6b 2d 70 20 74 65 78 74 29 20 28 70 75 73 68 20 | ess.(string-blank-p.text).(push. |
| ad880 | 28 6c 69 73 74 20 3a 74 65 78 74 20 74 65 78 74 29 20 70 61 72 74 73 29 29 29 0a 20 20 20 20 20 | (list.:text.text).parts)))...... |
| ad8a0 | 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 75 72 6c 20 72 61 77 2d 6c 69 6e 6b | .......(push.(list.:url.raw-link |
| ad8c0 | 20 3a 6d 69 6d 65 20 6d 69 6d 65 29 20 70 61 72 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:mime.mime).parts)............. |
| ad8e0 | 28 73 65 74 71 20 66 72 6f 6d 2d 70 74 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a 20 20 20 20 20 | (setq.from-pt.(point))))))...... |
| ad900 | 20 28 75 6e 6c 65 73 73 20 28 3d 20 66 72 6f 6d 2d 70 74 20 65 6e 64 29 0a 20 20 20 20 20 20 20 | .(unless.(=.from-pt.end)........ |
| ad920 | 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 |
| ad940 | 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 65 6e 64 29 29 | ring-no-properties.from-pt.end)) |
| ad960 | 20 70 61 72 74 73 29 29 29 0a 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 70 61 72 74 73 29 29 29 | .parts))).....(nreverse.parts))) |
| ad980 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 6c 69 6e 6b 2d 73 74 61 6e 64 61 6c | ..(defun.gptel-org--link-standal |
| ad9a0 | 6f 6e 65 2d 70 20 28 6f 62 6a 65 63 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 6c 69 6e 6b 20 | one-p.(object)..."Check.if.link. |
| ad9c0 | 4f 42 4a 45 43 54 20 69 73 20 6f 6e 20 61 20 6c 69 6e 65 20 62 79 20 69 74 73 65 6c 66 2e 22 0a | OBJECT.is.on.a.line.by.itself.". |
| ad9e0 | 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 70 61 72 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 | ..(when-let*.((par.(gptel-org--e |
| ada00 | 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 20 6f 62 6a 65 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 | lement-parent.object)).......... |
| ada20 | 20 20 20 20 20 28 28 65 71 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 20 70 61 72 29 | .....((eq.(org-element-type.par) |
| ada40 | 20 27 70 61 72 61 67 72 61 70 68 29 29 29 0a 20 20 20 20 28 61 6e 64 20 28 3d 20 28 67 70 74 65 | .'paragraph))).....(and.(=.(gpte |
| ada60 | 6c 2d 6f 72 67 2d 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 20 6f 62 6a 65 63 74 29 0a 20 20 20 | l-org--element-begin.object).... |
| ada80 | 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 20 20 | .........(save-excursion........ |
| adaa0 | 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 | .......(goto-char.(org-element-p |
| adac0 | 72 6f 70 65 72 74 79 20 3a 63 6f 6e 74 65 6e 74 73 2d 62 65 67 69 6e 20 70 61 72 29 29 0a 20 20 | roperty.:contents-begin.par))... |
| adae0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 | ............(skip-chars-forward. |
| adb00 | 22 5c 74 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 20 20 | "\t.")...............(point))).. |
| adb20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 61 63 63 6f 75 6e 74 20 66 6f 72 20 6c 65 61 64 | ...............;account.for.lead |
| adb40 | 69 6e 67 20 73 70 61 63 65 20 62 65 66 6f 72 65 20 6f 62 6a 65 63 74 0a 20 20 20 20 20 20 20 20 | ing.space.before.object......... |
| adb60 | 20 28 3c 3d 20 28 2d 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 63 | .(<=.(-.(org-element-property.:c |
| adb80 | 6f 6e 74 65 6e 74 73 2d 65 6e 64 20 70 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ontents-end.par)................ |
| adba0 | 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 70 72 6f 70 65 72 74 79 20 3a 65 6e 64 20 6f 62 6a 65 | .(org-element-property.:end.obje |
| adbc0 | 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | ct))..............1))))..(defun. |
| adbe0 | 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 20 28 73 65 6e 64 | gptel-org--send-with-props.(send |
| adc00 | 2d 66 75 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 43 6f 6e 64 69 74 69 6f 6e 61 6c 6c | -fun.&rest.args)..."Conditionall |
| adc20 | 79 20 6d 6f 64 69 66 79 20 53 45 4e 44 2d 46 55 4e 27 73 20 63 61 6c 6c 69 6e 67 20 65 6e 76 69 | y.modify.SEND-FUN's.calling.envi |
| adc40 | 72 6f 6e 6d 65 6e 74 2e 0a 0a 49 66 20 69 6e 20 61 6e 20 4f 72 67 20 62 75 66 66 65 72 20 75 6e | ronment...If.in.an.Org.buffer.un |
| adc60 | 64 65 72 20 61 20 68 65 61 64 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 73 74 6f 72 65 | der.a.heading.containing.a.store |
| adc80 | 64 20 67 70 74 65 6c 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 75 73 65 20 74 68 61 74 20 | d.gptel.configuration,.use.that. |
| adca0 | 66 6f 72 20 72 65 71 75 65 73 74 73 20 69 6e 73 74 65 61 64 2e 20 20 54 68 69 73 20 69 6e 63 6c | for.requests.instead...This.incl |
| adcc0 | 75 64 65 73 20 74 68 65 0a 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 6d 6f 64 65 6c 20 61 | udes.the.system.message,.model.a |
| adce0 | 6e 64 20 70 72 6f 76 69 64 65 72 20 28 62 61 63 6b 65 6e 64 29 2c 20 61 6d 6f 6e 67 20 6f 74 68 | nd.provider.(backend),.among.oth |
| add00 | 65 72 0a 70 61 72 61 6d 65 74 65 72 73 2e 0a 0a 41 52 47 53 20 61 72 65 20 74 68 65 20 6f 72 69 | er.parameters...ARGS.are.the.ori |
| add20 | 67 69 6e 61 6c 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a | ginal.function.call.arguments.". |
| add40 | 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 29 | ..(if.(derived-mode-p.'org-mode) |
| add60 | 0a 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 67 70 74 65 6c 2d 2d 73 79 | .......(pcase-let.((`(,gptel--sy |
| add80 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 2c 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 2c 67 70 74 | stem-message.,gptel-backend.,gpt |
| adda0 | 65 6c 2d 6d 6f 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 2c 67 | el-model......................,g |
| addc0 | 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 2c 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 | ptel-temperature.,gptel-max-toke |
| adde0 | 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6d 61 70 6e | ns)....................(seq-mapn |
| ade00 | 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 6f 72 20 61 20 62 29 29 0a 20 20 20 20 20 20 20 | .(lambda.(a.b).(or.a.b))........ |
| ade20 | 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 6f 72 67 | ......................(gptel-org |
| ade40 | 2d 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 69 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | --entry-properties)............. |
| ade60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 67 70 74 65 6c 2d 2d 73 79 | .................(list.gptel--sy |
| ade80 | 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c | stem-message.gptel-backend.gptel |
| adea0 | 2d 6d 6f 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 20 20 20 20 | -model.......................... |
| adec0 | 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 | ..........gptel-temperature.gpte |
| adee0 | 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 | l-max-tokens)))).........(apply. |
| adf00 | 73 65 6e 64 2d 66 75 6e 20 61 72 67 73 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 73 65 6e 64 2d | send-fun.args)).....(apply.send- |
| adf20 | 66 75 6e 20 61 72 67 73 29 29 29 0a 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d | fun.args)))..(advice-add.'gptel- |
| adf40 | 73 65 6e 64 20 3a 61 72 6f 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 | send.:around.#'gptel-org--send-w |
| adf60 | 69 74 68 2d 70 72 6f 70 73 29 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 2d 73 | ith-props).(advice-add.'gptel--s |
| adf80 | 75 66 66 69 78 2d 73 65 6e 64 20 3a 61 72 6f 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d | uffix-send.:around.#'gptel-org-- |
| adfa0 | 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 73 29 0a 0a 3b 3b 20 3b 3b 20 4e 4f 54 45 3a 20 42 61 | send-with-props)..;;.;;.NOTE:.Ba |
| adfc0 | 73 69 63 20 75 73 65 73 20 69 6e 20 6f 72 67 2d 6d 6f 64 65 20 61 72 65 20 63 6f 76 65 72 65 64 | sic.uses.in.org-mode.are.covered |
| adfe0 | 20 62 79 20 61 64 76 69 73 69 6e 67 20 67 70 74 65 6c 2d 73 65 6e 64 20 61 6e 64 0a 3b 3b 20 3b | .by.advising.gptel-send.and.;;.; |
| ae000 | 3b 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 2e 20 20 46 6f 72 20 63 75 73 74 6f | ;.gptel--suffix-send...For.custo |
| ae020 | 6d 20 63 6f 6d 6d 61 6e 64 73 20 69 74 20 6d 69 67 68 74 20 62 65 20 6e 65 63 65 73 73 61 72 79 | m.commands.it.might.be.necessary |
| ae040 | 20 74 6f 20 61 64 76 69 73 65 0a 3b 3b 20 3b 3b 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 69 | .to.advise.;;.;;.gptel-request.i |
| ae060 | 6e 73 74 65 61 64 2e 0a 3b 3b 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 72 65 | nstead..;;.(advice-add.'gptel-re |
| ae080 | 71 75 65 73 74 20 3a 61 72 6f 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d | quest.:around.#'gptel-org--send- |
| ae0a0 | 77 69 74 68 2d 70 72 6f 70 73 29 0a 0a 0c 0a 3b 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 | with-props)....;;;.Saving.and.re |
| ae0c0 | 73 74 6f 72 69 6e 67 20 73 74 61 74 65 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d | storing.state.(defun.gptel-org-- |
| ae0e0 | 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 69 65 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a | entry-properties.(&optional.pt). |
| ae100 | 20 20 22 46 69 6e 64 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 70 | .."Find.gptel.configuration.prop |
| ae120 | 65 72 74 69 65 73 20 73 74 6f 72 65 64 20 61 74 20 50 54 2e 22 0a 20 20 28 70 63 61 73 65 2d 6c | erties.stored.at.PT."...(pcase-l |
| ae140 | 65 74 0a 20 20 20 20 20 20 28 28 60 28 2c 73 79 73 74 65 6d 20 2c 62 61 63 6b 65 6e 64 20 2c 6d | et.......((`(,system.,backend.,m |
| ae160 | 6f 64 65 6c 20 2c 74 65 6d 70 65 72 61 74 75 72 65 20 2c 74 6f 6b 65 6e 73 20 2c 6e 75 6d 29 0a | odel.,temperature.,tokens.,num). |
| ae180 | 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 28 6c 61 6d 62 | .........(mapcar...........(lamb |
| ae1a0 | 64 61 20 28 70 72 6f 70 29 20 28 6f 72 67 2d 65 6e 74 72 79 2d 67 65 74 20 28 6f 72 20 70 74 20 | da.(prop).(org-entry-get.(or.pt. |
| ae1c0 | 28 70 6f 69 6e 74 29 29 20 70 72 6f 70 20 27 73 65 6c 65 63 74 69 76 65 29 29 0a 20 20 20 20 20 | (point)).prop.'selective))...... |
| ae1e0 | 20 20 20 20 20 27 28 22 47 50 54 45 4c 5f 53 59 53 54 45 4d 22 20 22 47 50 54 45 4c 5f 42 41 43 | .....'("GPTEL_SYSTEM"."GPTEL_BAC |
| ae200 | 4b 45 4e 44 22 20 22 47 50 54 45 4c 5f 4d 4f 44 45 4c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | KEND"."GPTEL_MODEL"............. |
| ae220 | 22 47 50 54 45 4c 5f 54 45 4d 50 45 52 41 54 55 52 45 22 20 22 47 50 54 45 4c 5f 4d 41 58 5f 54 | "GPTEL_TEMPERATURE"."GPTEL_MAX_T |
| ae240 | 4f 4b 45 4e 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 47 50 54 45 4c 5f 4e 55 4d 5f 4d 45 | OKENS"............."GPTEL_NUM_ME |
| ae260 | 53 53 41 47 45 53 5f 54 4f 5f 53 45 4e 44 22 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 79 | SSAGES_TO_SEND")))).....(when.sy |
| ae280 | 73 74 65 6d 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 79 73 74 65 6d 20 28 73 74 72 69 6e 67 2d | stem.......(setq.system.(string- |
| ae2a0 | 72 65 70 6c 61 63 65 20 22 5c 5c 6e 22 20 22 5c 6e 22 20 73 79 73 74 65 6d 29 29 29 0a 20 20 20 | replace."\\n"."\n".system))).... |
| ae2c0 | 20 28 77 68 65 6e 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 61 63 6b 65 | .(when.backend.......(setq.backe |
| ae2e0 | 6e 64 20 28 61 6c 69 73 74 2d 67 65 74 20 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6b 6e 6f | nd.(alist-get.backend.gptel--kno |
| ae300 | 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 20 | wn-backends..................... |
| ae320 | 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 29 0a 20 20 | ...........nil.nil.#'equal)))... |
| ae340 | 20 20 28 77 68 65 6e 20 6d 6f 64 65 6c 20 28 73 65 74 71 20 6d 6f 64 65 6c 20 28 67 70 74 65 6c | ..(when.model.(setq.model.(gptel |
| ae360 | 2d 2d 69 6e 74 65 72 6e 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 65 6d 70 | --intern.model))).....(when.temp |
| ae380 | 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 65 72 61 74 75 72 65 20 | erature.......(setq.temperature. |
| ae3a0 | 28 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 | (gptel--to-number.temperature))) |
| ae3c0 | 0a 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 73 20 28 73 65 74 71 20 74 6f 6b 65 6e 73 20 28 | .....(when.tokens.(setq.tokens.( |
| ae3e0 | 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 6f 6b 65 6e 73 29 29 29 0a 20 20 20 20 28 | gptel--to-number.tokens))).....( |
| ae400 | 77 68 65 6e 20 6e 75 6d 20 28 73 65 74 71 20 6e 75 6d 20 28 67 70 74 65 6c 2d 2d 74 6f 2d 6e 75 | when.num.(setq.num.(gptel--to-nu |
| ae420 | 6d 62 65 72 20 6e 75 6d 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 73 79 73 74 65 6d 20 62 61 63 | mber.num))).....(list.system.bac |
| ae440 | 6b 65 6e 64 20 6d 6f 64 65 6c 20 74 65 6d 70 65 72 61 74 75 72 65 20 74 6f 6b 65 6e 73 20 6e 75 | kend.model.temperature.tokens.nu |
| ae460 | 6d 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d | m)))..(defun.gptel-org--restore- |
| ae480 | 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 74 61 74 65 20 | state.()..."Restore.gptel.state. |
| ae4a0 | 66 6f 72 20 4f 72 67 20 62 75 66 66 65 72 73 20 77 68 65 6e 20 74 75 72 6e 69 6e 67 20 6f 6e 20 | for.Org.buffers.when.turning.on. |
| ae4c0 | 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 | `gptel-mode'."...(save-restricti |
| ae4e0 | 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 6d 6f 64 69 66 69 65 64 20 28 62 75 66 66 65 72 2d 6d | on.....(let.((modified.(buffer-m |
| ae500 | 6f 64 69 66 69 65 64 2d 70 29 29 29 0a 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 | odified-p))).......(widen)...... |
| ae520 | 20 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 | .(condition-case.status......... |
| ae540 | 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 | ..(progn.............(when-let*. |
| ae560 | 28 28 62 6f 75 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 | ((bounds.(org-entry-get.(point-m |
| ae580 | 69 6e 29 20 22 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 | in)."GPTEL_BOUNDS")))........... |
| ae5a0 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 70 72 6f 70 73 20 28 72 65 61 64 20 | ....(gptel--restore-props.(read. |
| ae5c0 | 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 | bounds))).............(pcase-let |
| ae5e0 | 20 28 28 60 28 2c 73 79 73 74 65 6d 20 2c 62 61 63 6b 65 6e 64 20 2c 6d 6f 64 65 6c 20 2c 74 65 | .((`(,system.,backend.,model.,te |
| ae600 | 6d 70 65 72 61 74 75 72 65 20 2c 74 6f 6b 65 6e 73 20 2c 6e 75 6d 29 0a 20 20 20 20 20 20 20 20 | mperature.,tokens.,num)......... |
| ae620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 | .................(gptel-org--ent |
| ae640 | 72 79 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 | ry-properties.(point-min)))).... |
| ae660 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 73 79 73 74 65 6d 20 28 73 65 74 71 2d 6c 6f | ...........(when.system.(setq-lo |
| ae680 | 63 61 6c 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d | cal.gptel--system-message.system |
| ae6a0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 62 61 63 6b 65 6e 64 20 28 73 65 | ))...............(if.backend.(se |
| ae6c0 | 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a | tq-local.gptel-backend.backend). |
| ae6e0 | 20 20 20 20 20 20 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 | ................(message........ |
| ae700 | 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 6e 64 2d 6b 65 | ..........(substitute-command-ke |
| ae720 | 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 | ys...................(concat.... |
| ae740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 61 63 74 69 76 | ................"Could.not.activ |
| ae760 | 61 74 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 5c 22 25 73 5c 22 21 20 20 22 0a 20 20 20 | ate.gptel.backend.\"%s\"!..".... |
| ae780 | 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 61 63 6b 65 6e 64 73 | ................"Switch.backends |
| ae7a0 | 20 77 69 74 68 20 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 5c 5c 5b | .with.\\[universal-argument].\\[ |
| ae7c0 | 67 70 74 65 6c 2d 73 65 6e 64 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-send]".................... |
| ae7e0 | 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 20 20 20 20 20 | ".before.using.gptel."))........ |
| ae800 | 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 20 20 20 | ..........backend))............. |
| ae820 | 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 2d | ..(when.model.(setq-local.gptel- |
| ae840 | 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 20 20 28 77 68 65 | model.model))...............(whe |
| ae860 | 6e 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 | n.temperature.(setq-local.gptel- |
| ae880 | 74 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 | temperature.temperature))....... |
| ae8a0 | 20 20 20 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 | ........(when.tokens.(setq-local |
| ae8c0 | 20 67 70 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 | .gptel-max-tokens.tokens))...... |
| ae8e0 | 20 20 20 20 20 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 | .........(when.num.(setq-local.g |
| ae900 | 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 20 6e 75 6d 29 29 | ptel--num-messages-to-send.num)) |
| ae920 | 29 29 0a 20 20 20 20 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 | )).........(:success.(message."g |
| ae940 | 70 74 65 6c 20 63 68 61 74 20 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 20 20 28 | ptel.chat.restored.")).........( |
| ae960 | 65 72 72 6f 72 20 28 6d 65 73 73 61 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 74 6f 72 | error.(message."Could.not.restor |
| ae980 | 65 20 67 70 74 65 6c 20 73 74 61 74 65 2c 20 73 6f 72 72 79 21 20 45 72 72 6f 72 3a 20 25 73 22 | e.gptel.state,.sorry!.Error:.%s" |
| ae9a0 | 20 73 74 61 74 75 73 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 | .status))).......(set-buffer-mod |
| ae9c0 | 69 66 69 65 64 2d 70 20 6d 6f 64 69 66 69 65 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | ified-p.modified))))..(defun.gpt |
| ae9e0 | 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 74 20 26 6f 70 74 69 6f | el-org-set-properties.(pt.&optio |
| aea00 | 6e 61 6c 20 6d 73 67 29 0a 20 20 22 53 74 6f 72 65 20 74 68 65 20 61 63 74 69 76 65 20 67 70 74 | nal.msg)..."Store.the.active.gpt |
| aea20 | 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 75 6e 64 65 72 20 74 68 65 20 63 75 72 72 65 | el.configuration.under.the.curre |
| aea40 | 6e 74 20 68 65 61 64 69 6e 67 2e 0a 0a 54 68 65 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f | nt.heading...The.active.gptel.co |
| aea60 | 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 | nfiguration.includes.the.current |
| aea80 | 20 73 79 73 74 65 6d 0a 6d 65 73 73 61 67 65 2c 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 | .system.message,.language.model. |
| aeaa0 | 61 6e 64 20 70 72 6f 76 69 64 65 72 20 28 62 61 63 6b 65 6e 64 29 2c 20 61 6e 64 20 61 64 64 69 | and.provider.(backend),.and.addi |
| aeac0 | 74 69 6f 6e 61 6c 0a 73 65 74 74 69 6e 67 73 20 77 68 65 6e 20 61 70 70 6c 69 63 61 62 6c 65 2e | tional.settings.when.applicable. |
| aeae0 | 0a 0a 50 54 20 69 73 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 74 69 6f 6e 20 62 79 20 64 | ..PT.is.the.cursor.position.by.d |
| aeb00 | 65 66 61 75 6c 74 2e 20 20 49 66 20 4d 53 47 20 69 73 0a 6e 6f 6e 2d 6e 69 6c 20 28 64 65 66 61 | efault...If.MSG.is.non-nil.(defa |
| aeb20 | 75 6c 74 29 2c 20 64 69 73 70 6c 61 79 20 61 20 6d 65 73 73 61 67 65 20 61 66 74 65 72 77 61 72 | ult),.display.a.message.afterwar |
| aeb40 | 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 | ds."...(interactive.(list.(point |
| aeb60 | 29 20 74 29 29 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c | ).t))...(org-entry-put.pt."GPTEL |
| aeb80 | 5f 4d 4f 44 45 4c 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 | _MODEL".(gptel--model-name.gptel |
| aeba0 | 2d 6d 6f 64 65 6c 29 29 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 | -model))...(org-entry-put.pt."GP |
| aebc0 | 54 45 4c 5f 42 41 43 4b 45 4e 44 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 | TEL_BACKEND".(gptel-backend-name |
| aebe0 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 | .gptel-backend))...(unless.(equa |
| aec00 | 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 | l.(default-value.'gptel-temperat |
| aec20 | 75 72 65 29 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 20 20 20 20 28 6f 72 67 | ure).gptel-temperature).....(org |
| aec40 | 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 54 45 4d 50 45 52 41 54 55 52 45 | -entry-put.pt."GPTEL_TEMPERATURE |
| aec60 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d | "....................(number-to- |
| aec80 | 73 74 72 69 6e 67 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 28 77 | string.gptel-temperature)))...(w |
| aeca0 | 68 65 6e 20 28 6e 61 74 6e 75 6d 70 20 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 | hen.(natnump.gptel--num-messages |
| aecc0 | 2d 74 6f 2d 73 65 6e 64 29 0a 20 20 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 | -to-send).....(org-entry-put.pt. |
| aece0 | 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 0a 20 20 20 | "GPTEL_NUM_MESSAGES_TO_SEND".... |
| aed00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e | ................(number-to-strin |
| aed20 | 67 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 | g.gptel--num-messages-to-send))) |
| aed40 | 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 53 59 53 54 | ...(org-entry-put.pt."GPTEL_SYST |
| aed60 | 45 4d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 2d 6c 65 74 2a 20 28 | EM"..................(and-let*.( |
| aed80 | 28 6d 73 67 20 28 63 61 72 2d 73 61 66 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (msg.(car-safe.................. |
| aeda0 | 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 64 | .................(gptel--parse-d |
| aedc0 | 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 20 20 20 20 20 | irective........................ |
| aede0 | 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 67 | ............gptel--system-messag |
| aee00 | 65 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 73 74 72 69 6e 67 | e))))....................(string |
| aee20 | 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 22 5c 5c 6e 22 20 6d 73 67 29 29 29 0a 20 20 28 77 68 | -replace."\n"."\\n".msg)))...(wh |
| aee40 | 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 28 6f 72 67 2d 65 6e 74 | en.gptel-max-tokens.....(org-ent |
| aee60 | 72 79 2d 70 75 74 0a 20 20 20 20 20 70 74 20 22 47 50 54 45 4c 5f 4d 41 58 5f 54 4f 4b 45 4e 53 | ry-put......pt."GPTEL_MAX_TOKENS |
| aee80 | 22 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 6d 61 78 2d 74 6f | ".(number-to-string.gptel-max-to |
| aeea0 | 6b 65 6e 73 29 29 29 0a 20 20 28 77 68 65 6e 20 6d 73 67 0a 20 20 20 20 28 6d 65 73 73 61 67 65 | kens)))...(when.msg.....(message |
| aeec0 | 20 22 41 64 64 65 64 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 74 6f 20 63 | ."Added.gptel.configuration.to.c |
| aeee0 | 75 72 72 65 6e 74 20 68 65 61 64 6c 69 6e 65 2e 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | urrent.headline.")))..(defun.gpt |
| aef00 | 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 57 72 69 74 65 20 74 | el-org--save-state.()..."Write.t |
| aef20 | 68 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 74 6f 20 74 68 65 20 4f 72 67 20 62 75 66 66 65 72 | he.gptel.state.to.the.Org.buffer |
| aef40 | 20 61 73 20 4f 72 67 20 70 72 6f 70 65 72 74 69 65 73 2e 22 0a 20 20 28 6f 72 67 2d 77 69 74 68 | .as.Org.properties."...(org-with |
| aef60 | 2d 77 69 64 65 2d 62 75 66 66 65 72 0a 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e | -wide-buffer....(goto-char.(poin |
| aef80 | 74 2d 6d 69 6e 29 29 0a 20 20 20 28 77 68 65 6e 20 28 6f 72 67 2d 61 74 2d 68 65 61 64 69 6e 67 | t-min))....(when.(org-at-heading |
| aefa0 | 2d 70 29 0a 20 20 20 20 20 28 6f 72 67 2d 6f 70 65 6e 2d 6c 69 6e 65 20 31 29 29 0a 20 20 20 28 | -p)......(org-open-line.1))....( |
| aefc0 | 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d | gptel-org-set-properties.(point- |
| aefe0 | 6d 69 6e 29 29 0a 20 20 20 3b 3b 20 53 61 76 65 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 | min))....;;.Save.response.bounda |
| af000 | 72 69 65 73 0a 20 20 20 28 6c 65 74 72 65 63 20 28 28 77 72 69 74 65 2d 62 6f 75 6e 64 73 0a 20 | ries....(letrec.((write-bounds.. |
| af020 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 61 74 74 65 6d 70 74 73 29 0a 20 | ............(lambda.(attempts).. |
| af040 | 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 62 6f 75 6e 64 | ..............(when-let*.((bound |
| af060 | 73 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 29 0a 20 20 | s.(gptel--get-buffer-bounds))... |
| af080 | 20 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 66 69 72 73 | .........................;;.firs |
| af0a0 | 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 6e 64 20 76 61 | t.value.of.((prop...((beg.end.va |
| af0c0 | 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 20 20 20 20 20 | l)...))...)..................... |
| af0e0 | 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)). |
| af100 | 20 20 20 20 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 66 66 73 | ...........................(offs |
| af120 | 65 74 2d 6d 61 72 6b 65 72 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b | et-marker.(set-marker.(make-mark |
| af140 | 65 72 29 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | er).offset)))..................( |
| af160 | 6f 72 67 2d 65 6e 74 72 79 2d 70 75 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 22 47 50 54 45 4c | org-entry-put.(point-min)."GPTEL |
| af180 | 5f 42 4f 55 4e 44 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | _BOUNDS"........................ |
| af1a0 | 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 20 28 67 70 74 65 6c | .........(prin1-to-string.(gptel |
| af1c0 | 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 | --get-buffer-bounds))).......... |
| af1e0 | 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 3d 20 28 6d 61 72 6b | ........(when.(and.(not.(=.(mark |
| af200 | 65 72 2d 70 6f 73 69 74 69 6f 6e 20 6f 66 66 73 65 74 2d 6d 61 72 6b 65 72 29 20 6f 66 66 73 65 | er-position.offset-marker).offse |
| af220 | 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t))............................. |
| af240 | 28 3e 20 61 74 74 65 6d 70 74 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (>.attempts.0))................. |
| af260 | 20 20 20 28 66 75 6e 63 61 6c 6c 20 77 72 69 74 65 2d 62 6f 75 6e 64 73 20 28 31 2d 20 61 74 74 | ...(funcall.write-bounds.(1-.att |
| af280 | 65 6d 70 74 73 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 77 72 69 74 65 | empts)))))))......(funcall.write |
| af2a0 | 2d 62 6f 75 6e 64 73 20 36 29 29 29 29 0a 0a 0c 0a 3b 3b 3b 20 54 72 61 6e 73 66 6f 72 6d 69 6e | -bounds.6))))....;;;.Transformin |
| af2c0 | 67 20 72 65 73 70 6f 6e 73 65 73 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 | g.responses.;;;###autoload.(defu |
| af2e0 | 6e 20 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 28 | n.gptel--convert-markdown->org.( |
| af300 | 73 74 72 29 0a 20 20 22 43 6f 6e 76 65 72 74 20 73 74 72 69 6e 67 20 53 54 52 20 66 72 6f 6d 20 | str)..."Convert.string.STR.from. |
| af320 | 6d 61 72 6b 64 6f 77 6e 20 74 6f 20 6f 72 67 20 6d 61 72 6b 75 70 2e 0a 0a 54 68 69 73 20 69 73 | markdown.to.org.markup...This.is |
| af340 | 20 61 20 76 65 72 79 20 62 61 73 69 63 20 63 6f 6e 76 65 72 74 65 72 20 74 68 61 74 20 68 61 6e | .a.very.basic.converter.that.han |
| af360 | 64 6c 65 73 20 6f 6e 6c 79 20 61 20 66 65 77 20 6d 61 72 6b 75 70 0a 65 6c 65 6d 65 6e 74 73 2e | dles.only.a.few.markup.elements. |
| af380 | 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 73 65 72 | "...(with-temp-buffer.....(inser |
| af3a0 | 74 20 73 74 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e | t.str).....(goto-char.(point-min |
| af3c0 | 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 | )).....(while.(re-search-forward |
| af3e0 | 20 22 60 2b 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c 7d 5c 5c 7c 5f 5c 5c 7c 5e 23 2b 22 20 6e | ."`+\\|\\*\\{1,2\\}\\|_\\|^#+".n |
| af400 | 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 | il.t).......(pcase.(match-string |
| af420 | 20 30 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 62 61 63 6b 74 69 63 6b 73 0a | .0).........;;.Handle.backticks. |
| af440 | 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 |
| af460 | 65 66 6f 72 65 29 20 3f 60 29 29 20 74 69 63 6b 73 29 0a 20 20 20 20 20 20 20 20 20 28 67 70 74 | efore).?`)).ticks)..........(gpt |
| af480 | 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 28 6c 65 6e 67 74 | el--replace-source-marker.(lengt |
| af4a0 | 68 20 74 69 63 6b 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 | h.ticks))..........(save-match-d |
| af4c0 | 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 61 74 63 68 20 27 62 6c 6f 63 6b 2d 65 6e 64 | ata............(catch.'block-end |
| af4e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 | ..............(while.(search-for |
| af500 | 77 61 72 64 20 74 69 63 6b 73 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ward.ticks.nil.t)............... |
| af520 | 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 20 28 6d | .(unless.(or.(eq.(char-before.(m |
| af540 | 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 20 3f 60 29 0a 20 20 20 20 20 20 20 20 20 | atch-beginning.0)).?`).......... |
| af560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 | ..................(eq.(char-afte |
| af580 | 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | r).?`))..................(gptel- |
| af5a0 | 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 28 6c 65 6e 67 74 68 20 74 | -replace-source-marker.(length.t |
| af5c0 | 69 63 6b 73 29 20 27 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 | icks).'end)..................(th |
| af5e0 | 72 6f 77 20 27 62 6c 6f 63 6b 2d 65 6e 64 20 6e 69 6c 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | row.'block-end.nil))))))........ |
| af600 | 20 3b 3b 20 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 28 28 61 6e | .;;.Handle.headings.........((an |
| af620 | 64 20 28 67 75 61 72 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 3f 23 29 29 20 | d.(guard.(eq.(char-before).?#)). |
| af640 | 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 | heading)..........(cond......... |
| af660 | 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 20 20 20 | ..((looking-at."[[:space:]]")... |
| af680 | 3b 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c | ;Handle.headings............(del |
| af6a0 | 65 74 65 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 | ete-region.(line-beginning-posit |
| af6c0 | 69 6f 6e 29 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 | ion).(point))............(insert |
| af6e0 | 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6c 65 6e 67 74 68 20 68 65 61 64 69 6e 67 29 20 3f | .(make-string.(length.heading).? |
| af700 | 2a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b | *)))...........((looking-at."\\+ |
| af720 | 62 65 67 69 6e 5f 73 72 63 22 29 20 3b 4f 76 65 72 65 61 67 65 72 20 4c 4c 4d 20 73 77 69 74 63 | begin_src").;Overeager.LLM.switc |
| af740 | 68 65 64 20 74 6f 20 75 73 69 6e 67 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b 73 0a 20 20 20 20 | hed.to.using.Org.src.blocks..... |
| af760 | 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 20 28 72 65 2d 73 65 61 72 | .......(save-match-data.(re-sear |
| af780 | 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 23 5c 5c 2b 65 6e 64 5f 73 72 63 22 20 6e 69 6c 20 74 29 | ch-forward."^#\\+end_src".nil.t) |
| af7a0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 65 6d 70 68 61 73 69 73 0a | )))).........;;.Handle.emphasis. |
| af7c0 | 20 20 20 20 20 20 20 20 28 22 2a 2a 22 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........("**".(cond............. |
| af7e0 | 20 20 20 3b 3b 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 | ...;;.((looking-at."\\*\\(?:[[:w |
| af800 | 6f 72 64 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ord:]]\\|\s\\)")................ |
| af820 | 3b 3b 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ;;..(delete-char.1))............ |
| af840 | 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 | ....((looking-back."\\(?:[[:word |
| af860 | 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5c 6e 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d | :][:punct:]\n]\\|\s\\)\\*\\{2\\} |
| af880 | 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 | "............................... |
| af8a0 | 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 29 | (max.(-.(point).3).(point-min))) |
| af8c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 | .................(delete-char.-1 |
| af8e0 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 22 2a 22 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 | )))).........("*"..........(cond |
| af900 | 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 | ...........((save-match-data.... |
| af920 | 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6f 72 20 28 3d 20 28 70 6f 69 6e 74 29 20 32 29 | ..........(and.(or.(=.(point).2) |
| af940 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d | .......................(looking- |
| af960 | 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c | back."\\(?:[[:space:]]\\|\s\\)\\ |
| af980 | 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 20 | (?:_\\|\\*\\)".................. |
| af9a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f 69 6e | ...................(max.(-.(poin |
| af9c0 | 74 29 20 32 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t).2).(point-min))))............ |
| af9e0 | 20 20 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 | .......(not.(looking-at."[[:spac |
| afa00 | 65 3a 5d 5d 5c 5c 7c 5c 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 | e:]]\\|\s"))))............;;.Pos |
| afa20 | 73 69 62 6c 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 6d 70 68 61 73 69 73 0a 20 20 20 20 | sible.beginning.of.emphasis..... |
| afa40 | 20 20 20 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 | .......(and.............(save-ex |
| afa60 | 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 | cursion...............(when.(and |
| afa80 | 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 72 65 67 65 78 70 2d 71 75 6f 74 | .(re-search-forward.(regexp-quot |
| afaa0 | 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | e.(match-string.0))............. |
| afac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| afae0 | 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 | (line-end-position).t).......... |
| afb00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a | ................(looking-at."[[: |
| afb20 | 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 5c 73 22 29 0a 20 20 20 20 20 20 20 | space:][:punct:]]\\|\s")........ |
| afb40 | 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 2d | ..................(not.(looking- |
| afb60 | 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 5c 28 | back."\\(?:[[:space]]\\|\s\\)\\( |
| afb80 | 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?:_\\|\\*\\)"................... |
| afba0 | 20 20 20 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 | ..........................(max.( |
| afbc0 | 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 20 20 | -.(point).2).(point-min))))).... |
| afbe0 | 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 28 69 | .............(delete-char.-1).(i |
| afc00 | 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 6f 67 | nsert."/").t)).............(prog |
| afc20 | 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 29 29 | n.(delete-char.-1).(insert."/")) |
| afc40 | 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 20 20 | ))...........((save-excursion... |
| afc60 | 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 6b 77 | ...........(ignore-errors.(backw |
| afc80 | 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 28 61 | ard-char.2))..............(or.(a |
| afca0 | 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 70 61 | nd.(bobp).(looking-at."\\*[[:spa |
| afcc0 | 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 6b 69 | ce:]]"))..................(looki |
| afce0 | 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 73 70 | ng-at."\\(?:$\\|\\`\\)\n\\*[[:sp |
| afd00 | 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 74 20 | ace:]]")))............;;.Bullet. |
| afd20 | 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 20 20 | point,.replace.with.hyphen...... |
| afd40 | 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 20 22 | ......(delete-char.-1).(insert." |
| afd60 | 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 0a 0a | -")))))).....(buffer-string))).. |
| afd80 | 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 61 72 | (defun.gptel--replace-source-mar |
| afda0 | 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 20 20 | ker.(num-ticks.&optional.end)... |
| afdc0 | 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 63 6b | "Replace.markdown.style.backtick |
| afde0 | 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 49 43 | s.with.Org.equivalents...NUM-TIC |
| afe00 | 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 62 65 | KS.is.the.number.of.backticks.be |
| afe20 | 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 74 68 | ing.replaced...If.END.is.true.th |
| afe40 | 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 0a 54 | ese.are.\"ending\".backticks...T |
| afe60 | 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 20 6d | his.is.intended.for.use.in.the.m |
| afe80 | 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 72 2e | arkdown.to.org.stream.converter. |
| afea0 | 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 6e 67 | "...(let.((from.(match-beginning |
| afec0 | 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 28 70 | .0))).....(delete-region.from.(p |
| afee0 | 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 6b 73 | oint)).....(if.(and.(=.num-ticks |
| aff00 | 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 6f 6e | .3)..............(save-excursion |
| aff20 | 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 20 20 | .(beginning-of-line)............ |
| aff40 | 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 66 6f | ..................(skip-chars-fo |
| aff60 | 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 20 20 | rward.".\t").................... |
| aff80 | 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 20 20 | ..........(eq.(point).from)))... |
| affa0 | 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 72 63 | ......(insert.(if.end."#+end_src |
| affc0 | 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 72 74 | "."#+begin_src.")).......(insert |
| affe0 | 20 22 3d 22 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 | ."="))))..;;;###autoload.(defun. |
| b0000 | 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e | gptel--stream-convert-markdown-> |
| b0020 | 6f 72 67 20 28 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 4d | org.(start-marker)..."Return.a.M |
| b0040 | 61 72 6b 64 6f 77 6e 20 74 6f 20 4f 72 67 20 63 6f 6e 76 65 72 74 65 72 2e 0a 0a 54 68 69 73 20 | arkdown.to.Org.converter...This. |
| b0060 | 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 4d 61 72 6b | function.parses.a.stream.of.Mark |
| b0080 | 64 6f 77 6e 20 74 65 78 74 20 74 6f 20 4f 72 67 0a 63 6f 6e 74 69 6e 75 6f 75 73 6c 79 20 77 68 | down.text.to.Org.continuously.wh |
| b00a0 | 65 6e 20 69 74 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 69 76 65 20 | en.it.is.called.with.successive. |
| b00c0 | 63 68 75 6e 6b 73 20 6f 66 20 74 68 65 0a 74 65 78 74 20 73 74 72 65 61 6d 2e 0a 0a 53 54 41 52 | chunks.of.the.text.stream...STAR |
| b00e0 | 54 2d 4d 41 52 4b 45 52 20 69 73 20 75 73 65 64 20 74 6f 20 69 64 65 6e 74 69 66 79 20 74 68 65 | T-MARKER.is.used.to.identify.the |
| b0100 | 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 70 72 6f 63 65 73 73 20 77 68 65 6e 0a 63 6c 65 61 | .corresponding.process.when.clea |
| b0120 | 6e 69 6e 67 20 75 70 20 61 66 74 65 72 2e 22 0a 20 20 28 6c 65 74 72 65 63 20 28 28 69 6e 2d 73 | ning.up.after."...(letrec.((in-s |
| b0140 | 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 20 20 20 20 20 20 20 20 20 20 20 3b 65 78 70 6c 69 63 69 | rc-block.nil)...........;explici |
| b0160 | 74 20 6e 69 6c 20 74 6f 20 61 64 64 72 65 73 73 20 42 55 47 20 23 31 38 33 0a 20 20 20 20 20 20 | t.nil.to.address.BUG.#183....... |
| b0180 | 20 20 20 20 20 28 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 20 20 | .....(in-org-src-block.nil)..... |
| b01a0 | 20 20 20 20 20 20 20 28 74 65 6d 70 2d 62 75 66 20 3b 20 4e 4f 54 45 3a 20 53 77 69 74 63 68 20 | .......(temp-buf.;.NOTE:.Switch. |
| b01c0 | 74 6f 20 60 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 27 20 61 66 74 65 72 20 77 | to.`generate-new-buffer'.after.w |
| b01e0 | 65 20 64 72 6f 70 20 45 6d 61 63 73 20 32 37 2e 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | e.drop.Emacs.27.1.............(g |
| b0200 | 70 74 65 6c 2d 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 22 20 2a 67 70 74 65 6c 2d 74 65 6d 70 2a | ptel--temp-buffer.".*gptel-temp* |
| b0220 | 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 74 20 28 6d 61 6b 65 2d 6d | "))............(start-pt.(make-m |
| b0240 | 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 69 63 6b 73 2d 74 6f 74 61 6c 20 | arker))............(ticks-total. |
| b0260 | 30 29 20 20 20 20 20 20 3b 4d 41 59 42 45 20 73 68 6f 75 6c 64 20 77 65 20 6c 65 74 2d 62 69 6e | 0)......;MAYBE.should.we.let-bin |
| b0280 | 64 20 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 68 65 72 65 3f 0a 20 20 20 20 20 20 20 | d.case-fold-search.here?........ |
| b02a0 | 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d | ....(cleanup-fn.............(lam |
| b02c0 | 62 64 61 20 28 62 65 67 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 | bda.(beg._)...............(when. |
| b02e0 | 28 61 6e 64 20 28 65 71 75 61 6c 20 62 65 67 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e | (and.(equal.beg.(marker-position |
| b0300 | 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .start-marker))................. |
| b0320 | 20 20 20 20 20 20 20 20 20 28 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 6d | .........(eq.(current-buffer).(m |
| b0340 | 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 29 29 0a 20 20 20 | arker-buffer.start-marker))).... |
| b0360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d | .............(when.(buffer-live- |
| b0380 | 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 | p.(get-buffer.temp-buf))........ |
| b03a0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 | ...........(set-marker.start-pt. |
| b03c0 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 | nil)...................(kill-buf |
| b03e0 | 66 65 72 20 74 65 6d 70 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | fer.temp-buf)).................( |
| b0400 | 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 | remove-hook.'gptel-post-response |
| b0420 | 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 20 20 20 28 | -functions.cleanup-fn))))).....( |
| b0440 | 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 | add-hook.'gptel-post-response-fu |
| b0460 | 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 | nctions.cleanup-fn).....(lambda. |
| b0480 | 28 73 74 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f 6f 70 2d 70 29 20 28 74 69 63 6b | (str).......(let.((noop-p).(tick |
| b04a0 | 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | s.0)).........(with-current-buff |
| b04c0 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 0a 20 20 20 20 20 20 20 | er.(get-buffer.temp-buf)........ |
| b04e0 | 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 61 72 20 28 70 | ...(save-excursion.(goto-char.(p |
| b0500 | 6f 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e 73 65 72 74 20 73 74 72 29 29 0a 20 20 20 20 20 20 20 | oint-max)).(insert.str))........ |
| b0520 | 20 20 20 28 77 68 65 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d | ...(when.(marker-position.start- |
| b0540 | 70 74 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 74 61 72 74 2d 70 74 29 29 0a 20 20 20 20 20 20 | pt).(goto-char.start-pt))....... |
| b0560 | 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 73 65 74 71 20 74 69 63 | ....(when.in-src-block.(setq.tic |
| b0580 | 6b 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 | ks.ticks-total))...........(save |
| b05a0 | 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 69 6c 65 20 28 72 | -excursion.............(while.(r |
| b05c0 | 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 60 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c | e-search-forward."`\\|\\*\\{1,2\ |
| b05e0 | 5c 7d 5c 5c 7c 5f 5c 5c 7c 5e 23 2b 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 | \}\\|_\\|^#+".nil.t)............ |
| b0600 | 20 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 0a 20 20 20 20 20 | ...(pcase.(match-string.0)...... |
| b0620 | 20 20 20 20 20 20 20 20 20 20 20 28 22 60 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........("`"................. |
| b0640 | 20 3b 3b 20 43 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 63 6f 6e 73 65 63 75 74 69 76 65 20 | .;;.Count.number.of.consecutive. |
| b0660 | 62 61 63 6b 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b | backticks..................(back |
| b0680 | 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 | ward-char)..................(whi |
| b06a0 | 6c 65 20 28 61 6e 64 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 28 65 71 20 28 63 68 61 72 2d 61 | le.(and.(char-after).(eq.(char-a |
| b06c0 | 66 74 65 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 | fter).?`))....................(f |
| b06e0 | 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | orward-char).................... |
| b0700 | 28 69 66 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 63 6c 2d 64 65 63 66 20 74 69 63 6b 73 29 | (if.in-src-block.(cl-decf.ticks) |
| b0720 | 20 28 63 6c 2d 69 6e 63 66 20 74 69 63 6b 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(cl-incf.ticks))).............. |
| b0740 | 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 76 65 72 62 61 74 69 6d 20 73 74 61 74 65 20 6f 66 | ....;;.Set.the.verbatim.state.of |
| b0760 | 20 74 68 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 | .the.parser..................(if |
| b0780 | 20 28 61 6e 64 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(and.(eobp).................... |
| b07a0 | 20 20 20 20 20 20 20 3b 3b 20 53 70 65 63 69 61 6c 20 63 61 73 65 20 68 65 75 72 69 73 74 69 63 | .......;;.Special.case.heuristic |
| b07c0 | 3a 20 49 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 65 6e 64 73 20 77 69 74 68 0a 20 20 20 20 | :.If.the.response.ends.with..... |
| b07e0 | 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 5e 60 60 60 20 77 65 | ......................;;.^```.we |
| b0800 | 20 64 6f 6e 27 74 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 65 20 69 6e 70 75 74 2e 0a 20 20 20 20 | .don't.wait.for.more.input...... |
| b0820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 | ......................;;.FIXME:. |
| b0840 | 54 68 69 73 20 63 61 6e 20 68 61 76 65 20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 73 2e 0a 20 | This.can.have.false.positives... |
| b0860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 | .........................(not.(s |
| b0880 | 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 | ave-excursion.(beginning-of-line |
| b08a0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| b08c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 60 | .................(looking-at."^` |
| b08e0 | 60 60 24 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | ``$"))))......................;; |
| b0900 | 20 45 6e 64 20 6f 66 20 69 6e 70 75 74 20 3d 3e 20 74 68 65 72 65 20 63 6f 75 6c 64 20 62 65 20 | .End.of.input.=>.there.could.be. |
| b0920 | 6d 6f 72 65 20 62 61 63 6b 74 69 63 6b 73 20 63 6f 6d 69 6e 67 2c 0a 20 20 20 20 20 20 20 20 20 | more.backticks.coming,.......... |
| b0940 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 6f 20 77 65 20 77 61 69 74 20 66 6f 72 20 6d 6f | ............;;.so.we.wait.for.mo |
| b0960 | 72 65 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | re.input......................(p |
| b0980 | 72 6f 67 6e 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 65 74 2d 6d 61 72 6b 65 72 | rogn.(setq.noop-p.t).(set-marker |
| b09a0 | 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 30 29 29 29 0a | .start-pt.(match-beginning.0))). |
| b09c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 57 65 20 72 65 61 63 68 65 64 | ...................;;.We.reached |
| b09e0 | 20 61 20 63 68 61 72 61 63 74 65 72 20 6f 74 68 65 72 20 74 68 61 6e 20 61 20 62 61 63 6b 74 69 | .a.character.other.than.a.backti |
| b0a00 | 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 | ck....................(cond..... |
| b0a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 69 63 6b 73 20 62 61 6c 61 6e 63 65 | ................;;.Ticks.balance |
| b0a40 | 64 2c 20 65 6e 64 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d,.end.src.block................ |
| b0a60 | 20 20 20 20 20 28 28 3d 20 74 69 63 6b 73 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....((=.ticks.0)............... |
| b0a80 | 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b | .......(progn.(setq.in-src-block |
| b0aa0 | 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)........................... |
| b0ac0 | 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 65 72 20 | ..(gptel--replace-source-marker. |
| b0ae0 | 74 69 63 6b 73 2d 74 6f 74 61 6c 20 27 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ticks-total.'end)))............. |
| b0b00 | 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 | ........;;.Positive.number.of.ti |
| b0b20 | 63 6b 73 2c 20 73 74 61 72 74 20 61 6e 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 | cks,.start.an.src.block......... |
| b0b40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e 20 74 69 63 6b 73 20 30 29 20 28 6e | ............((and.(>.ticks.0).(n |
| b0b60 | 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ot.in-src-block))............... |
| b0b80 | 20 20 20 20 20 20 20 28 73 65 74 71 20 74 69 63 6b 73 2d 74 6f 74 61 6c 20 74 69 63 6b 73 0a 20 | .......(setq.ticks-total.ticks.. |
| b0ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 2d 73 72 63 | ..........................in-src |
| b0bc0 | 2d 62 6c 6f 63 6b 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | -block.t)......................( |
| b0be0 | 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 74 69 63 | gptel--replace-source-marker.tic |
| b0c00 | 6b 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | ks-total)).....................; |
| b0c20 | 3b 20 4e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 69 63 6b 73 20 6f 72 20 69 6e | ;.Negative.number.of.ticks.or.in |
| b0c40 | 20 61 20 73 72 63 20 62 6c 6f 63 6b 20 61 6c 72 65 61 64 79 2c 0a 20 20 20 20 20 20 20 20 20 20 | .a.src.block.already,........... |
| b0c60 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 69 63 6b 73 0a 20 20 20 20 20 20 20 | ..........;;.reset.ticks........ |
| b0c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 74 69 63 6b 73 20 74 69 63 6b | .............(t.(setq.ticks.tick |
| b0ca0 | 73 2d 74 6f 74 61 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | s-total))))).................;;. |
| b0cc0 | 48 61 6e 64 6c 65 20 68 65 61 64 69 6e 67 73 20 61 6e 64 20 6d 69 73 67 75 69 64 65 64 20 23 2b | Handle.headings.and.misguided.#+ |
| b0ce0 | 62 65 67 69 6e 5f 73 72 63 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | begin_src.text.................( |
| b0d00 | 28 61 6e 64 20 28 67 75 61 72 64 20 28 61 6e 64 20 28 65 71 20 28 63 68 61 72 2d 62 65 66 6f 72 | (and.(guard.(and.(eq.(char-befor |
| b0d20 | 65 29 20 3f 23 29 20 28 6f 72 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 20 69 6e | e).?#).(or.(not.in-src-block).in |
| b0d40 | 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -org-src-block)))............... |
| b0d60 | 20 20 20 20 20 20 20 20 68 65 61 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........heading)................ |
| b0d80 | 20 20 28 69 66 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 | ..(if.in-org-src-block.......... |
| b0da0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 69 6e 73 69 64 65 20 | ............;;.If.we.are.inside. |
| b0dc0 | 61 6e 20 4f 72 67 2d 73 74 79 6c 65 20 73 72 63 20 62 6c 6f 63 6b 2c 20 6c 6f 6f 6b 20 66 6f 72 | an.Org-style.src.block,.look.for |
| b0de0 | 20 23 2b 65 6e 64 5f 73 72 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .#+end_src...................... |
| b0e00 | 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 | (cond.......................((<. |
| b0e20 | 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e 74 29 29 20 38 29 20 3b 6e 6f 74 20 | (-.(point-max).(point)).8).;not. |
| b0e40 | 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 63 6c 6f 73 65 20 4f 72 67 20 | enough.information.to.close.Org. |
| b0e60 | 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 20 | src.block....................... |
| b0e80 | 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 | .(setq.noop-p.t).(set-marker.sta |
| b0ea0 | 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 | rt-pt.(match-beginning.0)))..... |
| b0ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 | ..................((looking-at." |
| b0ee0 | 5c 5c 2b 65 6e 64 5f 73 72 63 22 29 20 3b 43 6c 6f 73 65 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 | \\+end_src").;Close.Org.src.bloc |
| b0f00 | 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 28 73 65 74 71 20 69 | k........................(setq.i |
| b0f20 | 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 20 69 6e 2d 6f 72 67 2d 73 72 63 2d 62 6c 6f 63 6b | n-src-block.nil.in-org-src-block |
| b0f40 | 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 3b 3b 20 4f 74 | .nil)))....................;;.Ot |
| b0f60 | 68 65 72 77 69 73 65 20 63 68 65 63 6b 20 66 6f 72 20 4d 61 72 6b 64 6f 77 6e 20 68 65 61 64 69 | herwise.check.for.Markdown.headi |
| b0f80 | 6e 67 73 2c 20 6f 72 20 66 6f 72 20 23 2b 62 65 67 69 6e 5f 73 72 63 0a 20 20 20 20 20 20 20 20 | ngs,.or.for.#+begin_src......... |
| b0fa0 | 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 20 20 | ...........(cond................ |
| b0fc0 | 20 20 20 20 20 28 28 65 6f 62 70 29 20 20 20 20 20 20 20 3b 20 4e 6f 74 20 65 6e 6f 75 67 68 20 | .....((eobp).......;.Not.enough. |
| b0fe0 | 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 68 65 61 64 69 6e 67 20 79 65 | information.about.the.heading.ye |
| b1000 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 6f | t......................(setq.noo |
| b1020 | 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 74 | p-p.t).(set-marker.start-pt.(mat |
| b1040 | 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 20 | ch-beginning.0)))............... |
| b1060 | 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 | ......((looking-at."[[:space:]]" |
| b1080 | 29 20 3b 20 43 6f 6e 76 65 72 74 20 6d 61 72 6b 64 6f 77 6e 20 68 65 61 64 69 6e 67 20 74 6f 20 | ).;.Convert.markdown.heading.to. |
| b10a0 | 4f 72 67 20 68 65 61 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | Org.heading..................... |
| b10c0 | 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 69 6e 6e 69 6e 67 2d | .(delete-region.(line-beginning- |
| b10e0 | 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 20 20 20 20 20 20 20 | position).(point)).............. |
| b1100 | 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 6c 65 | ........(insert.(make-string.(le |
| b1120 | 6e 67 74 68 20 68 65 61 64 69 6e 67 29 20 3f 2a 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ngth.heading).?*)))............. |
| b1140 | 20 20 20 20 20 20 20 20 28 28 3c 20 28 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 20 28 70 6f 69 6e | ........((<.(-.(point-max).(poin |
| b1160 | 74 29 29 20 31 31 29 20 3b 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 | t)).11).;Not.enough.information. |
| b1180 | 74 6f 20 63 68 65 63 6b 20 69 66 20 4f 72 67 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 20 20 20 | to.check.if.Org.src.block....... |
| b11a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 20 28 | ...............(setq.noop-p.t).( |
| b11c0 | 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e | set-marker.start-pt.(match-begin |
| b11e0 | 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | ning.0))).....................(( |
| b1200 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2b 62 65 67 69 6e 5f 73 72 63 20 22 29 20 3b 4f 76 65 | looking-at."\\+begin_src.").;Ove |
| b1220 | 72 65 61 67 65 72 20 4c 4c 4d 20 73 77 69 74 63 68 65 64 20 74 6f 20 75 73 69 6e 67 20 4f 72 67 | reager.LLM.switched.to.using.Org |
| b1240 | 20 73 72 63 20 62 6c 6f 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .src.blocks..................... |
| b1260 | 20 28 73 65 74 71 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 20 69 6e 2d 6f 72 67 2d 73 72 63 | .(setq.in-src-block.t.in-org-src |
| b1280 | 2d 62 6c 6f 63 6b 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b | -block.t))))).................;; |
| b12a0 | 20 48 61 6e 64 6c 65 20 6f 74 68 65 72 20 63 68 61 72 73 3a 20 65 6d 70 68 61 73 69 73 2c 20 62 | .Handle.other.chars:.emphasis,.b |
| b12c0 | 6f 6c 64 20 61 6e 64 20 62 75 6c 6c 65 74 20 69 74 65 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | old.and.bullet.items............ |
| b12e0 | 20 20 20 20 20 28 28 61 6e 64 20 22 2a 2a 22 20 28 67 75 61 72 64 20 28 6e 6f 74 20 69 6e 2d 73 | .....((and."**".(guard.(not.in-s |
| b1300 | 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f | rc-block)))..................(co |
| b1320 | 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 20 4e 6f 74 | nd...................;;.TODO.Not |
| b1340 | 20 73 75 72 65 20 77 68 79 20 74 68 69 73 20 62 72 61 6e 63 68 20 77 61 73 20 6e 65 65 64 65 64 | .sure.why.this.branch.was.needed |
| b1360 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 28 6c 6f 6f 6b 69 6e 67 2d | ...................;;.((looking- |
| b1380 | 61 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 22 29 | at."\\*\\(?:[[:word:]]\\|\s\\)") |
| b13a0 | 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(delete-char.1))............... |
| b13c0 | 20 20 20 20 20 3b 3b 20 4c 6f 6f 6b 69 6e 67 20 62 61 63 6b 20 61 74 20 22 77 2a 2a 22 20 6f 72 | .....;;.Looking.back.at."w**".or |
| b13e0 | 20 22 20 2a 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 | .".**"...................((looki |
| b1400 | 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5b 3a 70 75 6e 63 74 3a 5d | ng-back."\\(?:[[:word:][:punct:] |
| b1420 | 5c 6e 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 | \n]\\|\s\\)\\*\\{2\\}".......... |
| b1440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 | ........................(max.(-. |
| b1460 | 28 70 6f 69 6e 74 29 20 33 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 | (point).3).(point-min)))........ |
| b1480 | 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 29 29 29 0a | ............(delete-char.-1)))). |
| b14a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 2a 22 20 28 67 75 61 72 64 | ................((and."*".(guard |
| b14c0 | 20 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 | .(not.in-src-block)))........... |
| b14e0 | 20 20 20 20 20 20 20 28 69 66 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(if.(eobp)............... |
| b1500 | 20 20 20 20 20 20 20 3b 3b 20 4e 6f 74 20 65 6e 6f 75 67 68 20 69 6e 66 6f 72 6d 61 74 69 6f 6e | .......;;.Not.enough.information |
| b1520 | 20 61 62 6f 75 74 20 74 68 65 20 22 2a 22 20 79 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .about.the."*".yet.............. |
| b1540 | 20 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 | ........(progn.(setq.noop-p.t).( |
| b1560 | 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e | set-marker.start-pt.(match-begin |
| b1580 | 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 | ning.0)))....................;;. |
| b15a0 | 22 2a 22 20 69 73 20 65 69 74 68 65 72 20 65 6d 70 68 61 73 69 73 20 6f 72 20 61 20 62 75 6c 6c | "*".is.either.emphasis.or.a.bull |
| b15c0 | 65 74 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 | et.point....................(sav |
| b15e0 | 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-match-data.................... |
| b1600 | 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(save-excursion............... |
| b1620 | 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 72 | .........(ignore-errors.(backwar |
| b1640 | 64 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d-char.2))...................... |
| b1660 | 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 20 20 20 20 20 20 | ..(cond......................... |
| b1680 | 28 28 61 6e 64 20 20 20 20 20 3b 20 41 74 20 62 6f 62 2c 20 75 6e 64 65 72 73 63 6f 72 65 2f 61 | ((and.....;.At.bob,.underscore/a |
| b16a0 | 73 74 65 72 69 73 6b 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 77 6f 72 64 0a 20 20 20 20 20 20 20 | sterisk.followed.by.word........ |
| b16c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 62 6f 62 | ...................(or.(and.(bob |
| b16e0 | 70 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c | p).(looking-at."\\(?:_\\|\\*\\)\ |
| b1700 | 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:]]\\|$\\)") |
| b1720 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| b1740 | 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 77 6f 72 64 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 75 | (looking-at.;.word.followed.by.u |
| b1760 | 6e 64 65 72 73 63 6f 72 65 2f 61 73 74 65 72 69 73 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | nderscore/asterisk.............. |
| b1780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5c 6e | .................."[^[:space:]\n |
| b17a0 | 5d 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5b | ]\\(?:_\\|\\*\\)\\(?:[[:space:][ |
| b17c0 | 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :punct:]]\\|$\\)").............. |
| b17e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 3b 20 75 | .................(looking-at.;.u |
| b1800 | 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 77 | nderscore/asterisk.followed.by.w |
| b1820 | 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 20 20 20 20 | ord............................. |
| b1840 | 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c | ..."\\(?:[[:space:]]\\)\\(?:_\\| |
| b1860 | 5c 5c 2a 5c 5c 29 5c 5c 28 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5d 5c 5c 7c 24 5c 5c 29 22 29 29 0a | \\*\\)\\([^[:space:]]\\|$\\)")). |
| b1880 | 20 20 20 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 | ..........................(not.( |
| b18a0 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 28 3f 3a 5f 5c 5c 7c | looking-at."[[:punct:]]\\(?:_\\| |
| b18c0 | 5c 5c 2a 5c 5c 29 5b 5b 3a 70 75 6e 63 74 3a 5d 5d 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | \\*\\)[[:punct:]]")))........... |
| b18e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6d 70 68 61 73 69 73 2c 20 72 65 70 6c | ...............;;.Emphasis,.repl |
| b1900 | 61 63 65 20 77 69 74 68 20 73 6c 61 73 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ace.with.slashes................ |
| b1920 | 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 28 69 66 20 28 62 6f 62 | ..........(forward-char.(if.(bob |
| b1940 | 70 29 20 31 20 32 29 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 72 | p).1.2)).(delete-char.-1).(inser |
| b1960 | 74 20 22 2f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t."/"))......................... |
| b1980 | 28 28 6f 72 20 28 61 6e 64 20 28 62 6f 62 70 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c | ((or.(and.(bobp).(looking-at."\\ |
| b19a0 | 2a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *[[:space:]]"))................. |
| b19c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 24 | .............(looking-at."\\(?:$ |
| b19e0 | 5c 5c 7c 5c 5c 60 5c 5c 29 5c 6e 5c 5c 2a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 29 0a 20 20 20 | \\|\\`\\)\n\\*[[:space:]]")).... |
| b1a00 | 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 75 6c 6c 65 74 20 | ......................;;.Bullet. |
| b1a20 | 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 20 20 | point,.replace.with.hyphen...... |
| b1a40 | 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 68 61 | ....................(forward-cha |
| b1a60 | 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 72 20 | r.(if.(bobp).1.2)).(delete-char. |
| b1a80 | 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2d 22 29 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 | -1).(insert."-"))))))))))....... |
| b1aa0 | 20 20 20 20 28 69 66 20 6e 6f 6f 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 | ....(if.noop-p...............(bu |
| b1ac0 | 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 74 29 | ffer-substring.(point).start-pt) |
| b1ae0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 62 75 66 66 65 72 2d 73 75 62 73 | .............(prog1.(buffer-subs |
| b1b00 | 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 | tring.(point).(point-max))...... |
| b1b20 | 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 73 74 61 72 74 2d | ..............(set-marker.start- |
| b1b40 | 70 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 | pt.(point-max)))))))))..(provide |
| b1b60 | 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 20 65 6e | .'gptel-org).;;;.gptel-org.el.en |
| b1b80 | 64 73 20 68 65 72 65 0a 0a 3b 3b 20 53 69 6c 65 6e 63 65 20 77 61 72 6e 69 6e 67 73 20 61 62 6f | ds.here..;;.Silence.warnings.abo |
| b1ba0 | 75 74 20 60 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 74 79 70 65 2d 70 27 20 61 6e 64 20 60 6f 72 67 | ut.`org-element-type-p'.and.`org |
| b1bc0 | 2d 65 6c 65 6d 65 6e 74 2d 70 61 72 65 6e 74 27 2c 20 73 65 65 20 23 32 39 34 2e 0a 3b 3b 20 4c | -element-parent',.see.#294..;;.L |
| b1be0 | 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 3b 3b 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 2d | ocal.Variables:.;;.byte-compile- |
| b1c00 | 77 61 72 6e 69 6e 67 73 3a 20 28 6e 6f 74 20 75 6e 72 65 73 6f 6c 76 65 64 29 0a 3b 3b 20 45 6e | warnings:.(not.unresolved).;;.En |
| b1c20 | 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:.............................. |
| b1c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b1fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b20a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b20c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b20e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b21a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b21c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b21e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b22a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b22c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b22e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b23a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b23c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b23e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b24a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b24c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b24e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b25a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b25c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b25e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b26a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b26c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b26e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b27a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b27c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b27e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b28a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b28c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b28e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b29a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b29c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b29e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b2fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3000 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3020 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3060 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3080 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b30a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b30c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b30e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b31a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b31c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b31e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b32a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b32c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b32e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b33a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b33c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b33e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b34a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b34c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b34e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3500 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3520 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3540 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3560 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3580 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b35a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b35c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b35e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3600 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3620 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3640 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3660 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b36a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b36c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b36e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3700 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b37a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b37c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b37e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3800 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b38a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b38c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b38e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b39a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b39c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b39e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3a80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3b00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3b20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3c80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3d00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3d20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| b3fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |