thatgfsj-code 3.0.3 → 3.0.6

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 (212) hide show
  1. package/README.md +64 -21
  2. package/dist/app/index.d.ts +93 -22
  3. package/dist/app/index.d.ts.map +1 -1
  4. package/dist/app/index.js +232 -40
  5. package/dist/app/index.js.map +1 -1
  6. package/dist/cache/smartModel.d.ts +29 -22
  7. package/dist/cache/smartModel.d.ts.map +1 -1
  8. package/dist/cache/smartModel.js +33 -40
  9. package/dist/cache/smartModel.js.map +1 -1
  10. package/dist/cmd/index.d.ts +12 -20
  11. package/dist/cmd/index.d.ts.map +1 -1
  12. package/dist/cmd/index.js +192 -146
  13. package/dist/cmd/index.js.map +1 -1
  14. package/dist/config/index.d.ts +4 -0
  15. package/dist/config/index.d.ts.map +1 -1
  16. package/dist/config/index.js +9 -6
  17. package/dist/config/index.js.map +1 -1
  18. package/dist/config/types.d.ts +5 -0
  19. package/dist/config/types.d.ts.map +1 -1
  20. package/dist/llm/anthropic.d.ts +1 -1
  21. package/dist/llm/anthropic.d.ts.map +1 -1
  22. package/dist/llm/anthropic.js +116 -84
  23. package/dist/llm/anthropic.js.map +1 -1
  24. package/dist/llm/gemini.d.ts +27 -3
  25. package/dist/llm/gemini.d.ts.map +1 -1
  26. package/dist/llm/gemini.js +196 -73
  27. package/dist/llm/gemini.js.map +1 -1
  28. package/dist/llm/index.d.ts +20 -1
  29. package/dist/llm/index.d.ts.map +1 -1
  30. package/dist/llm/index.js +71 -10
  31. package/dist/llm/index.js.map +1 -1
  32. package/dist/llm/openai.d.ts +5 -1
  33. package/dist/llm/openai.d.ts.map +1 -1
  34. package/dist/llm/openai.js +96 -56
  35. package/dist/llm/openai.js.map +1 -1
  36. package/dist/mcp/client.d.ts +84 -34
  37. package/dist/mcp/client.d.ts.map +1 -1
  38. package/dist/mcp/client.js +291 -126
  39. package/dist/mcp/client.js.map +1 -1
  40. package/dist/session/compactor.d.ts +27 -7
  41. package/dist/session/compactor.d.ts.map +1 -1
  42. package/dist/session/compactor.js +78 -23
  43. package/dist/session/compactor.js.map +1 -1
  44. package/dist/session/index.d.ts +96 -33
  45. package/dist/session/index.d.ts.map +1 -1
  46. package/dist/session/index.js +278 -60
  47. package/dist/session/index.js.map +1 -1
  48. package/dist/tools/file.d.ts +10 -2
  49. package/dist/tools/file.d.ts.map +1 -1
  50. package/dist/tools/file.js +54 -5
  51. package/dist/tools/file.js.map +1 -1
  52. package/dist/tools/git.d.ts +16 -2
  53. package/dist/tools/git.d.ts.map +1 -1
  54. package/dist/tools/git.js +61 -18
  55. package/dist/tools/git.js.map +1 -1
  56. package/dist/tools/nwt.d.ts.map +1 -1
  57. package/dist/tools/nwt.js +8 -1
  58. package/dist/tools/nwt.js.map +1 -1
  59. package/dist/tools/search.d.ts +8 -1
  60. package/dist/tools/search.d.ts.map +1 -1
  61. package/dist/tools/search.js +105 -34
  62. package/dist/tools/search.js.map +1 -1
  63. package/dist/tools/shell.d.ts +0 -4
  64. package/dist/tools/shell.d.ts.map +1 -1
  65. package/dist/tools/shell.js +11 -26
  66. package/dist/tools/shell.js.map +1 -1
  67. package/dist/tools/types.d.ts +7 -0
  68. package/dist/tools/types.d.ts.map +1 -1
  69. package/dist/tools/types.js.map +1 -1
  70. package/dist/tui/app.d.ts.map +1 -1
  71. package/dist/tui/app.js +90 -18
  72. package/dist/tui/app.js.map +1 -1
  73. package/dist/tui/components/ChatMessage.d.ts.map +1 -1
  74. package/dist/tui/components/ChatMessage.js +9 -2
  75. package/dist/tui/components/ChatMessage.js.map +1 -1
  76. package/dist/tui/components/ConfirmPrompt.d.ts +21 -0
  77. package/dist/tui/components/ConfirmPrompt.d.ts.map +1 -0
  78. package/dist/tui/components/ConfirmPrompt.js +45 -0
  79. package/dist/tui/components/ConfirmPrompt.js.map +1 -0
  80. package/dist/tui/components/Header.d.ts +10 -5
  81. package/dist/tui/components/Header.d.ts.map +1 -1
  82. package/dist/tui/components/Header.js +13 -5
  83. package/dist/tui/components/Header.js.map +1 -1
  84. package/dist/tui/components/InitWizard.d.ts.map +1 -1
  85. package/dist/tui/components/InitWizard.js +8 -13
  86. package/dist/tui/components/InitWizard.js.map +1 -1
  87. package/dist/tui/components/StatusBar.d.ts +7 -0
  88. package/dist/tui/components/StatusBar.d.ts.map +1 -1
  89. package/dist/tui/components/StatusBar.js +8 -3
  90. package/dist/tui/components/StatusBar.js.map +1 -1
  91. package/dist/tui/components/Thinking.d.ts +5 -0
  92. package/dist/tui/components/Thinking.d.ts.map +1 -1
  93. package/dist/tui/components/Thinking.js +24 -2
  94. package/dist/tui/components/Thinking.js.map +1 -1
  95. package/dist/tui/components/ToolCall.d.ts +6 -1
  96. package/dist/tui/components/ToolCall.d.ts.map +1 -1
  97. package/dist/tui/components/ToolCall.js +50 -22
  98. package/dist/tui/components/ToolCall.js.map +1 -1
  99. package/dist/tui/components/UserInput.d.ts +5 -0
  100. package/dist/tui/components/UserInput.d.ts.map +1 -1
  101. package/dist/tui/components/UserInput.js +9 -13
  102. package/dist/tui/components/UserInput.js.map +1 -1
  103. package/dist/tui/hooks/useChat.d.ts +1 -0
  104. package/dist/tui/hooks/useChat.d.ts.map +1 -1
  105. package/dist/tui/hooks/useChat.js +36 -16
  106. package/dist/tui/hooks/useChat.js.map +1 -1
  107. package/dist/tui/hooks/useCommands.d.ts +7 -1
  108. package/dist/tui/hooks/useCommands.d.ts.map +1 -1
  109. package/dist/tui/hooks/useCommands.js +83 -49
  110. package/dist/tui/hooks/useCommands.js.map +1 -1
  111. package/dist/tui/theme.d.ts +34 -0
  112. package/dist/tui/theme.d.ts.map +1 -0
  113. package/dist/tui/theme.js +34 -0
  114. package/dist/tui/theme.js.map +1 -0
  115. package/dist/tui/welcome.d.ts.map +1 -1
  116. package/dist/tui/welcome.js +9 -7
  117. package/dist/tui/welcome.js.map +1 -1
  118. package/dist/types.d.ts +16 -1
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/utils/diff.d.ts +5 -0
  121. package/dist/utils/diff.d.ts.map +1 -1
  122. package/dist/utils/diff.js +15 -0
  123. package/dist/utils/diff.js.map +1 -1
  124. package/dist/version.d.ts +12 -0
  125. package/dist/version.d.ts.map +1 -0
  126. package/dist/version.js +29 -0
  127. package/dist/version.js.map +1 -0
  128. package/package.json +19 -7
  129. package/CHANGELOG.md +0 -192
  130. package/DEVELOPMENT.md +0 -286
  131. package/ROADMAP.md +0 -91
  132. package/docs/API_KEY_GUIDE.md +0 -236
  133. package/docs/FAQ.md +0 -182
  134. package/install.bat +0 -63
  135. package/install.ps1 +0 -238
  136. package/install.sh +0 -113
  137. package/src/app/index.ts +0 -197
  138. package/src/cache/fingerprint.ts +0 -101
  139. package/src/cache/index.ts +0 -21
  140. package/src/cache/smartModel.ts +0 -145
  141. package/src/cache/stats.ts +0 -199
  142. package/src/cache/volatile.ts +0 -47
  143. package/src/cmd/index.tsx +0 -288
  144. package/src/config/index.ts +0 -158
  145. package/src/config/providers.ts +0 -234
  146. package/src/config/types.ts +0 -71
  147. package/src/hooks/index.ts +0 -111
  148. package/src/llm/anthropic.ts +0 -413
  149. package/src/llm/gemini.ts +0 -169
  150. package/src/llm/index.ts +0 -302
  151. package/src/llm/openai.ts +0 -243
  152. package/src/llm/provider.ts +0 -71
  153. package/src/mcp/client.ts +0 -330
  154. package/src/prompts/index.ts +0 -260
  155. package/src/session/compactor.ts +0 -103
  156. package/src/session/index.ts +0 -181
  157. package/src/session/message.ts +0 -42
  158. package/src/skills/brainstorming.ts +0 -43
  159. package/src/skills/code-review.ts +0 -45
  160. package/src/skills/executing-plans.ts +0 -27
  161. package/src/skills/frontend-design.ts +0 -35
  162. package/src/skills/git-workflow.ts +0 -36
  163. package/src/skills/improve-architecture.ts +0 -38
  164. package/src/skills/index.ts +0 -136
  165. package/src/skills/neuroweave.ts +0 -47
  166. package/src/skills/playwright.ts +0 -72
  167. package/src/skills/prototype.ts +0 -30
  168. package/src/skills/subagent.ts +0 -28
  169. package/src/skills/supabase.ts +0 -44
  170. package/src/skills/systematic-debugging.ts +0 -44
  171. package/src/skills/tdd.ts +0 -39
  172. package/src/skills/triage.ts +0 -35
  173. package/src/skills/verification.ts +0 -31
  174. package/src/skills/writing-plans.ts +0 -42
  175. package/src/tools/file.ts +0 -143
  176. package/src/tools/git.ts +0 -132
  177. package/src/tools/index.ts +0 -111
  178. package/src/tools/nwt.ts +0 -598
  179. package/src/tools/search.ts +0 -263
  180. package/src/tools/shell.ts +0 -136
  181. package/src/tools/types.ts +0 -122
  182. package/src/tui/app.tsx +0 -159
  183. package/src/tui/components/ChatList.tsx +0 -41
  184. package/src/tui/components/ChatMessage.tsx +0 -54
  185. package/src/tui/components/Header.tsx +0 -66
  186. package/src/tui/components/InitWizard.tsx +0 -251
  187. package/src/tui/components/Markdown.tsx +0 -35
  188. package/src/tui/components/ModelSelector.tsx +0 -107
  189. package/src/tui/components/StatusBar.tsx +0 -30
  190. package/src/tui/components/Thinking.tsx +0 -17
  191. package/src/tui/components/ToolCall.tsx +0 -102
  192. package/src/tui/components/UserInput.tsx +0 -151
  193. package/src/tui/hooks/useChat.ts +0 -287
  194. package/src/tui/hooks/useCommands.ts +0 -273
  195. package/src/tui/index.ts +0 -6
  196. package/src/tui/welcome.ts +0 -177
  197. package/src/types.ts +0 -104
  198. package/src/utils/diff.ts +0 -71
  199. package/src/utils/project.ts +0 -99
  200. package/src/utils/stableStringify.ts +0 -47
  201. package/src/utils/thinking.ts +0 -119
  202. package/tests/cache/fingerprint.test.ts +0 -75
  203. package/tests/cache/providerCatalog.test.ts +0 -31
  204. package/tests/cache/smartModel.test.ts +0 -112
  205. package/tests/cache/stableStringify.test.ts +0 -43
  206. package/tests/cache/stats.test.ts +0 -146
  207. package/tests/cache/volatile.test.ts +0 -75
  208. package/tests/smoke-pollution.mjs +0 -78
  209. package/tests/smoke-thinking.mjs +0 -110
  210. package/tests/smoke-tool-stream.mjs +0 -69
  211. package/tests/smoke-tool.mjs +0 -117
  212. package/tsconfig.json +0 -21
