@namzu/sdk 0.1.3 → 0.1.4-rc.2

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 (412) hide show
  1. package/CHANGELOG.md +45 -29
  2. package/README.md +14 -2
  3. package/dist/advisory/context.d.ts +23 -0
  4. package/dist/advisory/context.d.ts.map +1 -0
  5. package/dist/advisory/context.js +33 -0
  6. package/dist/advisory/context.js.map +1 -0
  7. package/dist/advisory/evaluator.d.ts +14 -0
  8. package/dist/advisory/evaluator.d.ts.map +1 -0
  9. package/dist/advisory/evaluator.js +87 -0
  10. package/dist/advisory/evaluator.js.map +1 -0
  11. package/dist/advisory/executor.d.ts +40 -0
  12. package/dist/advisory/executor.d.ts.map +1 -0
  13. package/dist/advisory/executor.js +132 -0
  14. package/dist/advisory/executor.js.map +1 -0
  15. package/dist/advisory/index.d.ts +6 -0
  16. package/dist/advisory/index.d.ts.map +1 -0
  17. package/dist/advisory/index.js +5 -0
  18. package/dist/advisory/index.js.map +1 -0
  19. package/dist/advisory/registry.d.ts +14 -0
  20. package/dist/advisory/registry.d.ts.map +1 -0
  21. package/dist/advisory/registry.js +36 -0
  22. package/dist/advisory/registry.js.map +1 -0
  23. package/dist/agents/ReactiveAgent.d.ts.map +1 -1
  24. package/dist/agents/ReactiveAgent.js +1 -0
  25. package/dist/agents/ReactiveAgent.js.map +1 -1
  26. package/dist/agents/SupervisorAgent.d.ts.map +1 -1
  27. package/dist/agents/SupervisorAgent.js +12 -1
  28. package/dist/agents/SupervisorAgent.js.map +1 -1
  29. package/dist/bridge/a2a/mapper.d.ts.map +1 -1
  30. package/dist/bridge/a2a/mapper.js +2 -0
  31. package/dist/bridge/a2a/mapper.js.map +1 -1
  32. package/dist/bridge/sse/mapper.d.ts.map +1 -1
  33. package/dist/bridge/sse/mapper.js +17 -0
  34. package/dist/bridge/sse/mapper.js.map +1 -1
  35. package/dist/bus/breaker.d.ts +18 -0
  36. package/dist/bus/breaker.d.ts.map +1 -0
  37. package/dist/bus/breaker.js +158 -0
  38. package/dist/bus/breaker.js.map +1 -0
  39. package/dist/bus/index.d.ts +33 -0
  40. package/dist/bus/index.d.ts.map +1 -0
  41. package/dist/bus/index.js +72 -0
  42. package/dist/bus/index.js.map +1 -0
  43. package/dist/bus/lock.d.ts +27 -0
  44. package/dist/bus/lock.d.ts.map +1 -0
  45. package/dist/bus/lock.js +194 -0
  46. package/dist/bus/lock.js.map +1 -0
  47. package/dist/bus/ownership.d.ts +18 -0
  48. package/dist/bus/ownership.d.ts.map +1 -0
  49. package/dist/bus/ownership.js +111 -0
  50. package/dist/bus/ownership.js.map +1 -0
  51. package/dist/compaction/extractor.d.ts +7 -0
  52. package/dist/compaction/extractor.d.ts.map +1 -0
  53. package/dist/compaction/extractor.js +131 -0
  54. package/dist/compaction/extractor.js.map +1 -0
  55. package/dist/compaction/index.d.ts +6 -0
  56. package/dist/compaction/index.d.ts.map +1 -0
  57. package/dist/compaction/index.js +5 -0
  58. package/dist/compaction/index.js.map +1 -0
  59. package/dist/compaction/manager.d.ts +22 -0
  60. package/dist/compaction/manager.d.ts.map +1 -0
  61. package/dist/compaction/manager.js +91 -0
  62. package/dist/compaction/manager.js.map +1 -0
  63. package/dist/compaction/serializer.d.ts +3 -0
  64. package/dist/compaction/serializer.d.ts.map +1 -0
  65. package/dist/compaction/serializer.js +67 -0
  66. package/dist/compaction/serializer.js.map +1 -0
  67. package/dist/compaction/types.d.ts +40 -0
  68. package/dist/compaction/types.d.ts.map +1 -0
  69. package/dist/compaction/types.js +2 -0
  70. package/dist/compaction/types.js.map +1 -0
  71. package/dist/compaction/verifier.d.ts +6 -0
  72. package/dist/compaction/verifier.d.ts.map +1 -0
  73. package/dist/compaction/verifier.js +68 -0
  74. package/dist/compaction/verifier.js.map +1 -0
  75. package/dist/config/runtime.d.ts +328 -0
  76. package/dist/config/runtime.d.ts.map +1 -1
  77. package/dist/config/runtime.js +51 -0
  78. package/dist/config/runtime.js.map +1 -1
  79. package/dist/constants/advisory/index.d.ts +8 -0
  80. package/dist/constants/advisory/index.d.ts.map +1 -0
  81. package/dist/constants/advisory/index.js +8 -0
  82. package/dist/constants/advisory/index.js.map +1 -0
  83. package/dist/constants/bus/index.d.ts +7 -0
  84. package/dist/constants/bus/index.d.ts.map +1 -0
  85. package/dist/constants/bus/index.js +7 -0
  86. package/dist/constants/bus/index.js.map +1 -0
  87. package/dist/constants/compaction/index.d.ts +17 -0
  88. package/dist/constants/compaction/index.d.ts.map +1 -0
  89. package/dist/constants/compaction/index.js +17 -0
  90. package/dist/constants/compaction/index.js.map +1 -0
  91. package/dist/constants/emergency.d.ts +4 -0
  92. package/dist/constants/emergency.d.ts.map +1 -0
  93. package/dist/constants/emergency.js +4 -0
  94. package/dist/constants/emergency.js.map +1 -0
  95. package/dist/constants/index.d.ts +6 -0
  96. package/dist/constants/index.d.ts.map +1 -1
  97. package/dist/constants/index.js +6 -0
  98. package/dist/constants/index.js.map +1 -1
  99. package/dist/constants/limits.d.ts +1 -0
  100. package/dist/constants/limits.d.ts.map +1 -1
  101. package/dist/constants/limits.js +1 -0
  102. package/dist/constants/limits.js.map +1 -1
  103. package/dist/constants/plugin/index.d.ts +21 -0
  104. package/dist/constants/plugin/index.d.ts.map +1 -0
  105. package/dist/constants/plugin/index.js +21 -0
  106. package/dist/constants/plugin/index.js.map +1 -0
  107. package/dist/constants/verification/index.d.ts +2 -0
  108. package/dist/constants/verification/index.d.ts.map +1 -0
  109. package/dist/constants/verification/index.js +2 -0
  110. package/dist/constants/verification/index.js.map +1 -0
  111. package/dist/contracts/api.d.ts +1 -1
  112. package/dist/contracts/api.d.ts.map +1 -1
  113. package/dist/contracts/schemas.d.ts +20 -20
  114. package/dist/index.d.ts +24 -2
  115. package/dist/index.d.ts.map +1 -1
  116. package/dist/index.js +17 -1
  117. package/dist/index.js.map +1 -1
  118. package/dist/manager/run/emergency.d.ts +19 -0
  119. package/dist/manager/run/emergency.d.ts.map +1 -0
  120. package/dist/manager/run/emergency.js +88 -0
  121. package/dist/manager/run/emergency.js.map +1 -0
  122. package/dist/manager/run/persistence.d.ts +2 -0
  123. package/dist/manager/run/persistence.d.ts.map +1 -1
  124. package/dist/manager/run/persistence.js +14 -0
  125. package/dist/manager/run/persistence.js.map +1 -1
  126. package/dist/persona/assembler.d.ts +2 -1
  127. package/dist/persona/assembler.d.ts.map +1 -1
  128. package/dist/persona/assembler.js +23 -0
  129. package/dist/persona/assembler.js.map +1 -1
  130. package/dist/plugin/index.d.ts +4 -0
  131. package/dist/plugin/index.d.ts.map +1 -0
  132. package/dist/plugin/index.js +4 -0
  133. package/dist/plugin/index.js.map +1 -0
  134. package/dist/plugin/lifecycle.d.ts +30 -0
  135. package/dist/plugin/lifecycle.d.ts.map +1 -0
  136. package/dist/plugin/lifecycle.js +227 -0
  137. package/dist/plugin/lifecycle.js.map +1 -0
  138. package/dist/plugin/loader.d.ts +25 -0
  139. package/dist/plugin/loader.d.ts.map +1 -0
  140. package/dist/plugin/loader.js +76 -0
  141. package/dist/plugin/loader.js.map +1 -0
  142. package/dist/plugin/resolver.d.ts +36 -0
  143. package/dist/plugin/resolver.d.ts.map +1 -0
  144. package/dist/plugin/resolver.js +80 -0
  145. package/dist/plugin/resolver.js.map +1 -0
  146. package/dist/registry/plugin/index.d.ts +9 -0
  147. package/dist/registry/plugin/index.d.ts.map +1 -0
  148. package/dist/registry/plugin/index.js +16 -0
  149. package/dist/registry/plugin/index.js.map +1 -0
  150. package/dist/registry/tool/execute.d.ts +3 -0
  151. package/dist/registry/tool/execute.d.ts.map +1 -1
  152. package/dist/registry/tool/execute.js +45 -11
  153. package/dist/registry/tool/execute.js.map +1 -1
  154. package/dist/router/index.d.ts +2 -0
  155. package/dist/router/index.d.ts.map +1 -0
  156. package/dist/router/index.js +2 -0
  157. package/dist/router/index.js.map +1 -0
  158. package/dist/router/task-router.d.ts +8 -0
  159. package/dist/router/task-router.d.ts.map +1 -0
  160. package/dist/router/task-router.js +19 -0
  161. package/dist/router/task-router.js.map +1 -0
  162. package/dist/run/reporter.d.ts.map +1 -1
  163. package/dist/run/reporter.js +15 -0
  164. package/dist/run/reporter.js.map +1 -1
  165. package/dist/runtime/query/context-cache.d.ts +6 -0
  166. package/dist/runtime/query/context-cache.d.ts.map +1 -1
  167. package/dist/runtime/query/context-cache.js +36 -0
  168. package/dist/runtime/query/context-cache.js.map +1 -1
  169. package/dist/runtime/query/executor.d.ts +4 -0
  170. package/dist/runtime/query/executor.d.ts.map +1 -1
  171. package/dist/runtime/query/executor.js +30 -1
  172. package/dist/runtime/query/executor.js.map +1 -1
  173. package/dist/runtime/query/index.d.ts +10 -0
  174. package/dist/runtime/query/index.d.ts.map +1 -1
  175. package/dist/runtime/query/index.js +77 -12
  176. package/dist/runtime/query/index.js.map +1 -1
  177. package/dist/runtime/query/iteration/index.d.ts +9 -0
  178. package/dist/runtime/query/iteration/index.d.ts.map +1 -1
  179. package/dist/runtime/query/iteration/index.js +40 -0
  180. package/dist/runtime/query/iteration/index.js.map +1 -1
  181. package/dist/runtime/query/iteration/phases/advisory.d.ts +4 -0
  182. package/dist/runtime/query/iteration/phases/advisory.d.ts.map +1 -0
  183. package/dist/runtime/query/iteration/phases/advisory.js +150 -0
  184. package/dist/runtime/query/iteration/phases/advisory.js.map +1 -0
  185. package/dist/runtime/query/iteration/phases/compaction.d.ts +3 -0
  186. package/dist/runtime/query/iteration/phases/compaction.d.ts.map +1 -0
  187. package/dist/runtime/query/iteration/phases/compaction.js +87 -0
  188. package/dist/runtime/query/iteration/phases/compaction.js.map +1 -0
  189. package/dist/runtime/query/iteration/phases/context.d.ts +10 -0
  190. package/dist/runtime/query/iteration/phases/context.d.ts.map +1 -1
  191. package/dist/runtime/query/iteration/phases/context.js.map +1 -1
  192. package/dist/runtime/query/iteration/phases/index.d.ts +2 -0
  193. package/dist/runtime/query/iteration/phases/index.d.ts.map +1 -1
  194. package/dist/runtime/query/iteration/phases/index.js +2 -0
  195. package/dist/runtime/query/iteration/phases/index.js.map +1 -1
  196. package/dist/runtime/query/iteration/phases/tool-review.d.ts +6 -1
  197. package/dist/runtime/query/iteration/phases/tool-review.d.ts.map +1 -1
  198. package/dist/runtime/query/iteration/phases/tool-review.js +39 -0
  199. package/dist/runtime/query/iteration/phases/tool-review.js.map +1 -1
  200. package/dist/runtime/query/prompt.d.ts +7 -0
  201. package/dist/runtime/query/prompt.d.ts.map +1 -1
  202. package/dist/runtime/query/prompt.js +44 -0
  203. package/dist/runtime/query/prompt.js.map +1 -1
  204. package/dist/store/memory/disk.d.ts +30 -0
  205. package/dist/store/memory/disk.d.ts.map +1 -0
  206. package/dist/store/memory/disk.js +154 -0
  207. package/dist/store/memory/disk.js.map +1 -0
  208. package/dist/store/memory/index.d.ts +13 -0
  209. package/dist/store/memory/index.d.ts.map +1 -0
  210. package/dist/store/memory/index.js +46 -0
  211. package/dist/store/memory/index.js.map +1 -0
  212. package/dist/store/memory/memory.d.ts +17 -0
  213. package/dist/store/memory/memory.d.ts.map +1 -0
  214. package/dist/store/memory/memory.js +72 -0
  215. package/dist/store/memory/memory.js.map +1 -0
  216. package/dist/tools/advisory/index.d.ts +7 -0
  217. package/dist/tools/advisory/index.d.ts.map +1 -0
  218. package/dist/tools/advisory/index.js +125 -0
  219. package/dist/tools/advisory/index.js.map +1 -0
  220. package/dist/tools/defineTool.d.ts +1 -0
  221. package/dist/tools/defineTool.d.ts.map +1 -1
  222. package/dist/tools/defineTool.js +1 -0
  223. package/dist/tools/defineTool.js.map +1 -1
  224. package/dist/tools/memory/index.d.ts +7 -0
  225. package/dist/tools/memory/index.d.ts.map +1 -0
  226. package/dist/tools/memory/index.js +10 -0
  227. package/dist/tools/memory/index.js.map +1 -0
  228. package/dist/tools/memory/read.d.ts +4 -0
  229. package/dist/tools/memory/read.d.ts.map +1 -0
  230. package/dist/tools/memory/read.js +37 -0
  231. package/dist/tools/memory/read.js.map +1 -0
  232. package/dist/tools/memory/save.d.ts +4 -0
  233. package/dist/tools/memory/save.d.ts.map +1 -0
  234. package/dist/tools/memory/save.js +37 -0
  235. package/dist/tools/memory/save.js.map +1 -0
  236. package/dist/tools/memory/search.d.ts +4 -0
  237. package/dist/tools/memory/search.d.ts.map +1 -0
  238. package/dist/tools/memory/search.js +41 -0
  239. package/dist/tools/memory/search.js.map +1 -0
  240. package/dist/types/advisory/config.d.ts +33 -0
  241. package/dist/types/advisory/config.d.ts.map +1 -0
  242. package/dist/types/advisory/config.js +2 -0
  243. package/dist/types/advisory/config.js.map +1 -0
  244. package/dist/types/advisory/index.d.ts +4 -0
  245. package/dist/types/advisory/index.d.ts.map +1 -0
  246. package/dist/types/advisory/index.js +2 -0
  247. package/dist/types/advisory/index.js.map +1 -0
  248. package/dist/types/advisory/result.d.ts +35 -0
  249. package/dist/types/advisory/result.d.ts.map +1 -0
  250. package/dist/types/advisory/result.js +2 -0
  251. package/dist/types/advisory/result.js.map +1 -0
  252. package/dist/types/advisory/trigger.d.ts +44 -0
  253. package/dist/types/advisory/trigger.d.ts.map +1 -0
  254. package/dist/types/advisory/trigger.js +2 -0
  255. package/dist/types/advisory/trigger.js.map +1 -0
  256. package/dist/types/agent/factory.d.ts +2 -0
  257. package/dist/types/agent/factory.d.ts.map +1 -1
  258. package/dist/types/agent/reactive.d.ts +2 -0
  259. package/dist/types/agent/reactive.d.ts.map +1 -1
  260. package/dist/types/agent/supervisor.d.ts +4 -0
  261. package/dist/types/agent/supervisor.d.ts.map +1 -1
  262. package/dist/types/bus/index.d.ts +96 -0
  263. package/dist/types/bus/index.d.ts.map +1 -0
  264. package/dist/types/bus/index.js +2 -0
  265. package/dist/types/bus/index.js.map +1 -0
  266. package/dist/types/ids/index.d.ts +6 -0
  267. package/dist/types/ids/index.d.ts.map +1 -1
  268. package/dist/types/memory/index.d.ts +54 -0
  269. package/dist/types/memory/index.d.ts.map +1 -0
  270. package/dist/types/memory/index.js +12 -0
  271. package/dist/types/memory/index.js.map +1 -0
  272. package/dist/types/message/index.d.ts +3 -1
  273. package/dist/types/message/index.d.ts.map +1 -1
  274. package/dist/types/message/index.js +7 -2
  275. package/dist/types/message/index.js.map +1 -1
  276. package/dist/types/persona/index.d.ts +9 -0
  277. package/dist/types/persona/index.d.ts.map +1 -1
  278. package/dist/types/plugin/index.d.ts +186 -0
  279. package/dist/types/plugin/index.d.ts.map +1 -0
  280. package/dist/types/plugin/index.js +90 -0
  281. package/dist/types/plugin/index.js.map +1 -0
  282. package/dist/types/router/index.d.ts +2 -0
  283. package/dist/types/router/index.d.ts.map +1 -0
  284. package/dist/types/router/index.js +2 -0
  285. package/dist/types/router/index.js.map +1 -0
  286. package/dist/types/router/task-router.d.ts +12 -0
  287. package/dist/types/router/task-router.d.ts.map +1 -0
  288. package/dist/types/router/task-router.js +2 -0
  289. package/dist/types/router/task-router.js.map +1 -0
  290. package/dist/types/run/emergency.d.ts +27 -0
  291. package/dist/types/run/emergency.d.ts.map +1 -0
  292. package/dist/types/run/emergency.js +6 -0
  293. package/dist/types/run/emergency.js.map +1 -0
  294. package/dist/types/run/events.d.ts +13 -1
  295. package/dist/types/run/events.d.ts.map +1 -1
  296. package/dist/types/run/index.d.ts +1 -0
  297. package/dist/types/run/index.d.ts.map +1 -1
  298. package/dist/types/run/index.js +1 -0
  299. package/dist/types/run/index.js.map +1 -1
  300. package/dist/types/tool/index.d.ts +13 -0
  301. package/dist/types/tool/index.d.ts.map +1 -1
  302. package/dist/types/verification/index.d.ts +219 -0
  303. package/dist/types/verification/index.d.ts.map +1 -0
  304. package/dist/types/verification/index.js +43 -0
  305. package/dist/types/verification/index.js.map +1 -0
  306. package/dist/utils/id.d.ts +7 -1
  307. package/dist/utils/id.d.ts.map +1 -1
  308. package/dist/utils/id.js +18 -0
  309. package/dist/utils/id.js.map +1 -1
  310. package/dist/utils/shell-compress.d.ts +13 -0
  311. package/dist/utils/shell-compress.d.ts.map +1 -0
  312. package/dist/utils/shell-compress.js +97 -0
  313. package/dist/utils/shell-compress.js.map +1 -0
  314. package/dist/verification/gate.d.ts +19 -0
  315. package/dist/verification/gate.d.ts.map +1 -0
  316. package/dist/verification/gate.js +103 -0
  317. package/dist/verification/gate.js.map +1 -0
  318. package/dist/verification/index.d.ts +3 -0
  319. package/dist/verification/index.d.ts.map +1 -0
  320. package/dist/verification/index.js +3 -0
  321. package/dist/verification/index.js.map +1 -0
  322. package/dist/verification/rules.d.ts +4 -0
  323. package/dist/verification/rules.d.ts.map +1 -0
  324. package/dist/verification/rules.js +61 -0
  325. package/dist/verification/rules.js.map +1 -0
  326. package/package.json +5 -1
  327. package/src/advisory/context.ts +47 -0
  328. package/src/advisory/evaluator.ts +98 -0
  329. package/src/advisory/executor.ts +187 -0
  330. package/src/advisory/index.ts +5 -0
  331. package/src/advisory/registry.ts +42 -0
  332. package/src/agents/ReactiveAgent.ts +1 -0
  333. package/src/agents/SupervisorAgent.ts +13 -1
  334. package/src/bridge/a2a/mapper.ts +3 -0
  335. package/src/bridge/sse/mapper.ts +19 -0
  336. package/src/bus/breaker.ts +192 -0
  337. package/src/bus/index.ts +120 -0
  338. package/src/bus/lock.ts +233 -0
  339. package/src/bus/ownership.ts +133 -0
  340. package/src/compaction/extractor.ts +149 -0
  341. package/src/compaction/index.ts +21 -0
  342. package/src/compaction/manager.ts +107 -0
  343. package/src/compaction/serializer.ts +88 -0
  344. package/src/compaction/types.ts +37 -0
  345. package/src/compaction/verifier.ts +91 -0
  346. package/src/config/runtime.ts +64 -0
  347. package/src/constants/advisory/index.ts +7 -0
  348. package/src/constants/bus/index.ts +6 -0
  349. package/src/constants/compaction/index.ts +20 -0
  350. package/src/constants/emergency.ts +3 -0
  351. package/src/constants/index.ts +6 -0
  352. package/src/constants/limits.ts +2 -0
  353. package/src/constants/plugin/index.ts +25 -0
  354. package/src/constants/verification/index.ts +1 -0
  355. package/src/contracts/api.ts +2 -0
  356. package/src/index.ts +69 -2
  357. package/src/manager/run/emergency.ts +117 -0
  358. package/src/manager/run/persistence.ts +16 -0
  359. package/src/persona/assembler.ts +36 -1
  360. package/src/plugin/index.ts +3 -0
  361. package/src/plugin/lifecycle.ts +308 -0
  362. package/src/plugin/loader.ts +91 -0
  363. package/src/plugin/resolver.ts +95 -0
  364. package/src/registry/plugin/index.ts +20 -0
  365. package/src/registry/tool/execute.ts +51 -11
  366. package/src/router/index.ts +1 -0
  367. package/src/router/task-router.ts +24 -0
  368. package/src/run/reporter.ts +17 -0
  369. package/src/runtime/query/context-cache.ts +50 -0
  370. package/src/runtime/query/executor.ts +37 -1
  371. package/src/runtime/query/index.ts +125 -12
  372. package/src/runtime/query/iteration/index.ts +60 -0
  373. package/src/runtime/query/iteration/phases/advisory.ts +185 -0
  374. package/src/runtime/query/iteration/phases/compaction.ts +98 -0
  375. package/src/runtime/query/iteration/phases/context.ts +16 -0
  376. package/src/runtime/query/iteration/phases/index.ts +2 -0
  377. package/src/runtime/query/iteration/phases/tool-review.ts +52 -1
  378. package/src/runtime/query/prompt.ts +64 -0
  379. package/src/store/memory/disk.ts +205 -0
  380. package/src/store/memory/index.ts +68 -0
  381. package/src/store/memory/memory.ts +103 -0
  382. package/src/tools/advisory/index.ts +157 -0
  383. package/src/tools/defineTool.ts +2 -0
  384. package/src/tools/memory/index.ts +13 -0
  385. package/src/tools/memory/read.ts +42 -0
  386. package/src/tools/memory/save.ts +40 -0
  387. package/src/tools/memory/search.ts +52 -0
  388. package/src/types/advisory/config.ts +35 -0
  389. package/src/types/advisory/index.ts +18 -0
  390. package/src/types/advisory/result.ts +34 -0
  391. package/src/types/advisory/trigger.ts +39 -0
  392. package/src/types/agent/factory.ts +3 -0
  393. package/src/types/agent/reactive.ts +3 -0
  394. package/src/types/agent/supervisor.ts +6 -0
  395. package/src/types/bus/index.ts +53 -0
  396. package/src/types/ids/index.ts +6 -0
  397. package/src/types/memory/index.ts +69 -0
  398. package/src/types/message/index.ts +10 -2
  399. package/src/types/persona/index.ts +11 -0
  400. package/src/types/plugin/index.ts +231 -0
  401. package/src/types/router/index.ts +1 -0
  402. package/src/types/router/task-router.ts +20 -0
  403. package/src/types/run/emergency.ts +23 -0
  404. package/src/types/run/events.ts +15 -1
  405. package/src/types/run/index.ts +1 -0
  406. package/src/types/tool/index.ts +15 -0
  407. package/src/types/verification/index.ts +69 -0
  408. package/src/utils/id.ts +28 -0
  409. package/src/utils/shell-compress.ts +137 -0
  410. package/src/verification/gate.ts +136 -0
  411. package/src/verification/index.ts +2 -0
  412. package/src/verification/rules.ts +78 -0
