mcp-ai-agent-guidelines 0.13.1 → 0.14.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 (500) hide show
  1. package/dist/domain/base-strategy/execution-trace.d.ts +142 -0
  2. package/dist/domain/base-strategy/execution-trace.d.ts.map +1 -0
  3. package/dist/domain/base-strategy/execution-trace.js +377 -0
  4. package/dist/domain/base-strategy/execution-trace.js.map +1 -0
  5. package/dist/domain/base-strategy/index.d.ts +10 -0
  6. package/dist/domain/base-strategy/index.d.ts.map +1 -0
  7. package/dist/domain/base-strategy/index.js +11 -0
  8. package/dist/domain/base-strategy/index.js.map +1 -0
  9. package/dist/domain/base-strategy/trace-utils.d.ts +59 -0
  10. package/dist/domain/base-strategy/trace-utils.d.ts.map +1 -0
  11. package/dist/domain/base-strategy/trace-utils.js +86 -0
  12. package/dist/domain/base-strategy/trace-utils.js.map +1 -0
  13. package/dist/domain/base-strategy/types.d.ts +65 -0
  14. package/dist/domain/base-strategy/types.d.ts.map +1 -0
  15. package/dist/domain/base-strategy/types.js +8 -0
  16. package/dist/domain/base-strategy/types.js.map +1 -0
  17. package/dist/domain/coordination/agent-handoff-coordinator.d.ts +57 -0
  18. package/dist/domain/coordination/agent-handoff-coordinator.d.ts.map +1 -0
  19. package/dist/domain/coordination/agent-handoff-coordinator.js +232 -0
  20. package/dist/domain/coordination/agent-handoff-coordinator.js.map +1 -0
  21. package/dist/domain/coordination/execution-trace.d.ts +42 -0
  22. package/dist/domain/coordination/execution-trace.d.ts.map +1 -0
  23. package/dist/domain/coordination/execution-trace.js +42 -0
  24. package/dist/domain/coordination/execution-trace.js.map +1 -0
  25. package/dist/domain/coordination/handoff-types.d.ts +132 -0
  26. package/dist/domain/coordination/handoff-types.d.ts.map +1 -0
  27. package/dist/domain/coordination/handoff-types.js +2 -0
  28. package/dist/domain/coordination/handoff-types.js.map +1 -0
  29. package/dist/domain/coordination/index.d.ts +7 -0
  30. package/dist/domain/coordination/index.d.ts.map +1 -0
  31. package/dist/domain/coordination/index.js +4 -0
  32. package/dist/domain/coordination/index.js.map +1 -0
  33. package/dist/domain/coordination/summary-feedback-coordinator.d.ts +3 -0
  34. package/dist/domain/coordination/summary-feedback-coordinator.d.ts.map +1 -0
  35. package/dist/domain/coordination/summary-feedback-coordinator.js +2 -0
  36. package/dist/domain/coordination/summary-feedback-coordinator.js.map +1 -0
  37. package/dist/domain/coordinators/index.d.ts +3 -0
  38. package/dist/domain/coordinators/index.d.ts.map +1 -0
  39. package/dist/domain/coordinators/index.js +2 -0
  40. package/dist/domain/coordinators/index.js.map +1 -0
  41. package/dist/domain/coordinators/summary-feedback-coordinator.d.ts +111 -0
  42. package/dist/domain/coordinators/summary-feedback-coordinator.d.ts.map +1 -0
  43. package/dist/domain/coordinators/summary-feedback-coordinator.js +372 -0
  44. package/dist/domain/coordinators/summary-feedback-coordinator.js.map +1 -0
  45. package/dist/domain/coordinators/types.d.ts +90 -0
  46. package/dist/domain/coordinators/types.d.ts.map +1 -0
  47. package/dist/domain/coordinators/types.js +2 -0
  48. package/dist/domain/coordinators/types.js.map +1 -0
  49. package/dist/domain/index.d.ts +2 -0
  50. package/dist/domain/index.d.ts.map +1 -1
  51. package/dist/domain/index.js +2 -0
  52. package/dist/domain/index.js.map +1 -1
  53. package/dist/domain/prompts/generators/architecture.d.ts +43 -0
  54. package/dist/domain/prompts/generators/architecture.d.ts.map +1 -0
  55. package/dist/domain/prompts/generators/architecture.js +71 -0
  56. package/dist/domain/prompts/generators/architecture.js.map +1 -0
  57. package/dist/domain/prompts/generators/code-analysis.d.ts +43 -0
  58. package/dist/domain/prompts/generators/code-analysis.d.ts.map +1 -0
  59. package/dist/domain/prompts/generators/code-analysis.js +73 -0
  60. package/dist/domain/prompts/generators/code-analysis.js.map +1 -0
  61. package/dist/domain/prompts/generators/domain-neutral.d.ts +55 -0
  62. package/dist/domain/prompts/generators/domain-neutral.d.ts.map +1 -0
  63. package/dist/domain/prompts/generators/domain-neutral.js +98 -0
  64. package/dist/domain/prompts/generators/domain-neutral.js.map +1 -0
  65. package/dist/domain/prompts/generators/hierarchical.d.ts +46 -0
  66. package/dist/domain/prompts/generators/hierarchical.d.ts.map +1 -0
  67. package/dist/domain/prompts/generators/hierarchical.js +83 -0
  68. package/dist/domain/prompts/generators/hierarchical.js.map +1 -0
  69. package/dist/domain/prompts/generators/index.d.ts +11 -0
  70. package/dist/domain/prompts/generators/index.d.ts.map +1 -0
  71. package/dist/domain/prompts/generators/index.js +6 -0
  72. package/dist/domain/prompts/generators/index.js.map +1 -0
  73. package/dist/domain/prompts/generators/security.d.ts +52 -0
  74. package/dist/domain/prompts/generators/security.d.ts.map +1 -0
  75. package/dist/domain/prompts/generators/security.js +83 -0
  76. package/dist/domain/prompts/generators/security.js.map +1 -0
  77. package/dist/domain/prompts/index.d.ts +11 -0
  78. package/dist/domain/prompts/index.d.ts.map +1 -0
  79. package/dist/domain/prompts/index.js +12 -0
  80. package/dist/domain/prompts/index.js.map +1 -0
  81. package/dist/domain/prompts/registry.d.ts +17 -0
  82. package/dist/domain/prompts/registry.d.ts.map +1 -0
  83. package/dist/domain/prompts/registry.js +46 -0
  84. package/dist/domain/prompts/registry.js.map +1 -0
  85. package/dist/domain/prompts/renderers/index.d.ts +3 -0
  86. package/dist/domain/prompts/renderers/index.d.ts.map +1 -0
  87. package/dist/domain/prompts/renderers/index.js +3 -0
  88. package/dist/domain/prompts/renderers/index.js.map +1 -0
  89. package/dist/domain/prompts/renderers/markdown-renderer.d.ts +10 -0
  90. package/dist/domain/prompts/renderers/markdown-renderer.d.ts.map +1 -0
  91. package/dist/domain/prompts/renderers/markdown-renderer.js +29 -0
  92. package/dist/domain/prompts/renderers/markdown-renderer.js.map +1 -0
  93. package/dist/domain/prompts/renderers/xml-renderer.d.ts +10 -0
  94. package/dist/domain/prompts/renderers/xml-renderer.d.ts.map +1 -0
  95. package/dist/domain/prompts/renderers/xml-renderer.js +49 -0
  96. package/dist/domain/prompts/renderers/xml-renderer.js.map +1 -0
  97. package/dist/domain/prompts/template-engine.d.ts +11 -0
  98. package/dist/domain/prompts/template-engine.d.ts.map +1 -0
  99. package/dist/domain/prompts/template-engine.js +55 -0
  100. package/dist/domain/prompts/template-engine.js.map +1 -0
  101. package/dist/domain/prompts/template-types.d.ts +41 -0
  102. package/dist/domain/prompts/template-types.d.ts.map +1 -0
  103. package/dist/domain/prompts/template-types.js +2 -0
  104. package/dist/domain/prompts/template-types.js.map +1 -0
  105. package/dist/domain/prompts/types.d.ts +53 -0
  106. package/dist/domain/prompts/types.d.ts.map +1 -0
  107. package/dist/domain/prompts/types.js +2 -0
  108. package/dist/domain/prompts/types.js.map +1 -0
  109. package/dist/domain/prompts/unified-prompt-builder.d.ts +43 -0
  110. package/dist/domain/prompts/unified-prompt-builder.d.ts.map +1 -0
  111. package/dist/domain/prompts/unified-prompt-builder.js +80 -0
  112. package/dist/domain/prompts/unified-prompt-builder.js.map +1 -0
  113. package/dist/domain/router/framework-router.d.ts +53 -0
  114. package/dist/domain/router/framework-router.d.ts.map +1 -0
  115. package/dist/domain/router/framework-router.js +142 -0
  116. package/dist/domain/router/framework-router.js.map +1 -0
  117. package/dist/domain/router/index.d.ts +11 -0
  118. package/dist/domain/router/index.d.ts.map +1 -0
  119. package/dist/domain/router/index.js +12 -0
  120. package/dist/domain/router/index.js.map +1 -0
  121. package/dist/domain/router/plugin-manager.d.ts +81 -0
  122. package/dist/domain/router/plugin-manager.d.ts.map +1 -0
  123. package/dist/domain/router/plugin-manager.js +100 -0
  124. package/dist/domain/router/plugin-manager.js.map +1 -0
  125. package/dist/domain/router/strategy-registry.d.ts +73 -0
  126. package/dist/domain/router/strategy-registry.d.ts.map +1 -0
  127. package/dist/domain/router/strategy-registry.js +92 -0
  128. package/dist/domain/router/strategy-registry.js.map +1 -0
  129. package/dist/domain/router/types.d.ts +111 -0
  130. package/dist/domain/router/types.d.ts.map +1 -0
  131. package/dist/domain/router/types.js +7 -0
  132. package/dist/domain/router/types.js.map +1 -0
  133. package/dist/domain/speckit/generators/adr-generator.d.ts +3 -0
  134. package/dist/domain/speckit/generators/adr-generator.d.ts.map +1 -0
  135. package/dist/domain/speckit/generators/adr-generator.js +25 -0
  136. package/dist/domain/speckit/generators/adr-generator.js.map +1 -0
  137. package/dist/domain/speckit/generators/index.d.ts +8 -0
  138. package/dist/domain/speckit/generators/index.d.ts.map +1 -0
  139. package/dist/domain/speckit/generators/index.js +8 -0
  140. package/dist/domain/speckit/generators/index.js.map +1 -0
  141. package/dist/domain/speckit/generators/plan-generator.d.ts +3 -0
  142. package/dist/domain/speckit/generators/plan-generator.d.ts.map +1 -0
  143. package/dist/domain/speckit/generators/plan-generator.js +88 -0
  144. package/dist/domain/speckit/generators/plan-generator.js.map +1 -0
  145. package/dist/domain/speckit/generators/progress-generator.d.ts +3 -0
  146. package/dist/domain/speckit/generators/progress-generator.d.ts.map +1 -0
  147. package/dist/domain/speckit/generators/progress-generator.js +24 -0
  148. package/dist/domain/speckit/generators/progress-generator.js.map +1 -0
  149. package/dist/domain/speckit/generators/readme-generator.d.ts +3 -0
  150. package/dist/domain/speckit/generators/readme-generator.d.ts.map +1 -0
  151. package/dist/domain/speckit/generators/readme-generator.js +23 -0
  152. package/dist/domain/speckit/generators/readme-generator.js.map +1 -0
  153. package/dist/domain/speckit/generators/roadmap-generator.d.ts +3 -0
  154. package/dist/domain/speckit/generators/roadmap-generator.d.ts.map +1 -0
  155. package/dist/domain/speckit/generators/roadmap-generator.js +18 -0
  156. package/dist/domain/speckit/generators/roadmap-generator.js.map +1 -0
  157. package/dist/domain/speckit/generators/spec-generator.d.ts +3 -0
  158. package/dist/domain/speckit/generators/spec-generator.d.ts.map +1 -0
  159. package/dist/domain/speckit/generators/spec-generator.js +76 -0
  160. package/dist/domain/speckit/generators/spec-generator.js.map +1 -0
  161. package/dist/domain/speckit/generators/tasks-generator.d.ts +3 -0
  162. package/dist/domain/speckit/generators/tasks-generator.d.ts.map +1 -0
  163. package/dist/domain/speckit/generators/tasks-generator.js +15 -0
  164. package/dist/domain/speckit/generators/tasks-generator.js.map +1 -0
  165. package/dist/domain/speckit/index.d.ts +5 -0
  166. package/dist/domain/speckit/index.d.ts.map +1 -0
  167. package/dist/domain/speckit/index.js +4 -0
  168. package/dist/domain/speckit/index.js.map +1 -0
  169. package/dist/domain/speckit/types.d.ts +161 -0
  170. package/dist/domain/speckit/types.d.ts.map +1 -0
  171. package/dist/domain/speckit/types.js +74 -0
  172. package/dist/domain/speckit/types.js.map +1 -0
  173. package/dist/domain/speckit/validators/constitution-validator.d.ts +3 -0
  174. package/dist/domain/speckit/validators/constitution-validator.d.ts.map +1 -0
  175. package/dist/domain/speckit/validators/constitution-validator.js +28 -0
  176. package/dist/domain/speckit/validators/constitution-validator.js.map +1 -0
  177. package/dist/domain/speckit/validators/index.d.ts +2 -0
  178. package/dist/domain/speckit/validators/index.d.ts.map +1 -0
  179. package/dist/domain/speckit/validators/index.js +2 -0
  180. package/dist/domain/speckit/validators/index.js.map +1 -0
  181. package/dist/frameworks/agent-orchestration/index.d.ts +7 -0
  182. package/dist/frameworks/agent-orchestration/index.d.ts.map +1 -0
  183. package/dist/frameworks/agent-orchestration/index.js +81 -0
  184. package/dist/frameworks/agent-orchestration/index.js.map +1 -0
  185. package/dist/frameworks/code-quality/index.d.ts +13 -0
  186. package/dist/frameworks/code-quality/index.d.ts.map +1 -0
  187. package/dist/frameworks/code-quality/index.js +24 -0
  188. package/dist/frameworks/code-quality/index.js.map +1 -0
  189. package/dist/frameworks/code-quality/router.d.ts +7 -0
  190. package/dist/frameworks/code-quality/router.d.ts.map +1 -0
  191. package/dist/frameworks/code-quality/router.js +50 -0
  192. package/dist/frameworks/code-quality/router.js.map +1 -0
  193. package/dist/frameworks/code-quality/types.d.ts +61 -0
  194. package/dist/frameworks/code-quality/types.d.ts.map +1 -0
  195. package/dist/frameworks/code-quality/types.js +29 -0
  196. package/dist/frameworks/code-quality/types.js.map +1 -0
  197. package/dist/frameworks/design-architecture/index.d.ts +13 -0
  198. package/dist/frameworks/design-architecture/index.d.ts.map +1 -0
  199. package/dist/frameworks/design-architecture/index.js +29 -0
  200. package/dist/frameworks/design-architecture/index.js.map +1 -0
  201. package/dist/frameworks/design-architecture/router.d.ts +6 -0
  202. package/dist/frameworks/design-architecture/router.d.ts.map +1 -0
  203. package/dist/frameworks/design-architecture/router.js +51 -0
  204. package/dist/frameworks/design-architecture/router.js.map +1 -0
  205. package/dist/frameworks/design-architecture/types.d.ts +42 -0
  206. package/dist/frameworks/design-architecture/types.d.ts.map +1 -0
  207. package/dist/frameworks/design-architecture/types.js +35 -0
  208. package/dist/frameworks/design-architecture/types.js.map +1 -0
  209. package/dist/frameworks/documentation/index.d.ts +11 -0
  210. package/dist/frameworks/documentation/index.d.ts.map +1 -0
  211. package/dist/frameworks/documentation/index.js +22 -0
  212. package/dist/frameworks/documentation/index.js.map +1 -0
  213. package/dist/frameworks/documentation/router.d.ts +6 -0
  214. package/dist/frameworks/documentation/router.d.ts.map +1 -0
  215. package/dist/frameworks/documentation/router.js +36 -0
  216. package/dist/frameworks/documentation/router.js.map +1 -0
  217. package/dist/frameworks/documentation/types.d.ts +39 -0
  218. package/dist/frameworks/documentation/types.d.ts.map +1 -0
  219. package/dist/frameworks/documentation/types.js +30 -0
  220. package/dist/frameworks/documentation/types.js.map +1 -0
  221. package/dist/frameworks/index.d.ts +20 -0
  222. package/dist/frameworks/index.d.ts.map +1 -0
  223. package/dist/frameworks/index.js +43 -0
  224. package/dist/frameworks/index.js.map +1 -0
  225. package/dist/frameworks/project-management/index.d.ts +7 -0
  226. package/dist/frameworks/project-management/index.d.ts.map +1 -0
  227. package/dist/frameworks/project-management/index.js +80 -0
  228. package/dist/frameworks/project-management/index.js.map +1 -0
  229. package/dist/frameworks/prompt-engineering/index.d.ts +14 -0
  230. package/dist/frameworks/prompt-engineering/index.d.ts.map +1 -0
  231. package/dist/frameworks/prompt-engineering/index.js +25 -0
  232. package/dist/frameworks/prompt-engineering/index.js.map +1 -0
  233. package/dist/frameworks/prompt-engineering/router.d.ts +7 -0
  234. package/dist/frameworks/prompt-engineering/router.d.ts.map +1 -0
  235. package/dist/frameworks/prompt-engineering/router.js +47 -0
  236. package/dist/frameworks/prompt-engineering/router.js.map +1 -0
  237. package/dist/frameworks/prompt-engineering/types.d.ts +39 -0
  238. package/dist/frameworks/prompt-engineering/types.d.ts.map +1 -0
  239. package/dist/frameworks/prompt-engineering/types.js +44 -0
  240. package/dist/frameworks/prompt-engineering/types.js.map +1 -0
  241. package/dist/frameworks/prompt-optimization/index.d.ts +7 -0
  242. package/dist/frameworks/prompt-optimization/index.d.ts.map +1 -0
  243. package/dist/frameworks/prompt-optimization/index.js +66 -0
  244. package/dist/frameworks/prompt-optimization/index.js.map +1 -0
  245. package/dist/frameworks/registry.d.ts +27 -0
  246. package/dist/frameworks/registry.d.ts.map +1 -0
  247. package/dist/frameworks/registry.js +38 -0
  248. package/dist/frameworks/registry.js.map +1 -0
  249. package/dist/frameworks/security/index.d.ts +10 -0
  250. package/dist/frameworks/security/index.d.ts.map +1 -0
  251. package/dist/frameworks/security/index.js +21 -0
  252. package/dist/frameworks/security/index.js.map +1 -0
  253. package/dist/frameworks/security/router.d.ts +6 -0
  254. package/dist/frameworks/security/router.d.ts.map +1 -0
  255. package/dist/frameworks/security/router.js +25 -0
  256. package/dist/frameworks/security/router.js.map +1 -0
  257. package/dist/frameworks/security/types.d.ts +39 -0
  258. package/dist/frameworks/security/types.d.ts.map +1 -0
  259. package/dist/frameworks/security/types.js +43 -0
  260. package/dist/frameworks/security/types.js.map +1 -0
  261. package/dist/frameworks/strategic-planning/index.d.ts +7 -0
  262. package/dist/frameworks/strategic-planning/index.d.ts.map +1 -0
  263. package/dist/frameworks/strategic-planning/index.js +73 -0
  264. package/dist/frameworks/strategic-planning/index.js.map +1 -0
  265. package/dist/frameworks/testing/index.d.ts +10 -0
  266. package/dist/frameworks/testing/index.d.ts.map +1 -0
  267. package/dist/frameworks/testing/index.js +21 -0
  268. package/dist/frameworks/testing/index.js.map +1 -0
  269. package/dist/frameworks/testing/router.d.ts +6 -0
  270. package/dist/frameworks/testing/router.d.ts.map +1 -0
  271. package/dist/frameworks/testing/router.js +38 -0
  272. package/dist/frameworks/testing/router.js.map +1 -0
  273. package/dist/frameworks/testing/types.d.ts +86 -0
  274. package/dist/frameworks/testing/types.d.ts.map +1 -0
  275. package/dist/frameworks/testing/types.js +37 -0
  276. package/dist/frameworks/testing/types.js.map +1 -0
  277. package/dist/frameworks/types.d.ts +24 -0
  278. package/dist/frameworks/types.d.ts.map +1 -0
  279. package/dist/frameworks/types.js +6 -0
  280. package/dist/frameworks/types.js.map +1 -0
  281. package/dist/frameworks/visualization/index.d.ts +7 -0
  282. package/dist/frameworks/visualization/index.d.ts.map +1 -0
  283. package/dist/frameworks/visualization/index.js +80 -0
  284. package/dist/frameworks/visualization/index.js.map +1 -0
  285. package/dist/gateway/polyglot-gateway.d.ts +2 -2
  286. package/dist/gateway/polyglot-gateway.d.ts.map +1 -1
  287. package/dist/gateway/polyglot-gateway.js +9 -4
  288. package/dist/gateway/polyglot-gateway.js.map +1 -1
  289. package/dist/index.d.ts.map +1 -1
  290. package/dist/index.js +139 -0
  291. package/dist/index.js.map +1 -1
  292. package/dist/platform/index.d.ts +35 -0
  293. package/dist/platform/index.d.ts.map +1 -0
  294. package/dist/platform/index.js +46 -0
  295. package/dist/platform/index.js.map +1 -0
  296. package/dist/platform/mock-pal.d.ts +70 -0
  297. package/dist/platform/mock-pal.d.ts.map +1 -0
  298. package/dist/platform/mock-pal.js +244 -0
  299. package/dist/platform/mock-pal.js.map +1 -0
  300. package/dist/platform/node-pal.d.ts +52 -0
  301. package/dist/platform/node-pal.d.ts.map +1 -0
  302. package/dist/platform/node-pal.js +154 -0
  303. package/dist/platform/node-pal.js.map +1 -0
  304. package/dist/platform/pal.interface.d.ts +103 -0
  305. package/dist/platform/pal.interface.d.ts.map +1 -0
  306. package/dist/platform/pal.interface.js +12 -0
  307. package/dist/platform/pal.interface.js.map +1 -0
  308. package/dist/schemas/prompt-hierarchy.d.ts +2 -2
  309. package/dist/schemas/prompt-hierarchy.d.ts.map +1 -1
  310. package/dist/schemas/prompt-hierarchy.js +35 -9
  311. package/dist/schemas/prompt-hierarchy.js.map +1 -1
  312. package/dist/schemas/update-progress.d.ts +4 -4
  313. package/dist/schemas/validate-spec.d.ts +1 -1
  314. package/dist/strategies/adr-strategy.d.ts +17 -8
  315. package/dist/strategies/adr-strategy.d.ts.map +1 -1
  316. package/dist/strategies/adr-strategy.js +42 -17
  317. package/dist/strategies/adr-strategy.js.map +1 -1
  318. package/dist/strategies/chat-strategy.d.ts +17 -8
  319. package/dist/strategies/chat-strategy.d.ts.map +1 -1
  320. package/dist/strategies/chat-strategy.js +39 -17
  321. package/dist/strategies/chat-strategy.js.map +1 -1
  322. package/dist/strategies/enterprise-strategy.d.ts +17 -8
  323. package/dist/strategies/enterprise-strategy.d.ts.map +1 -1
  324. package/dist/strategies/enterprise-strategy.js +41 -21
  325. package/dist/strategies/enterprise-strategy.js.map +1 -1
  326. package/dist/strategies/output-strategy.d.ts +25 -0
  327. package/dist/strategies/output-strategy.d.ts.map +1 -1
  328. package/dist/strategies/output-strategy.js.map +1 -1
  329. package/dist/strategies/rfc-strategy.d.ts +17 -9
  330. package/dist/strategies/rfc-strategy.d.ts.map +1 -1
  331. package/dist/strategies/rfc-strategy.js +40 -22
  332. package/dist/strategies/rfc-strategy.js.map +1 -1
  333. package/dist/strategies/sdd-strategy.d.ts +17 -8
  334. package/dist/strategies/sdd-strategy.d.ts.map +1 -1
  335. package/dist/strategies/sdd-strategy.js +32 -13
  336. package/dist/strategies/sdd-strategy.js.map +1 -1
  337. package/dist/strategies/shared/base-strategy.d.ts +144 -0
  338. package/dist/strategies/shared/base-strategy.d.ts.map +1 -0
  339. package/dist/strategies/shared/base-strategy.js +241 -0
  340. package/dist/strategies/shared/base-strategy.js.map +1 -0
  341. package/dist/strategies/shared/execution-trace.d.ts +74 -0
  342. package/dist/strategies/shared/execution-trace.d.ts.map +1 -0
  343. package/dist/strategies/shared/execution-trace.js +176 -0
  344. package/dist/strategies/shared/execution-trace.js.map +1 -0
  345. package/dist/strategies/shared/index.d.ts +9 -0
  346. package/dist/strategies/shared/index.d.ts.map +1 -0
  347. package/dist/strategies/shared/index.js +7 -0
  348. package/dist/strategies/shared/index.js.map +1 -0
  349. package/dist/strategies/shared/types.d.ts +96 -0
  350. package/dist/strategies/shared/types.d.ts.map +1 -0
  351. package/dist/strategies/shared/types.js +6 -0
  352. package/dist/strategies/shared/types.js.map +1 -0
  353. package/dist/strategies/speckit/index.d.ts +1 -0
  354. package/dist/strategies/speckit/index.d.ts.map +1 -1
  355. package/dist/strategies/speckit/index.js +2 -0
  356. package/dist/strategies/speckit/index.js.map +1 -1
  357. package/dist/strategies/speckit/speckit-strategy.d.ts +40 -0
  358. package/dist/strategies/speckit/speckit-strategy.d.ts.map +1 -0
  359. package/dist/strategies/speckit/speckit-strategy.js +217 -0
  360. package/dist/strategies/speckit/speckit-strategy.js.map +1 -0
  361. package/dist/strategies/togaf-strategy.d.ts +17 -8
  362. package/dist/strategies/togaf-strategy.d.ts.map +1 -1
  363. package/dist/strategies/togaf-strategy.js +42 -22
  364. package/dist/strategies/togaf-strategy.js.map +1 -1
  365. package/dist/tools/agent-orchestrator.d.ts.map +1 -1
  366. package/dist/tools/agent-orchestrator.js +6 -4
  367. package/dist/tools/agent-orchestrator.js.map +1 -1
  368. package/dist/tools/analysis/gap-frameworks-analyzers.d.ts.map +1 -1
  369. package/dist/tools/analysis/gap-frameworks-analyzers.js +40 -11
  370. package/dist/tools/analysis/gap-frameworks-analyzers.js.map +1 -1
  371. package/dist/tools/analysis/strategy-frameworks-builder.d.ts.map +1 -1
  372. package/dist/tools/analysis/strategy-frameworks-builder.js +42 -16
  373. package/dist/tools/analysis/strategy-frameworks-builder.js.map +1 -1
  374. package/dist/tools/config/generated/index.js +1 -1
  375. package/dist/tools/config/generated/mode-enum.js +1 -1
  376. package/dist/tools/config/generated/model-aliases.js +1 -1
  377. package/dist/tools/config/generated/model-identifiers.js +1 -1
  378. package/dist/tools/config/generated/provider-enum.js +1 -1
  379. package/dist/tools/design/design-assistant.js +1 -1
  380. package/dist/tools/design/design-assistant.js.map +1 -1
  381. package/dist/tools/design/services/artifact-generation.service.js +1 -1
  382. package/dist/tools/design/services/artifact-generation.service.js.map +1 -1
  383. package/dist/tools/enforcement/enforce-planning.d.ts +40 -0
  384. package/dist/tools/enforcement/enforce-planning.d.ts.map +1 -0
  385. package/dist/tools/enforcement/enforce-planning.js +105 -0
  386. package/dist/tools/enforcement/enforce-planning.js.map +1 -0
  387. package/dist/tools/enforcement/index.d.ts +14 -0
  388. package/dist/tools/enforcement/index.d.ts.map +1 -0
  389. package/dist/tools/enforcement/index.js +9 -0
  390. package/dist/tools/enforcement/index.js.map +1 -0
  391. package/dist/tools/enforcement/types.d.ts +52 -0
  392. package/dist/tools/enforcement/types.d.ts.map +1 -0
  393. package/dist/tools/enforcement/types.js +6 -0
  394. package/dist/tools/enforcement/types.js.map +1 -0
  395. package/dist/tools/enforcement/validate-annotations.d.ts +33 -0
  396. package/dist/tools/enforcement/validate-annotations.d.ts.map +1 -0
  397. package/dist/tools/enforcement/validate-annotations.js +89 -0
  398. package/dist/tools/enforcement/validate-annotations.js.map +1 -0
  399. package/dist/tools/enforcement/validate-progress.d.ts +80 -0
  400. package/dist/tools/enforcement/validate-progress.d.ts.map +1 -0
  401. package/dist/tools/enforcement/validate-progress.js +312 -0
  402. package/dist/tools/enforcement/validate-progress.js.map +1 -0
  403. package/dist/tools/enforcement/validate-schema-examples.d.ts +37 -0
  404. package/dist/tools/enforcement/validate-schema-examples.d.ts.map +1 -0
  405. package/dist/tools/enforcement/validate-schema-examples.js +99 -0
  406. package/dist/tools/enforcement/validate-schema-examples.js.map +1 -0
  407. package/dist/tools/guidelines-validator.d.ts.map +1 -1
  408. package/dist/tools/guidelines-validator.js +18 -6
  409. package/dist/tools/guidelines-validator.js.map +1 -1
  410. package/dist/tools/memory-context-optimizer.d.ts.map +1 -1
  411. package/dist/tools/memory-context-optimizer.js +26 -7
  412. package/dist/tools/memory-context-optimizer.js.map +1 -1
  413. package/dist/tools/mermaid/types.d.ts +2 -2
  414. package/dist/tools/mermaid/types.d.ts.map +1 -1
  415. package/dist/tools/mermaid/types.js +41 -11
  416. package/dist/tools/mermaid/types.js.map +1 -1
  417. package/dist/tools/mermaid-diagram-generator.d.ts.map +1 -1
  418. package/dist/tools/mermaid-diagram-generator.js +67 -38
  419. package/dist/tools/mermaid-diagram-generator.js.map +1 -1
  420. package/dist/tools/model-compatibility-checker.d.ts.map +1 -1
  421. package/dist/tools/model-compatibility-checker.js +36 -9
  422. package/dist/tools/model-compatibility-checker.js.map +1 -1
  423. package/dist/tools/prompt/architecture-design-prompt-builder.d.ts.map +1 -1
  424. package/dist/tools/prompt/architecture-design-prompt-builder.js +32 -7
  425. package/dist/tools/prompt/architecture-design-prompt-builder.js.map +1 -1
  426. package/dist/tools/prompt/code-analysis-prompt-builder.d.ts.map +1 -1
  427. package/dist/tools/prompt/code-analysis-prompt-builder.js +36 -8
  428. package/dist/tools/prompt/code-analysis-prompt-builder.js.map +1 -1
  429. package/dist/tools/prompt/coverage-dashboard-design-prompt-builder.d.ts +6 -6
  430. package/dist/tools/prompt/coverage-dashboard-design-prompt-builder.d.ts.map +1 -1
  431. package/dist/tools/prompt/coverage-dashboard-design-prompt-builder.js +296 -63
  432. package/dist/tools/prompt/coverage-dashboard-design-prompt-builder.js.map +1 -1
  433. package/dist/tools/prompt/debugging-assistant-prompt-builder.d.ts.map +1 -1
  434. package/dist/tools/prompt/debugging-assistant-prompt-builder.js +32 -7
  435. package/dist/tools/prompt/debugging-assistant-prompt-builder.js.map +1 -1
  436. package/dist/tools/prompt/digital-enterprise-architect-prompt-builder.d.ts.map +1 -1
  437. package/dist/tools/prompt/digital-enterprise-architect-prompt-builder.js +32 -7
  438. package/dist/tools/prompt/digital-enterprise-architect-prompt-builder.js.map +1 -1
  439. package/dist/tools/prompt/documentation-generator-prompt-builder.d.ts.map +1 -1
  440. package/dist/tools/prompt/documentation-generator-prompt-builder.js +32 -7
  441. package/dist/tools/prompt/documentation-generator-prompt-builder.js.map +1 -1
  442. package/dist/tools/prompt/domain-neutral-prompt-builder.d.ts +14 -14
  443. package/dist/tools/prompt/domain-neutral-prompt-builder.d.ts.map +1 -1
  444. package/dist/tools/prompt/domain-neutral-prompt-builder.js +198 -63
  445. package/dist/tools/prompt/domain-neutral-prompt-builder.js.map +1 -1
  446. package/dist/tools/prompt/facades/domain-neutral-facade.d.ts +77 -0
  447. package/dist/tools/prompt/facades/domain-neutral-facade.d.ts.map +1 -0
  448. package/dist/tools/prompt/facades/domain-neutral-facade.js +58 -0
  449. package/dist/tools/prompt/facades/domain-neutral-facade.js.map +1 -0
  450. package/dist/tools/prompt/facades/hierarchical-facade.d.ts +68 -0
  451. package/dist/tools/prompt/facades/hierarchical-facade.d.ts.map +1 -0
  452. package/dist/tools/prompt/facades/hierarchical-facade.js +84 -0
  453. package/dist/tools/prompt/facades/hierarchical-facade.js.map +1 -0
  454. package/dist/tools/prompt/facades/index.d.ts +5 -0
  455. package/dist/tools/prompt/facades/index.d.ts.map +1 -0
  456. package/dist/tools/prompt/facades/index.js +3 -0
  457. package/dist/tools/prompt/facades/index.js.map +1 -0
  458. package/dist/tools/prompt/hierarchical-prompt-builder.d.ts.map +1 -1
  459. package/dist/tools/prompt/hierarchical-prompt-builder.js +109 -28
  460. package/dist/tools/prompt/hierarchical-prompt-builder.js.map +1 -1
  461. package/dist/tools/prompt/hierarchy-level-selector.d.ts.map +1 -1
  462. package/dist/tools/prompt/hierarchy-level-selector.js +13 -2
  463. package/dist/tools/prompt/hierarchy-level-selector.js.map +1 -1
  464. package/dist/tools/prompt/l9-distinguished-engineer-prompt-builder.d.ts.map +1 -1
  465. package/dist/tools/prompt/l9-distinguished-engineer-prompt-builder.js +32 -7
  466. package/dist/tools/prompt/l9-distinguished-engineer-prompt-builder.js.map +1 -1
  467. package/dist/tools/prompt/prompt-chaining-builder.d.ts.map +1 -1
  468. package/dist/tools/prompt/prompt-chaining-builder.js +54 -14
  469. package/dist/tools/prompt/prompt-chaining-builder.js.map +1 -1
  470. package/dist/tools/prompt/prompt-flow-builder.d.ts.map +1 -1
  471. package/dist/tools/prompt/prompt-flow-builder.js +62 -25
  472. package/dist/tools/prompt/prompt-flow-builder.js.map +1 -1
  473. package/dist/tools/prompt/prompt-hierarchy.d.ts +3 -3
  474. package/dist/tools/prompt/quick-developer-prompts-builder.d.ts.map +1 -1
  475. package/dist/tools/prompt/quick-developer-prompts-builder.js +28 -7
  476. package/dist/tools/prompt/quick-developer-prompts-builder.js.map +1 -1
  477. package/dist/tools/prompt/security-hardening-prompt-builder.d.ts.map +1 -1
  478. package/dist/tools/prompt/security-hardening-prompt-builder.js +109 -24
  479. package/dist/tools/prompt/security-hardening-prompt-builder.js.map +1 -1
  480. package/dist/tools/prompt/spark-prompt-builder.d.ts.map +1 -1
  481. package/dist/tools/prompt/spark-prompt-builder.js +151 -69
  482. package/dist/tools/prompt/spark-prompt-builder.js.map +1 -1
  483. package/dist/tools/shared/deprecation-helpers.d.ts +79 -0
  484. package/dist/tools/shared/deprecation-helpers.d.ts.map +1 -0
  485. package/dist/tools/shared/deprecation-helpers.js +115 -0
  486. package/dist/tools/shared/deprecation-helpers.js.map +1 -0
  487. package/dist/tools/shared/index.d.ts +1 -0
  488. package/dist/tools/shared/index.d.ts.map +1 -1
  489. package/dist/tools/shared/index.js +1 -0
  490. package/dist/tools/shared/index.js.map +1 -1
  491. package/dist/tools/shared/types/export-format.types.d.ts.map +1 -1
  492. package/dist/tools/shared/types/export-format.types.js +25 -6
  493. package/dist/tools/shared/types/export-format.types.js.map +1 -1
  494. package/dist/tools/speckit-generator.d.ts.map +1 -1
  495. package/dist/tools/speckit-generator.js +11 -21
  496. package/dist/tools/speckit-generator.js.map +1 -1
  497. package/dist/tools/sprint-timeline-calculator.d.ts.map +1 -1
  498. package/dist/tools/sprint-timeline-calculator.js +24 -11
  499. package/dist/tools/sprint-timeline-calculator.js.map +1 -1
  500. package/package.json +7 -5
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Execution Trace - records decisions, metrics, and errors during strategy execution.
3
+ *
4
+ * The trace is mutable during execution but provides immutable snapshots for export.
5
+ * This domain-level trace is distinct from the legacy strategies/shared ExecutionTrace.
6
+ */
7
+ import type { Decision, ExecutionTraceData, TracedError } from "./types.js";
8
+ type IdGenerator = () => string;
9
+ type Clock = () => Date;
10
+ interface ExecutionTraceOptions {
11
+ readonly executionId?: string;
12
+ readonly startedAt?: Date;
13
+ readonly now?: Clock;
14
+ readonly idGenerator?: IdGenerator;
15
+ readonly onFallbackId?: (fallbackId: string) => void;
16
+ }
17
+ /**
18
+ * Execution Trace - records decisions, metrics, and errors during strategy execution.
19
+ *
20
+ * The trace is mutable during execution but provides immutable snapshots for export.
21
+ *
22
+ * @example
23
+ * ```typescript
24
+ * const trace = new ExecutionTrace('my-strategy', '1.0.0');
25
+ *
26
+ * trace.recordDecision(
27
+ * 'select-template',
28
+ * 'Selected enterprise template based on input size',
29
+ * { inputSize: 1500, threshold: 1000 }
30
+ * );
31
+ *
32
+ * trace.recordMetric('generation_time_ms', 250);
33
+ *
34
+ * try {
35
+ * // operation
36
+ * } catch (error) {
37
+ * trace.recordError(error, { operation: 'template-render' });
38
+ * }
39
+ *
40
+ * // Export for debugging
41
+ * const markdown = trace.toMarkdown();
42
+ * ```
43
+ */
44
+ export declare class ExecutionTrace {
45
+ private readonly strategyName;
46
+ private readonly strategyVersion;
47
+ private readonly executionId;
48
+ private readonly startedAt;
49
+ private completedAt;
50
+ private readonly now;
51
+ private readonly idGenerator;
52
+ private readonly _decisions;
53
+ private readonly _metrics;
54
+ private readonly _errors;
55
+ constructor(strategyName: string, strategyVersion: string, options?: ExecutionTraceOptions);
56
+ /**
57
+ * Record a decision made during execution.
58
+ *
59
+ * @param category - Decision category (e.g., 'validation', 'generation', 'selection')
60
+ * @param description - Human-readable description of the decision
61
+ * @param context - Additional context (must be JSON-serializable)
62
+ * @returns The recorded decision
63
+ */
64
+ recordDecision(category: string, description: string, context?: Record<string, unknown>): Decision;
65
+ /**
66
+ * Record a numeric metric.
67
+ *
68
+ * @param name - Metric name (e.g., 'generation_time_ms', 'token_count')
69
+ * @param value - Metric value
70
+ */
71
+ recordMetric(name: string, value: number): void;
72
+ /**
73
+ * Increment a counter metric.
74
+ *
75
+ * @param name - Counter name
76
+ * @param increment - Amount to increment (default: 1)
77
+ */
78
+ incrementMetric(name: string, increment?: number): void;
79
+ /**
80
+ * Record an error with context.
81
+ *
82
+ * @param error - The error that occurred
83
+ * @param context - Additional context at time of error
84
+ */
85
+ recordError(error: Error, context?: Record<string, unknown>): void;
86
+ /**
87
+ * Mark the trace as complete.
88
+ */
89
+ complete(): void;
90
+ /**
91
+ * Get all recorded decisions.
92
+ */
93
+ get decisions(): readonly Decision[];
94
+ /**
95
+ * Get all recorded metrics.
96
+ */
97
+ get metrics(): Readonly<Record<string, number>>;
98
+ /**
99
+ * Get all recorded errors.
100
+ */
101
+ get errors(): readonly TracedError[];
102
+ /**
103
+ * Get current duration in milliseconds.
104
+ */
105
+ get durationMs(): number;
106
+ /**
107
+ * Check if any errors were recorded.
108
+ */
109
+ get hasErrors(): boolean;
110
+ /**
111
+ * Get decisions filtered by category.
112
+ */
113
+ getDecisionsByCategory(category: string): readonly Decision[];
114
+ /**
115
+ * Export trace as immutable data object.
116
+ */
117
+ toData(): ExecutionTraceData;
118
+ /**
119
+ * Export trace as JSON string.
120
+ */
121
+ toJSON(): string;
122
+ /**
123
+ * Export trace as Markdown for human-readable debugging.
124
+ */
125
+ toMarkdown(): string;
126
+ /**
127
+ * Sanitize context to ensure it's JSON-serializable.
128
+ * Circular detection is scoped to the current traversal path; shared references
129
+ * are serialized independently rather than de-duplicated (for example, if the
130
+ * same object is referenced by two sibling keys, each key gets its own copy).
131
+ * This can increase trace size when large objects are referenced multiple times.
132
+ */
133
+ private sanitizeContext;
134
+ private sanitizeValue;
135
+ private cloneDecision;
136
+ private cloneError;
137
+ private cloneDate;
138
+ private cloneContext;
139
+ private isRecord;
140
+ }
141
+ export {};
142
+ //# sourceMappingURL=execution-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-trace.d.ts","sourceRoot":"","sources":["../../../src/domain/base-strategy/execution-trace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5E,KAAK,WAAW,GAAG,MAAM,MAAM,CAAC;AAChC,KAAK,KAAK,GAAG,MAAM,IAAI,CAAC;AAExB,UAAU,qBAAqB;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,cAAc;IAYzB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAZjC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAO;IACjC,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAE1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;gBAG3B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACxC,OAAO,GAAE,qBAA0B;IAiBpC;;;;;;;OAOG;IACH,cAAc,CACb,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,QAAQ;IAaX;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAI/C;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAI,GAAG,IAAI;IAIlD;;;;;OAKG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IAUtE;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;OAEG;IACH,IAAI,SAAS,IAAI,SAAS,QAAQ,EAAE,CAEnC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE9C;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,SAAS,WAAW,EAAE,CAEnC;IAED;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,CAGvB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE;IAQ7D;;OAEG;IACH,MAAM,IAAI,kBAAkB;IAe5B;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACH,UAAU,IAAI,MAAM;IAwFpB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,aAAa;IAgFrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;CAGhB"}
@@ -0,0 +1,377 @@
1
+ /**
2
+ * Execution Trace - records decisions, metrics, and errors during strategy execution.
3
+ *
4
+ * The trace is mutable during execution but provides immutable snapshots for export.
5
+ * This domain-level trace is distinct from the legacy strategies/shared ExecutionTrace.
6
+ */
7
+ const defaultClock = () => new Date();
8
+ const defaultIdGenerator = () => {
9
+ const cryptoApi = globalThis.crypto;
10
+ if (cryptoApi?.randomUUID) {
11
+ return cryptoApi.randomUUID();
12
+ }
13
+ // Fallback IDs are not cryptographically secure; use the idGenerator option in
14
+ // ExecutionTraceOptions to inject a custom ID generator if stronger guarantees
15
+ // are required (or use onFallbackId to surface a warning to callers).
16
+ return generateFallbackUUID();
17
+ };
18
+ const generateFallbackUUID = () => "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (char) => {
19
+ const randomValue = Math.floor(Math.random() * 16);
20
+ const value = char === "x" ? randomValue : (randomValue & 0x3) | 0x8;
21
+ return value.toString(16);
22
+ });
23
+ /**
24
+ * Execution Trace - records decisions, metrics, and errors during strategy execution.
25
+ *
26
+ * The trace is mutable during execution but provides immutable snapshots for export.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const trace = new ExecutionTrace('my-strategy', '1.0.0');
31
+ *
32
+ * trace.recordDecision(
33
+ * 'select-template',
34
+ * 'Selected enterprise template based on input size',
35
+ * { inputSize: 1500, threshold: 1000 }
36
+ * );
37
+ *
38
+ * trace.recordMetric('generation_time_ms', 250);
39
+ *
40
+ * try {
41
+ * // operation
42
+ * } catch (error) {
43
+ * trace.recordError(error, { operation: 'template-render' });
44
+ * }
45
+ *
46
+ * // Export for debugging
47
+ * const markdown = trace.toMarkdown();
48
+ * ```
49
+ */
50
+ export class ExecutionTrace {
51
+ strategyName;
52
+ strategyVersion;
53
+ executionId;
54
+ startedAt;
55
+ completedAt = null;
56
+ now;
57
+ idGenerator;
58
+ _decisions = [];
59
+ _metrics = {};
60
+ _errors = [];
61
+ constructor(strategyName, strategyVersion, options = {}) {
62
+ this.strategyName = strategyName;
63
+ this.strategyVersion = strategyVersion;
64
+ const usingDefaultIdGenerator = !options.executionId && !options.idGenerator;
65
+ this.now = options.now ?? defaultClock;
66
+ this.idGenerator = options.idGenerator ?? defaultIdGenerator;
67
+ this.executionId = options.executionId ?? this.idGenerator();
68
+ this.startedAt = options.startedAt ?? this.now();
69
+ if (usingDefaultIdGenerator && !globalThis.crypto?.randomUUID) {
70
+ options.onFallbackId?.(this.executionId);
71
+ }
72
+ }
73
+ // ============================================
74
+ // Recording Methods
75
+ // ============================================
76
+ /**
77
+ * Record a decision made during execution.
78
+ *
79
+ * @param category - Decision category (e.g., 'validation', 'generation', 'selection')
80
+ * @param description - Human-readable description of the decision
81
+ * @param context - Additional context (must be JSON-serializable)
82
+ * @returns The recorded decision
83
+ */
84
+ recordDecision(category, description, context = {}) {
85
+ const decision = {
86
+ id: this.idGenerator(),
87
+ timestamp: this.now(),
88
+ category,
89
+ description,
90
+ context: this.sanitizeContext(context),
91
+ };
92
+ this._decisions.push(decision);
93
+ return decision;
94
+ }
95
+ /**
96
+ * Record a numeric metric.
97
+ *
98
+ * @param name - Metric name (e.g., 'generation_time_ms', 'token_count')
99
+ * @param value - Metric value
100
+ */
101
+ recordMetric(name, value) {
102
+ this._metrics[name] = value;
103
+ }
104
+ /**
105
+ * Increment a counter metric.
106
+ *
107
+ * @param name - Counter name
108
+ * @param increment - Amount to increment (default: 1)
109
+ */
110
+ incrementMetric(name, increment = 1) {
111
+ this._metrics[name] = (this._metrics[name] ?? 0) + increment;
112
+ }
113
+ /**
114
+ * Record an error with context.
115
+ *
116
+ * @param error - The error that occurred
117
+ * @param context - Additional context at time of error
118
+ */
119
+ recordError(error, context = {}) {
120
+ this._errors.push({
121
+ timestamp: this.now(),
122
+ category: error.name || "Error",
123
+ message: error.message,
124
+ stack: error.stack,
125
+ context: this.sanitizeContext(context),
126
+ });
127
+ }
128
+ /**
129
+ * Mark the trace as complete.
130
+ */
131
+ complete() {
132
+ this.completedAt = this.now();
133
+ this.recordMetric("total_duration_ms", this.durationMs);
134
+ }
135
+ // ============================================
136
+ // Query Methods
137
+ // ============================================
138
+ /**
139
+ * Get all recorded decisions.
140
+ */
141
+ get decisions() {
142
+ return this._decisions.map((decision) => this.cloneDecision(decision));
143
+ }
144
+ /**
145
+ * Get all recorded metrics.
146
+ */
147
+ get metrics() {
148
+ return { ...this._metrics };
149
+ }
150
+ /**
151
+ * Get all recorded errors.
152
+ */
153
+ get errors() {
154
+ return this._errors.map((error) => this.cloneError(error));
155
+ }
156
+ /**
157
+ * Get current duration in milliseconds.
158
+ */
159
+ get durationMs() {
160
+ const endTime = this.completedAt ?? this.now();
161
+ return endTime.getTime() - this.startedAt.getTime();
162
+ }
163
+ /**
164
+ * Check if any errors were recorded.
165
+ */
166
+ get hasErrors() {
167
+ return this._errors.length > 0;
168
+ }
169
+ /**
170
+ * Get decisions filtered by category.
171
+ */
172
+ getDecisionsByCategory(category) {
173
+ return this._decisions.filter((d) => d.category === category);
174
+ }
175
+ // ============================================
176
+ // Export Methods
177
+ // ============================================
178
+ /**
179
+ * Export trace as immutable data object.
180
+ */
181
+ toData() {
182
+ return {
183
+ executionId: this.executionId,
184
+ strategyName: this.strategyName,
185
+ strategyVersion: this.strategyVersion,
186
+ startedAt: this.cloneDate(this.startedAt),
187
+ completedAt: this.completedAt ? this.cloneDate(this.completedAt) : null,
188
+ decisions: this._decisions.map((decision) => this.cloneDecision(decision)),
189
+ metrics: { ...this._metrics },
190
+ errors: this._errors.map((error) => this.cloneError(error)),
191
+ };
192
+ }
193
+ /**
194
+ * Export trace as JSON string.
195
+ */
196
+ toJSON() {
197
+ return JSON.stringify(this.toData(), null, 2);
198
+ }
199
+ /**
200
+ * Export trace as Markdown for human-readable debugging.
201
+ */
202
+ toMarkdown() {
203
+ const lines = [];
204
+ // Header
205
+ lines.push(`# Execution Trace: ${this.strategyName} v${this.strategyVersion}`);
206
+ lines.push("");
207
+ lines.push(`**Execution ID**: \`${this.executionId}\``);
208
+ lines.push(`**Started**: ${this.startedAt.toISOString()}`);
209
+ if (this.completedAt) {
210
+ lines.push(`**Completed**: ${this.completedAt.toISOString()}`);
211
+ }
212
+ lines.push(`**Duration**: ${this.durationMs}ms`);
213
+ lines.push("");
214
+ // Metrics
215
+ if (Object.keys(this._metrics).length > 0) {
216
+ lines.push("## Metrics");
217
+ lines.push("");
218
+ lines.push("| Metric | Value |");
219
+ lines.push("|--------|-------|");
220
+ for (const [name, value] of Object.entries(this._metrics)) {
221
+ lines.push(`| ${name} | ${value} |`);
222
+ }
223
+ lines.push("");
224
+ }
225
+ // Decisions
226
+ if (this._decisions.length > 0) {
227
+ lines.push("## Decisions");
228
+ lines.push("");
229
+ for (const decision of this._decisions) {
230
+ lines.push(`### ${decision.category}`);
231
+ lines.push("");
232
+ lines.push(`**Time**: ${decision.timestamp.toISOString()}`);
233
+ lines.push("");
234
+ lines.push(decision.description);
235
+ lines.push("");
236
+ if (Object.keys(decision.context).length > 0) {
237
+ lines.push("**Context**:");
238
+ lines.push("```json");
239
+ lines.push(JSON.stringify(decision.context, null, 2));
240
+ lines.push("```");
241
+ lines.push("");
242
+ }
243
+ }
244
+ }
245
+ // Errors
246
+ if (this._errors.length > 0) {
247
+ lines.push("## Errors");
248
+ lines.push("");
249
+ for (const error of this._errors) {
250
+ lines.push(`### ${error.category}`);
251
+ lines.push("");
252
+ lines.push(`**Time**: ${error.timestamp.toISOString()}`);
253
+ lines.push(`**Message**: ${error.message}`);
254
+ lines.push("");
255
+ if (error.stack) {
256
+ lines.push("**Stack**:");
257
+ lines.push("```");
258
+ lines.push(error.stack);
259
+ lines.push("```");
260
+ lines.push("");
261
+ }
262
+ if (Object.keys(error.context).length > 0) {
263
+ lines.push("**Context**:");
264
+ lines.push("```json");
265
+ lines.push(JSON.stringify(error.context, null, 2));
266
+ lines.push("```");
267
+ lines.push("");
268
+ }
269
+ }
270
+ }
271
+ return lines.join("\n");
272
+ }
273
+ // ============================================
274
+ // Private Helpers
275
+ // ============================================
276
+ /**
277
+ * Sanitize context to ensure it's JSON-serializable.
278
+ * Circular detection is scoped to the current traversal path; shared references
279
+ * are serialized independently rather than de-duplicated (for example, if the
280
+ * same object is referenced by two sibling keys, each key gets its own copy).
281
+ * This can increase trace size when large objects are referenced multiple times.
282
+ */
283
+ sanitizeContext(context) {
284
+ const sanitized = this.sanitizeValue(context, new WeakSet());
285
+ return this.isRecord(sanitized) ? sanitized : {};
286
+ }
287
+ sanitizeValue(value, path) {
288
+ if (value === null) {
289
+ return null;
290
+ }
291
+ if (typeof value === "string" || typeof value === "number") {
292
+ return value;
293
+ }
294
+ if (typeof value === "boolean") {
295
+ return value;
296
+ }
297
+ if (typeof value === "bigint" ||
298
+ typeof value === "symbol" ||
299
+ typeof value === "function" ||
300
+ typeof value === "undefined") {
301
+ return String(value);
302
+ }
303
+ if (value instanceof Date) {
304
+ return value.toISOString();
305
+ }
306
+ if (value instanceof RegExp) {
307
+ return value.toString();
308
+ }
309
+ if (value instanceof Error) {
310
+ return {
311
+ name: value.name,
312
+ message: value.message,
313
+ stack: value.stack,
314
+ };
315
+ }
316
+ if (value instanceof Map) {
317
+ // Map entries are serialized as [key, value] tuples with stringified keys.
318
+ // Non-string keys that stringify to the same value may collide (for example,
319
+ // keys 1 and "1" both stringify to "1"), which risks data loss.
320
+ // Prefer string keys for traceable context.
321
+ return Array.from(value.entries()).map(([key, entryValue]) => [
322
+ String(key),
323
+ this.sanitizeValue(entryValue, path),
324
+ ]);
325
+ }
326
+ if (value instanceof Set) {
327
+ return Array.from(value.values()).map((entryValue) => this.sanitizeValue(entryValue, path));
328
+ }
329
+ if (Array.isArray(value)) {
330
+ return value.map((entryValue) => this.sanitizeValue(entryValue, path));
331
+ }
332
+ if (typeof value === "object") {
333
+ if (path.has(value)) {
334
+ return "[Circular]";
335
+ }
336
+ path.add(value);
337
+ try {
338
+ const result = {};
339
+ for (const [key, entryValue] of Object.entries(value)) {
340
+ result[key] = this.sanitizeValue(entryValue, path);
341
+ }
342
+ return result;
343
+ }
344
+ finally {
345
+ path.delete(value);
346
+ }
347
+ }
348
+ return String(value);
349
+ }
350
+ cloneDecision(decision) {
351
+ return {
352
+ ...decision,
353
+ timestamp: this.cloneDate(decision.timestamp),
354
+ context: this.cloneContext(decision.context),
355
+ };
356
+ }
357
+ cloneError(error) {
358
+ return {
359
+ ...error,
360
+ timestamp: this.cloneDate(error.timestamp),
361
+ context: this.cloneContext(error.context),
362
+ };
363
+ }
364
+ cloneDate(date) {
365
+ return new Date(date.getTime());
366
+ }
367
+ cloneContext(context) {
368
+ if (typeof structuredClone === "function") {
369
+ return structuredClone(context);
370
+ }
371
+ return JSON.parse(JSON.stringify(context));
372
+ }
373
+ isRecord(value) {
374
+ return typeof value === "object" && value !== null && !Array.isArray(value);
375
+ }
376
+ }
377
+ //# sourceMappingURL=execution-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-trace.js","sourceRoot":"","sources":["../../../src/domain/base-strategy/execution-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Base Strategy domain module.
3
+ *
4
+ * Provides ExecutionTrace for logging decisions, metrics, and errors
5
+ * during strategy execution.
6
+ */
7
+ export { ExecutionTrace } from "./execution-trace.js";
8
+ export { createTrace, mergeTraces, startTiming, withErrorTracing, } from "./trace-utils.js";
9
+ export type { Decision, ExecutionTraceData, TracedError } from "./types.js";
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/base-strategy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Base Strategy domain module.
3
+ *
4
+ * Provides ExecutionTrace for logging decisions, metrics, and errors
5
+ * during strategy execution.
6
+ */
7
+ // Core class
8
+ export { ExecutionTrace } from "./execution-trace.js";
9
+ // Utilities
10
+ export { createTrace, mergeTraces, startTiming, withErrorTracing, } from "./trace-utils.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/domain/base-strategy/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY;AACZ,OAAO,EACN,WAAW,EACX,WAAW,EACX,WAAW,EACX,gBAAgB,GAChB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Utility functions for working with ExecutionTrace.
3
+ *
4
+ * Provides factory functions, timing helpers, and trace aggregation utilities.
5
+ */
6
+ import { ExecutionTrace } from "./execution-trace.js";
7
+ import type { ExecutionTraceData } from "./types.js";
8
+ /**
9
+ * Create a new execution trace for a strategy.
10
+ *
11
+ * @param strategyName - Name of the strategy
12
+ * @param strategyVersion - Version of the strategy
13
+ * @returns New ExecutionTrace instance
14
+ */
15
+ export declare function createTrace(strategyName: string, strategyVersion: string): ExecutionTrace;
16
+ /**
17
+ * Merge multiple traces into a summary.
18
+ *
19
+ * Useful for aggregating traces from sub-strategies or parallel execution.
20
+ */
21
+ export declare function mergeTraces(traces: ExecutionTraceData[]): {
22
+ totalDuration: number;
23
+ totalDecisions: number;
24
+ totalErrors: number;
25
+ metrics: Record<string, number>;
26
+ };
27
+ /**
28
+ * Create a timing helper for measuring durations.
29
+ *
30
+ * @param trace - Trace to record timing to
31
+ * @param metricName - Name of the timing metric
32
+ * @returns Function to call when operation completes
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const endTiming = startTiming(trace, 'generation_time_ms');
37
+ * await generateDocument();
38
+ * endTiming(); // Records duration to trace
39
+ * ```
40
+ */
41
+ export declare function startTiming(trace: ExecutionTrace, metricName: string): () => number;
42
+ /**
43
+ * Wrap an async operation with automatic error tracing.
44
+ *
45
+ * @param trace - Trace to record to
46
+ * @param operation - Async operation to wrap
47
+ * @param context - Context to include if error occurs
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * const result = await withErrorTracing(
52
+ * trace,
53
+ * () => fetchData(url),
54
+ * { url, operation: 'fetch-data' }
55
+ * );
56
+ * ```
57
+ */
58
+ export declare function withErrorTracing<T>(trace: ExecutionTrace, operation: () => Promise<T>, context?: Record<string, unknown>): Promise<T>;
59
+ //# sourceMappingURL=trace-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-utils.d.ts","sourceRoot":"","sources":["../../../src/domain/base-strategy/trace-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAC1B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,GACrB,cAAc,CAEhB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG;IAC1D,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC,CAoBA;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,WAAW,CAC1B,KAAK,EAAE,cAAc,EACrB,UAAU,EAAE,MAAM,GAChB,MAAM,MAAM,CAQd;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACvC,KAAK,EAAE,cAAc,EACrB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,OAAO,CAAC,CAAC,CAAC,CAUZ"}