| ofs | hex dump | ascii |
|---|
| 0000 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-20240422.1939/............ |
| 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 32 31 33 31 00 20 35 00 00 00 | 0000000.00000000000.012131..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 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 67 65 6d 69 6e 69 | gptel-20240422.1939/gptel-gemini |
| 0220 | 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .el............................. |
| 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 30 31 35 31 33 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 34 33 00 20 30 00 00 00 | 0015137.00000000000.015043..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 | 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. |
| 0420 | 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- |
| 0440 | 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 |
| 0460 | 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 | ).2023..Karthik.Chikmagalur..;;. |
| 0480 | 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 | Author:.Karthik.Chikmagalur.<kar |
| 04a0 | 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 54 | thikchikmagalur@gmail.com>..;;.T |
| 04c0 | 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f | his.program.is.free.software;.yo |
| 04e0 | 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 | u.can.redistribute.it.and/or.mod |
| 0500 | 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 | ify.;;.it.under.the.terms.of.the |
| 0520 | 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 | .GNU.General.Public.License.as.p |
| 0540 | 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 | ublished.by.;;.the.Free.Software |
| 0560 | 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 | .Foundation,.either.version.3.of |
| 0580 | 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 | .the.License,.or.;;.(at.your.opt |
| 05a0 | 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 | ion).any.later.version...;;.This |
| 05c0 | 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 | .program.is.distributed.in.the.h |
| 05e0 | 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 | ope.that.it.will.be.useful,.;;.b |
| 0600 | 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 | ut.WITHOUT.ANY.WARRANTY;.without |
| 0620 | 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b | .even.the.implied.warranty.of.;; |
| 0640 | 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 | .MERCHANTABILITY.or.FITNESS.FOR. |
| 0660 | 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b | A.PARTICULAR.PURPOSE...See.the.; |
| 0680 | 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 | ;.GNU.General.Public.License.for |
| 06a0 | 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 | .more.details...;;.You.should.ha |
| 06c0 | 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 | ve.received.a.copy.of.the.GNU.Ge |
| 06e0 | 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 | neral.Public.License.;;.along.wi |
| 0700 | 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 | th.this.program...If.not,.see.<h |
| 0720 | 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a | ttps://www.gnu.org/licenses/>... |
| 0740 | 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 | ;;;.Commentary:..;;.This.file.ad |
| 0760 | 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 47 65 6d 69 6e 69 20 41 50 49 20 74 6f | ds.support.for.the.Gemini.API.to |
| 0780 | 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 | .gptel..;;;.Code:.(require.'gpte |
| 07a0 | 6c 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 72 65 71 75 69 72 | l).(require.'cl-generic).(requir |
| 07c0 | 65 20 27 6d 61 70 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 20 28 72 65 71 75 | e.'map).(eval-when-compile.(requ |
| 07e0 | 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e | ire.'cl-lib))..(declare-function |
| 0800 | 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 | .prop-match-value."text-property |
| 0820 | 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 | -search").(declare-function.text |
| 0840 | 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d | -property-search-backward."text- |
| 0860 | 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 |
| 0880 | 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 66 76 61 72 20 6a 73 | ion.json-read."json").(defvar.js |
| 08a0 | 6f 6e 2d 6f 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 | on-object-type)..;;;.Gemini.(cl- |
| 08c0 | 64 65 66 73 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 | defstruct.....(gptel-gemini.(:co |
| 08e0 | 6e 73 74 72 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 | nstructor.gptel--make-gemini)... |
| 0900 | 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)... |
| 0920 | 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 65 6c 2d | ................(:include.gptel- |
| 0940 | 62 61 63 6b 65 6e 64 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d | backend)))..(cl-defmethod.gptel- |
| 0960 | 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 | curl--parse-stream.((_backend.gp |
| 0980 | 74 65 6c 2d 67 65 6d 69 6e 69 29 20 5f 69 6e 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e | tel-gemini)._info)...(let*.((con |
| 09a0 | 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 73 65 20 | tent-strs)).....(condition-case. |
| 09c0 | 6e 69 6c 0a 20 20 20 20 20 20 20 20 3b 3b 20 77 68 69 6c 65 2d 6c 65 74 20 69 73 20 45 6d 61 63 | nil.........;;.while-let.is.Emac |
| 09e0 | 73 20 32 39 2e 31 2b 20 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 70 72 6f | s.29.1+.only.........(while.(pro |
| 0a00 | 67 31 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 7b 22 20 6e 69 6c 20 74 29 0a 20 20 | g1.(search-forward."{".nil.t)... |
| 0a20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 31 29 | ...............(backward-char.1) |
| 0a40 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 | )...........(save-match-data.... |
| 0a60 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .........(when-let*............. |
| 0a80 | 20 20 20 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 | ....((response.(gptel--json-read |
| 0aa0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 20 28 6d 61 70 2d 6e | ))..................(text.(map-n |
| 0ac0 | 65 73 74 65 64 2d 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ested-elt....................... |
| 0ae0 | 20 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 61 6e 64 69 64 61 74 65 73 20 30 20 3a 63 6f 6e 74 | ..response.'(:candidates.0.:cont |
| 0b00 | 65 6e 74 20 3a 70 61 72 74 73 20 30 20 3a 74 65 78 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ent.:parts.0.:text)))).......... |
| 0b20 | 20 20 20 20 20 28 70 75 73 68 20 74 65 78 74 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 | .....(push.text.content-strs)))) |
| 0b40 | 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 | .......(error........(goto-char. |
| 0b60 | 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 61 70 70 6c | (match-beginning.0)))).....(appl |
| 0b80 | 79 20 23 27 63 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 | y.#'concat.(nreverse.content-str |
| 0ba0 | 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 70 61 72 73 | s))))..(cl-defmethod.gptel--pars |
| 0bc0 | 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 67 65 6d 69 | e-response.((_backend.gptel-gemi |
| 0be0 | 6e 69 29 20 72 65 73 70 6f 6e 73 65 20 5f 69 6e 66 6f 29 0a 20 20 28 6d 61 70 2d 6e 65 73 74 65 | ni).response._info)...(map-neste |
| 0c00 | 64 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 63 61 6e 64 69 64 61 74 65 73 20 30 20 3a | d-elt.response.'(:candidates.0.: |
| 0c20 | 63 6f 6e 74 65 6e 74 20 3a 70 61 72 74 73 20 30 20 3a 74 65 78 74 29 29 29 0a 0a 28 63 6c 2d 64 | content.:parts.0.:text)))..(cl-d |
| 0c40 | 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 5f | efmethod.gptel--request-data.((_ |
| 0c60 | 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 73 29 0a 20 | backend.gptel-gemini).prompts).. |
| 0c80 | 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e | ."JSON.encode.PROMPTS.for.sendin |
| 0ca0 | 67 20 74 6f 20 47 65 6d 69 6e 69 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 | g.to.Gemini."...(let.((prompts-p |
| 0cc0 | 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a 63 6f 6e 74 65 6e 74 73 20 5b 2c 40 70 72 6f | list..........`(:contents.[,@pro |
| 0ce0 | 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 61 66 65 74 79 53 65 74 74 69 6e 67 73 | mpts]............:safetySettings |
| 0d00 | 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 |
| 0d20 | 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"......................... |
| 0d40 | 20 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 | .....:threshold."BLOCK_NONE")... |
| 0d60 | 20 20 20 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 61 74 65 | ..........................(:cate |
| 0d80 | 67 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 53 45 58 55 41 4c 4c 59 5f 45 58 50 | gory."HARM_CATEGORY_SEXUALLY_EXP |
| 0da0 | 4c 49 43 49 54 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | LICIT".......................... |
| 0dc0 | 20 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 | ....:threshold."BLOCK_NONE").... |
| 0de0 | 20 20 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 61 74 65 67 | .........................(:categ |
| 0e00 | 6f 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 44 41 4e 47 45 52 4f 55 53 5f 43 4f 4e | ory."HARM_CATEGORY_DANGEROUS_CON |
| 0e20 | 54 45 4e 54 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | TENT"........................... |
| 0e40 | 20 20 20 3a 74 68 72 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 0a 20 20 20 20 | ...:threshold."BLOCK_NONE")..... |
| 0e60 | 20 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 61 74 65 67 6f | ........................(:catego |
| 0e80 | 72 79 20 22 48 41 52 4d 5f 43 41 54 45 47 4f 52 59 5f 48 41 54 45 5f 53 50 45 45 43 48 22 0a 20 | ry."HARM_CATEGORY_HATE_SPEECH".. |
| 0ea0 | 20 20 20 20 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 | ............................:thr |
| 0ec0 | 65 73 68 6f 6c 64 20 22 42 4c 4f 43 4b 5f 4e 4f 4e 45 22 29 5d 29 29 0a 20 20 20 20 20 20 20 20 | eshold."BLOCK_NONE")]))......... |
| 0ee0 | 70 61 72 61 6d 73 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 | params).....(when.gptel-temperat |
| 0f00 | 75 72 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 | ure.......(setq.params.......... |
| 0f20 | 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 | ...(plist-put.params............ |
| 0f40 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 28 6d 61 78 20 67 70 | ............:temperature.(max.gp |
| 0f60 | 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 31 2e 30 29 29 29 29 0a 20 20 20 20 28 77 68 65 | tel-temperature.1.0)))).....(whe |
| 0f80 | 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 20 20 28 73 65 74 71 20 70 | n.gptel-max-tokens.......(setq.p |
| 0fa0 | 61 72 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 61 72 | arams.............(plist-put.par |
| 0fc0 | 61 6d 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 4f | ams........................:maxO |
| 0fe0 | 75 74 70 75 74 54 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 0a | utputTokens.gptel-max-tokens))). |
| 1000 | 20 20 20 20 28 77 68 65 6e 20 70 61 72 61 6d 73 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 | ....(when.params.......(plist-pu |
| 1020 | 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t.prompts-plist................. |
| 1040 | 20 3a 67 65 6e 65 72 61 74 69 6f 6e 43 6f 6e 66 69 67 20 70 61 72 61 6d 73 29 29 0a 20 20 20 20 | .:generationConfig.params))..... |
| 1060 | 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 | prompts-plist))..(cl-defmethod.g |
| 1080 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 | ptel--parse-buffer.((_backend.gp |
| 10a0 | 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 2d 65 6e 74 72 69 65 | tel-gemini).&optional.max-entrie |
| 10c0 | 73 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 20 28 70 72 6f 70 29 29 0a 20 20 20 | s)...(let.((prompts).(prop)).... |
| 10e0 | 20 28 77 68 69 6c 65 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f | .(while.(and.............(or.(no |
| 1100 | 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 | t.max-entries).(>=.max-entries.0 |
| 1120 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 74 2d | )).............(setq.prop.(text- |
| 1140 | 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 | property-search-backward........ |
| 1160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 | .................'gptel.'respons |
| 1180 | 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 28 77 68 65 6e 20 | e.........................(when. |
| 11a0 | 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d | (get-char-property.(max.(point-m |
| 11c0 | 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 20 | in).(1-.(point)))............... |
| 11e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1200 | 20 20 20 27 67 70 74 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...'gptel)...................... |
| 1220 | 20 20 20 20 20 74 29 29 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f | .....t)))).......(push.(list.:ro |
| 1240 | 6c 65 20 28 69 66 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 70 72 6f 70 29 20 22 | le.(if.(prop-match-value.prop)." |
| 1260 | 6d 6f 64 65 6c 22 20 22 75 73 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | model"."user").................. |
| 1280 | 20 3a 70 61 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 | .:parts...................(list. |
| 12a0 | 3a 74 65 78 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | :text.(string-trim.............. |
| 12c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | ..................(buffer-substr |
| 12e0 | 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 65 | ing-no-properties.(prop-match-be |
| 1300 | 67 69 6e 6e 69 6e 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ginning.prop)................... |
| 1320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1340 | 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 65 6e 64 20 70 72 6f | .............(prop-match-end.pro |
| 1360 | 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p))............................. |
| 1380 | 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 | ...(format."[\t\r\n.]*\\(?:%s\\) |
| 13a0 | 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?[\t\r\n.]*".................... |
| 13c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 | ....................(regexp-quot |
| 13e0 | 65 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 | e.(gptel-prompt-prefix-string))) |
| 1400 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1420 | 28 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c | (format."[\t\r\n.]*\\(?:%s\\)?[\ |
| 1440 | 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t\r\n.]*"....................... |
| 1460 | 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 20 28 | .................(regexp-quote.( |
| 1480 | 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 29 29 29 | gptel-response-prefix-string)))) |
| 14a0 | 29 29 0a 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 28 61 | )).............prompts).......(a |
| 14c0 | 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 | nd.max-entries.(cl-decf.max-entr |
| 14e0 | 69 65 73 29 29 29 0a 20 20 20 20 28 63 6c 2d 63 61 6c 6c 66 20 28 6c 61 6d 62 64 61 20 28 6d 73 | ies))).....(cl-callf.(lambda.(ms |
| 1500 | 67 29 20 28 63 6f 6e 63 61 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 | g).(concat.gptel--system-message |
| 1520 | 20 22 5c 6e 5c 6e 22 20 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 66 69 | ."\n\n".msg)).........(thread-fi |
| 1540 | 72 73 74 20 28 63 61 72 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rst.(car.prompts)............... |
| 1560 | 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 67 65 74 20 3a 70 61 72 74 73 29 0a 20 20 20 20 20 | ........(plist-get.:parts)...... |
| 1580 | 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 3a 74 65 78 | .................(plist-get.:tex |
| 15a0 | 74 29 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f | t))).....prompts))..;;;###autolo |
| 15c0 | 61 64 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 0a 20 | ad.(cl-defun.gptel-make-gemini.. |
| 15e0 | 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 68 65 61 64 65 72 20 6b | ...(name.&key.curl-args.header.k |
| 1600 | 65 79 20 28 73 74 72 65 61 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 | ey.(stream.nil)...........(host. |
| 1620 | 22 67 65 6e 65 72 61 74 69 76 65 6c 61 6e 67 75 61 67 65 2e 67 6f 6f 67 6c 65 61 70 69 73 2e 63 | "generativelanguage.googleapis.c |
| 1640 | 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 70 73 22 | om")...........(protocol."https" |
| 1660 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 22 67 65 6d 69 6e 69 2d 70 72 | )...........(models.'("gemini-pr |
| 1680 | 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 65 6d 69 6e 69 2d 31 | o"....................."gemini-1 |
| 16a0 | 2e 35 2d 70 72 6f 2d 6c 61 74 65 73 74 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 | .5-pro-latest"))...........(endp |
| 16c0 | 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 65 67 69 | oint."/v1beta/models"))...."Regi |
| 16e0 | 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 65 6c 20 | ster.a.Gemini.backend.for.gptel. |
| 1700 | 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:.. |
| 1720 | 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 |
| 1740 | 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 |
| 1760 | 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 64 | ST.(optional).is.the.API.host,.d |
| 1780 | 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 67 65 2e | efaults.to.\"generativelanguage. |
| 17a0 | 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 61 20 6c | googleapis.com\"...MODELS.is.a.l |
| 17c0 | 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 2e 0a 0a 53 | ist.of.available.model.names...S |
| 17e0 | 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 65 6e 61 62 6c 65 20 73 74 72 | TREAM.is.a.boolean.to.enable.str |
| 1800 | 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 | eaming.responses,.defaults.to.fa |
| 1820 | 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 | lse...PROTOCOL.(optional).specif |
| 1840 | 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 5c 22 68 74 74 70 73 5c 22 20 62 79 20 64 | ies.the.protocol,.\"https\".by.d |
| 1860 | 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. |
| 1880 | 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 |
| 18a0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 62 65 74 61 2f 6d 6f 64 65 6c 73 5c 22 | ,.defaults.to.\"/v1beta/models\" |
| 18c0 | 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 |
| 18e0 | 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 |
| 1900 | 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 | .request..It.should.be.an.alist. |
| 1920 | 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 | or.a.function.that.retuns.an.ali |
| 1940 | 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c | st,.like:.((\"Content-Type\"...\ |
| 1960 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 | "application/json\"))..KEY.(opti |
| 1980 | 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 | onal).is.a.variable.whose.value. |
| 19a0 | 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 | is.the.API.key,.or.function.that |
| 19c0 | 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 | .returns.the.key."...(declare.(i |
| 19e0 | 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 |
| 1a00 | 6c 2d 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--make-gemini.................. |
| 1a20 | 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 | .:curl-args.curl-args........... |
| 1a40 | 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:name.name.............. |
| 1a60 | 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....:host.host................. |
| 1a80 | 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:header.header................ |
| 1aa0 | 20 20 20 3a 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...:models.models............... |
| 1ac0 | 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 | ....:protocol.protocol.......... |
| 1ae0 | 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 | .........:endpoint.endpoint..... |
| 1b00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 | ..............:stream.stream.... |
| 1b20 | 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......... |
| 1b40 | 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 20 20 20 20 20 20 | ..........:url.(lambda.()....... |
| 1b60 | 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 6d 65 74 68 6f 64 | ...................(let.((method |
| 1b80 | 20 28 69 66 20 28 61 6e 64 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(if.(and.stream................ |
| 1ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1bc0 | 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 20 20 20 20 20 | .gptel-stream).................. |
| 1be0 | 20 20 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 | .........................."strea |
| 1c00 | 6d 47 65 6e 65 72 61 74 65 43 6f 6e 74 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mGenerateContent"............... |
| 1c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 65 6e 65 | ..........................."gene |
| 1c40 | 72 61 74 65 43 6f 6e 74 65 6e 74 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rateContent")))................. |
| 1c60 | 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 3a 2f 2f 25 73 25 73 2f 25 73 | ...........(format."%s://%s%s/%s |
| 1c80 | 3a 25 73 3f 6b 65 79 3d 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :%s?key=%s"..................... |
| 1ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 | ...............protocol......... |
| 1cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 74 0a | ...........................host. |
| 1ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1d00 | 20 20 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...endpoint..................... |
| 1d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 | ...............gptel-model...... |
| 1d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 | ..............................me |
| 1d60 | 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | thod............................ |
| 1d80 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 | ........(gptel--get-api-key))))) |
| 1da0 | 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 | )).....(prog1.backend.......(set |
| 1dc0 | 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 | f.(alist-get.name.gptel--known-b |
| 1de0 | 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e | ackends........................n |
| 1e00 | 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b | il.nil.#'equal).............back |
| 1e20 | 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 | end))))..(provide.'gptel-gemini) |
| 1e40 | 0a 3b 3b 3b 20 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 | .;;;.gptel-gemini.el.ends.here.. |
| 1e60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1e80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1f00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1f20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 1fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2000 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 | gptel-20240422.1939/gptel-openai |
| 2020 | 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .el............................. |
| 2040 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2060 | 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 |
| 2080 | 30 30 32 33 30 31 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 33 36 00 20 30 00 00 00 | 0023013.00000000000.015036..0... |
| 20a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 20c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 20e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2100 | 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................... |
| 2120 | 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................... |
| 2140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2200 | 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 |
| 2220 | 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 |
| 2240 | 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.( |
| 2260 | 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b | C).2023..Karthik.Chikmagalur..;; |
| 2280 | 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 |
| 22a0 | 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 0a 3b 3b 20 | rthikchikmagalur@gmail.com>..;;. |
| 22c0 | 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 | This.program.is.free.software;.y |
| 22e0 | 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f | ou.can.redistribute.it.and/or.mo |
| 2300 | 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 | dify.;;.it.under.the.terms.of.th |
| 2320 | 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 | e.GNU.General.Public.License.as. |
| 2340 | 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 | published.by.;;.the.Free.Softwar |
| 2360 | 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f | e.Foundation,.either.version.3.o |
| 2380 | 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 | f.the.License,.or.;;.(at.your.op |
| 23a0 | 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 | tion).any.later.version...;;.Thi |
| 23c0 | 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 | s.program.is.distributed.in.the. |
| 23e0 | 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 | hope.that.it.will.be.useful,.;;. |
| 2400 | 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 | but.WITHOUT.ANY.WARRANTY;.withou |
| 2420 | 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b | t.even.the.implied.warranty.of.; |
| 2440 | 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 | ;.MERCHANTABILITY.or.FITNESS.FOR |
| 2460 | 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a | .A.PARTICULAR.PURPOSE...See.the. |
| 2480 | 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f | ;;.GNU.General.Public.License.fo |
| 24a0 | 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 | r.more.details...;;.You.should.h |
| 24c0 | 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 | ave.received.a.copy.of.the.GNU.G |
| 24e0 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 | eneral.Public.License.;;.along.w |
| 2500 | 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c | ith.this.program...If.not,.see.< |
| 2520 | 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a | https://www.gnu.org/licenses/>.. |
| 2540 | 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 | .;;;.Commentary:..;;.This.file.a |
| 2560 | 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 74 68 65 20 43 68 61 74 47 50 54 20 41 50 49 20 | dds.support.for.the.ChatGPT.API. |
| 2580 | 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c | to.gptel..;;;.Code:.(require.'cl |
| 25a0 | 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 | -generic).(eval-when-compile...( |
| 25c0 | 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 | require.'cl-lib)).(require.'map) |
| 25e0 | 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 28 64 65 66 76 61 72 20 67 | ..(defvar.gptel-model).(defvar.g |
| 2600 | 70 74 65 6c 2d 73 74 72 65 61 6d 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 75 73 65 2d 63 | ptel-stream).(defvar.gptel-use-c |
| 2620 | 75 72 6c 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 28 64 65 66 | url).(defvar.gptel-backend).(def |
| 2640 | 76 61 72 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 28 64 65 66 76 61 72 20 67 | var.gptel-temperature).(defvar.g |
| 2660 | 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d | ptel-max-tokens).(defvar.gptel-- |
| 2680 | 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 74 65 6c 2d 2d 6b | system-message).(defvar.gptel--k |
| 26a0 | 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 29 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 | nown-backends).(defvar.json-obje |
| 26c0 | 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 67 70 74 65 | ct-type)..(declare-function.gpte |
| 26e0 | 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 | l--get-api-key."gptel").(declare |
| 2700 | 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 22 74 65 78 74 | -function.prop-match-value."text |
| 2720 | 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | -property-search").(declare-func |
| 2740 | 74 69 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 | tion.text-property-search-backwa |
| 2760 | 72 64 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c | rd."text-property-search").(decl |
| 2780 | 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 29 0a 28 | are-function.json-read."json").( |
| 27a0 | 64 65 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 | declare-function.gptel-prompt-pr |
| 27c0 | 65 66 69 78 2d 73 74 72 69 6e 67 20 22 67 70 74 65 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 | efix-string."gptel").(declare-fu |
| 27e0 | 6e 63 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 | nction.gptel-response-prefix-str |
| 2800 | 69 6e 67 20 22 67 70 74 65 6c 22 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 6a | ing."gptel")..(defmacro.gptel--j |
| 2820 | 73 6f 6e 2d 72 65 61 64 20 28 29 0a 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e | son-read.()...(if.(fboundp.'json |
| 2840 | 2d 70 61 72 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 70 61 72 73 | -parse-buffer).......`(json-pars |
| 2860 | 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 3a 6f 62 6a 65 63 74 2d 74 79 70 65 20 27 70 | e-buffer.........:object-type.'p |
| 2880 | 6c 69 73 74 0a 20 20 20 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 6e 69 6c 0a 20 20 | list.........:null-object.nil... |
| 28a0 | 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 65 29 | ......:false-object.:json-false) |
| 28c0 | 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 61 72 | .....(require.'json).....(defvar |
| 28e0 | 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 20 20 20 20 28 64 65 63 6c 61 72 65 2d | .json-object-type).....(declare- |
| 2900 | 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 20 20 | function.json-read."json".())... |
| 2920 | 20 20 60 28 6c 65 74 20 28 28 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 20 27 70 6c 69 73 | ..`(let.((json-object-type.'plis |
| 2940 | 74 29 29 0a 20 20 20 20 20 20 28 6a 73 6f 6e 2d 72 65 61 64 29 29 29 29 0a 0a 28 64 65 66 6d 61 | t)).......(json-read))))..(defma |
| 2960 | 63 72 6f 20 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 28 6f 62 6a 65 63 74 29 0a | cro.gptel--json-encode.(object). |
| 2980 | 20 20 28 69 66 20 28 66 62 6f 75 6e 64 70 20 27 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 29 0a | ..(if.(fboundp.'json-serialize). |
| 29a0 | 20 20 20 20 20 20 60 28 6a 73 6f 6e 2d 73 65 72 69 61 6c 69 7a 65 20 2c 6f 62 6a 65 63 74 0a 20 | ......`(json-serialize.,object.. |
| 29c0 | 20 20 20 20 20 20 20 3a 6e 75 6c 6c 2d 6f 62 6a 65 63 74 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 | .......:null-object.nil......... |
| 29e0 | 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).....( |
| 2a00 | 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- |
| 2a20 | 66 61 6c 73 65 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 | false).....(declare-function.jso |
| 2a40 | 6e 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 | n-encode."json".(object)).....`( |
| 2a60 | 6c 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 29 0a 20 | let.((json-false.:json-false)).. |
| 2a80 | 20 20 20 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 3b | .....(json-encode.,object))))..; |
| 2aa0 | 3b 3b 20 43 6f 6d 6d 6f 6e 20 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 20 66 6f 72 20 4c 4c 4d | ;;.Common.backend.struct.for.LLM |
| 2ac0 | 20 73 75 70 70 6f 72 74 0a 28 63 6c 2d 64 65 66 73 74 72 75 63 74 0a 20 20 20 20 28 67 70 74 65 | .support.(cl-defstruct.....(gpte |
| 2ae0 | 6c 2d 62 61 63 6b 65 6e 64 20 28 3a 63 6f 6e 73 74 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d | l-backend.(:constructor.gptel--m |
| 2b00 | 61 6b 65 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ake-backend).................... |
| 2b20 | 28 3a 63 6f 70 69 65 72 20 67 70 74 65 6c 2d 2d 63 6f 70 79 2d 62 61 63 6b 65 6e 64 29 29 0a 20 | (:copier.gptel--copy-backend)).. |
| 2b40 | 20 6e 61 6d 65 20 68 6f 73 74 20 68 65 61 64 65 72 20 70 72 6f 74 6f 63 6f 6c 20 73 74 72 65 61 | .name.host.header.protocol.strea |
| 2b60 | 6d 0a 20 20 65 6e 64 70 6f 69 6e 74 20 6b 65 79 20 6d 6f 64 65 6c 73 20 75 72 6c 20 63 75 72 6c | m...endpoint.key.models.url.curl |
| 2b80 | 2d 61 72 67 73 29 0a 0a 3b 3b 3b 20 4f 70 65 6e 41 49 20 28 43 68 61 74 47 50 54 29 0a 28 63 6c | -args)..;;;.OpenAI.(ChatGPT).(cl |
| 2ba0 | 2d 64 65 66 73 74 72 75 63 74 20 28 67 70 74 65 6c 2d 6f 70 65 6e 61 69 20 28 3a 63 6f 6e 73 74 | -defstruct.(gptel-openai.(:const |
| 2bc0 | 72 75 63 74 6f 72 20 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 29 0a 20 20 20 20 20 | ructor.gptel--make-openai)...... |
| 2be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 | .......................(:copier. |
| 2c00 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nil)............................ |
| 2c20 | 20 28 3a 69 6e 63 6c 75 64 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 28 63 6c | .(:include.gptel-backend)))..(cl |
| 2c40 | 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 | -defmethod.gptel-curl--parse-str |
| 2c60 | 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 70 65 6e 61 69 29 20 5f 69 6e | eam.((_backend.gptel-openai)._in |
| 2c80 | 66 6f 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 0a 20 20 20 | fo)...(let*.((content-strs)).... |
| 2ca0 | 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 | .(condition-case.nil.........(wh |
| 2cc0 | 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 64 61 74 61 3a 22 20 | ile.(re-search-forward."^data:". |
| 2ce0 | 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 | nil.t)...........(save-match-dat |
| 2d00 | 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 | a.............(unless.(looking-a |
| 2d20 | 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 20 20 20 20 | t.".*\\[DONE\\]")............... |
| 2d40 | 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 67 70 74 65 6c 2d 2d 6a 73 | (when-let*.((response.(gptel--js |
| 2d60 | 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | on-read))....................... |
| 2d80 | 20 20 20 20 28 64 65 6c 74 61 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 0a 20 20 20 20 20 | ....(delta.(map-nested-elt...... |
| 2da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 | .............................res |
| 2dc0 | 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 20 20 20 | ponse.'(:choices.0.:delta))).... |
| 2de0 | 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 74 65 6e 74 20 | .......................(content. |
| 2e00 | 28 70 6c 69 73 74 2d 67 65 74 20 64 65 6c 74 61 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 20 20 20 | (plist-get.delta.:content))).... |
| 2e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 63 6f 6e 74 65 | .............(push.content.conte |
| 2e40 | 6e 74 2d 73 74 72 73 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 | nt-strs))))).......(error....... |
| 2e60 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 | .(goto-char.(match-beginning.0)) |
| 2e80 | 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 73 65 | )).....(apply.#'concat.(nreverse |
| 2ea0 | 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | .content-strs))))..(cl-defmethod |
| 2ec0 | 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 28 5f 62 61 63 6b 65 6e | .gptel--parse-response.((_backen |
| 2ee0 | 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 5f 69 6e 66 6f 29 0a | d.gptel-openai).response._info). |
| 2f00 | 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 28 3a 63 68 | ..(map-nested-elt.response.'(:ch |
| 2f20 | 6f 69 63 65 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 0a 28 63 | oices.0.:message.:content)))..(c |
| 2f40 | 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 | l-defmethod.gptel--request-data. |
| 2f60 | 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 70 72 6f 6d 70 74 73 | ((_backend.gptel-openai).prompts |
| 2f80 | 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e | )..."JSON.encode.PROMPTS.for.sen |
| 2fa0 | 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 | ding.to.ChatGPT."...(let.((promp |
| 2fc0 | 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a 6d 6f 64 65 6c 20 2c 67 70 74 65 | ts-plist..........`(:model.,gpte |
| 2fe0 | 6c 2d 6d 6f 64 65 6c 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 | l-model............:messages.[,@ |
| 3000 | 70 72 6f 6d 70 74 73 5d 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 | prompts]............:stream.,(or |
| 3020 | 20 28 61 6e 64 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 | .(and.gptel-stream.gptel-use-cur |
| 3040 | 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 28 67 70 74 65 | l..........................(gpte |
| 3060 | 6c 2d 62 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 | l-backend-stream.gptel-backend)) |
| 3080 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6a 73 6f 6e 2d 66 61 6c 73 | ......................:json-fals |
| 30a0 | 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 | e)))).....(when.gptel-temperatur |
| 30c0 | 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 | e.......(plist-put.prompts-plist |
| 30e0 | 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 | .:temperature.gptel-temperature) |
| 3100 | 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 | ).....(when.gptel-max-tokens.... |
| 3120 | 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 6d 61 78 | ...(plist-put.prompts-plist.:max |
| 3140 | 5f 74 6f 6b 65 6e 73 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 70 | _tokens.gptel-max-tokens)).....p |
| 3160 | 72 6f 6d 70 74 73 2d 70 6c 69 73 74 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 | rompts-plist))..(cl-defmethod.gp |
| 3180 | 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 | tel--parse-buffer.((_backend.gpt |
| 31a0 | 65 6c 2d 6f 70 65 6e 61 69 29 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 61 78 2d 65 6e 74 72 69 65 73 | el-openai).&optional.max-entries |
| 31c0 | 29 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 29 20 28 70 72 6f 70 29 29 0a 20 20 20 20 | )...(let.((prompts).(prop))..... |
| 31e0 | 28 77 68 69 6c 65 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 | (while.(and.............(or.(not |
| 3200 | 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 29 | .max-entries).(>=.max-entries.0) |
| 3220 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 74 2d 70 | ).............(setq.prop.(text-p |
| 3240 | 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 | roperty-search-backward......... |
| 3260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 | ................'gptel.'response |
| 3280 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | .........................(when.( |
| 32a0 | 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 | get-char-property.(max.(point-mi |
| 32c0 | 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 20 20 | n).(1-.(point)))................ |
| 32e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3300 | 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 20 20 20 20 20 | ..'gptel)....................... |
| 3320 | 20 20 20 20 74 29 29 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c | ....t)))).......(push.(list.:rol |
| 3340 | 65 20 28 69 66 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 70 72 6f 70 29 20 22 61 | e.(if.(prop-match-value.prop)."a |
| 3360 | 73 73 69 73 74 61 6e 74 22 20 22 75 73 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ssistant"."user")............... |
| 3380 | 20 20 20 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 20 20 20 28 | ....:content...................( |
| 33a0 | 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | string-trim....................( |
| 33c0 | 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 | buffer-substring-no-properties.( |
| 33e0 | 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)...... |
| 3400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 3420 | 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 65 6e 64 20 70 72 | ..............(prop-match-end.pr |
| 3440 | 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 | op))....................(format. |
| 3460 | 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a | "[\t\r\n.]*\\(?:%s\\)?[\t\r\n.]* |
| 3480 | 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 28 72 65 | "............................(re |
| 34a0 | 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d | gexp-quote.(gptel-prompt-prefix- |
| 34c0 | 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | string)))....................(fo |
| 34e0 | 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 | rmat."[\t\r\n.]*\\(?:%s\\)?[\t\r |
| 3500 | 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \n.]*".......................... |
| 3520 | 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d | ..(regexp-quote.(gptel-response- |
| 3540 | 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 70 | prefix-string))))).............p |
| 3560 | 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 28 61 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 | rompts).......(and.max-entries.( |
| 3580 | 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 20 20 28 63 6f 6e 73 | cl-decf.max-entries))).....(cons |
| 35a0 | 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 20 | .(list.:role."system"........... |
| 35c0 | 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 73 | ......:content.gptel--system-mes |
| 35e0 | 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 29 0a 0a 3b 3b 3b 23 | sage)...........prompts)))..;;;# |
| 3600 | 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 65 2d | ##autoload.(cl-defun.gptel-make- |
| 3620 | 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 67 73 20 | openai.....(name.&key.curl-args. |
| 3640 | 6d 6f 64 65 6c 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 | models.stream.key...........(hea |
| 3660 | 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 6e 2d | der............(lambda.().(when- |
| 3680 | 6c 65 74 20 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 0a 20 | let.(key.(gptel--get-api-key)).. |
| 36a0 | 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 61 74 | ..................`(("Authorizat |
| 36c0 | 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 29 29 | ion"...,(concat."Bearer.".key))) |
| 36e0 | 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 6f 70 65 6e 61 69 2e | )))...........(host."api.openai. |
| 3700 | 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 70 73 | com")...........(protocol."https |
| 3720 | 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 63 68 61 74 | ")...........(endpoint."/v1/chat |
| 3740 | 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 4f | /completions"))..."Register.an.O |
| 3760 | 70 65 6e 41 49 20 41 50 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 6b 65 6e 64 20 66 6f 72 | penAI.API-compatible.backend.for |
| 3780 | 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d | .gptel.with.NAME...Keyword.argum |
| 37a0 | 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 | ents:..CURL-ARGS.(optional).is.a |
| 37c0 | 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e | .list.of.additional.Curl.argumen |
| 37e0 | 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 | ts...HOST.(optional).is.the.API. |
| 3800 | 68 6f 73 74 2c 20 74 79 70 69 63 61 6c 6c 79 20 5c 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d | host,.typically.\"api.openai.com |
| 3820 | 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 |
| 3840 | 6c 65 20 6d 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 | le.model.names...STREAM.is.a.boo |
| 3860 | 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 | lean.to.toggle.streaming.respons |
| 3880 | 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 4c | es,.defaults.to.false...PROTOCOL |
| 38a0 | 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 63 | .(optional).specifies.the.protoc |
| 38c0 | 6f 6c 2c 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 | ol,.https.by.default...ENDPOINT. |
| 38e0 | 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 6e 74 20 66 | (optional).is.the.API.endpoint.f |
| 3900 | 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 5c 22 2f 76 | or.completions,.defaults.to.\"/v |
| 3920 | 31 2f 63 68 61 74 2f 63 6f 6d 70 6c 65 74 69 6f 6e 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f | 1/chat/completions\"...HEADER.(o |
| 3940 | 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 64 65 | ptional).is.for.additional.heade |
| 3960 | 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 49 74 | rs.to.send.with.each.request..It |
| 3980 | 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 |
| 39a0 | 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 28 28 | n.that.retuns.an.alist,.like:.(( |
| 39c0 | 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 6e | \"Content-Type\"...\"application |
| 39e0 | 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 76 | /json\"))..KEY.(optional).is.a.v |
| 3a00 | 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 6b | ariable.whose.value.is.the.API.k |
| 3a20 | 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 65 | ey,.or.function.that.returns.the |
| 3a40 | 20 6b 65 79 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 | .key."...(declare.(indent.1))... |
| 3a60 | 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 70 65 6e | (let.((backend.(gptel--make-open |
| 3a80 | 61 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 | ai...................:curl-args. |
| 3aa0 | 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d | curl-args...................:nam |
| 3ac0 | 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 | e.name...................:host.h |
| 3ae0 | 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 | ost...................:header.he |
| 3b00 | 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a | ader...................:key.key. |
| 3b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 | ..................:models.models |
| 3b40 | 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 6f | ...................:protocol.pro |
| 3b60 | 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 6e | tocol...................:endpoin |
| 3b80 | 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 74 | t.endpoint...................:st |
| 3ba0 | 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 75 | ream.stream...................:u |
| 3bc0 | 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................. |
| 3be0 | 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.":// |
| 3c00 | 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)................ |
| 3c20 | 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) |
| 3c40 | 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 |
| 3c60 | 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 |
| 3c80 | 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....................... |
| 3ca0 | 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)............... |
| 3cc0 | 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.;;;## |
| 3ce0 | 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 |
| 3d00 | 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 |
| 3d20 | 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"). |
| 3d40 | 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.().`(( |
| 3d60 | 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 |
| 3d80 | 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- |
| 3da0 | 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 |
| 3dc0 | 70 6f 69 6e 74 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 41 7a 75 72 65 20 62 61 63 6b | point)..."Register.an.Azure.back |
| 3de0 | 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 72 | end.for.gptel.with.NAME...Keywor |
| 3e00 | 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 61 | d.arguments:..CURL-ARGS.(optiona |
| 3e20 | 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 20 | l).is.a.list.of.additional.Curl. |
| 3e40 | 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 | arguments...HOST.is.the.API.host |
| 3e60 | 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 | ...MODELS.is.a.list.of.available |
| 3e80 | 20 6d 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 | .model.names...STREAM.is.a.boole |
| 3ea0 | 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 |
| 3ec0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 | ,.defaults.to.false...PROTOCOL.( |
| 3ee0 | 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c | optional).specifies.the.protocol |
| 3f00 | 2c 20 68 74 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 69 73 | ,.https.by.default...ENDPOINT.is |
| 3f20 | 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 6e | .the.API.endpoint.for.completion |
| 3f40 | 73 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 | s...HEADER.(optional).is.for.add |
| 3f60 | 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 | itional.headers.to.send.with.eac |
| 3f80 | 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 | h.request..It.should.be.an.alist |
| 3fa0 | 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c | .or.a.function.that.retuns.an.al |
| 3fc0 | 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 | ist,.like:.((\"Content-Type\"... |
| 3fe0 | 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 | \"application/json\"))..KEY.(opt |
| 4000 | 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 | ional).is.a.variable.whose.value |
| 4020 | 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 | .is.the.API.key,.or.function.tha |
| 4040 | 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d 2d | t.returns.the.key...Example:.--- |
| 4060 | 2d 2d 2d 2d 0a 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 7a 75 72 65 0a 20 5c 22 41 7a 75 72 65 | ----..(gptel-make-azure..\"Azure |
| 4080 | 2d 31 5c 22 0a 20 3a 70 72 6f 74 6f 63 6f 6c 20 5c 22 68 74 74 70 73 5c 22 0a 20 3a 68 6f 73 74 | -1\"..:protocol.\"https\"..:host |
| 40a0 | 20 5c 22 52 45 53 4f 55 52 43 45 5f 4e 41 4d 45 2e 6f 70 65 6e 61 69 2e 61 7a 75 72 65 2e 63 6f | .\"RESOURCE_NAME.openai.azure.co |
| 40c0 | 6d 5c 22 0a 20 3a 65 6e 64 70 6f 69 6e 74 0a 20 5c 22 2f 6f 70 65 6e 61 69 2f 64 65 70 6c 6f 79 | m\"..:endpoint..\"/openai/deploy |
| 40e0 | 6d 65 6e 74 73 2f 44 45 50 4c 4f 59 4d 45 4e 54 5f 4e 41 4d 45 2f 63 6f 6d 70 6c 65 74 69 6f 6e | ments/DEPLOYMENT_NAME/completion |
| 4100 | 73 3f 61 70 69 2d 76 65 72 73 69 6f 6e 3d 32 30 32 33 2d 30 35 2d 31 35 5c 22 0a 20 3a 73 74 72 | s?api-version=2023-05-15\"..:str |
| 4120 | 65 61 6d 20 74 0a 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 5c 22 67 70 74 2d 33 2e 35 2d 74 75 | eam.t..:models.\\='(\"gpt-3.5-tu |
| 4140 | 72 62 6f 5c 22 20 5c 22 67 70 74 2d 34 5c 22 29 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 69 | rbo\".\"gpt-4\"))"...(declare.(i |
| 4160 | 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 |
| 4180 | 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 20 20 20 20 20 | l--make-openai.................. |
| 41a0 | 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a 20 20 20 20 20 20 20 20 20 20 | .:curl-args.curl-args........... |
| 41c0 | 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........:name.name.............. |
| 41e0 | 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....:host.host................. |
| 4200 | 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:header.header................ |
| 4220 | 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d | ...:key.key...................:m |
| 4240 | 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | odels.models...................: |
| 4260 | 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | protocol.protocol............... |
| 4280 | 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 | ....:endpoint.endpoint.......... |
| 42a0 | 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 | .........:stream.stream......... |
| 42c0 | 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 6f 6c 0a 20 20 20 20 | ..........:url.(if.protocol..... |
| 42e0 | 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 70 | .......................(concat.p |
| 4300 | 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 0a 20 20 20 | rotocol."://".host.endpoint).... |
| 4320 | 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 68 6f | ......................(concat.ho |
| 4340 | 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 67 31 20 62 61 63 6b | st.endpoint))))).....(prog1.back |
| 4360 | 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 6d 65 20 | end.......(setf.(alist-get.name. |
| 4380 | 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 20 20 20 | gptel--known-backends........... |
| 43a0 | 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 0a 20 20 | .............nil.nil.#'equal)... |
| 43c0 | 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 3b 3b 20 47 50 54 34 41 6c | ..........backend))))..;;.GPT4Al |
| 43e0 | 6c 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 61 6c 69 61 73 20 27 67 70 74 65 | l.;;;###autoload.(defalias.'gpte |
| 4400 | 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 20 27 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 | l-make-gpt4all.'gptel-make-opena |
| 4420 | 69 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 47 50 54 34 41 6c 6c 20 62 61 63 6b 65 6e 64 20 | i..."Register.a.GPT4All.backend. |
| 4440 | 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 | for.gptel.with.NAME...Keyword.ar |
| 4460 | 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 | guments:..CURL-ARGS.(optional).i |
| 4480 | 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 | s.a.list.of.additional.Curl.argu |
| 44a0 | 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 77 68 65 72 65 20 47 50 54 34 41 6c 6c 20 72 75 | ments...HOST.is.where.GPT4All.ru |
| 44c0 | 6e 73 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 74 79 70 69 63 61 6c 6c 79 20 6c 6f 63 61 6c 68 | ns.(with.port),.typically.localh |
| 44e0 | 6f 73 74 3a 38 34 39 31 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 | ost:8491..MODELS.is.a.list.of.av |
| 4500 | 61 69 6c 61 62 6c 65 20 6d 6f 64 65 6c 20 6e 61 6d 65 73 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 | ailable.model.names...STREAM.is. |
| 4520 | 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 | a.boolean.to.toggle.streaming.re |
| 4540 | 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f | sponses,.defaults.to.false...PRO |
| 4560 | 54 4f 43 4f 4c 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 | TOCOL.specifies.the.protocol,.ht |
| 4580 | 74 70 73 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 6f 70 74 69 6f | tps.by.default...ENDPOINT.(optio |
| 45a0 | 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 6f 69 6e 74 20 66 6f 72 20 63 6f 6d | nal).is.the.API.endpoint.for.com |
| 45c0 | 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 76 31 2f | pletions,.defaults.to.\"/api/v1/ |
| 45e0 | 63 6f 6d 70 6c 65 74 69 6f 6e 73 5c 22 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 | completions\"..HEADER.(optional) |
| 4600 | 20 69 73 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 | .is.for.additional.headers.to.se |
| 4620 | 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 49 74 20 73 68 6f 75 6c 64 20 | nd.with.each.request..It.should. |
| 4640 | 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 | be.an.alist.or.a.function.that.r |
| 4660 | 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e | etuns.an.alist,.like:.((\"Conten |
| 4680 | 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 | t-Type\"...\"application/json\") |
| 46a0 | 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 | )..KEY.(optional).is.a.variable. |
| 46c0 | 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 | whose.value.is.the.API.key,.or.f |
| 46e0 | 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 54 68 | unction.that.returns.the.key..Th |
| 4700 | 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 66 6f 72 | is.is.typically.not.required.for |
| 4720 | 0a 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 6c 69 6b 65 20 47 50 54 34 41 6c 6c 2e 0a 0a 45 78 61 | .local.models.like.GPT4All...Exa |
| 4740 | 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 34 61 | mple:.-------..(gptel-make-gpt4a |
| 4760 | 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 74 74 | ll..\"GPT4All\"..:protocol.\"htt |
| 4780 | 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 20 3a | p\"..:host.\"localhost:4891\"..: |
| 47a0 | 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 5c 22 6d 69 73 74 72 61 6c 2d 37 62 2d 6f 70 65 6e 6f 72 63 | models.\\='(\"mistral-7b-openorc |
| 47c0 | 61 2e 51 34 5f 30 2e 67 67 75 66 5c 22 29 29 22 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 | a.Q4_0.gguf\"))")..(provide.'gpt |
| 47e0 | 65 6c 2d 6f 70 65 6e 61 69 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 73 2e 65 6c | el-openai).;;;.gptel-backends.el |
| 4800 | 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .ends.here...................... |
| 4820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 48e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 49e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 6b 61 67 69 2e 65 | gptel-20240422.1939/gptel-kagi.e |
| 4a20 | 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............................... |
| 4a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4a60 | 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 |
| 4a80 | 30 30 31 36 31 33 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 30 32 00 20 30 00 00 00 | 0016132.00000000000.014502..0... |
| 4aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b00 | 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................... |
| 4b20 | 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................... |
| 4b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 4c00 | 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 |
| 4c20 | 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 |
| 4c40 | 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 |
| 4c60 | 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 | 023..Karthik.Chikmagalur..;;.Aut |
| 4c80 | 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 20 3c 6b 61 72 74 68 69 | hor:.Karthik.Chikmagalur.<karthi |
| 4ca0 | 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b 20 4b 65 79 77 6f | kchikmagalur@gmail.com>.;;.Keywo |
| 4cc0 | 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d | rds:.hypermedia..;;.This.program |
| 4ce0 | 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 | .is.free.software;.you.can.redis |
| 4d00 | 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 | tribute.it.and/or.modify.;;.it.u |
| 4d20 | 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 | nder.the.terms.of.the.GNU.Genera |
| 4d40 | 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 | l.Public.License.as.published.by |
| 4d60 | 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e | .;;.the.Free.Software.Foundation |
| 4d80 | 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 | ,.either.version.3.of.the.Licens |
| 4da0 | 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 | e,.or.;;.(at.your.option).any.la |
| 4dc0 | 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 | ter.version...;;.This.program.is |
| 4de0 | 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 | .distributed.in.the.hope.that.it |
| 4e00 | 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 | .will.be.useful,.;;.but.WITHOUT. |
| 4e20 | 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 | ANY.WARRANTY;.without.even.the.i |
| 4e40 | 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 | mplied.warranty.of.;;.MERCHANTAB |
| 4e60 | 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 | ILITY.or.FITNESS.FOR.A.PARTICULA |
| 4e80 | 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 | R.PURPOSE...See.the.;;.GNU.Gener |
| 4ea0 | 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 | al.Public.License.for.more.detai |
| 4ec0 | 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 | ls...;;.You.should.have.received |
| 4ee0 | 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 | .a.copy.of.the.GNU.General.Publi |
| 4f00 | 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f | c.License.;;.along.with.this.pro |
| 4f20 | 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e | gram...If.not,.see.<https://www. |
| 4f40 | 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 | gnu.org/licenses/>...;;;.Comment |
| 4f60 | 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 | ary:..;;.This.file.adds.support. |
| 4f80 | 66 6f 72 20 74 68 65 20 4b 61 67 69 20 46 61 73 74 47 50 54 20 4c 4c 4d 20 41 50 49 20 74 6f 20 | for.the.Kagi.FastGPT.LLM.API.to. |
| 4fa0 | 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c | gptel..;;;.Code:.(require.'gptel |
| 4fc0 | 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c 2d 77 68 | ).(require.'cl-generic).(eval-wh |
| 4fe0 | 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a | en-compile...(require.'cl-lib)). |
| 5000 | 0a 3b 3b 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 | .;;;.Kagi.(cl-defstruct.(gptel-k |
| 5020 | 61 67 69 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 | agi.(:constructor.gptel--make-ka |
| 5040 | 67 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gi)............................. |
| 5060 | 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 20 | (:copier.nil)................... |
| 5080 | 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 65 6e | ..........(:include.gptel-backen |
| 50a0 | 64 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 | d)))..(cl-defmethod.gptel--parse |
| 50c0 | 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 6b 61 67 69 29 | -response.((_backend.gptel-kagi) |
| 50e0 | 20 72 65 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 | .response.info)...(let*.((data.( |
| 5100 | 70 6c 69 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 | plist-get.response.:data))...... |
| 5120 | 20 20 20 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 | ....(output.(plist-get.data.:out |
| 5140 | 70 75 74 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 | put))..........(references.(plis |
| 5160 | 74 2d 67 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 77 | t-get.data.:references))).....(w |
| 5180 | 68 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 | hen.references.......(setq.refer |
| 51a0 | 65 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 | ences.............(cl-loop.with. |
| 51c0 | 6c 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 | linker.=......................(p |
| 51e0 | 63 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 | case.(buffer-local-value.'major- |
| 5200 | 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mode............................ |
| 5220 | 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. |
| 5240 | 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:buffer)).................. |
| 5260 | 20 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 | ......('org-mode................ |
| 5280 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 | .........(lambda.(text.url)..... |
| 52a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b | ......................(format."[ |
| 52c0 | 5b 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 | [%s][%s]]".url.text))).......... |
| 52e0 | 20 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 | ..............('markdown-mode... |
| 5300 | 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 74 | ......................(lambda.(t |
| 5320 | 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ext.url)........................ |
| 5340 | 20 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 | ...(format."[%s](%s)".text.url)) |
| 5360 | 29 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 | )........................(_.(lam |
| 5380 | 62 64 61 20 28 74 65 78 74 20 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | bda.(text.url).................. |
| 53a0 | 20 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 | ...........(buttonize........... |
| 53c0 | 20 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 | ...................text.(lambda. |
| 53e0 | 28 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 | (data).(browse-url.data))....... |
| 5400 | 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 29 29 29 29 0a 20 | .......................url)))).. |
| 5420 | 20 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 | ....................for.ref.acro |
| 5440 | 73 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 | ss.references................... |
| 5460 | 20 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 | ...for.title.=.(plist-get.ref.:t |
| 5480 | 69 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 | itle)......................for.s |
| 54a0 | 6e 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 | nippet.=.(plist-get.ref.:snippet |
| 54c0 | 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 75 72 6c 20 3d | )......................for.url.= |
| 54e0 | 20 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 | .(plist-get.ref.:url)........... |
| 5500 | 20 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 | ...........for.n.upfrom.1....... |
| 5520 | 20 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 | ...............collect.......... |
| 5540 | 20 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 | ............(concat.(format."[%d |
| 5560 | 5d 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 | ].".n).......................... |
| 5580 | 20 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 | ....(funcall.linker.title.url)." |
| 55a0 | 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | :."............................. |
| 55c0 | 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 | .(replace-regexp-in-string...... |
| 55e0 | 20 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 | ........................."</?b>" |
| 5600 | 20 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 | ."*".snippet)).................. |
| 5620 | 20 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 | ....into.ref-strings............ |
| 5640 | 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 | ..........finally.return........ |
| 5660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 22 20 28 6d 61 | ..............(concat."\n\n".(ma |
| 5680 | 70 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 | pconcat.#'identity.ref-strings." |
| 56a0 | 5c 6e 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6f 75 74 70 75 74 20 | \n"))))).........(concat.output. |
| 56c0 | 72 65 66 65 72 65 6e 63 65 73 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 | references)))..(cl-defmethod.gpt |
| 56e0 | 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 | el--request-data.((_backend.gpte |
| 5700 | 6c 2d 6b 61 67 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 | l-kagi).prompts)..."JSON.encode. |
| 5720 | 50 52 4f 4d 50 54 53 20 66 6f 72 20 4b 61 67 69 2e 22 0a 20 20 28 70 63 61 73 65 2d 65 78 68 61 | PROMPTS.for.Kagi."...(pcase-exha |
| 5740 | 75 73 74 69 76 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 28 22 66 61 73 74 67 70 74 | ustive.gptel-model.....("fastgpt |
| 5760 | 22 0a 20 20 20 20 20 60 28 2c 40 70 72 6f 6d 70 74 73 20 3a 77 65 62 5f 73 65 61 72 63 68 20 74 | "......`(,@prompts.:web_search.t |
| 5780 | 20 3a 63 61 63 68 65 20 74 29 29 0a 20 20 20 20 28 28 61 6e 64 20 6d 6f 64 65 6c 20 28 67 75 61 | .:cache.t)).....((and.model.(gua |
| 57a0 | 72 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 73 75 6d 6d 61 72 69 7a 65 22 20 | rd.(string-prefix-p."summarize". |
| 57c0 | 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 60 28 2c 40 70 72 6f 6d 70 74 73 20 3a 65 6e 67 69 6e | model)))......`(,@prompts.:engin |
| 57e0 | 65 20 2c 28 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 6c 20 31 30 29 29 29 29 29 0a 0a 28 63 6c | e.,(substring.model.10)))))..(cl |
| 5800 | 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 28 | -defmethod.gptel--parse-buffer.( |
| 5820 | 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6b 61 67 69 29 20 26 6f 70 74 69 6f 6e 61 6c 20 | (_backend.gptel-kagi).&optional. |
| 5840 | 5f 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c 65 74 20 28 28 75 72 6c 20 28 6f 72 20 28 | _max-entries)...(let.((url.(or.( |
| 5860 | 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 20 27 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | thing-at-point.'url)............ |
| 5880 | 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 29 | ......(get-text-property.(point) |
| 58a0 | 20 27 73 68 72 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 | .'shr-url)..................(get |
| 58c0 | 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 69 6d 61 67 65 2d 75 72 | -text-property.(point).'image-ur |
| 58e0 | 6c 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 28 66 69 6c 65 6e 61 6d 65 20 28 74 68 69 6e 67 | l))).........;;.(filename.(thing |
| 5900 | 2d 61 74 2d 70 6f 69 6e 74 20 27 65 78 69 73 74 69 6e 67 2d 66 69 6c 65 6e 61 6d 65 29 29 20 3b | -at-point.'existing-filename)).; |
| 5920 | 6e 6f 20 66 69 6c 65 20 75 70 6c 6f 61 64 20 73 75 70 70 6f 72 74 20 79 65 74 0a 20 20 20 20 20 | no.file.upload.support.yet...... |
| 5940 | 20 20 20 28 70 72 6f 70 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 | ...(prop.(text-property-search-b |
| 5960 | 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 | ackward................'gptel.'r |
| 5980 | 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 | esponse................(when.(ge |
| 59a0 | 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | t-char-property.(max.(point-min) |
| 59c0 | 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(1-.(point))).................. |
| 59e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 29 0a 20 | .......................'gptel).. |
| 5a00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 | ................t)))).....(if.(a |
| 5a20 | 6e 64 20 75 72 6c 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 | nd.url.(string-prefix-p."summari |
| 5a40 | 7a 65 22 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 | ze".gptel-model)).........(list. |
| 5a60 | 3a 75 72 6c 20 75 72 6c 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 70 72 6f 70 2d 6d | :url.url).......(if.(and.(prop-m |
| 5a80 | 61 74 63 68 2d 70 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f | atch-p.prop)................(pro |
| 5aa0 | 70 2d 6d 61 74 63 68 2d 76 61 6c 75 65 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 | p-match-value.prop))...........( |
| 5ac0 | 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 75 73 65 72 20 70 72 6f 6d 70 74 20 66 6f 75 6e 64 | user-error."No.user.prompt.found |
| 5ae0 | 21 22 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 | !").........(let.((prompts...... |
| 5b00 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 | ..........(string-trim.......... |
| 5b20 | 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 | .......(buffer-substring-no-prop |
| 5b40 | 65 72 74 69 65 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 70 72 6f | erties.(prop-match-beginning.pro |
| 5b60 | 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p).............................. |
| 5b80 | 20 20 20 20 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 65 | ...................(prop-match-e |
| 5ba0 | 6e 64 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 | nd.prop)).................(forma |
| 5bc0 | 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 | t."[\t\r\n.]*\\(?:%s\\)?[\t\r\n. |
| 5be0 | 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 | ]*".........................(reg |
| 5c00 | 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 | exp-quote.(gptel-prompt-prefix-s |
| 5c20 | 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | tring))).................(format |
| 5c40 | 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d | ."[\t\r\n.]*\\(?:%s\\)?[\t\r\n.] |
| 5c60 | 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 | *".........................(rege |
| 5c80 | 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d | xp-quote.(gptel-response-prefix- |
| 5ca0 | 73 74 72 69 6e 67 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 | string))))))...........(pcase-ex |
| 5cc0 | 68 61 75 73 74 69 76 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | haustive.gptel-model............ |
| 5ce0 | 20 28 22 66 61 73 74 67 70 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 | .("fastgpt"..............(setq.p |
| 5d00 | 72 6f 6d 70 74 73 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rompts.(list.................... |
| 5d20 | 20 20 20 20 20 20 20 20 20 3a 71 75 65 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .........:query................. |
| 5d40 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 70 72 | ............(if.(prop-match-p.pr |
| 5d60 | 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | op)............................. |
| 5d80 | 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..................... |
| 5da0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 61 6b 65 20 61 20 73 79 73 74 65 6d 20 6d 65 | .............;;.Fake.a.system.me |
| 5dc0 | 73 73 61 67 65 20 62 79 20 69 6e 63 6c 75 64 69 6e 67 20 69 74 20 69 6e 20 74 68 65 20 70 72 6f | ssage.by.including.it.in.the.pro |
| 5de0 | 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 20 20 | mpt............................. |
| 5e00 | 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 22 5c 6e 5c 6e | .....gptel--system-message."\n\n |
| 5e20 | 22 20 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ".prompts)...................... |
| 5e40 | 20 20 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e | ........."")))).............((an |
| 5e60 | 64 20 6d 6f 64 65 6c 20 28 67 75 61 72 64 20 28 73 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 | d.model.(guard.(string-prefix-p. |
| 5e80 | 22 73 75 6d 6d 61 72 69 7a 65 22 20 6d 6f 64 65 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | "summarize".model)))............ |
| 5ea0 | 20 20 3b 3b 20 49 66 20 74 68 65 20 65 6e 74 69 72 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 | ..;;.If.the.entire.contents.of.t |
| 5ec0 | 68 65 20 70 72 6f 6d 70 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 61 20 75 72 6c 2c 20 73 65 6e 64 | he.prompt.looks.like.a.url,.send |
| 5ee0 | 20 74 68 65 20 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6c 73 65 20 73 65 | .the.url..............;;.Else.se |
| 5f00 | 6e 64 20 74 68 65 20 74 65 78 74 20 6f 66 20 74 68 65 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 | nd.the.text.of.the.region....... |
| 5f20 | 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 | .......(setq.prompts............ |
| 5f40 | 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28 28 28 70 72 6f 70 2d 6d 61 74 63 68 2d 70 20 | ........(if-let.(((prop-match-p. |
| 5f60 | 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | prop)).......................... |
| 5f80 | 20 20 20 28 65 6e 67 69 6e 65 20 28 73 75 62 73 74 72 69 6e 67 20 6d 6f 64 65 6c 20 31 30 29 29 | ...(engine.(substring.model.10)) |
| 5fa0 | 29 0a 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 49 74 27 73 | )........................;;.It's |
| 5fc0 | 20 61 20 72 65 67 69 6f 6e 20 6f 66 20 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .a.region.of.text............... |
| 5fe0 | 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 3a 74 65 78 74 20 70 72 6f 6d 70 74 73 29 0a 20 20 | .........(list.:text.prompts)... |
| 6000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 22 29 29 29 29 0a 20 20 20 20 20 20 | ...................""))))....... |
| 6020 | 20 20 20 20 70 72 6f 6d 70 74 73 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 | ....prompts)))))..;;;###autoload |
| 6040 | 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 28 | .(cl-defun.gptel-make-kagi.....( |
| 6060 | 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 73 74 72 65 61 6d 20 6b 65 79 0a 20 | name.&key.curl-args.stream.key.. |
| 6080 | 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6b 61 67 69 2e 63 6f 6d 22 29 0a 20 20 20 20 20 | .........(host."kagi.com")...... |
| 60a0 | 20 20 20 20 20 28 68 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 29 20 60 28 28 22 41 75 74 68 | .....(header.(lambda.().`(("Auth |
| 60c0 | 6f 72 69 7a 61 74 69 6f 6e 22 20 2e 20 2c 28 63 6f 6e 63 61 74 20 22 42 6f 74 20 22 20 28 67 70 | orization"...,(concat."Bot.".(gp |
| 60e0 | 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | tel--get-api-key)))))).......... |
| 6100 | 20 28 6d 6f 64 65 6c 73 20 27 28 22 66 61 73 74 67 70 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 | .(models.'("fastgpt"............ |
| 6120 | 20 20 20 20 20 20 20 20 20 22 73 75 6d 6d 61 72 69 7a 65 3a 63 65 63 69 6c 22 20 22 73 75 6d 6d | ........."summarize:cecil"."summ |
| 6140 | 61 72 69 7a 65 3a 61 67 6e 65 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arize:agnes".................... |
| 6160 | 20 22 73 75 6d 6d 61 72 69 7a 65 3a 64 61 70 68 6e 65 22 20 22 73 75 6d 6d 61 72 69 7a 65 3a 6d | ."summarize:daphne"."summarize:m |
| 6180 | 75 72 69 65 6c 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 | uriel"))...........(protocol."ht |
| 61a0 | 74 70 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f | tps")...........(endpoint."/api/ |
| 61c0 | 76 30 2f 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 4b 61 67 69 20 46 61 73 74 47 50 | v0/"))..."Register.a.Kagi.FastGP |
| 61e0 | 54 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a | T.backend.for.gptel.with.NAME... |
| 6200 | 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f | Keyword.arguments:..CURL-ARGS.(o |
| 6220 | 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c | ptional).is.a.list.of.additional |
| 6240 | 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 69 73 20 74 68 65 20 4b 61 | .Curl.arguments...HOST.is.the.Ka |
| 6260 | 67 69 20 68 6f 73 74 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f | gi.host.(with.port),.defaults.to |
| 6280 | 20 5c 22 6b 61 67 69 2e 63 6f 6d 5c 22 2e 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 | .\"kagi.com\"...MODELS.is.a.list |
| 62a0 | 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 4b 61 67 69 20 6d 6f 64 65 6c 73 3a 20 6f 6e 6c 79 20 | .of.available.Kagi.models:.only. |
| 62c0 | 66 61 73 74 67 70 74 20 69 73 20 73 75 70 70 6f 72 74 65 64 2e 0a 0a 53 54 52 45 41 4d 20 69 73 | fastgpt.is.supported...STREAM.is |
| 62e0 | 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 | .a.boolean.to.toggle.streaming.r |
| 6300 | 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 20 20 4b 61 | esponses,.defaults.to.false...Ka |
| 6320 | 67 69 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 61 20 73 74 72 65 61 6d 69 6e 67 20 | gi.does.not.support.a.streaming. |
| 6340 | 41 50 49 20 79 65 74 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 | API.yet...PROTOCOL.(optional).sp |
| 6360 | 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 |
| 6380 | 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. |
| 63a0 | 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 |
| 63c0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 76 30 2f 66 61 73 74 67 70 74 5c | ,.defaults.to.\"/api/v0/fastgpt\ |
| 63e0 | 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 | "...HEADER.(optional).is.for.add |
| 6400 | 69 74 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 | itional.headers.to.send.with.eac |
| 6420 | 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 | h.request...It.should.be.an.alis |
| 6440 | 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 | t.or.a.function.that.retuns.an.a |
| 6460 | 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e | list,.like:.((\"Content-Type\".. |
| 6480 | 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 70 | .\"application/json\"))..KEY.(op |
| 64a0 | 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 75 | tional).is.a.variable.whose.valu |
| 64c0 | 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 68 | e.is.the.API.key,.or.function.th |
| 64e0 | 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d | at.returns.the.key...Example:.-- |
| 6500 | 2d 2d 2d 2d 2d 0a 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 20 5c 22 4b 61 67 69 5c 22 | -----..(gptel-make-kagi.\"Kagi\" |
| 6520 | 20 3a 6b 65 79 20 6d 79 2d 6b 61 67 69 2d 6b 65 79 29 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 | .:key.my-kagi-key)"...(declare.( |
| 6540 | 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 73 74 72 65 61 6d 20 20 20 20 20 20 20 20 20 20 20 20 20 | indent.1))...stream............. |
| 6560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 53 69 6c 65 6e 63 65 20 62 79 74 65 | ...................;Silence.byte |
| 6580 | 2d 63 6f 6d 70 69 6c 65 72 0a 20 20 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 | -compiler...(let.((backend.(gpte |
| 65a0 | 6c 2d 2d 6d 61 6b 65 2d 6b 61 67 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | l--make-kagi...................: |
| 65c0 | 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............. |
| 65e0 | 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................ |
| 6600 | 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................... |
| 6620 | 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.................. |
| 6640 | 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 |
| 6660 | 65 6c 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 | els.models...................:pr |
| 6680 | 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | otocol.protocol................. |
| 66a0 | 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ..:endpoint.endpoint............ |
| 66c0 | 20 20 20 20 20 20 20 3a 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c | .......:url...................(l |
| 66e0 | 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 28 63 6f | ambda.().....................(co |
| 6700 | 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e | ncat.protocol."://".host.endpoin |
| 6720 | 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 28 69 | t.............................(i |
| 6740 | 66 20 28 65 71 75 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 22 66 61 73 74 67 70 74 22 29 0a | f.(equal.gptel-model."fastgpt"). |
| 6760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 6780 | 22 66 61 73 74 67 70 74 22 20 22 73 75 6d 6d 61 72 69 7a 65 22 29 29 29 29 29 29 0a 20 20 20 20 | "fastgpt"."summarize"))))))..... |
| 67a0 | 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 69 73 | (prog1.backend.......(setf.(alis |
| 67c0 | 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 | t-get.name.gptel--known-backends |
| 67e0 | 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 6c 20 | ........................nil.nil. |
| 6800 | 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 | #'equal)...................backe |
| 6820 | 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6b 61 67 69 29 0a 3b 3b | nd))))..(provide.'gptel-kagi).;; |
| 6840 | 3b 20 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 | ;.gptel-kagi.el.ends.here....... |
| 6860 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6880 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 68a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 68c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 68e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6900 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6920 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 69a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 69c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 69e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6a00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 63 75 72 6c 2e 65 | gptel-20240422.1939/gptel-curl.e |
| 6a20 | 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............................... |
| 6a40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6a60 | 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 |
| 6a80 | 30 30 34 37 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 35 34 37 00 20 30 00 00 00 | 0047067.00000000000.014547..0... |
| 6aa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6b00 | 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................... |
| 6b20 | 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................... |
| 6b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 6c00 | 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 |
| 6c20 | 72 74 20 66 6f 72 20 47 50 54 65 6c 20 20 20 20 20 20 20 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | rt.for.GPTel.........-*-.lexical |
| 6c40 | 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.( |
| 6c60 | 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b | C).2023..Karthik.Chikmagalur..;; |
| 6c80 | 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 3b 3b 20 3c | .Author:.Karthik.Chikmagalur;;.< |
| 6ca0 | 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 6f 6d 3e 0a 3b 3b | karthikchikmagalur@gmail.com>.;; |
| 6cc0 | 20 4b 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 44 58 2d | .Keywords:.convenience..;;.SPDX- |
| 6ce0 | 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c | License-Identifier:.GPL-3.0-or-l |
| 6d00 | 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f | ater..;;.This.program.is.free.so |
| 6d20 | 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 | ftware;.you.can.redistribute.it. |
| 6d40 | 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 | and/or.modify.;;.it.under.the.te |
| 6d60 | 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 | rms.of.the.GNU.General.Public.Li |
| 6d80 | 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 | cense.as.published.by.;;.the.Fre |
| 6da0 | 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 | e.Software.Foundation,.either.ve |
| 6dc0 | 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 | rsion.3.of.the.License,.or.;;.(a |
| 6de0 | 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e | t.your.option).any.later.version |
| 6e00 | 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 | ...;;.This.program.is.distribute |
| 6e20 | 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 | d.in.the.hope.that.it.will.be.us |
| 6e40 | 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 | eful,.;;.but.WITHOUT.ANY.WARRANT |
| 6e60 | 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 | Y;.without.even.the.implied.warr |
| 6e80 | 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 | anty.of.;;.MERCHANTABILITY.or.FI |
| 6ea0 | 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 | TNESS.FOR.A.PARTICULAR.PURPOSE.. |
| 6ec0 | 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c | .See.the.;;.GNU.General.Public.L |
| 6ee0 | 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 | icense.for.more.details...;;.You |
| 6f00 | 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. |
| 6f20 | 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b | the.GNU.General.Public.License.; |
| 6f40 | 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e | ;.along.with.this.program...If.n |
| 6f60 | 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 | ot,.see.<https://www.gnu.org/lic |
| 6f80 | 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 43 75 | enses/>...;;;.Commentary:..;;.Cu |
| 6fa0 | 72 6c 20 73 75 70 70 6f 72 74 20 66 6f 72 20 47 50 54 65 6c 2e 20 20 55 74 69 6c 69 74 79 20 66 | rl.support.for.GPTel...Utility.f |
| 6fc0 | 75 6e 63 74 69 6f 6e 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 | unctions...;;;.Code:..(require.' |
| 6fe0 | 67 70 74 65 6c 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 | gptel)..(eval-when-compile...(re |
| 7000 | 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d | quire.'cl-lib)...(require.'subr- |
| 7020 | 78 29 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e | x)).(require.'map)..(declare-fun |
| 7040 | 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a 28 64 65 66 76 | ction.json-read."json".()).(defv |
| 7060 | 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 | ar.json-object-type)..(declare-f |
| 7080 | 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 | unction.gptel--stream-convert-ma |
| 70a0 | 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 22 67 70 74 65 6c 2d 6f 72 67 22 29 0a 0a 28 64 65 66 63 6f | rkdown->org."gptel-org")..(defco |
| 70c0 | 6e 73 74 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 28 69 | nst.gptel-curl--common-args...(i |
| 70e0 | 66 20 28 6d 65 6d 71 20 73 79 73 74 65 6d 2d 74 79 70 65 20 27 28 77 69 6e 64 6f 77 73 2d 6e 74 | f.(memq.system-type.'(windows-nt |
| 7100 | 20 6d 73 2d 64 6f 73 29 29 0a 20 20 20 20 20 20 27 28 22 2d 2d 64 69 73 61 62 6c 65 22 20 22 2d | .ms-dos)).......'("--disable"."- |
| 7120 | 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 2d 2d 73 69 6c 65 6e 74 22 20 22 2d 58 50 4f 53 54 22 0a 20 | -location"."--silent"."-XPOST".. |
| 7140 | 20 20 20 20 20 20 20 22 2d 79 33 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 0a 20 20 20 20 | ......."-y300"."-Y1"."-D-")..... |
| 7160 | 27 28 22 2d 2d 64 69 73 61 62 6c 65 22 20 22 2d 2d 6c 6f 63 61 74 69 6f 6e 22 20 22 2d 2d 73 69 | '("--disable"."--location"."--si |
| 7180 | 6c 65 6e 74 22 20 22 2d 2d 63 6f 6d 70 72 65 73 73 65 64 22 0a 20 20 20 20 20 20 22 2d 58 50 4f | lent"."--compressed"......."-XPO |
| 71a0 | 53 54 22 20 22 2d 79 33 30 30 22 20 22 2d 59 31 22 20 22 2d 44 2d 22 29 29 0a 20 20 22 41 72 67 | ST"."-y300"."-Y1"."-D-"))..."Arg |
| 71c0 | 75 6d 65 6e 74 73 20 61 6c 77 61 79 73 20 70 61 73 73 65 64 20 74 6f 20 43 75 72 6c 20 66 6f 72 | uments.always.passed.to.Curl.for |
| 71e0 | 20 67 70 74 65 6c 20 71 75 65 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c | .gptel.queries.")..(defvar.gptel |
| 7200 | 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 41 6c 69 73 | -curl--process-alist.nil..."Alis |
| 7220 | 74 20 6f 66 20 61 63 74 69 76 65 20 47 50 54 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e | t.of.active.GPTel.curl.requests. |
| 7240 | 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 61 72 67 73 20 | ")..(defun.gptel-curl--get-args. |
| 7260 | 28 64 61 74 61 20 74 6f 6b 65 6e 29 0a 20 20 22 50 72 6f 64 75 63 65 20 6c 69 73 74 20 6f 66 20 | (data.token)..."Produce.list.of. |
| 7280 | 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 0a 0a 52 45 51 | arguments.for.calling.Curl...REQ |
| 72a0 | 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 6e 64 2c 20 54 | UEST-DATA.is.the.data.to.send,.T |
| 72c0 | 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 2e 22 0a 20 20 | OKEN.is.a.unique.identifier."... |
| 72e0 | 28 6c 65 74 2a 20 28 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 | (let*.((url.(let.((backend-url.( |
| 7300 | 67 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 | gptel-backend-url.gptel-backend) |
| 7320 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 | )).....................(if.(func |
| 7340 | 74 69 6f 6e 70 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tionp.backend-url).............. |
| 7360 | 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 | ...........(funcall.backend-url) |
| 7380 | 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 6a | .backend-url)))..........(data-j |
| 73a0 | 73 6f 6e 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 20 28 67 70 74 65 6c | son.(encode-coding-string.(gptel |
| 73c0 | 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 64 61 74 61 29 20 27 75 74 66 2d 38 29 29 0a 20 20 20 | --json-encode.data).'utf-8)).... |
| 73e0 | 20 20 20 20 20 20 28 68 65 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 | ......(headers...........(append |
| 7400 | 20 27 28 28 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 22 20 2e 20 22 61 70 70 6c 69 63 61 74 69 6f | .'(("Content-Type"..."applicatio |
| 7420 | 6e 2f 6a 73 6f 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | n/json"))...................(whe |
| 7440 | 6e 2d 6c 65 74 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 | n-let.((header.(gptel-backend-he |
| 7460 | 61 64 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ader.gptel-backend)))........... |
| 7480 | 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 68 65 61 64 65 72 29 | ..........(if.(functionp.header) |
| 74a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c | .........................(funcal |
| 74c0 | 6c 20 68 65 61 64 65 72 29 20 68 65 61 64 65 72 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 | l.header).header))))).....(when. |
| 74e0 | 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 | gptel-log-level.......(when.(eq. |
| 7500 | 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 | gptel-log-level.'debug)......... |
| 7520 | 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 0a | (gptel--log.(gptel--json-encode. |
| 7540 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 6c 61 | .....................(mapcar.(la |
| 7560 | 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 20 28 69 6e 74 65 72 6e 20 28 63 61 72 20 70 | mbda.(pair).(cons.(intern.(car.p |
| 7580 | 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | air)).(cdr.pair))).............. |
| 75a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 65 61 64 65 72 73 29 29 0a 20 20 20 20 20 20 | ................headers))....... |
| 75c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 65 73 74 20 68 65 61 64 65 72 73 22 29 | .............."request.headers") |
| 75e0 | 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 64 61 74 61 2d 6a 73 6f 6e 20 22 72 | ).......(gptel--log.data-json."r |
| 7600 | 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 20 20 28 61 70 70 65 6e 64 0a 20 20 20 20 20 | equest.body")).....(append...... |
| 7620 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 63 6f 6d 6d 6f 6e 2d 61 72 67 73 0a 20 20 20 20 20 28 67 70 | gptel-curl--common-args......(gp |
| 7640 | 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 63 75 72 6c 2d 61 72 67 73 20 67 70 74 65 6c 2d 62 61 63 6b | tel-backend-curl-args.gptel-back |
| 7660 | 65 6e 64 29 0a 20 20 20 20 20 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 77 28 25 73 20 2e | end)......(list.(format."-w(%s.. |
| 7680 | 20 25 25 7b 73 69 7a 65 5f 68 65 61 64 65 72 7d 29 22 20 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 | .%%{size_header})".token))...... |
| 76a0 | 28 69 66 20 28 6c 65 6e 67 74 68 3c 20 64 61 74 61 2d 6a 73 6f 6e 20 67 70 74 65 6c 2d 63 75 72 | (if.(length<.data-json.gptel-cur |
| 76c0 | 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f 6c 64 29 0a 20 20 20 20 20 20 20 20 20 | l-file-size-threshold).......... |
| 76e0 | 28 6c 69 73 74 20 28 66 6f 72 6d 61 74 20 22 2d 64 25 73 22 20 64 61 74 61 2d 6a 73 6f 6e 29 29 | (list.(format."-d%s".data-json)) |
| 7700 | 0a 20 20 20 20 20 20 20 28 6c 65 74 72 65 63 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 74 65 6d | ........(letrec............((tem |
| 7720 | 70 2d 66 69 6c 65 6e 61 6d 65 20 28 6d 61 6b 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 67 70 74 65 | p-filename.(make-temp-file."gpte |
| 7740 | 6c 2d 63 75 72 6c 2d 64 61 74 61 22 20 6e 69 6c 20 22 2e 6a 73 6f 6e 22 20 64 61 74 61 2d 6a 73 | l-curl-data".nil.".json".data-js |
| 7760 | 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 20 28 6c 61 | on)).............(cleanup-fn.(la |
| 7780 | 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbda.(&rest._).................. |
| 77a0 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 74 65 | .........(when.(file-exists-p.te |
| 77c0 | 6d 70 2d 66 69 6c 65 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mp-filename).................... |
| 77e0 | 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 66 69 6c 65 20 74 65 6d 70 2d 66 69 6c 65 6e | .........(delete-file.temp-filen |
| 7800 | 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)............................ |
| 7820 | 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e | .(remove-hook.'gptel-post-respon |
| 7840 | 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 29 29 29 29 0a 20 20 20 | se-functions.cleanup-fn))))).... |
| 7860 | 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 | ......(add-hook.'gptel-post-resp |
| 7880 | 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 63 6c 65 61 6e 75 70 2d 66 6e 29 0a 20 20 20 20 20 | onse-functions.cleanup-fn)...... |
| 78a0 | 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 61 2d 62 69 6e 61 72 79 22 0a 20 20 20 20 20 20 | ....(list."--data-binary"....... |
| 78c0 | 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 40 25 73 22 20 74 65 6d 70 2d 66 69 6c 65 | .........(format."@%s".temp-file |
| 78e0 | 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 | name))))......(when.(not.(string |
| 7900 | 2d 65 6d 70 74 79 2d 70 20 67 70 74 65 6c 2d 70 72 6f 78 79 29 29 0a 20 20 20 20 20 20 20 28 6c | -empty-p.gptel-proxy))........(l |
| 7920 | 69 73 74 20 22 2d 2d 70 72 6f 78 79 22 20 67 70 74 65 6c 2d 70 72 6f 78 79 0a 20 20 20 20 20 20 | ist."--proxy".gptel-proxy....... |
| 7940 | 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 6e 65 67 6f 74 69 61 74 65 22 0a 20 20 20 20 20 | ......."--proxy-negotiate"...... |
| 7960 | 20 20 20 20 20 20 20 20 22 2d 2d 70 72 6f 78 79 2d 75 73 65 72 22 20 22 3a 22 29 29 0a 20 20 20 | ........"--proxy-user".":")).... |
| 7980 | 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 28 6b 65 79 20 2e 20 76 61 6c 29 20 69 6e 20 68 65 | ..(cl-loop.for.(key...val).in.he |
| 79a0 | 61 64 65 72 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 66 6f 72 | aders...............collect.(for |
| 79c0 | 6d 61 74 20 22 2d 48 25 73 3a 20 25 73 22 20 6b 65 79 20 76 61 6c 29 29 0a 20 20 20 20 20 28 6c | mat."-H%s:.%s".key.val))......(l |
| 79e0 | 69 73 74 20 75 72 6c 29 29 29 29 0a 0a 3b 3b 54 4f 44 4f 3a 20 54 68 65 20 3a 74 72 61 6e 73 66 | ist.url))))..;;TODO:.The.:transf |
| 7a00 | 6f 72 6d 65 72 20 61 72 67 75 6d 65 6e 74 20 68 65 72 65 20 69 73 20 61 6e 20 61 6c 74 65 72 6e | ormer.argument.here.is.an.altern |
| 7a20 | 61 74 65 20 69 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 20 6f 66 0a 3b 3b 60 67 70 74 65 6c 2d 72 | ate.implementation.of.;;`gptel-r |
| 7a40 | 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 20 54 68 65 20 74 | esponse-filter-functions'..The.t |
| 7a60 | 77 6f 20 6e 65 65 64 20 74 6f 20 62 65 20 75 6e 69 66 69 65 64 2e 0a 3b 3b 3b 23 23 23 61 75 74 | wo.need.to.be.unified..;;;###aut |
| 7a80 | 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 65 73 70 | oload.(defun.gptel-curl-get-resp |
| 7aa0 | 6f 6e 73 65 20 28 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 63 61 6c 6c 62 61 63 6b 29 0a 20 | onse.(info.&optional.callback).. |
| 7ac0 | 20 22 52 65 74 72 69 65 76 65 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 70 72 6f 6d 70 74 20 69 6e | ."Retrieve.response.to.prompt.in |
| 7ae0 | 20 49 4e 46 4f 2e 0a 0a 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 74 68 65 | .INFO...INFO.is.a.plist.with.the |
| 7b00 | 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 2d 20 3a 64 61 74 61 20 28 74 68 65 20 64 61 | .following.keys:.-.:data.(the.da |
| 7b20 | 74 61 20 62 65 69 6e 67 20 73 65 6e 74 29 0a 2d 20 3a 62 75 66 66 65 72 20 28 74 68 65 20 67 70 | ta.being.sent).-.:buffer.(the.gp |
| 7b40 | 74 65 6c 20 62 75 66 66 65 72 29 0a 2d 20 3a 70 6f 73 69 74 69 6f 6e 20 28 6d 61 72 6b 65 72 20 | tel.buffer).-.:position.(marker. |
| 7b60 | 61 74 20 77 68 69 63 68 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 29 | at.which.to.insert.the.response) |
| 7b80 | 2e 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 73 70 6f 6e | ...Call.CALLBACK.with.the.respon |
| 7ba0 | 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 6f 6d 69 74 | se.and.INFO.afterwards...If.omit |
| 7bc0 | 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 20 69 6e 74 | ted.the.response.is.inserted.int |
| 7be0 | 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 6f 69 6e 74 | o.the.current.buffer.after.point |
| 7c00 | 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 6f 6b 65 6e 20 28 6d 64 35 20 28 66 6f 72 6d 61 74 20 | ."...(let*.((token.(md5.(format. |
| 7c20 | 22 25 73 25 73 25 73 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "%s%s%s%s"...................... |
| 7c40 | 20 20 20 20 20 20 20 20 28 72 61 6e 64 6f 6d 29 20 28 65 6d 61 63 73 2d 70 69 64 29 20 28 75 73 | ........(random).(emacs-pid).(us |
| 7c60 | 65 72 2d 66 75 6c 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 | er-full-name)................... |
| 7c80 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 2d 6b 65 79 73 29 29 29 29 0a 20 20 20 20 | ...........(recent-keys))))..... |
| 7ca0 | 20 20 20 20 20 28 61 72 67 73 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 61 72 67 73 | .....(args.(gptel-curl--get-args |
| 7cc0 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 64 61 74 61 29 20 74 6f 6b 65 6e 29 29 0a | .(plist-get.info.:data).token)). |
| 7ce0 | 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 28 61 6e 64 20 67 70 74 65 6c 2d 73 74 72 65 | .........(stream.(and.gptel-stre |
| 7d00 | 61 6d 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 62 | am.(gptel-backend-stream.gptel-b |
| 7d20 | 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 6f 63 65 73 73 20 28 61 70 70 | ackend)))..........(process.(app |
| 7d40 | 6c 79 20 23 27 73 74 61 72 74 2d 70 72 6f 63 65 73 73 20 22 67 70 74 65 6c 2d 63 75 72 6c 22 0a | ly.#'start-process."gptel-curl". |
| 7d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 6e 65 72 61 | .........................(genera |
| 7d80 | 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 2a 67 70 74 65 6c 2d 63 75 72 6c 2a 22 29 20 22 63 | te-new-buffer."*gptel-curl*")."c |
| 7da0 | 75 72 6c 22 20 61 72 67 73 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c | url".args))).....(when.(eq.gptel |
| 7dc0 | 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d | -log-level.'debug).......(gptel- |
| 7de0 | 2d 6c 6f 67 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 | -log.(mapconcat.#'shell-quote-ar |
| 7e00 | 67 75 6d 65 6e 74 20 28 63 6f 6e 73 20 22 63 75 72 6c 22 20 61 72 67 73 29 20 22 20 5c 5c 5c 6e | gument.(cons."curl".args).".\\\n |
| 7e20 | 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 75 | ")..................."request.Cu |
| 7e40 | 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 68 | rl.command".'no-json)).....(with |
| 7e60 | 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 20 | -current-buffer.(process-buffer. |
| 7e80 | 70 72 6f 63 65 73 73 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 | process).......(set-process-quer |
| 7ea0 | 79 2d 6f 6e 2d 65 78 69 74 2d 66 6c 61 67 20 70 72 6f 63 65 73 73 20 6e 69 6c 29 0a 20 20 20 20 | y-on-exit-flag.process.nil)..... |
| 7ec0 | 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 6c | ..(setf.(alist-get.process.gptel |
| 7ee0 | 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 | -curl--process-alist)........... |
| 7f00 | 20 20 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 3a 74 6f 6b 65 6e 20 74 6f 6b 65 6e 0a 20 20 20 20 | ..(nconc.(list.:token.token..... |
| 7f20 | 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 20 60 61 | .....................;;.FIXME.`a |
| 7f40 | 72 65 66 27 20 62 72 65 61 6b 73 20 60 63 6c 2d 73 74 72 75 63 74 27 20 61 62 73 74 72 61 63 74 | ref'.breaks.`cl-struct'.abstract |
| 7f60 | 69 6f 6e 20 62 6f 75 6e 64 61 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ion.boundary.................... |
| 7f80 | 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 60 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 74 68 | ......;;.FIXME.`cl--generic-meth |
| 7fa0 | 6f 64 27 20 69 73 20 61 6e 20 69 6e 74 65 72 6e 61 6c 20 60 63 6c 2d 73 74 72 75 63 74 27 0a 20 | od'.is.an.internal.`cl-struct'.. |
| 7fc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 61 72 73 65 72 20 | ........................:parser. |
| 7fe0 | 28 63 6c 2d 2d 67 65 6e 65 72 69 63 2d 6d 65 74 68 6f 64 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 | (cl--generic-method-function.... |
| 8000 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 8020 | 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 20 20 | if.stream....................... |
| 8040 | 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 6d 65 74 68 6f 64 0a | ................(cl-find-method. |
| 8060 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8080 | 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d | .......'gptel-curl--parse-stream |
| 80a0 | 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .nil............................ |
| 80c0 | 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............... |
| 80e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 65 66 20 | ..........................(aref. |
| 8100 | 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............. |
| 8120 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8140 | 20 20 20 27 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 | ...'gptel-backend.(plist-get.inf |
| 8160 | 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 20 20 | o.:buffer))..................... |
| 8180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 30 29 20 74 29 29 | ..........................0).t)) |
| 81a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 81c0 | 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(cl-find-method............ |
| 81e0 | 20 20 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 |
| 8200 | 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 | --parse-response.nil............ |
| 8220 | 20 20 20 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 0a | ..........................(list. |
| 8240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8260 | 20 20 20 20 20 20 28 61 72 65 66 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 0a | ......(aref.(buffer-local-value. |
| 8280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 82a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 70 6c 69 | .............'gptel-backend.(pli |
| 82c0 | 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 20 20 20 20 | st-get.info.:buffer))........... |
| 82e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8300 | 20 20 30 29 20 74 20 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 | ..0).t.t)))).................... |
| 8320 | 20 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 20 28 6f 72 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 | ......:callback.(or.callback.... |
| 8340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 8360 | 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 20 20 20 20 20 20 20 | ....(if.stream.................. |
| 8380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 67 70 74 65 | ..........................#'gpte |
| 83a0 | 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 0a 20 | l-curl--stream-insert-response.. |
| 83c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 83e0 | 20 20 20 20 20 20 20 20 23 27 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 | ........#'gptel--insert-response |
| 8400 | 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 3a 74 72 61 | ))..........................:tra |
| 8420 | 6e 73 66 6f 72 6d 65 72 20 28 77 68 65 6e 20 28 65 71 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c | nsformer.(when.(eq.(buffer-local |
| 8440 | 2d 76 61 6c 75 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 | -value.......................... |
| 8460 | 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 61 6a 6f 72 2d 6d | ........................'major-m |
| 8480 | 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............................. |
| 84a0 | 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. |
| 84c0 | 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | info.:buffer)).................. |
| 84e0 | 20 20 20 20 20 20 20 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 | ...............................' |
| 8500 | 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)....................... |
| 8520 | 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 73 74 72 65 61 6d | ..................(gptel--stream |
| 8540 | 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 29 29 29 0a 20 20 20 20 20 20 | -convert-markdown->org)))....... |
| 8560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 28 69 66 20 73 74 | .............info)).......(if.st |
| 8580 | 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 2d 70 72 6f 63 65 | ream...........(progn.(set-proce |
| 85a0 | 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 73 73 20 23 27 67 70 74 65 6c 2d 63 75 72 6c | ss-sentinel.process.#'gptel-curl |
| 85c0 | 2d 2d 73 74 72 65 61 6d 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | --stream-cleanup)............... |
| 85e0 | 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 66 69 6c 74 65 72 20 70 72 6f 63 65 73 73 20 23 | ...(set-process-filter.process.# |
| 8600 | 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 66 69 6c 74 65 72 29 29 0a 20 20 20 | 'gptel-curl--stream-filter)).... |
| 8620 | 20 20 20 20 20 28 73 65 74 2d 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 65 | .....(set-process-sentinel.proce |
| 8640 | 73 73 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 65 6e 74 69 6e 65 6c 29 29 29 29 29 0a 0a | ss.#'gptel-curl--sentinel))))).. |
| 8660 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 6c 6f 67 2d 72 65 73 70 6f 6e 73 65 20 | (defun.gptel-curl--log-response. |
| 8680 | 28 70 72 6f 63 2d 62 75 66 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 50 61 72 73 65 20 72 65 | (proc-buf.proc-info)..."Parse.re |
| 86a0 | 73 70 6f 6e 73 65 20 62 75 66 66 65 72 20 50 52 4f 43 2d 42 55 46 20 61 6e 64 20 6c 6f 67 20 72 | sponse.buffer.PROC-BUF.and.log.r |
| 86c0 | 65 73 70 6f 6e 73 65 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 74 68 65 20 70 6c 69 73 74 | esponse...PROC-INFO.is.the.plist |
| 86e0 | 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 72 6f 63 65 73 73 20 6d 65 74 61 64 61 74 61 2e 22 0a 20 | .containing.process.metadata.".. |
| 8700 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 0a 20 | .(with-current-buffer.proc-buf.. |
| 8720 | 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 | ...(save-excursion.......(goto-c |
| 8740 | 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 | har.(point-min)).......(when.(re |
| 8760 | 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 0d 3f 5c 6e 0d 3f 5c 6e 22 20 6e 69 6c 20 74 | -search-forward.".?\n.?\n".nil.t |
| 8780 | 29 0a 20 20 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 | ).........(when.(eq.gptel-log-le |
| 87a0 | 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f | vel.'debug)...........(gptel--lo |
| 87c0 | 67 20 28 67 70 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 | g.(gptel--json-encode........... |
| 87e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e | .............(buffer-substring-n |
| 8800 | 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.................... |
| 8820 | 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a | .....(point-min).(1-.(point)))). |
| 8840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 | ......................"response. |
| 8860 | 68 65 61 64 65 72 73 22 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 20 28 70 6f 69 | headers")).........(let.((p.(poi |
| 8880 | 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f | nt)))...........(when.(search-fo |
| 88a0 | 72 77 61 72 64 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 74 6f 6b 65 | rward.(plist-get.proc-info.:toke |
| 88c0 | 6e 29 20 6e 69 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 | n).nil.t).............(goto-char |
| 88e0 | 20 28 31 2d 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 | .(1-.(match-beginning.0)))...... |
| 8900 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 | .......(gptel--log.(buffer-subst |
| 8920 | 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 70 20 28 70 6f 69 6e 74 29 29 0a 20 20 | ring-no-properties.p.(point))... |
| 8940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 | ......................"response. |
| 8960 | 62 6f 64 79 22 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 62 6f 72 74 | body")))))))..(defun.gptel-abort |
| 8980 | 20 28 62 75 66 29 0a 20 20 22 53 74 6f 70 20 61 6e 79 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 | .(buf)..."Stop.any.active.gptel. |
| 89a0 | 70 72 6f 63 65 73 73 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 62 75 66 66 65 72 20 42 | process.associated.with.buffer.B |
| 89c0 | 55 46 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 | UF."...(interactive.(list.(curre |
| 89e0 | 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 75 73 65 | nt-buffer)))...(unless.gptel-use |
| 8a00 | 2d 63 75 72 6c 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 61 6e 6e 6f 74 20 73 74 | -curl.....(user-error."Cannot.st |
| 8a20 | 6f 70 20 61 20 60 75 72 6c 2d 72 65 74 72 69 65 76 65 27 20 72 65 71 75 65 73 74 21 22 29 29 0a | op.a.`url-retrieve'.request!")). |
| 8a40 | 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 70 72 6f 63 2d 61 74 74 72 73 0a 20 20 20 20 20 20 20 20 | ..(if-let*.((proc-attrs......... |
| 8a60 | 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | ....(cl-find-if..............(la |
| 8a80 | 6d 62 64 61 20 28 70 72 6f 63 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbda.(proc-list)................ |
| 8aa0 | 28 65 71 20 28 70 6c 69 73 74 2d 67 65 74 20 28 63 64 72 20 70 72 6f 63 2d 6c 69 73 74 29 20 3a | (eq.(plist-get.(cdr.proc-list).: |
| 8ac0 | 62 75 66 66 65 72 29 20 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c | buffer).buf))..............gptel |
| 8ae0 | 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 | -curl--process-alist)).......... |
| 8b00 | 20 20 20 28 70 72 6f 63 20 28 63 61 72 20 70 72 6f 63 2d 61 74 74 72 73 29 29 29 0a 20 20 20 20 | ...(proc.(car.proc-attrs)))..... |
| 8b20 | 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 | ..(progn.........(setf.(alist-ge |
| 8b40 | 74 20 70 72 6f 63 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 | t.proc.gptel-curl--process-alist |
| 8b60 | 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d | .nil.'remove).nil).........(set- |
| 8b80 | 70 72 6f 63 65 73 73 2d 73 65 6e 74 69 6e 65 6c 20 70 72 6f 63 20 23 27 69 67 6e 6f 72 65 29 0a | process-sentinel.proc.#'ignore). |
| 8ba0 | 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 70 72 6f 63 65 73 73 20 70 72 6f 63 29 0a 20 20 | ........(delete-process.proc)... |
| 8bc0 | 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 | ......(kill-buffer.(process-buff |
| 8be0 | 65 72 20 70 72 6f 63 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 | er.proc)).........(with-current- |
| 8c00 | 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c | buffer.buf...........(when.gptel |
| 8c20 | 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 22 20 52 | -mode.(gptel--update-status..".R |
| 8c40 | 65 61 64 79 22 20 27 73 75 63 63 65 73 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 | eady".'success))).........(messa |
| 8c60 | 67 65 20 22 53 74 6f 70 70 65 64 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 69 6e 20 62 75 66 | ge."Stopped.gptel.request.in.buf |
| 8c80 | 66 65 72 20 25 53 22 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 62 75 66 29 29 29 0a 20 20 20 20 | fer.%S".(buffer-name.buf)))..... |
| 8ca0 | 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 71 75 65 73 74 20 61 73 73 6f 63 | (message."No.gptel.request.assoc |
| 8cc0 | 69 61 74 65 64 20 77 69 74 68 20 62 75 66 66 65 72 20 25 53 22 20 28 62 75 66 66 65 72 2d 6e 61 | iated.with.buffer.%S".(buffer-na |
| 8ce0 | 6d 65 20 62 75 66 29 29 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 53 65 70 61 72 61 74 65 20 75 73 | me.buf))))..;;.TODO:.Separate.us |
| 8d00 | 65 72 2d 6d 65 73 73 61 67 69 6e 67 20 66 72 6f 6d 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 0a | er-messaging.from.this.function. |
| 8d20 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 63 6c 65 61 6e 75 | (defun.gptel-curl--stream-cleanu |
| 8d40 | 70 20 28 70 72 6f 63 65 73 73 20 5f 73 74 61 74 75 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 | p.(process._status)..."Process.s |
| 8d60 | 65 6e 74 69 6e 65 6c 20 66 6f 72 20 47 50 54 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e | entinel.for.GPTel.curl.requests. |
| 8d80 | 0a 0a 50 52 4f 43 45 53 53 20 61 6e 64 20 5f 53 54 41 54 55 53 20 61 72 65 20 70 72 6f 63 65 73 | ..PROCESS.and._STATUS.are.proces |
| 8da0 | 73 20 70 61 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 | s.parameters."...(let.((proc-buf |
| 8dc0 | 20 28 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 | .(process-buffer.process)))..... |
| 8de0 | 28 6c 65 74 2a 20 28 28 69 6e 66 6f 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 | (let*.((info.(alist-get.process. |
| 8e00 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 | gptel-curl--process-alist))..... |
| 8e20 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 | .......(gptel-buffer.(plist-get. |
| 8e40 | 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 | info.:buffer))............(backe |
| 8e60 | 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 | nd-name.............(gptel-backe |
| 8e80 | 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 | nd-name..............(buffer-loc |
| 8ea0 | 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 75 | al-value.'gptel-backend.gptel-bu |
| 8ec0 | 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 | ffer)))............(tracking-mar |
| 8ee0 | 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 2d 6d 61 | ker.(plist-get.info.:tracking-ma |
| 8f00 | 72 6b 65 72 29 29 0a 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 | rker))............(start-marker. |
| 8f20 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 | (plist-get.info.:position))..... |
| 8f40 | 20 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 61 74 75 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | .......(http-status.(plist-get.i |
| 8f60 | 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 68 | nfo.:http-status))............(h |
| 8f80 | 74 74 70 2d 6d 73 67 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 | ttp-msg.(plist-get.info.:status) |
| 8fa0 | 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 28 | )).......(when.gptel-log-level.( |
| 8fc0 | 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 6c 6f 67 2d 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 62 75 | gptel-curl--log-response.proc-bu |
| 8fe0 | 66 20 69 6e 66 6f 29 29 20 3b 6c 6f 67 67 69 6e 67 0a 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d | f.info)).;logging.......(if.(mem |
| 9000 | 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 20 | ber.http-status.'("200"."100")). |
| 9020 | 3b 46 69 6e 69 73 68 20 68 61 6e 64 6c 69 6e 67 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 | ;Finish.handling.response....... |
| 9040 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 | ....(with-current-buffer.gptel-b |
| 9060 | 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 74 72 61 63 6b | uffer.............(if.(not.track |
| 9080 | 69 6e 67 2d 6d 61 72 6b 65 72 29 20 20 20 3b 45 6d 70 74 79 20 72 65 73 70 6f 6e 73 65 0a 20 20 | ing-marker)...;Empty.response... |
| 90a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 | ..............(when.gptel-mode.( |
| 90c0 | 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 20 72 65 73 | gptel--update-status.".Empty.res |
| 90e0 | 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 20 20 20 20 20 20 | ponse".'success))............... |
| 9100 | 28 70 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 | (pulse-momentary-highlight-regio |
| 9120 | 6e 20 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 | n.start-marker.tracking-marker). |
| 9140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 | ..............(when.gptel-mode.. |
| 9160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 | ...............(save-excursion.( |
| 9180 | 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 20 20 | goto-char.tracking-marker)...... |
| 91a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 | ...........................(inse |
| 91c0 | 72 74 20 22 5c 6e 5c 6e 22 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 | rt."\n\n".(gptel-prompt-prefix-s |
| 91e0 | 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | tring))).................(gptel- |
| 9200 | 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 20 22 20 52 65 61 64 79 22 20 27 73 75 63 63 65 73 | -update-status..".Ready".'succes |
| 9220 | 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 4f 72 20 43 61 70 74 75 72 65 20 65 72 72 6f | s)))).........;;.Or.Capture.erro |
| 9240 | 72 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | r.message.........(with-current- |
| 9260 | 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d | buffer.proc-buf...........(goto- |
| 9280 | 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 61 | char.(point-max))...........(sea |
| 92a0 | 72 63 68 2d 62 61 63 6b 77 61 72 64 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 74 6f | rch-backward.(plist-get.info.:to |
| 92c0 | 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 29 0a | ken))...........(backward-char). |
| 92e0 | 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f 20 2e 20 2c | ..........(pcase-let*.((`(,_..., |
| 9300 | 68 65 61 64 65 72 2d 73 69 7a 65 29 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 | header-size).(read.(current-buff |
| 9320 | 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | er)))........................(re |
| 9340 | 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 72 2d | sponse.(progn.(goto-char.header- |
| 9360 | 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | size)........................... |
| 9380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 | ..............(condition-case.ni |
| 93a0 | 6c 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 | l.(gptel--json-read)............ |
| 93c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 93e0 | 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 29 29 29 0a 20 20 20 20 20 | error.'json-read-error))))...... |
| 9400 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 64 61 74 61 20 28 70 | ..................(error-data.(p |
| 9420 | 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 29 29 0a 20 20 20 20 | list-get.response.:error)))..... |
| 9440 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f | ........(cond..............(erro |
| 9460 | 72 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 | r-data...............(if.(string |
| 9480 | 70 20 65 72 72 6f 72 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | p.error-data)................... |
| 94a0 | 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 61 63 | (message."%s.error:.(%s).%s".bac |
| 94c0 | 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 64 61 74 61 29 0a 20 | kend-name.http-msg.error-data).. |
| 94e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 72 72 6f 72 | ...............(when-let.((error |
| 9500 | 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 6d 65 73 73 | -msg.(plist-get.error-data.:mess |
| 9520 | 61 67 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 | age))).....................(mess |
| 9540 | 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 61 63 6b 65 6e 64 2d | age."%s.error:.(%s).%s".backend- |
| 9560 | 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 | name.http-msg.error-msg))....... |
| 9580 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 72 72 6f 72 2d 74 79 70 65 | ..........(when-let.((error-type |
| 95a0 | 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 0a | .(plist-get.error-data.:type))). |
| 95c0 | 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 68 74 74 70 2d 6d | ....................(setq.http-m |
| 95e0 | 73 67 20 28 63 6f 6e 63 61 74 20 22 28 22 20 20 68 74 74 70 2d 6d 73 67 20 22 29 20 22 20 28 73 | sg.(concat."("..http-msg.").".(s |
| 9600 | 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 74 79 70 65 29 29 29 29 29 29 0a 20 20 20 20 | tring-trim.error-type))))))..... |
| 9620 | 20 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 61 | .........((eq.response.'json-rea |
| 9640 | 64 2d 65 72 72 6f 72 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 | d-error)...............(message. |
| 9660 | 22 25 73 20 65 72 72 6f 72 20 28 25 73 29 3a 20 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 | "%s.error.(%s):.Malformed.JSON.i |
| 9680 | 6e 20 72 65 73 70 6f 6e 73 65 2e 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d | n.response.".backend-name.http-m |
| 96a0 | 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6d 65 73 73 61 67 65 20 22 25 | sg))..............(t.(message."% |
| 96c0 | 73 20 65 72 72 6f 72 20 28 25 73 29 3a 20 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 | s.error.(%s):.Could.not.parse.HT |
| 96e0 | 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d | TP.response.".backend-name.http- |
| 9700 | 6d 73 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | msg))))).........(with-current-b |
| 9720 | 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 | uffer.gptel-buffer...........(wh |
| 9740 | 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 28 67 70 74 65 6c | en.gptel-mode.............(gptel |
| 9760 | 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | --update-status..............(fo |
| 9780 | 72 6d 61 74 20 22 20 52 65 73 70 6f 6e 73 65 20 45 72 72 6f 72 3a 20 25 73 22 20 68 74 74 70 2d | rmat.".Response.Error:.%s".http- |
| 97a0 | 6d 73 67 29 20 27 65 72 72 6f 72 29 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 68 6f 6f | msg).'error)))).......;;.Run.hoo |
| 97c0 | 6b 20 69 6e 20 76 69 73 69 62 6c 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 65 74 20 77 69 6e 64 6f | k.in.visible.window.to.set.windo |
| 97e0 | 77 2d 70 6f 69 6e 74 2c 20 42 55 47 20 23 32 36 39 0a 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 | w-point,.BUG.#269.......(if-let. |
| 9800 | 28 28 67 70 74 65 6c 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f | ((gptel-window.(get-buffer-windo |
| 9820 | 77 20 67 70 74 65 6c 2d 62 75 66 66 65 72 20 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 20 20 | w.gptel-buffer.'visible)))...... |
| 9840 | 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c | .....(with-selected-window.gptel |
| 9860 | 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 | -window.............(run-hook-wi |
| 9880 | 74 68 2d 61 72 67 73 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 | th-args.'gptel-post-response-fun |
| 98a0 | 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 20 20 | ctions.......................... |
| 98c0 | 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 | .......(marker-position.start-ma |
| 98e0 | 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rker)........................... |
| 9900 | 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 28 6f 72 20 74 72 61 63 6b | ......(marker-position.(or.track |
| 9920 | 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 29 29 0a 20 20 20 20 | ing-marker.start-marker))))..... |
| 9940 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 | ....(with-current-buffer.gptel-b |
| 9960 | 75 66 66 65 72 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 | uffer...........(run-hook-with-a |
| 9980 | 72 67 73 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 | rgs.'gptel-post-response-functio |
| 99a0 | 6e 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ns.............................. |
| 99c0 | 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a | .(marker-position.start-marker). |
| 99e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d | ..............................(m |
| 9a00 | 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 28 6f 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b | arker-position.(or.tracking-mark |
| 9a20 | 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 | er.start-marker)))))).....(setf. |
| 9a40 | 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 63 75 72 6c 2d 2d 70 | (alist-get.process.gptel-curl--p |
| 9a60 | 72 6f 63 65 73 73 2d 61 6c 69 73 74 20 6e 69 6c 20 27 72 65 6d 6f 76 65 29 20 6e 69 6c 29 0a 20 | rocess-alist.nil.'remove).nil).. |
| 9a80 | 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 70 72 6f 63 2d 62 75 66 29 29 29 0a 0a 28 64 65 | ...(kill-buffer.proc-buf)))..(de |
| 9aa0 | 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 65 | fun.gptel-curl--stream-insert-re |
| 9ac0 | 73 70 6f 6e 73 65 20 28 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 49 6e 73 65 72 74 | sponse.(response.info)..."Insert |
| 9ae0 | 20 73 74 72 65 61 6d 69 6e 67 20 52 45 53 50 4f 4e 53 45 20 66 72 6f 6d 20 61 6e 20 4c 4c 4d 20 | .streaming.RESPONSE.from.an.LLM. |
| 9b00 | 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2e 0a 0a 49 4e 46 4f 20 69 73 20 | into.the.gptel.buffer...INFO.is. |
| 9b20 | 61 20 6d 75 74 61 62 6c 65 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f 72 | a.mutable.plist.containing.infor |
| 9b40 | 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 2e 0a | mation.relevant.to.this.buffer.. |
| 9b60 | 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 66 6f | See.`gptel--url-get-response'.fo |
| 9b80 | 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 6d 61 72 6b 65 | r.details."...(let.((start-marke |
| 9ba0 | 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 | r.(plist-get.info.:position))... |
| 9bc0 | 20 20 20 20 20 20 28 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 | ......(tracking-marker.(plist-ge |
| 9be0 | 74 20 69 6e 66 6f 20 3a 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 | t.info.:tracking-marker))....... |
| 9c00 | 20 20 28 74 72 61 6e 73 66 6f 72 6d 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a | ..(transformer.(plist-get.info.: |
| 9c20 | 74 72 61 6e 73 66 6f 72 6d 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 72 65 73 70 6f 6e 73 | transformer))).....(when.respons |
| 9c40 | 65 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 | e.........(with-current-buffer.( |
| 9c60 | 6d 61 72 6b 65 72 2d 62 75 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 | marker-buffer.start-marker)..... |
| 9c80 | 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 20 | ......(save-excursion........... |
| 9ca0 | 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 20 20 20 | ..(unless.tracking-marker....... |
| 9cc0 | 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 20 | ........(gptel--update-status.". |
| 9ce0 | 54 79 70 69 6e 67 2e 2e 2e 22 20 27 73 75 63 63 65 73 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 | Typing...".'success)............ |
| 9d00 | 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 72 29 0a 20 20 20 20 | ...(goto-char.start-marker)..... |
| 9d20 | 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 70 6c | ..........(unless.(or.(bobp).(pl |
| 9d40 | 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 20 20 20 20 20 20 | ist-get.info.:in-place))........ |
| 9d60 | 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 | .........(insert."\n\n")........ |
| 9d80 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 | .........(when.gptel-mode....... |
| 9da0 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 75 74 20 70 72 65 66 69 78 20 62 65 66 6f 72 65 | ............;;.Put.prefix.before |
| 9dc0 | 20 41 49 20 72 65 73 70 6f 6e 73 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .AI.response.................... |
| 9de0 | 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 | (insert.(gptel-response-prefix-s |
| 9e00 | 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d | tring))).................(move-m |
| 9e20 | 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 | arker.start-marker.(point))).... |
| 9e40 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 | ...........(setq.tracking-marker |
| 9e60 | 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 20 28 70 6f 69 6e | .(set-marker.(make-marker).(poin |
| 9e80 | 74 29 29 29 0a 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 2d 69 | t)))...............(set-marker-i |
| 9ea0 | 6e 73 65 72 74 69 6f 6e 2d 74 79 70 65 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 29 | nsertion-type.tracking-marker.t) |
| 9ec0 | 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.: |
| 9ee0 | 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 20 74 72 61 63 6b 69 6e 67 2d 6d 61 72 6b 65 72 29 | tracking-marker.tracking-marker) |
| 9f00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e | )..........................(when |
| 9f20 | 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 28 73 65 74 71 | .transformer...............(setq |
| 9f40 | 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 72 20 72 | .response.(funcall.transformer.r |
| 9f60 | 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 | esponse)))...................... |
| 9f80 | 20 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 | ....(put-text-property.......... |
| 9fa0 | 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 72 65 73 70 6f 6e 73 65 29 20 27 67 70 74 65 6c 20 27 | ....0.(length.response).'gptel.' |
| 9fc0 | 72 65 73 70 6f 6e 73 65 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | response.response).............( |
| 9fe0 | 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 20 20 | goto-char.tracking-marker)...... |
| a000 | 20 20 20 20 20 20 20 3b 3b 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 65 2d | .......;;.(run-hooks.'gptel-pre- |
| a020 | 73 74 72 65 61 6d 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 | stream-hook).............(insert |
| a040 | 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b | .response).............(run-hook |
| a060 | 73 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 29 29 29 29 29 29 0a | s.'gptel-post-stream-hook)))))). |
| a080 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 74 72 65 61 6d 2d 66 69 6c 74 65 | .(defun.gptel-curl--stream-filte |
| a0a0 | 72 20 28 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f | r.(process.output)...(let*.((pro |
| a0c0 | 63 2d 69 6e 66 6f 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 | c-info.(alist-get.process.gptel- |
| a0e0 | 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 | curl--process-alist))).....(with |
| a100 | 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 20 | -current-buffer.(process-buffer. |
| a120 | 70 72 6f 63 65 73 73 29 0a 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 6f 75 74 70 75 74 0a | process).......;;.Insert.output. |
| a140 | 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 28 67 | ......(save-excursion.........(g |
| a160 | 6f 74 6f 2d 63 68 61 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 65 73 73 29 29 | oto-char.(process-mark.process)) |
| a180 | 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 | .........(insert.output)........ |
| a1a0 | 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 70 72 6f 63 65 73 73 2d 6d 61 72 6b 20 70 72 6f 63 65 | .(set-marker.(process-mark.proce |
| a1c0 | 73 73 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 3b 3b 20 46 69 | ss).(point)))..............;;.Fi |
| a1e0 | 6e 64 20 48 54 54 50 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 70 6c | nd.HTTP.status.......(unless.(pl |
| a200 | 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 0a | ist-get.proc-info.:http-status). |
| a220 | 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......... |
| a240 | 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 | ..(goto-char.(point-min))....... |
| a260 | 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 28 6e 6f 74 20 28 3d 20 28 6c 69 6e 65 2d 65 | ....(when-let*.(((not.(=.(line-e |
| a280 | 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 | nd-position).(point-max))))..... |
| a2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 68 74 74 70 2d 6d 73 67 20 28 62 75 66 | ..................(http-msg.(buf |
| a2c0 | 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 70 6f | fer-substring.(line-beginning-po |
| a2e0 | 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 20 20 | sition)......................... |
| a300 | 20 20 20 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 | ..........................(line- |
| a320 | 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | end-position)))................. |
| a340 | 20 20 20 20 20 20 28 68 74 74 70 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(http-status.............. |
| a360 | 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 | ..........(save-match-data...... |
| a380 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 | ....................(and.(string |
| a3a0 | 2d 6d 61 74 63 68 20 22 48 54 54 50 2f 5b 2e 30 2d 39 5d 2b 20 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c | -match."HTTP/[.0-9]+.+\\([0-9]+\ |
| a3c0 | 5c 29 22 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \)".http-msg)................... |
| a3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 68 74 74 70 | ............(match-string.1.http |
| a400 | 2d 6d 73 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | -msg))))).............(plist-put |
| a420 | 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 20 68 74 74 70 2d 73 74 61 | .proc-info.:http-status.http-sta |
| a440 | 74 75 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 | tus).............(plist-put.proc |
| a460 | 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 68 74 74 70 2d | -info.:status.(string-trim.http- |
| a480 | 6d 73 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 72 65 61 64 2d 6f | msg)))).........;;.Handle.read-o |
| a4a0 | 6e 6c 79 20 67 70 74 65 6c 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | nly.gptel.buffer.........(when.( |
| a4c0 | 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 70 | with-current-buffer.(plist-get.p |
| a4e0 | 72 6f 63 2d 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 | roc-info.:buffer)............... |
| a500 | 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 20 20 | ..(or.buffer-read-only.......... |
| a520 | 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 70 | ...........(get-char-property.(p |
| a540 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 20 27 72 | list-get.proc-info.:position).'r |
| a560 | 65 61 64 2d 6f 6e 6c 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | ead-only)))...........(message." |
| a580 | 42 75 66 66 65 72 20 69 73 20 72 65 61 64 20 6f 6e 6c 79 2c 20 64 69 73 70 6c 61 79 69 6e 67 20 | Buffer.is.read.only,.displaying. |
| a5a0 | 72 65 70 6c 79 20 69 6e 20 62 75 66 66 65 72 20 5c 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a | reply.in.buffer.\"*LLM.response* |
| a5c0 | 5c 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 | \"")...........(display-buffer.. |
| a5e0 | 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 28 | ..........(with-current-buffer.( |
| a600 | 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 65 | get-buffer-create."*LLM.response |
| a620 | 2a 22 29 0a 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 | *")..............(visual-line-mo |
| a640 | 64 65 20 31 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 70 | de.1)..............(goto-char.(p |
| a660 | 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6d 61 | oint-max))..............(move-ma |
| a680 | 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 70 6f 73 69 74 | rker.(plist-get.proc-info.:posit |
| a6a0 | 69 6f 6e 29 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 | ion).(point).(current-buffer)).. |
| a6c0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 | ............(current-buffer))... |
| a6e0 | 20 20 20 20 20 20 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 | .........'((display-buffer-reuse |
| a700 | 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 | -window...............display-bu |
| a720 | 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ffer-pop-up-window)............. |
| a740 | 20 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 0a | .(reusable-frames...visible)))). |
| a760 | 20 20 20 20 20 20 20 20 3b 3b 20 52 75 6e 20 70 72 65 2d 72 65 73 70 6f 6e 73 65 20 68 6f 6f 6b | ........;;.Run.pre-response.hook |
| a780 | 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 28 70 6c 69 | .........(when.(and.(member.(pli |
| a7a0 | 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 20 27 | st-get.proc-info.:http-status).' |
| a7c0 | 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ("200"."100")).................. |
| a7e0 | 20 20 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 | ..gptel-pre-response-hook)...... |
| a800 | 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 61 72 6b 65 | .....(with-current-buffer.(marke |
| a820 | 72 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 70 | r-buffer.(plist-get.proc-info.:p |
| a840 | 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 | osition)).............(run-hooks |
| a860 | 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 0a 20 20 | .'gptel-pre-response-hook))))... |
| a880 | 20 20 20 20 0a 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 68 74 74 70 2d 6d 73 67 20 | ...........(when-let.((http-msg. |
| a8a0 | 28 70 6c 69 73 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 | (plist-get.proc-info.:status)).. |
| a8c0 | 20 20 20 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 20 28 70 6c | ................(http-status.(pl |
| a8e0 | 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 68 74 74 70 2d 73 74 61 74 75 73 29 29 | ist-get.proc-info.:http-status)) |
| a900 | 29 0a 20 20 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 | ).........;;.Find.data.chunk(s). |
| a920 | 61 6e 64 20 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 | and.run.callback.........;;.FIXM |
| a940 | 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 | E.Handle.the.case.where.HTTP.100 |
| a960 | 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 | .is.followed.by.HTTP.(not.200).B |
| a980 | 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 28 6d 65 6d | UG.#194.........(when-let.(((mem |
| a9a0 | 62 65 72 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 29 | ber.http-status.'("200"."100"))) |
| a9c0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 66 | ....................(response.(f |
| a9e0 | 75 6e 63 61 6c 6c 20 28 70 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 70 61 72 | uncall.(plist-get.proc-info.:par |
| aa00 | 73 65 72 29 20 6e 69 6c 20 70 72 6f 63 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ser).nil.proc-info))............ |
| aa20 | 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 65 71 75 61 6c 20 72 65 73 70 6f 6e 73 65 20 22 22 | ........((not.(equal.response."" |
| aa40 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 20 28 70 6c 69 | ))))...........(funcall.(or.(pli |
| aa60 | 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 20 20 20 | st-get.proc-info.:callback)..... |
| aa80 | 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 72 6c 2d | ...................#'gptel-curl- |
| aaa0 | 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 | -stream-insert-response)........ |
| aac0 | 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 29 | ............response.proc-info)) |
| aae0 | 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 63 75 72 6c 2d | ))))..(cl-defgeneric.gptel-curl- |
| ab00 | 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 63 2d 69 6e 66 6f | -parse-stream.(backend.proc-info |
| ab20 | 29 0a 20 20 22 53 74 72 65 61 6d 20 70 61 72 73 65 72 20 66 6f 72 20 67 70 74 65 6c 2d 63 75 72 | )..."Stream.parser.for.gptel-cur |
| ab40 | 6c 2e 0a 0a 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 73 20 6f 66 20 74 68 69 73 20 66 75 6e 63 | l...Implementations.of.this.func |
| ab60 | 74 69 6f 6e 20 72 75 6e 20 61 73 20 70 61 72 74 20 6f 66 20 74 68 65 20 70 72 6f 63 65 73 73 0a | tion.run.as.part.of.the.process. |
| ab80 | 66 69 6c 74 65 72 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 71 75 65 72 79 2c 20 61 6e 64 | filter.for.the.active.query,.and |
| aba0 | 20 72 65 74 75 72 6e 20 70 61 72 74 69 61 6c 20 72 65 73 70 6f 6e 73 65 73 20 66 72 6f 6d 0a 74 | .return.partial.responses.from.t |
| abc0 | 68 65 20 4c 4c 4d 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b | he.LLM...BACKEND.is.the.LLM.back |
| abe0 | 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 50 52 4f 43 2d 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 | end.in.use...PROC-INFO.is.a.plis |
| ac00 | 74 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 6f | t.with.process.information.and.o |
| ac20 | 74 68 65 72 20 63 6f 6e 74 65 78 74 2e 0a 53 65 65 20 60 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 | ther.context..See.`gptel-curl--g |
| ac40 | 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 2e 22 29 | et-response'.for.its.contents.") |
| ac60 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 73 65 6e 74 69 6e 65 6c 20 28 70 | ..(defun.gptel-curl--sentinel.(p |
| ac80 | 72 6f 63 65 73 73 20 5f 73 74 61 74 75 73 29 0a 20 20 22 50 72 6f 63 65 73 73 20 73 65 6e 74 69 | rocess._status)..."Process.senti |
| aca0 | 6e 65 6c 20 66 6f 72 20 67 70 74 65 6c 20 63 75 72 6c 20 72 65 71 75 65 73 74 73 2e 0a 0a 50 52 | nel.for.gptel.curl.requests...PR |
| acc0 | 4f 43 45 53 53 20 61 6e 64 20 5f 53 54 41 54 55 53 20 61 72 65 20 70 72 6f 63 65 73 73 20 70 61 | OCESS.and._STATUS.are.process.pa |
| ace0 | 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 63 2d 62 75 66 20 28 70 72 | rameters."...(let.((proc-buf.(pr |
| ad00 | 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 65 73 73 29 29 29 0a 20 20 20 20 28 77 68 65 | ocess-buffer.process))).....(whe |
| ad20 | 6e 2d 6c 65 74 2a 20 28 28 28 65 71 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f | n-let*.(((eq.(process-status.pro |
| ad40 | 63 65 73 73 29 20 27 65 78 69 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | cess).'exit)).................(p |
| ad60 | 72 6f 63 2d 69 6e 66 6f 20 28 61 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 65 73 73 20 67 70 74 65 | roc-info.(alist-get.process.gpte |
| ad80 | 6c 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 | l-curl--process-alist))......... |
| ada0 | 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 73 74 2d 67 65 | ........(proc-callback.(plist-ge |
| adc0 | 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 20 20 20 20 28 | t.proc-info.:callback))).......( |
| ade0 | 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 2d 63 75 72 6c | when.gptel-log-level.(gptel-curl |
| ae00 | 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 63 2d 69 6e 66 | --log-response.proc-buf.proc-inf |
| ae20 | 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 65 74 20 28 28 | o)).;logging.......(pcase-let.(( |
| ae40 | 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 6d 73 67 20 2c 65 72 72 6f 72 29 0a 20 20 | `(,response.,http-msg.,error)... |
| ae60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | .................(with-current-b |
| ae80 | 75 66 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 20 20 20 20 20 | uffer.proc-buf.................. |
| aea0 | 20 20 20 20 28 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 | ....(gptel-curl--parse-response. |
| aec0 | 70 72 6f 63 2d 69 6e 66 6f 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 | proc-info)))).........(plist-put |
| aee0 | 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 | .proc-info.:status.http-msg).... |
| af00 | 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 63 | .....(when.error.(plist-put.proc |
| af20 | 2d 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 66 75 | -info.:error.error)).........(fu |
| af40 | 6e 63 61 6c 6c 20 70 72 6f 63 2d 63 61 6c 6c 62 61 63 6b 20 72 65 73 70 6f 6e 73 65 20 70 72 6f | ncall.proc-callback.response.pro |
| af60 | 63 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 70 | c-info))).....(setf.(alist-get.p |
| af80 | 72 6f 63 65 73 73 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 72 6f 63 65 73 73 2d 61 6c 69 73 74 | rocess.gptel-curl--process-alist |
| afa0 | 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 75 66 | .nil.'remove).nil).....(kill-buf |
| afc0 | 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 63 75 | fer.proc-buf)))..(defun.gptel-cu |
| afe0 | 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 0a 20 | rl--parse-response.(proc-info).. |
| b000 | 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 72 6c | ."Parse.the.buffer.BUF.with.curl |
| b020 | 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 6c 69 | 's.response...PROC-INFO.is.a.pli |
| b040 | 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 2e 22 | st.with.contextual.information." |
| b060 | 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 63 2d | ...(let.((token.(plist-get.proc- |
| b080 | 69 6e 66 6f 20 3a 74 6f 6b 65 6e 29 29 0a 20 20 20 20 20 20 20 20 28 70 61 72 73 65 72 20 28 70 | info.:token)).........(parser.(p |
| b0a0 | 6c 69 73 74 2d 67 65 74 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 70 61 72 73 65 72 29 29 29 0a 20 20 | list-get.proc-info.:parser)))... |
| b0c0 | 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 28 73 | ..(goto-char.(point-max)).....(s |
| b0e0 | 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 74 6f 6b 65 6e 29 0a 20 20 20 20 28 62 61 63 6b 77 | earch-backward.token).....(backw |
| b100 | 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 5f | ard-char).....(pcase-let*.((`(,_ |
| b120 | 20 2e 20 2c 68 65 61 64 65 72 2d 73 69 7a 65 29 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d | ...,header-size).(read.(current- |
| b140 | 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 | buffer)))).......(goto-char.(poi |
| b160 | 6e 74 2d 6d 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 69 66 2d 6c 65 74 2a 20 28 28 68 74 74 70 2d | nt-min))........(if-let*.((http- |
| b180 | 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | msg.(string-trim................ |
| b1a0 | 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 20 28 6c | ............(buffer-substring.(l |
| b1c0 | 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 | ine-beginning-position)......... |
| b1e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| b200 | 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 | .....(line-end-position))))..... |
| b220 | 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 20 | ............(http-status........ |
| b240 | 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 | ..........(save-match-data...... |
| b260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 | ..............(and.(string-match |
| b280 | 20 22 48 54 54 50 2f 5b 2e 30 2d 39 5d 2b 20 2b 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 68 74 | ."HTTP/[.0-9]+.+\\([0-9]+\\)".ht |
| b2a0 | 74 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 | tp-msg)......................... |
| b2c0 | 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 68 74 74 70 2d 6d 73 67 29 29 29 29 0a 20 20 20 | (match-string.1.http-msg)))).... |
| b2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 | .............(response.(progn.(g |
| b300 | 6f 74 6f 2d 63 68 61 72 20 68 65 61 64 65 72 2d 73 69 7a 65 29 0a 20 20 20 20 20 20 20 20 20 20 | oto-char.header-size)........... |
| b320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f | .......................(conditio |
| b340 | 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 20 20 | n-case.nil...................... |
| b360 | 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 65 61 | ................(gptel--json-rea |
| b380 | 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d).............................. |
| b3a0 | 20 20 20 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 29 29 | ......(error.'json-read-error))) |
| b3c0 | 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 20 20 3b 3b | ))...........(cond............;; |
| b3e0 | 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 20 77 68 65 72 65 20 48 54 54 | .FIXME.Handle.the.case.where.HTT |
| b400 | 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 54 54 50 20 28 6e 6f 74 20 32 | P.100.is.followed.by.HTTP.(not.2 |
| b420 | 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 | 00).BUG.#194............((member |
| b440 | 20 68 74 74 70 2d 73 74 61 74 75 73 20 27 28 22 32 30 30 22 20 22 31 30 30 22 29 29 0a 20 20 20 | .http-status.'("200"."100")).... |
| b460 | 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 | .........(list.(string-trim..... |
| b480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 70 61 72 73 65 72 20 6e | ...............(funcall.parser.n |
| b4a0 | 69 6c 20 72 65 73 70 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 | il.response.proc-info))......... |
| b4c0 | 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ..........http-msg))............ |
| b4e0 | 28 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 72 6f 72 29 0a 20 20 20 | ((plist-get.response.:error).... |
| b500 | 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 65 72 72 6f 72 2d 64 61 74 61 20 28 70 6c 69 | .........(let*.((error-data.(pli |
| b520 | 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 20 20 | st-get.response.:error))........ |
| b540 | 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 | ............(error-msg.(plist-ge |
| b560 | 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 | t.error-data.:message))......... |
| b580 | 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 74 79 70 65 20 28 70 6c 69 73 74 2d 67 65 | ...........(error-type.(plist-ge |
| b5a0 | 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 74 79 70 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | t.error-data.:type))............ |
| b5c0 | 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 | ........(backend-name........... |
| b5e0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 | ..........(gptel-backend-name... |
| b600 | 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 6c 6f 63 61 6c | ...................(buffer-local |
| b620 | 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 70 6c 69 73 74 2d 67 65 74 | -value.'gptel-backend.(plist-get |
| b640 | 20 70 72 6f 63 2d 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 | .proc-info.:buffer)))))......... |
| b660 | 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 65 72 72 6f 72 2d 64 61 74 61 29 0a 20 | ......(if.(stringp.error-data).. |
| b680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 | .................(progn.(message |
| b6a0 | 20 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 | ."%s.error:.(%s).%s".backend-nam |
| b6c0 | 65 20 68 74 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 | e.http-msg.error-data).......... |
| b6e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 72 72 6f 72 2d 6d 73 67 20 | ................(setq.error-msg. |
| b700 | 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 65 72 72 6f 72 2d 64 61 74 61 29 29 29 0a 20 20 20 20 20 | (string-trim.error-data)))...... |
| b720 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 65 72 72 6f 72 2d | ...........(when.(stringp.error- |
| b740 | 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | msg)...................(message. |
| b760 | 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 |
| b780 | 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 6d 73 67 | .http-msg.(string-trim.error-msg |
| b7a0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 65 72 72 6f 72 2d | ))).................(when.error- |
| b7c0 | 74 79 70 65 20 28 73 65 74 71 20 68 74 74 70 2d 6d 73 67 20 28 63 6f 6e 63 61 74 20 22 28 22 20 | type.(setq.http-msg.(concat."(". |
| b7e0 | 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 65 72 72 6f | .http-msg.").".(string-trim.erro |
| b800 | 72 2d 74 79 70 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 | r-type)))))...............(list. |
| b820 | 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 22 20 28 6f | nil.(concat."(".http-msg.").".(o |
| b840 | 72 20 65 72 72 6f 72 2d 6d 73 67 20 22 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | r.error-msg."")))))............( |
| b860 | 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 61 64 2d 65 72 72 6f 72 29 0a 20 | (eq.response.'json-read-error).. |
| b880 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 | ...........(list.nil.(concat."(" |
| b8a0 | 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 | .http-msg.").Malformed.JSON.in.r |
| b8c0 | 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 4d 61 | esponse.")..................."Ma |
| b8e0 | 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 22 29 29 0a 20 20 20 20 | lformed.JSON.in.response"))..... |
| b900 | 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 | .......(t.(list.nil.(concat."(". |
| b920 | 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 | http-msg.").Could.not.parse.HTTP |
| b940 | 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .response.").................... |
| b960 | 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 2e | ."Could.not.parse.HTTP.response. |
| b980 | 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 | "))).........(list.nil.(concat." |
| b9a0 | 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 70 61 72 73 65 20 48 | (".http-msg.").Could.not.parse.H |
| b9c0 | 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 20 20 20 20 20 22 43 | TTP.response.")..............."C |
| b9e0 | 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 | ould.not.parse.HTTP.response.")) |
| ba00 | 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 63 75 72 6c 29 0a 3b 3b 3b 20 67 | )))..(provide.'gptel-curl).;;;.g |
| ba20 | 70 74 65 6c 2d 63 75 72 6c 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 | ptel-curl.el.ends.here.......... |
| ba40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ba60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| ba80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| baa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bac0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bae0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bb00 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bb20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bb40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bb60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bb80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bbc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bbe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bc00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2e 65 6c 00 00 00 00 | gptel-20240422.1939/gptel.el.... |
| bc20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bc40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bc60 | 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 |
| bc80 | 30 31 34 36 36 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 37 37 00 20 30 00 00 00 | 0146611.00000000000.013577..0... |
| bca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bcc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd00 | 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................... |
| bd20 | 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................... |
| bd40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bd80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bda0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bdc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| bde0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| be00 | 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 |
| be20 | 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 |
| be40 | 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 |
| be60 | 68 74 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 | ht.(C).2023..Karthik.Chikmagalur |
| be80 | 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 |
| bea0 | 0a 3b 3b 20 56 65 72 73 69 6f 6e 3a 20 30 2e 38 2e 35 0a 3b 3b 20 50 61 63 6b 61 67 65 2d 52 65 | .;;.Version:.0.8.5.;;.Package-Re |
| bec0 | 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 29 20 28 74 72 61 6e 73 69 65 | quires:.((emacs."27.1").(transie |
| bee0 | 6e 74 20 22 30 2e 34 2e 30 22 29 20 28 63 6f 6d 70 61 74 20 22 32 39 2e 31 2e 34 2e 31 22 29 29 | nt."0.4.0").(compat."29.1.4.1")) |
| bf00 | 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 3b 3b 20 55 52 4c | .;;.Keywords:.convenience.;;.URL |
| bf20 | 3a 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 68 69 6e 6b 2f 67 70 | :.https://github.com/karthink/gp |
| bf40 | 74 65 6c 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a | tel..;;.SPDX-License-Identifier: |
| bf60 | 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 | .GPL-3.0-or-later..;;.This.progr |
| bf80 | 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 | am.is.free.software;.you.can.red |
| bfa0 | 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 | istribute.it.and/or.modify.;;.it |
| bfc0 | 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 | .under.the.terms.of.the.GNU.Gene |
| bfe0 | 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 | ral.Public.License.as.published. |
| c000 | 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 | by.;;.the.Free.Software.Foundati |
| c020 | 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 | on,.either.version.3.of.the.Lice |
| c040 | 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 | nse,.or.;;.(at.your.option).any. |
| c060 | 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 | later.version...;;.This.program. |
| c080 | 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 | is.distributed.in.the.hope.that. |
| c0a0 | 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 | it.will.be.useful,.;;.but.WITHOU |
| c0c0 | 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 | T.ANY.WARRANTY;.without.even.the |
| c0e0 | 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 | .implied.warranty.of.;;.MERCHANT |
| c100 | 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 | ABILITY.or.FITNESS.FOR.A.PARTICU |
| c120 | 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e | LAR.PURPOSE...See.the.;;.GNU.Gen |
| c140 | 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 | eral.Public.License.for.more.det |
| c160 | 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 | ails...;;.You.should.have.receiv |
| c180 | 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 | ed.a.copy.of.the.GNU.General.Pub |
| c1a0 | 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 | lic.License.;;.along.with.this.p |
| c1c0 | 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 | rogram...If.not,.see.<https://ww |
| c1e0 | 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 20 54 68 69 73 20 66 | w.gnu.org/licenses/>...;;.This.f |
| c200 | 69 6c 65 20 69 73 20 4e 4f 54 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b | ile.is.NOT.part.of.GNU.Emacs...; |
| c220 | 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 67 70 74 65 6c 20 69 73 20 61 20 73 69 | ;;.Commentary:..;;.gptel.is.a.si |
| c240 | 6d 70 6c 65 20 4c 61 72 67 65 20 4c 61 6e 67 75 61 67 65 20 4d 6f 64 65 6c 20 63 68 61 74 20 63 | mple.Large.Language.Model.chat.c |
| c260 | 6c 69 65 6e 74 2c 20 77 69 74 68 20 73 75 70 70 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 6c 65 | lient,.with.support.for.multiple |
| c280 | 20 6d 6f 64 65 6c 73 2f 62 61 63 6b 65 6e 64 73 2e 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 73 75 | .models/backends..;;.;;.gptel.su |
| c2a0 | 70 70 6f 72 74 73 0a 3b 3b 0a 3b 3b 20 2d 20 54 68 65 20 73 65 72 76 69 63 65 73 20 43 68 61 74 | pports.;;.;;.-.The.services.Chat |
| c2c0 | 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 63 20 41 49 | GPT,.Azure,.Gemini,.Anthropic.AI |
| c2e0 | 2c 20 41 6e 79 73 63 61 6c 65 2c 20 54 6f 67 65 74 68 65 72 2e 61 69 2c 0a 3b 3b 20 20 20 50 65 | ,.Anyscale,.Together.ai,.;;...Pe |
| c300 | 72 70 6c 65 78 69 74 79 2c 20 61 6e 64 20 4b 61 67 69 20 28 46 61 73 74 47 50 54 20 26 20 53 75 | rplexity,.and.Kagi.(FastGPT.&.Su |
| c320 | 6d 6d 61 72 69 7a 65 72 29 0a 3b 3b 20 2d 20 4c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 76 69 61 20 | mmarizer).;;.-.Local.models.via. |
| c340 | 4f 6c 6c 61 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 2c 20 4c 6c 61 6d 61 66 69 6c 65 73 20 6f 72 | Ollama,.Llama.cpp,.Llamafiles.or |
| c360 | 20 47 50 54 34 41 6c 6c 0a 3b 3b 0a 3b 3b 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 61 6e | .GPT4All.;;.;;..Additionally,.an |
| c380 | 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 65 6d 6f 74 65 29 20 | y.LLM.service.(local.or.remote). |
| c3a0 | 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 61 6e 0a 3b 3b 20 20 4f 70 65 6e 41 49 2d 63 6f 6d 70 | that.provides.an.;;..OpenAI-comp |
| c3c0 | 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 3b 0a 3b 3b 20 46 | atible.API.is.supported..;;.;;.F |
| c3e0 | 65 61 74 75 72 65 73 3a 0a 3b 3b 20 2d 20 49 74 e2 80 99 73 20 61 73 79 6e 63 20 61 6e 64 20 66 | eatures:.;;.-.It...s.async.and.f |
| c400 | 61 73 74 2c 20 73 74 72 65 61 6d 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 3b 3b 20 2d 20 49 6e 74 | ast,.streams.responses..;;.-.Int |
| c420 | 65 72 61 63 74 20 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 77 68 65 72 65 20 69 6e | eract.with.LLMs.from.anywhere.in |
| c440 | 20 45 6d 61 63 73 20 28 61 6e 79 20 62 75 66 66 65 72 2c 20 73 68 65 6c 6c 2c 20 6d 69 6e 69 62 | .Emacs.(any.buffer,.shell,.minib |
| c460 | 75 66 66 65 72 2c 0a 3b 3b 20 20 20 77 68 65 72 65 76 65 72 29 0a 3b 3b 20 2d 20 4c 4c 4d 20 72 | uffer,.;;...wherever).;;.-.LLM.r |
| c480 | 65 73 70 6f 6e 73 65 73 20 61 72 65 20 69 6e 20 4d 61 72 6b 64 6f 77 6e 20 6f 72 20 4f 72 67 20 | esponses.are.in.Markdown.or.Org. |
| c4a0 | 6d 61 72 6b 75 70 2e 0a 3b 3b 20 2d 20 53 75 70 70 6f 72 74 73 20 63 6f 6e 76 65 72 73 61 74 69 | markup..;;.-.Supports.conversati |
| c4c0 | 6f 6e 73 20 61 6e 64 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 73 65 73 | ons.and.multiple.independent.ses |
| c4e0 | 73 69 6f 6e 73 2e 0a 3b 3b 20 2d 20 53 61 76 65 20 63 68 61 74 73 20 61 73 20 72 65 67 75 6c 61 | sions..;;.-.Save.chats.as.regula |
| c500 | 72 20 4d 61 72 6b 64 6f 77 6e 2f 4f 72 67 2f 54 65 78 74 20 66 69 6c 65 73 20 61 6e 64 20 72 65 | r.Markdown/Org/Text.files.and.re |
| c520 | 73 75 6d 65 20 74 68 65 6d 20 6c 61 74 65 72 2e 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 67 6f | sume.them.later..;;.-.You.can.go |
| c540 | 20 62 61 63 6b 20 61 6e 64 20 65 64 69 74 20 79 6f 75 72 20 70 72 65 76 69 6f 75 73 20 70 72 6f | .back.and.edit.your.previous.pro |
| c560 | 6d 70 74 73 20 6f 72 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 20 77 68 65 6e 0a 3b 3b 20 20 20 | mpts.or.LLM.responses.when.;;... |
| c580 | 63 6f 6e 74 69 6e 75 69 6e 67 20 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 20 20 54 68 65 73 | continuing.a.conversation...Thes |
| c5a0 | 65 20 77 69 6c 6c 20 62 65 20 66 65 64 20 62 61 63 6b 20 74 6f 20 74 68 65 20 6d 6f 64 65 6c 2e | e.will.be.fed.back.to.the.model. |
| c5c0 | 0a 3b 3b 0a 3b 3b 20 52 65 71 75 69 72 65 6d 65 6e 74 73 20 66 6f 72 20 43 68 61 74 47 50 54 2c | .;;.;;.Requirements.for.ChatGPT, |
| c5e0 | 20 41 7a 75 72 65 2c 20 47 65 6d 69 6e 69 20 6f 72 20 4b 61 67 69 3a 0a 3b 3b 0a 3b 3b 20 2d 20 | .Azure,.Gemini.or.Kagi:.;;.;;.-. |
| c600 | 59 6f 75 20 6e 65 65 64 20 61 6e 20 61 70 70 72 6f 70 72 69 61 74 65 20 41 50 49 20 6b 65 79 2e | You.need.an.appropriate.API.key. |
| c620 | 20 20 53 65 74 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 | ..Set.the.variable.`gptel-api-ke |
| c640 | 79 27 20 74 6f 20 74 68 65 0a 3b 3b 20 20 20 6b 65 79 20 6f 72 20 74 6f 20 61 20 66 75 6e 63 74 | y'.to.the.;;...key.or.to.a.funct |
| c660 | 69 6f 6e 20 6f 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 72 65 74 75 72 6e 73 | ion.of.no.arguments.that.returns |
| c680 | 20 74 68 65 20 6b 65 79 2e 20 20 28 49 74 20 74 72 69 65 73 20 74 6f 0a 3b 3b 20 20 20 75 73 65 | .the.key...(It.tries.to.;;...use |
| c6a0 | 20 60 61 75 74 68 2d 73 6f 75 72 63 65 27 20 62 79 20 64 65 66 61 75 6c 74 29 0a 3b 3b 0a 3b 3b | .`auth-source'.by.default).;;.;; |
| c6c0 | 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 63 | .-.For.Azure:.define.a.gptel-bac |
| c6e0 | 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 68 | kend.with.`gptel-make-azure',.wh |
| c700 | 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 65 | ich.see..;;.-.For.Gemini:.define |
| c720 | 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b | .a.gptel-backend.with.`gptel-mak |
| c740 | 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 41 | e-gemini',.which.see..;;.-.For.A |
| c760 | 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 65 | nthropic.(Claude):.define.a.gpte |
| c780 | 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 72 | l-backend.with.`gptel-make-anthr |
| c7a0 | 6f 70 69 63 27 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 65 65 0a 3b 3b 20 2d 20 46 6f 72 20 4b | opic',.;;...which.see.;;.-.For.K |
| c7c0 | 61 67 69 3a 20 64 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 77 69 74 68 | agi:.define.a.gptel-backend.with |
| c7e0 | 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6b 61 67 69 27 2c 20 77 68 69 63 68 20 73 65 65 2e 0a 3b | .`gptel-make-kagi',.which.see..; |
| c800 | 3b 0a 3b 3b 20 46 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 75 73 69 6e 67 20 4f 6c 6c 61 | ;.;;.For.local.models.using.Olla |
| c820 | 6d 61 2c 20 4c 6c 61 6d 61 2e 63 70 70 20 6f 72 20 47 50 54 34 41 6c 6c 3a 0a 3b 3b 0a 3b 3b 20 | ma,.Llama.cpp.or.GPT4All:.;;.;;. |
| c840 | 2d 20 54 68 65 20 6d 6f 64 65 6c 20 68 61 73 20 74 6f 20 62 65 20 72 75 6e 6e 69 6e 67 20 6f 6e | -.The.model.has.to.be.running.on |
| c860 | 20 61 6e 20 61 63 63 65 73 73 69 62 6c 65 20 61 64 64 72 65 73 73 20 28 6f 72 20 6c 6f 63 61 6c | .an.accessible.address.(or.local |
| c880 | 68 6f 73 74 29 0a 3b 3b 20 2d 20 44 65 66 69 6e 65 20 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | host).;;.-.Define.a.gptel-backen |
| c8a0 | 64 20 77 69 74 68 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 20 6f 72 20 60 67 | d.with.`gptel-make-ollama'.or.`g |
| c8c0 | 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 2c 0a 3b 3b 20 20 20 77 68 69 63 68 20 73 | ptel-make-gpt4all',.;;...which.s |
| c8e0 | 65 65 2e 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 | ee..;;.;;.Consult.the.package.RE |
| c900 | 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 20 61 6e 64 20 6d 6f 72 65 20 68 65 6c 70 20 | ADME.for.examples.and.more.help. |
| c920 | 77 69 74 68 20 63 6f 6e 66 69 67 75 72 69 6e 67 0a 3b 3b 20 62 61 63 6b 65 6e 64 73 2e 0a 3b 3b | with.configuring.;;.backends..;; |
| c940 | 0a 3b 3b 20 55 73 61 67 65 3a 0a 3b 3b 0a 3b 3b 20 67 70 74 65 6c 20 63 61 6e 20 62 65 20 75 73 | .;;.Usage:.;;.;;.gptel.can.be.us |
| c960 | 65 64 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 20 6f 72 20 69 6e 20 61 20 64 65 64 69 63 61 74 | ed.in.any.buffer.or.in.a.dedicat |
| c980 | 65 64 20 63 68 61 74 20 62 75 66 66 65 72 2e 20 20 54 68 65 0a 3b 3b 20 69 6e 74 65 72 61 63 74 | ed.chat.buffer...The.;;.interact |
| c9a0 | 69 6f 6e 20 6d 6f 64 65 6c 20 69 73 20 73 69 6d 70 6c 65 3a 20 54 79 70 65 20 69 6e 20 61 20 71 | ion.model.is.simple:.Type.in.a.q |
| c9c0 | 75 65 72 79 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 0a 3b 3b | uery.and.the.response.will.be.;; |
| c9e0 | 20 69 6e 73 65 72 74 65 64 20 62 65 6c 6f 77 2e 20 20 59 6f 75 20 63 61 6e 20 63 6f 6e 74 69 6e | .inserted.below...You.can.contin |
| ca00 | 75 65 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 62 65 | ue.the.conversation.by.typing.be |
| ca20 | 6c 6f 77 20 74 68 65 0a 3b 3b 20 72 65 73 70 6f 6e 73 65 2e 0a 3b 3b 0a 3b 3b 20 54 6f 20 75 73 | low.the.;;.response..;;.;;.To.us |
| ca40 | 65 20 74 68 69 73 20 69 6e 20 61 6e 79 20 62 75 66 66 65 72 3a 0a 3b 3b 0a 3b 3b 20 2d 20 43 61 | e.this.in.any.buffer:.;;.;;.-.Ca |
| ca60 | 6c 6c 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 74 6f 20 73 65 6e 64 20 74 68 65 20 74 65 78 74 | ll.`gptel-send'.to.send.the.text |
| ca80 | 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 2e 20 20 53 65 6c 65 63 74 20 61 20 72 65 67 | .up.to.the.cursor...Select.a.reg |
| caa0 | 69 6f 6e 20 74 6f 0a 3b 3b 20 20 20 73 65 6e 64 20 6f 6e 6c 79 20 74 68 65 20 72 65 67 69 6f 6e | ion.to.;;...send.only.the.region |
| cac0 | 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e 20 73 65 6c 65 63 74 20 70 72 65 76 69 6f 75 | ..;;.;;.-.You.can.select.previou |
| cae0 | 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 0a 3b 3b 20 20 20 | s.prompts.and.responses.to.;;... |
| cb00 | 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 3b | continue.the.conversation..;;.;; |
| cb20 | 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 66 | .-.Call.`gptel-send'.with.a.pref |
| cb40 | 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 65 | ix.argument.to.access.a.menu.whe |
| cb60 | 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 64 | re.you.can.set.;;...your.backend |
| cb80 | 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 72 | ,.model.and.other.parameters,.or |
| cba0 | 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 73 | .to.redirect.the.;;...prompt/res |
| cbc0 | 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 65 | ponse..;;.;;.To.use.this.in.a.de |
| cbe0 | 64 69 63 61 74 65 64 20 62 75 66 66 65 72 3a 0a 3b 3b 20 2d 20 4d 2d 78 20 67 70 74 65 6c 3a 20 | dicated.buffer:.;;.-.M-x.gptel:. |
| cc00 | 53 74 61 72 74 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 0a 3b 3b 20 2d 20 43 2d 75 20 4d 2d | Start.a.chat.session.;;.-.C-u.M- |
| cc20 | 78 20 67 70 74 65 6c 3a 20 53 74 61 72 74 20 61 6e 6f 74 68 65 72 20 73 65 73 73 69 6f 6e 20 6f | x.gptel:.Start.another.session.o |
| cc40 | 72 20 6d 75 6c 74 69 70 6c 65 20 69 6e 64 65 70 65 6e 64 65 6e 74 20 63 68 61 74 20 73 65 73 73 | r.multiple.independent.chat.sess |
| cc60 | 69 6f 6e 73 0a 3b 3b 0a 3b 3b 20 2d 20 49 6e 20 74 68 65 20 63 68 61 74 20 73 65 73 73 69 6f 6e | ions.;;.;;.-.In.the.chat.session |
| cc80 | 3a 20 50 72 65 73 73 20 60 43 2d 63 20 52 45 54 27 20 28 60 67 70 74 65 6c 2d 73 65 6e 64 27 29 | :.Press.`C-c.RET'.(`gptel-send') |
| cca0 | 20 74 6f 20 73 65 6e 64 20 79 6f 75 72 20 70 72 6f 6d 70 74 2e 0a 3b 3b 20 20 20 55 73 65 20 61 | .to.send.your.prompt..;;...Use.a |
| ccc0 | 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 28 60 43 2d 75 20 43 2d 63 20 52 45 54 27 29 | .prefix.argument.(`C-u.C-c.RET') |
| cce0 | 20 74 6f 20 61 63 63 65 73 73 20 61 20 6d 65 6e 75 2e 20 20 49 6e 20 74 68 69 73 20 6d 65 6e 75 | .to.access.a.menu...In.this.menu |
| cd00 | 20 79 6f 75 0a 3b 3b 20 20 20 63 61 6e 20 73 65 74 20 63 68 61 74 20 70 61 72 61 6d 65 74 65 72 | .you.;;...can.set.chat.parameter |
| cd20 | 73 20 6c 69 6b 65 20 74 68 65 20 73 79 73 74 65 6d 20 64 69 72 65 63 74 69 76 65 73 2c 20 61 63 | s.like.the.system.directives,.ac |
| cd40 | 74 69 76 65 20 62 61 63 6b 65 6e 64 20 6f 72 0a 3b 3b 20 20 20 6d 6f 64 65 6c 2c 20 6f 72 20 63 | tive.backend.or.;;...model,.or.c |
| cd60 | 68 6f 6f 73 65 20 74 6f 20 72 65 64 69 72 65 63 74 20 74 68 65 20 69 6e 70 75 74 20 6f 72 20 6f | hoose.to.redirect.the.input.or.o |
| cd80 | 75 74 70 75 74 20 65 6c 73 65 77 68 65 72 65 20 28 73 75 63 68 20 61 73 20 74 6f 20 74 68 65 0a | utput.elsewhere.(such.as.to.the. |
| cda0 | 3b 3b 20 20 20 6b 69 6c 6c 20 72 69 6e 67 29 2e 0a 3b 3b 0a 3b 3b 20 2d 20 59 6f 75 20 63 61 6e | ;;...kill.ring)..;;.;;.-.You.can |
| cdc0 | 20 73 61 76 65 20 74 68 69 73 20 62 75 66 66 65 72 20 74 6f 20 61 20 66 69 6c 65 2e 20 20 57 68 | .save.this.buffer.to.a.file...Wh |
| cde0 | 65 6e 20 6f 70 65 6e 69 6e 67 20 74 68 69 73 20 66 69 6c 65 2c 20 74 75 72 6e 69 6e 67 20 6f 6e | en.opening.this.file,.turning.on |
| ce00 | 0a 3b 3b 20 20 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 77 69 6c 6c 20 61 6c 6c 6f 77 20 72 65 | .;;...`gptel-mode'.will.allow.re |
| ce20 | 73 75 6d 69 6e 67 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 46 | suming.the.conversation..;;.;;.F |
| ce40 | 69 6e 61 6c 6c 79 2c 20 67 70 74 65 6c 20 6f 66 66 65 72 73 20 61 20 67 65 6e 65 72 61 6c 20 70 | inally,.gptel.offers.a.general.p |
| ce60 | 75 72 70 6f 73 65 20 41 50 49 20 66 6f 72 20 77 72 69 74 69 6e 67 20 4c 4c 4d 20 69 6e 65 72 61 | urpose.API.for.writing.LLM.inera |
| ce80 | 63 74 69 6f 6e 73 0a 3b 3b 20 74 68 61 74 20 73 75 69 74 20 68 6f 77 20 79 6f 75 20 77 6f 72 6b | ctions.;;.that.suit.how.you.work |
| cea0 | 2c 20 73 65 65 20 60 67 70 74 65 6c 2d 72 65 71 75 65 73 74 27 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 | ,.see.`gptel-request'...;;;.Code |
| cec0 | 3a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 | :.(declare-function.markdown-mod |
| cee0 | 65 20 22 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 | e."markdown-mode").(declare-func |
| cf00 | 74 69 6f 6e 20 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 22 67 70 | tion.gptel-curl-get-response."gp |
| cf20 | 74 65 6c 2d 63 75 72 6c 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 | tel-curl").(declare-function.gpt |
| cf40 | 65 6c 2d 6d 65 6e 75 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 29 0a 28 64 65 63 6c | el-menu."gptel-transient").(decl |
| cf60 | 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 | are-function.gptel-system-prompt |
| cf80 | 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 66 75 6e | ."gptel-transient").(declare-fun |
| cfa0 | 63 74 69 6f 6e 20 70 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 | ction.pulse-momentary-highlight- |
| cfc0 | 72 65 67 69 6f 6e 20 22 70 75 6c 73 65 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | region."pulse")..(declare-functi |
| cfe0 | 6f 6e 20 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 22 65 64 69 | on.ediff-make-cloned-buffer."edi |
| d000 | 66 66 2d 75 74 69 6c 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 | ff-util").(declare-function.edif |
| d020 | 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 20 22 65 64 69 66 66 22 29 0a 0a 28 64 65 | f-regions-internal."ediff")..(de |
| d040 | 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 63 72 65 61 74 65 | clare-function.gptel-org--create |
| d060 | 2d 70 72 6f 6d 70 74 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 | -prompt."gptel-org").(declare-fu |
| d080 | 6e 63 74 69 6f 6e 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 | nction.gptel-org-set-topic."gpte |
| d0a0 | 6c 2d 6f 72 67 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d | l-org").(declare-function.gptel- |
| d0c0 | 6f 72 67 2d 2d 73 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 | org--save-state."gptel-org").(de |
| d0e0 | 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 72 65 73 74 6f 72 | clare-function.gptel-org--restor |
| d100 | 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 66 75 | e-state."gptel-org").(declare-fu |
| d120 | 6e 63 74 69 6f 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 | nction.gptel--stream-convert-mar |
| d140 | 6b 64 6f 77 6e 2d 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 | kdown->org."gptel-org").(declare |
| d160 | 2d 66 75 6e 63 74 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 | -function.gptel--convert-markdow |
| d180 | 6e 2d 3e 6f 72 67 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 | n->org."gptel-org").(define-obso |
| d1a0 | 6c 65 74 65 2d 66 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 | lete-function-alias...'gptel-set |
| d1c0 | 2d 74 6f 70 69 63 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 | -topic.'gptel-org-set-topic."0.7 |
| d1e0 | 2e 35 22 29 0a 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 | .5")..(eval-when-compile...(requ |
| d200 | 69 72 65 20 27 73 75 62 72 2d 78 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 | ire.'subr-x)...(require.'cl-lib) |
| d220 | 29 0a 28 72 65 71 75 69 72 65 20 27 63 6f 6d 70 61 74 20 6e 69 6c 20 74 29 0a 28 72 65 71 75 69 | ).(require.'compat.nil.t).(requi |
| d240 | 72 65 20 27 75 72 6c 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 | re.'url).(require.'map).(require |
| d260 | 20 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 29 0a 28 72 65 71 75 69 72 65 | .'text-property-search).(require |
| d280 | 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 70 | .'cl-generic).(require.'gptel-op |
| d2a0 | 65 6e 61 69 29 0a 0a 28 77 69 74 68 2d 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 6f 72 | enai)..(with-eval-after-load.'or |
| d2c0 | 67 0a 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 29 0a 0a 0c 0a 3b 3b 20 | g...(require.'gptel-org))....;;. |
| d2e0 | 55 73 65 72 20 6f 70 74 69 6f 6e 73 0a 0a 28 64 65 66 67 72 6f 75 70 20 67 70 74 65 6c 20 6e 69 | User.options..(defgroup.gptel.ni |
| d300 | 6c 0a 20 20 22 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 4c 4c 4d 73 20 66 72 6f 6d 20 61 6e 79 | l..."Interact.with.LLMs.from.any |
| d320 | 77 68 65 72 65 20 69 6e 20 45 6d 61 63 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 68 79 70 65 72 | where.in.Emacs."...:group.'hyper |
| d340 | 6d 65 64 69 61 29 0a 0a 3b 3b 20 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 68 6f 73 74 | media)..;;.(defcustom.gptel-host |
| d360 | 20 22 61 70 69 2e 6f 70 65 6e 61 69 2e 63 6f 6d 22 0a 3b 3b 20 20 20 22 54 68 65 20 41 50 49 20 | ."api.openai.com".;;..."The.API. |
| d380 | 68 6f 73 74 20 71 75 65 72 69 65 64 20 62 79 20 67 70 74 65 6c 2e 22 0a 3b 3b 20 20 20 3a 67 72 | host.queried.by.gptel.".;;...:gr |
| d3a0 | 6f 75 70 20 27 67 70 74 65 6c 0a 3b 3b 20 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 28 | oup.'gptel.;;...:type.'string).( |
| d3c0 | 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 74 65 6c 2d 68 | make-obsolete-variable..'gptel-h |
| d3e0 | 6f 73 74 0a 20 22 55 73 65 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 20 69 6e | ost.."Use.`gptel-make-openai'.in |
| d400 | 73 74 65 61 64 2e 22 0a 20 22 30 2e 35 2e 30 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 | stead.".."0.5.0")..(defcustom.gp |
| d420 | 74 65 6c 2d 70 72 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 | tel-proxy.""..."Path.to.a.proxy. |
| d440 | 74 6f 20 75 73 65 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 | to.use.for.gptel.interactions..P |
| d460 | 61 73 73 65 64 20 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 | assed.to.curl.via.--proxy.arg,.f |
| d480 | 6f 72 20 65 78 61 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 | or.example.\"proxy.yourorg.com:8 |
| d4a0 | 30 5c 22 0a 4c 65 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 | 0\".Leave.it.empty.if.you.don't. |
| d4c0 | 75 73 65 20 61 20 70 72 6f 78 79 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 | use.a.proxy."...:group.'gptel... |
| d4e0 | 3a 74 79 70 65 20 27 73 74 72 69 6e 67 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c | :type.'string)..(defcustom.gptel |
| d500 | 2d 61 70 69 2d 6b 65 79 20 23 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f 6d 2d 61 75 | -api-key.#'gptel-api-key-from-au |
| d520 | 74 68 2d 73 6f 75 72 63 65 0a 20 20 22 41 6e 20 41 50 49 20 6b 65 79 20 28 73 74 72 69 6e 67 29 | th-source..."An.API.key.(string) |
| d540 | 20 66 6f 72 20 74 68 65 20 64 65 66 61 75 6c 74 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 2e 0a 0a 4f | .for.the.default.LLM.backend...O |
| d560 | 70 65 6e 41 49 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 43 61 6e 20 61 6c 73 6f 20 62 65 20 61 | penAI.by.default...Can.also.be.a |
| d580 | 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 6e 6f 20 61 72 67 75 6d 65 6e 74 73 20 74 68 61 74 20 72 | .function.of.no.arguments.that.r |
| d5a0 | 65 74 75 72 6e 73 20 61 6e 20 41 50 49 0a 6b 65 79 20 28 6d 6f 72 65 20 73 65 63 75 72 65 29 20 | eturns.an.API.key.(more.secure). |
| d5c0 | 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 2e 22 0a 20 20 3a 67 72 6f 75 | for.the.active.backend."...:grou |
| d5e0 | 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 | p.'gptel...:type.'(choice....... |
| d600 | 20 20 20 20 28 73 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 | ....(string.:tag."API.key")..... |
| d620 | 20 20 20 20 20 20 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 | ......(function.:tag."Function.t |
| d640 | 68 61 74 20 72 65 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 | hat.returns.the.API.key")))..(de |
| d660 | 66 63 75 73 74 6f 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 | fcustom.gptel-stream.t..."Stream |
| d680 | 20 72 65 73 70 6f 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 | .responses.from.the.LLM.as.they. |
| d6a0 | 61 72 65 20 72 65 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 | are.received...This.option.is.ig |
| d6c0 | 6e 6f 72 65 64 20 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 | nored.unless.-.the.LLM.backend.s |
| d6e0 | 75 70 70 6f 72 74 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 | upports.streaming,.and.-.Curl.is |
| d700 | 20 69 6e 20 75 73 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 | .in.use.(see.`gptel-use-curl').. |
| d720 | 57 68 65 6e 20 73 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 | When.set.to.nil,.Emacs.waits.for |
| d740 | 20 74 68 65 20 66 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 | .the.full.response.and.inserts.i |
| d760 | 74 0a 61 6c 6c 20 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 | t.all.at.once...This.wait.is.asy |
| d780 | 6e 63 68 72 6f 6e 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 | nchronous...\='tis.a.bit.silly." |
| d7a0 | 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 62 6f 6f 6c 65 61 | ...:group.'gptel...:type.'boolea |
| d7c0 | 6e 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 20 27 67 70 74 65 | n).(make-obsolete-variable.'gpte |
| d7e0 | 6c 2d 70 6c 61 79 62 61 63 6b 20 27 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 22 30 2e 33 2e 30 22 | l-playback.'gptel-stream."0.3.0" |
| d800 | 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 20 28 61 6e | )..(defcustom.gptel-use-curl.(an |
| d820 | 64 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 22 63 75 72 6c 22 29 20 74 29 0a 20 20 | d.(executable-find."curl").t)... |
| d840 | 22 57 68 65 74 68 65 72 20 67 70 74 65 6c 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 20 43 75 72 | "Whether.gptel.should.prefer.Cur |
| d860 | 6c 20 77 68 65 6e 20 61 76 61 69 6c 61 62 6c 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 | l.when.available."...:group.'gpt |
| d880 | 65 6c 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d | el...:type.'boolean)..(defcustom |
| d8a0 | 20 67 70 74 65 6c 2d 63 75 72 6c 2d 66 69 6c 65 2d 73 69 7a 65 2d 74 68 72 65 73 68 6f 6c 64 20 | .gptel-curl-file-size-threshold. |
| d8c0 | 31 33 30 30 30 30 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 | 130000..."Size.threshold.for.usi |
| d8e0 | 6e 67 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 | ng.file.input.with.Curl...Specif |
| d900 | 69 65 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 | ies.the.size.threshold.for.when. |
| d920 | 74 6f 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 | to.use.a.temporary.file.to.pass. |
| d940 | 64 61 74 61 20 74 6f 0a 43 75 72 6c 20 69 6e 20 47 50 54 65 6c 20 71 75 65 72 69 65 73 2e 20 20 | data.to.Curl.in.GPTel.queries... |
| d960 | 49 66 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 | If.the.size.of.the.data.to.be.se |
| d980 | 6e 74 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 | nt.exceeds.this.threshold,.the.d |
| d9a0 | 61 74 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 | ata.is.written.to.a.temporary.fi |
| d9c0 | 6c 65 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 | le.and.passed.to.Curl.using.the. |
| d9e0 | 60 2d 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 | `--data-binary'.option.with.a.fi |
| da00 | 6c 65 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 | le.reference...Otherwise,.the.da |
| da20 | 74 61 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 | ta.is.passed.directly.as.a.comma |
| da40 | 6e 64 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 | nd-line.argument...The.value.is. |
| da60 | 61 6e 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 | an.integer.representing.the.numb |
| da80 | 65 72 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 | er.of.bytes...Adjusting.this.val |
| daa0 | 75 65 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 | ue.may.be.necessary.depending.on |
| dac0 | 20 74 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 | .the.environment.and.the.typical |
| dae0 | 20 73 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 | .size.of.the.data.being.sent.in. |
| db00 | 47 50 54 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 | GPTel.queries..A.larger.value.ma |
| db20 | 79 20 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 | y.improve.performance.by.avoidin |
| db40 | 67 20 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 | g.the.overhead.of.creating.tempo |
| db60 | 72 61 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 | rary.files.for.small.data.payloa |
| db80 | 64 73 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 | ds,.while.a.smaller.value.may.be |
| dba0 | 20 6e 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 | .needed.if.the.command-line.argu |
| dbc0 | 6d 65 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 | ment.size.is.limited.by.the.oper |
| dbe0 | 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 | ating.system."...:group.'gptel.. |
| dc00 | 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 | .:type.'integer)..(defcustom.gpt |
| dc20 | 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 27 | el-response-filter-functions...' |
| dc40 | 28 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6f 72 67 29 0a 20 20 22 41 62 6e 6f 72 6d 61 6c | (gptel--convert-org)..."Abnormal |
| dc60 | 20 68 6f 6f 6b 20 66 6f 72 20 74 72 61 6e 73 66 6f 72 6d 69 6e 67 20 74 68 65 20 72 65 73 70 6f | .hook.for.transforming.the.respo |
| dc80 | 6e 73 65 20 66 72 6f 6d 20 61 6e 20 4c 4c 4d 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 | nse.from.an.LLM...This.is.used.t |
| dca0 | 6f 20 66 6f 72 6d 61 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 6e 20 73 6f 6d 65 20 77 61 | o.format.the.response.in.some.wa |
| dcc0 | 79 2c 20 73 75 63 68 20 61 73 20 66 69 6c 6c 69 6e 67 0a 70 61 72 61 67 72 61 70 68 73 2c 20 61 | y,.such.as.filling.paragraphs,.a |
| dce0 | 64 64 69 6e 67 20 61 6e 6e 6f 74 61 74 69 6f 6e 73 20 6f 72 20 72 65 63 6f 72 64 69 6e 67 20 69 | dding.annotations.or.recording.i |
| dd00 | 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 20 6c 69 6b 65 20 | nformation.in.the.response.like. |
| dd20 | 6c 69 6e 6b 73 2e 0a 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 | links...Each.function.in.this.ho |
| dd40 | 6f 6b 20 72 65 63 65 69 76 65 73 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 74 68 65 20 72 | ok.receives.two.arguments,.the.r |
| dd60 | 65 73 70 6f 6e 73 65 0a 73 74 72 69 6e 67 20 74 6f 20 74 72 61 6e 73 66 6f 72 6d 20 61 6e 64 20 | esponse.string.to.transform.and. |
| dd80 | 74 68 65 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e 20 62 75 66 66 65 72 2e 20 20 49 74 0a | the.LLM.interaction.buffer...It. |
| dda0 | 73 68 6f 75 6c 64 20 72 65 74 75 72 6e 20 74 68 65 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 73 74 | should.return.the.transformed.st |
| ddc0 | 72 69 6e 67 2e 0a 0a 4e 4f 54 45 3a 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 75 73 65 64 20 66 | ring...NOTE:.This.is.only.used.f |
| dde0 | 6f 72 20 6e 6f 6e 2d 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2e 20 20 54 6f 0a | or.non-streaming.responses...To. |
| de00 | 74 72 61 6e 73 66 6f 72 6d 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 75 | transform.streaming.responses,.u |
| de20 | 73 65 20 60 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 72 65 61 6d 2d 68 6f 6f 6b 27 20 61 6e 64 0a | se.`gptel-post-stream-hook'.and. |
| de40 | 60 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 27 2e | `gptel-post-response-functions'. |
| de60 | 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 | "...:group.'gptel...:type.'hook) |
| de80 | 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 72 65 2d 72 65 73 70 6f 6e 73 65 2d | ..(defcustom.gptel-pre-response- |
| dea0 | 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 20 69 6e 73 65 | hook.nil..."Hook.run.before.inse |
| dec0 | 72 74 69 6e 67 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 | rting.the.LLM.response.into.the. |
| dee0 | 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 | current.buffer...This.hook.is.ca |
| df00 | 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 77 68 65 72 65 20 74 68 65 20 4c 4c 4d | lled.in.the.buffer.where.the.LLM |
| df20 | 20 72 65 73 70 6f 6e 73 65 20 77 69 6c 6c 20 62 65 0a 69 6e 73 65 72 74 65 64 2e 0a 0a 4e 6f 74 | .response.will.be.inserted...Not |
| df40 | 65 3a 20 74 68 69 73 20 68 6f 6f 6b 20 6f 6e 6c 79 20 72 75 6e 73 20 69 66 20 74 68 65 20 72 65 | e:.this.hook.only.runs.if.the.re |
| df60 | 71 75 65 73 74 20 73 75 63 63 65 65 64 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c | quest.succeeds."...:group.'gptel |
| df80 | 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 | ...:type.'hook)..(define-obsolet |
| dfa0 | 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 0a 20 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 | e-variable-alias...'gptel-post-r |
| dfc0 | 65 73 70 6f 6e 73 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 | esponse-hook.'gptel-post-respons |
| dfe0 | 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 22 30 2e 36 2e 30 22 0a 20 20 22 50 6f 73 74 2d 72 65 | e-functions..."0.6.0"..."Post-re |
| e000 | 73 70 6f 6e 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 61 72 65 20 6e 6f 77 20 63 61 6c 6c 65 64 20 | sponse.functions.are.now.called. |
| e020 | 77 69 74 68 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 3a 20 74 68 65 0a 73 74 61 72 74 20 61 6e | with.two.arguments:.the.start.an |
| e040 | 64 20 65 6e 64 20 62 75 66 66 65 72 20 70 6f 73 69 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 72 65 | d.end.buffer.positions.of.the.re |
| e060 | 73 70 6f 6e 73 65 2e 22 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 6f 73 74 | sponse.")..(defcustom.gptel-post |
| e080 | 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 41 62 6e 6f 72 | -response-functions.nil..."Abnor |
| e0a0 | 6d 61 6c 20 68 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 69 6e 73 65 72 74 69 6e 67 20 74 68 65 | mal.hook.run.after.inserting.the |
| e0c0 | 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 69 6e 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 | .LLM.response.into.the.current.b |
| e0e0 | 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 74 | uffer...This.hook.is.called.in.t |
| e100 | 68 65 20 62 75 66 66 65 72 20 74 6f 20 77 68 69 63 68 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f | he.buffer.to.which.the.LLM.respo |
| e120 | 6e 73 65 20 69 73 0a 73 65 6e 74 2c 20 61 6e 64 20 61 66 74 65 72 20 74 68 65 20 66 75 6c 6c 20 | nse.is.sent,.and.after.the.full. |
| e140 | 72 65 73 70 6f 6e 73 65 20 68 61 73 20 62 65 65 6e 20 69 6e 73 65 72 74 65 64 2e 20 20 45 61 63 | response.has.been.inserted...Eac |
| e160 | 68 0a 66 75 6e 63 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 77 6f 20 61 72 | h.function.is.called.with.two.ar |
| e180 | 67 75 6d 65 6e 74 73 3a 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 62 65 67 69 6e 6e 69 6e 67 20 | guments:.the.response.beginning. |
| e1a0 | 61 6e 64 0a 65 6e 64 20 70 6f 73 69 74 69 6f 6e 73 2e 0a 0a 4e 6f 74 65 3a 20 74 68 69 73 20 68 | and.end.positions...Note:.this.h |
| e1c0 | 6f 6f 6b 20 72 75 6e 73 20 65 76 65 6e 20 69 66 20 74 68 65 20 72 65 71 75 65 73 74 20 66 61 69 | ook.runs.even.if.the.request.fai |
| e1e0 | 6c 73 2e 20 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 74 68 65 0a 72 65 73 70 6f 6e 73 65 20 62 | ls...In.this.case.the.response.b |
| e200 | 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 70 6f 73 69 74 69 6f 6e 73 20 61 72 65 20 62 | eginning.and.end.positions.are.b |
| e220 | 6f 74 68 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 20 74 | oth.the.cursor.position.at.the.t |
| e240 | 69 6d 65 20 6f 66 20 74 68 65 20 72 65 71 75 65 73 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 | ime.of.the.request."...:group.'g |
| e260 | 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 3b 3b 20 28 64 65 66 63 75 73 74 | ptel...:type.'hook)..;;.(defcust |
| e280 | 6f 6d 20 67 70 74 65 6c 2d 70 72 65 2d 73 74 72 65 61 6d 2d 69 6e 73 65 72 74 2d 68 6f 6f 6b 20 | om.gptel-pre-stream-insert-hook. |
| e2a0 | 6e 69 6c 0a 3b 3b 20 20 20 22 48 6f 6f 6b 20 72 75 6e 20 62 65 66 6f 72 65 20 65 61 63 68 20 69 | nil.;;..."Hook.run.before.each.i |
| e2c0 | 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 73 74 72 65 61 6d 69 6e 67 20 | nsertion.of.the.LLM's.streaming. |
| e2e0 | 72 65 73 70 6f 6e 73 65 2e 0a 0a 3b 3b 20 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 6c 6c 65 | response...;;.This.hook.is.calle |
| e300 | 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 70 | d.in.the.buffer.from.which.the.p |
| e320 | 72 6f 6d 70 74 20 77 61 73 20 73 65 6e 74 0a 3b 3b 20 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 69 6d | rompt.was.sent.;;.to.the.LLM,.im |
| e340 | 6d 65 64 69 61 74 65 6c 79 20 62 65 66 6f 72 65 20 74 65 78 74 20 69 6e 73 65 72 74 69 6f 6e 2e | mediately.before.text.insertion. |
| e360 | 22 0a 3b 3b 20 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 3b 3b 20 20 20 3a 74 79 70 65 20 | ".;;...:group.'gptel.;;...:type. |
| e380 | 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 70 6f 73 74 2d 73 74 | 'hook)..(defcustom.gptel-post-st |
| e3a0 | 72 65 61 6d 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 | ream-hook.nil..."Hook.run.after. |
| e3c0 | 65 61 63 68 20 69 6e 73 65 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 4c 4c 4d 27 73 20 73 74 72 65 | each.insertion.of.the.LLM's.stre |
| e3e0 | 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 68 6f 6f 6b 20 69 73 20 63 61 | aming.response...This.hook.is.ca |
| e400 | 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 72 6f 6d 20 77 68 69 63 68 20 74 68 | lled.in.the.buffer.from.which.th |
| e420 | 65 20 70 72 6f 6d 70 74 20 77 61 73 20 73 65 6e 74 0a 74 6f 20 74 68 65 20 4c 4c 4d 2c 20 61 6e | e.prompt.was.sent.to.the.LLM,.an |
| e440 | 64 20 61 66 74 65 72 20 61 20 74 65 78 74 20 69 6e 73 65 72 74 69 6f 6e 2e 22 0a 20 20 3a 67 72 | d.after.a.text.insertion."...:gr |
| e460 | 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 68 6f 6f 6b 29 0a 0a 28 64 65 66 63 | oup.'gptel...:type.'hook)..(defc |
| e480 | 75 73 74 6f 6d 20 67 70 74 65 6c 2d 64 65 66 61 75 6c 74 2d 6d 6f 64 65 20 28 69 66 20 28 66 62 | ustom.gptel-default-mode.(if.(fb |
| e4a0 | 6f 75 6e 64 70 20 27 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 | oundp.'markdown-mode)........... |
| e4c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 61 72 6b 64 6f 77 6e 2d 6d | .....................'markdown-m |
| e4e0 | 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............................. |
| e500 | 20 27 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 6d 61 6a 6f | .'text-mode)..."The.default.majo |
| e520 | 72 20 6d 6f 64 65 20 66 6f 72 20 64 65 64 69 63 61 74 65 64 20 63 68 61 74 20 62 75 66 66 65 72 | r.mode.for.dedicated.chat.buffer |
| e540 | 73 2e 0a 0a 49 66 20 60 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 27 20 69 73 20 61 76 61 69 6c 61 | s...If.`markdown-mode'.is.availa |
| e560 | 62 6c 65 2c 20 69 74 20 69 73 20 75 73 65 64 2e 20 20 4f 74 68 65 72 77 69 73 65 20 67 70 74 65 | ble,.it.is.used...Otherwise.gpte |
| e580 | 6c 0a 64 65 66 61 75 6c 74 73 20 74 6f 20 60 74 65 78 74 2d 6d 6f 64 65 27 2e 22 0a 20 20 3a 67 | l.defaults.to.`text-mode'."...:g |
| e5a0 | 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 73 79 6d 62 6f 6c 29 0a 0a 3b 3b | roup.'gptel...:type.'symbol)..;; |
| e5c0 | 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 60 70 72 6f 67 2d 6d 6f 64 65 27 20 75 73 69 6e 67 20 | .TODO:.Handle.`prog-mode'.using. |
| e5e0 | 74 68 65 20 60 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 27 20 76 61 72 69 61 62 6c 65 0a 28 64 65 | the.`comment-start'.variable.(de |
| e600 | 66 63 75 73 74 6f 6d 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 | fcustom.gptel-prompt-prefix-alis |
| e620 | 74 0a 20 20 27 28 28 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 2e 20 22 23 23 23 20 22 29 0a 20 | t...'((markdown-mode..."###.").. |
| e640 | 20 20 20 28 6f 72 67 2d 6d 6f 64 65 20 2e 20 22 2a 2a 2a 20 22 29 0a 20 20 20 20 28 74 65 78 74 | ...(org-mode..."***.").....(text |
| e660 | 2d 6d 6f 64 65 20 2e 20 22 23 23 23 20 22 29 29 0a 20 20 22 53 74 72 69 6e 67 20 75 73 65 64 20 | -mode..."###."))..."String.used. |
| e680 | 61 73 20 61 20 70 72 65 66 69 78 20 74 6f 20 74 68 65 20 71 75 65 72 79 20 62 65 69 6e 67 20 73 | as.a.prefix.to.the.query.being.s |
| e6a0 | 65 6e 74 20 74 6f 20 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 | ent.to.the.LLM...This.is.meant.f |
| e6c0 | 6f 72 20 74 68 65 20 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 | or.the.user.to.distinguish.betwe |
| e6e0 | 65 6e 20 71 75 65 72 69 65 73 20 61 6e 64 0a 72 65 73 70 6f 6e 73 65 73 2c 20 61 6e 64 20 69 73 | en.queries.and.responses,.and.is |
| e700 | 20 72 65 6d 6f 76 65 64 20 66 72 6f 6d 20 74 68 65 20 71 75 65 72 79 20 62 65 66 6f 72 65 20 69 | .removed.from.the.query.before.i |
| e720 | 74 20 69 73 20 73 65 6e 74 2e 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 70 | t.is.sent...This.is.an.alist.map |
| e740 | 70 69 6e 67 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 74 68 65 20 70 72 65 66 69 78 20 73 | ping.major.modes.to.the.prefix.s |
| e760 | 74 72 69 6e 67 73 2e 20 20 54 68 69 73 0a 69 73 20 6f 6e 6c 79 20 69 6e 73 65 72 74 65 64 20 69 | trings...This.is.only.inserted.i |
| e780 | 6e 20 64 65 64 69 63 61 74 65 64 20 67 70 74 65 6c 20 62 75 66 66 65 72 73 2e 22 0a 20 20 3a 67 | n.dedicated.gptel.buffers."...:g |
| e7a0 | 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 | roup.'gptel...:type.'(alist.:key |
| e7c0 | 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e 67 29 | -type.symbol.:value-type.string) |
| e7e0 | 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 | )..(defcustom.gptel-response-pre |
| e800 | 66 69 78 2d 61 6c 69 73 74 0a 20 20 27 28 28 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 2e 20 22 | fix-alist...'((markdown-mode..." |
| e820 | 22 29 0a 20 20 20 20 28 6f 72 67 2d 6d 6f 64 65 20 2e 20 22 22 29 0a 20 20 20 20 28 74 65 78 74 | ").....(org-mode..."").....(text |
| e840 | 2d 6d 6f 64 65 20 2e 20 22 22 29 29 0a 20 20 22 53 74 72 69 6e 67 20 69 6e 73 65 72 74 65 64 20 | -mode...""))..."String.inserted. |
| e860 | 62 65 66 6f 72 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d | before.the.response.from.the.LLM |
| e880 | 2e 0a 0a 54 68 69 73 20 69 73 20 6d 65 61 6e 74 20 66 6f 72 20 74 68 65 20 75 73 65 72 20 74 6f | ...This.is.meant.for.the.user.to |
| e8a0 | 20 64 69 73 74 69 6e 67 75 69 73 68 20 62 65 74 77 65 65 6e 20 71 75 65 72 69 65 73 20 61 6e 64 | .distinguish.between.queries.and |
| e8c0 | 0a 72 65 73 70 6f 6e 73 65 73 2e 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 | .responses...This.is.an.alist.ma |
| e8e0 | 70 70 69 6e 67 20 6d 61 6a 6f 72 20 6d 6f 64 65 73 20 74 6f 20 74 68 65 20 72 65 70 6c 79 20 70 | pping.major.modes.to.the.reply.p |
| e900 | 72 65 66 69 78 20 73 74 72 69 6e 67 73 2e 20 20 54 68 69 73 0a 69 73 20 6f 6e 6c 79 20 69 6e 73 | refix.strings...This.is.only.ins |
| e920 | 65 72 74 65 64 20 69 6e 20 64 65 64 69 63 61 74 65 64 20 67 70 74 65 6c 20 62 75 66 66 65 72 73 | erted.in.dedicated.gptel.buffers |
| e940 | 20 62 65 66 6f 72 65 20 74 68 65 20 41 49 27 73 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 3a 67 | .before.the.AI's.response."...:g |
| e960 | 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 | roup.'gptel...:type.'(alist.:key |
| e980 | 2d 74 79 70 65 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e 67 29 | -type.symbol.:value-type.string) |
| e9a0 | 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c | )..(defcustom.gptel-use-header-l |
| e9c0 | 69 6e 65 20 74 0a 20 20 22 57 68 65 74 68 65 72 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 73 68 | ine.t..."Whether.`gptel-mode'.sh |
| e9e0 | 6f 75 6c 64 20 75 73 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 20 66 6f 72 20 73 74 61 74 75 73 20 | ould.use.header-line.for.status. |
| ea00 | 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 57 68 65 6e 20 73 65 74 20 74 6f 20 6e 69 6c 2c 20 75 | information...When.set.to.nil,.u |
| ea20 | 73 65 20 74 68 65 20 6d 6f 64 65 20 6c 69 6e 65 20 66 6f 72 20 28 6d 69 6e 69 6d 61 6c 29 20 73 | se.the.mode.line.for.(minimal).s |
| ea40 | 74 61 74 75 73 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 20 65 63 68 6f 20 61 | tatus.information.and.the.echo.a |
| ea60 | 72 65 61 20 66 6f 72 20 6d 65 73 73 61 67 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c | rea.for.messages."...:type.'bool |
| ea80 | 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d | ean...:group.'gptel)..(defcustom |
| eaa0 | 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 20 27 28 70 | .gptel-display-buffer-action.'(p |
| eac0 | 6f 70 2d 74 6f 2d 62 75 66 66 65 72 29 0a 20 20 22 54 68 65 20 61 63 74 69 6f 6e 20 75 73 65 64 | op-to-buffer)..."The.action.used |
| eae0 | 20 74 6f 20 64 69 73 70 6c 61 79 20 67 70 74 65 6c 20 63 68 61 74 20 62 75 66 66 65 72 73 2e 0a | .to.display.gptel.chat.buffers.. |
| eb00 | 0a 54 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 69 | .The.gptel.buffer.is.displayed.i |
| eb20 | 6e 20 61 20 77 69 6e 64 6f 77 20 75 73 69 6e 67 0a 0a 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 | n.a.window.using....(display-buf |
| eb40 | 66 65 72 20 42 55 46 46 45 52 20 67 70 74 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d | fer.BUFFER.gptel-display-buffer- |
| eb60 | 61 63 74 69 6f 6e 29 0a 0a 54 68 65 20 76 61 6c 75 65 20 6f 66 20 74 68 69 73 20 6f 70 74 69 6f | action)..The.value.of.this.optio |
| eb80 | 6e 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 46 55 4e 43 54 49 4f 4e 20 2e 20 41 4c 49 53 54 | n.has.the.form.(FUNCTION...ALIST |
| eba0 | 29 2c 0a 77 68 65 72 65 20 46 55 4e 43 54 49 4f 4e 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 | ),.where.FUNCTION.is.a.function. |
| ebc0 | 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 2e 20 20 45 61 63 68 20 73 75 | or.a.list.of.functions...Each.su |
| ebe0 | 63 68 0a 66 75 6e 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 61 63 63 65 70 74 20 74 77 6f 20 61 72 | ch.function.should.accept.two.ar |
| ec00 | 67 75 6d 65 6e 74 73 3a 20 61 20 62 75 66 66 65 72 20 74 6f 20 64 69 73 70 6c 61 79 20 61 6e 64 | guments:.a.buffer.to.display.and |
| ec20 | 20 61 6e 0a 61 6c 69 73 74 20 6f 66 20 74 68 65 20 73 61 6d 65 20 66 6f 72 6d 20 61 73 20 41 4c | .an.alist.of.the.same.form.as.AL |
| ec40 | 49 53 54 2e 20 20 53 65 65 20 69 6e 66 6f 20 6e 6f 64 65 20 60 28 65 6c 69 73 70 29 43 68 6f 6f | IST...See.info.node.`(elisp)Choo |
| ec60 | 73 69 6e 67 0a 57 69 6e 64 6f 77 27 20 66 6f 72 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 3a 67 72 | sing.Window'.for.details."...:gr |
| ec80 | 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 | oup.'gptel...:type.'(choice..... |
| eca0 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 64 69 73 70 6c 61 79 2d 62 | ......(const.:tag."Use.display-b |
| ecc0 | 75 66 66 65 72 20 64 65 66 61 75 6c 74 73 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 | uffer.defaults".nil)...........( |
| ece0 | 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 69 73 70 6c 61 79 20 69 6e 20 73 65 6c 65 63 74 65 64 20 | const.:tag."Display.in.selected. |
| ed00 | 77 69 6e 64 6f 77 22 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 2d 73 61 6d 65 2d 77 69 6e 64 | window".(pop-to-buffer-same-wind |
| ed20 | 6f 77 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 20 3a 74 61 67 20 22 53 70 65 63 69 | ow))...........(cons.:tag."Speci |
| ed40 | 66 79 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 61 63 74 69 6f 6e 22 0a 20 20 20 20 20 20 | fy.display-buffer.action"....... |
| ed60 | 20 20 20 20 20 28 63 68 6f 69 63 65 20 66 75 6e 63 74 69 6f 6e 20 28 72 65 70 65 61 74 20 3a 74 | .....(choice.function.(repeat.:t |
| ed80 | 61 67 20 22 46 75 6e 63 74 69 6f 6e 73 22 20 66 75 6e 63 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 | ag."Functions".function))....... |
| eda0 | 20 20 20 20 20 61 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d | .....alist)))..(defcustom.gptel- |
| edc0 | 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 0a 20 20 28 6c 65 74 | crowdsourced-prompts-file...(let |
| ede0 | 20 28 28 63 61 63 68 65 2d 64 69 72 20 28 6f 72 20 28 67 65 74 65 6e 76 20 22 58 44 47 5f 43 41 | .((cache-dir.(or.(getenv."XDG_CA |
| ee00 | 43 48 45 5f 48 4f 4d 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 | CHE_HOME")...................... |
| ee20 | 20 20 28 67 65 74 65 6e 76 20 22 58 44 47 5f 44 41 54 41 5f 48 4f 4d 45 22 29 0a 20 20 20 20 20 | ..(getenv."XDG_DATA_HOME")...... |
| ee40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 73 65 72 2d 65 6d 61 63 73 2d 64 69 72 | ..................user-emacs-dir |
| ee60 | 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 | ectory))).....(expand-file-name. |
| ee80 | 22 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 2e 63 73 76 22 | "gptel-crowdsourced-prompts.csv" |
| eea0 | 20 63 61 63 68 65 2d 64 69 72 29 29 0a 20 20 22 46 69 6c 65 20 75 73 65 64 20 74 6f 20 73 74 6f | .cache-dir))..."File.used.to.sto |
| eec0 | 72 65 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 2e 0a | re.crowdsourced.system.prompts.. |
| eee0 | 0a 54 68 65 73 65 20 61 72 65 20 70 72 6f 6d 70 74 73 20 63 61 63 68 65 64 20 66 72 6f 6d 20 61 | .These.are.prompts.cached.from.a |
| ef00 | 6e 20 6f 6e 6c 69 6e 65 20 73 6f 75 72 63 65 20 28 73 65 65 0a 60 67 70 74 65 6c 2d 2d 63 72 6f | n.online.source.(see.`gptel--cro |
| ef20 | 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 75 72 6c 27 29 2c 20 61 6e 64 20 63 61 6e | wdsourced-prompts-url'),.and.can |
| ef40 | 20 62 65 20 73 65 74 20 66 72 6f 6d 20 74 68 65 0a 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 | .be.set.from.the.transient.menu. |
| ef60 | 69 6e 74 65 72 66 61 63 65 20 70 72 6f 76 69 64 65 64 20 62 79 20 60 67 70 74 65 6c 2d 6d 65 6e | interface.provided.by.`gptel-men |
| ef80 | 75 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 20 27 66 69 | u'."...:group.'gptel...:type.'fi |
| efa0 | 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 61 | le)..;;.Model.and.interaction.pa |
| efc0 | 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 74 | rameters.(defcustom.gptel-direct |
| efe0 | 69 76 65 73 0a 20 20 27 28 28 64 65 66 61 75 6c 74 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c | ives...'((default..."You.are.a.l |
| f000 | 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 6c 20 6c 69 76 69 6e 67 20 69 6e 20 45 6d | arge.language.model.living.in.Em |
| f020 | 61 63 73 20 61 6e 64 20 61 20 68 65 6c 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 52 65 73 | acs.and.a.helpful.assistant..Res |
| f040 | 70 6f 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 0a 20 20 20 20 28 70 72 6f 67 72 61 6d 6d 69 | pond.concisely.").....(programmi |
| f060 | 6e 67 20 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 6d | ng..."You.are.a.large.language.m |
| f080 | 6f 64 65 6c 20 61 6e 64 20 61 20 63 61 72 65 66 75 6c 20 70 72 6f 67 72 61 6d 6d 65 72 2e 20 50 | odel.and.a.careful.programmer..P |
| f0a0 | 72 6f 76 69 64 65 20 63 6f 64 65 20 61 6e 64 20 6f 6e 6c 79 20 63 6f 64 65 20 61 73 20 6f 75 74 | rovide.code.and.only.code.as.out |
| f0c0 | 70 75 74 20 77 69 74 68 6f 75 74 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 74 65 78 74 2c | put.without.any.additional.text, |
| f0e0 | 20 70 72 6f 6d 70 74 20 6f 72 20 6e 6f 74 65 2e 22 29 0a 20 20 20 20 28 77 72 69 74 69 6e 67 20 | .prompt.or.note.").....(writing. |
| f100 | 2e 20 22 59 6f 75 20 61 72 65 20 61 20 6c 61 72 67 65 20 6c 61 6e 67 75 61 67 65 20 6d 6f 64 65 | .."You.are.a.large.language.mode |
| f120 | 6c 20 61 6e 64 20 61 20 77 72 69 74 69 6e 67 20 61 73 73 69 73 74 61 6e 74 2e 20 52 65 73 70 6f | l.and.a.writing.assistant..Respo |
| f140 | 6e 64 20 63 6f 6e 63 69 73 65 6c 79 2e 22 29 0a 20 20 20 20 28 63 68 61 74 20 2e 20 22 59 6f 75 | nd.concisely.").....(chat..."You |
| f160 | 20 61 72 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 61 6e 64 20 | .are.a.large.language.model.and. |
| f180 | 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 61 72 74 6e 65 72 2e 20 52 65 73 70 6f 6e 64 20 | a.conversation.partner..Respond. |
| f1a0 | 63 6f 6e 63 69 73 65 6c 79 2e 22 29 29 0a 20 20 22 53 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 | concisely."))..."System.prompts. |
| f1c0 | 28 64 69 72 65 63 74 69 76 65 73 29 20 66 6f 72 20 74 68 65 20 4c 4c 4d 2e 0a 0a 54 68 65 73 65 | (directives).for.the.LLM...These |
| f1e0 | 20 61 72 65 20 73 79 73 74 65 6d 20 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 73 65 6e 74 20 61 74 | .are.system.instructions.sent.at |
| f200 | 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 61 63 68 0a 72 65 71 75 65 73 74 20 74 | .the.beginning.of.each.request.t |
| f220 | 6f 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 | o.the.LLM...Each.entry.in.this.a |
| f240 | 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 |
| f260 | 72 65 63 74 69 76 65 20 74 6f 0a 74 68 65 20 73 74 72 69 6e 67 20 74 68 61 74 20 69 73 20 73 65 | rective.to.the.string.that.is.se |
| f280 | 6e 74 2e 20 20 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 | nt...To.set.the.directive.for.a. |
| f2a0 | 63 68 61 74 20 73 65 73 73 69 6f 6e 0a 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 20 | chat.session.interactively.call. |
| f2c0 | 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d | `gptel-send'.with.a.prefix.argum |
| f2e0 | 65 6e 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 73 61 66 65 20 23 27 | ent."...:group.'gptel...:safe.#' |
| f300 | 61 6c 77 61 79 73 0a 20 20 3a 74 79 70 65 20 27 28 61 6c 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 | always...:type.'(alist.:key-type |
| f320 | 20 73 79 6d 62 6f 6c 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 73 74 72 69 6e 67 29 29 0a 0a 28 64 | .symbol.:value-type.string))..(d |
| f340 | 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 20 28 61 6c 69 | efvar.gptel--system-message.(ali |
| f360 | 73 74 2d 67 65 74 20 27 64 65 66 61 75 6c 74 20 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 | st-get.'default.gptel-directives |
| f380 | 29 0a 20 20 22 54 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 75 73 65 64 20 62 79 20 | )..."The.system.message.used.by. |
| f3a0 | 67 70 74 65 6c 2e 22 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 | gptel.").(put.'gptel--system-mes |
| f3c0 | 73 61 67 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 | sage.'safe-local-variable.#'alwa |
| f3e0 | 79 73 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 | ys)..(defcustom.gptel-max-tokens |
| f400 | 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 73 65 2e | .nil..."Max.tokens.per.response. |
| f420 | 0a 0a 54 68 69 73 20 69 73 20 72 6f 75 67 68 6c 79 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 | ..This.is.roughly.the.number.of. |
| f440 | 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 30 30 20 | words.in.the.response...100-300. |
| f460 | 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 72 74 20 | is.a.reasonable.range.for.short. |
| f480 | 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 65 72 0a | answers,.400.or.more.for.longer. |
| f4a0 | 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 20 74 6f | responses...To.set.the.target.to |
| f4c0 | 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 69 6e 74 | ken.count.for.a.chat.session.int |
| f4e0 | 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 77 69 74 | eractively.call.`gptel-send'.wit |
| f500 | 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 20 23 27 | h.a.prefix.argument."...:safe.#' |
| f520 | 61 6c 77 61 79 73 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 | always...:group.'gptel...:type.' |
| f540 | 28 63 68 6f 69 63 65 20 28 69 6e 74 65 67 65 72 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 54 | (choice.(integer.:tag."Specify.T |
| f560 | 6f 6b 65 6e 20 63 6f 75 6e 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | oken.count")..................(c |
| f580 | 6f 6e 73 74 20 3a 74 61 67 20 22 44 65 66 61 75 6c 74 22 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 | onst.:tag."Default".nil)))..(def |
| f5a0 | 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 | custom.gptel-model."gpt-3.5-turb |
| f5c0 | 6f 22 0a 20 20 22 47 50 54 20 4d 6f 64 65 6c 20 66 6f 72 20 63 68 61 74 2e 0a 0a 54 68 65 20 6e | o"..."GPT.Model.for.chat...The.n |
| f5e0 | 61 6d 65 20 6f 66 20 74 68 65 20 6d 6f 64 65 6c 20 61 73 20 61 20 73 74 72 69 6e 67 2e 20 20 54 | ame.of.the.model.as.a.string...T |
| f600 | 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 62 79 20 74 | his.is.the.name.as.expected.by.t |
| f620 | 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 68 65 20 63 75 72 72 | he.LLM.provider's.API...The.curr |
| f640 | 65 6e 74 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 43 68 61 74 47 50 54 20 61 72 65 0a 2d 20 5c 22 | ent.options.for.ChatGPT.are.-.\" |
| f660 | 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 5c 22 0a 2d 20 5c 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 | gpt-3.5-turbo\".-.\"gpt-3.5-turb |
| f680 | 6f 2d 31 36 6b 5c 22 0a 2d 20 5c 22 67 70 74 2d 34 5c 22 0a 2d 20 5c 22 67 70 74 2d 34 2d 74 75 | o-16k\".-.\"gpt-4\".-.\"gpt-4-tu |
| f6a0 | 72 62 6f 5c 22 0a 2d 20 5c 22 67 70 74 2d 34 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 5c 22 0a | rbo\".-.\"gpt-4-turbo-preview\". |
| f6c0 | 2d 20 5c 22 67 70 74 2d 34 2d 33 32 6b 5c 22 0a 2d 20 5c 22 67 70 74 2d 34 2d 31 31 30 36 2d 70 | -.\"gpt-4-32k\".-.\"gpt-4-1106-p |
| f6e0 | 72 65 76 69 65 77 5c 22 0a 0a 54 6f 20 73 65 74 20 74 68 65 20 6d 6f 64 65 6c 20 66 6f 72 20 61 | review\"..To.set.the.model.for.a |
| f700 | 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c | .chat.session.interactively.call |
| f720 | 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 | .`gptel-send'.with.a.prefix.argu |
| f740 | 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 67 72 6f 75 70 | ment."...:safe.#'always...:group |
| f760 | 20 27 67 70 74 65 6c 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 | .'gptel...:type.'(choice........ |
| f780 | 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 6d 6f 64 65 6c 20 6e | ...(string.:tag."Specify.model.n |
| f7a0 | 61 6d 65 22 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 47 50 54 | ame")...........(const.:tag."GPT |
| f7c0 | 20 33 2e 35 20 74 75 72 62 6f 22 20 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 22 29 0a 20 20 20 | .3.5.turbo"."gpt-3.5-turbo").... |
| f7e0 | 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 47 50 54 20 33 2e 35 20 74 75 72 62 | .......(const.:tag."GPT.3.5.turb |
| f800 | 6f 20 31 36 6b 22 20 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 2d 31 36 6b 22 29 0a 20 20 20 20 | o.16k"."gpt-3.5-turbo-16k")..... |
| f820 | 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 47 50 54 20 34 22 20 22 67 70 74 2d 34 | ......(const.:tag."GPT.4"."gpt-4 |
| f840 | 22 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 47 50 54 20 34 20 | ")...........(const.:tag."GPT.4. |
| f860 | 74 75 72 62 6f 22 20 22 67 70 74 2d 34 2d 74 75 72 62 6f 22 29 0a 20 20 20 20 20 20 20 20 20 20 | turbo"."gpt-4-turbo")........... |
| f880 | 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 47 50 54 20 34 20 74 75 72 62 6f 20 28 70 72 65 76 69 65 | (const.:tag."GPT.4.turbo.(previe |
| f8a0 | 77 29 22 20 22 67 70 74 2d 34 2d 74 75 72 62 6f 2d 70 72 65 76 69 65 77 22 29 0a 20 20 20 20 20 | w)"."gpt-4-turbo-preview")...... |
| f8c0 | 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 47 50 54 20 34 20 33 32 6b 22 20 22 67 70 | .....(const.:tag."GPT.4.32k"."gp |
| f8e0 | 74 2d 34 2d 33 32 6b 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 | t-4-32k")...........(const.:tag. |
| f900 | 22 47 50 54 20 34 20 31 31 30 36 20 28 70 72 65 76 69 65 77 29 22 20 22 67 70 74 2d 34 2d 31 31 | "GPT.4.1106.(preview)"."gpt-4-11 |
| f920 | 30 36 2d 70 72 65 76 69 65 77 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c | 06-preview")))..(defcustom.gptel |
| f940 | 2d 74 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 | -temperature.1.0..."\"Temperatur |
| f960 | 65 5c 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 | e\".of.the.LLM.response...This.i |
| f980 | 73 20 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 | s.a.number.between.0.0.and.2.0.t |
| f9a0 | 68 61 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 | hat.controls.the.randomness.of.t |
| f9c0 | 68 65 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 | he.response,.with.2.0.being.the. |
| f9e0 | 6d 6f 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 | most.random...To.set.the.tempera |
| fa00 | 74 75 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 | ture.for.a.chat.session.interact |
| fa20 | 69 76 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 | ively.call.`gptel-send'.with.a.p |
| fa40 | 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 | refix.argument."...:safe.#'alway |
| fa60 | 73 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 6e 75 6d 62 65 | s...:group.'gptel...:type.'numbe |
| fa80 | 72 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 | r)..(defvar.gptel--known-backend |
| faa0 | 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f 66 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 20 6b | s.nil..."Alist.of.LLM.backends.k |
| fac0 | 6e 6f 77 6e 20 74 6f 20 67 70 74 65 6c 2e 0a 0a 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 | nown.to.gptel...This.is.an.alist |
| fae0 | 20 6d 61 70 70 69 6e 67 20 75 73 65 72 2d 70 72 6f 76 69 64 65 64 20 6e 61 6d 65 73 20 74 6f 20 | .mapping.user-provided.names.to. |
| fb00 | 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 73 2c 0a 73 65 65 20 60 67 70 74 65 6c 2d 62 61 63 6b | backend.structs,.see.`gptel-back |
| fb20 | 65 6e 64 27 2e 0a 0a 59 6f 75 20 63 61 6e 20 68 61 76 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e | end'...You.can.have.more.than.on |
| fb40 | 65 20 62 61 63 6b 65 6e 64 20 70 6f 69 6e 74 69 6e 67 20 74 6f 20 74 68 65 20 73 61 6d 65 20 72 | e.backend.pointing.to.the.same.r |
| fb60 | 65 73 6f 75 72 63 65 0a 77 69 74 68 20 64 69 66 66 65 72 69 6e 67 20 73 65 74 74 69 6e 67 73 2e | esource.with.differing.settings. |
| fb80 | 22 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 67 70 74 | ")..(defvar.gptel--openai...(gpt |
| fba0 | 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 20 20 22 43 68 61 74 47 50 54 22 0a 20 20 20 3a | el-make-openai...."ChatGPT"....: |
| fbc0 | 6b 65 79 20 27 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 0a | key.'gptel-api-key....:stream.t. |
| fbe0 | 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 22 20 22 67 70 | ...:models.'("gpt-3.5-turbo"."gp |
| fc00 | 74 2d 33 2e 35 2d 74 75 72 62 6f 2d 31 36 6b 22 20 22 67 70 74 2d 34 22 20 22 67 70 74 2d 34 2d | t-3.5-turbo-16k"."gpt-4"."gpt-4- |
| fc20 | 74 75 72 62 6f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 70 74 2d 34 2d 74 75 72 62 6f | turbo".............."gpt-4-turbo |
| fc40 | 2d 70 72 65 76 69 65 77 22 20 22 67 70 74 2d 34 2d 33 32 6b 22 20 22 67 70 74 2d 34 2d 31 31 30 | -preview"."gpt-4-32k"."gpt-4-110 |
| fc60 | 36 2d 70 72 65 76 69 65 77 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 70 74 2d 34 2d 30 | 6-preview".............."gpt-4-0 |
| fc80 | 31 32 35 2d 70 72 65 76 69 65 77 22 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 | 125-preview")))..(defcustom.gpte |
| fca0 | 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 22 4c 4c 4d 20 62 | l-backend.gptel--openai..."LLM.b |
| fcc0 | 61 63 6b 65 6e 64 20 74 6f 20 75 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 64 65 66 61 | ackend.to.use...This.is.the.defa |
| fce0 | 75 6c 74 20 5c 22 62 61 63 6b 65 6e 64 5c 22 2c 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 74 79 | ult.\"backend\",.an.object.of.ty |
| fd00 | 70 65 0a 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 63 6f 6e 74 61 69 6e 69 6e 67 20 63 6f | pe.`gptel-backend'.containing.co |
| fd20 | 6e 6e 65 63 74 69 6f 6e 2c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 6d 6f 64 | nnection,.authentication.and.mod |
| fd40 | 65 6c 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 41 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 43 | el.information...A.backend.for.C |
| fd60 | 68 61 74 47 50 54 20 69 73 20 70 72 65 2d 64 65 66 69 6e 65 64 20 62 79 20 67 70 74 65 6c 2e 20 | hatGPT.is.pre-defined.by.gptel.. |
| fd80 | 20 42 61 63 6b 65 6e 64 73 20 66 6f 72 0a 6f 74 68 65 72 20 4c 4c 4d 20 70 72 6f 76 69 64 65 72 | .Backends.for.other.LLM.provider |
| fda0 | 73 20 28 6c 6f 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 6d 61 79 20 62 65 20 63 6f 6e 73 74 | s.(local.or.remote).may.be.const |
| fdc0 | 72 75 63 74 65 64 20 75 73 69 6e 67 0a 6f 6e 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 62 6c | ructed.using.one.of.the.availabl |
| fde0 | 65 20 62 61 63 6b 65 6e 64 20 63 72 65 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a 2d 20 | e.backend.creation.functions:.-. |
| fe00 | 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b | `gptel-make-openai'.-.`gptel-mak |
| fe20 | 65 2d 61 7a 75 72 65 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 0a 2d | e-azure'.-.`gptel-make-ollama'.- |
| fe40 | 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 0a 2d 20 60 67 70 74 65 6c 2d 6d | .`gptel-make-gpt4all'.-.`gptel-m |
| fe60 | 61 6b 65 2d 67 65 6d 69 6e 69 27 0a 53 65 65 20 74 68 65 69 72 20 64 6f 63 75 6d 65 6e 74 61 74 | ake-gemini'.See.their.documentat |
| fe80 | 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 74 68 65 | ion.for.more.information.and.the |
| fea0 | 20 70 61 63 6b 61 67 65 0a 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 22 0a 20 | .package.README.for.examples.".. |
| fec0 | 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a | .:safe.#'always...:group.'gptel. |
| fee0 | 20 20 3a 74 79 70 65 20 60 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 | ..:type.`(choice...........(cons |
| ff00 | 74 20 3a 74 61 67 20 22 43 68 61 74 47 50 54 22 20 2c 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 29 | t.:tag."ChatGPT".,gptel--openai) |
| ff20 | 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 73 74 72 69 63 74 65 64 2d 73 65 78 70 20 3a 6d 61 74 | ...........(restricted-sexp.:mat |
| ff40 | 63 68 2d 61 6c 74 65 72 6e 61 74 69 76 65 73 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 70 | ch-alternatives.(gptel-backend-p |
| ff60 | 20 27 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 74 61 67 20 22 4f 74 68 65 72 20 62 61 | .'nil)............:tag."Other.ba |
| ff80 | 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 78 70 65 72 74 2d | ckend")))..(defvar.gptel-expert- |
| ffa0 | 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 70 65 72 69 6d 65 | commands.nil..."Whether.experime |
| ffc0 | 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 62 65 20 65 6e 61 | ntal.gptel.options.should.be.ena |
| ffe0 | 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 63 65 64 20 6f 70 | bled...This.opens.up.advanced.op |
| 10000 | 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 28 64 65 66 76 61 | tions.in.`gptel-menu'.")..(defva |
| 10020 | 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 0a 28 70 75 74 20 | r-local.gptel--bounds.nil).(put. |
| 10040 | 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 2d 76 61 72 69 61 | 'gptel--bounds.'safe-local-varia |
| 10060 | 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 65 6c 2d 2d 6e 75 | ble.#'always)..(defvar.gptel--nu |
| 10080 | 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 75 74 20 27 67 70 | m-messages-to-send.nil).(put.'gp |
| 100a0 | 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 27 73 61 66 65 2d | tel--num-messages-to-send.'safe- |
| 100c0 | 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 28 64 65 66 63 75 | local-variable.#'always)..(defcu |
| 100e0 | 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 20 22 4c 6f 67 67 | stom.gptel-log-level.nil..."Logg |
| 10100 | 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 20 69 73 20 6f 6e | ing.level.for.gptel...This.is.on |
| 10120 | 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 66 6f 20 61 6e 64 | e.of.nil.or.the.symbols.info.and |
| 10140 | 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 73 70 6f 6e 73 65 | .debug:..nil:.Don't.log.response |
| 10160 | 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 73 70 6f 6e 73 65 | s.info:.Log.request.and.response |
| 10180 | 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 2f 72 65 73 70 6f | .bodies.debug:.Log.request/respo |
| 101a0 | 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 6c 20 6f 74 68 65 | nse.bodies,.headers.and.all.othe |
| 101c0 | 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 67 73 2e 0a 0a 57 | r........connection.settings...W |
| 101e0 | 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 73 20 6c 6f 67 67 | hen.non-nil,.information.is.logg |
| 10200 | 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 61 6d 65 27 2c 0a | ed.to.`gptel--log-buffer-name',. |
| 10220 | 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 3a 74 | which.see."...:group.'gptel...:t |
| 10240 | 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 | ype.'(choice...........(const.:t |
| 10260 | 61 67 20 22 4e 6f 20 6c 6f 67 67 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ag."No.logging".nil)...........( |
| 10280 | 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69 6d 69 74 65 64 22 20 69 6e 66 6f 29 0a 20 20 20 20 20 | const.:tag."Limited".info)...... |
| 102a0 | 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 46 75 6c 6c 22 20 64 65 62 75 67 29 29 29 | .....(const.:tag."Full".debug))) |
| 102c0 | 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 74 65 6c | .(make-obsolete-variable..'gptel |
| 102e0 | 2d 2d 64 65 62 75 67 20 27 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 22 30 2e 36 2e 35 22 | --debug.'gptel-log-level."0.6.5" |
| 10300 | 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 61 64 | )..(defvar-local.gptel--old-head |
| 10320 | 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 0a 0c 0a 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 | er-line.nil)....;;.Utility.funct |
| 10340 | 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f 6d 2d | ions..(defun.gptel-api-key-from- |
| 10360 | 61 75 74 68 2d 73 6f 75 72 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 6f 73 74 20 75 73 65 72 | auth-source.(&optional.host.user |
| 10380 | 29 0a 20 20 22 4c 6f 6f 6b 75 70 20 61 70 69 20 6b 65 79 20 69 6e 20 74 68 65 20 61 75 74 68 20 | )..."Lookup.api.key.in.the.auth. |
| 103a0 | 73 6f 75 72 63 65 2e 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 4c 4c 4d 20 68 6f 73 74 | source..By.default,.the.LLM.host |
| 103c0 | 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 69 73 20 75 73 65 64 20 | .for.the.active.backend.is.used. |
| 103e0 | 61 73 20 48 4f 53 54 2c 0a 61 6e 64 20 5c 22 61 70 69 6b 65 79 5c 22 20 61 73 20 55 53 45 52 2e | as.HOST,.and.\"apikey\".as.USER. |
| 10400 | 22 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 73 65 63 72 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 | "...(if-let.((secret............ |
| 10420 | 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 28 63 61 72 20 28 61 | .(plist-get..............(car.(a |
| 10440 | 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uth-source-search............... |
| 10460 | 20 20 20 20 20 3a 68 6f 73 74 20 28 6f 72 20 68 6f 73 74 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 | .....:host.(or.host.(gptel-backe |
| 10480 | 6e 64 2d 68 6f 73 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 | nd-host.gptel-backend))......... |
| 104a0 | 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 6f 72 20 75 73 65 72 20 22 61 70 69 6b 65 | ...........:user.(or.user."apike |
| 104c0 | 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 65 20 | y")....................:require. |
| 104e0 | 27 28 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | '(:secret))).................... |
| 10500 | 20 20 20 20 20 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 | ...........:secret))).......(if. |
| 10520 | 28 66 75 6e 63 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 | (functionp.secret)...........(en |
| 10540 | 63 6f 64 65 2d 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 | code-coding-string.(funcall.secr |
| 10560 | 65 74 29 20 27 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 | et).'utf-8).........secret)..... |
| 10580 | 28 75 73 65 72 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 | (user-error."No.`gptel-api-key'. |
| 105a0 | 66 6f 75 6e 64 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 | found.in.the.auth.source")))..;; |
| 105c0 | 20 46 49 58 4d 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 | .FIXME.Should.we.utf-8.encode.th |
| 105e0 | 65 20 61 70 69 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 | e.api-key.here?.(defun.gptel--ge |
| 10600 | 74 2d 61 70 69 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 | t-api-key.(&optional.key)..."Get |
| 10620 | 20 61 70 69 20 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 | .api.key.from.KEY,.or.from.`gpte |
| 10640 | 6c 2d 61 70 69 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 | l-api-key'."...(when-let*.((key- |
| 10660 | 73 79 6d 20 28 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 | sym.(or.key.(gptel-backend-key.g |
| 10680 | 70 74 65 6c 2d 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 | ptel-backend)))).....(cl-typecas |
| 106a0 | 65 20 6b 65 79 2d 73 79 6d 0a 20 20 20 20 20 20 28 66 75 6e 63 74 69 6f 6e 20 28 66 75 6e 63 61 | e.key-sym.......(function.(funca |
| 106c0 | 6c 6c 20 6b 65 79 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 6b 65 79 2d 73 | ll.key-sym)).......(string.key-s |
| 106e0 | 79 6d 29 0a 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 20 28 69 66 2d 6c 65 74 20 28 28 76 61 6c 20 | ym).......(symbol.(if-let.((val. |
| 10700 | 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 6b 65 79 2d 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 | (symbol-value.key-sym)))........ |
| 10720 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 0a 20 | ...........(gptel--get-api-key.. |
| 10740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 | ..................(symbol-value. |
| 10760 | 6b 65 79 2d 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 | key-sym)).................(error |
| 10780 | 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 | ."`gptel-api-key'.is.not.valid") |
| 107a0 | 29 29 0a 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b | )).......(t.(error."`gptel-api-k |
| 107c0 | 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 29 29 29 29 0a 0a 28 64 65 66 73 75 62 73 | ey'.is.not.valid")))))..(defsubs |
| 107e0 | 74 20 67 70 74 65 6c 2d 2d 6e 75 6d 62 65 72 69 7a 65 20 28 76 61 6c 29 0a 20 20 22 45 6e 73 75 | t.gptel--numberize.(val)..."Ensu |
| 10800 | 72 65 20 56 41 4c 20 69 73 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 69 66 20 28 73 74 72 69 | re.VAL.is.a.number."...(if.(stri |
| 10820 | 6e 67 70 20 76 61 6c 29 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 61 6c 29 20 | ngp.val).(string-to-number.val). |
| 10840 | 76 61 6c 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 75 74 6f 2d 73 63 72 6f 6c 6c 20 | val))..(defun.gptel-auto-scroll. |
| 10860 | 28 29 0a 20 20 22 53 63 72 6f 6c 6c 20 77 69 6e 64 6f 77 20 69 66 20 4c 4c 4d 20 72 65 73 70 6f | ()..."Scroll.window.if.LLM.respo |
| 10880 | 6e 73 65 20 63 6f 6e 74 69 6e 75 65 73 20 62 65 6c 6f 77 20 76 69 65 77 70 6f 72 74 2e 0a 0a 4e | nse.continues.below.viewport...N |
| 108a0 | 6f 74 65 3a 20 54 68 69 73 20 77 69 6c 6c 20 6d 6f 76 65 20 74 68 65 20 63 75 72 73 6f 72 2e 22 | ote:.This.will.move.the.cursor." |
| 108c0 | 0a 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 77 69 6e 20 28 67 65 74 2d 62 75 66 66 65 72 2d | ...(when-let*.((win.(get-buffer- |
| 108e0 | 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 27 76 69 73 69 62 6c 65 | window.(current-buffer).'visible |
| 10900 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 6f 74 20 28 70 6f 73 2d 76 69 73 69 | ))...............((not.(pos-visi |
| 10920 | 62 6c 65 2d 69 6e 2d 77 69 6e 64 6f 77 2d 70 20 28 70 6f 69 6e 74 29 20 77 69 6e 29 29 29 0a 20 | ble-in-window-p.(point).win))).. |
| 10940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 63 72 6f 6c 6c 2d 65 72 72 6f 72 2d 74 6f 70 2d 62 | .............(scroll-error-top-b |
| 10960 | 6f 74 74 6f 6d 20 74 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 | ottom.t)).....(condition-case.ni |
| 10980 | 6c 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 | l.........(with-selected-window. |
| 109a0 | 77 69 6e 0a 20 20 20 20 20 20 20 20 20 20 28 73 63 72 6f 6c 6c 2d 75 70 2d 63 6f 6d 6d 61 6e 64 | win...........(scroll-up-command |
| 109c0 | 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | )).......(error.nil))))..(defun. |
| 109e0 | 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 6f 70 | gptel-beginning-of-response.(&op |
| 10a00 | 74 69 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f | tional._._.arg)..."Move.point.to |
| 10a20 | 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e | .the.beginning.of.the.LLM.respon |
| 10a40 | 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 65 20 22 70 | se.ARG.times."...(interactive."p |
| 10a60 | 22 29 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 4f 6e 6c 79 20 77 6f 72 6b 73 20 66 6f 72 20 61 72 | ")...;;.FIXME:.Only.works.for.ar |
| 10a80 | 67 20 3d 3d 20 31 0a 20 20 28 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 | g.==.1...(gptel-end-of-response. |
| 10aa0 | 6e 69 6c 20 6e 69 6c 20 28 2d 20 28 6f 72 20 61 72 67 20 31 29 29 29 29 0a 0a 28 64 65 66 75 6e | nil.nil.(-.(or.arg.1))))..(defun |
| 10ac0 | 20 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 6f 70 74 69 6f 6e 61 | .gptel-end-of-response.(&optiona |
| 10ae0 | 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 | l._._.arg)..."Move.point.to.the. |
| 10b00 | 65 6e 64 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 41 52 47 20 74 69 6d 65 | end.of.the.LLM.response.ARG.time |
| 10b20 | 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 6e 69 6c 20 6e 69 6c | s."...(interactive.(list.nil.nil |
| 10b40 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 2d 6e 75 | ......................(prefix-nu |
| 10b60 | 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 | meric-value.current-prefix-arg)) |
| 10b80 | 29 0a 20 20 28 75 6e 6c 65 73 73 20 61 72 67 20 28 73 65 74 71 20 61 72 67 20 31 29 29 0a 20 20 | )...(unless.arg.(setq.arg.1))... |
| 10ba0 | 28 6c 65 74 20 28 28 73 65 61 72 63 68 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 | (let.((search.(if.(>.arg.0)..... |
| 10bc0 | 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- |
| 10be0 | 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | search-forward.................. |
| 10c00 | 20 23 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 | .#'text-property-search-backward |
| 10c20 | 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 61 62 73 20 61 72 67 29 29 0a 20 | ))).....(dotimes.(_.(abs.arg)).. |
| 10c40 | 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 20 27 67 70 74 65 6c 20 27 72 65 73 | .....(funcall.search.'gptel.'res |
| 10c60 | 70 6f 6e 73 65 20 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 | ponse.t).......(if.(>.arg.0).... |
| 10c80 | 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 28 63 6f 6e 63 61 74 | .......(when.(looking-at.(concat |
| 10ca0 | 20 22 5c 6e 5c 5c 7b 31 2c 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."\n\\{1,2\\}".................. |
| 10cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 | ...................(regexp-quote |
| 10ce0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 10d00 | 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 74 72 69 6e | ......(gptel-prompt-prefix-strin |
| 10d20 | 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g))............................. |
| 10d40 | 20 20 20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d | ........"?")).............(goto- |
| 10d60 | 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 20 20 28 77 68 | char.(match-end.0))).........(wh |
| 10d80 | 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 28 72 65 67 65 78 70 | en.(looking-back.(concat.(regexp |
| 10da0 | 2d 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 | -quote.......................... |
| 10dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 | ............(gptel-response-pref |
| 10de0 | 69 78 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ix-string))..................... |
| 10e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 3f 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ................"?")............ |
| 10e20 | 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 29 0a 20 20 | .................(point-min))... |
| 10e40 | 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 62 65 67 69 6e 6e | ........(goto-char.(match-beginn |
| 10e60 | 69 6e 67 20 30 29 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d 2d 61 | ing.0)))))))..(defmacro.gptel--a |
| 10e80 | 74 2d 77 6f 72 64 2d 65 6e 64 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 63 75 | t-word-end.(&rest.body)..."Execu |
| 10ea0 | 74 65 20 42 4f 44 59 20 61 74 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 77 6f | te.BODY.at.end.of.the.current.wo |
| 10ec0 | 72 64 20 6f 72 20 70 75 6e 63 74 75 61 74 69 6f 6e 2e 22 0a 20 20 60 28 73 61 76 65 2d 65 78 63 | rd.or.punctuation."...`(save-exc |
| 10ee0 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 | ursion......(skip-syntax-forward |
| 10f00 | 20 22 77 2e 22 29 0a 20 20 20 20 20 2c 40 62 6f 64 79 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 | ."w.")......,@body))..(defun.gpt |
| 10f20 | 65 6c 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 28 6f 72 | el-prompt-prefix-string.()...(or |
| 10f40 | 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 70 72 6f | .(alist-get.major-mode.gptel-pro |
| 10f60 | 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a 28 64 65 66 75 6e 20 67 | mpt-prefix-alist).""))..(defun.g |
| 10f80 | 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 28 29 0a 20 | ptel-response-prefix-string.().. |
| 10fa0 | 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c | .(or.(alist-get.major-mode.gptel |
| 10fc0 | 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 0a 0a 28 64 | -response-prefix-alist).""))..(d |
| 10fe0 | 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 | efvar-local.gptel--backend-name. |
| 11000 | 6e 69 6c 0a 20 20 22 53 74 6f 72 65 20 74 6f 20 70 65 72 73 69 73 74 20 62 61 63 6b 65 6e 64 20 | nil..."Store.to.persist.backend. |
| 11020 | 6e 61 6d 65 20 61 63 72 6f 73 73 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 2e 0a 0a 4e 6f 74 | name.across.Emacs.sessions...Not |
| 11040 | 65 3a 20 43 68 61 6e 67 69 6e 67 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 64 6f 65 73 20 6e | e:.Changing.this.variable.does.n |
| 11060 | 6f 74 20 61 66 66 65 63 74 20 67 70 74 65 6c 5c 5c 3d 27 73 20 62 65 68 61 76 69 6f 72 0a 69 6e | ot.affect.gptel\\='s.behavior.in |
| 11080 | 20 61 6e 79 20 77 61 79 2e 22 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 | .any.way.").(put.'gptel--backend |
| 110a0 | 2d 6e 61 6d 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 | -name.'safe-local-variable.#'alw |
| 110c0 | 61 79 73 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 | ays)..(defun.gptel--get-buffer-b |
| 110e0 | 6f 75 6e 64 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 67 70 74 65 6c 20 72 65 73 | ounds.()..."Return.the.gptel.res |
| 11100 | 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 61 | ponse.boundaries.in.the.buffer.a |
| 11120 | 73 20 61 6e 20 61 6c 69 73 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 | s.an.alist."...(save-excursion.. |
| 11140 | 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 77 69 64 65 | ...(save-restriction.......(wide |
| 11160 | 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 | n).......(goto-char.(point-max)) |
| 11180 | 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 6f 70 29 20 28 62 6f 75 6e 64 73 29 29 0a 20 20 | .......(let.((prop).(bounds))... |
| 111a0 | 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 74 2d 70 72 | ......(while.(setq.prop.(text-pr |
| 111c0 | 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 | operty-search-backward.......... |
| 111e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e | ..................'gptel.'respon |
| 11200 | 73 65 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 70 72 | se.t))...........(push.(cons.(pr |
| 11220 | 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 20 20 | op-match-beginning.prop)........ |
| 11240 | 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 65 6e 64 20 70 | ...............(prop-match-end.p |
| 11260 | 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 6f 75 6e 64 73 29 29 0a 20 | rop)).................bounds)).. |
| 11280 | 20 20 20 20 20 20 20 62 6f 75 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | .......bounds))))..(defun.gptel- |
| 112a0 | 2d 67 65 74 2d 62 6f 75 6e 64 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 67 70 74 | -get-bounds.()..."Return.the.gpt |
| 112c0 | 65 6c 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 20 61 72 6f 75 6e 64 20 70 6f | el.response.boundaries.around.po |
| 112e0 | 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 70 72 6f 70 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 | int."...(let.(prop).....(save-ex |
| 11300 | 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 74 65 78 74 2d 70 72 6f 70 65 72 | cursion.......(when.(text-proper |
| 11320 | 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.............. |
| 11340 | 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 20 20 28 77 68 65 | 'gptel.'response.t).........(whe |
| 11360 | 6e 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 | n.(setq.prop.(text-property-sear |
| 11380 | 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ch-forward...................... |
| 113a0 | 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 20 74 29 29 0a 20 20 20 20 20 20 | .....'gptel.'response.t))....... |
| 113c0 | 20 20 20 20 28 63 6f 6e 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 | ....(cons.(prop-match-beginning. |
| 113e0 | 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 28 70 72 6f | prop).......................(pro |
| 11400 | 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 | p-match-end.prop)))))))..(defun. |
| 11420 | 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 | gptel--in-response-p.(&optional. |
| 11440 | 70 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 70 6f 73 69 74 69 6f 6e 20 50 54 20 69 73 20 69 | pt)..."Check.if.position.PT.is.i |
| 11460 | 6e 73 69 64 65 20 61 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 67 65 74 2d | nside.a.gptel.response."...(get- |
| 11480 | 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6f 72 20 70 74 20 28 70 6f 69 6e 74 29 29 20 27 67 | char-property.(or.pt.(point)).'g |
| 114a0 | 70 74 65 6c 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 | ptel))..(defun.gptel--at-respons |
| 114c0 | 65 2d 68 69 73 74 6f 72 79 2d 70 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 43 68 | e-history-p.(&optional.pt)..."Ch |
| 114e0 | 65 63 6b 20 69 66 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 73 69 74 69 6f | eck.if.gptel.response.at.positio |
| 11500 | 6e 20 50 54 20 68 61 73 20 76 61 72 69 61 6e 74 73 2e 22 0a 20 20 28 67 65 74 2d 63 68 61 72 2d | n.PT.has.variants."...(get-char- |
| 11520 | 70 72 6f 70 65 72 74 79 20 28 6f 72 20 70 74 20 28 70 6f 69 6e 74 29 29 20 27 67 70 74 65 6c 2d | property.(or.pt.(point)).'gptel- |
| 11540 | 68 69 73 74 6f 72 79 29 29 0a 0a 0c 0a 3b 3b 20 4c 6f 67 67 69 6e 67 0a 0a 28 64 65 66 63 6f 6e | history))....;;.Logging..(defcon |
| 11560 | 73 74 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 67 70 74 65 | st.gptel--log-buffer-name."*gpte |
| 11580 | 6c 2d 6c 6f 67 2a 22 0a 20 20 22 4c 6f 67 20 62 75 66 66 65 72 20 66 6f 72 20 67 70 74 65 6c 2e | l-log*"..."Log.buffer.for.gptel. |
| 115a0 | 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 65 74 74 | ")..(declare-function.json-prett |
| 115c0 | 79 2d 70 72 69 6e 74 20 22 6a 73 6f 6e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6c | y-print."json")..(defun.gptel--l |
| 115e0 | 6f 67 20 28 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 20 6e 6f 2d 6a 73 6f 6e 29 | og.(data.&optional.type.no-json) |
| 11600 | 0a 20 20 22 4c 6f 67 20 44 41 54 41 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 | ..."Log.DATA.to.`gptel--log-buff |
| 11620 | 65 72 2d 6e 61 6d 65 27 2e 0a 0a 54 59 50 45 20 69 73 20 61 20 6c 61 62 65 6c 20 66 6f 72 20 64 | er-name'...TYPE.is.a.label.for.d |
| 11640 | 61 74 61 20 62 65 69 6e 67 20 6c 6f 67 67 65 64 2e 20 20 44 41 54 41 20 69 73 20 61 73 73 75 6d | ata.being.logged...DATA.is.assum |
| 11660 | 65 64 20 74 6f 20 62 65 0a 56 61 6c 69 64 20 4a 53 4f 4e 20 75 6e 6c 65 73 73 20 4e 4f 2d 4a 53 | ed.to.be.Valid.JSON.unless.NO-JS |
| 11680 | 4f 4e 20 69 73 20 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | ON.is.t."...(with-current-buffer |
| 116a0 | 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 | .(get-buffer-create.gptel--log-b |
| 116c0 | 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 20 28 67 6f 74 6f 2d 63 | uffer-name).....(let.((p.(goto-c |
| 116e0 | 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | har.(point-max)))).......(unless |
| 11700 | 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 69 6e | .(bobp).(insert."\n")).......(in |
| 11720 | 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 7b 5c 22 67 70 74 65 6c 5c 22 3a 20 5c 22 25 73 5c 22 | sert.(format."{\"gptel\":.\"%s\" |
| 11740 | 2c 20 22 20 28 6f 72 20 74 79 70 65 20 22 6e 6f 6e 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ,.".(or.type."none"))........... |
| 11760 | 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 5c 22 74 69 6d 65 73 | ....(format-time-string."\"times |
| 11780 | 74 61 6d 70 5c 22 3a 20 5c 22 25 59 2d 25 6d 2d 25 64 20 25 48 3a 25 4d 3a 25 53 5c 22 7d 5c 6e | tamp\":.\"%Y-%m-%d.%H:%M:%S\"}\n |
| 117a0 | 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 28 75 6e | ")...............data).......(un |
| 117c0 | 6c 65 73 73 20 6e 6f 2d 6a 73 6f 6e 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 6a 73 6f | less.no-json.(ignore-errors.(jso |
| 117e0 | 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 70 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 0a | n-pretty-print.p.(point))))))).. |
| 11800 | 0c 0a 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 73 74 61 74 65 0a | ..;;.Saving.and.restoring.state. |
| 11820 | 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 29 0a | .(defun.gptel--restore-state.(). |
| 11840 | 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 72 6e | .."Restore.gptel.state.when.turn |
| 11860 | 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 28 62 | ing.on.`gptel-mode'."...(when.(b |
| 11880 | 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 28 70 63 61 73 65 20 6d 61 6a 6f | uffer-file-name).....(pcase.majo |
| 118a0 | 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 27 6f 72 67 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 28 | r-mode.......('org-mode........( |
| 118c0 | 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 28 67 70 74 65 | require.'gptel-org)........(gpte |
| 118e0 | 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 29 29 0a 20 20 20 20 20 20 28 5f 20 | l-org--restore-state)).......(_. |
| 11900 | 28 77 68 65 6e 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 | (when.gptel--bounds............( |
| 11920 | 6d 61 70 63 20 28 70 63 61 73 65 2d 6c 61 6d 62 64 61 20 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e | mapc.(pcase-lambda.(`(,beg...,en |
| 11940 | 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 28 70 75 | d))..........................(pu |
| 11960 | 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65 67 20 65 6e 64 20 27 67 70 74 65 6c 20 27 | t-text-property.beg.end.'gptel.' |
| 11980 | 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 | response))..................gpte |
| 119a0 | 6c 2d 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | l--bounds)............(message." |
| 119c0 | 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 20 20 20 | gptel.chat.restored."))......... |
| 119e0 | 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...... |
| 11a00 | 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 61 6c 69 73 74 2d 67 | ......(if-let.((backend.(alist-g |
| 11a20 | 65 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 | et.............................. |
| 11a40 | 20 67 70 74 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 | .gptel--backend-name.gptel--know |
| 11a60 | 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | n-backends...................... |
| 11a80 | 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 20 20 | .........nil.nil.#'equal)))..... |
| 11aa0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 61 63 | ...........(setq-local.gptel-bac |
| 11ac0 | 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 | kend.backend)..............(mess |
| 11ae0 | 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 | age................(substitute-c |
| 11b00 | 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e | ommand-keys.................(con |
| 11b20 | 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 | cat.................."Could.not. |
| 11b40 | 61 63 74 69 76 61 74 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 5c 22 25 73 5c 22 21 20 20 | activate.gptel.backend.\"%s\"!.. |
| 11b60 | 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 62 61 63 6b 65 | ".................."Switch.backe |
| 11b80 | 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 6e 74 5d 20 | nds.with.\\[universal-argument]. |
| 11ba0 | 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 20 20 20 20 | \\[gptel-send]"................. |
| 11bc0 | 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."))....... |
| 11be0 | 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 29 29 | .........gptel--backend-name)))) |
| 11c00 | 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 28 29 | )))..(defun.gptel--save-state.() |
| 11c20 | 0a 20 20 22 57 72 69 74 65 20 74 68 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 74 6f 20 74 68 65 | ..."Write.the.gptel.state.to.the |
| 11c40 | 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 73 61 76 65 73 20 63 68 61 74 20 6d 65 74 61 64 61 | .buffer...This.saves.chat.metada |
| 11c60 | 74 61 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 64 69 | ta.when.writing.the.buffer.to.di |
| 11c80 | 73 6b 2e 20 20 54 6f 0a 72 65 73 74 6f 72 65 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 2c 20 | sk...To.restore.a.chat.session,. |
| 11ca0 | 74 75 72 6e 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 61 66 74 65 72 20 6f 70 65 6e 69 | turn.on.`gptel-mode'.after.openi |
| 11cc0 | 6e 67 20 74 68 65 0a 66 69 6c 65 2e 22 0a 20 20 28 70 63 61 73 65 20 6d 61 6a 6f 72 2d 6d 6f 64 | ng.the.file."...(pcase.major-mod |
| 11ce0 | 65 0a 20 20 20 20 28 27 6f 72 67 2d 6d 6f 64 65 0a 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 | e.....('org-mode......(require.' |
| 11d00 | 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 61 76 65 | gptel-org)......(gptel-org--save |
| 11d20 | 2d 73 74 61 74 65 29 29 0a 20 20 20 20 28 5f 20 28 6c 65 74 20 28 28 70 72 69 6e 74 2d 65 73 63 | -state)).....(_.(let.((print-esc |
| 11d40 | 61 70 65 2d 6e 65 77 6c 69 6e 65 73 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d | ape-newlines.t))..........(save- |
| 11d60 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 | excursion............(save-restr |
| 11d80 | 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f | iction..............(add-file-lo |
| 11da0 | 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 70 74 65 6c 2d | cal-variable.'gptel-model.gptel- |
| 11dc0 | 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f | model)..............(add-file-lo |
| 11de0 | 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 61 6d | cal-variable.'gptel--backend-nam |
| 11e00 | 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............................... |
| 11e20 | 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 70 74 65 | ........(gptel-backend-name.gpte |
| 11e40 | 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | l-backend))..............(unless |
| 11e60 | 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 74 65 | .(equal.(default-value.'gptel-te |
| 11e80 | 6d 70 65 72 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 | mperature).gptel-temperature)... |
| 11ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 | .............(add-file-local-var |
| 11ec0 | 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 | iable.'gptel-temperature.gptel-t |
| 11ee0 | 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 | emperature))..............(unles |
| 11f00 | 73 20 28 73 74 72 69 6e 67 3d 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c | s.(string=.(default-value.'gptel |
| 11f20 | 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | --system-message)............... |
| 11f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | ................gptel--system-me |
| 11f60 | 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d | ssage)................(add-file- |
| 11f80 | 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 | local-variable.'gptel--system-me |
| 11fa0 | 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 | ssage.gptel--system-message))... |
| 11fc0 | 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e | ...........(when.gptel-max-token |
| 11fe0 | 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c | s................(add-file-local |
| 12000 | 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 74 65 | -variable.'gptel-max-tokens.gpte |
| 12020 | 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 20 20 20 28 61 64 64 | l-max-tokens))..............(add |
| 12040 | 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 6f 75 | -file-local-variable.'gptel--bou |
| 12060 | 6e 64 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 | nds.(gptel--get-buffer-bounds))) |
| 12080 | 29 29 29 29 29 0a 0a 0c 0a 3b 3b 20 4d 69 6e 6f 72 20 6d 6f 64 65 20 61 6e 64 20 55 49 0a 0a 3b | )))))....;;.Minor.mode.and.UI..; |
| 120a0 | 3b 20 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 | ;.NOTE:.It's.not.clear.that.this |
| 120c0 | 20 69 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 | .is.the.best.strategy:.(add-to-l |
| 120e0 | 69 73 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 | ist.'text-property-default-nonst |
| 12100 | 69 63 6b 79 20 27 28 67 70 74 65 6c 20 2e 20 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f | icky.'(gptel...t))..;;;###autolo |
| 12120 | 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 6d 6f 64 65 | ad.(define-minor-mode.gptel-mode |
| 12140 | 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 6e 67 20 77 | ..."Minor.mode.for.interacting.w |
| 12160 | 69 74 68 20 4c 4c 4d 73 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 47 50 54 22 0a 20 20 3a | ith.LLMs."...:lighter.".GPT"...: |
| 12180 | 6b 65 79 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 | keymap...(let.((map.(make-sparse |
| 121a0 | 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 | -keymap))).....(define-key.map.( |
| 121c0 | 6b 62 64 20 22 43 2d 63 20 52 45 54 22 29 20 23 27 67 70 74 65 6c 2d 73 65 6e 64 29 0a 20 20 20 | kbd."C-c.RET").#'gptel-send).... |
| 121e0 | 20 6d 61 70 29 0a 20 20 28 69 66 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 70 72 | .map)...(if.gptel-mode.......(pr |
| 12200 | 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 71 20 6d 61 6a 6f 72 2d | ogn.........(unless.(memq.major- |
| 12220 | 6d 6f 64 65 20 27 28 6f 72 67 2d 6d 6f 64 65 20 6d 61 72 6b 64 6f 77 6e 2d 6d 6f 64 65 20 74 65 | mode.'(org-mode.markdown-mode.te |
| 12240 | 78 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6d 6f 64 65 20 | xt-mode))...........(gptel-mode. |
| 12260 | 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 20 28 66 6f 72 6d 61 | -1)...........(user-error.(forma |
| 12280 | 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 70 70 6f 72 74 65 64 | t."`gptel-mode'.is.not.supported |
| 122a0 | 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 20 20 20 20 20 20 20 | .in.`%s'.".major-mode)))........ |
| 122c0 | 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 6f 6f 6b 20 23 27 67 | .(add-hook.'before-save-hook.#'g |
| 122e0 | 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 20 20 20 20 20 20 20 | ptel--save-state.nil.t)......... |
| 12300 | 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 20 20 20 20 20 20 28 | (gptel--restore-state).........( |
| 12320 | 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........ |
| 12340 | 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 72 2d 6c 69 6e 65 20 | ...(setq.gptel--old-header-line. |
| 12360 | 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 20 | header-line-format.............. |
| 12380 | 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 20 20 20 20 20 20 20 | ...header-line-format........... |
| 123a0 | 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 61 74 20 28 70 72 6f | ......(list.'(:eval.(concat.(pro |
| 123c0 | 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 61 63 65 20 3a 61 6c | pertize.".".'display.'(space.:al |
| 123e0 | 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 20 20 20 20 20 20 20 | ign-to.0))...................... |
| 12400 | 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 70 74 65 6c 2d 62 61 | ..........(format."%s".(gptel-ba |
| 12420 | 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 29 29 0a 20 20 20 | ckend-name.gptel-backend)))).... |
| 12440 | 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." |
| 12460 | 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 20 20 20 20 20 20 20 | .Ready".'face.'success)......... |
| 12480 | 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 20 20 20 20 20 20 20 | ..............'(:eval........... |
| 124a0 | 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 0a 20 20 20 20 | ..............(let.((system..... |
| 124c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d | ...........................(form |
| 124e0 | 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 20 20 20 20 20 20 | at."[Prompt:.%s]"............... |
| 12500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 61 72 2d 73 61 66 65 20 | ..................(or.(car-safe. |
| 12520 | 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 | (rassoc.gptel--system-message.gp |
| 12540 | 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-directives))................ |
| 12560 | 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 72 69 | ..................(truncate-stri |
| 12580 | 6e 67 2d 74 6f 2d 77 69 64 74 68 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 | ng-to-width.gptel--system-messag |
| 125a0 | 65 20 31 35 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | e.15.nil.nil.t)))))............. |
| 125c0 | 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 20 | .............(concat............ |
| 125e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 | ...............(propertize...... |
| 12600 | 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 69 73 70 6c | ......................".".'displ |
| 12620 | 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 60 28 | ay............................`( |
| 12640 | 73 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 2b 20 32 20 28 | space.:align-to.(-.right.,(+.2.( |
| 12660 | 6c 65 6e 67 74 68 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 20 28 6c 65 6e 67 74 68 20 73 79 73 74 | length.gptel-model).(length.syst |
| 12680 | 65 6d 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 | em)))))......................... |
| 126a0 | 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..(propertize................... |
| 126c0 | 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 73 79 73 74 65 6d 0a 20 20 20 20 20 | .........(buttonize.system...... |
| 126e0 | 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.( |
| 12700 | 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 29 | &rest._).(gptel-system-prompt))) |
| 12720 | 0a 20 20 20 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 |
| 12740 | 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.............. |
| 12760 | 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 20 | ..............'help-echo........ |
| 12780 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 79 73 74 65 6d 20 6d 65 73 73 | ...................."System.mess |
| 127a0 | 61 67 65 20 66 6f 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 | age.for.buffer")................ |
| 127c0 | 20 20 20 20 20 20 20 20 20 20 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........".".................. |
| 127e0 | 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............ |
| 12800 | 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 63 6f 6e 63 | ................(buttonize.(conc |
| 12820 | 61 74 20 22 5b 22 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 22 5d 22 29 0a 20 20 20 20 20 20 20 20 | at."[".gptel-model."]")......... |
| 12840 | 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 |
| 12860 | 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | st._).(gptel-menu)))............ |
| 12880 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 | ................'mouse-face.'hig |
| 128a0 | 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | hlight.......................... |
| 128c0 | 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 22 47 50 54 20 6d 6f 64 65 6c 20 69 6e 20 75 73 65 22 29 | ..'help-echo."GPT.model.in.use") |
| 128e0 | 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d | )))))...........(setq.mode-line- |
| 12900 | 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 | process.................'(:eval. |
| 12920 | 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (concat."."..................... |
| 12940 | 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 | .....(buttonize.gptel-model..... |
| 12960 | 20 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. |
| 12980 | 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 29 29 0a 20 20 | (&rest._).(gptel-menu))))))))... |
| 129a0 | 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 | ..(if.gptel-use-header-line..... |
| 129c0 | 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 67 70 74 | ....(setq.header-line-format.gpt |
| 129e0 | 65 6c 2d 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 | el--old-header-line............. |
| 12a00 | 20 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e 69 6c 29 0a 20 20 | ..gptel--old-header-line.nil)... |
| 12a20 | 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 6e 69 6c 29 | ....(setq.mode-line-process.nil) |
| 12a40 | 29 29 29 0a 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 | )))..(defun.gptel--update-status |
| 12a60 | 20 28 26 6f 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 | .(&optional.msg.face)..."Update. |
| 12a80 | 73 74 61 74 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 | status.MSG.in.FACE."...(when.gpt |
| 12aa0 | 65 6c 2d 6d 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 | el-mode.....(if.gptel-use-header |
| 12ac0 | 2d 6c 69 6e 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 | -line.........(and.(consp.header |
| 12ae0 | 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 20 28 | -line-format)............(setf.( |
| 12b00 | 6e 74 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 | nth.1.header-line-format)....... |
| 12b20 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 | ...........(propertize.msg.'face |
| 12b40 | 20 66 61 63 65 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 6d 73 67 20 27 | .face))).......(if.(member.msg.' |
| 12b60 | 28 22 20 54 79 70 69 6e 67 2e 2e 2e 22 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 29 29 0a 20 20 | (".Typing...".".Waiting..."))... |
| 12b80 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 20 | ........(setq.mode-line-process. |
| 12ba0 | 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 0a 20 20 20 | (propertize.msg.'face.face)).... |
| 12bc0 | 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 | .....(setq.mode-line-process.... |
| 12be0 | 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 | ...........'(:eval.(concat.".".. |
| 12c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 | ......................(buttonize |
| 12c20 | 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 20 20 20 20 20 | .gptel-model.................... |
| 12c40 | 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 | .........(lambda.(&rest._).(gpte |
| 12c60 | 6c 2d 6d 65 6e 75 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 70 | l-menu)))))).........(message.(p |
| 12c80 | 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 29 29 0a 20 20 20 | ropertize.msg.'face.face)))).... |
| 12ca0 | 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 0c 0a 3b | .(force-mode-line-update)))....; |
| 12cc0 | 3b 20 53 65 6e 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 | ;.Send.queries,.handle.responses |
| 12ce0 | 0a 28 63 6c 2d 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 | .(cl-defun.gptel-request.....(&o |
| 12d00 | 70 74 69 6f 6e 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 | ptional.prompt.&key.callback.... |
| 12d20 | 20 20 20 20 20 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 | ............(buffer.(current-buf |
| 12d40 | 66 65 72 29 29 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 | fer))................position.co |
| 12d60 | 6e 74 65 78 74 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 | ntext.dry-run................(st |
| 12d80 | 72 65 61 6d 20 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 | ream.nil).(in-place.nil)........ |
| 12da0 | 20 20 20 20 20 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 | ........(system.gptel--system-me |
| 12dc0 | 73 73 61 67 65 29 29 0a 20 20 22 52 65 71 75 65 73 74 20 61 20 72 65 73 70 6f 6e 73 65 20 66 72 | ssage))..."Request.a.response.fr |
| 12de0 | 6f 6d 20 74 68 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 66 6f 72 20 50 52 4f 4d 50 | om.the.`gptel-backend'.for.PROMP |
| 12e00 | 54 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c | T...The.request.is.asynchronous, |
| 12e20 | 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 72 65 74 75 72 6e | .the.function.immediately.return |
| 12e40 | 73 0a 77 69 74 68 20 74 68 65 20 64 61 74 61 20 74 68 61 74 20 77 61 73 20 73 65 6e 74 2e 0a 0a | s.with.the.data.that.was.sent... |
| 12e60 | 4e 6f 74 65 3a 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 | Note:.This.function.is.not.fully |
| 12e80 | 20 73 65 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 | .self-contained...Consider.let-b |
| 12ea0 | 69 6e 64 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 | inding.the.parameters.`gptel-bac |
| 12ec0 | 6b 65 6e 64 27 20 61 6e 64 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c 27 0a 61 72 6f 75 6e 64 20 63 | kend'.and.`gptel-model'.around.c |
| 12ee0 | 61 6c 6c 73 20 74 6f 20 69 74 20 61 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 49 66 20 50 52 4f 4d | alls.to.it.as.required...If.PROM |
| 12f00 | 50 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 | PT.is.-.a.string,.it.is.used.to. |
| 12f20 | 63 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 | create.a.full.prompt.suitable.fo |
| 12f40 | 72 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 6e 69 6c 20 62 75 | r...sending.to.the.LLM..-.nil.bu |
| 12f60 | 74 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 72 65 67 69 6f 6e 20 63 | t.region.is.active,.the.region.c |
| 12f80 | 6f 6e 74 65 6e 74 73 20 61 72 65 20 75 73 65 64 2e 0a 2d 20 6e 69 6c 2c 20 74 68 65 20 63 75 72 | ontents.are.used..-.nil,.the.cur |
| 12fa0 | 72 65 6e 74 20 62 75 66 66 65 72 27 73 20 63 6f 6e 74 65 6e 74 73 20 75 70 20 74 6f 20 28 70 6f | rent.buffer's.contents.up.to.(po |
| 12fc0 | 69 6e 74 29 20 61 72 65 20 75 73 65 64 2e 0a 20 20 50 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e | int).are.used....Previous.respon |
| 12fe0 | 73 65 73 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 64 20 | ses.from.the.LLM.are.identified. |
| 13000 | 61 73 20 72 65 73 70 6f 6e 73 65 73 2e 0a 2d 20 41 20 6c 69 73 74 20 6f 66 20 70 6c 69 73 74 73 | as.responses..-.A.list.of.plists |
| 13020 | 2c 20 69 74 20 69 73 20 75 73 65 64 20 61 73 20 69 73 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 | ,.it.is.used.as.is...Keyword.arg |
| 13040 | 75 6d 65 6e 74 73 3a 0a 0a 43 41 4c 4c 42 41 43 4b 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 | uments:..CALLBACK,.if.supplied,. |
| 13060 | 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 2c 20 | is.a.function.of.two.arguments,. |
| 13080 | 63 61 6c 6c 65 64 0a 77 69 74 68 20 74 68 65 20 52 45 53 50 4f 4e 53 45 20 28 61 20 73 74 72 69 | called.with.the.RESPONSE.(a.stri |
| 130a0 | 6e 67 29 20 61 6e 64 20 49 4e 46 4f 20 28 61 20 70 6c 69 73 74 29 3a 0a 0a 20 28 63 61 6c 6c 62 | ng).and.INFO.(a.plist):...(callb |
| 130c0 | 61 63 6b 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 20 69 73 20 | ack.RESPONSE.INFO)..RESPONSE.is. |
| 130e0 | 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 6f 72 20 | nil.if.there.was.no.response.or. |
| 13100 | 61 6e 20 65 72 72 6f 72 2e 0a 0a 54 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 68 61 73 20 28 61 | an.error...The.INFO.plist.has.(a |
| 13120 | 74 20 6c 65 61 73 74 29 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 3a 64 61 | t.least).the.following.keys:.:da |
| 13140 | 74 61 20 20 20 20 20 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 20 64 61 74 61 20 69 6e | ta.........-.The.request.data.in |
| 13160 | 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 71 75 65 72 79 0a 3a 70 6f 73 69 74 69 6f 6e 20 | cluded.with.the.query.:position. |
| 13180 | 20 20 20 20 2d 20 6d 61 72 6b 65 72 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 20 72 65 | ....-.marker.at.the.point.the.re |
| 131a0 | 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 20 | quest.was.sent,.unless.......... |
| 131c0 | 20 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a 3a 62 | .......POSITION.is.specified..:b |
| 131e0 | 75 66 66 65 72 20 20 20 20 20 20 20 2d 20 54 68 65 20 62 75 66 66 65 72 20 63 75 72 72 65 6e 74 | uffer.......-.The.buffer.current |
| 13200 | 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 0a 20 20 20 20 | .when.the.request.was.sent,..... |
| 13220 | 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 42 55 46 46 45 52 20 69 73 20 73 70 65 | ............unless.BUFFER.is.spe |
| 13240 | 63 69 66 69 65 64 2e 0a 3a 73 74 61 74 75 73 20 20 20 20 20 20 20 2d 20 53 68 6f 72 74 20 73 74 | cified..:status.......-.Short.st |
| 13260 | 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 74 68 | ring.describing.the.result.of.th |
| 13280 | 65 20 72 65 71 75 65 73 74 0a 0a 45 78 61 6d 70 6c 65 20 6f 66 20 61 20 63 61 6c 6c 62 61 63 6b | e.request..Example.of.a.callback |
| 132a0 | 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 65 | .that.messages.the.user.with.the |
| 132c0 | 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 72 | .response.and.info:...(lambda.(r |
| 132e0 | 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 28 69 66 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 | esponse.info)...(if.response.... |
| 13300 | 20 20 20 28 6c 65 74 20 28 28 70 6f 73 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f 6e 20 | ...(let.((posn.(marker-position. |
| 13320 | 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 | (plist-get.info.:position))).... |
| 13340 | 20 20 20 20 20 20 20 20 20 28 62 75 66 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 6c 69 | .........(buf..(buffer-name.(pli |
| 13360 | 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 | st-get.info.:buffer))))......... |
| 13380 | 28 6d 65 73 73 61 67 65 20 5c 22 52 65 73 70 6f 6e 73 65 20 66 6f 72 20 72 65 71 75 65 73 74 20 | (message.\"Response.for.request. |
| 133a0 | 66 72 6f 6d 20 25 53 20 61 74 20 25 64 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | from.%S.at.%d:.%s\"............. |
| 133c0 | 20 20 20 20 20 62 75 66 20 70 6f 73 6e 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 28 6d 65 | .....buf.posn.response)).....(me |
| 133e0 | 73 73 61 67 65 20 5c 22 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 66 61 69 6c 65 64 20 77 69 74 | ssage.\"gptel-request.failed.wit |
| 13400 | 68 20 6d 65 73 73 61 67 65 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c | h.message:.%s\"..............(pl |
| 13420 | 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 0a 0a 4f 72 2c 20 66 6f | ist-get.info.:status))))..Or,.fo |
| 13440 | 72 20 6a 75 73 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 3a 0a 0a 20 28 6c 61 6d 62 64 61 20 28 | r.just.the.response:...(lambda.( |
| 13460 | 72 65 73 70 6f 6e 73 65 20 5f 29 0a 20 20 3b 3b 20 44 6f 20 73 6f 6d 65 74 68 69 6e 67 20 77 69 | response._)...;;.Do.something.wi |
| 13480 | 74 68 20 72 65 73 70 6f 6e 73 65 0a 20 20 28 6d 65 73 73 61 67 65 20 28 72 6f 74 31 33 2d 73 74 | th.response...(message.(rot13-st |
| 134a0 | 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 49 66 20 43 41 4c 4c 42 41 43 4b 20 69 73 | ring.response)))..If.CALLBACK.is |
| 134c0 | 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 | .omitted,.the.response.is.insert |
| 134e0 | 65 64 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 0a 72 65 71 75 65 73 74 20 77 61 73 20 | ed.at.the.point.the.request.was. |
| 13500 | 73 65 6e 74 2e 0a 0a 42 55 46 46 45 52 20 61 6e 64 20 50 4f 53 49 54 49 4f 4e 20 61 72 65 20 74 | sent...BUFFER.and.POSITION.are.t |
| 13520 | 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 28 69 6e 74 65 67 65 72 20 | he.buffer.and.position.(integer. |
| 13540 | 6f 72 0a 6d 61 72 6b 65 72 29 20 61 74 20 77 68 69 63 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 | or.marker).at.which.the.response |
| 13560 | 20 69 73 20 69 6e 73 65 72 74 65 64 2e 20 20 49 66 20 61 20 43 41 4c 4c 42 41 43 4b 20 69 73 0a | .is.inserted...If.a.CALLBACK.is. |
| 13580 | 73 70 65 63 69 66 69 65 64 2c 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 | specified,.no.response.is.insert |
| 135a0 | 65 64 20 61 6e 64 20 74 68 65 73 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 0a 69 67 6e 6f 72 | ed.and.these.arguments.are.ignor |
| 135c0 | 65 64 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 74 69 6c 6c 20 61 76 61 69 6c 61 62 6c 65 | ed,.but.they.are.still.available |
| 135e0 | 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 70 61 73 73 65 64 0a 74 6f 20 43 41 4c | .in.the.INFO.plist.passed.to.CAL |
| 13600 | 4c 42 41 43 4b 20 66 6f 72 20 79 6f 75 20 74 6f 20 75 73 65 2e 0a 0a 42 55 46 46 45 52 20 64 65 | LBACK.for.you.to.use...BUFFER.de |
| 13620 | 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 65 72 2c 20 61 6e | faults.to.the.current.buffer,.an |
| 13640 | 64 20 50 4f 53 49 54 49 4f 4e 20 74 6f 20 74 68 65 20 76 61 6c 75 65 0a 6f 66 20 28 70 6f 69 6e | d.POSITION.to.the.value.of.(poin |
| 13660 | 74 29 20 6f 72 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 2c 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e | t).or.(region-end),.depending.on |
| 13680 | 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 0a 61 63 74 69 76 65 2e 0a 0a | .whether.the.region.is.active... |
| 136a0 | 43 4f 4e 54 45 58 54 20 69 73 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 61 20 6e | CONTEXT.is.any.additional.data.n |
| 136c0 | 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 74 6f 20 72 75 6e 2e 20 49 | eeded.for.the.callback.to.run..I |
| 136e0 | 74 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 61 72 67 75 6d 65 | t.is.included.in.the.INFO.argume |
| 13700 | 6e 74 20 74 6f 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 2e 0a 0a 53 59 53 54 45 4d 20 69 73 20 74 | nt.to.the.callback...SYSTEM.is.t |
| 13720 | 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 28 63 68 61 74 20 64 69 72 65 63 74 69 76 | he.system.message.(chat.directiv |
| 13740 | 65 29 20 73 65 6e 74 20 74 6f 20 74 68 65 20 4c 4c 4d 2e 20 49 66 0a 6f 6d 69 74 74 65 64 2c 20 | e).sent.to.the.LLM..If.omitted,. |
| 13760 | 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | the.value.of.`gptel--system-mess |
| 13780 | 61 67 65 27 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 20 69 73 20 75 | age'.for.the.current.buffer.is.u |
| 137a0 | 73 65 64 2e 0a 0a 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 77 6f 72 64 73 20 61 72 65 | sed...The.following.keywords.are |
| 137c0 | 20 6d 61 69 6e 6c 79 20 66 6f 72 20 69 6e 74 65 72 6e 61 6c 20 75 73 65 3a 0a 0a 49 4e 2d 50 4c | .mainly.for.internal.use:..IN-PL |
| 137e0 | 41 43 45 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 75 73 65 64 20 62 79 20 74 68 65 20 64 65 66 | ACE.is.a.boolean.used.by.the.def |
| 13800 | 61 75 6c 74 20 63 61 6c 6c 62 61 63 6b 20 77 68 65 6e 20 69 6e 73 65 72 74 69 6e 67 0a 74 68 65 | ault.callback.when.inserting.the |
| 13820 | 20 72 65 73 70 6f 6e 73 65 20 74 6f 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 64 65 6c 69 6d 69 | .response.to.determine.if.delimi |
| 13840 | 74 65 72 73 20 61 72 65 20 6e 65 65 64 65 64 20 62 65 74 77 65 65 6e 20 74 68 65 0a 70 72 6f 6d | ters.are.needed.between.the.prom |
| 13860 | 70 74 20 61 6e 64 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 | pt.and.the.response...STREAM.is. |
| 13880 | 61 20 62 6f 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 | a.boolean.that.determines.if.the |
| 138a0 | 20 72 65 73 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 | .response.should.be.streamed,.as |
| 138c0 | 20 69 6e 20 60 67 70 74 65 6c 2d 73 74 72 65 61 6d 27 2e 20 44 6f 20 6e 6f 74 20 73 65 74 20 74 | .in.`gptel-stream'..Do.not.set.t |
| 138e0 | 68 69 73 20 69 66 20 79 6f 75 20 61 72 65 0a 73 70 65 63 69 66 79 69 6e 67 20 61 20 63 75 73 74 | his.if.you.are.specifying.a.cust |
| 13900 | 6f 6d 20 43 41 4c 4c 42 41 43 4b 21 0a 0a 49 66 20 44 52 59 2d 52 55 4e 20 69 73 20 6e 6f 6e 2d | om.CALLBACK!..If.DRY-RUN.is.non- |
| 13920 | 6e 69 6c 2c 20 63 6f 6e 73 74 72 75 63 74 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 66 75 | nil,.construct.and.return.the.fu |
| 13940 | 6c 6c 0a 71 75 65 72 79 20 64 61 74 61 20 61 73 20 75 73 75 61 6c 2c 20 62 75 74 20 64 6f 20 6e | ll.query.data.as.usual,.but.do.n |
| 13960 | 6f 74 20 73 65 6e 64 20 74 68 65 20 72 65 71 75 65 73 74 2e 0a 0a 4d 6f 64 65 6c 20 70 61 72 61 | ot.send.the.request...Model.para |
| 13980 | 6d 65 74 65 72 73 20 63 61 6e 20 62 65 20 6c 65 74 2d 62 6f 75 6e 64 20 61 72 6f 75 6e 64 20 63 | meters.can.be.let-bound.around.c |
| 139a0 | 61 6c 6c 73 20 74 6f 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 2e 22 0a 20 20 28 64 65 63 6c 61 | alls.to.this.function."...(decla |
| 139c0 | 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 2d | re.(indent.1))...(let*.((gptel-- |
| 139e0 | 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 | system-message.system).......... |
| 13a00 | 28 67 70 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 28 | (gptel-stream.stream)..........( |
| 13a20 | 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.... |
| 13a40 | 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)........ |
| 13a60 | 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)......... |
| 13a80 | 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 |
| 13aa0 | 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 |
| 13ac0 | 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) |
| 13ae0 | 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 |
| 13b00 | 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 |
| 13b20 | 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 |
| 13b40 | 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 |
| 13b60 | 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 75 6c 6c 2d 70 72 6f 6d 70 74 0a 20 20 20 | er))))..........(full-prompt.... |
| 13b80 | 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c 20 70 | .......(cond............((null.p |
| 13ba0 | 72 6f 6d 70 74 29 20 28 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 73 74 61 | rompt).(gptel--create-prompt.sta |
| 13bc0 | 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 70 | rt-marker))............((stringp |
| 13be0 | 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 44 65 | .prompt).............;;.FIXME.De |
| 13c00 | 61 72 20 72 65 61 64 65 72 2c 20 77 65 6c 63 6f 6d 65 20 74 6f 20 4a 61 6e 6b 20 43 69 74 79 3a | ar.reader,.welcome.to.Jank.City: |
| 13c20 | 0a 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 | .............(with-temp-buffer.. |
| 13c40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 | .............(let.((gptel-model. |
| 13c60 | 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c | (buffer-local-value.'gptel-model |
| 13c80 | 20 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | .buffer)).....................(g |
| 13ca0 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 | ptel-backend.(buffer-local-value |
| 13cc0 | 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 | .'gptel-backend.buffer)))....... |
| 13ce0 | 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 | ..........(insert.prompt)....... |
| 13d00 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 29 | ..........(gptel--create-prompt) |
| 13d20 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 63 6f 6e 73 70 20 70 72 6f 6d 70 74 29 20 70 | )))............((consp.prompt).p |
| 13d40 | 72 6f 6d 70 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 71 75 65 73 74 2d 64 61 74 61 20 | rompt)))..........(request-data. |
| 13d60 | 28 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 67 70 74 65 6c 2d 62 61 63 6b 65 | (gptel--request-data.gptel-backe |
| 13d80 | 6e 64 20 66 75 6c 6c 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 66 6f 20 | nd.full-prompt))..........(info. |
| 13da0 | 28 6c 69 73 74 20 3a 64 61 74 61 20 72 65 71 75 65 73 74 2d 64 61 74 61 0a 20 20 20 20 20 20 20 | (list.:data.request-data........ |
| 13dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 62 75 66 66 65 72 0a 20 20 20 | ..............:buffer.buffer.... |
| 13de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 | ..................:position.star |
| 13e00 | 74 2d 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6e 74 65 78 74 20 28 70 | t-marker))).....(when.context.(p |
| 13e20 | 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)) |
| 13e40 | 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 |
| 13e60 | 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 20 69 6e 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 28 75 6e | nfo.:in-place.in-place)).....(un |
| 13e80 | 6c 65 73 73 20 64 72 79 2d 72 75 6e 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 69 66 20 | less.dry-run.......(funcall.(if. |
| 13ea0 | 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-use-curl.................. |
| 13ec0 | 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 20 23 27 67 70 | ..#'gptel-curl-get-response.#'gp |
| 13ee0 | 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 20 20 20 20 20 20 | tel--url-get-response).......... |
| 13f00 | 20 20 20 20 20 20 69 6e 66 6f 20 63 61 6c 6c 62 61 63 6b 29 29 0a 20 20 20 20 72 65 71 75 65 73 | ......info.callback)).....reques |
| 13f20 | 74 2d 64 61 74 61 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 48 61 6e 64 6c 65 20 6d 75 6c 74 69 70 | t-data))..;;.TODO:.Handle.multip |
| 13f40 | 6c 65 20 72 65 71 75 65 73 74 73 28 23 31 35 29 2e 20 28 4f 6e 6c 79 20 6f 6e 65 20 72 65 71 75 | le.requests(#15)..(Only.one.requ |
| 13f60 | 65 73 74 20 66 72 6f 6d 20 6f 6e 65 20 62 75 66 66 65 72 20 61 74 20 61 20 74 69 6d 65 3f 29 0a | est.from.one.buffer.at.a.time?). |
| 13f80 | 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 65 6e 64 | ;;;###autoload.(defun.gptel-send |
| 13fa0 | 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 75 62 6d 69 74 20 74 68 69 73 20 | .(&optional.arg)..."Submit.this. |
| 13fc0 | 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 4c 4c 4d 20 62 61 63 6b 65 6e | prompt.to.the.current.LLM.backen |
| 13fe0 | 64 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 | d...By.default,.the.contents.of. |
| 14000 | 74 68 65 20 62 75 66 66 65 72 20 75 70 20 74 6f 20 74 68 65 20 63 75 72 73 6f 72 20 70 6f 73 69 | the.buffer.up.to.the.cursor.posi |
| 14020 | 74 69 6f 6e 0a 61 72 65 20 73 65 6e 74 2e 20 20 49 66 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 | tion.are.sent...If.the.region.is |
| 14040 | 20 61 63 74 69 76 65 2c 20 69 74 73 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 73 65 6e 74 0a 69 | .active,.its.contents.are.sent.i |
| 14060 | 6e 73 74 65 61 64 2e 0a 0a 54 68 65 20 72 65 73 70 6f 6e 73 65 20 66 72 6f 6d 20 74 68 65 20 4c | nstead...The.response.from.the.L |
| 14080 | 4c 4d 20 69 73 20 69 6e 73 65 72 74 65 64 20 62 65 6c 6f 77 20 74 68 65 20 63 75 72 73 6f 72 20 | LM.is.inserted.below.the.cursor. |
| 140a0 | 70 6f 73 69 74 69 6f 6e 0a 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 73 65 6e 64 69 6e 67 2e | position.at.the.time.of.sending. |
| 140c0 | 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 69 73 20 62 65 68 61 76 69 6f 72 20 6f 72 20 6d 6f 64 | ..To.change.this.behavior.or.mod |
| 140e0 | 65 6c 0a 70 61 72 61 6d 65 74 65 72 73 2c 20 75 73 65 20 70 72 65 66 69 78 20 61 72 67 20 41 52 | el.parameters,.use.prefix.arg.AR |
| 14100 | 47 20 61 63 74 69 76 61 74 65 20 61 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 77 69 74 68 | G.activate.a.transient.menu.with |
| 14120 | 0a 6d 6f 72 65 20 6f 70 74 69 6f 6e 73 20 69 6e 73 74 65 61 64 2e 0a 0a 54 68 69 73 20 63 6f 6d | .more.options.instead...This.com |
| 14140 | 6d 61 6e 64 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 73 2c 20 79 6f 75 20 63 61 6e 20 63 6f | mand.is.asynchronous,.you.can.co |
| 14160 | 6e 74 69 6e 75 65 20 74 6f 20 75 73 65 20 45 6d 61 63 73 20 77 68 69 6c 65 0a 77 61 69 74 69 6e | ntinue.to.use.Emacs.while.waitin |
| 14180 | 67 20 66 6f 72 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 | g.for.the.response."...(interact |
| 141a0 | 69 76 65 20 22 50 22 29 0a 20 20 28 69 66 20 28 61 6e 64 20 61 72 67 20 28 72 65 71 75 69 72 65 | ive."P")...(if.(and.arg.(require |
| 141c0 | 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 | .'gptel-transient.nil.t))....... |
| 141e0 | 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 6e 75 | (call-interactively.#'gptel-menu |
| 14200 | 29 0a 20 20 28 6d 65 73 73 61 67 65 20 22 51 75 65 72 79 69 6e 67 20 25 73 2e 2e 2e 22 20 28 67 | )...(message."Querying.%s...".(g |
| 14220 | 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) |
| 14240 | 29 0a 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 29 0a 20 20 28 67 | )...(gptel--sanitize-model)...(g |
| 14260 | 70 74 65 6c 2d 72 65 71 75 65 73 74 20 6e 69 6c 20 3a 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 | ptel-request.nil.:stream.gptel-s |
| 14280 | 74 72 65 61 6d 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 | tream)...(gptel--update-status." |
| 142a0 | 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 29 0a 0a 28 64 65 63 6c 61 | .Waiting...".'warning)))..(decla |
| 142c0 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d 62 75 | re-function.json-pretty-print-bu |
| 142e0 | 66 66 65 72 20 22 6a 73 6f 6e 22 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 70 65 | ffer."json").(defun.gptel--inspe |
| 14300 | 63 74 2d 71 75 65 72 79 20 28 72 65 71 75 65 73 74 2d 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c | ct-query.(request-data.&optional |
| 14320 | 20 61 72 67 29 0a 20 20 22 53 68 6f 77 20 52 45 51 55 45 53 54 2d 44 41 54 41 2c 20 74 68 65 20 | .arg)..."Show.REQUEST-DATA,.the. |
| 14340 | 66 75 6c 6c 20 4c 4c 4d 20 71 75 65 72 79 20 74 6f 20 62 65 20 73 65 6e 74 2c 20 69 6e 20 61 20 | full.LLM.query.to.be.sent,.in.a. |
| 14360 | 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 73 20 61 73 20 61 20 64 72 79 | buffer...This.functions.as.a.dry |
| 14380 | 20 72 75 6e 20 6f 66 20 60 67 70 74 65 6c 2d 73 65 6e 64 27 2e 20 20 49 66 20 41 52 47 20 69 73 | .run.of.`gptel-send'...If.ARG.is |
| 143a0 | 0a 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 6f 64 | .the.symbol.json,.show.the.encod |
| 143c0 | 65 64 20 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 6c 69 73 | ed.JSON.query.instead.of.the.lis |
| 143e0 | 70 0a 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 77 69 74 68 | p.structure.gptel.uses."...(with |
| 14400 | 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 | -current-buffer.(get-buffer-crea |
| 14420 | 74 65 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 73 | te."*gptel-query*").....(let.((s |
| 14440 | 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 75 66 66 65 72 29 29 | tandard-output.(current-buffer)) |
| 14460 | 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 | ...........(inhibit-read-only.t) |
| 14480 | 29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a 20 20 | ).......(buffer-disable-undo)... |
| 144a0 | 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 | ....(erase-buffer).......(if.(eq |
| 144c0 | 20 61 72 67 20 27 6a 73 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 66 75 | .arg.'json)...........(progn.(fu |
| 144e0 | 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ndamental-mode)................. |
| 14500 | 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 72 65 71 | .(insert.(gptel--json-encode.req |
| 14520 | 75 65 73 74 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6a 73 | uest-data))..................(js |
| 14540 | 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 | on-pretty-print-buffer))........ |
| 14560 | 20 28 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 6e 31 | .(lisp-data-mode).........(prin1 |
| 14580 | 20 72 65 71 75 65 73 74 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 28 70 70 2d 62 75 66 66 65 | .request-data).........(pp-buffe |
| 145a0 | 72 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 | r)).......(goto-char.(point-min) |
| 145c0 | 29 0a 20 20 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 28 64 69 73 | ).......(view-mode.1).......(dis |
| 145e0 | 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 | play-buffer.(current-buffer).gpt |
| 14600 | 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 29 29 29 29 0a 0a 28 64 | el-display-buffer-action))))..(d |
| 14620 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 28 72 65 73 | efun.gptel--insert-response.(res |
| 14640 | 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 22 49 6e 73 65 72 74 20 74 68 65 20 4c 4c 4d 20 52 45 | ponse.info)..."Insert.the.LLM.RE |
| 14660 | 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 0a 0a 49 | SPONSE.into.the.gptel.buffer...I |
| 14680 | 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 6f 72 6d | NFO.is.a.plist.containing.inform |
| 146a0 | 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 2e 0a 53 | ation.relevant.to.this.buffer..S |
| 146c0 | 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 66 6f 72 | ee.`gptel--url-get-response'.for |
| 146e0 | 20 64 65 74 61 69 6c 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 73 74 61 74 75 73 2d 73 74 72 20 | .details."...(let*.((status-str. |
| 14700 | 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 | .(plist-get.info.:status))...... |
| 14720 | 20 20 20 20 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 | ....(gptel-buffer.(plist-get.inf |
| 14740 | 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 6d 61 72 6b | o.:buffer))..........(start-mark |
| 14760 | 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)).. |
| 14780 | 20 20 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 2d 62 65 67 20 72 65 73 70 6f 6e 73 65 2d 65 6e | ........response-beg.response-en |
| 147a0 | 64 29 0a 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 72 65 61 64 2d 6f 6e 6c 79 20 62 75 66 66 65 | d).....;;.Handle.read-only.buffe |
| 147c0 | 72 73 0a 20 20 20 20 28 77 68 65 6e 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | rs.....(when.(with-current-buffe |
| 147e0 | 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 62 | r.gptel-buffer.............(or.b |
| 14800 | 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | uffer-read-only................. |
| 14820 | 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 | (get-char-property.start-marker. |
| 14840 | 27 72 65 61 64 2d 6f 6e 6c 79 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 75 | 'read-only))).......(message."Bu |
| 14860 | 66 66 65 72 20 69 73 20 72 65 61 64 20 6f 6e 6c 79 2c 20 64 69 73 70 6c 61 79 69 6e 67 20 72 65 | ffer.is.read.only,.displaying.re |
| 14880 | 70 6c 79 20 69 6e 20 62 75 66 66 65 72 20 5c 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 5c 22 | ply.in.buffer.\"*LLM.response*\" |
| 148a0 | 22 29 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 | ").......(display-buffer........ |
| 148c0 | 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 | (with-current-buffer.(get-buffer |
| 148e0 | 2d 63 72 65 61 74 65 20 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 22 29 0a 20 20 20 20 20 20 | -create."*LLM.response*")....... |
| 14900 | 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 20 20 | ...(visual-line-mode.1)......... |
| 14920 | 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 | .(goto-char.(point-max))........ |
| 14940 | 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 6f 69 | ..(move-marker.start-marker.(poi |
| 14960 | 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 | nt).(current-buffer))..........( |
| 14980 | 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 27 28 28 64 69 73 70 6c | current-buffer))........'((displ |
| 149a0 | 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 | ay-buffer-reuse-window.......... |
| 149c0 | 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 29 0a 20 | .display-buffer-pop-up-window).. |
| 149e0 | 20 20 20 20 20 20 20 20 28 72 65 75 73 61 62 6c 65 2d 66 72 61 6d 65 73 20 2e 20 76 69 73 69 62 | ........(reusable-frames...visib |
| 14a00 | 6c 65 29 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 20 61 6e | le)))).....;;.Insert.response.an |
| 14a20 | 64 20 73 74 61 74 75 73 20 6d 65 73 73 61 67 65 2f 65 72 72 6f 72 20 6d 65 73 73 61 67 65 0a 20 | d.status.message/error.message.. |
| 14a40 | 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 | ...(with-current-buffer.gptel-bu |
| 14a60 | 66 66 65 72 0a 20 20 20 20 20 20 28 69 66 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 | ffer.......(if.response......... |
| 14a80 | 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f | ..(progn.............(setq.respo |
| 14aa0 | 6e 73 65 20 28 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 72 65 73 70 6f 6e 73 65 0a 20 | nse.(gptel--transform-response.. |
| 14ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 | ..............................re |
| 14ae0 | 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 | sponse.gptel-buffer))........... |
| 14b00 | 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............... |
| 14b20 | 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | (put-text-property.............. |
| 14b40 | 20 20 30 20 28 6c 65 6e 67 74 68 20 72 65 73 70 6f 6e 73 65 29 20 27 67 70 74 65 6c 20 27 72 65 | ..0.(length.response).'gptel.'re |
| 14b60 | 73 70 6f 6e 73 65 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 | sponse.response)...............( |
| 14b80 | 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 66 66 | with-current-buffer.(marker-buff |
| 14ba0 | 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | er.start-marker)................ |
| 14bc0 | 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)....... |
| 14be0 | 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 72 65 2d | ..........(run-hooks.'gptel-pre- |
| 14c00 | 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 20 20 20 28 | response-hook).................( |
| 14c20 | 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 66 | unless.(or.(bobp).(plist-get.inf |
| 14c40 | 6f 20 3a 69 6e 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o.:in-place))................... |
| 14c60 | 28 69 6e 73 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 20 20 20 | (insert."\n\n")................. |
| 14c80 | 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 20 20 20 20 | ..(when.gptel-mode.............. |
| 14ca0 | 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 | .......(insert.(gptel-response-p |
| 14cc0 | 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | refix-string))))................ |
| 14ce0 | 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 2d 62 65 67 20 28 70 6f 69 6e 74 29 29 20 3b 53 61 | .(setq.response-beg.(point)).;Sa |
| 14d00 | 76 65 20 72 65 73 70 6f 6e 73 65 20 73 74 61 72 74 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 | ve.response.start.position...... |
| 14d20 | 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 20 20 20 | ...........(insert.response).... |
| 14d40 | 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 2d 65 6e 64 20 | .............(setq.response-end. |
| 14d60 | 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 28 70 75 6c 73 65 2d | (point)).................(pulse- |
| 14d80 | 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 72 65 73 70 6f | momentary-highlight-region.respo |
| 14da0 | 6e 73 65 2d 62 65 67 20 72 65 73 70 6f 6e 73 65 2d 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 | nse-beg.response-end)........... |
| 14dc0 | 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 69 6e 73 65 72 74 20 22 | ......(when.gptel-mode.(insert." |
| 14de0 | 5c 6e 5c 6e 22 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 | \n\n".(gptel-prompt-prefix-strin |
| 14e00 | 67 29 29 29 29 20 3b 53 61 76 65 20 72 65 73 70 6f 6e 73 65 20 65 6e 64 20 70 6f 73 69 74 69 6f | g)))).;Save.response.end.positio |
| 14e20 | 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 | n...............(when.gptel-mode |
| 14e40 | 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 52 65 61 64 79 22 20 | .(gptel--update-status.".Ready". |
| 14e60 | 27 73 75 63 63 65 73 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 | 'success)))).........(gptel--upd |
| 14e80 | 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 52 65 | ate-status..........(format.".Re |
| 14ea0 | 73 70 6f 6e 73 65 20 45 72 72 6f 72 3a 20 25 73 22 20 73 74 61 74 75 73 2d 73 74 72 29 20 27 65 | sponse.Error:.%s".status-str).'e |
| 14ec0 | 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 67 70 74 65 6c 20 72 65 | rror).........(message."gptel.re |
| 14ee0 | 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 | sponse.error:.(%s).%s".......... |
| 14f00 | 20 20 20 20 20 20 20 20 73 74 61 74 75 73 2d 73 74 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e | ........status-str.(plist-get.in |
| 14f20 | 66 6f 20 3a 65 72 72 6f 72 29 29 29 29 0a 20 20 20 20 3b 3b 20 52 75 6e 20 68 6f 6f 6b 20 69 6e | fo.:error)))).....;;.Run.hook.in |
| 14f40 | 20 76 69 73 69 62 6c 65 20 77 69 6e 64 6f 77 20 74 6f 20 73 65 74 20 77 69 6e 64 6f 77 2d 70 6f | .visible.window.to.set.window-po |
| 14f60 | 69 6e 74 2c 20 42 55 47 20 23 32 36 39 0a 20 20 20 20 28 69 66 2d 6c 65 74 20 28 28 67 70 74 65 | int,.BUG.#269.....(if-let.((gpte |
| 14f80 | 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 67 70 74 65 | l-window.(get-buffer-window.gpte |
| 14fa0 | 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 20 28 77 69 | l-buffer.'visible))).........(wi |
| 14fc0 | 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 64 6f 77 0a | th-selected-window.gptel-window. |
| 14fe0 | 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 |
| 15000 | 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 20 72 65 73 | ptel-post-response-functions.res |
| 15020 | 70 6f 6e 73 65 2d 62 65 67 20 72 65 73 70 6f 6e 73 65 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 28 | ponse-beg.response-end)).......( |
| 15040 | 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 72 | with-current-buffer.gptel-buffer |
| 15060 | 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 20 27 67 70 | .........(run-hook-with-args.'gp |
| 15080 | 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 72 65 73 70 | tel-post-response-functions.resp |
| 150a0 | 6f 6e 73 65 2d 62 65 67 20 72 65 73 70 6f 6e 73 65 2d 65 6e 64 29 29 29 29 29 0a 0a 28 64 65 66 | onse-beg.response-end)))))..(def |
| 150c0 | 75 6e 20 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 28 26 6f 70 74 69 6f 6e | un.gptel--create-prompt.(&option |
| 150e0 | 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6c 6c 20 | al.prompt-end)..."Return.a.full. |
| 15100 | 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e | conversation.prompt.from.the.con |
| 15120 | 74 65 6e 74 73 20 6f 66 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 60 67 70 74 65 6c | tents.of.this.buffer...If.`gptel |
| 15140 | 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 27 20 69 73 20 73 65 74 2c 20 | --num-messages-to-send'.is.set,. |
| 15160 | 6c 69 6d 69 74 20 74 6f 20 74 68 61 74 20 6d 61 6e 79 0a 72 65 63 65 6e 74 20 65 78 63 68 61 6e | limit.to.that.many.recent.exchan |
| 15180 | 67 65 73 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 65 20 6c 69 | ges...If.the.region.is.active.li |
| 151a0 | 6d 69 74 20 74 68 65 20 70 72 6f 6d 70 74 20 74 6f 20 74 68 65 20 72 65 67 69 6f 6e 20 63 6f 6e | mit.the.prompt.to.the.region.con |
| 151c0 | 74 65 6e 74 73 0a 69 6e 73 74 65 61 64 2e 0a 0a 49 66 20 50 52 4f 4d 50 54 2d 45 4e 44 20 28 61 | tents.instead...If.PROMPT-END.(a |
| 151e0 | 20 6d 61 72 6b 65 72 29 20 69 73 20 70 72 6f 76 69 64 65 64 2c 20 65 6e 64 20 74 68 65 20 70 72 | .marker).is.provided,.end.the.pr |
| 15200 | 6f 6d 70 74 20 63 6f 6e 74 65 6e 74 73 0a 74 68 65 72 65 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 | ompt.contents.there."...(save-ex |
| 15220 | 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 | cursion.....(save-restriction... |
| 15240 | 20 20 20 20 28 6c 65 74 20 28 28 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 61 6e 64 20 67 70 74 65 | ....(let.((max-entries.(and.gpte |
| 15260 | 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 20 20 | l--num-messages-to-send......... |
| 15280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 32 20 67 70 74 65 6c | ......................(*.2.gptel |
| 152a0 | 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 29 0a 20 20 20 20 20 | --num-messages-to-send))))...... |
| 152c0 | 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 | ...(cond..........((use-region-p |
| 152e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 6f 77 20 74 6f 20 72 65 67 69 6f 6e 0a | )...........;;.Narrow.to.region. |
| 15300 | 20 20 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 28 72 65 67 | ..........(narrow-to-region.(reg |
| 15320 | 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 | ion-beginning).(region-end)).... |
| 15340 | 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 29 0a 20 | .......(goto-char.(point-max)).. |
| 15360 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 67 70 | .........(gptel--parse-buffer.gp |
| 15380 | 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 0a 20 20 20 20 20 20 | tel-backend.max-entries))....... |
| 153a0 | 20 20 20 28 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 | ...((derived-mode-p.'org-mode).. |
| 153c0 | 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 | .........(require.'gptel-org)... |
| 153e0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 | ........(gptel-org--create-promp |
| 15400 | 74 20 28 6f 72 20 70 72 6f 6d 70 74 2d 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a | t.(or.prompt-end.(point-max)))). |
| 15420 | 20 20 20 20 20 20 20 20 20 28 74 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6f 72 20 70 72 6f 6d 70 | .........(t.(goto-char.(or.promp |
| 15440 | 74 2d 65 6e 64 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 20 20 | t-end.(point-max)))............. |
| 15460 | 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 | (gptel--parse-buffer.gptel-backe |
| 15480 | 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 | nd.max-entries)))))))..(cl-defge |
| 154a0 | 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 62 61 63 6b 65 | neric.gptel--parse-buffer.(backe |
| 154c0 | 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 72 65 6e 74 | nd.max-entries)..."Parse.current |
| 154e0 | 20 62 75 66 66 65 72 20 62 61 63 6b 77 61 72 64 73 20 66 72 6f 6d 20 70 6f 69 6e 74 20 61 6e 64 | .buffer.backwards.from.point.and |
| 15500 | 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 42 41 43 4b | .return.a.list.of.prompts...BACK |
| 15520 | 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a | END.is.the.LLM.backend.in.use... |
| 15540 | 4d 41 58 2d 45 4e 54 52 49 45 53 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 71 75 65 | MAX-ENTRIES.is.the.number.of.que |
| 15560 | 72 69 65 73 2f 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 66 6f 72 0a 63 6f | ries/responses.to.include.for.co |
| 15580 | 6e 74 65 78 62 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 | ntexbt.")..(cl-defgeneric.gptel- |
| 155a0 | 2d 72 65 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 | -request-data.(backend.prompts). |
| 155c0 | 20 20 22 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 | .."Generate.a.plist.of.all.data. |
| 155e0 | 66 6f 72 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 | for.an.LLM.query...BACKEND.is.th |
| 15600 | 65 20 4c 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 | e.LLM.backend.in.use...PROMPTS.i |
| 15620 | 73 20 74 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 | s.the.plist.of.previous.user.que |
| 15640 | 72 69 65 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 22 29 0a 0a 3b 3b 20 54 4f | ries.and.LLM.responses.")..;;.TO |
| 15660 | 44 4f 3a 20 55 73 65 20 60 72 75 6e 2d 68 6f 6f 6b 2d 77 72 61 70 70 65 64 27 20 77 69 74 68 20 | DO:.Use.`run-hook-wrapped'.with. |
| 15680 | 61 6e 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 69 6e 73 74 65 61 64 20 74 6f 20 68 61 6e 64 6c 65 | an.accumulator.instead.to.handle |
| 156a0 | 0a 3b 3b 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 68 6f 6f 6b 73 2c 20 65 74 63 2e 0a 28 64 65 | .;;.buffer-local.hooks,.etc..(de |
| 156c0 | 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 66 6f 72 6d 2d 72 65 73 70 6f 6e 73 65 20 28 63 | fun.gptel--transform-response.(c |
| 156e0 | 6f 6e 74 65 6e 74 2d 73 74 72 20 62 75 66 66 65 72 29 0a 20 20 22 46 69 6c 74 65 72 20 43 4f 4e | ontent-str.buffer)..."Filter.CON |
| 15700 | 54 45 4e 54 2d 53 54 52 20 74 68 72 6f 75 67 68 20 60 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 | TENT-STR.through.`gptel-response |
| 15720 | 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 60 2e 0a 0a 42 55 46 46 45 52 20 69 73 20 70 | -filter-functions`...BUFFER.is.p |
| 15740 | 61 73 73 65 64 20 61 6c 6f 6e 67 20 77 69 74 68 20 43 4f 4e 54 45 4e 54 2d 53 54 52 20 74 6f 20 | assed.along.with.CONTENT-STR.to. |
| 15760 | 65 61 63 68 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 69 73 0a 68 6f 6f 6b 2e 22 0a 20 20 28 | each.function.in.this.hook."...( |
| 15780 | 6c 65 74 20 28 28 66 69 6c 74 65 72 65 64 2d 73 74 72 20 63 6f 6e 74 65 6e 74 2d 73 74 72 29 29 | let.((filtered-str.content-str)) |
| 157a0 | 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 66 69 6c 74 65 72 2d 66 75 6e 63 20 67 70 74 65 6c 2d | .....(dolist.(filter-func.gptel- |
| 157c0 | 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 20 66 69 6c 74 65 72 | response-filter-functions.filter |
| 157e0 | 65 64 2d 73 74 72 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 | ed-str).......(condition-case.ni |
| 15800 | 6c 0a 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 66 69 6c | l...........(when.(functionp.fil |
| 15820 | 74 65 72 2d 66 75 6e 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 6c 74 | ter-func).............(setq.filt |
| 15840 | 65 72 65 64 2d 73 74 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 | ered-str...................(func |
| 15860 | 61 6c 6c 20 66 69 6c 74 65 72 2d 66 75 6e 63 20 66 69 6c 74 65 72 65 64 2d 73 74 72 20 62 75 66 | all.filter-func.filtered-str.buf |
| 15880 | 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 28 | fer))).........(error..........( |
| 158a0 | 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 20 27 28 67 70 74 65 6c 20 66 69 6c 74 65 72 2d 66 | display-warning.'(gptel.filter-f |
| 158c0 | 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | unctions)....................... |
| 158e0 | 20 20 20 20 28 66 6f 72 6d 61 74 20 22 46 75 6e 63 74 69 6f 6e 20 25 53 20 72 65 74 75 72 6e 65 | ....(format."Function.%S.returne |
| 15900 | 64 20 61 6e 20 65 72 72 6f 72 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.an.error"..................... |
| 15920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 74 65 72 2d 66 75 6e 63 29 29 29 29 29 29 29 | ..............filter-func))))))) |
| 15940 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 72 74 2d 6f 72 67 20 28 63 6f 6e | ..(defun.gptel--convert-org.(con |
| 15960 | 74 65 6e 74 20 62 75 66 66 65 72 29 0a 20 20 22 54 72 61 6e 73 66 6f 72 6d 20 43 4f 4e 54 45 4e | tent.buffer)..."Transform.CONTEN |
| 15980 | 54 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 72 65 71 75 69 72 65 64 20 6d 61 6a 6f 72 2d 6d 6f | T.according.to.required.major-mo |
| 159a0 | 64 65 2e 0a 0a 43 75 72 72 65 6e 74 6c 79 20 6f 6e 6c 79 20 60 6f 72 67 2d 6d 6f 64 65 27 20 69 | de...Currently.only.`org-mode'.i |
| 159c0 | 73 20 68 61 6e 64 6c 65 64 2e 0a 0a 42 55 46 46 45 52 20 69 73 20 74 68 65 20 4c 4c 4d 20 69 6e | s.handled...BUFFER.is.the.LLM.in |
| 159e0 | 74 65 72 61 63 74 69 6f 6e 20 62 75 66 66 65 72 2e 22 0a 20 20 28 70 63 61 73 65 20 28 62 75 66 | teraction.buffer."...(pcase.(buf |
| 15a00 | 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 20 62 75 66 66 | fer-local-value.'major-mode.buff |
| 15a20 | 65 72 29 0a 20 20 20 20 28 27 6f 72 67 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 2d 63 6f 6e 76 65 | er).....('org-mode.(gptel--conve |
| 15a40 | 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 63 6f 6e 74 65 6e 74 29 29 0a 20 20 20 20 28 | rt-markdown->org.content)).....( |
| 15a60 | 5f 20 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 72 6c 2d | _.content)))..(defun.gptel--url- |
| 15a80 | 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 28 69 6e 66 6f 20 26 6f 70 74 69 6f 6e 61 6c 20 63 61 6c | get-response.(info.&optional.cal |
| 15aa0 | 6c 62 61 63 6b 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 | lback)..."Fetch.response.to.prom |
| 15ac0 | 70 74 20 69 6e 20 49 4e 46 4f 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 2e 0a 0a 49 4e 46 4f 20 69 | pt.in.INFO.from.the.LLM...INFO.i |
| 15ae0 | 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 | s.a.plist.with.the.following.key |
| 15b00 | 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 67 20 73 | s:.-.:data.....(the.data.being.s |
| 15b20 | 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 75 66 66 | ent).-.:buffer...(the.gptel.buff |
| 15b40 | 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 69 63 68 | er).-.:position.(marker.at.which |
| 15b60 | 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 0a 43 61 6c 6c 20 | .to.insert.the.response)...Call. |
| 15b80 | 43 41 4c 4c 42 41 43 4b 20 77 69 74 68 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 61 6e 64 20 49 | CALLBACK.with.the.response.and.I |
| 15ba0 | 4e 46 4f 20 61 66 74 65 72 77 61 72 64 73 2e 20 20 49 66 20 6f 6d 69 74 74 65 64 0a 74 68 65 20 | NFO.afterwards...If.omitted.the. |
| 15bc0 | 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 20 69 6e 74 6f 20 74 68 65 20 63 75 | response.is.inserted.into.the.cu |
| 15be0 | 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 66 74 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 | rrent.buffer.after.point."...(le |
| 15c00 | 74 2a 20 28 28 69 6e 68 69 62 69 74 2d 6d 65 73 73 61 67 65 20 74 29 0a 20 20 20 20 20 20 20 20 | t*.((inhibit-message.t)......... |
| 15c20 | 20 28 6d 65 73 73 61 67 65 2d 6c 6f 67 2d 6d 61 78 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 | .(message-log-max.nil).......... |
| 15c40 | 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 | (backend.gptel-backend)......... |
| 15c60 | 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 6d 65 74 68 6f 64 20 22 50 4f 53 54 22 29 0a 20 20 20 | .(url-request-method."POST").... |
| 15c80 | 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 72 73 | ......(url-request-extra-headers |
| 15ca0 | 0a 20 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 | ...........(append.'(("Content-T |
| 15cc0 | 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 29 0a 20 20 20 20 | ype"..."application/json"))..... |
| 15ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 68 65 61 64 65 72 | ..............(when-let.((header |
| 15d00 | 20 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 | .(gptel-backend-header.gptel-bac |
| 15d20 | 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | kend))).....................(if. |
| 15d40 | 28 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 | (functionp.header).............. |
| 15d60 | 20 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 | ...........(funcall.header).head |
| 15d80 | 65 72 29 29 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 | er)))).........(url-request-data |
| 15da0 | 0a 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 63 6f 64 69 6e 67 2d 73 74 72 69 6e 67 0a | ..........(encode-coding-string. |
| 15dc0 | 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 70 | ..........(gptel--json-encode.(p |
| 15de0 | 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))........... |
| 15e00 | 27 75 74 66 2d 38 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 | 'utf-8))).....(when.gptel-log-le |
| 15e20 | 76 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 | vel...............;logging...... |
| 15e40 | 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 | .(when.(eq.gptel-log-level.'debu |
| 15e60 | 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a | g).........(gptel--log.(gptel--j |
| 15e80 | 73 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | son-encode...................... |
| 15ea0 | 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 20 28 69 6e | (mapcar.(lambda.(pair).(cons.(in |
| 15ec0 | 74 65 72 6e 20 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a 20 20 | tern.(car.pair)).(cdr.pair)))... |
| 15ee0 | 20 20 20 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 | ...........................url-r |
| 15f00 | 65 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 | equest-extra-headers)).......... |
| 15f20 | 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 65 73 74 20 68 65 61 64 65 72 73 22 29 29 0a 20 | ..........."request.headers")).. |
| 15f40 | 20 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 | .....(gptel--log.url-request-dat |
| 15f60 | 61 20 22 72 65 71 75 65 73 74 20 62 6f 64 79 22 29 29 0a 20 20 20 20 28 75 72 6c 2d 72 65 74 72 | a."request.body")).....(url-retr |
| 15f80 | 69 65 76 65 20 28 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 | ieve.(let.((backend-url.(gptel-b |
| 15fa0 | 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 29 0a 20 20 20 20 | ackend-url.gptel-backend)))..... |
| 15fc0 | 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 62 | ................(if.(functionp.b |
| 15fe0 | 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 20 | ackend-url)..................... |
| 16000 | 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 20 62 61 63 6b 65 6e | ....(funcall.backend-url).backen |
| 16020 | 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 | d-url))...................(lambd |
| 16040 | 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 | a.(_).....................(pcase |
| 16060 | 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 6d 73 67 20 2c 65 72 | -let.((`(,response.,http-msg.,er |
| 16080 | 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ror)............................ |
| 160a0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 | ......(gptel--url-parse-response |
| 160c0 | 20 62 61 63 6b 65 6e 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 | .backend.(current-buffer)))).... |
| 160e0 | 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 69 6e | ...................(plist-put.in |
| 16100 | 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 | fo.:status.http-msg)............ |
| 16120 | 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 |
| 16140 | 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))........... |
| 16160 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 20 63 61 6c 6c 62 61 63 | ............(funcall.(or.callbac |
| 16180 | 6b 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 0a 20 20 20 20 | k.#'gptel--insert-response)..... |
| 161a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 73 70 6f | ...........................respo |
| 161c0 | 6e 73 65 20 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 | nse.info)....................... |
| 161e0 | 28 6b 69 6c 6c 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 | (kill-buffer)))................. |
| 16200 | 20 20 6e 69 6c 20 74 20 6e 69 6c 29 29 29 0a 0a 28 63 6c 2d 64 65 66 67 65 6e 65 72 69 63 20 67 | ..nil.t.nil)))..(cl-defgeneric.g |
| 16220 | 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 62 61 63 6b 65 6e 64 20 72 65 | ptel--parse-response.(backend.re |
| 16240 | 73 70 6f 6e 73 65 20 70 72 6f 63 2d 69 6e 66 6f 29 0a 20 20 22 52 65 73 70 6f 6e 73 65 20 65 78 | sponse.proc-info)..."Response.ex |
| 16260 | 74 72 61 63 74 6f 72 20 66 6f 72 20 4c 4c 4d 20 72 65 71 75 65 73 74 73 2e 0a 0a 42 41 43 4b 45 | tractor.for.LLM.requests...BACKE |
| 16280 | 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 52 | ND.is.the.LLM.backend.in.use...R |
| 162a0 | 45 53 50 4f 4e 53 45 20 69 73 20 74 68 65 20 70 61 72 73 65 64 20 4a 53 4f 4e 20 6f 66 20 74 68 | ESPONSE.is.the.parsed.JSON.of.th |
| 162c0 | 65 20 72 65 73 70 6f 6e 73 65 2c 20 61 73 20 61 20 70 6c 69 73 74 2e 0a 0a 50 52 4f 43 2d 49 4e | e.response,.as.a.plist...PROC-IN |
| 162e0 | 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 69 6e 66 6f 72 | FO.is.a.plist.with.process.infor |
| 16300 | 6d 61 74 69 6f 6e 20 61 6e 64 20 6f 74 68 65 72 20 63 6f 6e 74 65 78 74 2e 0a 53 65 65 20 60 67 | mation.and.other.context..See.`g |
| 16320 | 70 74 65 6c 2d 63 75 72 6c 2d 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 6f 72 20 69 74 73 | ptel-curl--get-response'.for.its |
| 16340 | 20 63 6f 6e 74 65 6e 74 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 | .contents.")..(defvar.url-http-e |
| 16360 | 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- |
| 16380 | 72 65 73 70 6f 6e 73 65 2d 73 74 61 74 75 73 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 75 | response-status).(defun.gptel--u |
| 163a0 | 72 6c 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 20 28 62 61 63 6b 65 6e 64 20 72 65 73 70 6f | rl-parse-response.(backend.respo |
| 163c0 | 6e 73 65 2d 62 75 66 66 65 72 29 0a 20 20 22 50 61 72 73 65 20 72 65 73 70 6f 6e 73 65 20 66 72 | nse-buffer)..."Parse.response.fr |
| 163e0 | 6f 6d 20 42 41 43 4b 45 4e 44 20 69 6e 20 52 45 53 50 4f 4e 53 45 2d 42 55 46 46 45 52 2e 22 0a | om.BACKEND.in.RESPONSE-BUFFER.". |
| 16400 | 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 72 65 73 70 6f 6e 73 65 2d | ..(when.(buffer-live-p.response- |
| 16420 | 62 75 66 66 65 72 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 | buffer).....(with-current-buffer |
| 16440 | 20 72 65 73 70 6f 6e 73 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 | .response-buffer.......(when.gpt |
| 16460 | 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 6c 6f 67 67 69 6e | el-log-level.............;loggin |
| 16480 | 67 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 | g.........(save-excursion....... |
| 164a0 | 20 20 20 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 | ....(goto-char.url-http-end-of-h |
| 164c0 | 65 61 64 65 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 | eaders)...........(when.(eq.gpte |
| 164e0 | 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 62 75 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | l-log-level.'debug)............. |
| 16500 | 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 | (gptel--log.(gptel--json-encode. |
| 16520 | 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. |
| 16540 | 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | (point-min).(point)))........... |
| 16560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 68 65 61 64 65 72 73 22 | .............."response.headers" |
| 16580 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 62 75 66 66 65 72 | ))...........(gptel--log.(buffer |
| 165a0 | 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 | -substring-no-properties.(point) |
| 165c0 | 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 20 20 | .(point-max))................... |
| 165e0 | 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 20 20 20 20 28 69 66 | ...."response.body"))).......(if |
| 16600 | 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 |
| 16620 | 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- |
| 16640 | 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)....................... |
| 16660 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 16680 | 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 | ...(line-end-position))))....... |
| 166a0 | 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 70 72 6f 67 6e 20 28 67 6f 74 6f | ..........(response.(progn.(goto |
| 166c0 | 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 20 | -char.url-http-end-of-headers).. |
| 166e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 16700 | 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (condition-case.nil............. |
| 16720 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d | .........................(gptel- |
| 16740 | 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 20 | -json-read)..................... |
| 16760 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 61 64 | ...............(error.'json-read |
| 16780 | 2d 65 72 72 6f 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 | -error)))))...........(cond..... |
| 167a0 | 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 73 65 | ........;;.FIXME.Handle.the.case |
| 167c0 | 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 20 48 | .where.HTTP.100.is.followed.by.H |
| 167e0 | 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 20 20 | TTP.(not.200).BUG.#194.......... |
| 16800 | 20 20 28 28 6f 72 20 28 6d 65 6d 71 20 75 72 6c 2d 68 74 74 70 2d 72 65 73 70 6f 6e 73 65 2d 73 | ..((or.(memq.url-http-response-s |
| 16820 | 74 61 74 75 73 20 27 28 32 30 30 20 31 30 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tatus.'(200.100))............... |
| 16840 | 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5c 5c 28 3f 3a 31 5c 5c 7c 32 5c 5c 29 | ..(string-match-p."\\(?:1\\|2\\) |
| 16860 | 30 30 20 4f 4b 22 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 6c | 00.OK".http-msg)).............(l |
| 16880 | 69 73 74 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 | ist.(string-trim.(gptel--parse-r |
| 168a0 | 65 73 70 6f 6e 73 65 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 | esponse.backend.response........ |
| 168c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 168e0 | 20 20 20 20 20 20 60 28 3a 62 75 66 66 65 72 20 2c 72 65 73 70 6f 6e 73 65 2d 62 75 66 66 65 72 | ......`(:buffer.,response-buffer |
| 16900 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 74 74 70 2d 6d 73 67 29 | )))....................http-msg) |
| 16920 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 | )............((plist-get.respons |
| 16940 | 65 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 65 72 | e.:error).............(let*.((er |
| 16960 | 72 6f 72 2d 64 61 74 61 20 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 72 | ror-data.(plist-get.response.:er |
| 16980 | 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 28 65 72 72 6f 72 2d | ror))....................(error- |
| 169a0 | 6d 73 67 20 28 70 6c 69 73 74 2d 67 65 74 20 65 72 72 6f 72 2d 64 61 74 61 20 3a 6d 65 73 73 61 | msg.(plist-get.error-data.:messa |
| 169c0 | 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 2d 74 | ge))....................(error-t |
| 169e0 | 79 70 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 | ype.(plist-get.error-data.:type) |
| 16a00 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d 6e 61 | )....................(backend-na |
| 16a20 | 6d 65 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b 65 6e 64 29 29 | me.(gptel-backend-name.backend)) |
| 16a40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 70 20 65 72 72 | )...............(if.(stringp.err |
| 16a60 | 6f 72 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 | or-data)...................(prog |
| 16a80 | 6e 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 | n.(message."%s.error:.(%s).%s".b |
| 16aa0 | 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 65 72 72 6f 72 2d 64 61 74 61 29 | ackend-name.http-msg.error-data) |
| 16ac0 | 0a 20 20 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 | ..........................(setq. |
| 16ae0 | 65 72 72 6f 72 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 | error-msg.(string-trim.error-dat |
| 16b00 | 61 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 69 | a))).................(when.(stri |
| 16b20 | 6e 67 70 20 65 72 72 6f 72 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ngp.error-msg).................. |
| 16b40 | 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 61 | .(message."%s.error:.(%s).%s".ba |
| 16b60 | 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d | ckend-name.http-msg.(string-trim |
| 16b80 | 20 65 72 72 6f 72 2d 6d 73 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | .error-msg))).................(w |
| 16ba0 | 68 65 6e 20 65 72 72 6f 72 2d 74 79 70 65 20 28 73 65 74 71 20 68 74 74 70 2d 6d 73 67 20 28 63 | hen.error-type.(setq.http-msg.(c |
| 16bc0 | 6f 6e 63 61 74 20 22 28 22 20 20 68 74 74 70 2d 6d 73 67 20 22 29 20 22 20 28 73 74 72 69 6e 67 | oncat."("..http-msg.").".(string |
| 16be0 | 2d 74 72 69 6d 20 65 72 72 6f 72 2d 74 79 70 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -trim.error-type)))))........... |
| 16c00 | 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d | ....(list.nil.(concat."(".http-m |
| 16c20 | 73 67 20 22 29 20 22 20 28 6f 72 20 65 72 72 6f 72 2d 6d 73 67 20 22 22 29 29 29 29 29 0a 20 20 | sg.").".(or.error-msg."")))))... |
| 16c40 | 20 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 61 | .........((eq.response.'json-rea |
| 16c60 | 64 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 28 | d-error).............(list.nil.( |
| 16c80 | 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 64 | concat."(".http-msg.").Malformed |
| 16ca0 | 20 4a 53 4f 4e 20 69 6e 20 72 65 73 70 6f 6e 73 65 2e 22 29 20 22 6a 73 6f 6e 2d 72 65 61 64 2d | .JSON.in.response.")."json-read- |
| 16cc0 | 65 72 72 6f 72 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6c 69 73 74 20 6e 69 6c | error"))............(t.(list.nil |
| 16ce0 | 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 6e | .(concat."(".http-msg.").Could.n |
| 16d00 | 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 20 | ot.parse.HTTP.response.")....... |
| 16d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 | .............."Could.not.parse.H |
| 16d40 | 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 | TTP.response."))).........(list. |
| 16d60 | 6e 69 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c | nil.(concat."(".http-msg.").Coul |
| 16d80 | 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.").... |
| 16da0 | 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 |
| 16dc0 | 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 | .response.")))))..(cl-defun.gpte |
| 16de0 | 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 20 28 26 6b 65 79 20 28 62 61 63 6b 65 6e 64 | l--sanitize-model.(&key.(backend |
| 16e00 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .gptel-backend)................. |
| 16e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 74 | ......................(model.gpt |
| 16e40 | 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | el-model)....................... |
| 16e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f 6f 73 68 20 74 29 29 0a 20 20 22 43 | ................(shoosh.t))..."C |
| 16e80 | 68 65 63 6b 20 69 66 20 4d 4f 44 45 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 42 41 | heck.if.MODEL.is.available.in.BA |
| 16ea0 | 43 4b 45 4e 44 2c 20 61 64 6a 75 73 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 0a 49 66 20 53 | CKEND,.adjust.accordingly...If.S |
| 16ec0 | 48 4f 4f 53 48 20 69 73 20 74 72 75 65 2c 20 64 6f 6e 27 74 20 69 73 73 75 65 20 61 20 77 61 72 | HOOSH.is.true,.don't.issue.a.war |
| 16ee0 | 6e 69 6e 67 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 61 76 61 69 6c 61 62 6c 65 20 28 67 70 74 65 | ning."...(let*.((available.(gpte |
| 16f00 | 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 | l-backend-models.backend)))..... |
| 16f20 | 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 65 29 | (unless.(member.model.available) |
| 16f40 | 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 61 69 | .......(let.((fallback.(car.avai |
| 16f60 | 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 68 0a | lable))).........(unless.shoosh. |
| 16f80 | 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 20 20 | ..........(display-warning...... |
| 16fa0 | 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 74 20 | ......'gptel............(format. |
| 16fc0 | 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 6c 27 | (concat."Preferred.`gptel-model' |
| 16fe0 | 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 20 20 | .\"%s\".not".................... |
| 17000 | 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 75 73 | ........"supported.in.\"%s\",.us |
| 17020 | 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 20 20 | ing.\"%s\".instead")............ |
| 17040 | 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 61 6d | ........model.(gptel-backend-nam |
| 17060 | 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 20 28 | e.backend).fallback))).........( |
| 17080 | 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 6b 29 | setq-local.gptel-model.fallback) |
| 170a0 | 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 74 65 | ))))..;;;###autoload.(defun.gpte |
| 170c0 | 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 74 65 | l.(name.&optional._.initial.inte |
| 170e0 | 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 74 20 | ractivep)..."Switch.to.or.start. |
| 17100 | 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 57 69 74 68 20 | a.chat.session.with.NAME...With. |
| 17120 | 61 20 70 72 65 66 69 78 20 61 72 67 2c 20 71 75 65 72 79 20 66 6f 72 20 61 20 28 6e 65 77 29 20 | a.prefix.arg,.query.for.a.(new). |
| 17140 | 73 65 73 73 69 6f 6e 20 6e 61 6d 65 2e 0a 0a 41 73 6b 20 66 6f 72 20 41 50 49 2d 4b 45 59 20 69 | session.name...Ask.for.API-KEY.i |
| 17160 | 66 20 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 69 73 20 75 6e 73 65 74 2e 0a 0a 49 66 20 | f.`gptel-api-key'.is.unset...If. |
| 17180 | 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 75 73 65 20 69 74 20 61 73 20 74 68 65 20 | region.is.active,.use.it.as.the. |
| 171a0 | 49 4e 49 54 49 41 4c 20 70 72 6f 6d 70 74 2e 20 20 52 65 74 75 72 6e 73 20 74 68 65 0a 62 75 66 | INITIAL.prompt...Returns.the.buf |
| 171c0 | 66 65 72 20 63 72 65 61 74 65 64 20 6f 72 20 73 77 69 74 63 68 65 64 20 74 6f 2e 0a 0a 49 4e 54 | fer.created.or.switched.to...INT |
| 171e0 | 45 52 41 43 54 49 56 45 50 20 69 73 20 74 20 77 68 65 6e 20 67 70 74 65 6c 20 69 73 20 63 61 6c | ERACTIVEP.is.t.when.gptel.is.cal |
| 17200 | 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 | led.interactively."...(interacti |
| 17220 | 76 65 0a 20 20 20 28 6c 65 74 2a 20 28 28 62 61 63 6b 65 6e 64 20 28 64 65 66 61 75 6c 74 2d 76 | ve....(let*.((backend.(default-v |
| 17240 | 61 6c 75 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 | alue.'gptel-backend))........... |
| 17260 | 28 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | (backend-name............(format |
| 17280 | 20 22 2a 25 73 2a 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 62 61 63 6b | ."*%s*".(gptel-backend-name.back |
| 172a0 | 65 6e 64 29 29 29 29 0a 20 20 20 20 20 28 6c 69 73 74 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 | end))))......(list.(if.current-p |
| 172c0 | 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 | refix-arg................(read-s |
| 172e0 | 74 72 69 6e 67 20 22 53 65 73 73 69 6f 6e 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 | tring."Session.name:.".......... |
| 17300 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 | ...................(generate-new |
| 17320 | 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -buffer-name.................... |
| 17340 | 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 | ..........backend-name))........ |
| 17360 | 20 20 20 20 20 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | ......backend-name)............( |
| 17380 | 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | condition-case.nil.............. |
| 173a0 | 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 | ..(gptel--get-api-key........... |
| 173c0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6b 65 79 20 62 61 63 6b 65 6e 64 | ......(gptel-backend-key.backend |
| 173e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 | ))..............((error.user-err |
| 17400 | 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 61 70 | or)...............(setq.gptel-ap |
| 17420 | 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 28 72 65 61 64 2d | i-key.....................(read- |
| 17440 | 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 | passwd......................(for |
| 17460 | 6d 61 74 20 22 25 73 20 41 50 49 20 6b 65 79 3a 20 22 20 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 | mat."%s.API.key:.".backend-name) |
| 17480 | 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e | ))))............(and.(use-region |
| 174a0 | 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 | -p).................(buffer-subs |
| 174c0 | 74 72 69 6e 67 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 | tring.(region-beginning)........ |
| 174e0 | 20 20 20 20 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 |
| 17500 | 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 28 77 69 74 | on-end)))............t)))...(wit |
| 17520 | 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 | h-current-buffer.(get-buffer-cre |
| 17540 | 61 74 65 20 6e 61 6d 65 29 0a 20 20 20 20 28 63 6f 6e 64 20 3b 53 65 74 20 6d 61 6a 6f 72 20 6d | ate.name).....(cond.;Set.major.m |
| 17560 | 6f 64 65 0a 20 20 20 20 20 28 28 65 71 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 64 | ode......((eq.major-mode.gptel-d |
| 17580 | 65 66 61 75 6c 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 20 28 28 65 71 20 67 70 74 65 6c 2d 64 65 | efault-mode))......((eq.gptel-de |
| 175a0 | 66 61 75 6c 74 2d 6d 6f 64 65 20 27 74 65 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 74 65 | fault-mode.'text-mode).......(te |
| 175c0 | 78 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 | xt-mode).......(visual-line-mode |
| 175e0 | 20 31 29 29 0a 20 20 20 20 20 28 74 20 28 66 75 6e 63 61 6c 6c 20 67 70 74 65 6c 2d 64 65 66 61 | .1))......(t.(funcall.gptel-defa |
| 17600 | 75 6c 74 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 | ult-mode))).....(gptel--sanitize |
| 17620 | 2d 6d 6f 64 65 6c 20 3a 62 61 63 6b 65 6e 64 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 | -model.:backend.(default-value.' |
| 17640 | 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-backend).................. |
| 17660 | 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 | ..........:model.(default-value. |
| 17680 | 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 'gptel-model)................... |
| 176a0 | 20 20 20 20 20 20 20 20 20 3a 73 68 6f 6f 73 68 20 6e 69 6c 29 0a 20 20 20 20 28 75 6e 6c 65 73 | .........:shoosh.nil).....(unles |
| 176c0 | 73 20 67 70 74 65 6c 2d 6d 6f 64 65 20 28 67 70 74 65 6c 2d 6d 6f 64 65 20 31 29 29 0a 20 20 20 | s.gptel-mode.(gptel-mode.1)).... |
| 176e0 | 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 28 73 6b | .(goto-char.(point-max)).....(sk |
| 17700 | 69 70 2d 63 68 61 72 73 2d 62 61 63 6b 77 61 72 64 20 22 5c 74 5c 72 5c 6e 22 29 0a 20 20 20 20 | ip-chars-backward."\t\r\n")..... |
| 17720 | 28 69 66 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 28 6f 72 20 69 6e 69 74 69 61 6c 20 28 | (if.(bobp).(insert.(or.initial.( |
| 17740 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 0a 20 | gptel-prompt-prefix-string)))).. |
| 17760 | 20 20 20 28 77 68 65 6e 20 69 6e 74 65 72 61 63 74 69 76 65 70 0a 20 20 20 20 20 20 28 64 69 73 | ...(when.interactivep.......(dis |
| 17780 | 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 74 | play-buffer.(current-buffer).gpt |
| 177a0 | 65 6c 2d 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 | el-display-buffer-action)....... |
| 177c0 | 28 6d 65 73 73 61 67 65 20 22 53 65 6e 64 20 79 6f 75 72 20 71 75 65 72 79 20 77 69 74 68 20 25 | (message."Send.your.query.with.% |
| 177e0 | 73 21 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 | s!"................(substitute-c |
| 17800 | 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 22 5c 5c 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 29 29 29 0a | ommand-keys."\\[gptel-send]"))). |
| 17820 | 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 0a 0c 0a 3b 3b 20 52 65 73 | ....(current-buffer)))....;;.Res |
| 17840 | 70 6f 6e 73 65 20 74 77 65 61 6b 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 0a 0a 28 64 65 66 75 6e 20 | ponse.tweaking.commands..(defun. |
| 17860 | 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 28 | gptel--attach-response-history.( |
| 17880 | 68 69 73 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 41 74 74 61 63 68 | history.&optional.buf)..."Attach |
| 178a0 | 20 48 49 53 54 4f 52 59 20 74 6f 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 73 70 6f | .HISTORY.to.the.next.gptel.respo |
| 178c0 | 6e 73 65 20 69 6e 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 48 49 53 54 4f 52 59 20 69 73 20 61 | nse.in.buffer.BUF...HISTORY.is.a |
| 178e0 | 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 74 79 70 69 63 61 6c 6c 79 20 63 6f 6e 74 61 | .list.of.strings.typically.conta |
| 17900 | 69 6e 69 6e 67 20 74 65 78 74 20 72 65 70 6c 61 63 65 64 0a 62 79 20 67 70 74 65 6c 2e 20 20 42 | ining.text.replaced.by.gptel...B |
| 17920 | 55 46 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 66 20 6e 6f 74 20 | UF.is.the.current.buffer.if.not. |
| 17940 | 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 6d 61 69 6e | specified...This.is.used.to.main |
| 17960 | 74 61 69 6e 20 76 61 72 69 61 6e 74 73 20 6f 66 20 70 72 6f 6d 70 74 73 20 6f 72 20 72 65 73 70 | tain.variants.of.prompts.or.resp |
| 17980 | 6f 6e 73 65 73 20 74 6f 20 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 66 20 72 65 71 75 69 72 65 | onses.to.diff.against.if.require |
| 179a0 | 64 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 62 | d."...(with-current-buffer.(or.b |
| 179c0 | 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 72 65 63 | uf.(current-buffer)).....(letrec |
| 179e0 | 20 28 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 20 | .((gptel--attach-after.......... |
| 17a00 | 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | .....(lambda.(b.e).............. |
| 17a20 | 20 20 20 28 70 75 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 62 20 65 20 27 67 70 74 65 6c | ...(put-text-property.b.e.'gptel |
| 17a40 | 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 20 20 20 20 20 20 20 | -history........................ |
| 17a60 | 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 65 6e 73 75 72 65 2d 6c 69 73 74 | ............(append.(ensure-list |
| 17a80 | 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .history)....................... |
| 17aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d 70 | .....................(get-char-p |
| 17ac0 | 72 6f 70 65 72 74 79 20 28 31 2d 20 65 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 29 | roperty.(1-.e).'gptel-history))) |
| 17ae0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 | .................(remove-hook.'g |
| 17b00 | 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 20 | ptel-post-response-functions.... |
| 17b20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d | ..........................gptel- |
| 17b40 | 2d 61 74 74 61 63 68 2d 61 66 74 65 72 20 27 6c 6f 63 61 6c 29 29 29 29 0a 20 20 20 20 20 20 28 | -attach-after.'local)))).......( |
| 17b60 | 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 |
| 17b80 | 6e 63 74 69 6f 6e 73 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 | nctions.gptel--attach-after..... |
| 17ba0 | 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6c 6f 63 61 6c 29 29 29 29 0a 0a 28 64 65 66 | ............nil.'local))))..(def |
| 17bc0 | 75 6e 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 20 62 | un.gptel--ediff.(&optional.arg.b |
| 17be0 | 6f 75 6e 64 73 2d 66 75 6e 63 29 0a 20 20 22 45 64 69 66 66 20 72 65 73 70 6f 6e 73 65 20 61 74 | ounds-func)..."Ediff.response.at |
| 17c00 | 20 70 6f 69 6e 74 20 61 67 61 69 6e 73 74 20 70 72 65 76 69 6f 75 73 20 67 70 74 65 6c 20 72 65 | .point.against.previous.gptel.re |
| 17c20 | 73 70 6f 6e 73 65 73 2e 0a 0a 49 66 20 70 72 65 66 69 78 20 41 52 47 20 69 73 20 6e 6f 6e 2d 6e | sponses...If.prefix.ARG.is.non-n |
| 17c40 | 69 6c 2c 20 73 65 6c 65 63 74 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 | il,.select.the.previous.response |
| 17c60 | 20 74 6f 20 65 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 2e | .to.ediff.against.interactively. |
| 17c80 | 0a 0a 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 42 4f 55 4e 44 53 2d 46 55 4e 43 20 | ..If.specified,.use.BOUNDS-FUNC. |
| 17ca0 | 74 6f 20 63 6f 6d 70 75 74 65 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 0a 72 65 73 | to.compute.the.bounds.of.the.res |
| 17cc0 | 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2e 20 20 54 68 69 73 20 63 61 6e 20 62 65 20 75 73 65 | ponse.at.point...This.can.be.use |
| 17ce0 | 64 20 74 6f 20 69 6e 63 6c 75 64 65 20 61 64 64 69 74 69 6f 6e 61 6c 0a 63 6f 6e 74 65 78 74 20 | d.to.include.additional.context. |
| 17d00 | 66 6f 72 20 74 68 65 20 65 64 69 66 66 20 73 65 73 73 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 | for.the.ediff.session."...(inter |
| 17d20 | 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 77 68 65 6e 20 28 67 70 74 65 6c 2d 2d 61 74 2d 72 | active."P")...(when.(gptel--at-r |
| 17d40 | 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 29 0a 20 20 20 20 28 70 63 61 73 65 2d 6c 65 | esponse-history-p).....(pcase-le |
| 17d60 | 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 | t*.((`(,beg...,end).(funcall.(or |
| 17d80 | 20 62 6f 75 6e 64 73 2d 66 75 6e 63 20 23 27 67 70 74 65 6c 2d 2d 67 65 74 2d 62 6f 75 6e 64 73 | .bounds-func.#'gptel--get-bounds |
| 17da0 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 6f | )))..................(prev-respo |
| 17dc0 | 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 67 0a 20 20 | nse...................(if.arg... |
| 17de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d | ....................(completing- |
| 17e00 | 72 65 61 64 20 22 43 68 6f 6f 73 65 20 72 65 73 70 6f 6e 73 65 20 76 61 72 69 61 6e 74 20 74 6f | read."Choose.response.variant.to |
| 17e20 | 20 64 69 66 66 20 61 67 61 69 6e 73 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .diff.against:."................ |
| 17e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 | ........................(get-cha |
| 17e60 | 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 68 69 73 74 6f 72 | r-property.(point).'gptel-histor |
| 17e80 | 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y).............................. |
| 17ea0 | 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..........nil.t)................ |
| 17ec0 | 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 | .....(car-safe.(get-char-propert |
| 17ee0 | 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 29 29 0a 20 20 20 | y.(point).'gptel-history)))).... |
| 17f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 65 20 6d 61 6a 6f 72 | ..............(buffer-mode.major |
| 17f20 | 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 6e 61 6d 65 | -mode)..................(bufname |
| 17f40 | 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .(buffer-name))................. |
| 17f60 | 20 28 60 28 2c 6e 65 77 2d 62 75 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e 65 77 2d 65 6e 64 29 0a | .(`(,new-buf.,new-beg.,new-end). |
| 17f80 | 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 74 2d | ..................(with-current- |
| 17fa0 | 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 28 67 65 | buffer.......................(ge |
| 17fc0 | 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 | t-buffer-create.(concat.bufname. |
| 17fe0 | 22 2d 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | "-PREVIOUS-*"))................. |
| 18000 | 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 | ....(let.((inhibit-read-only.t)) |
| 18020 | 0a 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 61 73 65 2d 62 75 | .......................(erase-bu |
| 18040 | 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c | ffer).......................(del |
| 18060 | 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 62 75 66 66 65 72 2d 6d 6f | ay-mode-hooks.(funcall.buffer-mo |
| 18080 | 64 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 76 69 73 75 | de)).......................(visu |
| 180a0 | 61 6c 2d 6c 69 6e 65 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 | al-line-mode)................... |
| 180c0 | 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 | ....(insert.prev-response)...... |
| 180e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 | .................(goto-char.(poi |
| 18100 | 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | nt-min)).......................( |
| 18120 | 6c 69 73 74 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 | list.(current-buffer).(point-min |
| 18140 | 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 | ).(point-max)))))).......(unless |
| 18160 | 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 65 | .prev-response.(user-error."gpte |
| 18180 | 6c 20 72 65 73 70 6f 6e 73 65 20 69 73 20 61 64 64 69 74 69 76 65 3a 20 6e 6f 20 63 68 61 6e 67 | l.response.is.additive:.no.chang |
| 181a0 | 65 73 20 74 6f 20 65 64 69 66 66 22 29 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 65 | es.to.ediff")).......(require.'e |
| 181c0 | 64 69 66 66 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 63 77 63 20 28 63 75 72 72 65 | diff).......(letrec.((cwc.(curre |
| 181e0 | 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 | nt-window-configuration))....... |
| 18200 | 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 74 6f 72 65 0a 20 | .........(gptel--ediff-restore.. |
| 18220 | 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 0a 20 20 20 20 20 20 | ...............(lambda.()....... |
| 18240 | 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 69 67 | ............(when.(window-config |
| 18260 | 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 20 20 | uration-p.cwc).................. |
| 18280 | 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 |
| 182a0 | 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 65 | ))...................(kill-buffe |
| 182c0 | 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 2d | r.(get-buffer.(concat.bufname."- |
| 182e0 | 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | PREVIOUS-*"))).................. |
| 18300 | 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 | .(kill-buffer.(get-buffer.(conca |
| 18320 | 74 20 62 75 66 6e 61 6d 65 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 | t.bufname."-CURRENT-*")))....... |
| 18340 | 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 65 64 69 66 66 2d | ............(remove-hook.'ediff- |
| 18360 | 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 29 | quit-hook.gptel--ediff-restore)) |
| 18380 | 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 | )).........(add-hook.'ediff-quit |
| 183a0 | 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 | -hook.gptel--ediff-restore)..... |
| 183c0 | 20 20 20 20 28 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 23 27 65 64 69 66 66 2d 72 65 67 69 | ....(apply..........#'ediff-regi |
| 183e0 | 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 | ons-internal..........(get-buffe |
| 18400 | 72 20 28 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 28 63 75 72 | r.(ediff-make-cloned-buffer.(cur |
| 18420 | 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 0a 20 20 20 20 | rent-buffer)."-CURRENT-*"))..... |
| 18440 | 20 20 20 20 20 62 65 67 20 65 6e 64 20 6e 65 77 2d 62 75 66 20 6e 65 77 2d 62 65 67 20 6e 65 77 | .....beg.end.new-buf.new-beg.new |
| 18460 | 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | -end..........nil..........(list |
| 18480 | 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 64 2d 77 | .'ediff-regions-wordwise.'word-w |
| 184a0 | 69 73 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 28 69 66 20 28 74 72 61 6e 73 69 | ise.nil)..........;;.(if.(transi |
| 184c0 | 65 6e 74 2d 61 72 67 2d 76 61 6c 75 65 20 22 2d 77 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 | ent-arg-value."-w".args)........ |
| 184e0 | 20 20 3b 3b 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 77 6f | ..;;.....(list.'ediff-regions-wo |
| 18500 | 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 20 20 20 20 20 20 20 | rdwise.'word-wise.nil).......... |
| 18520 | 3b 3b 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 6c 69 6e 65 77 69 | ;;...(list.'ediff-regions-linewi |
| 18540 | 73 65 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 29 29 29 29 29 0a 0a 28 64 65 | se.nil.nil))..........)))))..(de |
| 18560 | 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a 20 20 22 4d | fun.gptel--mark-response.()..."M |
| 18580 | 61 72 6b 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 20 | ark.gptel.response.at.point,.if. |
| 185a0 | 61 6e 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 | any."...(interactive)...(unless. |
| 185c0 | 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 75 73 65 72 2d 65 72 72 | (gptel--in-response-p).(user-err |
| 185e0 | 6f 72 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 29 | or."No.gptel.response.at.point") |
| 18600 | 29 0a 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 | )...(pcase-let*.((`(,beg...,end) |
| 18620 | 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 28 67 6f 74 6f | .(gptel--get-bounds))).....(goto |
| 18640 | 2d 63 68 61 72 20 62 65 67 29 20 28 70 75 73 68 2d 6d 61 72 6b 29 20 28 67 6f 74 6f 2d 63 68 61 | -char.beg).(push-mark).(goto-cha |
| 18660 | 72 20 65 6e 64 29 20 28 61 63 74 69 76 61 74 65 2d 6d 61 72 6b 29 29 29 0a 0a 28 64 65 66 75 6e | r.end).(activate-mark)))..(defun |
| 18680 | 20 67 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f | .gptel--previous-variant.(&optio |
| 186a0 | 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 70 72 65 76 69 6f 75 73 20 67 | nal.arg)..."Switch.to.previous.g |
| 186c0 | 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 20 | ptel-response.at.this.point,.if. |
| 186e0 | 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 0a | it.exists."...(interactive."p"). |
| 18700 | 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 28 | ..(pcase-let*.((`(,beg...,end).( |
| 18720 | 67 70 74 65 6c 2d 2d 67 65 74 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--get-bounds))............. |
| 18740 | 20 20 20 28 68 69 73 74 6f 72 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 | ...(history.(get-char-property.( |
| 18760 | 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 | point).'gptel-history))......... |
| 18780 | 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 73 61 66 65 20 68 | .......(alt-response.(car-safe.h |
| 187a0 | 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 66 66 73 65 74 29 | istory))................(offset) |
| 187c0 | 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 20 61 6c 74 2d 72 | ).....(unless.(and.history.alt-r |
| 187e0 | 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 20 22 4e 6f 20 76 | esponse).......(user-error."No.v |
| 18800 | 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 22 29 29 0a 20 20 | ariant.responses.available"))... |
| 18820 | 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 65 74 71 20 68 69 | ..(if.(>.arg.0).........(setq.hi |
| 18840 | 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 29 0a 20 20 20 20 | story.(append.(cdr.history)..... |
| 18860 | 20 20 20 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. |
| 18880 | 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. |
| 188a0 | 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 20 20 20 20 20 61 | beg.end)))).......(setq........a |
| 188c0 | 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 74 6f 72 79 29 29 | lt-response.(car.(last.history)) |
| 188e0 | 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 66 65 72 2d 73 75 | ........history.(cons.(buffer-su |
| 18900 | 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 0a 20 | bstring-no-properties.beg.end).. |
| 18920 | 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 61 73 74 20 68 69 | ....................(nbutlast.hi |
| 18940 | 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 6f 70 65 72 74 69 | story)))).....(add-text-properti |
| 18960 | 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 61 6c 74 2d 72 65 | es..............0.(length.alt-re |
| 18980 | 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 65 6c 20 72 65 73 | sponse)..............`(gptel.res |
| 189a0 | 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 72 79 29 0a 20 20 | ponse.gptel-history.,history)... |
| 189c0 | 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 20 20 20 28 73 65 | ...........alt-response).....(se |
| 189e0 | 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 62 65 67 29 20 28 | tq.offset.(min.(-.(point).beg).( |
| 18a00 | 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 29 0a 20 20 20 20 | 1-.(length.alt-response))))..... |
| 18a20 | 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 28 69 6e 73 | (delete-region.beg.end).....(ins |
| 18a40 | 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 6f 2d 63 68 61 72 | ert.alt-response).....(goto-char |
| 18a60 | 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 65 2d 6d 6f 6d 65 | .(+.beg.offset)).....(pulse-mome |
| 18a80 | 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 20 28 2b 20 62 65 | ntary-highlight-region.beg.(+.be |
| 18aa0 | 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 29 0a 0a 28 64 65 | g.(length.alt-response)))))..(de |
| 18ac0 | 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 6f 70 74 69 6f 6e | fun.gptel--next-variant.(&option |
| 18ae0 | 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 67 70 74 65 6c 2d | al.arg)..."Switch.to.next.gptel- |
| 18b00 | 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 65 78 | response.at.this.point,.if.it.ex |
| 18b20 | 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 67 70 | ists."...(interactive."p")...(gp |
| 18b40 | 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 72 67 29 29 29 0a | tel--previous-variant.(-.arg))). |
| 18b60 | 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 6c 2e 65 6c 20 65 | .(provide.'gptel).;;;.gptel.el.e |
| 18b80 | 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | nds.here........................ |
| 18ba0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18c00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 74 72 61 6e 73 69 | gptel-20240422.1939/gptel-transi |
| 18c20 | 65 6e 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ent.el.......................... |
| 18c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18c60 | 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 |
| 18c80 | 30 31 30 37 37 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 31 30 00 20 30 00 00 00 | 0107735.00000000000.015610..0... |
| 18ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18d00 | 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................... |
| 18d20 | 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................... |
| 18d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18e00 | 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 |
| 18e20 | 69 65 6e 74 20 6d 65 6e 75 20 66 6f 72 20 47 50 54 65 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c | ient.menu.for.GPTel..-*-.lexical |
| 18e40 | 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.( |
| 18e60 | 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b | C).2023..Karthik.Chikmagalur..;; |
| 18e80 | 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 |
| 18ea0 | 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 |
| 18ec0 | 65 79 77 6f 72 64 73 3a 20 63 6f 6e 76 65 6e 69 65 6e 63 65 0a 0a 3b 3b 20 53 50 44 58 2d 4c 69 | eywords:.convenience..;;.SPDX-Li |
| 18ee0 | 63 65 6e 73 65 2d 49 64 65 6e 74 69 66 69 65 72 3a 20 47 50 4c 2d 33 2e 30 2d 6f 72 2d 6c 61 74 | cense-Identifier:.GPL-3.0-or-lat |
| 18f00 | 65 72 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 | er..;;.This.program.is.free.soft |
| 18f20 | 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e | ware;.you.can.redistribute.it.an |
| 18f40 | 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d | d/or.modify.;;.it.under.the.term |
| 18f60 | 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 | s.of.the.GNU.General.Public.Lice |
| 18f80 | 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 | nse.as.published.by.;;.the.Free. |
| 18fa0 | 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 | Software.Foundation,.either.vers |
| 18fc0 | 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 | ion.3.of.the.License,.or.;;.(at. |
| 18fe0 | 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a | your.option).any.later.version.. |
| 19000 | 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 | .;;.This.program.is.distributed. |
| 19020 | 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 | in.the.hope.that.it.will.be.usef |
| 19040 | 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b | ul,.;;.but.WITHOUT.ANY.WARRANTY; |
| 19060 | 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e | .without.even.the.implied.warran |
| 19080 | 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e | ty.of.;;.MERCHANTABILITY.or.FITN |
| 190a0 | 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 |
| 190c0 | 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 | ee.the.;;.GNU.General.Public.Lic |
| 190e0 | 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 | ense.for.more.details...;;.You.s |
| 19100 | 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 | hould.have.received.a.copy.of.th |
| 19120 | 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 | e.GNU.General.Public.License.;;. |
| 19140 | 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 | along.with.this.program...If.not |
| 19160 | 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e | ,.see.<https://www.gnu.org/licen |
| 19180 | 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 0a 0a 3b 3b 3b | ses/>...;;;.Commentary:..;;..;;; |
| 191a0 | 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 | .Code:.(require.'cl-lib).(requir |
| 191c0 | 65 20 27 67 70 74 65 6c 29 0a 28 72 65 71 75 69 72 65 20 27 74 72 61 6e 73 69 65 6e 74 29 0a 0a | e.'gptel).(require.'transient).. |
| 191e0 | 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d | (declare-function.ediff-regions- |
| 19200 | 69 6e 74 65 72 6e 61 6c 20 22 65 64 69 66 66 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 | internal."ediff").(declare-funct |
| 19220 | 69 6f 6e 20 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 22 65 64 | ion.ediff-make-cloned-buffer."ed |
| 19240 | 69 66 66 2d 75 74 69 6c 73 22 29 0a 0a 0c 0a 3b 3b 20 2a 20 48 65 6c 70 65 72 20 66 75 6e 63 74 | iff-utils")....;;.*.Helper.funct |
| 19260 | 69 6f 6e 73 20 61 6e 64 20 76 61 72 73 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 73 65 | ions.and.vars..(defvar.gptel--se |
| 19280 | 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 20 6e 69 6c 0a 20 20 22 53 65 74 20 6d 6f 64 65 | t-buffer-locally.nil..."Set.mode |
| 192a0 | 6c 20 70 61 72 61 6d 65 74 65 72 73 20 66 72 6f 6d 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 20 62 | l.parameters.from.`gptel-menu'.b |
| 192c0 | 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 2e 0a 0a 41 66 66 65 63 74 73 20 74 68 65 20 73 79 73 74 | uffer-locally...Affects.the.syst |
| 192e0 | 65 6d 20 6d 65 73 73 61 67 65 20 74 6f 6f 2e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | em.message.too.")..(defun.gptel- |
| 19300 | 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 28 73 79 6d 20 76 61 6c 75 65 20 26 6f 70 74 69 | -set-with-scope.(sym.value.&opti |
| 19320 | 6f 6e 61 6c 20 73 63 6f 70 65 29 0a 20 20 22 53 65 74 20 53 59 4d 42 4f 4c 27 73 20 73 79 6d 62 | onal.scope)..."Set.SYMBOL's.symb |
| 19340 | 6f 6c 2d 76 61 6c 75 65 20 74 6f 20 56 41 4c 55 45 20 77 69 74 68 20 53 43 4f 50 45 2e 0a 0a 49 | ol-value.to.VALUE.with.SCOPE...I |
| 19360 | 66 20 53 43 4f 50 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 65 74 20 69 74 20 62 75 66 66 65 | f.SCOPE.is.non-nil,.set.it.buffe |
| 19380 | 72 2d 6c 6f 63 61 6c 6c 79 2c 20 65 6c 73 65 20 63 6c 65 61 72 20 61 6e 79 0a 62 75 66 66 65 72 | r-locally,.else.clear.any.buffer |
| 193a0 | 2d 6c 6f 63 61 6c 20 76 61 6c 75 65 20 61 6e 64 20 73 65 74 20 69 74 73 20 64 65 66 61 75 6c 74 | -local.value.and.set.its.default |
| 193c0 | 20 67 6c 6f 62 61 6c 20 76 61 6c 75 65 2e 22 0a 20 20 28 69 66 20 73 63 6f 70 65 0a 20 20 20 20 | .global.value."...(if.scope..... |
| 193e0 | 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 29 | ..(set.(make-local-variable.sym) |
| 19400 | 20 76 61 6c 75 65 29 0a 20 20 20 20 28 6b 69 6c 6c 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 | .value).....(kill-local-variable |
| 19420 | 20 73 79 6d 29 0a 20 20 20 20 28 73 65 74 20 73 79 6d 20 76 61 6c 75 65 29 29 29 0a 0a 28 64 65 | .sym).....(set.sym.value)))..(de |
| 19440 | 66 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 | fun.gptel--get-directive.(args). |
| 19460 | 20 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 | .."Find.the.additional.directive |
| 19480 | 20 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 | .in.the.transient.ARGS...Meant.t |
| 194a0 | 6f 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 | o.be.called.when.`gptel-menu'.is |
| 194c0 | 20 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 | .active."...(cl-some.(lambda.(s) |
| 194e0 | 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 78 | .(and.(stringp.s).(string-prefix |
| 19500 | 2d 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 | -p.":".s)....................... |
| 19520 | 20 28 63 6f 6e 63 61 74 20 22 5c 6e 5c 6e 22 20 28 73 75 62 73 74 72 69 6e 67 20 73 20 31 29 29 | .(concat."\n\n".(substring.s.1)) |
| 19540 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 0a 0a 28 64 65 | ))...................args))..(de |
| 19560 | 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 63 74 69 6f 6e 73 2d 6d 61 6b 65 2d 6f 76 65 | fun.gptel--instructions-make-ove |
| 19580 | 72 6c 61 79 20 28 74 65 78 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 76 29 0a 20 20 22 54 4f 44 4f | rlay.(text.&optional.ov)..."TODO |
| 195a0 | 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 | "...(save-excursion.....(cond... |
| 195c0 | 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 72 | ...((use-region-p).(goto-char.(r |
| 195e0 | 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 29 0a 20 20 20 20 20 28 28 67 70 74 65 6c 2d | egion-beginning)))......((gptel- |
| 19600 | 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 | -in-response-p).(gptel-beginning |
| 19620 | 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 20 28 74 20 28 74 65 78 74 2d 70 72 6f | -of-response))......(t.(text-pro |
| 19640 | 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 27 67 70 74 65 6c 20 27 72 65 | perty-search-backward.'gptel.'re |
| 19660 | 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 | sponse))).....(skip-chars-forwar |
| 19680 | 64 20 22 5c 6e 20 5c 74 22 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 6f 76 20 28 6f 76 65 72 | d."\n.\t").....(if.(and.ov.(over |
| 196a0 | 6c 61 79 70 20 6f 76 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 20 | layp.ov)).........(move-overlay. |
| 196c0 | 6f 76 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 | ov.(point).(point).(current-buff |
| 196e0 | 65 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 76 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 | er)).......(setq.ov.(make-overla |
| 19700 | 79 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 29 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 28 | y.(point).(point).nil.t))).....( |
| 19720 | 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 6e 69 | overlay-put.ov.'before-string.ni |
| 19740 | 6c 29 0a 20 20 20 20 3b 3b 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 65 71 | l).....;;.(unless.(or.(bobp).(eq |
| 19760 | 20 28 63 68 61 72 2d 62 65 66 6f 72 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 3b 3b 20 20 20 28 | .(char-before)."\n")).....;;...( |
| 19780 | 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 62 65 66 6f 72 65 2d 73 74 72 69 6e 67 20 28 70 | overlay-put.ov.'before-string.(p |
| 197a0 | 72 6f 70 65 72 74 69 7a 65 20 22 5c 6e 22 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 | ropertize."\n".'font-lock-face.' |
| 197c0 | 73 68 61 64 6f 77 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 20 27 63 | shadow))).....(overlay-put.ov.'c |
| 197e0 | 61 74 65 67 6f 72 79 20 27 67 70 74 65 6c 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 | ategory.'gptel).....(overlay-put |
| 19800 | 0a 20 20 20 20 20 6f 76 20 27 61 66 74 65 72 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 28 63 6f 6e | ......ov.'after-string......(con |
| 19820 | 63 61 74 0a 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 22 47 | cat.......(propertize.(concat."G |
| 19840 | 50 54 45 4c 3a 20 22 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | PTEL:.".text)................... |
| 19860 | 27 66 6f 6e 74 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 | 'font-lock-face.'(:inherit.shado |
| 19880 | 77 20 3a 62 6f 78 20 74 29 29 0a 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 6f 76 29 29 | w.:box.t))......."\n")).....ov)) |
| 198a0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 76 | ..(defun.gptel--transient-read-v |
| 198c0 | 61 72 69 61 62 6c 65 20 28 70 72 6f 6d 70 74 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 68 69 | ariable.(prompt.initial-input.hi |
| 198e0 | 73 74 6f 72 79 29 0a 20 20 22 52 65 61 64 20 76 61 6c 75 65 20 66 72 6f 6d 20 6d 69 6e 69 62 75 | story)..."Read.value.from.minibu |
| 19900 | 66 66 65 72 20 61 6e 64 20 69 6e 74 65 72 70 72 65 74 20 74 68 65 20 72 65 73 75 6c 74 20 61 73 | ffer.and.interpret.the.result.as |
| 19920 | 20 61 20 4c 69 73 70 20 6f 62 6a 65 63 74 2e 0a 0a 50 52 4f 4d 50 54 2c 20 49 4e 49 54 49 41 4c | .a.Lisp.object...PROMPT,.INITIAL |
| 19940 | 2d 49 4e 50 55 54 20 61 6e 64 20 48 49 53 54 4f 52 59 20 61 72 65 20 61 73 20 69 6e 20 74 68 65 | -INPUT.and.HISTORY.are.as.in.the |
| 19960 | 20 54 72 61 6e 73 69 65 6e 74 20 72 65 61 64 65 72 0a 64 6f 63 75 6d 65 6e 74 69 6f 6e 2e 22 0a | .Transient.reader.documention.". |
| 19980 | 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 0a 20 20 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d | ..(ignore-errors.....(read-from- |
| 199a0 | 6d 69 6e 69 62 75 66 66 65 72 20 70 72 6f 6d 70 74 20 69 6e 69 74 69 61 6c 2d 69 6e 70 75 74 20 | minibuffer.prompt.initial-input. |
| 199c0 | 72 65 61 64 2d 65 78 70 72 65 73 73 69 6f 6e 2d 6d 61 70 20 74 20 68 69 73 74 6f 72 79 29 29 29 | read-expression-map.t.history))) |
| 199e0 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 | ..(defun.gptel--refactor-or-rewr |
| 19a00 | 69 74 65 20 28 29 0a 20 20 22 52 65 77 72 69 74 65 20 73 68 6f 75 6c 64 20 62 65 20 72 65 66 61 | ite.()..."Rewrite.should.be.refa |
| 19a20 | 63 74 6f 72 65 64 20 69 6e 74 6f 20 72 65 66 61 63 74 6f 72 2e 0a 0a 4f 72 20 69 73 20 69 74 20 | ctored.into.refactor...Or.is.it. |
| 19a40 | 74 68 65 20 6f 74 68 65 72 20 77 61 79 20 61 72 6f 75 6e 64 3f 22 0a 20 20 28 69 66 20 28 64 65 | the.other.way.around?"...(if.(de |
| 19a60 | 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 6f 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 22 | rived-mode-p.'prog-mode)......." |
| 19a80 | 52 65 66 61 63 74 6f 72 22 20 22 52 65 77 72 69 74 65 22 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c | Refactor"."Rewrite"))..(defvar-l |
| 19aa0 | 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 6e 69 6c 29 | ocal.gptel--rewrite-message.nil) |
| 19ac0 | 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 28 | .(defun.gptel--rewrite-message.( |
| 19ae0 | 29 0a 20 20 22 53 65 74 20 61 20 67 65 6e 65 72 69 63 20 72 65 66 61 63 74 6f 72 2f 72 65 77 72 | )..."Set.a.generic.refactor/rewr |
| 19b00 | 69 74 65 20 6d 65 73 73 61 67 65 20 66 6f 72 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 | ite.message.for.the.buffer."...( |
| 19b20 | 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 6f 67 2d 6d 6f 64 65 29 0a 20 | if.(derived-mode-p.'prog-mode).. |
| 19b40 | 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f 75 20 61 72 65 20 61 20 25 73 20 70 72 6f 67 72 | .....(format."You.are.a.%s.progr |
| 19b60 | 61 6d 6d 65 72 2e 20 52 65 66 61 63 74 6f 72 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f | ammer..Refactor.the.following.co |
| 19b80 | 64 65 2e 20 47 65 6e 65 72 61 74 65 20 6f 6e 6c 79 20 63 6f 64 65 2c 20 6e 6f 20 65 78 70 6c 61 | de..Generate.only.code,.no.expla |
| 19ba0 | 6e 61 74 69 6f 6e 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 65 61 64 2d 6c | nation."...............(thread-l |
| 19bc0 | 61 73 74 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 0a 20 20 20 | ast.(symbol-name.major-mode).... |
| 19be0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d | ........................(string- |
| 19c00 | 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 20 20 20 20 20 | remove-suffix."-mode").......... |
| 19c20 | 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 6f 76 65 | ..................(string-remove |
| 19c40 | 2d 73 75 66 66 69 78 20 22 2d 74 73 22 29 29 29 0a 20 20 20 20 28 66 6f 72 6d 61 74 20 22 59 6f | -suffix."-ts"))).....(format."Yo |
| 19c60 | 75 20 61 72 65 20 61 20 70 72 6f 73 65 20 65 64 69 74 6f 72 2e 20 52 65 77 72 69 74 65 20 74 68 | u.are.a.prose.editor..Rewrite.th |
| 19c80 | 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 65 78 74 20 74 6f 20 62 65 20 6d 6f 72 65 20 70 72 6f 66 | e.following.text.to.be.more.prof |
| 19ca0 | 65 73 73 69 6f 6e 61 6c 2e 22 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 63 72 | essional.")))..(defvar.gptel--cr |
| 19cc0 | 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: |
| 19ce0 | 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 66 2f 61 77 65 73 6f 6d 65 2d 63 68 61 74 67 70 74 2d 70 | //github.com/f/awesome-chatgpt-p |
| 19d00 | 72 6f 6d 70 74 73 2f 72 61 77 2f 6d 61 69 6e 2f 70 72 6f 6d 70 74 73 2e 63 73 76 22 0a 20 20 22 | rompts/raw/main/prompts.csv"..." |
| 19d20 | 55 52 4c 20 66 6f 72 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 4c 4c 4d 20 73 79 73 74 65 6d 20 | URL.for.crowdsourced.LLM.system. |
| 19d40 | 70 72 6f 6d 70 74 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 | prompts.")..(defvar.gptel--crowd |
| 19d60 | 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 0a 20 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 | sourced-prompts...(make-hash-tab |
| 19d80 | 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 29 0a 20 20 22 43 72 6f 77 64 73 6f 75 72 63 65 | le.:test.#'equal)..."Crowdsource |
| 19da0 | 64 20 4c 4c 4d 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 2e 22 29 0a 0a 28 64 65 66 75 6e 20 | d.LLM.system.prompts.")..(defun. |
| 19dc0 | 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 20 28 29 0a 20 | gptel--crowdsourced-prompts.().. |
| 19de0 | 20 22 41 63 71 75 69 72 65 20 61 6e 64 20 72 65 61 64 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 | ."Acquire.and.read.crowdsourced. |
| 19e00 | 4c 4c 4d 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 73 | LLM.system.prompts...These.are.s |
| 19e20 | 74 6f 72 65 64 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 60 67 70 74 65 6c 2d 2d 63 72 | tored.in.the.variable.`gptel--cr |
| 19e40 | 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 27 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 | owdsourced-prompts',.which.see." |
| 19e60 | 0a 20 20 28 77 68 65 6e 20 28 68 61 73 68 2d 74 61 62 6c 65 2d 70 20 67 70 74 65 6c 2d 2d 63 72 | ...(when.(hash-table-p.gptel--cr |
| 19e80 | 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 28 77 68 65 6e 20 28 68 | owdsourced-prompts).....(when.(h |
| 19ea0 | 61 73 68 2d 74 61 62 6c 65 2d 65 6d 70 74 79 2d 70 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f | ash-table-empty-p.gptel--crowdso |
| 19ec0 | 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 67 70 74 | urced-prompts).......(unless.gpt |
| 19ee0 | 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 0a 20 20 20 | el-crowdsourced-prompts-file.... |
| 19f00 | 20 20 20 20 20 28 72 75 6e 2d 61 74 2d 74 69 6d 65 20 30 20 6e 69 6c 20 23 27 67 70 74 65 6c 2d | .....(run-at-time.0.nil.#'gptel- |
| 19f20 | 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 | system-prompt).........(user-err |
| 19f40 | 6f 72 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 20 61 76 61 69 | or."No.crowdsourced.prompts.avai |
| 19f60 | 6c 61 62 6c 65 22 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 66 69 6c | lable")).......(unless.(and.(fil |
| 19f80 | 65 2d 65 78 69 73 74 73 2d 70 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 | e-exists-p.gptel-crowdsourced-pr |
| 19fa0 | 6f 6d 70 74 73 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 28 | ompts-file)....................( |
| 19fc0 | 74 69 6d 65 2d 6c 65 73 73 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | time-less-p..................... |
| 19fe0 | 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 | (time-subtract.(current-time).(d |
| 1a000 | 61 79 73 2d 74 6f 2d 74 69 6d 65 20 31 34 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ays-to-time.14))................ |
| 1a020 | 20 20 20 20 20 28 66 69 6c 65 2d 61 74 74 72 69 62 75 74 65 2d 6d 6f 64 69 66 69 63 61 74 69 6f | .....(file-attribute-modificatio |
| 1a040 | 6e 2d 74 69 6d 65 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 6c | n-time......................(fil |
| 1a060 | 65 2d 61 74 74 72 69 62 75 74 65 73 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d | e-attributes.gptel-crowdsourced- |
| 1a080 | 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 | prompts-file)))).........(when.( |
| 1a0a0 | 79 2d 6f 72 2d 6e 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a | y-or-n-p................(concat. |
| 1a0c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 46 65 74 63 68 20 63 72 6f 77 64 73 6f 75 72 | ................"Fetch.crowdsour |
| 1a0e0 | 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 73 20 66 72 6f 6d 20 22 0a 20 20 20 20 20 20 | ced.system.prompts.from."....... |
| 1a100 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 22 68 74 74 70 73 3a 2f 2f 67 | ..........(propertize."https://g |
| 1a120 | 69 74 68 75 62 2e 63 6f 6d 2f 66 2f 61 77 65 73 6f 6d 65 2d 63 68 61 74 67 70 74 2d 70 72 6f 6d | ithub.com/f/awesome-chatgpt-prom |
| 1a140 | 70 74 73 22 20 27 66 61 63 65 20 27 6c 69 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | pts".'face.'link)............... |
| 1a160 | 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 65 74 63 68 20 66 69 6c 65 0a | .."?"))...........;;.Fetch.file. |
| 1a180 | 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 46 65 74 63 68 69 6e 67 20 70 72 6f | ..........(message."Fetching.pro |
| 1a1a0 | 6d 70 74 73 2e 2e 2e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 69 72 20 28 | mpts...")...........(let.((dir.( |
| 1a1c0 | 66 69 6c 65 2d 6e 61 6d 65 2d 64 69 72 65 63 74 6f 72 79 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 | file-name-directory.gptel-crowds |
| 1a1e0 | 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ourced-prompts-file))).......... |
| 1a200 | 20 20 20 28 75 6e 6c 65 73 73 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 64 69 72 29 20 28 | ...(unless.(file-exists-p.dir).( |
| 1a220 | 6d 6b 64 69 72 20 64 69 72 20 27 63 72 65 61 74 65 2d 70 61 72 65 6e 74 73 29 29 0a 20 20 20 20 | mkdir.dir.'create-parents))..... |
| 1a240 | 20 20 20 20 20 20 20 20 28 69 66 20 28 75 72 6c 2d 63 6f 70 79 2d 66 69 6c 65 20 67 70 74 65 6c | ........(if.(url-copy-file.gptel |
| 1a260 | 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 75 72 6c 0a 20 20 20 20 20 | --crowdsourced-prompts-url...... |
| 1a280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d | ..........................gptel- |
| 1a2a0 | 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 0a 20 20 20 20 20 20 | crowdsourced-prompts-file....... |
| 1a2c0 | 20 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 6f 6b 2d 69 66 2d | .........................'ok-if- |
| 1a2e0 | 61 6c 72 65 61 64 79 2d 65 78 69 73 74 73 29 0a 09 09 28 6d 65 73 73 61 67 65 20 22 46 65 74 63 | already-exists)...(message."Fetc |
| 1a300 | 68 69 6e 67 20 70 72 6f 6d 70 74 73 2e 2e 2e 20 64 6f 6e 65 2e 22 29 0a 20 20 20 20 20 20 20 20 | hing.prompts....done.")......... |
| 1a320 | 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 | ......(message."Could.not.retrie |
| 1a340 | 76 65 20 6e 65 77 20 70 72 6f 6d 70 74 73 2e 22 29 29 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 | ve.new.prompts."))))).......(if. |
| 1a360 | 28 6e 6f 74 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 67 70 74 65 6c 2d 63 72 6f 77 | (not.(file-readable-p.gptel-crow |
| 1a380 | 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 | dsourced-prompts-file))......... |
| 1a3a0 | 20 20 28 70 72 6f 67 6e 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 63 72 6f 77 64 73 6f 75 72 63 | ..(progn.(message."No.crowdsourc |
| 1a3c0 | 65 64 20 70 72 6f 6d 70 74 73 20 61 76 61 69 6c 61 62 6c 65 22 29 0a 20 20 20 20 20 20 20 20 20 | ed.prompts.available").......... |
| 1a3e0 | 20 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 23 27 67 70 | ........(call-interactively.#'gp |
| 1a400 | 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 | tel-system-prompt)).........(wit |
| 1a420 | 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d | h-temp-buffer...........(insert- |
| 1a440 | 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 67 70 74 65 6c 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 | file-contents.gptel-crowdsourced |
| 1a460 | 2d 70 72 6f 6d 70 74 73 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 | -prompts-file)...........(goto-c |
| 1a480 | 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 | har.(point-min))...........(forw |
| 1a4a0 | 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f | ard-line.1)...........(while.(no |
| 1a4c0 | 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 | t.(eobp)).............(when-let. |
| 1a4e0 | 28 28 61 63 74 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 | ((act.(read.(current-buffer)))). |
| 1a500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 | ..............(forward-char).... |
| 1a520 | 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 | ...........(save-excursion...... |
| 1a540 | 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 68 2d 66 6f 72 | ...........(while.(re-search-for |
| 1a560 | 77 61 72 64 20 22 5c 22 5c 22 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 | ward."\"\"".(line-end-position). |
| 1a580 | 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 | t)...................(replace-ma |
| 1a5a0 | 74 63 68 20 22 5c 5c 5c 5c 5c 22 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 | tch."\\\\\"")))...............(w |
| 1a5c0 | 68 65 6e 2d 6c 65 74 20 28 28 70 72 6f 6d 70 74 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d | hen-let.((prompt.(read.(current- |
| 1a5e0 | 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 | buffer)))).................(puth |
| 1a600 | 61 73 68 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 | ash.act.prompt.gptel--crowdsourc |
| 1a620 | 65 64 2d 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 | ed-prompts))).............(forwa |
| 1a640 | 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 0a 20 20 20 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 | rd-line.1))))).....gptel--crowds |
| 1a660 | 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 | ourced-prompts))....;;.*.Transie |
| 1a680 | 6e 74 20 63 6c 61 73 73 65 73 20 61 6e 64 20 6d 65 74 68 6f 64 73 20 66 6f 72 20 67 70 74 65 6c | nt.classes.and.methods.for.gptel |
| 1a6a0 | 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 65 73 20 28 74 72 61 | ..(defclass.gptel--switches.(tra |
| 1a6c0 | 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 64 69 73 70 6c 61 | nsient-lisp-variable)...((displa |
| 1a6e0 | 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 69 66 2d 74 | y-if-true.:initarg.:display-if-t |
| 1a700 | 72 75 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 66 6f 72 20 74 68 69 73 20 62 75 66 66 65 72 22 29 | rue.:initform."for.this.buffer") |
| 1a720 | 0a 20 20 20 28 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 61 72 67 20 3a | ....(display-if-false.:initarg.: |
| 1a740 | 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 20 3a 69 6e 69 74 66 6f 72 6d 20 22 67 6c 6f 62 | display-if-false.:initform."glob |
| 1a760 | 61 6c 6c 79 22 29 29 0a 20 20 22 42 6f 6f 6c 65 61 6e 20 6c 69 73 70 20 76 61 72 69 61 62 6c 65 | ally"))..."Boolean.lisp.variable |
| 1a780 | 20 63 6c 61 73 73 20 66 6f 72 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 22 29 0a 0a 28 | .class.for.gptel-transient.")..( |
| 1a7a0 | 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 72 65 61 | cl-defmethod.transient-infix-rea |
| 1a7c0 | 64 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 65 73 29 29 0a 20 20 22 43 79 63 | d.((obj.gptel--switches))..."Cyc |
| 1a7e0 | 6c 65 20 74 68 72 6f 75 67 68 20 74 68 65 20 6d 75 74 75 61 6c 6c 79 20 65 78 63 6c 75 73 69 76 | le.through.the.mutually.exclusiv |
| 1a800 | 65 20 73 77 69 74 63 68 65 73 2e 22 0a 20 20 28 6e 6f 74 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 | e.switches."...(not.(oref.obj.va |
| 1a820 | 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 6e 74 2d | lue)))..(cl-defmethod.transient- |
| 1a840 | 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 2d 73 77 69 74 63 68 | format-value.((obj.gptel--switch |
| 1a860 | 65 73 29 29 0a 20 20 28 77 69 74 68 2d 73 6c 6f 74 73 20 28 76 61 6c 75 65 20 64 69 73 70 6c 61 | es))...(with-slots.(value.displa |
| 1a880 | 79 2d 69 66 2d 74 72 75 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 29 20 6f 62 6a 0a | y-if-true.display-if-false).obj. |
| 1a8a0 | 20 20 20 20 20 20 28 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 | ......(format........(propertize |
| 1a8c0 | 20 22 28 25 73 29 22 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 64 65 6c 69 6d 69 74 | ."(%s)".'face.'transient-delimit |
| 1a8e0 | 65 72 29 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 | er)........(concat.........(prop |
| 1a900 | 65 72 74 69 7a 65 20 64 69 73 70 6c 61 79 2d 69 66 2d 66 61 6c 73 65 0a 20 20 20 20 20 20 20 20 | ertize.display-if-false......... |
| 1a920 | 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 28 69 66 20 76 61 6c 75 65 20 27 74 72 61 | ............'face.(if.value.'tra |
| 1a940 | 6e 73 69 65 6e 74 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 | nsient-inactive-value.'transient |
| 1a960 | 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 22 7c 22 | -value)).........(propertize."|" |
| 1a980 | 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 20 20 20 | .'face.'transient-delimiter).... |
| 1a9a0 | 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 74 72 75 65 | .....(propertize.display-if-true |
| 1a9c0 | 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 66 20 76 | .....................'face.(if.v |
| 1a9e0 | 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 20 27 74 72 61 6e 73 69 65 6e 74 | alue.'transient-value.'transient |
| 1aa00 | 2d 69 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 29 29 0a 0a 28 64 65 66 63 6c 61 73 73 | -inactive-value))))))..(defclass |
| 1aa20 | 20 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 20 28 74 72 61 6e 73 69 65 6e 74 2d | .gptel-lisp-variable.(transient- |
| 1aa40 | 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 28 28 64 69 73 70 6c 61 79 2d 6e 69 6c 20 3a | lisp-variable)...((display-nil.: |
| 1aa60 | 69 6e 69 74 61 72 67 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 29 29 0a 20 20 22 4c 69 73 70 20 76 | initarg.:display-nil))..."Lisp.v |
| 1aa80 | 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 73 68 6f 77 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 | ariables.that.show.:display-nil. |
| 1aaa0 | 69 6e 73 74 65 61 64 20 6f 66 20 6e 69 6c 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | instead.of.nil.")..(cl-defmethod |
| 1aac0 | 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 0a 20 20 28 28 6f 62 6a 20 | .transient-format-value...((obj. |
| 1aae0 | 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 29 29 0a 20 20 28 70 72 6f 70 65 72 74 | gptel-lisp-variable))...(propert |
| 1ab00 | 69 7a 65 20 28 70 72 69 6e 31 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6f 72 20 28 6f 72 65 66 20 6f | ize.(prin1-to-string.(or.(oref.o |
| 1ab20 | 62 6a 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 20 20 | bj.value)....................... |
| 1ab40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 64 69 73 70 6c 61 79 2d 6e | .............(oref.obj.display-n |
| 1ab60 | 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 | il)))...............'face.'trans |
| 1ab80 | 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 74 72 61 6e | ient-value))..(cl-defmethod.tran |
| 1aba0 | 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 6c 69 73 70 | sient-infix-set.((obj.gptel-lisp |
| 1abc0 | 2d 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 29 0a 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 | -variable).value)...(funcall.(or |
| 1abe0 | 65 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 | ef.obj.set-value)............(or |
| 1ac00 | 65 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 | ef.obj.variable)............(ose |
| 1ac20 | 74 20 6f 62 6a 20 76 61 6c 75 65 20 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 67 70 | t.obj.value.value)............gp |
| 1ac40 | 74 65 6c 2d 2d 73 65 74 2d 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 0a 28 64 65 66 63 | tel--set-buffer-locally))..(defc |
| 1ac60 | 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 72 | lass.gptel-provider-variable.(tr |
| 1ac80 | 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 6d 6f 64 65 6c | ansient-lisp-variable)...((model |
| 1aca0 | 20 20 20 20 20 20 20 3a 69 6e 69 74 61 72 67 20 3a 6d 6f 64 65 6c 29 0a 20 20 20 28 6d 6f 64 65 | .......:initarg.:model)....(mode |
| 1acc0 | 6c 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 6d 6f 64 65 6c 2d 76 61 6c 75 65 29 0a 20 | l-value.:initarg.:model-value).. |
| 1ace0 | 20 20 28 61 6c 77 61 79 73 2d 72 65 61 64 20 3a 69 6e 69 74 66 6f 72 6d 20 74 29 0a 20 20 20 28 | ..(always-read.:initform.t)....( |
| 1ad00 | 73 65 74 2d 76 61 6c 75 65 20 3a 69 6e 69 74 61 72 67 20 3a 73 65 74 2d 76 61 6c 75 65 20 3a 69 | set-value.:initarg.:set-value.:i |
| 1ad20 | 6e 69 74 66 6f 72 6d 20 23 27 73 65 74 29 29 0a 20 20 22 43 6c 61 73 73 20 75 73 65 64 20 66 6f | nitform.#'set))..."Class.used.fo |
| 1ad40 | 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 73 2e 22 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | r.gptel-backends.")..(cl-defmeth |
| 1ad60 | 6f 64 20 74 72 61 6e 73 69 65 6e 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 | od.transient-format-value.((obj. |
| 1ad80 | 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 29 29 0a 20 20 28 70 72 6f | gptel-provider-variable))...(pro |
| 1ada0 | 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e | pertize.(concat.(gptel-backend-n |
| 1adc0 | 61 6d 65 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 20 22 3a 22 0a 20 20 20 20 20 20 | ame.(oref.obj.value)).":"....... |
| 1ade0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 | ................(buffer-local-va |
| 1ae00 | 6c 75 65 20 28 6f 72 65 66 20 6f 62 6a 20 6d 6f 64 65 6c 29 20 74 72 61 6e 73 69 65 6e 74 2d 2d | lue.(oref.obj.model).transient-- |
| 1ae20 | 6f 72 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | original-buffer))............... |
| 1ae40 | 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 76 61 6c 75 65 29 29 0a 0a 28 63 6c 2d 64 65 | 'face.'transient-value))..(cl-de |
| 1ae60 | 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 6f 62 | fmethod.transient-infix-set.((ob |
| 1ae80 | 6a 20 67 70 74 65 6c 2d 70 72 6f 76 69 64 65 72 2d 76 61 72 69 61 62 6c 65 29 20 76 61 6c 75 65 | j.gptel-provider-variable).value |
| 1aea0 | 29 0a 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 62 61 63 6b 65 6e 64 2d 76 61 6c 75 | )...(pcase-let.((`(,backend-valu |
| 1aec0 | 65 20 2c 6d 6f 64 65 6c 2d 76 61 6c 75 65 29 20 76 61 6c 75 65 29 29 0a 20 20 20 20 28 66 75 6e | e.,model-value).value)).....(fun |
| 1aee0 | 63 61 6c 6c 20 28 6f 72 65 66 20 6f 62 6a 20 73 65 74 2d 76 61 6c 75 65 29 0a 20 20 20 20 20 20 | call.(oref.obj.set-value)....... |
| 1af00 | 20 20 20 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 | .......(oref.obj.variable)...... |
| 1af20 | 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f 62 6a 20 76 61 6c 75 65 20 62 61 63 6b 65 6e 64 2d | ........(oset.obj.value.backend- |
| 1af40 | 76 61 6c 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 65 74 2d 62 | value)..............gptel--set-b |
| 1af60 | 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 28 6f 72 65 | uffer-locally).....(funcall.(ore |
| 1af80 | 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 |
| 1afa0 | 72 65 66 20 6f 62 6a 20 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 73 65 | ref.obj.model)..............(ose |
| 1afc0 | 74 20 6f 62 6a 20 6d 6f 64 65 6c 2d 76 61 6c 75 65 20 6d 6f 64 65 6c 2d 76 61 6c 75 65 29 0a 20 | t.obj.model-value.model-value).. |
| 1afe0 | 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 72 2d 6c 6f | ............gptel--set-buffer-lo |
| 1b000 | 63 61 6c 6c 79 29 29 29 0a 0a 28 64 65 66 63 6c 61 73 73 20 67 70 74 65 6c 2d 6f 70 74 69 6f 6e | cally)))..(defclass.gptel-option |
| 1b020 | 2d 6f 76 65 72 6c 61 69 64 20 28 74 72 61 6e 73 69 65 6e 74 2d 6f 70 74 69 6f 6e 29 0a 20 20 28 | -overlaid.(transient-option)...( |
| 1b040 | 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 61 79 2d 6e | (display-nil.:initarg.:display-n |
| 1b060 | 69 6c 29 0a 20 20 20 28 6f 76 65 72 6c 61 79 20 3a 69 6e 69 74 61 72 67 20 3a 6f 76 65 72 6c 61 | il)....(overlay.:initarg.:overla |
| 1b080 | 79 29 29 0a 20 20 22 54 72 61 6e 73 69 65 6e 74 20 6f 70 74 69 6f 6e 73 20 66 6f 72 20 6f 76 65 | y))..."Transient.options.for.ove |
| 1b0a0 | 72 6c 61 79 73 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 74 68 65 20 77 6f 72 6b 69 6e 67 20 62 | rlays.displayed.in.the.working.b |
| 1b0c0 | 75 66 66 65 72 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 | uffer.")..(cl-defmethod.transien |
| 1b0e0 | 74 2d 66 6f 72 6d 61 74 2d 76 61 6c 75 65 20 28 28 6f 62 6a 20 67 70 74 65 6c 2d 6f 70 74 69 6f | t-format-value.((obj.gptel-optio |
| 1b100 | 6e 2d 6f 76 65 72 6c 61 69 64 29 29 0a 20 20 22 73 65 74 20 75 70 20 74 68 65 20 69 6e 2d 62 75 | n-overlaid))..."set.up.the.in-bu |
| 1b120 | 66 66 65 72 20 6f 76 65 72 6c 61 79 20 66 6f 72 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 69 72 65 | ffer.overlay.for.additional.dire |
| 1b140 | 63 74 69 76 65 2c 20 61 20 73 74 72 69 6e 67 2e 0a 0a 41 6c 73 6f 20 66 6f 72 6d 61 74 20 69 74 | ctive,.a.string...Also.format.it |
| 1b160 | 73 20 76 61 6c 75 65 20 69 6e 20 74 68 65 20 54 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 2e 22 0a | s.value.in.the.Transient.menu.". |
| 1b180 | 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 6f 72 65 66 20 6f 62 6a 20 76 61 6c 75 65 29 29 | ..(let.((value.(oref.obj.value)) |
| 1b1a0 | 0a 20 20 20 20 20 20 20 20 28 6f 76 20 20 20 20 28 6f 72 65 66 20 6f 62 6a 20 6f 76 65 72 6c 61 | .........(ov....(oref.obj.overla |
| 1b1c0 | 79 29 29 0a 20 20 20 20 20 20 20 20 28 61 72 67 75 6d 65 6e 74 20 28 6f 72 65 66 20 6f 62 6a 20 | y)).........(argument.(oref.obj. |
| 1b1e0 | 61 72 67 75 6d 65 6e 74 29 29 29 0a 20 20 20 20 3b 3b 20 4d 61 6b 69 6e 67 20 61 6e 20 6f 76 65 | argument))).....;;.Making.an.ove |
| 1b200 | 72 6c 61 79 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 6e 6f 74 20 76 61 6c 75 65 29 20 28 73 74 | rlay.....(if.(or.(not.value).(st |
| 1b220 | 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 76 61 6c 75 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 | ring-empty-p.value)).........(wh |
| 1b240 | 65 6e 20 6f 76 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f 76 29 29 0a 20 20 20 20 20 | en.ov.(delete-overlay.ov))...... |
| 1b260 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 74 72 61 6e 73 69 65 6e 74 2d | .(with-current-buffer.transient- |
| 1b280 | 2d 6f 72 69 67 69 6e 61 6c 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 6f 73 65 74 20 6f | -original-buffer.........(oset.o |
| 1b2a0 | 62 6a 20 6f 76 65 72 6c 61 79 20 28 67 70 74 65 6c 2d 2d 69 6e 73 74 72 75 63 74 69 6f 6e 73 2d | bj.overlay.(gptel--instructions- |
| 1b2c0 | 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 76 61 6c 75 65 20 6f 76 29 29 29 0a 20 20 20 20 20 20 28 | make-overlay.value.ov))).......( |
| 1b2e0 | 6c 65 74 72 65 63 20 28 28 6f 76 2d 63 6c 65 61 72 2d 68 6f 6f 6b 0a 20 20 20 20 20 20 20 20 20 | letrec.((ov-clear-hook.......... |
| 1b300 | 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 6f | .......(lambda.().(when-let*.((o |
| 1b320 | 76 20 28 6f 72 65 66 20 6f 62 6a 20 6f 76 65 72 6c 61 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 | v.(oref.obj.overlay))........... |
| 1b340 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6f 76 65 72 6c 61 | ........................((overla |
| 1b360 | 79 70 20 6f 76 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 | yp.ov)))........................ |
| 1b380 | 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 74 72 61 6e 73 69 65 6e 74 2d 65 78 69 74 2d 68 6f | .(remove-hook.'transient-exit-ho |
| 1b3a0 | 6f 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 | ok.............................. |
| 1b3c0 | 20 20 20 20 20 20 20 20 6f 76 2d 63 6c 65 61 72 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 | ........ov-clear-hook).......... |
| 1b3e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6f | ...............(delete-overlay.o |
| 1b400 | 76 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 74 72 61 6e 73 69 | v))))).........(add-hook.'transi |
| 1b420 | 65 6e 74 2d 65 78 69 74 2d 68 6f 6f 6b 20 6f 76 2d 63 6c 65 61 72 2d 68 6f 6f 6b 29 29 29 0a 20 | ent-exit-hook.ov-clear-hook))).. |
| 1b440 | 20 20 20 3b 3b 20 55 70 64 61 74 69 6e 67 20 74 72 61 6e 73 69 65 6e 74 20 6d 65 6e 75 20 64 69 | ...;;.Updating.transient.menu.di |
| 1b460 | 73 70 6c 61 79 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 | splay.....(if.value.........(pro |
| 1b480 | 70 65 72 74 69 7a 65 20 28 63 6f 6e 63 61 74 20 61 72 67 75 6d 65 6e 74 20 28 74 72 75 6e 63 61 | pertize.(concat.argument.(trunca |
| 1b4a0 | 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 76 61 6c 75 65 20 32 35 20 6e 69 6c 20 | te-string-to-width.value.25.nil. |
| 1b4c0 | 6e 69 6c 20 22 2e 2e 2e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nil."..."))..................... |
| 1b4e0 | 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 28 70 | 'face.'transient-value).......(p |
| 1b500 | 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 28 22 20 28 73 79 | ropertize........(concat."(".(sy |
| 1b520 | 6d 62 6f 6c 2d 6e 61 6d 65 20 28 6f 72 65 66 20 6f 62 6a 20 64 69 73 70 6c 61 79 2d 6e 69 6c 29 | mbol-name.(oref.obj.display-nil) |
| 1b540 | 29 20 22 29 22 29 0a 20 20 20 20 20 20 20 27 66 61 63 65 20 27 74 72 61 6e 73 69 65 6e 74 2d 69 | ).")")........'face.'transient-i |
| 1b560 | 6e 61 63 74 69 76 65 2d 76 61 6c 75 65 29 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 | nactive-value))))....;;.*.Transi |
| 1b580 | 65 6e 74 20 50 72 65 66 69 78 65 73 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 | ent.Prefixes..(define-obsolete-f |
| 1b5a0 | 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 67 70 74 65 6c 2d 73 65 6e 64 2d 6d 65 6e 75 20 27 | unction-alias.'gptel-send-menu.' |
| 1b5c0 | 67 70 74 65 6c 2d 6d 65 6e 75 20 22 30 2e 33 2e 32 22 29 0a 0a 3b 3b 20 42 55 47 3a 20 54 68 65 | gptel-menu."0.3.2")..;;.BUG:.The |
| 1b5e0 | 20 60 3a 69 6e 63 6f 6d 70 61 74 69 62 6c 65 27 20 73 70 65 63 20 64 6f 65 73 6e 27 74 20 77 6f | .`:incompatible'.spec.doesn't.wo |
| 1b600 | 72 6b 20 69 66 20 74 68 65 72 65 27 73 20 61 20 60 3a 64 65 73 63 72 69 70 74 69 6f 6e 27 20 62 | rk.if.there's.a.`:description'.b |
| 1b620 | 65 6c 6f 77 20 69 74 2e 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 | elow.it..;;;###autoload.(autoloa |
| 1b640 | 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 20 22 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 22 20 | d.'gptel-menu."gptel-transient". |
| 1b660 | 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 70 72 65 66 69 78 20 | nil.t).(transient-define-prefix. |
| 1b680 | 67 70 74 65 6c 2d 6d 65 6e 75 20 28 29 0a 20 20 22 43 68 61 6e 67 65 20 70 61 72 61 6d 65 74 65 | gptel-menu.()..."Change.paramete |
| 1b6a0 | 72 73 20 6f 66 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 2e | rs.of.prompt.to.send.to.the.LLM. |
| 1b6c0 | 22 0a 20 20 3b 3b 20 3a 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 27 28 28 22 2d 6d 22 20 22 2d 6e | "...;;.:incompatible.'(("-m"."-n |
| 1b6e0 | 22 20 22 2d 6b 22 20 22 2d 65 22 29 29 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 | "."-k"."-e"))...[:description... |
| 1b700 | 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 | .(lambda.()......(string-replace |
| 1b720 | 0a 20 20 20 20 20 20 22 5c 6e 22 20 22 e2 ae 90 20 22 0a 20 20 20 20 20 20 28 74 72 75 6e 63 61 | ......."\n"."....".......(trunca |
| 1b740 | 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 67 70 74 65 6c 2d | te-string-to-width........gptel- |
| 1b760 | 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 28 6d 61 78 20 28 2d 20 28 77 69 6e 64 6f 77 2d | -system-message.(max.(-.(window- |
| 1b780 | 77 69 64 74 68 29 20 31 32 29 20 31 34 29 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 5b | width).12).14).nil.nil.t)))....[ |
| 1b7a0 | 22 22 0a 20 20 20 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 22 0a 20 20 20 20 28 22 73 22 20 22 | ""....."Instructions".....("s"." |
| 1b7c0 | 53 65 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 22 20 67 70 74 65 6c 2d 73 79 73 74 65 6d | Set.system.message".gptel-system |
| 1b7e0 | 2d 70 72 6f 6d 70 74 20 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 20 20 20 20 28 67 70 74 65 6c | -prompt.:transient.t).....(gptel |
| 1b800 | 2d 2d 69 6e 66 69 78 2d 61 64 64 2d 64 69 72 65 63 74 69 76 65 29 5d 5d 0a 20 20 5b 5b 22 4d 6f | --infix-add-directive)]]...[["Mo |
| 1b820 | 64 65 6c 20 50 61 72 61 6d 65 74 65 72 73 22 0a 20 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 74 0a | del.Parameters".....:pad-keys.t. |
| 1b840 | 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 | ....(gptel--infix-variable-scope |
| 1b860 | 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 70 72 6f 76 69 64 65 72 29 0a 20 20 | ).....(gptel--infix-provider)... |
| 1b880 | 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 20 20 20 20 | ..(gptel--infix-max-tokens)..... |
| 1b8a0 | 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 | (gptel--infix-num-messages-to-se |
| 1b8c0 | 6e 64 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 65 6d 70 65 72 61 74 75 72 | nd).....(gptel--infix-temperatur |
| 1b8e0 | 65 20 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 | e.:if.(lambda.().gptel-expert-co |
| 1b900 | 6d 6d 61 6e 64 73 29 29 5d 0a 20 20 20 5b 22 50 72 6f 6d 70 74 20 66 72 6f 6d 22 0a 20 20 20 20 | mmands))]....["Prompt.from"..... |
| 1b920 | 28 22 6d 22 20 22 4d 69 6e 69 62 75 66 66 65 72 20 69 6e 73 74 65 61 64 22 20 22 6d 22 29 0a 20 | ("m"."Minibuffer.instead"."m").. |
| 1b940 | 20 20 20 28 22 79 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 20 69 6e 73 74 65 61 64 22 20 22 79 22 29 | ...("y"."Kill-ring.instead"."y") |
| 1b960 | 0a 20 20 20 20 22 22 0a 20 20 20 20 28 22 69 22 20 22 52 65 73 70 6f 6e 64 20 69 6e 20 70 6c 61 | ....."".....("i"."Respond.in.pla |
| 1b980 | 63 65 22 20 22 69 22 29 5d 0a 20 20 20 20 5b 22 52 65 73 70 6f 6e 73 65 20 74 6f 22 0a 20 20 20 | ce"."i")].....["Response.to".... |
| 1b9a0 | 20 28 22 65 22 20 22 45 63 68 6f 20 61 72 65 61 20 69 6e 73 74 65 61 64 22 20 22 65 22 29 0a 20 | .("e"."Echo.area.instead"."e").. |
| 1b9c0 | 20 20 20 28 22 67 22 20 22 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 22 20 22 67 22 0a 20 20 20 20 | ...("g"."gptel.session"."g"..... |
| 1b9e0 | 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 3a 70 | .:class.transient-option......:p |
| 1ba00 | 72 6f 6d 70 74 20 22 45 78 69 73 74 69 6e 67 20 6f 72 20 6e 65 77 20 67 70 74 65 6c 20 73 65 73 | rompt."Existing.or.new.gptel.ses |
| 1ba20 | 73 69 6f 6e 3a 20 22 0a 20 20 20 20 20 3a 72 65 61 64 65 72 0a 20 20 20 20 20 28 6c 61 6d 62 64 | sion:."......:reader......(lambd |
| 1ba40 | 61 20 28 70 72 6f 6d 70 74 20 5f 20 5f 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 28 72 65 | a.(prompt._._history)........(re |
| 1ba60 | 61 64 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 28 67 65 6e 65 72 61 | ad-buffer.........prompt.(genera |
| 1ba80 | 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | te-new-buffer-name.............. |
| 1baa0 | 20 20 20 28 63 6f 6e 63 61 74 20 22 2a 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 | ...(concat."*".(gptel-backend-na |
| 1bac0 | 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 20 22 2a 22 29 29 0a 20 20 20 20 20 20 20 20 | me.gptel-backend)."*"))......... |
| 1bae0 | 6e 69 6c 20 28 6c 61 6d 62 64 61 20 28 62 75 66 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 | nil.(lambda.(buf-name).......... |
| 1bb00 | 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 62 75 66 2d 6e 61 6d 65 29 20 28 73 65 74 71 20 | .....(if.(consp.buf-name).(setq. |
| 1bb20 | 62 75 66 2d 6e 61 6d 65 20 28 63 61 72 20 62 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 | buf-name.(car.buf-name)))....... |
| 1bb40 | 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 62 | ........(let.((buf.(get-buffer.b |
| 1bb60 | 75 66 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 | uf-name))).................(and. |
| 1bb80 | 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 20 | (buffer-local-value.'gptel-mode. |
| 1bba0 | 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 6f 74 20 28 | buf)......................(not.( |
| 1bbc0 | 65 71 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 62 75 66 29 29 29 29 29 29 29 29 0a | eq.(current-buffer).buf)))))))). |
| 1bbe0 | 20 20 20 20 28 22 62 22 20 22 41 6e 79 20 62 75 66 66 65 72 22 20 22 62 22 0a 20 20 20 20 20 3a | ....("b"."Any.buffer"."b"......: |
| 1bc00 | 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 3a 70 72 6f | class.transient-option......:pro |
| 1bc20 | 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 20 20 3a 72 | mpt."Output.to.buffer:."......:r |
| 1bc40 | 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 68 69 | eader......(lambda.(prompt._._hi |
| 1bc60 | 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 28 72 65 61 64 2d 62 75 66 66 65 72 20 70 72 6f 6d 70 | story)........(read-buffer.promp |
| 1bc80 | 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 66 65 72 29 29 20 6e | t.(buffer-name.(other-buffer)).n |
| 1bca0 | 69 6c 29 29 29 0a 20 20 20 20 28 22 6b 22 20 22 4b 69 6c 6c 2d 72 69 6e 67 22 20 22 6b 22 29 5d | il))).....("k"."Kill-ring"."k")] |
| 1bcc0 | 5d 0a 20 20 5b 5b 22 53 65 6e 64 22 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d | ]...[["Send".....(gptel--suffix- |
| 1bce0 | 73 65 6e 64 29 0a 20 20 20 20 28 22 4d 2d 52 45 54 22 20 22 52 65 67 65 6e 65 72 61 74 65 22 20 | send).....("M-RET"."Regenerate". |
| 1bd00 | 67 70 74 65 6c 2d 2d 72 65 67 65 6e 65 72 61 74 65 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d | gptel--regenerate.:if.gptel--in- |
| 1bd20 | 72 65 73 70 6f 6e 73 65 2d 70 29 5d 0a 20 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 67 70 | response-p)]....[:description.gp |
| 1bd40 | 74 65 6c 2d 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 69 74 65 0a 20 20 20 20 3a 69 66 | tel--refactor-or-rewrite.....:if |
| 1bd60 | 20 75 73 65 2d 72 65 67 69 6f 6e 2d 70 0a 20 20 20 20 28 22 72 22 0a 20 20 20 20 20 3b 3b 46 49 | .use-region-p.....("r"......;;FI |
| 1bd80 | 58 4d 45 3a 20 54 72 61 6e 73 69 65 6e 74 20 63 6f 6d 70 6c 61 69 6e 73 20 69 66 20 49 20 75 73 | XME:.Transient.complains.if.I.us |
| 1bda0 | 65 20 60 67 70 74 65 6c 2d 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 69 74 65 27 20 68 | e.`gptel--refactor-or-rewrite'.h |
| 1bdc0 | 65 72 65 2e 20 49 74 0a 20 20 20 20 20 3b 3b 72 65 61 64 73 20 74 68 69 73 20 66 75 6e 63 74 69 | ere..It......;;reads.this.functi |
| 1bde0 | 6f 6e 20 61 73 20 61 20 73 75 66 66 69 78 20 69 6e 73 74 65 61 64 20 6f 66 20 61 20 66 75 6e 63 | on.as.a.suffix.instead.of.a.func |
| 1be00 | 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 0a 20 20 20 20 20 3b 3b 64 65 73 | tion.that.returns.the......;;des |
| 1be20 | 63 72 69 70 74 69 6f 6e 2e 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 64 | cription.......(lambda.().(if.(d |
| 1be40 | 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 6f 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 | erived-mode-p.'prog-mode)....... |
| 1be60 | 20 20 20 20 20 20 20 20 20 22 52 65 66 61 63 74 6f 72 22 20 22 52 65 77 72 69 74 65 22 29 29 0a | ........."Refactor"."Rewrite")). |
| 1be80 | 20 20 20 20 20 67 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 6d 65 6e 75 29 5d 0a 20 20 20 5b 22 54 | .....gptel-rewrite-menu)]....["T |
| 1bea0 | 77 65 61 6b 20 52 65 73 70 6f 6e 73 65 22 20 3a 69 66 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 | weak.Response".:if.gptel--in-res |
| 1bec0 | 70 6f 6e 73 65 2d 70 20 3a 70 61 64 2d 6b 65 79 73 20 74 0a 20 20 20 20 28 22 53 50 43 22 20 22 | ponse-p.:pad-keys.t.....("SPC"." |
| 1bee0 | 4d 61 72 6b 22 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 | Mark".gptel--mark-response)..... |
| 1bf00 | 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 2d 2d 70 | ("P"."Previous.variant".gptel--p |
| 1bf20 | 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 0a 20 20 20 20 20 3a 69 66 20 67 70 74 65 6c 2d 2d | revious-variant......:if.gptel-- |
| 1bf40 | 61 74 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 2d 70 0a 20 20 20 20 20 3a 74 72 61 6e | at-response-history-p......:tran |
| 1bf60 | 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 6e 74 22 | sient.t).....("N"."Next.variant" |
| 1bf80 | 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 20 3a 69 | .gptel--previous-variant......:i |
| 1bfa0 | 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 70 0a 20 | f.gptel--at-response-history-p.. |
| 1bfc0 | 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 64 69 66 | ....:transient.t).....("E"."Edif |
| 1bfe0 | 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 20 3a 69 | f.previous".gptel--ediff......:i |
| 1c000 | 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 70 29 5d | f.gptel--at-response-history-p)] |
| 1c020 | 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 20 28 6f | ....["Dry.Run".:if.(lambda.().(o |
| 1c040 | 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 74 2d 63 | r.gptel-log-level.gptel-expert-c |
| 1c060 | 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 75 65 72 | ommands)).....("I"."Inspect.quer |
| 1c080 | 79 20 28 4c 69 73 70 29 22 0a 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 | y.(Lisp)"......(lambda.()....... |
| 1c0a0 | 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 62 65 | ."Inspect.the.query.that.will.be |
| 1c0c0 | 20 73 65 6e 74 20 61 73 20 61 20 6c 69 73 70 20 6f 62 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 | .sent.as.a.lisp.object."........ |
| 1c0e0 | 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 61 6e | (interactive)........(gptel--san |
| 1c100 | 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 73 70 | itize-model)........(gptel--insp |
| 1c120 | 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 69 78 | ect-query.........(gptel--suffix |
| 1c140 | 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 73 69 | -send..........(cons."I".(transi |
| 1c160 | 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 |
| 1c180 | 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 65 72 79 | nd)))))).....("J"."Inspect.query |
| 1c1a0 | 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 20 20 20 | .(JSON)"......(lambda.()........ |
| 1c1c0 | 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 62 65 20 | "Inspect.the.query.that.will.be. |
| 1c1e0 | 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 20 20 28 | sent.as.a.JSON.object."........( |
| 1c200 | 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 61 6e 69 | interactive)........(gptel--sani |
| 1c220 | 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 73 70 65 | tize-model)........(gptel--inspe |
| 1c240 | 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 69 78 2d | ct-query.........(gptel--suffix- |
| 1c260 | 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 73 69 65 | send..........(cons."I".(transie |
| 1c280 | 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 6e | nt-args.transient-current-comman |
| 1c2a0 | 64 29 29 29 0a 20 20 20 20 20 20 20 20 27 6a 73 6f 6e 29 29 29 5d 5d 0a 20 20 28 69 6e 74 65 72 | d))).........'json)))]]...(inter |
| 1c2c0 | 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 |
| 1c2e0 | 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 |
| 1c300 | 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 |
| 1c320 | 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 2e 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 79 73 | .system.prompt..(defun.gptel-sys |
| 1c340 | 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d 73 65 74 75 70 20 28 5f 29 0a 20 20 22 53 65 74 20 75 70 20 | tem-prompt--setup.(_)..."Set.up. |
| 1c360 | 73 75 66 66 69 78 65 73 20 66 6f 72 20 73 79 73 74 65 6d 20 70 72 6f 6d 70 74 2e 22 0a 20 20 28 | suffixes.for.system.prompt."...( |
| 1c380 | 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 27 67 70 74 | transient-parse-suffixes....'gpt |
| 1c3a0 | 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 0a 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 | el-system-prompt....(cl-loop.for |
| 1c3c0 | 20 28 74 79 70 65 20 2e 20 70 72 6f 6d 70 74 29 20 69 6e 20 67 70 74 65 6c 2d 64 69 72 65 63 74 | .(type...prompt).in.gptel-direct |
| 1c3e0 | 69 76 65 73 0a 20 20 20 20 20 20 20 3b 3b 20 41 76 6f 69 64 20 63 6c 61 73 68 65 73 20 77 69 74 | ives........;;.Avoid.clashes.wit |
| 1c400 | 68 20 74 68 65 20 63 75 73 74 6f 6d 20 64 69 72 65 63 74 69 76 65 20 6b 65 79 0a 20 20 20 20 20 | h.the.custom.directive.key...... |
| 1c420 | 20 20 77 69 74 68 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 3d 20 28 64 65 6c 65 74 65 20 3f 73 20 | ..with.unused-keys.=.(delete.?s. |
| 1c440 | 28 6e 75 6d 62 65 72 2d 73 65 71 75 65 6e 63 65 20 3f 61 20 3f 7a 29 29 0a 20 20 20 20 20 20 20 | (number-sequence.?a.?z))........ |
| 1c460 | 77 69 74 68 20 77 69 64 74 68 20 3d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 0a 20 20 20 20 | with.width.=.(window-width)..... |
| 1c480 | 20 20 20 66 6f 72 20 6e 61 6d 65 20 3d 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 79 70 65 29 | ...for.name.=.(symbol-name.type) |
| 1c4a0 | 0a 20 20 20 20 20 20 20 66 6f 72 20 6b 65 79 20 3d 20 28 73 65 71 2d 66 69 6e 64 20 28 6c 61 6d | ........for.key.=.(seq-find.(lam |
| 1c4c0 | 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 73 29 29 20 | bda.(k).(member.k.unused-keys)). |
| 1c4e0 | 6e 61 6d 65 20 28 73 65 71 2d 66 69 72 73 74 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 | name.(seq-first.unused-keys))... |
| 1c500 | 20 20 20 20 20 64 6f 20 28 73 65 74 71 20 75 6e 75 73 65 64 2d 6b 65 79 73 20 28 64 65 6c 65 74 | .....do.(setq.unused-keys.(delet |
| 1c520 | 65 20 6b 65 79 20 75 6e 75 73 65 64 2d 6b 65 79 73 29 29 0a 20 20 20 20 20 20 20 3b 3b 20 54 68 | e.key.unused-keys))........;;.Th |
| 1c540 | 65 20 65 78 70 6c 69 63 69 74 20 64 65 63 6c 61 72 61 74 69 6f 6e 20 22 3a 74 72 61 6e 73 69 65 | e.explicit.declaration.":transie |
| 1c560 | 6e 74 20 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 74 75 72 6e 22 20 68 65 72 65 0a 20 20 | nt.transient--do-return".here... |
| 1c580 | 20 20 20 20 20 3b 3b 20 61 70 70 65 61 72 73 20 74 6f 20 62 65 20 72 65 71 75 69 72 65 64 20 66 | .....;;.appears.to.be.required.f |
| 1c5a0 | 6f 72 20 54 72 61 6e 73 69 65 6e 74 20 76 30 2e 35 20 61 6e 64 20 75 70 2e 20 20 57 69 74 68 6f | or.Transient.v0.5.and.up...Witho |
| 1c5c0 | 75 74 20 69 74 2c 20 74 68 65 73 65 0a 20 20 20 20 20 20 20 3b 3b 20 61 72 65 20 74 72 65 61 74 | ut.it,.these........;;.are.treat |
| 1c5e0 | 65 64 20 61 73 20 73 75 66 66 69 78 65 73 20 77 68 65 6e 20 69 6e 76 6f 6b 69 6e 67 20 60 67 70 | ed.as.suffixes.when.invoking.`gp |
| 1c600 | 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 27 20 64 69 72 65 63 74 6c 79 2c 0a 20 20 20 | tel-system-prompt'.directly,.... |
| 1c620 | 20 20 20 20 3b 3b 20 61 6e 64 20 69 6e 66 69 78 65 73 20 77 68 65 6e 20 67 6f 69 6e 67 20 74 68 | ....;;.and.infixes.when.going.th |
| 1c640 | 72 6f 75 67 68 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 0a 20 20 20 20 20 20 20 3b 3b 20 54 4f | rough.`gptel-menu'.........;;.TO |
| 1c660 | 44 4f 3a 20 52 61 69 73 65 20 61 6e 20 69 73 73 75 65 20 77 69 74 68 20 54 72 61 6e 73 69 65 6e | DO:.Raise.an.issue.with.Transien |
| 1c680 | 74 2e 0a 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 20 28 6c 69 73 74 20 28 6b 65 79 2d 64 65 73 | t.........collect.(list.(key-des |
| 1c6a0 | 63 72 69 70 74 69 6f 6e 20 28 6c 69 73 74 20 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | cription.(list.key))............ |
| 1c6c0 | 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 63 61 70 69 74 61 6c 69 7a 65 20 6e 61 | ..........(concat.(capitalize.na |
| 1c6e0 | 6d 65 29 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | me)."."......................... |
| 1c700 | 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 20 27 28 | .....(propertize.".".'display.'( |
| 1c720 | 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 20 20 20 | space.:align-to.20))............ |
| 1c740 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 | ..................(propertize... |
| 1c760 | 20 20 20 20 20 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 |
| 1c780 | 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............................. |
| 1c7a0 | 20 20 20 22 28 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 | ..."(".......................... |
| 1c7c0 | 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 | ......(string-replace........... |
| 1c7e0 | 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 20 22 0a 20 | ......................"\n".".".. |
| 1c800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ...............................( |
| 1c820 | 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 70 72 6f 6d 70 74 20 | truncate-string-to-width.prompt. |
| 1c840 | 28 2d 20 77 69 64 74 68 20 33 30 29 20 6e 69 6c 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 20 | (-.width.30).nil.nil.t))........ |
| 1c860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 29 22 29 0a 20 20 20 | ........................")").... |
| 1c880 | 20 20 20 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 | ...........................'face |
| 1c8a0 | 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 20 20 20 20 20 | .'shadow))...................... |
| 1c8c0 | 60 28 6c 61 6d 62 64 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 | `(lambda.().(interactive)....... |
| 1c8e0 | 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 44 69 72 65 | ..................(message."Dire |
| 1c900 | 63 74 69 76 65 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ctive:.%s"...................... |
| 1c920 | 20 20 20 20 2c 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 22 e2 ae 90 20 22 | ....,(string-replace."\n"."...." |
| 1c940 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 | ............................(tru |
| 1c960 | 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 68 20 70 72 6f 6d 70 74 20 31 30 30 | ncate-string-to-width.prompt.100 |
| 1c980 | 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .nil.nil.t)))................... |
| 1c9a0 | 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 27 67 70 | ......(gptel--set-with-scope.'gp |
| 1c9c0 | 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 2c 70 72 6f 6d 70 74 0a 20 20 20 20 | tel--system-message.,prompt..... |
| 1c9e0 | 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 73 65 74 2d | .....................gptel--set- |
| 1ca00 | 62 75 66 66 65 72 2d 6c 6f 63 61 6c 6c 79 29 29 0a 09 09 20 20 20 20 20 3a 74 72 61 6e 73 69 65 | buffer-locally))........:transie |
| 1ca20 | 6e 74 20 27 74 72 61 6e 73 69 65 6e 74 2d 2d 64 6f 2d 72 65 74 75 72 6e 29 0a 20 20 20 20 20 20 | nt.'transient--do-return)....... |
| 1ca40 | 20 69 6e 74 6f 20 70 72 6f 6d 70 74 2d 73 75 66 66 69 78 65 73 0a 20 20 20 20 20 20 20 66 69 6e | .into.prompt-suffixes........fin |
| 1ca60 | 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 0a 20 20 20 20 20 20 | ally.return........(nconc....... |
| 1ca80 | 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 28 6c 69 73 74 20 | ..prompt-suffixes.........(list. |
| 1caa0 | 28 6c 69 73 74 20 22 53 50 43 22 20 22 50 69 63 6b 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 70 | (list."SPC"."Pick.crowdsourced.p |
| 1cac0 | 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 27 67 70 74 65 | rompt".....................'gpte |
| 1cae0 | 6c 2d 2d 72 65 61 64 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 0a 09 09 20 20 | l--read-crowdsourced-prompt..... |
| 1cb00 | 20 20 3b 3b 20 4e 4f 54 45 3a 20 51 75 69 74 74 69 6e 67 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 | ..;;.NOTE:.Quitting.the.completi |
| 1cb20 | 6e 67 20 72 65 61 64 20 77 68 65 6e 20 70 69 63 6b 69 6e 67 20 61 0a 09 09 20 20 20 20 3b 3b 20 | ng.read.when.picking.a.......;;. |
| 1cb40 | 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 |
| 1cb60 | 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 3b 3b 20 69 6e | he.transient.to.exit.......;;.in |
| 1cb80 | 73 74 65 61 64 20 6f 66 20 72 65 74 75 72 6e 69 6e 67 20 74 6f 20 74 68 65 20 73 79 73 74 65 6d | stead.of.returning.to.the.system |
| 1cba0 | 20 70 72 6f 6d 70 74 20 6d 65 6e 75 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .prompt.menu.................... |
| 1cbc0 | 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 65 78 69 74 | ..:transient.'transient--do-exit |
| 1cbe0 | 29 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 20 28 61 75 74 6f 6c 6f 61 64 | ))))))..;;;###autoload.(autoload |
| 1cc00 | 20 27 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 20 22 67 70 74 65 6c 2d 74 72 61 | .'gptel-system-prompt."gptel-tra |
| 1cc20 | 6e 73 69 65 6e 74 22 20 6e 69 6c 20 74 29 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | nsient".nil.t).(transient-define |
| 1cc40 | 2d 70 72 65 66 69 78 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 20 28 29 0a 20 | -prefix.gptel-system-prompt.().. |
| 1cc60 | 20 22 53 65 74 20 74 68 65 20 4c 4c 4d 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 66 6f 72 | ."Set.the.LLM.system.message.for |
| 1cc80 | 20 4c 4c 4d 20 69 6e 74 65 72 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 69 73 20 62 75 66 66 65 72 | .LLM.interactions.in.this.buffer |
| 1cca0 | 2e 0a 0a 54 68 65 20 5c 22 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 5c 22 20 65 73 74 61 62 6c | ...The.\"system.message\".establ |
| 1ccc0 | 69 73 68 65 73 20 64 69 72 65 63 74 69 76 65 73 20 66 6f 72 20 74 68 65 20 63 68 61 74 0a 73 65 | ishes.directives.for.the.chat.se |
| 1cce0 | 73 73 69 6f 6e 20 61 6e 64 20 6d 6f 64 69 66 69 65 73 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 | ssion.and.modifies.the.behavior. |
| 1cd00 | 6f 66 20 74 68 65 20 4c 4c 4d 2e 20 53 6f 6d 65 20 65 78 61 6d 70 6c 65 73 20 6f 66 0a 73 79 73 | of.the.LLM..Some.examples.of.sys |
| 1cd20 | 74 65 6d 20 70 72 6f 6d 70 74 73 20 61 72 65 3a 0a 0a 59 6f 75 20 61 72 65 20 61 20 68 65 6c 70 | tem.prompts.are:..You.are.a.help |
| 1cd40 | 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 41 6e 73 77 65 72 20 61 73 20 63 6f 6e 63 69 73 65 | ful.assistant..Answer.as.concise |
| 1cd60 | 6c 79 20 61 73 20 70 6f 73 73 69 62 6c 65 2e 0a 52 65 70 6c 79 20 6f 6e 6c 79 20 77 69 74 68 20 | ly.as.possible..Reply.only.with. |
| 1cd80 | 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 6e 6f 20 70 72 6f 73 65 2e 0a 59 6f 75 | shell.commands.and.no.prose..You |
| 1cda0 | 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 65 | .are.a.poet..Reply.only.in.verse |
| 1cdc0 | 2e 0a 0a 4d 6f 72 65 20 65 78 74 65 6e 73 69 76 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 | ...More.extensive.system.message |
| 1cde0 | 73 20 63 61 6e 20 62 65 20 75 73 65 66 75 6c 20 66 6f 72 20 73 70 65 63 69 66 69 63 20 74 61 73 | s.can.be.useful.for.specific.tas |
| 1ce00 | 6b 73 2e 0a 0a 43 75 73 74 6f 6d 69 7a 65 20 60 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 | ks...Customize.`gptel-directives |
| 1ce20 | 27 20 66 6f 72 20 74 61 73 6b 2d 73 70 65 63 69 66 69 63 20 70 72 6f 6d 70 74 73 2e 22 0a 20 20 | '.for.task-specific.prompts."... |
| 1ce40 | 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 29 20 28 73 74 72 | [:description....(lambda.().(str |
| 1ce60 | 69 6e 67 2d 72 65 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 20 22 e2 ae 90 20 | ing-replace..........."\n".".... |
| 1ce80 | 22 0a 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- |
| 1cea0 | 77 69 64 74 68 0a 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 | width............gptel--system-m |
| 1cec0 | 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 |
| 1cee0 | 29 20 31 34 29 20 6e 69 6c 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 5b 28 67 70 74 65 6c 2d 2d 73 | ).14).nil.nil.t)))....[(gptel--s |
| 1cf00 | 75 66 66 69 78 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 5d 0a 20 20 20 5b 28 67 70 74 65 | uffix-system-message)]....[(gpte |
| 1cf20 | 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 29 5d 5d 0a 20 20 20 5b 3a | l--infix-variable-scope)]]....[: |
| 1cf40 | 63 6c 61 73 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 6f 6c 75 6d 6e 0a 20 20 20 20 3a 73 65 74 75 | class.transient-column.....:setu |
| 1cf60 | 70 2d 63 68 69 6c 64 72 65 6e 20 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 2d 2d | p-children.gptel-system-prompt-- |
| 1cf80 | 73 65 74 75 70 0a 20 20 20 20 3a 70 61 64 2d 6b 65 79 73 20 74 5d 29 0a 0a 3b 3b 20 2a 2a 20 50 | setup.....:pad-keys.t])..;;.**.P |
| 1cfa0 | 72 65 66 69 78 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 2f 72 65 66 61 63 74 6f 72 69 6e 67 0a | refix.for.rewriting/refactoring. |
| 1cfc0 | 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- |
| 1cfe0 | 72 65 77 72 69 74 65 2d 6d 65 6e 75 20 28 29 0a 20 20 22 52 65 77 72 69 74 65 20 6f 72 20 72 65 | rewrite-menu.()..."Rewrite.or.re |
| 1d000 | 66 61 63 74 6f 72 20 74 65 78 74 20 72 65 67 69 6f 6e 20 75 73 69 6e 67 20 61 6e 20 4c 4c 4d 2e | factor.text.region.using.an.LLM. |
| 1d020 | 22 0a 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a | "...[:description....(lambda.(). |
| 1d040 | 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 44 69 72 65 63 74 69 76 65 3a 20 20 25 73 22 0a 20 20 | .....(format."Directive:..%s"... |
| 1d060 | 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 | ...........(truncate-string-to-w |
| 1d080 | 69 64 74 68 0a 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 72 65 | idth...............(or.gptel--re |
| 1d0a0 | 77 72 69 74 65 2d 6d 65 73 73 61 67 65 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 | write-message.(gptel--rewrite-me |
| 1d0c0 | 73 73 61 67 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 77 | ssage))...............(max.(-.(w |
| 1d0e0 | 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 34 29 20 32 30 29 20 6e 69 6c 20 6e 69 6c 20 74 29 29 | indow-width).14).20).nil.nil.t)) |
| 1d100 | 29 0a 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 70 72 6f 6d 70 | )....(gptel--infix-rewrite-promp |
| 1d120 | 74 29 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 | t)]...[[:description."Diff.Optio |
| 1d140 | 6e 73 22 0a 20 20 20 28 22 2d 77 22 20 22 57 6f 72 64 77 69 73 65 20 64 69 66 66 22 20 22 2d 77 | ns"....("-w"."Wordwise.diff"."-w |
| 1d160 | 22 29 5d 0a 20 20 20 5b 3a 64 65 73 63 72 69 70 74 69 6f 6e 0a 20 20 20 20 28 6c 61 6d 62 64 61 | ")]....[:description.....(lambda |
| 1d180 | 20 28 29 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 | .().(if.(derived-mode-p.'prog-mo |
| 1d1a0 | 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 52 65 66 61 63 74 6f 72 22 20 22 52 65 | de)..............."Refactor"."Re |
| 1d1c0 | 77 72 69 74 65 22 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 | write")).....(gptel--suffix-rewr |
| 1d1e0 | 69 74 65 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 | ite).....(gptel--suffix-rewrite- |
| 1d200 | 61 6e 64 2d 72 65 70 6c 61 63 65 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d | and-replace).....(gptel--suffix- |
| 1d220 | 72 65 77 72 69 74 65 2d 61 6e 64 2d 65 64 69 66 66 29 5d 5d 0a 20 20 28 69 6e 74 65 72 61 63 74 | rewrite-and-ediff)]]...(interact |
| 1d240 | 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 | ive)...(unless.gptel--rewrite-me |
| 1d260 | 73 73 61 67 65 0a 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d | ssage.....(setq.gptel--rewrite-m |
| 1d280 | 65 73 73 61 67 65 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 29 29 | essage.(gptel--rewrite-message)) |
| 1d2a0 | 29 0a 20 20 28 74 72 61 6e 73 69 65 6e 74 2d 73 65 74 75 70 20 27 67 70 74 65 6c 2d 72 65 77 72 | )...(transient-setup.'gptel-rewr |
| 1d2c0 | 69 74 65 2d 6d 65 6e 75 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 72 61 6e 73 69 65 6e 74 20 49 6e 66 | ite-menu))....;;.*.Transient.Inf |
| 1d2e0 | 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 49 6e 66 69 78 65 73 20 66 6f 72 20 6d 6f 64 65 6c 20 70 61 | ixes..;;.**.Infixes.for.model.pa |
| 1d300 | 72 61 6d 65 74 65 72 73 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 | rameters..(transient-define-infi |
| 1d320 | 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 76 61 72 69 61 62 6c 65 2d 73 63 6f 70 65 20 28 29 | x.gptel--infix-variable-scope.() |
| 1d340 | 0a 20 20 22 53 65 74 20 67 70 74 65 6c 27 73 20 6d 6f 64 65 6c 20 70 61 72 61 6d 65 74 65 72 73 | ..."Set.gptel's.model.parameters |
| 1d360 | 20 61 6e 64 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 69 6e 20 74 68 69 73 20 62 75 66 66 | .and.system.message.in.this.buff |
| 1d380 | 65 72 20 6f 72 20 67 6c 6f 62 61 6c 6c 79 2e 22 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 73 63 | er.or.globally."...:argument."sc |
| 1d3a0 | 6f 70 65 22 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 73 65 74 2d 62 75 66 | ope"...:variable.'gptel--set-buf |
| 1d3c0 | 66 65 72 2d 6c 6f 63 61 6c 6c 79 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 74 65 6c 2d 2d 73 77 69 | fer-locally...:class.'gptel--swi |
| 1d3e0 | 74 63 68 65 73 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 20 25 6b 20 25 64 20 25 76 22 0a 20 20 3a | tches...:format."..%k.%d.%v"...: |
| 1d400 | 6b 65 79 20 22 3d 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 28 70 72 6f 70 65 72 74 69 | key."="...:description.(properti |
| 1d420 | 7a 65 20 22 53 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 | ze."Set".'face.'transient-inacti |
| 1d440 | 76 65 2d 61 72 67 75 6d 65 6e 74 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | ve-argument))..(transient-define |
| 1d460 | 2d 69 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 | -infix.gptel--infix-num-messages |
| 1d480 | 2d 74 6f 2d 73 65 6e 64 20 28 29 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 72 65 63 65 6e 74 20 | -to-send.()..."Number.of.recent. |
| 1d4a0 | 6d 65 73 73 61 67 65 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 20 65 78 63 68 61 | messages.to.send.with.each.excha |
| 1d4c0 | 6e 67 65 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 66 75 6c 6c 20 63 6f 6e 76 65 | nge...By.default,.the.full.conve |
| 1d4e0 | 72 73 61 74 69 6f 6e 20 68 69 73 74 6f 72 79 20 69 73 20 73 65 6e 74 20 77 69 74 68 20 65 76 65 | rsation.history.is.sent.with.eve |
| 1d500 | 72 79 20 6e 65 77 0a 70 72 6f 6d 70 74 2e 20 54 68 69 73 20 72 65 74 61 69 6e 73 20 74 68 65 20 | ry.new.prompt..This.retains.the. |
| 1d520 | 66 75 6c 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e | full.context.of.the.conversation |
| 1d540 | 2c 20 62 75 74 0a 63 61 6e 20 62 65 20 65 78 70 65 6e 73 69 76 65 20 69 6e 20 74 6f 6b 65 6e 20 | ,.but.can.be.expensive.in.token. |
| 1d560 | 73 69 7a 65 2e 20 53 65 74 20 68 6f 77 20 6d 61 6e 79 20 72 65 63 65 6e 74 20 6d 65 73 73 61 67 | size..Set.how.many.recent.messag |
| 1d580 | 65 73 20 74 6f 0a 69 6e 63 6c 75 64 65 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 | es.to.include."...:description." |
| 1d5a0 | 70 72 65 76 69 6f 75 73 20 72 65 73 70 6f 6e 73 65 73 22 0a 20 20 3a 63 6c 61 73 73 20 27 67 70 | previous.responses"...:class.'gp |
| 1d5c0 | 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 |
| 1d5e0 | 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 0a 20 20 3a 73 65 | ptel--num-messages-to-send...:se |
| 1d600 | 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. |
| 1d620 | 20 20 3a 64 69 73 70 6c 61 79 2d 6e 69 6c 20 27 61 6c 6c 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 | ..:display-nil.'all...:format.". |
| 1d640 | 25 6b 20 25 76 20 25 64 22 0a 20 20 3a 6b 65 79 20 22 2d 6e 22 0a 20 20 3a 70 72 6f 6d 70 74 20 | %k.%v.%d"...:key."-n"...:prompt. |
| 1d660 | 22 4e 75 6d 62 65 72 20 6f 66 20 70 61 73 74 20 6d 65 73 73 61 67 65 73 20 74 6f 20 69 6e 63 6c | "Number.of.past.messages.to.incl |
| 1d680 | 75 64 65 20 66 6f 72 20 63 6f 6e 74 65 78 74 20 28 6c 65 61 76 65 20 65 6d 70 74 79 20 66 6f 72 | ude.for.context.(leave.empty.for |
| 1d6a0 | 20 61 6c 6c 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 27 67 70 74 65 6c 2d 2d 74 72 61 6e 73 | .all):."...:reader.'gptel--trans |
| 1d6c0 | 69 65 6e 74 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d | ient-read-variable)..(transient- |
| 1d6e0 | 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 6d 61 78 2d 74 6f | define-infix.gptel--infix-max-to |
| 1d700 | 6b 65 6e 73 20 28 29 0a 20 20 22 4d 61 78 20 74 6f 6b 65 6e 73 20 70 65 72 20 72 65 73 70 6f 6e | kens.()..."Max.tokens.per.respon |
| 1d720 | 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. |
| 1d740 | 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 31 30 30 2d 33 30 | of.words.in.the.response..100-30 |
| 1d760 | 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 72 | 0.is.a.reasonable.range.for.shor |
| 1d780 | 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 65 | t.answers,.400.or.more.for.longe |
| 1d7a0 | 72 0a 72 65 73 70 6f 6e 73 65 73 2e 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 52 65 | r.responses."...:description."Re |
| 1d7c0 | 73 70 6f 6e 73 65 20 6c 65 6e 67 74 68 20 28 74 6f 6b 65 6e 73 29 22 0a 20 20 3a 63 6c 61 73 73 | sponse.length.(tokens)"...:class |
| 1d7e0 | 20 27 67 70 74 65 6c 2d 6c 69 73 70 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c | .'gptel-lisp-variable...:variabl |
| 1d800 | 65 20 27 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 | e.'gptel-max-tokens...:set-value |
| 1d820 | 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 |
| 1d840 | 6c 61 79 2d 6e 69 6c 20 27 61 75 74 6f 0a 20 20 3a 6b 65 79 20 22 2d 63 22 0a 20 20 3a 70 72 6f | lay-nil.'auto...:key."-c"...:pro |
| 1d860 | 6d 70 74 20 22 52 65 73 70 6f 6e 73 65 20 6c 65 6e 67 74 68 20 69 6e 20 74 6f 6b 65 6e 73 20 28 | mpt."Response.length.in.tokens.( |
| 1d880 | 6c 65 61 76 65 20 65 6d 70 74 79 3a 20 64 65 66 61 75 6c 74 2c 20 38 30 2d 32 30 30 3a 20 73 68 | leave.empty:.default,.80-200:.sh |
| 1d8a0 | 6f 72 74 2c 20 32 30 30 2d 35 30 30 3a 20 6c 6f 6e 67 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 | ort,.200-500:.long):."...:reader |
| 1d8c0 | 20 27 67 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 | .'gptel--transient-read-variable |
| 1d8e0 | 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 6e 66 69 78 20 67 70 74 65 6c | )..(transient-define-infix.gptel |
| 1d900 | 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 20 50 72 6f 76 69 64 | --infix-provider.()..."AI.Provid |
| 1d920 | 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 69 6f 6e 20 22 47 50 | er.for.Chat."...:description."GP |
| 1d940 | 54 20 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 69 64 65 | T.Model"...:class.'gptel-provide |
| 1d960 | 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 22 0a 20 | r-variable...:prompt."Model:.".. |
| 1d980 | 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 0a 20 20 3a 73 65 74 | .:variable.'gptel-backend...:set |
| 1d9a0 | 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.. |
| 1d9c0 | 20 3a 6d 6f 64 65 6c 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 3a 6b 65 79 20 22 2d 6d 22 | .:model.'gptel-model...:key."-m" |
| 1d9e0 | 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 6d 70 74 20 26 72 65 73 74 | ...:reader.(lambda.(prompt.&rest |
| 1da00 | 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 20 20 20 20 20 | ._).............(cl-loop........ |
| 1da20 | 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 69 6e 20 67 70 | ......for.(name...backend).in.gp |
| 1da40 | 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tel--known-backends............. |
| 1da60 | 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 6e 20 28 67 70 | .nconc.(cl-loop.for.model.in.(gp |
| 1da80 | 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 0a 20 20 20 20 | tel-backend-models.backend)..... |
| 1daa0 | 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 65 63 74 20 | ........................collect. |
| 1dac0 | 28 6c 69 73 74 20 28 63 6f 6e 63 61 74 20 6e 61 6d 65 20 22 3a 22 20 6d 6f 64 65 6c 29 20 62 61 | (list.(concat.name.":".model).ba |
| 1dae0 | 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 74 6f 20 | ckend.model))..............into. |
| 1db00 | 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 20 66 69 6e 61 6c 6c 79 20 72 65 74 75 72 6e 0a 20 20 20 20 | models-alist.finally.return..... |
| 1db20 | 20 20 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 28 63 6f 6d 70 6c 65 74 69 6e 67 | .........(cdr.(assoc.(completing |
| 1db40 | 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 6d 6f 64 65 6c 73 2d 61 6c 69 73 74 20 6e 69 6c 20 74 29 | -read.prompt.models-alist.nil.t) |
| 1db60 | 0a 20 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 6f 64 65 6c 73 | ..........................models |
| 1db80 | 2d 61 6c 69 73 74 29 29 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 69 | -alist)))))..(transient-define-i |
| 1dba0 | 6e 66 69 78 20 67 70 74 65 6c 2d 2d 69 6e 66 69 78 2d 74 65 6d 70 65 72 61 74 75 72 65 20 28 29 | nfix.gptel--infix-temperature.() |
| 1dbc0 | 0a 20 20 22 54 65 6d 70 65 72 61 74 75 72 65 20 6f 66 20 72 65 71 75 65 73 74 2e 22 0a 20 20 3a | ..."Temperature.of.request."...: |
| 1dbe0 | 64 65 73 63 72 69 70 74 69 6f 6e 20 22 54 65 6d 70 65 72 61 74 75 72 65 20 28 30 20 2d 20 32 2e | description."Temperature.(0.-.2. |
| 1dc00 | 30 29 22 0a 20 20 3a 63 6c 61 73 73 20 27 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 2d 76 61 72 | 0)"...:class.'transient-lisp-var |
| 1dc20 | 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 74 65 6d 70 65 72 61 | iable...:variable.'gptel-tempera |
| 1dc40 | 74 75 72 65 0a 20 20 3a 73 65 74 2d 76 61 6c 75 65 20 23 27 67 70 74 65 6c 2d 2d 73 65 74 2d 77 | ture...:set-value.#'gptel--set-w |
| 1dc60 | 69 74 68 2d 73 63 6f 70 65 0a 20 20 3a 6b 65 79 20 22 2d 74 22 0a 20 20 3a 70 72 6f 6d 70 74 20 | ith-scope...:key."-t"...:prompt. |
| 1dc80 | 22 54 65 6d 70 65 72 61 74 75 72 65 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 20 72 65 73 70 6f 6e | "Temperature.controls.the.respon |
| 1dca0 | 73 65 20 72 61 6e 64 6f 6d 6e 65 73 73 20 28 30 2e 30 2d 32 2e 30 2c 20 6c 65 61 76 65 20 65 6d | se.randomness.(0.0-2.0,.leave.em |
| 1dcc0 | 70 74 79 20 66 6f 72 20 64 65 66 61 75 6c 74 29 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 27 67 | pty.for.default):."...:reader.'g |
| 1dce0 | 70 74 65 6c 2d 2d 74 72 61 6e 73 69 65 6e 74 2d 72 65 61 64 2d 76 61 72 69 61 62 6c 65 29 0a 0a | ptel--transient-read-variable).. |
| 1dd00 | 3b 3b 20 2a 2a 20 49 6e 66 69 78 20 66 6f 72 20 74 68 65 20 72 65 66 61 63 74 6f 72 2f 72 65 77 | ;;.**.Infix.for.the.refactor/rew |
| 1dd20 | 72 69 74 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d | rite.system.message..(transient- |
| 1dd40 | 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 69 | define-infix.gptel--infix-add-di |
| 1dd60 | 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 69 | rective.()..."Additional.directi |
| 1dd80 | 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 6f | ve.intended.for.the.next.query.o |
| 1dda0 | 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 61 | nly...This.is.useful.to.define.a |
| 1ddc0 | 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 74 | .quick.task.on.top.of.a.more.ext |
| 1dde0 | 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 67 | ensive.or.detailed.system.messag |
| 1de00 | 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 20 | e...For.example,.with.code/text. |
| 1de20 | 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 69 | selected:..-.Rewrite.this.functi |
| 1de40 | 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 43 | on.to.do.X.while.avoiding.Y..-.C |
| 1de60 | 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 20 | hange.the.tone.of.the.following. |
| 1de80 | 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 72 | paragraph.to.be.more.direct...Or |
| 1dea0 | 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 2d | .in.an.extended.conversation:..- |
| 1dec0 | 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 6e | .Phrase.you.next.response.in.ten |
| 1dee0 | 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 6f | .words.or.less..-.Pretend.for.no |
| 1df00 | 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 2e | w.that.you're.an.anthropologist. |
| 1df20 | 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 69 | "...:class.'gptel-option-overlai |
| 1df40 | 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 63 | d...;;.:variable.'gptel--instruc |
| 1df60 | 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 76 | tions...:display-nil.'none...:ov |
| 1df80 | 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 6f | erlay.nil...:argument.":"...:pro |
| 1dfa0 | 6d 70 74 20 22 49 6e 73 74 72 75 63 74 69 6f 6e 73 20 66 6f 72 20 6e 65 78 74 20 72 65 73 70 6f | mpt."Instructions.for.next.respo |
| 1dfc0 | 6e 73 65 20 6f 6e 6c 79 3a 20 22 0a 20 20 3a 72 65 61 64 65 72 20 28 6c 61 6d 62 64 61 20 28 70 | nse.only:."...:reader.(lambda.(p |
| 1dfe0 | 72 6f 6d 70 74 20 69 6e 69 74 69 61 6c 20 68 69 73 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 | rompt.initial.history).......... |
| 1e000 | 20 20 20 28 6c 65 74 2a 20 28 28 65 78 74 72 61 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 70 72 | ...(let*.((extra.(read-string.pr |
| 1e020 | 6f 6d 70 74 20 69 6e 69 74 69 61 6c 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 | ompt.initial.history)))......... |
| 1e040 | 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 65 78 | ......(unless.(string-empty-p.ex |
| 1e060 | 74 72 61 29 20 65 78 74 72 61 29 29 29 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 25 64 20 | tra).extra)))...:format.".%k.%d. |
| 1e080 | 25 76 22 0a 20 20 3a 6b 65 79 20 22 64 22 0a 20 20 3a 61 72 67 75 6d 65 6e 74 20 22 3a 22 0a 20 | %v"...:key."d"...:argument.":".. |
| 1e0a0 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 41 64 64 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 | .:description."Add.directive"... |
| 1e0c0 | 3a 74 72 61 6e 73 69 65 6e 74 20 74 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 | :transient.t)..(transient-define |
| 1e0e0 | 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 70 72 6f 6d | -infix.gptel--infix-rewrite-prom |
| 1e100 | 70 74 20 28 29 0a 20 20 22 43 68 61 74 20 64 69 72 65 63 74 69 76 65 20 28 73 79 73 74 65 6d 20 | pt.()..."Chat.directive.(system. |
| 1e120 | 6d 65 73 73 61 67 65 29 20 74 6f 20 75 73 65 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 20 6f 72 | message).to.use.for.rewriting.or |
| 1e140 | 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 28 6c | .refactoring."...:description.(l |
| 1e160 | 61 6d 62 64 61 20 28 29 20 28 69 66 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 70 72 | ambda.().(if.(derived-mode-p.'pr |
| 1e180 | 6f 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 20 | og-mode)........................ |
| 1e1a0 | 20 20 22 53 65 74 20 64 69 72 65 63 74 69 76 65 73 20 66 6f 72 20 72 65 66 61 63 74 6f 72 22 0a | .."Set.directives.for.refactor". |
| 1e1c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 65 74 20 64 69 72 65 | ......................."Set.dire |
| 1e1e0 | 63 74 69 76 65 73 20 66 6f 72 20 72 65 77 72 69 74 65 22 29 29 0a 20 20 3a 66 6f 72 6d 61 74 20 | ctives.for.rewrite"))...:format. |
| 1e200 | 22 25 6b 20 25 64 22 0a 20 20 3a 63 6c 61 73 73 20 27 74 72 61 6e 73 69 65 6e 74 2d 6c 69 73 70 | "%k.%d"...:class.'transient-lisp |
| 1e220 | 2d 76 61 72 69 61 62 6c 65 0a 20 20 3a 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 72 65 | -variable...:variable.'gptel--re |
| 1e240 | 77 72 69 74 65 2d 6d 65 73 73 61 67 65 0a 20 20 3a 6b 65 79 20 22 68 22 0a 20 20 3a 70 72 6f 6d | write-message...:key."h"...:prom |
| 1e260 | 70 74 20 22 53 65 74 20 64 69 72 65 63 74 69 76 65 20 66 6f 72 20 72 65 77 72 69 74 65 3a 20 22 | pt."Set.directive.for.rewrite:." |
| 1e280 | 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 5f 20 68 69 73 | ...:reader.(lambda.(prompt._.his |
| 1e2a0 | 74 6f 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 | tory).............(read-string.. |
| 1e2c0 | 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f 6d 70 74 20 28 67 70 74 65 6c 2d 2d 72 65 77 72 69 | ............prompt.(gptel--rewri |
| 1e2e0 | 74 65 2d 6d 65 73 73 61 67 65 29 20 68 69 73 74 6f 72 79 29 29 29 0a 0a 0c 0a 3b 3b 20 2a 20 54 | te-message).history)))....;;.*.T |
| 1e300 | 72 61 6e 73 69 65 6e 74 20 53 75 66 66 69 78 65 73 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 20 | ransient.Suffixes..;;.**.Suffix. |
| 1e320 | 74 6f 20 73 65 6e 64 20 70 72 6f 6d 70 74 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e | to.send.prompt..(transient-defin |
| 1e340 | 65 2d 73 75 66 66 69 78 20 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 28 61 72 67 | e-suffix.gptel--suffix-send.(arg |
| 1e360 | 73 29 0a 20 20 22 53 65 6e 64 20 41 52 47 53 2e 22 0a 20 20 3a 6b 65 79 20 22 52 45 54 22 0a 20 | s)..."Send.ARGS."...:key."RET".. |
| 1e380 | 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 65 6e 64 20 70 72 6f 6d 70 74 22 0a 20 20 28 69 | .:description."Send.prompt"...(i |
| 1e3a0 | 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 74 2d 61 72 67 73 | nteractive.(list.(transient-args |
| 1e3c0 | 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 74 72 61 6e 73 | .......................(or.trans |
| 1e3e0 | 69 65 6e 74 2d 63 75 72 72 65 6e 74 2d 63 6f 6d 6d 61 6e 64 20 27 67 70 74 65 6c 2d 6d 65 6e 75 | ient-current-command.'gptel-menu |
| 1e400 | 29 29 29 29 0a 20 20 28 6c 65 74 20 28 28 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 | ))))...(let.((stream.gptel-strea |
| 1e420 | 6d 29 0a 20 20 20 20 20 20 20 20 28 69 6e 2d 70 6c 61 63 65 20 28 61 6e 64 20 28 6d 65 6d 62 65 | m).........(in-place.(and.(membe |
| 1e440 | 72 20 22 69 22 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 70 75 74 2d | r."i".args).t)).........(output- |
| 1e460 | 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b | to-other-buffer-p).........(back |
| 1e480 | 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 64 65 | end.gptel-backend).........(mode |
| 1e4a0 | 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 28 62 61 63 6b 65 6e 64 2d | l.gptel-model).........(backend- |
| 1e4c0 | 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 67 70 74 65 6c 2d 62 | name.(gptel-backend-name.gptel-b |
| 1e4e0 | 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 29 20 28 70 6f 73 69 74 | ackend)).........(buffer).(posit |
| 1e500 | 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 28 63 61 6c 6c 62 61 63 6b 29 20 28 67 70 74 65 6c 2d 62 | ion).........(callback).(gptel-b |
| 1e520 | 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 79 73 74 65 6d 2d 65 78 74 72 | uffer-name).........(system-extr |
| 1e540 | 61 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 64 69 72 65 63 74 69 76 65 20 61 72 67 73 29 29 0a 20 | a.(gptel--get-directive.args)).. |
| 1e560 | 20 20 20 20 20 20 20 28 64 72 79 2d 72 75 6e 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 22 49 22 | .......(dry-run.(and.(member."I" |
| 1e580 | 20 61 72 67 73 29 20 74 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 70 75 74 20 72 65 64 69 | .args).t)).........;;.Input.redi |
| 1e5a0 | 72 65 63 74 69 6f 6e 3a 20 67 72 61 62 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 65 6c 73 65 77 68 | rection:.grab.prompt.from.elsewh |
| 1e5c0 | 65 72 65 3f 0a 20 20 20 20 20 20 20 20 28 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 28 63 | ere?.........(prompt..........(c |
| 1e5e0 | 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 6d 22 20 61 72 67 73 29 | ond...........((member."m".args) |
| 1e600 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 | ............(read-string........ |
| 1e620 | 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 41 73 6b 20 25 73 3a 20 22 20 28 67 70 74 65 6c 2d 62 | .....(format."Ask.%s:.".(gptel-b |
| 1e640 | 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 20 | ackend-name.gptel-backend))..... |
| 1e660 | 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 | ........(and.(use-region-p)..... |
| 1e680 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e | .............(buffer-substring-n |
| 1e6a0 | 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 28 | o-properties...................( |
| 1e6c0 | 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 | region-beginning).(region-end))) |
| 1e6e0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 79 22 20 61 72 67 73 29 0a | ))...........((member."y".args). |
| 1e700 | 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 63 61 72 2d 73 61 66 65 20 6b 69 6c | ...........(unless.(car-safe.kil |
| 1e720 | 6c 2d 72 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 | l-ring)..............(user-error |
| 1e740 | 20 22 60 6b 69 6c 6c 2d 72 69 6e 67 27 20 69 73 20 65 6d 70 74 79 21 20 20 4e 6f 74 68 69 6e 67 | ."`kill-ring'.is.empty!..Nothing |
| 1e760 | 20 74 6f 20 73 65 6e 64 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 75 72 72 65 | .to.send"))............(if.curre |
| 1e780 | 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 | nt-prefix-arg................(re |
| 1e7a0 | 61 64 2d 66 72 6f 6d 2d 6b 69 6c 6c 2d 72 69 6e 67 20 22 50 72 6f 6d 70 74 20 66 72 6f 6d 20 6b | ad-from-kill-ring."Prompt.from.k |
| 1e7c0 | 69 6c 6c 2d 72 69 6e 67 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 75 72 72 65 | ill-ring:.")..............(curre |
| 1e7e0 | 6e 74 2d 6b 69 6c 6c 20 30 29 29 29 29 29 29 0a 0a 20 20 20 20 3b 3b 20 4f 75 74 70 75 74 20 72 | nt-kill.0))))))......;;.Output.r |
| 1e800 | 65 64 69 72 65 63 74 69 6f 6e 3a 20 53 65 6e 64 20 72 65 73 70 6f 6e 73 65 20 65 6c 73 65 77 68 | edirection:.Send.response.elsewh |
| 1e820 | 65 72 65 3f 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6d 65 6d 62 65 72 20 22 65 22 | ere?.....(cond......((member."e" |
| 1e840 | 20 61 72 67 73 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 74 72 65 61 6d 20 6e 69 6c 29 0a 20 | .args).......(setq.stream.nil).. |
| 1e860 | 20 20 20 20 20 28 73 65 74 71 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .....(setq.callback............. |
| 1e880 | 28 6c 61 6d 62 64 61 20 28 72 65 73 70 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (lambda.(resp.info)............. |
| 1e8a0 | 20 20 28 69 66 20 72 65 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 | ..(if.resp...................(me |
| 1e8c0 | 73 73 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 3a 20 25 73 22 20 62 61 63 6b 65 6e 64 2d | ssage."%s.response:.%s".backend- |
| 1e8e0 | 6e 61 6d 65 20 72 65 73 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 | name.resp).................(mess |
| 1e900 | 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 22 20 62 61 63 6b | age."%s.response.error:.%s".back |
| 1e920 | 65 6e 64 2d 6e 61 6d 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 | end-name.(plist-get.info.:status |
| 1e940 | 29 29 29 29 29 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 | ))))))......((member."k".args).. |
| 1e960 | 20 20 20 20 20 28 73 65 74 71 20 73 74 72 65 61 6d 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 | .....(setq.stream.nil).......(se |
| 1e980 | 74 71 20 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 | tq.callback.............(lambda. |
| 1e9a0 | 28 72 65 73 70 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e | (resp.info)...............(if.(n |
| 1e9c0 | 6f 74 20 72 65 73 70 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 | ot.resp)...................(mess |
| 1e9e0 | 61 67 65 20 22 25 73 20 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 22 20 62 61 63 6b | age."%s.response.error:.%s".back |
| 1ea00 | 65 6e 64 2d 6e 61 6d 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 | end-name.(plist-get.info.:status |
| 1ea20 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 72 65 73 | )).................(kill-new.res |
| 1ea40 | 70 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 25 73 20 | p).................(message."%s. |
| 1ea60 | 72 65 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 | response:.\"%s\".copied.to.kill- |
| 1ea80 | 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 20 20 20 | ring.".......................... |
| 1eaa0 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | backend-name.................... |
| 1eac0 | 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 20 | ......(truncate-string-to-width. |
| 1eae0 | 72 65 73 70 20 33 30 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 73 65 74 71 20 67 70 74 65 6c 2d | resp.30))))))......((setq.gptel- |
| 1eb00 | 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 | buffer-name.............(cl-some |
| 1eb20 | 20 28 6c 61 6d 62 64 61 20 28 73 29 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 | .(lambda.(s).(and.(stringp.s).(s |
| 1eb40 | 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 22 67 22 20 73 29 0a 20 20 20 20 20 20 20 20 20 20 | tring-prefix-p."g".s)........... |
| 1eb60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e | .......................(substrin |
| 1eb80 | 67 20 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 | g.s.1)))......................ar |
| 1eba0 | 67 73 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 | gs)).......(setq.output-to-other |
| 1ebc0 | 2d 62 75 66 66 65 72 2d 70 20 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 64 75 63 65 | -buffer-p.t).......(let.((reduce |
| 1ebe0 | 64 2d 70 72 6f 6d 70 74 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 46 6f 72 20 69 6e 73 65 72 74 | d-prompt.............;For.insert |
| 1ec00 | 69 6e 67 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 20 61 73 0a 20 20 20 | ing.into.the.gptel.buffer.as.... |
| 1ec20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1ec40 | 20 20 20 20 20 3b 63 6f 6e 74 65 78 74 2c 20 6e 6f 74 20 74 68 65 20 70 72 6f 6d 70 74 20 75 73 | .....;context,.not.the.prompt.us |
| 1ec60 | 65 64 20 66 6f 72 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ed.for.the...................... |
| 1ec80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 72 65 71 75 65 73 74 20 69 74 73 65 | ...................;request.itse |
| 1eca0 | 6c 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 | lf..............(or.prompt...... |
| 1ecc0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 | ............(if.(use-region-p).. |
| 1ece0 | 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 |
| 1ed00 | 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 67 69 | tring-no-properties.(region-begi |
| 1ed20 | 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).......................... |
| 1ed40 | 20 20 20 20 20 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 | ............................(reg |
| 1ed60 | 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 | ion-end))....................(bu |
| 1ed80 | 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 20 | ffer-substring-no-properties.... |
| 1eda0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | .................(save-excursion |
| 1edc0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 2d 70 72 6f | .......................(text-pro |
| 1ede0 | 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 | perty-search-backward........... |
| 1ee00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 | .............'gptel.'response... |
| 1ee20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d | .....................(when.(get- |
| 1ee40 | 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 | char-property.(max.(point-min).( |
| 1ee60 | 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | 1-.(point))).................... |
| 1ee80 | 20 20 20 20 20 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 | .............................'gp |
| 1eea0 | 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 74 29 | tel)..........................t) |
| 1eec0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 | ).......................(point)) |
| 1eee0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 74 2d | .....................(gptel--at- |
| 1ef00 | 77 6f 72 64 2d 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 | word-end.(point))))))).........( |
| 1ef20 | 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 28 67 | cond..........((buffer-live-p.(g |
| 1ef40 | 65 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 | et-buffer.gptel-buffer-name))... |
| 1ef60 | 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 69 6e 74 6f 20 65 78 69 73 74 69 6e 67 20 | ........;;.Insert.into.existing. |
| 1ef80 | 67 70 74 65 6c 20 73 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 | gptel.session...........(progn.. |
| 1efa0 | 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 | ...........(setq.buffer.(get-buf |
| 1efc0 | 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 | fer.gptel-buffer-name))......... |
| 1efe0 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 72 0a | ....(with-current-buffer.buffer. |
| 1f000 | 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 2d | ..............(goto-char.(point- |
| 1f020 | 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 | max))...............(unless.(or. |
| 1f040 | 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | buffer-read-only................ |
| 1f060 | 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 70 | ...........(get-char-property.(p |
| 1f080 | 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 20 | oint).'read-only)).............. |
| 1f0a0 | 20 20 20 28 69 6e 73 65 72 74 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 29 0a 20 20 20 20 | ...(insert.reduced-prompt))..... |
| 1f0c0 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 6e 74 29 | ..........(setq.position.(point) |
| 1f0e0 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 | )...............(when.gptel-mode |
| 1f100 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d | .................(gptel--update- |
| 1f120 | 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 67 29 29 29 | status.".Waiting...".'warning))) |
| 1f140 | 29 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 69 6e 74 6f 20 6e 65 77 20 67 | ))..........;;.Insert.into.new.g |
| 1f160 | 70 74 65 6c 20 73 65 73 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 71 20 62 | ptel.session..........(t.(setq.b |
| 1f180 | 75 66 66 65 72 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 20 67 | uffer...................(gptel.g |
| 1f1a0 | 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-buffer-name................ |
| 1f1c0 | 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... |
| 1f1e0 | 20 20 20 20 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 |
| 1f200 | 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--get-api-key)................. |
| 1f220 | 20 20 20 20 20 20 20 20 20 20 20 28 28 65 72 72 6f 72 20 75 73 65 72 2d 65 72 72 6f 72 29 0a 20 | ...........((error.user-error).. |
| 1f240 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 | ...........................(setq |
| 1f260 | 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 20 20 20 20 20 20 | .gptel-api-key.................. |
| 1f280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 70 61 73 73 77 64 0a 20 20 | .................(read-passwd... |
| 1f2a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1f2c0 | 20 28 66 6f 72 6d 61 74 20 22 25 73 20 41 50 49 20 6b 65 79 3a 20 22 0a 20 20 20 20 20 20 20 20 | .(format."%s.API.key:."......... |
| 1f2e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1f300 | 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 | ...(gptel-backend-name.......... |
| 1f320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1f340 | 20 20 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 | ...gptel-backend)))))).......... |
| 1f360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 64 75 63 65 64 2d 70 72 6f 6d 70 74 29 29 | ................reduced-prompt)) |
| 1f380 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 62 61 63 6b 65 6e 64 20 61 6e 64 20 | .............;;.Set.backend.and. |
| 1f3a0 | 6d 6f 64 65 6c 20 69 6e 20 6e 65 77 20 73 65 73 73 69 6f 6e 20 66 72 6f 6d 20 63 75 72 72 65 6e | model.in.new.session.from.curren |
| 1f3c0 | 74 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 | t.buffer.............(with-curre |
| 1f3e0 | 6e 74 2d 62 75 66 66 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 | nt-buffer.buffer...............( |
| 1f400 | 73 65 74 71 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 | setq.gptel-backend.backend)..... |
| 1f420 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 | ..........(setq.gptel-model.mode |
| 1f440 | 6c 29 0a 20 20 20 20 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 | l)...............(gptel--update- |
| 1f460 | 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 67 29 0a 20 | status.".Waiting...".'warning).. |
| 1f480 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 6f 73 69 74 69 6f 6e 20 28 70 6f 69 | .............(setq.position.(poi |
| 1f4a0 | 6e 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 28 28 73 65 74 71 20 67 70 74 65 6c 2d 62 75 66 66 | nt)))))))......((setq.gptel-buff |
| 1f4c0 | 65 72 2d 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 73 6f 6d 65 20 28 6c 61 | er-name.............(cl-some.(la |
| 1f4e0 | 6d 62 64 61 20 28 73 29 20 28 61 6e 64 20 28 73 74 72 69 6e 67 70 20 73 29 20 28 73 74 72 69 6e | mbda.(s).(and.(stringp.s).(strin |
| 1f500 | 67 2d 70 72 65 66 69 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 | g-prefix-p."b".s)............... |
| 1f520 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 73 20 | ...................(substring.s. |
| 1f540 | 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 72 67 73 29 29 | 1)))......................args)) |
| 1f560 | 0a 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 | .......(setq.output-to-other-buf |
| 1f580 | 66 65 72 2d 70 20 74 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 | fer-p.t).......(setq.buffer.(get |
| 1f5a0 | 2d 62 75 66 66 65 72 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 | -buffer-create.gptel-buffer-name |
| 1f5c0 | 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 | )).......(with-current-buffer.bu |
| 1f5e0 | 66 66 65 72 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 0a | ffer.(setq.position.(point))))). |
| 1f600 | 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 70 | .....(prog1.(gptel-request.promp |
| 1f620 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 20 28 6f 72 20 62 75 66 66 65 | t..............:buffer.(or.buffe |
| 1f640 | 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | r.(current-buffer))............. |
| 1f660 | 20 3a 70 6f 73 69 74 69 6f 6e 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | .:position.position............. |
| 1f680 | 20 3a 69 6e 2d 70 6c 61 63 65 20 28 61 6e 64 20 69 6e 2d 70 6c 61 63 65 20 28 6e 6f 74 20 6f 75 | .:in-place.(and.in-place.(not.ou |
| 1f6a0 | 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d 62 75 66 66 65 72 2d 70 29 29 0a 20 20 20 20 20 20 20 | tput-to-other-buffer-p))........ |
| 1f6c0 | 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............ |
| 1f6e0 | 20 20 3a 73 79 73 74 65 6d 20 28 63 6f 6e 63 61 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d | ..:system.(concat.gptel--system- |
| 1f700 | 6d 65 73 73 61 67 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 | message.system-extra)........... |
| 1f720 | 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 20 20 20 20 20 | ...:callback.callback........... |
| 1f740 | 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 3b 3b 20 4e | ...:dry-run.dry-run)........;;.N |
| 1f760 | 4f 54 45 3a 20 50 6f 73 73 69 62 6c 65 20 66 75 74 75 72 65 20 72 61 63 65 20 63 6f 6e 64 69 74 | OTE:.Possible.future.race.condit |
| 1f780 | 69 6f 6e 20 68 65 72 65 20 69 66 20 45 6d 61 63 73 20 65 76 65 72 20 64 72 6f 70 73 20 74 68 65 | ion.here.if.Emacs.ever.drops.the |
| 1f7a0 | 20 47 49 4c 2e 0a 20 20 20 20 20 20 3b 3b 20 54 68 65 20 48 54 54 50 20 72 65 71 75 65 73 74 20 | .GIL........;;.The.HTTP.request. |
| 1f7c0 | 63 61 6c 6c 62 61 63 6b 20 6d 69 67 68 74 20 6d 6f 64 69 66 79 20 74 68 65 20 62 75 66 66 65 72 | callback.might.modify.the.buffer |
| 1f7e0 | 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 2d 70 6c 61 63 65 0a 20 20 20 20 20 20 3b 3b 20 74 65 | .before.the.in-place.......;;.te |
| 1f800 | 78 74 20 69 73 20 6b 69 6c 6c 65 64 20 62 65 6c 6f 77 2e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 | xt.is.killed.below........(when. |
| 1f820 | 69 6e 2d 70 6c 61 63 65 0a 20 20 20 20 20 20 20 20 3b 3b 20 4b 69 6c 6c 20 74 68 65 20 6c 61 74 | in-place.........;;.Kill.the.lat |
| 1f840 | 65 73 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 0a 20 20 | est.prompt.........(let.((beg... |
| 1f860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a | .............(if.(use-region-p). |
| 1f880 | 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 6e | ...................(region-begin |
| 1f8a0 | 6e 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 | ning)..................(save-exc |
| 1f8c0 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 65 78 74 2d | ursion....................(text- |
| 1f8e0 | 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 | property-search-backward........ |
| 1f900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 | .............'gptel.'response... |
| 1f920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 | ..................(when.(get-cha |
| 1f940 | 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 | r-property.(max.(point-min).(1-. |
| 1f960 | 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 20 20 20 | (point)))....................... |
| 1f980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 29 0a 20 | .......................'gptel).. |
| 1f9a0 | 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 20 | .....................t))........ |
| 1f9c0 | 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 20 20 20 20 20 20 | ............(point)))).......... |
| 1f9e0 | 20 20 20 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 | .....(end.(if.(use-region-p).(re |
| 1fa00 | 67 69 6f 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 28 | gion-end).(point))))...........( |
| 1fa20 | 75 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 | unless.output-to-other-buffer-p. |
| 1fa40 | 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 20 | ............;;.store.the.killed. |
| 1fa60 | 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 20 | text.in.gptel-history........... |
| 1fa80 | 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 74 6f 72 | ..(gptel--attach-response-histor |
| 1faa0 | 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 62 75 66 66 65 72 2d 73 75 62 | y..............(list.(buffer-sub |
| 1fac0 | 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 29 | string-no-properties.beg.end)))) |
| 1fae0 | 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 | ...........(kill-region.beg.end) |
| 1fb00 | 29 29 0a 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6f 75 74 70 75 74 2d 74 6f 2d 6f 74 68 65 72 2d | ))........(when.output-to-other- |
| 1fb20 | 62 75 66 66 65 72 2d 70 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 63 6f 6e 63 61 | buffer-p.........(message.(conca |
| 1fb40 | 74 20 22 50 72 6f 6d 70 74 20 73 65 6e 74 20 74 6f 20 62 75 66 66 65 72 3a 20 22 0a 20 20 20 20 | t."Prompt.sent.to.buffer:."..... |
| 1fb60 | 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 |
| 1fb80 | 20 67 70 74 65 6c 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b | .gptel-buffer-name.'face.'help-k |
| 1fba0 | 65 79 2d 62 69 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 | ey-binding))).........(display-b |
| 1fbc0 | 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 20 27 28 28 64 69 73 70 6c 61 79 | uffer..........buffer.'((display |
| 1fbe0 | 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 20 20 | -buffer-reuse-window............ |
| 1fc00 | 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 70 2d 77 69 | ........display-buffer-pop-up-wi |
| 1fc20 | 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 75 73 61 62 6c | ndow)...................(reusabl |
| 1fc40 | 65 2d 66 72 61 6d 65 73 20 2e 20 76 69 73 69 62 6c 65 29 29 29 29 29 29 29 0a 0a 3b 3b 20 41 6c | e-frames...visible)))))))..;;.Al |
| 1fc60 | 6c 6f 77 20 63 61 6c 6c 69 6e 67 20 66 72 6f 6d 20 65 6c 69 73 70 0a 28 70 75 74 20 27 67 70 74 | low.calling.from.elisp.(put.'gpt |
| 1fc80 | 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 20 27 69 6e 74 65 72 61 63 74 69 76 65 2d 6f 6e 6c | el--suffix-send.'interactive-onl |
| 1fca0 | 79 20 6e 69 6c 29 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 78 20 74 6f 20 72 65 67 65 6e 65 72 61 | y.nil)..;;.**.Suffix.to.regenera |
| 1fcc0 | 74 65 20 72 65 73 70 6f 6e 73 65 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 67 65 6e | te.response..(defun.gptel--regen |
| 1fce0 | 65 72 61 74 65 20 28 29 0a 20 20 22 52 65 67 65 6e 65 72 61 74 65 20 67 70 74 65 6c 20 72 65 73 | erate.()..."Regenerate.gptel.res |
| 1fd00 | 70 6f 6e 73 65 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 29 | ponse.at.point."...(interactive) |
| 1fd20 | 0a 20 20 28 77 68 65 6e 20 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 0a | ...(when.(gptel--in-response-p). |
| 1fd40 | 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 2a 20 28 28 60 28 2c 62 65 67 20 2e 20 2c 65 6e 64 29 | ....(pcase-let*.((`(,beg...,end) |
| 1fd60 | 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 | .(gptel--get-bounds))........... |
| 1fd80 | 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 65 72 | .......(history.(get-char-proper |
| 1fda0 | 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 20 20 | ty.(point).'gptel-history))..... |
| 1fdc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 73 20 28 63 6f | .............(prev-responses.(co |
| 1fde0 | 6e 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 | ns.(buffer-substring-no-properti |
| 1fe00 | 65 73 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | es.beg.end)..................... |
| 1fe20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 29 29 29 0a 20 20 | ...................history)))... |
| 1fe40 | 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 20 20 20 20 20 20 20 20 20 20 20 20 | ....(when.gptel-mode............ |
| 1fe60 | 20 20 20 20 20 20 3b 52 65 6d 6f 76 65 20 70 72 65 66 69 78 2f 73 75 66 66 69 78 0a 20 20 20 20 | ......;Remove.prefix/suffix..... |
| 1fe80 | 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 67 | ....(save-excursion...........(g |
| 1fea0 | 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c | oto-char.beg)...........(when.(l |
| 1fec0 | 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 67 65 78 | ooking-back.(concat."\n+".(regex |
| 1fee0 | 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 | p-quote.(gptel-response-prefix-s |
| 1ff00 | 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tring)))........................ |
| 1ff20 | 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 27 67 72 65 65 64 79 29 0a 20 20 20 20 | .......(point-min).'greedy)..... |
| 1ff40 | 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 | ........(setq.beg.(match-beginni |
| 1ff60 | 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 | ng.0)))...........(goto-char.end |
| 1ff80 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 0a 20 20 | )...........(when.(looking-at... |
| 1ffa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5c 6e 2b 22 20 28 72 65 | ...............(concat."\n+".(re |
| 1ffc0 | 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d | gexp-quote.(gptel-prompt-prefix- |
| 1ffe0 | 73 74 72 69 6e 67 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 | string)))).............(setq.end |
| 20000 | 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 | .(match-end.0))))).......(delete |
| 20020 | 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 61 | -region.beg.end).......(gptel--a |
| 20040 | 74 74 61 63 68 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 70 72 65 76 2d 72 65 73 70 | ttach-response-history.prev-resp |
| 20060 | 6f 6e 73 65 73 29 0a 20 20 20 20 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 | onses).......(call-interactively |
| 20080 | 20 23 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e 64 29 29 29 29 0a 0a 3b 3b 20 2a 2a | .#'gptel--suffix-send))))..;;.** |
| 200a0 | 20 53 65 74 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 0a 28 64 65 66 75 6e 20 67 70 74 65 6c | .Set.system.message.(defun.gptel |
| 200c0 | 2d 2d 72 65 61 64 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 20 28 29 0a 20 20 | --read-crowdsourced-prompt.()... |
| 200e0 | 22 50 69 63 6b 20 61 20 63 72 6f 77 64 73 6f 75 72 63 65 64 20 73 79 73 74 65 6d 20 70 72 6f 6d | "Pick.a.crowdsourced.system.prom |
| 20100 | 70 74 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 68 69 73 20 75 73 65 73 20 74 68 65 20 70 72 6f | pt.for.gptel...This.uses.the.pro |
| 20120 | 6d 70 74 73 20 69 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 0a 60 67 70 74 65 6c 2d 2d 63 72 6f | mpts.in.the.variable.`gptel--cro |
| 20140 | 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a | wdsourced-prompts',.which.see.". |
| 20160 | 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 6e 6f 74 20 28 68 61 73 68 | ..(interactive)...(if.(not.(hash |
| 20180 | 2d 74 61 62 6c 65 2d 65 6d 70 74 79 2d 70 20 28 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 | -table-empty-p.(gptel--crowdsour |
| 201a0 | 63 65 64 2d 70 72 6f 6d 70 74 73 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 68 6f 69 | ced-prompts))).......(let.((choi |
| 201c0 | 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 | ce..............(completing-read |
| 201e0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 50 69 63 6b 20 61 6e 64 20 65 64 69 74 20 70 72 | ..............."Pick.and.edit.pr |
| 20200 | 6f 6d 70 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 | ompt:."...............(lambda.(s |
| 20220 | 74 72 20 70 72 65 64 20 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tr.pred.action)................. |
| 20240 | 28 69 66 20 28 65 71 20 61 63 74 69 6f 6e 20 27 6d 65 74 61 64 61 74 61 29 0a 20 20 20 20 20 20 | (if.(eq.action.'metadata)....... |
| 20260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6d 65 74 61 64 61 74 61 0a 20 20 20 20 20 20 20 | ..............`(metadata........ |
| 20280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 66 66 69 78 61 74 69 6f 6e 2d 66 75 6e 63 74 | ...............(affixation-funct |
| 202a0 | 69 6f 6e 20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 | ion..........................(la |
| 202c0 | 6d 62 64 61 20 28 63 61 6e 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | mbda.(cands).................... |
| 202e0 | 20 20 20 20 20 20 28 6d 61 70 63 61 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ......(mapcar................... |
| 20300 | 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ........(lambda.(c)............. |
| 20320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 63 20 22 22 0a 20 20 20 20 20 | ................(list.c.""...... |
| 20340 | 20 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. |
| 20360 | 28 70 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 61 63 65 | (propertize.".".'display.'(space |
| 20380 | 20 3a 61 6c 69 67 6e 2d 74 6f 20 32 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .:align-to.22))................. |
| 203a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 67 | ..............".".(propertize.(g |
| 203c0 | 65 74 68 61 73 68 20 63 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f | ethash.c.gptel--crowdsourced-pro |
| 203e0 | 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 20 20 20 20 20 | mpts)........................... |
| 20400 | 20 20 20 20 20 27 66 61 63 65 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 73 2d 61 6e 6e 6f 74 61 74 69 | .....'face.'completions-annotati |
| 20420 | 6f 6e 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ons))))......................... |
| 20440 | 20 20 63 61 6e 64 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | ..cands))))...................(c |
| 20460 | 6f 6d 70 6c 65 74 65 2d 77 69 74 68 2d 61 63 74 69 6f 6e 20 61 63 74 69 6f 6e 20 67 70 74 65 6c | omplete-with-action.action.gptel |
| 20480 | 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 20 73 74 72 20 70 72 65 64 29 | --crowdsourced-prompts.str.pred) |
| 204a0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 29 29 0a 20 20 20 20 20 20 | ))...............nil.t)))....... |
| 204c0 | 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 70 72 6f 6d 70 74 20 28 67 65 74 68 61 73 68 20 63 68 | ..(when-let.((prompt.(gethash.ch |
| 204e0 | 6f 69 63 65 20 67 70 74 65 6c 2d 2d 63 72 6f 77 64 73 6f 75 72 63 65 64 2d 70 72 6f 6d 70 74 73 | oice.gptel--crowdsourced-prompts |
| 20500 | 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 73 79 73 | ))).............(setq.gptel--sys |
| 20520 | 74 65 6d 2d 6d 65 73 73 61 67 65 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | tem-message.prompt)............. |
| 20540 | 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 73 75 66 | (call-interactively.#'gptel--suf |
| 20560 | 66 69 78 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 | fix-system-message))).....(messa |
| 20580 | 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 29 29 0a 0a 28 | ge."No.prompts.available.")))..( |
| 205a0 | 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 |
| 205c0 | 75 66 66 69 78 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 28 29 0a 20 20 22 45 64 69 74 20 | uffix-system-message.()..."Edit. |
| 205e0 | 4c 4c 4d 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2e 0a 0a 57 68 65 6e 20 4c 4f 43 41 4c 20 | LLM.system.message...When.LOCAL. |
| 20600 | 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 73 65 74 20 74 68 65 20 73 79 73 74 65 6d 20 6d 65 73 73 61 | is.non-nil,.set.the.system.messa |
| 20620 | 67 65 20 6f 6e 6c 79 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a | ge.only.in.the.current.buffer.". |
| 20640 | 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 65 78 69 74 | ..:transient.'transient--do-exit |
| 20660 | 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 22 53 65 74 20 6f 72 20 65 64 69 74 20 73 79 73 | ...:description."Set.or.edit.sys |
| 20680 | 74 65 6d 20 6d 65 73 73 61 67 65 22 0a 20 20 3a 66 6f 72 6d 61 74 20 22 20 25 6b 20 20 20 25 64 | tem.message"...:format.".%k...%d |
| 206a0 | 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 65 29 0a 20 20 28 | "...:key."s"...(interactive)...( |
| 206c0 | 6c 65 74 20 28 28 6f 72 69 67 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 | let.((orig-buf.(current-buffer)) |
| 206e0 | 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 65 72 | .........(msg-start.(make-marker |
| 20700 | 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 67 65 | ))).....(with-current-buffer.(ge |
| 20720 | 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 73 79 73 74 65 6d 2a 22 | t-buffer-create."*gptel-system*" |
| 20740 | 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 | ).......(let.((inhibit-read-only |
| 20760 | 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)..... |
| 20780 | 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 73 65 74 71 20 68 65 | ....(text-mode).........(setq.he |
| 207a0 | 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ader-line-format...............( |
| 207c0 | 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 45 64 69 74 20 79 6f 75 72 | concat................"Edit.your |
| 207e0 | 20 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 20 62 65 6c 6f 77 20 61 6e 64 20 70 72 65 73 73 20 | .system.message.below.and.press. |
| 20800 | 22 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 7a 65 20 22 43 2d | "................(propertize."C- |
| 20820 | 63 20 43 2d 63 22 20 27 66 61 63 65 20 27 68 65 6c 70 2d 6b 65 79 2d 62 69 6e 64 69 6e 67 29 0a | c.C-c".'face.'help-key-binding). |
| 20840 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 77 68 65 6e 20 72 65 61 64 79 2c 20 6f 72 20 | ...............".when.ready,.or. |
| 20860 | 22 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 7a 65 20 22 43 2d | "................(propertize."C- |
| 20880 | 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 0a | c.C-k".'face.'help-key-binding). |
| 208a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 74 6f 20 61 62 6f 72 74 2e 22 29 29 0a 20 20 | ...............".to.abort."))... |
| 208c0 | 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c | ......(insert.........."#.Exampl |
| 208e0 | 65 3a 20 59 6f 75 20 61 72 65 20 61 20 68 65 6c 70 66 75 6c 20 61 73 73 69 73 74 61 6e 74 2e 20 | e:.You.are.a.helpful.assistant.. |
| 20900 | 41 6e 73 77 65 72 20 61 73 20 63 6f 6e 63 69 73 65 6c 79 20 61 73 20 70 6f 73 73 69 62 6c 65 2e | Answer.as.concisely.as.possible. |
| 20920 | 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c 65 3a 20 52 65 70 6c 79 20 6f | \n".........."#.Example:.Reply.o |
| 20940 | 6e 6c 79 20 77 69 74 68 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 20 61 6e 64 20 6e 6f 20 70 | nly.with.shell.commands.and.no.p |
| 20960 | 72 6f 73 65 2e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 22 23 20 45 78 61 6d 70 6c 65 3a 20 59 6f | rose.\n".........."#.Example:.Yo |
| 20980 | 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 |
| 209a0 | 65 2e 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 | e.\n\n").........(add-text-prope |
| 209c0 | 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 | rties..........(point-min).(1-.( |
| 209e0 | 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 72 65 61 64 2d 6f 6e 6c | point))..........(list.'read-onl |
| 20a00 | 79 20 74 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 | y.t.'face.'font-lock-comment-fac |
| 20a20 | 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 6d 61 6b 65 2d 73 65 70 61 72 61 | e)).........;;.TODO:.make-separa |
| 20a40 | 74 6f 72 2d 6c 69 6e 65 20 72 65 71 75 69 72 65 73 20 45 6d 61 63 73 20 32 38 2e 31 2b 2e 0a 20 | tor-line.requires.Emacs.28.1+... |
| 20a60 | 20 20 20 20 20 20 20 3b 3b 20 28 69 6e 73 65 72 74 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 6d | .......;;.(insert.(propertize.(m |
| 20a80 | 61 6b 65 2d 73 65 70 61 72 61 74 6f 72 2d 6c 69 6e 65 29 20 27 72 65 61 72 2d 6e 6f 6e 73 74 69 | ake-separator-line).'rear-nonsti |
| 20aa0 | 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 65 72 20 6d 73 67 2d | cky.t)).........(set-marker.msg- |
| 20ac0 | 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 61 76 65 2d 65 78 63 | start.(point)).........(save-exc |
| 20ae0 | 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 62 75 66 66 65 72 | ursion...........(insert.(buffer |
| 20b00 | 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | -local-value.'gptel--system-mess |
| 20b20 | 61 67 65 20 6f 72 69 67 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d | age.orig-buf))...........(push-m |
| 20b40 | 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 63 74 69 76 61 | ark.nil.'nomsg)).........(activa |
| 20b60 | 74 65 2d 6d 61 72 6b 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 | te-mark)).......(display-buffer. |
| 20b80 | 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (current-buffer)................ |
| 20ba0 | 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 62 65 6c 6f 77 2d 73 | .......`((display-buffer-below-s |
| 20bc0 | 65 6c 65 63 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elected)........................ |
| 20be0 | 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 69 6e 64 | .(body-function...,#'select-wind |
| 20c00 | 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 77 69 6e | ow).........................(win |
| 20c20 | 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 2d 62 75 | dow-height...,#'fit-window-to-bu |
| 20c40 | 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 6d 65 6e | ffer))).......(let.((quit-to-men |
| 20c60 | 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 0a 20 20 20 20 20 20 | u..............(lambda.()....... |
| 20c80 | 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 | .........(interactive).......... |
| 20ca0 | 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 75 6e 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 | ......(local-unset-key.(kbd."C-c |
| 20cc0 | 20 43 2d 63 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 63 61 6c 2d 75 6e | .C-c"))................(local-un |
| 20ce0 | 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6b 22 29 29 0a 20 20 20 20 20 20 20 | set-key.(kbd."C-c.C-k"))........ |
| 20d00 | 20 20 20 20 20 20 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 | ........(quit-window)........... |
| 20d20 | 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 | .....(display-buffer............ |
| 20d40 | 20 20 20 20 20 6f 72 69 67 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 | .....orig-buf.................`( |
| 20d60 | 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.... |
| 20d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 75 | ................display-buffer-u |
| 20da0 | 73 65 2d 73 6f 6d 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | se-some-window)................. |
| 20dc0 | 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 69 6e | ..(body-function...,#'select-win |
| 20de0 | 64 6f 77 29 29 29 0a 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 | dow)))................(call-inte |
| 20e00 | 72 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 0a 20 20 20 20 20 | ractively.#'gptel-menu))))...... |
| 20e20 | 20 20 20 28 6c 6f 63 61 6c 2d 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 63 22 | ...(local-set-key.(kbd."C-c.C-c" |
| 20e40 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 | )........................(lambda |
| 20e60 | 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e | .()..........................(in |
| 20e80 | 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)...................... |
| 20ea0 | 20 20 20 20 28 6c 65 74 20 28 28 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 | ....(let.((system-message....... |
| 20ec0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 | ..........................(buffe |
| 20ee0 | 72 2d 73 75 62 73 74 72 69 6e 67 20 6d 73 67 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 61 78 | r-substring.msg-start.(point-max |
| 20f00 | 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 20 | ))))............................ |
| 20f20 | 28 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 | (with-current-buffer.orig-buf... |
| 20f40 | 20 20 20 20 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 |
| 20f60 | 6c 2d 2d 73 65 74 2d 77 69 74 68 2d 73 63 6f 70 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d | l--set-with-scope.'gptel--system |
| 20f80 | 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 | -message.system-message......... |
| 20fa0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 20fc0 | 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 72 2d 6c 6f | ............gptel--set-buffer-lo |
| 20fe0 | 63 61 6c 6c 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 | cally)))........................ |
| 21000 | 20 20 28 66 75 6e 63 61 6c 6c 20 71 75 69 74 2d 74 6f 2d 6d 65 6e 75 29 29 29 0a 20 20 20 20 20 | ..(funcall.quit-to-menu)))...... |
| 21020 | 20 20 20 28 6c 6f 63 61 6c 2d 73 65 74 2d 6b 65 79 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6b 22 | ...(local-set-key.(kbd."C-c.C-k" |
| 21040 | 29 20 71 75 69 74 2d 74 6f 2d 6d 65 6e 75 29 29 29 29 29 0a 0a 3b 3b 20 2a 2a 20 53 75 66 66 69 | ).quit-to-menu)))))..;;.**.Suffi |
| 21060 | 78 65 73 20 66 6f 72 20 72 65 77 72 69 74 69 6e 67 2f 72 65 66 61 63 74 6f 72 69 6e 67 0a 0a 28 | xes.for.rewriting/refactoring..( |
| 21080 | 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 |
| 210a0 | 75 66 66 69 78 2d 72 65 77 72 69 74 65 20 28 29 0a 20 20 22 52 65 77 72 69 74 65 20 6f 72 20 72 | uffix-rewrite.()..."Rewrite.or.r |
| 210c0 | 65 66 61 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 | efactor.region.contents."...:key |
| 210e0 | 20 22 72 22 0a 20 20 3a 64 65 73 63 72 69 70 74 69 6f 6e 20 23 27 67 70 74 65 6c 2d 2d 72 65 66 | ."r"...:description.#'gptel--ref |
| 21100 | 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 69 74 65 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 | actor-or-rewrite...(interactive) |
| 21120 | 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 | ...(let*.((prompt.(buffer-substr |
| 21140 | 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............... |
| 21160 | 20 20 20 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 | ....(region-beginning).(region-e |
| 21180 | 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 | nd)))..........(stream.gptel-str |
| 211a0 | 65 61 6d 29 0a 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 | eam)..........(gptel--system-mes |
| 211c0 | 73 61 67 65 20 67 70 74 65 6c 2d 2d 72 65 77 72 69 74 65 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 | sage.gptel--rewrite-message))... |
| 211e0 | 20 20 28 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 70 72 6f 6d 70 74 20 3a 73 74 72 65 61 6d 20 | ..(gptel-request.prompt.:stream. |
| 21200 | 73 74 72 65 61 6d 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 6e 74 2d 64 65 66 69 6e 65 2d 73 75 66 | stream)))..(transient-define-suf |
| 21220 | 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 61 6e 64 2d 72 65 | fix.gptel--suffix-rewrite-and-re |
| 21240 | 70 6c 61 63 65 20 28 29 0a 20 20 22 52 65 66 61 63 74 6f 72 20 72 65 67 69 6f 6e 20 63 6f 6e 74 | place.()..."Refactor.region.cont |
| 21260 | 65 6e 74 73 20 61 6e 64 20 72 65 70 6c 61 63 65 20 69 74 2e 22 0a 20 20 3a 6b 65 79 20 22 52 22 | ents.and.replace.it."...:key."R" |
| 21280 | 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 63 6f 6e 63 | ...:description.(lambda.().(conc |
| 212a0 | 61 74 20 28 67 70 74 65 6c 2d 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 69 74 65 29 20 | at.(gptel--refactor-or-rewrite). |
| 212c0 | 22 20 69 6e 20 70 6c 61 63 65 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 | ".in.place"))...(interactive)... |
| 212e0 | 28 6c 65 74 2a 20 28 28 70 72 6f 6d 70 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 | (let*.((prompt.(buffer-substring |
| 21300 | 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.................. |
| 21320 | 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 | .(region-beginning).(region-end) |
| 21340 | 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 73 74 72 65 61 6d | ))..........(stream.gptel-stream |
| 21360 | 29 0a 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 | )..........(gptel--system-messag |
| 21380 | 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 28 | e.gptel--rewrite-message)).....( |
| 213a0 | 6b 69 6c 6c 2d 72 65 67 69 6f 6e 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 | kill-region.(region-beginning).( |
| 213c0 | 72 65 67 69 6f 6e 2d 65 6e 64 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4f 72 69 67 69 | region-end)).....(message."Origi |
| 213e0 | 6e 61 6c 20 74 65 78 74 20 73 61 76 65 64 20 74 6f 20 6b 69 6c 6c 2d 72 69 6e 67 2e 22 29 0a 20 | nal.text.saved.to.kill-ring.").. |
| 21400 | 20 20 20 28 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 70 72 6f 6d 70 74 20 3a 73 74 72 65 61 6d | ...(gptel-request.prompt.:stream |
| 21420 | 20 73 74 72 65 61 6d 20 3a 69 6e 2d 70 6c 61 63 65 20 74 29 29 29 0a 0a 28 74 72 61 6e 73 69 65 | .stream.:in-place.t)))..(transie |
| 21440 | 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 |
| 21460 | 65 77 72 69 74 65 2d 61 6e 64 2d 65 64 69 66 66 20 28 61 72 67 73 29 0a 20 20 22 52 65 66 61 63 | ewrite-and-ediff.(args)..."Refac |
| 21480 | 74 6f 72 69 6e 67 20 6f 72 20 72 65 77 72 69 74 65 20 72 65 67 69 6f 6e 20 63 6f 6e 74 65 6e 74 | toring.or.rewrite.region.content |
| 214a0 | 73 20 61 6e 64 20 72 75 6e 20 45 64 69 66 66 2e 22 0a 20 20 3a 6b 65 79 20 22 45 22 0a 20 20 3a | s.and.run.Ediff."...:key."E"...: |
| 214c0 | 64 65 73 63 72 69 70 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 29 20 28 63 6f 6e 63 61 74 20 28 | description.(lambda.().(concat.( |
| 214e0 | 67 70 74 65 6c 2d 2d 72 65 66 61 63 74 6f 72 2d 6f 72 2d 72 65 77 72 69 74 65 29 20 22 20 61 6e | gptel--refactor-or-rewrite).".an |
| 21500 | 64 20 45 64 69 66 66 22 29 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 | d.Ediff"))...(interactive.(list. |
| 21520 | 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 73 20 74 72 61 6e 73 69 65 6e 74 2d 63 75 72 72 65 6e | (transient-args.transient-curren |
| 21540 | 74 2d 63 6f 6d 6d 61 6e 64 29 29 29 0a 20 20 28 6c 65 74 72 65 63 20 28 28 70 72 6f 6d 70 74 20 | t-command)))...(letrec.((prompt. |
| 21560 | 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. |
| 21580 | 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 6e 6e | ..................(region-beginn |
| 215a0 | 69 6e 67 29 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 | ing).(region-end)))............( |
| 215c0 | 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 72 65 77 | gptel--system-message.gptel--rew |
| 215e0 | 72 69 74 65 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f | rite-message)............;;.TODO |
| 21600 | 3a 20 54 65 63 68 6e 69 63 61 6c 6c 79 20 77 65 20 73 68 6f 75 6c 64 20 73 61 76 65 20 74 68 65 | :.Technically.we.should.save.the |
| 21620 | 20 77 69 6e 64 6f 77 20 63 6f 6e 66 69 67 20 61 74 20 74 68 65 20 74 69 6d 65 0a 20 20 20 20 20 | .window.config.at.the.time...... |
| 21640 | 20 20 20 20 20 20 3b 3b 20 60 65 64 69 66 66 2d 73 65 74 75 70 2d 68 6f 6f 6b 27 20 72 75 6e 73 | ......;;.`ediff-setup-hook'.runs |
| 21660 | 2c 20 62 75 74 20 74 68 69 73 20 77 69 6c 6c 20 64 6f 20 66 6f 72 20 6e 6f 77 2e 0a 20 20 20 20 | ,.but.this.will.do.for.now...... |
| 21680 | 20 20 20 20 20 20 20 28 63 77 63 20 28 63 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 | .......(cwc.(current-window-conf |
| 216a0 | 69 67 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 | iguration))............(gptel--e |
| 216c0 | 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 28 6c 61 6d 62 64 61 | diff-restore.............(lambda |
| 216e0 | 20 28 29 0a 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 | .()...............(when.(window- |
| 21700 | 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2d 70 20 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 | configuration-p.cwc)............ |
| 21720 | 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 63 | .....(set-window-configuration.c |
| 21740 | 77 63 29 29 0a 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 | wc))...............(remove-hook. |
| 21760 | 27 65 64 69 66 66 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 | 'ediff-quit-hook.gptel--ediff-re |
| 21780 | 73 74 6f 72 65 29 29 29 29 0a 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 57 61 69 74 69 6e 67 20 | store)))).....(message."Waiting. |
| 217a0 | 66 6f 72 20 72 65 73 70 6f 6e 73 65 2e 2e 2e 20 22 29 0a 20 20 20 20 28 67 70 74 65 6c 2d 72 65 | for.response....").....(gptel-re |
| 217c0 | 71 75 65 73 74 0a 20 20 20 20 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 3a 63 6f 6e 74 65 78 74 20 | quest......prompt......:context. |
| 217e0 | 28 63 6f 6e 73 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 20 28 72 65 67 69 6f 6e | (cons.(region-beginning).(region |
| 21800 | 2d 65 6e 64 29 29 0a 20 20 20 20 20 3a 63 61 6c 6c 62 61 63 6b 0a 20 20 20 20 20 28 6c 61 6d 62 | -end))......:callback......(lamb |
| 21820 | 64 61 20 28 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 20 20 20 20 20 28 69 66 20 28 6e | da.(response.info)........(if.(n |
| 21840 | 6f 74 20 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 | ot.response)............(message |
| 21860 | 20 22 43 68 61 74 47 50 54 20 72 65 73 70 6f 6e 73 65 20 65 72 72 6f 72 3a 20 25 73 22 20 28 70 | ."ChatGPT.response.error:.%s".(p |
| 21880 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 | list-get.info.:status))......... |
| 218a0 | 20 28 6c 65 74 2a 20 28 28 67 70 74 65 6c 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 | .(let*.((gptel-buffer.(plist-get |
| 218c0 | 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .info.:buffer))................. |
| 218e0 | 28 67 70 74 65 6c 2d 62 6f 75 6e 64 73 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 63 | (gptel-bounds.(plist-get.info.:c |
| 21900 | 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 28 62 75 66 66 65 72 | ontext)).................(buffer |
| 21920 | 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c | -mode..................(buffer-l |
| 21940 | 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 62 75 66 | ocal-value.'major-mode.gptel-buf |
| 21960 | 66 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 60 | fer)))............(pcase-let.((` |
| 21980 | 28 2c 6e 65 77 2d 62 75 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e 65 77 2d 65 6e 64 29 0a 20 20 20 | (,new-buf.,new-beg.,new-end).... |
| 219a0 | 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 63 75 72 72 65 | .....................(with-curre |
| 219c0 | 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 67 | nt-buffer.(get-buffer-create."*g |
| 219e0 | 70 74 65 6c 2d 72 65 77 72 69 74 65 2d 52 65 67 69 6f 6e 2e 42 2d 2a 22 29 0a 20 20 20 20 20 20 | ptel-rewrite-Region.B-*")....... |
| 21a00 | 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 69 6e 68 69 62 | ....................(let.((inhib |
| 21a20 | 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | it-read-only.t))................ |
| 21a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 | .............(erase-buffer)..... |
| 21a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c | ........................(funcall |
| 21a80 | 20 62 75 66 66 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .buffer-mode)................... |
| 21aa0 | 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 20 20 20 20 | ..........(insert.response)..... |
| 21ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 | ........................(goto-ch |
| 21ae0 | 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ar.(point-min))................. |
| 21b00 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 | ............(list.(current-buffe |
| 21b20 | 72 29 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 29 0a | r).(point-min).(point-max)))))). |
| 21b40 | 20 20 20 20 20 20 20 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 | .............(require.'ediff)... |
| 21b60 | 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 74 | ...........(add-hook.'ediff-quit |
| 21b80 | 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 0a 20 20 20 20 | -hook.gptel--ediff-restore)..... |
| 21ba0 | 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 | .........(apply...............#' |
| 21bc0 | 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 | ediff-regions-internal.......... |
| 21be0 | 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 6b 65 2d 63 6c 6f | .....(get-buffer.(ediff-make-clo |
| 21c00 | 6e 65 64 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 65 72 20 22 2d 52 65 67 69 6f 6e | ned-buffer.gptel-buffer."-Region |
| 21c20 | 2e 41 2d 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 67 70 74 65 6c 2d | .A-"))...............(car.gptel- |
| 21c40 | 62 6f 75 6e 64 73 29 20 28 63 64 72 20 67 70 74 65 6c 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 | bounds).(cdr.gptel-bounds)...... |
| 21c60 | 20 20 20 20 20 20 20 20 20 6e 65 77 2d 62 75 66 20 6e 65 77 2d 62 65 67 20 6e 65 77 2d 65 6e 64 | .........new-buf.new-beg.new-end |
| 21c80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...............nil.............. |
| 21ca0 | 20 28 69 66 20 28 74 72 61 6e 73 69 65 6e 74 2d 61 72 67 2d 76 61 6c 75 65 20 22 2d 77 22 20 61 | .(if.(transient-arg-value."-w".a |
| 21cc0 | 72 67 73 29 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 27 65 64 | rgs)...................(list.'ed |
| 21ce0 | 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 64 2d 77 69 73 65 20 | iff-regions-wordwise.'word-wise. |
| 21d00 | 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 | nil).................(list.'edif |
| 21d20 | 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 29 29 29 29 29 | f-regions-linewise.nil.nil)))))) |
| 21d40 | 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 29 | ))))..(provide.'gptel-transient) |
| 21d60 | 0a 3b 3b 3b 20 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 6e 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 | .;;;.gptel-transient.el.ends.her |
| 21d80 | 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 6f 75 74 6c 69 6e | e..;;.Local.Variables:.;;.outlin |
| 21da0 | 65 2d 72 65 67 65 78 70 3a 20 22 5e 3b 3b 20 5c 5c 2a 2b 22 0a 3b 3b 20 65 76 61 6c 3a 20 28 6f | e-regexp:."^;;.\\*+".;;.eval:.(o |
| 21dc0 | 75 74 6c 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 31 29 0a 3b 3b 20 45 6e 64 3a 0a 00 00 00 | utline-minor-mode.1).;;.End:.... |
| 21de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21e00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 61 6e 74 68 72 6f | gptel-20240422.1939/gptel-anthro |
| 21e20 | 70 69 63 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | pic.el.......................... |
| 21e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21e60 | 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 |
| 21e80 | 30 30 31 33 34 35 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 35 35 36 00 20 30 00 00 00 | 0013450.00000000000.015556..0... |
| 21ea0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21ec0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21ee0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21f00 | 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................... |
| 21f20 | 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................... |
| 21f40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21f60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21f80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21fa0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21fc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 21fe0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 22000 | 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 |
| 22020 | 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..-*- |
| 22040 | 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 |
| 22060 | 79 72 69 67 68 74 20 28 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 | yright.(C).2023..Karthik.Chikmag |
| 22080 | 61 6c 75 72 0a 0a 3b 3b 20 41 75 74 68 6f 72 3a 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 | alur..;;.Author:.Karthik.Chikmag |
| 220a0 | 61 6c 75 72 20 3c 6b 61 72 74 68 69 6b 63 68 69 6b 6d 61 67 61 6c 75 72 40 67 6d 61 69 6c 2e 63 | alur.<karthikchikmagalur@gmail.c |
| 220c0 | 6f 6d 3e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 | om>..;;.This.program.is.free.sof |
| 220e0 | 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 | tware;.you.can.redistribute.it.a |
| 22100 | 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 | nd/or.modify.;;.it.under.the.ter |
| 22120 | 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 | ms.of.the.GNU.General.Public.Lic |
| 22140 | 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 | ense.as.published.by.;;.the.Free |
| 22160 | 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 | .Software.Foundation,.either.ver |
| 22180 | 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 | sion.3.of.the.License,.or.;;.(at |
| 221a0 | 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e | .your.option).any.later.version. |
| 221c0 | 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 | ..;;.This.program.is.distributed |
| 221e0 | 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 | .in.the.hope.that.it.will.be.use |
| 22200 | 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 | ful,.;;.but.WITHOUT.ANY.WARRANTY |
| 22220 | 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 | ;.without.even.the.implied.warra |
| 22240 | 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 | nty.of.;;.MERCHANTABILITY.or.FIT |
| 22260 | 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 | NESS.FOR.A.PARTICULAR.PURPOSE... |
| 22280 | 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 | See.the.;;.GNU.General.Public.Li |
| 222a0 | 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 | cense.for.more.details...;;.You. |
| 222c0 | 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 | should.have.received.a.copy.of.t |
| 222e0 | 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b | he.GNU.General.Public.License.;; |
| 22300 | 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f | .along.with.this.program...If.no |
| 22320 | 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 | t,.see.<https://www.gnu.org/lice |
| 22340 | 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 | nses/>...;;;.Commentary:..;;.Thi |
| 22360 | 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 70 6f 72 74 20 66 6f 72 20 41 6e 74 68 72 6f 70 69 | s.file.adds.support.for.Anthropi |
| 22380 | 63 27 73 20 4d 65 73 73 61 67 65 73 20 41 50 49 20 74 6f 20 67 70 74 65 6c 0a 0a 3b 3b 3b 20 43 | c's.Messages.API.to.gptel..;;;.C |
| 223a0 | 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 28 65 76 61 6c | ode:.(require.'cl-generic).(eval |
| 223c0 | 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 | -when-compile...(require.'cl-lib |
| 223e0 | 29 29 0a 28 72 65 71 75 69 72 65 20 27 6d 61 70 29 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 | )).(require.'map).(require.'gpte |
| 22400 | 6c 29 0a 0a 28 64 65 66 76 61 72 20 6a 73 6f 6e 2d 6f 62 6a 65 63 74 2d 74 79 70 65 29 0a 0a 28 | l)..(defvar.json-object-type)..( |
| 22420 | 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c 75 | declare-function.prop-match-valu |
| 22440 | 65 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 29 0a 28 64 65 63 6c 61 | e."text-property-search").(decla |
| 22460 | 72 65 2d 66 75 6e 63 74 69 6f 6e 20 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 | re-function.text-property-search |
| 22480 | 2d 62 61 63 6b 77 61 72 64 20 22 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 22 | -backward."text-property-search" |
| 224a0 | 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a | ).(declare-function.json-read."j |
| 224c0 | 73 6f 6e 22 20 28 29 29 0a 0a 3b 3b 3b 20 41 6e 74 68 72 6f 70 69 63 20 28 4d 65 73 73 61 67 65 | son".())..;;;.Anthropic.(Message |
| 224e0 | 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 6c 2d 61 6e 74 68 | s.API).(cl-defstruct.(gptel-anth |
| 22500 | 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 2d 6d 61 6b 65 2d | ropic.(:constructor.gptel--make- |
| 22520 | 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 20 20 20 20 20 20 | anthropic)...................... |
| 22540 | 20 20 20 20 20 20 20 20 20 20 28 3a 63 6f 70 69 65 72 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 | ..........(:copier.nil)......... |
| 22560 | 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 6e 63 6c 75 64 65 | .......................(:include |
| 22580 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 | .gptel-backend)))..(cl-defmethod |
| 225a0 | 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 |
| 225c0 | 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 5f 69 6e 66 6f 29 0a 20 20 28 | kend.gptel-anthropic)._info)...( |
| 225e0 | 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 20 20 20 28 70 | let*.((content-strs)..........(p |
| 22600 | 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 | t.(point))).....(condition-case. |
| 22620 | 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 2d 66 6f | nil.........(while.(re-search-fo |
| 22640 | 72 77 61 72 64 20 22 5e 65 76 65 6e 74 3a 20 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 | rward."^event:.".nil.t)......... |
| 22660 | 20 20 28 73 65 74 71 20 70 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a | ..(setq.pt.(match-beginning.0)). |
| 22680 | 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 75 61 6c 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 | ..........(if.(equal.(line-end-p |
| 226a0 | 6f 73 69 74 69 6f 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 | osition).(point-max))........... |
| 226c0 | 20 20 20 20 28 65 72 72 6f 72 20 22 44 61 74 61 20 62 6c 6f 63 6b 20 69 6e 63 6f 6d 70 6c 65 74 | ....(error."Data.block.incomplet |
| 226e0 | 65 22 29 29 0a 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 | e"))...........(when.(looking-at |
| 22700 | 20 22 63 6f 6e 74 65 6e 74 5f 62 6c 6f 63 6b 5f 5c 5c 28 3f 3a 73 74 61 72 74 5c 5c 7c 64 65 6c | ."content_block_\\(?:start\\|del |
| 22720 | 74 61 5c 5c 7c 73 74 6f 70 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 | ta\\|stop\\)").............(forw |
| 22740 | 61 72 64 2d 6c 69 6e 65 20 31 29 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 35 29 0a 20 20 20 | ard-line.1).(forward-char.5).... |
| 22760 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 2a 20 28 28 72 65 73 70 6f 6e 73 65 20 28 | .........(when-let*.((response.( |
| 22780 | 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel--json-read)).............. |
| 227a0 | 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 74 65 6e 74 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d | ...........(content.(map-nested- |
| 227c0 | 65 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elt............................. |
| 227e0 | 20 20 20 20 20 20 72 65 73 70 6f 6e 73 65 20 27 28 3a 64 65 6c 74 61 20 3a 74 65 78 74 29 29 29 | ......response.'(:delta.:text))) |
| 22800 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 63 6f 6e 74 65 6e 74 20 63 6f | )...............(push.content.co |
| 22820 | 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 20 28 67 6f 74 | ntent-strs)))).......(error.(got |
| 22840 | 6f 2d 63 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 | o-char.pt))).....(apply.#'concat |
| 22860 | 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c | .(nreverse.content-strs))))..(cl |
| 22880 | 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e 73 65 | -defmethod.gptel--parse-response |
| 228a0 | 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 72 65 73 | .((_backend.gptel-anthropic).res |
| 228c0 | 70 6f 6e 73 65 20 5f 69 6e 66 6f 29 0a 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 | ponse._info)...(map-nested-elt.r |
| 228e0 | 65 73 70 6f 6e 73 65 20 27 28 3a 63 6f 6e 74 65 6e 74 20 30 20 3a 74 65 78 74 29 29 29 0a 0a 28 | esponse.'(:content.0.:text)))..( |
| 22900 | 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 | cl-defmethod.gptel--request-data |
| 22920 | 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 70 72 6f | .((_backend.gptel-anthropic).pro |
| 22940 | 6d 70 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 | mpts)..."JSON.encode.PROMPTS.for |
| 22960 | 20 73 65 6e 64 69 6e 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 | .sending.to.ChatGPT."...(let.((p |
| 22980 | 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a 6d 6f 64 65 6c 20 2c | rompts-plist..........`(:model., |
| 229a0 | 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 79 73 74 65 6d 20 2c | gptel-model............:system., |
| 229c0 | 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 20 | gptel--system-message........... |
| 229e0 | 20 3a 73 74 72 65 61 6d 20 2c 28 6f 72 20 28 61 6e 64 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 | .:stream.,(or.(and.gptel-stream. |
| 22a00 | 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-use-curl.................. |
| 22a20 | 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 70 | ........(gptel-backend-stream.gp |
| 22a40 | 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-backend))................... |
| 22a60 | 20 20 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 3a 6d 61 78 5f | ...:json-false)............:max_ |
| 22a80 | 74 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 31 30 32 | tokens.,(or.gptel-max-tokens.102 |
| 22aa0 | 34 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 6d 70 | 4)............:messages.[,@promp |
| 22ac0 | 74 73 5d 29 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 | ts]))).....(when.gptel-temperatu |
| 22ae0 | 72 65 0a 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 | re.......(plist-put.prompts-plis |
| 22b00 | 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 | t.:temperature.gptel-temperature |
| 22b20 | 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 29 29 0a 0a 28 63 6c 2d 64 65 66 6d | )).....prompts-plist))..(cl-defm |
| 22b40 | 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 | ethod.gptel--parse-buffer.((_bac |
| 22b60 | 6b 65 6e 64 20 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 69 63 29 20 26 6f 70 74 69 6f 6e 61 6c 20 | kend.gptel-anthropic).&optional. |
| 22b80 | 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 20 28 | max-entries)...(let.((prompts).( |
| 22ba0 | 70 72 6f 70 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 | prop)).....(while.(and.......... |
| 22bc0 | 20 20 20 28 6f 72 20 28 6e 6f 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 20 28 3e 3d 20 6d 61 78 | ...(or.(not.max-entries).(>=.max |
| 22be0 | 2d 65 6e 74 72 69 65 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 | -entries.0)).............(setq.p |
| 22c00 | 72 6f 70 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 | rop.(text-property-search-backwa |
| 22c20 | 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 27 67 70 74 65 | rd.........................'gpte |
| 22c40 | 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.'response..................... |
| 22c60 | 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 28 6d 61 | ....(when.(get-char-property.(ma |
| 22c80 | 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 | x.(point-min).(1-.(point)))..... |
| 22ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 22cc0 | 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 20 20 20 20 20 20 20 | .............'gptel)............ |
| 22ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 | ...............t)))).......(push |
| 22d00 | 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 76 61 6c | .(list.:role.(if.(prop-match-val |
| 22d20 | 75 65 20 70 72 6f 70 29 20 22 61 73 73 69 73 74 61 6e 74 22 20 22 75 73 65 72 22 29 0a 20 20 20 | ue.prop)."assistant"."user").... |
| 22d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 0a 20 20 20 20 20 20 20 20 | ...............:content......... |
| 22d60 | 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 0a 20 20 20 20 20 20 20 20 20 | ..........(string-trim.......... |
| 22d80 | 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 |
| 22da0 | 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 20 | roperties.(prop-match-beginning. |
| 22dc0 | 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 20 | prop)........................... |
| 22de0 | 20 20 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 2d 6d | .........................(prop-m |
| 22e00 | 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | atch-end.prop))................. |
| 22e20 | 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 | ...(format."[\t\r\n.]*\\(?:%s\\) |
| 22e40 | 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ?[\t\r\n.]*".................... |
| 22e60 | 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 67 70 74 65 6c 2d 70 72 6f | ........(regexp-quote.(gptel-pro |
| 22e80 | 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | mpt-prefix-string)))............ |
| 22ea0 | 20 20 20 20 20 20 20 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 | ........(format."[\t\r\n.]*\\(?: |
| 22ec0 | 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | %s\\)?[\t\r\n.]*"............... |
| 22ee0 | 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 20 28 67 70 74 65 | .............(regexp-quote.(gpte |
| 22f00 | 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 29 29 0a 20 20 | l-response-prefix-string)))))... |
| 22f20 | 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 28 61 6e 64 20 6d 61 | ..........prompts).......(and.ma |
| 22f40 | 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 | x-entries.(cl-decf.max-entries)) |
| 22f60 | 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a | ).....prompts))..;;;###autoload. |
| 22f80 | 28 63 6c 2d 64 65 66 75 6e 20 67 70 74 65 6c 2d 6d 61 6b 65 2d 61 6e 74 68 72 6f 70 69 63 0a 20 | (cl-defun.gptel-make-anthropic.. |
| 22fa0 | 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 20 6b | ...(name.&key.curl-args.stream.k |
| 22fc0 | 65 79 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 20 | ey...........(header............ |
| 22fe0 | 28 6c 61 6d 62 64 61 20 28 29 20 28 77 68 65 6e 2d 6c 65 74 20 28 6b 65 79 20 28 67 70 74 65 6c | (lambda.().(when-let.(key.(gptel |
| 23000 | 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | --get-api-key))................. |
| 23020 | 20 20 20 20 20 20 20 20 60 28 28 22 78 2d 61 70 69 2d 6b 65 79 22 20 2e 20 2c 6b 65 79 29 0a 20 | ........`(("x-api-key"...,key).. |
| 23040 | 20 20 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 61 6e 74 68 72 | .........................("anthr |
| 23060 | 6f 70 69 63 2d 76 65 72 73 69 6f 6e 22 20 2e 20 22 32 30 32 33 2d 30 36 2d 30 31 22 29 29 29 29 | opic-version"..."2023-06-01")))) |
| 23080 | 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 73 20 27 28 22 63 6c 61 75 64 65 2d 33 2d | )...........(models.'("claude-3- |
| 230a0 | 73 6f 6e 6e 65 74 2d 32 30 32 34 30 32 32 39 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | sonnet-20240229"................ |
| 230c0 | 20 20 20 20 20 22 63 6c 61 75 64 65 2d 33 2d 68 61 69 6b 75 2d 32 30 32 34 30 33 30 37 22 0a 20 | ....."claude-3-haiku-20240307".. |
| 230e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 75 64 65 2d 33 2d 6f 70 75 | ..................."claude-3-opu |
| 23100 | 73 2d 32 30 32 34 30 32 32 39 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 61 | s-20240229"))...........(host."a |
| 23120 | 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f 6d 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 | pi.anthropic.com")...........(pr |
| 23140 | 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 6e 64 70 6f | otocol."https")...........(endpo |
| 23160 | 69 6e 74 20 22 2f 76 31 2f 6d 65 73 73 61 67 65 73 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 | int."/v1/messages"))..."Register |
| 23180 | 20 61 6e 20 41 6e 74 68 72 6f 70 69 63 20 41 50 49 2d 63 6f 6d 70 61 74 69 62 6c 65 20 62 61 63 | .an.Anthropic.API-compatible.bac |
| 231a0 | 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 |
| 231c0 | 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 |
| 231e0 | 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 |
| 23200 | 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. |
| 23220 | 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 5c 22 61 70 69 2e 61 6e 74 68 72 6f 70 69 63 2e 63 6f | the.API.host,.\"api.anthropic.co |
| 23240 | 6d 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 | m\".by.default...MODELS.is.a.lis |
| 23260 | 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 |
| 23280 | 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 |
| 232a0 | 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 |
| 232c0 | 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 |
| 232e0 | 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 |
| 23300 | 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 |
| 23320 | 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 |
| 23340 | 75 6c 74 73 20 74 6f 0a 5c 22 2f 76 31 2f 6d 65 73 73 61 67 65 73 5c 22 2e 0a 0a 48 45 41 44 45 | ults.to.\"/v1/messages\"...HEADE |
| 23360 | 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 61 6c 20 68 | R.(optional).is.for.additional.h |
| 23380 | 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 75 65 73 74 | eaders.to.send.with.each.request |
| 233a0 | 2e 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 | ..It.should.be.an.alist.or.a.fun |
| 233c0 | 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 20 6c 69 6b 65 | ction.that.retuns.an.alist,.like |
| 233e0 | 3a 0a 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 |
| 23400 | 74 69 6f 6e 2f 6a 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 | tion/json\"))..KEY.is.a.variable |
| 23420 | 20 77 68 6f 73 65 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 20 | .whose.value.is.the.API.key,.or. |
| 23440 | 66 75 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 22 0a | function.that.returns.the.key.". |
| 23460 | 20 20 28 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 | ..(declare.(indent.1))...(let.(( |
| 23480 | 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 0a 20 | backend.(gptel--make-anthropic.. |
| 234a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c | .................:curl-args.curl |
| 234c0 | 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 6e 61 | -args...................:name.na |
| 234e0 | 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 74 0a | me...................:host.host. |
| 23500 | 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 65 72 | ..................:header.header |
| 23520 | 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 20 20 | ...................:key.key..... |
| 23540 | 20 20 20 20 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 | ..............:models.models.... |
| 23560 | 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 63 6f | ...............:protocol.protoco |
| 23580 | 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 65 6e | l...................:endpoint.en |
| 235a0 | 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 61 6d | dpoint...................:stream |
| 235c0 | 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 75 72 6c 20 28 | .stream...................:url.( |
| 235e0 | 69 66 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | if.protocol..................... |
| 23600 | 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f | .......(concat.protocol."://".ho |
| 23620 | 73 74 20 65 6e 64 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | st.endpoint).................... |
| 23640 | 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 | ......(concat.host.endpoint))))) |
| 23660 | 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 | .....(prog1.backend.......(setf. |
| 23680 | 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 | (alist-get.name.gptel--known-bac |
| 236a0 | 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c | kends........................nil |
| 236c0 | 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .nil.#'equal)................... |
| 236e0 | 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 61 6e 74 | backend))))..(provide.'gptel-ant |
| 23700 | 68 72 6f 70 69 63 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 73 2e 65 6c 20 65 6e | hropic).;;;.gptel-backends.el.en |
| 23720 | 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ds.here......................... |
| 23740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 237a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 237c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 237e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23800 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 70 6b 67 2e 65 6c | gptel-20240422.1939/gptel-pkg.el |
| 23820 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23860 | 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 |
| 23880 | 30 30 30 30 36 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 35 37 00 20 30 00 00 00 | 0000677.00000000000.014357..0... |
| 238a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 238c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 238e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23900 | 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................... |
| 23920 | 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................... |
| 23940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 239a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 239c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 239e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23a00 | 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 67 70 74 65 6c 22 20 22 32 30 32 34 30 34 32 | (define-package."gptel"."2024042 |
| 23a20 | 32 2e 31 39 33 39 22 20 22 49 6e 74 65 72 61 63 74 20 77 69 74 68 20 43 68 61 74 47 50 54 20 6f | 2.1939"."Interact.with.ChatGPT.o |
| 23a40 | 72 20 6f 74 68 65 72 20 4c 4c 4d 73 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 37 2e 31 22 29 | r.other.LLMs"...'((emacs."27.1") |
| 23a60 | 0a 20 20 20 20 28 74 72 61 6e 73 69 65 6e 74 20 22 30 2e 34 2e 30 22 29 0a 20 20 20 20 28 63 6f | .....(transient."0.4.0").....(co |
| 23a80 | 6d 70 61 74 20 22 32 39 2e 31 2e 34 2e 31 22 29 29 0a 20 20 3a 63 6f 6d 6d 69 74 20 22 36 36 61 | mpat."29.1.4.1"))...:commit."66a |
| 23aa0 | 36 33 65 36 63 38 32 35 61 62 65 33 33 39 32 36 64 63 63 66 32 66 32 65 66 31 63 34 39 36 36 37 | 63e6c825abe33926dccf2f2ef1c49667 |
| 23ac0 | 62 32 30 30 61 22 20 3a 61 75 74 68 6f 72 73 0a 20 20 27 28 28 22 4b 61 72 74 68 69 6b 20 43 68 | b200a".:authors...'(("Karthik.Ch |
| 23ae0 | 69 6b 6d 61 67 61 6c 75 72 22 29 29 0a 20 20 3a 6d 61 69 6e 74 61 69 6e 65 72 73 0a 20 20 27 28 | ikmagalur"))...:maintainers...'( |
| 23b00 | 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 22 29 29 0a 20 20 3a 6d 61 69 6e | ("Karthik.Chikmagalur"))...:main |
| 23b20 | 74 61 69 6e 65 72 0a 20 20 27 28 22 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 22 | tainer...'("Karthik.Chikmagalur" |
| 23b40 | 29 0a 20 20 3a 6b 65 79 77 6f 72 64 73 0a 20 20 27 28 22 63 6f 6e 76 65 6e 69 65 6e 63 65 22 29 | )...:keywords...'("convenience") |
| 23b60 | 0a 20 20 3a 75 72 6c 20 22 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 6b 61 72 74 | ...:url."https://github.com/kart |
| 23b80 | 68 69 6e 6b 2f 67 70 74 65 6c 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a | hink/gptel").;;.Local.Variables: |
| 23ba0 | 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 45 6e 64 3a 0a 00 | .;;.no-byte-compile:.t.;;.End:.. |
| 23bc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23be0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23c00 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 6f 72 67 2e 65 6c | gptel-20240422.1939/gptel-org.el |
| 23c20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23c40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23c60 | 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 |
| 23c80 | 30 30 34 34 34 30 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 33 36 34 00 20 30 00 00 00 | 0044407.00000000000.014364..0... |
| 23ca0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23cc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23ce0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23d00 | 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................... |
| 23d20 | 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................... |
| 23d40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23d60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23d80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23da0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23dc0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23de0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 23e00 | 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 |
| 23e20 | 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 |
| 23e40 | 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.( |
| 23e60 | 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..;; |
| 23e80 | 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 |
| 23ea0 | 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 |
| 23ec0 | 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 |
| 23ee0 | 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 |
| 23f00 | 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 |
| 23f20 | 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 |
| 23f40 | 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 |
| 23f60 | 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 |
| 23f80 | 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.; |
| 23fa0 | 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 |
| 23fc0 | 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 |
| 23fe0 | 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 |
| 24000 | 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 |
| 24020 | 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. |
| 24040 | 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 |
| 24060 | 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 |
| 24080 | 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 |
| 240a0 | 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...;; |
| 240c0 | 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 |
| 240e0 | 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 |
| 24100 | 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... |
| 24120 | 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 |
| 24140 | 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:..; |
| 24160 | 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. |
| 24180 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 29 0a 28 72 65 71 75 69 72 65 20 27 6f 72 67 | (require.'cl-lib)).(require.'org |
| 241a0 | 2d 65 6c 65 6d 65 6e 74 29 0a 28 72 65 71 75 69 72 65 20 27 6f 75 74 6c 69 6e 65 29 0a 0a 28 64 | -element).(require.'outline)..(d |
| 241c0 | 65 63 6c 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 | eclare-function.org-element-begi |
| 241e0 | 6e 20 22 6f 72 67 2d 65 6c 65 6d 65 6e 74 22 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 | n."org-element").(declare-functi |
| 24200 | 6f 6e 20 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 2d 6d 61 70 20 22 6f 72 67 2d | on.org-element-lineage-map."org- |
| 24220 | 65 6c 65 6d 65 6e 74 2d 61 73 74 22 29 0a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 75 73 65 64 | element-ast")..;;.Functions.used |
| 24240 | 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 |
| 24260 | 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 6f 72 67 2d 65 6e 74 | e.in.Org.buffers.(defvar.org-ent |
| 24280 | 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 0a 28 64 65 63 | ry-property-inherited-from).(dec |
| 242a0 | 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 74 20 22 6f 72 67 | lare-function.org-entry-get."org |
| 242c0 | 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 6e 74 72 79 2d 70 | ").(declare-function.org-entry-p |
| 242e0 | 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 6e 20 6f 72 67 2d | ut."org").(declare-function.org- |
| 24300 | 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 22 29 0a 28 64 65 | with-wide-buffer."org-macs").(de |
| 24320 | 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 70 65 72 74 79 20 | clare-function.org-set-property. |
| 24340 | 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 70 72 6f | "org").(declare-function.org-pro |
| 24360 | 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 72 65 2d 66 75 6e | perty-values."org").(declare-fun |
| 24380 | 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 0a 28 64 65 63 6c | ction.org-open-line."org").(decl |
| 243a0 | 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 67 2d 70 20 22 6f | are-function.org-at-heading-p."o |
| 243c0 | 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 67 65 74 2d 68 | rg").(declare-function.org-get-h |
| 243e0 | 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 63 74 69 6f 6e 20 | eading."org").(declare-function. |
| 24400 | 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 0c 0a 3b 3b 3b 20 55 | org-at-heading-p."org")....;;;.U |
| 24420 | 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 72 67 | ser.options.(defcustom.gptel-org |
| 24440 | 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 74 68 | -branching-context.nil..."Use.th |
| 24460 | 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 6e 67 | e.lineage.of.the.current.heading |
| 24480 | 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 72 67 | .as.the.context.for.gptel.in.Org |
| 244a0 | 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 65 20 | .buffers...This.makes.each.same. |
| 244c0 | 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 72 73 | level.heading.a.separate.convers |
| 244e0 | 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 65 6c | ation.branch...By.default,.gptel |
| 24500 | 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 65 20 | .uses.a.linear.context:.all.the. |
| 24520 | 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 74 6f | text.up.to.the.cursor.is.sent.to |
| 24540 | 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 6e 20 | .the.LLM...Enabling.this.option. |
| 24560 | 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 69 63 | makes.the.context.the.hierarchic |
| 24580 | 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 68 65 | al.lineage.of.the.current.Org.he |
| 245a0 | 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 2d 0a | ading...In.this.example:..-----. |
| 245c0 | 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 61 64 | Top.level.text..*.Heading.1.head |
| 245e0 | 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 67 20 | ing.1.text..*.Heading.2.heading. |
| 24600 | 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 20 32 | 2.text..**.Heading.2.1.heading.2 |
| 24620 | 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 20 32 | .1.text.**.Heading.2.2.heading.2 |
| 24640 | 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 20 61 | .2.text.-----..With.the.cursor.a |
| 24660 | 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 65 78 | t.the.end.of.the.buffer,.the.tex |
| 24680 | 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 74 65 | t.sent.to.the.LLM.will.be.limite |
| 246a0 | 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 48 65 | d.to..-----.Top.level.text..*.He |
| 246c0 | 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 64 69 | ading.2.heading.2.text..**.Headi |
| 246e0 | 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 0a 54 | ng.2.2.heading.2.2.text.-----..T |
| 24700 | 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 6d 75 | his.makes.it.feasible.to.have.mu |
| 24720 | 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 0a 20 | ltiple.conversation.branches.".. |
| 24740 | 20 3a 6c 6f 63 61 6c 20 74 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 | .:local.t...:type.'boolean...:gr |
| 24760 | 6f 75 70 20 27 67 70 74 65 6c 29 0a 0a 0c 0a 3b 3b 3b 20 53 65 74 74 69 6e 67 20 63 6f 6e 74 65 | oup.'gptel)....;;;.Setting.conte |
| 24780 | 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 64 65 66 75 6e 20 67 | xt.and.creating.queries.(defun.g |
| 247a0 | 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 20 28 29 0a 20 20 22 | ptel-org--get-topic-start.()..." |
| 247c0 | 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 73 20 73 65 74 2c 20 | If.a.conversation.topic.is.set,. |
| 247e0 | 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 65 6e 74 72 79 2d 67 | return.it."...(when.(org-entry-g |
| 24800 | 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 27 69 6e 68 65 72 69 | et.(point)."GPTEL_TOPIC".'inheri |
| 24820 | 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 72 67 2d 65 6e 74 72 | t).....(marker-position.org-entr |
| 24840 | 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 29 29 0a 0a 28 64 | y-property-inherited-from)))..(d |
| 24860 | 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 28 74 6f 70 69 63 29 | efun.gptel-org-set-topic.(topic) |
| 24880 | 0a 20 20 22 53 65 74 20 61 20 74 6f 70 69 63 20 61 6e 64 20 6c 69 6d 69 74 20 74 68 69 73 20 63 | ..."Set.a.topic.and.limit.this.c |
| 248a0 | 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 74 20 68 65 61 64 69 | onversation.to.the.current.headi |
| 248c0 | 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 65 78 74 20 73 65 6e | ng...This.limits.the.context.sen |
| 248e0 | 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 62 65 74 77 65 65 6e | t.to.the.LLM.to.the.text.between |
| 24900 | 20 74 68 65 0a 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 20 61 6e 64 20 74 68 65 20 63 75 72 | .the.current.heading.and.the.cur |
| 24920 | 73 6f 72 20 70 6f 73 69 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 | sor.position."...(interactive... |
| 24940 | 20 28 6c 69 73 74 0a 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 28 6f 72 20 28 64 65 72 | .(list.....(progn.......(or.(der |
| 24960 | 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 | ived-mode-p.'org-mode).......... |
| 24980 | 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 53 75 70 70 6f 72 74 20 66 6f 72 20 6d 75 6c 74 69 70 | .(user-error."Support.for.multip |
| 249a0 | 6c 65 20 74 6f 70 69 63 73 20 70 65 72 20 62 75 66 66 65 72 20 69 73 20 6f 6e 6c 79 20 69 6d 70 | le.topics.per.buffer.is.only.imp |
| 249c0 | 6c 65 6d 65 6e 74 65 64 20 66 6f 72 20 60 6f 72 67 2d 6d 6f 64 65 27 2e 22 29 29 0a 20 20 20 20 | lemented.for.`org-mode'."))..... |
| 249e0 | 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 22 53 65 74 20 74 6f 70 69 63 20 61 73 | ..(completing-read."Set.topic.as |
| 24a00 | 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 28 6f 72 67 2d | :."........................(org- |
| 24a20 | 70 72 6f 70 65 72 74 79 2d 76 61 6c 75 65 73 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 29 0a 20 | property-values."GPTEL_TOPIC").. |
| 24a40 | 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 28 64 | ......................nil.nil.(d |
| 24a60 | 6f 77 6e 63 61 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | owncase......................... |
| 24a80 | 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 2d 77 69 64 74 | ........(truncate-string-to-widt |
| 24aa0 | 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | h............................... |
| 24ac0 | 20 20 20 28 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 | ...(substring-no-properties..... |
| 24ae0 | 20 20 20 20 20 20 20 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 |
| 24b00 | 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 20 | eplace-regexp-in-string......... |
| 24b20 | 20 20 20 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 5c 73 2d | ..........................."\\s- |
| 24b40 | 2b 22 20 22 2d 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 | +"."-".......................... |
| 24b60 | 20 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 67 65 74 2d 68 65 61 64 69 6e 67 29 29 29 0a 20 20 | ..........(org-get-heading)))... |
| 24b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 35 | ...............................5 |
| 24ba0 | 30 29 29 29 29 29 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 70 20 74 6f 70 69 63 29 20 | 0))))))...(when.(stringp.topic). |
| 24bc0 | 28 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 79 20 22 47 50 54 45 4c 5f 54 4f 50 49 43 22 20 | (org-set-property."GPTEL_TOPIC". |
| 24be0 | 74 6f 70 69 63 29 29 29 0a 0a 3b 3b 20 4e 4f 54 45 3a 20 54 68 69 73 20 63 61 6e 20 62 65 20 63 | topic)))..;;.NOTE:.This.can.be.c |
| 24c00 | 6f 6e 76 65 72 74 65 64 20 74 6f 20 61 20 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 66 6f 72 20 60 | onverted.to.a.cl-defmethod.for.` |
| 24c20 | 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 27 0a 3b 3b 20 28 63 6f 6e 63 65 70 74 | gptel--parse-buffer'.;;.(concept |
| 24c40 | 75 61 6c 6c 79 20 63 6c 65 61 6e 65 72 29 2c 20 62 75 74 20 77 69 6c 6c 20 63 61 75 73 65 20 6c | ually.cleaner),.but.will.cause.l |
| 24c60 | 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 |
| 24c80 | 0a 3b 3b 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 | .;;.might.be.harder.to.debug..(d |
| 24ca0 | 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 28 26 | efun.gptel-org--create-prompt.(& |
| 24cc0 | 6f 70 74 69 6f 6e 61 6c 20 70 72 6f 6d 70 74 2d 65 6e 64 29 0a 20 20 22 52 65 74 75 72 6e 20 61 | optional.prompt-end)..."Return.a |
| 24ce0 | 20 66 75 6c 6c 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 74 | .full.conversation.prompt.from.t |
| 24d00 | 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 69 73 20 4f 72 67 20 62 75 66 66 65 72 2e 0a | he.contents.of.this.Org.buffer.. |
| 24d20 | 0a 49 66 20 60 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 | .If.`gptel--num-messages-to-send |
| 24d40 | 27 20 69 73 20 73 65 74 2c 20 6c 69 6d 69 74 20 74 6f 20 74 68 61 74 20 6d 61 6e 79 0a 72 65 63 | '.is.set,.limit.to.that.many.rec |
| 24d60 | 65 6e 74 20 65 78 63 68 61 6e 67 65 73 2e 0a 0a 54 68 65 20 70 72 6f 6d 70 74 20 69 73 20 63 6f | ent.exchanges...The.prompt.is.co |
| 24d80 | 6e 73 74 72 75 63 74 65 64 20 66 72 6f 6d 20 74 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 | nstructed.from.the.contents.of.t |
| 24da0 | 68 65 20 62 75 66 66 65 72 20 75 70 20 74 6f 0a 70 6f 69 6e 74 2c 20 6f 72 20 50 52 4f 4d 50 54 | he.buffer.up.to.point,.or.PROMPT |
| 24dc0 | 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 74 73 20 | -END.if.provided...Its.contents. |
| 24de0 | 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 0a 76 61 6c 75 65 20 6f 66 20 60 67 70 74 65 6c 2d 6f 72 | depend.on.the.value.of.`gptel-or |
| 24e00 | 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 65 65 2e | g-branching-context',.which.see. |
| 24e20 | 22 0a 20 20 28 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 | "...(unless.prompt-end.(setq.pro |
| 24e40 | 6d 70 74 2d 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 28 6c 65 74 20 28 28 6d 61 78 2d 65 | mpt-end.(point)))...(let.((max-e |
| 24e60 | 6e 74 72 69 65 73 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 | ntries.(and.gptel--num-messages- |
| 24e80 | 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......................... |
| 24ea0 | 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 73 65 | ..(*.2.gptel--num-messages-to-se |
| 24ec0 | 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 6f 70 69 63 2d 73 74 61 72 74 20 28 67 70 74 65 | nd))).........(topic-start.(gpte |
| 24ee0 | 6c 2d 6f 72 67 2d 2d 67 65 74 2d 74 6f 70 69 63 2d 73 74 61 72 74 29 29 29 0a 20 20 20 20 28 77 | l-org--get-topic-start))).....(w |
| 24f00 | 68 65 6e 20 74 6f 70 69 63 2d 73 74 61 72 74 0a 20 20 20 20 20 20 3b 3b 20 6e 61 72 72 6f 77 20 | hen.topic-start.......;;.narrow. |
| 24f20 | 74 6f 20 47 50 54 45 4c 5f 54 4f 50 49 43 20 70 72 6f 70 65 72 74 79 20 73 63 6f 70 65 0a 20 20 | to.GPTEL_TOPIC.property.scope... |
| 24f40 | 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 74 6f 70 69 63 2d 73 74 61 72 | ....(narrow-to-region.topic-star |
| 24f60 | 74 20 70 72 6f 6d 70 74 2d 65 6e 64 29 29 0a 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 6f 72 67 | t.prompt-end)).....(if.gptel-org |
| 24f80 | 2d 62 72 61 6e 63 68 69 6e 67 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 3b 3b 20 43 72 | -branching-context.........;;.Cr |
| 24fa0 | 65 61 74 65 20 70 72 6f 6d 70 74 20 66 72 6f 6d 20 64 69 72 65 63 74 20 61 6e 63 65 73 74 6f 72 | eate.prompt.from.direct.ancestor |
| 24fc0 | 73 20 6f 66 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 | s.of.point.........(save-excursi |
| 24fe0 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 6f 72 67 2d 62 75 66 20 28 63 75 | on...........(let*.((org-buf.(cu |
| 25000 | 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rrent-buffer)).................. |
| 25020 | 28 73 74 61 72 74 2d 62 6f 75 6e 64 73 20 28 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 | (start-bounds.(org-element-linea |
| 25040 | 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 20 20 20 20 20 | ge-map.......................... |
| 25060 | 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 69 6e 74 29 | ..........(org-element-at-point) |
| 25080 | 20 23 27 6f 72 67 2d 65 6c 65 6d 65 6e 74 2d 62 65 67 69 6e 0a 20 20 20 20 20 20 20 20 20 20 20 | .#'org-element-begin............ |
| 250a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 68 65 61 64 6c 69 6e 65 | ......................'(headline |
| 250c0 | 20 6f 72 67 2d 64 61 74 61 29 20 27 77 69 74 68 2d 73 65 6c 66 29 29 0a 20 20 20 20 20 20 20 20 | .org-data).'with-self))......... |
| 250e0 | 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 | .........(end-bounds............ |
| 25100 | 20 20 20 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .......(cl-loop................. |
| 25120 | 20 20 20 66 6f 72 20 70 6f 73 20 69 6e 20 28 63 64 72 20 73 74 61 72 74 2d 62 6f 75 6e 64 73 29 | ...for.pos.in.(cdr.start-bounds) |
| 25140 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 6c 65 0a 20 20 20 20 20 20 | ....................while....... |
| 25160 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 3d 20 70 6f 73 20 28 70 6f 69 6e 74 | .............(and.(>=.pos.(point |
| 25180 | 2d 6d 69 6e 29 29 20 3b 72 65 73 70 65 63 74 20 6e 61 72 72 6f 77 69 6e 67 0a 20 20 20 20 20 20 | -min)).;respect.narrowing....... |
| 251a0 | 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 70 6f 73 | ..................(goto-char.pos |
| 251c0 | 29 0a 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 6f 72 67 | ).........................;;.org |
| 251e0 | 2d 65 6c 65 6d 65 6e 74 2d 6c 69 6e 65 61 67 65 20 61 6c 77 61 79 73 20 72 65 74 75 72 6e 73 20 | -element-lineage.always.returns. |
| 25200 | 61 6e 20 65 78 74 72 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 | an.extra........................ |
| 25220 | 20 3b 3b 20 28 6f 72 67 2d 64 61 74 61 29 20 65 6c 65 6d 65 6e 74 20 61 74 20 70 6f 69 6e 74 20 | .;;.(org-data).element.at.point. |
| 25240 | 31 2e 20 20 49 66 20 74 68 65 72 65 20 69 73 20 61 6c 73 6f 20 61 0a 20 20 20 20 20 20 20 20 20 | 1...If.there.is.also.a.......... |
| 25260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 65 61 64 69 6e 67 20 68 65 72 65 2c 20 | ...............;;.heading.here,. |
| 25280 | 69 74 20 69 73 20 65 69 74 68 65 72 20 61 20 66 61 6c 73 65 20 70 6f 73 69 74 69 76 65 20 6f 72 | it.is.either.a.false.positive.or |
| 252a0 | 20 77 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 3b 3b 20 77 | .we.........................;;.w |
| 252c0 | 6f 75 6c 64 20 62 65 20 64 6f 75 62 6c 65 20 63 6f 75 6e 74 69 6e 67 20 69 74 2e 20 20 53 6f 20 | ould.be.double.counting.it...So. |
| 252e0 | 77 65 20 72 65 6a 65 63 74 20 74 68 69 73 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 | we.reject.this.node............. |
| 25300 | 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 68 65 6e 20 61 6c 73 6f 20 61 74 20 61 20 68 65 | ............;;.when.also.at.a.he |
| 25320 | 61 64 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ading..........................( |
| 25340 | 6e 6f 74 20 28 61 6e 64 20 28 65 71 20 70 6f 73 20 31 29 20 28 6f 72 67 2d 61 74 2d 68 65 61 64 | not.(and.(eq.pos.1).(org-at-head |
| 25360 | 69 6e 67 2d 70 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 6f 20 | ing-p))))....................do. |
| 25380 | 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 20 20 20 20 20 | (outline-next-heading).......... |
| 253a0 | 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 6e 74 6f 20 65 | ..........collect.(point).into.e |
| 253c0 | 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 6c 6c 79 20 72 | nds....................finally.r |
| 253e0 | 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 29 29 29 29 0a | eturn.(cons.prompt-end.ends)))). |
| 25400 | 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... |
| 25420 | 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 62 61 | ............(setq-local.gptel-ba |
| 25440 | 63 6b 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ckend........................... |
| 25460 | 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 62 61 63 6b 65 | (buffer-local-value.'gptel-backe |
| 25480 | 6e 64 20 6f 72 67 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | nd.org-buf)..................... |
| 254a0 | 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 | ......gptel--system-message..... |
| 254c0 | 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 6c 6f | ......................(buffer-lo |
| 254e0 | 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 | cal-value.'gptel--system-message |
| 25500 | 20 6f 72 67 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .org-buf)....................... |
| 25520 | 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 20 20 | ....gptel-model................. |
| 25540 | 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 | ..........(buffer-local-value.'g |
| 25560 | 70 74 65 6c 2d 6d 6f 64 65 6c 20 6f 72 67 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | ptel-model.org-buf))............ |
| 25580 | 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 61 72 74 2d 62 | ...(cl-loop.for.start.in.start-b |
| 255a0 | 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 20 20 66 6f 72 | ounds........................for |
| 255c0 | 20 65 6e 64 20 20 20 69 6e 20 65 6e 64 2d 62 6f 75 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 | .end...in.end-bounds............ |
| 255e0 | 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 2d 73 75 | ............do.(insert-buffer-su |
| 25600 | 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 20 20 20 | bstring.org-buf.start.end)...... |
| 25620 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f | ..................(goto-char.(po |
| 25640 | 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 6f 2d 63 | int-min)))...............(goto-c |
| 25660 | 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | har.(point-max))...............( |
| 25680 | 6c 65 74 20 28 28 6d 61 6a 6f 72 2d 6d 6f 64 65 20 27 6f 72 67 2d 6d 6f 64 65 29 29 0a 20 20 20 | let.((major-mode.'org-mode)).... |
| 256a0 | 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 62 75 66 66 65 | .............(gptel--parse-buffe |
| 256c0 | 72 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 29 29 | r.gptel-backend.max-entries))))) |
| 256e0 | 0a 20 20 20 20 20 20 3b 3b 20 43 72 65 61 74 65 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 75 61 | .......;;.Create.prompt.the.usua |
| 25700 | 6c 20 77 61 79 0a 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 | l.way.......(gptel--parse-buffer |
| 25720 | 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 29 29 29 0a 0a | .gptel-backend.max-entries)))).. |
| 25740 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 | (defun.gptel-org--send-with-prop |
| 25760 | 73 20 28 73 65 6e 64 2d 66 75 6e 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 43 6f 6e 64 69 | s.(send-fun.&rest.args)..."Condi |
| 25780 | 74 69 6f 6e 61 6c 6c 79 20 6d 6f 64 69 66 79 20 53 45 4e 44 2d 46 55 4e 27 73 20 63 61 6c 6c 69 | tionally.modify.SEND-FUN's.calli |
| 257a0 | 6e 67 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 49 66 20 69 6e 20 61 6e 20 4f 72 67 20 62 75 | ng.environment...If.in.an.Org.bu |
| 257c0 | 66 66 65 72 20 75 6e 64 65 72 20 61 20 68 65 61 64 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 | ffer.under.a.heading.containing. |
| 257e0 | 61 20 73 74 6f 72 65 64 20 67 70 74 65 6c 0a 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2c 20 75 73 | a.stored.gptel.configuration,.us |
| 25800 | 65 20 74 68 61 74 20 66 6f 72 20 72 65 71 75 65 73 74 73 20 69 6e 73 74 65 61 64 2e 20 20 54 68 | e.that.for.requests.instead...Th |
| 25820 | 69 73 20 69 6e 63 6c 75 64 65 73 20 74 68 65 0a 73 79 73 74 65 6d 20 6d 65 73 73 61 67 65 2c 20 | is.includes.the.system.message,. |
| 25840 | 6d 6f 64 65 6c 20 61 6e 64 20 70 72 6f 76 69 64 65 72 20 28 62 61 63 6b 65 6e 64 29 2c 20 61 6d | model.and.provider.(backend),.am |
| 25860 | 6f 6e 67 20 6f 74 68 65 72 0a 70 61 72 61 6d 65 74 65 72 73 2e 22 0a 20 20 28 69 66 20 28 64 65 | ong.other.parameters."...(if.(de |
| 25880 | 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6f 72 67 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 70 | rived-mode-p.'org-mode).......(p |
| 258a0 | 63 61 73 65 2d 6c 65 74 20 28 28 60 28 2c 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | case-let.((`(,gptel--system-mess |
| 258c0 | 61 67 65 20 2c 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 2c 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a | age.,gptel-backend.,gptel-model. |
| 258e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 67 70 74 65 6c 2d 74 65 6d 70 | .....................,gptel-temp |
| 25900 | 65 72 61 74 75 72 65 20 2c 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 | erature.,gptel-max-tokens)...... |
| 25920 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 71 2d 6d 61 70 6e 20 28 6c 61 6d 62 64 61 20 | ..............(seq-mapn.(lambda. |
| 25940 | 28 61 20 62 29 20 28 6f 72 20 61 20 62 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | (a.b).(or.a.b))................. |
| 25960 | 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 72 79 2d 70 | .............(gptel-org--entry-p |
| 25980 | 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 20 20 20 20 | roperties)...................... |
| 259a0 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 | ........(list.gptel--system-mess |
| 259c0 | 61 67 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 0a 20 20 | age.gptel-backend.gptel-model... |
| 259e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 25a00 | 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b | .gptel-temperature.gptel-max-tok |
| 25a20 | 65 6e 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 73 65 6e 64 2d 66 75 6e 20 | ens)))).........(apply.send-fun. |
| 25a40 | 61 72 67 73 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 73 65 6e 64 2d 66 75 6e 20 61 72 67 73 29 | args)).....(apply.send-fun.args) |
| 25a60 | 29 29 0a 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 73 65 6e 64 20 3a 61 72 6f | ))..(advice-add.'gptel-send.:aro |
| 25a80 | 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 73 | und.#'gptel-org--send-with-props |
| 25aa0 | 29 0a 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 2d 73 75 66 66 69 78 2d 73 65 6e | ).(advice-add.'gptel--suffix-sen |
| 25ac0 | 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 69 74 68 | d.:around.#'gptel-org--send-with |
| 25ae0 | 2d 70 72 6f 70 73 29 0a 0a 3b 3b 20 3b 3b 20 4e 4f 54 45 3a 20 42 61 73 69 63 20 75 73 65 73 20 | -props)..;;.;;.NOTE:.Basic.uses. |
| 25b00 | 69 6e 20 6f 72 67 2d 6d 6f 64 65 20 61 72 65 20 63 6f 76 65 72 65 64 20 62 79 20 61 64 76 69 73 | in.org-mode.are.covered.by.advis |
| 25b20 | 69 6e 67 20 67 70 74 65 6c 2d 73 65 6e 64 20 61 6e 64 0a 3b 3b 20 3b 3b 20 67 70 74 65 6c 2d 2d | ing.gptel-send.and.;;.;;.gptel-- |
| 25b40 | 73 75 66 66 69 78 2d 73 65 6e 64 2e 20 20 46 6f 72 20 63 75 73 74 6f 6d 20 63 6f 6d 6d 61 6e 64 | suffix-send...For.custom.command |
| 25b60 | 73 20 69 74 20 6d 69 67 68 74 20 62 65 20 6e 65 63 65 73 73 61 72 79 20 74 6f 20 61 64 76 69 73 | s.it.might.be.necessary.to.advis |
| 25b80 | 65 0a 3b 3b 20 3b 3b 20 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 69 6e 73 74 65 61 64 2e 0a 3b | e.;;.;;.gptel-request.instead..; |
| 25ba0 | 3b 20 28 61 64 76 69 63 65 2d 61 64 64 20 27 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 3a 61 72 | ;.(advice-add.'gptel-request.:ar |
| 25bc0 | 6f 75 6e 64 20 23 27 67 70 74 65 6c 2d 6f 72 67 2d 2d 73 65 6e 64 2d 77 69 74 68 2d 70 72 6f 70 | ound.#'gptel-org--send-with-prop |
| 25be0 | 73 29 0a 0a 0c 0a 3b 3b 3b 20 53 61 76 69 6e 67 20 61 6e 64 20 72 65 73 74 6f 72 69 6e 67 20 73 | s)....;;;.Saving.and.restoring.s |
| 25c00 | 74 61 74 65 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 72 79 2d 70 72 6f | tate.(defun.gptel-org--entry-pro |
| 25c20 | 70 65 72 74 69 65 73 20 28 26 6f 70 74 69 6f 6e 61 6c 20 70 74 29 0a 20 20 22 46 69 6e 64 20 67 | perties.(&optional.pt)..."Find.g |
| 25c40 | 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 70 72 6f 70 65 72 74 69 65 73 20 73 74 | ptel.configuration.properties.st |
| 25c60 | 6f 72 65 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 2e 22 0a 20 20 | ored.in.the.current.heading."... |
| 25c80 | 28 70 63 61 73 65 2d 6c 65 74 0a 20 20 20 20 20 20 28 28 60 28 2c 73 79 73 74 65 6d 20 2c 62 61 | (pcase-let.......((`(,system.,ba |
| 25ca0 | 63 6b 65 6e 64 20 2c 6d 6f 64 65 6c 20 2c 74 65 6d 70 65 72 61 74 75 72 65 20 2c 74 6f 6b 65 6e | ckend.,model.,temperature.,token |
| 25cc0 | 73 29 0a 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 | s)..........(mapcar...........(l |
| 25ce0 | 61 6d 62 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 | ambda.(prop).(org-entry-get.(or. |
| 25d00 | 70 74 20 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 | pt.(point)).prop.'selective))... |
| 25d20 | 20 20 20 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 | ........'("GPTEL_SYSTEM"."GPTEL_ |
| 25d40 | 42 41 43 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 | BACKEND"."GPTEL_MODEL".......... |
| 25d60 | 20 20 20 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 | ..."GPTEL_TEMPERATURE"."GPTEL_MA |
| 25d80 | 58 5f 54 4f 4b 45 4e 53 22 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 73 79 73 74 65 6d 0a 20 | X_TOKENS")))).....(when.system.. |
| 25da0 | 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 72 65 70 6c 61 63 | .....(setq.system.(string-replac |
| 25dc0 | 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 20 28 77 68 65 6e | e."\\n"."\n".system))).....(when |
| 25de0 | 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 6e 64 20 28 61 6c | .backend.......(setq.backend.(al |
| 25e00 | 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 77 6e 2d 62 61 63 | ist-get.backend.gptel--known-bac |
| 25e20 | 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 20 | kends........................... |
| 25e40 | 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 20 20 28 77 68 65 | .....nil.nil.#'equal))).....(whe |
| 25e60 | 6e 20 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 74 65 6d 70 65 72 | n.temperature.......(setq.temper |
| 25e80 | 61 74 75 72 65 20 28 67 70 74 65 6c 2d 2d 6e 75 6d 62 65 72 69 7a 65 20 74 65 6d 70 65 72 61 74 | ature.(gptel--numberize.temperat |
| 25ea0 | 75 72 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 6f 6b 65 6e 73 20 28 73 65 74 71 20 74 6f | ure))).....(when.tokens.(setq.to |
| 25ec0 | 6b 65 6e 73 20 28 67 70 74 65 6c 2d 2d 6e 75 6d 62 65 72 69 7a 65 20 74 6f 6b 65 6e 73 29 29 29 | kens.(gptel--numberize.tokens))) |
| 25ee0 | 0a 20 20 20 20 28 6c 69 73 74 20 73 79 73 74 65 6d 20 62 61 63 6b 65 6e 64 20 6d 6f 64 65 6c 20 | .....(list.system.backend.model. |
| 25f00 | 74 65 6d 70 65 72 61 74 75 72 65 20 74 6f 6b 65 6e 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 | temperature.tokens)))..(defun.gp |
| 25f20 | 74 65 6c 2d 6f 72 67 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 65 73 | tel-org--restore-state.()..."Res |
| 25f40 | 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 66 6f 72 20 4f 72 67 20 62 75 66 66 65 72 73 | tore.gptel.state.for.Org.buffers |
| 25f60 | 20 77 68 65 6e 20 74 75 72 6e 69 6e 67 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a | .when.turning.on.`gptel-mode'.". |
| 25f80 | 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 28 77 69 64 65 6e 29 0a | ..(save-restriction.....(widen). |
| 25fa0 | 20 20 20 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 | ....(condition-case.status...... |
| 25fc0 | 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 | ...(progn...........(when-let.(( |
| 25fe0 | 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 69 6e | bounds.(org-entry-get.(point-min |
| 26000 | 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 20 20 | )."GPTEL_BOUNDS")))............. |
| 26020 | 28 6d 61 70 63 20 28 70 63 61 73 65 2d 6c 61 6d 62 64 61 20 28 60 28 2c 62 65 67 20 2e 20 2c 65 | (mapc.(pcase-lambda.(`(,beg...,e |
| 26040 | 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 28 70 75 74 2d 74 65 | nd)).....................(put-te |
| 26060 | 78 74 2d 70 72 6f 70 65 72 74 79 20 62 65 67 20 65 6e 64 20 27 67 70 74 65 6c 20 27 72 65 73 70 | xt-property.beg.end.'gptel.'resp |
| 26080 | 6f 6e 73 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 62 | onse))...................(read.b |
| 260a0 | 6f 75 6e 64 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 2d 6c 65 74 20 28 28 | ounds)))...........(pcase-let.(( |
| 260c0 | 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 6d 70 65 | `(,system.,backend.,model.,tempe |
| 260e0 | 72 61 74 75 72 65 20 2c 74 6f 6b 65 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rature.,tokens)................. |
| 26100 | 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 65 6e 74 72 79 2d 70 72 6f 70 65 72 74 | .......(gptel-org--entry-propert |
| 26120 | 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | ies.(point-min)))).............( |
| 26140 | 77 68 65 6e 20 73 79 73 74 65 6d 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 73 | when.system.(setq-local.gptel--s |
| 26160 | 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 73 79 73 74 65 6d 29 29 0a 20 20 20 20 20 20 20 20 20 | ystem-message.system)).......... |
| 26180 | 20 20 20 28 69 66 20 62 61 63 6b 65 6e 64 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c | ...(if.backend.(setq-local.gptel |
| 261a0 | 2d 62 61 63 6b 65 6e 64 20 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -backend.backend)............... |
| 261c0 | 28 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 | (message................(substit |
| 261e0 | 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 20 | ute-command-keys................ |
| 26200 | 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 22 43 6f 75 6c 64 | .(concat.................."Could |
| 26220 | 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 22 25 73 | .not.activate.gptel.backend.\"%s |
| 26240 | 5c 22 21 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 | \"!..".................."Switch. |
| 26260 | 62 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 | backends.with.\\[universal-argum |
| 26280 | 65 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 | ent].\\[gptel-send]"............ |
| 262a0 | 20 20 20 20 20 20 22 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 22 29 29 0a 20 | ......".before.using.gptel.")).. |
| 262c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 | ..............backend))......... |
| 262e0 | 20 20 20 20 28 77 68 65 6e 20 6d 6f 64 65 6c 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 | ....(when.model.(setq-local.gpte |
| 26300 | 6c 2d 6d 6f 64 65 6c 20 6d 6f 64 65 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 | l-model.model)).............(whe |
| 26320 | 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- |
| 26340 | 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))....... |
| 26360 | 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 20 67 | ......(when.tokens.(setq-local.g |
| 26380 | 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 74 6f 6b 65 6e 73 29 29 29 29 0a 20 20 20 20 20 | ptel-max-tokens.tokens))))...... |
| 263a0 | 20 28 3a 73 75 63 63 65 73 73 20 28 6d 65 73 73 61 67 65 20 22 67 70 74 65 6c 20 63 68 61 74 20 | .(:success.(message."gptel.chat. |
| 263c0 | 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 6d 65 73 73 61 | restored.")).......(error.(messa |
| 263e0 | 67 65 20 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 | ge."Could.not.restore.gptel.stat |
| 26400 | 65 2c 20 73 6f 72 72 79 21 20 45 72 72 6f 72 3a 20 25 73 22 20 73 74 61 74 75 73 29 29 29 29 29 | e,.sorry!.Error:.%s".status))))) |
| 26420 | 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 6f 72 67 2d 73 65 74 2d 70 72 6f 70 65 72 74 69 65 | ..(defun.gptel-org-set-propertie |
| 26440 | 73 20 28 70 74 20 26 6f 70 74 69 6f 6e 61 6c 20 6d 73 67 29 0a 20 20 22 53 74 6f 72 65 20 74 68 | s.(pt.&optional.msg)..."Store.th |
| 26460 | 65 20 61 63 74 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 75 6e 64 | e.active.gptel.configuration.und |
| 26480 | 65 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 68 65 61 64 69 6e 67 2e 0a 0a 54 68 65 20 61 63 74 | er.the.current.heading...The.act |
| 264a0 | 69 76 65 20 67 70 74 65 6c 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 69 6e 63 6c 75 64 65 73 | ive.gptel.configuration.includes |
| 264c0 | 20 74 68 65 20 63 75 72 72 65 6e 74 20 73 79 73 74 65 6d 0a 6d 65 73 73 61 67 65 2c 20 6c 61 6e | .the.current.system.message,.lan |
| 264e0 | 67 75 61 67 65 20 6d 6f 64 65 6c 20 61 6e 64 20 70 72 6f 76 69 64 65 72 20 28 62 61 63 6b 65 6e | guage.model.and.provider.(backen |
| 26500 | 64 29 2c 20 61 6e 64 20 61 64 64 69 74 69 6f 6e 61 6c 0a 73 65 74 74 69 6e 67 73 20 77 68 65 6e | d),.and.additional.settings.when |
| 26520 | 20 61 70 70 6c 69 63 61 62 6c 65 2e 0a 0a 50 54 20 69 73 20 74 68 65 20 63 75 72 73 6f 72 20 70 | .applicable...PT.is.the.cursor.p |
| 26540 | 6f 73 69 74 69 6f 6e 20 62 79 20 64 65 66 61 75 6c 74 2e 20 20 49 66 20 4d 53 47 20 69 73 0a 6e | osition.by.default...If.MSG.is.n |
| 26560 | 6f 6e 2d 6e 69 6c 20 28 64 65 66 61 75 6c 74 29 2c 20 64 69 73 70 6c 61 79 20 61 20 6d 65 73 73 | on-nil.(default),.display.a.mess |
| 26580 | 61 67 65 20 61 66 74 65 72 77 61 72 64 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 | age.afterwards."...(interactive. |
| 265a0 | 28 6c 69 73 74 20 28 70 6f 69 6e 74 29 20 74 29 29 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 | (list.(point).t))...(org-entry-p |
| 265c0 | 75 74 20 70 74 20 22 47 50 54 45 4c 5f 4d 4f 44 45 4c 22 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 29 | ut.pt."GPTEL_MODEL".gptel-model) |
| 265e0 | 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 42 41 43 4b | ...(org-entry-put.pt."GPTEL_BACK |
| 26600 | 45 4e 44 22 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 | END".(gptel-backend-name.gptel-b |
| 26620 | 61 63 6b 65 6e 64 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 | ackend))...(unless.(equal.(defau |
| 26640 | 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 20 67 70 74 | lt-value.'gptel-temperature).gpt |
| 26660 | 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a 20 20 20 20 28 6f 72 67 2d 65 6e 74 72 79 2d 70 | el-temperature).....(org-entry-p |
| 26680 | 75 74 20 70 74 20 22 47 50 54 45 4c 5f 54 45 4d 50 45 52 41 54 55 52 45 22 0a 20 20 20 20 20 20 | ut.pt."GPTEL_TEMPERATURE"....... |
| 266a0 | 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 67 20 67 | .............(number-to-string.g |
| 266c0 | 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 28 6f 72 67 2d 65 6e 74 72 79 | ptel-temperature)))...(org-entry |
| 266e0 | 2d 70 75 74 20 70 74 20 22 47 50 54 45 4c 5f 53 59 53 54 45 4d 22 0a 20 20 20 20 20 20 20 20 20 | -put.pt."GPTEL_SYSTEM".......... |
| 26700 | 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 72 65 70 6c 61 63 65 20 22 5c 6e 22 20 22 5c 5c | ........(string-replace."\n"."\\ |
| 26720 | 6e 22 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 20 20 20 0a 20 20 | n".gptel--system-message))...... |
| 26740 | 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 0a 20 20 20 20 28 6f 72 67 2d | (when.gptel-max-tokens.....(org- |
| 26760 | 65 6e 74 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 | entry-put......pt."GPTEL_MAX_TOK |
| 26780 | 45 4e 53 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 | ENS".(number-to-string.gptel-max |
| 267a0 | 2d 74 6f 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 | -tokens)))...(when.msg.....(mess |
| 267c0 | 61 67 65 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 | age."Added.gptel.configuration.t |
| 267e0 | 6f 20 63 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 | o.current.headline.")))..(defun. |
| 26800 | 67 70 74 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 | gptel-org--save-state.()..."Writ |
| 26820 | 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 4f 72 67 20 62 75 66 | e.the.gptel.state.to.the.Org.buf |
| 26840 | 66 65 72 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 | fer.as.Org.properties."...(org-w |
| 26860 | 69 74 68 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 | ith-wide-buffer....(goto-char.(p |
| 26880 | 6f 69 6e 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 | oint-min))....(when.(org-at-head |
| 268a0 | 69 6e 67 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 | ing-p)......(org-open-line.1)).. |
| 268c0 | 20 20 28 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 | ..(gptel-org-set-properties.(poi |
| 268e0 | 6e 74 2d 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 | nt-min))....;;.Save.response.bou |
| 26900 | 6e 64 61 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 | ndaries....(letrec.((write-bound |
| 26920 | 73 0a 20 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 | s..............(lambda.(attempts |
| 26940 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 62 6f 75 6e 64 73 20 | )................(let*.((bounds. |
| 26960 | 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 20 20 | (gptel--get-buffer-bounds))..... |
| 26980 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 20 28 63 61 61 72 20 | ..................(offset.(caar. |
| 269a0 | 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | bounds)).......................( |
| 269c0 | 6f 66 66 73 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 | offset-marker.(set-marker.(make- |
| 269e0 | 6d 61 72 6b 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 | marker).offset)))............... |
| 26a00 | 20 20 20 28 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 | ...(org-entry-put.(point-min)."G |
| 26a20 | 50 54 45 4c 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 | PTEL_BOUNDS".................... |
| 26a40 | 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 20 28 67 | .............(prin1-to-string.(g |
| 26a60 | 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 0a 20 20 20 20 20 | ptel--get-buffer-bounds)))...... |
| 26a80 | 20 20 20 20 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 | ............(when.(and.(not.(=.( |
| 26aa0 | 6d 61 72 6b 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 | marker-position.offset-marker).o |
| 26ac0 | 66 66 73 65 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffset))......................... |
| 26ae0 | 20 20 20 20 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 | ....(>.attempts.0))............. |
| 26b00 | 20 20 20 20 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 | .......(funcall.write-bounds.(1- |
| 26b20 | 20 61 74 74 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 | .attempts)))))))......(funcall.w |
| 26b40 | 72 69 74 65 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 | rite-bounds.6))))....;;;.Transfo |
| 26b60 | 72 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 6f | rming.responses.(defun.gptel--co |
| 26b80 | 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 6e 2d 3e 6f 72 67 20 28 73 74 72 29 0a 20 20 22 43 6f 6e | nvert-markdown->org.(str)..."Con |
| 26ba0 | 76 65 72 74 20 73 74 72 69 6e 67 20 53 54 52 20 66 72 6f 6d 20 6d 61 72 6b 64 6f 77 6e 20 74 6f | vert.string.STR.from.markdown.to |
| 26bc0 | 20 6f 72 67 20 6d 61 72 6b 75 70 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 76 65 72 79 20 62 61 73 | .org.markup...This.is.a.very.bas |
| 26be0 | 69 63 20 63 6f 6e 76 65 72 74 65 72 20 74 68 61 74 20 68 61 6e 64 6c 65 73 20 6f 6e 6c 79 20 61 | ic.converter.that.handles.only.a |
| 26c00 | 20 66 65 77 20 6d 61 72 6b 75 70 0a 65 6c 65 6d 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 | .few.markup.elements."...(intera |
| 26c20 | 63 74 69 76 65 29 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 | ctive)...(with-temp-buffer.....( |
| 26c40 | 69 6e 73 65 72 74 20 73 74 72 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e | insert.str).....(goto-char.(poin |
| 26c60 | 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 2d 66 6f | t-min)).....(while.(re-search-fo |
| 26c80 | 72 77 61 72 64 20 22 60 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c 7d 5c 5c 7c 5f 22 20 6e 69 6c | rward."`\\|\\*\\{1,2\\}\\|_".nil |
| 26ca0 | 20 74 29 0a 20 20 20 20 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 | .t).......(pcase.(match-string.0 |
| 26cc0 | 29 0a 20 20 20 20 20 20 20 20 28 22 60 22 20 28 69 66 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 | ).........("`".(if.(save-excursi |
| 26ce0 | 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 | on....................(beginning |
| 26d00 | 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 28 73 6b | -of-line)....................(sk |
| 26d20 | 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 20 | ip-chars-forward.".\t")......... |
| 26d40 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 60 60 60 22 29 29 0a 20 | ...........(looking-at."```")).. |
| 26d60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 62 61 63 6b 77 61 72 64 | ................(progn.(backward |
| 26d80 | 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 20 20 20 20 20 28 | -char).........................( |
| 26da0 | 64 65 6c 65 74 65 2d 63 68 61 72 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | delete-char.3).................. |
| 26dc0 | 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 23 2b 62 65 67 69 6e 5f 73 72 63 20 22 29 0a 20 | .......(insert."#+begin_src.").. |
| 26de0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 | .......................(when.(re |
| 26e00 | 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 60 60 60 22 20 6e 69 6c 20 74 29 0a 20 20 | -search-forward."^```".nil.t)... |
| 26e20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 | ........................(replace |
| 26e40 | 2d 6d 61 74 63 68 20 22 23 2b 65 6e 64 5f 73 72 63 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | -match."#+end_src")))........... |
| 26e60 | 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 3d 22 29 29 29 0a 20 20 20 20 20 | .....(replace-match."=")))...... |
| 26e80 | 20 20 20 28 22 2a 2a 22 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 | ...("**".(cond................(( |
| 26ea0 | 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d 5c 5c | looking-at."\\*\\(?:[[:word:]]\\ |
| 26ec0 | 7c 5c 73 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 | |\s\\)").................(delete |
| 26ee0 | 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 | -char.1))................((looki |
| 26f00 | 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d 5c 5c 7c 5c 73 5c 5c 29 | ng-back."\\(?:[[:word:]]\\|\s\\) |
| 26f20 | 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \\*\\{2\\}"..................... |
| 26f40 | 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f 69 6e 74 29 20 33 29 20 28 70 6f | ..........(max.(-.(point).3).(po |
| 26f60 | 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 | int-min))).................(dele |
| 26f80 | 74 65 2d 63 68 61 72 20 2d 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 22 2a 22 0a 20 20 20 20 | te-char.-1)))).........("*"..... |
| 26fa0 | 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 28 73 61 76 65 2d 6d 61 74 63 | .....(cond...........((save-matc |
| 26fc0 | 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e | h-data..............(and.(lookin |
| 26fe0 | 67 2d 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 | g-back."\\(?:[[:space:]]\\|\s\\) |
| 27000 | 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | \\(?:_\\|\\*\\)"................ |
| 27020 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f 69 6e 74 29 | .................(max.(-.(point) |
| 27040 | 20 32 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .2).(point-min)))............... |
| 27060 | 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 63 65 3a 5d | ....(not.(looking-at."[[:space:] |
| 27080 | 5d 5c 5c 7c 5c 73 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 73 69 62 | ]\\|\s"))))............;;.Possib |
| 270a0 | 6c 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 65 6d 70 68 61 73 69 73 0a 20 20 20 20 20 20 20 | le.beginning.of.emphasis........ |
| 270c0 | 20 20 20 20 28 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 | ....(and.............(save-excur |
| 270e0 | 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 72 | sion...............(when.(and.(r |
| 27100 | 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 28 | e-search-forward.(regexp-quote.( |
| 27120 | 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | match-string.0))................ |
| 27140 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 | .............................(li |
| 27160 | 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ne-end-position).t)............. |
| 27180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 5b 3a 73 70 61 | .............(looking-at."[[:spa |
| 271a0 | 63 65 5d 5d 5c 5c 7c 5c 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ce]]\\|\s")..................... |
| 271c0 | 20 20 20 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b | .....(not.(looking-back."\\(?:[[ |
| 271e0 | 3a 73 70 61 63 65 5d 5d 5c 5c 7c 5c 73 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c 5c 5c 2a 5c 5c 29 22 | :space]]\\|\s\\)\\(?:_\\|\\*\\)" |
| 27200 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 27220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f 69 6e 74 29 20 32 29 20 | .............(max.(-.(point).2). |
| 27240 | 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 20 20 | (point-min)))))................. |
| 27260 | 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 20 74 29 | (delete-char.-1).(insert."/").t) |
| 27280 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 64 65 6c 65 74 65 2d 63 68 61 | ).............(progn.(delete-cha |
| 272a0 | 72 20 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2f 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | r.-1).(insert."/"))))........... |
| 272c0 | 28 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 28 69 | ((save-excursion..............(i |
| 272e0 | 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 6b 77 61 72 64 2d 63 68 61 72 20 32 29 29 0a | gnore-errors.(backward-char.2)). |
| 27300 | 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."\\(?:$ |
| 27320 | 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:]]")).... |
| 27340 | 20 20 20 20 20 20 20 20 3b 3b 20 42 75 6c 6c 65 74 20 70 6f 69 6e 74 2c 20 72 65 70 6c 61 63 65 | ........;;.Bullet.point,.replace |
| 27360 | 20 77 69 74 68 20 68 79 70 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d | .with.hyphen............(delete- |
| 27380 | 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2d 22 29 29 29 29 29 29 0a 20 20 20 20 28 | char.-1).(insert."-")))))).....( |
| 273a0 | 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d | buffer-string)))..(defun.gptel-- |
| 273c0 | 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 65 2d 6d 61 72 6b 65 72 20 28 6e 75 6d 2d 74 69 63 6b 73 | replace-source-marker.(num-ticks |
| 273e0 | 20 26 6f 70 74 69 6f 6e 61 6c 20 65 6e 64 29 0a 20 20 22 52 65 70 6c 61 63 65 20 6d 61 72 6b 64 | .&optional.end)..."Replace.markd |
| 27400 | 6f 77 6e 20 73 74 79 6c 65 20 62 61 63 6b 74 69 63 6b 73 20 77 69 74 68 20 4f 72 67 20 65 71 75 | own.style.backticks.with.Org.equ |
| 27420 | 69 76 61 6c 65 6e 74 73 2e 0a 0a 4e 55 4d 2d 54 49 43 4b 53 20 69 73 20 74 68 65 20 6e 75 6d 62 | ivalents...NUM-TICKS.is.the.numb |
| 27440 | 65 72 20 6f 66 20 62 61 63 6b 74 69 63 6b 73 20 62 65 69 6e 67 20 72 65 70 6c 61 63 65 64 2e 20 | er.of.backticks.being.replaced.. |
| 27460 | 20 49 66 20 45 4e 44 20 69 73 0a 74 72 75 65 20 74 68 65 73 65 20 61 72 65 20 5c 22 65 6e 64 69 | .If.END.is.true.these.are.\"endi |
| 27480 | 6e 67 5c 22 20 62 61 63 6b 74 69 63 6b 73 2e 0a 0a 54 68 69 73 20 69 73 20 69 6e 74 65 6e 64 65 | ng\".backticks...This.is.intende |
| 274a0 | 64 20 66 6f 72 20 75 73 65 20 69 6e 20 74 68 65 20 6d 61 72 6b 64 6f 77 6e 20 74 6f 20 6f 72 67 | d.for.use.in.the.markdown.to.org |
| 274c0 | 20 73 74 72 65 61 6d 20 63 6f 6e 76 65 72 74 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 72 6f | .stream.converter."...(let.((fro |
| 274e0 | 6d 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 28 64 65 6c | m.(match-beginning.0))).....(del |
| 27500 | 65 74 65 2d 72 65 67 69 6f 6e 20 66 72 6f 6d 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 69 66 | ete-region.from.(point)).....(if |
| 27520 | 20 28 61 6e 64 20 28 3d 20 6e 75 6d 2d 74 69 63 6b 73 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 | .(and.(=.num-ticks.3)........... |
| 27540 | 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 | ...(save-excursion.(beginning-of |
| 27560 | 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -line).......................... |
| 27580 | 20 20 20 20 28 73 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 | ....(skip-chars-forward.".\t").. |
| 275a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 | ............................(eq. |
| 275c0 | 28 70 6f 69 6e 74 29 20 66 72 6f 6d 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 | (point).from))).........(insert. |
| 275e0 | 28 69 66 20 65 6e 64 20 22 23 2b 65 6e 64 5f 73 72 63 22 20 22 23 2b 62 65 67 69 6e 5f 73 72 63 | (if.end."#+end_src"."#+begin_src |
| 27600 | 20 22 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3d 22 29 29 29 29 0a 0a 28 64 65 66 | .")).......(insert."="))))..(def |
| 27620 | 75 6e 20 67 70 74 65 6c 2d 2d 73 74 72 65 61 6d 2d 63 6f 6e 76 65 72 74 2d 6d 61 72 6b 64 6f 77 | un.gptel--stream-convert-markdow |
| 27640 | 6e 2d 3e 6f 72 67 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 4d 61 72 6b 64 6f 77 6e 20 74 | n->org.()..."Return.a.Markdown.t |
| 27660 | 6f 20 4f 72 67 20 63 6f 6e 76 65 72 74 65 72 2e 0a 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 | o.Org.converter...This.function. |
| 27680 | 70 61 72 73 65 73 20 61 20 73 74 72 65 61 6d 20 6f 66 20 4d 61 72 6b 64 6f 77 6e 20 74 65 78 74 | parses.a.stream.of.Markdown.text |
| 276a0 | 20 74 6f 20 4f 72 67 0a 63 6f 6e 74 69 6e 75 6f 75 73 6c 79 20 77 68 65 6e 20 69 74 20 69 73 20 | .to.Org.continuously.when.it.is. |
| 276c0 | 63 61 6c 6c 65 64 20 77 69 74 68 20 73 75 63 63 65 73 73 69 76 65 20 63 68 75 6e 6b 73 20 6f 66 | called.with.successive.chunks.of |
| 276e0 | 20 74 68 65 0a 74 65 78 74 20 73 74 72 65 61 6d 2e 22 0a 20 20 28 6c 65 74 72 65 63 20 28 28 69 | .the.text.stream."...(letrec.((i |
| 27700 | 6e 2d 73 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 | n-src-block.nil)...........;expl |
| 27720 | 69 63 69 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 | icit.nil.to.address.BUG.#183.... |
| 27740 | 20 20 20 20 20 20 20 20 28 74 65 6d 70 2d 62 75 66 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d | ........(temp-buf.(generate-new- |
| 27760 | 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 67 70 74 65 6c 2d 74 65 6d 70 2a 22 29 29 0a 20 20 20 | buffer-name."*gptel-temp*")).... |
| 27780 | 20 20 20 20 20 20 20 20 28 73 74 61 72 74 2d 70 74 20 28 6d 61 6b 65 2d 6d 61 72 6b 65 72 29 29 | ........(start-pt.(make-marker)) |
| 277a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 69 63 6b 73 2d 74 6f 74 61 6c 20 30 29 0a 20 20 20 20 | ............(ticks-total.0)..... |
| 277c0 | 20 20 20 20 20 20 20 28 63 6c 65 61 6e 75 70 2d 66 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 | .......(cleanup-fn.............( |
| 277e0 | 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | lambda.(&rest._)...............( |
| 27800 | 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 | when.(buffer-live-p.(get-buffer. |
| 27820 | 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 73 65 74 2d | temp-buf)).................(set- |
| 27840 | 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 | marker.start-pt.nil)............ |
| 27860 | 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 74 65 6d 70 2d 62 75 66 29 29 0a 20 20 20 | .....(kill-buffer.temp-buf)).... |
| 27880 | 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 | ...........(remove-hook.'gptel-p |
| 278a0 | 6f 73 74 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 | ost-response-functions.cleanup-f |
| 278c0 | 6e 29 29 29 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d | n)))).....(add-hook.'gptel-post- |
| 278e0 | 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 20 | response-functions.cleanup-fn).. |
| 27900 | 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 6f | ...(lambda.(str).......(let.((no |
| 27920 | 6f 70 2d 70 29 20 28 74 69 63 6b 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 | op-p).(ticks.0)).........(with-c |
| 27940 | 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 | urrent-buffer.(get-buffer-create |
| 27960 | 20 74 65 6d 70 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 | .temp-buf)...........(save-excur |
| 27980 | 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 20 28 69 6e | sion.(goto-char.(point-max)).(in |
| 279a0 | 73 65 72 74 20 73 74 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6d 61 72 6b | sert.str))...........(when.(mark |
| 279c0 | 65 72 2d 70 6f 73 69 74 69 6f 6e 20 73 74 61 72 74 2d 70 74 29 20 28 67 6f 74 6f 2d 63 68 61 72 | er-position.start-pt).(goto-char |
| 279e0 | 20 73 74 61 72 74 2d 70 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 73 | .start-pt))...........(when.in-s |
| 27a00 | 72 63 2d 62 6c 6f 63 6b 20 28 73 65 74 71 20 74 69 63 6b 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c | rc-block.(setq.ticks.ticks-total |
| 27a20 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 | ))...........(save-excursion.... |
| 27a40 | 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 68 2d 66 6f 72 77 61 | .........(while.(re-search-forwa |
| 27a60 | 72 64 20 22 60 5c 5c 7c 5c 5c 2a 5c 5c 7b 31 2c 32 5c 5c 7d 5c 5c 7c 5f 22 20 6e 69 6c 20 74 29 | rd."`\\|\\*\\{1,2\\}\\|_".nil.t) |
| 27a80 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 73 65 20 28 6d 61 74 63 68 2d 73 74 72 | ...............(pcase.(match-str |
| 27aa0 | 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 60 22 0a 20 20 20 20 | ing.0).................("`"..... |
| 27ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6f 75 6e 74 20 6e 75 6d 62 65 72 20 6f 66 20 | .............;;.Count.number.of. |
| 27ae0 | 63 6f 6e 73 65 63 75 74 69 76 65 20 62 61 63 6b 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 | consecutive.backticks........... |
| 27b00 | 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 20 20 20 | .......(backward-char).......... |
| 27b20 | 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 20 28 63 68 61 72 2d 61 66 74 65 72 29 | ........(while.(and.(char-after) |
| 27b40 | 20 28 65 71 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 60 29 29 0a 20 20 20 20 20 20 20 20 20 | .(eq.(char-after).?`)).......... |
| 27b60 | 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 | ..........(forward-char)........ |
| 27b80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 28 63 6c | ............(if.in-src-block.(cl |
| 27ba0 | 2d 64 65 63 66 20 74 69 63 6b 73 29 20 28 63 6c 2d 69 6e 63 66 20 74 69 63 6b 73 29 29 29 0a 20 | -decf.ticks).(cl-incf.ticks))).. |
| 27bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 65 74 20 74 68 65 20 76 65 72 62 61 | ................;;.Set.the.verba |
| 27be0 | 74 69 6d 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 70 61 72 73 65 72 0a 20 20 20 20 20 20 20 20 | tim.state.of.the.parser......... |
| 27c00 | 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 65 6f 62 70 29 0a 20 20 20 20 20 20 20 | .........(if.(and.(eobp)........ |
| 27c20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 70 65 63 69 61 6c 20 63 61 | ...................;;.Special.ca |
| 27c40 | 73 65 20 68 65 75 72 69 73 74 69 63 3a 20 49 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 65 6e | se.heuristic:.If.the.response.en |
| 27c60 | 64 73 20 77 69 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ds.with......................... |
| 27c80 | 20 20 3b 3b 20 5e 60 60 60 20 77 65 20 64 6f 6e 27 74 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 65 | ..;;.^```.we.don't.wait.for.more |
| 27ca0 | 20 69 6e 70 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .input.......................... |
| 27cc0 | 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 68 69 73 20 63 61 6e 20 68 61 76 65 20 66 61 6c 73 65 20 | ..;;.FIXME:.This.can.have.false. |
| 27ce0 | 70 6f 73 69 74 69 76 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | positives....................... |
| 27d00 | 20 20 20 20 20 28 6e 6f 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 65 67 69 6e | .....(not.(save-excursion.(begin |
| 27d20 | 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ning-of-line)................... |
| 27d40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f | .............................(lo |
| 27d60 | 6f 6b 69 6e 67 2d 61 74 20 22 5e 60 60 60 24 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 | oking-at."^```$"))))............ |
| 27d80 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 6e 64 20 6f 66 20 69 6e 70 75 74 20 3d 3e 20 74 68 65 | ..........;;.End.of.input.=>.the |
| 27da0 | 72 65 20 63 6f 75 6c 64 20 62 65 20 6d 6f 72 65 20 62 61 63 6b 74 69 63 6b 73 20 63 6f 6d 69 6e | re.could.be.more.backticks.comin |
| 27dc0 | 67 2c 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 73 6f 20 77 65 | g,......................;;.so.we |
| 27de0 | 20 77 61 69 74 20 66 6f 72 20 6d 6f 72 65 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 | .wait.for.more.input............ |
| 27e00 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 73 65 74 71 20 6e 6f 6f 70 2d 70 20 74 29 | ..........(progn.(setq.noop-p.t) |
| 27e20 | 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 74 20 28 6d 61 74 63 68 2d 62 65 67 | .(set-marker.start-pt.(match-beg |
| 27e40 | 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b | inning.0)))....................; |
| 27e60 | 3b 20 57 65 20 72 65 61 63 68 65 64 20 61 20 63 68 61 72 61 63 74 65 72 20 6f 74 68 65 72 20 74 | ;.We.reached.a.character.other.t |
| 27e80 | 68 61 6e 20 61 20 62 61 63 6b 74 69 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | han.a.backtick.................. |
| 27ea0 | 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 3b 3b 20 54 | ..(cond.....................;;.T |
| 27ec0 | 69 63 6b 73 20 62 61 6c 61 6e 63 65 64 2c 20 65 6e 64 20 73 72 63 20 62 6c 6f 63 6b 0a 20 20 20 | icks.balanced,.end.src.block.... |
| 27ee0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3d 20 74 69 63 6b 73 20 30 29 0a 20 20 | .................((=.ticks.0)... |
| 27f00 | 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 20 28 73 65 74 71 20 | ...................(progn.(setq. |
| 27f20 | 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | in-src-block.nil)............... |
| 27f40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f | ..............(gptel--replace-so |
| 27f60 | 75 72 63 65 2d 6d 61 72 6b 65 72 20 74 69 63 6b 73 2d 74 6f 74 61 6c 20 27 65 6e 64 29 29 29 0a | urce-marker.ticks-total.'end))). |
| 27f80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 | ....................;;.Positive. |
| 27fa0 | 6e 75 6d 62 65 72 20 6f 66 20 74 69 63 6b 73 2c 20 73 74 61 72 74 20 61 6e 20 73 72 63 20 62 6c | number.of.ticks,.start.an.src.bl |
| 27fc0 | 6f 63 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 3e | ock.....................((and.(> |
| 27fe0 | 20 74 69 63 6b 73 20 30 29 20 28 6e 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 0a 20 20 | .ticks.0).(not.in-src-block))... |
| 28000 | 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 74 69 63 6b 73 2d 74 | ...................(setq.ticks-t |
| 28020 | 6f 74 61 6c 20 74 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | otal.ticks...................... |
| 28040 | 20 20 20 20 20 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 | ......in-src-block.t)........... |
| 28060 | 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 72 65 70 6c 61 63 65 2d 73 6f 75 72 63 | ...........(gptel--replace-sourc |
| 28080 | 65 2d 6d 61 72 6b 65 72 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 0a 20 20 20 20 20 20 20 20 20 | e-marker.ticks-total)).......... |
| 280a0 | 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4e 65 67 61 74 69 76 65 20 6e 75 6d 62 65 72 20 6f 66 | ...........;;.Negative.number.of |
| 280c0 | 20 74 69 63 6b 73 20 6f 72 20 69 6e 20 61 20 73 72 63 20 62 6c 6f 63 6b 20 61 6c 72 65 61 64 79 | .ticks.or.in.a.src.block.already |
| 280e0 | 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 72 65 73 65 74 20 74 | ,.....................;;.reset.t |
| 28100 | 69 63 6b 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 73 65 74 | icks.....................(t.(set |
| 28120 | 71 20 74 69 63 6b 73 20 74 69 63 6b 73 2d 74 6f 74 61 6c 29 29 29 29 29 0a 20 20 20 20 20 20 20 | q.ticks.ticks-total)))))........ |
| 28140 | 20 20 20 20 20 20 20 20 20 3b 3b 20 48 61 6e 64 6c 65 20 6f 74 68 65 72 20 63 68 61 72 73 3a 20 | .........;;.Handle.other.chars:. |
| 28160 | 65 6d 70 68 61 73 69 73 2c 20 62 6f 6c 64 20 61 6e 64 20 62 75 6c 6c 65 74 20 69 74 65 6d 73 0a | emphasis,.bold.and.bullet.items. |
| 28180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 2a 2a 22 20 28 67 75 61 72 | ................((and."**".(guar |
| 281a0 | 64 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 | d.(not.in-src-block))).......... |
| 281c0 | 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ........(cond................... |
| 281e0 | 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d | ((looking-at."\\*\\(?:[[:word:]] |
| 28200 | 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 20 20 20 20 28 64 | \\|\s\\)")....................(d |
| 28220 | 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | elete-char.1)).................. |
| 28240 | 20 28 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 22 5c 5c 28 3f 3a 5b 5b 3a 77 6f 72 64 3a 5d 5d | .((looking-back."\\(?:[[:word:]] |
| 28260 | 5c 5c 7c 5c 73 5c 5c 29 5c 5c 2a 5c 5c 7b 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | \\|\s\\)\\*\\{2\\}"............. |
| 28280 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 78 20 28 2d 20 28 70 6f | .....................(max.(-.(po |
| 282a0 | 69 6e 74 29 20 33 29 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 | int).3).(point-min)))........... |
| 282c0 | 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 29 29 29 0a 20 20 20 | .........(delete-char.-1)))).... |
| 282e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 22 2a 22 20 28 67 75 61 72 64 20 28 6e | .............((and."*".(guard.(n |
| 28300 | 6f 74 20 69 6e 2d 73 72 63 2d 62 6c 6f 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ot.in-src-block))).............. |
| 28320 | 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 | ....(save-match-data............ |
| 28340 | 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......... |
| 28360 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 62 61 63 | .............(ignore-errors.(bac |
| 28380 | 6b 77 61 72 64 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | kward-char.2)).................. |
| 283a0 | 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(cond....................... |
| 283c0 | 28 28 6f 72 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 | ((or.(looking-at................ |
| 283e0 | 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 5b 3a 70 75 6e 63 74 | ............."[^[:space:][:punct |
| 28400 | 3a 5d 5c 6e 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 | :]\n]\\(?:_\\|\\*\\)\\(?:[[:spac |
| 28420 | 65 3a 5d 5b 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 | e:][:punct:]]\\|$\\)").......... |
| 28440 | 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 0a 20 20 | ..................(looking-at... |
| 28460 | 20 20 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 5c 28 3f 3a | .........................."\\(?: |
| 28480 | 5b 5b 3a 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c 29 5c 5c 28 3f 3a 5f 5c 5c 7c | [[:space:][:punct:]]\\)\\(?:_\\| |
| 284a0 | 5c 5c 2a 5c 5c 29 5c 5c 28 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5b 3a 70 75 6e 63 74 3a 5d 5d 5c 5c | \\*\\)\\([^[:space:][:punct:]]\\ |
| 284c0 | 7c 24 5c 5c 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | |$\\)"))........................ |
| 284e0 | 3b 3b 20 45 6d 70 68 61 73 69 73 2c 20 72 65 70 6c 61 63 65 20 77 69 74 68 20 73 6c 61 73 68 65 | ;;.Emphasis,.replace.with.slashe |
| 28500 | 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 66 6f 72 77 61 72 | s........................(forwar |
| 28520 | 64 2d 63 68 61 72 20 32 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 20 28 69 6e 73 65 | d-char.2).(delete-char.-1).(inse |
| 28540 | 72 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 28 | rt."/")).......................( |
| 28560 | 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 24 5c 5c 7c 5c 5c 60 5c 5c 29 5c 6e 5c 5c | (looking-at."\\(?:$\\|\\`\\)\n\\ |
| 28580 | 2a 5b 5b 3a 73 70 61 63 65 3a 5d 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | *[[:space:]]").................. |
| 285a0 | 20 20 20 20 20 20 3b 3b 20 42 75 6c 6c 65 74 20 70 6f 69 6e 74 2c 20 72 65 70 6c 61 63 65 20 77 | ......;;.Bullet.point,.replace.w |
| 285c0 | 69 74 68 20 68 79 70 68 65 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ith.hyphen...................... |
| 285e0 | 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 32 29 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 | ..(forward-char.2).(delete-char. |
| 28600 | 2d 31 29 20 28 69 6e 73 65 72 74 20 22 2d 22 29 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 | -1).(insert."-")))))))))........ |
| 28620 | 20 20 20 28 69 66 20 6e 6f 6f 70 2d 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 | ...(if.noop-p...............(buf |
| 28640 | 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 73 74 61 72 74 2d 70 74 29 0a | fer-substring.(point).start-pt). |
| 28660 | 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 | ............(prog1.(buffer-subst |
| 28680 | 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 | ring.(point).(point-max))....... |
| 286a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 70 | .............(set-marker.start-p |
| 286c0 | 74 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 | t.(point-max)))))))))..(provide. |
| 286e0 | 27 67 70 74 65 6c 2d 6f 72 67 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 20 65 6e 64 | 'gptel-org).;;;.gptel-org.el.end |
| 28700 | 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | s.here.......................... |
| 28720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28740 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28760 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28780 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 287a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 287c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 287e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28800 | 67 70 74 65 6c 2d 32 30 32 34 30 34 32 32 2e 31 39 33 39 2f 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 | gptel-20240422.1939/gptel-ollama |
| 28820 | 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | .el............................. |
| 28840 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28860 | 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 |
| 28880 | 30 30 31 34 35 36 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 30 34 31 00 20 30 00 00 00 | 0014562.00000000000.015041..0... |
| 288a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 288c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 288e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28900 | 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................... |
| 28920 | 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................... |
| 28940 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28960 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28980 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 289a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 289c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 289e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 28a00 | 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 |
| 28a20 | 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 |
| 28a40 | 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.( |
| 28a60 | 43 29 20 32 30 32 33 20 20 4b 61 72 74 68 69 6b 20 43 68 69 6b 6d 61 67 61 6c 75 72 0a 0a 3b 3b | C).2023..Karthik.Chikmagalur..;; |
| 28a80 | 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 |
| 28aa0 | 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 |
| 28ac0 | 65 79 77 6f 72 64 73 3a 20 68 79 70 65 72 6d 65 64 69 61 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f | eywords:.hypermedia..;;.This.pro |
| 28ae0 | 67 72 61 6d 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 | gram.is.free.software;.you.can.r |
| 28b00 | 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 0a 3b 3b 20 | edistribute.it.and/or.modify.;;. |
| 28b20 | 69 74 20 75 6e 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 | it.under.the.terms.of.the.GNU.Ge |
| 28b40 | 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 | neral.Public.License.as.publishe |
| 28b60 | 64 20 62 79 0a 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 | d.by.;;.the.Free.Software.Founda |
| 28b80 | 74 69 6f 6e 2c 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 33 20 6f 66 20 74 68 65 20 4c 69 | tion,.either.version.3.of.the.Li |
| 28ba0 | 63 65 6e 73 65 2c 20 6f 72 0a 3b 3b 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e | cense,.or.;;.(at.your.option).an |
| 28bc0 | 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 0a 3b 3b 20 54 68 69 73 20 70 72 6f 67 72 61 | y.later.version...;;.This.progra |
| 28be0 | 6d 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 | m.is.distributed.in.the.hope.tha |
| 28c00 | 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 0a 3b 3b 20 62 75 74 20 57 49 54 48 | t.it.will.be.useful,.;;.but.WITH |
| 28c20 | 4f 55 54 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 | OUT.ANY.WARRANTY;.without.even.t |
| 28c40 | 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 0a 3b 3b 20 4d 45 52 43 48 41 | he.implied.warranty.of.;;.MERCHA |
| 28c60 | 4e 54 41 42 49 4c 49 54 59 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 | NTABILITY.or.FITNESS.FOR.A.PARTI |
| 28c80 | 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 0a 3b 3b 20 47 4e 55 20 47 | CULAR.PURPOSE...See.the.;;.GNU.G |
| 28ca0 | 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 6d 6f 72 65 20 64 | eneral.Public.License.for.more.d |
| 28cc0 | 65 74 61 69 6c 73 2e 0a 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 | etails...;;.You.should.have.rece |
| 28ce0 | 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 | ived.a.copy.of.the.GNU.General.P |
| 28d00 | 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 74 68 69 73 | ublic.License.;;.along.with.this |
| 28d20 | 20 70 72 6f 67 72 61 6d 2e 20 20 49 66 20 6e 6f 74 2c 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f | .program...If.not,.see.<https:// |
| 28d40 | 77 77 77 2e 67 6e 75 2e 6f 72 67 2f 6c 69 63 65 6e 73 65 73 2f 3e 2e 0a 0a 3b 3b 3b 20 43 6f 6d | www.gnu.org/licenses/>...;;;.Com |
| 28d60 | 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 20 73 75 70 70 | mentary:..;;.This.file.adds.supp |
| 28d80 | 6f 72 74 20 66 6f 72 20 74 68 65 20 4f 6c 6c 61 6d 61 20 4c 4c 4d 20 41 50 49 20 74 6f 20 67 70 | ort.for.the.Ollama.LLM.API.to.gp |
| 28da0 | 74 65 6c 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 29 0a | tel..;;;.Code:.(require.'gptel). |
| 28dc0 | 28 72 65 71 75 69 72 65 20 27 63 6c 2d 67 65 6e 65 72 69 63 29 0a 0a 28 64 65 63 6c 61 72 65 2d | (require.'cl-generic)..(declare- |
| 28de0 | 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 72 65 61 64 20 22 6a 73 6f 6e 22 20 28 29 29 0a 28 64 | function.json-read."json".()).(d |
| 28e00 | 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 3b 3b 3b 20 4f 6c 6c | efvar.json-object-type)..;;;.Oll |
| 28e20 | 61 6d 61 0a 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 | ama.(cl-defstruct.(gptel-ollama. |
| 28e40 | 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 6f 6c 6c 61 6d 61 | (:constructor.gptel--make-ollama |
| 28e60 | 29 0a 20 20 20 20 20 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 | ).............................(: |
| 28e80 | 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 20 20 20 | copier.nil)..................... |
| 28ea0 | 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 65 6e 64 29 | ........(:include.gptel-backend) |
| 28ec0 | 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 6c 61 6d 61 2d | ))..(defvar-local.gptel--ollama- |
| 28ee0 | 74 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 | token-count.0..."Token.count.for |
| 28f00 | 20 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 | .ollama.conversations...This.var |
| 28f20 | 69 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 | iable.holds.the.total.token.coun |
| 28f40 | 74 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 | t.for.conversations.with.Ollama. |
| 28f60 | 6d 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 | models...Intended.for.internal.u |
| 28f80 | 73 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 | se.only.")..(cl-defmethod.gptel- |
| 28fa0 | 63 75 72 6c 2d 2d 70 61 72 73 65 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 | curl--parse-stream.((_backend.gp |
| 28fc0 | 74 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 | tel-ollama).info)..."Parse.respo |
| 28fe0 | 6e 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 | nse.stream.for.the.Ollama.API.". |
| 29000 | 20 20 28 77 68 65 6e 20 28 62 6f 62 70 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f | ..(when.(bobp).....(re-search-fo |
| 29020 | 72 77 61 72 64 20 22 5e 7b 22 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 | rward."^{").....(forward-line.0) |
| 29040 | 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 20 28 63 6f 6e 74 65 | )...(let*.((content-strs).(conte |
| 29060 | 6e 74 29 20 28 70 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e | nt).(pt.(point))).....(condition |
| 29080 | 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 63 | -case.nil.........(while.(setq.c |
| 290a0 | 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 | ontent.(gptel--json-read))...... |
| 290c0 | 20 20 20 20 20 28 73 65 74 71 20 70 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 | .....(setq.pt.(point)).......... |
| 290e0 | 20 28 6c 65 74 20 28 28 64 6f 6e 65 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 64 | .(let.((done.(map-elt.content.:d |
| 29100 | 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 | one)).................(response. |
| 29120 | 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 27 28 3a 6d 65 73 73 61 | (map-nested-elt.content.'(:messa |
| 29140 | 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 | ge.:content)))).............(pus |
| 29160 | 68 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 20 | h.response.content-strs)........ |
| 29180 | 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 64 6f 6e 65 20 3a 6a 73 6f 6e 2d 66 61 6c 73 | .....(unless.(eq.done.:json-fals |
| 291a0 | 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 | e)...............(with-current-b |
| 291c0 | 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 | uffer.(plist-get.info.:buffer).. |
| 291e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 67 70 74 65 6c 2d 2d 6f | ...............(cl-incf.gptel--o |
| 29200 | 6c 6c 61 6d 61 2d 74 6f 6b 65 6e 2d 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | llama-token-count............... |
| 29220 | 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6f 72 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 | ...........(+.(or.(map-elt.conte |
| 29240 | 6e 74 20 3a 70 72 6f 6d 70 74 5f 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 0a 20 20 20 20 20 20 | nt.:prompt_eval_count).0)....... |
| 29260 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6d 61 70 2d 65 | ......................(or.(map-e |
| 29280 | 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 29 29 29 0a 20 20 | lt.content.:eval_count).0))))... |
| 292a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 | ............(goto-char.(point-ma |
| 292c0 | 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 | x))))).......(error.(goto-char.p |
| 292e0 | 74 29 29 29 0a 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 6f 6e 63 61 74 20 28 6e 72 65 76 65 72 | t))).....(apply.#'concat.(nrever |
| 29300 | 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 | se.content-strs))))..(cl-defmeth |
| 29320 | 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 |
| 29340 | 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 72 65 73 70 6f 6e 73 65 20 69 6e 66 6f 29 | end.gptel-ollama).response.info) |
| 29360 | 0a 20 20 22 50 61 72 73 65 20 61 20 6f 6e 65 2d 73 68 6f 74 20 52 45 53 50 4f 4e 53 45 20 66 72 | ..."Parse.a.one-shot.RESPONSE.fr |
| 29380 | 6f 6d 20 74 68 65 20 4f 6c 6c 61 6d 61 20 41 50 49 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 | om.the.Ollama.API."...(when-let. |
| 293a0 | 28 28 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 6f 72 20 28 | ((context...............(+.(or.( |
| 293c0 | 6d 61 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 70 72 6f 6d 70 74 5f 65 76 61 6c 5f 63 6f | map-elt.response.:prompt_eval_co |
| 293e0 | 75 6e 74 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6d 61 | unt).0)..................(or.(ma |
| 29400 | 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 65 76 61 6c 5f 63 6f 75 6e 74 29 20 30 29 29 29 | p-elt.response.:eval_count).0))) |
| 29420 | 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 69 73 | ).....(with-current-buffer.(plis |
| 29440 | 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 63 6c 2d 69 6e | t-get.info.:buffer).......(cl-in |
| 29460 | 63 66 20 67 70 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 74 6f 6b 65 6e 2d 63 6f 75 6e 74 20 63 6f 6e | cf.gptel--ollama-token-count.con |
| 29480 | 74 65 78 74 29 29 29 0a 20 20 28 6d 61 70 2d 6e 65 73 74 65 64 2d 65 6c 74 20 72 65 73 70 6f 6e | text)))...(map-nested-elt.respon |
| 294a0 | 73 65 20 27 28 3a 6d 65 73 73 61 67 65 20 3a 63 6f 6e 74 65 6e 74 29 29 29 0a 0a 28 63 6c 2d 64 | se.'(:message.:content)))..(cl-d |
| 294c0 | 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 28 5f | efmethod.gptel--request-data.((_ |
| 294e0 | 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 70 72 6f 6d 70 74 73 29 0a 20 | backend.gptel-ollama).prompts).. |
| 29500 | 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 73 65 6e 64 69 6e | ."JSON.encode.PROMPTS.for.sendin |
| 29520 | 67 20 74 6f 20 43 68 61 74 47 50 54 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d | g.to.ChatGPT."...(let.((prompts- |
| 29540 | 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 60 28 3a 6d 6f 64 65 6c 20 2c 67 70 74 65 6c 2d 6d | plist..........`(:model.,gptel-m |
| 29560 | 6f 64 65 6c 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 | odel............:messages.[,@pro |
| 29580 | 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 28 61 | mpts]............:stream.,(or.(a |
| 295a0 | 6e 64 20 67 70 74 65 6c 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 75 73 65 2d 63 75 72 6c 0a 20 | nd.gptel-stream.gptel-use-curl.. |
| 295c0 | 20 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 |
| 295e0 | 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 | ackend-stream.gptel-backend))... |
| 29600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 | ...................:json-false)) |
| 29620 | 29 0a 20 20 20 20 20 20 20 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 29 0a 20 20 20 20 28 77 68 | ).........options-plist).....(wh |
| 29640 | 65 6e 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 0a 20 20 20 20 20 20 28 73 65 74 71 | en.gptel-temperature.......(setq |
| 29660 | 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 | .options-plist.............(plis |
| 29680 | 74 2d 70 75 74 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 20 3a 74 65 6d 70 65 72 61 74 75 72 65 | t-put.options-plist.:temperature |
| 296a0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 74 65 | ........................gptel-te |
| 296c0 | 6d 70 65 72 61 74 75 72 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 61 78 | mperature))).....(when.gptel-max |
| 296e0 | 2d 74 6f 6b 65 6e 73 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 | -tokens.......(setq.options-plis |
| 29700 | 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 6f 70 74 69 6f 6e 73 | t.............(plist-put.options |
| 29720 | 2d 70 6c 69 73 74 20 3a 6e 75 6d 5f 70 72 65 64 69 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | -plist.:num_predict............. |
| 29740 | 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 29 0a 20 | ...........gptel-max-tokens))).. |
| 29760 | 20 20 20 28 77 68 65 6e 20 6f 70 74 69 6f 6e 73 2d 70 6c 69 73 74 0a 20 20 20 20 20 20 28 70 6c | ...(when.options-plist.......(pl |
| 29780 | 69 73 74 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 6f 70 74 69 6f 6e 73 20 6f | ist-put.prompts-plist.:options.o |
| 297a0 | 70 74 69 6f 6e 73 2d 70 6c 69 73 74 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 | ptions-plist)).....prompts-plist |
| 297c0 | 29 29 0a 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 | ))..(cl-defmethod.gptel--parse-b |
| 297e0 | 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 20 26 | uffer.((_backend.gptel-ollama).& |
| 29800 | 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 70 | optional.max-entries)...(let.((p |
| 29820 | 72 6f 6d 70 74 73 29 20 28 70 72 6f 70 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 0a | rompts).(prop)).....(while.(and. |
| 29840 | 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 6d 61 78 2d 65 6e 74 72 69 65 73 | ............(or.(not.max-entries |
| 29860 | 29 20 28 3e 3d 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 | ).(>=.max-entries.0))........... |
| 29880 | 20 20 28 73 65 74 71 20 70 72 6f 70 20 28 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 | ..(setq.prop.(text-property-sear |
| 298a0 | 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ch-backward..................... |
| 298c0 | 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ....'gptel.'response............ |
| 298e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f | .............(when.(get-char-pro |
| 29900 | 70 65 72 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e | perty.(max.(point-min).(1-.(poin |
| 29920 | 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t)))............................ |
| 29940 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 29 0a 20 20 | ......................'gptel)... |
| 29960 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 29 0a 20 20 | ........................t))))... |
| 29980 | 20 20 20 20 28 70 75 73 68 20 28 6c 69 73 74 20 3a 72 6f 6c 65 20 28 69 66 20 28 70 72 6f 70 2d | ....(push.(list.:role.(if.(prop- |
| 299a0 | 6d 61 74 63 68 2d 76 61 6c 75 65 20 70 72 6f 70 29 20 22 61 73 73 69 73 74 61 6e 74 22 20 22 75 | match-value.prop)."assistant"."u |
| 299c0 | 73 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 6e 74 | ser")...................:content |
| 299e0 | 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 2d 74 72 69 6d 0a | ...................(string-trim. |
| 29a00 | 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 |
| 29a20 | 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 62 | ring-no-properties.(prop-match-b |
| 29a40 | 65 67 69 6e 6e 69 6e 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | eginning.prop).................. |
| 29a60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29a80 | 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 | ..(prop-match-end.prop))........ |
| 29aa0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 5b 5c 74 5c 72 5c 6e 20 5d 2a 5c | ............(format."[\t\r\n.]*\ |
| 29ac0 | 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 | \(?:%s\\)?[\t\r\n.]*"........... |
| 29ae0 | 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 20 28 | .................(regexp-quote.( |
| 29b00 | 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 | gptel-prompt-prefix-string)))... |
| 29b20 | 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 5c 74 5c 72 5c | .................(format."[\t\r\ |
| 29b40 | 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.]*"...... |
| 29b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 | ......................(regexp-qu |
| 29b80 | 6f 74 65 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e | ote.(gptel-response-prefix-strin |
| 29ba0 | 67 29 29 29 29 29 0a 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 | g))))).............prompts)..... |
| 29bc0 | 20 20 28 61 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 20 28 63 6c 2d 64 65 63 66 20 6d 61 78 2d | ..(and.max-entries.(cl-decf.max- |
| 29be0 | 65 6e 74 72 69 65 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 6c 69 73 74 20 3a 72 6f 6c 65 | entries))).....(cons.(list.:role |
| 29c00 | 20 22 73 79 73 74 65 6d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 6f 6e 74 65 | ."system".................:conte |
| 29c20 | 6e 74 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 | nt.gptel--system-message)....... |
| 29c40 | 20 20 20 20 70 72 6f 6d 70 74 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 | ....prompts)))..;;;###autoload.( |
| 29c60 | 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 28 | cl-defun.gptel-make-ollama.....( |
| 29c80 | 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 6d | name.&key.curl-args.header.key.m |
| 29ca0 | 6f 64 65 6c 73 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 28 68 6f 73 74 20 22 6c 6f | odels.stream...........(host."lo |
| 29cc0 | 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 74 6f | calhost:11434")...........(proto |
| 29ce0 | 63 6f 6c 20 22 68 74 74 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 70 6f 69 6e 74 20 | col."http")...........(endpoint. |
| 29d00 | 22 2f 61 70 69 2f 63 68 61 74 22 29 29 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 6e 20 4f 6c 6c | "/api/chat"))..."Register.an.Oll |
| 29d20 | 61 6d 61 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 | ama.backend.for.gptel.with.NAME. |
| 29d40 | 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. |
| 29d60 | 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 |
| 29d80 | 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 65 72 | al.Curl.arguments...HOST.is.wher |
| 29da0 | 65 20 4f 6c 6c 61 6d 61 20 72 75 6e 73 20 28 77 69 74 68 20 70 6f 72 74 29 2c 20 64 65 66 61 75 | e.Ollama.runs.(with.port),.defau |
| 29dc0 | 6c 74 73 20 74 6f 20 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 0a 0a 4d 4f 44 45 4c 53 20 69 | lts.to.localhost:11434..MODELS.i |
| 29de0 | 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 |
| 29e00 | 73 2e 0a 0a 53 54 52 45 41 4d 20 69 73 20 61 20 62 6f 6f 6c 65 61 6e 20 74 6f 20 74 6f 67 67 6c | s...STREAM.is.a.boolean.to.toggl |
| 29e20 | 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 | e.streaming.responses,.defaults. |
| 29e40 | 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 | to.false...PROTOCOL.(optional).s |
| 29e60 | 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 6f 63 6f 6c 2c 20 68 74 74 70 20 62 79 20 64 | pecifies.the.protocol,.http.by.d |
| 29e80 | 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. |
| 29ea0 | 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 |
| 29ec0 | 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c 22 2f 61 70 69 2f 67 65 6e 65 72 61 74 65 5c 22 2e | ,.defaults.to.\"/api/generate\". |
| 29ee0 | 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 66 6f 72 20 61 64 64 69 74 | ..HEADER.(optional).is.for.addit |
| 29f00 | 69 6f 6e 61 6c 20 68 65 61 64 65 72 73 20 74 6f 20 73 65 6e 64 20 77 69 74 68 20 65 61 63 68 0a | ional.headers.to.send.with.each. |
| 29f20 | 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 6c 69 73 74 20 | request...It.should.be.an.alist. |
| 29f40 | 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 | or.a.function.that.retuns.an.ali |
| 29f60 | 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c | st,.like:.((\"Content-Type\"...\ |
| 29f80 | 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 | "application/json\"))..KEY.(opti |
| 29fa0 | 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 20 77 68 6f 73 65 20 76 61 6c 75 65 20 | onal).is.a.variable.whose.value. |
| 29fc0 | 69 73 20 74 68 65 20 41 50 49 20 6b 65 79 2c 20 6f 72 0a 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 | is.the.API.key,.or.function.that |
| 29fe0 | 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 54 68 69 73 20 69 73 20 74 79 70 69 63 | .returns.the.key...This.is.typic |
| 2a000 | 61 6c 6c 79 20 6e 6f 74 20 72 65 71 75 69 72 65 64 0a 66 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 | ally.not.required.for.local.mode |
| 2a020 | 6c 73 20 6c 69 6b 65 20 4f 6c 6c 61 6d 61 2e 0a 0a 45 78 61 6d 70 6c 65 3a 0a 2d 2d 2d 2d 2d 2d | ls.like.Ollama...Example:.------ |
| 2a040 | 2d 0a 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 5c 22 4f 6c 6c 61 6d 61 | -..(gptel-make-ollama...\"Ollama |
| 2a060 | 5c 22 0a 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 22 0a 20 | \"...:host.\"localhost:11434\".. |
| 2a080 | 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 5c 22 6d 69 73 74 72 61 6c 3a 6c 61 74 65 73 74 5c 22 | .:models.\\='(\"mistral:latest\" |
| 2a0a0 | 29 0a 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 65 | )...:stream.t)"...(declare.(inde |
| 2a0c0 | 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-- |
| 2a0e0 | 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 63 | make-ollama...................:c |
| 2a100 | 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.............. |
| 2a120 | 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................. |
| 2a140 | 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...................: |
| 2a160 | 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................... |
| 2a180 | 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 65 | :key.key...................:mode |
| 2a1a0 | 6c 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 | ls.models...................:pro |
| 2a1c0 | 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.................. |
| 2a1e0 | 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............. |
| 2a200 | 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............ |
| 2a220 | 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........ |
| 2a240 | 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 |
| 2a260 | 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)....... |
| 2a280 | 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. |
| 2a2a0 | 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 31 20 62 61 63 6b 65 6e 64 | endpoint))))).....(prog1.backend |
| 2a2c0 | 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 20 6e 61 6d 65 20 67 70 74 | .......(setf.(alist-get.name.gpt |
| 2a2e0 | 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | el--known-backends.............. |
| 2a300 | 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 0a 20 20 20 20 20 | ..........nil.nil.#'equal)...... |
| 2a320 | 20 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 | .............backend))))..(provi |
| 2a340 | 64 65 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 6f 6c 6c 61 | de.'gptel-ollama).;;;.gptel-olla |
| 2a360 | 6d 61 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ma.el.ends.here................. |
| 2a380 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a3a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a3c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a3e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a400 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a420 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a440 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a460 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a480 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a4a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a4c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a680 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a720 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 | ................................ |