| ofs | hex dump | ascii |
|---|
| 0000 | 67 70 74 65 6c 2d 32 30 32 34 30 34 30 34 2e 38 31 33 2f 00 00 00 00 00 00 00 00 00 00 00 00 00 | gptel-20240404.813/............. |
| 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 30 33 37 00 20 35 00 00 00 | 0000000.00000000000.012037..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 67 65 6d 69 6e 69 2e | gptel-20240404.813/gptel-gemini. |
| 0220 | 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.............................. |
| 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 30 36 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 34 37 00 20 30 00 00 00 | 0015063.00000000000.014747..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 29 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 62 65 74 | o"))...........(endpoint."/v1bet |
| 16a0 | 61 2f 6d 6f 64 65 6c 73 22 29 29 0a 0a 20 20 22 52 65 67 69 73 74 65 72 20 61 20 47 65 6d 69 6e | a/models"))...."Register.a.Gemin |
| 16c0 | 69 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 | i.backend.for.gptel.with.NAME... |
| 16e0 | 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 |
| 1700 | 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 |
| 1720 | 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a 0a 48 4f 53 54 20 28 6f 70 74 69 6f 6e 61 6c | .Curl.arguments...HOST.(optional |
| 1740 | 29 20 69 73 20 74 68 65 20 41 50 49 20 68 6f 73 74 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 5c | ).is.the.API.host,.defaults.to.\ |
| 1760 | 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 |
| 1780 | 6f 6d 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 | om\"...MODELS.is.a.list.of.avail |
| 17a0 | 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 61 20 62 | able.model.names...STREAM.is.a.b |
| 17c0 | 6f 6f 6c 65 61 6e 20 74 6f 20 65 6e 61 62 6c 65 20 73 74 72 65 61 6d 69 6e 67 20 72 65 73 70 6f | oolean.to.enable.streaming.respo |
| 17e0 | 6e 73 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 66 61 6c 73 65 2e 0a 0a 50 52 4f 54 4f 43 | nses,.defaults.to.false...PROTOC |
| 1800 | 4f 4c 20 28 6f 70 74 69 6f 6e 61 6c 29 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20 70 72 6f 74 | OL.(optional).specifies.the.prot |
| 1820 | 6f 63 6f 6c 2c 20 5c 22 68 74 74 70 73 5c 22 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 | ocol,.\"https\".by.default...END |
| 1840 | 50 4f 49 4e 54 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 74 68 65 20 41 50 49 20 65 6e 64 70 | POINT.(optional).is.the.API.endp |
| 1860 | 6f 69 6e 74 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 | oint.for.completions,.defaults.t |
| 1880 | 6f 0a 5c 22 2f 76 31 62 65 74 61 2f 6d 6f 64 65 6c 73 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f | o.\"/v1beta/models\"...HEADER.(o |
| 18a0 | 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 |
| 18c0 | 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 |
| 18e0 | 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 |
| 1900 | 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:.(( |
| 1920 | 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 |
| 1940 | 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 |
| 1960 | 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 |
| 1980 | 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 |
| 19a0 | 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))... |
| 19c0 | 28 6c 65 74 20 28 28 62 61 63 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 67 65 6d 69 | (let.((backend.(gptel--make-gemi |
| 19e0 | 6e 69 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 | ni...................:curl-args. |
| 1a00 | 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 |
| 1a20 | 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 |
| 1a40 | 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 |
| 1a60 | 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 6d | ader...................:models.m |
| 1a80 | 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f | odels...................:protoco |
| 1aa0 | 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e | l.protocol...................:en |
| 1ac0 | 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | dpoint.endpoint................. |
| 1ae0 | 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..:stream.stream................ |
| 1b00 | 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 75 | ...:key.key...................:u |
| 1b20 | 72 6c 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rl.(lambda.()................... |
| 1b40 | 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 65 74 68 6f 64 20 28 69 66 20 28 61 6e 64 20 73 74 | .......(let.((method.(if.(and.st |
| 1b60 | 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ream............................ |
| 1b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 73 74 72 65 61 | .....................gptel-strea |
| 1ba0 | 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | m).............................. |
| 1bc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 74 72 65 61 6d 47 65 6e 65 72 61 74 65 43 6f 6e | .............."streamGenerateCon |
| 1be0 | 74 65 6e 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tent"........................... |
| 1c00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 65 6e 65 72 61 74 65 43 6f 6e 74 65 6e 74 22 | ..............."generateContent" |
| 1c20 | 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 28 | )))............................( |
| 1c40 | 66 6f 72 6d 61 74 20 22 25 73 3a 2f 2f 25 73 25 73 2f 25 73 3a 25 73 3f 6b 65 79 3d 25 73 22 0a | format."%s://%s%s/%s:%s?key=%s". |
| 1c60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 1c80 | 20 20 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...protocol..................... |
| 1ca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 68 6f 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ...............host............. |
| 1cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 70 6f 69 6e 74 0a | .......................endpoint. |
| 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 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 | ...gptel-model.................. |
| 1d20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 65 74 68 6f 64 0a 20 20 20 20 20 20 20 | ..................method........ |
| 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 28 67 70 74 | ............................(gpt |
| 1d60 | 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 29 29 29 29 29 29 29 0a 20 20 20 20 28 70 72 6f 67 | el--get-api-key))))))).....(prog |
| 1d80 | 31 20 62 61 63 6b 65 6e 64 0a 20 20 20 20 20 20 28 73 65 74 66 20 28 61 6c 69 73 74 2d 67 65 74 | 1.backend.......(setf.(alist-get |
| 1da0 | 20 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 | .name.gptel--known-backends..... |
| 1dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 | ...................nil.nil.#'equ |
| 1de0 | 61 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 62 61 63 6b 65 6e 64 29 29 29 29 0a 0a 28 70 72 | al).............backend))))..(pr |
| 1e00 | 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 67 65 6d 69 6e 69 29 0a 3b 3b 3b 20 67 70 74 65 6c 2d 67 | ovide.'gptel-gemini).;;;.gptel-g |
| 1e20 | 65 6d 69 6e 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 | emini.el.ends.here.............. |
| 1e40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 6f 70 65 6e 61 69 2e | gptel-20240404.813/gptel-openai. |
| 2020 | 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.............................. |
| 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 34 37 34 34 00 20 30 00 00 00 | 0023013.00000000000.014744..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 6b 61 67 69 2e 65 6c | gptel-20240404.813/gptel-kagi.el |
| 4a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 34 31 30 00 20 30 00 00 00 | 0016132.00000000000.014410..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 63 75 72 6c 2e 65 6c | gptel-20240404.813/gptel-curl.el |
| 6a20 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 34 35 35 00 20 30 00 00 00 | 0047067.00000000000.014455..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2e 65 6c 00 00 00 00 00 | gptel-20240404.813/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 34 35 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 35 31 30 00 20 30 00 00 00 | 0146452.00000000000.013510..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 20 28 65 78 70 65 72 69 6d 65 6e 74 61 | o-16k\".-.\"gpt-4\".(experimenta |
| f6a0 | 6c 29 0a 2d 20 5c 22 67 70 74 2d 34 2d 31 31 30 36 2d 70 72 65 76 69 65 77 5c 22 20 28 65 78 70 | l).-.\"gpt-4-1106-preview\".(exp |
| f6c0 | 65 72 69 6d 65 6e 74 61 6c 29 0a 20 0a 54 6f 20 73 65 74 20 74 68 65 20 6d 6f 64 65 6c 20 66 6f | erimental)...To.set.the.model.fo |
| f6e0 | 72 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 | r.a.chat.session.interactively.c |
| f700 | 61 6c 6c 0a 60 67 70 74 65 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 | all.`gptel-send'.with.a.prefix.a |
| f720 | 72 67 75 6d 65 6e 74 2e 22 0a 20 20 3a 73 61 66 65 20 23 27 61 6c 77 61 79 73 0a 20 20 3a 67 72 | rgument."...:safe.#'always...:gr |
| f740 | 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..... |
| f760 | 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 53 70 65 63 69 66 79 20 6d 6f 64 65 | ......(string.:tag."Specify.mode |
| f780 | 6c 20 6e 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 | l.name")...........(const.:tag." |
| f7a0 | 47 50 54 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 | GPT.3.5.turbo"."gpt-3.5-turbo"). |
| f7c0 | 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 33 2e 35 20 74 | ..........(const.:tag."GPT.3.5.t |
| f7e0 | 75 72 62 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 | urbo.16k"."gpt-3.5-turbo-16k").. |
| f800 | 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 22 20 22 67 70 | .........(const.:tag."GPT.4"."gp |
| f820 | 74 2d 34 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 | t-4")...........(const.:tag."GPT |
| f840 | 20 34 20 74 75 72 62 6f 20 28 70 72 65 76 69 65 77 29 22 20 22 67 70 74 2d 34 2d 74 75 72 62 6f | .4.turbo.(preview)"."gpt-4-turbo |
| f860 | 2d 70 72 65 76 69 65 77 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 | -preview")...........(const.:tag |
| f880 | 20 22 47 50 54 20 34 20 33 32 6b 22 20 22 67 70 74 2d 34 2d 33 32 6b 22 29 0a 20 20 20 20 20 20 | ."GPT.4.32k"."gpt-4-32k")....... |
| f8a0 | 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 47 50 54 20 34 20 31 31 30 36 20 28 70 72 65 | ....(const.:tag."GPT.4.1106.(pre |
| f8c0 | 76 69 65 77 29 22 20 22 67 70 74 2d 34 2d 31 31 30 36 2d 70 72 65 76 69 65 77 22 29 29 29 0a 0a | view)"."gpt-4-1106-preview"))).. |
| f8e0 | 28 64 65 66 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 31 2e 30 | (defcustom.gptel-temperature.1.0 |
| f900 | 0a 20 20 22 5c 22 54 65 6d 70 65 72 61 74 75 72 65 5c 22 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 | ..."\"Temperature\".of.the.LLM.r |
| f920 | 65 73 70 6f 6e 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 61 20 6e 75 6d 62 65 72 20 62 65 74 77 65 | esponse...This.is.a.number.betwe |
| f940 | 65 6e 20 30 2e 30 20 61 6e 64 20 32 2e 30 20 74 68 61 74 20 63 6f 6e 74 72 6f 6c 73 20 74 68 65 | en.0.0.and.2.0.that.controls.the |
| f960 | 20 72 61 6e 64 6f 6d 6e 65 73 73 0a 6f 66 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2c 20 77 69 74 | .randomness.of.the.response,.wit |
| f980 | 68 20 32 2e 30 20 62 65 69 6e 67 20 74 68 65 20 6d 6f 73 74 20 72 61 6e 64 6f 6d 2e 0a 0a 54 6f | h.2.0.being.the.most.random...To |
| f9a0 | 20 73 65 74 20 74 68 65 20 74 65 6d 70 65 72 61 74 75 72 65 20 66 6f 72 20 61 20 63 68 61 74 20 | .set.the.temperature.for.a.chat. |
| f9c0 | 73 65 73 73 69 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 63 61 6c 6c 0a 60 67 70 74 65 | session.interactively.call.`gpte |
| f9e0 | 6c 2d 73 65 6e 64 27 20 77 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2e 22 | l-send'.with.a.prefix.argument." |
| fa00 | 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 20 27 67 70 74 65 | ...:safe.#'always...:group.'gpte |
| fa20 | 6c 0a 20 20 3a 74 79 70 65 20 27 6e 75 6d 62 65 72 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 | l...:type.'number)..(defvar.gpte |
| fa40 | 6c 2d 2d 6b 6e 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 20 6e 69 6c 0a 20 20 22 41 6c 69 73 74 20 6f | l--known-backends.nil..."Alist.o |
| fa60 | 66 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 73 20 6b 6e 6f 77 6e 20 74 6f 20 67 70 74 65 6c 2e 0a 0a | f.LLM.backends.known.to.gptel... |
| fa80 | 54 68 69 73 20 69 73 20 61 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 75 73 65 72 2d 70 72 | This.is.an.alist.mapping.user-pr |
| faa0 | 6f 76 69 64 65 64 20 6e 61 6d 65 73 20 74 6f 20 62 61 63 6b 65 6e 64 20 73 74 72 75 63 74 73 2c | ovided.names.to.backend.structs, |
| fac0 | 0a 73 65 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 2e 0a 0a 59 6f 75 20 63 61 6e 20 68 | .see.`gptel-backend'...You.can.h |
| fae0 | 61 76 65 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e 65 20 62 61 63 6b 65 6e 64 20 70 6f 69 6e 74 69 | ave.more.than.one.backend.pointi |
| fb00 | 6e 67 20 74 6f 20 74 68 65 20 73 61 6d 65 20 72 65 73 6f 75 72 63 65 0a 77 69 74 68 20 64 69 66 | ng.to.the.same.resource.with.dif |
| fb20 | 66 65 72 69 6e 67 20 73 65 74 74 69 6e 67 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 | fering.settings.")..(defvar.gpte |
| fb40 | 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 0a 20 | l--openai...(gptel-make-openai.. |
| fb60 | 20 20 22 43 68 61 74 47 50 54 22 0a 20 20 20 3a 6b 65 79 20 27 67 70 74 65 6c 2d 61 70 69 2d 6b | .."ChatGPT"....:key.'gptel-api-k |
| fb80 | 65 79 0a 20 20 20 3a 73 74 72 65 61 6d 20 74 0a 20 20 20 3a 6d 6f 64 65 6c 73 20 27 28 22 67 70 | ey....:stream.t....:models.'("gp |
| fba0 | 74 2d 33 2e 35 2d 74 75 72 62 6f 22 20 22 67 70 74 2d 33 2e 35 2d 74 75 72 62 6f 2d 31 36 6b 22 | t-3.5-turbo"."gpt-3.5-turbo-16k" |
| fbc0 | 20 22 67 70 74 2d 34 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 | ."gpt-4".............."gpt-4-tur |
| fbe0 | 62 6f 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 | bo-preview"."gpt-4-32k"."gpt-4-1 |
| fc00 | 31 30 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 | 106-preview".............."gpt-4 |
| fc20 | 2d 30 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 | -0125-preview")))..(defcustom.gp |
| fc40 | 74 65 6c 2d 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 2d 6f 70 65 6e 61 69 0a 20 20 22 4c 4c 4d | tel-backend.gptel--openai..."LLM |
| fc60 | 20 62 61 63 6b 65 6e 64 20 74 6f 20 75 73 65 2e 0a 0a 54 68 69 73 20 69 73 20 74 68 65 20 64 65 | .backend.to.use...This.is.the.de |
| fc80 | 66 61 75 6c 74 20 5c 22 62 61 63 6b 65 6e 64 5c 22 2c 20 61 6e 20 6f 62 6a 65 63 74 20 6f 66 20 | fault.\"backend\",.an.object.of. |
| fca0 | 74 79 70 65 0a 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 63 6f 6e 74 61 69 6e 69 6e 67 20 | type.`gptel-backend'.containing. |
| fcc0 | 63 6f 6e 6e 65 63 74 69 6f 6e 2c 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 6d | connection,.authentication.and.m |
| fce0 | 6f 64 65 6c 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 0a 0a 41 20 62 61 63 6b 65 6e 64 20 66 6f 72 | odel.information...A.backend.for |
| fd00 | 20 43 68 61 74 47 50 54 20 69 73 20 70 72 65 2d 64 65 66 69 6e 65 64 20 62 79 20 67 70 74 65 6c | .ChatGPT.is.pre-defined.by.gptel |
| fd20 | 2e 20 20 42 61 63 6b 65 6e 64 73 20 66 6f 72 0a 6f 74 68 65 72 20 4c 4c 4d 20 70 72 6f 76 69 64 | ...Backends.for.other.LLM.provid |
| fd40 | 65 72 73 20 28 6c 6f 63 61 6c 20 6f 72 20 72 65 6d 6f 74 65 29 20 6d 61 79 20 62 65 20 63 6f 6e | ers.(local.or.remote).may.be.con |
| fd60 | 73 74 72 75 63 74 65 64 20 75 73 69 6e 67 0a 6f 6e 65 20 6f 66 20 74 68 65 20 61 76 61 69 6c 61 | structed.using.one.of.the.availa |
| fd80 | 62 6c 65 20 62 61 63 6b 65 6e 64 20 63 72 65 61 74 69 6f 6e 20 66 75 6e 63 74 69 6f 6e 73 3a 0a | ble.backend.creation.functions:. |
| fda0 | 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 70 65 6e 61 69 27 0a 2d 20 60 67 70 74 65 6c 2d 6d | -.`gptel-make-openai'.-.`gptel-m |
| fdc0 | 61 6b 65 2d 61 7a 75 72 65 27 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 27 | ake-azure'.-.`gptel-make-ollama' |
| fde0 | 0a 2d 20 60 67 70 74 65 6c 2d 6d 61 6b 65 2d 67 70 74 34 61 6c 6c 27 0a 2d 20 60 67 70 74 65 6c | .-.`gptel-make-gpt4all'.-.`gptel |
| fe00 | 2d 6d 61 6b 65 2d 67 65 6d 69 6e 69 27 0a 53 65 65 20 74 68 65 69 72 20 64 6f 63 75 6d 65 6e 74 | -make-gemini'.See.their.document |
| fe20 | 61 74 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 6e 64 20 74 | ation.for.more.information.and.t |
| fe40 | 68 65 20 70 61 63 6b 61 67 65 0a 52 45 41 44 4d 45 20 66 6f 72 20 65 78 61 6d 70 6c 65 73 2e 22 | he.package.README.for.examples." |
| fe60 | 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 20 27 67 70 74 65 | ...:safe.#'always...:group.'gpte |
| fe80 | 6c 0a 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 | l...:type.`(choice...........(co |
| fea0 | 6e 73 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 | nst.:tag."ChatGPT".,gptel--opena |
| fec0 | 69 29 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 | i)...........(restricted-sexp.:m |
| fee0 | 61 74 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 | atch-alternatives.(gptel-backend |
| ff00 | 2d 70 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 | -p.'nil)............:tag."Other. |
| ff20 | 62 61 63 6b 65 6e 64 22 29 29 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 65 78 70 65 72 | backend")))..(defvar.gptel-exper |
| ff40 | 74 2d 63 6f 6d 6d 61 6e 64 73 20 6e 69 6c 0a 20 20 22 57 68 65 74 68 65 72 20 65 78 70 65 72 69 | t-commands.nil..."Whether.experi |
| ff60 | 6d 65 6e 74 61 6c 20 67 70 74 65 6c 20 6f 70 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 62 65 20 65 | mental.gptel.options.should.be.e |
| ff80 | 6e 61 62 6c 65 64 2e 0a 0a 54 68 69 73 20 6f 70 65 6e 73 20 75 70 20 61 64 76 61 6e 63 65 64 20 | nabled...This.opens.up.advanced. |
| ffa0 | 6f 70 74 69 6f 6e 73 20 69 6e 20 60 67 70 74 65 6c 2d 6d 65 6e 75 27 2e 22 29 0a 0a 28 64 65 66 | options.in.`gptel-menu'.")..(def |
| ffc0 | 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 6e 69 6c 29 0a 28 70 75 | var-local.gptel--bounds.nil).(pu |
| ffe0 | 74 20 27 67 70 74 65 6c 2d 2d 62 6f 75 6e 64 73 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 | t.'gptel--bounds.'safe-local-var |
| 10000 | 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 76 61 72 20 67 70 74 65 6c 2d 2d | iable.#'always)..(defvar.gptel-- |
| 10020 | 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 6e 69 6c 29 0a 28 70 75 74 20 27 | num-messages-to-send.nil).(put.' |
| 10040 | 67 70 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 20 27 73 61 66 | gptel--num-messages-to-send.'saf |
| 10060 | 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 6c 77 61 79 73 29 0a 0a 28 64 65 66 | e-local-variable.#'always)..(def |
| 10080 | 63 75 73 74 6f 6d 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 6e 69 6c 0a 20 20 22 4c 6f | custom.gptel-log-level.nil..."Lo |
| 100a0 | 67 67 69 6e 67 20 6c 65 76 65 6c 20 66 6f 72 20 67 70 74 65 6c 2e 0a 0a 54 68 69 73 20 69 73 20 | gging.level.for.gptel...This.is. |
| 100c0 | 6f 6e 65 20 6f 66 20 6e 69 6c 20 6f 72 20 74 68 65 20 73 79 6d 62 6f 6c 73 20 69 6e 66 6f 20 61 | one.of.nil.or.the.symbols.info.a |
| 100e0 | 6e 64 20 64 65 62 75 67 3a 0a 0a 6e 69 6c 3a 20 44 6f 6e 27 74 20 6c 6f 67 20 72 65 73 70 6f 6e | nd.debug:..nil:.Don't.log.respon |
| 10100 | 73 65 73 0a 69 6e 66 6f 3a 20 4c 6f 67 20 72 65 71 75 65 73 74 20 61 6e 64 20 72 65 73 70 6f 6e | ses.info:.Log.request.and.respon |
| 10120 | 73 65 20 62 6f 64 69 65 73 0a 64 65 62 75 67 3a 20 4c 6f 67 20 72 65 71 75 65 73 74 2f 72 65 73 | se.bodies.debug:.Log.request/res |
| 10140 | 70 6f 6e 73 65 20 62 6f 64 69 65 73 2c 20 68 65 61 64 65 72 73 20 61 6e 64 20 61 6c 6c 20 6f 74 | ponse.bodies,.headers.and.all.ot |
| 10160 | 68 65 72 0a 20 20 20 20 20 20 20 63 6f 6e 6e 65 63 74 69 6f 6e 20 73 65 74 74 69 6e 67 73 2e 0a | her........connection.settings.. |
| 10180 | 0a 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 73 20 6c 6f | .When.non-nil,.information.is.lo |
| 101a0 | 67 67 65 64 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 27 | gged.to.`gptel--log-buffer-name' |
| 101c0 | 2c 0a 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 67 70 74 65 6c 0a 20 20 | ,.which.see."...:group.'gptel... |
| 101e0 | 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 | :type.'(choice...........(const. |
| 10200 | 3a 74 61 67 20 22 4e 6f 20 6c 6f 67 67 69 6e 67 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 | :tag."No.logging".nil).......... |
| 10220 | 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 4c 69 6d 69 74 65 64 22 20 69 6e 66 6f 29 0a 20 20 20 | .(const.:tag."Limited".info).... |
| 10240 | 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 46 75 6c 6c 22 20 64 65 62 75 67 29 | .......(const.:tag."Full".debug) |
| 10260 | 29 29 0a 28 6d 61 6b 65 2d 6f 62 73 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 0a 20 27 67 70 74 | )).(make-obsolete-variable..'gpt |
| 10280 | 65 6c 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 | el--debug.'gptel-log-level."0.6. |
| 102a0 | 35 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 | 5")..(defvar-local.gptel--old-he |
| 102c0 | 61 64 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 | ader-line.nil)....;;.Utility.fun |
| 102e0 | 63 74 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 2d 66 72 6f | ctions..(defun.gptel-api-key-fro |
| 10300 | 6d 2d 61 75 74 68 2d 73 6f 75 72 63 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 68 6f 73 74 20 75 73 | m-auth-source.(&optional.host.us |
| 10320 | 65 72 29 0a 20 20 22 4c 6f 6f 6b 75 70 20 61 70 69 20 6b 65 79 20 69 6e 20 74 68 65 20 61 75 74 | er)..."Lookup.api.key.in.the.aut |
| 10340 | 68 20 73 6f 75 72 63 65 2e 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 74 68 65 20 4c 4c 4d 20 68 6f | h.source..By.default,.the.LLM.ho |
| 10360 | 73 74 20 66 6f 72 20 74 68 65 20 61 63 74 69 76 65 20 62 61 63 6b 65 6e 64 20 69 73 20 75 73 65 | st.for.the.active.backend.is.use |
| 10380 | 64 20 61 73 20 48 4f 53 54 2c 0a 61 6e 64 20 5c 22 61 70 69 6b 65 79 5c 22 20 61 73 20 55 53 45 | d.as.HOST,.and.\"apikey\".as.USE |
| 103a0 | 52 2e 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 | R."...(if-let.((secret.......... |
| 103c0 | 20 20 20 28 70 6c 69 73 74 2d 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 | ...(plist-get..............(car. |
| 103e0 | 28 61 75 74 68 2d 73 6f 75 72 63 65 2d 73 65 61 72 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 | (auth-source-search............. |
| 10400 | 20 20 20 20 20 20 20 3a 68 6f 73 74 20 28 6f 72 20 68 6f 73 74 20 28 67 70 74 65 6c 2d 62 61 63 | .......:host.(or.host.(gptel-bac |
| 10420 | 6b 65 6e 64 2d 68 6f 73 74 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 | kend-host.gptel-backend))....... |
| 10440 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 75 73 65 72 20 28 6f 72 20 75 73 65 72 20 22 61 70 69 | .............:user.(or.user."api |
| 10460 | 6b 65 79 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 72 65 71 75 69 72 | key")....................:requir |
| 10480 | 65 20 27 28 3a 73 65 63 72 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.'(:secret))).................. |
| 104a0 | 20 20 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 | .............:secret))).......(i |
| 104c0 | 66 20 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 | f.(functionp.secret)...........( |
| 104e0 | 65 6e 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 | encode-coding-string.(funcall.se |
| 10500 | 63 72 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 | cret).'utf-8).........secret)... |
| 10520 | 20 20 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 | ..(user-error."No.`gptel-api-key |
| 10540 | 27 20 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 | '.found.in.the.auth.source"))).. |
| 10560 | 3b 3b 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 | ;;.FIXME.Should.we.utf-8.encode. |
| 10580 | 74 68 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 | the.api-key.here?.(defun.gptel-- |
| 105a0 | 67 65 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 | get-api-key.(&optional.key)..."G |
| 105c0 | 65 74 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 | et.api.key.from.KEY,.or.from.`gp |
| 105e0 | 74 65 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 | tel-api-key'."...(when-let*.((ke |
| 10600 | 79 2d 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 | y-sym.(or.key.(gptel-backend-key |
| 10620 | 20 67 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 | .gptel-backend)))).....(cl-typec |
| 10640 | 61 73 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 | ase.key-sym.......(function.(fun |
| 10660 | 63 61 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 | call.key-sym)).......(string.key |
| 10680 | 2d 73 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 | -sym).......(symbol.(if-let.((va |
| 106a0 | 6c 20 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 | l.(symbol-value.key-sym)))...... |
| 106c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 61 70 69 2d 6b 65 79 | .............(gptel--get-api-key |
| 106e0 | 0a 20 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 | ....................(symbol-valu |
| 10700 | 65 20 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 | e.key-sym)).................(err |
| 10720 | 6f 72 20 22 60 67 70 74 65 6c 2d 61 70 69 2d 6b 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 | or."`gptel-api-key'.is.not.valid |
| 10740 | 22 29 29 29 0a 20 20 20 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 60 67 70 74 65 6c 2d 61 70 69 | "))).......(t.(error."`gptel-api |
| 10760 | 2d 6b 65 79 27 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 22 29 29 29 29 29 0a 0a 28 64 65 66 73 75 | -key'.is.not.valid")))))..(defsu |
| 10780 | 62 73 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 | bst.gptel--numberize.(val)..."En |
| 107a0 | 73 75 72 65 20 56 41 4c 20 69 73 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 69 66 20 28 73 74 | sure.VAL.is.a.number."...(if.(st |
| 107c0 | 72 69 6e 67 70 20 76 61 6c 29 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 76 61 6c | ringp.val).(string-to-number.val |
| 107e0 | 29 20 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 | ).val))..(defun.gptel-auto-scrol |
| 10800 | 6c 20 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 | l.()..."Scroll.window.if.LLM.res |
| 10820 | 70 6f 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 | ponse.continues.below.viewport.. |
| 10840 | 0a 4e 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 | .Note:.This.will.move.the.cursor |
| 10860 | 2e 22 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 | ."...(when-let*.((win.(get-buffe |
| 10880 | 72 2d 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 | r-window.(current-buffer).'visib |
| 108a0 | 6c 65 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 | le))...............((not.(pos-vi |
| 108c0 | 73 69 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 | sible-in-window-p.(point).win))) |
| 108e0 | 0a 20 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 | ...............(scroll-error-top |
| 10900 | 2d 62 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 | -bottom.t)).....(condition-case. |
| 10920 | 6e 69 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 | nil.........(with-selected-windo |
| 10940 | 77 20 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 | w.win...........(scroll-up-comma |
| 10960 | 6e 64 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 | nd)).......(error.nil))))..(defu |
| 10980 | 6e 20 67 70 74 65 6c 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 | n.gptel-beginning-of-response.(& |
| 109a0 | 6f 70 74 69 6f 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 | optional._._.arg)..."Move.point. |
| 109c0 | 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 | to.the.beginning.of.the.LLM.resp |
| 109e0 | 6f 6e 73 65 20 41 52 47 20 74 69 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 | onse.ARG.times."...(interactive. |
| 10a00 | 22 70 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 | "p")...;;.FIXME:.Only.works.for. |
| 10a20 | 61 72 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 | arg.==.1...(gptel-end-of-respons |
| 10a40 | 65 20 6e 69 6c 20 6e 69 6c 20 28 2d 20 28 6f 72 20 61 72 67 20 31 29 29 29 29 0a 0a 28 64 65 66 | e.nil.nil.(-.(or.arg.1))))..(def |
| 10a60 | 75 6e 20 67 70 74 65 6c 2d 65 6e 64 2d 6f 66 2d 72 65 73 70 6f 6e 73 65 20 28 26 6f 70 74 69 6f | un.gptel-end-of-response.(&optio |
| 10a80 | 6e 61 6c 20 5f 20 5f 20 61 72 67 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 | nal._._.arg)..."Move.point.to.th |
| 10aa0 | 65 20 65 6e 64 20 6f 66 20 74 68 65 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 20 41 52 47 20 74 69 | e.end.of.the.LLM.response.ARG.ti |
| 10ac0 | 6d 65 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 6e 69 6c 20 6e | mes."...(interactive.(list.nil.n |
| 10ae0 | 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 2d | il......................(prefix- |
| 10b00 | 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 | numeric-value.current-prefix-arg |
| 10b20 | 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 61 72 67 20 28 73 65 74 71 20 61 72 67 20 31 29 29 0a | )))...(unless.arg.(setq.arg.1)). |
| 10b40 | 20 20 28 6c 65 74 20 28 28 73 65 61 72 63 68 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 | ..(let.((search.(if.(>.arg.0)... |
| 10b60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 74 65 78 74 2d 70 72 6f 70 65 72 74 | ..................#'text-propert |
| 10b80 | 79 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | y-search-forward................ |
| 10ba0 | 20 20 20 23 27 74 65 78 74 2d 70 72 6f 70 65 72 74 79 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 | ...#'text-property-search-backwa |
| 10bc0 | 72 64 29 29 29 0a 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 5f 20 28 61 62 73 20 61 72 67 29 29 | rd))).....(dotimes.(_.(abs.arg)) |
| 10be0 | 0a 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 73 65 61 72 63 68 20 27 67 70 74 65 6c 20 27 72 | .......(funcall.search.'gptel.'r |
| 10c00 | 65 73 70 6f 6e 73 65 20 74 29 0a 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 | esponse.t).......(if.(>.arg.0).. |
| 10c20 | 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 63 6f 6e 63 | .........(when.(looking-at.(conc |
| 10c40 | 61 74 20 22 5c 6e 5c 5c 7b 31 2c 32 5c 5c 7d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | at."\n\\{1,2\\}"................ |
| 10c60 | 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 6f | .....................(regexp-quo |
| 10c80 | 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | te.............................. |
| 10ca0 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 | ........(gptel-prompt-prefix-str |
| 10cc0 | 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ing))........................... |
| 10ce0 | 20 20 20 20 20 20 20 20 20 20 22 3f 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 | .........."?")).............(got |
| 10d00 | 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 | o-char.(match-end.0))).........( |
| 10d20 | 77 68 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 | when.(looking-back.(concat.(rege |
| 10d40 | 78 70 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 | xp-quote........................ |
| 10d60 | 20 20 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 | ..............(gptel-response-pr |
| 10d80 | 65 66 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 | efix-string))................... |
| 10da0 | 20 20 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 | .................."?").......... |
| 10dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a | ...................(point-min)). |
| 10de0 | 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 | ..........(goto-char.(match-begi |
| 10e00 | 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 67 70 74 65 6c 2d | nning.0)))))))..(defmacro.gptel- |
| 10e20 | 2d 61 74 2d 77 6f 72 64 2d 65 6e 64 20 28 26 72 65 73 74 20 62 6f 64 79 29 0a 20 20 22 45 78 65 | -at-word-end.(&rest.body)..."Exe |
| 10e40 | 63 75 74 65 20 42 4f 44 59 20 61 74 20 65 6e 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 | cute.BODY.at.end.of.the.current. |
| 10e60 | 77 6f 72 64 20 6f 72 20 70 75 6e 63 74 75 61 74 69 6f 6e 2e 22 0a 20 20 60 28 73 61 76 65 2d 65 | word.or.punctuation."...`(save-e |
| 10e80 | 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 | xcursion......(skip-syntax-forwa |
| 10ea0 | 72 64 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 | rd."w.")......,@body))..(defun.g |
| 10ec0 | 70 74 65 6c 2d 70 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 28 29 0a 20 20 28 | ptel-prompt-prefix-string.()...( |
| 10ee0 | 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 2d 70 | or.(alist-get.major-mode.gptel-p |
| 10f00 | 72 6f 6d 70 74 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a 28 64 65 66 75 6e | rompt-prefix-alist).""))..(defun |
| 10f20 | 20 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 73 74 72 69 6e 67 20 28 29 | .gptel-response-prefix-string.() |
| 10f40 | 0a 20 20 28 6f 72 20 28 61 6c 69 73 74 2d 67 65 74 20 6d 61 6a 6f 72 2d 6d 6f 64 65 20 67 70 74 | ...(or.(alist-get.major-mode.gpt |
| 10f60 | 65 6c 2d 72 65 73 70 6f 6e 73 65 2d 70 72 65 66 69 78 2d 61 6c 69 73 74 29 20 22 22 29 29 0a 0a | el-response-prefix-alist)."")).. |
| 10f80 | 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d | (defvar-local.gptel--backend-nam |
| 10fa0 | 65 20 6e 69 6c 0a 20 20 22 53 74 6f 72 65 20 74 6f 20 70 65 72 73 69 73 74 20 62 61 63 6b 65 6e | e.nil..."Store.to.persist.backen |
| 10fc0 | 64 20 6e 61 6d 65 20 61 63 72 6f 73 73 20 45 6d 61 63 73 20 73 65 73 73 69 6f 6e 73 2e 0a 0a 4e | d.name.across.Emacs.sessions...N |
| 10fe0 | 6f 74 65 3a 20 43 68 61 6e 67 69 6e 67 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 64 6f 65 73 | ote:.Changing.this.variable.does |
| 11000 | 20 6e 6f 74 20 61 66 66 65 63 74 20 67 70 74 65 6c 5c 5c 3d 27 73 20 62 65 68 61 76 69 6f 72 0a | .not.affect.gptel\\='s.behavior. |
| 11020 | 69 6e 20 61 6e 79 20 77 61 79 2e 22 29 0a 28 70 75 74 20 27 67 70 74 65 6c 2d 2d 62 61 63 6b 65 | in.any.way.").(put.'gptel--backe |
| 11040 | 6e 64 2d 6e 61 6d 65 20 27 73 61 66 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 23 27 61 | nd-name.'safe-local-variable.#'a |
| 11060 | 6c 77 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 | lways)..(defun.gptel--get-buffer |
| 11080 | 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 65 6c 20 72 | -bounds.()..."Return.the.gptel.r |
| 110a0 | 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 | esponse.boundaries.in.the.buffer |
| 110c0 | 20 61 73 20 61 6e 20 61 6c 69 73 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e | .as.an.alist."...(save-excursion |
| 110e0 | 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 77 69 | .....(save-restriction.......(wi |
| 11100 | 64 65 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 | den).......(goto-char.(point-max |
| 11120 | 29 29 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 | )).......(let.((prop).(bounds)). |
| 11140 | 20 20 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 | ........(while.(setq.prop.(text- |
| 11160 | 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........ |
| 11180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 | ....................'gptel.'resp |
| 111a0 | 6f 6e 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 | onse.t))...........(push.(cons.( |
| 111c0 | 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)...... |
| 111e0 | 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 6e 64 | .................(prop-match-end |
| 11200 | 20 70 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 | .prop)).................bounds)) |
| 11220 | 0a 20 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 | .........bounds))))..(defun.gpte |
| 11240 | 6c 2d 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 | l--get-bounds.()..."Return.the.g |
| 11260 | 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 62 6f 75 6e 64 61 72 69 65 73 20 61 72 6f 75 6e 64 20 | ptel.response.boundaries.around. |
| 11280 | 70 6f 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 | point."...(let.(prop).....(save- |
| 112a0 | 65 78 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 | excursion.......(when.(text-prop |
| 112c0 | 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 20 | erty-search-backward............ |
| 112e0 | 20 20 27 67 70 74 65 6c 20 27 72 65 73 70 6f 6e 73 65 20 74 29 0a 20 20 20 20 20 20 20 20 28 77 | ..'gptel.'response.t).........(w |
| 11300 | 68 65 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 | hen.(setq.prop.(text-property-se |
| 11320 | 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | arch-forward.................... |
| 11340 | 20 20 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 | .......'gptel.'response.t))..... |
| 11360 | 20 20 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 | ......(cons.(prop-match-beginnin |
| 11380 | 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 | g.prop).......................(p |
| 113a0 | 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 | rop-match-end.prop)))))))..(defu |
| 113c0 | 6e 20 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 20 28 26 6f 70 74 69 6f 6e 61 | n.gptel--in-response-p.(&optiona |
| 113e0 | 6c 20 70 74 29 0a 20 20 22 43 68 65 63 6b 20 69 66 20 70 6f 73 69 74 69 6f 6e 20 50 54 20 69 73 | l.pt)..."Check.if.position.PT.is |
| 11400 | 20 69 6e 73 69 64 65 20 61 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 2e 22 0a 20 20 28 67 65 | .inside.a.gptel.response."...(ge |
| 11420 | 74 2d 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 | t-char-property.(or.pt.(point)). |
| 11440 | 27 67 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 | 'gptel))..(defun.gptel--at-respo |
| 11460 | 6e 73 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 | nse-history-p.(&optional.pt)..." |
| 11480 | 43 68 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 | Check.if.gptel.response.at.posit |
| 114a0 | 69 6f 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 | ion.PT.has.variants."...(get-cha |
| 114c0 | 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 70 74 65 | r-property.(or.pt.(point)).'gpte |
| 114e0 | 6c 2d 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 | l-history))....;;.Logging..(defc |
| 11500 | 6f 6e 73 74 20 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 67 70 | onst.gptel--log-buffer-name."*gp |
| 11520 | 74 65 6c 2d 6c 6f 67 2a 22 0a 20 20 22 4c 6f 67 20 62 75 66 66 65 72 20 66 6f 72 20 67 70 74 65 | tel-log*"..."Log.buffer.for.gpte |
| 11540 | 6c 2e 22 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 65 | l.")..(declare-function.json-pre |
| 11560 | 74 74 79 2d 70 72 69 6e 74 20 22 6a 73 6f 6e 22 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d | tty-print."json")..(defun.gptel- |
| 11580 | 2d 6c 6f 67 20 28 64 61 74 61 20 26 6f 70 74 69 6f 6e 61 6c 20 74 79 70 65 20 6e 6f 2d 6a 73 6f | -log.(data.&optional.type.no-jso |
| 115a0 | 6e 29 0a 20 20 22 4c 6f 67 20 44 41 54 41 20 74 6f 20 60 67 70 74 65 6c 2d 2d 6c 6f 67 2d 62 75 | n)..."Log.DATA.to.`gptel--log-bu |
| 115c0 | 66 66 65 72 2d 6e 61 6d 65 27 2e 0a 0a 54 59 50 45 20 69 73 20 61 20 6c 61 62 65 6c 20 66 6f 72 | ffer-name'...TYPE.is.a.label.for |
| 115e0 | 20 64 61 74 61 20 62 65 69 6e 67 20 6c 6f 67 67 65 64 2e 20 20 44 41 54 41 20 69 73 20 61 73 73 | .data.being.logged...DATA.is.ass |
| 11600 | 75 6d 65 64 20 74 6f 20 62 65 0a 56 61 6c 69 64 20 4a 53 4f 4e 20 75 6e 6c 65 73 73 20 4e 4f 2d | umed.to.be.Valid.JSON.unless.NO- |
| 11620 | 4a 53 4f 4e 20 69 73 20 74 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 | JSON.is.t."...(with-current-buff |
| 11640 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 67 70 74 65 6c 2d 2d 6c 6f 67 | er.(get-buffer-create.gptel--log |
| 11660 | 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 0a 20 20 20 20 28 6c 65 74 20 28 28 70 20 28 67 6f 74 6f | -buffer-name).....(let.((p.(goto |
| 11680 | 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 | -char.(point-max)))).......(unle |
| 116a0 | 73 73 20 28 62 6f 62 70 29 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 | ss.(bobp).(insert."\n")).......( |
| 116c0 | 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 7b 5c 22 67 70 74 65 6c 5c 22 3a 20 5c 22 25 73 | insert.(format."{\"gptel\":.\"%s |
| 116e0 | 5c 22 2c 20 22 20 28 6f 72 20 74 79 70 65 20 22 6e 6f 6e 65 22 29 29 0a 20 20 20 20 20 20 20 20 | \",.".(or.type."none"))......... |
| 11700 | 20 20 20 20 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 20 22 5c 22 74 69 6d | ......(format-time-string."\"tim |
| 11720 | 65 73 74 61 6d 70 5c 22 3a 20 5c 22 25 59 2d 25 6d 2d 25 64 20 25 48 3a 25 4d 3a 25 53 5c 22 7d | estamp\":.\"%Y-%m-%d.%H:%M:%S\"} |
| 11740 | 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 28 | \n")...............data).......( |
| 11760 | 75 6e 6c 65 73 73 20 6e 6f 2d 6a 73 6f 6e 20 28 69 67 6e 6f 72 65 2d 65 72 72 6f 72 73 20 28 6a | unless.no-json.(ignore-errors.(j |
| 11780 | 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 20 70 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 | son-pretty-print.p.(point))))))) |
| 117a0 | 0a 0a 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 | ....;;.Saving.and.restoring.stat |
| 117c0 | 65 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 20 28 | e..(defun.gptel--restore-state.( |
| 117e0 | 29 0a 20 20 22 52 65 73 74 6f 72 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 77 68 65 6e 20 74 75 | )..."Restore.gptel.state.when.tu |
| 11800 | 72 6e 69 6e 67 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 2e 22 0a 20 20 28 77 68 65 6e 20 | rning.on.`gptel-mode'."...(when. |
| 11820 | 28 62 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 | (buffer-file-name).....(pcase.ma |
| 11840 | 6a 6f 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 | jor-mode.......('org-mode....... |
| 11860 | 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a 20 20 20 20 20 20 20 28 67 70 | .(require.'gptel-org)........(gp |
| 11880 | 74 65 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 | tel-org--restore-state)).......( |
| 118a0 | 5f 20 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 | _.(when.gptel--bounds........... |
| 118c0 | 20 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 | .(mapc.(pcase-lambda.(`(,beg..., |
| 118e0 | 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | end))..........................( |
| 11900 | 70 75 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 | put-text-property.beg.end.'gptel |
| 11920 | 20 27 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 | .'response))..................gp |
| 11940 | 74 65 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 | tel--bounds)............(message |
| 11960 | 20 22 67 70 74 65 6c 20 63 68 61 74 20 72 65 73 74 6f 72 65 64 2e 22 29 29 0a 20 20 20 20 20 20 | ."gptel.chat.restored."))....... |
| 11980 | 20 20 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 | ...(when.gptel--backend-name.... |
| 119a0 | 20 20 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 | ........(if-let.((backend.(alist |
| 119c0 | 2d 67 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 | -get............................ |
| 119e0 | 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 2d 6b 6e | ...gptel--backend-name.gptel--kn |
| 11a00 | 6f 77 6e 2d 62 61 63 6b 65 6e 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | own-backends.................... |
| 11a20 | 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 23 27 65 71 75 61 6c 29 29 29 0a 20 20 | ...........nil.nil.#'equal)))... |
| 11a40 | 20 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 | .............(setq-local.gptel-b |
| 11a60 | 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 28 6d 65 | ackend.backend)..............(me |
| 11a80 | 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 69 74 75 74 65 | ssage................(substitute |
| 11aa0 | 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 | -command-keys.................(c |
| 11ac0 | 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f | oncat.................."Could.no |
| 11ae0 | 74 20 61 63 74 69 76 61 74 65 20 67 70 74 65 6c 20 62 61 63 6b 65 6e 64 20 5c 22 25 73 5c 22 21 | t.activate.gptel.backend.\"%s\"! |
| 11b00 | 20 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 53 77 69 74 63 68 20 62 61 63 | ..".................."Switch.bac |
| 11b20 | 6b 65 6e 64 73 20 77 69 74 68 20 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 | kends.with.\\[universal-argument |
| 11b40 | 5d 20 5c 5c 5b 67 70 74 65 6c 2d 73 65 6e 64 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ].\\[gptel-send]"............... |
| 11b60 | 20 20 20 22 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 67 70 74 65 6c 2e 22 29 29 0a 20 20 20 20 | ...".before.using.gptel."))..... |
| 11b80 | 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 29 29 | ...........gptel--backend-name)) |
| 11ba0 | 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 | )))))..(defun.gptel--save-state. |
| 11bc0 | 28 29 0a 20 20 22 57 72 69 74 65 20 74 68 65 20 67 70 74 65 6c 20 73 74 61 74 65 20 74 6f 20 74 | ()..."Write.the.gptel.state.to.t |
| 11be0 | 68 65 20 62 75 66 66 65 72 2e 0a 0a 54 68 69 73 20 73 61 76 65 73 20 63 68 61 74 20 6d 65 74 61 | he.buffer...This.saves.chat.meta |
| 11c00 | 64 61 74 61 20 77 68 65 6e 20 77 72 69 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 | data.when.writing.the.buffer.to. |
| 11c20 | 64 69 73 6b 2e 20 20 54 6f 0a 72 65 73 74 6f 72 65 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e | disk...To.restore.a.chat.session |
| 11c40 | 2c 20 74 75 72 6e 20 6f 6e 20 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 61 66 74 65 72 20 6f 70 65 | ,.turn.on.`gptel-mode'.after.ope |
| 11c60 | 6e 69 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 | ning.the.file."...(pcase.major-m |
| 11c80 | 6f 64 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 | ode.....('org-mode......(require |
| 11ca0 | 20 27 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 | .'gptel-org)......(gptel-org--sa |
| 11cc0 | 76 65 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 | ve-state)).....(_.(let.((print-e |
| 11ce0 | 73 63 61 70 65 2d 6e 65 77 6c 69 6e 65 73 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 61 76 | scape-newlines.t))..........(sav |
| 11d00 | 65 2d 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 | e-excursion............(save-res |
| 11d20 | 74 72 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 | triction..............(add-file- |
| 11d40 | 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 67 70 74 65 | local-variable.'gptel-model.gpte |
| 11d60 | 6c 2d 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 | l-model)..............(add-file- |
| 11d80 | 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 61 63 6b 65 6e 64 2d 6e | local-variable.'gptel--backend-n |
| 11da0 | 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ame............................. |
| 11dc0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 | ..........(gptel-backend-name.gp |
| 11de0 | 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 28 75 6e 6c 65 | tel-backend))..............(unle |
| 11e00 | 73 73 20 28 65 71 75 61 6c 20 28 64 65 66 61 75 6c 74 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d | ss.(equal.(default-value.'gptel- |
| 11e20 | 74 65 6d 70 65 72 61 74 75 72 65 29 20 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 29 0a | temperature).gptel-temperature). |
| 11e40 | 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 2d 76 | ...............(add-file-local-v |
| 11e60 | 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 74 65 6d 70 65 72 61 74 75 72 65 20 67 70 74 65 6c | ariable.'gptel-temperature.gptel |
| 11e80 | 2d 74 65 6d 70 65 72 61 74 75 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c | -temperature))..............(unl |
| 11ea0 | 65 73 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 | ess.(string=.(default-value.'gpt |
| 11ec0 | 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | el--system-message)............. |
| 11ee0 | 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 79 73 74 65 6d 2d | ..................gptel--system- |
| 11f00 | 6d 65 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 | message)................(add-fil |
| 11f20 | 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 73 79 73 74 65 6d 2d | e-local-variable.'gptel--system- |
| 11f40 | 6d 65 73 73 61 67 65 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 29 29 0a | message.gptel--system-message)). |
| 11f60 | 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 61 78 2d 74 6f 6b | .............(when.gptel-max-tok |
| 11f80 | 65 6e 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 | ens................(add-file-loc |
| 11fa0 | 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 20 67 70 | al-variable.'gptel-max-tokens.gp |
| 11fc0 | 74 65 6c 2d 6d 61 78 2d 74 6f 6b 65 6e 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 | tel-max-tokens))..............(a |
| 11fe0 | 64 64 2d 66 69 6c 65 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 20 27 67 70 74 65 6c 2d 2d 62 | dd-file-local-variable.'gptel--b |
| 12000 | 6f 75 6e 64 73 20 28 67 70 74 65 6c 2d 2d 67 65 74 2d 62 75 66 66 65 72 2d 62 6f 75 6e 64 73 29 | ounds.(gptel--get-buffer-bounds) |
| 12020 | 29 29 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 | )))))))....;;.Minor.mode.and.UI. |
| 12040 | 0a 3b 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 | .;;.NOTE:.It's.not.clear.that.th |
| 12060 | 69 73 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 | is.is.the.best.strategy:.(add-to |
| 12080 | 2d 6c 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 | -list.'text-property-default-non |
| 120a0 | 73 74 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 | sticky.'(gptel...t))..;;;###auto |
| 120c0 | 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 67 70 74 65 6c 2d 6d 6f | load.(define-minor-mode.gptel-mo |
| 120e0 | 64 65 0a 20 20 22 4d 69 6e 6f 72 20 6d 6f 64 65 20 66 6f 72 20 69 6e 74 65 72 61 63 74 69 6e 67 | de..."Minor.mode.for.interacting |
| 12100 | 20 77 69 74 68 20 4c 4c 4d 73 2e 22 0a 20 20 3a 6c 69 67 68 74 65 72 20 22 20 47 50 54 22 0a 20 | .with.LLMs."...:lighter.".GPT".. |
| 12120 | 20 3a 6b 65 79 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 | .:keymap...(let.((map.(make-spar |
| 12140 | 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 | se-keymap))).....(define-key.map |
| 12160 | 20 28 6b 62 64 20 22 43 2d 63 20 52 45 54 22 29 20 23 27 67 70 74 65 6c 2d 73 65 6e 64 29 0a 20 | .(kbd."C-c.RET").#'gptel-send).. |
| 12180 | 20 20 20 6d 61 70 29 0a 20 20 28 69 66 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 | ...map)...(if.gptel-mode.......( |
| 121a0 | 70 72 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 | progn.........(unless.(memq.majo |
| 121c0 | 72 2d 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 | r-mode.'(org-mode.markdown-mode. |
| 121e0 | 74 65 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 | text-mode))...........(gptel-mod |
| 12200 | 65 20 2d 31 29 0a 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 28 66 6f 72 | e.-1)...........(user-error.(for |
| 12220 | 6d 61 74 20 22 60 67 70 74 65 6c 2d 6d 6f 64 65 27 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 | mat."`gptel-mode'.is.not.support |
| 12240 | 65 64 20 69 6e 20 60 25 73 27 2e 22 20 6d 61 6a 6f 72 2d 6d 6f 64 65 29 29 29 0a 20 20 20 20 20 | ed.in.`%s'.".major-mode)))...... |
| 12260 | 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 73 61 76 65 2d 68 6f 6f 6b 20 23 | ...(add-hook.'before-save-hook.# |
| 12280 | 27 67 70 74 65 6c 2d 2d 73 61 76 65 2d 73 74 61 74 65 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 | 'gptel--save-state.nil.t)....... |
| 122a0 | 20 20 28 67 70 74 65 6c 2d 2d 72 65 73 74 6f 72 65 2d 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 | ..(gptel--restore-state)........ |
| 122c0 | 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 20 | .(if.gptel-use-header-line...... |
| 122e0 | 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 6f 6c 64 2d 68 65 61 64 65 72 2d 6c 69 6e | .....(setq.gptel--old-header-lin |
| 12300 | 65 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 | e.header-line-format............ |
| 12320 | 20 20 20 20 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 | .....header-line-format......... |
| 12340 | 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 28 70 | ........(list.'(:eval.(concat.(p |
| 12360 | 72 6f 70 65 72 74 69 7a 65 20 22 20 22 20 27 64 69 73 70 6c 61 79 20 27 28 73 70 61 63 65 20 3a | ropertize.".".'display.'(space.: |
| 12380 | 61 6c 69 67 6e 2d 74 6f 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | align-to.0)).................... |
| 123a0 | 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 22 20 28 67 70 74 65 6c 2d | ............(format."%s".(gptel- |
| 123c0 | 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 29 0a 20 | backend-name.gptel-backend)))).. |
| 123e0 | 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 |
| 12400 | 20 22 20 52 65 61 64 79 22 20 27 66 61 63 65 20 27 73 75 63 63 65 73 73 29 0a 20 20 20 20 20 20 | .".Ready".'face.'success)....... |
| 12420 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 0a 20 20 20 20 20 20 20 20 | ................'(:eval......... |
| 12440 | 20 20 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 | ................(let.((system... |
| 12460 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | .............................(fo |
| 12480 | 72 6d 61 74 20 22 5b 50 72 6f 6d 70 74 3a 20 25 73 5d 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 | rmat."[Prompt:.%s]"............. |
| 124a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 63 61 72 2d 73 61 66 | ....................(or.(car-saf |
| 124c0 | 65 20 28 72 61 73 73 6f 63 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 6d 2d 6d 65 73 73 61 67 65 20 | e.(rassoc.gptel--system-message. |
| 124e0 | 67 70 74 65 6c 2d 64 69 72 65 63 74 69 76 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | gptel-directives)).............. |
| 12500 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 75 6e 63 61 74 65 2d 73 74 | ....................(truncate-st |
| 12520 | 72 69 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 | ring-to-width.gptel--system-mess |
| 12540 | 61 67 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 | age.15.nil.nil.t)))))........... |
| 12560 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 0a 20 20 20 20 20 20 20 20 20 | ...............(concat.......... |
| 12580 | 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 20 | .................(propertize.... |
| 125a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 22 20 27 64 69 73 | ........................".".'dis |
| 125c0 | 70 6c 61 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | play............................ |
| 125e0 | 60 28 73 70 61 63 65 20 3a 61 6c 69 67 6e 2d 74 6f 20 28 2d 20 72 69 67 68 74 20 2c 28 2b 20 32 | `(space.:align-to.(-.right.,(+.2 |
| 12600 | 20 28 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 | .(length.gptel-model).(length.sy |
| 12620 | 73 74 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 | stem)))))....................... |
| 12640 | 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ....(propertize................. |
| 12660 | 20 20 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 | ...........(buttonize.system.... |
| 12680 | 20 20 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 |
| 126a0 | 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 73 79 73 74 65 6d 2d 70 72 6f 6d 70 74 29 | .(&rest._).(gptel-system-prompt) |
| 126c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d | ))............................'m |
| 126e0 | 6f 75 73 65 2d 66 61 63 65 20 27 68 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 | ouse-face.'highlight............ |
| 12700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 0a 20 20 20 20 20 | ................'help-echo...... |
| 12720 | 20 20 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 | ......................"System.me |
| 12740 | 73 73 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 | ssage.for.buffer").............. |
| 12760 | 20 20 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 | ............."."................ |
| 12780 | 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 | ...........(propertize.......... |
| 127a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 7a 65 20 28 63 6f | ..................(buttonize.(co |
| 127c0 | 6e 63 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 | ncat."[".gptel-model."]")....... |
| 127e0 | 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 26 | ......................(lambda.(& |
| 12800 | 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 0a 20 20 20 20 20 20 20 20 20 | rest._).(gptel-menu))).......... |
| 12820 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 6f 75 73 65 2d 66 61 63 65 20 27 68 | ..................'mouse-face.'h |
| 12840 | 69 67 68 6c 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ighlight........................ |
| 12860 | 20 20 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 | ....'help-echo."GPT.model.in.use |
| 12880 | 22 29 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 | "))))))...........(setq.mode-lin |
| 128a0 | 65 2d 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 | e-process.................'(:eva |
| 128c0 | 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l.(concat."."................... |
| 128e0 | 20 20 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 | .......(buttonize.gptel-model... |
| 12900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 | ..........................(lambd |
| 12920 | 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 29 29 0a | a.(&rest._).(gptel-menu)))))))). |
| 12940 | 20 20 20 20 28 69 66 20 67 70 74 65 6c 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 | ....(if.gptel-use-header-line... |
| 12960 | 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 67 | ......(setq.header-line-format.g |
| 12980 | 70 74 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 | ptel--old-header-line........... |
| 129a0 | 20 20 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 | ....gptel--old-header-line.nil). |
| 129c0 | 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 6e 69 | ......(setq.mode-line-process.ni |
| 129e0 | 6c 29 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 | l))))..(defun.gptel--update-stat |
| 12a00 | 75 73 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 | us.(&optional.msg.face)..."Updat |
| 12a20 | 65 20 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 | e.status.MSG.in.FACE."...(when.g |
| 12a40 | 70 74 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 | ptel-mode.....(if.gptel-use-head |
| 12a60 | 65 72 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 | er-line.........(and.(consp.head |
| 12a80 | 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 66 | er-line-format)............(setf |
| 12aa0 | 20 28 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 | .(nth.1.header-line-format)..... |
| 12ac0 | 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 6d 73 67 20 27 66 61 | .............(propertize.msg.'fa |
| 12ae0 | 63 65 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 | ce.face))).......(if.(member.msg |
| 12b00 | 20 27 28 22 20 54 79 70 69 6e 67 2e 2e 2e 22 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 29 29 0a | .'(".Typing...".".Waiting...")). |
| 12b20 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6d 6f 64 65 2d 6c 69 6e 65 2d 70 72 6f 63 65 73 | ..........(setq.mode-line-proces |
| 12b40 | 73 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 0a 20 | s.(propertize.msg.'face.face)).. |
| 12b60 | 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 0a 20 | .......(setq.mode-line-process.. |
| 12b80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 3a 65 76 61 6c 20 28 63 6f 6e 63 61 74 20 22 20 22 | .............'(:eval.(concat."." |
| 12ba0 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 74 74 6f 6e 69 | ........................(buttoni |
| 12bc0 | 7a 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 20 20 20 20 20 20 | ze.gptel-model.................. |
| 12be0 | 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 20 28 67 70 | ...........(lambda.(&rest._).(gp |
| 12c00 | 74 65 6c 2d 6d 65 6e 75 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 | tel-menu)))))).........(message. |
| 12c20 | 28 70 72 6f 70 65 72 74 69 7a 65 20 6d 73 67 20 27 66 61 63 65 20 66 61 63 65 29 29 29 29 0a 20 | (propertize.msg.'face.face)))).. |
| 12c40 | 20 20 20 28 66 6f 72 63 65 2d 6d 6f 64 65 2d 6c 69 6e 65 2d 75 70 64 61 74 65 29 29 29 0a 0a 0c | ...(force-mode-line-update)))... |
| 12c60 | 0a 3b 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 | .;;.Send.queries,.handle.respons |
| 12c80 | 65 73 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 | es.(cl-defun.gptel-request.....( |
| 12ca0 | 26 6f 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 | &optional.prompt.&key.callback.. |
| 12cc0 | 20 20 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 | ..............(buffer.(current-b |
| 12ce0 | 75 66 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 | uffer))................position. |
| 12d00 | 63 6f 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 | context.dry-run................( |
| 12d20 | 73 74 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 | stream.nil).(in-place.nil)...... |
| 12d40 | 20 20 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 | ..........(system.gptel--system- |
| 12d60 | 6d 65 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 | message))..."Request.a.response. |
| 12d80 | 66 72 6f 6d 20 74 68 65 20 60 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 27 20 66 6f 72 20 50 52 4f | from.the.`gptel-backend'.for.PRO |
| 12da0 | 4d 50 54 2e 0a 0a 54 68 65 20 72 65 71 75 65 73 74 20 69 73 20 61 73 79 6e 63 68 72 6f 6e 6f 75 | MPT...The.request.is.asynchronou |
| 12dc0 | 73 2c 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 | s,.the.function.immediately.retu |
| 12de0 | 72 6e 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 | rns.with.the.data.that.was.sent. |
| 12e00 | 0a 0a 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 | ..Note:.This.function.is.not.ful |
| 12e20 | 6c 79 20 73 65 6c 66 2d 63 6f 6e 74 61 69 6e 65 64 2e 20 20 43 6f 6e 73 69 64 65 72 0a 6c 65 74 | ly.self-contained...Consider.let |
| 12e40 | 2d 62 69 6e 64 69 6e 67 20 74 68 65 20 70 61 72 61 6d 65 74 65 72 73 20 60 67 70 74 65 6c 2d 62 | -binding.the.parameters.`gptel-b |
| 12e60 | 61 63 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 | ackend'.and.`gptel-model'.around |
| 12e80 | 20 63 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 | .calls.to.it.as.required...If.PR |
| 12ea0 | 4f 4d 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 | OMPT.is.-.a.string,.it.is.used.t |
| 12ec0 | 6f 20 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 | o.create.a.full.prompt.suitable. |
| 12ee0 | 66 6f 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 | for...sending.to.the.LLM..-.nil. |
| 12f00 | 62 75 74 20 72 65 67 69 6f 6e 20 69 73 20 61 63 74 69 76 65 2c 20 74 68 65 20 72 65 67 69 6f 6e | but.region.is.active,.the.region |
| 12f20 | 20 63 6f 6e 74 65 6e 74 73 20 61 72 65 20 75 73 65 64 2e 0a 2d 20 6e 69 6c 2c 20 74 68 65 20 63 | .contents.are.used..-.nil,.the.c |
| 12f40 | 75 72 72 65 6e 74 20 62 75 66 66 65 72 27 73 20 63 6f 6e 74 65 6e 74 73 20 75 70 20 74 6f 20 28 | urrent.buffer's.contents.up.to.( |
| 12f60 | 70 6f 69 6e 74 29 20 61 72 65 20 75 73 65 64 2e 0a 20 20 50 72 65 76 69 6f 75 73 20 72 65 73 70 | point).are.used....Previous.resp |
| 12f80 | 6f 6e 73 65 73 20 66 72 6f 6d 20 74 68 65 20 4c 4c 4d 20 61 72 65 20 69 64 65 6e 74 69 66 69 65 | onses.from.the.LLM.are.identifie |
| 12fa0 | 64 20 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 | d.as.responses..-.A.list.of.plis |
| 12fc0 | 74 73 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 | ts,.it.is.used.as.is...Keyword.a |
| 12fe0 | 72 67 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 | rguments:..CALLBACK,.if.supplied |
| 13000 | 2c 20 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 | ,.is.a.function.of.two.arguments |
| 13020 | 2c 20 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 | ,.called.with.the.RESPONSE.(a.st |
| 13040 | 72 69 6e 67 29 20 61 6e 64 20 49 4e 46 4f 20 28 61 20 70 6c 69 73 74 29 3a 0a 0a 20 28 63 61 6c | ring).and.INFO.(a.plist):...(cal |
| 13060 | 6c 62 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 | lback.RESPONSE.INFO)..RESPONSE.i |
| 13080 | 73 20 6e 69 6c 20 69 66 20 74 68 65 72 65 20 77 61 73 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 6f | s.nil.if.there.was.no.response.o |
| 130a0 | 72 20 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 | r.an.error...The.INFO.plist.has. |
| 130c0 | 28 61 74 20 6c 65 61 73 74 29 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6b 65 79 73 3a 0a 3a | (at.least).the.following.keys:.: |
| 130e0 | 64 61 74 61 20 20 20 20 20 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 20 64 61 74 61 20 | data.........-.The.request.data. |
| 13100 | 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 71 75 65 72 79 0a 3a 70 6f 73 69 74 69 6f | included.with.the.query.:positio |
| 13120 | 6e 20 20 20 20 20 2d 20 6d 61 72 6b 65 72 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 20 | n.....-.marker.at.the.point.the. |
| 13140 | 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 | request.was.sent,.unless........ |
| 13160 | 20 20 20 20 20 20 20 20 20 50 4f 53 49 54 49 4f 4e 20 69 73 20 73 70 65 63 69 66 69 65 64 2e 0a | .........POSITION.is.specified.. |
| 13180 | 3a 62 75 66 66 65 72 20 20 20 20 20 20 20 2d 20 54 68 65 20 62 75 66 66 65 72 20 63 75 72 72 65 | :buffer.......-.The.buffer.curre |
| 131a0 | 6e 74 20 77 68 65 6e 20 74 68 65 20 72 65 71 75 65 73 74 20 77 61 73 20 73 65 6e 74 2c 0a 20 20 | nt.when.the.request.was.sent,... |
| 131c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 75 6e 6c 65 73 73 20 42 55 46 46 45 52 20 69 73 20 73 | ..............unless.BUFFER.is.s |
| 131e0 | 70 65 63 69 66 69 65 64 2e 0a 3a 73 74 61 74 75 73 20 20 20 20 20 20 20 2d 20 53 68 6f 72 74 20 | pecified..:status.......-.Short. |
| 13200 | 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 74 68 65 20 72 65 73 75 6c 74 20 6f 66 20 | string.describing.the.result.of. |
| 13220 | 74 68 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 | the.request..Example.of.a.callba |
| 13240 | 63 6b 20 74 68 61 74 20 6d 65 73 73 61 67 65 73 20 74 68 65 20 75 73 65 72 20 77 69 74 68 20 74 | ck.that.messages.the.user.with.t |
| 13260 | 68 65 20 72 65 73 70 6f 6e 73 65 0a 61 6e 64 20 69 6e 66 6f 3a 0a 0a 20 28 6c 61 6d 62 64 61 20 | he.response.and.info:...(lambda. |
| 13280 | 28 72 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 | (response.info)...(if.response.. |
| 132a0 | 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f 73 6e 20 28 6d 61 72 6b 65 72 2d 70 6f 73 69 74 69 6f | .....(let.((posn.(marker-positio |
| 132c0 | 6e 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 | n.(plist-get.info.:position))).. |
| 132e0 | 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 20 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 70 | ...........(buf..(buffer-name.(p |
| 13300 | 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 29 29 29 0a 20 20 20 20 20 20 | list-get.info.:buffer))))....... |
| 13320 | 20 20 28 6d 65 73 73 61 67 65 20 5c 22 52 65 73 70 6f 6e 73 65 20 66 6f 72 20 72 65 71 75 65 73 | ..(message.\"Response.for.reques |
| 13340 | 74 20 66 72 6f 6d 20 25 53 20 61 74 20 25 64 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 | t.from.%S.at.%d:.%s\"........... |
| 13360 | 20 20 20 20 20 20 20 62 75 66 20 70 6f 73 6e 20 72 65 73 70 6f 6e 73 65 29 29 0a 20 20 20 20 28 | .......buf.posn.response)).....( |
| 13380 | 6d 65 73 73 61 67 65 20 5c 22 67 70 74 65 6c 2d 72 65 71 75 65 73 74 20 66 61 69 6c 65 64 20 77 | message.\"gptel-request.failed.w |
| 133a0 | 69 74 68 20 6d 65 73 73 61 67 65 3a 20 25 73 5c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | ith.message:.%s\"..............( |
| 133c0 | 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 29 29 0a 0a 4f 72 2c 20 | plist-get.info.:status))))..Or,. |
| 133e0 | 66 6f 72 20 6a 75 73 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 3a 0a 0a 20 28 6c 61 6d 62 64 61 | for.just.the.response:...(lambda |
| 13400 | 20 28 72 65 73 70 6f 6e 73 65 20 5f 29 0a 20 20 3b 3b 20 44 6f 20 73 6f 6d 65 74 68 69 6e 67 20 | .(response._)...;;.Do.something. |
| 13420 | 77 69 74 68 20 72 65 73 70 6f 6e 73 65 0a 20 20 28 6d 65 73 73 61 67 65 20 28 72 6f 74 31 33 2d | with.response...(message.(rot13- |
| 13440 | 73 74 72 69 6e 67 20 72 65 73 70 6f 6e 73 65 29 29 29 0a 0a 49 66 20 43 41 4c 4c 42 41 43 4b 20 | string.response)))..If.CALLBACK. |
| 13460 | 69 73 20 6f 6d 69 74 74 65 64 2c 20 74 68 65 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 | is.omitted,.the.response.is.inse |
| 13480 | 72 74 65 64 20 61 74 20 74 68 65 20 70 6f 69 6e 74 20 74 68 65 0a 72 65 71 75 65 73 74 20 77 61 | rted.at.the.point.the.request.wa |
| 134a0 | 73 20 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 | s.sent...BUFFER.and.POSITION.are |
| 134c0 | 20 74 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 70 6f 73 69 74 69 6f 6e 20 28 69 6e 74 65 67 65 | .the.buffer.and.position.(intege |
| 134e0 | 72 20 6f 72 0a 6d 61 72 6b 65 72 29 20 61 74 20 77 68 69 63 68 20 74 68 65 20 72 65 73 70 6f 6e | r.or.marker).at.which.the.respon |
| 13500 | 73 65 20 69 73 20 69 6e 73 65 72 74 65 64 2e 20 20 49 66 20 61 20 43 41 4c 4c 42 41 43 4b 20 69 | se.is.inserted...If.a.CALLBACK.i |
| 13520 | 73 0a 73 70 65 63 69 66 69 65 64 2c 20 6e 6f 20 72 65 73 70 6f 6e 73 65 20 69 73 20 69 6e 73 65 | s.specified,.no.response.is.inse |
| 13540 | 72 74 65 64 20 61 6e 64 20 74 68 65 73 65 20 61 72 67 75 6d 65 6e 74 73 20 61 72 65 0a 69 67 6e | rted.and.these.arguments.are.ign |
| 13560 | 6f 72 65 64 2c 20 62 75 74 20 74 68 65 79 20 61 72 65 20 73 74 69 6c 6c 20 61 76 61 69 6c 61 62 | ored,.but.they.are.still.availab |
| 13580 | 6c 65 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 70 6c 69 73 74 20 70 61 73 73 65 64 0a 74 6f 20 43 | le.in.the.INFO.plist.passed.to.C |
| 135a0 | 41 4c 4c 42 41 43 4b 20 66 6f 72 20 79 6f 75 20 74 6f 20 75 73 65 2e 0a 0a 42 55 46 46 45 52 20 | ALLBACK.for.you.to.use...BUFFER. |
| 135c0 | 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2c 20 | defaults.to.the.current.buffer,. |
| 135e0 | 61 6e 64 20 50 4f 53 49 54 49 4f 4e 20 74 6f 20 74 68 65 20 76 61 6c 75 65 0a 6f 66 20 28 70 6f | and.POSITION.to.the.value.of.(po |
| 13600 | 69 6e 74 29 20 6f 72 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 2c 20 64 65 70 65 6e 64 69 6e 67 20 | int).or.(region-end),.depending. |
| 13620 | 6f 6e 20 77 68 65 74 68 65 72 20 74 68 65 20 72 65 67 69 6f 6e 20 69 73 0a 61 63 74 69 76 65 2e | on.whether.the.region.is.active. |
| 13640 | 0a 0a 43 4f 4e 54 45 58 54 20 69 73 20 61 6e 79 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 61 | ..CONTEXT.is.any.additional.data |
| 13660 | 20 6e 65 65 64 65 64 20 66 6f 72 20 74 68 65 20 63 61 6c 6c 62 61 63 6b 20 74 6f 20 72 75 6e 2e | .needed.for.the.callback.to.run. |
| 13680 | 20 49 74 0a 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 49 4e 46 4f 20 61 72 67 75 | .It.is.included.in.the.INFO.argu |
| 136a0 | 6d 65 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 | ment.to.the.callback...SYSTEM.is |
| 136c0 | 20 74 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 | .the.system.message.(chat.direct |
| 136e0 | 69 76 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 | ive).sent.to.the.LLM..If.omitted |
| 13700 | 2c 20 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 | ,.the.value.of.`gptel--system-me |
| 13720 | 73 73 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 | ssage'.for.the.current.buffer.is |
| 13740 | 20 75 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 | .used...The.following.keywords.a |
| 13760 | 72 65 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 | re.mainly.for.internal.use:..IN- |
| 13780 | 50 4c 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 | PLACE.is.a.boolean.used.by.the.d |
| 137a0 | 65 66 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 | efault.callback.when.inserting.t |
| 137c0 | 68 65 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 | he.response.to.determine.if.deli |
| 137e0 | 6d 69 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 | miters.are.needed.between.the.pr |
| 13800 | 6f 6d 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 | ompt.and.the.response...STREAM.i |
| 13820 | 73 20 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 | s.a.boolean.that.determines.if.t |
| 13840 | 68 65 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 | he.response.should.be.streamed,. |
| 13860 | 61 73 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 | as.in.`gptel-stream'..Do.not.set |
| 13880 | 20 74 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 | .this.if.you.are.specifying.a.cu |
| 138a0 | 73 74 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 | stom.CALLBACK!..If.DRY-RUN.is.no |
| 138c0 | 6e 2d 6e 69 6c 2c 20 63 6f 6e 73 74 72 75 63 74 20 61 6e 64 20 72 65 74 75 72 6e 20 74 68 65 20 | n-nil,.construct.and.return.the. |
| 138e0 | 66 75 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 | full.query.data.as.usual,.but.do |
| 13900 | 20 6e 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 | .not.send.the.request...Model.pa |
| 13920 | 72 61 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 | rameters.can.be.let-bound.around |
| 13940 | 20 63 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 | .calls.to.this.function."...(dec |
| 13960 | 6c 61 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 | lare.(indent.1))...(let*.((gptel |
| 13980 | 2d 2d 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 | --system-message.system)........ |
| 139a0 | 20 20 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 | ..(gptel-stream.stream)......... |
| 139c0 | 20 28 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 | .(start-marker...........(cond.. |
| 139e0 | 20 20 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 | ..........((null.position)...... |
| 13a00 | 20 20 20 20 20 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 | .......(if.(use-region-p)....... |
| 13a20 | 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 28 6d 61 6b 65 2d 6d 61 72 6b | ..........(set-marker.(make-mark |
| 13a40 | 65 72 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 | er).(region-end))............... |
| 13a60 | 28 67 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 | (gptel--at-word-end.(point-marke |
| 13a80 | 72 29 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 | r))))............((markerp.posit |
| 13aa0 | 69 6f 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 | ion).position)............((inte |
| 13ac0 | 67 65 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 | gerp.position).............(set- |
| 13ae0 | 6d 61 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 | marker.(make-marker).position.bu |
| 13b00 | 66 66 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 | ffer))))..........(full-prompt.. |
| 13b20 | 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 6e 75 6c 6c | .........(cond............((null |
| 13b40 | 20 70 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 | .prompt).(gptel--create-prompt.s |
| 13b60 | 74 61 72 74 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e | tart-marker))............((strin |
| 13b80 | 67 70 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 | gp.prompt).............;;.FIXME. |
| 13ba0 | 44 65 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 | Dear.reader,.welcome.to.Jank.Cit |
| 13bc0 | 79 3a 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 | y:.............(with-temp-buffer |
| 13be0 | 0a 20 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 | ...............(let.((gptel-mode |
| 13c00 | 6c 20 28 62 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 67 70 74 65 6c 2d 6d 6f 64 | l.(buffer-local-value.'gptel-mod |
| 13c20 | 65 6c 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 | el.buffer))..................... |
| 13c40 | 28 67 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 | (gptel-backend.(buffer-local-val |
| 13c60 | 75 65 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 | ue.'gptel-backend.buffer)))..... |
| 13c80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 6f 6d 70 74 29 0a 20 20 20 20 | ............(insert.prompt)..... |
| 13ca0 | 20 20 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 | ............(gptel--create-promp |
| 13cc0 | 74 29 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 | t))))............((consp.prompt) |
| 13ce0 | 20 70 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 | .prompt)))..........(request-dat |
| 13d00 | 61 20 28 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 67 70 74 65 6c 2d 62 61 63 | a.(gptel--request-data.gptel-bac |
| 13d20 | 6b 65 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 | kend.full-prompt))..........(inf |
| 13d40 | 6f 20 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 | o.(list.:data.request-data...... |
| 13d60 | 20 20 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 | ................:buffer.buffer.. |
| 13d80 | 20 20 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 | ....................:position.st |
| 13da0 | 61 72 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 | art-marker))).....(when.context. |
| 13dc0 | 28 70 6c 69 73 74 2d 70 75 74 20 69 6e 66 6f 20 3a 63 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 | (plist-put.info.:context.context |
| 13de0 | 29 29 0a 20 20 20 20 28 77 68 65 6e 20 69 6e 2d 70 6c 61 63 65 20 28 70 6c 69 73 74 2d 70 75 74 | )).....(when.in-place.(plist-put |
| 13e00 | 20 69 6e 66 6f 20 3a 69 6e 2d 70 6c 61 63 65 20 69 6e 2d 70 6c 61 63 65 29 29 0a 20 20 20 20 28 | .info.:in-place.in-place)).....( |
| 13e20 | 75 6e 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 | unless.dry-run.......(funcall.(i |
| 13e40 | 66 20 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 | f.gptel-use-curl................ |
| 13e60 | 20 20 20 20 23 27 67 70 74 65 6c 2d 63 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 20 23 27 | ....#'gptel-curl-get-response.#' |
| 13e80 | 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 | gptel--url-get-response)........ |
| 13ea0 | 20 20 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 | ........info.callback)).....requ |
| 13ec0 | 65 73 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 | est-data))..;;.TODO:.Handle.mult |
| 13ee0 | 69 70 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 | iple.requests(#15)..(Only.one.re |
| 13f00 | 71 75 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 | quest.from.one.buffer.at.a.time? |
| 13f20 | 29 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 73 65 | ).;;;###autoload.(defun.gptel-se |
| 13f40 | 6e 64 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 | nd.(&optional.arg)..."Submit.thi |
| 13f60 | 73 20 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 | s.prompt.to.the.current.LLM.back |
| 13f80 | 65 6e 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 | end...By.default,.the.contents.o |
| 13fa0 | 66 20 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 | f.the.buffer.up.to.the.cursor.po |
| 13fc0 | 73 69 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 | sition.are.sent...If.the.region. |
| 13fe0 | 69 73 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 | is.active,.its.contents.are.sent |
| 14000 | 0a 69 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 | .instead...The.response.from.the |
| 14020 | 20 4c 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 | .LLM.is.inserted.below.the.curso |
| 14040 | 72 20 70 6f 73 69 74 69 6f 6e 0a 61 74 20 74 68 65 20 74 69 6d 65 20 6f 66 20 73 65 6e 64 69 6e | r.position.at.the.time.of.sendin |
| 14060 | 67 2e 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 | g...To.change.this.behavior.or.m |
| 14080 | 6f 64 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 | odel.parameters,.use.prefix.arg. |
| 140a0 | 41 52 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 | ARG.activate.a.transient.menu.wi |
| 140c0 | 74 68 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 | th.more.options.instead...This.c |
| 140e0 | 6f 6d 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 | ommand.is.asynchronous,.you.can. |
| 14100 | 63 6f 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 | continue.to.use.Emacs.while.wait |
| 14120 | 69 6e 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 | ing.for.the.response."...(intera |
| 14140 | 63 74 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 | ctive."P")...(if.(and.arg.(requi |
| 14160 | 72 65 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 | re.'gptel-transient.nil.t))..... |
| 14180 | 20 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 23 27 67 70 74 65 6c 2d 6d 65 | ..(call-interactively.#'gptel-me |
| 141a0 | 6e 75 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 | nu)...(message."Querying.%s...". |
| 141c0 | 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e | (gptel-backend-name.gptel-backen |
| 141e0 | 64 29 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 | d))...(gptel--sanitize-model)... |
| 14200 | 28 67 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 | (gptel-request.nil.:stream.gptel |
| 14220 | 2d 73 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 | -stream)...(gptel--update-status |
| 14240 | 20 22 20 57 61 69 74 69 6e 67 2e 2e 2e 22 20 27 77 61 72 6e 69 6e 67 29 29 29 0a 0a 28 64 65 63 | .".Waiting...".'warning)))..(dec |
| 14260 | 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d | lare-function.json-pretty-print- |
| 14280 | 62 75 66 66 65 72 20 22 6a 73 6f 6e 22 29 0a 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 | buffer."json").(defun.gptel--ins |
| 142a0 | 70 65 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 | pect-query.(request-data.&option |
| 142c0 | 61 6c 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 | al.arg)..."Show.REQUEST-DATA,.th |
| 142e0 | 65 20 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 | e.full.LLM.query.to.be.sent,.in. |
| 14300 | 61 20 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 | a.buffer...This.functions.as.a.d |
| 14320 | 72 79 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 | ry.run.of.`gptel-send'...If.ARG. |
| 14340 | 69 73 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 | is.the.symbol.json,.show.the.enc |
| 14360 | 6f 64 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 | oded.JSON.query.instead.of.the.l |
| 14380 | 69 73 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 | isp.structure.gptel.uses."...(wi |
| 143a0 | 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 | th-current-buffer.(get-buffer-cr |
| 143c0 | 65 61 74 65 20 22 2a 67 70 74 65 6c 2d 71 75 65 72 79 2a 22 29 0a 20 20 20 20 28 6c 65 74 20 28 | eate."*gptel-query*").....(let.( |
| 143e0 | 28 73 74 61 6e 64 61 72 64 2d 6f 75 74 70 75 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 | (standard-output.(current-buffer |
| 14400 | 29 29 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 | ))...........(inhibit-read-only. |
| 14420 | 74 29 29 0a 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 64 69 73 61 62 6c 65 2d 75 6e 64 6f 29 0a | t)).......(buffer-disable-undo). |
| 14440 | 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 69 66 20 28 | ......(erase-buffer).......(if.( |
| 14460 | 65 71 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 | eq.arg.'json)...........(progn.( |
| 14480 | 66 75 6e 64 61 6d 65 6e 74 61 6c 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | fundamental-mode)............... |
| 144a0 | 20 20 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 20 72 | ...(insert.(gptel--json-encode.r |
| 144c0 | 65 71 75 65 73 74 2d 64 61 74 61 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 | equest-data))..................( |
| 144e0 | 6a 73 6f 6e 2d 70 72 65 74 74 79 2d 70 72 69 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 | json-pretty-print-buffer))...... |
| 14500 | 20 20 20 28 6c 69 73 70 2d 64 61 74 61 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 69 | ...(lisp-data-mode).........(pri |
| 14520 | 6e 31 20 72 65 71 75 65 73 74 2d 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 28 70 70 2d 62 75 66 | n1.request-data).........(pp-buf |
| 14540 | 66 65 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 | fer)).......(goto-char.(point-mi |
| 14560 | 6e 29 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 | n)).......(view-mode.1).......(d |
| 14580 | 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 | isplay-buffer.(current-buffer).g |
| 145a0 | 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 29 29 29 29 0a 0a | ptel-display-buffer-action)))).. |
| 145c0 | 28 64 65 66 75 6e 20 67 70 74 65 6c 2d 2d 69 6e 73 65 72 74 2d 72 65 73 70 6f 6e 73 65 20 28 72 | (defun.gptel--insert-response.(r |
| 145e0 | 65 73 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 | esponse.info)..."Insert.the.LLM. |
| 14600 | 52 45 53 50 4f 4e 53 45 20 69 6e 74 6f 20 74 68 65 20 67 70 74 65 6c 20 62 75 66 66 65 72 2e 0a | RESPONSE.into.the.gptel.buffer.. |
| 14620 | 0a 49 4e 46 4f 20 69 73 20 61 20 70 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 69 6e 66 6f | .INFO.is.a.plist.containing.info |
| 14640 | 72 6d 61 74 69 6f 6e 20 72 65 6c 65 76 61 6e 74 20 74 6f 20 74 68 69 73 20 62 75 66 66 65 72 2e | rmation.relevant.to.this.buffer. |
| 14660 | 0a 53 65 65 20 60 67 70 74 65 6c 2d 2d 75 72 6c 2d 67 65 74 2d 72 65 73 70 6f 6e 73 65 27 20 66 | .See.`gptel--url-get-response'.f |
| 14680 | 6f 72 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 | or.details."...(let*.((status-st |
| 146a0 | 72 20 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 73 74 61 74 75 73 29 29 0a 20 20 20 | r..(plist-get.info.:status)).... |
| 146c0 | 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 69 | ......(gptel-buffer.(plist-get.i |
| 146e0 | 6e 66 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 | nfo.:buffer))..........(start-ma |
| 14700 | 72 6b 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 70 6f 73 69 74 69 6f 6e 29 29 | rker.(plist-get.info.:position)) |
| 14720 | 0a 20 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 | ..........response-beg.response- |
| 14740 | 65 6e 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 | end).....;;.Handle.read-only.buf |
| 14760 | 66 65 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 | fers.....(when.(with-current-buf |
| 14780 | 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 20 20 28 6f 72 | fer.gptel-buffer.............(or |
| 147a0 | 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .buffer-read-only............... |
| 147c0 | 20 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 73 74 61 72 74 2d 6d 61 72 6b 65 | ..(get-char-property.start-marke |
| 147e0 | 72 20 27 72 65 61 64 2d 6f 6e 6c 79 29 29 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 | r.'read-only))).......(message." |
| 14800 | 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. |
| 14820 | 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* |
| 14840 | 5c 22 22 29 0a 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 0a 20 20 20 20 20 | \"").......(display-buffer...... |
| 14860 | 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 | ..(with-current-buffer.(get-buff |
| 14880 | 65 72 2d 63 72 65 61 74 65 20 22 2a 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 2a 22 29 0a 20 20 20 20 | er-create."*LLM.response*")..... |
| 148a0 | 20 20 20 20 20 28 76 69 73 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 20 31 29 0a 20 20 20 20 20 20 | .....(visual-line-mode.1)....... |
| 148c0 | 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 | ...(goto-char.(point-max))...... |
| 148e0 | 20 20 20 20 28 6d 6f 76 65 2d 6d 61 72 6b 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 20 28 70 | ....(move-marker.start-marker.(p |
| 14900 | 6f 69 6e 74 29 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 | oint).(current-buffer))......... |
| 14920 | 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 27 28 28 64 69 73 | .(current-buffer))........'((dis |
| 14940 | 70 6c 61 79 2d 62 75 66 66 65 72 2d 72 65 75 73 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 | play-buffer-reuse-window........ |
| 14960 | 20 20 20 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 2d 70 6f 70 2d 75 70 2d 77 69 6e 64 6f 77 29 | ...display-buffer-pop-up-window) |
| 14980 | 0a 20 20 20 20 20 20 20 20 20 28 72 65 75 73 61 62 6c 65 2d 66 72 61 6d 65 73 20 2e 20 76 69 73 | ..........(reusable-frames...vis |
| 149a0 | 69 62 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 | ible)))).....;;.Insert.response. |
| 149c0 | 61 6e 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 | and.status.message/error.message |
| 149e0 | 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d | .....(with-current-buffer.gptel- |
| 14a00 | 62 75 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 | buffer.......(if.response....... |
| 14a20 | 20 20 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 | ....(progn.............(setq.res |
| 14a40 | 70 6f 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 | ponse.(gptel--transform-response |
| 14a60 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 14a80 | 72 65 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 | response.gptel-buffer))......... |
| 14aa0 | 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ....(save-excursion............. |
| 14ac0 | 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 20 20 | ..(put-text-property............ |
| 14ae0 | 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.' |
| 14b00 | 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 20 | response.response).............. |
| 14b20 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6d 61 72 6b 65 72 2d 62 75 | .(with-current-buffer.(marker-bu |
| 14b40 | 66 66 65 72 20 73 74 61 72 74 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | ffer.start-marker).............. |
| 14b60 | 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)..... |
| 14b80 | 20 20 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 67 70 74 65 6c 2d 70 72 | ............(run-hooks.'gptel-pr |
| 14ba0 | 65 2d 72 65 73 70 6f 6e 73 65 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e-response-hook)................ |
| 14bc0 | 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 62 6f 62 70 29 20 28 70 6c 69 73 74 2d 67 65 74 20 69 | .(unless.(or.(bobp).(plist-get.i |
| 14be0 | 6e 66 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 | nfo.:in-place))................. |
| 14c00 | 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 20 20 20 20 20 20 20 | ..(insert."\n\n")............... |
| 14c20 | 20 20 20 20 28 77 68 65 6e 20 67 70 74 65 6c 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 | ....(when.gptel-mode............ |
| 14c40 | 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 | .........(insert.(gptel-response |
| 14c60 | 2d 70 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 | -prefix-string)))).............. |
| 14c80 | 20 20 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 | ...(setq.response-beg.(point)).; |
| 14ca0 | 53 61 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 | Save.response.start.position.... |
| 14cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 70 6f 6e 73 65 29 0a 20 | .............(insert.response).. |
| 14ce0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 70 6f 6e 73 65 2d 65 6e | ...............(setq.response-en |
| 14d00 | 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 6c 73 | d.(point)).................(puls |
| 14d20 | 65 2d 6d 6f 6d 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 72 65 73 | e-momentary-highlight-region.res |
| 14d40 | 70 6f 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 | ponse-beg.response-end)......... |
| 14d60 | 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 69 6e 73 65 72 74 | ........(when.gptel-mode.(insert |
| 14d80 | 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 74 72 | ."\n\n".(gptel-prompt-prefix-str |
| 14da0 | 69 6e 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 | ing)))).;Save.response.end.posit |
| 14dc0 | 69 6f 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 | ion...............(when.gptel-mo |
| 14de0 | 64 65 20 28 67 70 74 65 6c 2d 2d 75 70 64 61 74 65 2d 73 74 61 74 75 73 20 22 20 52 65 61 64 79 | de.(gptel--update-status.".Ready |
| 14e00 | 22 20 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 | ".'success)))).........(gptel--u |
| 14e20 | 70 64 61 74 65 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 20 | pdate-status..........(format.". |
| 14e40 | 52 65 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 | Response.Error:.%s".status-str). |
| 14e60 | 27 65 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 | 'error).........(message."gptel. |
| 14e80 | 72 65 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 | response.error:.(%s).%s"........ |
| 14ea0 | 20 20 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 | ..........status-str.(plist-get. |
| 14ec0 | 69 6e 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 | info.:error)))).....;;.Run.hook. |
| 14ee0 | 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 77 2d | in.visible.window.to.set.window- |
| 14f00 | 70 6f 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 | point,.BUG.#269.....(if-let.((gp |
| 14f20 | 74 65 6c 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 67 70 | tel-window.(get-buffer-window.gp |
| 14f40 | 74 65 6c 2d 62 75 66 66 65 72 20 27 76 69 73 69 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 | tel-buffer.'visible))).........( |
| 14f60 | 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 20 67 70 74 65 6c 2d 77 69 6e 64 6f | with-selected-window.gptel-windo |
| 14f80 | 77 0a 20 20 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 | w...........(run-hook-with-args. |
| 14fa0 | 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 20 72 | 'gptel-post-response-functions.r |
| 14fc0 | 65 73 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 | esponse-beg.response-end))...... |
| 14fe0 | 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 67 70 74 65 6c 2d 62 75 66 66 | .(with-current-buffer.gptel-buff |
| 15000 | 65 72 0a 20 20 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 2d 77 69 74 68 2d 61 72 67 73 20 27 | er.........(run-hook-with-args.' |
| 15020 | 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 20 72 65 | gptel-post-response-functions.re |
| 15040 | 73 70 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 | sponse-beg.response-end)))))..(d |
| 15060 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 63 72 65 61 74 65 2d 70 72 6f 6d 70 74 20 28 26 6f 70 74 69 | efun.gptel--create-prompt.(&opti |
| 15080 | 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 20 66 75 6c | onal.prompt-end)..."Return.a.ful |
| 150a0 | 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 68 65 20 63 | l.conversation.prompt.from.the.c |
| 150c0 | 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 69 73 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 60 67 70 74 | ontents.of.this.buffer...If.`gpt |
| 150e0 | 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 27 20 69 73 20 73 65 74 | el--num-messages-to-send'.is.set |
| 15100 | 2c 20 6c 69 6d 69 74 20 74 6f 20 74 68 61 74 20 6d 61 6e 79 0a 72 65 63 65 6e 74 20 65 78 63 68 | ,.limit.to.that.many.recent.exch |
| 15120 | 61 6e 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 | anges...If.the.region.is.active. |
| 15140 | 6c 69 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 | limit.the.prompt.to.the.region.c |
| 15160 | 6f 6e 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 | ontents.instead...If.PROMPT-END. |
| 15180 | 28 61 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 | (a.marker).is.provided,.end.the. |
| 151a0 | 70 72 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 | prompt.contents.there."...(save- |
| 151c0 | 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a | excursion.....(save-restriction. |
| 151e0 | 20 20 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 | ......(let.((max-entries.(and.gp |
| 15200 | 74 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 0a 20 20 20 20 20 20 | tel--num-messages-to-send....... |
| 15220 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 20 32 20 67 70 74 | ........................(*.2.gpt |
| 15240 | 65 6c 2d 2d 6e 75 6d 2d 6d 65 73 73 61 67 65 73 2d 74 6f 2d 73 65 6e 64 29 29 29 29 0a 20 20 20 | el--num-messages-to-send)))).... |
| 15260 | 20 20 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 | .....(cond..........((use-region |
| 15280 | 2d 70 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 | -p)...........;;.Narrow.to.regio |
| 152a0 | 6e 0a 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 | n...........(narrow-to-region.(r |
| 152c0 | 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 0a 20 | egion-beginning).(region-end)).. |
| 152e0 | 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 | .........(goto-char.(point-max)) |
| 15300 | 0a 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 | ...........(gptel--parse-buffer. |
| 15320 | 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 0a 20 20 20 20 | gptel-backend.max-entries))..... |
| 15340 | 20 20 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 | .....((derived-mode-p.'org-mode) |
| 15360 | 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 67 70 74 65 6c 2d 6f 72 67 29 0a | ...........(require.'gptel-org). |
| 15380 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 6f 72 67 2d 2d 63 72 65 61 74 65 2d 70 72 6f | ..........(gptel-org--create-pro |
| 153a0 | 6d 70 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 | mpt.(or.prompt-end.(point-max))) |
| 153c0 | 29 0a 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 | )..........(t.(goto-char.(or.pro |
| 153e0 | 6d 70 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 | mpt-end.(point-max)))........... |
| 15400 | 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 74 65 6c 2d 62 61 63 | ..(gptel--parse-buffer.gptel-bac |
| 15420 | 6b 65 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 | kend.max-entries)))))))..(cl-def |
| 15440 | 67 65 6e 65 72 69 63 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 62 75 66 66 65 72 20 28 62 61 63 | generic.gptel--parse-buffer.(bac |
| 15460 | 6b 65 6e 64 20 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 22 50 61 72 73 65 20 63 75 72 72 65 | kend.max-entries)..."Parse.curre |
| 15480 | 6e 74 20 62 75 66 66 65 72 20 62 61 63 6b 77 61 72 64 73 20 66 72 6f 6d 20 70 6f 69 6e 74 20 61 | nt.buffer.backwards.from.point.a |
| 154a0 | 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 70 72 6f 6d 70 74 73 2e 0a 0a 42 41 | nd.return.a.list.of.prompts...BA |
| 154c0 | 43 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e | CKEND.is.the.LLM.backend.in.use. |
| 154e0 | 0a 0a 4d 41 58 2d 45 4e 54 52 49 45 53 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 71 | ..MAX-ENTRIES.is.the.number.of.q |
| 15500 | 75 65 72 69 65 73 2f 72 65 73 70 6f 6e 73 65 73 20 74 6f 20 69 6e 63 6c 75 64 65 20 66 6f 72 0a | ueries/responses.to.include.for. |
| 15520 | 63 6f 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 | contexbt.")..(cl-defgeneric.gpte |
| 15540 | 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 61 20 28 62 61 63 6b 65 6e 64 20 70 72 6f 6d 70 74 73 | l--request-data.(backend.prompts |
| 15560 | 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 61 20 70 6c 69 73 74 20 6f 66 20 61 6c 6c 20 64 61 74 | )..."Generate.a.plist.of.all.dat |
| 15580 | 61 20 66 6f 72 20 61 6e 20 4c 4c 4d 20 71 75 65 72 79 2e 0a 0a 42 41 43 4b 45 4e 44 20 69 73 20 | a.for.an.LLM.query...BACKEND.is. |
| 155a0 | 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a 0a 50 52 4f 4d 50 54 53 | the.LLM.backend.in.use...PROMPTS |
| 155c0 | 20 69 73 20 74 68 65 20 70 6c 69 73 74 20 6f 66 20 70 72 65 76 69 6f 75 73 20 75 73 65 72 20 71 | .is.the.plist.of.previous.user.q |
| 155e0 | 75 65 72 69 65 73 20 61 6e 64 20 4c 4c 4d 20 72 65 73 70 6f 6e 73 65 73 2e 22 29 0a 0a 3b 3b 20 | ueries.and.LLM.responses.")..;;. |
| 15600 | 54 4f 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 | TODO:.Use.`run-hook-wrapped'.wit |
| 15620 | 68 20 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 | h.an.accumulator.instead.to.hand |
| 15640 | 6c 65 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 | le.;;.buffer-local.hooks,.etc..( |
| 15660 | 64 65 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 | defun.gptel--transform-response. |
| 15680 | 28 63 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 | (content-str.buffer)..."Filter.C |
| 156a0 | 4f 4e 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 | ONTENT-STR.through.`gptel-respon |
| 156c0 | 73 65 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 | se-filter-functions`...BUFFER.is |
| 156e0 | 20 70 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 | .passed.along.with.CONTENT-STR.t |
| 15700 | 6f 20 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 | o.each.function.in.this.hook.".. |
| 15720 | 20 28 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 | .(let.((filtered-str.content-str |
| 15740 | 29 29 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 | )).....(dolist.(filter-func.gpte |
| 15760 | 6c 2d 72 65 73 70 6f 6e 73 65 2d 66 69 6c 74 65 72 2d 66 75 6e 63 74 69 6f 6e 73 20 66 69 6c 74 | l-response-filter-functions.filt |
| 15780 | 65 72 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 | ered-str).......(condition-case. |
| 157a0 | 6e 69 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 | nil...........(when.(functionp.f |
| 157c0 | 69 6c 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 | ilter-func).............(setq.fi |
| 157e0 | 6c 74 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 | ltered-str...................(fu |
| 15800 | 6e 63 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 | ncall.filter-func.filtered-str.b |
| 15820 | 75 66 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 | uffer))).........(error......... |
| 15840 | 20 28 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 | .(display-warning.'(gptel.filter |
| 15860 | 2d 66 75 6e 63 74 69 6f 6e 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -functions)..................... |
| 15880 | 20 20 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 | ......(format."Function.%S.retur |
| 158a0 | 6e 65 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 | ned.an.error"................... |
| 158c0 | 20 20 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 | ................filter-func))))) |
| 158e0 | 29 29 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 | ))..(defun.gptel--convert-org.(c |
| 15900 | 6f 6e 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 | ontent.buffer)..."Transform.CONT |
| 15920 | 45 4e 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 | ENT.according.to.required.major- |
| 15940 | 6d 6f 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 | mode...Currently.only.`org-mode' |
| 15960 | 20 69 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 | .is.handled...BUFFER.is.the.LLM. |
| 15980 | 69 6e 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 | interaction.buffer."...(pcase.(b |
| 159a0 | 75 66 66 65 72 2d 6c 6f 63 61 6c 2d 76 61 6c 75 65 20 27 6d 61 6a 6f 72 2d 6d 6f 64 65 20 62 75 | uffer-local-value.'major-mode.bu |
| 159c0 | 66 66 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 | ffer).....('org-mode.(gptel--con |
| 159e0 | 76 65 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 | vert-markdown->org.content)).... |
| 15a00 | 20 28 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 | .(_.content)))..(defun.gptel--ur |
| 15a20 | 6c 2d 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 | l-get-response.(info.&optional.c |
| 15a40 | 61 6c 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 | allback)..."Fetch.response.to.pr |
| 15a60 | 6f 6d 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 | ompt.in.INFO.from.the.LLM...INFO |
| 15a80 | 20 69 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 | .is.a.plist.with.the.following.k |
| 15aa0 | 65 79 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 | eys:.-.:data.....(the.data.being |
| 15ac0 | 20 73 65 6e 74 29 0a 2d 20 3a 62 75 66 66 65 72 20 20 20 28 74 68 65 20 67 70 74 65 6c 20 62 75 | .sent).-.:buffer...(the.gptel.bu |
| 15ae0 | 66 66 65 72 29 0a 2d 20 3a 70 6f 73 69 74 69 6f 6e 20 28 6d 61 72 6b 65 72 20 61 74 20 77 68 69 | ffer).-.:position.(marker.at.whi |
| 15b00 | 63 68 20 74 6f 20 69 6e 73 65 72 74 20 74 68 65 20 72 65 73 70 6f 6e 73 65 29 2e 0a 0a 43 61 6c | ch.to.insert.the.response)...Cal |
| 15b20 | 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 73 65 20 61 6e 64 | l.CALLBACK.with.the.response.and |
| 15b40 | 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 74 65 64 0a 74 68 | .INFO.afterwards...If.omitted.th |
| 15b60 | 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 6f 20 74 68 65 20 | e.response.is.inserted.into.the. |
| 15b80 | 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 2e 22 0a 20 20 28 | current.buffer.after.point."...( |
| 15ba0 | 6c 65 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 | let*.((inhibit-message.t)....... |
| 15bc0 | 20 20 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 | ...(message-log-max.nil)........ |
| 15be0 | 20 20 28 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 | ..(backend.gptel-backend)....... |
| 15c00 | 20 20 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 | ...(url-request-method."POST").. |
| 15c20 | 20 20 20 20 20 20 20 20 28 75 72 6c 2d 72 65 71 75 65 73 74 2d 65 78 74 72 61 2d 68 65 61 64 65 | ........(url-request-extra-heade |
| 15c40 | 72 73 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 | rs...........(append.'(("Content |
| 15c60 | 2d 54 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 | -Type"..."application/json"))... |
| 15c80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 68 65 61 64 | ................(when-let.((head |
| 15ca0 | 65 72 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 | er.(gptel-backend-header.gptel-b |
| 15cc0 | 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 | ackend))).....................(i |
| 15ce0 | 66 20 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 | f.(functionp.header)............ |
| 15d00 | 20 20 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 | .............(funcall.header).he |
| 15d20 | 61 64 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 | ader)))).........(url-request-da |
| 15d40 | 74 61 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 | ta..........(encode-coding-strin |
| 15d60 | 67 0a 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 | g...........(gptel--json-encode. |
| 15d80 | 28 70 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 | (plist-get.info.:data))......... |
| 15da0 | 20 20 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 | ..'utf-8))).....(when.gptel-log- |
| 15dc0 | 6c 65 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 | level...............;logging.... |
| 15de0 | 20 20 20 28 77 68 65 6e 20 28 65 71 20 67 70 74 65 6c 2d 6c 6f 67 2d 6c 65 76 65 6c 20 27 64 65 | ...(when.(eq.gptel-log-level.'de |
| 15e00 | 62 75 67 29 0a 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d | bug).........(gptel--log.(gptel- |
| 15e20 | 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -json-encode.................... |
| 15e40 | 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 61 20 28 70 61 69 72 29 20 28 63 6f 6e 73 20 28 | ..(mapcar.(lambda.(pair).(cons.( |
| 15e60 | 69 6e 74 65 72 6e 20 28 63 61 72 20 70 61 69 72 29 29 20 28 63 64 72 20 70 61 69 72 29 29 29 0a | intern.(car.pair)).(cdr.pair))). |
| 15e80 | 20 20 20 20 20 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 | .............................url |
| 15ea0 | 2d 72 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 | -request-extra-headers))........ |
| 15ec0 | 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 29 | ............."request.headers")) |
| 15ee0 | 0a 20 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 | .......(gptel--log.url-request-d |
| 15f00 | 61 74 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 | ata."request.body")).....(url-re |
| 15f20 | 74 72 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 | trieve.(let.((backend-url.(gptel |
| 15f40 | 2d 62 61 63 6b 65 6e 64 2d 75 72 6c 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 | -backend-url.gptel-backend)))... |
| 15f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 | ..................(if.(functionp |
| 15f80 | 20 62 61 63 6b 65 6e 64 2d 75 72 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .backend-url)................... |
| 15fa0 | 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 20 62 61 63 6b | ......(funcall.backend-url).back |
| 15fc0 | 65 6e 64 2d 75 72 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d | end-url))...................(lam |
| 15fe0 | 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 63 61 | bda.(_).....................(pca |
| 16000 | 73 65 2d 6c 65 74 20 28 28 60 28 2c 72 65 73 70 6f 6e 73 65 20 2c 68 74 74 70 2d 6d 73 67 20 2c | se-let.((`(,response.,http-msg., |
| 16020 | 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | error).......................... |
| 16040 | 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 75 72 6c 2d 70 61 72 73 65 2d 72 65 73 70 6f 6e | ........(gptel--url-parse-respon |
| 16060 | 73 65 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 | se.backend.(current-buffer)))).. |
| 16080 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6c 69 73 74 2d 70 75 74 20 | .....................(plist-put. |
| 160a0 | 69 6e 66 6f 20 3a 73 74 61 74 75 73 20 68 74 74 70 2d 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 | info.:status.http-msg).......... |
| 160c0 | 20 20 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 | .............(when.error.(plist- |
| 160e0 | 70 75 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 | put.info.:error.error))......... |
| 16100 | 20 20 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 | ..............(funcall.(or.callb |
| 16120 | 61 63 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 | ack.#'gptel--insert-response)... |
| 16140 | 20 20 20 20 20 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 |
| 16160 | 70 6f 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 | ponse.info)..................... |
| 16180 | 20 20 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 | ..(kill-buffer)))............... |
| 161a0 | 20 20 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 | ....nil.t.nil)))..(cl-defgeneric |
| 161c0 | 20 67 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 | .gptel--parse-response.(backend. |
| 161e0 | 72 65 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 | response.proc-info)..."Response. |
| 16200 | 65 78 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 | extractor.for.LLM.requests...BAC |
| 16220 | 4b 45 4e 44 20 69 73 20 74 68 65 20 4c 4c 4d 20 62 61 63 6b 65 6e 64 20 69 6e 20 75 73 65 2e 0a | KEND.is.the.LLM.backend.in.use.. |
| 16240 | 0a 52 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 | .RESPONSE.is.the.parsed.JSON.of. |
| 16260 | 74 68 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 | the.response,.as.a.plist...PROC- |
| 16280 | 49 4e 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 | INFO.is.a.plist.with.process.inf |
| 162a0 | 6f 72 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 | ormation.and.other.context..See. |
| 162c0 | 60 67 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 | `gptel-curl--get-response'.for.i |
| 162e0 | 74 73 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 | ts.contents.")..(defvar.url-http |
| 16300 | 2d 65 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 | -end-of-headers).(defvar.url-htt |
| 16320 | 70 2d 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 | p-response-status).(defun.gptel- |
| 16340 | 2d 75 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 | -url-parse-response.(backend.res |
| 16360 | 70 6f 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 | ponse-buffer)..."Parse.response. |
| 16380 | 66 72 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 | from.BACKEND.in.RESPONSE-BUFFER. |
| 163a0 | 22 0a 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 | "...(when.(buffer-live-p.respons |
| 163c0 | 65 2d 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 | e-buffer).....(with-current-buff |
| 163e0 | 65 72 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 | er.response-buffer.......(when.g |
| 16400 | 70 74 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 | ptel-log-level.............;logg |
| 16420 | 69 6e 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 | ing.........(save-excursion..... |
| 16440 | 20 20 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 | ......(goto-char.url-http-end-of |
| 16460 | 2d 68 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 | -headers)...........(when.(eq.gp |
| 16480 | 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 20 20 | tel-log-level.'debug)........... |
| 164a0 | 20 20 28 67 70 74 65 6c 2d 2d 6c 6f 67 20 28 67 70 74 65 6c 2d 2d 6a 73 6f 6e 2d 65 6e 63 6f 64 | ..(gptel--log.(gptel--json-encod |
| 164c0 | 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 | e.(buffer-substring-no-propertie |
| 164e0 | 73 20 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 | s.(point-min).(point)))......... |
| 16500 | 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 68 65 61 64 65 72 | ................"response.header |
| 16520 | 73 22 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 | s"))...........(gptel--log.(buff |
| 16540 | 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e | er-substring-no-properties.(poin |
| 16560 | 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | t).(point-max))................. |
| 16580 | 20 20 20 20 20 20 22 72 65 73 70 6f 6e 73 65 20 62 6f 64 79 22 29 29 29 0a 20 20 20 20 20 20 28 | ......"response.body"))).......( |
| 165a0 | 69 66 2d 6c 65 74 2a 20 28 28 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 | if-let*.((http-msg.(string-trim. |
| 165c0 | 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e | (buffer-substring.(line-beginnin |
| 165e0 | 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | g-position)..................... |
| 16600 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 16620 | 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))))..... |
| 16640 | 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 6f | ............(response.(progn.(go |
| 16660 | 74 6f 2d 63 68 61 72 20 75 72 6c 2d 68 74 74 70 2d 65 6e 64 2d 6f 66 2d 68 65 61 64 65 72 73 29 | to-char.url-http-end-of-headers) |
| 16680 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 166a0 | 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 | ..(condition-case.nil........... |
| 166c0 | 20 20 20 20 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 |
| 166e0 | 6c 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l--json-read)................... |
| 16700 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 27 6a 73 6f 6e 2d 72 65 | .................(error.'json-re |
| 16720 | 61 64 2d 65 72 72 6f 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 | ad-error)))))...........(cond... |
| 16740 | 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 20 48 61 6e 64 6c 65 20 74 68 65 20 63 61 | ..........;;.FIXME.Handle.the.ca |
| 16760 | 73 65 20 77 68 65 72 65 20 48 54 54 50 20 31 30 30 20 69 73 20 66 6f 6c 6c 6f 77 65 64 20 62 79 | se.where.HTTP.100.is.followed.by |
| 16780 | 20 48 54 54 50 20 28 6e 6f 74 20 32 30 30 29 20 42 55 47 20 23 31 39 34 0a 20 20 20 20 20 20 20 | .HTTP.(not.200).BUG.#194........ |
| 167a0 | 20 20 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 | ....((or.(memq.url-http-response |
| 167c0 | 2d 73 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 | -status.'(200.100))............. |
| 167e0 | 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 2d 70 20 22 5c 5c 28 3f 3a 31 5c 5c 7c 32 5c | ....(string-match-p."\\(?:1\\|2\ |
| 16800 | 5c 29 30 30 20 4f 4b 22 20 68 74 74 70 2d 6d 73 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | \)00.OK".http-msg))............. |
| 16820 | 28 6c 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 | (list.(string-trim.(gptel--parse |
| 16840 | 2d 72 65 73 70 6f 6e 73 65 20 62 61 63 6b 65 6e 64 20 72 65 73 70 6f 6e 73 65 0a 20 20 20 20 20 | -response.backend.response...... |
| 16860 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 16880 | 20 20 20 20 20 20 20 20 27 28 3a 62 75 66 66 65 72 20 72 65 73 70 6f 6e 73 65 2d 62 75 66 66 65 | ........'(:buffer.response-buffe |
| 168a0 | 72 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 | r)))....................http-msg |
| 168c0 | 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 70 6c 69 73 74 2d 67 65 74 20 72 65 73 70 6f 6e | ))............((plist-get.respon |
| 168e0 | 73 65 20 3a 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 65 | se.:error).............(let*.((e |
| 16900 | 72 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 | rror-data.(plist-get.response.:e |
| 16920 | 72 72 6f 72 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 | rror))....................(error |
| 16940 | 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 |
| 16960 | 61 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 | age))....................(error- |
| 16980 | 74 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 | type.(plist-get.error-data.:type |
| 169a0 | 29 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 | ))....................(backend-n |
| 169c0 | 61 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 | ame.(gptel-backend-name.backend) |
| 169e0 | 29 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 | ))...............(if.(stringp.er |
| 16a00 | 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 28 70 72 6f | ror-data)...................(pro |
| 16a20 | 67 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 | gn.(message."%s.error:.(%s).%s". |
| 16a40 | 62 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 | backend-name.http-msg.error-data |
| 16a60 | 29 0a 20 20 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 |
| 16a80 | 20 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 | .error-msg.(string-trim.error-da |
| 16aa0 | 74 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 | ta))).................(when.(str |
| 16ac0 | 69 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 | ingp.error-msg)................. |
| 16ae0 | 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 20 65 72 72 6f 72 3a 20 28 25 73 29 20 25 73 22 20 62 | ..(message."%s.error:.(%s).%s".b |
| 16b00 | 61 63 6b 65 6e 64 2d 6e 61 6d 65 20 68 74 74 70 2d 6d 73 67 20 28 73 74 72 69 6e 67 2d 74 72 69 | ackend-name.http-msg.(string-tri |
| 16b20 | 6d 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 | m.error-msg))).................( |
| 16b40 | 77 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 | when.error-type.(setq.http-msg.( |
| 16b60 | 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 74 72 69 6e | concat."("..http-msg.").".(strin |
| 16b80 | 67 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 | g-trim.error-type))))).......... |
| 16ba0 | 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 20 68 74 74 70 2d | .....(list.nil.(concat."(".http- |
| 16bc0 | 6d 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 | msg.").".(or.error-msg.""))))).. |
| 16be0 | 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 72 65 73 70 6f 6e 73 65 20 27 6a 73 6f 6e 2d 72 65 | ..........((eq.response.'json-re |
| 16c00 | 61 64 2d 65 72 72 6f 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6e 69 6c 20 | ad-error).............(list.nil. |
| 16c20 | 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 4d 61 6c 66 6f 72 6d 65 | (concat."(".http-msg.").Malforme |
| 16c40 | 64 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 | d.JSON.in.response.")."json-read |
| 16c60 | 2d 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 | -error"))............(t.(list.ni |
| 16c80 | 6c 20 28 63 6f 6e 63 61 74 20 22 28 22 20 68 74 74 70 2d 6d 73 67 20 22 29 20 43 6f 75 6c 64 20 | l.(concat."(".http-msg.").Could. |
| 16ca0 | 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 20 20 20 | not.parse.HTTP.response.")...... |
| 16cc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 | ..............."Could.not.parse. |
| 16ce0 | 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 | HTTP.response."))).........(list |
| 16d00 | 20 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 | .nil.(concat."(".http-msg.").Cou |
| 16d20 | 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 50 20 72 65 73 70 6f 6e 73 65 2e 22 29 0a 20 20 | ld.not.parse.HTTP.response.")... |
| 16d40 | 20 20 20 20 20 20 20 20 20 20 20 20 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 48 54 54 | ............"Could.not.parse.HTT |
| 16d60 | 50 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 | P.response.")))))..(cl-defun.gpt |
| 16d80 | 65 6c 2d 2d 73 61 6e 69 74 69 7a 65 2d 6d 6f 64 65 6c 20 28 26 6b 65 79 20 28 62 61 63 6b 65 6e | el--sanitize-model.(&key.(backen |
| 16da0 | 64 20 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | d.gptel-backend)................ |
| 16dc0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 64 65 6c 20 67 70 | .......................(model.gp |
| 16de0 | 74 65 6c 2d 6d 6f 64 65 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tel-model)...................... |
| 16e00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 6f 6f 73 68 20 74 29 29 0a 20 20 22 | .................(shoosh.t))..." |
| 16e20 | 43 68 65 63 6b 20 69 66 20 4d 4f 44 45 4c 20 69 73 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 42 | Check.if.MODEL.is.available.in.B |
| 16e40 | 41 43 4b 45 4e 44 2c 20 61 64 6a 75 73 74 20 61 63 63 6f 72 64 69 6e 67 6c 79 2e 0a 0a 49 66 20 | ACKEND,.adjust.accordingly...If. |
| 16e60 | 53 48 4f 4f 53 48 20 69 73 20 74 72 75 65 2c 20 64 6f 6e 27 74 20 69 73 73 75 65 20 61 20 77 61 | SHOOSH.is.true,.don't.issue.a.wa |
| 16e80 | 72 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 | rning."...(let*.((available.(gpt |
| 16ea0 | 65 6c 2d 62 61 63 6b 65 6e 64 2d 6d 6f 64 65 6c 73 20 62 61 63 6b 65 6e 64 29 29 29 0a 20 20 20 | el-backend-models.backend))).... |
| 16ec0 | 20 28 75 6e 6c 65 73 73 20 28 6d 65 6d 62 65 72 20 6d 6f 64 65 6c 20 61 76 61 69 6c 61 62 6c 65 | .(unless.(member.model.available |
| 16ee0 | 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 61 6c 6c 62 61 63 6b 20 28 63 61 72 20 61 76 61 | ).......(let.((fallback.(car.ava |
| 16f00 | 69 6c 61 62 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 73 68 6f 6f 73 68 | ilable))).........(unless.shoosh |
| 16f20 | 0a 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 77 61 72 6e 69 6e 67 0a 20 20 20 20 | ...........(display-warning..... |
| 16f40 | 20 20 20 20 20 20 20 27 67 70 74 65 6c 0a 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 | .......'gptel............(format |
| 16f60 | 20 28 63 6f 6e 63 61 74 20 22 50 72 65 66 65 72 72 65 64 20 60 67 70 74 65 6c 2d 6d 6f 64 65 6c | .(concat."Preferred.`gptel-model |
| 16f80 | 27 20 5c 22 25 73 5c 22 20 6e 6f 74 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | '.\"%s\".not"................... |
| 16fa0 | 20 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 65 64 20 69 6e 20 5c 22 25 73 5c 22 2c 20 75 | ........."supported.in.\"%s\",.u |
| 16fc0 | 73 69 6e 67 20 5c 22 25 73 5c 22 20 69 6e 73 74 65 61 64 22 29 0a 20 20 20 20 20 20 20 20 20 20 | sing.\"%s\".instead")........... |
| 16fe0 | 20 20 20 20 20 20 20 20 20 6d 6f 64 65 6c 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 6e 61 | .........model.(gptel-backend-na |
| 17000 | 6d 65 20 62 61 63 6b 65 6e 64 29 20 66 61 6c 6c 62 61 63 6b 29 29 29 0a 20 20 20 20 20 20 20 20 | me.backend).fallback)))......... |
| 17020 | 28 73 65 74 71 2d 6c 6f 63 61 6c 20 67 70 74 65 6c 2d 6d 6f 64 65 6c 20 66 61 6c 6c 62 61 63 6b | (setq-local.gptel-model.fallback |
| 17040 | 29 29 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 67 70 74 | )))))..;;;###autoload.(defun.gpt |
| 17060 | 65 6c 20 28 6e 61 6d 65 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 20 69 6e 69 74 69 61 6c 20 69 6e 74 | el.(name.&optional._.initial.int |
| 17080 | 65 72 61 63 74 69 76 65 70 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6f 72 20 73 74 61 72 74 | eractivep)..."Switch.to.or.start |
| 170a0 | 20 61 20 63 68 61 74 20 73 65 73 73 69 6f 6e 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 57 69 74 68 | .a.chat.session.with.NAME...With |
| 170c0 | 20 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 | .a.prefix.arg,.query.for.a.(new) |
| 170e0 | 20 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 | .session.name...Ask.for.API-KEY. |
| 17100 | 69 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 | if.`gptel-api-key'.is.unset...If |
| 17120 | 20 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 | .region.is.active,.use.it.as.the |
| 17140 | 20 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 | .INITIAL.prompt...Returns.the.bu |
| 17160 | 66 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 | ffer.created.or.switched.to...IN |
| 17180 | 54 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 | TERACTIVEP.is.t.when.gptel.is.ca |
| 171a0 | 6c 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 | lled.interactively."...(interact |
| 171c0 | 69 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 | ive....(let*.((backend.(default- |
| 171e0 | 76 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 | value.'gptel-backend)).......... |
| 17200 | 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 20 28 66 6f 72 6d 61 | .(backend-name............(forma |
| 17220 | 74 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 | t."*%s*".(gptel-backend-name.bac |
| 17240 | 6b 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 | kend))))......(list.(if.current- |
| 17260 | 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 61 64 2d | prefix-arg................(read- |
| 17280 | 73 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 | string."Session.name:."......... |
| 172a0 | 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 74 65 2d 6e 65 | ....................(generate-ne |
| 172c0 | 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 20 20 20 20 20 | w-buffer-name................... |
| 172e0 | 20 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 | ...........backend-name))....... |
| 17300 | 20 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 | .......backend-name)............ |
| 17320 | 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............. |
| 17340 | 20 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 | ...(gptel--get-api-key.......... |
| 17360 | 20 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 | .......(gptel-backend-key.backen |
| 17380 | 64 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 | d))..............((error.user-er |
| 173a0 | 72 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 | ror)...............(setq.gptel-a |
| 173c0 | 70 69 2d 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 | pi-key.....................(read |
| 173e0 | 2d 70 61 73 73 77 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f | -passwd......................(fo |
| 17400 | 72 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 | rmat."%s.API.key:.".backend-name |
| 17420 | 29 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 | )))))............(and.(use-regio |
| 17440 | 6e 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 | n-p).................(buffer-sub |
| 17460 | 73 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 | string.(region-beginning)....... |
| 17480 | 20 20 20 20 20 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 |
| 174a0 | 69 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 | ion-end)))............t)))...(wi |
| 174c0 | 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 | th-current-buffer.(get-buffer-cr |
| 174e0 | 65 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 | eate.name).....(cond.;Set.major. |
| 17500 | 6d 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 | mode......((eq.major-mode.gptel- |
| 17520 | 64 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 | default-mode))......((eq.gptel-d |
| 17540 | 65 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 | efault-mode.'text-mode).......(t |
| 17560 | 65 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 | ext-mode).......(visual-line-mod |
| 17580 | 65 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 | e.1))......(t.(funcall.gptel-def |
| 175a0 | 61 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 | ault-mode))).....(gptel--sanitiz |
| 175c0 | 65 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 | e-model.:backend.(default-value. |
| 175e0 | 27 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)................. |
| 17600 | 20 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 | ...........:model.(default-value |
| 17620 | 20 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 | .'gptel-model).................. |
| 17640 | 20 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 | ..........:shoosh.nil).....(unle |
| 17660 | 73 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 | ss.gptel-mode.(gptel-mode.1))... |
| 17680 | 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 |
| 176a0 | 6b 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 | kip-chars-backward."\t\r\n").... |
| 176c0 | 20 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 | .(if.(bobp).(insert.(or.initial. |
| 176e0 | 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 29 0a | (gptel-prompt-prefix-string)))). |
| 17700 | 20 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 | ....(when.interactivep.......(di |
| 17720 | 73 70 6c 61 79 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 67 70 | splay-buffer.(current-buffer).gp |
| 17740 | 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 29 0a 20 20 20 20 20 | tel-display-buffer-action)...... |
| 17760 | 20 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 | .(message."Send.your.query.with. |
| 17780 | 25 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 | %s!"................(substitute- |
| 177a0 | 63 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 | command-keys."\\[gptel-send]"))) |
| 177c0 | 0a 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 | .....(current-buffer)))....;;.Re |
| 177e0 | 73 70 6f 6e 73 65 20 74 77 65 61 6b 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 0a 0a 28 64 65 66 75 6e | sponse.tweaking.commands..(defun |
| 17800 | 20 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 72 65 73 70 6f 6e 73 65 2d 68 69 73 74 6f 72 79 20 | .gptel--attach-response-history. |
| 17820 | 28 68 69 73 74 6f 72 79 20 26 6f 70 74 69 6f 6e 61 6c 20 62 75 66 29 0a 20 20 22 41 74 74 61 63 | (history.&optional.buf)..."Attac |
| 17840 | 68 20 48 49 53 54 4f 52 59 20 74 6f 20 74 68 65 20 6e 65 78 74 20 67 70 74 65 6c 20 72 65 73 70 | h.HISTORY.to.the.next.gptel.resp |
| 17860 | 6f 6e 73 65 20 69 6e 20 62 75 66 66 65 72 20 42 55 46 2e 0a 0a 48 49 53 54 4f 52 59 20 69 73 20 | onse.in.buffer.BUF...HISTORY.is. |
| 17880 | 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 20 74 79 70 69 63 61 6c 6c 79 20 63 6f 6e 74 | a.list.of.strings.typically.cont |
| 178a0 | 61 69 6e 69 6e 67 20 74 65 78 74 20 72 65 70 6c 61 63 65 64 0a 62 79 20 67 70 74 65 6c 2e 20 20 | aining.text.replaced.by.gptel... |
| 178c0 | 42 55 46 20 69 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 66 20 6e 6f 74 | BUF.is.the.current.buffer.if.not |
| 178e0 | 20 73 70 65 63 69 66 69 65 64 2e 0a 0a 54 68 69 73 20 69 73 20 75 73 65 64 20 74 6f 20 6d 61 69 | .specified...This.is.used.to.mai |
| 17900 | 6e 74 61 69 6e 20 76 61 72 69 61 6e 74 73 20 6f 66 20 70 72 6f 6d 70 74 73 20 6f 72 20 72 65 73 | ntain.variants.of.prompts.or.res |
| 17920 | 70 6f 6e 73 65 73 20 74 6f 20 64 69 66 66 0a 61 67 61 69 6e 73 74 20 69 66 20 72 65 71 75 69 72 | ponses.to.diff.against.if.requir |
| 17940 | 65 64 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 | ed."...(with-current-buffer.(or. |
| 17960 | 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 72 65 | buf.(current-buffer)).....(letre |
| 17980 | 63 20 28 28 67 70 74 65 6c 2d 2d 61 74 74 61 63 68 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 | c.((gptel--attach-after......... |
| 179a0 | 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 62 20 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 | ......(lambda.(b.e)............. |
| 179c0 | 20 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 | ....(put-text-property.b.e.'gpte |
| 179e0 | 6c 2d 68 69 73 74 6f 72 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | l-history....................... |
| 17a00 | 20 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 | .............(append.(ensure-lis |
| 17a20 | 74 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 | t.history)...................... |
| 17a40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 63 68 61 72 2d | ......................(get-char- |
| 17a60 | 70 72 6f 70 65 72 74 79 20 28 31 2d 20 65 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 | property.(1-.e).'gptel-history)) |
| 17a80 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 | ).................(remove-hook.' |
| 17aa0 | 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 75 6e 63 74 69 6f 6e 73 0a 20 20 | gptel-post-response-functions... |
| 17ac0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 70 74 65 6c | ...........................gptel |
| 17ae0 | 2d 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 | --attach-after.'local))))....... |
| 17b00 | 28 61 64 64 2d 68 6f 6f 6b 20 27 67 70 74 65 6c 2d 70 6f 73 74 2d 72 65 73 70 6f 6e 73 65 2d 66 | (add-hook.'gptel-post-response-f |
| 17b20 | 75 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 | unctions.gptel--attach-after.... |
| 17b40 | 20 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 | .............nil.'local))))..(de |
| 17b60 | 66 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 | fun.gptel--ediff.(&optional.arg. |
| 17b80 | 62 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 | bounds-func)..."Ediff.response.a |
| 17ba0 | 74 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 | t.point.against.previous.gptel.r |
| 17bc0 | 65 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 | esponses...If.prefix.ARG.is.non- |
| 17be0 | 6e 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 | nil,.select.the.previous.respons |
| 17c00 | 65 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 | e.to.ediff.against.interactively |
| 17c20 | 2e 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 | ...If.specified,.use.BOUNDS-FUNC |
| 17c40 | 20 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 | .to.compute.the.bounds.of.the.re |
| 17c60 | 73 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 | sponse.at.point...This.can.be.us |
| 17c80 | 65 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 | ed.to.include.additional.context |
| 17ca0 | 20 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 | .for.the.ediff.session."...(inte |
| 17cc0 | 72 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 | ractive."P")...(when.(gptel--at- |
| 17ce0 | 72 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 | response-history-p).....(pcase-l |
| 17d00 | 65 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 | et*.((`(,beg...,end).(funcall.(o |
| 17d20 | 72 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 | r.bounds-func.#'gptel--get-bound |
| 17d40 | 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 65 76 2d 72 65 73 70 | s)))..................(prev-resp |
| 17d60 | 6f 6e 73 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 61 72 67 0a 20 | onse...................(if.arg.. |
| 17d80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 | .....................(completing |
| 17da0 | 2d 72 65 61 64 20 22 43 68 6f 6f 73 65 20 72 65 73 70 6f 6e 73 65 20 76 61 72 69 61 6e 74 20 74 | -read."Choose.response.variant.t |
| 17dc0 | 6f 20 64 69 66 66 20 61 67 61 69 6e 73 74 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | o.diff.against:."............... |
| 17de0 | 20 20 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 | .........................(get-ch |
| 17e00 | 61 72 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f | ar-property.(point).'gptel-histo |
| 17e20 | 72 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ry)............................. |
| 17e40 | 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ...........nil.t)............... |
| 17e60 | 20 20 20 20 20 20 28 63 61 72 2d 73 61 66 65 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 | ......(car-safe.(get-char-proper |
| 17e80 | 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 29 29 0a 20 20 | ty.(point).'gptel-history))))... |
| 17ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 65 20 6d 61 6a 6f | ...............(buffer-mode.majo |
| 17ec0 | 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 28 62 75 66 6e 61 6d | r-mode)..................(bufnam |
| 17ee0 | 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | e.(buffer-name))................ |
| 17f00 | 20 20 28 60 28 2c 6e 65 77 2d 62 75 66 20 2c 6e 65 77 2d 62 65 67 20 2c 6e 65 77 2d 65 6e 64 29 | ..(`(,new-buf.,new-beg.,new-end) |
| 17f20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 | ...................(with-current |
| 17f40 | 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 | -buffer.......................(g |
| 17f60 | 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 | et-buffer-create.(concat.bufname |
| 17f80 | 20 22 2d 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ."-PREVIOUS-*"))................ |
| 17fa0 | 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 20 74 29 | .....(let.((inhibit-read-only.t) |
| 17fc0 | 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 65 72 61 73 65 2d 62 | ).......................(erase-b |
| 17fe0 | 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 | uffer).......................(de |
| 18000 | 6c 61 79 2d 6d 6f 64 65 2d 68 6f 6f 6b 73 20 28 66 75 6e 63 61 6c 6c 20 62 75 66 66 65 72 2d 6d | lay-mode-hooks.(funcall.buffer-m |
| 18020 | 6f 64 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 76 69 73 | ode)).......................(vis |
| 18040 | 75 61 6c 2d 6c 69 6e 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ual-line-mode).................. |
| 18060 | 20 20 20 20 20 28 69 6e 73 65 72 74 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 | .....(insert.prev-response)..... |
| 18080 | 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 |
| 180a0 | 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | int-min))....................... |
| 180c0 | 28 6c 69 73 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 70 6f 69 6e 74 2d 6d 69 | (list.(current-buffer).(point-mi |
| 180e0 | 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 | n).(point-max)))))).......(unles |
| 18100 | 73 20 70 72 65 76 2d 72 65 73 70 6f 6e 73 65 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 67 70 74 | s.prev-response.(user-error."gpt |
| 18120 | 65 6c 20 72 65 73 70 6f 6e 73 65 20 69 73 20 61 64 64 69 74 69 76 65 3a 20 6e 6f 20 63 68 61 6e | el.response.is.additive:.no.chan |
| 18140 | 67 65 73 20 74 6f 20 65 64 69 66 66 22 29 29 0a 20 20 20 20 20 20 28 72 65 71 75 69 72 65 20 27 | ges.to.ediff")).......(require.' |
| 18160 | 65 64 69 66 66 29 0a 20 20 20 20 20 20 28 6c 65 74 72 65 63 20 28 28 63 77 63 20 28 63 75 72 72 | ediff).......(letrec.((cwc.(curr |
| 18180 | 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 0a 20 20 20 20 20 | ent-window-configuration))...... |
| 181a0 | 20 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 0a | ..........(gptel--ediff-restore. |
| 181c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 | ................(lambda.()...... |
| 181e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 | .............(when.(window-confi |
| 18200 | 67 75 72 61 74 69 6f 6e 2d 70 20 63 77 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | guration-p.cwc)................. |
| 18220 | 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 77 | ....(set-window-configuration.cw |
| 18240 | 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 | c))...................(kill-buff |
| 18260 | 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 61 74 20 62 75 66 6e 61 6d 65 20 22 | er.(get-buffer.(concat.bufname." |
| 18280 | 2d 50 52 45 56 49 4f 55 53 2d 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | -PREVIOUS-*")))................. |
| 182a0 | 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 28 63 6f 6e 63 | ..(kill-buffer.(get-buffer.(conc |
| 182c0 | 61 74 20 62 75 66 6e 61 6d 65 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 29 0a 20 20 20 20 20 | at.bufname."-CURRENT-*")))...... |
| 182e0 | 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 65 64 69 66 66 | .............(remove-hook.'ediff |
| 18300 | 2d 71 75 69 74 2d 68 6f 6f 6b 20 67 70 74 65 6c 2d 2d 65 64 69 66 66 2d 72 65 73 74 6f 72 65 29 | -quit-hook.gptel--ediff-restore) |
| 18320 | 29 29 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 65 64 69 66 66 2d 71 75 69 | ))).........(add-hook.'ediff-qui |
| 18340 | 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 0a 20 20 20 | t-hook.gptel--ediff-restore).... |
| 18360 | 20 20 20 20 20 28 61 70 70 6c 79 0a 20 20 20 20 20 20 20 20 20 23 27 65 64 69 66 66 2d 72 65 67 | .....(apply..........#'ediff-reg |
| 18380 | 69 6f 6e 73 2d 69 6e 74 65 72 6e 61 6c 0a 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 | ions-internal..........(get-buff |
| 183a0 | 65 72 20 28 65 64 69 66 66 2d 6d 61 6b 65 2d 63 6c 6f 6e 65 64 2d 62 75 66 66 65 72 20 28 63 75 | er.(ediff-make-cloned-buffer.(cu |
| 183c0 | 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 43 55 52 52 45 4e 54 2d 2a 22 29 29 0a 20 20 20 | rrent-buffer)."-CURRENT-*")).... |
| 183e0 | 20 20 20 20 20 20 62 65 67 20 65 6e 64 20 6e 65 77 2d 62 75 66 20 6e 65 77 2d 62 65 67 20 6e 65 | ......beg.end.new-buf.new-beg.ne |
| 18400 | 77 2d 65 6e 64 0a 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 28 6c 69 73 | w-end..........nil..........(lis |
| 18420 | 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 77 6f 72 64 77 69 73 65 20 27 77 6f 72 64 2d | t.'ediff-regions-wordwise.'word- |
| 18440 | 77 69 73 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 28 69 66 20 28 74 72 61 6e 73 | wise.nil)..........;;.(if.(trans |
| 18460 | 69 65 6e 74 2d 61 72 67 2d 76 61 6c 75 65 20 22 2d 77 22 20 61 72 67 73 29 0a 20 20 20 20 20 20 | ient-arg-value."-w".args)....... |
| 18480 | 20 20 20 3b 3b 20 20 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 77 | ...;;.....(list.'ediff-regions-w |
| 184a0 | 6f 72 64 77 69 73 65 20 27 77 6f 72 64 2d 77 69 73 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 | ordwise.'word-wise.nil)......... |
| 184c0 | 20 3b 3b 20 20 20 28 6c 69 73 74 20 27 65 64 69 66 66 2d 72 65 67 69 6f 6e 73 2d 6c 69 6e 65 77 | .;;...(list.'ediff-regions-linew |
| 184e0 | 69 73 65 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 29 29 29 29 29 0a 0a 28 64 | ise.nil.nil))..........)))))..(d |
| 18500 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6d 61 72 6b 2d 72 65 73 70 6f 6e 73 65 20 28 29 0a 20 20 22 | efun.gptel--mark-response.()..." |
| 18520 | 4d 61 72 6b 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 2c 20 69 66 | Mark.gptel.response.at.point,.if |
| 18540 | 20 61 6e 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 | .any."...(interactive)...(unless |
| 18560 | 20 28 67 70 74 65 6c 2d 2d 69 6e 2d 72 65 73 70 6f 6e 73 65 2d 70 29 20 28 75 73 65 72 2d 65 72 | .(gptel--in-response-p).(user-er |
| 18580 | 72 6f 72 20 22 4e 6f 20 67 70 74 65 6c 20 72 65 73 70 6f 6e 73 65 20 61 74 20 70 6f 69 6e 74 22 | ror."No.gptel.response.at.point" |
| 185a0 | 29 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 | ))...(pcase-let*.((`(,beg...,end |
| 185c0 | 29 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 | ).(gptel--get-bounds))).....(got |
| 185e0 | 6f 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 | o-char.beg).(push-mark).(goto-ch |
| 18600 | 61 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 | ar.end).(activate-mark)))..(defu |
| 18620 | 6e 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 | n.gptel--previous-variant.(&opti |
| 18640 | 6f 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 | onal.arg)..."Switch.to.previous. |
| 18660 | 67 70 74 65 6c 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 | gptel-response.at.this.point,.if |
| 18680 | 20 69 74 20 65 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 | .it.exists."...(interactive."p") |
| 186a0 | 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 20 | ...(pcase-let*.((`(,beg...,end). |
| 186c0 | 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 20 | (gptel--get-bounds))............ |
| 186e0 | 20 20 20 20 28 68 69 73 74 6f 72 79 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 74 79 20 | ....(history.(get-char-property. |
| 18700 | 28 70 6f 69 6e 74 29 20 27 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 | (point).'gptel-history))........ |
| 18720 | 20 20 20 20 20 20 20 20 28 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 2d 73 61 66 65 20 | ........(alt-response.(car-safe. |
| 18740 | 68 69 73 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 66 66 73 65 74 | history))................(offset |
| 18760 | 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 68 69 73 74 6f 72 79 20 61 6c 74 2d | )).....(unless.(and.history.alt- |
| 18780 | 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 | response).......(user-error."No. |
| 187a0 | 76 61 72 69 61 6e 74 20 72 65 73 70 6f 6e 73 65 73 20 61 76 61 69 6c 61 62 6c 65 22 29 29 0a 20 | variant.responses.available")).. |
| 187c0 | 20 20 20 28 69 66 20 28 3e 20 61 72 67 20 30 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 | ...(if.(>.arg.0).........(setq.h |
| 187e0 | 69 73 74 6f 72 79 20 28 61 70 70 65 6e 64 20 28 63 64 72 20 68 69 73 74 6f 72 79 29 0a 20 20 20 | istory.(append.(cdr.history).... |
| 18800 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 | ...........................(list |
| 18820 | 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 | .(buffer-substring-no-properties |
| 18840 | 20 62 65 67 20 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 20 20 20 20 20 20 | .beg.end)))).......(setq........ |
| 18860 | 61 6c 74 2d 72 65 73 70 6f 6e 73 65 20 28 63 61 72 20 28 6c 61 73 74 20 68 69 73 74 6f 72 79 29 | alt-response.(car.(last.history) |
| 18880 | 29 0a 20 20 20 20 20 20 20 68 69 73 74 6f 72 79 20 28 63 6f 6e 73 20 28 62 75 66 66 65 72 2d 73 | )........history.(cons.(buffer-s |
| 188a0 | 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 65 6e 64 29 0a | ubstring-no-properties.beg.end). |
| 188c0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 62 75 74 6c 61 73 74 20 68 | .....................(nbutlast.h |
| 188e0 | 69 73 74 6f 72 79 29 29 29 29 0a 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 | istory)))).....(add-text-propert |
| 18900 | 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 30 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 | ies..............0.(length.alt-r |
| 18920 | 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 67 70 74 65 6c 20 72 65 | esponse)..............`(gptel.re |
| 18940 | 73 70 6f 6e 73 65 20 67 70 74 65 6c 2d 68 69 73 74 6f 72 79 20 2c 68 69 73 74 6f 72 79 29 0a 20 | sponse.gptel-history.,history).. |
| 18960 | 20 20 20 20 20 20 20 20 20 20 20 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 73 | ............alt-response).....(s |
| 18980 | 65 74 71 20 6f 66 66 73 65 74 20 28 6d 69 6e 20 28 2d 20 28 70 6f 69 6e 74 29 20 62 65 67 29 20 | etq.offset.(min.(-.(point).beg). |
| 189a0 | 28 31 2d 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 0a 20 20 20 | (1-.(length.alt-response)))).... |
| 189c0 | 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 28 69 6e | .(delete-region.beg.end).....(in |
| 189e0 | 73 65 72 74 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | sert.alt-response).....(goto-cha |
| 18a00 | 72 20 28 2b 20 62 65 67 20 6f 66 66 73 65 74 29 29 0a 20 20 20 20 28 70 75 6c 73 65 2d 6d 6f 6d | r.(+.beg.offset)).....(pulse-mom |
| 18a20 | 65 6e 74 61 72 79 2d 68 69 67 68 6c 69 67 68 74 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 2b 20 62 | entary-highlight-region.beg.(+.b |
| 18a40 | 65 67 20 28 6c 65 6e 67 74 68 20 61 6c 74 2d 72 65 73 70 6f 6e 73 65 29 29 29 29 29 0a 0a 28 64 | eg.(length.alt-response)))))..(d |
| 18a60 | 65 66 75 6e 20 67 70 74 65 6c 2d 2d 6e 65 78 74 2d 76 61 72 69 61 6e 74 20 28 26 6f 70 74 69 6f | efun.gptel--next-variant.(&optio |
| 18a80 | 6e 61 6c 20 61 72 67 29 0a 20 20 22 53 77 69 74 63 68 20 74 6f 20 6e 65 78 74 20 67 70 74 65 6c | nal.arg)..."Switch.to.next.gptel |
| 18aa0 | 2d 72 65 73 70 6f 6e 73 65 20 61 74 20 74 68 69 73 20 70 6f 69 6e 74 2c 20 69 66 20 69 74 20 65 | -response.at.this.point,.if.it.e |
| 18ac0 | 78 69 73 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 20 28 67 | xists."...(interactive."p")...(g |
| 18ae0 | 70 74 65 6c 2d 2d 70 72 65 76 69 6f 75 73 2d 76 61 72 69 61 6e 74 20 28 2d 20 61 72 67 29 29 29 | ptel--previous-variant.(-.arg))) |
| 18b00 | 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 29 0a 3b 3b 3b 20 67 70 74 65 6c 2e 65 6c 20 | ..(provide.'gptel).;;;.gptel.el. |
| 18b20 | 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ends.here....................... |
| 18b40 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18b60 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 18b80 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 74 72 61 6e 73 69 65 | gptel-20240404.813/gptel-transie |
| 18c20 | 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 00 | nt.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 35 31 36 00 20 30 00 00 00 | 0107735.00000000000.015516..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 61 6e 74 68 72 6f 70 | gptel-20240404.813/gptel-anthrop |
| 21e20 | 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 00 | ic.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 34 36 34 00 20 30 00 00 00 | 0013450.00000000000.015464..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 70 6b 67 2e 65 6c 00 | gptel-20240404.813/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 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 32 36 34 00 20 30 00 00 00 | 0000676.00000000000.014264..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 30 | (define-package."gptel"."2024040 |
| 23a20 | 34 2e 38 31 33 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 72 | 4.813"."Interact.with.ChatGPT.or |
| 23a40 | 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 0a | .other.LLMs"...'((emacs."27.1"). |
| 23a60 | 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 6d | ....(transient."0.4.0").....(com |
| 23a80 | 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 37 62 36 65 | pat."29.1.4.1"))...:commit."7b6e |
| 23aa0 | 33 63 35 39 30 30 39 62 39 37 64 63 65 66 61 66 65 31 32 34 61 61 62 33 61 32 39 36 36 33 63 63 | 3c59009b97dcefafe124aab3a29663cc |
| 23ac0 | 62 30 38 38 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 69 | b088".:authors...'(("Karthik.Chi |
| 23ae0 | 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 28 | kmagalur"))...:maintainers...'(( |
| 23b00 | 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 74 | "Karthik.Chikmagalur"))...:maint |
| 23b20 | 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 29 | ainer...'("Karthik.Chikmagalur") |
| 23b40 | 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 0a | ...:keywords...'("convenience"). |
| 23b60 | 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 68 | ..:url."https://github.com/karth |
| 23b80 | 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 0a | ink/gptel").;;.Local.Variables:. |
| 23ba0 | 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 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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 6f 72 67 2e 65 6c 00 | gptel-20240404.813/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 32 37 32 00 20 30 00 00 00 | 0044407.00000000000.014272..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 30 34 2e 38 31 33 2f 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e | gptel-20240404.813/gptel-ollama. |
| 28820 | 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | el.............................. |
| 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 33 32 33 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 34 37 34 35 00 20 30 00 00 00 | 0013237.00000000000.014745..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 | 63 6f 6e 74 65 78 74 20 6e 69 6c 0a 20 20 22 43 6f 6e 74 65 78 74 20 66 6f 72 20 6f 6c 6c 61 6d | context.nil..."Context.for.ollam |
| 28f00 | 61 20 63 6f 6e 76 65 72 73 61 74 69 6f 6e 73 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 20 | a.conversations...This.variable. |
| 28f20 | 68 6f 6c 64 73 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 72 72 61 79 20 66 6f 72 20 63 6f 6e 76 | holds.the.context.array.for.conv |
| 28f40 | 65 72 73 61 74 69 6f 6e 73 20 77 69 74 68 0a 4f 6c 6c 61 6d 61 20 6d 6f 64 65 6c 73 2e 22 29 0a | ersations.with.Ollama.models."). |
| 28f60 | 0a 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 63 75 72 6c 2d 2d 70 61 72 73 65 | .(cl-defmethod.gptel-curl--parse |
| 28f80 | 2d 73 74 72 65 61 6d 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 | -stream.((_backend.gptel-ollama) |
| 28fa0 | 20 69 6e 66 6f 29 0a 20 20 22 3b 54 4f 44 4f 3a 20 22 0a 20 20 28 77 68 65 6e 20 28 62 6f 62 70 | .info)...";TODO:."...(when.(bobp |
| 28fc0 | 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 7b 22 29 0a 20 | ).....(re-search-forward."^{").. |
| 28fe0 | 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 30 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 63 | ...(forward-line.0))...(let*.((c |
| 29000 | 6f 6e 74 65 6e 74 2d 73 74 72 73 29 20 28 63 6f 6e 74 65 6e 74 29 20 28 70 74 20 28 70 6f 69 6e | ontent-strs).(content).(pt.(poin |
| 29020 | 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 69 74 69 6f 6e 2d 63 61 73 65 20 6e 69 6c 0a 20 20 20 | t))).....(condition-case.nil.... |
| 29040 | 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 65 74 71 20 63 6f 6e 74 65 6e 74 20 28 67 70 74 65 6c | .....(while.(setq.content.(gptel |
| 29060 | 2d 2d 6a 73 6f 6e 2d 72 65 61 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 74 | --json-read))...........(setq.pt |
| 29080 | 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 6f 6e 65 20 | .(point))...........(let.((done. |
| 290a0 | 28 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 64 6f 6e 65 29 29 0a 20 20 20 20 20 20 20 | (map-elt.content.:done))........ |
| 290c0 | 20 20 20 20 20 20 20 20 20 28 72 65 73 70 6f 6e 73 65 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 | .........(response.(map-elt.cont |
| 290e0 | 65 6e 74 20 3a 72 65 73 70 6f 6e 73 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 | ent.:response))).............(pu |
| 29100 | 73 68 20 72 65 73 70 6f 6e 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 0a 20 20 20 20 20 20 | sh.response.content-strs)....... |
| 29120 | 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 64 6f 6e 65 20 3a 6a 73 6f 6e 2d 66 61 6c | ......(unless.(eq.done.:json-fal |
| 29140 | 73 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d | se)...............(with-current- |
| 29160 | 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d 67 65 74 20 69 6e 66 6f 20 3a 62 75 66 66 65 72 29 0a | buffer.(plist-get.info.:buffer). |
| 29180 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 67 70 74 65 6c 2d 2d 6f 6c 6c | ................(setq.gptel--oll |
| 291a0 | 61 6d 61 2d 63 6f 6e 74 65 78 74 20 28 6d 61 70 2d 65 6c 74 20 63 6f 6e 74 65 6e 74 20 3a 63 6f | ama-context.(map-elt.content.:co |
| 291c0 | 6e 74 65 78 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 | ntext)))...............(goto-cha |
| 291e0 | 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 28 | r.(point-max))))).......(error.( |
| 29200 | 67 6f 74 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 | goto-char.pt))).....(apply.#'con |
| 29220 | 63 61 74 20 28 6e 72 65 76 65 72 73 65 20 63 6f 6e 74 65 6e 74 2d 73 74 72 73 29 29 29 29 0a 0a | cat.(nreverse.content-strs)))).. |
| 29240 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 70 61 72 73 65 2d 72 65 73 70 6f | (cl-defmethod.gptel--parse-respo |
| 29260 | 6e 73 65 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 72 65 73 | nse.((_backend.gptel-ollama).res |
| 29280 | 70 6f 6e 73 65 20 69 6e 66 6f 29 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 63 6f 6e 74 65 78 | ponse.info)...(when-let.((contex |
| 292a0 | 74 20 28 6d 61 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 63 6f 6e 74 65 78 74 29 29 29 0a | t.(map-elt.response.:context))). |
| 292c0 | 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 6c 69 73 74 2d | ....(with-current-buffer.(plist- |
| 292e0 | 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 73 65 74 71 20 67 70 | get.info.:buffer).......(setq.gp |
| 29300 | 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 63 6f 6e 74 65 78 74 20 63 6f 6e 74 65 78 74 29 29 29 0a 20 | tel--ollama-context.context))).. |
| 29320 | 20 28 6d 61 70 2d 65 6c 74 20 72 65 73 70 6f 6e 73 65 20 3a 72 65 73 70 6f 6e 73 65 29 29 0a 0a | .(map-elt.response.:response)).. |
| 29340 | 28 63 6c 2d 64 65 66 6d 65 74 68 6f 64 20 67 70 74 65 6c 2d 2d 72 65 71 75 65 73 74 2d 64 61 74 | (cl-defmethod.gptel--request-dat |
| 29360 | 61 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 70 72 6f 6d 70 | a.((_backend.gptel-ollama).promp |
| 29380 | 74 73 29 0a 20 20 22 4a 53 4f 4e 20 65 6e 63 6f 64 65 20 50 52 4f 4d 50 54 53 20 66 6f 72 20 4f | ts)..."JSON.encode.PROMPTS.for.O |
| 293a0 | 6c 6c 61 6d 61 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 0a 20 | llama."...(let.((prompts-plist.. |
| 293c0 | 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 6f 64 65 6c 0a 20 20 | ........`(:model.,gptel-model... |
| 293e0 | 20 20 20 20 20 20 20 20 20 2c 40 70 72 6f 6d 70 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 3a 73 | .........,@prompts............:s |
| 29400 | 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 67 70 74 | tream.,(or.(and.gptel-stream.gpt |
| 29420 | 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 20 20 20 | el-use-curl..................... |
| 29440 | 20 20 20 20 20 20 20 20 20 28 67 70 74 65 6c 2d 62 61 63 6b 65 6e 64 2d 73 74 72 65 61 6d 20 67 | .........(gptel-backend-stream.g |
| 29460 | 70 74 65 6c 2d 62 61 63 6b 65 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ptel-backend)).................. |
| 29480 | 20 20 20 20 3a 6a 73 6f 6e 2d 66 61 6c 73 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 67 70 | ....:json-false)))).....(when.gp |
| 294a0 | 74 65 6c 2d 2d 6f 6c 6c 61 6d 61 2d 63 6f 6e 74 65 78 74 0a 20 20 20 20 20 20 28 70 6c 69 73 74 | tel--ollama-context.......(plist |
| 294c0 | 2d 70 75 74 20 70 72 6f 6d 70 74 73 2d 70 6c 69 73 74 20 3a 63 6f 6e 74 65 78 74 20 67 70 74 65 | -put.prompts-plist.:context.gpte |
| 294e0 | 6c 2d 2d 6f 6c 6c 61 6d 61 2d 63 6f 6e 74 65 78 74 29 29 0a 20 20 20 20 70 72 6f 6d 70 74 73 2d | l--ollama-context)).....prompts- |
| 29500 | 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 74 65 6c 2d 2d 70 61 | plist))..(cl-defmethod.gptel--pa |
| 29520 | 72 73 65 2d 62 75 66 66 65 72 20 28 28 5f 62 61 63 6b 65 6e 64 20 67 70 74 65 6c 2d 6f 6c 6c 61 | rse-buffer.((_backend.gptel-olla |
| 29540 | 6d 61 29 20 26 6f 70 74 69 6f 6e 61 6c 20 5f 6d 61 78 2d 65 6e 74 72 69 65 73 29 0a 20 20 28 6c | ma).&optional._max-entries)...(l |
| 29560 | 65 74 20 28 28 70 72 6f 6d 70 74 73 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 70 20 28 74 65 78 | et.((prompts).........(prop.(tex |
| 29580 | 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 0a 20 20 20 20 20 | t-property-search-backward...... |
| 295a0 | 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 20 20 20 | ..........'gptel.'response...... |
| 295c0 | 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 67 65 74 2d 63 68 61 72 2d 70 72 6f 70 65 72 | ..........(when.(get-char-proper |
| 295e0 | 74 79 20 28 6d 61 78 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 | ty.(max.(point-min).(1-.(point)) |
| 29600 | 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | )............................... |
| 29620 | 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 20 20 20 | ..........'gptel)............... |
| 29640 | 20 20 20 74 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 70 72 6f 70 2d 6d 61 74 63 | ...t)))).....(if.(and.(prop-matc |
| 29660 | 68 2d 70 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 | h-p.prop)..............(prop-mat |
| 29680 | 63 68 2d 76 61 6c 75 65 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 | ch-value.prop)).........(user-er |
| 296a0 | 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 21 22 29 0a 20 20 20 | ror."No.user.prompt.found!").... |
| 296c0 | 20 20 20 28 73 65 74 71 20 70 72 6f 6d 70 74 73 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 | ...(setq.prompts.(list.......... |
| 296e0 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 79 73 74 65 6d 20 67 70 74 65 6c 2d 2d 73 79 73 74 65 | ............:system.gptel--syste |
| 29700 | 6d 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a | m-message......................: |
| 29720 | 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 | prompt......................(if. |
| 29740 | 28 70 72 6f 70 2d 6d 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 | (prop-match-p.prop)............. |
| 29760 | 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 20 20 20 20 20 20 | .............(string-trim....... |
| 29780 | 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 |
| 297a0 | 74 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 | tring-no-properties.(prop-match- |
| 297c0 | 62 65 67 69 6e 6e 69 6e 67 20 70 72 6f 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | beginning.prop)................. |
| 297e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ................................ |
| 29800 | 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 2d 6d 61 74 63 68 2d 65 6e 64 20 70 72 6f 70 29 29 | ..........(prop-match-end.prop)) |
| 29820 | 0a 20 20 20 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 |
| 29840 | 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 5c 6e | at."[\t\r\n.]*\\(?:%s\\)?[\t\r\n |
| 29860 | 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 20 20 | .]*"............................ |
| 29880 | 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 6d | .......(regexp-quote.(gptel-prom |
| 298a0 | 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 20 | pt-prefix-string)))............. |
| 298c0 | 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 6e 20 5d | ..............(format."[\t\r\n.] |
| 298e0 | 2a 5c 5c 28 3f 3a 25 73 5c 5c 29 3f 5b 5c 74 5c 72 5c 6e 20 5d 2a 22 0a 20 20 20 20 20 20 20 20 | *\\(?:%s\\)?[\t\r\n.]*"......... |
| 29900 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 | ..........................(regex |
| 29920 | 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 |
| 29940 | 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 20 20 20 20 20 20 20 | tring))))....................... |
| 29960 | 20 22 22 29 29 29 0a 20 20 20 20 20 20 70 72 6f 6d 70 74 73 29 29 29 0a 0a 3b 3b 3b 23 23 23 61 | .""))).......prompts)))..;;;###a |
| 29980 | 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 6f 6c 6c | utoload.(cl-defun.gptel-make-oll |
| 299a0 | 61 6d 61 0a 20 20 20 20 28 6e 61 6d 65 20 26 6b 65 79 20 63 75 72 6c 2d 61 72 67 73 20 68 65 61 | ama.....(name.&key.curl-args.hea |
| 299c0 | 64 65 72 20 6b 65 79 20 6d 6f 64 65 6c 73 20 73 74 72 65 61 6d 0a 20 20 20 20 20 20 20 20 20 20 | der.key.models.stream........... |
| 299e0 | 28 68 6f 73 74 20 22 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 34 33 34 22 29 0a 20 20 20 20 20 20 20 | (host."localhost:11434")........ |
| 29a00 | 20 20 20 28 70 72 6f 74 6f 63 6f 6c 20 22 68 74 74 70 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 | ...(protocol."http")...........( |
| 29a20 | 65 6e 64 70 6f 69 6e 74 20 22 2f 61 70 69 2f 67 65 6e 65 72 61 74 65 22 29 29 0a 20 20 22 52 65 | endpoint."/api/generate"))..."Re |
| 29a40 | 67 69 73 74 65 72 20 61 6e 20 4f 6c 6c 61 6d 61 20 62 61 63 6b 65 6e 64 20 66 6f 72 20 67 70 74 | gister.an.Ollama.backend.for.gpt |
| 29a60 | 65 6c 20 77 69 74 68 20 4e 41 4d 45 2e 0a 0a 4b 65 79 77 6f 72 64 20 61 72 67 75 6d 65 6e 74 73 | el.with.NAME...Keyword.arguments |
| 29a80 | 3a 0a 0a 43 55 52 4c 2d 41 52 47 53 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 6c 69 73 | :..CURL-ARGS.(optional).is.a.lis |
| 29aa0 | 74 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 43 75 72 6c 20 61 72 67 75 6d 65 6e 74 73 2e 0a | t.of.additional.Curl.arguments.. |
| 29ac0 | 0a 48 4f 53 54 20 69 73 20 77 68 65 72 65 20 4f 6c 6c 61 6d 61 20 72 75 6e 73 20 28 77 69 74 68 | .HOST.is.where.Ollama.runs.(with |
| 29ae0 | 20 70 6f 72 74 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 6c 6f 63 61 6c 68 6f 73 74 3a 31 31 | .port),.defaults.to.localhost:11 |
| 29b00 | 34 33 34 0a 0a 4d 4f 44 45 4c 53 20 69 73 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 | 434..MODELS.is.a.list.of.availab |
| 29b20 | 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 |
| 29b40 | 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 |
| 29b60 | 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 |
| 29b80 | 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 |
| 29ba0 | 6f 6c 2c 20 68 74 74 70 20 62 79 20 64 65 66 61 75 6c 74 2e 0a 0a 45 4e 44 50 4f 49 4e 54 20 28 | ol,.http.by.default...ENDPOINT.( |
| 29bc0 | 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 6f | optional).is.the.API.endpoint.fo |
| 29be0 | 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 61 70 | r.completions,.defaults.to.\"/ap |
| 29c00 | 69 2f 67 65 6e 65 72 61 74 65 5c 22 2e 0a 0a 48 45 41 44 45 52 20 28 6f 70 74 69 6f 6e 61 6c 29 | i/generate\"...HEADER.(optional) |
| 29c20 | 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 |
| 29c40 | 6e 64 20 77 69 74 68 20 65 61 63 68 0a 72 65 71 75 65 73 74 2e 20 20 49 74 20 73 68 6f 75 6c 64 | nd.with.each.request...It.should |
| 29c60 | 20 62 65 20 61 6e 20 61 6c 69 73 74 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 | .be.an.alist.or.a.function.that. |
| 29c80 | 72 65 74 75 6e 73 20 61 6e 0a 61 6c 69 73 74 2c 20 6c 69 6b 65 3a 0a 28 28 5c 22 43 6f 6e 74 65 | retuns.an.alist,.like:.((\"Conte |
| 29ca0 | 6e 74 2d 54 79 70 65 5c 22 20 2e 20 5c 22 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 22 | nt-Type\"...\"application/json\" |
| 29cc0 | 29 29 0a 0a 4b 45 59 20 28 6f 70 74 69 6f 6e 61 6c 29 20 69 73 20 61 20 76 61 72 69 61 62 6c 65 | ))..KEY.(optional).is.a.variable |
| 29ce0 | 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 0a | .whose.value.is.the.API.key,.or. |
| 29d00 | 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 68 65 20 6b 65 79 2e 20 20 | function.that.returns.the.key... |
| 29d20 | 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 6e 6f 74 20 72 65 71 75 69 72 65 64 0a 66 | This.is.typically.not.required.f |
| 29d40 | 6f 72 20 6c 6f 63 61 6c 20 6d 6f 64 65 6c 73 20 6c 69 6b 65 20 4f 6c 6c 61 6d 61 2e 0a 0a 45 78 | or.local.models.like.Ollama...Ex |
| 29d60 | 61 6d 70 6c 65 3a 0a 2d 2d 2d 2d 2d 2d 2d 0a 0a 28 67 70 74 65 6c 2d 6d 61 6b 65 2d 6f 6c 6c 61 | ample:.-------..(gptel-make-olla |
| 29d80 | 6d 61 0a 20 20 5c 22 4f 6c 6c 61 6d 61 5c 22 0a 20 20 3a 68 6f 73 74 20 5c 22 6c 6f 63 61 6c 68 | ma...\"Ollama\"...:host.\"localh |
| 29da0 | 6f 73 74 3a 31 31 34 33 34 5c 22 0a 20 20 3a 6d 6f 64 65 6c 73 20 5c 5c 3d 27 28 5c 22 6d 69 73 | ost:11434\"...:models.\\='(\"mis |
| 29dc0 | 74 72 61 6c 3a 6c 61 74 65 73 74 5c 22 29 0a 20 20 3a 73 74 72 65 61 6d 20 74 29 22 0a 20 20 28 | tral:latest\")...:stream.t)"...( |
| 29de0 | 64 65 63 6c 61 72 65 20 28 69 6e 64 65 6e 74 20 31 29 29 0a 20 20 28 6c 65 74 20 28 28 62 61 63 | declare.(indent.1))...(let.((bac |
| 29e00 | 6b 65 6e 64 20 28 67 70 74 65 6c 2d 2d 6d 61 6b 65 2d 6f 6c 6c 61 6d 61 0a 20 20 20 20 20 20 20 | kend.(gptel--make-ollama........ |
| 29e20 | 20 20 20 20 20 20 20 20 20 20 20 3a 63 75 72 6c 2d 61 72 67 73 20 63 75 72 6c 2d 61 72 67 73 0a | ...........:curl-args.curl-args. |
| 29e40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 6e 61 6d 65 0a 20 20 20 | ..................:name.name.... |
| 29e60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 6f 73 74 20 68 6f 73 74 0a 20 20 20 20 20 20 | ...............:host.host....... |
| 29e80 | 20 20 20 20 20 20 20 20 20 20 20 20 3a 68 65 61 64 65 72 20 68 65 61 64 65 72 0a 20 20 20 20 20 | ............:header.header...... |
| 29ea0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 6b 65 79 20 6b 65 79 0a 20 20 20 20 20 20 20 20 20 20 | .............:key.key........... |
| 29ec0 | 20 20 20 20 20 20 20 20 3a 6d 6f 64 65 6c 73 20 6d 6f 64 65 6c 73 0a 20 20 20 20 20 20 20 20 20 | ........:models.models.......... |
| 29ee0 | 20 20 20 20 20 20 20 20 20 3a 70 72 6f 74 6f 63 6f 6c 20 70 72 6f 74 6f 63 6f 6c 0a 20 20 20 20 | .........:protocol.protocol..... |
| 29f00 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 6e 64 70 6f 69 6e 74 20 65 6e 64 70 6f 69 6e 74 | ..............:endpoint.endpoint |
| 29f20 | 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 73 74 72 65 61 6d 20 73 74 72 65 61 | ...................:stream.strea |
| 29f40 | 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 69 66 20 70 72 6f | m...................:url.(if.pro |
| 29f60 | 74 6f 63 6f 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | tocol........................... |
| 29f80 | 20 28 63 6f 6e 63 61 74 20 70 72 6f 74 6f 63 6f 6c 20 22 3a 2f 2f 22 20 68 6f 73 74 20 65 6e 64 | .(concat.protocol."://".host.end |
| 29fa0 | 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | point).......................... |
| 29fc0 | 28 63 6f 6e 63 61 74 20 68 6f 73 74 20 65 6e 64 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 28 | (concat.host.endpoint))))).....( |
| 29fe0 | 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 74 | prog1.backend.......(setf.(alist |
| 2a000 | 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 0a | -get.name.gptel--known-backends. |
| 2a020 | 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 23 | .......................nil.nil.# |
| 2a040 | 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 6e | 'equal)...................backen |
| 2a060 | 64 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 29 0a 3b | d))))..(provide.'gptel-ollama).; |
| 2a080 | 3b 3b 20 67 70 74 65 6c 2d 6f 6c 6c 61 6d 61 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 0a 0a 00 | ;;.gptel-ollama.el.ends.here.... |
| 2a0a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a0c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a0e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a100 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a120 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a140 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a160 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a180 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a1a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a1c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a1e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a200 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a220 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a240 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a260 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a280 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a2a0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a2c0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a2e0 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a300 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a320 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a340 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 2a360 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................................ |
| 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 | ................................ |