agent-nuvira 3.3.1 → 3.3.4

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 (466) hide show
  1. package/README.md +18 -13
  2. package/dist/agent-sdk/src/agent.d.ts +2 -0
  3. package/dist/agent-sdk/src/agent.d.ts.map +1 -1
  4. package/dist/agent-sdk/src/define.d.ts +64 -0
  5. package/dist/agent-sdk/src/define.d.ts.map +1 -0
  6. package/dist/agent-sdk/src/define.js +76 -0
  7. package/dist/agent-sdk/src/define.js.map +1 -0
  8. package/dist/agent-sdk/src/index.d.ts +9 -0
  9. package/dist/agent-sdk/src/index.d.ts.map +1 -1
  10. package/dist/agent-sdk/src/index.js +9 -0
  11. package/dist/agent-sdk/src/index.js.map +1 -1
  12. package/dist/agent-sdk/src/scaffold.d.ts +11 -0
  13. package/dist/agent-sdk/src/scaffold.d.ts.map +1 -1
  14. package/dist/agent-sdk/src/scaffold.js +16 -6
  15. package/dist/agent-sdk/src/scaffold.js.map +1 -1
  16. package/dist/agents/agents/runner.d.ts +9 -0
  17. package/dist/agents/agents/runner.d.ts.map +1 -1
  18. package/dist/agents/agents/runner.js +34 -12
  19. package/dist/agents/agents/runner.js.map +1 -1
  20. package/dist/agents/agents/writer-tool-calling.d.ts.map +1 -1
  21. package/dist/agents/agents/writer-tool-calling.js +7 -2
  22. package/dist/agents/agents/writer-tool-calling.js.map +1 -1
  23. package/dist/agents/agents/writer.d.ts.map +1 -1
  24. package/dist/agents/agents/writer.js +7 -1
  25. package/dist/agents/agents/writer.js.map +1 -1
  26. package/dist/agents/artifact-verification.d.ts +102 -0
  27. package/dist/agents/artifact-verification.d.ts.map +1 -0
  28. package/dist/agents/artifact-verification.js +216 -0
  29. package/dist/agents/artifact-verification.js.map +1 -0
  30. package/dist/agents/checkpoint-store.d.ts +73 -0
  31. package/dist/agents/checkpoint-store.d.ts.map +1 -1
  32. package/dist/agents/checkpoint-store.js +161 -0
  33. package/dist/agents/checkpoint-store.js.map +1 -1
  34. package/dist/agents/credential-store.d.ts +120 -0
  35. package/dist/agents/credential-store.d.ts.map +1 -1
  36. package/dist/agents/credential-store.js +358 -19
  37. package/dist/agents/credential-store.js.map +1 -1
  38. package/dist/agents/long-form-plan.d.ts.map +1 -1
  39. package/dist/agents/long-form-plan.js +2 -1
  40. package/dist/agents/long-form-plan.js.map +1 -1
  41. package/dist/agents/orchestrator.d.ts +10 -1
  42. package/dist/agents/orchestrator.d.ts.map +1 -1
  43. package/dist/agents/orchestrator.js +239 -79
  44. package/dist/agents/orchestrator.js.map +1 -1
  45. package/dist/agents/phase-engine.d.ts +61 -0
  46. package/dist/agents/phase-engine.d.ts.map +1 -1
  47. package/dist/agents/phase-engine.js +68 -2
  48. package/dist/agents/phase-engine.js.map +1 -1
  49. package/dist/agents/prompt-assembly.d.ts +11 -0
  50. package/dist/agents/prompt-assembly.d.ts.map +1 -1
  51. package/dist/agents/prompt-assembly.js +17 -0
  52. package/dist/agents/prompt-assembly.js.map +1 -1
  53. package/dist/agents/release-preflight.d.ts +121 -0
  54. package/dist/agents/release-preflight.d.ts.map +1 -0
  55. package/dist/agents/release-preflight.js +259 -0
  56. package/dist/agents/release-preflight.js.map +1 -0
  57. package/dist/agents/release-runner.d.ts +157 -0
  58. package/dist/agents/release-runner.d.ts.map +1 -0
  59. package/dist/agents/release-runner.js +719 -0
  60. package/dist/agents/release-runner.js.map +1 -0
  61. package/dist/agents/step-handoff.d.ts +190 -0
  62. package/dist/agents/step-handoff.d.ts.map +1 -0
  63. package/dist/agents/step-handoff.js +443 -0
  64. package/dist/agents/step-handoff.js.map +1 -0
  65. package/dist/cli/agent.d.ts +2 -2
  66. package/dist/cli/agent.js +10 -10
  67. package/dist/cli/benchmark.d.ts.map +1 -1
  68. package/dist/cli/benchmark.js +11 -4
  69. package/dist/cli/benchmark.js.map +1 -1
  70. package/dist/cli/chat.d.ts +94 -0
  71. package/dist/cli/chat.d.ts.map +1 -1
  72. package/dist/cli/chat.js +379 -24
  73. package/dist/cli/chat.js.map +1 -1
  74. package/dist/cli/cli-program.d.ts.map +1 -1
  75. package/dist/cli/cli-program.js +8 -0
  76. package/dist/cli/cli-program.js.map +1 -1
  77. package/dist/cli/config.d.ts.map +1 -1
  78. package/dist/cli/config.js +9 -1
  79. package/dist/cli/config.js.map +1 -1
  80. package/dist/cli/credentials.d.ts +28 -0
  81. package/dist/cli/credentials.d.ts.map +1 -0
  82. package/dist/cli/credentials.js +213 -0
  83. package/dist/cli/credentials.js.map +1 -0
  84. package/dist/cli/doctor.d.ts.map +1 -1
  85. package/dist/cli/doctor.js +3 -2
  86. package/dist/cli/doctor.js.map +1 -1
  87. package/dist/cli/edit.js +2 -2
  88. package/dist/cli/eval.d.ts +17 -0
  89. package/dist/cli/eval.d.ts.map +1 -1
  90. package/dist/cli/eval.js +105 -2
  91. package/dist/cli/eval.js.map +1 -1
  92. package/dist/cli/execute.d.ts +16 -1
  93. package/dist/cli/execute.d.ts.map +1 -1
  94. package/dist/cli/execute.js +192 -22
  95. package/dist/cli/execute.js.map +1 -1
  96. package/dist/cli/failover-runner.d.ts.map +1 -1
  97. package/dist/cli/failover-runner.js +9 -3
  98. package/dist/cli/failover-runner.js.map +1 -1
  99. package/dist/cli/loop-executor.d.ts +55 -0
  100. package/dist/cli/loop-executor.d.ts.map +1 -1
  101. package/dist/cli/loop-executor.js +285 -19
  102. package/dist/cli/loop-executor.js.map +1 -1
  103. package/dist/cli/model.d.ts.map +1 -1
  104. package/dist/cli/model.js +9 -8
  105. package/dist/cli/model.js.map +1 -1
  106. package/dist/cli/models.d.ts +1 -1
  107. package/dist/cli/models.js +4 -4
  108. package/dist/cli/nlu.d.ts.map +1 -1
  109. package/dist/cli/nlu.js +8 -2
  110. package/dist/cli/nlu.js.map +1 -1
  111. package/dist/cli/parity.d.ts +85 -0
  112. package/dist/cli/parity.d.ts.map +1 -0
  113. package/dist/cli/parity.js +506 -0
  114. package/dist/cli/parity.js.map +1 -0
  115. package/dist/cli/plan.d.ts.map +1 -1
  116. package/dist/cli/plan.js +2 -1
  117. package/dist/cli/plan.js.map +1 -1
  118. package/dist/cli/publish.d.ts +22 -0
  119. package/dist/cli/publish.d.ts.map +1 -1
  120. package/dist/cli/publish.js +109 -13
  121. package/dist/cli/publish.js.map +1 -1
  122. package/dist/cli/retrieval.d.ts.map +1 -1
  123. package/dist/cli/retrieval.js +5 -4
  124. package/dist/cli/retrieval.js.map +1 -1
  125. package/dist/cli/sdk.js +4 -4
  126. package/dist/cli/sdk.js.map +1 -1
  127. package/dist/cli/trace.d.ts.map +1 -1
  128. package/dist/cli/trace.js +2 -1
  129. package/dist/cli/trace.js.map +1 -1
  130. package/dist/cli/workflow.js +2 -2
  131. package/dist/cli/workflow.js.map +1 -1
  132. package/dist/config/live-credentials.d.ts +57 -0
  133. package/dist/config/live-credentials.d.ts.map +1 -0
  134. package/dist/config/live-credentials.js +126 -0
  135. package/dist/config/live-credentials.js.map +1 -0
  136. package/dist/config/paths.d.ts +18 -0
  137. package/dist/config/paths.d.ts.map +1 -1
  138. package/dist/config/paths.js +25 -0
  139. package/dist/config/paths.js.map +1 -1
  140. package/dist/config/types.d.ts +44 -0
  141. package/dist/config/types.d.ts.map +1 -1
  142. package/dist/federation/a2a-types.js +1 -1
  143. package/dist/federation/a2a-types.js.map +1 -1
  144. package/dist/findings/verdicts.d.ts +241 -0
  145. package/dist/findings/verdicts.d.ts.map +1 -0
  146. package/dist/findings/verdicts.js +284 -0
  147. package/dist/findings/verdicts.js.map +1 -0
  148. package/dist/gateway/adapters.d.ts +65 -0
  149. package/dist/gateway/adapters.d.ts.map +1 -1
  150. package/dist/gateway/adapters.js +216 -10
  151. package/dist/gateway/adapters.js.map +1 -1
  152. package/dist/gateway/channel-directory.d.ts +31 -0
  153. package/dist/gateway/channel-directory.d.ts.map +1 -1
  154. package/dist/gateway/channel-directory.js +40 -0
  155. package/dist/gateway/channel-directory.js.map +1 -1
  156. package/dist/gateway/gateway-log.d.ts +1 -1
  157. package/dist/gateway/gateway-log.d.ts.map +1 -1
  158. package/dist/gateway/gateway-log.js.map +1 -1
  159. package/dist/gateway/hooks.d.ts +87 -19
  160. package/dist/gateway/hooks.d.ts.map +1 -1
  161. package/dist/gateway/hooks.js +62 -23
  162. package/dist/gateway/hooks.js.map +1 -1
  163. package/dist/gateway/inbound-media.d.ts +147 -0
  164. package/dist/gateway/inbound-media.d.ts.map +1 -0
  165. package/dist/gateway/inbound-media.js +317 -0
  166. package/dist/gateway/inbound-media.js.map +1 -0
  167. package/dist/gateway/inbox.d.ts +8 -1
  168. package/dist/gateway/inbox.d.ts.map +1 -1
  169. package/dist/gateway/inbox.js.map +1 -1
  170. package/dist/gateway/platform-config.d.ts +14 -0
  171. package/dist/gateway/platform-config.d.ts.map +1 -1
  172. package/dist/gateway/platform-config.js +26 -8
  173. package/dist/gateway/platform-config.js.map +1 -1
  174. package/dist/gateway/realtime.d.ts +114 -0
  175. package/dist/gateway/realtime.d.ts.map +1 -0
  176. package/dist/gateway/realtime.js +402 -0
  177. package/dist/gateway/realtime.js.map +1 -0
  178. package/dist/gateway/registry.d.ts +31 -0
  179. package/dist/gateway/registry.d.ts.map +1 -1
  180. package/dist/gateway/registry.js +224 -4
  181. package/dist/gateway/registry.js.map +1 -1
  182. package/dist/gateway/whatsapp/baileys-bridge.d.ts +11 -1
  183. package/dist/gateway/whatsapp/baileys-bridge.d.ts.map +1 -1
  184. package/dist/gateway/whatsapp/baileys-bridge.js +123 -4
  185. package/dist/gateway/whatsapp/baileys-bridge.js.map +1 -1
  186. package/dist/gateway/whatsapp/bridge.d.ts +6 -2
  187. package/dist/gateway/whatsapp/bridge.d.ts.map +1 -1
  188. package/dist/gateway/whatsapp/bridge.js.map +1 -1
  189. package/dist/index.js +8 -0
  190. package/dist/index.js.map +1 -1
  191. package/dist/inference/factory.d.ts +14 -0
  192. package/dist/inference/factory.d.ts.map +1 -1
  193. package/dist/inference/factory.js +17 -0
  194. package/dist/inference/factory.js.map +1 -1
  195. package/dist/inference/groq-adapter.d.ts +2 -0
  196. package/dist/inference/groq-adapter.d.ts.map +1 -1
  197. package/dist/inference/groq-adapter.js +16 -6
  198. package/dist/inference/groq-adapter.js.map +1 -1
  199. package/dist/inference/model-validator.d.ts +6 -1
  200. package/dist/inference/model-validator.d.ts.map +1 -1
  201. package/dist/inference/model-validator.js +7 -2
  202. package/dist/inference/model-validator.js.map +1 -1
  203. package/dist/inference/route-resolver.d.ts +116 -0
  204. package/dist/inference/route-resolver.d.ts.map +1 -0
  205. package/dist/inference/route-resolver.js +159 -0
  206. package/dist/inference/route-resolver.js.map +1 -0
  207. package/dist/inference/tools.d.ts.map +1 -1
  208. package/dist/inference/tools.js +29 -0
  209. package/dist/inference/tools.js.map +1 -1
  210. package/dist/learning/autonomy-policy.d.ts +18 -0
  211. package/dist/learning/autonomy-policy.d.ts.map +1 -1
  212. package/dist/learning/autonomy-policy.js +35 -0
  213. package/dist/learning/autonomy-policy.js.map +1 -1
  214. package/dist/learning/benchmark.d.ts.map +1 -1
  215. package/dist/learning/benchmark.js +3 -2
  216. package/dist/learning/benchmark.js.map +1 -1
  217. package/dist/learning/continuation.d.ts.map +1 -1
  218. package/dist/learning/continuation.js +2 -1
  219. package/dist/learning/continuation.js.map +1 -1
  220. package/dist/learning/cost-tracker.d.ts.map +1 -1
  221. package/dist/learning/cost-tracker.js +2 -1
  222. package/dist/learning/cost-tracker.js.map +1 -1
  223. package/dist/learning/deferred-task.d.ts.map +1 -1
  224. package/dist/learning/deferred-task.js +13 -4
  225. package/dist/learning/deferred-task.js.map +1 -1
  226. package/dist/learning/eval-framework.d.ts.map +1 -1
  227. package/dist/learning/eval-framework.js +2 -1
  228. package/dist/learning/eval-framework.js.map +1 -1
  229. package/dist/learning/long-form.d.ts.map +1 -1
  230. package/dist/learning/long-form.js +2 -1
  231. package/dist/learning/long-form.js.map +1 -1
  232. package/dist/learning/model-registry.d.ts.map +1 -1
  233. package/dist/learning/model-registry.js +2 -1
  234. package/dist/learning/model-registry.js.map +1 -1
  235. package/dist/learning/reasoning-cache.d.ts.map +1 -1
  236. package/dist/learning/reasoning-cache.js +2 -1
  237. package/dist/learning/reasoning-cache.js.map +1 -1
  238. package/dist/learning/reasoning-trace.d.ts +38 -2
  239. package/dist/learning/reasoning-trace.d.ts.map +1 -1
  240. package/dist/learning/reasoning-trace.js +91 -1
  241. package/dist/learning/reasoning-trace.js.map +1 -1
  242. package/dist/learning/resilient-call.d.ts.map +1 -1
  243. package/dist/learning/resilient-call.js +31 -18
  244. package/dist/learning/resilient-call.js.map +1 -1
  245. package/dist/learning/retrieval.d.ts.map +1 -1
  246. package/dist/learning/retrieval.js +2 -1
  247. package/dist/learning/retrieval.js.map +1 -1
  248. package/dist/learning/seeded-benchmark.d.ts +160 -0
  249. package/dist/learning/seeded-benchmark.d.ts.map +1 -0
  250. package/dist/learning/seeded-benchmark.js +321 -0
  251. package/dist/learning/seeded-benchmark.js.map +1 -0
  252. package/dist/learning/seeded-bugs.d.ts +142 -0
  253. package/dist/learning/seeded-bugs.d.ts.map +1 -0
  254. package/dist/learning/seeded-bugs.js +535 -0
  255. package/dist/learning/seeded-bugs.js.map +1 -0
  256. package/dist/learning/skill-store.d.ts.map +1 -1
  257. package/dist/learning/skill-store.js +30 -9
  258. package/dist/learning/skill-store.js.map +1 -1
  259. package/dist/learning/step-checkpoint.d.ts +127 -0
  260. package/dist/learning/step-checkpoint.d.ts.map +1 -0
  261. package/dist/learning/step-checkpoint.js +244 -0
  262. package/dist/learning/step-checkpoint.js.map +1 -0
  263. package/dist/mcp/catalog.js +2 -3
  264. package/dist/mcp/catalog.js.map +1 -1
  265. package/dist/mcp/manager.d.ts.map +1 -1
  266. package/dist/mcp/manager.js +5 -3
  267. package/dist/mcp/manager.js.map +1 -1
  268. package/dist/nlu/intent-confirm.d.ts +23 -1
  269. package/dist/nlu/intent-confirm.d.ts.map +1 -1
  270. package/dist/nlu/intent-confirm.js +85 -2
  271. package/dist/nlu/intent-confirm.js.map +1 -1
  272. package/dist/nlu/learnings.d.ts +7 -0
  273. package/dist/nlu/learnings.d.ts.map +1 -1
  274. package/dist/nlu/learnings.js +7 -0
  275. package/dist/nlu/learnings.js.map +1 -1
  276. package/dist/observability/debug-log.d.ts +250 -0
  277. package/dist/observability/debug-log.d.ts.map +1 -0
  278. package/dist/observability/debug-log.js +500 -0
  279. package/dist/observability/debug-log.js.map +1 -0
  280. package/dist/observability/event-bus.d.ts.map +1 -1
  281. package/dist/observability/event-bus.js +4 -1
  282. package/dist/observability/event-bus.js.map +1 -1
  283. package/dist/observability/otel.d.ts +278 -0
  284. package/dist/observability/otel.d.ts.map +1 -0
  285. package/dist/observability/otel.js +590 -0
  286. package/dist/observability/otel.js.map +1 -0
  287. package/dist/parity/drivers.d.ts +99 -0
  288. package/dist/parity/drivers.d.ts.map +1 -0
  289. package/dist/parity/drivers.js +1362 -0
  290. package/dist/parity/drivers.js.map +1 -0
  291. package/dist/parity/graph.d.ts +73 -0
  292. package/dist/parity/graph.d.ts.map +1 -0
  293. package/dist/parity/graph.js +162 -0
  294. package/dist/parity/graph.js.map +1 -0
  295. package/dist/parity/matrix.d.ts +105 -0
  296. package/dist/parity/matrix.d.ts.map +1 -0
  297. package/dist/parity/matrix.js +352 -0
  298. package/dist/parity/matrix.js.map +1 -0
  299. package/dist/parity/observation.d.ts +444 -0
  300. package/dist/parity/observation.d.ts.map +1 -0
  301. package/dist/parity/observation.js +333 -0
  302. package/dist/parity/observation.js.map +1 -0
  303. package/dist/parity/scenarios.d.ts +229 -0
  304. package/dist/parity/scenarios.d.ts.map +1 -0
  305. package/dist/parity/scenarios.js +175 -0
  306. package/dist/parity/scenarios.js.map +1 -0
  307. package/dist/parity/surfaces.d.ts +122 -0
  308. package/dist/parity/surfaces.d.ts.map +1 -0
  309. package/dist/parity/surfaces.js +190 -0
  310. package/dist/parity/surfaces.js.map +1 -0
  311. package/dist/runtime/fault-injection.d.ts +173 -0
  312. package/dist/runtime/fault-injection.d.ts.map +1 -0
  313. package/dist/runtime/fault-injection.js +281 -0
  314. package/dist/runtime/fault-injection.js.map +1 -0
  315. package/dist/skills/secret-capture.d.ts.map +1 -1
  316. package/dist/skills/secret-capture.js +9 -4
  317. package/dist/skills/secret-capture.js.map +1 -1
  318. package/dist/tools/child-agent-entry.d.ts +23 -0
  319. package/dist/tools/child-agent-entry.d.ts.map +1 -0
  320. package/dist/tools/child-agent-entry.js +129 -0
  321. package/dist/tools/child-agent-entry.js.map +1 -0
  322. package/dist/tools/child-agent-runtime.d.ts +124 -0
  323. package/dist/tools/child-agent-runtime.d.ts.map +1 -0
  324. package/dist/tools/child-agent-runtime.js +704 -0
  325. package/dist/tools/child-agent-runtime.js.map +1 -0
  326. package/dist/tools/coding-tools.d.ts.map +1 -1
  327. package/dist/tools/coding-tools.js +82 -10
  328. package/dist/tools/coding-tools.js.map +1 -1
  329. package/dist/tools/credentials-tool.d.ts +24 -0
  330. package/dist/tools/credentials-tool.d.ts.map +1 -0
  331. package/dist/tools/credentials-tool.js +125 -0
  332. package/dist/tools/credentials-tool.js.map +1 -0
  333. package/dist/tools/delegation-system.d.ts +31 -0
  334. package/dist/tools/delegation-system.d.ts.map +1 -1
  335. package/dist/tools/delegation-system.js +70 -9
  336. package/dist/tools/delegation-system.js.map +1 -1
  337. package/dist/tools/extract/docx.d.ts +27 -0
  338. package/dist/tools/extract/docx.d.ts.map +1 -0
  339. package/dist/tools/extract/docx.js +48 -0
  340. package/dist/tools/extract/docx.js.map +1 -0
  341. package/dist/tools/extract/html-text.d.ts +27 -0
  342. package/dist/tools/extract/html-text.d.ts.map +1 -0
  343. package/dist/tools/extract/html-text.js +86 -0
  344. package/dist/tools/extract/html-text.js.map +1 -0
  345. package/dist/tools/extract/pdf-ocr.d.ts +58 -0
  346. package/dist/tools/extract/pdf-ocr.d.ts.map +1 -0
  347. package/dist/tools/extract/pdf-ocr.js +116 -0
  348. package/dist/tools/extract/pdf-ocr.js.map +1 -0
  349. package/dist/tools/extract/pdf.d.ts +65 -0
  350. package/dist/tools/extract/pdf.d.ts.map +1 -0
  351. package/dist/tools/extract/pdf.js +197 -0
  352. package/dist/tools/extract/pdf.js.map +1 -0
  353. package/dist/tools/extract/pptx.d.ts +32 -0
  354. package/dist/tools/extract/pptx.d.ts.map +1 -0
  355. package/dist/tools/extract/pptx.js +77 -0
  356. package/dist/tools/extract/pptx.js.map +1 -0
  357. package/dist/tools/extract/xlsx.d.ts +47 -0
  358. package/dist/tools/extract/xlsx.d.ts.map +1 -0
  359. package/dist/tools/extract/xlsx.js +111 -0
  360. package/dist/tools/extract/xlsx.js.map +1 -0
  361. package/dist/tools/finding-tool.d.ts +76 -0
  362. package/dist/tools/finding-tool.d.ts.map +1 -0
  363. package/dist/tools/finding-tool.js +125 -0
  364. package/dist/tools/finding-tool.js.map +1 -0
  365. package/dist/tools/git-tool.d.ts +25 -7
  366. package/dist/tools/git-tool.d.ts.map +1 -1
  367. package/dist/tools/git-tool.js +155 -15
  368. package/dist/tools/git-tool.js.map +1 -1
  369. package/dist/tools/loop-project-context.d.ts.map +1 -1
  370. package/dist/tools/loop-project-context.js +16 -0
  371. package/dist/tools/loop-project-context.js.map +1 -1
  372. package/dist/tools/loop-route-feed.d.ts +57 -0
  373. package/dist/tools/loop-route-feed.d.ts.map +1 -0
  374. package/dist/tools/loop-route-feed.js +101 -0
  375. package/dist/tools/loop-route-feed.js.map +1 -0
  376. package/dist/tools/messaging-tools.d.ts +41 -11
  377. package/dist/tools/messaging-tools.d.ts.map +1 -1
  378. package/dist/tools/messaging-tools.js +104 -55
  379. package/dist/tools/messaging-tools.js.map +1 -1
  380. package/dist/tools/neutts-synth.d.ts +27 -3
  381. package/dist/tools/neutts-synth.d.ts.map +1 -1
  382. package/dist/tools/neutts-synth.js +57 -13
  383. package/dist/tools/neutts-synth.js.map +1 -1
  384. package/dist/tools/pipeline-tool.d.ts +43 -1
  385. package/dist/tools/pipeline-tool.d.ts.map +1 -1
  386. package/dist/tools/pipeline-tool.js +21 -4
  387. package/dist/tools/pipeline-tool.js.map +1 -1
  388. package/dist/tools/publish-tool.d.ts.map +1 -1
  389. package/dist/tools/publish-tool.js +76 -10
  390. package/dist/tools/publish-tool.js.map +1 -1
  391. package/dist/tools/read-extract.d.ts +116 -45
  392. package/dist/tools/read-extract.d.ts.map +1 -1
  393. package/dist/tools/read-extract.js +494 -158
  394. package/dist/tools/read-extract.js.map +1 -1
  395. package/dist/tools/registry.d.ts +23 -3
  396. package/dist/tools/registry.d.ts.map +1 -1
  397. package/dist/tools/registry.js +196 -29
  398. package/dist/tools/registry.js.map +1 -1
  399. package/dist/tools/run-terminal.d.ts +9 -0
  400. package/dist/tools/run-terminal.d.ts.map +1 -1
  401. package/dist/tools/run-terminal.js +80 -2
  402. package/dist/tools/run-terminal.js.map +1 -1
  403. package/dist/tools/subagent-refusal.d.ts +15 -0
  404. package/dist/tools/subagent-refusal.d.ts.map +1 -0
  405. package/dist/tools/subagent-refusal.js +18 -0
  406. package/dist/tools/subagent-refusal.js.map +1 -0
  407. package/dist/tools/subagent-spawner.d.ts +122 -0
  408. package/dist/tools/subagent-spawner.d.ts.map +1 -1
  409. package/dist/tools/subagent-spawner.js +249 -28
  410. package/dist/tools/subagent-spawner.js.map +1 -1
  411. package/dist/tools/tool-hooks.d.ts +177 -0
  412. package/dist/tools/tool-hooks.d.ts.map +1 -0
  413. package/dist/tools/tool-hooks.js +427 -0
  414. package/dist/tools/tool-hooks.js.map +1 -0
  415. package/dist/tools/tool-loop.d.ts +94 -5
  416. package/dist/tools/tool-loop.d.ts.map +1 -1
  417. package/dist/tools/tool-loop.js +315 -9
  418. package/dist/tools/tool-loop.js.map +1 -1
  419. package/dist/tools/tool-refusal.d.ts +68 -0
  420. package/dist/tools/tool-refusal.d.ts.map +1 -0
  421. package/dist/tools/tool-refusal.js +78 -0
  422. package/dist/tools/tool-refusal.js.map +1 -0
  423. package/dist/tools/toolsets.d.ts +8 -0
  424. package/dist/tools/toolsets.d.ts.map +1 -1
  425. package/dist/tools/toolsets.js +14 -4
  426. package/dist/tools/toolsets.js.map +1 -1
  427. package/dist/tools/vision-tools.d.ts +88 -83
  428. package/dist/tools/vision-tools.d.ts.map +1 -1
  429. package/dist/tools/vision-tools.js +134 -103
  430. package/dist/tools/vision-tools.js.map +1 -1
  431. package/dist/tools/worktree.d.ts +210 -0
  432. package/dist/tools/worktree.d.ts.map +1 -0
  433. package/dist/tools/worktree.js +374 -0
  434. package/dist/tools/worktree.js.map +1 -0
  435. package/dist/utils/format.d.ts +3 -0
  436. package/dist/utils/format.d.ts.map +1 -0
  437. package/dist/utils/format.js +32 -0
  438. package/dist/utils/format.js.map +1 -0
  439. package/dist/web-dashboard/attachment-extract.d.ts +64 -0
  440. package/dist/web-dashboard/attachment-extract.d.ts.map +1 -0
  441. package/dist/web-dashboard/attachment-extract.js +154 -0
  442. package/dist/web-dashboard/attachment-extract.js.map +1 -0
  443. package/dist/web-dashboard/chat-console.d.ts +108 -1
  444. package/dist/web-dashboard/chat-console.d.ts.map +1 -1
  445. package/dist/web-dashboard/chat-console.js +36 -0
  446. package/dist/web-dashboard/chat-console.js.map +1 -1
  447. package/dist/web-dashboard/hub-data.d.ts +37 -0
  448. package/dist/web-dashboard/hub-data.d.ts.map +1 -1
  449. package/dist/web-dashboard/hub-data.js +61 -1
  450. package/dist/web-dashboard/hub-data.js.map +1 -1
  451. package/dist/web-dashboard/server.d.ts +14 -0
  452. package/dist/web-dashboard/server.d.ts.map +1 -1
  453. package/dist/web-dashboard/server.js +247 -13
  454. package/dist/web-dashboard/server.js.map +1 -1
  455. package/dist/web-dashboard/src/types.d.ts +196 -48
  456. package/dist/web-dashboard/src/types.d.ts.map +1 -1
  457. package/dist/workflow/registry.js +1 -1
  458. package/dist/workflow/registry.js.map +1 -1
  459. package/package.json +22 -6
  460. package/src/web-dashboard/public/assets/{index-Cyd6tIew.css → index-XJjj2cBX.css} +1 -1
  461. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js +207 -0
  462. package/src/web-dashboard/public/assets/index-YWF9FpwQ.js.map +1 -0
  463. package/src/web-dashboard/public/index.html +2 -2
  464. package/dist/tools/child-agent-worker.js +0 -212
  465. package/src/web-dashboard/public/assets/index-CjvoBhlz.js +0 -207
  466. package/src/web-dashboard/public/assets/index-CjvoBhlz.js.map +0 -1