package/CHANGELOG.md CHANGED
@@ -1,31 +1,47 @@
1
1
  # Changelog
2
2
 
3
- All notable changes to this project will be documented in this file.
4
-
5
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
-
8
- ## [0.1.0] - 2026-04-09
9
-
10
- ### Added
11
-
12
- - Reactive, Pipeline, Router, and Supervisor agent patterns
13
- - Tool system with `defineTool()`, progressive disclosure, and built-in tools (bash, read-file, write-file, glob, search-tools)
14
- - OpenRouter and AWS Bedrock provider implementations
15
- - Full RAG pipeline: chunking (fixed, sentence, paragraph, recursive), embedding, in-memory vector store, retrieval, knowledge base
16
- - Connector framework: HTTP, webhook, and MCP (stdio + HTTP-SSE transports)
17
- - MCP client and server with bidirectional tool bridging
18
- - A2A protocol support: agent cards, message conversion, event mapping
19
- - SSE streaming with 28 event types
20
- - Persona system with inheritance and layer-based prompt assembly
21
- - Skills system with progressive disclosure and inheritance chains
22
- - Human-in-the-loop: plan review, tool approval, checkpoint/resume
23
- - Thread/Run separation for clean conversation history
24
- - Multi-tenant isolation: scoped registries, tenant connector manager
25
- - In-memory and disk-backed stores for runs, tasks, conversations, activities
26
- - OpenTelemetry integration for tracing and metrics
27
- - Credential vault abstraction
28
- - Branded ID system for type-safe resource identifiers
29
- - Zod-based configuration schemas
30
-
31
- [0.1.0]: https://github.com/Cogitave/namzu/releases/tag/v0.1.0
3
+ All notable changes to Namzu are documented here.
4
+
5
+ ## [Unreleased]
6
+
7
+ ### Bug Fixes
8
+
9
+ - **release**: use tag name as release title instead of prefixed name
10
+ ### Features
11
+
12
+ - P2 AgentBus, prompt cache split, verification gate
13
+ - integrate compaction loop and advisory phase into iteration pipeline
14
+ ## [0.1.4-rc.1] 2026-04-10
15
+
16
+ ### Bug Fixes
17
+
18
+ - add description field to package.json, reorder README badges
19
+ ### Features
20
+
21
+ - **advisory**: provider-agnostic advisory system with three-layer architecture
22
+ - structured compaction, tool tiering, task router
23
+ - output discipline, shell compression, pre-release workflow
24
+ ### Miscellaneous
25
+
26
+ - remove BEFORE-RELEASE.md from repo
27
+ ## [0.1.3] 2026-04-10
28
+
29
+ ### Bug Fixes
30
+
31
+ - point entry fields to dist/ for bundler compatibility
32
+ ### Documentation
33
+
34
+ - add npm, ci, license, typescript, node badges to README
35
+ ## [0.1.2] — 2026-04-10
36
+
37
+ ### Other
38
+
39
+ - Namzu v0.1.1 — Wisdom, shared
40
+
41
+ Open-source AI agent framework by cogitave.
42
+
43
+ Let's build the agent layer together.
44
+ ### Refactor
45
+
46
+ - constants centralization, strict lint, release automation
47
+
package/README.md CHANGED
@@ -1,13 +1,13 @@
1
1
  # Namzu
