token-goat 2.9.29 → 2.9.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +53 -42
  2. package/SECURITY.md +37 -11
  3. package/THIRD_PARTY_NOTICES.md +41 -4
  4. package/dist/native/linux-arm64/tg-hook +0 -0
  5. package/dist/native/linux-x64/tg-hook +0 -0
  6. package/dist/native/win32-arm64/tg-hook.exe +0 -0
  7. package/dist/native/win32-x64/tg-hook.exe +0 -0
  8. package/dist/ort-wasm-simd-threaded.mjs +59 -0
  9. package/dist/{token-goat-chunk-SE6E4BKJ.mjs → token-goat-chunk-25TRAWET.mjs} +23 -6
  10. package/dist/token-goat-chunk-2KXO6V2B.mjs +203 -0
  11. package/dist/{token-goat-chunk-UXSXQQIY.mjs → token-goat-chunk-2M7E4PF7.mjs} +43 -14
  12. package/dist/token-goat-chunk-2UPZGKKY.mjs +188 -0
  13. package/dist/token-goat-chunk-2WLPWKHV.mjs +135 -0
  14. package/dist/token-goat-chunk-2XBMMDBD.mjs +126 -0
  15. package/dist/token-goat-chunk-32ZOY4N5.mjs +23 -0
  16. package/dist/token-goat-chunk-3EZRNKTK.mjs +188 -0
  17. package/dist/token-goat-chunk-4ADZHI7J.mjs +63 -0
  18. package/dist/token-goat-chunk-4GBVPH3D.mjs +242 -0
  19. package/dist/{token-goat-chunk-2WOUYWLM.mjs → token-goat-chunk-4GILLLWY.mjs} +34 -7
  20. package/dist/token-goat-chunk-4NAPX7BA.mjs +90 -0
  21. package/dist/{token-goat-chunk-NMBWLRHW.mjs → token-goat-chunk-4SC7UJYV.mjs} +9981 -11563
  22. package/dist/token-goat-chunk-4SMRO4TO.mjs +366 -0
  23. package/dist/{token-goat-chunk-O6I2XU4P.mjs → token-goat-chunk-4ZBFWLXF.mjs} +310 -441
  24. package/dist/token-goat-chunk-57BIAXJL.mjs +286 -0
  25. package/dist/token-goat-chunk-5AC66HNP.mjs +115 -0
  26. package/dist/token-goat-chunk-5IMLKSOP.mjs +145 -0
  27. package/dist/token-goat-chunk-5RG5SBL6.mjs +221 -0
  28. package/dist/{token-goat-chunk-RRNZMM3A.mjs → token-goat-chunk-5Y6ZYL6U.mjs} +21 -2
  29. package/dist/token-goat-chunk-646E6U44.mjs +398 -0
  30. package/dist/token-goat-chunk-65N4RHP4.mjs +33 -0
  31. package/dist/{token-goat-chunk-6AK46ZT7.mjs → token-goat-chunk-6DG6HWP3.mjs} +13 -3
  32. package/dist/token-goat-chunk-6ENQSNRZ.mjs +573 -0
  33. package/dist/token-goat-chunk-6ZY4GNF2.mjs +91 -0
  34. package/dist/{token-goat-chunk-E5TK5DNO.mjs → token-goat-chunk-76FGDLRO.mjs} +574 -340
  35. package/dist/{token-goat-chunk-TGOXNAHW.mjs → token-goat-chunk-7EZTZOMC.mjs} +780 -767
  36. package/dist/token-goat-chunk-7MAOA6X4.mjs +3647 -0
  37. package/dist/token-goat-chunk-7R2ZVVAX.mjs +218 -0
  38. package/dist/{token-goat-chunk-TCQANXYC.mjs → token-goat-chunk-AM5V6GSX.mjs} +18 -2
  39. package/dist/token-goat-chunk-AUNGYYQX.mjs +184 -0
  40. package/dist/token-goat-chunk-AUQYRMMH.mjs +2985 -0
  41. package/dist/token-goat-chunk-B3PEKBYG.mjs +128 -0
  42. package/dist/{token-goat-chunk-KOPIR3KZ.mjs → token-goat-chunk-BA4HI6BW.mjs} +1910 -165
  43. package/dist/{token-goat-chunk-52NSDWYY.mjs → token-goat-chunk-BFCWY73P.mjs} +58 -20
  44. package/dist/token-goat-chunk-BPGCUMR7.mjs +30 -0
  45. package/dist/token-goat-chunk-BWGFUZZE.mjs +25 -0
  46. package/dist/token-goat-chunk-C75NA7PL.mjs +322 -0
  47. package/dist/token-goat-chunk-CBIQ7WTD.mjs +87 -0
  48. package/dist/token-goat-chunk-CETM74KC.mjs +307 -0
  49. package/dist/token-goat-chunk-CIMQ2BB3.mjs +233 -0
  50. package/dist/{token-goat-chunk-DNSPXQXQ.mjs → token-goat-chunk-CJLS3CDL.mjs} +70 -18
  51. package/dist/{token-goat-chunk-MELOKFDJ.mjs → token-goat-chunk-CO3UYX6G.mjs} +7 -1
  52. package/dist/token-goat-chunk-COPNXRJM.mjs +154 -0
  53. package/dist/token-goat-chunk-CSJ5L3NL.mjs +479 -0
  54. package/dist/token-goat-chunk-CVCEVUGK.mjs +315 -0
  55. package/dist/token-goat-chunk-CXHOFN7R.mjs +371 -0
  56. package/dist/token-goat-chunk-D735C4QM.mjs +603 -0
  57. package/dist/{token-goat-chunk-E4ZOJIZK.mjs → token-goat-chunk-DGS2LVNA.mjs} +70 -160
  58. package/dist/{token-goat-chunk-L7H3U27L.mjs → token-goat-chunk-DOWRSMWO.mjs} +1 -1
  59. package/dist/token-goat-chunk-E45INMY3.mjs +71 -0
  60. package/dist/token-goat-chunk-EC5F37F4.mjs +244 -0
  61. package/dist/{token-goat-chunk-XTQAOTSO.mjs → token-goat-chunk-EDBDRVH5.mjs} +4 -1
  62. package/dist/token-goat-chunk-EELTBKDM.mjs +613 -0
  63. package/dist/token-goat-chunk-EVMZJ27Z.mjs +147 -0
  64. package/dist/token-goat-chunk-EXKGNHEG.mjs +2096 -0
  65. package/dist/{token-goat-chunk-YOOVFPTP.mjs → token-goat-chunk-F4HYL64R.mjs} +12 -2
  66. package/dist/token-goat-chunk-F6PAUIEK.mjs +624 -0
  67. package/dist/token-goat-chunk-FDSREWLX.mjs +692 -0
  68. package/dist/{token-goat-chunk-NMTKNYGF.mjs → token-goat-chunk-FNFBKLRD.mjs} +74 -9
  69. package/dist/token-goat-chunk-G5PJ7AGM.mjs +36 -0
  70. package/dist/token-goat-chunk-GGGG7RWB.mjs +236 -0
  71. package/dist/{token-goat-chunk-TDUT2CL6.mjs → token-goat-chunk-GL3ETKSC.mjs} +276 -19
  72. package/dist/{token-goat-chunk-7CPMDFGB.mjs → token-goat-chunk-GVB2MUST.mjs} +265 -1567
  73. package/dist/token-goat-chunk-GWFLAUMQ.mjs +307 -0
  74. package/dist/token-goat-chunk-HAVAOB3S.mjs +87 -0
  75. package/dist/token-goat-chunk-HLPW63A7.mjs +48 -0
  76. package/dist/token-goat-chunk-HU4TORC5.mjs +1377 -0
  77. package/dist/token-goat-chunk-I7VKZZAW.mjs +35 -0
  78. package/dist/token-goat-chunk-IA6XSPE3.mjs +218 -0
  79. package/dist/token-goat-chunk-IAGXMHIK.mjs +863 -0
  80. package/dist/{token-goat-chunk-435UQTKD.mjs → token-goat-chunk-IK2DRMFX.mjs} +129 -74
  81. package/dist/{token-goat-chunk-ZER6EAXZ.mjs → token-goat-chunk-INNPTRUX.mjs} +2954 -2783
  82. package/dist/token-goat-chunk-JJ5BX4F4.mjs +129 -0
  83. package/dist/token-goat-chunk-JVFSHVFJ.mjs +129 -0
  84. package/dist/token-goat-chunk-KGEFFSHD.mjs +50 -0
  85. package/dist/token-goat-chunk-KKUFXAPD.mjs +25 -0
  86. package/dist/token-goat-chunk-KQBLRPBN.mjs +433 -0
  87. package/dist/token-goat-chunk-LCNQ2CNN.mjs +497 -0
  88. package/dist/token-goat-chunk-M3LFJDPU.mjs +58 -0
  89. package/dist/token-goat-chunk-M52KPT3C.mjs +87 -0
  90. package/dist/token-goat-chunk-MBEG42H7.mjs +150 -0
  91. package/dist/{token-goat-chunk-EVC4TOLE.mjs → token-goat-chunk-METECDOH.mjs} +3 -12
  92. package/dist/{token-goat-chunk-2AWQ2R5X.mjs → token-goat-chunk-MHX7XCC3.mjs} +3 -2
  93. package/dist/token-goat-chunk-MNWKPRAL.mjs +13 -0
  94. package/dist/token-goat-chunk-N5LSOVSU.mjs +137 -0
  95. package/dist/{token-goat-chunk-DPNLUJWB.mjs → token-goat-chunk-N5MMR2IW.mjs} +30 -8
  96. package/dist/token-goat-chunk-N7B3JQ2C.mjs +160 -0
  97. package/dist/{token-goat-chunk-VMFWNHGR.mjs → token-goat-chunk-NISNMD7T.mjs} +2545 -2953
  98. package/dist/token-goat-chunk-NMD42SFQ.mjs +434 -0
  99. package/dist/token-goat-chunk-NOSS5VWY.mjs +174 -0
  100. package/dist/token-goat-chunk-NSNSPPBG.mjs +69 -0
  101. package/dist/token-goat-chunk-OBOFIHKN.mjs +38 -0
  102. package/dist/token-goat-chunk-OBRFJ5O5.mjs +76 -0
  103. package/dist/token-goat-chunk-ODBT2USM.mjs +800 -0
  104. package/dist/token-goat-chunk-OS5EM5PP.mjs +107 -0
  105. package/dist/token-goat-chunk-OUKDTVNU.mjs +1178 -0
  106. package/dist/token-goat-chunk-OXFMP75N.mjs +566 -0
  107. package/dist/{token-goat-chunk-ASLWOQ3I.mjs → token-goat-chunk-OYIYKDDT.mjs} +2 -1
  108. package/dist/{token-goat-chunk-67BNIKKO.mjs → token-goat-chunk-P6HQSWQ3.mjs} +55 -47
  109. package/dist/token-goat-chunk-P6VGNTQT.mjs +71 -0
  110. package/dist/token-goat-chunk-PFWIMH2E.mjs +261 -0
  111. package/dist/token-goat-chunk-PJZXIS3G.mjs +39 -0
  112. package/dist/token-goat-chunk-PUO5INXP.mjs +606 -0
  113. package/dist/token-goat-chunk-PX5PQWTY.mjs +462 -0
  114. package/dist/token-goat-chunk-Q5QDBC6O.mjs +111 -0
  115. package/dist/token-goat-chunk-QFNQXSDT.mjs +40 -0
  116. package/dist/token-goat-chunk-QH7YVYOY.mjs +3957 -0
  117. package/dist/token-goat-chunk-QLMUHEPB.mjs +43 -0
  118. package/dist/{token-goat-chunk-PYSUADX4.mjs → token-goat-chunk-QQOJIHL3.mjs} +50 -14
  119. package/dist/token-goat-chunk-QQTWJY2O.mjs +85 -0
  120. package/dist/token-goat-chunk-QYHO5CPH.mjs +93 -0
  121. package/dist/token-goat-chunk-RELAVWAD.mjs +27 -0
  122. package/dist/token-goat-chunk-RSLPOBKQ.mjs +339 -0
  123. package/dist/token-goat-chunk-SAMFDIS2.mjs +712 -0
  124. package/dist/token-goat-chunk-SDELXLDM.mjs +48 -0
  125. package/dist/{token-goat-chunk-PGTH2U4C.mjs → token-goat-chunk-SOAFZNNZ.mjs} +164 -40
  126. package/dist/{token-goat-chunk-G23DWHV4.mjs → token-goat-chunk-SRTHT7KV.mjs} +33 -15
  127. package/dist/token-goat-chunk-T5P5ACNQ.mjs +212 -0
  128. package/dist/token-goat-chunk-T5YGG4V3.mjs +45 -0
  129. package/dist/token-goat-chunk-TAUZ4OFS.mjs +110 -0
  130. package/dist/token-goat-chunk-TM6MC754.mjs +40 -0
  131. package/dist/token-goat-chunk-TWUKBOMP.mjs +72 -0
  132. package/dist/token-goat-chunk-U2KSB4SG.mjs +56 -0
  133. package/dist/token-goat-chunk-U4WHMG6Y.mjs +898 -0
  134. package/dist/token-goat-chunk-UA5V6P3P.mjs +122 -0
  135. package/dist/token-goat-chunk-UGJHGR5A.mjs +52 -0
  136. package/dist/{token-goat-chunk-RQGGMPCR.mjs → token-goat-chunk-UOUDVA5U.mjs} +76 -16
  137. package/dist/{token-goat-chunk-HNFZZHFW.mjs → token-goat-chunk-URRJ33GR.mjs} +22 -4
  138. package/dist/token-goat-chunk-UZOROKIS.mjs +165 -0
  139. package/dist/token-goat-chunk-VIHGGGEI.mjs +4234 -0
  140. package/dist/token-goat-chunk-VTJLAA7P.mjs +21 -0
  141. package/dist/token-goat-chunk-VWDXLT4F.mjs +678 -0
  142. package/dist/token-goat-chunk-VWZA2H4P.mjs +368 -0
  143. package/dist/{token-goat-chunk-QO3LXVVR.mjs → token-goat-chunk-VXEXMJDL.mjs} +2964 -3153
  144. package/dist/token-goat-chunk-WBA5SKT4.mjs +547 -0
  145. package/dist/{token-goat-chunk-ONXH6NZ5.mjs → token-goat-chunk-WDH44VAU.mjs} +19 -22
  146. package/dist/token-goat-chunk-X2SUP3EI.mjs +107 -0
  147. package/dist/token-goat-chunk-X3BELZSJ.mjs +125 -0
  148. package/dist/{token-goat-chunk-RLP6J7WR.mjs → token-goat-chunk-XLRBNZCC.mjs} +40 -21
  149. package/dist/{token-goat-chunk-S4VSXURL.mjs → token-goat-chunk-XRKUX6CM.mjs} +4 -0
  150. package/dist/token-goat-chunk-XX6O25RN.mjs +82 -0
  151. package/dist/token-goat-chunk-XZSUHBVS.mjs +65 -0
  152. package/dist/token-goat-chunk-Y2ZTQOCL.mjs +35 -0
  153. package/dist/{token-goat-chunk-UA5BKWWQ.mjs → token-goat-chunk-YB4VMGK2.mjs} +15 -4
  154. package/dist/token-goat-chunk-YBIIY3HR.mjs +51 -0
  155. package/dist/{token-goat-chunk-PKRWMHVP.mjs → token-goat-chunk-YHVDKQBR.mjs} +389 -221
  156. package/dist/token-goat-chunk-YJB5XLWI.mjs +26 -0
  157. package/dist/{token-goat-chunk-PQ53BSCF.mjs → token-goat-chunk-YKB6AQG3.mjs} +53 -31
  158. package/dist/token-goat-chunk-YMTG2YA5.mjs +35 -0
  159. package/dist/token-goat-chunk-YPBZYQRV.mjs +40 -0
  160. package/dist/{token-goat-chunk-HUYUHODZ.mjs → token-goat-chunk-YY6AVUFL.mjs} +13246 -12247
  161. package/dist/token-goat-chunk-Z7N5OMMP.mjs +98 -0
  162. package/dist/{token-goat-chunk-BGHSSJUA.mjs → token-goat-chunk-ZFOBKUWH.mjs} +1 -1
  163. package/dist/token-goat-chunk-ZMBL6UVV.mjs +110 -0
  164. package/dist/token-goat-chunk-ZNMNUPAZ.mjs +938 -0
  165. package/dist/token-goat-hook-client.cjs +87 -23
  166. package/dist/token-goat-hook-client.mjs +3 -3
  167. package/dist/token-goat-hook.mjs +76 -31
  168. package/dist/token-goat.core.mjs +6 -6
  169. package/docs/C4_RUNTIME_ARCHITECTURE.md +2 -2
  170. package/docs/cli.md +113 -60
  171. package/docs/install.md +63 -20
  172. package/docs/security.md +10 -8
  173. package/package.json +18 -7
  174. package/scripts/verify-native-dist.mjs +386 -0
  175. package/dist/token-goat-chunk-2NNUA2LR.mjs +0 -143
  176. package/dist/token-goat-chunk-44BM7DDQ.mjs +0 -294
  177. package/dist/token-goat-chunk-BGYOZ6DO.mjs +0 -24
  178. package/dist/token-goat-chunk-C5YPNZKQ.mjs +0 -318
  179. package/dist/token-goat-chunk-CIQ2FTY3.mjs +0 -1990
  180. package/dist/token-goat-chunk-D4ETHJD6.mjs +0 -246
  181. package/dist/token-goat-chunk-DNRPXHYH.mjs +0 -1062
  182. package/dist/token-goat-chunk-EUSDXRXU.mjs +0 -1429
  183. package/dist/token-goat-chunk-FTP4U4QA.mjs +0 -64
  184. package/dist/token-goat-chunk-G7IWXCFF.mjs +0 -456
  185. package/dist/token-goat-chunk-GLXRTTLE.mjs +0 -36
  186. package/dist/token-goat-chunk-H5J3C56Q.mjs +0 -1511
  187. package/dist/token-goat-chunk-IVWI2OCK.mjs +0 -368
  188. package/dist/token-goat-chunk-JTKCQMQA.mjs +0 -418
  189. package/dist/token-goat-chunk-LZNBQTDK.mjs +0 -26
  190. package/dist/token-goat-chunk-ORNFMIER.mjs +0 -295
  191. package/dist/token-goat-chunk-RTMVLHWX.mjs +0 -7113
  192. package/dist/token-goat-chunk-VQ6F6T7X.mjs +0 -36
  193. package/dist/token-goat-chunk-VZQEWRVH.mjs +0 -312
  194. package/dist/token-goat-chunk-XYWPOSCN.mjs +0 -807
  195. package/dist/token-goat-chunk-YAGLESS3.mjs +0 -23
  196. package/dist/token-goat-chunk-YKSRAWUU.mjs +0 -33
  197. package/dist/token-goat-chunk-Z6KBMOBI.mjs +0 -53
