@backendkit-labs/agent-core 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 (533) hide show
  1. package/dist/agent-discovery/AgentPackageLoader.d.ts +14 -0
  2. package/dist/agent-discovery/AgentPackageLoader.d.ts.map +1 -0
  3. package/dist/agent-discovery/AgentPackageLoader.js +78 -0
  4. package/dist/agent-discovery/AgentPackageLoader.js.map +1 -0
  5. package/dist/agent-discovery/RemoteAgentRegistry.d.ts +31 -0
  6. package/dist/agent-discovery/RemoteAgentRegistry.d.ts.map +1 -0
  7. package/dist/agent-discovery/RemoteAgentRegistry.js +103 -0
  8. package/dist/agent-discovery/RemoteAgentRegistry.js.map +1 -0
  9. package/dist/agent-discovery/discoverAgents.d.ts +18 -0
  10. package/dist/agent-discovery/discoverAgents.d.ts.map +1 -0
  11. package/dist/agent-discovery/discoverAgents.js +59 -0
  12. package/dist/agent-discovery/discoverAgents.js.map +1 -0
  13. package/dist/agent-discovery/index.d.ts +5 -0
  14. package/dist/agent-discovery/index.d.ts.map +1 -0
  15. package/dist/agent-discovery/index.js +12 -0
  16. package/dist/agent-discovery/index.js.map +1 -0
  17. package/dist/agent-discovery/types.d.ts +42 -0
  18. package/dist/agent-discovery/types.d.ts.map +1 -0
  19. package/dist/agent-discovery/types.js +3 -0
  20. package/dist/agent-discovery/types.js.map +1 -0
  21. package/dist/agent-memory/EpisodicMemory.d.ts +26 -0
  22. package/dist/agent-memory/EpisodicMemory.d.ts.map +1 -0
  23. package/dist/agent-memory/EpisodicMemory.js +83 -0
  24. package/dist/agent-memory/EpisodicMemory.js.map +1 -0
  25. package/dist/agent-memory/MemorySystem.d.ts +40 -0
  26. package/dist/agent-memory/MemorySystem.d.ts.map +1 -0
  27. package/dist/agent-memory/MemorySystem.js +75 -0
  28. package/dist/agent-memory/MemorySystem.js.map +1 -0
  29. package/dist/agent-memory/ProceduralMemory.d.ts +26 -0
  30. package/dist/agent-memory/ProceduralMemory.d.ts.map +1 -0
  31. package/dist/agent-memory/ProceduralMemory.js +104 -0
  32. package/dist/agent-memory/ProceduralMemory.js.map +1 -0
  33. package/dist/agent-memory/SemanticMemory.d.ts +21 -0
  34. package/dist/agent-memory/SemanticMemory.d.ts.map +1 -0
  35. package/dist/agent-memory/SemanticMemory.js +68 -0
  36. package/dist/agent-memory/SemanticMemory.js.map +1 -0
  37. package/dist/agent-memory/index.d.ts +9 -0
  38. package/dist/agent-memory/index.d.ts.map +1 -0
  39. package/dist/agent-memory/index.js +19 -0
  40. package/dist/agent-memory/index.js.map +1 -0
  41. package/dist/agent-memory/scoring.d.ts +10 -0
  42. package/dist/agent-memory/scoring.d.ts.map +1 -0
  43. package/dist/agent-memory/scoring.js +32 -0
  44. package/dist/agent-memory/scoring.js.map +1 -0
  45. package/dist/agent-memory/stores/InMemoryStore.d.ts +10 -0
  46. package/dist/agent-memory/stores/InMemoryStore.d.ts.map +1 -0
  47. package/dist/agent-memory/stores/InMemoryStore.js +25 -0
  48. package/dist/agent-memory/stores/InMemoryStore.js.map +1 -0
  49. package/dist/agent-memory/stores/JsonFileStore.d.ts +18 -0
  50. package/dist/agent-memory/stores/JsonFileStore.d.ts.map +1 -0
  51. package/dist/agent-memory/stores/JsonFileStore.js +61 -0
  52. package/dist/agent-memory/stores/JsonFileStore.js.map +1 -0
  53. package/dist/agent-memory/tools.d.ts +6 -0
  54. package/dist/agent-memory/tools.d.ts.map +1 -0
  55. package/dist/agent-memory/tools.js +74 -0
  56. package/dist/agent-memory/tools.js.map +1 -0
  57. package/dist/agent-memory/types.d.ts +75 -0
  58. package/dist/agent-memory/types.d.ts.map +1 -0
  59. package/dist/agent-memory/types.js +4 -0
  60. package/dist/agent-memory/types.js.map +1 -0
  61. package/dist/bootstrap/GlobalSeed.d.ts +46 -0
  62. package/dist/bootstrap/GlobalSeed.d.ts.map +1 -0
  63. package/dist/bootstrap/GlobalSeed.js +285 -0
  64. package/dist/bootstrap/GlobalSeed.js.map +1 -0
  65. package/dist/bootstrap/config.d.ts +24 -0
  66. package/dist/bootstrap/config.d.ts.map +1 -0
  67. package/dist/bootstrap/config.js +71 -0
  68. package/dist/bootstrap/config.js.map +1 -0
  69. package/dist/checkpoint/index.d.ts +17 -0
  70. package/dist/checkpoint/index.d.ts.map +1 -0
  71. package/dist/checkpoint/index.js +207 -0
  72. package/dist/checkpoint/index.js.map +1 -0
  73. package/dist/commands/SlashCommandRegistry.d.ts +98 -0
  74. package/dist/commands/SlashCommandRegistry.d.ts.map +1 -0
  75. package/dist/commands/SlashCommandRegistry.js +41 -0
  76. package/dist/commands/SlashCommandRegistry.js.map +1 -0
  77. package/dist/commands/builtin.d.ts +7 -0
  78. package/dist/commands/builtin.d.ts.map +1 -0
  79. package/dist/commands/builtin.js +694 -0
  80. package/dist/commands/builtin.js.map +1 -0
  81. package/dist/commands/index.d.ts +4 -0
  82. package/dist/commands/index.d.ts.map +1 -0
  83. package/dist/commands/index.js +8 -0
  84. package/dist/commands/index.js.map +1 -0
  85. package/dist/context/index.d.ts +8 -0
  86. package/dist/context/index.d.ts.map +1 -0
  87. package/dist/context/index.js +8 -0
  88. package/dist/context/index.js.map +1 -0
  89. package/dist/context/pipeline.d.ts +46 -0
  90. package/dist/context/pipeline.d.ts.map +1 -0
  91. package/dist/context/pipeline.js +111 -0
  92. package/dist/context/pipeline.js.map +1 -0
  93. package/dist/context/stages/stage-instructions.d.ts +12 -0
  94. package/dist/context/stages/stage-instructions.d.ts.map +1 -0
  95. package/dist/context/stages/stage-instructions.js +76 -0
  96. package/dist/context/stages/stage-instructions.js.map +1 -0
  97. package/dist/context/stages/stage-lessons.d.ts +13 -0
  98. package/dist/context/stages/stage-lessons.d.ts.map +1 -0
  99. package/dist/context/stages/stage-lessons.js +83 -0
  100. package/dist/context/stages/stage-lessons.js.map +1 -0
  101. package/dist/context/stages/stage-manifest.d.ts +11 -0
  102. package/dist/context/stages/stage-manifest.d.ts.map +1 -0
  103. package/dist/context/stages/stage-manifest.js +62 -0
  104. package/dist/context/stages/stage-manifest.js.map +1 -0
  105. package/dist/context/stages/stage-project.d.ts +10 -0
  106. package/dist/context/stages/stage-project.d.ts.map +1 -0
  107. package/dist/context/stages/stage-project.js +55 -0
  108. package/dist/context/stages/stage-project.js.map +1 -0
  109. package/dist/context/stages/stage-session.d.ts +12 -0
  110. package/dist/context/stages/stage-session.d.ts.map +1 -0
  111. package/dist/context/stages/stage-session.js +69 -0
  112. package/dist/context/stages/stage-session.js.map +1 -0
  113. package/dist/delegation/DelegationBus.d.ts +40 -0
  114. package/dist/delegation/DelegationBus.d.ts.map +1 -0
  115. package/dist/delegation/DelegationBus.js +68 -0
  116. package/dist/delegation/DelegationBus.js.map +1 -0
  117. package/dist/engine/AgentEngine.d.ts +212 -0
  118. package/dist/engine/AgentEngine.d.ts.map +1 -0
  119. package/dist/engine/AgentEngine.js +1037 -0
  120. package/dist/engine/AgentEngine.js.map +1 -0
  121. package/dist/engine/AgentRegistry.d.ts +13 -0
  122. package/dist/engine/AgentRegistry.d.ts.map +1 -0
  123. package/dist/engine/AgentRegistry.js +37 -0
  124. package/dist/engine/AgentRegistry.js.map +1 -0
  125. package/dist/engine/IterationManager.d.ts +79 -0
  126. package/dist/engine/IterationManager.d.ts.map +1 -0
  127. package/dist/engine/IterationManager.js +103 -0
  128. package/dist/engine/IterationManager.js.map +1 -0
  129. package/dist/engine/ProviderRegistry.d.ts +10 -0
  130. package/dist/engine/ProviderRegistry.d.ts.map +1 -0
  131. package/dist/engine/ProviderRegistry.js +28 -0
  132. package/dist/engine/ProviderRegistry.js.map +1 -0
  133. package/dist/engine/ToolRegistry.d.ts +54 -0
  134. package/dist/engine/ToolRegistry.d.ts.map +1 -0
  135. package/dist/engine/ToolRegistry.js +75 -0
  136. package/dist/engine/ToolRegistry.js.map +1 -0
  137. package/dist/engine/createBaseEngine.d.ts +169 -0
  138. package/dist/engine/createBaseEngine.d.ts.map +1 -0
  139. package/dist/engine/createBaseEngine.js +91 -0
  140. package/dist/engine/createBaseEngine.js.map +1 -0
  141. package/dist/engine/qa-orchestrator.d.ts +56 -0
  142. package/dist/engine/qa-orchestrator.d.ts.map +1 -0
  143. package/dist/engine/qa-orchestrator.js +163 -0
  144. package/dist/engine/qa-orchestrator.js.map +1 -0
  145. package/dist/index.d.ts +83 -0
  146. package/dist/index.d.ts.map +1 -0
  147. package/dist/index.js +163 -0
  148. package/dist/index.js.map +1 -0
  149. package/dist/mcp/MCPClientManager.d.ts +65 -0
  150. package/dist/mcp/MCPClientManager.d.ts.map +1 -0
  151. package/dist/mcp/MCPClientManager.js +211 -0
  152. package/dist/mcp/MCPClientManager.js.map +1 -0
  153. package/dist/mcp/index.d.ts +3 -0
  154. package/dist/mcp/index.d.ts.map +1 -0
  155. package/dist/mcp/index.js +6 -0
  156. package/dist/mcp/index.js.map +1 -0
  157. package/dist/mcp/types.d.ts +121 -0
  158. package/dist/mcp/types.d.ts.map +1 -0
  159. package/dist/mcp/types.js +3 -0
  160. package/dist/mcp/types.js.map +1 -0
  161. package/dist/memory/SessionMemory.d.ts +9 -0
  162. package/dist/memory/SessionMemory.d.ts.map +1 -0
  163. package/dist/memory/SessionMemory.js +20 -0
  164. package/dist/memory/SessionMemory.js.map +1 -0
  165. package/dist/observability/CostTracker.d.ts +19 -0
  166. package/dist/observability/CostTracker.d.ts.map +1 -0
  167. package/dist/observability/CostTracker.js +64 -0
  168. package/dist/observability/CostTracker.js.map +1 -0
  169. package/dist/observability/MetricsCollector.d.ts +17 -0
  170. package/dist/observability/MetricsCollector.d.ts.map +1 -0
  171. package/dist/observability/MetricsCollector.js +70 -0
  172. package/dist/observability/MetricsCollector.js.map +1 -0
  173. package/dist/observability/ObservabilityManager.d.ts +33 -0
  174. package/dist/observability/ObservabilityManager.d.ts.map +1 -0
  175. package/dist/observability/ObservabilityManager.js +107 -0
  176. package/dist/observability/ObservabilityManager.js.map +1 -0
  177. package/dist/observability/Tracer.d.ts +23 -0
  178. package/dist/observability/Tracer.d.ts.map +1 -0
  179. package/dist/observability/Tracer.js +65 -0
  180. package/dist/observability/Tracer.js.map +1 -0
  181. package/dist/observability/index.d.ts +7 -0
  182. package/dist/observability/index.d.ts.map +1 -0
  183. package/dist/observability/index.js +14 -0
  184. package/dist/observability/index.js.map +1 -0
  185. package/dist/observability/types.d.ts +77 -0
  186. package/dist/observability/types.d.ts.map +1 -0
  187. package/dist/observability/types.js +15 -0
  188. package/dist/observability/types.js.map +1 -0
  189. package/dist/orchestration/audit/audit-ci-blocker.d.ts +31 -0
  190. package/dist/orchestration/audit/audit-ci-blocker.d.ts.map +1 -0
  191. package/dist/orchestration/audit/audit-ci-blocker.js +120 -0
  192. package/dist/orchestration/audit/audit-ci-blocker.js.map +1 -0
  193. package/dist/orchestration/audit/audit-finding-tracer.d.ts +33 -0
  194. package/dist/orchestration/audit/audit-finding-tracer.d.ts.map +1 -0
  195. package/dist/orchestration/audit/audit-finding-tracer.js +126 -0
  196. package/dist/orchestration/audit/audit-finding-tracer.js.map +1 -0
  197. package/dist/orchestration/audit/audit-lessons-learned.d.ts +27 -0
  198. package/dist/orchestration/audit/audit-lessons-learned.d.ts.map +1 -0
  199. package/dist/orchestration/audit/audit-lessons-learned.js +155 -0
  200. package/dist/orchestration/audit/audit-lessons-learned.js.map +1 -0
  201. package/dist/orchestration/audit/audit-pending-issues.d.ts +21 -0
  202. package/dist/orchestration/audit/audit-pending-issues.d.ts.map +1 -0
  203. package/dist/orchestration/audit/audit-pending-issues.js +110 -0
  204. package/dist/orchestration/audit/audit-pending-issues.js.map +1 -0
  205. package/dist/orchestration/audit/audit-reflection-bridge.d.ts +39 -0
  206. package/dist/orchestration/audit/audit-reflection-bridge.d.ts.map +1 -0
  207. package/dist/orchestration/audit/audit-reflection-bridge.js +65 -0
  208. package/dist/orchestration/audit/audit-reflection-bridge.js.map +1 -0
  209. package/dist/orchestration/audit/audit-report-renderer.d.ts +30 -0
  210. package/dist/orchestration/audit/audit-report-renderer.d.ts.map +1 -0
  211. package/dist/orchestration/audit/audit-report-renderer.js +249 -0
  212. package/dist/orchestration/audit/audit-report-renderer.js.map +1 -0
  213. package/dist/orchestration/audit/audit-report-version-manager.d.ts +52 -0
  214. package/dist/orchestration/audit/audit-report-version-manager.d.ts.map +1 -0
  215. package/dist/orchestration/audit/audit-report-version-manager.js +144 -0
  216. package/dist/orchestration/audit/audit-report-version-manager.js.map +1 -0
  217. package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts +37 -0
  218. package/dist/orchestration/audit/audit-silent-gates-buffer.d.ts.map +1 -0
  219. package/dist/orchestration/audit/audit-silent-gates-buffer.js +129 -0
  220. package/dist/orchestration/audit/audit-silent-gates-buffer.js.map +1 -0
  221. package/dist/orchestration/audit/index.d.ts +17 -0
  222. package/dist/orchestration/audit/index.d.ts.map +1 -0
  223. package/dist/orchestration/audit/index.js +26 -0
  224. package/dist/orchestration/audit/index.js.map +1 -0
  225. package/dist/orchestration/audit/types.d.ts +79 -0
  226. package/dist/orchestration/audit/types.d.ts.map +1 -0
  227. package/dist/orchestration/audit/types.js +10 -0
  228. package/dist/orchestration/audit/types.js.map +1 -0
  229. package/dist/orchestration/audit-reporter.d.ts +133 -0
  230. package/dist/orchestration/audit-reporter.d.ts.map +1 -0
  231. package/dist/orchestration/audit-reporter.js +322 -0
  232. package/dist/orchestration/audit-reporter.js.map +1 -0
  233. package/dist/orchestration/config-loader.d.ts +51 -0
  234. package/dist/orchestration/config-loader.d.ts.map +1 -0
  235. package/dist/orchestration/config-loader.js +215 -0
  236. package/dist/orchestration/config-loader.js.map +1 -0
  237. package/dist/orchestration/domain-detector.d.ts +36 -0
  238. package/dist/orchestration/domain-detector.d.ts.map +1 -0
  239. package/dist/orchestration/domain-detector.js +157 -0
  240. package/dist/orchestration/domain-detector.js.map +1 -0
  241. package/dist/orchestration/fsm.d.ts +86 -0
  242. package/dist/orchestration/fsm.d.ts.map +1 -0
  243. package/dist/orchestration/fsm.js +223 -0
  244. package/dist/orchestration/fsm.js.map +1 -0
  245. package/dist/orchestration/gate-resolver.d.ts +42 -0
  246. package/dist/orchestration/gate-resolver.d.ts.map +1 -0
  247. package/dist/orchestration/gate-resolver.js +94 -0
  248. package/dist/orchestration/gate-resolver.js.map +1 -0
  249. package/dist/orchestration/index.d.ts +15 -0
  250. package/dist/orchestration/index.d.ts.map +1 -0
  251. package/dist/orchestration/index.js +32 -0
  252. package/dist/orchestration/index.js.map +1 -0
  253. package/dist/orchestration/intent-detector.d.ts +43 -0
  254. package/dist/orchestration/intent-detector.d.ts.map +1 -0
  255. package/dist/orchestration/intent-detector.js +249 -0
  256. package/dist/orchestration/intent-detector.js.map +1 -0
  257. package/dist/orchestration/keyword-match.d.ts +17 -0
  258. package/dist/orchestration/keyword-match.d.ts.map +1 -0
  259. package/dist/orchestration/keyword-match.js +26 -0
  260. package/dist/orchestration/keyword-match.js.map +1 -0
  261. package/dist/orchestration/llm-client-adapter.d.ts +11 -0
  262. package/dist/orchestration/llm-client-adapter.d.ts.map +1 -0
  263. package/dist/orchestration/llm-client-adapter.js +30 -0
  264. package/dist/orchestration/llm-client-adapter.js.map +1 -0
  265. package/dist/orchestration/orchestrator.d.ts +153 -0
  266. package/dist/orchestration/orchestrator.d.ts.map +1 -0
  267. package/dist/orchestration/orchestrator.js +471 -0
  268. package/dist/orchestration/orchestrator.js.map +1 -0
  269. package/dist/orchestration/policy-engine.d.ts +47 -0
  270. package/dist/orchestration/policy-engine.d.ts.map +1 -0
  271. package/dist/orchestration/policy-engine.js +262 -0
  272. package/dist/orchestration/policy-engine.js.map +1 -0
  273. package/dist/orchestration/risk-scorer.d.ts +38 -0
  274. package/dist/orchestration/risk-scorer.d.ts.map +1 -0
  275. package/dist/orchestration/risk-scorer.js +145 -0
  276. package/dist/orchestration/risk-scorer.js.map +1 -0
  277. package/dist/orchestration/task-context.d.ts +195 -0
  278. package/dist/orchestration/task-context.d.ts.map +1 -0
  279. package/dist/orchestration/task-context.js +160 -0
  280. package/dist/orchestration/task-context.js.map +1 -0
  281. package/dist/orchestration/types.d.ts +111 -0
  282. package/dist/orchestration/types.d.ts.map +1 -0
  283. package/dist/orchestration/types.js +37 -0
  284. package/dist/orchestration/types.js.map +1 -0
  285. package/dist/qa/index.d.ts +3 -0
  286. package/dist/qa/index.d.ts.map +1 -0
  287. package/dist/qa/index.js +6 -0
  288. package/dist/qa/index.js.map +1 -0
  289. package/dist/qa/qa-service.d.ts +30 -0
  290. package/dist/qa/qa-service.d.ts.map +1 -0
  291. package/dist/qa/qa-service.js +200 -0
  292. package/dist/qa/qa-service.js.map +1 -0
  293. package/dist/reflection/commands/domain-commands.d.ts +78 -0
  294. package/dist/reflection/commands/domain-commands.d.ts.map +1 -0
  295. package/dist/reflection/commands/domain-commands.js +203 -0
  296. package/dist/reflection/commands/domain-commands.js.map +1 -0
  297. package/dist/reflection/domain-registry.d.ts +104 -0
  298. package/dist/reflection/domain-registry.d.ts.map +1 -0
  299. package/dist/reflection/domain-registry.js +279 -0
  300. package/dist/reflection/domain-registry.js.map +1 -0
  301. package/dist/reflection/domains/agent-domain.d.ts +40 -0
  302. package/dist/reflection/domains/agent-domain.d.ts.map +1 -0
  303. package/dist/reflection/domains/agent-domain.js +161 -0
  304. package/dist/reflection/domains/agent-domain.js.map +1 -0
  305. package/dist/reflection/domains/audit-domain.d.ts +46 -0
  306. package/dist/reflection/domains/audit-domain.d.ts.map +1 -0
  307. package/dist/reflection/domains/audit-domain.js +241 -0
  308. package/dist/reflection/domains/audit-domain.js.map +1 -0
  309. package/dist/reflection/domains/bootstrap-domain.d.ts +40 -0
  310. package/dist/reflection/domains/bootstrap-domain.d.ts.map +1 -0
  311. package/dist/reflection/domains/bootstrap-domain.js +156 -0
  312. package/dist/reflection/domains/bootstrap-domain.js.map +1 -0
  313. package/dist/reflection/domains/commit-domain.d.ts +40 -0
  314. package/dist/reflection/domains/commit-domain.d.ts.map +1 -0
  315. package/dist/reflection/domains/commit-domain.js +174 -0
  316. package/dist/reflection/domains/commit-domain.js.map +1 -0
  317. package/dist/reflection/domains/test-domain.d.ts +40 -0
  318. package/dist/reflection/domains/test-domain.d.ts.map +1 -0
  319. package/dist/reflection/domains/test-domain.js +194 -0
  320. package/dist/reflection/domains/test-domain.js.map +1 -0
  321. package/dist/reflection/failure-catalog.d.ts +100 -0
  322. package/dist/reflection/failure-catalog.d.ts.map +1 -0
  323. package/dist/reflection/failure-catalog.js +269 -0
  324. package/dist/reflection/failure-catalog.js.map +1 -0
  325. package/dist/reflection/historical-loader.d.ts +105 -0
  326. package/dist/reflection/historical-loader.d.ts.map +1 -0
  327. package/dist/reflection/historical-loader.js +462 -0
  328. package/dist/reflection/historical-loader.js.map +1 -0
  329. package/dist/reflection/hooks/agent-hook.d.ts +72 -0
  330. package/dist/reflection/hooks/agent-hook.d.ts.map +1 -0
  331. package/dist/reflection/hooks/agent-hook.js +98 -0
  332. package/dist/reflection/hooks/agent-hook.js.map +1 -0
  333. package/dist/reflection/hooks/audit-hook.d.ts +72 -0
  334. package/dist/reflection/hooks/audit-hook.d.ts.map +1 -0
  335. package/dist/reflection/hooks/audit-hook.js +112 -0
  336. package/dist/reflection/hooks/audit-hook.js.map +1 -0
  337. package/dist/reflection/hooks/bootstrap-hook.d.ts +71 -0
  338. package/dist/reflection/hooks/bootstrap-hook.d.ts.map +1 -0
  339. package/dist/reflection/hooks/bootstrap-hook.js +97 -0
  340. package/dist/reflection/hooks/bootstrap-hook.js.map +1 -0
  341. package/dist/reflection/hooks/commit-hook.d.ts +63 -0
  342. package/dist/reflection/hooks/commit-hook.d.ts.map +1 -0
  343. package/dist/reflection/hooks/commit-hook.js +90 -0
  344. package/dist/reflection/hooks/commit-hook.js.map +1 -0
  345. package/dist/reflection/hooks/test-hook.d.ts +65 -0
  346. package/dist/reflection/hooks/test-hook.d.ts.map +1 -0
  347. package/dist/reflection/hooks/test-hook.js +99 -0
  348. package/dist/reflection/hooks/test-hook.js.map +1 -0
  349. package/dist/reflection/index.d.ts +19 -0
  350. package/dist/reflection/index.d.ts.map +1 -0
  351. package/dist/reflection/index.js +40 -0
  352. package/dist/reflection/index.js.map +1 -0
  353. package/dist/reflection/lessons-memo-generator.d.ts +60 -0
  354. package/dist/reflection/lessons-memo-generator.d.ts.map +1 -0
  355. package/dist/reflection/lessons-memo-generator.js +286 -0
  356. package/dist/reflection/lessons-memo-generator.js.map +1 -0
  357. package/dist/reflection/pattern-detector.d.ts +55 -0
  358. package/dist/reflection/pattern-detector.d.ts.map +1 -0
  359. package/dist/reflection/pattern-detector.js +137 -0
  360. package/dist/reflection/pattern-detector.js.map +1 -0
  361. package/dist/reflection/policy-promoter.d.ts +86 -0
  362. package/dist/reflection/policy-promoter.d.ts.map +1 -0
  363. package/dist/reflection/policy-promoter.js +382 -0
  364. package/dist/reflection/policy-promoter.js.map +1 -0
  365. package/dist/reflection/reflection-engine.d.ts +160 -0
  366. package/dist/reflection/reflection-engine.d.ts.map +1 -0
  367. package/dist/reflection/reflection-engine.js +352 -0
  368. package/dist/reflection/reflection-engine.js.map +1 -0
  369. package/dist/reflection/types.d.ts +106 -0
  370. package/dist/reflection/types.d.ts.map +1 -0
  371. package/dist/reflection/types.js +64 -0
  372. package/dist/reflection/types.js.map +1 -0
  373. package/dist/shared/llm/resilient-client.d.ts +40 -0
  374. package/dist/shared/llm/resilient-client.d.ts.map +1 -0
  375. package/dist/shared/llm/resilient-client.js +60 -0
  376. package/dist/shared/llm/resilient-client.js.map +1 -0
  377. package/dist/shared/utils/atomic-write.d.ts +7 -0
  378. package/dist/shared/utils/atomic-write.d.ts.map +1 -0
  379. package/dist/shared/utils/atomic-write.js +52 -0
  380. package/dist/shared/utils/atomic-write.js.map +1 -0
  381. package/dist/shared/utils/git.d.ts +2 -0
  382. package/dist/shared/utils/git.d.ts.map +1 -0
  383. package/dist/shared/utils/git.js +17 -0
  384. package/dist/shared/utils/git.js.map +1 -0
  385. package/dist/shared/utils/project-key.d.ts +4 -0
  386. package/dist/shared/utils/project-key.d.ts.map +1 -0
  387. package/dist/shared/utils/project-key.js +54 -0
  388. package/dist/shared/utils/project-key.js.map +1 -0
  389. package/dist/shared/utils/string-utils.d.ts +17 -0
  390. package/dist/shared/utils/string-utils.d.ts.map +1 -0
  391. package/dist/shared/utils/string-utils.js +37 -0
  392. package/dist/shared/utils/string-utils.js.map +1 -0
  393. package/dist/skills/activator.d.ts +27 -0
  394. package/dist/skills/activator.d.ts.map +1 -0
  395. package/dist/skills/activator.js +127 -0
  396. package/dist/skills/activator.js.map +1 -0
  397. package/dist/skills/builtins/global.d.ts +7 -0
  398. package/dist/skills/builtins/global.d.ts.map +1 -0
  399. package/dist/skills/builtins/global.js +208 -0
  400. package/dist/skills/builtins/global.js.map +1 -0
  401. package/dist/skills/builtins/go-pack.d.ts +7 -0
  402. package/dist/skills/builtins/go-pack.d.ts.map +1 -0
  403. package/dist/skills/builtins/go-pack.js +263 -0
  404. package/dist/skills/builtins/go-pack.js.map +1 -0
  405. package/dist/skills/builtins/java-pack.d.ts +7 -0
  406. package/dist/skills/builtins/java-pack.d.ts.map +1 -0
  407. package/dist/skills/builtins/java-pack.js +272 -0
  408. package/dist/skills/builtins/java-pack.js.map +1 -0
  409. package/dist/skills/builtins/kotlin-pack.d.ts +9 -0
  410. package/dist/skills/builtins/kotlin-pack.d.ts.map +1 -0
  411. package/dist/skills/builtins/kotlin-pack.js +292 -0
  412. package/dist/skills/builtins/kotlin-pack.js.map +1 -0
  413. package/dist/skills/builtins/node-pack.d.ts +7 -0
  414. package/dist/skills/builtins/node-pack.d.ts.map +1 -0
  415. package/dist/skills/builtins/node-pack.js +750 -0
  416. package/dist/skills/builtins/node-pack.js.map +1 -0
  417. package/dist/skills/builtins/python-pack.d.ts +7 -0
  418. package/dist/skills/builtins/python-pack.d.ts.map +1 -0
  419. package/dist/skills/builtins/python-pack.js +303 -0
  420. package/dist/skills/builtins/python-pack.js.map +1 -0
  421. package/dist/skills/index.d.ts +11 -0
  422. package/dist/skills/index.d.ts.map +1 -0
  423. package/dist/skills/index.js +24 -0
  424. package/dist/skills/index.js.map +1 -0
  425. package/dist/skills/loader.d.ts +39 -0
  426. package/dist/skills/loader.d.ts.map +1 -0
  427. package/dist/skills/loader.js +152 -0
  428. package/dist/skills/loader.js.map +1 -0
  429. package/dist/skills/manager.d.ts +97 -0
  430. package/dist/skills/manager.d.ts.map +1 -0
  431. package/dist/skills/manager.js +296 -0
  432. package/dist/skills/manager.js.map +1 -0
  433. package/dist/skills/parse-md-skill.d.ts +14 -0
  434. package/dist/skills/parse-md-skill.d.ts.map +1 -0
  435. package/dist/skills/parse-md-skill.js +86 -0
  436. package/dist/skills/parse-md-skill.js.map +1 -0
  437. package/dist/skills/providers/github.d.ts +21 -0
  438. package/dist/skills/providers/github.d.ts.map +1 -0
  439. package/dist/skills/providers/github.js +146 -0
  440. package/dist/skills/providers/github.js.map +1 -0
  441. package/dist/skills/providers/index.d.ts +6 -0
  442. package/dist/skills/providers/index.d.ts.map +1 -0
  443. package/dist/skills/providers/index.js +12 -0
  444. package/dist/skills/providers/index.js.map +1 -0
  445. package/dist/skills/providers/local.d.ts +16 -0
  446. package/dist/skills/providers/local.d.ts.map +1 -0
  447. package/dist/skills/providers/local.js +91 -0
  448. package/dist/skills/providers/local.js.map +1 -0
  449. package/dist/skills/providers/obsidian.d.ts +31 -0
  450. package/dist/skills/providers/obsidian.d.ts.map +1 -0
  451. package/dist/skills/providers/obsidian.js +141 -0
  452. package/dist/skills/providers/obsidian.js.map +1 -0
  453. package/dist/skills/providers/skills-sh.d.ts +32 -0
  454. package/dist/skills/providers/skills-sh.d.ts.map +1 -0
  455. package/dist/skills/providers/skills-sh.js +53 -0
  456. package/dist/skills/providers/skills-sh.js.map +1 -0
  457. package/dist/skills/providers/types.d.ts +25 -0
  458. package/dist/skills/providers/types.d.ts.map +1 -0
  459. package/dist/skills/providers/types.js +3 -0
  460. package/dist/skills/providers/types.js.map +1 -0
  461. package/dist/skills/registry.d.ts +18 -0
  462. package/dist/skills/registry.d.ts.map +1 -0
  463. package/dist/skills/registry.js +45 -0
  464. package/dist/skills/registry.js.map +1 -0
  465. package/dist/skills/types.d.ts +66 -0
  466. package/dist/skills/types.d.ts.map +1 -0
  467. package/dist/skills/types.js +3 -0
  468. package/dist/skills/types.js.map +1 -0
  469. package/dist/tools/defineTool.d.ts +34 -0
  470. package/dist/tools/defineTool.d.ts.map +1 -0
  471. package/dist/tools/defineTool.js +63 -0
  472. package/dist/tools/defineTool.js.map +1 -0
  473. package/dist/transport/CallbackTransport.d.ts +12 -0
  474. package/dist/transport/CallbackTransport.d.ts.map +1 -0
  475. package/dist/transport/CallbackTransport.js +28 -0
  476. package/dist/transport/CallbackTransport.js.map +1 -0
  477. package/dist/transport/StdoutTransport.d.ts +9 -0
  478. package/dist/transport/StdoutTransport.d.ts.map +1 -0
  479. package/dist/transport/StdoutTransport.js +63 -0
  480. package/dist/transport/StdoutTransport.js.map +1 -0
  481. package/dist/transport/Transport.d.ts +8 -0
  482. package/dist/transport/Transport.d.ts.map +1 -0
  483. package/dist/transport/Transport.js +3 -0
  484. package/dist/transport/Transport.js.map +1 -0
  485. package/dist/triggers/EventBus.d.ts +14 -0
  486. package/dist/triggers/EventBus.d.ts.map +1 -0
  487. package/dist/triggers/EventBus.js +18 -0
  488. package/dist/triggers/EventBus.js.map +1 -0
  489. package/dist/triggers/TriggerManager.d.ts +28 -0
  490. package/dist/triggers/TriggerManager.d.ts.map +1 -0
  491. package/dist/triggers/TriggerManager.js +158 -0
  492. package/dist/triggers/TriggerManager.js.map +1 -0
  493. package/dist/triggers/WebhookServer.d.ts +23 -0
  494. package/dist/triggers/WebhookServer.d.ts.map +1 -0
  495. package/dist/triggers/WebhookServer.js +127 -0
  496. package/dist/triggers/WebhookServer.js.map +1 -0
  497. package/dist/triggers/createAutonomousAgent.d.ts +49 -0
  498. package/dist/triggers/createAutonomousAgent.d.ts.map +1 -0
  499. package/dist/triggers/createAutonomousAgent.js +42 -0
  500. package/dist/triggers/createAutonomousAgent.js.map +1 -0
  501. package/dist/triggers/index.d.ts +8 -0
  502. package/dist/triggers/index.d.ts.map +1 -0
  503. package/dist/triggers/index.js +12 -0
  504. package/dist/triggers/index.js.map +1 -0
  505. package/dist/triggers/types.d.ts +35 -0
  506. package/dist/triggers/types.d.ts.map +1 -0
  507. package/dist/triggers/types.js +3 -0
  508. package/dist/triggers/types.js.map +1 -0
  509. package/dist/types/index.d.ts +256 -0
  510. package/dist/types/index.d.ts.map +1 -0
  511. package/dist/types/index.js +4 -0
  512. package/dist/types/index.js.map +1 -0
  513. package/dist/workflow/WorkflowBuilder.d.ts +22 -0
  514. package/dist/workflow/WorkflowBuilder.d.ts.map +1 -0
  515. package/dist/workflow/WorkflowBuilder.js +67 -0
  516. package/dist/workflow/WorkflowBuilder.js.map +1 -0
  517. package/dist/workflow/WorkflowRunner.d.ts +22 -0
  518. package/dist/workflow/WorkflowRunner.d.ts.map +1 -0
  519. package/dist/workflow/WorkflowRunner.js +97 -0
  520. package/dist/workflow/WorkflowRunner.js.map +1 -0
  521. package/dist/workflow/index.d.ts +5 -0
  522. package/dist/workflow/index.d.ts.map +1 -0
  523. package/dist/workflow/index.js +10 -0
  524. package/dist/workflow/index.js.map +1 -0
  525. package/dist/workflow/types.d.ts +35 -0
  526. package/dist/workflow/types.d.ts.map +1 -0
  527. package/dist/workflow/types.js +3 -0
  528. package/dist/workflow/types.js.map +1 -0
  529. package/dist/workspace/index.d.ts +55 -0
  530. package/dist/workspace/index.d.ts.map +1 -0
  531. package/dist/workspace/index.js +189 -0
  532. package/dist/workspace/index.js.map +1 -0
  533. package/package.json +87 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit-domain.js","sourceRoot":"","sources":["../../../src/reflection/domains/commit-domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @description TestDomain — failureTypes específicos del dominio de testing.