@@ -43,6 +43,11 @@ export interface AIConfig {
43
43
  maxTokens?: number;
44
44
  baseUrl?: string;
45
45
  provider?: ProviderName;
46
+ /**
47
+ * v3.0.5: cache policy is forwarded to providers (was dropped by
48
+ * getAIConfig before, so cache.ttl config never reached the wire).
49
+ */
50
+ cache?: Config['cache'];
46
51
  }
47
52
  export interface ModelInfo {
48
53
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,MAAM,GACN,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,YAAY,GACpB,aAAa,GACb,QAAQ,GACR,UAAU,GACV,MAAM,GACN,OAAO,GACP,SAAS,GACT,UAAU,GACV,SAAS,GACT,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,eAAe,GACf,kBAAkB,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;CAC3C;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -89,7 +89,7 @@ export declare class AnthropicProvider implements LLMProvider {
89
89
  * usage fields. Some relay stations do not forward this header — that is
90
90
  * fine, the rest of the provider still works (just without cache stats).
91
91
  */
92
- protected doRequest(body: any): Promise<Response>;
92
+ protected doRequest(body: any, external?: AbortSignal): Promise<Response>;
93
93
  /**
94
94
  * Map Anthropic usage JSON to the canonical Usage shape. Anthropic reports
95
95
  * input_tokens / output_tokens on the message_start event, and adds
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMjE,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC;;;;;;;;;OASG;IACH,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAqB;gBAE3C,MAAM,EAAE,cAAc;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAItC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE;IAc1B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAkC1F,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;IA6H5H;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;IAqGtG;;;;;;;;OAQG;cACa,SAAS,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;IAsBvD;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;CAS1C"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,WAAW,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAMjE,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,IAAI,eAAe;IAC5B,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;IACjC;;;;;;;;;OASG;IACH,SAAS,CAAC,WAAW,EAAE,IAAI,GAAG,IAAI,CAAqB;gBAE3C,MAAM,EAAE,cAAc;IAIlC;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;IAItC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE;IAc1B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAkC1F,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;IAqJ5H;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;IA2GtG;;;;;;;;OAQG;cACa,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuB/E;;;;;;OAMG;IACH,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK;CAS1C"}
@@ -75,7 +75,7 @@ export class AnthropicProvider {
75
75
  }
76
76
  async chat(messages, options, tools) {
77
77
  const body = this.buildRequest(messages, false, options, tools);
78
- const response = await this.doRequest(body);
78
+ const response = await this.doRequest(body, options?.signal);
79
79
  if (!response.ok) {
80
80
  const text = await response.text().catch(() => '');
81
81
  throw new Error(`Anthropic API error ${response.status}: ${text}`);
@@ -103,13 +103,18 @@ export class AnthropicProvider {
103
103
  }
104
104
  async *chatStream(messages, options, tools) {
105
105
  const body = this.buildRequest(messages, true, options, tools);
106
- const response = await this.doRequest(body);
107
- if (!response.ok || !response.body) {
108
- const text = await response.text().catch(() => '');
109
- throw new Error(`Anthropic API error ${response.status}: ${text}`);
110
- }
111
- const reader = response.body.getReader();
112
- const decoder = new TextDecoder();
106
+ // v3.0.5: idle watchdog + caller cancellation (same as OpenAI provider).
107
+ const controller = new AbortController();
108
+ const upstream = options?.signal;
109
+ const onUpstreamAbort = () => controller.abort();
110
+ upstream?.addEventListener('abort', onUpstreamAbort, { once: true });
111
+ let idleTimer;
112
+ const resetIdle = () => {
113
+ if (idleTimer)
114
+ clearTimeout(idleTimer);
115
+ idleTimer = setTimeout(() => controller.abort(), 120000);
116
+ };
117
+ resetIdle();
113
118
  let fullContent = '';
114
119
  let buffer = '';
115
120
  // Track tool use blocks
@@ -119,80 +124,100 @@ export class AnthropicProvider {
119
124
  // Anthropic attaches usage info to the trailing message_delta event.
120
125
  let capturedUsage;
121
126
  try {
122
- while (true) {
123
- const { done, value } = await reader.read();
124
- if (done)
125
- break;
126
- buffer += decoder.decode(value, { stream: true });
127
- const lines = buffer.split('\n');
128
- buffer = lines.pop() || '';
129
- for (const line of lines) {
130
- const trimmed = line.trim();
131
- if (!trimmed || !trimmed.startsWith('data: '))
132
- continue;
133
- try {
134
- const data = JSON.parse(trimmed.slice(6));
135
- // content_block_start: track block types
136
- if (data.type === 'content_block_start') {
137
- currentBlockIndex = data.index ?? 0;
138
- currentBlockType = data.content_block?.type || '';
139
- if (currentBlockType === 'tool_use') {
140
- toolUseBlocks.set(currentBlockIndex, {
141
- id: data.content_block.id || '',
142
- name: data.content_block.name || '',
143
- input: '',
144
- });
145
- }
146
- else if (currentBlockType === 'thinking') {
147
- // Anthropic extended thinking: emit as structured thinking chunks.
148
- // TUI / session layer decides whether to surface these.
149
- // (We don't push to fullContent — compressThinking strips
150
- // these blocks from persistence.)
151
- }
152
- }
153
- // content_block_delta: incremental text or tool input
154
- if (data.type === 'content_block_delta') {
155
- if (data.delta?.type === 'text_delta') {
156
- const text = data.delta.text;
157
- fullContent += text;
158
- yield { type: 'text', content: text };
159
- }
160
- else if (data.delta?.type === 'input_json_delta') {
161
- const buf = toolUseBlocks.get(currentBlockIndex);
162
- if (buf) {
163
- buf.input += data.delta.partial_json || '';
127
+ const response = await this.doRequest(body, controller.signal);
128
+ resetIdle();
129
+ if (!response.ok || !response.body) {
130
+ const text = await response.text().catch(() => '');
131
+ throw new Error(`Anthropic API error ${response.status}: ${text}`);
132
+ }
133
+ const reader = response.body.getReader();
134
+ const decoder = new TextDecoder();
135
+ try {
136
+ while (true) {
137
+ const { done, value } = await reader.read();
138
+ resetIdle();
139
+ if (done)
140
+ break;
141
+ buffer += decoder.decode(value, { stream: true });
142
+ const lines = buffer.split('\n');
143
+ buffer = lines.pop() || '';
144
+ for (const line of lines) {
145
+ const trimmed = line.trim();
146
+ if (!trimmed || !trimmed.startsWith('data: '))
147
+ continue;
148
+ try {
149
+ const data = JSON.parse(trimmed.slice(6));
150
+ // content_block_start: track block types
151
+ if (data.type === 'content_block_start') {
152
+ currentBlockIndex = data.index ?? 0;
153
+ currentBlockType = data.content_block?.type || '';
154
+ if (currentBlockType === 'tool_use') {
155
+ toolUseBlocks.set(currentBlockIndex, {
156
+ id: data.content_block.id || '',
157
+ name: data.content_block.name || '',
158
+ input: '',
159
+ });
160
+ }
161
+ else if (currentBlockType === 'thinking') {
162
+ // Anthropic extended thinking: emit as structured thinking chunks.
163
+ // TUI / session layer decides whether to surface these.
164
+ // (We don't push to fullContent — compressThinking strips
165
+ // these blocks from persistence.)
164
166
  }
165
167
  }
166
- else if (data.delta?.type === 'thinking_delta') {
167
- if (data.delta.thinking) {
168
- yield { type: 'thinking', content: data.delta.thinking };
168
+ // content_block_delta: incremental text or tool input
169
+ if (data.type === 'content_block_delta') {
170
+ if (data.delta?.type === 'text_delta') {
171
+ const text = data.delta.text;
172
+ fullContent += text;
173
+ yield { type: 'text', content: text };
174
+ }
175
+ else if (data.delta?.type === 'input_json_delta') {
176
+ const buf = toolUseBlocks.get(currentBlockIndex);
177
+ if (buf) {
178
+ buf.input += data.delta.partial_json || '';
179
+ }
180
+ }
181
+ else if (data.delta?.type === 'thinking_delta') {
182
+ if (data.delta.thinking) {
183
+ yield { type: 'thinking', content: data.delta.thinking };
184
+ }
169
185
  }
170
186
  }
187
+ // message_delta carries the final usage (cache hit/miss stats).
188
+ if (data.type === 'message_delta' && data.usage) {
189
+ capturedUsage = this.normalizeUsage({
190
+ ...capturedUsage,
191
+ ...data.usage,
192
+ });
193
+ }
194
+ // message_start may carry the initial input_tokens + cache info
195
+ // when prompt caching is active.
196
+ if (data.type === 'message_start' && data.message?.usage) {
197
+ capturedUsage = this.normalizeUsage(data.message.usage);
198
+ }
171
199
  }
172
- // message_delta carries the final usage (cache hit/miss stats).
173
- // Per Anthropic docs: usage is only attached on the message_delta
174
- // event of the LAST chunk (after message_stop), unless the
175
- // `anthropic-beta: prompt-caching-2024-07-31` header is sent.
176
- if (data.type === 'message_delta' && data.usage) {
177
- capturedUsage = this.normalizeUsage({
178
- ...capturedUsage,
179
- ...data.usage,
180
- });
181
- }
182
- // message_start may carry the initial input_tokens + cache info
183
- // when prompt caching is active.
184
- if (data.type === 'message_start' && data.message?.usage) {
185
- capturedUsage = this.normalizeUsage(data.message.usage);
200
+ catch {
201
+ // Skip invalid JSON
186
202
  }
187
203
  }
188
- catch {
189
- // Skip invalid JSON
190
- }
191
204
  }
192
205
  }
206
+ finally {
207
+ if (idleTimer)
208
+ clearTimeout(idleTimer);
209
+ upstream?.removeEventListener('abort', onUpstreamAbort);
210
+ reader.releaseLock();
211
+ }
193
212
  }
194
- finally {
195
- reader.releaseLock();
213
+ catch (error) {
214
+ if (idleTimer)
215
+ clearTimeout(idleTimer);
216
+ upstream?.removeEventListener('abort', onUpstreamAbort);
217
+ if (controller.signal.aborted && !upstream?.aborted) {
218
+ throw new Error('Stream stalled: no data received for 120s');
219
+ }
220
+ throw error;
196
221
  }
197
222
  // Convert tool use blocks to ToolCall[]
198
223
  const toolCalls = [];
@@ -305,17 +330,23 @@ export class AnthropicProvider {
305
330
  }
306
331
  return { role: 'assistant', content: blocks };
307
332
  }
308
- // Forward per-message cache_control if the caller attached one
309
- // (e.g. an inline breakpoint for a particular user message).
310
- const baseContent = typeof m.content === 'string' ? m.content : m.content;
311
- const msg = {
312
- role: m.role === 'assistant' ? 'assistant' : 'user',
313
- content: baseContent,
314
- };
333
+ // Forward per-message cache_control if the caller attached one.
334
+ // v3.0.5: cache_control is only legal on CONTENT BLOCKS, not on the
335
+ // message object the previous code attached it at the top level,
336
+ // which the API rejects with 400. Convert string content to a block.
315
337
  if (m.cache_control) {
316
- msg.cache_control = m.cache_control;
338
+ const text = typeof m.content === 'string'
339
+ ? m.content
340
+ : m.content.filter(b => b.type === 'text').map(b => b.text).join('');
341
+ return {
342
+ role: m.role === 'assistant' ? 'assistant' : 'user',
343
+ content: [{ type: 'text', text, cache_control: m.cache_control }],
344
+ };
317
345
  }
318
- return msg;
346
+ return {
347
+ role: m.role === 'assistant' ? 'assistant' : 'user',
348
+ content: m.content,
349
+ };
319
350
  });
320
351
  const body = {
321
352
  model: this.config.model,
@@ -345,10 +376,11 @@ export class AnthropicProvider {
345
376
  * usage fields. Some relay stations do not forward this header — that is
346
377
  * fine, the rest of the provider still works (just without cache stats).
347
378
  */
348
- async doRequest(body) {
379
+ async doRequest(body, external) {
349
380
  const url = `${this.config.baseUrl}/messages`;
350
381
  const controller = new AbortController();
351
- const timeout = setTimeout(() => controller.abort(), 60000); // 60s
382
+ const timeout = setTimeout(() => controller.abort(), 60000); // 60s connect
383
+ const signal = external ? AbortSignal.any([controller.signal, external]) : controller.signal;
352
384
  try {
353
385
  return await fetch(url, {
354
386
  method: 'POST',
@@ -359,7 +391,7 @@ export class AnthropicProvider {
359
391
  'anthropic-beta': 'prompt-caching-2024-07-31',
360
392
  },
361
393
  body: stableStringify(body),
362
- signal: controller.signal,
394
+ signal,
363
395
  });
364
396
  }
365
397
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/llm/anthropic.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,40 @@
1
1
  /**
2
2
  * Google Gemini Provider
3
+ *
4
+ * v3.0.5 fixes:
5
+ * - API key moved out of the URL query string into the x-goog-api-key
6
+ * header (keys in URLs leak into proxy/server logs).
7
+ * - Multi-turn tool calling now round-trips correctly: assistant
8
+ * tool_calls are mapped back to model functionCall parts and tool
9
+ * results are sent as functionResponse parts. Previously tool results
10
+ * were flattened into a plain text user message, so the model lost the
11
+ * call->result linkage and multi-step tool chains broke.
12
+ * - ALL system messages are concatenated into systemInstruction (the
13
+ * previous code silently dropped every system message after the first).
14
+ * - Streaming now captures usageMetadata and yields a { type: 'usage' }
15
+ * chunk like the other providers.
16
+ * - Caller cancellation via options.signal + 120s idle watchdog.
3
17
  */
4
- import type { ChatMessage, ChatResponse, ChatOptions } from '../types.js';
18
+ import type { ChatMessage, ChatResponse, ChatOptions, StreamChunk } from '../types.js';
5
19
  import type { Tool } from '../tools/types.js';
6
- import type { LLMProvider, StreamChunk, ProviderConfig } from './provider.js';
20
+ import type { LLMProvider, ProviderConfig } from './provider.js';
7
21
  export declare class GeminiProvider implements LLMProvider {
8
22
  readonly name = "gemini";
9
23
  protected config: ProviderConfig;
10
24
  constructor(config: ProviderConfig);
11
25
  buildTools(tools: Tool[]): any[];
26
+ /** Extract message text whether content is a string or ContentBlock[]. */
27
+ private static textOf;
28
+ /**
29
+ * Convert our canonical ChatMessage[] into Gemini `contents`.
30
+ * Tool-call pairing is preserved: assistant.tool_calls -> model
31
+ * functionCall parts; tool messages -> user functionResponse parts.
32
+ */
33
+ private buildContents;
34
+ private buildRequest;
35
+ private authHeaders;
36
+ private normalizeUsage;
12
37
  chat(messages: ChatMessage[], options?: ChatOptions, tools?: Tool[]): Promise<ChatResponse>;
13
38
  chatStream(messages: ChatMessage[], options?: ChatOptions, tools?: Tool[]): AsyncGenerator<StreamChunk, ChatResponse>;
14
- private buildRequest;
15
39
  }
16
40
  //# sourceMappingURL=gemini.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,MAAM,aAAa,CAAC;AACpF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9E,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;gBAErB,MAAM,EAAE,cAAc;IAIlC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE;IAgB1B,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAyC1F,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;IAqE5H,OAAO,CAAC,YAAY;CA0BrB"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAY,WAAW,EAAS,MAAM,aAAa,CAAC;AACxG,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEjE,qBAAa,cAAe,YAAW,WAAW;IAChD,QAAQ,CAAC,IAAI,YAAY;IACzB,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;gBAErB,MAAM,EAAE,cAAc;IAIlC,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE;IAgBhC,0EAA0E;IAC1E,OAAO,CAAC,MAAM,CAAC,MAAM;IAKrB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA2CrB,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAQhB,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAsC1F,UAAU,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,WAAW,EAAE,YAAY,CAAC;CA0G7H"}