package/README.md CHANGED
@@ -158,13 +158,19 @@ This table highlights core capabilities for quick machine parsing and comparison
158
158
  - **Memory compression & pruning** — automatic trajectory summarization with configurable retention policies
159
159
  - **VS Code extension** — Chat Panel with streaming responses, slash commands, and session history;
160
160
  Diagnostic → AI Fix from lightbulb menu; Code Lens actions (Test/Review/Explain/Fix) above functions
161
- and classes; 9 commands, inline code suggestions, diff viewer, agent progress panel
161
+ and classes; 13 commands, inline code suggestions, diff viewer, agent progress panel; three
162
+ language-model tools so Copilot Chat can delegate to this engine (`#reviewFileWithAgentNuvira`,
163
+ `#explainWithAgentNuvira`, `#executeGoalWithAgentNuvira`) and a small programmatic API
164
+ (`openChat`, `executeGoal`, `getActiveModel`, `getQuotaStatus`). **[Full usage guide → docs/VSCODE_EXTENSION.md](docs/VSCODE_EXTENSION.md)**
162
165
  - **22-platform multi-channel gateway** — `agent-nuvira gateway start / send / status / alias` runs the agent from Telegram, Discord, Slack, WhatsApp (Cloud API + Baileys personal bridge), Email, Signal, DingTalk, Feishu, WeCom, Mattermost, Matrix, generic Webhook, BlueBubbles (iMessage), ntfy, Teams, Google Chat, Weixin, SMS (Twilio), IRC (two-way), SimpleX (two-way), and Home Assistant — all opt-in via standard env vars per platform, with a guaranteed delivery ledger (auto-retry on `agent-nuvira gateway start`), the dashboard Channels send-test, and a `X/22 platforms configured` status line
