@jmanuelcorral/openteam 0.2.2 → 0.9.1

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 (310) hide show
  1. package/.opencode/command/openteam.md +2 -1
  2. package/.opencode/openteam.example.json +27 -8
  3. package/AGENTS.md +5 -2
  4. package/README.es.md +155 -59
  5. package/README.md +418 -62
  6. package/dist/capabilities/types.d.ts +3 -3
  7. package/dist/capabilities/types.d.ts.map +1 -1
  8. package/dist/classifier/localClassifier.d.ts +0 -2
  9. package/dist/classifier/localClassifier.d.ts.map +1 -1
  10. package/dist/cli/consoleServe.d.ts +21 -1
  11. package/dist/cli/consoleServe.d.ts.map +1 -1
  12. package/dist/cli/graphOperator.d.ts +22 -0
  13. package/dist/cli/graphOperator.d.ts.map +1 -0
  14. package/dist/cli/graphStatusSnapshot.d.ts +16 -0
  15. package/dist/cli/graphStatusSnapshot.d.ts.map +1 -0
  16. package/dist/cli/migrateAdapter.d.ts +12 -0
  17. package/dist/cli/migrateAdapter.d.ts.map +1 -0
  18. package/dist/cli/purgeAdapter.d.ts +10 -0
  19. package/dist/cli/purgeAdapter.d.ts.map +1 -0
  20. package/dist/cli/setupAdapters.d.ts.map +1 -1
  21. package/dist/cli.js +13534 -6124
  22. package/dist/commands/agents.d.ts +102 -2
  23. package/dist/commands/agents.d.ts.map +1 -1
  24. package/dist/commands/baseline.d.ts.map +1 -1
  25. package/dist/commands/clearCache.d.ts +23 -0
  26. package/dist/commands/clearCache.d.ts.map +1 -0
  27. package/dist/commands/dispatch.d.ts +202 -4
  28. package/dist/commands/dispatch.d.ts.map +1 -1
  29. package/dist/commands/doctor.d.ts +53 -0
  30. package/dist/commands/doctor.d.ts.map +1 -1
  31. package/dist/commands/frontierCatalog.d.ts +8 -14
  32. package/dist/commands/frontierCatalog.d.ts.map +1 -1
  33. package/dist/commands/graph.d.ts +0 -27
  34. package/dist/commands/graph.d.ts.map +1 -1
  35. package/dist/commands/local.d.ts.map +1 -1
  36. package/dist/commands/migrate.d.ts +11 -0
  37. package/dist/commands/migrate.d.ts.map +1 -0
  38. package/dist/commands/purge.d.ts +132 -0
  39. package/dist/commands/purge.d.ts.map +1 -0
  40. package/dist/commands/report.d.ts +1 -0
  41. package/dist/commands/report.d.ts.map +1 -1
  42. package/dist/commands/setup.d.ts +62 -5
  43. package/dist/commands/setup.d.ts.map +1 -1
  44. package/dist/config/errors.d.ts +10 -0
  45. package/dist/config/errors.d.ts.map +1 -0
  46. package/dist/config/legacyMigration.d.ts +82 -0
  47. package/dist/config/legacyMigration.d.ts.map +1 -0
  48. package/dist/config/legacyPaths.d.ts +105 -0
  49. package/dist/config/legacyPaths.d.ts.map +1 -0
  50. package/dist/config/load.d.ts.map +1 -1
  51. package/dist/config/opencode.d.ts +63 -0
  52. package/dist/config/opencode.d.ts.map +1 -0
  53. package/dist/config/persist.d.ts +8 -0
  54. package/dist/config/persist.d.ts.map +1 -1
  55. package/dist/config/resolve.d.ts +1 -1
  56. package/dist/config/resolve.d.ts.map +1 -1
  57. package/dist/config/runtime.d.ts +62 -0
  58. package/dist/config/runtime.d.ts.map +1 -0
  59. package/dist/config/schema.d.ts +142 -79
  60. package/dist/config/schema.d.ts.map +1 -1
  61. package/dist/console/assets.d.ts +2 -2
  62. package/dist/console/assets.d.ts.map +1 -1
  63. package/dist/console/configView.d.ts +74 -0
  64. package/dist/console/configView.d.ts.map +1 -0
  65. package/dist/console/opencodeClient.d.ts +8 -6
  66. package/dist/console/opencodeClient.d.ts.map +1 -1
  67. package/dist/console/protocol.d.ts +30 -6
  68. package/dist/console/protocol.d.ts.map +1 -1
  69. package/dist/console/render.d.ts +30 -1
  70. package/dist/console/render.d.ts.map +1 -1
  71. package/dist/console/types.d.ts +1 -1
  72. package/dist/console/types.d.ts.map +1 -1
  73. package/dist/context/redaction.d.ts +19 -19
  74. package/dist/context/redaction.d.ts.map +1 -1
  75. package/dist/context/schema.d.ts +26 -26
  76. package/dist/context/schema.d.ts.map +1 -1
  77. package/dist/context/types.d.ts +3 -3
  78. package/dist/contract/opencode.d.ts +39 -23
  79. package/dist/contract/opencode.d.ts.map +1 -1
  80. package/dist/graph/certificate.d.ts +37 -16
  81. package/dist/graph/certificate.d.ts.map +1 -1
  82. package/dist/graph/langgraph/adapter.d.ts +56 -0
  83. package/dist/graph/langgraph/adapter.d.ts.map +1 -0
  84. package/dist/graph/langgraph/certification.d.ts +64 -0
  85. package/dist/graph/langgraph/certification.d.ts.map +1 -0
  86. package/dist/graph/langgraph/checkpointReplay.d.ts +49 -0
  87. package/dist/graph/langgraph/checkpointReplay.d.ts.map +1 -0
  88. package/dist/graph/langgraph/checkpointer.d.ts +49 -0
  89. package/dist/graph/langgraph/checkpointer.d.ts.map +1 -0
  90. package/dist/graph/langgraph/engine.d.ts +34 -0
  91. package/dist/graph/langgraph/engine.d.ts.map +1 -0
  92. package/dist/graph/langgraph/graphModel.d.ts +37 -0
  93. package/dist/graph/langgraph/graphModel.d.ts.map +1 -0
  94. package/dist/graph/langgraph/reducer.d.ts +18 -0
  95. package/dist/graph/langgraph/reducer.d.ts.map +1 -0
  96. package/dist/graph/langgraph/retirement.d.ts +59 -0
  97. package/dist/graph/langgraph/retirement.d.ts.map +1 -0
  98. package/dist/graph/langgraph/types.d.ts +65 -0
  99. package/dist/graph/langgraph/types.d.ts.map +1 -0
  100. package/dist/graph/privacyPolicy.d.ts +7 -0
  101. package/dist/graph/privacyPolicy.d.ts.map +1 -1
  102. package/dist/graph/soakLedger.d.ts.map +1 -1
  103. package/dist/graph/types.d.ts +0 -2
  104. package/dist/graph/types.d.ts.map +1 -1
  105. package/dist/index.d.ts +52 -19
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +11334 -5016
  108. package/dist/local/cacheAdapter.d.ts +7 -0
  109. package/dist/local/cacheAdapter.d.ts.map +1 -0
  110. package/dist/local/concurrency.d.ts +52 -0
  111. package/dist/local/concurrency.d.ts.map +1 -0
  112. package/dist/local/embeddings.d.ts +10 -10
  113. package/dist/local/embeddings.d.ts.map +1 -1
  114. package/dist/local/extractClient.d.ts +13 -10
  115. package/dist/local/extractClient.d.ts.map +1 -1
  116. package/dist/local/lemonade.d.ts +4 -0
  117. package/dist/local/lemonade.d.ts.map +1 -0
  118. package/dist/local/registry.d.ts +16 -0
  119. package/dist/local/registry.d.ts.map +1 -1
  120. package/dist/local/types.d.ts +1 -1
  121. package/dist/local/types.d.ts.map +1 -1
  122. package/dist/mcp/semanticRecall.d.ts +18 -1
  123. package/dist/mcp/semanticRecall.d.ts.map +1 -1
  124. package/dist/mcp/server.d.ts +41 -1
  125. package/dist/mcp/server.d.ts.map +1 -1
  126. package/dist/memory/embedText.d.ts +4 -0
  127. package/dist/memory/embedText.d.ts.map +1 -0
  128. package/dist/memory/extract.d.ts +33 -18
  129. package/dist/memory/extract.d.ts.map +1 -1
  130. package/dist/memory/fold.d.ts +3 -2
  131. package/dist/memory/fold.d.ts.map +1 -1
  132. package/dist/memory/index.d.ts +1 -0
  133. package/dist/memory/index.d.ts.map +1 -1
  134. package/dist/memory/inject.d.ts.map +1 -1
  135. package/dist/memory/log.d.ts +15 -4
  136. package/dist/memory/log.d.ts.map +1 -1
  137. package/dist/memory/merge.d.ts +18 -1
  138. package/dist/memory/merge.d.ts.map +1 -1
  139. package/dist/memory/traverse.d.ts +80 -0
  140. package/dist/memory/traverse.d.ts.map +1 -0
  141. package/dist/memory/types.d.ts +53 -7
  142. package/dist/memory/types.d.ts.map +1 -1
  143. package/dist/messages/commands.d.ts +84 -0
  144. package/dist/messages/commands.d.ts.map +1 -0
  145. package/dist/messages/index.d.ts +46 -0
  146. package/dist/messages/index.d.ts.map +1 -0
  147. package/dist/opencodeArtifacts/index.d.ts +33 -0
  148. package/dist/opencodeArtifacts/index.d.ts.map +1 -0
  149. package/dist/opencodeArtifacts/orchestratorAgent.d.ts +29 -0
  150. package/dist/opencodeArtifacts/orchestratorAgent.d.ts.map +1 -0
  151. package/dist/opencodeArtifacts/slashCommand.d.ts +31 -0
  152. package/dist/opencodeArtifacts/slashCommand.d.ts.map +1 -0
  153. package/dist/orchestrator/coordinator.d.ts +155 -1
  154. package/dist/orchestrator/coordinator.d.ts.map +1 -1
  155. package/dist/orchestrator/graphCancellation.d.ts +40 -37
  156. package/dist/orchestrator/graphCancellation.d.ts.map +1 -1
  157. package/dist/orchestrator/graphEffects.d.ts +24 -24
  158. package/dist/orchestrator/graphEffects.d.ts.map +1 -1
  159. package/dist/orchestrator/graphFacade.d.ts +16 -16
  160. package/dist/orchestrator/graphFacade.d.ts.map +1 -1
  161. package/dist/orchestrator/graphIngress.d.ts +49 -45
  162. package/dist/orchestrator/graphIngress.d.ts.map +1 -1
  163. package/dist/orchestrator/graphReview.d.ts +24 -23
  164. package/dist/orchestrator/graphReview.d.ts.map +1 -1
  165. package/dist/orchestrator/graphRuntime.d.ts +27 -26
  166. package/dist/orchestrator/graphRuntime.d.ts.map +1 -1
  167. package/dist/orchestrator/graphShadow.d.ts +70 -69
  168. package/dist/orchestrator/graphShadow.d.ts.map +1 -1
  169. package/dist/orchestrator/opencodeSessionAdapter.d.ts +25 -25
  170. package/dist/orchestrator/opencodeSessionAdapter.d.ts.map +1 -1
  171. package/dist/orchestrator/permissions.d.ts.map +1 -1
  172. package/dist/orchestrator/ralphLoop.d.ts +57 -0
  173. package/dist/orchestrator/ralphLoop.d.ts.map +1 -0
  174. package/dist/orchestrator/roles.d.ts +69 -8
  175. package/dist/orchestrator/roles.d.ts.map +1 -1
  176. package/dist/orchestrator/roster.d.ts +103 -0
  177. package/dist/orchestrator/roster.d.ts.map +1 -0
  178. package/dist/orchestrator/rosterPersistence.d.ts +22 -0
  179. package/dist/orchestrator/rosterPersistence.d.ts.map +1 -0
  180. package/dist/orchestrator/runtimeSelection.d.ts +46 -0
  181. package/dist/orchestrator/runtimeSelection.d.ts.map +1 -0
  182. package/dist/orchestrator/sddCompiler.d.ts +34 -34
  183. package/dist/orchestrator/sddCompiler.d.ts.map +1 -1
  184. package/dist/orchestrator/sessionReconciler.d.ts +31 -29
  185. package/dist/orchestrator/sessionReconciler.d.ts.map +1 -1
  186. package/dist/orchestrator/shadowComparator.d.ts +23 -23
  187. package/dist/orchestrator/shadowComparator.d.ts.map +1 -1
  188. package/dist/orchestrator/subsessions.d.ts.map +1 -1
  189. package/dist/orchestrator/worktreeAdapter.d.ts +12 -12
  190. package/dist/orchestrator/worktreeAdapter.d.ts.map +1 -1
  191. package/dist/orchestrator/worktreeDispatch.d.ts +34 -34
  192. package/dist/orchestrator/worktreeDispatch.d.ts.map +1 -1
  193. package/dist/orchestrator/worktreeReconciler.d.ts +37 -36
  194. package/dist/orchestrator/worktreeReconciler.d.ts.map +1 -1
  195. package/dist/plugin/availability.d.ts.map +1 -1
  196. package/dist/plugin/capture.d.ts +12 -12
  197. package/dist/plugin/capture.d.ts.map +1 -1
  198. package/dist/plugin/commandTool.d.ts +1 -1
  199. package/dist/plugin/commandTool.d.ts.map +1 -1
  200. package/dist/plugin/diagnostics.d.ts +30 -0
  201. package/dist/plugin/diagnostics.d.ts.map +1 -0
  202. package/dist/plugin/graphShadowIngress.d.ts +50 -48
  203. package/dist/plugin/graphShadowIngress.d.ts.map +1 -1
  204. package/dist/plugin/graphTool.d.ts +25 -23
  205. package/dist/plugin/graphTool.d.ts.map +1 -1
  206. package/dist/plugin/hooks.d.ts +10 -10
  207. package/dist/plugin/hooks.d.ts.map +1 -1
  208. package/dist/plugin/legacyRunProducer.d.ts +22 -22
  209. package/dist/plugin/legacyRunProducer.d.ts.map +1 -1
  210. package/dist/plugin/memoryInject.d.ts +6 -6
  211. package/dist/plugin/memoryInject.d.ts.map +1 -1
  212. package/dist/plugin/memoryTool.d.ts +36 -0
  213. package/dist/plugin/memoryTool.d.ts.map +1 -0
  214. package/dist/plugin/orchestrateTool.d.ts +38 -3
  215. package/dist/plugin/orchestrateTool.d.ts.map +1 -1
  216. package/dist/plugin/reportRunSchema.d.ts +8 -8
  217. package/dist/plugin/reportRunSchema.d.ts.map +1 -1
  218. package/dist/plugin/sessionTracker.d.ts +15 -15
  219. package/dist/plugin/sessionTracker.d.ts.map +1 -1
  220. package/dist/plugin/shadowPipeline.d.ts +2 -1
  221. package/dist/plugin/shadowPipeline.d.ts.map +1 -1
  222. package/dist/plugin/soakObserver.d.ts +18 -11
  223. package/dist/plugin/soakObserver.d.ts.map +1 -1
  224. package/dist/plugin/toolcalls.d.ts +3 -3
  225. package/dist/router/chooseModel.d.ts.map +1 -1
  226. package/dist/router/frontierBaseline.d.ts +3 -3
  227. package/dist/router/modelSelection.d.ts +12 -4
  228. package/dist/router/modelSelection.d.ts.map +1 -1
  229. package/dist/router/types.d.ts +6 -1
  230. package/dist/router/types.d.ts.map +1 -1
  231. package/dist/storage/graph/snapshot.d.ts.map +1 -1
  232. package/dist/storage/graph/soakRecorder.d.ts +14 -1
  233. package/dist/storage/graph/soakRecorder.d.ts.map +1 -1
  234. package/dist/storage/graph/workspaceLease.d.ts +1 -1
  235. package/dist/storage/graph/workspaceLease.d.ts.map +1 -1
  236. package/dist/storage/graph/worktreeRegistry.d.ts +1 -1
  237. package/dist/storage/graph/worktreeRegistry.d.ts.map +1 -1
  238. package/dist/storage/httpStorageProvider.d.ts +2 -2
  239. package/dist/storage/index/bunSqlite.d.ts +1 -0
  240. package/dist/storage/index/bunSqlite.d.ts.map +1 -1
  241. package/dist/storage/index/memoryConsolidate.d.ts +2 -0
  242. package/dist/storage/index/memoryConsolidate.d.ts.map +1 -1
  243. package/dist/storage/index/memoryEmbeddings.d.ts +51 -0
  244. package/dist/storage/index/memoryEmbeddings.d.ts.map +1 -0
  245. package/dist/storage/index/memoryIndex.d.ts +37 -5
  246. package/dist/storage/index/memoryIndex.d.ts.map +1 -1
  247. package/dist/storage/index/memoryRecall.d.ts +1 -1
  248. package/dist/storage/index/memoryRecall.d.ts.map +1 -1
  249. package/dist/storage/index/memoryRuntime.d.ts +2 -0
  250. package/dist/storage/index/memoryRuntime.d.ts.map +1 -1
  251. package/dist/storage/index/sqliteIndex.d.ts +18 -1
  252. package/dist/storage/index/sqliteIndex.d.ts.map +1 -1
  253. package/dist/storage/path.d.ts.map +1 -1
  254. package/dist/telemetry/aggregate.d.ts +12 -12
  255. package/dist/telemetry/aggregate.d.ts.map +1 -1
  256. package/dist/telemetry/cost.d.ts.map +1 -1
  257. package/dist/telemetry/decisions.d.ts +11 -11
  258. package/dist/telemetry/decisions.d.ts.map +1 -1
  259. package/dist/telemetry/diagnostics.d.ts +10 -0
  260. package/dist/telemetry/diagnostics.d.ts.map +1 -0
  261. package/dist/telemetry/eventLog.d.ts +44 -26
  262. package/dist/telemetry/eventLog.d.ts.map +1 -1
  263. package/dist/telemetry/events.d.ts +121 -36
  264. package/dist/telemetry/events.d.ts.map +1 -1
  265. package/dist/telemetry/fanout.d.ts +18 -0
  266. package/dist/telemetry/fanout.d.ts.map +1 -0
  267. package/dist/telemetry/graphProjection.d.ts +12 -12
  268. package/dist/telemetry/graphProjection.d.ts.map +1 -1
  269. package/dist/telemetry/graphRuntimeHealth.d.ts +26 -26
  270. package/dist/telemetry/graphRuntimeHealth.d.ts.map +1 -1
  271. package/dist/telemetry/graphView.d.ts +20 -20
  272. package/dist/telemetry/graphView.d.ts.map +1 -1
  273. package/dist/telemetry/otel.d.ts +86 -0
  274. package/dist/telemetry/otel.d.ts.map +1 -0
  275. package/dist/telemetry/otelConfig.d.ts +128 -0
  276. package/dist/telemetry/otelConfig.d.ts.map +1 -0
  277. package/dist/telemetry/otelExporter.d.ts +7 -0
  278. package/dist/telemetry/otelExporter.d.ts.map +1 -0
  279. package/dist/telemetry/read.d.ts +18 -4
  280. package/dist/telemetry/read.d.ts.map +1 -1
  281. package/dist/telemetry/types.d.ts +3 -2
  282. package/dist/telemetry/types.d.ts.map +1 -1
  283. package/dist/web/configApi.d.ts +154 -0
  284. package/dist/web/configApi.d.ts.map +1 -0
  285. package/dist/web/configRoute.d.ts +57 -0
  286. package/dist/web/configRoute.d.ts.map +1 -0
  287. package/dist/web/console.d.ts +8 -0
  288. package/dist/web/console.d.ts.map +1 -1
  289. package/dist/web/paths.d.ts +4 -3
  290. package/dist/web/paths.d.ts.map +1 -1
  291. package/dist/web/server.d.ts +30 -1
  292. package/dist/web/server.d.ts.map +1 -1
  293. package/dist/web/start.d.ts +15 -0
  294. package/dist/web/start.d.ts.map +1 -1
  295. package/dist/web/storageRoute.d.ts +2 -2
  296. package/package.json +13 -7
  297. package/dist/cli/tunnel.d.ts +0 -89
  298. package/dist/cli/tunnel.d.ts.map +0 -1
  299. package/dist/commands/orchestratorAgent.d.ts +0 -30
  300. package/dist/commands/orchestratorAgent.d.ts.map +0 -1
  301. package/dist/commands/slashCommand.d.ts +0 -39
  302. package/dist/commands/slashCommand.d.ts.map +0 -1
  303. package/dist/orchestrator/ledger.d.ts +0 -28
  304. package/dist/orchestrator/ledger.d.ts.map +0 -1
  305. package/dist/storage/graph/importLegacy.d.ts +0 -62
  306. package/dist/storage/graph/importLegacy.d.ts.map +0 -1
  307. package/dist/storage/graph/migration.d.ts +0 -91
  308. package/dist/storage/graph/migration.d.ts.map +0 -1
  309. package/dist/storage/graph/projections.d.ts +0 -31
  310. package/dist/storage/graph/projections.d.ts.map +0 -1
