@gencode/agents 0.0.9 → 0.0.10

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 (451) hide show
  1. package/dist/builtin-provider-C0d7-NZt.js +66 -0
  2. package/dist/config/index.d.ts +2 -9
  3. package/dist/config/index.js +1 -9
  4. package/dist/config-DG3Q1aJ6.js +1 -0
  5. package/dist/{index-JD6Ye-N5.d.ts → index-BdfpRxFA.d.ts} +7 -8
  6. package/dist/index.d.ts +1603 -40
  7. package/dist/index.js +504 -35
  8. package/dist/provider-registry-rVbsCDN2.js +1 -0
  9. package/dist/rolldown-runtime-CNxR59P3.js +1 -0
  10. package/package.json +2 -2
  11. package/dist/bootstrap/bootstrap-layout.d.ts +0 -23
  12. package/dist/bootstrap/bootstrap-layout.d.ts.map +0 -1
  13. package/dist/bootstrap/bootstrap-layout.js +0 -151
  14. package/dist/bootstrap/bootstrap-layout.js.map +0 -1
  15. package/dist/bootstrap/bootstrap.d.ts +0 -36
  16. package/dist/bootstrap/bootstrap.d.ts.map +0 -1
  17. package/dist/bootstrap/bootstrap.js +0 -136
  18. package/dist/bootstrap/bootstrap.js.map +0 -1
  19. package/dist/bootstrap/templates/AGENTS_MD.d.ts +0 -2
  20. package/dist/bootstrap/templates/AGENTS_MD.d.ts.map +0 -1
  21. package/dist/bootstrap/templates/AGENTS_MD.js +0 -223
  22. package/dist/bootstrap/templates/AGENTS_MD.js.map +0 -1
  23. package/dist/bootstrap/templates/BOOTSTRAP_MD.d.ts +0 -2
  24. package/dist/bootstrap/templates/BOOTSTRAP_MD.d.ts.map +0 -1
  25. package/dist/bootstrap/templates/BOOTSTRAP_MD.js +0 -66
  26. package/dist/bootstrap/templates/BOOTSTRAP_MD.js.map +0 -1
  27. package/dist/bootstrap/templates/HEARTBEAT_MD.d.ts +0 -2
  28. package/dist/bootstrap/templates/HEARTBEAT_MD.d.ts.map +0 -1
  29. package/dist/bootstrap/templates/HEARTBEAT_MD.js +0 -16
  30. package/dist/bootstrap/templates/HEARTBEAT_MD.js.map +0 -1
  31. package/dist/bootstrap/templates/IDENTITY_MD.d.ts +0 -2
  32. package/dist/bootstrap/templates/IDENTITY_MD.d.ts.map +0 -1
  33. package/dist/bootstrap/templates/IDENTITY_MD.js +0 -31
  34. package/dist/bootstrap/templates/IDENTITY_MD.js.map +0 -1
  35. package/dist/bootstrap/templates/SOUL_MD.d.ts +0 -2
  36. package/dist/bootstrap/templates/SOUL_MD.d.ts.map +0 -1
  37. package/dist/bootstrap/templates/SOUL_MD.js +0 -47
  38. package/dist/bootstrap/templates/SOUL_MD.js.map +0 -1
  39. package/dist/bootstrap/templates/TOOLS_MD.d.ts +0 -2
  40. package/dist/bootstrap/templates/TOOLS_MD.d.ts.map +0 -1
  41. package/dist/bootstrap/templates/TOOLS_MD.js +0 -51
  42. package/dist/bootstrap/templates/TOOLS_MD.js.map +0 -1
  43. package/dist/bootstrap/templates/USER_MD.d.ts +0 -2
  44. package/dist/bootstrap/templates/USER_MD.d.ts.map +0 -1
  45. package/dist/bootstrap/templates/USER_MD.js +0 -27
  46. package/dist/bootstrap/templates/USER_MD.js.map +0 -1
  47. package/dist/bootstrap/templates/index.d.ts +0 -3
  48. package/dist/bootstrap/templates/index.d.ts.map +0 -1
  49. package/dist/bootstrap/templates/index.js +0 -26
  50. package/dist/bootstrap/templates/index.js.map +0 -1
  51. package/dist/commands/compact.d.ts +0 -28
  52. package/dist/commands/compact.d.ts.map +0 -1
  53. package/dist/commands/compact.js +0 -57
  54. package/dist/commands/compact.js.map +0 -1
  55. package/dist/commands/help.d.ts +0 -3
  56. package/dist/commands/help.d.ts.map +0 -1
  57. package/dist/commands/help.js +0 -50
  58. package/dist/commands/help.js.map +0 -1
  59. package/dist/commands/index.d.ts +0 -6
  60. package/dist/commands/index.d.ts.map +0 -1
  61. package/dist/commands/index.js +0 -32
  62. package/dist/commands/index.js.map +0 -1
  63. package/dist/commands/new.d.ts +0 -3
  64. package/dist/commands/new.d.ts.map +0 -1
  65. package/dist/commands/new.js +0 -15
  66. package/dist/commands/new.js.map +0 -1
  67. package/dist/commands/registry.d.ts +0 -11
  68. package/dist/commands/registry.d.ts.map +0 -1
  69. package/dist/commands/registry.js +0 -122
  70. package/dist/commands/registry.js.map +0 -1
  71. package/dist/commands/reset.d.ts +0 -3
  72. package/dist/commands/reset.d.ts.map +0 -1
  73. package/dist/commands/reset.js +0 -4
  74. package/dist/commands/reset.js.map +0 -1
  75. package/dist/commands/skill.d.ts +0 -7
  76. package/dist/commands/skill.d.ts.map +0 -1
  77. package/dist/commands/skill.js +0 -23
  78. package/dist/commands/skill.js.map +0 -1
  79. package/dist/commands/types.d.ts +0 -57
  80. package/dist/commands/types.d.ts.map +0 -1
  81. package/dist/commands/types.js +0 -2
  82. package/dist/commands/types.js.map +0 -1
  83. package/dist/config/agents-config.d.ts +0 -85
  84. package/dist/config/agents-config.d.ts.map +0 -1
  85. package/dist/config/agents-config.js +0 -257
  86. package/dist/config/agents-config.js.map +0 -1
  87. package/dist/config/index.d.ts.map +0 -1
  88. package/dist/config/index.js.map +0 -1
  89. package/dist/config/types.d.ts +0 -87
  90. package/dist/config/types.d.ts.map +0 -1
  91. package/dist/config/types.js +0 -6
  92. package/dist/config/types.js.map +0 -1
  93. package/dist/config-DJX-VM7S.js +0 -198
  94. package/dist/config-DJX-VM7S.js.map +0 -1
  95. package/dist/history/compaction.d.ts +0 -42
  96. package/dist/history/compaction.d.ts.map +0 -1
  97. package/dist/history/compaction.js +0 -135
  98. package/dist/history/compaction.js.map +0 -1
  99. package/dist/history/index.d.ts +0 -57
  100. package/dist/history/index.d.ts.map +0 -1
  101. package/dist/history/index.js +0 -145
  102. package/dist/history/index.js.map +0 -1
  103. package/dist/history/limit.d.ts +0 -13
  104. package/dist/history/limit.d.ts.map +0 -1
  105. package/dist/history/limit.js +0 -32
  106. package/dist/history/limit.js.map +0 -1
  107. package/dist/history/repair.d.ts +0 -13
  108. package/dist/history/repair.d.ts.map +0 -1
  109. package/dist/history/repair.js +0 -25
  110. package/dist/history/repair.js.map +0 -1
  111. package/dist/history/token-estimate.d.ts +0 -22
  112. package/dist/history/token-estimate.d.ts.map +0 -1
  113. package/dist/history/token-estimate.js +0 -38
  114. package/dist/history/token-estimate.js.map +0 -1
  115. package/dist/index-JD6Ye-N5.d.ts.map +0 -1
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/index.js.map +0 -1
  118. package/dist/llm/client.d.ts +0 -53
  119. package/dist/llm/client.d.ts.map +0 -1
  120. package/dist/llm/client.js +0 -214
  121. package/dist/llm/client.js.map +0 -1
  122. package/dist/llm/openai-completions-compat.d.ts +0 -23
  123. package/dist/llm/openai-completions-compat.d.ts.map +0 -1
  124. package/dist/llm/openai-completions-compat.js +0 -602
  125. package/dist/llm/openai-completions-compat.js.map +0 -1
  126. package/dist/llm/openai-stream-error.d.ts +0 -11
  127. package/dist/llm/openai-stream-error.d.ts.map +0 -1
  128. package/dist/llm/openai-stream-error.js +0 -77
  129. package/dist/llm/openai-stream-error.js.map +0 -1
  130. package/dist/loop-detection/session-state.d.ts +0 -5
  131. package/dist/loop-detection/session-state.d.ts.map +0 -1
  132. package/dist/loop-detection/session-state.js +0 -16
  133. package/dist/loop-detection/session-state.js.map +0 -1
  134. package/dist/loop-detection/tool-loop-detection.d.ts +0 -122
  135. package/dist/loop-detection/tool-loop-detection.d.ts.map +0 -1
  136. package/dist/loop-detection/tool-loop-detection.js +0 -516
  137. package/dist/loop-detection/tool-loop-detection.js.map +0 -1
  138. package/dist/manager-qXa-NP0p.js +0 -1651
  139. package/dist/manager-qXa-NP0p.js.map +0 -1
  140. package/dist/memory/builtin-provider.d.ts +0 -5
  141. package/dist/memory/builtin-provider.d.ts.map +0 -1
  142. package/dist/memory/builtin-provider.js +0 -42
  143. package/dist/memory/builtin-provider.js.map +0 -1
  144. package/dist/memory/config.d.ts +0 -50
  145. package/dist/memory/config.d.ts.map +0 -1
  146. package/dist/memory/config.js +0 -46
  147. package/dist/memory/config.js.map +0 -1
  148. package/dist/memory/embedding-registry.d.ts +0 -37
  149. package/dist/memory/embedding-registry.d.ts.map +0 -1
  150. package/dist/memory/embedding-registry.js +0 -56
  151. package/dist/memory/embedding-registry.js.map +0 -1
  152. package/dist/memory/embeddings.d.ts +0 -11
  153. package/dist/memory/embeddings.d.ts.map +0 -1
  154. package/dist/memory/embeddings.js +0 -40
  155. package/dist/memory/embeddings.js.map +0 -1
  156. package/dist/memory/fs-utils.d.ts +0 -12
  157. package/dist/memory/fs-utils.d.ts.map +0 -1
  158. package/dist/memory/fs-utils.js +0 -24
  159. package/dist/memory/fs-utils.js.map +0 -1
  160. package/dist/memory/hybrid.d.ts +0 -43
  161. package/dist/memory/hybrid.d.ts.map +0 -1
  162. package/dist/memory/hybrid.js +0 -80
  163. package/dist/memory/hybrid.js.map +0 -1
  164. package/dist/memory/internal.d.ts +0 -28
  165. package/dist/memory/internal.d.ts.map +0 -1
  166. package/dist/memory/internal.js +0 -270
  167. package/dist/memory/internal.js.map +0 -1
  168. package/dist/memory/manager-search.d.ts +0 -61
  169. package/dist/memory/manager-search.d.ts.map +0 -1
  170. package/dist/memory/manager-search.js +0 -106
  171. package/dist/memory/manager-search.js.map +0 -1
  172. package/dist/memory/manager.d.ts +0 -126
  173. package/dist/memory/manager.d.ts.map +0 -1
  174. package/dist/memory/manager.js +0 -1006
  175. package/dist/memory/manager.js.map +0 -1
  176. package/dist/memory/memory-schema.d.ts +0 -11
  177. package/dist/memory/memory-schema.d.ts.map +0 -1
  178. package/dist/memory/memory-schema.js +0 -78
  179. package/dist/memory/memory-schema.js.map +0 -1
  180. package/dist/memory/memory.d.ts +0 -46
  181. package/dist/memory/memory.d.ts.map +0 -1
  182. package/dist/memory/memory.js +0 -127
  183. package/dist/memory/memory.js.map +0 -1
  184. package/dist/memory/mmr.d.ts +0 -22
  185. package/dist/memory/mmr.d.ts.map +0 -1
  186. package/dist/memory/mmr.js +0 -112
  187. package/dist/memory/mmr.js.map +0 -1
  188. package/dist/memory/provider-registry.d.ts +0 -29
  189. package/dist/memory/provider-registry.d.ts.map +0 -1
  190. package/dist/memory/provider-registry.js +0 -58
  191. package/dist/memory/provider-registry.js.map +0 -1
  192. package/dist/memory/provider.d.ts +0 -40
  193. package/dist/memory/provider.d.ts.map +0 -1
  194. package/dist/memory/provider.js +0 -2
  195. package/dist/memory/provider.js.map +0 -1
  196. package/dist/memory/session-files.d.ts +0 -13
  197. package/dist/memory/session-files.d.ts.map +0 -1
  198. package/dist/memory/session-files.js +0 -116
  199. package/dist/memory/session-files.js.map +0 -1
  200. package/dist/memory/sqlite-vec.d.ts +0 -10
  201. package/dist/memory/sqlite-vec.d.ts.map +0 -1
  202. package/dist/memory/sqlite-vec.js +0 -20
  203. package/dist/memory/sqlite-vec.js.map +0 -1
  204. package/dist/memory/sqlite.d.ts +0 -2
  205. package/dist/memory/sqlite.d.ts.map +0 -1
  206. package/dist/memory/sqlite.js +0 -12
  207. package/dist/memory/sqlite.js.map +0 -1
  208. package/dist/memory/temporal-decay.d.ts +0 -26
  209. package/dist/memory/temporal-decay.d.ts.map +0 -1
  210. package/dist/memory/temporal-decay.js +0 -119
  211. package/dist/memory/temporal-decay.js.map +0 -1
  212. package/dist/memory/watch-bridge.d.ts +0 -20
  213. package/dist/memory/watch-bridge.d.ts.map +0 -1
  214. package/dist/memory/watch-bridge.js +0 -128
  215. package/dist/memory/watch-bridge.js.map +0 -1
  216. package/dist/message.d.ts +0 -11
  217. package/dist/message.d.ts.map +0 -1
  218. package/dist/message.js +0 -46
  219. package/dist/message.js.map +0 -1
  220. package/dist/plugins/boundary-file-read.d.ts +0 -13
  221. package/dist/plugins/boundary-file-read.d.ts.map +0 -1
  222. package/dist/plugins/boundary-file-read.js +0 -31
  223. package/dist/plugins/boundary-file-read.js.map +0 -1
  224. package/dist/plugins/config-state.d.ts +0 -35
  225. package/dist/plugins/config-state.d.ts.map +0 -1
  226. package/dist/plugins/config-state.js +0 -97
  227. package/dist/plugins/config-state.js.map +0 -1
  228. package/dist/plugins/discovery.d.ts +0 -21
  229. package/dist/plugins/discovery.d.ts.map +0 -1
  230. package/dist/plugins/discovery.js +0 -425
  231. package/dist/plugins/discovery.js.map +0 -1
  232. package/dist/plugins/hooks.d.ts +0 -133
  233. package/dist/plugins/hooks.d.ts.map +0 -1
  234. package/dist/plugins/hooks.js +0 -19
  235. package/dist/plugins/hooks.js.map +0 -1
  236. package/dist/plugins/index.d.ts +0 -20
  237. package/dist/plugins/index.d.ts.map +0 -1
  238. package/dist/plugins/index.js +0 -11
  239. package/dist/plugins/index.js.map +0 -1
  240. package/dist/plugins/loader.d.ts +0 -60
  241. package/dist/plugins/loader.d.ts.map +0 -1
  242. package/dist/plugins/loader.js +0 -224
  243. package/dist/plugins/loader.js.map +0 -1
  244. package/dist/plugins/manager.d.ts +0 -20
  245. package/dist/plugins/manager.d.ts.map +0 -1
  246. package/dist/plugins/manager.js +0 -33
  247. package/dist/plugins/manager.js.map +0 -1
  248. package/dist/plugins/manifest-registry.d.ts +0 -15
  249. package/dist/plugins/manifest-registry.d.ts.map +0 -1
  250. package/dist/plugins/manifest-registry.js +0 -37
  251. package/dist/plugins/manifest-registry.js.map +0 -1
  252. package/dist/plugins/manifest.d.ts +0 -6
  253. package/dist/plugins/manifest.d.ts.map +0 -1
  254. package/dist/plugins/manifest.js +0 -80
  255. package/dist/plugins/manifest.js.map +0 -1
  256. package/dist/plugins/path-safety.d.ts +0 -6
  257. package/dist/plugins/path-safety.d.ts.map +0 -1
  258. package/dist/plugins/path-safety.js +0 -32
  259. package/dist/plugins/path-safety.js.map +0 -1
  260. package/dist/plugins/runtime-context.d.ts +0 -12
  261. package/dist/plugins/runtime-context.d.ts.map +0 -1
  262. package/dist/plugins/runtime-context.js +0 -2
  263. package/dist/plugins/runtime-context.js.map +0 -1
  264. package/dist/plugins/runtime.d.ts +0 -20
  265. package/dist/plugins/runtime.d.ts.map +0 -1
  266. package/dist/plugins/runtime.js +0 -33
  267. package/dist/plugins/runtime.js.map +0 -1
  268. package/dist/plugins/schema-validator.d.ts +0 -17
  269. package/dist/plugins/schema-validator.d.ts.map +0 -1
  270. package/dist/plugins/schema-validator.js +0 -26
  271. package/dist/plugins/schema-validator.js.map +0 -1
  272. package/dist/plugins/tool-hooks.d.ts +0 -4
  273. package/dist/plugins/tool-hooks.d.ts.map +0 -1
  274. package/dist/plugins/tool-hooks.js +0 -63
  275. package/dist/plugins/tool-hooks.js.map +0 -1
  276. package/dist/plugins/tools.d.ts +0 -20
  277. package/dist/plugins/tools.d.ts.map +0 -1
  278. package/dist/plugins/tools.js +0 -42
  279. package/dist/plugins/tools.js.map +0 -1
  280. package/dist/plugins/types.d.ts +0 -61
  281. package/dist/plugins/types.d.ts.map +0 -1
  282. package/dist/plugins/types.js +0 -2
  283. package/dist/plugins/types.js.map +0 -1
  284. package/dist/plugins/utils.d.ts +0 -4
  285. package/dist/plugins/utils.d.ts.map +0 -1
  286. package/dist/plugins/utils.js +0 -22
  287. package/dist/plugins/utils.js.map +0 -1
  288. package/dist/runner/agent-runtime.d.ts +0 -62
  289. package/dist/runner/agent-runtime.d.ts.map +0 -1
  290. package/dist/runner/agent-runtime.js +0 -186
  291. package/dist/runner/agent-runtime.js.map +0 -1
  292. package/dist/runner/announce-loop.d.ts +0 -41
  293. package/dist/runner/announce-loop.d.ts.map +0 -1
  294. package/dist/runner/announce-loop.js +0 -94
  295. package/dist/runner/announce-loop.js.map +0 -1
  296. package/dist/runner/event-dispatcher.d.ts +0 -12
  297. package/dist/runner/event-dispatcher.d.ts.map +0 -1
  298. package/dist/runner/event-dispatcher.js +0 -18
  299. package/dist/runner/event-dispatcher.js.map +0 -1
  300. package/dist/runner/finalizer.d.ts +0 -30
  301. package/dist/runner/finalizer.d.ts.map +0 -1
  302. package/dist/runner/finalizer.js +0 -75
  303. package/dist/runner/finalizer.js.map +0 -1
  304. package/dist/runner/invocation-resolver.d.ts +0 -67
  305. package/dist/runner/invocation-resolver.d.ts.map +0 -1
  306. package/dist/runner/invocation-resolver.js +0 -224
  307. package/dist/runner/invocation-resolver.js.map +0 -1
  308. package/dist/runner/plugin-context.d.ts +0 -18
  309. package/dist/runner/plugin-context.d.ts.map +0 -1
  310. package/dist/runner/plugin-context.js +0 -26
  311. package/dist/runner/plugin-context.js.map +0 -1
  312. package/dist/runner/run-context.d.ts +0 -38
  313. package/dist/runner/run-context.d.ts.map +0 -1
  314. package/dist/runner/run-context.js +0 -159
  315. package/dist/runner/run-context.js.map +0 -1
  316. package/dist/runner/runner-session.d.ts +0 -34
  317. package/dist/runner/runner-session.d.ts.map +0 -1
  318. package/dist/runner/runner-session.js +0 -61
  319. package/dist/runner/runner-session.js.map +0 -1
  320. package/dist/runner/runner.d.ts +0 -13
  321. package/dist/runner/runner.d.ts.map +0 -1
  322. package/dist/runner/runner.js +0 -234
  323. package/dist/runner/runner.js.map +0 -1
  324. package/dist/runner/runtime.d.ts +0 -7
  325. package/dist/runner/runtime.d.ts.map +0 -1
  326. package/dist/runner/runtime.js +0 -21
  327. package/dist/runner/runtime.js.map +0 -1
  328. package/dist/runner/session-lifecycle.d.ts +0 -31
  329. package/dist/runner/session-lifecycle.d.ts.map +0 -1
  330. package/dist/runner/session-lifecycle.js +0 -38
  331. package/dist/runner/session-lifecycle.js.map +0 -1
  332. package/dist/runner/skill-usage.d.ts +0 -29
  333. package/dist/runner/skill-usage.d.ts.map +0 -1
  334. package/dist/runner/skill-usage.js +0 -65
  335. package/dist/runner/skill-usage.js.map +0 -1
  336. package/dist/runner/title.d.ts +0 -3
  337. package/dist/runner/title.d.ts.map +0 -1
  338. package/dist/runner/title.js +0 -6
  339. package/dist/runner/title.js.map +0 -1
  340. package/dist/runner/turn-executor.d.ts +0 -51
  341. package/dist/runner/turn-executor.d.ts.map +0 -1
  342. package/dist/runner/turn-executor.js +0 -294
  343. package/dist/runner/turn-executor.js.map +0 -1
  344. package/dist/security/command-dangerous-rules.d.ts +0 -4
  345. package/dist/security/command-dangerous-rules.d.ts.map +0 -1
  346. package/dist/security/command-dangerous-rules.js +0 -26
  347. package/dist/security/command-dangerous-rules.js.map +0 -1
  348. package/dist/security/command-parser.d.ts +0 -3
  349. package/dist/security/command-parser.d.ts.map +0 -1
  350. package/dist/security/command-parser.js +0 -191
  351. package/dist/security/command-parser.js.map +0 -1
  352. package/dist/security/command-path-guard.d.ts +0 -10
  353. package/dist/security/command-path-guard.d.ts.map +0 -1
  354. package/dist/security/command-path-guard.js +0 -126
  355. package/dist/security/command-path-guard.js.map +0 -1
  356. package/dist/security/command-policy-config.d.ts +0 -5
  357. package/dist/security/command-policy-config.d.ts.map +0 -1
  358. package/dist/security/command-policy-config.js +0 -212
  359. package/dist/security/command-policy-config.js.map +0 -1
  360. package/dist/security/command-policy-engine.d.ts +0 -8
  361. package/dist/security/command-policy-engine.d.ts.map +0 -1
  362. package/dist/security/command-policy-engine.js +0 -122
  363. package/dist/security/command-policy-engine.js.map +0 -1
  364. package/dist/security/command-policy-types.d.ts +0 -67
  365. package/dist/security/command-policy-types.d.ts.map +0 -1
  366. package/dist/security/command-policy-types.js +0 -2
  367. package/dist/security/command-policy-types.js.map +0 -1
  368. package/dist/security/command-safe-bins.d.ts +0 -4
  369. package/dist/security/command-safe-bins.d.ts.map +0 -1
  370. package/dist/security/command-safe-bins.js +0 -84
  371. package/dist/security/command-safe-bins.js.map +0 -1
  372. package/dist/security/command-trusted-executables.d.ts +0 -6
  373. package/dist/security/command-trusted-executables.d.ts.map +0 -1
  374. package/dist/security/command-trusted-executables.js +0 -57
  375. package/dist/security/command-trusted-executables.js.map +0 -1
  376. package/dist/session/session.d.ts +0 -45
  377. package/dist/session/session.d.ts.map +0 -1
  378. package/dist/session/session.js +0 -167
  379. package/dist/session/session.js.map +0 -1
  380. package/dist/skills/skills.d.ts +0 -23
  381. package/dist/skills/skills.d.ts.map +0 -1
  382. package/dist/skills/skills.js +0 -109
  383. package/dist/skills/skills.js.map +0 -1
  384. package/dist/subagent/registry-persist.d.ts +0 -31
  385. package/dist/subagent/registry-persist.d.ts.map +0 -1
  386. package/dist/subagent/registry-persist.js +0 -115
  387. package/dist/subagent/registry-persist.js.map +0 -1
  388. package/dist/subagent/registry.d.ts +0 -52
  389. package/dist/subagent/registry.d.ts.map +0 -1
  390. package/dist/subagent/registry.js +0 -122
  391. package/dist/subagent/registry.js.map +0 -1
  392. package/dist/subagent/types.d.ts +0 -20
  393. package/dist/subagent/types.d.ts.map +0 -1
  394. package/dist/subagent/types.js +0 -2
  395. package/dist/subagent/types.js.map +0 -1
  396. package/dist/system-prompt/builder.d.ts +0 -50
  397. package/dist/system-prompt/builder.d.ts.map +0 -1
  398. package/dist/system-prompt/builder.js +0 -335
  399. package/dist/system-prompt/builder.js.map +0 -1
  400. package/dist/tools/apply-patch.d.ts +0 -15
  401. package/dist/tools/apply-patch.d.ts.map +0 -1
  402. package/dist/tools/apply-patch.js +0 -425
  403. package/dist/tools/apply-patch.js.map +0 -1
  404. package/dist/tools/bash.d.ts +0 -11
  405. package/dist/tools/bash.d.ts.map +0 -1
  406. package/dist/tools/bash.js +0 -13
  407. package/dist/tools/bash.js.map +0 -1
  408. package/dist/tools/cron.d.ts +0 -30
  409. package/dist/tools/cron.d.ts.map +0 -1
  410. package/dist/tools/cron.js +0 -57
  411. package/dist/tools/cron.js.map +0 -1
  412. package/dist/tools/exec.d.ts +0 -18
  413. package/dist/tools/exec.d.ts.map +0 -1
  414. package/dist/tools/exec.js +0 -144
  415. package/dist/tools/exec.js.map +0 -1
  416. package/dist/tools/files.d.ts +0 -37
  417. package/dist/tools/files.d.ts.map +0 -1
  418. package/dist/tools/files.js +0 -191
  419. package/dist/tools/files.js.map +0 -1
  420. package/dist/tools/image.d.ts +0 -14
  421. package/dist/tools/image.d.ts.map +0 -1
  422. package/dist/tools/image.js +0 -26
  423. package/dist/tools/image.js.map +0 -1
  424. package/dist/tools/index.d.ts +0 -36
  425. package/dist/tools/index.d.ts.map +0 -1
  426. package/dist/tools/index.js +0 -53
  427. package/dist/tools/index.js.map +0 -1
  428. package/dist/tools/memory.d.ts +0 -41
  429. package/dist/tools/memory.d.ts.map +0 -1
  430. package/dist/tools/memory.js +0 -114
  431. package/dist/tools/memory.js.map +0 -1
  432. package/dist/tools/process-registry.d.ts +0 -47
  433. package/dist/tools/process-registry.d.ts.map +0 -1
  434. package/dist/tools/process-registry.js +0 -262
  435. package/dist/tools/process-registry.js.map +0 -1
  436. package/dist/tools/process.d.ts +0 -17
  437. package/dist/tools/process.d.ts.map +0 -1
  438. package/dist/tools/process.js +0 -114
  439. package/dist/tools/process.js.map +0 -1
  440. package/dist/tools/subagent-spawn.d.ts +0 -44
  441. package/dist/tools/subagent-spawn.d.ts.map +0 -1
  442. package/dist/tools/subagent-spawn.js +0 -101
  443. package/dist/tools/subagent-spawn.js.map +0 -1
  444. package/dist/tools/subagents.d.ts +0 -30
  445. package/dist/tools/subagents.d.ts.map +0 -1
  446. package/dist/tools/subagents.js +0 -101
  447. package/dist/tools/subagents.js.map +0 -1
  448. package/dist/types.d.ts +0 -153
  449. package/dist/types.d.ts.map +0 -1
  450. package/dist/types.js +0 -6
  451. package/dist/types.js.map +0 -1