163
166
  - **Remote agent federation** — multi-machine collaboration with protocol, server, and client
164
167
  - **Web UI dashboard** — React dashboard with DAG visualization, model health, cost charts, and history browser
165
168
  - **Hybrid model routing** — intelligent model selection based on task complexity, cost, and availability
166
169
  - **Team collaboration** — Git-synced shared config, memory, and review pipelines
167
- - **Agent SDK** — `@agent-nuvira/sdk` npm package for building custom agents with scaffolding CLI
170
+ - **Agent SDK** — `@agent-nuvira/sdk` npm package for building, testing and registering custom
171
+ agents: a provider-agnostic `Agent` base class, `defineAgent()` descriptors that fail at
172
+ definition time rather than at plan time, ten testing helpers that need no key and no network, and
173
+ scaffolding in three shapes. **[Full guide, with examples and an explicit depth statement → docs/AGENT_SDK.md](docs/AGENT_SDK.md)**
168
174
  - **Provider CLI** — `agent-nuvira provider list` with color-coded status table, `agent-nuvira provider health` with per-provider diagnostics
169
175
  - **Provider fallback routing** — automatic failover between providers with circuit breaker and configurable chain
170
176
  - **Startup progress feedback** — first launch never looks like a silent hang: a live spinner reports each startup phase (plugins → history & search → semantic index) as it runs