3
+ *
4
+ * Define los tipos de fallos que el test runner puede capturar y mapear
5
+ * a FailureRecord para el Reflection Engine.
6
+ *
7
+ * Cada failureType tiene:
8
+ * - Una expresión regular de detección (keywords en el hallazgo)
9
+ * - Una dimensión por defecto
10
+ * - Una severidad sugerida
11
+ * - Una recomendación genérica
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * const failureType = detectTestFailureType('type error: Property X does not exist');
16
+ * // → 'tsc_noEmit_type_error'
17
+ * ```
18
+ */
19
+ import { FailureType } from '../types';
20
+ export interface TestFailureTypeMeta {
21
+ failureType: FailureType;
22
+ dimension: string;
23
+ severity: 'critical' | 'high' | 'medium' | 'low';
24
+ detectionPatterns: RegExp[];
25
+ genericRecommendation: string;
26
+ }
27
+ export declare const TEST_FAILURE_TYPES: TestFailureTypeMeta[];
28
+ /**
29
+ * @description Detecta el failureType más probable basado en el contenido del hallazgo.
30
+ */
31
+ export declare function detectTestFailureType(hallazgo: string): FailureType;
32
+ /**
33
+ * @description Obtiene la metadata completa para un failureType.
34
+ */
35
+ export declare function getTestFailureTypeMeta(failureType: FailureType): TestFailureTypeMeta | undefined;
36
+ /**
37
+ * @description Obtiene la metadata basada en el contenido del hallazgo.
38
+ */
39
+ export declare function getTestFailureTypeMetaFromHallazgo(hallazgo: string): TestFailureTypeMeta;
40
+ //# sourceMappingURL=test-domain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-domain.d.ts","sourceRoot":"","sources":["../../../src/reflection/domains/test-domain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIvC,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAID,eAAO,MAAM,kBAAkB,EAAE,mBAAmB,EAgInD,CAAC;AAiBF;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,CAWnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAEhG;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAGxF"}
@@ -0,0 +1,194 @@
1
+ "use strict";
2
+ /**
3
+ * @description TestDomain — failureTypes específicos del dominio de testing.
4
+ *
5
+ * Define los tipos de fallos que el test runner puede capturar y mapear
6
+ * a FailureRecord para el Reflection Engine.
7
+ *
8
+ * Cada failureType tiene:
9
+ * - Una expresión regular de detección (keywords en el hallazgo)
10
+ * - Una dimensión por defecto
11
+ * - Una severidad sugerida
12
+ * - Una recomendación genérica
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const failureType = detectTestFailureType('type error: Property X does not exist');
17
+ * // → 'tsc_noEmit_type_error'
18
+ * ```
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.TEST_FAILURE_TYPES = void 0;
22
+ exports.detectTestFailureType = detectTestFailureType;
23
+ exports.getTestFailureTypeMeta = getTestFailureTypeMeta;
24
+ exports.getTestFailureTypeMetaFromHallazgo = getTestFailureTypeMetaFromHallazgo;
25
+ // ── Catálogo de failureTypes de testing ─────────────────────────────────────
26
+ exports.TEST_FAILURE_TYPES = [
27
+ {
28
+ failureType: 'tsc_noEmit_type_error',
29
+ dimension: 'calidad',
30
+ severity: 'critical',
31
+ detectionPatterns: [
32
+ /tsc/i,
33
+ /type.?error/i,
34
+ /no.?emit/i,
35
+ /typecheck/i,
36
+ /type.?check/i,
37
+ /error\s+TS\d+/i,
38
+ /Property\s+'.*'\s+does\s+not\s+exist/i,
39
+ /Type\s+'.*'\s+is\s+not\s+assignable/i,
40
+ /Cannot\s+find\s+module/i,
41
+ ],
42
+ genericRecommendation: 'Corregir el error de tipado TypeScript (ajustar tipos, interfaces o imports) antes de continuar',
43
+ },
44
+ {
45
+ failureType: 'jest_timeout',
46
+ dimension: 'rendimiento',
47
+ severity: 'high',
48
+ detectionPatterns: [
49
+ /jest/i,
50
+ /timeout/i,
51
+ /test\s*timed?\s*out/i,
52
+ /excedi[oó]\s*el\s*t[ií]empo/i,
53
+ /slow\s*test/i,
54
+ /test\s*too\s*slow/i,
55
+ /asincr[oó]nico\s*sin\s*resolver/i,
56
+ ],
57
+ genericRecommendation: 'Revisar el test timeout (aumentar si es un test de integración lento, optimizar si es unitario)',
58
+ },
59
+ {
60
+ failureType: 'coverage_below_threshold',
61
+ dimension: 'calidad',
62
+ severity: 'high',
63
+ detectionPatterns: [
64
+ /coverage/i,
65
+ /cobertura/i,
66
+ /below\s*threshold/i,
67
+ /por\s*debajo\s*del\s*umbral/i,
68
+ /statements.*\d+%/i,
69
+ /branches.*\d+%/i,
70
+ /lines.*\d+%/i,
71
+ /coverage\s*report/i,
72
+ ],
73
+ genericRecommendation: 'Agregar tests para alcanzar el umbral mínimo de cobertura (statements ≥80%, branches ≥70%)',
74
+ },
75
+ {
76
+ failureType: 'flaky_test',
77
+ dimension: 'confiabilidad',
78
+ severity: 'high',
79
+ detectionPatterns: [
80
+ /flaky/i,
81
+ /intermitente/i,
82
+ /sometimes\s*fails/i,
83
+ /a\s*veces\s*falla/i,
84
+ /inconsistente/i,
85
+ /race\s*condition/i,
86
+ /condici[oó]n\s*de\s*carrera/i,
87
+ /test\s*inestable/i,
88
+ ],
89
+ genericRecommendation: 'Identificar la causa raíz del test intermitente (timing, estado compartido, orden de ejecución) y estabilizarlo',
90
+ },
91
+ {
92
+ failureType: 'missing_test_for_use_case',
93
+ dimension: 'calidad',
94
+ severity: 'high',
95
+ detectionPatterns: [
96
+ /missing\s*test/i,
97
+ /sin\s*test/i,
98
+ /faltan\s*test/i,
99
+ /caso\s*de\s*uso\s*sin\s*test/i,
100
+ /use\s*case\s*without\s*test/i,
101
+ /untested/i,
102
+ /no\s*tested/i,
103
+ /flujo\s*sin\s*prueba/i,
104
+ ],
105
+ genericRecommendation: 'Crear tests unitarios y de integración que cubran el caso de uso completo (happy path + errores)',
106
+ },
107
+ {
108
+ failureType: 'test_without_assertion',
109
+ dimension: 'calidad',
110
+ severity: 'medium',
111
+ detectionPatterns: [
112
+ /without\s*assertion/i,
113
+ /sin\s*assert/i,
114
+ /sin\s*afirmaci[oó]n/i,
115
+ /missing\s*expect/i,
116
+ /test\s*vac[ií]o/i,
117
+ /empty\s*test/i,
118
+ /no\s*expect/i,
119
+ /no\s*assert/i,
120
+ ],
121
+ genericRecommendation: 'Agregar assertions (expect/assert) al test para verificar el comportamiento esperado',
122
+ },
123
+ {
124
+ failureType: 'integration_test_without_container',
125
+ dimension: 'arquitectura',
126
+ severity: 'medium',
127
+ detectionPatterns: [
128
+ /integration\s*test/i,
129
+ /test\s*de\s*integraci[oó]n/i,
130
+ /sin\s*container/i,
131
+ /without\s*container/i,
132
+ /mock.*(?:db|database|bd|redis|kafka)/i,
133
+ /mock.*base\s*de\s*datos/i,
134
+ /testcontainers/i,
135
+ ],
136
+ genericRecommendation: 'Usar Testcontainers para tests de integración que requieren BD/Redis/Kafka reales — nunca mockear el driver',
137
+ },
138
+ {
139
+ failureType: 'property_test_missing',
140
+ dimension: 'calidad',
141
+ severity: 'low',
142
+ detectionPatterns: [
143
+ /property.?test/i,
144
+ /property.?based/i,
145
+ /value\s*object\s*sin\s*property/i,
146
+ /fast.?check/i,
147
+ /generative/i,
148
+ /fuzzing/i,
149
+ /invariante/i,
150
+ /invariant/i,
151
+ ],
152
+ genericRecommendation: 'Agregar property-based testing (fast-check) en value objects e invariantes de negocio con ≥1000 iteraciones',
153
+ },
154
+ ];
155
+ // ── Funciones helper ─────────────────────────────────────────────────────────
156
+ const NEGATORS = ['no hay', 'sin ', 'no tiene', 'verificar', 'validar', 'evitar'];
157
+ /**
158
+ * Verifica si un patron coincide en el texto pero NO esta precedido por un negador.
159
+ * Evita falsos positivos como "verificar que no hay type errors" → tsc_noEmit_type_error.
160
+ */
161
+ function matchesWithoutNegation(text, pattern) {
162
+ const result = pattern.exec(text);
163
+ if (!result)
164
+ return false;
165
+ const prefix = text.slice(Math.max(0, result.index - 25), result.index);
166
+ return !NEGATORS.some(neg => prefix.includes(neg));
167
+ }
168
+ /**
169
+ * @description Detecta el failureType más probable basado en el contenido del hallazgo.
170
+ */
171
+ function detectTestFailureType(hallazgo) {
172
+ const lower = hallazgo.toLowerCase();
173
+ for (const meta of exports.TEST_FAILURE_TYPES) {
174
+ const matches = meta.detectionPatterns.some(pattern => matchesWithoutNegation(lower, pattern));
175
+ if (matches) {
176
+ return meta.failureType;
177
+ }
178
+ }
179
+ return 'unknown_test';
180
+ }
181
+ /**
182
+ * @description Obtiene la metadata completa para un failureType.
183
+ */
184
+ function getTestFailureTypeMeta(failureType) {
185
+ return exports.TEST_FAILURE_TYPES.find(meta => meta.failureType === failureType);
186
+ }
187
+ /**
188
+ * @description Obtiene la metadata basada en el contenido del hallazgo.
189
+ */
190
+ function getTestFailureTypeMetaFromHallazgo(hallazgo) {
191
+ const failureType = detectTestFailureType(hallazgo);
192
+ return getTestFailureTypeMeta(failureType) ?? exports.TEST_FAILURE_TYPES[1]; // fallback a jest_timeout
193
+ }
194
+ //# sourceMappingURL=test-domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-domain.js","sourceRoot":"","sources":["../../../src/reflection/domains/test-domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @description FailureCatalog — Repositorio persistente de incidentes del Reflection Engine.
3
+ *
4
+ * Almacena FailureRecord en un archivo JSON en ~/.{appName}/projects/{hash}/reflection/
5
+ * y provee operaciones CRUD básicas más consultas por dominio, failureType y rango de fechas.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const catalog = new FailureCatalog({ projectRoot: process.cwd(), useGlobalDir: true });
10
+ * await catalog.addRecord(record);
11
+ * const results = await catalog.findByDomainAndType('audit', 'connection_leak');
12
+ * ```
13
+ */
14
+ import { FailureRecord } from './types';
15
+ export declare class FailureCatalog {
16
+ private catalogDir;
17
+ private records;
18
+ private catalogPath;
19
+ private loaded;
20
+ private writeQueue;
21
+ constructor(options?: {
22
+ projectRoot?: string;
23
+ useGlobalDir?: boolean;
24
+ appName?: string;
25
+ });
26
+ /**
27
+ * @description Carga los registros desde el archivo JSON.
28
+ * Se llama automáticamente en el constructor si ya existe.
29
+ */
30
+ load(): Promise<FailureRecord[]>;
31
+ save(): Promise<void>;
32
+ ensureLoaded(): Promise<void>;
33
+ /**
34
+ * @description Agrega un nuevo FailureRecord al catálogo y persiste.
35
+ * @returns El registro agregado (con ID generado si no tenía)
36
+ */
37
+ addRecord(record: FailureRecord): Promise<FailureRecord>;
38
+ addRecords(records: FailureRecord[]): Promise<FailureRecord[]>;
39
+ /**
40
+ * @description Obtiene un registro por su ID.
41
+ */
42
+ getRecordById(id: string): Promise<FailureRecord | undefined>;
43
+ /**
44
+ * @description Actualiza un registro existente por su ID.
45
+ * @returns true si se actualizó, false si no se encontró
46
+ */
47
+ updateRecord(id: string, updates: Partial<FailureRecord>): Promise<boolean>;
48
+ /**
49
+ * @description Marca un registro como resuelto.
50
+ * @param commitHash - SHA del commit que lo resolvió
51
+ */
52
+ markResolved(id: string, commitHash: string, promoter?: import('./policy-promoter').PolicyPromoter): Promise<boolean>;
53
+ /**
54
+ * @description Elimina un registro por su ID.
55
+ */
56
+ deleteRecord(id: string): Promise<boolean>;
57
+ /**
58
+ * @description Busca registros por dominio y failureType.
59
+ */
60
+ findByDomainAndType(domain: string, failureType: string): Promise<FailureRecord[]>;
61
+ /**
62
+ * @description Busca registros por dominio (built-in o custom).
63
+ */
64
+ findByDomain(domain: string): Promise<FailureRecord[]>;
65
+ /**
66
+ * @description Busca registros de un failureType específico (sin filtrar por dominio).
67
+ */
68
+ findByFailureType(failureType: string): Promise<FailureRecord[]>;
69
+ /**
70
+ * @description Busca registros dentro de un rango de fechas.
71
+ * @param start - Fecha ISO inicio
72
+ * @param end - Fecha ISO fin (inclusive)
73
+ */
74
+ findByDateRange(start: string, end: string): Promise<FailureRecord[]>;
75
+ /**
76
+ * @description Busca registros no resueltos.
77
+ */
78
+ findUnresolved(): Promise<FailureRecord[]>;
79
+ /**
80
+ * @description Obtiene todos los failureType únicos (y su conteo) en el catálogo.
81
+ */
82
+ getFailureTypeCounts(): Promise<Map<string, number>>;
83
+ /**
84
+ * @description Cuenta registros por dominio.
85
+ */
86
+ getDomainCounts(): Promise<Record<string, number>>;
87
+ /**
88
+ * @description Número total de registros en el catálogo.
89
+ */
90
+ totalRecords(): Promise<number>;
91
+ /**
92
+ * @description Obtiene la ruta del archivo de catálogo.
93
+ */
94
+ getCatalogPath(): string;
95
+ /**
96
+ * @description Obtiene todos los registros (para debug/reporting).
97
+ */
98
+ getAllRecords(): Promise<FailureRecord[]>;
99
+ }
100
+ //# sourceMappingURL=failure-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-catalog.d.ts","sourceRoot":"","sources":["../../src/reflection/failure-catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,EAAE,aAAa,EAAqC,MAAM,SAAS,CAAC;AAW3E,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,UAAU,CAAoC;gBAE1C,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;IAiBxF;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAYhC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAQnC;;;OAGG;IACG,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAUxD,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAUpE;;OAEG;IACG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAKnE;;;OAGG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAUjF;;;OAGG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,mBAAmB,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAqB3H;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhD;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKxF;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK5D;;OAEG;IACG,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAKtE;;;;OAIG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3E;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKhD;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAU1D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAWxD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAKrC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;CAIhD"}
@@ -0,0 +1,269 @@
1
+ "use strict";
2
+ /**
3
+ * @description FailureCatalog — Repositorio persistente de incidentes del Reflection Engine.
4
+ *
5
+ * Almacena FailureRecord en un archivo JSON en ~/.{appName}/projects/{hash}/reflection/
6
+ * y provee operaciones CRUD básicas más consultas por dominio, failureType y rango de fechas.
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * const catalog = new FailureCatalog({ projectRoot: process.cwd(), useGlobalDir: true });
11
+ * await catalog.addRecord(record);
12
+ * const results = await catalog.findByDomainAndType('audit', 'connection_leak');
13
+ * ```
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.FailureCatalog = void 0;
50
+ const path = __importStar(require("path"));
51
+ const os = __importStar(require("os"));
52
+ const fs = __importStar(require("fs/promises"));
53
+ const project_key_1 = require("../shared/utils/project-key");
54
+ const atomic_write_1 = require("../shared/utils/atomic-write");
55
+ // ── Constantes ───────────────────────────────────────────────────────────────
56
+ const CATALOG_FILENAME = 'failures.json';
57
+ const MAX_RECORDS = 10_000;
58
+ // ── FailureCatalog ───────────────────────────────────────────────────────────
59
+ class FailureCatalog {
60
+ catalogDir;
61
+ records = [];
62
+ catalogPath;
63
+ loaded = false;
64
+ writeQueue = Promise.resolve();
65
+ constructor(options) {
66
+ const root = options?.projectRoot ?? process.cwd();
67
+ const useGlobal = options?.useGlobalDir ?? true;
68
+ const appName = options?.appName ?? 'bk-agent';
69
+ if (useGlobal) {
70
+ const home = process.env.USERPROFILE ?? process.env.HOME ?? os.homedir();
71
+ this.catalogDir = path.join(home, `.${appName}`, 'projects', (0, project_key_1.cwdToProjectKey)(root), 'reflection');
72
+ }
73
+ else {
74
+ this.catalogDir = path.join(root, '.reflection');
75
+ }
76
+ this.catalogPath = path.join(this.catalogDir, CATALOG_FILENAME);
77
+ }
78
+ // ── Persistencia ───────────────────────────────────────────────────────────
79
+ /**
80
+ * @description Carga los registros desde el archivo JSON.
81
+ * Se llama automáticamente en el constructor si ya existe.
82
+ */
83
+ async load() {
84
+ try {
85
+ const content = await fs.readFile(this.catalogPath, 'utf-8');
86
+ const parsed = JSON.parse(content);
87
+ this.records = Array.isArray(parsed) ? parsed : [];
88
+ }
89
+ catch {
90
+ this.records = [];
91
+ }
92
+ this.loaded = true;
93
+ return this.records;
94
+ }
95
+ async save() {
96
+ if (this.records.length > MAX_RECORDS) {
97
+ this.records = this.records.slice(-MAX_RECORDS);
98
+ }
99
+ await fs.mkdir(this.catalogDir, { recursive: true });
100
+ await (0, atomic_write_1.atomicWrite)(this.catalogPath, JSON.stringify(this.records, null, 2));
101
+ }
102
+ async ensureLoaded() {
103
+ if (!this.loaded) {
104
+ await this.load();
105
+ }
106
+ }
107
+ // ── CRUD ───────────────────────────────────────────────────────────────────
108
+ /**
109
+ * @description Agrega un nuevo FailureRecord al catálogo y persiste.
110
+ * @returns El registro agregado (con ID generado si no tenía)
111
+ */
112
+ async addRecord(record) {
113
+ this.writeQueue = this.writeQueue.then(async () => {
114
+ await this.ensureLoaded();
115
+ this.records.push(record);
116
+ await this.save();
117
+ });
118
+ await this.writeQueue;
119
+ return record;
120
+ }
121
+ async addRecords(records) {
122
+ this.writeQueue = this.writeQueue.then(async () => {
123
+ await this.ensureLoaded();
124
+ this.records.push(...records);
125
+ await this.save();
126
+ });
127
+ await this.writeQueue;
128
+ return records;
129
+ }
130
+ /**
131
+ * @description Obtiene un registro por su ID.
132
+ */
133
+ async getRecordById(id) {
134
+ await this.ensureLoaded();
135
+ return this.records.find(r => r.id === id);
136
+ }
137
+ /**
138
+ * @description Actualiza un registro existente por su ID.
139
+ * @returns true si se actualizó, false si no se encontró
140
+ */
141
+ async updateRecord(id, updates) {
142
+ await this.ensureLoaded();
143
+ const index = this.records.findIndex(r => r.id === id);
144
+ if (index === -1)
145
+ return false;
146
+ this.records[index] = { ...this.records[index], ...updates };
147
+ await this.save();
148
+ return true;
149
+ }
150
+ /**
151
+ * @description Marca un registro como resuelto.
152
+ * @param commitHash - SHA del commit que lo resolvió
153
+ */
154
+ async markResolved(id, commitHash, promoter) {
155
+ const updated = await this.updateRecord(id, {
156
+ resolvedByCommit: commitHash,
157
+ resolvedAt: new Date().toISOString(),
158
+ });
159
+ if (updated && promoter) {
160
+ const record = await this.getRecordById(id);
161
+ if (record) {
162
+ const domainRecords = await this.findByDomain(record.domain);
163
+ const stillUnresolved = domainRecords.filter(r => !r.resolvedByCommit && r.failureType === record.failureType);
164
+ if (stillUnresolved.length === 0) {
165
+ const existing = await promoter.findRule(record.domain, record.failureType);
166
+ if (existing)
167
+ await promoter.removeRule(existing.id);
168
+ }
169
+ }
170
+ }
171
+ return updated;
172
+ }
173
+ /**
174
+ * @description Elimina un registro por su ID.
175
+ */
176
+ async deleteRecord(id) {
177
+ await this.ensureLoaded();
178
+ const index = this.records.findIndex(r => r.id === id);
179
+ if (index === -1)
180
+ return false;
181
+ this.records.splice(index, 1);
182
+ await this.save();
183
+ return true;
184
+ }
185
+ // ── Consultas ──────────────────────────────────────────────────────────────
186
+ /**
187
+ * @description Busca registros por dominio y failureType.
188
+ */
189
+ async findByDomainAndType(domain, failureType) {
190
+ await this.ensureLoaded();
191
+ return this.records.filter(r => r.domain === domain && r.failureType === failureType);
192
+ }
193
+ /**
194
+ * @description Busca registros por dominio (built-in o custom).
195
+ */
196
+ async findByDomain(domain) {
197
+ await this.ensureLoaded();
198
+ return this.records.filter(r => r.domain === domain);
199
+ }
200
+ /**
201
+ * @description Busca registros de un failureType específico (sin filtrar por dominio).
202
+ */
203
+ async findByFailureType(failureType) {
204
+ await this.ensureLoaded();
205
+ return this.records.filter(r => r.failureType === failureType);
206
+ }
207
+ /**
208
+ * @description Busca registros dentro de un rango de fechas.
209
+ * @param start - Fecha ISO inicio
210
+ * @param end - Fecha ISO fin (inclusive)
211
+ */
212
+ async findByDateRange(start, end) {
213
+ await this.ensureLoaded();
214
+ return this.records.filter(r => r.fecha >= start && r.fecha <= end);
215
+ }
216
+ /**
217
+ * @description Busca registros no resueltos.
218
+ */
219
+ async findUnresolved() {
220
+ await this.ensureLoaded();
221
+ return this.records.filter(r => !r.resolvedByCommit);
222
+ }
223
+ /**
224
+ * @description Obtiene todos los failureType únicos (y su conteo) en el catálogo.
225
+ */
226
+ async getFailureTypeCounts() {
227
+ await this.ensureLoaded();
228
+ const counts = new Map();
229
+ for (const record of this.records) {
230
+ const key = `${record.domain}:${record.failureType}`;
231
+ counts.set(key, (counts.get(key) ?? 0) + 1);
232
+ }
233
+ return counts;
234
+ }
235
+ /**
236
+ * @description Cuenta registros por dominio.
237
+ */
238
+ async getDomainCounts() {
239
+ await this.ensureLoaded();
240
+ const counts = { audit: 0, test: 0, commit: 0, agent: 0, bootstrap: 0 };
241
+ for (const record of this.records) {
242
+ counts[record.domain] = (counts[record.domain] ?? 0) + 1;
243
+ }
244
+ return counts;
245
+ }
246
+ // ── Métrica total ──────────────────────────────────────────────────────────
247
+ /**
248
+ * @description Número total de registros en el catálogo.
249
+ */
250
+ async totalRecords() {
251
+ await this.ensureLoaded();
252
+ return this.records.length;
253
+ }
254
+ /**
255
+ * @description Obtiene la ruta del archivo de catálogo.
256
+ */
257
+ getCatalogPath() {
258
+ return this.catalogPath;
259
+ }
260
+ /**
261
+ * @description Obtiene todos los registros (para debug/reporting).
262
+ */
263
+ async getAllRecords() {
264
+ await this.ensureLoaded();
265
+ return [...this.records];
266
+ }
267
+ }
268
+ exports.FailureCatalog = FailureCatalog;
269
+ //# sourceMappingURL=failure-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"failure-catalog.js","sourceRoot":"","sources":["../../src/reflection/failure-catalog.ts"],"names":[],"mappings":"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"}