groundswell 0.0.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (554) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +26 -9
  3. package/dist/cache/cache-key.d.ts +86 -0
  4. package/dist/cache/cache-key.d.ts.map +1 -0
  5. package/dist/cache/cache-key.js +204 -0
  6. package/dist/cache/cache-key.js.map +1 -0
  7. package/dist/cache/cache.d.ts +104 -0
  8. package/dist/cache/cache.d.ts.map +1 -0
  9. package/dist/cache/cache.js +179 -0
  10. package/dist/cache/cache.js.map +1 -0
  11. package/{src/cache/index.ts → dist/cache/index.d.ts} +1 -1
  12. package/dist/cache/index.d.ts.map +1 -0
  13. package/dist/cache/index.js +6 -0
  14. package/dist/cache/index.js.map +1 -0
  15. package/dist/core/agent.d.ts +203 -0
  16. package/dist/core/agent.d.ts.map +1 -0
  17. package/dist/core/agent.js +833 -0
  18. package/dist/core/agent.js.map +1 -0
  19. package/{src/core/context.ts → dist/core/context.d.ts} +16 -67
  20. package/dist/core/context.d.ts.map +1 -0
  21. package/dist/core/context.js +80 -0
  22. package/dist/core/context.js.map +1 -0
  23. package/dist/core/event-tree.d.ts +72 -0
  24. package/dist/core/event-tree.d.ts.map +1 -0
  25. package/dist/core/event-tree.js +211 -0
  26. package/dist/core/event-tree.js.map +1 -0
  27. package/{src/core/factory.ts → dist/core/factory.d.ts} +6 -27
  28. package/dist/core/factory.d.ts.map +1 -0
  29. package/dist/core/factory.js +110 -0
  30. package/dist/core/factory.js.map +1 -0
  31. package/{src/core/index.ts → dist/core/index.d.ts} +2 -10
  32. package/dist/core/index.d.ts.map +1 -0
  33. package/dist/core/index.js +9 -0
  34. package/dist/core/index.js.map +1 -0
  35. package/dist/core/logger.d.ts +50 -0
  36. package/dist/core/logger.d.ts.map +1 -0
  37. package/dist/core/logger.js +91 -0
  38. package/dist/core/logger.js.map +1 -0
  39. package/dist/core/mcp-handler.d.ts +127 -0
  40. package/dist/core/mcp-handler.d.ts.map +1 -0
  41. package/dist/core/mcp-handler.js +323 -0
  42. package/dist/core/mcp-handler.js.map +1 -0
  43. package/dist/core/prompt.d.ts +80 -0
  44. package/dist/core/prompt.d.ts.map +1 -0
  45. package/dist/core/prompt.js +120 -0
  46. package/dist/core/prompt.js.map +1 -0
  47. package/dist/core/workflow-context.d.ts +61 -0
  48. package/dist/core/workflow-context.d.ts.map +1 -0
  49. package/dist/core/workflow-context.js +358 -0
  50. package/dist/core/workflow-context.js.map +1 -0
  51. package/dist/core/workflow.d.ts +543 -0
  52. package/dist/core/workflow.d.ts.map +1 -0
  53. package/dist/core/workflow.js +986 -0
  54. package/dist/core/workflow.js.map +1 -0
  55. package/dist/debugger/event-replayer.d.ts +422 -0
  56. package/dist/debugger/event-replayer.d.ts.map +1 -0
  57. package/dist/debugger/event-replayer.js +639 -0
  58. package/dist/debugger/event-replayer.js.map +1 -0
  59. package/dist/debugger/index.d.ts +2 -0
  60. package/dist/debugger/index.d.ts.map +1 -0
  61. package/{src/debugger/index.ts → dist/debugger/index.js} +1 -0
  62. package/dist/debugger/index.js.map +1 -0
  63. package/dist/debugger/tree-debugger.d.ts +240 -0
  64. package/dist/debugger/tree-debugger.d.ts.map +1 -0
  65. package/dist/debugger/tree-debugger.js +620 -0
  66. package/dist/debugger/tree-debugger.js.map +1 -0
  67. package/dist/decorators/index.d.ts +4 -0
  68. package/dist/decorators/index.d.ts.map +1 -0
  69. package/{src/decorators/index.ts → dist/decorators/index.js} +1 -0
  70. package/dist/decorators/index.js.map +1 -0
  71. package/dist/decorators/observed-state.d.ts +32 -0
  72. package/dist/decorators/observed-state.d.ts.map +1 -0
  73. package/dist/decorators/observed-state.js +79 -0
  74. package/dist/decorators/observed-state.js.map +1 -0
  75. package/dist/decorators/step.d.ts +15 -0
  76. package/dist/decorators/step.d.ts.map +1 -0
  77. package/dist/decorators/step.js +192 -0
  78. package/dist/decorators/step.js.map +1 -0
  79. package/dist/decorators/task.d.ts +50 -0
  80. package/dist/decorators/task.d.ts.map +1 -0
  81. package/dist/decorators/task.js +118 -0
  82. package/dist/decorators/task.js.map +1 -0
  83. package/dist/examples/index.d.ts +3 -0
  84. package/dist/examples/index.d.ts.map +1 -0
  85. package/{src/examples/index.ts → dist/examples/index.js} +1 -0
  86. package/dist/examples/index.js.map +1 -0
  87. package/dist/examples/tdd-orchestrator.d.ts +15 -0
  88. package/dist/examples/tdd-orchestrator.d.ts.map +1 -0
  89. package/dist/examples/tdd-orchestrator.js +121 -0
  90. package/dist/examples/tdd-orchestrator.js.map +1 -0
  91. package/dist/examples/test-cycle-workflow.d.ts +14 -0
  92. package/dist/examples/test-cycle-workflow.d.ts.map +1 -0
  93. package/dist/examples/test-cycle-workflow.js +116 -0
  94. package/dist/examples/test-cycle-workflow.js.map +1 -0
  95. package/dist/harnesses/claude-code-harness.d.ts +391 -0
  96. package/dist/harnesses/claude-code-harness.d.ts.map +1 -0
  97. package/dist/harnesses/claude-code-harness.js +1076 -0
  98. package/dist/harnesses/claude-code-harness.js.map +1 -0
  99. package/dist/harnesses/harness-registry.d.ts +440 -0
  100. package/dist/harnesses/harness-registry.d.ts.map +1 -0
  101. package/dist/harnesses/harness-registry.js +543 -0
  102. package/dist/harnesses/harness-registry.js.map +1 -0
  103. package/dist/harnesses/index.d.ts +12 -0
  104. package/dist/harnesses/index.d.ts.map +1 -0
  105. package/dist/harnesses/index.js +11 -0
  106. package/dist/harnesses/index.js.map +1 -0
  107. package/dist/harnesses/pi-harness.d.ts +219 -0
  108. package/dist/harnesses/pi-harness.d.ts.map +1 -0
  109. package/dist/harnesses/pi-harness.js +676 -0
  110. package/dist/harnesses/pi-harness.js.map +1 -0
  111. package/dist/harnesses/pi-schema-converter.d.ts +24 -0
  112. package/dist/harnesses/pi-schema-converter.d.ts.map +1 -0
  113. package/dist/harnesses/pi-schema-converter.js +81 -0
  114. package/dist/harnesses/pi-schema-converter.js.map +1 -0
  115. package/dist/harnesses/register-defaults.d.ts +24 -0
  116. package/dist/harnesses/register-defaults.d.ts.map +1 -0
  117. package/dist/harnesses/register-defaults.js +40 -0
  118. package/dist/harnesses/register-defaults.js.map +1 -0
  119. package/dist/harnesses/session-store.d.ts +201 -0
  120. package/dist/harnesses/session-store.d.ts.map +1 -0
  121. package/dist/harnesses/session-store.js +254 -0
  122. package/dist/harnesses/session-store.js.map +1 -0
  123. package/dist/index.d.ts +37 -0
  124. package/dist/index.d.ts.map +1 -0
  125. package/dist/index.js +57 -0
  126. package/dist/index.js.map +1 -0
  127. package/dist/reflection/index.d.ts +5 -0
  128. package/dist/reflection/index.d.ts.map +1 -0
  129. package/{src/reflection/index.ts → dist/reflection/index.js} +1 -1
  130. package/dist/reflection/index.js.map +1 -0
  131. package/dist/reflection/reflection.d.ts +84 -0
  132. package/dist/reflection/reflection.d.ts.map +1 -0
  133. package/dist/reflection/reflection.js +344 -0
  134. package/dist/reflection/reflection.js.map +1 -0
  135. package/dist/tools/index.d.ts +6 -0
  136. package/dist/tools/index.d.ts.map +1 -0
  137. package/dist/tools/index.js +11 -0
  138. package/dist/tools/index.js.map +1 -0
  139. package/dist/tools/introspection.d.ts +165 -0
  140. package/dist/tools/introspection.d.ts.map +1 -0
  141. package/dist/tools/introspection.js +324 -0
  142. package/dist/tools/introspection.js.map +1 -0
  143. package/dist/types/agent.d.ts +1317 -0
  144. package/dist/types/agent.d.ts.map +1 -0
  145. package/dist/types/agent.js +423 -0
  146. package/dist/types/agent.js.map +1 -0
  147. package/dist/types/decorators.d.ts +40 -0
  148. package/dist/types/decorators.d.ts.map +1 -0
  149. package/dist/types/decorators.js +2 -0
  150. package/dist/types/decorators.js.map +1 -0
  151. package/dist/types/error-strategy.d.ts +13 -0
  152. package/dist/types/error-strategy.d.ts.map +1 -0
  153. package/dist/types/error-strategy.js +2 -0
  154. package/dist/types/error-strategy.js.map +1 -0
  155. package/dist/types/error.d.ts +20 -0
  156. package/dist/types/error.d.ts.map +1 -0
  157. package/dist/types/error.js +2 -0
  158. package/dist/types/error.js.map +1 -0
  159. package/dist/types/events.d.ts +113 -0
  160. package/dist/types/events.d.ts.map +1 -0
  161. package/dist/types/events.js +2 -0
  162. package/dist/types/events.js.map +1 -0
  163. package/dist/types/harnesses.d.ts +474 -0
  164. package/dist/types/harnesses.d.ts.map +1 -0
  165. package/dist/types/harnesses.js +2 -0
  166. package/dist/types/harnesses.js.map +1 -0
  167. package/dist/types/index.d.ts +23 -0
  168. package/dist/types/index.d.ts.map +1 -0
  169. package/dist/types/index.js +8 -0
  170. package/dist/types/index.js.map +1 -0
  171. package/dist/types/logging.d.ts +24 -0
  172. package/dist/types/logging.d.ts.map +1 -0
  173. package/dist/types/logging.js +2 -0
  174. package/dist/types/logging.js.map +1 -0
  175. package/dist/types/observer.d.ts +18 -0
  176. package/dist/types/observer.d.ts.map +1 -0
  177. package/dist/types/observer.js +2 -0
  178. package/dist/types/observer.js.map +1 -0
  179. package/dist/types/prompt.d.ts +31 -0
  180. package/dist/types/prompt.d.ts.map +1 -0
  181. package/dist/types/prompt.js +6 -0
  182. package/dist/types/prompt.js.map +1 -0
  183. package/dist/types/providers.d.ts +691 -0
  184. package/dist/types/providers.d.ts.map +1 -0
  185. package/dist/types/providers.js +14 -0
  186. package/dist/types/providers.js.map +1 -0
  187. package/dist/types/reflection.d.ts +96 -0
  188. package/dist/types/reflection.d.ts.map +1 -0
  189. package/dist/types/reflection.js +24 -0
  190. package/dist/types/reflection.js.map +1 -0
  191. package/dist/types/restart.d.ts +132 -0
  192. package/dist/types/restart.d.ts.map +1 -0
  193. package/dist/types/restart.js +2 -0
  194. package/dist/types/restart.js.map +1 -0
  195. package/dist/types/sdk-primitives.d.ts +118 -0
  196. package/dist/types/sdk-primitives.d.ts.map +1 -0
  197. package/dist/types/sdk-primitives.js +6 -0
  198. package/dist/types/sdk-primitives.js.map +1 -0
  199. package/{src/types/snapshot.ts → dist/types/snapshot.d.ts} +5 -5
  200. package/dist/types/snapshot.d.ts.map +1 -0
  201. package/dist/types/snapshot.js +2 -0
  202. package/dist/types/snapshot.js.map +1 -0
  203. package/dist/types/streaming.d.ts +194 -0
  204. package/dist/types/streaming.d.ts.map +1 -0
  205. package/dist/types/streaming.js +67 -0
  206. package/dist/types/streaming.js.map +1 -0
  207. package/dist/types/workflow-context.d.ts +275 -0
  208. package/dist/types/workflow-context.d.ts.map +1 -0
  209. package/dist/types/workflow-context.js +8 -0
  210. package/dist/types/workflow-context.js.map +1 -0
  211. package/dist/types/workflow.d.ts +30 -0
  212. package/dist/types/workflow.d.ts.map +1 -0
  213. package/dist/types/workflow.js +2 -0
  214. package/dist/types/workflow.js.map +1 -0
  215. package/dist/utils/agent-validation.d.ts +88 -0
  216. package/dist/utils/agent-validation.d.ts.map +1 -0
  217. package/dist/utils/agent-validation.js +87 -0
  218. package/dist/utils/agent-validation.js.map +1 -0
  219. package/dist/utils/delay.d.ts +7 -0
  220. package/dist/utils/delay.d.ts.map +1 -0
  221. package/dist/utils/delay.js +9 -0
  222. package/dist/utils/delay.js.map +1 -0
  223. package/dist/utils/harness-config.d.ts +180 -0
  224. package/dist/utils/harness-config.d.ts.map +1 -0
  225. package/dist/utils/harness-config.js +311 -0
  226. package/dist/utils/harness-config.js.map +1 -0
  227. package/dist/utils/id.d.ts +6 -0
  228. package/dist/utils/id.d.ts.map +1 -0
  229. package/dist/utils/id.js +12 -0
  230. package/dist/utils/id.js.map +1 -0
  231. package/dist/utils/index.d.ts +13 -0
  232. package/dist/utils/index.d.ts.map +1 -0
  233. package/dist/utils/index.js +11 -0
  234. package/dist/utils/index.js.map +1 -0
  235. package/dist/utils/model-spec.d.ts +110 -0
  236. package/dist/utils/model-spec.d.ts.map +1 -0
  237. package/dist/utils/model-spec.js +149 -0
  238. package/dist/utils/model-spec.js.map +1 -0
  239. package/dist/utils/observable.d.ts +54 -0
  240. package/dist/utils/observable.d.ts.map +1 -0
  241. package/dist/utils/observable.js +82 -0
  242. package/dist/utils/observable.js.map +1 -0
  243. package/dist/utils/provider-config.d.ts +10 -0
  244. package/dist/utils/provider-config.d.ts.map +1 -0
  245. package/dist/utils/provider-config.js +10 -0
  246. package/dist/utils/provider-config.js.map +1 -0
  247. package/dist/utils/restart-analysis.d.ts +202 -0
  248. package/dist/utils/restart-analysis.d.ts.map +1 -0
  249. package/dist/utils/restart-analysis.js +426 -0
  250. package/dist/utils/restart-analysis.js.map +1 -0
  251. package/dist/utils/session-serialization.d.ts +118 -0
  252. package/dist/utils/session-serialization.d.ts.map +1 -0
  253. package/dist/utils/session-serialization.js +217 -0
  254. package/dist/utils/session-serialization.js.map +1 -0
  255. package/dist/utils/workflow-error-utils.d.ts +22 -0
  256. package/dist/utils/workflow-error-utils.d.ts.map +1 -0
  257. package/dist/utils/workflow-error-utils.js +45 -0
  258. package/dist/utils/workflow-error-utils.js.map +1 -0
  259. package/package.json +34 -5
  260. package/.claude/commands/subtask-planning/prp-base-create.md +0 -120
  261. package/.claude/commands/subtask-planning/prp-base-execute.md +0 -65
  262. package/.claude/commands/task-breakdown.md +0 -94
  263. package/.claude/settings.local.json +0 -9
  264. package/.claude/system_prompts/task-breakdown.md +0 -101
  265. package/CHANGELOG.md +0 -188
  266. package/PRD.md +0 -543
  267. package/PRPs/001-hierarchical-workflow-engine.md +0 -2438
  268. package/PRPs/PRDs/002-agent-prompt.md +0 -390
  269. package/PRPs/PRDs/003-agent-prompt.md +0 -943
  270. package/PRPs/PRDs/004-agent-prompt.md +0 -1136
  271. package/PRPs/PRDs/tasks-001.json +0 -492
  272. package/PRPs/README.md +0 -83
  273. package/PRPs/templates/prp_base.md +0 -222
  274. package/docs/agent.md +0 -422
  275. package/docs/prompt.md +0 -419
  276. package/docs/workflow.md +0 -600
  277. package/examples/README.md +0 -258
  278. package/examples/examples/01-basic-workflow.ts +0 -100
  279. package/examples/examples/02-decorator-options.ts +0 -217
  280. package/examples/examples/03-parent-child.ts +0 -241
  281. package/examples/examples/04-observers-debugger.ts +0 -340
  282. package/examples/examples/05-error-handling.ts +0 -387
  283. package/examples/examples/06-concurrent-tasks.ts +0 -352
  284. package/examples/examples/07-agent-loops.ts +0 -432
  285. package/examples/examples/08-sdk-features.ts +0 -667
  286. package/examples/examples/09-reflection.ts +0 -573
  287. package/examples/examples/10-introspection.ts +0 -550
  288. package/examples/examples/11-reparenting-workflows.ts +0 -269
  289. package/examples/index.ts +0 -147
  290. package/examples/utils/helpers.ts +0 -57
  291. package/package-lock.json +0 -2398
  292. package/plan/001_d3bb02af4886/TEST_RESULTS.md +0 -259
  293. package/plan/001_d3bb02af4886/backlog.json +0 -867
  294. package/plan/001_d3bb02af4886/bug_fix_tasks.json +0 -484
  295. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S1/PRP.md +0 -488
  296. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S2/PRP.md +0 -581
  297. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M1T1S3/PRP.md +0 -687
  298. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S1/PRP.md +0 -492
  299. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/PRP.md +0 -932
  300. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/concurrent_error_testing_patterns.md +0 -1109
  301. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/vitest_concurrent_testing.md +0 -802
  302. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T1S3/research/workflow_engine_test_references.md +0 -603
  303. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S1/PRP.md +0 -564
  304. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S3/PRP.md +0 -518
  305. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T2S4/PRP.md +0 -1252
  306. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/PRP.md +0 -364
  307. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/CODEBASE_INVENTORY.md +0 -114
  308. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/DECORATOR_DOCUMENTATION_PATTERNS.md +0 -205
  309. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/PRD_LOCATION_ANALYSIS.md +0 -199
  310. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M2T3S1/research/ULTRATHINK_PRP_PLAN.md +0 -134
  311. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/PRP.md +0 -495
  312. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S1/research/console_error_inventory.md +0 -435
  313. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S2/PRP.md +0 -506
  314. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T1S3/PRP.md +0 -612
  315. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/PRP.md +0 -558
  316. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T2S2/research/external_research.md +0 -788
  317. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S2/PRP.md +0 -460
  318. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T3S3/PRP.md +0 -454
  319. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/PRP.md +0 -520
  320. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/RECOMMENDATION.md +0 -417
  321. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/external_workflow_engines_research.md +0 -760
  322. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S1/research/security_implications_analysis.md +0 -245
  323. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M3T4S2/PRP.md +0 -792
  324. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/PRP.md +0 -535
  325. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S1/TEST_EXECUTION_REPORT.md +0 -190
  326. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/PRP.md +0 -654
  327. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/TEST_FIX_REPORT.md +0 -227
  328. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/KEY_FINDINGS.md +0 -345
  329. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/QUICK_REFERENCE.md +0 -193
  330. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T1S2/research/test_maintenance_research.md +0 -1323
  331. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/BREAKING_CHANGES_AUDIT.md +0 -1011
  332. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S1/PRP.md +0 -927
  333. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/P1M4T3S2/PRP.md +0 -505
  334. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/architecture/logger_child_signature_analysis.md +0 -401
  335. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/child_implementation_research.md +0 -142
  336. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/test_patterns_research.md +0 -112
  337. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S3/vitest_patterns_research.md +0 -159
  338. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/PRP.md +0 -549
  339. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/VERIFICATION_REPORT.md +0 -368
  340. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/edge_case_analysis.md +0 -172
  341. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M1T1S4/usage_inventory.md +0 -175
  342. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S2/PRP.md +0 -696
  343. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T1S4/PRP.md +0 -860
  344. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/PRP.md +0 -1066
  345. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01-testing-aggregated-errors.md +0 -1103
  346. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/01_typescript_error_aggregation_patterns.md +0 -789
  347. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02-error-merge-strategy-testing-guide.md +0 -1098
  348. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/02_aggregate_error_patterns.md +0 -1037
  349. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03-promise-allsettled-testing-patterns.md +0 -916
  350. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/03_error_merging_strategies.md +0 -1045
  351. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/04_github_stackoverflow_examples.md +0 -890
  352. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/05_comprehensive_summary.md +0 -822
  353. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/INDEX.md +0 -668
  354. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/QUICK_REFERENCE.md +0 -706
  355. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/README.md +0 -265
  356. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S2/research/RESEARCH_REPORT.md +0 -655
  357. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T2S4/research/vitest_testing_patterns.md +0 -1103
  358. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M2T3S2/PRP.md +0 -426
  359. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/PRP.md +0 -506
  360. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/QUICK_REFERENCE.md +0 -114
  361. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/RESEARCH_SUMMARY.md +0 -316
  362. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S2/research/vitest_observer_error_logging_best_practices.md +0 -754
  363. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T1S3/PRP.md +0 -612
  364. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/PRP.md +0 -719
  365. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/README.md +0 -215
  366. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S1/analysis.md +0 -765
  367. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T2S3/PRP.md +0 -718
  368. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/DECISION.md +0 -149
  369. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/PRP.md +0 -470
  370. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/ULTRATHINK_PLAN.md +0 -332
  371. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/codebase_workflow_name_analysis.md +0 -167
  372. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/external_best_practices.md +0 -265
  373. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T3S1/research/validation_patterns.md +0 -273
  374. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S1/workflow_engine_ancestry_api_research.md +0 -760
  375. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M3T4S3-PRP.md +0 -434
  376. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S1/PRP.md +0 -717
  377. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/PRP.md +0 -472
  378. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/VALIDATION_REPORT.md +0 -125
  379. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/P1M4T2S2/research/ULTRATHINK_PRP_PLAN.md +0 -301
  380. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/error-logging-best-practices.md +0 -1170
  381. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/research_typescript_partial_and_overloads.md +0 -940
  382. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-quick-reference.md +0 -151
  383. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/docs/vitest-research.md +0 -650
  384. package/plan/001_d3bb02af4886/bugfix/001_e8e04329daf3/prd_snapshot.md +0 -259
  385. package/plan/001_d3bb02af4886/bugfix/P1M1T1S1/PRP.md +0 -457
  386. package/plan/001_d3bb02af4886/bugfix/RESEARCH_SUMMARY.md +0 -346
  387. package/plan/001_d3bb02af4886/bugfix/architecture/codebase_structure.md +0 -311
  388. package/plan/001_d3bb02af4886/bugfix/architecture/concurrent_execution_best_practices.md +0 -1565
  389. package/plan/001_d3bb02af4886/bugfix/architecture/error_handling_patterns.md +0 -288
  390. package/plan/001_d3bb02af4886/bugfix/architecture/promise_all_analysis.md +0 -741
  391. package/plan/001_d3bb02af4886/docs/PRP/P1M1T1S4-functional-workflow-error-state-capture-test.md +0 -652
  392. package/plan/001_d3bb02af4886/docs/PRP/P1P2-PRP.md +0 -527
  393. package/plan/001_d3bb02af4886/docs/PRP/P3P4-PRP.md +0 -1388
  394. package/plan/001_d3bb02af4886/docs/PRP/P4P5-PRP.md +0 -1136
  395. package/plan/001_d3bb02af4886/docs/PRP/PRP.md +0 -527
  396. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S1-PRP.md +0 -415
  397. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S2-PRP.md +0 -378
  398. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M1T2S4-PRP.md +0 -713
  399. package/plan/001_d3bb02af4886/docs/PRP/bugfix/P1M2T1S4-PRP.md +0 -370
  400. package/plan/001_d3bb02af4886/docs/PRP_P1M3T1S3.md +0 -499
  401. package/plan/001_d3bb02af4886/docs/TEST_RESULTS.md +0 -230
  402. package/plan/001_d3bb02af4886/docs/architecture/external_deps.md +0 -358
  403. package/plan/001_d3bb02af4886/docs/architecture/system_context.md +0 -242
  404. package/plan/001_d3bb02af4886/docs/bugfix/ANALYSIS_PRD_VS_IMPLEMENTATION.md +0 -1134
  405. package/plan/001_d3bb02af4886/docs/bugfix/GAP_ANALYSIS_SUMMARY.md +0 -179
  406. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/PRP.md +0 -629
  407. package/plan/001_d3bb02af4886/docs/bugfix/P1M4T2S1/validation-report.md +0 -214
  408. package/plan/001_d3bb02af4886/docs/bugfix/PRP_P1M4T2S3.md +0 -629
  409. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_PRP.md +0 -529
  410. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_QUICK_REFERENCE.md +0 -142
  411. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_README.md +0 -304
  412. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_TEST_RESULTS.md +0 -558
  413. package/plan/001_d3bb02af4886/docs/bugfix/bugfix_VALIDATION_SUMMARY.md +0 -256
  414. package/plan/001_d3bb02af4886/docs/bugfix/system_context.md +0 -346
  415. package/plan/001_d3bb02af4886/docs/bugfix-architecture/bug_analysis.md +0 -415
  416. package/plan/001_d3bb02af4886/docs/bugfix-architecture/implementation_patterns.md +0 -489
  417. package/plan/001_d3bb02af4886/docs/bugfix-architecture/system_context.md +0 -218
  418. package/plan/001_d3bb02af4886/docs/bugfix_INITIATION_SUMMARY.md +0 -380
  419. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_PATTERNS.md +0 -1923
  420. package/plan/001_d3bb02af4886/docs/research/CYCLE_DETECTION_QUICK_REF.md +0 -319
  421. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/codebase-context.md +0 -115
  422. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/cycle-detection-algorithms.md +0 -134
  423. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/test-patterns.md +0 -153
  424. package/plan/001_d3bb02af4886/docs/research/P1M1T2S1/workflow-class.md +0 -132
  425. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_BEST_PRACTICES.md +0 -716
  426. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/DECORATOR_DOCUMENTATION_QUICK_REF.md +0 -186
  427. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/GROUNDSWELL_DECORATOR_EXAMPLES.md +0 -604
  428. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/INDEX.md +0 -213
  429. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/codebase_structure.md +0 -30
  430. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/existing_test_pattern.md +0 -56
  431. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/getRootObservers_implementation.md +0 -53
  432. package/plan/001_d3bb02af4886/docs/research/P1M2T1S4/test_conventions.md +0 -49
  433. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/PRP.md +0 -958
  434. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/QUICK_REFERENCE.md +0 -339
  435. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/README.md +0 -305
  436. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/SUMMARY.md +0 -433
  437. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/bidirectional-tree-consistency-testing.md +0 -1574
  438. package/plan/001_d3bb02af4886/docs/research/P1M3T1S4/test-pattern-examples.md +0 -1014
  439. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_BEST_PRACTICES.md +0 -1929
  440. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_CODE_PATTERNS.md +0 -857
  441. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_INTEGRATION_GUIDE.md +0 -738
  442. package/plan/001_d3bb02af4886/docs/research/P1P2/LRU_CACHE_RESEARCH_INDEX.md +0 -424
  443. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_INDEX.md +0 -291
  444. package/plan/001_d3bb02af4886/docs/research/P1P2/REFLECTION_RESEARCH_REPORT.md +0 -1342
  445. package/plan/001_d3bb02af4886/docs/research/P1P2/RESEARCH_SUMMARY.md +0 -342
  446. package/plan/001_d3bb02af4886/docs/research/P1P2/anthropic-sdk.md +0 -174
  447. package/plan/001_d3bb02af4886/docs/research/P1P2/async-local-storage.md +0 -200
  448. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-code-patterns.md +0 -1205
  449. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-decision-matrix.md +0 -421
  450. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-implementation-guide.md +0 -1341
  451. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-integration-guide.md +0 -834
  452. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-patterns.md +0 -1468
  453. package/plan/001_d3bb02af4886/docs/research/P1P2/reflection-quick-reference.md +0 -558
  454. package/plan/001_d3bb02af4886/docs/research/P1P2/zod-schema.md +0 -152
  455. package/plan/001_d3bb02af4886/docs/research/P3P4/caching-lru.md +0 -116
  456. package/plan/001_d3bb02af4886/docs/research/P3P4/introspection-tools.md +0 -177
  457. package/plan/001_d3bb02af4886/docs/research/P3P4/reflection-patterns.md +0 -117
  458. package/plan/001_d3bb02af4886/docs/research/P4P5/RESEARCH_SUMMARY.md +0 -151
  459. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_QUICK_REF.md +0 -376
  460. package/plan/001_d3bb02af4886/docs/research/PROMISE_ALLSETTLED_RESEARCH.md +0 -1507
  461. package/plan/001_d3bb02af4886/docs/research/bugfix_typescript_patterns.md +0 -949
  462. package/plan/001_d3bb02af4886/docs/research/error-testing-research.md +0 -619
  463. package/plan/001_d3bb02af4886/docs/research/error_handling_patterns.md +0 -723
  464. package/plan/001_d3bb02af4886/docs/research/general/INTROSPECTION_RESEARCH_SUMMARY.md +0 -378
  465. package/plan/001_d3bb02af4886/docs/research/general/README-INTROSPECTION.md +0 -352
  466. package/plan/001_d3bb02af4886/docs/research/general/agent-introspection-patterns.md +0 -1085
  467. package/plan/001_d3bb02af4886/docs/research/general/introspection-security-guide.md +0 -984
  468. package/plan/001_d3bb02af4886/docs/research/general/introspection-tool-examples.md +0 -875
  469. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/PRP_TEMPLATE.md +0 -460
  470. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/QUICK_REFERENCE.md +0 -324
  471. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/README.md +0 -175
  472. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/RESEARCH_REPORT.md +0 -499
  473. package/plan/001_d3bb02af4886/docs/research/incremental-tree-map-updates/SUMMARY.md +0 -163
  474. package/plan/001_d3bb02af4886/prd_snapshot.md +0 -543
  475. package/plan/bugfix/BUG_FIX_SUMMARY.md +0 -961
  476. package/scripts/generate-llms-full.ts +0 -206
  477. package/src/__tests__/adversarial/attachChild-performance.test.ts +0 -216
  478. package/src/__tests__/adversarial/circular-reference.test.ts +0 -101
  479. package/src/__tests__/adversarial/complex-circular-reference.test.ts +0 -139
  480. package/src/__tests__/adversarial/concurrent-task-failures.test.ts +0 -571
  481. package/src/__tests__/adversarial/deep-analysis.test.ts +0 -729
  482. package/src/__tests__/adversarial/deep-hierarchy-stress.test.ts +0 -213
  483. package/src/__tests__/adversarial/e2e-prd-validation.test.ts +0 -448
  484. package/src/__tests__/adversarial/edge-case.test.ts +0 -703
  485. package/src/__tests__/adversarial/error-merge-strategy.test.ts +0 -760
  486. package/src/__tests__/adversarial/incremental-performance.test.ts +0 -140
  487. package/src/__tests__/adversarial/node-map-update-benchmarks.test.ts +0 -457
  488. package/src/__tests__/adversarial/observer-propagation.test.ts +0 -487
  489. package/src/__tests__/adversarial/parent-validation.test.ts +0 -143
  490. package/src/__tests__/adversarial/prd-12-2-compliance.test.ts +0 -611
  491. package/src/__tests__/adversarial/prd-compliance.test.ts +0 -731
  492. package/src/__tests__/compatibility/backward-compatibility.test.ts +0 -1572
  493. package/src/__tests__/helpers/index.ts +0 -18
  494. package/src/__tests__/helpers/tree-verification.ts +0 -257
  495. package/src/__tests__/integration/agent-workflow.test.ts +0 -256
  496. package/src/__tests__/integration/bidirectional-consistency.test.ts +0 -847
  497. package/src/__tests__/integration/observer-logging.test.ts +0 -643
  498. package/src/__tests__/integration/tree-mirroring.test.ts +0 -151
  499. package/src/__tests__/integration/workflow-reparenting.test.ts +0 -303
  500. package/src/__tests__/unit/agent.test.ts +0 -169
  501. package/src/__tests__/unit/cache-key.test.ts +0 -182
  502. package/src/__tests__/unit/cache.test.ts +0 -172
  503. package/src/__tests__/unit/context.test.ts +0 -217
  504. package/src/__tests__/unit/decorators.test.ts +0 -100
  505. package/src/__tests__/unit/introspection-tools.test.ts +0 -277
  506. package/src/__tests__/unit/logger.test.ts +0 -293
  507. package/src/__tests__/unit/observable.test.ts +0 -321
  508. package/src/__tests__/unit/prompt.test.ts +0 -135
  509. package/src/__tests__/unit/reflection.test.ts +0 -210
  510. package/src/__tests__/unit/tree-debugger-incremental.test.ts +0 -170
  511. package/src/__tests__/unit/tree-debugger.test.ts +0 -85
  512. package/src/__tests__/unit/utils/workflow-error-utils.test.ts +0 -209
  513. package/src/__tests__/unit/workflow-detachChild.test.ts +0 -100
  514. package/src/__tests__/unit/workflow-emitEvent-childDetached.test.ts +0 -153
  515. package/src/__tests__/unit/workflow-isDescendantOf.test.ts +0 -180
  516. package/src/__tests__/unit/workflow.test.ts +0 -357
  517. package/src/cache/cache-key.ts +0 -244
  518. package/src/cache/cache.ts +0 -236
  519. package/src/core/agent.ts +0 -593
  520. package/src/core/event-tree.ts +0 -260
  521. package/src/core/logger.ts +0 -112
  522. package/src/core/mcp-handler.ts +0 -184
  523. package/src/core/prompt.ts +0 -150
  524. package/src/core/workflow-context.ts +0 -351
  525. package/src/core/workflow.ts +0 -540
  526. package/src/debugger/tree-debugger.ts +0 -255
  527. package/src/decorators/observed-state.ts +0 -95
  528. package/src/decorators/step.ts +0 -139
  529. package/src/decorators/task.ts +0 -159
  530. package/src/examples/tdd-orchestrator.ts +0 -65
  531. package/src/examples/test-cycle-workflow.ts +0 -64
  532. package/src/index.ts +0 -142
  533. package/src/reflection/reflection.ts +0 -407
  534. package/src/tools/index.ts +0 -36
  535. package/src/tools/introspection.ts +0 -464
  536. package/src/types/agent.ts +0 -90
  537. package/src/types/decorators.ts +0 -32
  538. package/src/types/error-strategy.ts +0 -13
  539. package/src/types/error.ts +0 -20
  540. package/src/types/events.ts +0 -75
  541. package/src/types/index.ts +0 -55
  542. package/src/types/logging.ts +0 -24
  543. package/src/types/observer.ts +0 -18
  544. package/src/types/prompt.ts +0 -40
  545. package/src/types/reflection.ts +0 -117
  546. package/src/types/sdk-primitives.ts +0 -128
  547. package/src/types/workflow-context.ts +0 -163
  548. package/src/types/workflow.ts +0 -37
  549. package/src/utils/id.ts +0 -11
  550. package/src/utils/index.ts +0 -4
  551. package/src/utils/observable.ts +0 -106
  552. package/src/utils/workflow-error-utils.ts +0 -56
  553. package/tsconfig.json +0 -22
  554. package/vitest.config.ts +0 -16