@@ -226,12 +232,8 @@ This table highlights core capabilities for quick machine parsing and comparison
226
232
  # Install globally
227
233
  npm install -g agent-nuvira
228
234
 
229
- # Or clone and build from source
230
- git clone https://github.com/imdheerajKube/agent-nuvira.git buff
231
- cd agent-nuvira
232
- npm install
233
- npm run build
234
- npm link
235
+ # Or run it without installing anything globally
236
+ npx agent-nuvira chat
235
237
  ```
236
238
 
237
239
  ### One-command setup for new users (recommended)
@@ -2166,9 +2168,10 @@ agent-nuvira chat --provider anthropic
2166
2168
 
2167
2169
  ### Setup
2168
2170
 
2171
+ The source is not published — npm is the distribution channel. This section is kept for the
2172
+ people already working on the private tree.
2173
+
2169
2174
  ```bash
2170
- git clone https://github.com/imdheerajKube/agent-nuvira.git
2171
- cd agent-nuvira
2172
2175
  npm install
2173
2176
  ```
2174
2177
 
@@ -2279,6 +2282,8 @@ npx tsc --noEmit
2279
2282
 
2280
2283
  > 🛠️ **Complete CLI reference:** [docs/COMMANDS.md](./docs/COMMANDS.md) — every command with objective, exact syntax and examples, plus the first-run expectations. [docs/COMMANDS_SURFACE.md](./docs/COMMANDS_SURFACE.md) — the same surface, generated from the live command tree and drift-guarded in CI.
2281
2284
  >
2285
+ > 🧩 **Building your own agent:** [docs/AGENT_SDK.md](./docs/AGENT_SDK.md) — install, the full agent contract, `defineAgent()`'s failure modes, the ten testing helpers, scaffolding, registration, and an explicit **what you get / what you do not get**.  💻 **In the editor:** [docs/VSCODE_EXTENSION.md](./docs/VSCODE_EXTENSION.md) — all 13 commands mapped to the CLI verb each one runs, settings, keybindings, the three language-model tools, the programmatic API, and the same depth statement.
2286
+
2282
2287
  > 📊 **Architecture, strategy & contribution materials:** [ARCHITECTURE.md](./ARCHITECTURE.md) — Modular execution engine design with 7 module specifications, extensibility/observability systems, and phased migration plan. [ARCHITECTURE_DIAGRAMS.md](./ARCHITECTURE_DIAGRAMS.md) — Mermaid-rendered versions of all architecture diagrams (Module Architecture, Extensibility, Safe Execution, Data Flow, Observability Bus). [PRODUCT_STRATEGY.md](./PRODUCT_STRATEGY.md) — Competitive landscape, positioning map, OKR framework, and risk register. [PITCH_DECK.md](./PITCH_DECK.md) — 10-slide investor presentation outline with talking points and data. [CONTRIBUTING.md](./CONTRIBUTING.md) — Quick-reference contributor guide with docs map, dev setup, and contribution workflow. [GATEWAY.md](./docs/GATEWAY.md) — Complete user guide for the 22-platform multi-channel gateway: what it offers, CLI + dashboard setup for every platform, channel aliases, guaranteed delivery, natural-language task dispatch, security, and troubleshooting.
2283
2288
 
2284
2289
  | Phase | Feature | Status |
@@ -2300,7 +2305,7 @@ npx tsc --noEmit
2300
2305
  | 2.5 | Provider health dashboard — `agent-nuvira doctor` | ✅ Complete |
2301
2306
  | 2.6 | Memory compression & pruning — trajectory summarization | ✅ Complete |
2302
2307
  | **Phase 3: Major Upgrades** | | |
2303
- | 3.1 | VS Code extension — 9 commands, inline suggestions, diff viewer, agent progress panel | ✅ Complete |
2308
+ | 3.1 | VS Code extension — 13 commands, inline suggestions, diff viewer, agent progress panel | ✅ Complete |
2304
2309
  | 3.2 | **B1: Chat Panel** — Multi-turn chat with streaming, 6 slash commands, session history, file context | ✅ Complete (v1.33.0) |
2305
2310
  | 3.3 | **B3: Diagnostic → AI Fix** — "Fix with Agent-Nuvira" in lightbulb menu on red squiggles | ✅ Complete (v1.33.0) |
2306
2311
  | 3.4 | **B5: Code Lens Actions** — Test/Review/Explain/Fix actions above functions and classes | ✅ Complete (v1.34.0) |
@@ -2486,12 +2491,12 @@ npx tsc --noEmit
2486
2491
  ### Phase 3: Major Upgrades — Advanced Agent Systems
2487
2492
  | Feature | Description |
2488
2493
  |---------|-------------|
2489
- | **VS Code Extension** | Chat Panel (streaming, slash commands), Diagnostic→AI Fix, Code Lens actions, 9 commands, inline suggestions, diff viewer, agent progress panel |
2494
+ | **VS Code Extension** | Chat Panel (streaming, slash commands), Diagnostic→AI Fix, Code Lens actions, 13 commands, inline suggestions, diff viewer, agent progress panel |
2490
2495
  | **Agent Federation** | Multi-machine collaboration via A2A protocol, server, and client |
2491
2496
  | **Web Dashboard** | React + Recharts + DAG visualization, model health, cost charts |
2492
2497
  | **Hybrid Model Routing** | Complexity-based model selection with cost optimization |
2493
2498
  | **Team Collaboration** | Git-synced shared config, memory, and review pipelines |
2494
- | **Agent SDK** | `@agent-nuvira/sdk` npm package with scaffolding CLI |
2499
+ | **Agent SDK** | [`@agent-nuvira/sdk`](docs/AGENT_SDK.md) npm package with scaffolding CLI |
2495
2500
  | **Provider CLI** | `agent-nuvira provider list/health` with per-provider diagnostics |
2496
2501
  | **Provider Fallback** | Auto-failover with circuit breaker and configurable chain |
2497
2502
  | **Security Scanner** | Detects PII, prompt injections, and dangerous code patterns |
@@ -114,5 +114,7 @@ export interface AgentDescriptor {
114
114
  tags?: string;
115
115
  /** Agent type identifier used in task plans (defaults to kebab-case of name) */
116
116
  agentType?: string;
117
+ /** Optional emoji/icon used by the CLI and progress UI (e.g. "🧩") */
118
+ icon?: string;
117
119
  }
118
120
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8BAAsB,KAAK;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAEjF;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM;IAI/C;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAGhB;AAID;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,UAAU,EAAE,UAAU,KAAK,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAIvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,8BAAsB,KAAK;IACzB,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAE/B,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAEtC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAEjF;;;;;;;;OAQG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM;IAI/C;;;;;OAKG;IACH,OAAO,IAAI,IAAI;CAGhB;AAID;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,UAAU,EAAE,UAAU,KAAK,CAAC;IAC5B,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sEAAsE;IACtE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @agent-nuvira/sdk/define — Ergonomic agent descriptor helper.
3
+ *
4
+ * Hand-writing an `agentDescriptor` object is where custom agents most often go
5
+ * subtly wrong: the `agentType` drifts from the class name, a kebab-case typo
6
+ * silently never matches a plan step, or the name/description disagree with the
7
+ * class they describe. `defineAgent()` removes the duplication — it reads the
8
+ * agent's own `name`/`description`, derives a kebab-case `agentType` when one is
9
+ * not supplied, and validates the result at definition time so a broken
10
+ * descriptor fails where it is written rather than at plan time.
11
+ *
12
+ * ## Usage
13
+ *
14
+ * ```ts
15
+ * import { Agent, defineAgent, type AgentContext, type AgentResult, type LLMCallFn } from '@agent-nuvira/sdk';
16
+ *
17
+ * class CodeFormatter extends Agent {
18
+ * readonly name = 'CodeFormatter';
19
+ * readonly description = 'Formats source code according to project conventions';
20
+ * async execute(context: AgentContext, callLLM: LLMCallFn): Promise<AgentResult> {
21
+ * return { success: true, summary: 'Formatted' };
22
+ * }
23
+ * }
24
+ *
25
+ * export const agentDescriptor = defineAgent({ AgentClass: CodeFormatter, tags: 'code, format' });
26
+ * ```
27
+ *
28
+ * @module @agent-nuvira/sdk/define
29
+ */
30
+ import type { Agent, AgentDescriptor } from './agent.js';
31
+ /** Input to {@link defineAgent}. Only `AgentClass` is required. */
32
+ export interface DefineAgentInput<T extends Agent> {
33
+ /** The agent class (its no-arg constructor is called once to read metadata). */
34
+ AgentClass: new () => T;
35
+ /** Agent type used in task plans. Defaults to kebab-case of the agent name. */
36
+ agentType?: string;
37
+ /** Comma-separated tags for categorization. */
38
+ tags?: string;
39
+ /** Emoji/icon for the agent, used by the CLI and progress UI. */
40
+ icon?: string;
41
+ /** Override the name (defaults to the instance's `name`). */
42
+ name?: string;
43
+ /** Override the description (defaults to the instance's `description`). */
44
+ description?: string;
45
+ }
46
+ /**
47
+ * A descriptor with every field resolved. Unlike {@link AgentDescriptor},
48
+ * `name`, `description` and `agentType` are guaranteed present.
49
+ */
50
+ export interface DefinedAgent extends AgentDescriptor {
51
+ name: string;
52
+ description: string;
53
+ agentType: string;
54
+ }
55
+ /** "CodeFormatter" → "code-formatter"; "HTTPClient" → "http-client". */
56
+ export declare function toKebabCase(pascal: string): string;
57
+ /**
58
+ * Build a validated agent descriptor from an agent class.
59
+ *
60
+ * @throws If the agent declares no name/description, if an explicit `agentType`
61
+ * is not kebab-case, or if the class cannot be instantiated.
62
+ */
63
+ export declare function defineAgent<T extends Agent>(input: DefineAgentInput<T>): DefinedAgent;
64
+ //# sourceMappingURL=define.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/define.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIzD,mEAAmE;AACnE,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,KAAK;IAC/C,gFAAgF;IAChF,UAAU,EAAE,UAAU,CAAC,CAAC;IACxB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlD;AAID;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,YAAY,CAiCrF"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @agent-nuvira/sdk/define — Ergonomic agent descriptor helper.
3
+ *
4
+ * Hand-writing an `agentDescriptor` object is where custom agents most often go
5
+ * subtly wrong: the `agentType` drifts from the class name, a kebab-case typo
6
+ * silently never matches a plan step, or the name/description disagree with the
7
+ * class they describe. `defineAgent()` removes the duplication — it reads the
8
+ * agent's own `name`/`description`, derives a kebab-case `agentType` when one is
9
+ * not supplied, and validates the result at definition time so a broken
10
+ * descriptor fails where it is written rather than at plan time.
11
+ *
12
+ * ## Usage
13
+ *
14
+ * ```ts
15
+ * import { Agent, defineAgent, type AgentContext, type AgentResult, type LLMCallFn } from '@agent-nuvira/sdk';
16
+ *
17
+ * class CodeFormatter extends Agent {
18
+ * readonly name = 'CodeFormatter';
19
+ * readonly description = 'Formats source code according to project conventions';
20
+ * async execute(context: AgentContext, callLLM: LLMCallFn): Promise<AgentResult> {
21
+ * return { success: true, summary: 'Formatted' };
22
+ * }
23
+ * }
24
+ *
25
+ * export const agentDescriptor = defineAgent({ AgentClass: CodeFormatter, tags: 'code, format' });
26
+ * ```
27
+ *
28
+ * @module @agent-nuvira/sdk/define
29
+ */
30
+ // ─── Helpers ────────────────────────────────────────────────────────────────
31
+ /** "CodeFormatter" → "code-formatter"; "HTTPClient" → "http-client". */
32
+ export function toKebabCase(pascal) {
33
+ return pascal
34
+ .replace(/([a-z0-9])([A-Z])/g, '$1-$2')
35
+ .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2')
36
+ .toLowerCase();
37
+ }
38
+ // ─── defineAgent ────────────────────────────────────────────────────────────
39
+ /**
40
+ * Build a validated agent descriptor from an agent class.
41
+ *
42
+ * @throws If the agent declares no name/description, if an explicit `agentType`
43
+ * is not kebab-case, or if the class cannot be instantiated.
44
+ */
45
+ export function defineAgent(input) {
46
+ if (!input || typeof input.AgentClass !== 'function') {
47
+ throw new Error('defineAgent: `AgentClass` is required and must be a class constructor.');
48
+ }
49
+ let instance;
50
+ try {
51
+ instance = new input.AgentClass();
52
+ }
53
+ catch (err) {
54
+ const msg = err instanceof Error ? err.message : String(err);
55
+ throw new Error(`defineAgent: could not instantiate ${input.AgentClass.name || 'agent'} — ${msg}`);
56
+ }
57
+ const name = (input.name ?? instance.name ?? '').trim();
58
+ const description = (input.description ?? instance.description ?? '').trim();
59
+ if (!name)
60
+ throw new Error('defineAgent: agent must declare a non-empty `name`.');
61
+ if (!description)
62
+ throw new Error(`defineAgent: agent '${name}' must declare a non-empty \`description\`.`);
63
+ const agentType = input.agentType ?? toKebabCase(name);
64
+ if (!/^[a-z][a-z0-9-]*$/.test(agentType)) {
65
+ throw new Error(`defineAgent: agentType "${agentType}" must be kebab-case (lowercase letters, digits, hyphens).`);
66
+ }
67
+ return {
68
+ AgentClass: input.AgentClass,
69
+ name,
70
+ description,
71
+ agentType,
72
+ tags: input.tags,
73
+ icon: input.icon,
74
+ };
75
+ }
76
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/agent-sdk/src/define.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAgCH,+EAA+E;AAE/E,wEAAwE;AACxE,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,MAAM;SACV,OAAO,CAAC,oBAAoB,EAAE,OAAO,CAAC;SACtC,OAAO,CAAC,uBAAuB,EAAE,OAAO,CAAC;SACzC,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,+EAA+E;AAE/E;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAkB,KAA0B;IACrE,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,QAAW,CAAC;IAChB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,OAAO,MAAM,GAAG,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7E,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAClF,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,6CAA6C,CAAC,CAAC;IAE5G,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CACb,2BAA2B,SAAS,4DAA4D,CACjG,CAAC;IACJ,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,IAAI;QACJ,WAAW;QACX,SAAS;QACT,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;AACJ,CAAC"}
@@ -24,10 +24,19 @@
24
24
  * - `@agent-nuvira/sdk/agent` — Agent class only
