longer-agent 0.1.0

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 (289) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/README.zh-CN.md +227 -0
  4. package/agent_templates/executor/agent.yaml +22 -0
  5. package/agent_templates/executor/system_prompt.md +17 -0
  6. package/agent_templates/explorer/agent.yaml +13 -0
  7. package/agent_templates/explorer/system_prompt.md +19 -0
  8. package/agent_templates/main/agent.yaml +7 -0
  9. package/agent_templates/main/system_prompt.md +45 -0
  10. package/configExample.yaml +83 -0
  11. package/dist/agents/agent.d.ts +79 -0
  12. package/dist/agents/agent.d.ts.map +1 -0
  13. package/dist/agents/agent.js +156 -0
  14. package/dist/agents/agent.js.map +1 -0
  15. package/dist/agents/tool-loop.d.ts +140 -0
  16. package/dist/agents/tool-loop.d.ts.map +1 -0
  17. package/dist/agents/tool-loop.js +465 -0
  18. package/dist/agents/tool-loop.js.map +1 -0
  19. package/dist/ask.d.ts +81 -0
  20. package/dist/ask.d.ts.map +1 -0
  21. package/dist/ask.js +34 -0
  22. package/dist/ask.js.map +1 -0
  23. package/dist/auth/openai-oauth.d.ts +66 -0
  24. package/dist/auth/openai-oauth.d.ts.map +1 -0
  25. package/dist/auth/openai-oauth.js +640 -0
  26. package/dist/auth/openai-oauth.js.map +1 -0
  27. package/dist/cli.d.ts +14 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +254 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/commands.d.ts +118 -0
  32. package/dist/commands.d.ts.map +1 -0
  33. package/dist/commands.js +862 -0
  34. package/dist/commands.js.map +1 -0
  35. package/dist/config.d.ts +130 -0
  36. package/dist/config.d.ts.map +1 -0
  37. package/dist/config.js +648 -0
  38. package/dist/config.js.map +1 -0
  39. package/dist/context-rendering.d.ts +69 -0
  40. package/dist/context-rendering.d.ts.map +1 -0
  41. package/dist/context-rendering.js +250 -0
  42. package/dist/context-rendering.js.map +1 -0
  43. package/dist/document-projection.d.ts +12 -0
  44. package/dist/document-projection.d.ts.map +1 -0
  45. package/dist/document-projection.js +75 -0
  46. package/dist/document-projection.js.map +1 -0
  47. package/dist/ephemeral-log.d.ts +15 -0
  48. package/dist/ephemeral-log.d.ts.map +1 -0
  49. package/dist/ephemeral-log.js +173 -0
  50. package/dist/ephemeral-log.js.map +1 -0
  51. package/dist/file-attach.d.ts +89 -0
  52. package/dist/file-attach.d.ts.map +1 -0
  53. package/dist/file-attach.js +571 -0
  54. package/dist/file-attach.js.map +1 -0
  55. package/dist/index.d.ts +29 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +43 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/init-wizard.d.ts +13 -0
  60. package/dist/init-wizard.d.ts.map +1 -0
  61. package/dist/init-wizard.js +328 -0
  62. package/dist/init-wizard.js.map +1 -0
  63. package/dist/log-entry.d.ts +104 -0
  64. package/dist/log-entry.d.ts.map +1 -0
  65. package/dist/log-entry.js +292 -0
  66. package/dist/log-entry.js.map +1 -0
  67. package/dist/log-projection.d.ts +73 -0
  68. package/dist/log-projection.d.ts.map +1 -0
  69. package/dist/log-projection.js +651 -0
  70. package/dist/log-projection.js.map +1 -0
  71. package/dist/mcp-client.d.ts +55 -0
  72. package/dist/mcp-client.d.ts.map +1 -0
  73. package/dist/mcp-client.js +402 -0
  74. package/dist/mcp-client.js.map +1 -0
  75. package/dist/model-selection.d.ts +16 -0
  76. package/dist/model-selection.d.ts.map +1 -0
  77. package/dist/model-selection.js +181 -0
  78. package/dist/model-selection.js.map +1 -0
  79. package/dist/network-retry.d.ts +38 -0
  80. package/dist/network-retry.d.ts.map +1 -0
  81. package/dist/network-retry.js +140 -0
  82. package/dist/network-retry.js.map +1 -0
  83. package/dist/persistence.d.ts +104 -0
  84. package/dist/persistence.d.ts.map +1 -0
  85. package/dist/persistence.js +644 -0
  86. package/dist/persistence.js.map +1 -0
  87. package/dist/primitives/context.d.ts +29 -0
  88. package/dist/primitives/context.d.ts.map +1 -0
  89. package/dist/primitives/context.js +85 -0
  90. package/dist/primitives/context.js.map +1 -0
  91. package/dist/progress.d.ts +51 -0
  92. package/dist/progress.d.ts.map +1 -0
  93. package/dist/progress.js +229 -0
  94. package/dist/progress.js.map +1 -0
  95. package/dist/provider-presets.d.ts +34 -0
  96. package/dist/provider-presets.d.ts.map +1 -0
  97. package/dist/provider-presets.js +181 -0
  98. package/dist/provider-presets.js.map +1 -0
  99. package/dist/providers/anthropic.d.ts +32 -0
  100. package/dist/providers/anthropic.d.ts.map +1 -0
  101. package/dist/providers/anthropic.js +450 -0
  102. package/dist/providers/anthropic.js.map +1 -0
  103. package/dist/providers/base.d.ts +135 -0
  104. package/dist/providers/base.d.ts.map +1 -0
  105. package/dist/providers/base.js +104 -0
  106. package/dist/providers/base.js.map +1 -0
  107. package/dist/providers/glm.d.ts +18 -0
  108. package/dist/providers/glm.d.ts.map +1 -0
  109. package/dist/providers/glm.js +59 -0
  110. package/dist/providers/glm.js.map +1 -0
  111. package/dist/providers/kimi.d.ts +23 -0
  112. package/dist/providers/kimi.d.ts.map +1 -0
  113. package/dist/providers/kimi.js +89 -0
  114. package/dist/providers/kimi.js.map +1 -0
  115. package/dist/providers/minimax.d.ts +20 -0
  116. package/dist/providers/minimax.d.ts.map +1 -0
  117. package/dist/providers/minimax.js +192 -0
  118. package/dist/providers/minimax.js.map +1 -0
  119. package/dist/providers/openai-chat.d.ts +33 -0
  120. package/dist/providers/openai-chat.d.ts.map +1 -0
  121. package/dist/providers/openai-chat.js +543 -0
  122. package/dist/providers/openai-chat.js.map +1 -0
  123. package/dist/providers/openai-responses.d.ts +26 -0
  124. package/dist/providers/openai-responses.d.ts.map +1 -0
  125. package/dist/providers/openai-responses.js +443 -0
  126. package/dist/providers/openai-responses.js.map +1 -0
  127. package/dist/providers/openrouter.d.ts +24 -0
  128. package/dist/providers/openrouter.d.ts.map +1 -0
  129. package/dist/providers/openrouter.js +177 -0
  130. package/dist/providers/openrouter.js.map +1 -0
  131. package/dist/providers/registry.d.ts +7 -0
  132. package/dist/providers/registry.d.ts.map +1 -0
  133. package/dist/providers/registry.js +38 -0
  134. package/dist/providers/registry.js.map +1 -0
  135. package/dist/security/path.d.ts +51 -0
  136. package/dist/security/path.d.ts.map +1 -0
  137. package/dist/security/path.js +187 -0
  138. package/dist/security/path.js.map +1 -0
  139. package/dist/security/sensitive-files.d.ts +3 -0
  140. package/dist/security/sensitive-files.d.ts.map +1 -0
  141. package/dist/security/sensitive-files.js +41 -0
  142. package/dist/security/sensitive-files.js.map +1 -0
  143. package/dist/session.d.ts +446 -0
  144. package/dist/session.d.ts.map +1 -0
  145. package/dist/session.js +4595 -0
  146. package/dist/session.js.map +1 -0
  147. package/dist/settings.d.ts +46 -0
  148. package/dist/settings.d.ts.map +1 -0
  149. package/dist/settings.js +134 -0
  150. package/dist/settings.js.map +1 -0
  151. package/dist/show-context.d.ts +35 -0
  152. package/dist/show-context.d.ts.map +1 -0
  153. package/dist/show-context.js +320 -0
  154. package/dist/show-context.js.map +1 -0
  155. package/dist/skills/loader.d.ts +49 -0
  156. package/dist/skills/loader.d.ts.map +1 -0
  157. package/dist/skills/loader.js +166 -0
  158. package/dist/skills/loader.js.map +1 -0
  159. package/dist/summarize-context.d.ts +29 -0
  160. package/dist/summarize-context.d.ts.map +1 -0
  161. package/dist/summarize-context.js +247 -0
  162. package/dist/summarize-context.js.map +1 -0
  163. package/dist/templates/loader.d.ts +104 -0
  164. package/dist/templates/loader.d.ts.map +1 -0
  165. package/dist/templates/loader.js +514 -0
  166. package/dist/templates/loader.js.map +1 -0
  167. package/dist/tools/basic.d.ts +29 -0
  168. package/dist/tools/basic.d.ts.map +1 -0
  169. package/dist/tools/basic.js +2079 -0
  170. package/dist/tools/basic.js.map +1 -0
  171. package/dist/tools/comm.d.ts +17 -0
  172. package/dist/tools/comm.d.ts.map +1 -0
  173. package/dist/tools/comm.js +192 -0
  174. package/dist/tools/comm.js.map +1 -0
  175. package/dist/tools/web-fetch.d.ts +11 -0
  176. package/dist/tools/web-fetch.d.ts.map +1 -0
  177. package/dist/tools/web-fetch.js +237 -0
  178. package/dist/tools/web-fetch.js.map +1 -0
  179. package/dist/tools/web-search.d.ts +24 -0
  180. package/dist/tools/web-search.d.ts.map +1 -0
  181. package/dist/tools/web-search.js +51 -0
  182. package/dist/tools/web-search.js.map +1 -0
  183. package/dist/tui/app.d.ts +35 -0
  184. package/dist/tui/app.d.ts.map +1 -0
  185. package/dist/tui/app.js +1042 -0
  186. package/dist/tui/app.js.map +1 -0
  187. package/dist/tui/checkbox-picker.d.ts +35 -0
  188. package/dist/tui/checkbox-picker.d.ts.map +1 -0
  189. package/dist/tui/checkbox-picker.js +85 -0
  190. package/dist/tui/checkbox-picker.js.map +1 -0
  191. package/dist/tui/command-picker.d.ts +31 -0
  192. package/dist/tui/command-picker.d.ts.map +1 -0
  193. package/dist/tui/command-picker.js +113 -0
  194. package/dist/tui/command-picker.js.map +1 -0
  195. package/dist/tui/components/ask-panel.d.ts +21 -0
  196. package/dist/tui/components/ask-panel.d.ts.map +1 -0
  197. package/dist/tui/components/ask-panel.js +81 -0
  198. package/dist/tui/components/ask-panel.js.map +1 -0
  199. package/dist/tui/components/conversation-panel.d.ts +68 -0
  200. package/dist/tui/components/conversation-panel.d.ts.map +1 -0
  201. package/dist/tui/components/conversation-panel.js +611 -0
  202. package/dist/tui/components/conversation-panel.js.map +1 -0
  203. package/dist/tui/components/input-panel.d.ts +27 -0
  204. package/dist/tui/components/input-panel.d.ts.map +1 -0
  205. package/dist/tui/components/input-panel.js +725 -0
  206. package/dist/tui/components/input-panel.js.map +1 -0
  207. package/dist/tui/components/logo-panel.d.ts +14 -0
  208. package/dist/tui/components/logo-panel.d.ts.map +1 -0
  209. package/dist/tui/components/logo-panel.js +37 -0
  210. package/dist/tui/components/logo-panel.js.map +1 -0
  211. package/dist/tui/components/plan-panel.d.ts +10 -0
  212. package/dist/tui/components/plan-panel.d.ts.map +1 -0
  213. package/dist/tui/components/plan-panel.js +8 -0
  214. package/dist/tui/components/plan-panel.js.map +1 -0
  215. package/dist/tui/components/status-bar.d.ts +24 -0
  216. package/dist/tui/components/status-bar.d.ts.map +1 -0
  217. package/dist/tui/components/status-bar.js +80 -0
  218. package/dist/tui/components/status-bar.js.map +1 -0
  219. package/dist/tui/input/editor-state.d.ts +22 -0
  220. package/dist/tui/input/editor-state.d.ts.map +1 -0
  221. package/dist/tui/input/editor-state.js +157 -0
  222. package/dist/tui/input/editor-state.js.map +1 -0
  223. package/dist/tui/input/keymap.d.ts +3 -0
  224. package/dist/tui/input/keymap.d.ts.map +1 -0
  225. package/dist/tui/input/keymap.js +72 -0
  226. package/dist/tui/input/keymap.js.map +1 -0
  227. package/dist/tui/input/paste-slots.d.ts +17 -0
  228. package/dist/tui/input/paste-slots.d.ts.map +1 -0
  229. package/dist/tui/input/paste-slots.js +46 -0
  230. package/dist/tui/input/paste-slots.js.map +1 -0
  231. package/dist/tui/input/paste.d.ts +15 -0
  232. package/dist/tui/input/paste.d.ts.map +1 -0
  233. package/dist/tui/input/paste.js +35 -0
  234. package/dist/tui/input/paste.js.map +1 -0
  235. package/dist/tui/input/protocol.d.ts +9 -0
  236. package/dist/tui/input/protocol.d.ts.map +1 -0
  237. package/dist/tui/input/protocol.js +387 -0
  238. package/dist/tui/input/protocol.js.map +1 -0
  239. package/dist/tui/input/sanitize.d.ts +6 -0
  240. package/dist/tui/input/sanitize.d.ts.map +1 -0
  241. package/dist/tui/input/sanitize.js +20 -0
  242. package/dist/tui/input/sanitize.js.map +1 -0
  243. package/dist/tui/input/types.d.ts +18 -0
  244. package/dist/tui/input/types.d.ts.map +1 -0
  245. package/dist/tui/input/types.js +2 -0
  246. package/dist/tui/input/types.js.map +1 -0
  247. package/dist/tui/launch.d.ts +23 -0
  248. package/dist/tui/launch.d.ts.map +1 -0
  249. package/dist/tui/launch.js +104 -0
  250. package/dist/tui/launch.js.map +1 -0
  251. package/dist/tui/theme.d.ts +20 -0
  252. package/dist/tui/theme.d.ts.map +1 -0
  253. package/dist/tui/theme.js +29 -0
  254. package/dist/tui/theme.js.map +1 -0
  255. package/dist/tui/types.d.ts +136 -0
  256. package/dist/tui/types.d.ts.map +1 -0
  257. package/dist/tui/types.js +9 -0
  258. package/dist/tui/types.js.map +1 -0
  259. package/package.json +76 -0
  260. package/prompts/sections/agents_md.md +23 -0
  261. package/prompts/sections/important_log.md +16 -0
  262. package/prompts/sections/system_mechanisms.md +18 -0
  263. package/prompts/tools/apply_patch.md +31 -0
  264. package/prompts/tools/ask.md +18 -0
  265. package/prompts/tools/bash.md +13 -0
  266. package/prompts/tools/bash_background.md +9 -0
  267. package/prompts/tools/bash_output.md +9 -0
  268. package/prompts/tools/check_status.md +3 -0
  269. package/prompts/tools/diff.md +5 -0
  270. package/prompts/tools/edit_file.md +11 -0
  271. package/prompts/tools/glob.md +7 -0
  272. package/prompts/tools/grep.md +20 -0
  273. package/prompts/tools/kill_agent.md +3 -0
  274. package/prompts/tools/kill_shell.md +5 -0
  275. package/prompts/tools/list_dir.md +5 -0
  276. package/prompts/tools/plan.md +252 -0
  277. package/prompts/tools/read_file.md +9 -0
  278. package/prompts/tools/show_context.md +12 -0
  279. package/prompts/tools/skill.md +7 -0
  280. package/prompts/tools/spawn_agent.md +195 -0
  281. package/prompts/tools/summarize_context.md +122 -0
  282. package/prompts/tools/test.md +5 -0
  283. package/prompts/tools/wait.md +17 -0
  284. package/prompts/tools/web_fetch.md +9 -0
  285. package/prompts/tools/web_search.md +5 -0
  286. package/prompts/tools/write_file.md +11 -0
  287. package/skills/.staging/.gitkeep +0 -0
  288. package/skills/explain-code/SKILL.md +15 -0
  289. package/skills/skill-manager/SKILL.md +83 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-presets.js","sourceRoot":"","sources":["../src/provider-presets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Anthropic Claude provider adapter.
