@vinhnt-sdk/core 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 (575) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/dist/agent/agent-def.d.ts +11 -0
  4. package/dist/agent/agent-def.d.ts.map +1 -0
  5. package/dist/agent/agent-def.js +2 -0
  6. package/dist/agent/agent-def.js.map +1 -0
  7. package/dist/agent/agent-factory.d.ts +21 -0
  8. package/dist/agent/agent-factory.d.ts.map +1 -0
  9. package/dist/agent/agent-factory.js +119 -0
  10. package/dist/agent/agent-factory.js.map +1 -0
  11. package/dist/agent/agent-file-loader.d.ts +46 -0
  12. package/dist/agent/agent-file-loader.d.ts.map +1 -0
  13. package/dist/agent/agent-file-loader.js +111 -0
  14. package/dist/agent/agent-file-loader.js.map +1 -0
  15. package/dist/agent/agent-parser.d.ts +9 -0
  16. package/dist/agent/agent-parser.d.ts.map +1 -0
  17. package/dist/agent/agent-parser.js +70 -0
  18. package/dist/agent/agent-parser.js.map +1 -0
  19. package/dist/agent/agent-registry.d.ts +49 -0
  20. package/dist/agent/agent-registry.d.ts.map +1 -0
  21. package/dist/agent/agent-registry.js +127 -0
  22. package/dist/agent/agent-registry.js.map +1 -0
  23. package/dist/agent/behaviour-profiles.d.ts +11 -0
  24. package/dist/agent/behaviour-profiles.d.ts.map +1 -0
  25. package/dist/agent/behaviour-profiles.js +46 -0
  26. package/dist/agent/behaviour-profiles.js.map +1 -0
  27. package/dist/agent/create-agent-tool.d.ts +20 -0
  28. package/dist/agent/create-agent-tool.d.ts.map +1 -0
  29. package/dist/agent/create-agent-tool.js +108 -0
  30. package/dist/agent/create-agent-tool.js.map +1 -0
  31. package/dist/agent/default-agents.d.ts +5 -0
  32. package/dist/agent/default-agents.d.ts.map +1 -0
  33. package/dist/agent/default-agents.js +38 -0
  34. package/dist/agent/default-agents.js.map +1 -0
  35. package/dist/agent/delegate-batch-tool.d.ts +10 -0
  36. package/dist/agent/delegate-batch-tool.d.ts.map +1 -0
  37. package/dist/agent/delegate-batch-tool.js +48 -0
  38. package/dist/agent/delegate-batch-tool.js.map +1 -0
  39. package/dist/agent/delegate-tool.d.ts +13 -0
  40. package/dist/agent/delegate-tool.d.ts.map +1 -0
  41. package/dist/agent/delegate-tool.js +49 -0
  42. package/dist/agent/delegate-tool.js.map +1 -0
  43. package/dist/agent/dynamic-registry.d.ts +30 -0
  44. package/dist/agent/dynamic-registry.d.ts.map +1 -0
  45. package/dist/agent/dynamic-registry.js +87 -0
  46. package/dist/agent/dynamic-registry.js.map +1 -0
  47. package/dist/agent/execution-engine.d.ts +25 -0
  48. package/dist/agent/execution-engine.d.ts.map +1 -0
  49. package/dist/agent/execution-engine.js +80 -0
  50. package/dist/agent/execution-engine.js.map +1 -0
  51. package/dist/agent/list-agents-tool.d.ts +4 -0
  52. package/dist/agent/list-agents-tool.d.ts.map +1 -0
  53. package/dist/agent/list-agents-tool.js +43 -0
  54. package/dist/agent/list-agents-tool.js.map +1 -0
  55. package/dist/agent/spawn-agent-tool.d.ts +15 -0
  56. package/dist/agent/spawn-agent-tool.d.ts.map +1 -0
  57. package/dist/agent/spawn-agent-tool.js +77 -0
  58. package/dist/agent/spawn-agent-tool.js.map +1 -0
  59. package/dist/crypto/password.d.ts +11 -0
  60. package/dist/crypto/password.d.ts.map +1 -0
  61. package/dist/crypto/password.js +44 -0
  62. package/dist/crypto/password.js.map +1 -0
  63. package/dist/event-bus/bridge.d.ts +19 -0
  64. package/dist/event-bus/bridge.d.ts.map +1 -0
  65. package/dist/event-bus/bridge.js +48 -0
  66. package/dist/event-bus/bridge.js.map +1 -0
  67. package/dist/event-bus/global-bus.d.ts +30 -0
  68. package/dist/event-bus/global-bus.d.ts.map +1 -0
  69. package/dist/event-bus/global-bus.js +92 -0
  70. package/dist/event-bus/global-bus.js.map +1 -0
  71. package/dist/event-bus/in-memory-bus.d.ts +19 -0
  72. package/dist/event-bus/in-memory-bus.d.ts.map +1 -0
  73. package/dist/event-bus/in-memory-bus.js +97 -0
  74. package/dist/event-bus/in-memory-bus.js.map +1 -0
  75. package/dist/event-bus/index.d.ts +5 -0
  76. package/dist/event-bus/index.d.ts.map +1 -0
  77. package/dist/event-bus/index.js +4 -0
  78. package/dist/event-bus/index.js.map +1 -0
  79. package/dist/event-bus/types.d.ts +20 -0
  80. package/dist/event-bus/types.d.ts.map +1 -0
  81. package/dist/event-bus/types.js +2 -0
  82. package/dist/event-bus/types.js.map +1 -0
  83. package/dist/fakes/fake-agent-registry.d.ts +17 -0
  84. package/dist/fakes/fake-agent-registry.d.ts.map +1 -0
  85. package/dist/fakes/fake-agent-registry.js +70 -0
  86. package/dist/fakes/fake-agent-registry.js.map +1 -0
  87. package/dist/fakes/fake-approval-store.d.ts +27 -0
  88. package/dist/fakes/fake-approval-store.d.ts.map +1 -0
  89. package/dist/fakes/fake-approval-store.js +66 -0
  90. package/dist/fakes/fake-approval-store.js.map +1 -0
  91. package/dist/fakes/fake-model.d.ts +37 -0
  92. package/dist/fakes/fake-model.d.ts.map +1 -0
  93. package/dist/fakes/fake-model.js +63 -0
  94. package/dist/fakes/fake-model.js.map +1 -0
  95. package/dist/fakes/fake-store.d.ts +16 -0
  96. package/dist/fakes/fake-store.d.ts.map +1 -0
  97. package/dist/fakes/fake-store.js +61 -0
  98. package/dist/fakes/fake-store.js.map +1 -0
  99. package/dist/fakes/fake-tool-context.d.ts +28 -0
  100. package/dist/fakes/fake-tool-context.d.ts.map +1 -0
  101. package/dist/fakes/fake-tool-context.js +34 -0
  102. package/dist/fakes/fake-tool-context.js.map +1 -0
  103. package/dist/fakes/fake-tool.d.ts +22 -0
  104. package/dist/fakes/fake-tool.d.ts.map +1 -0
  105. package/dist/fakes/fake-tool.js +27 -0
  106. package/dist/fakes/fake-tool.js.map +1 -0
  107. package/dist/fakes/index.d.ts +7 -0
  108. package/dist/fakes/index.d.ts.map +1 -0
  109. package/dist/fakes/index.js +7 -0
  110. package/dist/fakes/index.js.map +1 -0
  111. package/dist/index.d.ts +111 -0
  112. package/dist/index.d.ts.map +1 -0
  113. package/dist/index.js +72 -0
  114. package/dist/index.js.map +1 -0
  115. package/dist/internal/index.d.ts +5 -0
  116. package/dist/internal/index.d.ts.map +1 -0
  117. package/dist/internal/index.js +8 -0
  118. package/dist/internal/index.js.map +1 -0
  119. package/dist/kernel/approval-handler.d.ts +17 -0
  120. package/dist/kernel/approval-handler.d.ts.map +1 -0
  121. package/dist/kernel/approval-handler.js +28 -0
  122. package/dist/kernel/approval-handler.js.map +1 -0
  123. package/dist/kernel/circuit-breaker.d.ts +25 -0
  124. package/dist/kernel/circuit-breaker.d.ts.map +1 -0
  125. package/dist/kernel/circuit-breaker.js +88 -0
  126. package/dist/kernel/circuit-breaker.js.map +1 -0
  127. package/dist/kernel/context-manager.d.ts +29 -0
  128. package/dist/kernel/context-manager.d.ts.map +1 -0
  129. package/dist/kernel/context-manager.js +64 -0
  130. package/dist/kernel/context-manager.js.map +1 -0
  131. package/dist/kernel/kernel-error.d.ts +7 -0
  132. package/dist/kernel/kernel-error.d.ts.map +1 -0
  133. package/dist/kernel/kernel-error.js +12 -0
  134. package/dist/kernel/kernel-error.js.map +1 -0
  135. package/dist/kernel/kernel-session.d.ts +30 -0
  136. package/dist/kernel/kernel-session.d.ts.map +1 -0
  137. package/dist/kernel/kernel-session.js +92 -0
  138. package/dist/kernel/kernel-session.js.map +1 -0
  139. package/dist/kernel/kernel-types.d.ts +72 -0
  140. package/dist/kernel/kernel-types.d.ts.map +1 -0
  141. package/dist/kernel/kernel-types.js +2 -0
  142. package/dist/kernel/kernel-types.js.map +1 -0
  143. package/dist/kernel/kernel-utils.d.ts +29 -0
  144. package/dist/kernel/kernel-utils.d.ts.map +1 -0
  145. package/dist/kernel/kernel-utils.js +74 -0
  146. package/dist/kernel/kernel-utils.js.map +1 -0
  147. package/dist/kernel/kernel.d.ts +150 -0
  148. package/dist/kernel/kernel.d.ts.map +1 -0
  149. package/dist/kernel/kernel.js +536 -0
  150. package/dist/kernel/kernel.js.map +1 -0
  151. package/dist/kernel/max-steps-prompt.d.ts +3 -0
  152. package/dist/kernel/max-steps-prompt.d.ts.map +1 -0
  153. package/dist/kernel/max-steps-prompt.js +13 -0
  154. package/dist/kernel/max-steps-prompt.js.map +1 -0
  155. package/dist/kernel/model-caller.d.ts +35 -0
  156. package/dist/kernel/model-caller.d.ts.map +1 -0
  157. package/dist/kernel/model-caller.js +196 -0
  158. package/dist/kernel/model-caller.js.map +1 -0
  159. package/dist/kernel/permission-gate.d.ts +74 -0
  160. package/dist/kernel/permission-gate.d.ts.map +1 -0
  161. package/dist/kernel/permission-gate.js +258 -0
  162. package/dist/kernel/permission-gate.js.map +1 -0
  163. package/dist/kernel/run-loop.d.ts +69 -0
  164. package/dist/kernel/run-loop.d.ts.map +1 -0
  165. package/dist/kernel/run-loop.js +437 -0
  166. package/dist/kernel/run-loop.js.map +1 -0
  167. package/dist/kernel/run-orchestrator.d.ts +66 -0
  168. package/dist/kernel/run-orchestrator.d.ts.map +1 -0
  169. package/dist/kernel/run-orchestrator.js +182 -0
  170. package/dist/kernel/run-orchestrator.js.map +1 -0
  171. package/dist/kernel/run-state.d.ts +25 -0
  172. package/dist/kernel/run-state.d.ts.map +1 -0
  173. package/dist/kernel/run-state.js +86 -0
  174. package/dist/kernel/run-state.js.map +1 -0
  175. package/dist/kernel/self-correction.d.ts +27 -0
  176. package/dist/kernel/self-correction.d.ts.map +1 -0
  177. package/dist/kernel/self-correction.js +80 -0
  178. package/dist/kernel/self-correction.js.map +1 -0
  179. package/dist/kernel/state-machine.d.ts +4 -0
  180. package/dist/kernel/state-machine.d.ts.map +1 -0
  181. package/dist/kernel/state-machine.js +18 -0
  182. package/dist/kernel/state-machine.js.map +1 -0
  183. package/dist/kernel/step-executor.d.ts +72 -0
  184. package/dist/kernel/step-executor.d.ts.map +1 -0
  185. package/dist/kernel/step-executor.js +301 -0
  186. package/dist/kernel/step-executor.js.map +1 -0
  187. package/dist/kernel/step-runner.d.ts +57 -0
  188. package/dist/kernel/step-runner.d.ts.map +1 -0
  189. package/dist/kernel/step-runner.js +124 -0
  190. package/dist/kernel/step-runner.js.map +1 -0
  191. package/dist/kernel/sub-agent-runner.d.ts +45 -0
  192. package/dist/kernel/sub-agent-runner.d.ts.map +1 -0
  193. package/dist/kernel/sub-agent-runner.js +128 -0
  194. package/dist/kernel/sub-agent-runner.js.map +1 -0
  195. package/dist/kernel/termination.d.ts +85 -0
  196. package/dist/kernel/termination.d.ts.map +1 -0
  197. package/dist/kernel/termination.js +89 -0
  198. package/dist/kernel/termination.js.map +1 -0
  199. package/dist/kernel/tool-context-builder.d.ts +15 -0
  200. package/dist/kernel/tool-context-builder.d.ts.map +1 -0
  201. package/dist/kernel/tool-context-builder.js +23 -0
  202. package/dist/kernel/tool-context-builder.js.map +1 -0
  203. package/dist/kernel/tool-error-router.d.ts +25 -0
  204. package/dist/kernel/tool-error-router.d.ts.map +1 -0
  205. package/dist/kernel/tool-error-router.js +102 -0
  206. package/dist/kernel/tool-error-router.js.map +1 -0
  207. package/dist/kernel/tool-result-processor.d.ts +22 -0
  208. package/dist/kernel/tool-result-processor.d.ts.map +1 -0
  209. package/dist/kernel/tool-result-processor.js +47 -0
  210. package/dist/kernel/tool-result-processor.js.map +1 -0
  211. package/dist/kernel/tool-saga.d.ts +24 -0
  212. package/dist/kernel/tool-saga.d.ts.map +1 -0
  213. package/dist/kernel/tool-saga.js +59 -0
  214. package/dist/kernel/tool-saga.js.map +1 -0
  215. package/dist/knowledge/approval.d.ts +19 -0
  216. package/dist/knowledge/approval.d.ts.map +1 -0
  217. package/dist/knowledge/approval.js +60 -0
  218. package/dist/knowledge/approval.js.map +1 -0
  219. package/dist/knowledge/compressor.d.ts +46 -0
  220. package/dist/knowledge/compressor.d.ts.map +1 -0
  221. package/dist/knowledge/compressor.js +86 -0
  222. package/dist/knowledge/compressor.js.map +1 -0
  223. package/dist/knowledge/index.d.ts +16 -0
  224. package/dist/knowledge/index.d.ts.map +1 -0
  225. package/dist/knowledge/index.js +10 -0
  226. package/dist/knowledge/index.js.map +1 -0
  227. package/dist/knowledge/learning-engine.d.ts +47 -0
  228. package/dist/knowledge/learning-engine.d.ts.map +1 -0
  229. package/dist/knowledge/learning-engine.js +83 -0
  230. package/dist/knowledge/learning-engine.js.map +1 -0
  231. package/dist/knowledge/llm-compactor.d.ts +25 -0
  232. package/dist/knowledge/llm-compactor.d.ts.map +1 -0
  233. package/dist/knowledge/llm-compactor.js +79 -0
  234. package/dist/knowledge/llm-compactor.js.map +1 -0
  235. package/dist/knowledge/memory-bounded.d.ts +21 -0
  236. package/dist/knowledge/memory-bounded.d.ts.map +1 -0
  237. package/dist/knowledge/memory-bounded.js +63 -0
  238. package/dist/knowledge/memory-bounded.js.map +1 -0
  239. package/dist/knowledge/memory.d.ts +21 -0
  240. package/dist/knowledge/memory.d.ts.map +1 -0
  241. package/dist/knowledge/memory.js +85 -0
  242. package/dist/knowledge/memory.js.map +1 -0
  243. package/dist/knowledge/prompt-builder.d.ts +11 -0
  244. package/dist/knowledge/prompt-builder.d.ts.map +1 -0
  245. package/dist/knowledge/prompt-builder.js +23 -0
  246. package/dist/knowledge/prompt-builder.js.map +1 -0
  247. package/dist/knowledge/review.d.ts +26 -0
  248. package/dist/knowledge/review.d.ts.map +1 -0
  249. package/dist/knowledge/review.js +69 -0
  250. package/dist/knowledge/review.js.map +1 -0
  251. package/dist/knowledge/tool.d.ts +4 -0
  252. package/dist/knowledge/tool.d.ts.map +1 -0
  253. package/dist/knowledge/tool.js +27 -0
  254. package/dist/knowledge/tool.js.map +1 -0
  255. package/dist/knowledge/types.d.ts +27 -0
  256. package/dist/knowledge/types.d.ts.map +1 -0
  257. package/dist/knowledge/types.js +2 -0
  258. package/dist/knowledge/types.js.map +1 -0
  259. package/dist/logger.d.ts +11 -0
  260. package/dist/logger.d.ts.map +1 -0
  261. package/dist/logger.js +44 -0
  262. package/dist/logger.js.map +1 -0
  263. package/dist/model.d.ts +90 -0
  264. package/dist/model.d.ts.map +1 -0
  265. package/dist/model.js +13 -0
  266. package/dist/model.js.map +1 -0
  267. package/dist/permission/checker.d.ts +29 -0
  268. package/dist/permission/checker.d.ts.map +1 -0
  269. package/dist/permission/checker.js +102 -0
  270. package/dist/permission/checker.js.map +1 -0
  271. package/dist/permission/evaluator.d.ts +24 -0
  272. package/dist/permission/evaluator.d.ts.map +1 -0
  273. package/dist/permission/evaluator.js +89 -0
  274. package/dist/permission/evaluator.js.map +1 -0
  275. package/dist/permission/permission.d.ts +29 -0
  276. package/dist/permission/permission.d.ts.map +1 -0
  277. package/dist/permission/permission.js +18 -0
  278. package/dist/permission/permission.js.map +1 -0
  279. package/dist/permission/saved.d.ts +34 -0
  280. package/dist/permission/saved.d.ts.map +1 -0
  281. package/dist/permission/saved.js +43 -0
  282. package/dist/permission/saved.js.map +1 -0
  283. package/dist/plugin/manager.d.ts +33 -0
  284. package/dist/plugin/manager.d.ts.map +1 -0
  285. package/dist/plugin/manager.js +114 -0
  286. package/dist/plugin/manager.js.map +1 -0
  287. package/dist/plugin/plugin-file-loader.d.ts +43 -0
  288. package/dist/plugin/plugin-file-loader.d.ts.map +1 -0
  289. package/dist/plugin/plugin-file-loader.js +115 -0
  290. package/dist/plugin/plugin-file-loader.js.map +1 -0
  291. package/dist/plugin/plugin-tool-provider.d.ts +22 -0
  292. package/dist/plugin/plugin-tool-provider.d.ts.map +1 -0
  293. package/dist/plugin/plugin-tool-provider.js +27 -0
  294. package/dist/plugin/plugin-tool-provider.js.map +1 -0
  295. package/dist/plugin.d.ts +130 -0
  296. package/dist/plugin.d.ts.map +1 -0
  297. package/dist/plugin.js +2 -0
  298. package/dist/plugin.js.map +1 -0
  299. package/dist/session/compaction.d.ts +9 -0
  300. package/dist/session/compaction.d.ts.map +1 -0
  301. package/dist/session/compaction.js +2 -0
  302. package/dist/session/compaction.js.map +1 -0
  303. package/dist/session/durable-reload.d.ts +41 -0
  304. package/dist/session/durable-reload.d.ts.map +1 -0
  305. package/dist/session/durable-reload.js +72 -0
  306. package/dist/session/durable-reload.js.map +1 -0
  307. package/dist/session/in-memory-session-state.d.ts +19 -0
  308. package/dist/session/in-memory-session-state.d.ts.map +1 -0
  309. package/dist/session/in-memory-session-state.js +51 -0
  310. package/dist/session/in-memory-session-state.js.map +1 -0
  311. package/dist/session/null-store.d.ts +30 -0
  312. package/dist/session/null-store.d.ts.map +1 -0
  313. package/dist/session/null-store.js +78 -0
  314. package/dist/session/null-store.js.map +1 -0
  315. package/dist/session/run-coordinator.d.ts +52 -0
  316. package/dist/session/run-coordinator.d.ts.map +1 -0
  317. package/dist/session/run-coordinator.js +127 -0
  318. package/dist/session/run-coordinator.js.map +1 -0
  319. package/dist/session/session-state.d.ts +37 -0
  320. package/dist/session/session-state.d.ts.map +1 -0
  321. package/dist/session/session-state.js +2 -0
  322. package/dist/session/session-state.js.map +1 -0
  323. package/dist/session/session-tree.d.ts +34 -0
  324. package/dist/session/session-tree.d.ts.map +1 -0
  325. package/dist/session/session-tree.js +171 -0
  326. package/dist/session/session-tree.js.map +1 -0
  327. package/dist/session/store.d.ts +45 -0
  328. package/dist/session/store.d.ts.map +1 -0
  329. package/dist/session/store.js +2 -0
  330. package/dist/session/store.js.map +1 -0
  331. package/dist/session/title.d.ts +7 -0
  332. package/dist/session/title.d.ts.map +1 -0
  333. package/dist/session/title.js +22 -0
  334. package/dist/session/title.js.map +1 -0
  335. package/dist/skill/create-skill-tool.d.ts +13 -0
  336. package/dist/skill/create-skill-tool.d.ts.map +1 -0
  337. package/dist/skill/create-skill-tool.js +77 -0
  338. package/dist/skill/create-skill-tool.js.map +1 -0
  339. package/dist/skill/skill-def-registry.d.ts +27 -0
  340. package/dist/skill/skill-def-registry.d.ts.map +1 -0
  341. package/dist/skill/skill-def-registry.js +74 -0
  342. package/dist/skill/skill-def-registry.js.map +1 -0
  343. package/dist/skill/skill-file-loader.d.ts +50 -0
  344. package/dist/skill/skill-file-loader.d.ts.map +1 -0
  345. package/dist/skill/skill-file-loader.js +115 -0
  346. package/dist/skill/skill-file-loader.js.map +1 -0
  347. package/dist/skill/skill-parser.d.ts +7 -0
  348. package/dist/skill/skill-parser.d.ts.map +1 -0
  349. package/dist/skill/skill-parser.js +42 -0
  350. package/dist/skill/skill-parser.js.map +1 -0
  351. package/dist/skill/skill-tool.d.ts +10 -0
  352. package/dist/skill/skill-tool.d.ts.map +1 -0
  353. package/dist/skill/skill-tool.js +100 -0
  354. package/dist/skill/skill-tool.js.map +1 -0
  355. package/dist/system-context/index.d.ts +10 -0
  356. package/dist/system-context/index.d.ts.map +1 -0
  357. package/dist/system-context/index.js +7 -0
  358. package/dist/system-context/index.js.map +1 -0
  359. package/dist/system-context/prompts/anthropic.d.ts +2 -0
  360. package/dist/system-context/prompts/anthropic.d.ts.map +1 -0
  361. package/dist/system-context/prompts/anthropic.js +35 -0
  362. package/dist/system-context/prompts/anthropic.js.map +1 -0
  363. package/dist/system-context/prompts/deepseek.d.ts +2 -0
  364. package/dist/system-context/prompts/deepseek.d.ts.map +1 -0
  365. package/dist/system-context/prompts/deepseek.js +38 -0
  366. package/dist/system-context/prompts/deepseek.js.map +1 -0
  367. package/dist/system-context/prompts/default.d.ts +2 -0
  368. package/dist/system-context/prompts/default.d.ts.map +1 -0
  369. package/dist/system-context/prompts/default.js +43 -0
  370. package/dist/system-context/prompts/default.js.map +1 -0
  371. package/dist/system-context/prompts/gemini.d.ts +2 -0
  372. package/dist/system-context/prompts/gemini.d.ts.map +1 -0
  373. package/dist/system-context/prompts/gemini.js +38 -0
  374. package/dist/system-context/prompts/gemini.js.map +1 -0
  375. package/dist/system-context/prompts/index.d.ts +3 -0
  376. package/dist/system-context/prompts/index.d.ts.map +1 -0
  377. package/dist/system-context/prompts/index.js +24 -0
  378. package/dist/system-context/prompts/index.js.map +1 -0
  379. package/dist/system-context/prompts/openai.d.ts +2 -0
  380. package/dist/system-context/prompts/openai.d.ts.map +1 -0
  381. package/dist/system-context/prompts/openai.js +31 -0
  382. package/dist/system-context/prompts/openai.js.map +1 -0
  383. package/dist/system-context/prompts/system-prompt-source.d.ts +3 -0
  384. package/dist/system-context/prompts/system-prompt-source.d.ts.map +1 -0
  385. package/dist/system-context/prompts/system-prompt-source.js +21 -0
  386. package/dist/system-context/prompts/system-prompt-source.js.map +1 -0
  387. package/dist/system-context/registry.d.ts +3 -0
  388. package/dist/system-context/registry.d.ts.map +1 -0
  389. package/dist/system-context/registry.js +73 -0
  390. package/dist/system-context/registry.js.map +1 -0
  391. package/dist/system-context/sources/agent-source.d.ts +14 -0
  392. package/dist/system-context/sources/agent-source.d.ts.map +1 -0
  393. package/dist/system-context/sources/agent-source.js +50 -0
  394. package/dist/system-context/sources/agent-source.js.map +1 -0
  395. package/dist/system-context/sources/date-source.d.ts +7 -0
  396. package/dist/system-context/sources/date-source.d.ts.map +1 -0
  397. package/dist/system-context/sources/date-source.js +26 -0
  398. package/dist/system-context/sources/date-source.js.map +1 -0
  399. package/dist/system-context/sources/instructions-source.d.ts +8 -0
  400. package/dist/system-context/sources/instructions-source.d.ts.map +1 -0
  401. package/dist/system-context/sources/instructions-source.js +50 -0
  402. package/dist/system-context/sources/instructions-source.js.map +1 -0
  403. package/dist/system-context/sources/skill-guidance-source.d.ts +7 -0
  404. package/dist/system-context/sources/skill-guidance-source.d.ts.map +1 -0
  405. package/dist/system-context/sources/skill-guidance-source.js +41 -0
  406. package/dist/system-context/sources/skill-guidance-source.js.map +1 -0
  407. package/dist/system-context/sources/workspace-source.d.ts +10 -0
  408. package/dist/system-context/sources/workspace-source.d.ts.map +1 -0
  409. package/dist/system-context/sources/workspace-source.js +29 -0
  410. package/dist/system-context/sources/workspace-source.js.map +1 -0
  411. package/dist/system-context/types.d.ts +37 -0
  412. package/dist/system-context/types.d.ts.map +1 -0
  413. package/dist/system-context/types.js +2 -0
  414. package/dist/system-context/types.js.map +1 -0
  415. package/dist/tool/arity.d.ts +22 -0
  416. package/dist/tool/arity.d.ts.map +1 -0
  417. package/dist/tool/arity.js +96 -0
  418. package/dist/tool/arity.js.map +1 -0
  419. package/dist/tool/bridge.d.ts +7 -0
  420. package/dist/tool/bridge.d.ts.map +1 -0
  421. package/dist/tool/bridge.js +48 -0
  422. package/dist/tool/bridge.js.map +1 -0
  423. package/dist/tool/context.d.ts +43 -0
  424. package/dist/tool/context.d.ts.map +1 -0
  425. package/dist/tool/context.js +2 -0
  426. package/dist/tool/context.js.map +1 -0
  427. package/dist/tool/define-tool.d.ts +45 -0
  428. package/dist/tool/define-tool.d.ts.map +1 -0
  429. package/dist/tool/define-tool.js +120 -0
  430. package/dist/tool/define-tool.js.map +1 -0
  431. package/dist/tool/definitions.d.ts +22 -0
  432. package/dist/tool/definitions.d.ts.map +1 -0
  433. package/dist/tool/definitions.js +2 -0
  434. package/dist/tool/definitions.js.map +1 -0
  435. package/dist/tool/description-lint.d.ts +25 -0
  436. package/dist/tool/description-lint.d.ts.map +1 -0
  437. package/dist/tool/description-lint.js +90 -0
  438. package/dist/tool/description-lint.js.map +1 -0
  439. package/dist/tool/diff.d.ts +7 -0
  440. package/dist/tool/diff.d.ts.map +1 -0
  441. package/dist/tool/diff.js +26 -0
  442. package/dist/tool/diff.js.map +1 -0
  443. package/dist/tool/domain.d.ts +39 -0
  444. package/dist/tool/domain.d.ts.map +1 -0
  445. package/dist/tool/domain.js +20 -0
  446. package/dist/tool/domain.js.map +1 -0
  447. package/dist/tool/file-history.d.ts +43 -0
  448. package/dist/tool/file-history.d.ts.map +1 -0
  449. package/dist/tool/file-history.js +55 -0
  450. package/dist/tool/file-history.js.map +1 -0
  451. package/dist/tool/file-tools.d.ts +51 -0
  452. package/dist/tool/file-tools.d.ts.map +1 -0
  453. package/dist/tool/file-tools.js +534 -0
  454. package/dist/tool/file-tools.js.map +1 -0
  455. package/dist/tool/git-tools.d.ts +8 -0
  456. package/dist/tool/git-tools.d.ts.map +1 -0
  457. package/dist/tool/git-tools.js +114 -0
  458. package/dist/tool/git-tools.js.map +1 -0
  459. package/dist/tool/history-hook.d.ts +4 -0
  460. package/dist/tool/history-hook.d.ts.map +1 -0
  461. package/dist/tool/history-hook.js +62 -0
  462. package/dist/tool/history-hook.js.map +1 -0
  463. package/dist/tool/image-tools.d.ts +11 -0
  464. package/dist/tool/image-tools.d.ts.map +1 -0
  465. package/dist/tool/image-tools.js +55 -0
  466. package/dist/tool/image-tools.js.map +1 -0
  467. package/dist/tool/in-memory-tool-registry.d.ts +13 -0
  468. package/dist/tool/in-memory-tool-registry.d.ts.map +1 -0
  469. package/dist/tool/in-memory-tool-registry.js +39 -0
  470. package/dist/tool/in-memory-tool-registry.js.map +1 -0
  471. package/dist/tool/index.d.ts +45 -0
  472. package/dist/tool/index.d.ts.map +1 -0
  473. package/dist/tool/index.js +33 -0
  474. package/dist/tool/index.js.map +1 -0
  475. package/dist/tool/json-schema.d.ts +22 -0
  476. package/dist/tool/json-schema.d.ts.map +1 -0
  477. package/dist/tool/json-schema.js +2 -0
  478. package/dist/tool/json-schema.js.map +1 -0
  479. package/dist/tool/lazy-registry.d.ts +23 -0
  480. package/dist/tool/lazy-registry.d.ts.map +1 -0
  481. package/dist/tool/lazy-registry.js +64 -0
  482. package/dist/tool/lazy-registry.js.map +1 -0
  483. package/dist/tool/policy.d.ts +5 -0
  484. package/dist/tool/policy.d.ts.map +1 -0
  485. package/dist/tool/policy.js +2 -0
  486. package/dist/tool/policy.js.map +1 -0
  487. package/dist/tool/provider-helpers.d.ts +31 -0
  488. package/dist/tool/provider-helpers.d.ts.map +1 -0
  489. package/dist/tool/provider-helpers.js +54 -0
  490. package/dist/tool/provider-helpers.js.map +1 -0
  491. package/dist/tool/provider.d.ts +80 -0
  492. package/dist/tool/provider.d.ts.map +1 -0
  493. package/dist/tool/provider.js +96 -0
  494. package/dist/tool/provider.js.map +1 -0
  495. package/dist/tool/providers/agent-provider.d.ts +26 -0
  496. package/dist/tool/providers/agent-provider.d.ts.map +1 -0
  497. package/dist/tool/providers/agent-provider.js +42 -0
  498. package/dist/tool/providers/agent-provider.js.map +1 -0
  499. package/dist/tool/providers/builtin-provider.d.ts +28 -0
  500. package/dist/tool/providers/builtin-provider.d.ts.map +1 -0
  501. package/dist/tool/providers/builtin-provider.js +67 -0
  502. package/dist/tool/providers/builtin-provider.js.map +1 -0
  503. package/dist/tool/providers/file-loader.d.ts +47 -0
  504. package/dist/tool/providers/file-loader.d.ts.map +1 -0
  505. package/dist/tool/providers/file-loader.js +120 -0
  506. package/dist/tool/providers/file-loader.js.map +1 -0
  507. package/dist/tool/providers/index.d.ts +8 -0
  508. package/dist/tool/providers/index.d.ts.map +1 -0
  509. package/dist/tool/providers/index.js +8 -0
  510. package/dist/tool/providers/index.js.map +1 -0
  511. package/dist/tool/providers/skill-provider.d.ts +23 -0
  512. package/dist/tool/providers/skill-provider.d.ts.map +1 -0
  513. package/dist/tool/providers/skill-provider.js +28 -0
  514. package/dist/tool/providers/skill-provider.js.map +1 -0
  515. package/dist/tool/question-tool.d.ts +15 -0
  516. package/dist/tool/question-tool.d.ts.map +1 -0
  517. package/dist/tool/question-tool.js +51 -0
  518. package/dist/tool/question-tool.js.map +1 -0
  519. package/dist/tool/read-tracker.d.ts +8 -0
  520. package/dist/tool/read-tracker.d.ts.map +1 -0
  521. package/dist/tool/read-tracker.js +33 -0
  522. package/dist/tool/read-tracker.js.map +1 -0
  523. package/dist/tool/registry.d.ts +58 -0
  524. package/dist/tool/registry.d.ts.map +1 -0
  525. package/dist/tool/registry.js +128 -0
  526. package/dist/tool/registry.js.map +1 -0
  527. package/dist/tool/runtime.d.ts +59 -0
  528. package/dist/tool/runtime.d.ts.map +1 -0
  529. package/dist/tool/runtime.js +108 -0
  530. package/dist/tool/runtime.js.map +1 -0
  531. package/dist/tool/sandbox.d.ts +12 -0
  532. package/dist/tool/sandbox.d.ts.map +1 -0
  533. package/dist/tool/sandbox.js +72 -0
  534. package/dist/tool/sandbox.js.map +1 -0
  535. package/dist/tool/search-tools.d.ts +6 -0
  536. package/dist/tool/search-tools.d.ts.map +1 -0
  537. package/dist/tool/search-tools.js +118 -0
  538. package/dist/tool/search-tools.js.map +1 -0
  539. package/dist/tool/shell-tool.d.ts +19 -0
  540. package/dist/tool/shell-tool.d.ts.map +1 -0
  541. package/dist/tool/shell-tool.js +139 -0
  542. package/dist/tool/shell-tool.js.map +1 -0
  543. package/dist/tool/todo-tool.d.ts +2 -0
  544. package/dist/tool/todo-tool.d.ts.map +1 -0
  545. package/dist/tool/todo-tool.js +121 -0
  546. package/dist/tool/todo-tool.js.map +1 -0
  547. package/dist/tool/tool-registry-types.d.ts +14 -0
  548. package/dist/tool/tool-registry-types.d.ts.map +1 -0
  549. package/dist/tool/tool-registry-types.js +2 -0
  550. package/dist/tool/tool-registry-types.js.map +1 -0
  551. package/dist/tool/validate.d.ts +9 -0
  552. package/dist/tool/validate.d.ts.map +1 -0
  553. package/dist/tool/validate.js +26 -0
  554. package/dist/tool/validate.js.map +1 -0
  555. package/dist/tool/web-search-tool.d.ts +24 -0
  556. package/dist/tool/web-search-tool.d.ts.map +1 -0
  557. package/dist/tool/web-search-tool.js +66 -0
  558. package/dist/tool/web-search-tool.js.map +1 -0
  559. package/dist/tool/web-tools.d.ts +10 -0
  560. package/dist/tool/web-tools.d.ts.map +1 -0
  561. package/dist/tool/web-tools.js +61 -0
  562. package/dist/tool/web-tools.js.map +1 -0
  563. package/dist/tracer.d.ts +21 -0
  564. package/dist/tracer.d.ts.map +1 -0
  565. package/dist/tracer.js +62 -0
  566. package/dist/tracer.js.map +1 -0
  567. package/dist/workspace.d.ts +33 -0
  568. package/dist/workspace.d.ts.map +1 -0
  569. package/dist/workspace.js +135 -0
  570. package/dist/workspace.js.map +1 -0
  571. package/dist/yaml-frontmatter.d.ts +5 -0
  572. package/dist/yaml-frontmatter.d.ts.map +1 -0
  573. package/dist/yaml-frontmatter.js +58 -0
  574. package/dist/yaml-frontmatter.js.map +1 -0
  575. package/package.json +108 -0