25
25
  * - `@agent-nuvira/sdk/types` — Type definitions only
26
26
  * - `@agent-nuvira/sdk/testing` — Testing utilities (mock context, mock LLM, assertions)
27
+ * - `@agent-nuvira/sdk/register` — Register/unregister a custom agent with the orchestrator
28
+ * - `@agent-nuvira/sdk/scaffold` — Scaffold a new custom agent project
29
+ * - `@agent-nuvira/sdk/define` — `defineAgent()` descriptor helper
27
30
  *
28
31
  * @module @agent-nuvira/sdk
29
32
  */
30
33
  export { Agent } from './agent.js';
31
34
  export type { AgentDescriptor } from './agent.js';
35
+ export { registerAgent, unregisterAgent } from './register.js';
36
+ export type { RegisterOptions, RegisterResult } from './register.js';
37
+ export { scaffold, listTemplates } from './scaffold.js';
38
+ export type { ScaffoldOptions, ScaffoldTemplate } from './scaffold.js';
39
+ export { defineAgent, toKebabCase } from './define.js';
40
+ export type { DefineAgentInput, DefinedAgent } from './define.js';
32
41
  export type { TaskStatus, TaskStep, Artifact, FileChange, AgentMessage, LLMCallFn, InferenceOptions, RateLimitInfo, RateLimitAction, OnRateLimit, AgentContext, AgentResult, OrchestratorOptions, OrchestrationResult, } from './types.js';