@@ -0,0 +1,1317 @@
1
+ /**
2
+ * Agent configuration and override types
3
+ * All properties map 1:1 to Anthropic SDK
4
+ */
5
+ import type { Tool, MCPServer, Skill, AgentHooks, TokenUsage } from './sdk-primitives.js';
6
+ import type { ProviderId, ProviderOptions } from './providers.js';
7
+ import type { HarnessId, HarnessOptions } from './harnesses.js';
8
+ import { z } from 'zod';
9
+ /**
10
+ * Configuration for creating an Agent instance
11
+ * All Anthropic SDK properties pass through unchanged
12
+ */
13
+ export interface AgentConfig {
14
+ /** Human-readable name for the agent */
15
+ name?: string;
16
+ /** System prompt for the agent */
17
+ system?: string;
18
+ /** Tools available to the agent */
19
+ tools?: Tool[];
20
+ /** MCP servers to connect */
21
+ mcps?: MCPServer[];
22
+ /** Skills to load */
23
+ skills?: Skill[];
24
+ /** Lifecycle hooks */
25
+ hooks?: AgentHooks;
26
+ /** Environment variables for agent execution */
27
+ env?: Record<string, string>;
28
+ /** Enable reflection capability for this agent */
29
+ enableReflection?: boolean;
30
+ /** Enable caching of prompt responses */
31
+ enableCache?: boolean;
32
+ /**
33
+ * Model identifier for LLM inference
34
+ *
35
+ * Supports two formats:
36
+ * - **Plain format**: `"claude-sonnet-4-20250514"` - Uses default provider
37
+ * - **Qualified format**: `"anthropic/claude-sonnet-4-20250514"` - Explicit provider
38
+ *
39
+ * When a plain model name is used (no provider prefix), the provider
40
+ * is determined by the configuration cascade: prompt override →
41
+ * agent provider → global default.
42
+ *
43
+ * ## Model Specification (PRD 7.8)
44
+ *
45
+ * The `parseModelSpec()` utility parses model strings into:
46
+ * - `provider`: Provider ID (anthropic, claude-code, etc.)
47
+ * - `model`: Base model name without prefix
48
+ * - `raw`: Original input string
49
+ *
50
+ * @example <caption>Plain format (uses default provider)</caption>
51
+ * ```ts
52
+ * const config: AgentConfig = {
53
+ * model: 'claude-sonnet-4-20250514'
54
+ * // Uses provider from cascade
55
+ * };
56
+ * ```
57
+ *
58
+ * @example <caption>Qualified format (explicit provider)</caption>
59
+ * ```ts
60
+ * const config: AgentConfig = {
61
+ * model: 'anthropic/claude-sonnet-4-20250514'
62
+ * // Explicitly uses Anthropic provider
63
+ * };
64
+ * ```
65
+ *
66
+ * @example <caption>Qualified format with Claude Code provider</caption>
67
+ * ```ts
68
+ * const config: AgentConfig = {
69
+ * model: 'anthropic/claude-sonnet-4'
70
+ * // Explicitly uses Anthropic provider
71
+ * };
72
+ * ```
73
+ *
74
+ * @default "claude-sonnet-4-20250514"
75
+ * @see {@link parseModelSpec} for model specification parsing
76
+ * @see {@link ModelSpec} for parsed model structure
77
+ */
78
+ model?: string;
79
+ /** Maximum tokens for responses */
80
+ maxTokens?: number;
81
+ /** Temperature for response generation */
82
+ temperature?: number;
83
+ /** Harness to use (inherits from global; default 'pi'). PRD §7.9. */
84
+ harness?: HarnessId;
85
+ /** Harness-specific options. PRD §7.9. */
86
+ harnessOptions?: HarnessOptions;
87
+ /**
88
+ * Provider to use for this agent
89
+ *
90
+ * @deprecated Since v1.2. Use {@link AgentConfig.harness} (and
91
+ * {@link AgentConfig.harnessOptions} for options) instead. The runtime/harness
92
+ * axis (`'pi'` | `'claude-code'`) is now independent of the LLM provider/model
93
+ * (PRD §7): the harness is chosen separately, and the model string is never
94
+ * harness-qualified. Retained for backward compatibility during the v1.2 migration
95
+ * and removed when the legacy adapters are renamed/deleted (P2.M1 / P4.M1).
96
+ *
97
+ * ```typescript
98
+ * // BEFORE (v1.x)
99
+ * const config: AgentConfig = { provider: 'anthropic' };
100
+ * // AFTER (v1.2)
101
+ * const config: AgentConfig = {
102
+ * harness: 'claude-code',
103
+ * model: 'anthropic/claude-sonnet-4-20250514',
104
+ * };
105
+ * ```
106
+ */
107
+ provider?: ProviderId;
108
+ /**
109
+ * Provider-specific options for this agent
110
+ *
111
+ * @deprecated Since v1.2. Use {@link AgentConfig.harnessOptions} instead.
112
+ *
113
+ * Note: {@link HarnessOptions} is SLIMMED relative to this type — it omits
114
+ * `sessionStore`, `sessionPersistence`, `sessionTtl`, and `sessionPath` (those are
115
+ * now harness-adapter internals; see `src/types/providers.ts` → `ProviderOptions`
116
+ * @deprecated note). Migrating callers that relied on session-persistence config
117
+ * must move it to the concrete harness adapter.
118
+ *
119
+ * The v1.x provider-options merge cascade is superseded by the PRD §7.7 **harness**
120
+ * cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness/harnessOptions →
121
+ * PromptOverrides.harness/harnessOptions), resolved via null-coalescing.
122
+ *
123
+ * ```typescript
124
+ * // BEFORE (v1.x)
125
+ * const config: AgentConfig = {
126
+ * providerOptions: { endpoint: 'https://api.example.com', sessionPersistence: 'file' },
127
+ * };
128
+ * // AFTER (v1.2)
129
+ * const config: AgentConfig = {
130
+ * harnessOptions: { endpoint: 'https://api.example.com', apiKey: process.env.ANTHROPIC_API_KEY },
131
+ * };
132
+ * ```
133
+ */
134
+ providerOptions?: ProviderOptions;
135
+ }
136
+ /**
137
+ * Overrides that can be applied at the prompt level
138
+ * Takes precedence over AgentConfig values
139
+ */
140
+ export interface PromptOverrides {
141
+ /** Override system prompt for this prompt */
142
+ system?: string;
143
+ /** Override tools for this prompt */
144
+ tools?: Tool[];
145
+ /** Override MCPs for this prompt */
146
+ mcps?: MCPServer[];
147
+ /** Override skills for this prompt */
148
+ skills?: Skill[];
149
+ /** Override hooks for this prompt */
150
+ hooks?: AgentHooks;
151
+ /** Override environment variables */
152
+ env?: Record<string, string>;
153
+ /** Override temperature */
154
+ temperature?: number;
155
+ /** Override max tokens */
156
+ maxTokens?: number;
157
+ /** Stop sequences to use */
158
+ stop?: string[];
159
+ /** Disable cache for this prompt */
160
+ disableCache?: boolean;
161
+ /** Enable reflection for this prompt */
162
+ enableReflection?: boolean;
163
+ /** Override model for this prompt */
164
+ model?: string;
165
+ /** Override harness for this prompt (PRD §7.7, §7.9). Highest priority in the harness cascade. */
166
+ harness?: HarnessId;
167
+ /** Override harness options for this prompt (PRD §7.7). Merged via last-write-wins. */
168
+ harnessOptions?: HarnessOptions;
169
+ /**
170
+ * Override provider for this prompt
171
+ *
172
+ * @deprecated Since v1.2. Use {@link PromptOverrides.harness} (and
173
+ * {@link PromptOverrides.harnessOptions} for options) instead. The runtime/harness
174
+ * axis (`'pi'` | `'claude-code'`) is now independent of the LLM provider/model
175
+ * (PRD §7): the harness is chosen separately, and the model string is never
176
+ * harness-qualified. This field is the highest-priority node in the PRD §7.7
177
+ * **harness** cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness →
178
+ * PromptOverrides.harness). Retained for backward compatibility during the v1.2
179
+ * migration; the Agent runtime reads it in lockstep with `harness`
180
+ * (`overrides?.harness ?? overrides?.provider` in src/core/agent.ts).
181
+ *
182
+ * ```typescript
183
+ * // BEFORE (v1.x)
184
+ * const response = await agent.prompt(myPrompt, { provider: 'anthropic' });
185
+ * // AFTER (v1.2)
186
+ * const response = await agent.prompt(myPrompt, {
187
+ * harness: 'claude-code',
188
+ * model: 'anthropic/claude-sonnet-4-20250514',
189
+ * });
190
+ * ```
191
+ */
192
+ provider?: ProviderId;
193
+ /**
194
+ * Override provider options for this prompt
195
+ *
196
+ * @deprecated Since v1.2. Use {@link PromptOverrides.harnessOptions} instead.
197
+ *
198
+ * Note: {@link HarnessOptions} is SLIMMED relative to this type — it omits
199
+ * `sessionStore`, `sessionPersistence`, `sessionTtl`, and `sessionPath` (those are
200
+ * now harness-adapter internals; see `src/types/providers.ts` → `ProviderOptions`
201
+ * @deprecated note). Migrating callers that relied on session-persistence config
202
+ * must move it to the concrete harness adapter.
203
+ *
204
+ * The v1.x provider-options merge cascade is superseded by the PRD §7.7 **harness**
205
+ * cascade (GlobalHarnessConfig.defaultHarness → AgentConfig.harness/harnessOptions →
206
+ * PromptOverrides.harness/harnessOptions), resolved via null-coalescing.
207
+ *
208
+ * ```typescript
209
+ * // BEFORE (v1.x)
210
+ * const response = await agent.prompt(myPrompt, {
211
+ * providerOptions: { endpoint: 'https://api.example.com', sessionPersistence: 'file' },
212
+ * });
213
+ * // AFTER (v1.2)
214
+ * const response = await agent.prompt(myPrompt, {
215
+ * harnessOptions: { endpoint: 'https://api.example.com', apiKey: process.env.ANTHROPIC_API_KEY },
216
+ * });
217
+ * ```
218
+ */
219
+ providerOptions?: ProviderOptions;
220
+ }
221
+ /**
222
+ * Status of an agent response
223
+ * Used as discriminant for type narrowing
224
+ */
225
+ export type AgentResponseStatus = 'success' | 'error' | 'partial';
226
+ /**
227
+ * Response wrapper for agent execution results (discriminated union)
228
+ *
229
+ * ## PRD 6.4 Response Requirements
230
+ *
231
+ * All AgentResponse instances MUST satisfy:
232
+ *
233
+ * 1. **Strict JSON** (PRD 6.4.1): Must be parseable by `JSON.parse()`
234
+ * 2. **No Prose Wrapping** (PRD 6.4.2): No markdown code blocks or text
235
+ * 3. **Consistent Structure** (PRD 6.4.3): Must conform to this interface
236
+ * 4. **Null over Undefined** (PRD 6.4.4): Use `null` for absent values
237
+ * 5. **Error Responses** (PRD 6.4.5): Failed operations return valid JSON
238
+ *
239
+ * ## Discriminated Union Type Safety
240
+ *
241
+ * **This is a discriminated union type** - the `status` field determines the
242
+ * shape of `data` and `error` at compile-time. TypeScript will prevent invalid
243
+ * combinations like `status='success'` with `error!=null`.
244
+ *
245
+ * The three variants are:
246
+ * - **Success**: `status: 'success'`, `data: T`, `error: null`
247
+ * - **Error**: `status: 'error'`, `data: null`, `error: AgentErrorDetails`
248
+ * - **Partial**: `status: 'partial'`, `data: T`, `error: null`
249
+ *
250
+ * ## Type Narrowing
251
+ *
252
+ * Use the `status` field directly or type guards for type narrowing:
253
+ * - `isSuccess(response)` → `SuccessResponse<T>` (data is T, error is null)
254
+ * - `isError(response)` → `ErrorResponse` (data is null, error exists)
255
+ * - `isPartial(response)` → `PartialResponse<T>` (data is T, error is null)
256
+ *
257
+ * @template T - The type of data returned on success (unknown by default)
258
+ * @see {@link SuccessResponse}, {@link ErrorResponse}, {@link PartialResponse}
259
+ *
260
+ * @example <caption>Success response (PRD 6.5)</caption>
261
+ * ```ts
262
+ * const response: AgentResponse<{ result: string; artifacts: string[] }> = {
263
+ * status: 'success',
264
+ * data: { result: 'Task completed', artifacts: ['file1.ts', 'file2.ts'] },
265
+ * error: null, // Must be null for success - enforced by TypeScript
266
+ * metadata: { agentId: 'agent-abc123', timestamp: 1706140800000, duration: 1523 }
267
+ * };
268
+ * ```
269
+ *
270
+ * @example <caption>Type narrowing with status field</caption>
271
+ * ```ts
272
+ * function handleResponse<T>(response: AgentResponse<T>) {
273
+ * switch (response.status) {
274
+ * case 'success':
275
+ * // TypeScript knows: response.data is T, response.error is null
276
+ * return response.data;
277
+ * case 'error':
278
+ * // TypeScript knows: response.data is null, response.error is AgentErrorDetails
279
+ * throw new Error(response.error.message);
280
+ * case 'partial':
281
+ * // TypeScript knows: response.data is T, response.error is null
282
+ * return response.data;
283
+ * default:
284
+ * // Exhaustiveness check - unreachable
285
+ * const _exhaustive: never = response;
286
+ * return _exhaustive;
287
+ * }
288
+ * }
289
+ * ```
290
+ *
291
+ * @example <caption>Invalid combinations are compile-time errors</caption>
292
+ * ```ts
293
+ * // ❌ TYPE ERROR: status='success' with error!=null
294
+ * const invalid1: AgentResponse<string> = {
295
+ * status: 'success',
296
+ * data: 'hello',
297
+ * error: { code: 'ERROR', message: 'oops', recoverable: false }, // Type error!
298
+ * metadata: { agentId: 'test', timestamp: Date.now() }
299
+ * };
300
+ * // TypeScript error: Type '{ code: string; message: string; recoverable: boolean; }' is not assignable to type 'null'.
301
+ *
302
+ * // ❌ TYPE ERROR: status='error' with data!=null
303
+ * const invalid2: AgentResponse<string> = {
304
+ * status: 'error',
305
+ * data: 'hello', // Type error!
306
+ * error: { code: 'ERROR', message: 'oops', recoverable: false },
307
+ * metadata: { agentId: 'test', timestamp: Date.now() }
308
+ * };
309
+ * // TypeScript error: Type 'string' is not assignable to type 'null'.
310
+ * ```
311
+ */
312
+ export type AgentResponse<T = unknown> = {
313
+ status: 'success';
314
+ data: T;
315
+ error: null;
316
+ metadata: AgentResponseMetadata;
317
+ } | {
318
+ status: 'error';
319
+ data: null;
320
+ error: AgentErrorDetails;
321
+ metadata: AgentResponseMetadata;
322
+ } | {
323
+ status: 'partial';
324
+ data: T;
325
+ error: null;
326
+ metadata: AgentResponseMetadata;
327
+ };
328
+ /**
329
+ * Error details for agent error responses
330
+ *
331
+ * Per PRD 6.2: Error responses include machine-readable codes,
332
+ * human-readable messages, and a recoverable flag for retry logic.
333
+ *
334
+ * The `code` field uses SCREAMING_SNAKE_CASE convention and should
335
+ * be one of the standard codes from {@link AGENT_ERROR_CODES}.
336
+ *
337
+ * @see {@link AGENT_ERROR_CODES} for standard error codes
338
+ * @see {@link createErrorResponse} for factory function
339
+ *
340
+ * @example <caption>Error response (PRD 6.5)</caption>
341
+ * ```ts
342
+ * const error: AgentErrorDetails = {
343
+ * code: 'EXECUTION_FAILED',
344
+ * message: 'Failed to compile TypeScript files',
345
+ * details: {
346
+ * failedFiles: ['src/index.ts'],
347
+ * compilerErrors: ['TS2307: Cannot find module \\'foo\\'']
348
+ * },
349
+ * recoverable: true
350
+ * };
351
+ * ```
352
+ */
353
+ export interface AgentErrorDetails {
354
+ /**
355
+ * Machine-readable error code (SCREAMING_SNAKE_CASE convention)
356
+ *
357
+ * Use standard codes from {@link AGENT_ERROR_CODES} when applicable.
358
+ * Custom codes should follow the same naming convention.
359
+ */
360
+ code: string;
361
+ /** Human-readable error description suitable for display or logging */
362
+ message: string;
363
+ /**
364
+ * Additional error context - null if no details available
365
+ *
366
+ * May include field names, values, stack traces, or other diagnostic info.
367
+ * Per PRD 6.4.4: Use null instead of undefined for absent values.
368
+ */
369
+ details?: Record<string, unknown> | null;
370
+ /**
371
+ * Whether the error is recoverable (can retry)
372
+ *
373
+ * Set to true for transient errors (rate limits, network issues).
374
+ * Set to false for permanent errors (validation, invalid format).
375
+ *
376
+ * Per PRD 6.2: This is a hint for parent workflow retry logic.
377
+ */
378
+ recoverable: boolean;
379
+ }
380
+ /**
381
+ * Metadata for agent responses
382
+ *
383
+ * Per PRD 6.3: Response metadata includes agent identification,
384
+ * timing information, and optional correlation/tracing data.
385
+ *
386
+ * The timestamp is a Unix timestamp in milliseconds (not seconds).
387
+ * Use Date.now() or similar to generate valid timestamps.
388
+ *
389
+ * @see {@link TokenUsage} for token usage structure
390
+ *
391
+ * @example <caption>Metadata from PRD 6.5</caption>
392
+ * ```ts
393
+ * const metadata: AgentResponseMetadata = {
394
+ * agentId: 'agent-abc123',
395
+ * timestamp: 1706140800000,
396
+ * duration: 1523
397
+ * };
398
+ * ```
399
+ *
400
+ * @example <caption>Full metadata with optional fields</caption>
401
+ * ```ts
402
+ * const metadata: AgentResponseMetadata = {
403
+ * agentId: 'agent-abc123',
404
+ * timestamp: Date.now(),
405
+ * duration: 1523,
406
+ * requestId: 'req-abc123',
407
+ * usage: { inputTokens: 100, outputTokens: 50, cacheReadTokens: 0, cacheWriteTokens: 25 },
408
+ * toolCalls: 3
409
+ * };
410
+ * ```
411
+ */
412
+ export interface AgentResponseMetadata {
413
+ /**
414
+ * Agent identifier (required)
415
+ *
416
+ * Uniquely identifies the agent or workflow that generated this response.
417
+ * Should be stable across multiple invocations of the same agent.
418
+ */
419
+ agentId: string;
420
+ /**
421
+ * Unix timestamp in milliseconds (required)
422
+ *
423
+ * The time when the response was generated, as a Unix timestamp in
424
+ * milliseconds since the epoch (January 1, 1970). Use Date.now() to
425
+ * generate current timestamps.
426
+ *
427
+ * @example
428
+ * ```ts
429
+ * timestamp: Date.now() // Current time in milliseconds
430
+ * timestamp: 1706140800000 // Fixed timestamp
431
+ * ```
432
+ */
433
+ timestamp: number;
434
+ /**
435
+ * Execution duration in milliseconds (optional)
436
+ *
437
+ * The time taken to execute the agent prompt, from start to completion.
438
+ * Useful for performance monitoring and debugging.
439
+ */
440
+ duration?: number | null;
441
+ /**
442
+ * Request correlation ID (optional)
443
+ *
444
+ * Used for tracing requests across distributed systems. Correlates
445
+ * this response with the original request and any downstream calls.
446
+ */
447
+ requestId?: string | null;
448
+ /**
449
+ * Token usage from the API (optional, for backward compatibility)
450
+ *
451
+ * Breakdown of token usage including input, output, and cache tokens.
452
+ * Only present when the API returns token usage information.
453
+ */
454
+ usage?: TokenUsage;
455
+ /**
456
+ * Number of tool invocations (optional, for backward compatibility)
457
+ *
458
+ * The count of tool/function calls made during agent execution.
459
+ * Useful for tracking agent behavior and cost analysis.
460
+ */
461
+ toolCalls?: number;
462
+ }
463
+ /**
464
+ * Success response type - data is T (not null), error is null
465
+ *
466
+ * Use this type with type guards for type-safe access to response data.
467
+ * When a response has status 'success', data is guaranteed to be T (not null).
468
+ *
469
+ * Per PRD 6.4.3: Consistent Structure - all success responses conform
470
+ * to the AgentResponse interface with status 'success'.
471
+ *
472
+ * @template T - The type of data returned on success
473
+ * @see {@link isSuccess} for the type guard that narrows to this type
474
+ *
475
+ * @example
476
+ * ```ts
477
+ * // Type narrowing with type guard
478
+ * if (isSuccess(response)) {
479
+ * console.log(response.data); // TypeScript knows data is T
480
+ * console.log(response.error); // TypeScript knows error is null
481
+ * }
482
+ * ```
483
+ */
484
+ export type SuccessResponse<T> = AgentResponse<T> & {
485
+ status: 'success';
486
+ };
487
+ /**
488
+ * Error response type - data is null, error is AgentErrorDetails (not null)
489
+ *
490
+ * Use this type with type guards for type-safe access to error details.
491
+ * When a response has status 'error', error is guaranteed to be AgentErrorDetails (not null).
492
+ *
493
+ * Per PRD 6.4.5: Error Responses - failed operations must still return
494
+ * valid JSON with status 'error' and populated error field.
495
+ *
496
+ * @see {@link isError} for the type guard that narrows to this type
497
+ * @see {@link AgentErrorDetails} for error details structure
498
+ *
499
+ * @example
500
+ * ```ts
501
+ * // Type narrowing with type guard
502
+ * if (isError(response)) {
503
+ * console.log(response.error.code); // TypeScript knows error exists
504
+ * console.log(response.data); // TypeScript knows data is null
505
+ * }
506
+ * ```
507
+ */
508
+ export type ErrorResponse = AgentResponse<null> & {
509
+ status: 'error';
510
+ };
511
+ /**
512
+ * Partial response type - data is T, error is null
513
+ *
514
+ * Used for streaming or incremental results where the agent has not
515
+ * yet completed the full request. Partial responses contain intermediate
516
+ * progress data that may be updated in subsequent responses.
517
+ *
518
+ * Per PRD 6.4.3: Consistent Structure - all partial responses conform
519
+ * to the AgentResponse interface with status 'partial'.
520
+ *
521
+ * @template T - The type of partial data returned
522
+ * @see {@link isPartial} for the type guard that narrows to this type
523
+ *
524
+ * @example
525
+ * ```ts
526
+ * // Type narrowing with type guard
527
+ * if (isPartial(response)) {
528
+ * console.log('Progress:', response.data.completedSteps);
529
+ * // TypeScript knows data is T and error is null
530
+ * }
531
+ * ```
532
+ */
533
+ export type PartialResponse<T> = AgentResponse<T> & {
534
+ status: 'partial';
535
+ };
536
+ /**
537
+ * Standard error codes for agent responses
538
+ *
539
+ * All error codes use SCREAMING_SNAKE_CASE convention.
540
+ *
541
+ * Per PRD 6.6: Use `INVALID_RESPONSE_FORMAT` for responses that
542
+ * don't conform to the AgentResponse schema. Validation failures
543
+ * should be treated as errors with this code.
544
+ *
545
+ * @see {@link AgentErrorDetails} for error details structure
546
+ * @see {@link createErrorResponse} for factory function
547
+ *
548
+ * @example
549
+ * ```ts
550
+ * import { AGENT_ERROR_CODES, createErrorResponse } from 'groundswell';
551
+ *
552
+ * const error = createErrorResponse(
553
+ * AGENT_ERROR_CODES.VALIDATION_FAILED,
554
+ * 'Invalid input',
555
+ * { field: 'email', value: 'not-an-email' }
556
+ * );
557
+ * ```
558
+ */
559
+ export declare const AGENT_ERROR_CODES: {
560
+ /**
561
+ * Response not valid JSON or doesn't match AgentResponse schema
562
+ *
563
+ * Per PRD 6.6: Invalid responses must be treated as errors with this code.
564
+ * Use when response validation fails during parsing or schema checking.
565
+ */
566
+ readonly INVALID_RESPONSE_FORMAT: "INVALID_RESPONSE_FORMAT";
567
+ /**
568
+ * Input validation failed
569
+ *
570
+ * Use when the provided inputs fail validation checks (e.g., wrong type,
571
+ * missing required fields, out-of-range values).
572
+ */
573
+ readonly VALIDATION_FAILED: "VALIDATION_FAILED";
574
+ /**
575
+ * Agent execution failed
576
+ *
577
+ * Use when the agent execution fails for reasons unrelated to validation
578
+ * or API requests (e.g., compilation errors, runtime exceptions).
579
+ */
580
+ readonly EXECUTION_FAILED: "EXECUTION_FAILED";
581
+ /**
582
+ * API request to LLM provider failed
583
+ *
584
+ * Use when the HTTP request to the LLM provider fails (e.g., network errors,
585
+ * timeout, rate limiting, provider-side errors).
586
+ */
587
+ readonly API_REQUEST_FAILED: "API_REQUEST_FAILED";
588
+ /**
589
+ * Tool execution failed
590
+ *
591
+ * Use when a tool/function invocation fails during agent execution
592
+ * (e.g., tool not found, tool returned error, tool timeout).
593
+ */
594
+ readonly TOOL_EXECUTION_FAILED: "TOOL_EXECUTION_FAILED";
595
+ /**
596
+ * Internal validation or system error
597
+ *
598
+ * Use when an internal validation fails or a system error occurs.
599
+ * This indicates a bug in the code (e.g., factory helper produced invalid response).
600
+ * Non-recoverable because retrying with the same inputs will produce the same error.
601
+ *
602
+ * Per PRD 6.6: Internal validation failures should return this error code.
603
+ */
604
+ readonly INTERNAL_ERROR: "INTERNAL_ERROR";
605
+ /**
606
+ * Invalid harness/provider configuration
607
+ *
608
+ * Use when a harness receives a configuration it cannot honour — e.g. a model
609
+ * provider it cannot run (ClaudeCodeHarness only runs anthropic/* per PRD §7.8).
610
+ * Non-recoverable: the caller must select a different harness or model, not retry.
611
+ */
612
+ readonly CONFIG_ERROR: "CONFIG_ERROR";
613
+ };
614
+ /**
615
+ * Creates a success response with data and metadata.
616
+ *
617
+ * ## PRD 6.4 Compliance
618
+ *
619
+ * The returned response satisfies all PRD 6.4 requirements:
620
+ * - Strict JSON parseable by `JSON.parse()` (PRD 6.4.1)
621
+ * - No prose wrapping - pure JSON structure (PRD 6.4.2)
622
+ * - Consistent with AgentResponse interface (PRD 6.4.3)
623
+ * - Uses null instead of undefined (PRD 6.4.4)
624
+ *
625
+ * @template T - The type of the response data
626
+ * @param data - The response data to return
627
+ * @param metadata - Response metadata including agentId and timestamp
628
+ * @returns A success AgentResponse with status 'success', provided data, null error
629
+ *
630
+ * @example <caption>Basic success response (PRD 6.5)</caption>
631
+ * ```ts
632
+ * const response = createSuccessResponse(
633
+ * { result: 'Task completed', artifacts: ['file1.ts', 'file2.ts'] },
634
+ * { agentId: 'agent-abc123', timestamp: 1706140800000, duration: 1523 }
635
+ * );
636
+ *
637
+ * // Guaranteed to be valid JSON (PRD 6.4.1)
638
+ * const jsonString = JSON.stringify(response);
639
+ * const parsed = JSON.parse(jsonString); // Always valid
640
+ * ```
641
+ *
642
+ * @example <caption>Success response with execution metadata</caption>
643
+ * ```ts
644
+ * const response = createSuccessResponse(
645
+ * { items: [1, 2, 3] },
646
+ * {
647
+ * agentId: 'agent-123',
648
+ * timestamp: Date.now(),
649
+ * duration: 1523,
650
+ * requestId: 'req-abc123'
651
+ * }
652
+ * );
653
+ * ```
654
+ */
655
+ export declare function createSuccessResponse<T>(data: T, metadata: AgentResponseMetadata): AgentResponse<T>;
656
+ /**
657
+ * Creates an error response with error details.
658
+ *
659
+ * ## PRD 6.4 Compliance
660
+ *
661
+ * Per PRD 6.4.5: Failed operations must still return valid JSON with
662
+ * status 'error' and populated error field. This function ensures all
663
+ * error responses conform to the AgentResponse schema.
664
+ *
665
+ * The error code should use SCREAMING_SNAKE_CASE convention and ideally
666
+ * be one of the standard codes from {@link AGENT_ERROR_CODES}.
667
+ *
668
+ * @param code - Machine-readable error code (SCREAMING_SNAKE_CASE)
669
+ * @param message - Human-readable error message
670
+ * @param details - Optional additional error context (use null instead of undefined per PRD 6.4.4)
671
+ * @param recoverable - Whether the error is recoverable (default: false)
672
+ * @returns An error AgentResponse with null data, populated error field
673
+ *
674
+ * @example <caption>Error response (PRD 6.5)</caption>
675
+ * ```ts
676
+ * const response = createErrorResponse(
677
+ * 'EXECUTION_FAILED',
678
+ * 'Failed to compile TypeScript files',
679
+ * {
680
+ * failedFiles: ['src/index.ts'],
681
+ * compilerErrors: ['TS2307: Cannot find module \\'foo\\'']
682
+ * },
683
+ * true
684
+ * );
685
+ * ```
686
+ *
687
+ * @example <caption>Using standard error codes</caption>
688
+ * ```ts
689
+ * import { AGENT_ERROR_CODES, createErrorResponse } from 'groundswell';
690
+ *
691
+ * const response = createErrorResponse(
692
+ * AGENT_ERROR_CODES.VALIDATION_FAILED,
693
+ * 'Invalid input',
694
+ * { field: 'email', value: 'not-an-email' },
695
+ * false
696
+ * );
697
+ * ```
698
+ */
699
+ export declare function createErrorResponse(code: string, message: string, details?: Record<string, unknown>, recoverable?: boolean): AgentResponse<null>;
700
+ /**
701
+ * Creates a partial response for streaming/incremental results.
702
+ *
703
+ * ## PRD 6.4 Compliance
704
+ *
705
+ * Per PRD 6.4.3: Consistent Structure - partial responses conform to
706
+ * the AgentResponse interface with status 'partial'.
707
+ *
708
+ * Partial responses are used for streaming or incremental results where
709
+ * the agent has not yet completed the full request. They contain intermediate
710
+ * progress data that may be updated in subsequent responses.
711
+ *
712
+ * @template T - The type of the partial response data
713
+ * @param data - The partial response data with progress information
714
+ * @returns A partial AgentResponse with status 'partial', data, null error
715
+ *
716
+ * @example <caption>Partial response (PRD 6.5)</caption>
717
+ * ```ts
718
+ * const response = createPartialResponse({
719
+ * completedSteps: 3,
720
+ * totalSteps: 5,
721
+ * intermediateResult: { progress: 'processing file2.ts' }
722
+ * });
723
+ *
724
+ * // Later, send another partial response with updated progress
725
+ * const updatedResponse = createPartialResponse({
726
+ * completedSteps: 4,
727
+ * totalSteps: 5,
728
+ * intermediateResult: { progress: 'processing file3.ts' }
729
+ * });
730
+ * ```
731
+ *
732
+ * @example <caption>Streaming data chunks</caption>
733
+ * ```ts
734
+ * const chunk = createPartialResponse({
735
+ * chunk: 'Hello',
736
+ * isComplete: false
737
+ * });
738
+ * ```
739
+ */
740
+ export declare function createPartialResponse<T>(data: T): AgentResponse<T>;
741
+ /**
742
+ * Type guard for success responses.
743
+ * Narrows the type to SuccessResponse<T> where data is T (not null).
744
+ *
745
+ * @param response - The response to check
746
+ * @returns True if the response status is 'success'
747
+ *
748
+ * @example
749
+ * ```ts
750
+ * if (isSuccess(response)) {
751
+ * console.log(response.data); // TypeScript knows data is T
752
+ * }
753
+ * ```
754
+ */
755
+ export declare function isSuccess<T>(response: AgentResponse<T>): response is SuccessResponse<T>;
756
+ /**
757
+ * Type guard for error responses.
758
+ * Narrows the type to ErrorResponse where error is AgentErrorDetails (not null).
759
+ *
760
+ * @param response - The response to check
761
+ * @returns True if the response status is 'error'
762
+ *
763
+ * @example
764
+ * ```ts
765
+ * if (isError(response)) {
766
+ * console.log(response.error.code); // TypeScript knows error exists
767
+ * }
768
+ * ```
769
+ */
770
+ export declare function isError<T>(response: AgentResponse<T>): response is ErrorResponse;
771
+ /**
772
+ * Type guard for partial responses.
773
+ * Narrows the type to PartialResponse<T>.
774
+ *
775
+ * @param response - The response to check
776
+ * @returns True if the response status is 'partial'
777
+ *
778
+ * @example
779
+ * ```ts
780
+ * if (isPartial(response)) {
781
+ * console.log('Partial result:', response.data);
782
+ * }
783
+ * ```
784
+ */
785
+ export declare function isPartial<T>(response: AgentResponse<T>): response is PartialResponse<T>;
786
+ /**
787
+ * Zod schema for AgentResponseStatus enum
788
+ * Validates status values: 'success' | 'error' | 'partial'
789
+ *
790
+ * @example
791
+ * ```ts
792
+ * AgentResponseStatusSchema.parse('success'); // ✓
793
+ * AgentResponseStatusSchema.parse('invalid'); // ✗ ZodError
794
+ * ```
795
+ */
796
+ export declare const AgentResponseStatusSchema: z.ZodEnum<["success", "error", "partial"]>;
797
+ /**
798
+ * Zod schema for AgentErrorDetails interface
799
+ * Validates error details with null-over-undefined handling
800
+ *
801
+ * Per PRD 6.4.4: Use null for absent values, not undefined
802
+ */
803
+ export declare const AgentErrorDetailsSchema: z.ZodObject<{
804
+ /** Machine-readable error code (SCREAMING_SNAKE_CASE) */
805
+ code: z.ZodString;
806
+ /** Human-readable error description */
807
+ message: z.ZodString;
808
+ /** Additional error context - null if no details (PRD 6.4.4) */
809
+ details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
810
+ /** Whether the error is recoverable (can retry) */
811
+ recoverable: z.ZodBoolean;
812
+ }, "strip", z.ZodTypeAny, {
813
+ code: string;
814
+ message: string;
815
+ details: Record<string, unknown> | null;
816
+ recoverable: boolean;
817
+ }, {
818
+ code: string;
819
+ message: string;
820
+ details: Record<string, unknown> | null;
821
+ recoverable: boolean;
822
+ }>;
823
+ /**
824
+ * Zod schema for AgentResponseMetadata interface
825
+ * Validates response metadata including agent ID and timestamp
826
+ */
827
+ export declare const AgentResponseMetadataSchema: z.ZodObject<{
828
+ /** Agent identifier */
829
+ agentId: z.ZodString;
830
+ /** Unix timestamp in milliseconds */
831
+ timestamp: z.ZodNumber;
832
+ /** Execution duration in milliseconds (optional) */
833
+ duration: z.ZodOptional<z.ZodNumber>;
834
+ /** Request correlation ID (optional) */
835
+ requestId: z.ZodOptional<z.ZodString>;
836
+ /** Token usage from API (optional - passthrough for complex type) */
837
+ usage: z.ZodOptional<z.ZodUnknown>;
838
+ /** Number of tool invocations (optional) */
839
+ toolCalls: z.ZodOptional<z.ZodNumber>;
840
+ }, "strip", z.ZodTypeAny, {
841
+ agentId: string;
842
+ timestamp: number;
843
+ usage?: unknown;
844
+ duration?: number | undefined;
845
+ requestId?: string | undefined;
846
+ toolCalls?: number | undefined;
847
+ }, {
848
+ agentId: string;
849
+ timestamp: number;
850
+ usage?: unknown;
851
+ duration?: number | undefined;
852
+ requestId?: string | undefined;
853
+ toolCalls?: number | undefined;
854
+ }>;
855
+ /**
856
+ * Zod schema factory for AgentResponse<T> discriminated union
857
+ * Creates a schema that validates responses based on status discriminator
858
+ *
859
+ * @template T - The Zod schema for the data type
860
+ * @param dataSchema - Zod schema for the response data
861
+ * @returns A discriminated union schema for AgentResponse
862
+ *
863
+ * @example
864
+ * ```ts
865
+ * // Create schema for string responses
866
+ * const StringResponseSchema = AgentResponseSchema(z.object({ result: z.string() }));
867
+ *
868
+ * // Validate a success response
869
+ * const result = StringResponseSchema.safeParse({
870
+ * status: 'success',
871
+ * data: { result: 'hello' },
872
+ * error: null,
873
+ * metadata: { agentId: 'test', timestamp: Date.now() }
874
+ * });
875
+ * ```
876
+ */
877
+ export declare function AgentResponseSchema<T extends z.ZodTypeAny>(dataSchema: T): z.ZodEffects<z.ZodDiscriminatedUnion<"status", [z.ZodObject<{
878
+ status: z.ZodLiteral<"success">;
879
+ data: T;
880
+ error: z.ZodNull;
881
+ metadata: z.ZodOptional<z.ZodObject<{
882
+ /** Agent identifier */
883
+ agentId: z.ZodString;
884
+ /** Unix timestamp in milliseconds */
885
+ timestamp: z.ZodNumber;
886
+ /** Execution duration in milliseconds (optional) */
887
+ duration: z.ZodOptional<z.ZodNumber>;
888
+ /** Request correlation ID (optional) */
889
+ requestId: z.ZodOptional<z.ZodString>;
890
+ /** Token usage from API (optional - passthrough for complex type) */
891
+ usage: z.ZodOptional<z.ZodUnknown>;
892
+ /** Number of tool invocations (optional) */
893
+ toolCalls: z.ZodOptional<z.ZodNumber>;
894
+ }, "strip", z.ZodTypeAny, {
895
+ agentId: string;
896
+ timestamp: number;
897
+ usage?: unknown;
898
+ duration?: number | undefined;
899
+ requestId?: string | undefined;
900
+ toolCalls?: number | undefined;
901
+ }, {
902
+ agentId: string;
903
+ timestamp: number;
904
+ usage?: unknown;
905
+ duration?: number | undefined;
906
+ requestId?: string | undefined;
907
+ toolCalls?: number | undefined;
908
+ }>>;
909
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
910
+ status: z.ZodLiteral<"success">;
911
+ data: T;
912
+ error: z.ZodNull;
913
+ metadata: z.ZodOptional<z.ZodObject<{
914
+ /** Agent identifier */
915
+ agentId: z.ZodString;
916
+ /** Unix timestamp in milliseconds */
917
+ timestamp: z.ZodNumber;
918
+ /** Execution duration in milliseconds (optional) */
919
+ duration: z.ZodOptional<z.ZodNumber>;
920
+ /** Request correlation ID (optional) */
921
+ requestId: z.ZodOptional<z.ZodString>;
922
+ /** Token usage from API (optional - passthrough for complex type) */
923
+ usage: z.ZodOptional<z.ZodUnknown>;
924
+ /** Number of tool invocations (optional) */
925
+ toolCalls: z.ZodOptional<z.ZodNumber>;
926
+ }, "strip", z.ZodTypeAny, {
927
+ agentId: string;
928
+ timestamp: number;
929
+ usage?: unknown;
930
+ duration?: number | undefined;
931
+ requestId?: string | undefined;
932
+ toolCalls?: number | undefined;
933
+ }, {
934
+ agentId: string;
935
+ timestamp: number;
936
+ usage?: unknown;
937
+ duration?: number | undefined;
938
+ requestId?: string | undefined;
939
+ toolCalls?: number | undefined;
940
+ }>>;
941
+ }>, any> extends infer T_1 ? { [k in keyof T_1]: T_1[k]; } : never, z.baseObjectInputType<{
942
+ status: z.ZodLiteral<"success">;
943
+ data: T;
944
+ error: z.ZodNull;
945
+ metadata: z.ZodOptional<z.ZodObject<{
946
+ /** Agent identifier */
947
+ agentId: z.ZodString;
948
+ /** Unix timestamp in milliseconds */
949
+ timestamp: z.ZodNumber;
950
+ /** Execution duration in milliseconds (optional) */
951
+ duration: z.ZodOptional<z.ZodNumber>;
952
+ /** Request correlation ID (optional) */
953
+ requestId: z.ZodOptional<z.ZodString>;
954
+ /** Token usage from API (optional - passthrough for complex type) */
955
+ usage: z.ZodOptional<z.ZodUnknown>;
956
+ /** Number of tool invocations (optional) */
957
+ toolCalls: z.ZodOptional<z.ZodNumber>;
958
+ }, "strip", z.ZodTypeAny, {
959
+ agentId: string;
960
+ timestamp: number;
961
+ usage?: unknown;
962
+ duration?: number | undefined;
963
+ requestId?: string | undefined;
964
+ toolCalls?: number | undefined;
965
+ }, {
966
+ agentId: string;
967
+ timestamp: number;
968
+ usage?: unknown;
969
+ duration?: number | undefined;
970
+ requestId?: string | undefined;
971
+ toolCalls?: number | undefined;
972
+ }>>;
973
+ }> extends infer T_2 ? { [k_1 in keyof T_2]: T_2[k_1]; } : never>, z.ZodObject<{
974
+ status: z.ZodLiteral<"error">;
975
+ data: z.ZodNull;
976
+ error: z.ZodObject<{
977
+ /** Machine-readable error code (SCREAMING_SNAKE_CASE) */
978
+ code: z.ZodString;
979
+ /** Human-readable error description */
980
+ message: z.ZodString;
981
+ /** Additional error context - null if no details (PRD 6.4.4) */
982
+ details: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
983
+ /** Whether the error is recoverable (can retry) */
984
+ recoverable: z.ZodBoolean;
985
+ }, "strip", z.ZodTypeAny, {
986
+ code: string;
987
+ message: string;
988
+ details: Record<string, unknown> | null;
989
+ recoverable: boolean;
990
+ }, {
991
+ code: string;
992
+ message: string;
993
+ details: Record<string, unknown> | null;
994
+ recoverable: boolean;
995
+ }>;
996
+ metadata: z.ZodOptional<z.ZodObject<{
997
+ /** Agent identifier */
998
+ agentId: z.ZodString;
999
+ /** Unix timestamp in milliseconds */
1000
+ timestamp: z.ZodNumber;
1001
+ /** Execution duration in milliseconds (optional) */
1002
+ duration: z.ZodOptional<z.ZodNumber>;
1003
+ /** Request correlation ID (optional) */
1004
+ requestId: z.ZodOptional<z.ZodString>;
1005
+ /** Token usage from API (optional - passthrough for complex type) */
1006
+ usage: z.ZodOptional<z.ZodUnknown>;
1007
+ /** Number of tool invocations (optional) */
1008
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1009
+ }, "strip", z.ZodTypeAny, {
1010
+ agentId: string;
1011
+ timestamp: number;
1012
+ usage?: unknown;
1013
+ duration?: number | undefined;
1014
+ requestId?: string | undefined;
1015
+ toolCalls?: number | undefined;
1016
+ }, {
1017
+ agentId: string;
1018
+ timestamp: number;
1019
+ usage?: unknown;
1020
+ duration?: number | undefined;
1021
+ requestId?: string | undefined;
1022
+ toolCalls?: number | undefined;
1023
+ }>>;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ error: {
1026
+ code: string;
1027
+ message: string;
1028
+ details: Record<string, unknown> | null;
1029
+ recoverable: boolean;
1030
+ };
1031
+ status: "error";
1032
+ data: null;
1033
+ metadata?: {
1034
+ agentId: string;
1035
+ timestamp: number;
1036
+ usage?: unknown;
1037
+ duration?: number | undefined;
1038
+ requestId?: string | undefined;
1039
+ toolCalls?: number | undefined;
1040
+ } | undefined;
1041
+ }, {
1042
+ error: {
1043
+ code: string;
1044
+ message: string;
1045
+ details: Record<string, unknown> | null;
1046
+ recoverable: boolean;
1047
+ };
1048
+ status: "error";
1049
+ data: null;
1050
+ metadata?: {
1051
+ agentId: string;
1052
+ timestamp: number;
1053
+ usage?: unknown;
1054
+ duration?: number | undefined;
1055
+ requestId?: string | undefined;
1056
+ toolCalls?: number | undefined;
1057
+ } | undefined;
1058
+ }>, z.ZodObject<{
1059
+ status: z.ZodLiteral<"partial">;
1060
+ data: T;
1061
+ error: z.ZodNull;
1062
+ metadata: z.ZodOptional<z.ZodObject<{
1063
+ /** Agent identifier */
1064
+ agentId: z.ZodString;
1065
+ /** Unix timestamp in milliseconds */
1066
+ timestamp: z.ZodNumber;
1067
+ /** Execution duration in milliseconds (optional) */
1068
+ duration: z.ZodOptional<z.ZodNumber>;
1069
+ /** Request correlation ID (optional) */
1070
+ requestId: z.ZodOptional<z.ZodString>;
1071
+ /** Token usage from API (optional - passthrough for complex type) */
1072
+ usage: z.ZodOptional<z.ZodUnknown>;
1073
+ /** Number of tool invocations (optional) */
1074
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1075
+ }, "strip", z.ZodTypeAny, {
1076
+ agentId: string;
1077
+ timestamp: number;
1078
+ usage?: unknown;
1079
+ duration?: number | undefined;
1080
+ requestId?: string | undefined;
1081
+ toolCalls?: number | undefined;
1082
+ }, {
1083
+ agentId: string;
1084
+ timestamp: number;
1085
+ usage?: unknown;
1086
+ duration?: number | undefined;
1087
+ requestId?: string | undefined;
1088
+ toolCalls?: number | undefined;
1089
+ }>>;
1090
+ }, "strip", z.ZodTypeAny, z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
1091
+ status: z.ZodLiteral<"partial">;
1092
+ data: T;
1093
+ error: z.ZodNull;
1094
+ metadata: z.ZodOptional<z.ZodObject<{
1095
+ /** Agent identifier */
1096
+ agentId: z.ZodString;
1097
+ /** Unix timestamp in milliseconds */
1098
+ timestamp: z.ZodNumber;
1099
+ /** Execution duration in milliseconds (optional) */
1100
+ duration: z.ZodOptional<z.ZodNumber>;
1101
+ /** Request correlation ID (optional) */
1102
+ requestId: z.ZodOptional<z.ZodString>;
1103
+ /** Token usage from API (optional - passthrough for complex type) */
1104
+ usage: z.ZodOptional<z.ZodUnknown>;
1105
+ /** Number of tool invocations (optional) */
1106
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1107
+ }, "strip", z.ZodTypeAny, {
1108
+ agentId: string;
1109
+ timestamp: number;
1110
+ usage?: unknown;
1111
+ duration?: number | undefined;
1112
+ requestId?: string | undefined;
1113
+ toolCalls?: number | undefined;
1114
+ }, {
1115
+ agentId: string;
1116
+ timestamp: number;
1117
+ usage?: unknown;
1118
+ duration?: number | undefined;
1119
+ requestId?: string | undefined;
1120
+ toolCalls?: number | undefined;
1121
+ }>>;
1122
+ }>, any> extends infer T_3 ? { [k_2 in keyof T_3]: T_3[k_2]; } : never, z.baseObjectInputType<{
1123
+ status: z.ZodLiteral<"partial">;
1124
+ data: T;
1125
+ error: z.ZodNull;
1126
+ metadata: z.ZodOptional<z.ZodObject<{
1127
+ /** Agent identifier */
1128
+ agentId: z.ZodString;
1129
+ /** Unix timestamp in milliseconds */
1130
+ timestamp: z.ZodNumber;
1131
+ /** Execution duration in milliseconds (optional) */
1132
+ duration: z.ZodOptional<z.ZodNumber>;
1133
+ /** Request correlation ID (optional) */
1134
+ requestId: z.ZodOptional<z.ZodString>;
1135
+ /** Token usage from API (optional - passthrough for complex type) */
1136
+ usage: z.ZodOptional<z.ZodUnknown>;
1137
+ /** Number of tool invocations (optional) */
1138
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1139
+ }, "strip", z.ZodTypeAny, {
1140
+ agentId: string;
1141
+ timestamp: number;
1142
+ usage?: unknown;
1143
+ duration?: number | undefined;
1144
+ requestId?: string | undefined;
1145
+ toolCalls?: number | undefined;
1146
+ }, {
1147
+ agentId: string;
1148
+ timestamp: number;
1149
+ usage?: unknown;
1150
+ duration?: number | undefined;
1151
+ requestId?: string | undefined;
1152
+ toolCalls?: number | undefined;
1153
+ }>>;
1154
+ }> extends infer T_4 ? { [k_3 in keyof T_4]: T_4[k_3]; } : never>]>, (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
1155
+ status: z.ZodLiteral<"success">;
1156
+ data: T;
1157
+ error: z.ZodNull;
1158
+ metadata: z.ZodOptional<z.ZodObject<{
1159
+ /** Agent identifier */
1160
+ agentId: z.ZodString;
1161
+ /** Unix timestamp in milliseconds */
1162
+ timestamp: z.ZodNumber;
1163
+ /** Execution duration in milliseconds (optional) */
1164
+ duration: z.ZodOptional<z.ZodNumber>;
1165
+ /** Request correlation ID (optional) */
1166
+ requestId: z.ZodOptional<z.ZodString>;
1167
+ /** Token usage from API (optional - passthrough for complex type) */
1168
+ usage: z.ZodOptional<z.ZodUnknown>;
1169
+ /** Number of tool invocations (optional) */
1170
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1171
+ }, "strip", z.ZodTypeAny, {
1172
+ agentId: string;
1173
+ timestamp: number;
1174
+ usage?: unknown;
1175
+ duration?: number | undefined;
1176
+ requestId?: string | undefined;
1177
+ toolCalls?: number | undefined;
1178
+ }, {
1179
+ agentId: string;
1180
+ timestamp: number;
1181
+ usage?: unknown;
1182
+ duration?: number | undefined;
1183
+ requestId?: string | undefined;
1184
+ toolCalls?: number | undefined;
1185
+ }>>;
1186
+ }>, any> extends infer T_5 ? { [k in keyof T_5]: T_5[k]; } : never) | {
1187
+ error: {
1188
+ code: string;
1189
+ message: string;
1190
+ details: Record<string, unknown> | null;
1191
+ recoverable: boolean;
1192
+ };
1193
+ status: "error";
1194
+ data: null;
1195
+ metadata?: {
1196
+ agentId: string;
1197
+ timestamp: number;
1198
+ usage?: unknown;
1199
+ duration?: number | undefined;
1200
+ requestId?: string | undefined;
1201
+ toolCalls?: number | undefined;
1202
+ } | undefined;
1203
+ } | (z.objectUtil.addQuestionMarks<z.baseObjectOutputType<{
1204
+ status: z.ZodLiteral<"partial">;
1205
+ data: T;
1206
+ error: z.ZodNull;
1207
+ metadata: z.ZodOptional<z.ZodObject<{
1208
+ /** Agent identifier */
1209
+ agentId: z.ZodString;
1210
+ /** Unix timestamp in milliseconds */
1211
+ timestamp: z.ZodNumber;
1212
+ /** Execution duration in milliseconds (optional) */
1213
+ duration: z.ZodOptional<z.ZodNumber>;
1214
+ /** Request correlation ID (optional) */
1215
+ requestId: z.ZodOptional<z.ZodString>;
1216
+ /** Token usage from API (optional - passthrough for complex type) */
1217
+ usage: z.ZodOptional<z.ZodUnknown>;
1218
+ /** Number of tool invocations (optional) */
1219
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1220
+ }, "strip", z.ZodTypeAny, {
1221
+ agentId: string;
1222
+ timestamp: number;
1223
+ usage?: unknown;
1224
+ duration?: number | undefined;
1225
+ requestId?: string | undefined;
1226
+ toolCalls?: number | undefined;
1227
+ }, {
1228
+ agentId: string;
1229
+ timestamp: number;
1230
+ usage?: unknown;
1231
+ duration?: number | undefined;
1232
+ requestId?: string | undefined;
1233
+ toolCalls?: number | undefined;
1234
+ }>>;
1235
+ }>, any> extends infer T_6 ? { [k_2 in keyof T_6]: T_6[k_2]; } : never), (z.baseObjectInputType<{
1236
+ status: z.ZodLiteral<"success">;
1237
+ data: T;
1238
+ error: z.ZodNull;
1239
+ metadata: z.ZodOptional<z.ZodObject<{
1240
+ /** Agent identifier */
1241
+ agentId: z.ZodString;
1242
+ /** Unix timestamp in milliseconds */
1243
+ timestamp: z.ZodNumber;
1244
+ /** Execution duration in milliseconds (optional) */
1245
+ duration: z.ZodOptional<z.ZodNumber>;
1246
+ /** Request correlation ID (optional) */
1247
+ requestId: z.ZodOptional<z.ZodString>;
1248
+ /** Token usage from API (optional - passthrough for complex type) */
1249
+ usage: z.ZodOptional<z.ZodUnknown>;
1250
+ /** Number of tool invocations (optional) */
1251
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1252
+ }, "strip", z.ZodTypeAny, {
1253
+ agentId: string;
1254
+ timestamp: number;
1255
+ usage?: unknown;
1256
+ duration?: number | undefined;
1257
+ requestId?: string | undefined;
1258
+ toolCalls?: number | undefined;
1259
+ }, {
1260
+ agentId: string;
1261
+ timestamp: number;
1262
+ usage?: unknown;
1263
+ duration?: number | undefined;
1264
+ requestId?: string | undefined;
1265
+ toolCalls?: number | undefined;
1266
+ }>>;
1267
+ }> extends infer T_7 ? { [k_1 in keyof T_7]: T_7[k_1]; } : never) | {
1268
+ error: {
1269
+ code: string;
1270
+ message: string;
1271
+ details: Record<string, unknown> | null;
1272
+ recoverable: boolean;
1273
+ };
1274
+ status: "error";
1275
+ data: null;
1276
+ metadata?: {
1277
+ agentId: string;
1278
+ timestamp: number;
1279
+ usage?: unknown;
1280
+ duration?: number | undefined;
1281
+ requestId?: string | undefined;
1282
+ toolCalls?: number | undefined;
1283
+ } | undefined;
1284
+ } | (z.baseObjectInputType<{
1285
+ status: z.ZodLiteral<"partial">;
1286
+ data: T;
1287
+ error: z.ZodNull;
1288
+ metadata: z.ZodOptional<z.ZodObject<{
1289
+ /** Agent identifier */
1290
+ agentId: z.ZodString;
1291
+ /** Unix timestamp in milliseconds */
1292
+ timestamp: z.ZodNumber;
1293
+ /** Execution duration in milliseconds (optional) */
1294
+ duration: z.ZodOptional<z.ZodNumber>;
1295
+ /** Request correlation ID (optional) */
1296
+ requestId: z.ZodOptional<z.ZodString>;
1297
+ /** Token usage from API (optional - passthrough for complex type) */
1298
+ usage: z.ZodOptional<z.ZodUnknown>;
1299
+ /** Number of tool invocations (optional) */
1300
+ toolCalls: z.ZodOptional<z.ZodNumber>;
1301
+ }, "strip", z.ZodTypeAny, {
1302
+ agentId: string;
1303
+ timestamp: number;
1304
+ usage?: unknown;
1305
+ duration?: number | undefined;
1306
+ requestId?: string | undefined;
1307
+ toolCalls?: number | undefined;
1308
+ }, {
1309
+ agentId: string;
1310
+ timestamp: number;
1311
+ usage?: unknown;
1312
+ duration?: number | undefined;
1313
+ requestId?: string | undefined;
1314
+ toolCalls?: number | undefined;
1315
+ }>>;
1316
+ }> extends infer T_8 ? { [k_3 in keyof T_8]: T_8[k_3]; } : never)>;
1317
+ //# sourceMappingURL=agent.d.ts.map