@@ -0,0 +1,536 @@
1
+ import { wildcardMatch } from "@vinhnt-sdk/schema";
2
+ import { getBehaviourProfile } from "../agent/behaviour-profiles.js";
3
+ import { DEFAULT_MAX_STEPS, DEFAULT_MAX_TOOL_CALLS_PER_STEP, DOOM_LOOP_THRESHOLD } from "./kernel-utils.js";
4
+ import { RunStateMachine } from "./run-state.js";
5
+ import { PermissionGate } from "./permission-gate.js";
6
+ import { ModelCaller } from "./model-caller.js";
7
+ import { StepExecutor } from "./step-executor.js";
8
+ import { ToolSaga } from "./tool-saga.js";
9
+ import { CircuitBreaker } from "./circuit-breaker.js";
10
+ import { KernelError } from "./kernel-error.js";
11
+ import { runLoop as executeRunLoop } from "./run-loop.js";
12
+ import { emitEvent as sessionEmit, addSessionMessage as sessionAddMessage, updateSessionOnComplete as sessionUpdateComplete, emitFail as sessionEmitFail, buildAgentIdentity, } from "./kernel-session.js";
13
+ import { runAgent as runSubAgent, runAgentsParallel as runSubAgentsParallel, createSubAgentAndRegister, } from "./sub-agent-runner.js";
14
+ export { CircuitBreaker, CircuitBreakerOpenError } from "./circuit-breaker.js";
15
+ export { KernelError } from "./kernel-error.js";
16
+ /**
17
+ * Core agent orchestration — run loop, permission gate, tool execution, sub-agent spawning.
18
+ * Composition root for all run-time services. Each call to `run()` creates a tracked
19
+ * run lifecycle with abort support and session integration.
20
+ */
21
+ export class AgentKernel {
22
+ modelCaller;
23
+ permissionGate;
24
+ stateMachine;
25
+ store;
26
+ tools = [];
27
+ domainManifests = new Map();
28
+ maxSteps;
29
+ maxTokens;
30
+ maxToolCallsPerStep;
31
+ compactor;
32
+ systemContext;
33
+ thinkingBudget;
34
+ selfCorrectOnFailure;
35
+ maxSelfCorrectAttempts;
36
+ maxSubAgentDepth;
37
+ sessionStore;
38
+ agentRegistry;
39
+ pluginManager;
40
+ eventBus;
41
+ sessionState;
42
+ toolRegistry;
43
+ toolProviderRegistry;
44
+ sessionTitleGenerator;
45
+ saga;
46
+ stepExecutor;
47
+ currentAgent;
48
+ currentDepth = 0;
49
+ agentChain = new Set();
50
+ cachedTools = null;
51
+ cachedToolsAgentId;
52
+ stepTimeout;
53
+ doomLoopThreshold;
54
+ compactionThreshold;
55
+ termination;
56
+ circuitBreaker;
57
+ sessionDeps;
58
+ subAgentDeps;
59
+ runSessionStates = new Map();
60
+ constructor(config) {
61
+ this.store = config.store;
62
+ this.maxSteps = config.maxSteps ?? DEFAULT_MAX_STEPS;
63
+ this.maxToolCallsPerStep = config.maxToolCallsPerStep ?? DEFAULT_MAX_TOOL_CALLS_PER_STEP;
64
+ this.compactor = config.compactor ?? undefined;
65
+ this.systemContext = config.systemContext;
66
+ this.thinkingBudget = config.thinkingBudget ?? 0;
67
+ this.selfCorrectOnFailure = config.selfCorrectOnFailure ?? false;
68
+ this.maxSelfCorrectAttempts = config.maxSelfCorrectAttempts ?? 3;
69
+ this.maxSubAgentDepth = config.maxSubAgentDepth ?? 3;
70
+ this.sessionStore = config.sessionStore;
71
+ this.agentRegistry = config.agentRegistry;
72
+ this.pluginManager = config.pluginManager;
73
+ this.eventBus = config.eventBus;
74
+ this.sessionState = config.sessionState;
75
+ this.toolRegistry = config.toolRegistry;
76
+ this.toolProviderRegistry = config.toolProviderRegistry;
77
+ this.sessionTitleGenerator = config.sessionTitleGenerator;
78
+ this.stepTimeout = config.stepTimeout ?? 120_000;
79
+ this.doomLoopThreshold = config.doomLoopThreshold ?? DOOM_LOOP_THRESHOLD;
80
+ this.compactionThreshold = config.compactionThreshold;
81
+ this.termination = config.termination;
82
+ this.circuitBreaker = config.circuitBreaker ?? (config.circuitBreakerOptions ? new CircuitBreaker(config.circuitBreakerOptions) : new CircuitBreaker());
83
+ this.saga = new ToolSaga();
84
+ this.stateMachine = new RunStateMachine();
85
+ this.permissionGate = new PermissionGate({
86
+ store: config.store,
87
+ eventBus: config.eventBus,
88
+ pluginManager: config.pluginManager,
89
+ approvalStore: config.approvalStore,
90
+ autoApprovalEnabled: config.autoApprovalEnabled,
91
+ });
92
+ if (config.globalPermissionRules) {
93
+ this.permissionGate.setGlobalRules(config.globalPermissionRules);
94
+ }
95
+ if (config.permissionRiskDefaults) {
96
+ this.permissionGate.setRiskOverrides(config.permissionRiskDefaults);
97
+ }
98
+ if (config.topLevelPermissionRules) {
99
+ this.permissionGate.setTopLevelRules(config.topLevelPermissionRules);
100
+ }
101
+ this.maxTokens = config.maxTokens ?? 4096;
102
+ const maxTokens = this.maxTokens;
103
+ const thinkingPrompt = config.thinkingPrompt ?? "Analyze the user's request and the conversation context. Think step by step about what needs to be done. Output your reasoning.";
104
+ this.modelCaller = new ModelCaller({
105
+ defaultModel: config.model,
106
+ modelRegistry: config.modelRegistry,
107
+ maxTokens,
108
+ thinkingBudget: this.thinkingBudget,
109
+ thinkingPrompt,
110
+ pluginManager: config.pluginManager,
111
+ emitEvent: (event, persist) => this.emitEvent(event, persist),
112
+ modelForRun: (runId) => this.stateMachine.getModelForRun(runId),
113
+ setModelForRun: (runId, model) => this.stateMachine.setModelForRun(runId, model),
114
+ getAvailableTools: () => this.getAvailableTools(),
115
+ });
116
+ const self = this;
117
+ this.stepExecutor = new StepExecutor({
118
+ store: { emitEvent: (event, persist) => this.emitEvent(event, persist) },
119
+ addSessionMessage: (sid, role, content, extra) => this.addSessionMessage(sid, role, content, extra),
120
+ pluginManager: config.pluginManager,
121
+ permissionGate: this.permissionGate,
122
+ modelCaller: this.modelCaller,
123
+ maxToolCallsPerStep: this.maxToolCallsPerStep,
124
+ ...(config.maxConcurrentToolCalls !== undefined ? { maxConcurrentToolCalls: config.maxConcurrentToolCalls } : {}),
125
+ maxSelfCorrectAttempts: this.maxSelfCorrectAttempts,
126
+ selfCorrectOnFailure: this.selfCorrectOnFailure,
127
+ doomLoopThreshold: this.doomLoopThreshold,
128
+ ...(config.externalDirectoryAccess !== undefined ? { externalDirectoryAccess: config.externalDirectoryAccess } : {}),
129
+ ...(config.workspaceRoot !== undefined ? { workspaceRoot: config.workspaceRoot } : {}),
130
+ currentAgent: this.currentAgent,
131
+ saga: this.saga,
132
+ findTool: (name) => self.findTool(name),
133
+ hasTool: (name) => self.hasTool(name),
134
+ });
135
+ if (config.tools) {
136
+ this.tools = [...config.tools];
137
+ }
138
+ this.sessionDeps = {
139
+ store: this.store,
140
+ eventBus: this.eventBus,
141
+ pluginManager: this.pluginManager,
142
+ sessionStore: this.sessionStore,
143
+ modelCaller: this.modelCaller,
144
+ saga: this.saga,
145
+ ...(config.noStore ? { noStore: true } : {}),
146
+ };
147
+ this.subAgentDeps = {
148
+ agentRegistry: this.agentRegistry,
149
+ sessionState: this.sessionState,
150
+ stateMachine: this.stateMachine,
151
+ store: this.store,
152
+ modelCaller: this.modelCaller,
153
+ maxSubAgentDepth: this.maxSubAgentDepth,
154
+ currentAgentRef: { get value() { return self.currentAgent; }, set value(v) { self.currentAgent = v; } },
155
+ currentDepthRef: { get value() { return self.currentDepth; }, set value(v) { self.currentDepth = v; } },
156
+ agentChainRef: { get value() { return self.agentChain; }, set value(v) { self.agentChain = v; } },
157
+ sessionStateRef: {
158
+ get value() { return self["sessionState"]; },
159
+ set value(v) { self["sessionState"] = v; },
160
+ },
161
+ runFn: (prompt, ctx, sessionId, _agentOverride) => this.run(prompt, ctx, sessionId, undefined, _agentOverride),
162
+ };
163
+ }
164
+ /** Register a tool definition for the agent to call. Invalidates tool cache. */
165
+ registerTool(tool) {
166
+ if (this.toolRegistry) {
167
+ this.toolRegistry.register(tool);
168
+ }
169
+ else {
170
+ this.tools.push(tool);
171
+ }
172
+ this.cachedTools = null;
173
+ }
174
+ /** Register a named domain manifest (tool membership) for agent `domains` filtering. */
175
+ registerDomain(manifest) {
176
+ this.domainManifests.set(manifest.id, manifest);
177
+ this.toolRegistry?.registerDomain(manifest);
178
+ this.cachedTools = null;
179
+ }
180
+ /** Resolve the domain a tool belongs to, or undefined if it is a core tool. */
181
+ domainFor(toolId) {
182
+ const viaRegistry = this.toolRegistry?.domainFor(toolId);
183
+ if (viaRegistry)
184
+ return viaRegistry;
185
+ for (const [domainId, manifest] of this.domainManifests) {
186
+ if (manifest.tools.some((t) => t.id === toolId))
187
+ return domainId;
188
+ }
189
+ return undefined;
190
+ }
191
+ /** Resolve the manifest for a domain id, or undefined. */
192
+ manifestFor(domainId) {
193
+ return (this.toolRegistry?.getDomains().find((m) => m.id === domainId) ??
194
+ this.domainManifests.get(domainId));
195
+ }
196
+ emitEvent(event, persist = true) {
197
+ return sessionEmit(this.sessionDeps, event, persist);
198
+ }
199
+ addSessionMessage(sid, role, content, extra) {
200
+ return sessionAddMessage(this.sessionDeps, sid, role, content, extra);
201
+ }
202
+ getAvailableTools() {
203
+ const agentId = this.currentAgent?.id;
204
+ if (this.cachedTools && this.cachedToolsAgentId === agentId) {
205
+ return this.cachedTools;
206
+ }
207
+ const caps = this.currentAgent?.capabilities?.tools;
208
+ // Tool source priority: toolProviderRegistry > toolRegistry > tools[]
209
+ let pool;
210
+ if (this.toolProviderRegistry) {
211
+ pool = this.toolProviderRegistry.getAllTools();
212
+ }
213
+ else {
214
+ pool = this.toolRegistry?.list() ?? this.tools;
215
+ }
216
+ // Domain filter: if the agent declares `domains`, only show domain tools it
217
+ // belongs to plus core tools (tools in no registered domain). Undefined
218
+ // (legacy default) means no filtering — all tools visible. Per-domain
219
+ // permission defaults (e.g. an MCP server set to "deny") remove the tool.
220
+ const domains = this.currentAgent?.domains;
221
+ if (domains !== undefined) {
222
+ pool = pool.filter((t) => {
223
+ const domain = this.domainFor(t.id);
224
+ if (domain === undefined)
225
+ return true; // core tool — always available
226
+ if (!domains.includes(domain))
227
+ return false; // domain not mounted for this agent
228
+ const defaults = this.manifestFor(domain)?.permissionDefaults;
229
+ if (defaults) {
230
+ const denied = defaults.some((r) => r.effect === "deny" && wildcardMatch(r.action, t.id));
231
+ if (denied)
232
+ return false;
233
+ }
234
+ return true;
235
+ });
236
+ }
237
+ if (caps && caps.length > 0) {
238
+ pool = pool.filter((t) => caps.some((c) => wildcardMatch(c, t.id)));
239
+ }
240
+ // Apply behaviour mode profile (if not "build" mode, profile rules restrict tools)
241
+ const behaviourMode = this.currentAgent?.behaviourMode ?? "build";
242
+ if (behaviourMode !== "build") {
243
+ const profile = getBehaviourProfile(behaviourMode);
244
+ pool = pool.filter((t) => {
245
+ for (const rule of profile.rules) {
246
+ if (wildcardMatch(rule.target, t.id)) {
247
+ return rule.effect === "allow";
248
+ }
249
+ }
250
+ return true; // no rule matches — fall through to permission gate
251
+ });
252
+ }
253
+ const result = pool.filter((t) => {
254
+ const perm = this.permissionGate.checkTool(t.id, t.risk, undefined, this.currentAgent);
255
+ return perm.allowed || perm.needsApproval;
256
+ });
257
+ this.cachedTools = result;
258
+ this.cachedToolsAgentId = agentId;
259
+ return result;
260
+ }
261
+ findTool(name) {
262
+ return this.getAvailableTools().find((t) => t.id === name);
263
+ }
264
+ /** Whether a tool is registered in the underlying pool (regardless of per-agent filtering). */
265
+ hasTool(name) {
266
+ if (this.toolProviderRegistry) {
267
+ return this.toolProviderRegistry.hasTool(name);
268
+ }
269
+ const pool = this.toolRegistry?.list() ?? this.tools;
270
+ return pool.some((t) => t.id === name);
271
+ }
272
+ /** Switch to a named agent from the registry. Syncs permissions. */
273
+ async useAgent(agentId) {
274
+ if (!this.agentRegistry)
275
+ throw new Error("No agent registry configured");
276
+ const agent = await this.agentRegistry.get(agentId);
277
+ if (!agent)
278
+ throw new Error(`Agent '${agentId}' not found`);
279
+ this.currentAgent = agent;
280
+ }
281
+ /** Directly set the active agent config (bypasses registry lookup). */
282
+ setCurrentAgent(agent) {
283
+ this.currentAgent = agent;
284
+ this.cachedTools = null;
285
+ }
286
+ /** Create and register a new sub-agent from inline params. */
287
+ async spawnAgent(params) {
288
+ if (!this.agentRegistry)
289
+ throw new Error("No agent registry configured");
290
+ const ref = { value: this.currentAgent };
291
+ return createSubAgentAndRegister({ agentRegistry: this.agentRegistry, currentAgentRef: ref }, params);
292
+ }
293
+ /** Current active agent config (if any). */
294
+ getCurrentAgent() {
295
+ return this.currentAgent;
296
+ }
297
+ /** Switch the current agent's behaviour mode (build/plan/custom). Resets tool cache. */
298
+ setBehaviourMode(mode) {
299
+ if (!this.currentAgent) {
300
+ this.currentAgent = {
301
+ id: "default",
302
+ profile: { name: "default", description: "Default agent" },
303
+ capabilities: { streaming: true, thinking: false },
304
+ behaviourMode: mode,
305
+ };
306
+ }
307
+ else {
308
+ this.currentAgent = { ...this.currentAgent, behaviourMode: mode };
309
+ }
310
+ this.cachedTools = null;
311
+ }
312
+ /** Toggle auto-approval at runtime (all tools approved without prompting). */
313
+ setAutoApproval(enabled) {
314
+ this.permissionGate.setAutoApprovalEnabled(enabled);
315
+ }
316
+ /** Get the current agent's behaviour mode (defaults to "build"). */
317
+ getBehaviourMode() {
318
+ return this.currentAgent?.behaviourMode ?? "build";
319
+ }
320
+ /** Underlying agent registry (for listing/searching agents). */
321
+ getAgentRegistry() {
322
+ return this.agentRegistry;
323
+ }
324
+ /** Underlying run event store (for audit/event sourcing). */
325
+ getEventStore() {
326
+ return this.store;
327
+ }
328
+ /** Delegate a prompt to a named sub-agent. Returns the agent's response text. */
329
+ async runAgent(agentId, prompt, ctx, sessionId) {
330
+ if (!this.agentRegistry)
331
+ throw new Error("No agent registry configured");
332
+ return runSubAgent(this.subAgentDeps, agentId, prompt, ctx, sessionId);
333
+ }
334
+ /**
335
+ * Start a new agent run. Creates a run ID, wires abort + session, and returns
336
+ * a `RunHandle` (runId + completed promise + abort). The run loop executes
337
+ * asynchronously — the promise resolves when the run finishes (or fails).
338
+ */
339
+ run(prompt, ctx, sessionId, userContentParts, agentOverride) {
340
+ const runId = crypto.randomUUID();
341
+ this.stateMachine.runIdStack.push(runId);
342
+ try {
343
+ const parentRunId = this.stateMachine.runIdStack.at(-2);
344
+ const abort = this.stateMachine.createRun(runId, sessionId, parentRunId);
345
+ if (!abort) {
346
+ return {
347
+ runId,
348
+ completed: Promise.reject(new Error(`Session "${sessionId}" is busy — concurrent run rejected`)),
349
+ abort: () => { },
350
+ };
351
+ }
352
+ this.runSessionStates.set(runId, this.sessionState);
353
+ const agent = agentOverride ?? this.currentAgent;
354
+ if (agent) {
355
+ this.modelCaller.resolveAgentModel(agent, runId);
356
+ }
357
+ // Build effective prompt with agent identity and system prompt
358
+ const identity = buildAgentIdentity(agent);
359
+ const systemPrompt = agent?.systemPrompt;
360
+ const parts = [identity, systemPrompt, prompt].filter(Boolean);
361
+ const effectivePrompt = parts.join("\n\n");
362
+ // Per-run saga (no instance-level mutation)
363
+ const runSaga = new ToolSaga();
364
+ const promise = this.runLoop(effectivePrompt, runId, ctx, abort, sessionId, userContentParts, agentOverride, runSaga).finally(() => {
365
+ this.stateMachine.runIdStack.pop();
366
+ this.runSessionStates.delete(runId);
367
+ });
368
+ return {
369
+ runId,
370
+ completed: promise,
371
+ abort: () => { abort.abort(); },
372
+ };
373
+ }
374
+ catch (err) {
375
+ this.stateMachine.runIdStack.pop();
376
+ throw err;
377
+ }
378
+ }
379
+ getRunSession(runId) {
380
+ return this.runSessionStates.get(runId) ?? this.sessionState;
381
+ }
382
+ /** Run multiple sub-agents concurrently. Returns combined output. */
383
+ async runAgentsParallel(tasks, ctx, sessionId) {
384
+ if (!this.agentRegistry)
385
+ throw new Error("No agent registry configured");
386
+ return runSubAgentsParallel(this.subAgentDeps, tasks, ctx, sessionId);
387
+ }
388
+ /** Start a run with error-safe wrapper — returns `{ ok, value }` or `{ ok: false, error }`. */
389
+ runSafe(prompt, ctx, sessionId, userContentParts) {
390
+ try {
391
+ const handle = this.run(prompt, ctx, sessionId, userContentParts);
392
+ const safeCompleted = handle.completed.then((v) => v, (err) => { throw err instanceof KernelError ? err : new KernelError("internal_error", err instanceof Error ? err.message : String(err), err instanceof Error ? err : undefined); });
393
+ return { ok: true, value: { ...handle, completed: safeCompleted } };
394
+ }
395
+ catch (err) {
396
+ return {
397
+ ok: false,
398
+ error: err instanceof KernelError ? err : new KernelError("internal_error", err instanceof Error ? err.message : String(err)),
399
+ };
400
+ }
401
+ }
402
+ /** Get the tool saga for inspecting completed tool calls and triggering rollbacks. */
403
+ getSaga() {
404
+ return this.saga;
405
+ }
406
+ /** Get the circuit breaker for inspecting trip state and threshold. */
407
+ getCircuitBreaker() {
408
+ return this.circuitBreaker;
409
+ }
410
+ /** Get the model caller for testing prompts against providers. */
411
+ getModelCaller() {
412
+ return this.modelCaller;
413
+ }
414
+ /**
415
+ * Hot-reload runtime-tunable settings without rebuilding the kernel.
416
+ * Updates the default model, generation limits, permission rules and
417
+ * risk overrides. New runs pick up the values immediately.
418
+ */
419
+ reconfigure(partial) {
420
+ if (partial.model) {
421
+ this.modelCaller.setDefaultModel(partial.model);
422
+ }
423
+ if (partial.maxTokens !== undefined) {
424
+ this.maxTokens = partial.maxTokens;
425
+ this.modelCaller.setRuntimeOptions({ maxTokens: partial.maxTokens });
426
+ }
427
+ if (partial.maxSteps !== undefined) {
428
+ this.maxSteps = partial.maxSteps;
429
+ }
430
+ if (partial.stepTimeout !== undefined) {
431
+ this.stepTimeout = partial.stepTimeout;
432
+ }
433
+ if (partial.thinkingBudget !== undefined) {
434
+ this.thinkingBudget = partial.thinkingBudget;
435
+ this.modelCaller.setRuntimeOptions({ thinkingBudget: partial.thinkingBudget });
436
+ }
437
+ if (partial.thinkingPrompt !== undefined) {
438
+ this.modelCaller.setRuntimeOptions({ thinkingPrompt: partial.thinkingPrompt });
439
+ }
440
+ if (partial.compactionThreshold !== undefined) {
441
+ this.compactionThreshold = partial.compactionThreshold;
442
+ }
443
+ if (partial.globalPermissionRules) {
444
+ this.permissionGate.setGlobalRules(partial.globalPermissionRules);
445
+ }
446
+ if (partial.permissionRiskDefaults) {
447
+ this.permissionGate.setRiskOverrides(partial.permissionRiskDefaults);
448
+ }
449
+ if (partial.topLevelPermissionRules) {
450
+ this.permissionGate.setTopLevelRules(partial.topLevelPermissionRules);
451
+ }
452
+ this.cachedTools = null;
453
+ }
454
+ /** Get the permission gate for evaluating permission rules. */
455
+ getPermissionGate() {
456
+ return this.permissionGate;
457
+ }
458
+ /** Current state of a run (pending/running/completed/failed/cancelled). */
459
+ getRunState(runId) {
460
+ return this.stateMachine.getState(runId);
461
+ }
462
+ /** Subscribe to run state transitions. Returns unsubscribe function. */
463
+ onRunStateChange(listener) {
464
+ return this.stateMachine.onStateChange(listener);
465
+ }
466
+ /** Send a user input string to a waiting run (e.g., approval response). */
467
+ sendInput(runId, text) {
468
+ this.stateMachine.sendInput(runId, text);
469
+ }
470
+ /** Abort all currently running sessions. */
471
+ cancelCurrentRun() {
472
+ this.stateMachine.cancelAll();
473
+ }
474
+ async runLoop(prompt, runId, ctx, runAbort, sessionId, userContentParts, agentOverride, runSaga) {
475
+ const runModel = this.modelCaller.getActiveModel(runId);
476
+ const runSessionState = this.getRunSession(runId);
477
+ const currentAgent = agentOverride ?? this.currentAgent;
478
+ let judgeModel;
479
+ const evaluatorId = this.termination?.evaluatorAgent;
480
+ if (evaluatorId && this.agentRegistry) {
481
+ const evaluator = await this.agentRegistry.get(evaluatorId);
482
+ if (evaluator)
483
+ judgeModel = this.modelCaller.resolveAgentModel(evaluator);
484
+ }
485
+ const runSagaInstance = runSaga ?? new ToolSaga();
486
+ const prevAgent = this.stepExecutor.getCurrentAgent();
487
+ this.stepExecutor.setCurrentAgent(currentAgent);
488
+ const orchestratorDeps = {
489
+ modelCaller: this.modelCaller,
490
+ permissionGate: this.permissionGate,
491
+ stepExecutor: this.stepExecutor,
492
+ saga: runSagaInstance,
493
+ store: this.store,
494
+ circuitBreaker: this.circuitBreaker,
495
+ stateMachine: this.stateMachine,
496
+ ...(this.pluginManager ? { pluginManager: this.pluginManager } : {}),
497
+ ...(this.systemContext ? { systemContext: this.systemContext } : {}),
498
+ ...(this.compactor ? { compactor: this.compactor } : {}),
499
+ ...(this.sessionStore ? { sessionStore: this.sessionStore } : {}),
500
+ ...(this.sessionTitleGenerator ? { sessionTitleGenerator: this.sessionTitleGenerator } : {}),
501
+ maxSteps: this.maxSteps,
502
+ maxTokens: this.maxTokens,
503
+ thinkingBudget: this.thinkingBudget,
504
+ stepTimeout: this.stepTimeout,
505
+ compactionThreshold: this.compactionThreshold,
506
+ ...(this.termination ? { termination: this.termination } : {}),
507
+ ...(judgeModel ? { judgeModel } : {}),
508
+ ...(currentAgent ? { currentAgent } : {}),
509
+ addSessionMessage: (sid, role, content, extra) => this.addSessionMessage(sid, role, content, extra),
510
+ };
511
+ try {
512
+ await executeRunLoop(orchestratorDeps, {
513
+ prompt, runId, ctx, runAbort,
514
+ ...(sessionId !== undefined ? { sessionId } : {}),
515
+ ...(userContentParts !== undefined ? { userContentParts } : {}),
516
+ runModel,
517
+ ...(runSessionState !== undefined ? { runSessionState } : {}),
518
+ addSessionMessage: (sid, role, content, extra) => this.addSessionMessage(sid, role, content, extra),
519
+ emitEvent: (event, persist) => this.emitEvent(event, persist),
520
+ setState: (rid, state) => this.stateMachine.setState(rid, state),
521
+ updateSessionOnComplete: (sid, rid, totalIn, totalOut, _steps, _status) => this.updateSessionOnComplete(sid, rid, totalIn, totalOut, _steps, _status),
522
+ emitFail: (rid, c, reason, steps, sid, totalIn, totalOut, dur) => this.emitFail(rid, c, reason, steps, sid, totalIn, totalOut, dur),
523
+ });
524
+ }
525
+ finally {
526
+ this.stepExecutor.setCurrentAgent(prevAgent);
527
+ }
528
+ }
529
+ updateSessionOnComplete(sid, rid, totalIn, totalOut, _steps, _status) {
530
+ return sessionUpdateComplete(this.sessionDeps, sid, rid, totalIn, totalOut);
531
+ }
532
+ emitFail(rid, c, reason, steps, sid, totalIn = 0, totalOut = 0, dur) {
533
+ return sessionEmitFail(this.sessionDeps, rid, c, reason, steps, sid, totalIn, totalOut, dur);
534
+ }
535
+ }
536
+ //# sourceMappingURL=kernel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel.js","sourceRoot":"","sources":["../../src/kernel/kernel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ChatMessage } from "../model.js";
2
+ export declare function createMaxStepsGuardMessage(maxSteps: number): ChatMessage;
3
+ //# sourceMappingURL=max-steps-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-steps-prompt.d.ts","sourceRoot":"","sources":["../../src/kernel/max-steps-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAWxE"}
@@ -0,0 +1,13 @@
1
+ export function createMaxStepsGuardMessage(maxSteps) {
2
+ return {
3
+ role: "assistant",
4
+ content: `I see I've reached the maximum of ${maxSteps} steps. Let me provide a comprehensive summary of what has been accomplished and what remains to be done.
5
+
6
+ **Summary of work completed so far:**
7
+ I'll review the conversation and summarize the key outcomes.
8
+
9
+ **Next steps (for the user):**
10
+ I'll outline what the user can do next or what commands to run.`,
11
+ };
12
+ }
13
+ //# sourceMappingURL=max-steps-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-steps-prompt.js","sourceRoot":"","sources":["../../src/kernel/max-steps-prompt.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,qCAAqC,QAAQ;;;;;;gEAMM;KAC7D,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { RunId, RequestContext, KnownRunEvent } from "@vinhnt-sdk/schema";
2
+ import type { ChatMessage, ModelProvider, ModelResponse, ModelRegistry } from "../model.js";
3
+ import type { ToolDefinition } from "../tool/definitions.js";
4
+ import type { PluginManager } from "../plugin.js";
5
+ export interface ModelCallerDeps {
6
+ defaultModel: ModelProvider;
7
+ readonly modelRegistry: ModelRegistry | undefined;
8
+ maxTokens: number;
9
+ thinkingBudget: number;
10
+ thinkingPrompt: string;
11
+ readonly pluginManager: PluginManager | undefined;
12
+ emitEvent(event: Omit<KnownRunEvent, "sequence">, persist?: boolean): Promise<void>;
13
+ modelForRun(runId: RunId): ModelProvider | undefined;
14
+ setModelForRun(runId: RunId, model: ModelProvider): void;
15
+ getAvailableTools(): readonly ToolDefinition[];
16
+ }
17
+ export declare class ModelCaller {
18
+ private readonly deps;
19
+ constructor(deps: ModelCallerDeps);
20
+ /** Swap the default model at runtime (config hot-reload). */
21
+ setDefaultModel(model: ModelProvider): void;
22
+ /** Swap runtime-tunable generation settings at runtime (config hot-reload). */
23
+ setRuntimeOptions(options: Partial<Pick<ModelCallerDeps, "maxTokens" | "thinkingBudget" | "thinkingPrompt">>): void;
24
+ getDefaultModel(): ModelProvider;
25
+ resolveAgentModel(agent: {
26
+ profile: {
27
+ model?: string;
28
+ };
29
+ }, runId?: RunId): ModelProvider;
30
+ getActiveModel(runId: RunId): ModelProvider;
31
+ callModelStream(messages: ChatMessage[], step: number, runId: RunId, ctx: RequestContext, signal: AbortSignal, agentMaxTokens?: number, disableTools?: boolean): Promise<ModelResponse>;
32
+ doThinkingStep(messages: ChatMessage[], step: number, runId: RunId, ctx: RequestContext, signal: AbortSignal): Promise<void>;
33
+ calculateCost(inputTokens: number, outputTokens: number, model?: ModelProvider): number | undefined;
34
+ }
35
+ //# sourceMappingURL=model-caller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-caller.d.ts","sourceRoot":"","sources":["../../src/kernel/model-caller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAgB,aAAa,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,aAAa,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IACzD,iBAAiB,IAAI,SAAS,cAAc,EAAE,CAAC;CAChD;AAkBD,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAElD,6DAA6D;IAC7D,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI3C,+EAA+E;IAC/E,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,GAAG,IAAI;IAMnH,eAAe,IAAI,aAAa;IAIhC,iBAAiB,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,aAAa;IAavF,cAAc,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa;IAIrC,eAAe,CACnB,QAAQ,EAAE,WAAW,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,WAAW,EACnB,cAAc,CAAC,EAAE,MAAM,EACvB,YAAY,CAAC,EAAE,OAAO,GACrB,OAAO,CAAC,aAAa,CAAC;IAmGnB,cAAc,CAClB,QAAQ,EAAE,WAAW,EAAE,EACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC;IA2DhB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;CAOpG"}