33
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,YAAY,EAEV,UAAU,EACV,QAAQ,EAER,QAAQ,EACR,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,gBAAgB,EAEhB,aAAa,EACb,eAAe,EACf,WAAW,EAEX,YAAY,EACZ,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAIrE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIvE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIlE,YAAY,EAEV,UAAU,EACV,QAAQ,EAER,QAAQ,EACR,UAAU,EAEV,YAAY,EAEZ,SAAS,EACT,gBAAgB,EAEhB,aAAa,EACb,eAAe,EACf,WAAW,EAEX,YAAY,EACZ,WAAW,EAEX,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,YAAY,CAAC"}
@@ -24,9 +24,18 @@
24
24
  * - `@agent-nuvira/sdk/agent` — Agent class only
25
25
  * - `@agent-nuvira/sdk/types` — Type definitions only
26
26
  * - `@agent-nuvira/sdk/testing` — Testing utilities (mock context, mock LLM, assertions)
27
+ * - `@agent-nuvira/sdk/register` — Register/unregister a custom agent with the orchestrator
28
+ * - `@agent-nuvira/sdk/scaffold` — Scaffold a new custom agent project
29
+ * - `@agent-nuvira/sdk/define` — `defineAgent()` descriptor helper
27
30
  *
28
31
  * @module @agent-nuvira/sdk