3
+ *
4
+ * Uses `@anthropic-ai/sdk` for both streaming and non-streaming calls.
5
+ * Handles extended thinking with signature preservation, native web search,
6
+ * and multimodal content blocks.
7
+ */
8
+ import type { ModelConfig } from "../config.js";
9
+ import { BaseProvider, ProviderResponse, type Message, type SendMessageOptions, type ToolDef } from "./base.js";
10
+ export declare class AnthropicProvider extends BaseProvider {
11
+ readonly requiresAlternatingRoles = true;
12
+ private _config;
13
+ private _client;
14
+ constructor(config: ModelConfig);
15
+ private _convertTools;
16
+ private _convertMessages;
17
+ /**
18
+ * Claude 4.6 models use the new Adaptive Thinking system:
19
+ * thinking: { type: "adaptive" }
20
+ * output_config: { effort: "low" | "medium" | "high" | "max" }
21
+ *
22
+ * Claude 4.5 and earlier use Manual Extended Thinking:
23
+ * thinking: { type: "enabled", budget_tokens: N }
24
+ */
25
+ private static readonly _ADAPTIVE_MODELS;
26
+ private _applyThinkingParams;
27
+ private _parseResponse;
28
+ private _applyCacheBreakpoint;
29
+ sendMessage(messages: Message[], tools?: ToolDef[], options?: SendMessageOptions): Promise<ProviderResponse>;
30
+ private _callStream;
31
+ }
32
+ //# sourceMappingURL=anthropic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EACL,YAAY,EAEZ,gBAAgB,EAGhB,KAAK,OAAO,EACZ,KAAK,kBAAkB,EACvB,KAAK,OAAO,EACb,MAAM,WAAW,CAAC;AAEnB,qBAAa,iBAAkB,SAAQ,YAAY;IACjD,SAAkB,wBAAwB,QAAQ;IAElD,OAAO,CAAC,OAAO,CAAc;IAC7B,OAAO,CAAC,OAAO,CAAY;gBAEf,MAAM,EAAE,WAAW;IAgB/B,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,gBAAgB;IAkGxB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAGrC;IAEH,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,cAAc;IAmEtB,OAAO,CAAC,qBAAqB;IAiDvB,WAAW,CACf,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;YA2Cd,WAAW;CAkH1B"}
@@ -0,0 +1,450 @@
1
+ /**
2
+ * Anthropic Claude provider adapter.
3
+ *
4
+ * Uses `@anthropic-ai/sdk` for both streaming and non-streaming calls.
5
+ * Handles extended thinking with signature preservation, native web search,
6
+ * and multimodal content blocks.
7
+ */
8
+ import Anthropic from "@anthropic-ai/sdk";
9
+ import { BaseProvider, ProviderResponse, Usage, } from "./base.js";
10
+ export class AnthropicProvider extends BaseProvider {
11
+ requiresAlternatingRoles = true;
12
+ _config;
13
+ _client;
14
+ constructor(config) {
15
+ super();
16
+ this._config = config;
17
+ const opts = {
18
+ apiKey: config.apiKey,
19
+ };
20
+ if (config.baseUrl) {
21
+ opts.baseURL = config.baseUrl;
22
+ }
23
+ this._client = new Anthropic(opts);
24
+ }
25
+ // ------------------------------------------------------------------
26
+ // Tool conversion
27
+ // ------------------------------------------------------------------
28
+ _convertTools(tools) {
29
+ const result = [];
30
+ for (const t of tools) {
31
+ if (t.name === "web_search") {
32
+ if (this._config.supportsWebSearch) {
33
+ result.push({
34
+ type: "web_search_20250305",
35
+ name: "web_search",
36
+ max_uses: 20,
37
+ });
38
+ }
39
+ continue;
40
+ }
41
+ result.push({
42
+ name: t.name,
43
+ description: t.description,
44
+ input_schema: t.parameters,
45
+ });
46
+ }
47
+ return result;
48
+ }
49
+ // ------------------------------------------------------------------
50
+ // Message conversion
51
+ // ------------------------------------------------------------------
52
+ _convertMessages(messages) {
53
+ let system = null;
54
+ const converted = [];
55
+ for (const msg of messages) {
56
+ if (msg.role === "system") {
57
+ system = msg.content;
58
+ }
59
+ else if (msg["role"] === "tool_result") {
60
+ const m = msg;
61
+ converted.push({
62
+ role: "user",
63
+ content: [
64
+ {
65
+ type: "tool_result",
66
+ tool_use_id: m["tool_call_id"],
67
+ content: m["content"],
68
+ },
69
+ ],
70
+ });
71
+ }
72
+ else if (msg.role === "assistant" &&
73
+ msg["tool_calls"]) {
74
+ const m = msg;
75
+ const content = [];
76
+ // Inject thinking blocks first (API requires thinking before text/tool_use)
77
+ const reasoningBlocks = m["_reasoning_state"];
78
+ if (reasoningBlocks && Array.isArray(reasoningBlocks)) {
79
+ for (const rb of reasoningBlocks) {
80
+ content.push(rb);
81
+ }
82
+ }
83
+ const text = m["text"] || m["content"] || "";
84
+ if (text) {
85
+ content.push({ type: "text", text });
86
+ }
87
+ const toolCalls = m["tool_calls"];
88
+ for (const tc of toolCalls) {
89
+ content.push({
90
+ type: "tool_use",
91
+ id: tc["id"],
92
+ name: tc["name"],
93
+ input: tc["arguments"],
94
+ });
95
+ }
96
+ converted.push({ role: "assistant", content });
97
+ }
98
+ else if (msg.role === "assistant") {
99
+ const m = msg;
100
+ const content = [];
101
+ const reasoningBlocks = m["_reasoning_state"];
102
+ if (reasoningBlocks && Array.isArray(reasoningBlocks)) {
103
+ for (const rb of reasoningBlocks) {
104
+ content.push(rb);
105
+ }
106
+ }
107
+ const text = m["content"] || m["text"] || "";
108
+ if (text) {
109
+ content.push({ type: "text", text });
110
+ }
111
+ if (content.length > 0) {
112
+ converted.push({ role: "assistant", content });
113
+ }
114
+ }
115
+ else {
116
+ const rawContent = msg.content;
117
+ if (Array.isArray(rawContent)) {
118
+ const parts = [];
119
+ for (const block of rawContent) {
120
+ const b = block;
121
+ if (b["type"] === "text") {
122
+ parts.push({ type: "text", text: b["text"] });
123
+ }
124
+ else if (b["type"] === "image") {
125
+ parts.push({
126
+ type: "image",
127
+ source: {
128
+ type: "base64",
129
+ media_type: b["media_type"],
130
+ data: b["data"],
131
+ },
132
+ });
133
+ }
134
+ }
135
+ converted.push({ role: msg.role, content: parts });
136
+ }
137
+ else {
138
+ converted.push({ role: msg.role, content: rawContent });
139
+ }
140
+ }
141
+ }
142
+ return { system, converted };
143
+ }
144
+ // ------------------------------------------------------------------
145
+ // Thinking params
146
+ // ------------------------------------------------------------------
147
+ /**
148
+ * Claude 4.6 models use the new Adaptive Thinking system:
149
+ * thinking: { type: "adaptive" }
150
+ * output_config: { effort: "low" | "medium" | "high" | "max" }
151
+ *
152
+ * Claude 4.5 and earlier use Manual Extended Thinking:
153
+ * thinking: { type: "enabled", budget_tokens: N }
154
+ */
155
+ static _ADAPTIVE_MODELS = new Set([
156
+ "claude-opus-4-6",
157
+ "claude-sonnet-4-6",
158
+ ]);
159
+ _applyThinkingParams(kwargs, options) {
160
+ if (!this._config.supportsThinking)
161
+ return;
162
+ const level = options?.thinkingLevel;
163
+ // "off" disables thinking entirely (both systems)
164
+ if (level === "off" || level === "none") {
165
+ kwargs["thinking"] = { type: "disabled" };
166
+ return;
167
+ }
168
+ const model = this._config.model;
169
+ if (AnthropicProvider._ADAPTIVE_MODELS.has(model)) {
170
+ // --- Adaptive Thinking (Claude 4.6) ---
171
+ kwargs["thinking"] = { type: "adaptive" };
172
+ // Map level to effort; default is "high"
173
+ let effort;
174
+ if (level && ["low", "medium", "high", "max"].includes(level)) {
175
+ effort = level;
176
+ }
177
+ else {
178
+ effort = "high";
179
+ }
180
+ kwargs["output_config"] = { effort };
181
+ }
182
+ else {
183
+ // --- Manual Extended Thinking (Claude 4.5 and earlier) ---
184
+ let budget;
185
+ if (level === "low") {
186
+ budget = 2048;
187
+ }
188
+ else if (level === "medium") {
189
+ budget = 5000;
190
+ }
191
+ else if (level === "high") {
192
+ budget = 10_000;
193
+ }
194
+ else {
195
+ // default: use config budget
196
+ budget = this._config.thinkingBudget || 10_000;
197
+ }
198
+ budget = Math.max(budget, 1024);
199
+ const currentMax = kwargs["max_tokens"] || this._config.maxTokens;
200
+ if (currentMax <= budget) {
201
+ kwargs["max_tokens"] = budget + currentMax;
202
+ }
203
+ kwargs["thinking"] = { type: "enabled", budget_tokens: budget };
204
+ }
205
+ kwargs["temperature"] = 1; // Anthropic requires temperature=1 with thinking
206
+ }
207
+ // ------------------------------------------------------------------
208
+ // Response parsing
209
+ // ------------------------------------------------------------------
210
+ _parseResponse(resp) {
211
+ const textParts = [];
212
+ const thinkingParts = [];
213
+ const reasoningBlocks = [];
214
+ const toolCalls = [];
215
+ const citations = [];
216
+ for (const block of resp.content) {
217
+ if (block.type === "text") {
218
+ textParts.push(block.text);
219
+ const blockAny = block;
220
+ if (blockAny["citations"] && Array.isArray(blockAny["citations"])) {
221
+ for (const c of blockAny["citations"]) {
222
+ citations.push({
223
+ url: c["url"] || "",
224
+ title: c["title"] || "",
225
+ citedText: c["cited_text"] || "",
226
+ });
227
+ }
228
+ }
229
+ }
230
+ else if (block.type === "thinking") {
231
+ thinkingParts.push(block.thinking);
232
+ reasoningBlocks.push({
233
+ type: "thinking",
234
+ thinking: block.thinking,
235
+ signature: block["signature"] || "",
236
+ });
237
+ }
238
+ else if (block.type === "redacted_thinking") {
239
+ reasoningBlocks.push({
240
+ type: "redacted_thinking",
241
+ data: block["data"] || "",
242
+ });
243
+ }
244
+ else if (block.type === "tool_use") {
245
+ const input = block.input;
246
+ toolCalls.push({
247
+ id: block.id,
248
+ name: block.name,
249
+ arguments: typeof input === "object" && input !== null
250
+ ? input
251
+ : JSON.parse(input),
252
+ });
253
+ }
254
+ // server_tool_use, web_search_tool_result — handled transparently
255
+ }
256
+ const respUsage = resp.usage;
257
+ const cacheCreation = respUsage?.["cache_creation_input_tokens"] ?? 0;
258
+ const cacheRead = respUsage?.["cache_read_input_tokens"] ?? 0;
259
+ const usage = new Usage((resp.usage?.input_tokens ?? 0) + cacheCreation + cacheRead, resp.usage?.output_tokens ?? 0, cacheCreation, cacheRead);
260
+ return new ProviderResponse({
261
+ text: textParts.join(""),
262
+ toolCalls,
263
+ usage,
264
+ raw: resp,
265
+ reasoningContent: thinkingParts.length > 0 ? thinkingParts.join("") : "",
266
+ reasoningState: reasoningBlocks.length > 0 ? reasoningBlocks : null,
267
+ citations,
268
+ });
269
+ }
270
+ _applyCacheBreakpoint(kwargs) {
271
+ const marker = { type: "ephemeral" };
272
+ const markLastBlock = (value) => {
273
+ if (Array.isArray(value) && value.length > 0) {
274
+ const last = value[value.length - 1];
275
+ if (last && typeof last === "object") {
276
+ last["cache_control"] = marker;
277
+ return true;
278
+ }
279
+ }
280
+ if (typeof value === "string" && value.length > 0) {
281
+ return false;
282
+ }
283
+ return false;
284
+ };
285
+ const system = kwargs["system"];
286
+ if (typeof system === "string" && system.length > 0) {
287
+ kwargs["system"] = [{
288
+ type: "text",
289
+ text: system,
290
+ cache_control: marker,
291
+ }];
292
+ return;
293
+ }
294
+ if (markLastBlock(system))
295
+ return;
296
+ const messages = kwargs["messages"];
297
+ if (!Array.isArray(messages))
298
+ return;
299
+ for (let i = messages.length - 1; i >= 0; i--) {
300
+ const msg = messages[i];
301
+ const content = msg?.["content"];
302
+ if (typeof content === "string" && content.length > 0) {
303
+ msg["content"] = [{
304
+ type: "text",
305
+ text: content,
306
+ cache_control: marker,
307
+ }];
308
+ return;
309
+ }
310
+ if (markLastBlock(content))
311
+ return;
312
+ }
313
+ }
314
+ // ------------------------------------------------------------------
315
+ // Core API call
316
+ // ------------------------------------------------------------------
317
+ async sendMessage(messages, tools, options) {
318
+ const { system, converted } = this._convertMessages(messages);
319
+ const kwargs = {
320
+ model: this._config.model,
321
+ messages: converted,
322
+ max_tokens: options?.maxTokens || this._config.maxTokens,
323
+ temperature: options?.temperature !== undefined
324
+ ? options.temperature
325
+ : this._config.temperature,
326
+ };
327
+ if (system) {
328
+ kwargs["system"] = system;
329
+ }
330
+ if (tools && tools.length > 0) {
331
+ kwargs["tools"] = this._convertTools(tools);
332
+ }
333
+ if (this._config.extra) {
334
+ Object.assign(kwargs, this._config.extra);
335
+ }
336
+ this._applyThinkingParams(kwargs, options);
337
+ // Prompt caching
338
+ if (options?.cacheEnabled !== false) {
339
+ this._applyCacheBreakpoint(kwargs);
340
+ }
341
+ if (options?.onTextChunk || options?.onReasoningChunk) {
342
+ return this._callStream(kwargs, options.onTextChunk, options.onReasoningChunk, options?.signal);
343
+ }
344
+ const resp = await this._client.messages.create(kwargs, options?.signal ? { signal: options.signal } : undefined);
345
+ return this._parseResponse(resp);
346
+ }
347
+ // ------------------------------------------------------------------
348
+ // Streaming
349
+ // ------------------------------------------------------------------
350
+ async _callStream(kwargs, onTextChunk, onReasoningChunk, signal) {
351
+ const textParts = [];
352
+ const thinkingParts = [];
353
+ const reasoningBlocks = [];
354
+ const toolCalls = [];
355
+ const citations = [];
356
+ let currentThinking = null;
357
+ const stream = this._client.messages.stream(kwargs, signal ? { signal } : undefined);
358
+ for await (const event of stream) {
359
+ const eventType = event["type"];
360
+ if (eventType === "content_block_start") {
361
+ const block = event["content_block"];
362
+ if (block?.["type"] === "thinking") {
363
+ currentThinking = { type: "thinking", thinking: "", signature: "" };
364
+ }
365
+ else if (block?.["type"] === "redacted_thinking") {
366
+ reasoningBlocks.push({
367
+ type: "redacted_thinking",
368
+ data: block["data"] || "",
369
+ });
370
+ }
371
+ }
372
+ else if (eventType === "content_block_delta") {
373
+ const delta = event["delta"];
374
+ if (!delta)
375
+ continue;
376
+ const deltaType = delta["type"];
377
+ if (deltaType === "thinking_delta") {
378
+ const text = delta["thinking"] || "";
379
+ if (text) {
380
+ thinkingParts.push(text);
381
+ if (currentThinking)
382
+ currentThinking["thinking"] += text;
383
+ if (onReasoningChunk)
384
+ onReasoningChunk(text);
385
+ }
386
+ }
387
+ else if (deltaType === "text_delta") {
388
+ const text = delta["text"] || "";
389
+ if (text) {
390
+ textParts.push(text);
391
+ if (onTextChunk)
392
+ onTextChunk(text);
393
+ }
394
+ }
395
+ else if (deltaType === "signature_delta") {
396
+ const sig = delta["signature"] || "";
397
+ if (sig && currentThinking)
398
+ currentThinking["signature"] += sig;
399
+ }
400
+ }
401
+ else if (eventType === "content_block_stop") {
402
+ if (currentThinking) {
403
+ reasoningBlocks.push(currentThinking);
404
+ currentThinking = null;
405
+ }
406
+ }
407
+ }
408
+ // Get the final message for tool_calls, usage, citations
409
+ const response = await stream.finalMessage();
410
+ for (const block of response.content) {
411
+ if (block.type === "tool_use") {
412
+ const input = block.input;
413
+ toolCalls.push({
414
+ id: block.id,
415
+ name: block.name,
416
+ arguments: typeof input === "object" && input !== null
417
+ ? input
418
+ : JSON.parse(input),
419
+ });
420
+ }
421
+ else if (block.type === "text") {
422
+ const blockAny = block;
423
+ if (blockAny["citations"] && Array.isArray(blockAny["citations"])) {
424
+ for (const c of blockAny["citations"]) {
425
+ citations.push({
426
+ url: c["url"] || "",
427
+ title: c["title"] || "",
428
+ citedText: c["cited_text"] || "",
429
+ });
430
+ }
431
+ }
432
+ }
433
+ // server_tool_use, web_search_tool_result — skip
434
+ }
435
+ const streamUsage = response.usage;
436
+ const streamCacheCreation = streamUsage?.["cache_creation_input_tokens"] ?? 0;
437
+ const streamCacheRead = streamUsage?.["cache_read_input_tokens"] ?? 0;
438
+ const usage = new Usage((response.usage?.input_tokens ?? 0) + streamCacheCreation + streamCacheRead, response.usage?.output_tokens ?? 0, streamCacheCreation, streamCacheRead);
439
+ return new ProviderResponse({
440
+ text: textParts.join(""),
441
+ toolCalls,
442
+ usage,
443
+ raw: response,
444
+ reasoningContent: thinkingParts.length > 0 ? thinkingParts.join("") : "",
445
+ reasoningState: reasoningBlocks.length > 0 ? reasoningBlocks : null,
446
+ citations,
447
+ });
448
+ }
449
+ }
450
+ //# sourceMappingURL=anthropic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Provider abstraction layer — base types and abstract class.
3
+ *
4
+ * Defines the unified interfaces for tool calls, usage tracking,
5
+ * provider responses, and the abstract BaseProvider contract.
6
+ */
7
+ /** An image content block for multimodal messages. */
8
+ export interface ImageBlock {
9
+ mediaType: string;
10
+ data: string;
11
+ }
12
+ /** A single tool invocation returned by a model. */
13
+ export interface ToolCall {
14
+ id: string;
15
+ name: string;
16
+ arguments: Record<string, unknown>;
17
+ }
18
+ /** Normalized web search citation. */
19
+ export interface Citation {
20
+ url: string;
21
+ title: string;
22
+ citedText?: string;
23
+ }
24
+ /** Provider-agnostic tool definition. */
25
+ export interface ToolDef {
26
+ name: string;
27
+ description: string;
28
+ /** JSON Schema for the function arguments. */
29
+ parameters: Record<string, unknown>;
30
+ /**
31
+ * Format string for one-line summaries of tool invocations.
32
+ * `{agent}` is always available; other placeholders map to argument keys.
33
+ */
34
+ summaryTemplate?: string;
35
+ }
36
+ export type MessageRole = "system" | "user" | "assistant" | "tool" | "tool_result";
37
+ export interface Message {
38
+ role: MessageRole;
39
+ content: string | Array<Record<string, unknown>>;
40
+ [key: string]: unknown;
41
+ }
42
+ export interface SendMessageOptions {
43
+ temperature?: number;
44
+ maxTokens?: number;
45
+ onTextChunk?: (chunk: string) => void;
46
+ onReasoningChunk?: (chunk: string) => void;
47
+ signal?: AbortSignal;
48
+ /** Unified thinking level string ("off", "low", "medium", "high", "adaptive", etc.) */
49
+ thinkingLevel?: string;
50
+ /** Whether to enable provider-specific prompt caching. */
51
+ cacheEnabled?: boolean;
52
+ }
53
+ /** Token usage tracker. */
54
+ export declare class Usage {
55
+ inputTokens: number;
56
+ outputTokens: number;
57
+ cacheCreationTokens: number;
58
+ cacheReadTokens: number;
59
+ constructor(inputTokens?: number, outputTokens?: number, cacheCreationTokens?: number, cacheReadTokens?: number);
60
+ get totalTokens(): number;
61
+ }
62
+ /** Unified response from any provider. */
63
+ export declare class ProviderResponse {
64
+ text: string;
65
+ toolCalls: ToolCall[];
66
+ usage: Usage;
67
+ raw: unknown;
68
+ reasoningContent: string;
69
+ reasoningState: unknown;
70
+ citations: Citation[];
71
+ extra: Record<string, unknown>;
72
+ constructor(opts?: {
73
+ text?: string;
74
+ toolCalls?: ToolCall[];
75
+ usage?: Usage;
76
+ raw?: unknown;
77
+ reasoningContent?: string;
78
+ reasoningState?: unknown;
79
+ citations?: Citation[];
80
+ extra?: Record<string, unknown>;
81
+ });
82
+ get hasToolCalls(): boolean;
83
+ }
84
+ /** Extended tool execution result with optional metadata. */
85
+ export declare class ToolResult {
86
+ content: string;
87
+ actionHint?: string;
88
+ tags: string[];
89
+ metadata: Record<string, unknown>;
90
+ /**
91
+ * Optional multimodal content blocks for providers that support them
92
+ * (e.g. Anthropic tool_result with image blocks).
93
+ * When present, providers should use these instead of `content` string.
94
+ * The `content` string still serves as the text fallback / TUI display.
95
+ */
96
+ contentBlocks?: Array<Record<string, unknown>>;
97
+ constructor(opts: {
98
+ content: string;
99
+ actionHint?: string;
100
+ tags?: string[];
101
+ metadata?: Record<string, unknown>;
102
+ contentBlocks?: Array<Record<string, unknown>>;
103
+ });
104
+ toString(): string;
105
+ }
106
+ /**
107
+ * Interface that every provider adapter must implement.
108
+ */
109
+ export declare abstract class BaseProvider {
110
+ /**
111
+ * Whether this provider requires strictly alternating user/assistant roles.
112
+ * When true, the rendering pipeline merges consecutive same-role messages.
113
+ */
114
+ readonly requiresAlternatingRoles: boolean;
115
+ /**
116
+ * How to calculate the token budget for compact detection.
117
+ * - "subtract_output": budget = contextLength - maxOutputTokens (default)
118
+ * - "full_context": budget = contextLength, check only inputTokens
119
+ */
120
+ readonly budgetCalcMode: "subtract_output" | "full_context";
121
+ /**
122
+ * Send a message to the model and return a unified response.
123
+ */
124
+ abstract sendMessage(messages: Message[], tools?: ToolDef[], options?: SendMessageOptions): Promise<ProviderResponse>;
125
+ /**
126
+ * Async send with optional streaming callbacks.
127
+ *
128
+ * Delegates to `sendMessage` with the full options object, including
129
+ * streaming callbacks and abort signal. Each provider's `sendMessage`
130
+ * checks for `onTextChunk`/`onReasoningChunk` and routes to its
131
+ * streaming implementation when present.
132
+ */
133
+ asyncSendMessage(messages: Message[], tools?: ToolDef[], options?: SendMessageOptions): Promise<ProviderResponse>;
134
+ }
135
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/providers/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,sDAAsD;AACtD,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,oDAAoD;AACpD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,sCAAsC;AACtC,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAMD,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,aAAa,CAAC;AAEnF,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACjD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,kBAAkB;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD,2BAA2B;AAC3B,qBAAa,KAAK;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;gBAEZ,WAAW,SAAI,EAAE,YAAY,SAAI,EAAE,mBAAmB,SAAI,EAAE,eAAe,SAAI;IAO3F,IAAI,WAAW,IAAI,MAAM,CAExB;CACF;AAED,0CAA0C;AAC1C,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEnB,IAAI,GAAE;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC5B;IAWN,IAAI,YAAY,IAAI,OAAO,CAE1B;CACF;AAED,6DAA6D;AAC7D,qBAAa,UAAU;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;gBAEnC,IAAI,EAAE;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACnC,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;KAChD;IAQD,QAAQ,IAAI,MAAM;CAGnB;AAMD;;GAEG;AACH,8BAAsB,YAAY;IAChC;;;OAGG;IACH,QAAQ,CAAC,wBAAwB,EAAE,OAAO,CAAS;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,iBAAiB,GAAG,cAAc,CAAqB;IAEhF;;OAEG;IACH,QAAQ,CAAC,WAAW,CAClB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAE5B;;;;;;;OAOG;IACG,gBAAgB,CACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;CAG7B"}