@@ -1,145 +0,0 @@
1
- import { estimateEntriesTokens } from "./token-estimate.js";
2
- import { limitHistoryTurns } from "./limit.js";
3
- import { repairToolPairing } from "./repair.js";
4
- import { shouldCompact, splitForCompaction, generateSummary } from "./compaction.js";
5
- // Zero-usage placeholder for reconstructed assistant messages.
6
- // The actual usage figures are not meaningful for history replay.
7
- const ZERO_USAGE = {
8
- input: 0,
9
- output: 0,
10
- cacheRead: 0,
11
- cacheWrite: 0,
12
- totalTokens: 0,
13
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },
14
- };
15
- /**
16
- * Manage conversation history before each agent run:
17
- * 1. Extract message entries that follow the last compaction record.
18
- * 2. Apply the turn limit (drop oldest user turns beyond `historyLimit`).
19
- * 3. Repair orphaned tool_result entries created by truncation.
20
- * 4. If token count exceeds the threshold, generate an LLM summary and
21
- * return a compaction record to persist.
22
- */
23
- export async function manageHistory(params) {
24
- const { entries, modelInfo, contextWindowTokens, llm, historyLimit, compactionEnabled = true, thresholdRatio, signal, } = params;
25
- // ── 1. Separate the latest compaction record from message entries ──────────
26
- let existingSummary;
27
- let messageEntries;
28
- const lastCompactionIdx = findLastCompactionIndex(entries);
29
- if (lastCompactionIdx >= 0) {
30
- existingSummary = entries[lastCompactionIdx].content;
31
- messageEntries = entries.slice(lastCompactionIdx + 1);
32
- }
33
- else {
34
- messageEntries = entries;
35
- }
36
- const originalCount = entries.length;
37
- // ── 2. Apply turn limit ────────────────────────────────────────────────────
38
- const limited = limitHistoryTurns(messageEntries, historyLimit);
39
- // ── 3. Repair orphaned tool_results caused by truncation ──────────────────
40
- const repaired = repairToolPairing(limited);
41
- // ── 4. Compaction if needed ────────────────────────────────────────────────
42
- if (compactionEnabled &&
43
- shouldCompact({ entries: repaired, contextWindowTokens, thresholdRatio })) {
44
- const { toKeep, toSummarise } = splitForCompaction(repaired, contextWindowTokens);
45
- if (toSummarise.length > 0) {
46
- const newSummary = await generateSummary({
47
- entries: toSummarise,
48
- llm,
49
- previousSummary: existingSummary,
50
- signal,
51
- hooks: params.hooks,
52
- hookCtx: params.hookCtx,
53
- });
54
- const repairedToKeep = repairToolPairing(toKeep);
55
- const compactionEntry = {
56
- role: "compaction",
57
- content: newSummary,
58
- keptCount: repairedToKeep.length,
59
- droppedCount: toSummarise.length,
60
- timestamp: new Date().toISOString(),
61
- };
62
- return {
63
- messages: entriesToMessages(repairedToKeep, modelInfo),
64
- priorSummary: newSummary,
65
- compactionEntry,
66
- stats: {
67
- originalCount,
68
- keptCount: repairedToKeep.length,
69
- estimatedTokens: estimateEntriesTokens(repairedToKeep),
70
- compacted: true,
71
- },
72
- };
73
- }
74
- }
75
- // ── No compaction ──────────────────────────────────────────────────────────
76
- return {
77
- messages: entriesToMessages(repaired, modelInfo),
78
- priorSummary: existingSummary,
79
- compactionEntry: undefined,
80
- stats: {
81
- originalCount,
82
- keptCount: repaired.length,
83
- estimatedTokens: estimateEntriesTokens(repaired),
84
- compacted: false,
85
- },
86
- };
87
- }
88
- // ---------------------------------------------------------------------------
89
- // Helpers
90
- // ---------------------------------------------------------------------------
91
- function findLastCompactionIndex(entries) {
92
- for (let i = entries.length - 1; i >= 0; i--) {
93
- if (entries[i].role === "compaction")
94
- return i;
95
- }
96
- return -1;
97
- }
98
- /**
99
- * Convert MessageEntry[] to AgentMessage[] for use with agent.replaceMessages().
100
- */
101
- export function entriesToMessages(entries, modelInfo) {
102
- return entries.map((entry) => entryToMessage(entry, modelInfo));
103
- }
104
- function entryToMessage(entry, modelInfo) {
105
- const timestamp = new Date(entry.timestamp).getTime();
106
- if (isUserEntry(entry)) {
107
- return { role: "user", content: entry.content, timestamp };
108
- }
109
- if (isAssistantEntry(entry)) {
110
- const content = [];
111
- if (entry.content) {
112
- content.push({ type: "text", text: entry.content });
113
- }
114
- for (const tc of entry.toolCalls ?? []) {
115
- content.push({ type: "toolCall", id: tc.id, name: tc.name, arguments: tc.arguments });
116
- }
117
- return {
118
- role: "assistant",
119
- content,
120
- api: modelInfo.api,
121
- provider: "openai",
122
- model: modelInfo.model,
123
- usage: ZERO_USAGE,
124
- stopReason: "stop",
125
- timestamp,
126
- };
127
- }
128
- // tool_result
129
- const tr = entry;
130
- return {
131
- role: "toolResult",
132
- toolCallId: tr.toolCallId,
133
- toolName: tr.toolName,
134
- content: [{ type: "text", text: tr.content }],
135
- isError: tr.isError,
136
- timestamp,
137
- };
138
- }
139
- function isUserEntry(entry) {
140
- return entry.role === "user";
141
- }
142
- function isAssistantEntry(entry) {
143
- return entry.role === "assistant";
144
- }
145
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { MessageEntry } from "../types.js";
2
- /**
3
- * Limit conversation history to the last `limit` user turns (and their
4
- * associated assistant/tool_result responses).
5
- *
6
- * Counting works from the end: each `user` entry increments the counter.
7
- * Once the counter exceeds `limit`, the entries before that point are dropped.
8
- *
9
- * Returns the original array reference when no trimming is needed, avoiding
10
- * an unnecessary copy.
11
- */
12
- export declare function limitHistoryTurns(entries: MessageEntry[], limit: number | undefined): MessageEntry[];
13
- //# sourceMappingURL=limit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"limit.d.ts","sourceRoot":"","sources":["../../src/history/limit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,MAAM,GAAG,SAAS,GACxB,YAAY,EAAE,CAuBhB"}
@@ -1,32 +0,0 @@
1
- /**
2
- * Limit conversation history to the last `limit` user turns (and their
3
- * associated assistant/tool_result responses).
4
- *
5
- * Counting works from the end: each `user` entry increments the counter.
6
- * Once the counter exceeds `limit`, the entries before that point are dropped.
7
- *
8
- * Returns the original array reference when no trimming is needed, avoiding
9
- * an unnecessary copy.
10
- */
11
- export function limitHistoryTurns(entries, limit) {
12
- if (!limit || limit <= 0 || entries.length === 0) {
13
- return entries;
14
- }
15
- let userCount = 0;
16
- // Tracks the index of the most-recently-seen user entry as we scan backward.
17
- let lastUserIndex = entries.length;
18
- for (let i = entries.length - 1; i >= 0; i--) {
19
- if (entries[i].role === "user") {
20
- userCount++;
21
- if (userCount > limit) {
22
- // We have seen one more user turn than allowed — drop everything before
23
- // the index we saved on the previous iteration.
24
- return entries.slice(lastUserIndex);
25
- }
26
- lastUserIndex = i;
27
- }
28
- }
29
- // Fewer user turns than the limit — return as-is.
30
- return entries;
31
- }
32
- //# sourceMappingURL=limit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"limit.js","sourceRoot":"","sources":["../../src/history/limit.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAuB,EACvB,KAAyB;IAEzB,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,6EAA6E;IAC7E,IAAI,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAEnC,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC/B,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;gBACtB,wEAAwE;gBACxE,gDAAgD;gBAChD,OAAO,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YACtC,CAAC;YACD,aAAa,GAAG,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,13 +0,0 @@
1
- import type { MessageEntry } from "../types.js";
2
- /**
3
- * Remove orphaned tool_result entries whose matching assistant toolCall was
4
- * dropped by history truncation.
5
- *
6
- * An orphaned tool_result has a `toolCallId` that cannot be found in any
7
- * preceding AssistantEntry.toolCalls[].id within the provided slice.
8
- * Sending such entries to the LLM causes "unexpected tool_use_id" errors.
9
- *
10
- * Returns the original array reference when nothing was dropped.
11
- */
12
- export declare function repairToolPairing(entries: MessageEntry[]): MessageEntry[];
13
- //# sourceMappingURL=repair.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repair.d.ts","sourceRoot":"","sources":["../../src/history/repair.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAiBzE"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Remove orphaned tool_result entries whose matching assistant toolCall was
3
- * dropped by history truncation.
4
- *
5
- * An orphaned tool_result has a `toolCallId` that cannot be found in any
6
- * preceding AssistantEntry.toolCalls[].id within the provided slice.
7
- * Sending such entries to the LLM causes "unexpected tool_use_id" errors.
8
- *
9
- * Returns the original array reference when nothing was dropped.
10
- */
11
- export function repairToolPairing(entries) {
12
- // Collect all toolCall ids that are present in the slice.
13
- const knownIds = new Set();
14
- for (const entry of entries) {
15
- if (entry.role === "assistant") {
16
- for (const tc of entry.toolCalls ?? []) {
17
- knownIds.add(tc.id);
18
- }
19
- }
20
- }
21
- const repaired = entries.filter((entry) => entry.role !== "tool_result" || knownIds.has(entry.toolCallId));
22
- // Avoid allocating a new array when nothing was removed.
23
- return repaired.length === entries.length ? entries : repaired;
24
- }
25
- //# sourceMappingURL=repair.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"repair.js","sourceRoot":"","sources":["../../src/history/repair.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAuB;IACvD,0DAA0D;IAC1D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;gBACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAC7B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAC1E,CAAC;IAEF,yDAAyD;IACzD,OAAO,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjE,CAAC"}
@@ -1,22 +0,0 @@
1
- import type { MessageEntry } from "../types.js";
2
- /**
3
- * Safety margin applied on top of the chars/4 heuristic to compensate for
4
- * tokeniser differences (multi-byte chars, code tokens, special tokens, etc.)
5
- */
6
- export declare const SAFETY_MARGIN = 1.2;
7
- /**
8
- * Estimate token count for a text string.
9
- * Uses the chars/4 heuristic (rough average for English/mixed content) plus
10
- * a 20% safety margin to reduce the risk of underestimation.
11
- */
12
- export declare function estimateTokens(text: string): number;
13
- /**
14
- * Estimate token count for a single MessageEntry.
15
- * Tool results are measured separately because they can be very large.
16
- */
17
- export declare function estimateEntryTokens(entry: MessageEntry): number;
18
- /**
19
- * Estimate total token count for an array of MessageEntry items.
20
- */
21
- export declare function estimateEntriesTokens(entries: MessageEntry[]): number;
22
- //# sourceMappingURL=token-estimate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-estimate.d.ts","sourceRoot":"","sources":["../../src/history/token-estimate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,aAAa,MAAM,CAAC;AAEjC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAa/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAErE"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Safety margin applied on top of the chars/4 heuristic to compensate for
3
- * tokeniser differences (multi-byte chars, code tokens, special tokens, etc.)
4
- */
5
- export const SAFETY_MARGIN = 1.2;
6
- /**
7
- * Estimate token count for a text string.
8
- * Uses the chars/4 heuristic (rough average for English/mixed content) plus
9
- * a 20% safety margin to reduce the risk of underestimation.
10
- */
11
- export function estimateTokens(text) {
12
- return Math.ceil((text.length / 4) * SAFETY_MARGIN);
13
- }
14
- /**
15
- * Estimate token count for a single MessageEntry.
16
- * Tool results are measured separately because they can be very large.
17
- */
18
- export function estimateEntryTokens(entry) {
19
- if (entry.role === "user") {
20
- return estimateTokens(entry.content);
21
- }
22
- if (entry.role === "assistant") {
23
- let tokens = estimateTokens(entry.content);
24
- for (const tc of entry.toolCalls ?? []) {
25
- tokens += estimateTokens(tc.name) + estimateTokens(JSON.stringify(tc.arguments));
26
- }
27
- return tokens;
28
- }
29
- // tool_result
30
- return estimateTokens(entry.toolName) + estimateTokens(entry.content);
31
- }
32
- /**
33
- * Estimate total token count for an array of MessageEntry items.
34
- */
35
- export function estimateEntriesTokens(entries) {
36
- return entries.reduce((sum, entry) => sum + estimateEntryTokens(entry), 0);
37
- }
38
- //# sourceMappingURL=token-estimate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"token-estimate.js","sourceRoot":"","sources":["../../src/history/token-estimate.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,aAAa,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAmB;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3C,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;QACnF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,cAAc;IACd,OAAO,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAuB;IAC3D,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-JD6Ye-N5.d.ts","names":[],"sources":["../src/config/types.ts","../src/config/agents-config.ts"],"mappings":";;AASA;;;;;;;KAAY,WAAA;EAQO,8BANjB,EAAA,UAUA;EARA,OAAA,YAUE;EARF,IAAA,WAUE;EARF,KAAA,YAAiB,gBAAA,EAaf;EAXF,MAAA,aAamB;EAXnB,QAAA;IACE,IAAA;IACA,KAAA;IACA,KAAA;IACA,MAAA;EAAA,GAgBO;EAbT,SAAA;IAoBsB,4EAlBpB,WAAA,aAkBoB;IAhBpB,KAAA,YAAiB,gBAAA;EAAA;AAAA;;;;KAOT,gBAAA;EACV,OAAA;EACA,SAAA;AAAA;;;;;KAOU,YAAA;EA2ByB,uCAzBnC,OAAA,UAoBQ;EAlBR,OAAA,WAoBW;EAlBX,KAAA;IAqBE,2CAnBA,OAAA,kCAwBA;IAtBA,SAAA,WA0BE;IAxBF,MAAA;EAAA;AAAA;;;;AC9CJ;KDsDY,YAAA;kCAEV,MAAA,EAAQ,WAAA,ICxDiC;ED0DzC,QAAA,GAAW,YAAA,ICnD0B;EDqDrC,QAAA;IACE,KAAA,YAAiB,gBAAA;ICtDkC;AAOvD;;;IDoDI,YAAA,WCpD4D;IDsD5D,UAAA;MC9CkC,sEDgDhC,OAAA,YChD0D;MDkD1D,cAAA;IAAA;EAAA;AAAA;;;;;;iBCxEU,WAAA,CAAY,OAAA;;;;iBAOZ,uBAAA,CAAwB,OAAA;;;;iBAOxB,eAAA,CAAgB,OAAA,UAAiB,OAAA;;;;;iBAQ3B,gBAAA,CAAiB,OAAA,WAAkB,OAAA,CAAQ,YAAA;;;;iBA6B3C,gBAAA,CACpB,OAAA,UACA,MAAA,EAAQ,YAAA,GACP,OAAA;ADpBH;;;AAAA,iBC6BgB,UAAA,CAAW,MAAA,EAAQ,YAAA,GAAe,WAAA;;;;;iBAalC,qBAAA,CAAsB,MAAA,EAAQ,YAAA;;;;iBAS9B,gBAAA,CAAiB,EAAA;;;;iBAQjB,cAAA,CACd,MAAA,EAAQ,YAAA,EACR,OAAA,WACC,WAAA;;;;iBAQa,YAAA,CAAa,MAAA,EAAQ,YAAA,GAAe,YAAA;;;;;iBAapC,uBAAA,CACd,MAAA,EAAQ,YAAA,EACR,OAAA,UACA,SAAA,WACA,MAAA;;;;iBAyBc,kBAAA,CACd,KAAA,WAAgB,gBAAA;;;;iBAUF,qBAAA,CACd,KAAA,WAAgB,gBAAA;;;AA9JlB;;iBAwKsB,QAAA,CACpB,OAAA,UACA,KAAA,EAAO,WAAA,GACN,OAAA;;;AApKH;;iBA4LsB,WAAA,CACpB,OAAA,UACA,OAAA,WACC,OAAA;;;AAxLH;iBAuNsB,UAAA,CACpB,OAAA,UACA,OAAA,EAAS,YAAA,GACR,OAAA;;;;AAlNH;iBA6NsB,cAAA,CACpB,OAAA,UACA,OAAA,UACA,OAAA,WACA,SAAA,YACC,OAAA;;;;iBAgCmB,mBAAA,CACpB,OAAA,UACA,OAAA,UACA,QAAA,EAAU,OAAA,CAAQ,WAAA,CAAY,WAAA,iBAC7B,OAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc;AACd,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAcpE,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,UAAU,EACV,cAAc,EACd,YAAY,GACb,MAAM,sBAAsB,CAAC;AAG9B,kBAAkB;AAClB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,QAAQ,EACR,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,iCAAiC,CAAC;AAOzC,SAAS;AACT,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EACL,yBAAyB,EACzB,wBAAwB,EACxB,sCAAsC,GACvC,MAAM,gCAAgC,CAAC;AAgBxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,mCAAmC,GACpC,MAAM,+BAA+B,CAAC;AAGvC,SAAS;AACT,OAAO,EACL,UAAU,EACV,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjE,gBAAgB;AAChB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,QAAQ;AACR,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,WAAW;AACX,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAExG,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AAEzE,uBAAuB;AACvB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAGxC,sBAAsB;AACtB,cAAc,mBAAmB,CAAC;AAElC,UAAU;AACV,cAAc,oBAAoB,CAAC"}
@@ -1,53 +0,0 @@
1
- import type { PluginHookAgentContext, PluginHookRegistry } from "../plugins/hooks.js";
2
- export type LlmChatMessage = {
3
- role: "system" | "user" | "assistant";
4
- content: string;
5
- };
6
- export type LlmChatParams = {
7
- system?: string;
8
- user?: string;
9
- messages?: LlmChatMessage[];
10
- model?: string;
11
- temperature?: number;
12
- maxTokens?: number;
13
- timeoutMs?: number;
14
- signal?: AbortSignal;
15
- };
16
- export type LlmChatResult = {
17
- text: string;
18
- usage: {
19
- input: number;
20
- output: number;
21
- total: number;
22
- };
23
- raw?: unknown;
24
- };
25
- export type LlmClientBaseConfig = {
26
- baseUrl: string;
27
- apiKey: string;
28
- defaultModel: string;
29
- hooks?: PluginHookRegistry;
30
- hookCtx?: PluginHookAgentContext;
31
- };
32
- export type LlmClient = {
33
- chat: (params: LlmChatParams) => Promise<LlmChatResult>;
34
- };
35
- export type LlmRequestErrorCode = "http_error" | "network_error" | "timeout" | "aborted" | "invalid_response" | "stream_payload_error";
36
- export declare class LlmRequestError extends Error {
37
- readonly code: LlmRequestErrorCode;
38
- readonly statusCode?: number;
39
- readonly statusText?: string;
40
- readonly providerMessage?: string;
41
- readonly retryable: boolean;
42
- constructor(params: {
43
- message: string;
44
- code: LlmRequestErrorCode;
45
- statusCode?: number;
46
- statusText?: string;
47
- providerMessage?: string;
48
- retryable: boolean;
49
- cause?: unknown;
50
- });
51
- }
52
- export declare function createLlmClient(config: LlmClientBaseConfig): LlmClient;
53
- //# sourceMappingURL=client.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEtF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACxD,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,eAAe,GACf,SAAS,GACT,SAAS,GACT,kBAAkB,GAClB,sBAAsB,CAAC;AAE3B,qBAAa,eAAgB,SAAQ,KAAK;IACxC,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;gBAEhB,MAAM,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,mBAAmB,CAAC;QAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,SAAS,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB;CASF;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,SAAS,CAoHtE"}
@@ -1,214 +0,0 @@
1
- export class LlmRequestError extends Error {
2
- code;
3
- statusCode;
4
- statusText;
5
- providerMessage;
6
- retryable;
7
- constructor(params) {
8
- super(params.message, { cause: params.cause });
9
- this.name = "LlmRequestError";
10
- this.code = params.code;
11
- this.statusCode = params.statusCode;
12
- this.statusText = params.statusText;
13
- this.providerMessage = params.providerMessage;
14
- this.retryable = params.retryable;
15
- }
16
- }
17
- export function createLlmClient(config) {
18
- return {
19
- async chat(params) {
20
- const messages = buildMessages(params);
21
- const model = params.model ?? config.defaultModel;
22
- if (!model) {
23
- throw new Error("LLM model is required");
24
- }
25
- await dispatchHook(config.hooks, "llm_input", {
26
- sessionId: config.hookCtx?.sessionId ?? "unknown",
27
- model,
28
- prompt: formatPrompt(messages),
29
- historyMessages: messages,
30
- }, config.hookCtx);
31
- const body = {
32
- model,
33
- messages,
34
- stream: false,
35
- };
36
- if (typeof params.temperature === "number") {
37
- body.temperature = params.temperature;
38
- }
39
- if (typeof params.maxTokens === "number") {
40
- body.max_tokens = params.maxTokens;
41
- }
42
- const { signal, clear, didTimeout } = buildAbortSignal(params.signal, params.timeoutMs);
43
- try {
44
- let response;
45
- try {
46
- // Ensure proper URL construction without double slashes
47
- const baseUrl = config.baseUrl.replace(/\/$/, '');
48
- response = await fetch(`${baseUrl}/chat/completions`, {
49
- method: "POST",
50
- headers: {
51
- "content-type": "application/json",
52
- authorization: `Bearer ${config.apiKey}`,
53
- "Client-Code": "AIMax",
54
- },
55
- body: JSON.stringify(body),
56
- signal,
57
- });
58
- }
59
- catch (error) {
60
- throw normalizeFetchError(error, didTimeout());
61
- }
62
- if (!response.ok) {
63
- const snippet = await safeResponseSnippet(response);
64
- const providerMessage = snippet || undefined;
65
- const statusText = response.statusText?.trim() || undefined;
66
- const reason = [response.status, statusText].filter(Boolean).join(" ");
67
- const message = providerMessage
68
- ? `LLM upstream returned HTTP ${reason}: ${providerMessage}`
69
- : `LLM upstream returned HTTP ${reason}`;
70
- throw new LlmRequestError({
71
- message,
72
- code: "http_error",
73
- statusCode: response.status,
74
- statusText,
75
- providerMessage,
76
- retryable: isRetryableStatus(response.status),
77
- });
78
- }
79
- let json;
80
- try {
81
- json = (await response.json());
82
- }
83
- catch (error) {
84
- throw new LlmRequestError({
85
- message: "LLM upstream returned an invalid JSON response",
86
- code: "invalid_response",
87
- retryable: false,
88
- cause: error,
89
- });
90
- }
91
- const text = json.choices?.[0]?.message?.content ??
92
- json.choices?.[0]?.text ??
93
- "";
94
- const usage = normalizeUsage(json.usage);
95
- await dispatchHook(config.hooks, "llm_output", {
96
- sessionId: config.hookCtx?.sessionId ?? "unknown",
97
- model,
98
- assistantTexts: text ? [text] : [],
99
- usage,
100
- }, config.hookCtx);
101
- return { text, usage, raw: json };
102
- }
103
- finally {
104
- clear();
105
- }
106
- },
107
- };
108
- }
109
- function buildMessages(params) {
110
- if (Array.isArray(params.messages) && params.messages.length > 0) {
111
- return params.messages;
112
- }
113
- const messages = [];
114
- if (params.system?.trim()) {
115
- messages.push({ role: "system", content: params.system });
116
- }
117
- if (params.user?.trim()) {
118
- messages.push({ role: "user", content: params.user });
119
- }
120
- if (messages.length === 0) {
121
- throw new Error("LLM messages are required");
122
- }
123
- return messages;
124
- }
125
- function formatPrompt(messages) {
126
- return messages.map((m) => `${m.role}: ${m.content}`).join("\n");
127
- }
128
- function normalizeUsage(usage) {
129
- const input = usage?.input ??
130
- usage?.prompt_tokens ??
131
- 0;
132
- const output = usage?.output ??
133
- usage?.completion_tokens ??
134
- 0;
135
- const total = usage?.total ??
136
- usage?.total_tokens ??
137
- input + output;
138
- return { input, output, total };
139
- }
140
- async function dispatchHook(hooks, name, event, ctx) {
141
- if (!hooks || !ctx)
142
- return;
143
- await hooks.dispatch(name, event, ctx);
144
- }
145
- function buildAbortSignal(signal, timeoutMs) {
146
- if (!signal && (!timeoutMs || timeoutMs <= 0)) {
147
- return { signal: undefined, clear: () => { }, didTimeout: () => false };
148
- }
149
- const controller = new AbortController();
150
- let timeout;
151
- let timedOut = false;
152
- if (signal) {
153
- if (signal.aborted) {
154
- controller.abort();
155
- }
156
- else {
157
- signal.addEventListener("abort", () => controller.abort(), { once: true });
158
- }
159
- }
160
- if (timeoutMs && timeoutMs > 0) {
161
- timeout = setTimeout(() => {
162
- timedOut = true;
163
- controller.abort();
164
- }, timeoutMs);
165
- }
166
- return {
167
- signal: controller.signal,
168
- clear: () => {
169
- if (timeout)
170
- clearTimeout(timeout);
171
- },
172
- didTimeout: () => timedOut,
173
- };
174
- }
175
- async function safeResponseSnippet(response) {
176
- try {
177
- const text = await response.text();
178
- if (!text)
179
- return "";
180
- return text.trim().slice(0, 200);
181
- }
182
- catch {
183
- return "";
184
- }
185
- }
186
- function normalizeFetchError(error, timedOut) {
187
- if (error instanceof LlmRequestError) {
188
- return error;
189
- }
190
- if (isAbortError(error)) {
191
- if (!timedOut) {
192
- return error;
193
- }
194
- return new LlmRequestError({
195
- message: "LLM request timed out",
196
- code: "timeout",
197
- retryable: true,
198
- cause: error,
199
- });
200
- }
201
- return new LlmRequestError({
202
- message: `LLM network request failed: ${error instanceof Error ? error.message : String(error)}`,
203
- code: "network_error",
204
- retryable: true,
205
- cause: error,
206
- });
207
- }
208
- function isAbortError(error) {
209
- return error instanceof Error && error.name === "AbortError";
210
- }
211
- function isRetryableStatus(status) {
212
- return status === 408 || status === 409 || status === 425 || status === 429 || status >= 500;
213
- }
214
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/llm/client.ts"],"names":[],"mappings":"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"}