29
32
  */
30
33
  // ─── Agent Base Class ───────────────────────────────────────────────────────
31
34
  export { Agent } from './agent.js';
35
+ // ─── Registration ───────────────────────────────────────────────────────────
36
+ export { registerAgent, unregisterAgent } from './register.js';
37
+ // ─── Scaffolding ────────────────────────────────────────────────────────────
38
+ export { scaffold, listTemplates } from './scaffold.js';
39
+ // ─── Descriptor Helper ──────────────────────────────────────────────────────
40
+ export { defineAgent, toKebabCase } from './define.js';
32
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent-sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/agent-sdk/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,+EAA+E;AAE/E,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAG/D,+EAA+E;AAE/E,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAGxD,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -24,6 +24,17 @@ export interface ScaffoldOptions {
24
24
  /** Agent type identifier for task plans (default: kebab-case of agentName) */
25
25
  agentType?: string;
26
26
  }
27
+ /**
28
+ * The SDK version a scaffolded project depends on.
29
+ *
30
+ * Kept as one constant, and deliberately in step with the SDK's own
31
+ * `package.json`: the scaffolded project is the first thing a consumer installs,
32
+ * and a template that pinned a stale major would build a project against an SDK
33
+ * that does not match the CLI which produced it — the exact mismatch that makes
34
+ * a custom agent fail to load. A test asserts the two agree, so a release that
35
+ * forgets this constant fails rather than shipping.
36
+ */
37
+ export declare const SDK_VERSION = "3.3.4";
27
38
  /**
28
39
  * Scaffold a new custom agent project.
29
40
  *
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAE3E,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAgOD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAoD3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAe5E"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../../src/agent-sdk/src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,CAAC;AAE3E,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmBD;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,UAAU,CAAC;AA+MnC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE,CAoD3D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAe5E"}
@@ -23,6 +23,18 @@ function toKebabCase(pascal) {
23
23
  function toCamelCase(pascal) {
24
24
  return pascal.charAt(0).toLowerCase() + pascal.slice(1);
25
25
  }
26
+ // ─── SDK version pin ────────────────────────────────────────────────────────
27
+ /**
28
+ * The SDK version a scaffolded project depends on.
29
+ *
30
+ * Kept as one constant, and deliberately in step with the SDK's own
31
+ * `package.json`: the scaffolded project is the first thing a consumer installs,
32
+ * and a template that pinned a stale major would build a project against an SDK
33
+ * that does not match the CLI which produced it — the exact mismatch that makes
34
+ * a custom agent fail to load. A test asserts the two agree, so a release that
35
+ * forgets this constant fails rather than shipping.
36
+ */
37
+ export const SDK_VERSION = '3.3.4';
26
38
  // ─── Templates ──────────────────────────────────────────────────────────────
27
39
  const PACKAGE_JSON_TEMPLATE = (opts) => `{
28
40
  "name": "${toKebabCase(opts.agentName)}-agent",
@@ -38,7 +50,7 @@ const PACKAGE_JSON_TEMPLATE = (opts) => `{
38
50
  "test:watch": "vitest"
39
51
  },
40
52
  "dependencies": {
41
- "@agent-nuvira/sdk": "^1.0.0"
53
+ "@agent-nuvira/sdk": "^${SDK_VERSION}"
42
54
  },