@@ -0,0 +1,129 @@
1
+ import { createRequire as __cjsRequire } from 'node:module';
2
+ const require = __cjsRequire(import.meta.url);
3
+ import {
4
+ DEFAULT_MAX_BYTES,
5
+ DEFAULT_MAX_INPUT_BYTES,
6
+ DEFAULT_MAX_LINES,
7
+ ERROR_SIGNAL_RE,
8
+ FALLBACK_MAX_LINE_CHARS,
9
+ GREP_MAX_LINE_CHARS,
10
+ INPUT_MAX_LINE_CHARS,
11
+ LONG_LINE_MAX_CHARS,
12
+ MAX_INSPECT_BYTES,
13
+ REDIRECT_TOKEN_RE,
14
+ TABLE_ROW_ANOMALY_RE,
15
+ TIMESTAMP_PREFIX_RE,
16
+ byteLength,
17
+ capBytes,
18
+ capLongLines,
19
+ capTokens,
20
+ clampKeepingEnds,
21
+ clipGrepLines,
22
+ clipLongMatchLine,
23
+ clipWideLines,
24
+ combineStreams,
25
+ compressBashOutput,
26
+ compressTestOutput,
27
+ compressionMarker,
28
+ dedupeCombinedOutput,
29
+ dedupeConsecutive,
30
+ dedupeNumericRuns,
31
+ fallbackTruncate,
32
+ getMaxInputBytes,
33
+ grepLiteralPattern,
34
+ hasBareBackground,
35
+ hasBareBackgroundOrNewline,
36
+ hasHighEntropyToken,
37
+ hasUnquotedOperator,
38
+ headTailCompress,
39
+ isRedirectAmpersand,
40
+ isWholeJsonDocument,
41
+ maskQuotedSpans,
42
+ maybeNote,
43
+ normalise,
44
+ pathName,
45
+ pathStem,
46
+ positionalArgs,
47
+ preserveStderrOnError,
48
+ resolvePackageManagerScript,
49
+ safeDecode,
50
+ sanitizeControlChars,
51
+ shlexSplit,
52
+ splitBlocks,
53
+ splitOwnTrailingNotices,
54
+ squeezeBlankLines,
55
+ stripPrefixes,
56
+ stripProgress,
57
+ stripTimestamps,
58
+ trimRepeatedPrefix,
59
+ truncateMiddle,
60
+ truncateMiddleSmart,
61
+ truncateTableRows
62
+ } from "./token-goat-chunk-4GILLLWY.mjs";
63
+ import "./token-goat-chunk-HAVAOB3S.mjs";
64
+ import "./token-goat-chunk-HU4TORC5.mjs";
65
+ import "./token-goat-chunk-GGGG7RWB.mjs";
66
+ import "./token-goat-chunk-AM5V6GSX.mjs";
67
+ import "./token-goat-chunk-FNFBKLRD.mjs";
68
+ import "./token-goat-chunk-CO3UYX6G.mjs";
69
+ import "./token-goat-chunk-A37V4PBF.mjs";
70
+ export {
71
+ DEFAULT_MAX_BYTES,
72
+ DEFAULT_MAX_INPUT_BYTES,
73
+ DEFAULT_MAX_LINES,
74
+ ERROR_SIGNAL_RE,
75
+ FALLBACK_MAX_LINE_CHARS,
76
+ GREP_MAX_LINE_CHARS,
77
+ INPUT_MAX_LINE_CHARS,
78
+ LONG_LINE_MAX_CHARS,
79
+ MAX_INSPECT_BYTES,
80
+ REDIRECT_TOKEN_RE,
81
+ TABLE_ROW_ANOMALY_RE,
82
+ TIMESTAMP_PREFIX_RE,
83
+ byteLength,
84
+ capBytes,
85
+ capLongLines,
86
+ capTokens,
87
+ clampKeepingEnds,
88
+ clipGrepLines,
89
+ clipLongMatchLine,
90
+ clipWideLines,
91
+ combineStreams,
92
+ compressBashOutput,
93
+ compressTestOutput,
94
+ compressionMarker,
95
+ dedupeCombinedOutput,
96
+ dedupeConsecutive,
97
+ dedupeNumericRuns,
98
+ fallbackTruncate,
99
+ getMaxInputBytes,
100
+ grepLiteralPattern,
101
+ hasBareBackground,
102
+ hasBareBackgroundOrNewline,
103
+ hasHighEntropyToken,
104
+ hasUnquotedOperator,
105
+ headTailCompress,
106
+ isRedirectAmpersand,
107
+ isWholeJsonDocument,
108
+ maskQuotedSpans,
109
+ maybeNote,
110
+ normalise,
111
+ pathName,
112
+ pathStem,
113
+ positionalArgs,
114
+ preserveStderrOnError,
115
+ resolvePackageManagerScript,
116
+ safeDecode,
117
+ sanitizeControlChars,
118
+ shlexSplit,
119
+ splitBlocks,
120
+ splitOwnTrailingNotices,
121
+ squeezeBlankLines,
122
+ stripPrefixes,
123
+ stripProgress,
124
+ stripTimestamps,
125
+ trimRepeatedPrefix,
126
+ truncateMiddle,
127
+ truncateMiddleSmart,
128
+ truncateTableRows
129
+ };
@@ -0,0 +1,129 @@
1
+ import { createRequire as __cjsRequire } from 'node:module';
2
+ const require = __cjsRequire(import.meta.url);
3
+ import {
4
+ splitShellSegments,
5
+ stripLeadingAssignments
6
+ } from "./token-goat-chunk-DGS2LVNA.mjs";
7
+ import {
8
+ DELIVERS_CONTENT_RE
9
+ } from "./token-goat-chunk-MNWKPRAL.mjs";
10
+ import {
11
+ safeSlice
12
+ } from "./token-goat-chunk-HU4TORC5.mjs";
13
+ import {
14
+ init_define_import_meta_env
15
+ } from "./token-goat-chunk-A37V4PBF.mjs";
16
+
17
+ // src/tool_error_class.ts
18
+ init_define_import_meta_env();
19
+ var UNKNOWN_REASON = "unclassified";
20
+ var DENIAL_KIND_REASONS = {
21
+ "permission-rule": "hook_deny",
22
+ // 73 in the census: the user declined an approval prompt.
23
+ "user-rejected": "user_rejected",
24
+ // 1 in the census; kept because it is an enumerated harness value, not a text guess.
25
+ "automode-blocked": "auto_mode_blocked"
26
+ };
27
+ var TG_DENY_RE = /\[tg\]|token-goat/;
28
+ var CONTENT_DELIVERED_REASON = "tg_content_delivered";
29
+ function tgDenyReason(text) {
30
+ return DELIVERS_CONTENT_RE.test(text) ? CONTENT_DELIVERED_REASON : "tg_deny";
31
+ }
32
+ var HOOK_DENY_TEXT_RE = /^PreToolUse:\S+ hook error: /;
33
+ var TEST_OR_BUILD_COMMAND_RE = /^(?:npm\s+(?:test|run\s+(?:test|build|lint|typecheck))|npx\s+(?:vitest|tsc|eslint|jest|playwright)|vitest|jest|pytest|tsc|eslint|cargo\s+(?:test|build|check|clippy)|go\s+(?:test|build|vet)|make|gradle|mvn|dotnet\s+(?:test|build)|ruff|mypy|python3?\s+-m\s+(?:pytest|unittest))\b/;
34
+ var SEARCH_COMMAND_RE = /^(?:grep|egrep|fgrep|rg|findstr)\b/;
35
+ function runsCommand(command, head) {
36
+ return splitShellSegments(command).some((segment) => head.test(stripLeadingAssignments(segment)));
37
+ }
38
+ var EXPECTED_PATTERNS = [
39
+ // 176: the Bash tool's own timeout, reported as SIGTERM's 143 plus this line.
40
+ { reason: "command_timeout", tools: ["Bash"], re: /^Exit code \d+\s+Command timed out after / },
41
+ // 289: exit 1 with no output from a search command, which is how grep and rg report zero hits.
42
+ { reason: "search_no_match", tools: ["Bash"], re: /^Exit code 1\s*$/, command: SEARCH_COMMAND_RE },
43
+ // 252: a test, build, lint or typecheck run reporting failures, which is the tool doing its job.
44
+ { reason: "test_or_build_failed", tools: ["Bash"], re: /^Exit code \d+/, command: TEST_OR_BUILD_COMMAND_RE },
45
+ // 302: an unbalanced quote or bracket in the command itself.
46
+ { reason: "shell_syntax_error", tools: ["Bash"], re: /unexpected EOF while looking for matching|syntax error near unexpected token/ },
47
+ // 29: a binary missing from PATH.
48
+ { reason: "command_not_found", tools: ["Bash"], re: /command not found/ },
49
+ // 272: the harness refusing a bare or leading `sleep` and pointing at Monitor instead.
50
+ { reason: "sleep_blocked", tools: ["Bash"], re: /^Blocked: (?:sleep \d+ followed by|standalone sleep)/ },
51
+ // 114: old_string absent from the file.
52
+ { reason: "edit_string_not_found", tools: ["Edit", "MultiEdit"], re: /^String to replace not found in file/ },
53
+ // 37: old_string present more than once with replace_all false.
54
+ { reason: "edit_multiple_matches", tools: ["Edit", "MultiEdit"], re: /^Found \d+ matches of the string to replace/ },
55
+ // 37: the harness's read-before-write guard.
56
+ { reason: "file_not_read_yet", tools: ["Edit", "MultiEdit", "Write"], re: /^File has not been read yet/ },
57
+ // 16: the file changed on disk after the last read.
58
+ { reason: "file_modified_since_read", tools: ["Edit", "MultiEdit", "Write"], re: /^File has been modified since read/ },
59
+ // 643 (578 Bash, 53 Read, 11 Grep, 1 Edit): a path that does not exist, in each tool's own wording.
60
+ { reason: "path_not_found", re: /No such file or directory|^File does not exist\.|^Path does not exist(?:[:.]|[ \t]*(?:\r?\n|$))/ },
61
+ // 1,171: an interpreter raising: a Python traceback header, the `Node.js vN.N.N` line Node prints under every uncaught error, or a named error line (`SyntaxError: ...`). After path_not_found, so a missing file stays a missing file whichever language reported it.
62
+ { reason: "script_exception", tools: ["Bash"], re: /^(?:Traceback \(most recent call last\):|Node\.js v\d+\.\d+\.\d+\b|[A-Z]\w*(?:Error|Exception)(?: \[\w+\])?: )/m },
63
+ // 14: a Read over the harness's size ceiling.
64
+ { reason: "file_too_large", tools: ["Read"], re: /^File content \([^)]*\) exceeds maximum allowed/ },
65
+ // 85: arguments the tool's schema rejected before it ran.
66
+ { reason: "input_validation", re: /^InputValidationError/ },
67
+ // 68: a StructuredOutput call that did not match the requested schema.
68
+ { reason: "schema_mismatch", tools: ["StructuredOutput"], re: /^Output does not match required schema/ },
69
+ // 35: the harness's concurrent-subagent ceiling.
70
+ { reason: "subagent_limit", tools: ["Agent", "Task"], re: /^Concurrent subagent limit reached/ },
71
+ // 37: a tool disabled for this session or a misspelled tool name.
72
+ { reason: "tool_unavailable", re: /^Error: No such tool available/ }
73
+ ];
74
+ var EXPECTED_REASONS = [
75
+ "interrupted",
76
+ "tg_deny",
77
+ CONTENT_DELIVERED_REASON,
78
+ ...new Set(Object.values(DENIAL_KIND_REASONS)),
79
+ ...EXPECTED_PATTERNS.map((p) => p.reason)
80
+ ];
81
+ var TOOL_USE_ERROR_OPEN = "<tool_use_error>";
82
+ var TOOL_USE_ERROR_CLOSE = "</tool_use_error>";
83
+ function unwrapToolError(errorText) {
84
+ let text = errorText.trim();
85
+ if (text.startsWith(TOOL_USE_ERROR_OPEN)) text = text.slice(TOOL_USE_ERROR_OPEN.length);
86
+ if (text.endsWith(TOOL_USE_ERROR_CLOSE)) text = text.slice(0, text.length - TOOL_USE_ERROR_CLOSE.length);
87
+ return text.trim();
88
+ }
89
+ function expected(reason) {
90
+ return { kind: "expected", reason };
91
+ }
92
+ function classifyToolError(tool, errorText, flags = {}) {
93
+ if (flags.isInterrupt === true) return expected("interrupted");
94
+ const text = unwrapToolError(errorText);
95
+ const denial = flags.denialKind;
96
+ if (denial !== void 0 && denial !== "") {
97
+ const reason = DENIAL_KIND_REASONS[denial] ?? "hook_deny";
98
+ return expected(reason === "hook_deny" && TG_DENY_RE.test(text) ? tgDenyReason(text) : reason);
99
+ }
100
+ if (HOOK_DENY_TEXT_RE.test(text)) return expected(TG_DENY_RE.test(text) ? tgDenyReason(text) : "hook_deny");
101
+ for (const p of EXPECTED_PATTERNS) {
102
+ if (p.tools !== void 0 && (tool === void 0 || !p.tools.includes(tool))) continue;
103
+ if (!p.re.test(text)) continue;
104
+ if (p.command !== void 0 && (flags.command === void 0 || !runsCommand(flags.command, p.command))) continue;
105
+ return expected(p.reason);
106
+ }
107
+ return { kind: "unknown", reason: UNKNOWN_REASON };
108
+ }
109
+ var ERROR_PREFIX_CHARS = 60;
110
+ var EXIT_CODE_HEADER_RE = /^Exit code (\d+)\s*/;
111
+ function errorPrefix(errorText) {
112
+ let text = unwrapToolError(errorText);
113
+ let lead = "";
114
+ const exit = EXIT_CODE_HEADER_RE.exec(text);
115
+ if (exit !== null) {
116
+ lead = `exit ${exit[1] ?? ""}: `;
117
+ text = text.slice(exit[0].length);
118
+ }
119
+ const line = text.split("\n").find((l) => l.trim() !== "") ?? "";
120
+ const masked = line.trim().replace(/\b[A-Za-z]:[\\/]\S*|~?\/[\w.~-]+(?:\/[\w.~-]*)+/g, "<path>").replace(/'[^'\n]*'|"[^"\n]*"|`[^`\n]*`/g, "<q>").replace(/\d+/g, "N");
121
+ return safeSlice(`${lead}${masked === "" ? "(empty)" : masked}`, ERROR_PREFIX_CHARS);
122
+ }
123
+
124
+ export {
125
+ CONTENT_DELIVERED_REASON,
126
+ SEARCH_COMMAND_RE,
127
+ classifyToolError,
128
+ errorPrefix
129
+ };
@@ -0,0 +1,50 @@
1
+ import { createRequire as __cjsRequire } from 'node:module';
2
+ const require = __cjsRequire(import.meta.url);
3
+ import {
4
+ init_define_import_meta_env
5
+ } from "./token-goat-chunk-A37V4PBF.mjs";
6
+
7
+ // src/mcp_client_text.ts
8
+ init_define_import_meta_env();
9
+ import { AsyncLocalStorage } from "node:async_hooks";
10
+ var mcpToolCall = new AsyncLocalStorage();
11
+ var TOKEN_GOAT_RETRY_RE = /token-goat (\w[\w-]*) (?:"([^"]+)"|'([^']+)')/g;
12
+ var RETRY_PARAM_BY_COMMAND = {
13
+ read: "spec",
14
+ section: "spec",
15
+ symbol: "name",
16
+ skeleton: "file",
17
+ outline: "file",
18
+ semantic: "query"
19
+ };
20
+ function answeringMcpToolCall(fn, listed) {
21
+ return mcpToolCall.run({ listed }, fn);
22
+ }
23
+ function mcpToolListed(name) {
24
+ const store = mcpToolCall.getStore();
25
+ return store?.listed === void 0 || store.listed.has(name);
26
+ }
27
+ function forClient(note) {
28
+ return mcpToolCall.getStore() !== void 0 ? mcpFriendlyText(note) : note;
29
+ }
30
+ function mcpFriendlyText(text) {
31
+ let out = text.replace(TOKEN_GOAT_RETRY_RE, (_match, cmd, doubleQuoted, singleQuoted) => {
32
+ if (!mcpToolListed(cmd)) return "a narrower request";
33
+ const param = RETRY_PARAM_BY_COMMAND[cmd] ?? "parameter";
34
+ const value = doubleQuoted ?? singleQuoted ?? "";
35
+ const example = /["`]/.test(value) ? "" : ` (e.g. "${value}")`;
36
+ return `the "${cmd}" tool again with a more specific ${param}${example}`;
37
+ });
38
+ out = out.replace(/--json\b/g, "the json parameter");
39
+ out = out.replace(/--limit\b/g, "the limit parameter");
40
+ out = out.replace(/--top\b/g, "the top parameter");
41
+ out = out.replace(/--grep PATTERN, --section HEADING, or --tail N/g, "a narrower query");
42
+ return out;
43
+ }
44
+
45
+ export {
46
+ answeringMcpToolCall,
47
+ mcpToolListed,
48
+ forClient,
49
+ mcpFriendlyText
50
+ };
@@ -0,0 +1,25 @@
1
+ import { createRequire as __cjsRequire } from 'node:module';
2
+ const require = __cjsRequire(import.meta.url);
3
+ import {
4
+ init_define_import_meta_env
5
+ } from "./token-goat-chunk-A37V4PBF.mjs";
6
+
7
+ // src/types.ts
8
+ init_define_import_meta_env();
9
+ var HOOK_EVENTS = [
10
+ "pre_tool_use",
11
+ "post_tool_use",
12
+ "notification",
13
+ "stop",
14
+ "pre_compact",
15
+ "post_compact",
16
+ "user_prompt_submit",
17
+ "subagent_stop",
18
+ "subagent_start",
19
+ "session_start",
20
+ "post_tool_use_failure"
21
+ ];
22
+
23
+ export {
24
+ HOOK_EVENTS
25
+ };