2
2
 
3
+ Open-source AI agent framework — multi-model, multi-tenant, MCP + A2A native.
4
+
3
5
  [![npm](https://img.shields.io/npm/v/@namzu/sdk?color=blue)](https://www.npmjs.com/package/@namzu/sdk)
4
6
  [![CI](https://github.com/cogitave/namzu/actions/workflows/ci.yml/badge.svg)](https://github.com/cogitave/namzu/actions/workflows/ci.yml)
5
7
  [![License](https://img.shields.io/badge/license-FSL--1.1--MIT-green)](./LICENSE.md)
6
8
  [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue)](https://www.typescriptlang.org/)
7
9
  [![Node](https://img.shields.io/badge/node-%3E%3D22-brightgreen)](https://nodejs.org/)
8
10
 
9
- TypeScript SDK for building AI agents with tool use, multi-model support, orchestration patterns, RAG, MCP integration, and A2A protocol compatibility.
10
-
11
11
  > **Our goal is to build an open, community-driven agent framework that reduces systemic dependencies on proprietary platforms — so that everyone can build, own, and run AI agents freely.** Namzu is designed to work with any LLM provider through a bring-your-own-key model, and every version becomes fully open source (MIT) after two years. If this vision resonates with you, we'd love your help — whether it's a bug report, a feature idea, a pull request, or just spreading the word. Every contribution matters.
12
12
 
13
13
  ## Why Namzu?
@@ -28,6 +28,14 @@ There are great agent frameworks out there — LangChain, CrewAI, AutoGen, Verce
28
28
 
29
29
  **Progressive tool disclosure.** Agents don't see all tools at once. Tools start as deferred (searchable but not active), get activated on demand, and can be suspended. This keeps the LLM's context focused and reduces hallucinated tool calls.
30
30
 
31
+ **Advisory System.** A three-layer advisory architecture where agents can consult specialized advisors mid-execution. Unlike Anthropic's Advisor Tool (Claude-only, single advisor), Namzu's system is provider-agnostic (any model advises any model via BYOK), supports multi-advisor with domain routing, configurable triggers, and agent-autonomous consultation. Define a security advisor on Bedrock, an architecture advisor on OpenRouter, and let the agent decide when to consult whom.
32
+
33
+ **Structured compaction.** When context reaches capacity, Namzu doesn't just truncate — it incrementally extracts structured data (task, plan, files, decisions, failures) into a typed WorkingState, serializes it as compact markdown, and replaces old messages. The agent continues with full context awareness at a fraction of the token cost.
34
+
35
+ **Tool tiering.** Configurable tier system that teaches the LLM to prefer cheaper tools first. Unlike hardcoded approaches, Namzu's tiers are fully user-defined — bring your own tier labels, priorities, and guidance templates.
36
+
37
+ **Task routing.** Route sub-tasks to different models based on task type. Compaction and summarization go to cheap models, coding stays on expensive ones. Provider-agnostic, configurable per task type, with automatic fallback chains.
38
+
31
39
  | | Namzu | LangChain/LangGraph | CrewAI | OpenAI Agents SDK | Vercel AI SDK |
32
40
  |---|---|---|---|---|---|
33
41
  | Language | TypeScript | Python/JS | Python | Python/JS | TypeScript |
@@ -40,6 +48,10 @@ There are great agent frameworks out there — LangChain, CrewAI, AutoGen, Verce
40
48
  | Plan review (HITL) | Structured | Graph interrupts | No | Basic | Tool approval |
41
49
  | Persona inheritance | Yes | No | Role strings | Instructions | System prompt |
42
50
  | Progressive tool loading | Yes | No | No | No | No |
51
+ | Advisory system | Multi-advisor, provider-agnostic | No | No | No | No |
52
+ | Context compaction | Structured WorkingState | No | No | No | No |
53
+ | Tool tiering | Configurable, user-defined | No | No | No | No |
54
+ | Task routing | Per-task model selection | No | No | No | No |
43
55
  | RAG built-in | Full pipeline | Via integrations | Via integrations | Via tools | No |
44
56
  | Telemetry | OpenTelemetry | LangSmith | CrewAI+ | Built-in tracing | No |
45
57
 
@@ -0,0 +1,23 @@
1
+ import type { AdvisoryBudget, AdvisoryCallRecord } from '../types/advisory/index.js';
2
+ import type { TriggerEvaluator } from './evaluator.js';
3
+ import type { AdvisoryExecutor } from './executor.js';
4
+ import type { AdvisorRegistry } from './registry.js';
5
+ export declare class AdvisoryContext {
6
+ readonly registry: AdvisorRegistry;
7
+ readonly executor: AdvisoryExecutor;
8
+ readonly evaluator: TriggerEvaluator;
9
+ readonly callHistory: AdvisoryCallRecord[];
10
+ private readonly budget;
11
+ constructor(registry: AdvisorRegistry, executor: AdvisoryExecutor, evaluator: TriggerEvaluator, budget?: AdvisoryBudget);
12
+ recordCall(record: AdvisoryCallRecord): void;
13
+ getBudgetStatus(): {
14
+ remaining: number | undefined;
15
+ total: number | undefined;
16
+ used: number;
17
+ };
18
+ checkBudget(): {
19
+ allowed: boolean;
20
+ reason?: string;
21
+ };
22
+ }
23
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/advisory/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAEpD,qBAAa,eAAe;IAC3B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAA;IACnC,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAA;IACpC,QAAQ,CAAC,WAAW,EAAE,kBAAkB,EAAE,CAAK;IAE/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;gBAGlD,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,CAAC,EAAE,cAAc;IAQxB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI5C,eAAe,IAAI;QAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAO7F,WAAW,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;CAUpD"}
@@ -0,0 +1,33 @@
1
+ export class AdvisoryContext {
2
+ registry;
3
+ executor;
4
+ evaluator;
5
+ callHistory = [];
6
+ budget;
7
+ constructor(registry, executor, evaluator, budget) {
8
+ this.registry = registry;
9
+ this.executor = executor;
10
+ this.evaluator = evaluator;
11
+ this.budget = budget;
12
+ }
13
+ recordCall(record) {
14
+ this.callHistory.push(record);
15
+ }
16
+ getBudgetStatus() {
17
+ const used = this.callHistory.length;
18
+ const total = this.budget?.maxCallsPerRun;
19
+ const remaining = total !== undefined ? total - used : undefined;
20
+ return { remaining, total, used };
21
+ }
22
+ checkBudget() {
23
+ const { remaining, total } = this.getBudgetStatus();
24
+ if (remaining !== undefined && remaining <= 0) {
25
+ return {
26
+ allowed: false,
27
+ reason: `Advisory budget exhausted: ${total} calls used of ${total} allowed per run`,
28
+ };
29
+ }
30
+ return { allowed: true };
31
+ }
32
+ }
33
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/advisory/context.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,eAAe;IAClB,QAAQ,CAAiB;IACzB,QAAQ,CAAkB;IAC1B,SAAS,CAAkB;IAC3B,WAAW,GAAyB,EAAE,CAAA;IAE9B,MAAM,CAA4B;IAEnD,YACC,QAAyB,EACzB,QAA0B,EAC1B,SAA2B,EAC3B,MAAuB;QAEvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACrB,CAAC;IAED,UAAU,CAAC,MAA0B;QACpC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,eAAe;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAA;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAA;QACzC,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAChE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IAClC,CAAC;IAED,WAAW;QACV,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QACnD,IAAI,SAAS,KAAK,SAAS,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YAC/C,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,8BAA8B,KAAK,kBAAkB,KAAK,kBAAkB;aACpF,CAAA;QACF,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACzB,CAAC;CACD"}
@@ -0,0 +1,14 @@
1
+ import type { AdvisoryBudget, AdvisoryTrigger, TriggerEvaluationState } from '../types/advisory/index.js';
2
+ export declare class TriggerEvaluator {
3
+ private readonly triggers;
4
+ private readonly budget;
5
+ private readonly lastFiredMap;
6
+ private callCount;
7
+ constructor(triggers: AdvisoryTrigger[], budget?: AdvisoryBudget);
8
+ evaluate(state: TriggerEvaluationState): AdvisoryTrigger[];
9
+ recordFiring(triggerId: string, iteration: number): void;
10
+ private isBudgetExhausted;
11
+ private isCooldownSatisfied;
12
+ private matchesCondition;
13
+ }
14
+ //# sourceMappingURL=evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/advisory/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,cAAc,EACd,eAAe,EAEf,sBAAsB,EACtB,MAAM,4BAA4B,CAAA;AAMnC,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,SAAS,CAAI;gBAET,QAAQ,EAAE,eAAe,EAAE,EAAE,MAAM,CAAC,EAAE,cAAc;IAOhE,QAAQ,CAAC,KAAK,EAAE,sBAAsB,GAAG,eAAe,EAAE;IAiB1D,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAKxD,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,gBAAgB;CAiCxB"}
@@ -0,0 +1,87 @@
1
+ function assertNever(value) {
2
+ throw new Error(`Unhandled trigger condition type: ${value.type}`);
3
+ }
4
+ export class TriggerEvaluator {
5
+ triggers;
6
+ budget;
7
+ lastFiredMap = new Map();
8
+ callCount = 0;
9
+ constructor(triggers, budget) {
10
+ this.triggers = triggers
11
+ .filter((t) => t.enabled !== false)
12
+ .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
13
+ this.budget = budget;
14
+ }
15
+ evaluate(state) {
16
+ if (this.isBudgetExhausted()) {
17
+ return [];
18
+ }
19
+ const fired = [];
20
+ for (const trigger of this.triggers) {
21
+ if (!this.isCooldownSatisfied(trigger, state.iteration)) {
22
+ continue;
23
+ }
24
+ if (this.matchesCondition(trigger.condition, state)) {
25
+ fired.push(trigger);
26
+ }
27
+ }
28
+ return fired;
29
+ }
30
+ recordFiring(triggerId, iteration) {
31
+ this.lastFiredMap.set(triggerId, iteration);
32
+ this.callCount++;
33
+ }
34
+ isBudgetExhausted() {
35
+ if (this.budget?.maxCallsPerRun === undefined) {
36
+ return false;
37
+ }
38
+ return this.callCount >= this.budget.maxCallsPerRun;
39
+ }
40
+ isCooldownSatisfied(trigger, currentIteration) {
41
+ if (trigger.cooldownIterations === undefined) {
42
+ return true;
43
+ }
44
+ const lastFired = this.lastFiredMap.get(trigger.id);
45
+ if (lastFired === undefined) {
46
+ return true;
47
+ }
48
+ return currentIteration - lastFired >= trigger.cooldownIterations;
49
+ }
50
+ matchesCondition(condition, state) {
51
+ switch (condition.type) {
52
+ case 'on_error': {
53
+ if (state.lastError === undefined)
54
+ return false;
55
+ if (condition.categories && condition.categories.length > 0) {
56
+ return condition.categories.some((cat) => state.lastError?.includes(cat));
57
+ }
58
+ return true;
59
+ }
60
+ case 'on_iteration': {
61
+ return state.iteration % condition.everyN === 0;
62
+ }
63
+ case 'on_context_percent': {
64
+ return state.contextWindowPercent >= condition.threshold;
65
+ }
66
+ case 'on_tool_category': {
67
+ if (state.lastToolCategory === undefined)
68
+ return false;
69
+ return condition.categories.includes(state.lastToolCategory);
70
+ }
71
+ case 'on_cost_percent': {
72
+ if (state.costBudgetPercent === undefined)
73
+ return false;
74
+ return state.costBudgetPercent >= condition.threshold;
75
+ }
76
+ case 'on_complexity': {
77
+ return state.totalToolCalls >= condition.toolCallThreshold;
78
+ }
79
+ case 'custom': {
80
+ return condition.predicate(state);
81
+ }
82
+ default:
83
+ return assertNever(condition);
84
+ }
85
+ }
86
+ }
87
+ //# sourceMappingURL=evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/advisory/evaluator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { AdvisorDefinition } from '../types/advisory/config.js';
2
+ import type { AdvisoryRequest, AdvisoryResult } from '../types/advisory/result.js';
3
+ import type { CostInfo, TokenUsage } from '../types/common/index.js';
4
+ import type { Message } from '../types/message/index.js';
5
+ import type { LLMToolSchema } from '../types/tool/index.js';
6
+ import type { Logger } from '../utils/logger.js';
7
+ export interface AdvisoryCallContext {
8
+ readonly messages: Message[];
9
+ readonly workingStateSummary?: string;
10
+ readonly toolCatalog?: LLMToolSchema[];
11
+ readonly iteration: number;
12
+ }
13
+ export interface AdvisoryExecutionResult {
14
+ readonly result: AdvisoryResult;
15
+ readonly usage: TokenUsage;
16
+ readonly cost: CostInfo;
17
+ readonly durationMs: number;
18
+ }
19
+ export declare class AdvisoryExecutor {
20
+ private readonly logger;
21
+ constructor(logger?: Logger);
22
+ consult(advisor: AdvisorDefinition, request: AdvisoryRequest, callCtx: AdvisoryCallContext): Promise<AdvisoryExecutionResult>;
23
+ private buildSystemPrompt;
24
+ private buildContext;
25
+ private truncateMessages;
26
+ /**
27
+ * Parses the raw LLM response into an AdvisoryResult.
28
+ *
29
+ * Phase 1: text-only extraction. Structured parsing comes later.
30
+ */
31
+ private parseResult;
32
+ /**
33
+ * Computes cost from token usage.
34
+ *
35
+ * Returns zero-value cost since pricing is provider-specific.
36
+ * Callers with pricing data can recompute via calculateCost().
37
+ */
38
+ private computeCost;
39
+ }
40
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAClF,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAGhD,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC5B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,EAAE,CAAA;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAA;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAC3B;AAED,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAEnB,MAAM,CAAC,EAAE,MAAM;IAIrB,OAAO,CACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,mBAAmB,GAC1B,OAAO,CAAC,uBAAuB,CAAC;IAgDnC,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,gBAAgB;IAqBxB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAMnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAQnB"}
@@ -0,0 +1,132 @@
1
+ import { CHARS_PER_TOKEN } from '../constants/limits.js';
2
+ import { assembleSystemPrompt } from '../persona/assembler.js';
3
+ import { createSystemMessage, createUserMessage } from '../types/message/index.js';
4
+ import { getRootLogger } from '../utils/logger.js';
5
+ export class AdvisoryExecutor {
6
+ logger;
7
+ constructor(logger) {
8
+ this.logger = (logger ?? getRootLogger()).child({ component: 'AdvisoryExecutor' });
9
+ }
10
+ async consult(advisor, request, callCtx) {
11
+ const startMs = Date.now();
12
+ const systemPrompt = this.buildSystemPrompt(advisor);
13
+ const contextMessages = this.buildContext(advisor, request, callCtx);
14
+ const messages = [
15
+ createSystemMessage(systemPrompt),
16
+ ...contextMessages,
17
+ createUserMessage(request.question),
18
+ ];
19
+ this.logger.debug('advisory call starting', {
20
+ advisorId: advisor.id,
21
+ model: advisor.model,
22
+ messageCount: messages.length,
23
+ urgency: request.urgency,
24
+ });
25
+ const response = await advisor.provider.chat({
26
+ model: advisor.model,
27
+ messages,
28
+ temperature: advisor.temperature,
29
+ maxTokens: advisor.maxResponseTokens,
30
+ toolChoice: 'none',
31
+ });
32
+ const durationMs = Date.now() - startMs;
33
+ const result = this.parseResult(response.message.content ?? '');
34
+ const cost = this.computeCost(response.usage);
35
+ this.logger.info('advisory call completed', {
36
+ advisorId: advisor.id,
37
+ model: advisor.model,
38
+ durationMs,
39
+ totalTokens: response.usage.totalTokens,
40
+ });
41
+ return {
42
+ result,
43
+ usage: response.usage,
44
+ cost,
45
+ durationMs,
46
+ };
47
+ }
48
+ buildSystemPrompt(advisor) {
49
+ if (advisor.systemPrompt) {
50
+ return advisor.systemPrompt;
51
+ }
52
+ if (advisor.persona) {
53
+ return assembleSystemPrompt(advisor.persona);
54
+ }
55
+ return [
56
+ `You are ${advisor.name}, an advisory agent.`,
57
+ advisor.domains && advisor.domains.length > 0
58
+ ? `Your domains of expertise: ${advisor.domains.join(', ')}.`
59
+ : undefined,
60
+ 'Provide concise, actionable advice. Focus on what the agent should do next.',
61
+ ]
62
+ .filter(Boolean)
63
+ .join('\n\n');
64
+ }
65
+ buildContext(advisor, request, callCtx) {
66
+ if (request.includeContext === false) {
67
+ return [];
68
+ }
69
+ const contextParts = [];
70
+ if (callCtx.workingStateSummary) {
71
+ contextParts.push(`## Working State\n${callCtx.workingStateSummary}`);
72
+ }
73
+ if (callCtx.toolCatalog && callCtx.toolCatalog.length > 0) {
74
+ const toolNames = callCtx.toolCatalog.map((t) => t.function.name);
75
+ contextParts.push(`## Available Tools\n${toolNames.join(', ')}`);
76
+ }
77
+ const messagesToInclude = this.truncateMessages(callCtx.messages, advisor.maxContextTokens);
78
+ if (messagesToInclude.length > 0) {
79
+ const conversationSummary = messagesToInclude
80
+ .map((m) => `[${m.role}]: ${m.content ?? '(tool calls)'}`)
81
+ .join('\n');
82
+ contextParts.push(`## Conversation Context\n${conversationSummary}`);
83
+ }
84
+ if (contextParts.length === 0) {
85
+ return [];
86
+ }
87
+ return [createUserMessage(contextParts.join('\n\n'))];
88
+ }
89
+ truncateMessages(messages, maxTokens) {
90
+ if (!maxTokens) {
91
+ return messages;
92
+ }
93
+ const charBudget = maxTokens * CHARS_PER_TOKEN;
94
+ let totalChars = 0;
95
+ const result = [];
96
+ // Walk from most recent to oldest, accumulate until budget exhausted
97
+ for (let i = messages.length - 1; i >= 0; i--) {
98
+ const msg = messages[i];
99
+ const msgChars = (msg.content ?? '').length;
100
+ if (totalChars + msgChars > charBudget)
101
+ break;
102
+ totalChars += msgChars;
103
+ result.unshift(msg);
104
+ }
105
+ return result;
106
+ }
107
+ /**
108
+ * Parses the raw LLM response into an AdvisoryResult.
109
+ *
110
+ * Phase 1: text-only extraction. Structured parsing comes later.
111
+ */
112
+ parseResult(rawContent) {
113
+ return {
114
+ advice: rawContent,
115
+ };
116
+ }
117
+ /**
118
+ * Computes cost from token usage.
119
+ *
120
+ * Returns zero-value cost since pricing is provider-specific.
121
+ * Callers with pricing data can recompute via calculateCost().
122
+ */
123
+ computeCost(_usage) {
124
+ return {
125
+ inputCostPer1M: 0,
126
+ outputCostPer1M: 0,
127
+ totalCost: 0,
128
+ cacheDiscount: 0,
129
+ };
130
+ }
131
+ }
132
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/advisory/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export { AdvisorRegistry } from './registry.js';
2
+ export { AdvisoryExecutor } from './executor.js';
3
+ export type { AdvisoryCallContext, AdvisoryExecutionResult } from './executor.js';
4
+ export { TriggerEvaluator } from './evaluator.js';
5
+ export { AdvisoryContext } from './context.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/advisory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAChD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { AdvisorRegistry } from './registry.js';
2
+ export { AdvisoryExecutor } from './executor.js';
3
+ export { TriggerEvaluator } from './evaluator.js';
4
+ export { AdvisoryContext } from './context.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/advisory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA"}
@@ -0,0 +1,14 @@
1
+ import { Registry } from '../registry/Registry.js';
2
+ import type { AdvisorDefinition } from '../types/advisory/index.js';
3
+ export declare class AdvisorRegistry extends Registry<AdvisorDefinition> {
4
+ private readonly defaultId;
5
+ constructor(advisors: AdvisorDefinition[], defaultId?: string);
6
+ /**
7
+ * Resolves the advisor for a given request.
8
+ *
9
+ * Priority: explicit ID > domain match > default > first registered.
10
+ */
11
+ resolve(advisorId?: string, domain?: string): AdvisorDefinition | undefined;
12
+ listAll(): AdvisorDefinition[];
13
+ }
14
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/advisory/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAEnE,qBAAa,eAAgB,SAAQ,QAAQ,CAAC,iBAAiB,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;gBAElC,QAAQ,EAAE,iBAAiB,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM;IAQ7D;;;;OAIG;IACH,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAmB3E,OAAO,IAAI,iBAAiB,EAAE;CAG9B"}
@@ -0,0 +1,36 @@
1
+ import { Registry } from '../registry/Registry.js';
2
+ export class AdvisorRegistry extends Registry {
3
+ defaultId;
4
+ constructor(advisors, defaultId) {
5
+ super();
6
+ for (const advisor of advisors) {
7
+ this.register(advisor.id, advisor);
8
+ }
9
+ this.defaultId = defaultId;
10
+ }
11
+ /**
12
+ * Resolves the advisor for a given request.
13
+ *
14
+ * Priority: explicit ID > domain match > default > first registered.
15
+ */
16
+ resolve(advisorId, domain) {
17
+ if (advisorId) {
18
+ return this.get(advisorId);
19
+ }
20
+ if (domain) {
21
+ const all = this.getAll();
22
+ const match = all.find((a) => a.domains?.some((d) => d === domain));
23
+ if (match)
24
+ return match;
25
+ }
26
+ if (this.defaultId) {
27
+ return this.get(this.defaultId);
28
+ }
29
+ const all = this.getAll();
30
+ return all.length > 0 ? all[0] : undefined;
31
+ }
32
+ listAll() {
33
+ return this.getAll();
34
+ }
35
+ }
36
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/advisory/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAGlD,MAAM,OAAO,eAAgB,SAAQ,QAA2B;IAC9C,SAAS,CAAoB;IAE9C,YAAY,QAA6B,EAAE,SAAkB;QAC5D,KAAK,EAAE,CAAA;QACP,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;IAC3B,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,SAAkB,EAAE,MAAe;QAC1C,IAAI,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAA;YACnE,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAA;QACxB,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QACzB,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3C,CAAC;IAED,OAAO;QACN,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACrB,CAAC;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,aAAc,SAAQ,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACzF,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;gBAEvB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IAkEhB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
1
+ {"version":3,"file":"ReactiveAgent.d.ts","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,MAAM,yBAAyB,CAAA;AAEhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,aAAc,SAAQ,aAAa,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IACzF,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAS;gBAEvB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,mBAAmB,CAAC;IAmEhB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAGtC"}
@@ -48,6 +48,7 @@ export class ReactiveAgent extends AbstractAgent {
48
48
  signal: input.signal,
49
49
  taskStore: input.taskStore,
50
50
  runtimeToolOverrides: input.runtimeToolOverrides,
51
+ advisory: config.advisory,
51
52
  }, listener);
52
53
  let toolCallCount = 0;
53
54
  for (const msg of session.messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"ReactiveAgent.js","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactiveAgent.js","sourceRoot":"","sources":["../../src/agents/ReactiveAgent.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SupervisorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAC/F,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;gBAEzB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;CAqHjC"}
1
+ {"version":3,"file":"SupervisorAgent.d.ts","sourceRoot":"","sources":["../../src/agents/SupervisorAgent.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACX,UAAU,EACV,aAAa,EACb,qBAAqB,EACrB,qBAAqB,EACrB,MAAM,yBAAyB,CAAA;AAIhC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,qBAAa,eAAgB,SAAQ,aAAa,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAC/F,QAAQ,CAAC,IAAI,EAAG,YAAY,CAAS;gBAEzB,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,CAAC;IAa5D,GAAG,CACR,KAAK,EAAE,UAAU,EACjB,MAAM,EAAE,qBAAqB,EAC7B,QAAQ,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,qBAAqB,CAAC;CAiIjC"}