43
55
  "devDependencies": {
44
56
  "typescript": "^5.3.0",
@@ -69,7 +81,7 @@ const AGENT_SRC_TEMPLATE = (opts) => {
69
81
  * Generated by \`nuvira sdk scaffold\`
70
82
  */
71
83
 
72
- import { Agent, type AgentContext, type AgentResult, type LLMCallFn } from '@agent-nuvira/sdk';
84
+ import { Agent, defineAgent, type AgentContext, type AgentResult, type LLMCallFn } from '@agent-nuvira/sdk';
73
85
 
74
86
  export class ${opts.agentName} extends Agent {
75
87
  readonly name = '${opts.agentName}';
@@ -108,13 +120,11 @@ Please complete the task described in the goal.\`;
108
120
  * Agent descriptor for registering this agent in the system.
109
121
  * Export this to allow automatic registration.
110
122
  */
111
- export const agentDescriptor = {
123
+ export const agentDescriptor = defineAgent({
112
124
  AgentClass: ${opts.agentName},
113
- name: '${opts.agentName}',
114
- description: '${opts.description}',
115
125
  agentType: '${agentType}',
116
126
  tags: 'custom',
117
- };
127
+ });
118
128
  `;
119
129
  };
120
130
  const AGENT_INDEX_TEMPLATE = (opts) => `/**
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/agent-sdk/src/scaffold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAqBjC,+EAA+E;AAE/E,iFAAiF;AACjF,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM;SACV,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,WAAW,EAAE;SACb,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACvB,CAAC;AAED,+EAA+E;AAC/E,SAAS,WAAW,CAAC,MAAc;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,+EAA+E;AAE/E,MAAM,qBAAqB,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC;aAC5C,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;;oBAEpB,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;EAiBlC,CAAC;AAEH,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;EAezB,CAAC;AAEH,MAAM,kBAAkB,GAAG,CAAC,IAAqB,EAAE,EAAE;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChE,OAAO;KACJ,IAAI,CAAC,SAAS,MAAM,IAAI,CAAC,WAAW;;;;;;;eAO1B,IAAI,CAAC,SAAS;qBACR,IAAI,CAAC,SAAS;4BACP,IAAI,CAAC,WAAW;;;;;;;;mCAQT,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA4BjC,IAAI,CAAC,SAAS;WACnB,IAAI,CAAC,SAAS;kBACP,IAAI,CAAC,WAAW;gBAClB,SAAS;;;CAGxB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC;KACnD,IAAI,CAAC,SAAS;;;;WAIR,IAAI,CAAC,SAAS,+BAA+B,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;CAClF,CAAC;AAEF,MAAM,sBAAsB,GAAG;;;;;;;;CAQ9B,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC;KAClD,IAAI,CAAC,SAAS;;;;;WAKR,IAAI,CAAC,SAAS,mBAAmB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;YAU3D,IAAI,CAAC,SAAS;sBACJ,IAAI,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCnC,CAAC;AAEF,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAW3B,CAAC;AAEF,MAAM,yBAAyB,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC;KACxD,IAAI,CAAC,SAAS;;;;;;;CAOlB,CAAC;AAEF,+EAA+E;AAE/E,SAAS,SAAS,CAAC,MAAc,EAAE,QAAgB,EAAE,OAAe;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,OAAO,CAAC,CAAS;IACxB,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC1C,CAAC;AAED,+EAA+E;AAE/E;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAwB;IAC/C,MAAM,EACJ,MAAM,EACN,SAAS,EACT,WAAW,EACX,QAAQ,GAAG,YAAY,EACvB,SAAS,GACV,GAAG,OAAO,CAAC;IAEZ,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CACb,uBAAuB,SAAS,6DAA6D,CAC9F,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAClG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACnH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACjG,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAClG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC,CAAC,CAAC;YACnE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,kBAAkB,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAC1E,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACnH,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,oBAAoB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACjG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3H,MAAM;QACR,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,yBAAyB,CAAC,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;YACtG,MAAM;QACR,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL;YACE,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,4DAA4D;SAC1E;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,4EAA4E;SAC1F;QACD;YACE,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,yEAAyE;SACvF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../../src/agent-sdk/src/scaffold.ts"],"names":[],"mappings":"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"}
@@ -48,6 +48,15 @@ export interface RunResult {
48
48
  dependencyInstallTool?: string;
49
49
  /** Whether the tool itself had to be installed first (e.g. Homebrew) */
50
50
  dependencyInstallToolInstalled?: boolean;
51
+ /**
52
+ * True when the command exited 0 while provably doing nothing — `zip` matching
53
+ * none of its inputs, `git` with nothing to commit. A caller must not treat an
54
+ * exit code as evidence of a deliverable when this is set (
55
+ * see `artifact-verification.ts` for the live failure this came from).
56
+ */
57
+ producedNothing?: boolean;
58
+ /** Why the command is considered a no-op, for the trace and the user. */
59
+ noOpReason?: string;
51
60
  }
52
61
  /** A detected dependency-install plan for a project */
53
62
  export interface InstallPlan {
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/agents/agents/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/agents/agents/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+B7C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,+CAA+C;IAC/C,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wEAAwE;IACxE,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yEAAyE;IACzE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,uDAAuD;AACvD,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,4EAA4E;AAC5E,MAAM,WAAW,uBAAuB;IACtC,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,iDAAiD;IAErE,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,CAAY;IAEvB,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAmE9E;;;;;;OAMG;YACW,gBAAgB;IA4C9B;;;OAGG;YACW,iBAAiB;IA6G/B;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;;;;;;;OAQG;IACH,OAAO,CAAC,oBAAoB;IAuB5B;;;OAGG;IACH;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAyBlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IA+HnB,4EAA4E;IAC5E,OAAO,CAAC,sBAAsB;IAyC9B,oFAAoF;IACpF,OAAO,CAAC,wBAAwB;IA+BhC,qDAAqD;IACrD,OAAO,CAAC,sBAAsB;IA0B9B,oDAAoD;IACpD,OAAO,CAAC,qBAAqB;IA2B7B,mDAAmD;IACnD,OAAO,CAAC,oBAAoB;IAoB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAkC7B;;;;;;;;;OASG;IACH,OAAO,CAAC,mBAAmB;YA2Eb,aAAa;IAmM3B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAKvB;;;;;;;;OAQG;YACW,sBAAsB;IA8EpC;;;;;;;OAOG;YACW,gBAAgB;IAkG9B;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;IA0B9B;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;;;;;;;;;;;OAaG;YACW,gBAAgB;CA0C/B"}
@@ -29,6 +29,7 @@ import { SandboxManager } from '../../sandbox/manager.js';
29
29
  import { detectProjectImage } from '../../sandbox/images.js';
30
30
  import { getSandboxConfig } from '../../sandbox/types.js';
31
31
  import { referenceDocsFor } from '../reference-docs.js';
32
+ import { detectNoOpCommand } from '../artifact-verification.js';
32
33
  import { isKnownSystemTool, manualInstallSteps, promptToolInstall, toolInstallCommand, } from '../../cli/tool-install-prompt.js';
33
34
  /** Maximum stdout/stderr length to store in context metadata */
34
35
  const MAX_OUTPUT_LENGTH = 10_000;
@@ -186,9 +187,15 @@ export class RunnerAgent extends Agent {
186
187
  logger.info(` Running (Docker): ${command}`);
187
188
  }
188
189
  const result = await sandboxManager.runCommand(containerId, command, timeoutMs);
189
- // Build run result from sandbox result
190
+ // Build run result from sandbox result. Same question as the host path:
191
+ // a successful exit is not evidence that anything was produced.
192
+ const noOpReason = result.success
193
+ ? detectNoOpCommand(command, result.stdout, result.stderr)
194
+ : null;
190
195
  const runResult = {
191
196
  success: result.success,
197
+ producedNothing: noOpReason !== null,
198
+ noOpReason: noOpReason ?? undefined,
192
199
  command,
193
200
  exitCode: result.exitCode,
194
201
  stdout: result.stdout.slice(0, MAX_OUTPUT_LENGTH),
@@ -219,12 +226,15 @@ export class RunnerAgent extends Agent {
219
226
  // Clean up
220
227
  await sandboxManager.destroyContainer(containerId).catch(() => { });
221
228
  return {
222
- success: result.exitCode === 0,
223
- summary: result.exitCode === 0
224
- ? `✅ Command succeeded (Docker): ${command}`
225
- : `❌ Command failed (exit ${result.exitCode}): ${command}`,
229
+ // A command that matched nothing is not a completed step, even at exit 0.
230
+ success: result.exitCode === 0 && noOpReason === null,
231
+ summary: noOpReason !== null
232
+ ? `⚠️ Command exited 0 but did nothing (Docker): ${noOpReason} — ${command}`
233
+ : result.exitCode === 0
234
+ ? `✅ Command succeeded (Docker): ${command}`
235
+ : `❌ Command failed (exit ${result.exitCode}): ${command}`,
226
236
  details: lines.join('\n'),
227
- error: result.error || undefined,
237
+ error: noOpReason ?? (result.error || undefined),
228
238
  };
229
239
  }
230
240
  catch (err) {
@@ -888,8 +898,15 @@ export class RunnerAgent extends Agent {
888
898
  }
889
899
  }
890
900
  }
901
+ // Exit code 0 answers "did the process fail?", not "did it do anything?".
902
+ // `zip` prints `zip warning: name not matched` for every input it could not
903
+ // find and still exits 0 — which is precisely how a 22-byte empty archive was
904
+ // recorded as a finished deliverable. Ask the output as well as the status.
905
+ const noOpReason = exitCode === 0 ? detectNoOpCommand(command, stdout, stderr) : null;
891
906
  const runResult = {
892
907
  success: exitCode === 0,
908
+ producedNothing: noOpReason !== null,
909
+ noOpReason: noOpReason ?? undefined,
893
910
  command,
894
911
  exitCode,
895
912
  stdout: stdout.slice(0, MAX_OUTPUT_LENGTH),
@@ -930,12 +947,17 @@ export class RunnerAgent extends Agent {
930
947
  lines.push(`... (${stderr.length - 500} more chars)`);
931
948
  }
932
949
  return {
933
- success: exitCode === 0,
934
- summary: exitCode === 0
935
- ? `✅ Command succeeded: ${command}`
936
- : toolBlockError
937
- ? `❌ Required tool not available: ${command}`
938
- : `❌ Command failed (exit ${exitCode}): ${command}`,
950
+ // The step's outcome, not the process's. `zip` exits 0 after failing to
951
+ // find every input it was given, so an exit code alone would let a
952
+ // fabricated deliverable through as a success.
953
+ success: exitCode === 0 && noOpReason === null,
954
+ summary: noOpReason !== null
955
+ ? `⚠️ Command exited 0 but did nothing: ${noOpReason} — ${command}`
956
+ : exitCode === 0
957
+ ? `✅ Command succeeded: ${command}`
958
+ : toolBlockError
959
+ ? `❌ Required tool not available: ${command}`
960
+ : `❌ Command failed (exit ${exitCode}): ${command}`,
939
961
  details: lines.join('\n'),
940
962
  error: (toolBlockError || execError) && exitCode !== 0 ? (toolBlockError || execError) : undefined,
941
963
  };