@@ -1,15 +1,15 @@
1
1
  import { z } from "zod";
2
2
  /**
3
- * **Esquema Zod de la acción `report-run`** (issue #53, ADR Option D).
3
+ * **Zod schema for the `report-run` action** (issue #53, ADR Option D).
4
4
  *
5
- * Valida la forma estructural del reporte que el agente orquestador envía
6
- * a través de la herramienta `openteam-graph`. Claves desconocidas se
7
- * rechazan (`.strict()`): el payload del agente solo transporta campos
8
- * documentados.
5
+ * Validates the structural shape of the report that the orchestrator agent sends
6
+ * through the `openteam-graph` tool. Unknown keys are
7
+ * rejected (`.strict()`): the agent payload only carries documented
8
+ * fields.
9
9
  *
10
- * Módulo puro: sin I/O, reloj ni azar.
10
+ * Pure module: no I/O, clock, or randomness.
11
11
  */
12
- /** Nodo reportado por el agente: identidad + rol + modelo + éxito. */
12
+ /** Node reported by the agent: identity + role + model + success. */
13
13
  export declare const ReportRunNodeSchema: z.ZodObject<{
14
14
  id: z.ZodString;
15
15
  role: z.ZodEnum<{
@@ -28,7 +28,7 @@ export declare const ReportRunNodeSchema: z.ZodObject<{
28
28
  }>>;
29
29
  }, z.core.$strict>;
30
30
  export type ReportRunNode = z.infer<typeof ReportRunNodeSchema>;
31
- /** Payload completo de `report-run`. */
31
+ /** Complete `report-run` payload. */
32
32
  export declare const ReportRunPayloadSchema: z.ZodObject<{
33
33
  runID: z.ZodString;
34
34
  status: z.ZodEnum<{
@@ -1 +1 @@
1
- {"version":3,"file":"reportRunSchema.d.ts","sourceRoot":"","sources":["../../src/plugin/reportRunSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;;;;;;;;GASG;AAEH,sEAAsE;AACtE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;kBASrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,wCAAwC;AACxC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQxB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
1
+ {"version":3,"file":"reportRunSchema.d.ts","sourceRoot":"","sources":["../../src/plugin/reportRunSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB;;;;;;;;;GASG;AAEH,qEAAqE;AACrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;kBASrB,CAAC;AAEZ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEhE,qCAAqC;AACrC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;kBAQxB,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
@@ -1,22 +1,22 @@
1
1
  /**
2
- * **Rastreador de sesiones y modelos** (issue #53, ADR Option D §1).
2
+ * **Session and model tracker** (issue #53, ADR Option D §1).
3
3
  *
4
- * Acumula en memoria las sesiones conocidas (de eventos de ciclo de vida) y
5
- * el modelo enrutado por sesión (de decisiones de `chat.message`). Ambos
6
- * datos se usan para contraverificar los campos auto-reportados del agente
7
- * en la acción `report-run`.
4
+ * Accumulates in memory the known sessions (from lifecycle events) and
5
+ * the model routed per session (from `chat.message` decisions). Both
6
+ * data points are used to cross-verify the agent's self-reported fields
7
+ * in the `report-run` action.
8
8
  *
9
- * Módulo con estado mutable (in-memory map); vive en `plugin/` porque es
10
- * parte de la superficie de producción del plugin, no del router puro.
9
+ * Module with mutable state (in-memory map); it lives in `plugin/` because it is
10
+ * part of the plugin's production surface, not of the pure router.
11
11
  */
12
- /** Resultado de la contraverificación de modelo para un nodo. */
12
+ /** Result of model cross-verification for a node. */
13
13
  export type ModelVerification = {
14
14
  readonly verified: true;
15
15
  readonly match: boolean;
16
16
  } | {
17
17
  readonly verified: false;
18
18
  };
19
- /** Resultado de la contraverificación de sessionRef. */
19
+ /** Result of sessionRef cross-verification. */
20
20
  export type SessionRefVerification = {
21
21
  readonly known: true;
22
22
  } | {
@@ -25,18 +25,18 @@ export type SessionRefVerification = {
25
25
  readonly known: null;
26
26
  };
27
27
  export type SessionTracker = {
28
- /** Registra una sesión conocida (de session.created, session.idle, etc.). */
28
+ /** Records a known session (from session.created, session.idle, etc.). */
29
29
  readonly trackSession: (sessionID: string) => void;
30
- /** Registra el modelo enrutado para una sesión (de chat.message). */
30
+ /** Records the routed model for a session (from chat.message). */
31
31
  readonly trackRoutedModel: (sessionID: string, model: string) => void;
32
- /** Verifica si un modelo reportado coincide con el enrutado. */
32
+ /** Verifies whether a reported model matches the routed one. */
33
33
  readonly verifyModel: (sessionRef: string, reportedModel: string) => ModelVerification;
34
- /** Verifica si una referencia de sesión corresponde a una sesión conocida. */
34
+ /** Verifies whether a session reference corresponds to a known session. */
35
35
  readonly verifySessionRef: (sessionRef: string | undefined) => SessionRefVerification;
36
36
  };
37
37
  /**
38
- * Crea un rastreador de sesiones y modelos. El estado es efímero: vive
39
- * mientras el plugin esté cargado, no se persiste.
38
+ * Creates a session and model tracker. The state is ephemeral: it lives
39
+ * while the plugin is loaded, it is not persisted.
40
40
  */
41
41
  export declare function createSessionTracker(): SessionTracker;
42
42
  //# sourceMappingURL=sessionTracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sessionTracker.d.ts","sourceRoot":"","sources":["../../src/plugin/sessionTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,iEAAiE;AACjE,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjC,wDAAwD;AACxD,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,qEAAqE;IACrE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,CACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,KAClB,iBAAiB,CAAC;IACvB,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,EAAE,CACzB,UAAU,EAAE,MAAM,GAAG,SAAS,KAC3B,sBAAsB,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA4BrD"}
1
+ {"version":3,"file":"sessionTracker.d.ts","sourceRoot":"","sources":["../../src/plugin/sessionTracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,qDAAqD;AACrD,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACpD;IAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjC,+CAA+C;AAC/C,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAA;CAAE,CAAC;AAE7B,MAAM,MAAM,cAAc,GAAG;IAC3B,0EAA0E;IAC1E,QAAQ,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,kEAAkE;IAClE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,CACpB,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,MAAM,KAClB,iBAAiB,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,EAAE,CACzB,UAAU,EAAE,MAAM,GAAG,SAAS,KAC3B,sBAAsB,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,CA4BrD"}
@@ -34,7 +34,8 @@ export type ShadowPipelineDeps = {
34
34
  readonly ports: RecorderPorts;
35
35
  readonly evidenceDir: string;
36
36
  readonly recorderId: string;
37
- readonly opencodeVersion: string;
37
+ /** Lazy live opencode version reader; returns "unknown" if unreadable. */
38
+ readonly resolveOpencodeVersion: () => Promise<string>;
38
39
  readonly criticalCodes: readonly ShadowDivergenceCode[];
39
40
  /** Override process.platform for testing. Production callers omit this. */
40
41
  readonly platformOverride?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"shadowPipeline.d.ts","sourceRoot":"","sources":["../../src/plugin/shadowPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAOrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;GAYG;AAEH,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,cAAc,GAAG,CAC3B,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,CAAC,EAAE,yBAAyB,GAAG,IAAI,KACjD,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CAoD7E"}
1
+ {"version":3,"file":"shadowPipeline.d.ts","sourceRoot":"","sources":["../../src/plugin/shadowPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAOrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,sBAAsB,CAAC;AAG9B;;;;;;;;;;;;GAYG;AAEH,qCAAqC;AACrC,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpE,0DAA0D;AAC1D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,QAAQ,CAAC,sBAAsB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACxD,2EAA2E;IAC3E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChD,CAAC;AAEF,2FAA2F;AAC3F,MAAM,MAAM,cAAc,GAAG,CAC3B,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,CAAC,EAAE,yBAAyB,GAAG,IAAI,KACjD,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,cAAc,CA2D7E"}
@@ -3,20 +3,27 @@ import type { SoakDuplicateEffectPair, SoakModelVerificationPair, SoakPlatform,
3
3
  import { type ObservationInput, type RecorderPorts } from "../storage/graph/soakRecorder";
4
4
  import type { LegacyExecutionTraceV1 } from "./graphShadowIngress";
5
5
  /**
6
- * **Observador soak** (GE-055a): superficie confiable mínima.
6
+ * **Soak observer** (GE-055a): minimum trusted surface.
7
7
  *
8
- * Recibe un `LegacyExecutionTraceV1` validado de la ingesta shadow,
9
- * extrae un resumen reference-only (digest, plataforma, pin, contadores),
10
- * y delega la persistencia al `soakRecorder`. No emite veredictos, no
11
- * evalúa puertas, no construye certificados.
8
+ * Receives a validated `LegacyExecutionTraceV1` from shadow ingestion,
9
+ * extracts a reference-only summary (digest, platform, pin, counters),
10
+ * and delegates persistence to `soakRecorder`. It emits no verdicts,
11
+ * evaluates no gates, and builds no certificates.
12
12
  *
13
- * Este módulo usa I/O real (filesystem, clock) — vive fuera de `src/graph/`.
13
+ * This module uses real I/O (filesystem, clock) — it lives outside `src/graph/`.
14
14
  */
15
15
  /** Shadow parity result plumbed from the comparator. */
16
16
  export type SoakParityInput = {
17
17
  /** Divergence codes detected between legacy and shadow runs. */
18
18
  readonly divergences: readonly string[];
19
19
  };
20
+ export type SoakObservationRejectionReason = "unrecognized-platform" | "opencode-version-unreadable";
21
+ export type RecordSoakObservationResult = {
22
+ readonly recorded: true;
23
+ } | {
24
+ readonly recorded: false;
25
+ readonly reason: SoakObservationRejectionReason;
26
+ };
20
27
  /**
21
28
  * Maps a platform string to a supported observation platform.
22
29
  * Returns null for unrecognized platforms — the observation is rejected.
@@ -49,7 +56,7 @@ export declare function scanTracePrivacy(trace: LegacyExecutionTraceV1): SoakPri
49
56
  */
50
57
  export declare function detectDuplicateEffects(trace: LegacyExecutionTraceV1): SoakDuplicateEffectPair | null;
51
58
  /**
52
- * Extrae una observación de un trace legacy. Solo digests y contadores.
59
+ * Extracts an observation from a legacy trace. Digests and counters only.
53
60
  *
54
61
  * @param parity - Shadow parity result if the comparator ran; undefined otherwise.
55
62
  * @param criticalCodes - Which divergence codes count as critical (from policy).
@@ -63,11 +70,11 @@ export declare function detectDuplicateEffects(trace: LegacyExecutionTraceV1): S
63
70
  */
64
71
  export declare function traceToObservationInput(trace: LegacyExecutionTraceV1, opencodeVersion: string, parity: SoakParityInput | undefined, criticalCodes: readonly ShadowDivergenceCode[], modelVerification: SoakModelVerificationPair | null, platformOverride?: string): ObservationInput | null;
65
72
  /**
66
- * Registra una observación soak a partir de un trace validado.
67
- * Llamado por la hook de ingesta shadow al completar una ejecución elegible.
68
- * Returns false if the observation was rejected (unrecognized platform).
73
+ * Records a soak observation from a validated trace.
74
+ * Called by the shadow ingestion hook when an eligible execution completes.
75
+ * Returns a structured rejection if the observation cannot be written safely.
69
76
  *
70
77
  * @param platformOverride - Override process.platform for testing.
71
78
  */
72
- export declare function recordSoakObservation(ports: RecorderPorts, evidenceDir: string, recorderId: string, trace: LegacyExecutionTraceV1, opencodeVersion: string, parity: SoakParityInput | undefined, criticalCodes: readonly ShadowDivergenceCode[], modelVerification: SoakModelVerificationPair | null, platformOverride?: string): Promise<boolean>;
79
+ export declare function recordSoakObservation(ports: RecorderPorts, evidenceDir: string, recorderId: string, trace: LegacyExecutionTraceV1, opencodeVersion: string, parity: SoakParityInput | undefined, criticalCodes: readonly ShadowDivergenceCode[], modelVerification: SoakModelVerificationPair | null, platformOverride?: string): Promise<RecordSoakObservationResult>;
73
80
  //# sourceMappingURL=soakObserver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"soakObserver.d.ts","sourceRoot":"","sources":["../../src/plugin/soakObserver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;;;;;;;GASG;AAEH,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKrE;AAsBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,sBAAsB,GAC5B,eAAe,CAMjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,GAAG,IAAI,CAehC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,EACnD,gBAAgB,CAAC,EAAE,MAAM,GACxB,gBAAgB,GAAG,IAAI,CAezB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,sBAAsB,EAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,EACnD,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,OAAO,CAAC,CAYlB"}
1
+ {"version":3,"file":"soakObserver.d.ts","sourceRoot":"","sources":["../../src/plugin/soakObserver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EACV,uBAAuB,EACvB,yBAAyB,EACzB,YAAY,EACZ,eAAe,EAChB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,aAAa,EACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE;;;;;;;;;GASG;AAEH,wDAAwD;AACxD,MAAM,MAAM,eAAe,GAAG;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GACtC,uBAAuB,GACvB,6BAA6B,CAAC;AAElC,MAAM,MAAM,2BAA2B,GACnC;IAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,GAC3B;IACE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;CACjD,CAAC;AAEN;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAKrE;AAsBD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,sBAAsB,GAC5B,eAAe,CAMjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,GAAG,IAAI,CAehC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,sBAAsB,EAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,EACnD,gBAAgB,CAAC,EAAE,MAAM,GACxB,gBAAgB,GAAG,IAAI,CAezB;AAED;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,sBAAsB,EAC7B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,eAAe,GAAG,SAAS,EACnC,aAAa,EAAE,SAAS,oBAAoB,EAAE,EAC9C,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,EACnD,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC,2BAA2B,CAAC,CAwBtC"}
@@ -1,8 +1,8 @@
1
1
  import type { EventSink } from "../telemetry/eventLog";
2
2
  /**
3
- * Rastrea `tool.execute.before` / `tool.execute.after` para medir la duración de
4
- * cada toolcall (correlando por `sessionID` + `callID`) y emite un `toolcall`
5
- * event **redactado** (nunca argumentos ni salida) al terminar.
3
+ * Tracks `tool.execute.before` / `tool.execute.after` to measure the duration of
4
+ * each toolcall (correlating by `sessionID` + `callID`) and emits a **redacted**
5
+ * `toolcall` event (never arguments or output) on completion.
6
6
  */
7
7
  export type ToolExecuteInput = {
8
8
  tool: string;
@@ -1 +1 @@
1
- {"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AAsMjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CA8HhE"}
1
+ {"version":3,"file":"chooseModel.d.ts","sourceRoot":"","sources":["../../src/router/chooseModel.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAIV,eAAe,EACf,YAAY,EACb,MAAM,SAAS,CAAC;AA+NjB,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,eAAe,CAwMhE"}
@@ -1,9 +1,9 @@
1
1
  import type { ComplexityTier } from "../capabilities/types";
2
2
  import type { ModelSelection, RoutingInput } from "./types";
3
3
  /**
4
- * Resolución pura del baseline frontier (cheapest-capable o pinned). Vive
5
- * separada del resto del router para aislar la dependencia del catálogo de
6
- * capacidades. Sin I/O ni estado.
4
+ * Pure resolution of the frontier baseline (cheapest-capable or pinned). Lives
5
+ * separate from the rest of the router to isolate the dependency on the
6
+ * capability catalog. No I/O and no state.
7
7
  */
8
8
  export type FrontierResolution = {
9
9
  model: ModelSelection;
@@ -1,15 +1,23 @@
1
1
  import type { ModelRef, OpenTeamConfig } from "../config/schema";
2
2
  import type { AvailableModel, ModelSelection, RoutingInput } from "./types";
3
3
  /**
4
- * Utilidades puras de selección de modelos para el router: identidad,
5
- * comparación, deduplicación y resolución de los modelos disponibles.
6
- * Sin I/O, sin reloj, sin aleatoriedadigual que el resto de `router/`.
4
+ * Pure model-selection utilities for the router: identity, comparison,
5
+ * deduplication and resolution of the available models.
6
+ * No I/O, no clock, no randomnesslike the rest of `router/`.
7
7
  */
8
8
  export declare function modelKey(model: ModelSelection): string;
9
9
  export declare function sameModel(left: ModelRef, right: ModelSelection): boolean;
10
10
  export declare function compareModels(left: ModelSelection, right: ModelSelection): number;
11
11
  export declare function uniqueModelSelections(models: ModelSelection[]): ModelSelection[];
12
- export declare function localDefault(config: OpenTeamConfig): ModelSelection;
12
+ /**
13
+ * Returns the effective local model for routing. The first enabled runtime's
14
+ * `defaultModel` wins; if no runtime is enabled, falls back to the explicit
15
+ * `router.localDefault` (null by default). Array order is therefore
16
+ * significant: when multiple runtimes are enabled, the first one in
17
+ * `local.runtimes` is selected. There is no "primary" designator — that is a
18
+ * documented design gap (see decisions inbox).
19
+ */
20
+ export declare function localDefault(config: OpenTeamConfig): ModelSelection | null;
13
21
  export declare function resolveConfiguredFrontierBaseline(config: OpenTeamConfig): ModelSelection;
14
22
  export declare function availableModels(input: RoutingInput): AvailableModel[];
15
23
  export declare function listedModel(input: RoutingInput, model: ModelSelection): AvailableModel | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"modelSelection.d.ts","sourceRoot":"","sources":["../../src/router/modelSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;GAIG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAExE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,cAAc,GACpB,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EAAE,GACvB,cAAc,EAAE,CAQlB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAKnE;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,cAAc,GACrB,cAAc,CAShB;AAwBD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAIrE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,cAAc,GAAG,SAAS,CAI5B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,OAAO,CAET;AAaD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,cAAc,GACvB,cAAc,EAAE,CAUlB"}
1
+ {"version":3,"file":"modelSelection.d.ts","sourceRoot":"","sources":["../../src/router/modelSelection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5E;;;;GAIG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAEtD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAExE;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,cAAc,GACpB,MAAM,CAER;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EAAE,GACvB,cAAc,EAAE,CAQlB;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI,CAK1E;AAED,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,cAAc,GACrB,cAAc,CAShB;AA0BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,EAAE,CAIrE;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,cAAc,GAAG,SAAS,CAI5B;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,cAAc,GACpB,OAAO,CAET;AAaD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,cAAc,GACvB,cAAc,EAAE,CAUlB"}
@@ -1,7 +1,7 @@
1
1
  import type { BudgetDecision, BudgetState } from "../capabilities/budget";
2
2
  import type { ComplexityTier, ModelCapabilityProfile } from "../capabilities/types";
3
3
  import type { OpenTeamConfig } from "../config/schema";
4
- export type ProviderKind = "local" | "frontier" | "router";
4
+ export type ProviderKind = "local" | "frontier" | "router" | "blocked";
5
5
  export type ModelSelection = {
6
6
  providerID: string;
7
7
  modelID: string;
@@ -45,5 +45,10 @@ export type RoutingDecision = {
45
45
  baselineCostUSD: number;
46
46
  estimatedSavingsUSD: number;
47
47
  budgetAction: BudgetDecision;
48
+ /**
49
+ * Present when `routeKind === "blocked"`. The request must not be forwarded
50
+ * to any model. `selected` contains the frontier model for cost-reference only.
51
+ */
52
+ blockReason?: string;
48
53
  };
49
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,aAAa,GACb,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/router/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,aAAa,GACb,gBAAgB,GAChB,cAAc,CAAC;AAEnB,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACpC,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,YAAY,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,cAAc,EAAE,CAAC;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,cAAc,CAAC;IAC7B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/snapshot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAIlC,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAkDF,gFAAgF;AAChF,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,KAAK,EAAE,MAAM,GACZ,aAAa,CASf;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,aAAa,GAAG,SAAS,CA8B3B;AA4BD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,UAAU,CAKZ"}
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/snapshot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAIlC,4DAA4D;AAC5D,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAwDF,gFAAgF;AAChF,wBAAgB,UAAU,CACxB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,KAAK,EAAE,MAAM,GACZ,aAAa,CASf;AAED,+EAA+E;AAC/E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,aAAa,GAAG,SAAS,CA8B3B;AA4BD;;;;GAIG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,QAAQ,EAAE,aAAa,GAAG,SAAS,GAClC,UAAU,CAKZ"}
@@ -28,6 +28,19 @@ export type RecorderPorts = {
28
28
  readonly clock: ClockPort;
29
29
  readonly id: IdPort;
30
30
  };
31
+ export type SoakChainReadPorts = {
32
+ readonly fs: Pick<FsPort, "readFile" | "exists" | "readDir">;
33
+ };
34
+ export type SoakObservationLineRejection = {
35
+ readonly file: string;
36
+ readonly lineNumber: number;
37
+ readonly detail: string;
38
+ };
39
+ export type ReadAllChainsResult = {
40
+ readonly chains: SoakObservation[][];
41
+ readonly rejectedLines: number;
42
+ readonly rejections: readonly SoakObservationLineRejection[];
43
+ };
31
44
  /**
32
45
  * Obtiene o genera el ID del grabador local. El ID es un UUID aleatorio
33
46
  * almacenado en `{basePath}/soak-recorder-id`. No se deriva de hostname,
@@ -38,7 +51,7 @@ export declare function ensureRecorderId(ports: RecorderPorts, basePath: string)
38
51
  * Lee todas las cadenas de observación del directorio de evidencia.
39
52
  * Cada fichero `*.jsonl` se lee como una cadena independiente.
40
53
  */
41
- export declare function readAllChains(ports: RecorderPorts, evidenceDir: string): Promise<SoakObservation[][]>;
54
+ export declare function readAllChains(ports: SoakChainReadPorts, evidenceDir: string): Promise<ReadAllChainsResult>;
42
55
  /** Datos de entrada para una nueva observación (sin campos derivados). */
43
56
  export type ObservationInput = {
44
57
  readonly platform: SoakPlatform;
@@ -1 +1 @@
1
- {"version":3,"file":"soakRecorder.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/soakRecorder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AAMH,8DAA8D;AAC9D,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAMF;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAajB;AAMD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CA0B9B;AAMD,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC9D,CAAC;AAwBF;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,CAAC,CAiE1B"}
1
+ {"version":3,"file":"soakRecorder.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/soakRecorder.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EAEpB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;GAMG;AAMH,8DAA8D;AAC9D,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/D,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD,CAAC;AAEF,uCAAuC;AACvC,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,MAAM,CAAC;CAC5B,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,MAAM,CAAC;CACnC,CAAC;AAEF,2CAA2C;AAC3C,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,SAAS,4BAA4B,EAAE,CAAC;CAC9D,CAAC;AAMF;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAajB;AAMD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,mBAAmB,CAAC,CA4C9B;AAUD,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,cAAc,CAAC;IACtD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAAC;IACzC,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,GAAG,IAAI,CAAC;IAC1D,QAAQ,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,IAAI,CAAC;CAC9D,CAAC;AAwBF;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,eAAe,CAAC,CAsE1B"}
@@ -5,7 +5,7 @@ declare const leaseRecordSchema: z.ZodObject<{
5
5
  holder: z.ZodString;
6
6
  token: z.ZodString;
7
7
  released: z.ZodBoolean;
8
- }, z.core.$strip>;
8
+ }, z.core.$strict>;
9
9
  /** Registro persistido de un lease del workspace. */
10
10
  export type LeaseRecord = z.infer<typeof leaseRecordSchema>;
11
11
  /** Taxonomía cerrada de errores del lease. */
@@ -1 +1 @@
1
- {"version":3,"file":"workspaceLease.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/workspaceLease.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAuBpE,QAAA,MAAM,iBAAiB;;;;;iBAKrB,CAAC;AAEH,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,6DAA6D;AAC7D,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAK/C;CACF;AAED,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,oEAAoE;IACpE,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6EAA6E;IAC7E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CAC1D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,WAAqC,GAC9C,cAAc,CA0EhB"}
1
+ {"version":3,"file":"workspaceLease.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/workspaceLease.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAuBpE,QAAA,MAAM,iBAAiB;;;;;kBAOZ,CAAC;AAEZ,qDAAqD;AACrD,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,8CAA8C;AAC9C,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,6DAA6D;AAC7D,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAK/C;CACF;AAED,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,oFAAoF;IACpF,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7D,oEAAoE;IACpE,OAAO,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,6EAA6E;IAC7E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;CAC1D;AAED,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,WAAqC,GAC9C,cAAc,CA0EhB"}
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  declare const bindingSchema: z.ZodObject<{
3
3
  runID: z.ZodString;
4
4
  worktreePath: z.ZodString;
5
- }, z.core.$strip>;
5
+ }, z.core.$strict>;
6
6
  /** Vinculación persistida de un run a su worktree. */
7
7
  export type WorktreeBinding = z.infer<typeof bindingSchema>;
8
8
  /** Taxonomía cerrada de errores del registro de worktrees. */
@@ -1 +1 @@
1
- {"version":3,"file":"worktreeRegistry.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/worktreeRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,QAAA,MAAM,aAAa;;;iBAGjB,CAAC;AAIH,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,aAAa,GACb,cAAc,GACd,SAAS,CAAC;AAEd,gEAAgE;AAChE,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAK1D;CACF;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,iFAAiF;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpD,oDAAoD;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,sDAAsD;IACtD,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACpC;AAaD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA8ErE"}
1
+ {"version":3,"file":"worktreeRegistry.d.ts","sourceRoot":"","sources":["../../../src/storage/graph/worktreeRegistry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAiCxB,QAAA,MAAM,aAAa;;;kBAKR,CAAC;AAIZ,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5D,8DAA8D;AAC9D,MAAM,MAAM,yBAAyB,GACjC,UAAU,GACV,aAAa,GACb,cAAc,GACd,SAAS,CAAC;AAEd,gEAAgE;AAChE,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,YAAY,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,EAK1D;CACF;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpE,iFAAiF;IACjF,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACpD,oDAAoD;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,sDAAsD;IACtD,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACpC;AAaD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CA8ErE"}
@@ -3,8 +3,8 @@ import type { StorageProvider } from "./provider";
3
3
  * `createHttpStorageProvider` — adapter remoto del `StorageProvider` (§ Fase 4).
4
4
  *
5
5
  * Habla con el endpoint `/storage/...` servido por la Console (ver
6
- * `web/storageRoute.ts`) para leer/escribir el estado del equipo a través del
7
- * tunnel. Es un proxy transparente del contrato: cada operación se traduce a una
6
+ * `web/storageRoute.ts`) para leer/escribir el estado del equipo sobre la
7
+ * red. Es un proxy transparente del contrato: cada operación se traduce a una
8
8
  * petición HTTP autenticada con el token efímero de la Console.
9
9
  *
10
10
  * `fetch` es inyectable para tests deterministas; en producción usa el global.
@@ -10,6 +10,7 @@ export declare function createBunSqliteDatabase(path: string): Promise<SqliteDat
10
10
  export type BuildSqliteIndexResult = {
11
11
  index: SqliteEventIndex;
12
12
  events: number;
13
+ rejectedRows: number;
13
14
  };
14
15
  /**
15
16
  * Abre (o crea) el índice SQLite en `path` con el driver de `bun:sqlite` y lo
@@ -1 +1 @@
1
- {"version":3,"file":"bunSqlite.d.ts","sourceRoot":"","sources":["../../../src/storage/index/bunSqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAKjC"}
1
+ {"version":3,"file":"bunSqlite.d.ts","sourceRoot":"","sources":["../../../src/storage/index/bunSqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EAEtB,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,sBAAsB,CAAC,CAOjC"}
@@ -19,6 +19,8 @@ export type ConsolidateMemoryDeps = {
19
19
  export type ConsolidationResult = {
20
20
  /** Records olvidados (soft-invalidated) en esta pasada. */
21
21
  forgotten: number;
22
+ /** Lines in the memory log that failed parsing (JSON or schema). */
23
+ rejectedLines: number;
22
24
  };
23
25
  export declare function runConsolidation(logPath: string, deps: ConsolidateMemoryDeps): Promise<ConsolidationResult>;
24
26
  //# sourceMappingURL=memoryConsolidate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryConsolidate.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryConsolidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;GASG;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAW9B"}
1
+ {"version":3,"file":"memoryConsolidate.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryConsolidate.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,WAAW,EAIjB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD;;;;;;;;;GASG;AAEH,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,eAAe,CAAC;IACzB,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,mBAAmB,CAAC,CAY9B"}
@@ -0,0 +1,51 @@
1
+ import type { Embedder } from "../../local/embeddings";
2
+ import type { MemoryIndex } from "./memoryIndex";
3
+ /**
4
+ * Read-side wiring for semantic memory (issue #147). `rebuildMemoryIndexFromStorage`
5
+ * folds the append-only log into the derived index, but the pure `recall`
6
+ * pipeline silently skips any record without an embedding — and nothing ever
7
+ * called `putEmbeddings`, so recall was permanently empty in production. This
8
+ * module closes that gap: after a rebuild it embeds the records that still lack
9
+ * a vector and persists them via `MemoryIndex.putEmbeddings`.
10
+ *
11
+ * Design (all decisions are load-bearing, see the issue):
12
+ *
13
+ * - **Incremental.** Embeddings persist in SQLite, so a restart re-embeds only
14
+ * records that have no vector yet (`embeddingMap()` is the source of truth for
15
+ * "already embedded"). A cold start with an already-populated cache makes
16
+ * zero embedding calls.
17
+ * - **Model keying.** A vector from a different embedding model is not
18
+ * comparable to a query embedded by the current model. The index records the
19
+ * model used (`embeddingModel()`); when it changes we clear the cache and
20
+ * re-embed every record so recall never mixes vector spaces.
21
+ * - **Local-only.** The `Embedder` is the local runtime embedder resolved by
22
+ * `buildMemoryRuntimeFromConfig`; no conversation-derived text reaches a
23
+ * frontier provider. Records are already ADR-5 redacted before they are
24
+ * written, so embedding them is safe.
25
+ * - **Failure is visible.** If the local runtime is unreachable the embedding
26
+ * call throws; we report it through `warn` and return a non-zero `failed`
27
+ * count instead of silently producing an unrecallable index. Records that
28
+ * were already embedded stay recallable; the missing ones are picked up on a
29
+ * later run when the runtime is back.
30
+ */
31
+ export type EnsureMemoryEmbeddingsDeps = {
32
+ index: MemoryIndex;
33
+ embedder: Embedder;
34
+ /** Current embedding model id; vectors from another model are invalidated. */
35
+ model: string;
36
+ warn?: (message?: unknown) => void;
37
+ };
38
+ export type EnsureMemoryEmbeddingsResult = {
39
+ /** Records embedded and persisted in this pass. */
40
+ readonly embedded: number;
41
+ /** Records that could not be embedded (runtime unreachable or bad response). */
42
+ readonly failed: number;
43
+ /** Whether the embedding model changed and the cache was rebuilt. */
44
+ readonly modelChanged: boolean;
45
+ };
46
+ /**
47
+ * Embeds the records in the index that still lack a current-model vector and
48
+ * persists them. Never throws: embedding failures are reported through `warn`.
49
+ */
50
+ export declare function ensureMemoryEmbeddings(deps: EnsureMemoryEmbeddingsDeps): Promise<EnsureMemoryEmbeddingsResult>;
51
+ //# sourceMappingURL=memoryEmbeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryEmbeddings.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryEmbeddings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGvD,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,8EAA8E;IAC9E,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,mDAAmD;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,0BAA0B,GAC/B,OAAO,CAAC,4BAA4B,CAAC,CAkDvC"}
@@ -20,11 +20,27 @@ export type EmbeddingEntry = {
20
20
  recordId: string;
21
21
  vector: Embedding;
22
22
  };
23
+ /** Rejection detail for a malformed row stored in `memory_records`. */
24
+ export type MemoryIndexRowRejection = {
25
+ readonly recordId: string;
26
+ readonly detail: string;
27
+ };
28
+ /** Result of reading records from the derived SQLite memory index. */
29
+ export type ReadMemoryIndexRecordsResult = {
30
+ readonly records: MemoryRecord[];
31
+ readonly rejectedRows: number;
32
+ readonly rejections: readonly MemoryIndexRowRejection[];
33
+ };
23
34
  export type MemoryIndex = {
24
35
  /** Vacía y repuebla el índice replegando `assertions` (derivado). */
25
36
  rebuild: (assertions: readonly MemoryRecord[]) => void;
26
- /** Todos los records materializados (vigentes + invalidados), orden estable. */
37
+ /**
38
+ * All materialized records (current + invalidated), in stable order.
39
+ * Warns if corrupt rows from the derived index are omitted.
40
+ */
27
41
  allRecords: () => MemoryRecord[];
42
+ /** Diagnostic variant: returns valid records plus rejected rows. */
43
+ allRecordsWithDiagnostics: () => ReadMemoryIndexRecordsResult;
28
44
  /** Estado particionado por kind. */
29
45
  state: () => MemoryState;
30
46
  /** Records recuperables (bitemporalmente activos) en `asOf`. */
@@ -35,18 +51,34 @@ export type MemoryIndex = {
35
51
  embeddingMap: () => Map<string, Embedding>;
36
52
  /** Elimina embeddings huérfanos (sin record). Devuelve cuántos borró. */
37
53
  pruneEmbeddings: () => number;
54
+ /** Borra todos los embeddings (usado cuando el modelo cambia). */
55
+ clearEmbeddings: () => void;
56
+ /**
57
+ * Modelo con el que se computaron los embeddings persistidos, o `null` si aún
58
+ * no se ha registrado ninguno. Los vectores de un modelo distinto no son
59
+ * comparables, así que el llamante los invalida y re-embebe.
60
+ */
61
+ embeddingModel: () => string | null;
62
+ /** Registra el modelo con el que se computaron los embeddings persistidos. */
63
+ setEmbeddingModel: (model: string) => void;
38
64
  /** Cierra la conexión subyacente. */
39
65
  close: () => void;
40
66
  };
67
+ export declare function warnMemoryIndexRecordRejections(result: ReadMemoryIndexRecordsResult, warn?: (message?: unknown) => void): void;
41
68
  /** Crea el índice sobre una base de datos ya abierta y asegura el esquema. */
42
- export declare function createMemoryIndex(db: SqliteDatabase): MemoryIndex;
69
+ export declare function createMemoryIndex(db: SqliteDatabase, warn?: (message?: unknown) => void): MemoryIndex;
43
70
  export type RebuildMemoryDeps = {
44
71
  storage: StorageProvider;
45
72
  };
73
+ /** Result of rebuilding the memory index from storage. */
74
+ export type RebuildMemoryResult = {
75
+ readonly count: number;
76
+ readonly rejectedLines: number;
77
+ };
46
78
  /**
47
79
  * Reconstruye el índice desde el log de memoria leído por el `StorageProvider`.
48
- * Devuelve el número de aserciones replegadas. Es la operación de "regenerar"
49
- * tras un borrado del índice.
80
+ * Devuelve el número de aserciones replegadas y any rejected lines so the caller
81
+ * can warn. Es la operación de "regenerar" tras un borrado del índice.
50
82
  */
51
- export declare function rebuildMemoryIndexFromStorage(index: MemoryIndex, logPath: string, deps: RebuildMemoryDeps): Promise<number>;
83
+ export declare function rebuildMemoryIndexFromStorage(index: MemoryIndex, logPath: string, deps: RebuildMemoryDeps): Promise<RebuildMemoryResult>;
52
84
  //# sourceMappingURL=memoryIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memoryIndex.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;GAYG;AAEH,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,qEAAqE;IACrE,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAC;IACvD,gFAAgF;IAChF,UAAU,EAAE,MAAM,YAAY,EAAE,CAAC;IACjC,oCAAoC;IACpC,KAAK,EAAE,MAAM,WAAW,CAAC;IACzB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC3C,mDAAmD;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,IAAI,CAAC;IAC5D,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,yEAAyE;IACzE,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,qCAAqC;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAkDF,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,WAAW,CAmGjE;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,MAAM,CAAC,CAKjB"}
1
+ {"version":3,"file":"memoryIndex.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,SAAS,EACd,KAAK,YAAY,EAElB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;;;;GAYG;AAEH,uDAAuD;AACvD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,uEAAuE;AACvE,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,4BAA4B,GAAG;IACzC,QAAQ,CAAC,OAAO,EAAE,YAAY,EAAE,CAAC;IACjC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,qEAAqE;IACrE,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,YAAY,EAAE,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,UAAU,EAAE,MAAM,YAAY,EAAE,CAAC;IACjC,oEAAoE;IACpE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;IAC9D,oCAAoC;IACpC,KAAK,EAAE,MAAM,WAAW,CAAC;IACzB,gEAAgE;IAChE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,EAAE,CAAC;IAC3C,mDAAmD;IACnD,aAAa,EAAE,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,KAAK,IAAI,CAAC;IAC5D,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,yEAAyE;IACzE,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,kEAAkE;IAClE,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B;;;;OAIG;IACH,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,8EAA8E;IAC9E,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,qCAAqC;IACrC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAsDF,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,4BAA4B,EACpC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,GACjC,IAAI,CAaN;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,cAAc,EAClB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,GACjC,WAAW,CAqIb;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,0DAA0D;AAC1D,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,WAAW,EAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,mBAAmB,CAAC,CAK9B"}
@@ -1,7 +1,7 @@
1
1
  import type { Embedder } from "../../local/embeddings";
2
2
  import type { RankSignals } from "../../memory/rank";
3
3
  import type { RecallQuery, RecallResult } from "../../memory/types";
4
- import type { MemoryIndex } from "./memoryIndex";
4
+ import { type MemoryIndex } from "./memoryIndex";
5
5
  /**
6
6
  * Orquestación de recall semántico: embebe el texto de consulta con el
7
7
  * `Embedder` local inyectado y delega el ranking al `recall` **puro** sobre los
@@ -1 +1 @@
1
- {"version":3,"file":"memoryRecall.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryRecall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAYzB"}
1
+ {"version":3,"file":"memoryRecall.d.ts","sourceRoot":"","sources":["../../../src/storage/index/memoryRecall.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,eAAe,CAAC;AAEvB;;;;;GAKG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mEAAmE;IACnE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;CACpC,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,gBAAgB,EACtB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC,CAazB"}
@@ -24,6 +24,8 @@ export type BuildMemoryRuntimeDeps = {
24
24
  openDatabase?: typeof createBunSqliteDatabase;
25
25
  /** Inyectable en tests; por defecto crea el embedder local. */
26
26
  createEmbedder?: typeof createLocalEmbedder;
27
+ /** Sink de avisos inyectable; por defecto `console.warn`. */
28
+ warn?: (message?: unknown) => void;
27
29
  };
28
30
  export type BuildMemoryRuntimeOptions = {
29
31
  /** Si `true`, además exige `injection.enabled` (uso de la inyección M6). */