@vauban-org/agent-sdk 1.0.0 → 1.3.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 (513) hide show
  1. package/CONTRACT.md +6918 -742
  2. package/dist/adapters/llm/anthropic-direct.d.ts +1 -0
  3. package/dist/adapters/llm/anthropic-direct.d.ts.map +1 -1
  4. package/dist/adapters/llm/anthropic-direct.js +43 -0
  5. package/dist/adapters/llm/anthropic-direct.js.map +1 -1
  6. package/dist/adapters/llm/cascade.d.ts.map +1 -1
  7. package/dist/adapters/llm/cascade.js +57 -14
  8. package/dist/adapters/llm/cascade.js.map +1 -1
  9. package/dist/adapters/llm/litellm.d.ts +2 -0
  10. package/dist/adapters/llm/litellm.d.ts.map +1 -1
  11. package/dist/adapters/llm/litellm.js +44 -0
  12. package/dist/adapters/llm/litellm.js.map +1 -1
  13. package/dist/compute/difficulty-estimator.d.ts +53 -0
  14. package/dist/compute/difficulty-estimator.d.ts.map +1 -0
  15. package/dist/compute/difficulty-estimator.js +82 -0
  16. package/dist/compute/difficulty-estimator.js.map +1 -0
  17. package/dist/compute/strategies/mixture-of-agents.d.ts +40 -0
  18. package/dist/compute/strategies/mixture-of-agents.d.ts.map +1 -0
  19. package/dist/compute/strategies/mixture-of-agents.js +110 -0
  20. package/dist/compute/strategies/mixture-of-agents.js.map +1 -0
  21. package/dist/compute/strategies/tree-of-thoughts.d.ts +48 -0
  22. package/dist/compute/strategies/tree-of-thoughts.d.ts.map +1 -0
  23. package/dist/compute/strategies/tree-of-thoughts.js +242 -0
  24. package/dist/compute/strategies/tree-of-thoughts.js.map +1 -0
  25. package/dist/compute/strategies/two-phase-orient.d.ts +72 -0
  26. package/dist/compute/strategies/two-phase-orient.d.ts.map +1 -0
  27. package/dist/compute/strategies/two-phase-orient.js +85 -0
  28. package/dist/compute/strategies/two-phase-orient.js.map +1 -0
  29. package/dist/constitution/types.d.ts +10 -10
  30. package/dist/container/protocol.d.ts +134 -0
  31. package/dist/container/protocol.d.ts.map +1 -0
  32. package/dist/container/protocol.js +157 -0
  33. package/dist/container/protocol.js.map +1 -0
  34. package/dist/container/runtime.d.ts +140 -0
  35. package/dist/container/runtime.d.ts.map +1 -0
  36. package/dist/container/runtime.js +256 -0
  37. package/dist/container/runtime.js.map +1 -0
  38. package/dist/events/catalogue.d.ts +46 -46
  39. package/dist/events/schemas/agent.completed.v1.d.ts +4 -4
  40. package/dist/events/schemas/agent.failed.v1.d.ts +2 -2
  41. package/dist/events/schemas/agent.hitl_resolved.v1.d.ts +2 -2
  42. package/dist/events/schemas/agent.started.v1.d.ts +2 -2
  43. package/dist/events/schemas/brain.skill.extracted.v1.d.ts +4 -4
  44. package/dist/events/schemas/cc.cost.anomaly_detected.v1.d.ts +2 -2
  45. package/dist/events/schemas/cc.cost.recorded.v1.d.ts +4 -4
  46. package/dist/events/schemas/citadel.sprint.analyzed.v1.d.ts +6 -6
  47. package/dist/events/schemas/citadel.sprint.closed.v1.d.ts +2 -2
  48. package/dist/events/schemas/forge.inbox.reply_classified.v1.d.ts +6 -6
  49. package/dist/events/schemas/forge.lead.qualified.v1.d.ts +2 -2
  50. package/dist/events/schemas/forge.outreach.sent.v1.d.ts +4 -4
  51. package/dist/events/schemas/incident.detected.v1.d.ts +2 -2
  52. package/dist/events/schemas/vauban.goal.checked.v1.d.ts +2 -2
  53. package/dist/events/schemas/vauban.rebalancing.checked.v1.d.ts +2 -2
  54. package/dist/events/schemas/vauban.tax.checked.v1.d.ts +2 -2
  55. package/dist/events/schemas/vauban.vault.analyzed.v1.d.ts +6 -6
  56. package/dist/identity/agent-persona.d.ts +73 -0
  57. package/dist/identity/agent-persona.d.ts.map +1 -0
  58. package/dist/identity/agent-persona.js +165 -0
  59. package/dist/identity/agent-persona.js.map +1 -0
  60. package/dist/identity/persona-prompt.d.ts +25 -0
  61. package/dist/identity/persona-prompt.d.ts.map +1 -0
  62. package/dist/identity/persona-prompt.js +71 -0
  63. package/dist/identity/persona-prompt.js.map +1 -0
  64. package/dist/identity/persona-schema.d.ts +120 -0
  65. package/dist/identity/persona-schema.d.ts.map +1 -0
  66. package/dist/identity/persona-schema.js +103 -0
  67. package/dist/identity/persona-schema.js.map +1 -0
  68. package/dist/index.d.ts +41 -3
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +31 -1
  71. package/dist/index.js.map +1 -1
  72. package/dist/loop/minimal-loop.js +293 -287
  73. package/dist/memory/episodic-rrf.d.ts +114 -0
  74. package/dist/memory/episodic-rrf.d.ts.map +1 -0
  75. package/dist/memory/episodic-rrf.js +148 -0
  76. package/dist/memory/episodic-rrf.js.map +1 -0
  77. package/dist/mesh/attenuation.d.ts +78 -0
  78. package/dist/mesh/attenuation.d.ts.map +1 -0
  79. package/dist/mesh/attenuation.js +141 -0
  80. package/dist/mesh/attenuation.js.map +1 -0
  81. package/dist/mesh/delegate.d.ts +96 -0
  82. package/dist/mesh/delegate.d.ts.map +1 -0
  83. package/dist/mesh/delegate.js +172 -0
  84. package/dist/mesh/delegate.js.map +1 -0
  85. package/dist/mesh/dispatcher.d.ts +119 -0
  86. package/dist/mesh/dispatcher.d.ts.map +1 -0
  87. package/dist/mesh/dispatcher.js +207 -0
  88. package/dist/mesh/dispatcher.js.map +1 -0
  89. package/dist/mesh/index.d.ts +12 -0
  90. package/dist/mesh/index.d.ts.map +1 -0
  91. package/dist/mesh/index.js +11 -0
  92. package/dist/mesh/index.js.map +1 -0
  93. package/dist/mesh/types.d.ts +30 -0
  94. package/dist/mesh/types.d.ts.map +1 -0
  95. package/dist/mesh/types.js +11 -0
  96. package/dist/mesh/types.js.map +1 -0
  97. package/dist/orchestration/ooda/agent.d.ts.map +1 -1
  98. package/dist/orchestration/ooda/agent.js +36 -0
  99. package/dist/orchestration/ooda/agent.js.map +1 -1
  100. package/dist/orchestration/ooda/skills.d.ts +104 -0
  101. package/dist/orchestration/ooda/skills.d.ts.map +1 -1
  102. package/dist/orchestration/ooda/skills.js +106 -0
  103. package/dist/orchestration/ooda/skills.js.map +1 -1
  104. package/dist/orchestration/ooda/types.d.ts +11 -0
  105. package/dist/orchestration/ooda/types.d.ts.map +1 -1
  106. package/dist/ports/bastion-action.contract.test.d.ts +11 -0
  107. package/dist/ports/bastion-action.contract.test.d.ts.map +1 -0
  108. package/dist/ports/bastion-action.contract.test.js +238 -0
  109. package/dist/ports/bastion-action.contract.test.js.map +1 -0
  110. package/dist/ports/bastion-action.d.ts +133 -0
  111. package/dist/ports/bastion-action.d.ts.map +1 -0
  112. package/dist/ports/bastion-action.js +73 -0
  113. package/dist/ports/bastion-action.js.map +1 -0
  114. package/dist/ports/brain.d.ts +31 -0
  115. package/dist/ports/brain.d.ts.map +1 -1
  116. package/dist/ports/brain.js +115 -1
  117. package/dist/ports/brain.js.map +1 -1
  118. package/dist/ports/citadel-action.contract.test.d.ts +11 -0
  119. package/dist/ports/citadel-action.contract.test.d.ts.map +1 -0
  120. package/dist/ports/citadel-action.contract.test.js +317 -0
  121. package/dist/ports/citadel-action.contract.test.js.map +1 -0
  122. package/dist/ports/citadel-action.d.ts +111 -0
  123. package/dist/ports/citadel-action.d.ts.map +1 -0
  124. package/dist/ports/citadel-action.js +62 -0
  125. package/dist/ports/citadel-action.js.map +1 -0
  126. package/dist/ports/compliance-contract.d.ts +123 -0
  127. package/dist/ports/compliance-contract.d.ts.map +1 -0
  128. package/dist/ports/compliance-contract.js +35 -0
  129. package/dist/ports/compliance-contract.js.map +1 -0
  130. package/dist/ports/db.d.ts +38 -0
  131. package/dist/ports/db.d.ts.map +1 -1
  132. package/dist/ports/db.js +88 -1
  133. package/dist/ports/db.js.map +1 -1
  134. package/dist/ports/delegation.contract.test.d.ts +9 -0
  135. package/dist/ports/delegation.contract.test.d.ts.map +1 -0
  136. package/dist/ports/delegation.contract.test.js +337 -0
  137. package/dist/ports/delegation.contract.test.js.map +1 -0
  138. package/dist/ports/delegation.d.ts +134 -0
  139. package/dist/ports/delegation.d.ts.map +1 -0
  140. package/dist/ports/delegation.js +105 -0
  141. package/dist/ports/delegation.js.map +1 -0
  142. package/dist/ports/event-bus.d.ts +29 -0
  143. package/dist/ports/event-bus.d.ts.map +1 -1
  144. package/dist/ports/event-bus.js +106 -1
  145. package/dist/ports/event-bus.js.map +1 -1
  146. package/dist/ports/federation.contract.test.d.ts +9 -0
  147. package/dist/ports/federation.contract.test.d.ts.map +1 -0
  148. package/dist/ports/federation.contract.test.js +279 -0
  149. package/dist/ports/federation.contract.test.js.map +1 -0
  150. package/dist/ports/federation.d.ts +140 -0
  151. package/dist/ports/federation.d.ts.map +1 -0
  152. package/dist/ports/federation.js +57 -0
  153. package/dist/ports/federation.js.map +1 -0
  154. package/dist/ports/index.d.ts +28 -2
  155. package/dist/ports/index.d.ts.map +1 -1
  156. package/dist/ports/index.js +17 -2
  157. package/dist/ports/index.js.map +1 -1
  158. package/dist/ports/llm-provider.d.ts +37 -0
  159. package/dist/ports/llm-provider.d.ts.map +1 -1
  160. package/dist/ports/llm-provider.js +99 -1
  161. package/dist/ports/llm-provider.js.map +1 -1
  162. package/dist/ports/logger.d.ts +27 -0
  163. package/dist/ports/logger.d.ts.map +1 -1
  164. package/dist/ports/logger.js +87 -0
  165. package/dist/ports/logger.js.map +1 -1
  166. package/dist/ports/manifest-registry.contract.test.d.ts +9 -0
  167. package/dist/ports/manifest-registry.contract.test.d.ts.map +1 -0
  168. package/dist/ports/manifest-registry.contract.test.js +246 -0
  169. package/dist/ports/manifest-registry.contract.test.js.map +1 -0
  170. package/dist/ports/manifest-registry.d.ts +116 -0
  171. package/dist/ports/manifest-registry.d.ts.map +1 -0
  172. package/dist/ports/manifest-registry.js +79 -0
  173. package/dist/ports/manifest-registry.js.map +1 -0
  174. package/dist/ports/observability.contract.test.d.ts +12 -0
  175. package/dist/ports/observability.contract.test.d.ts.map +1 -0
  176. package/dist/ports/observability.contract.test.js +260 -0
  177. package/dist/ports/observability.contract.test.js.map +1 -0
  178. package/dist/ports/observability.d.ts +98 -0
  179. package/dist/ports/observability.d.ts.map +1 -0
  180. package/dist/ports/observability.js +59 -0
  181. package/dist/ports/observability.js.map +1 -0
  182. package/dist/ports/outcome.d.ts +26 -0
  183. package/dist/ports/outcome.d.ts.map +1 -1
  184. package/dist/ports/outcome.js +62 -1
  185. package/dist/ports/outcome.js.map +1 -1
  186. package/dist/ports/privacy.contract.test.d.ts +12 -0
  187. package/dist/ports/privacy.contract.test.d.ts.map +1 -0
  188. package/dist/ports/privacy.contract.test.js +325 -0
  189. package/dist/ports/privacy.contract.test.js.map +1 -0
  190. package/dist/ports/privacy.d.ts +132 -0
  191. package/dist/ports/privacy.d.ts.map +1 -0
  192. package/dist/ports/privacy.js +83 -0
  193. package/dist/ports/privacy.js.map +1 -0
  194. package/dist/ports/tenant-context.contract.test.d.ts +14 -0
  195. package/dist/ports/tenant-context.contract.test.d.ts.map +1 -0
  196. package/dist/ports/tenant-context.contract.test.js +352 -0
  197. package/dist/ports/tenant-context.contract.test.js.map +1 -0
  198. package/dist/ports/tenant-context.d.ts +103 -0
  199. package/dist/ports/tenant-context.d.ts.map +1 -0
  200. package/dist/ports/tenant-context.js +48 -0
  201. package/dist/ports/tenant-context.js.map +1 -0
  202. package/dist/ports/vauban-finance-action.contract.test.d.ts +11 -0
  203. package/dist/ports/vauban-finance-action.contract.test.d.ts.map +1 -0
  204. package/dist/ports/vauban-finance-action.contract.test.js +260 -0
  205. package/dist/ports/vauban-finance-action.contract.test.js.map +1 -0
  206. package/dist/ports/vauban-finance-action.d.ts +106 -0
  207. package/dist/ports/vauban-finance-action.d.ts.map +1 -0
  208. package/dist/ports/vauban-finance-action.js +60 -0
  209. package/dist/ports/vauban-finance-action.js.map +1 -0
  210. package/dist/ports/workflow-runtime.d.ts +204 -0
  211. package/dist/ports/workflow-runtime.d.ts.map +1 -0
  212. package/dist/ports/workflow-runtime.js +72 -0
  213. package/dist/ports/workflow-runtime.js.map +1 -0
  214. package/dist/proof/cert-verify.d.ts +80 -0
  215. package/dist/proof/cert-verify.d.ts.map +1 -0
  216. package/dist/proof/cert-verify.js +178 -0
  217. package/dist/proof/cert-verify.js.map +1 -0
  218. package/dist/replay/replay.d.ts.map +1 -1
  219. package/dist/replay/replay.js +5 -1
  220. package/dist/replay/replay.js.map +1 -1
  221. package/dist/retry/index.d.ts +129 -0
  222. package/dist/retry/index.d.ts.map +1 -0
  223. package/dist/retry/index.js +156 -0
  224. package/dist/retry/index.js.map +1 -0
  225. package/dist/retry/presets.d.ts +39 -0
  226. package/dist/retry/presets.d.ts.map +1 -0
  227. package/dist/retry/presets.js +69 -0
  228. package/dist/retry/presets.js.map +1 -0
  229. package/dist/skill-loop/ab-runner.d.ts +67 -0
  230. package/dist/skill-loop/ab-runner.d.ts.map +1 -0
  231. package/dist/skill-loop/ab-runner.js +160 -0
  232. package/dist/skill-loop/ab-runner.js.map +1 -0
  233. package/dist/skill-loop/adoption.d.ts +67 -0
  234. package/dist/skill-loop/adoption.d.ts.map +1 -0
  235. package/dist/skill-loop/adoption.js +126 -0
  236. package/dist/skill-loop/adoption.js.map +1 -0
  237. package/dist/skill-loop/candidate.d.ts +45 -0
  238. package/dist/skill-loop/candidate.d.ts.map +1 -0
  239. package/dist/skill-loop/candidate.js +43 -0
  240. package/dist/skill-loop/candidate.js.map +1 -0
  241. package/dist/skill-loop/evaluator.d.ts +42 -0
  242. package/dist/skill-loop/evaluator.d.ts.map +1 -0
  243. package/dist/skill-loop/evaluator.js +184 -0
  244. package/dist/skill-loop/evaluator.js.map +1 -0
  245. package/dist/skill-loop/index.d.ts +27 -0
  246. package/dist/skill-loop/index.d.ts.map +1 -0
  247. package/dist/skill-loop/index.js +27 -0
  248. package/dist/skill-loop/index.js.map +1 -0
  249. package/dist/skill-loop/reflexion-replay.d.ts +87 -0
  250. package/dist/skill-loop/reflexion-replay.d.ts.map +1 -0
  251. package/dist/skill-loop/reflexion-replay.js +110 -0
  252. package/dist/skill-loop/reflexion-replay.js.map +1 -0
  253. package/dist/skill-loop/sign-off.d.ts +88 -0
  254. package/dist/skill-loop/sign-off.d.ts.map +1 -0
  255. package/dist/skill-loop/sign-off.js +146 -0
  256. package/dist/skill-loop/sign-off.js.map +1 -0
  257. package/dist/skill-loop/value-metric.d.ts +55 -0
  258. package/dist/skill-loop/value-metric.d.ts.map +1 -0
  259. package/dist/skill-loop/value-metric.js +69 -0
  260. package/dist/skill-loop/value-metric.js.map +1 -0
  261. package/dist/skill-loop/versioning.d.ts +36 -0
  262. package/dist/skill-loop/versioning.d.ts.map +1 -0
  263. package/dist/skill-loop/versioning.js +47 -0
  264. package/dist/skill-loop/versioning.js.map +1 -0
  265. package/dist/skill-manifest/anchor.d.ts +91 -0
  266. package/dist/skill-manifest/anchor.d.ts.map +1 -0
  267. package/dist/skill-manifest/anchor.js +331 -0
  268. package/dist/skill-manifest/anchor.js.map +1 -0
  269. package/dist/skill-manifest/builder.d.ts +47 -0
  270. package/dist/skill-manifest/builder.d.ts.map +1 -0
  271. package/dist/skill-manifest/builder.js +93 -0
  272. package/dist/skill-manifest/builder.js.map +1 -0
  273. package/dist/skill-manifest/index.d.ts +13 -0
  274. package/dist/skill-manifest/index.d.ts.map +1 -0
  275. package/dist/skill-manifest/index.js +9 -0
  276. package/dist/skill-manifest/index.js.map +1 -0
  277. package/dist/skill-manifest/types.d.ts +67 -0
  278. package/dist/skill-manifest/types.d.ts.map +1 -0
  279. package/dist/skill-manifest/types.js +16 -0
  280. package/dist/skill-manifest/types.js.map +1 -0
  281. package/dist/skill-manifest/verifier.d.ts +42 -0
  282. package/dist/skill-manifest/verifier.d.ts.map +1 -0
  283. package/dist/skill-manifest/verifier.js +136 -0
  284. package/dist/skill-manifest/verifier.js.map +1 -0
  285. package/dist/skills/_secrets.d.ts +16 -0
  286. package/dist/skills/_secrets.d.ts.map +1 -0
  287. package/dist/skills/_secrets.js +20 -0
  288. package/dist/skills/_secrets.js.map +1 -0
  289. package/dist/skills/alpaca-quote.d.ts +2 -2
  290. package/dist/skills/alpaca-quote.d.ts.map +1 -1
  291. package/dist/skills/alpaca-quote.js +51 -20
  292. package/dist/skills/alpaca-quote.js.map +1 -1
  293. package/dist/skills/brain-query.d.ts +4 -4
  294. package/dist/skills/brain-store.d.ts +6 -6
  295. package/dist/skills/errors.d.ts +15 -0
  296. package/dist/skills/errors.d.ts.map +1 -1
  297. package/dist/skills/errors.js +21 -0
  298. package/dist/skills/errors.js.map +1 -1
  299. package/dist/skills/hitl-request.d.ts +2 -2
  300. package/dist/skills/index.d.ts +3 -1
  301. package/dist/skills/index.d.ts.map +1 -1
  302. package/dist/skills/index.js +4 -1
  303. package/dist/skills/index.js.map +1 -1
  304. package/dist/skills/markdown/loader.d.ts +52 -0
  305. package/dist/skills/markdown/loader.d.ts.map +1 -0
  306. package/dist/skills/markdown/loader.js +93 -0
  307. package/dist/skills/markdown/loader.js.map +1 -0
  308. package/dist/skills/markdown/schema.d.ts +432 -0
  309. package/dist/skills/markdown/schema.d.ts.map +1 -0
  310. package/dist/skills/markdown/schema.js +121 -0
  311. package/dist/skills/markdown/schema.js.map +1 -0
  312. package/dist/skills/poc-md-loader/markdown-loader.d.ts +77 -0
  313. package/dist/skills/poc-md-loader/markdown-loader.d.ts.map +1 -0
  314. package/dist/skills/poc-md-loader/markdown-loader.js +125 -0
  315. package/dist/skills/poc-md-loader/markdown-loader.js.map +1 -0
  316. package/dist/skills/poc-md-loader/runner.d.ts +24 -0
  317. package/dist/skills/poc-md-loader/runner.d.ts.map +1 -0
  318. package/dist/skills/poc-md-loader/runner.js +57 -0
  319. package/dist/skills/poc-md-loader/runner.js.map +1 -0
  320. package/dist/skills/poc-md-loader/vitest.poc.config.d.ts +3 -0
  321. package/dist/skills/poc-md-loader/vitest.poc.config.d.ts.map +1 -0
  322. package/dist/skills/poc-md-loader/vitest.poc.config.js +13 -0
  323. package/dist/skills/poc-md-loader/vitest.poc.config.js.map +1 -0
  324. package/dist/skills/poc-md-loader/web-search/script.d.ts +33 -0
  325. package/dist/skills/poc-md-loader/web-search/script.d.ts.map +1 -0
  326. package/dist/skills/poc-md-loader/web-search/script.js +75 -0
  327. package/dist/skills/poc-md-loader/web-search/script.js.map +1 -0
  328. package/dist/skills/record-outcome.d.ts +4 -4
  329. package/dist/skills/send-email.d.ts +2 -2
  330. package/dist/skills/send-email.d.ts.map +1 -1
  331. package/dist/skills/send-email.js +4 -3
  332. package/dist/skills/send-email.js.map +1 -1
  333. package/dist/skills/slack-notify.d.ts +4 -4
  334. package/dist/skills/slack-notify.d.ts.map +1 -1
  335. package/dist/skills/slack-notify.js +52 -21
  336. package/dist/skills/slack-notify.js.map +1 -1
  337. package/dist/skills/starknet-balance.d.ts +1 -1
  338. package/dist/skills/telegram-notify.d.ts +4 -4
  339. package/dist/skills/telegram-notify.d.ts.map +1 -1
  340. package/dist/skills/telegram-notify.js +48 -19
  341. package/dist/skills/telegram-notify.js.map +1 -1
  342. package/dist/skills/web-search.d.ts +1 -1
  343. package/dist/skills/web-search.d.ts.map +1 -1
  344. package/dist/skills/web-search.js +85 -40
  345. package/dist/skills/web-search.js.map +1 -1
  346. package/dist/telemetry/bus.d.ts +54 -0
  347. package/dist/telemetry/bus.d.ts.map +1 -0
  348. package/dist/telemetry/bus.js +159 -0
  349. package/dist/telemetry/bus.js.map +1 -0
  350. package/dist/telemetry/index.d.ts +35 -0
  351. package/dist/telemetry/index.d.ts.map +1 -0
  352. package/dist/telemetry/index.js +30 -0
  353. package/dist/telemetry/index.js.map +1 -0
  354. package/dist/telemetry/port.d.ts +121 -0
  355. package/dist/telemetry/port.d.ts.map +1 -0
  356. package/dist/telemetry/port.js +48 -0
  357. package/dist/telemetry/port.js.map +1 -0
  358. package/dist/telemetry/sinks/otlp.d.ts +45 -0
  359. package/dist/telemetry/sinks/otlp.d.ts.map +1 -0
  360. package/dist/telemetry/sinks/otlp.js +195 -0
  361. package/dist/telemetry/sinks/otlp.js.map +1 -0
  362. package/dist/telemetry/sinks/sqlite.d.ts +32 -0
  363. package/dist/telemetry/sinks/sqlite.d.ts.map +1 -0
  364. package/dist/telemetry/sinks/sqlite.js +170 -0
  365. package/dist/telemetry/sinks/sqlite.js.map +1 -0
  366. package/dist/telemetry/sinks/stdout.d.ts +22 -0
  367. package/dist/telemetry/sinks/stdout.d.ts.map +1 -0
  368. package/dist/telemetry/sinks/stdout.js +38 -0
  369. package/dist/telemetry/sinks/stdout.js.map +1 -0
  370. package/dist/testing/index.d.ts +3 -0
  371. package/dist/testing/test-brain-port.d.ts +4 -0
  372. package/dist/testing/test-brain-port.d.ts.map +1 -1
  373. package/dist/testing/test-brain-port.js +75 -20
  374. package/dist/testing/test-brain-port.js.map +1 -1
  375. package/dist/testing/test-event-bus.d.ts.map +1 -1
  376. package/dist/testing/test-event-bus.js +89 -36
  377. package/dist/testing/test-event-bus.js.map +1 -1
  378. package/dist/trace/schema.d.ts +1 -1
  379. package/dist/trace/schema.d.ts.map +1 -1
  380. package/dist/trace/schema.js +1 -1
  381. package/dist/trace/schema.js.map +1 -1
  382. package/dist/verify/formal/index.d.ts +44 -0
  383. package/dist/verify/formal/index.d.ts.map +1 -0
  384. package/dist/verify/formal/index.js +98 -0
  385. package/dist/verify/formal/index.js.map +1 -0
  386. package/dist/verify/formal/policy.d.ts +105 -0
  387. package/dist/verify/formal/policy.d.ts.map +1 -0
  388. package/dist/verify/formal/policy.js +159 -0
  389. package/dist/verify/formal/policy.js.map +1 -0
  390. package/dist/verify/formal/result.d.ts +50 -0
  391. package/dist/verify/formal/result.d.ts.map +1 -0
  392. package/dist/verify/formal/result.js +21 -0
  393. package/dist/verify/formal/result.js.map +1 -0
  394. package/dist/verify/formal/solver.d.ts +67 -0
  395. package/dist/verify/formal/solver.d.ts.map +1 -0
  396. package/dist/verify/formal/solver.js +184 -0
  397. package/dist/verify/formal/solver.js.map +1 -0
  398. package/dist/verify/formal/spec-language.d.ts +80 -0
  399. package/dist/verify/formal/spec-language.d.ts.map +1 -0
  400. package/dist/verify/formal/spec-language.js +219 -0
  401. package/dist/verify/formal/spec-language.js.map +1 -0
  402. package/docs/attestation.md +199 -0
  403. package/docs/identity.md +193 -0
  404. package/docs/telemetry/migration.md +155 -0
  405. package/docs/telemetry/overview.md +154 -0
  406. package/docs/telemetry/privacy.md +127 -0
  407. package/docs/telemetry/sinks/cc.md +155 -0
  408. package/docs/telemetry/sinks/otlp.md +146 -0
  409. package/docs/telemetry/sinks/sqlite.md +126 -0
  410. package/docs/telemetry/sinks/stdout.md +82 -0
  411. package/package.json +18 -2
  412. package/src/adapters/llm/anthropic-direct.ts +51 -0
  413. package/src/adapters/llm/cascade.ts +64 -19
  414. package/src/adapters/llm/litellm.ts +49 -0
  415. package/src/compute/difficulty-estimator.ts +111 -0
  416. package/src/compute/strategies/mixture-of-agents.ts +150 -0
  417. package/src/compute/strategies/tree-of-thoughts.ts +293 -0
  418. package/src/compute/strategies/two-phase-orient.ts +147 -0
  419. package/src/container/protocol.ts +243 -0
  420. package/src/container/runtime.ts +424 -0
  421. package/src/db/migrations/026_formal_verify_results.sql +30 -0
  422. package/src/identity/agent-persona.ts +203 -0
  423. package/src/identity/persona-prompt.ts +84 -0
  424. package/src/identity/persona-schema.ts +127 -0
  425. package/src/index.ts +368 -2
  426. package/src/memory/episodic-rrf.ts +224 -0
  427. package/src/mesh/attenuation.ts +190 -0
  428. package/src/mesh/delegate.ts +254 -0
  429. package/src/mesh/dispatcher.ts +301 -0
  430. package/src/mesh/index.ts +39 -0
  431. package/src/mesh/types.ts +31 -0
  432. package/src/orchestration/ooda/agent.ts +50 -0
  433. package/src/orchestration/ooda/skills.ts +177 -0
  434. package/src/orchestration/ooda/types.ts +12 -0
  435. package/src/ports/bastion-action.contract.test.ts +355 -0
  436. package/src/ports/bastion-action.ts +198 -0
  437. package/src/ports/brain.ts +177 -15
  438. package/src/ports/citadel-action.contract.test.ts +430 -0
  439. package/src/ports/citadel-action.ts +174 -0
  440. package/src/ports/compliance-contract.ts +191 -0
  441. package/src/ports/db.ts +98 -0
  442. package/src/ports/delegation.contract.test.ts +428 -0
  443. package/src/ports/delegation.ts +211 -0
  444. package/src/ports/event-bus.ts +133 -0
  445. package/src/ports/federation.contract.test.ts +355 -0
  446. package/src/ports/federation.ts +190 -0
  447. package/src/ports/index.ts +186 -1
  448. package/src/ports/llm-provider.ts +123 -0
  449. package/src/ports/logger.ts +104 -0
  450. package/src/ports/manifest-registry.contract.test.ts +324 -0
  451. package/src/ports/manifest-registry.ts +188 -0
  452. package/src/ports/observability.contract.test.ts +315 -0
  453. package/src/ports/observability.ts +150 -0
  454. package/src/ports/outcome.ts +69 -0
  455. package/src/ports/privacy.contract.test.ts +413 -0
  456. package/src/ports/privacy.ts +207 -0
  457. package/src/ports/tenant-context.contract.test.ts +454 -0
  458. package/src/ports/tenant-context.ts +150 -0
  459. package/src/ports/vauban-finance-action.contract.test.ts +335 -0
  460. package/src/ports/vauban-finance-action.ts +166 -0
  461. package/src/ports/workflow-runtime.ts +327 -0
  462. package/src/proof/cert-verify.ts +249 -0
  463. package/src/replay/replay.ts +11 -8
  464. package/src/retry/index.ts +227 -0
  465. package/src/retry/presets.ts +75 -0
  466. package/src/skill-loop/ab-runner.ts +196 -0
  467. package/src/skill-loop/adoption.ts +188 -0
  468. package/src/skill-loop/candidate.ts +75 -0
  469. package/src/skill-loop/evaluator.ts +238 -0
  470. package/src/skill-loop/index.ts +51 -0
  471. package/src/skill-loop/reflexion-replay.ts +173 -0
  472. package/src/skill-loop/sign-off.ts +247 -0
  473. package/src/skill-loop/value-metric.ts +120 -0
  474. package/src/skill-loop/versioning.ts +75 -0
  475. package/src/skill-manifest/anchor.ts +401 -0
  476. package/src/skill-manifest/builder.ts +129 -0
  477. package/src/skill-manifest/index.ts +18 -0
  478. package/src/skill-manifest/types.ts +72 -0
  479. package/src/skill-manifest/verifier.ts +198 -0
  480. package/src/skills/_secrets.ts +25 -0
  481. package/src/skills/alpaca-quote.ts +68 -23
  482. package/src/skills/errors.ts +30 -2
  483. package/src/skills/index.ts +19 -0
  484. package/src/skills/markdown/loader.ts +129 -0
  485. package/src/skills/markdown/schema.ts +144 -0
  486. package/src/skills/poc-md-loader/e2e-parity.test.ts +237 -0
  487. package/src/skills/poc-md-loader/markdown-loader.ts +161 -0
  488. package/src/skills/poc-md-loader/runner.ts +82 -0
  489. package/src/skills/poc-md-loader/vitest.poc.config.ts +13 -0
  490. package/src/skills/poc-md-loader/web-search/SKILL.md +42 -0
  491. package/src/skills/poc-md-loader/web-search/script.ts +109 -0
  492. package/src/skills/send-email.ts +4 -3
  493. package/src/skills/slack-notify.ts +73 -30
  494. package/src/skills/telegram-notify.ts +70 -24
  495. package/src/skills/web-search.ts +132 -50
  496. package/src/telemetry/bus.test.ts +231 -0
  497. package/src/telemetry/bus.ts +241 -0
  498. package/src/telemetry/index.ts +49 -0
  499. package/src/telemetry/port.ts +160 -0
  500. package/src/telemetry/sinks/otlp.test.ts +146 -0
  501. package/src/telemetry/sinks/otlp.ts +250 -0
  502. package/src/telemetry/sinks/sqlite.test.ts +121 -0
  503. package/src/telemetry/sinks/sqlite.ts +260 -0
  504. package/src/telemetry/sinks/stdout.test.ts +109 -0
  505. package/src/telemetry/sinks/stdout.ts +59 -0
  506. package/src/testing/test-brain-port.ts +98 -24
  507. package/src/testing/test-event-bus.ts +104 -43
  508. package/src/trace/schema.ts +1 -1
  509. package/src/verify/formal/index.ts +154 -0
  510. package/src/verify/formal/policy.ts +253 -0
  511. package/src/verify/formal/result.ts +52 -0
  512. package/src/verify/formal/solver.ts +235 -0
  513. package/src/verify/formal/spec-language.ts +274 -0
@@ -0,0 +1,246 @@
1
+ /**
2
+ * ManifestRegistryPort contract tests (T-S1-1..T-S1-12).
3
+ *
4
+ * Applied to in-memory reference impl. Any ManifestRegistryPort adapter must satisfy all tests.
5
+ * Tests cover: registration, lookup, versioning, signature validation, revocation, compliance gating.
6
+ */
7
+ import { describe, expect, test } from "vitest";
8
+ import { ManifestNotFoundError, ManifestSignatureInvalidError, } from "./manifest-registry.js";
9
+ /**
10
+ * In-memory reference implementation for contract testing.
11
+ */
12
+ class InMemoryManifestRegistry {
13
+ manifests = new Map();
14
+ claimIds = new Map(); // claim_id → manifest key
15
+ async register(manifest, _options) {
16
+ // I-S1-2: tier=production + mode=audit_only → reject
17
+ if (manifest.tier === "production" &&
18
+ manifest.compliance_mode === "audit_only") {
19
+ return {
20
+ claim_id: "",
21
+ status: "failed",
22
+ errors: [
23
+ {
24
+ code: "I-S1-2",
25
+ description: "Production tier requires strict compliance mode",
26
+ },
27
+ ],
28
+ };
29
+ }
30
+ // Verify signature
31
+ try {
32
+ await this.verifySignature(manifest);
33
+ }
34
+ catch (e) {
35
+ return {
36
+ claim_id: "",
37
+ status: "failed",
38
+ errors: [
39
+ {
40
+ code: "SIGNATURE_INVALID",
41
+ description: `Signature verification failed: ${String(e)}`,
42
+ },
43
+ ],
44
+ };
45
+ }
46
+ const key = `${manifest.name}@${manifest.version}`;
47
+ const existing = this.manifests.get(key);
48
+ // No duplicate versions allowed
49
+ if (existing) {
50
+ return {
51
+ claim_id: "",
52
+ status: "failed",
53
+ errors: [
54
+ {
55
+ code: "VERSION_CONFLICT",
56
+ description: `Version already registered: ${key}`,
57
+ },
58
+ ],
59
+ };
60
+ }
61
+ // Register success
62
+ const claimId = crypto.randomUUID();
63
+ this.manifests.set(key, {
64
+ ...manifest,
65
+ status: "active",
66
+ });
67
+ this.claimIds.set(claimId, key);
68
+ return {
69
+ claim_id: claimId,
70
+ status: "registered",
71
+ manifest_id: claimId,
72
+ };
73
+ }
74
+ async lookup(name, version) {
75
+ const key = `${name}@${version}`;
76
+ const m = this.manifests.get(key);
77
+ if (!m)
78
+ return null;
79
+ if (m.status === "revoked")
80
+ return null;
81
+ return m;
82
+ }
83
+ async revoke(claim_id, reason) {
84
+ const key = this.claimIds.get(claim_id);
85
+ if (!key) {
86
+ throw new ManifestNotFoundError("unknown", "unknown");
87
+ }
88
+ const m = this.manifests.get(key);
89
+ if (m) {
90
+ m.status = "revoked";
91
+ m.revokedAt = new Date();
92
+ m.revokedReason = reason;
93
+ }
94
+ }
95
+ async listVersions(name) {
96
+ const versions = Array.from(this.manifests.keys())
97
+ .filter((key) => key.startsWith(`${name}@`))
98
+ .map((key) => key.split("@")[1]);
99
+ // Sort by semver
100
+ return versions.sort((a, b) => {
101
+ const aParts = a.split(".").map(Number);
102
+ const bParts = b.split(".").map(Number);
103
+ for (let i = 0; i < 3; i++) {
104
+ const cmp = (aParts[i] ?? 0) - (bParts[i] ?? 0);
105
+ if (cmp !== 0)
106
+ return cmp;
107
+ }
108
+ return 0;
109
+ });
110
+ }
111
+ async verifySignature(manifest) {
112
+ // Simple stub: just check that signature and pubkey are non-empty hex
113
+ const sigHex = /^[0-9a-f]{128}$/i;
114
+ const pubkeyHex = /^[0-9a-f]{64}$/i;
115
+ if (!sigHex.test(manifest.signature)) {
116
+ throw new ManifestSignatureInvalidError(manifest.name, manifest.version, "signature not 64-byte hex");
117
+ }
118
+ if (!pubkeyHex.test(manifest.ed25519_pubkey)) {
119
+ throw new ManifestSignatureInvalidError(manifest.name, manifest.version, "pubkey not 32-byte hex");
120
+ }
121
+ return true;
122
+ }
123
+ }
124
+ function makeManifest(overrides = {}) {
125
+ return {
126
+ name: "vauban.bastion.test-agent",
127
+ version: "1.0.0",
128
+ tier: "test",
129
+ compliance_mode: "strict",
130
+ capabilities: ["bastion.swap"],
131
+ compliance: {
132
+ jurisdictions: ["FR.v1"],
133
+ legal_bases: ["gdpr.art6_1_b"],
134
+ data_classification: "internal",
135
+ },
136
+ runtime: {
137
+ max_compute_seconds: 30,
138
+ max_llm_tokens: 10000,
139
+ },
140
+ ed25519_pubkey: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
141
+ signature: "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
142
+ manifestHash: "abc123def456",
143
+ ...overrides,
144
+ };
145
+ }
146
+ export const manifestRegistryPortContract = (factory) => {
147
+ describe("ManifestRegistryPort contract", () => {
148
+ test("T-S1-1: registers + retrieves manifest", async () => {
149
+ const registry = factory();
150
+ const manifest = makeManifest();
151
+ const result = await registry.register(manifest);
152
+ expect(result.status).toBe("registered");
153
+ expect(result.claim_id).toBeTruthy();
154
+ const retrieved = await registry.lookup(manifest.name, manifest.version);
155
+ expect(retrieved).not.toBeNull();
156
+ expect(retrieved?.name).toBe(manifest.name);
157
+ expect(retrieved?.version).toBe(manifest.version);
158
+ expect(retrieved?.tier).toBe(manifest.tier);
159
+ });
160
+ test("T-S1-3: rejects production tier with audit_only mode (I-S1-2)", async () => {
161
+ const registry = factory();
162
+ const manifest = makeManifest({
163
+ tier: "production",
164
+ compliance_mode: "audit_only",
165
+ });
166
+ const result = await registry.register(manifest);
167
+ expect(result.status).toBe("failed");
168
+ expect(result.errors).toBeDefined();
169
+ expect(result.errors.length).toBeGreaterThan(0);
170
+ expect(result.errors[0].code).toBe("I-S1-2");
171
+ });
172
+ test("T-S1-5: rejects duplicate version (I-S1-1 monotone)", async () => {
173
+ const registry = factory();
174
+ const manifest = makeManifest({ version: "1.0.0" });
175
+ // First registration succeeds
176
+ const result1 = await registry.register(manifest);
177
+ expect(result1.status).toBe("registered");
178
+ // Second with same version fails
179
+ const result2 = await registry.register(manifest);
180
+ expect(result2.status).toBe("failed");
181
+ expect(result2.errors).toBeDefined();
182
+ expect(result2.errors[0].code).toBe("VERSION_CONFLICT");
183
+ });
184
+ test("T-S1-6: revoke makes lookup return null + emits revocation", async () => {
185
+ const registry = factory();
186
+ const manifest = makeManifest();
187
+ const result = await registry.register(manifest);
188
+ expect(result.status).toBe("registered");
189
+ const claimId = result.claim_id;
190
+ // Before revoke: lookup succeeds
191
+ let retrieved = await registry.lookup(manifest.name, manifest.version);
192
+ expect(retrieved).not.toBeNull();
193
+ // Revoke
194
+ await registry.revoke(claimId, "deprecated");
195
+ // After revoke: lookup returns null
196
+ retrieved = await registry.lookup(manifest.name, manifest.version);
197
+ expect(retrieved).toBeNull();
198
+ });
199
+ test("T-S1-7: listVersions returns sorted semver", async () => {
200
+ const registry = factory();
201
+ // Register multiple versions
202
+ const versions = ["1.0.0", "1.1.0", "1.0.1", "2.0.0"];
203
+ for (const v of versions) {
204
+ const manifest = makeManifest({ version: v });
205
+ await registry.register(manifest);
206
+ }
207
+ // List should be sorted
208
+ const listed = await registry.listVersions("vauban.bastion.test-agent");
209
+ expect(listed).toEqual(["1.0.0", "1.0.1", "1.1.0", "2.0.0"]);
210
+ });
211
+ test("T-S1-2: concurrent registration of v1 and v2 succeeds", async () => {
212
+ const registry = factory();
213
+ const v1 = makeManifest({ version: "1.0.0" });
214
+ const v2 = makeManifest({ version: "2.0.0" });
215
+ const [result1, result2] = await Promise.all([
216
+ registry.register(v1),
217
+ registry.register(v2),
218
+ ]);
219
+ expect(result1.status).toBe("registered");
220
+ expect(result2.status).toBe("registered");
221
+ const retrieved1 = await registry.lookup("vauban.bastion.test-agent", "1.0.0");
222
+ const retrieved2 = await registry.lookup("vauban.bastion.test-agent", "2.0.0");
223
+ expect(retrieved1).toBeTruthy();
224
+ expect(retrieved2).toBeTruthy();
225
+ });
226
+ test("verifySignature validates Ed25519 signature format", async () => {
227
+ const registry = factory();
228
+ const manifest = makeManifest({
229
+ signature: "invalid", // Not 64-byte hex
230
+ });
231
+ await expect(registry.verifySignature(manifest)).rejects.toThrow(ManifestSignatureInvalidError);
232
+ });
233
+ test("revoke on unknown claim_id throws ManifestNotFoundError", async () => {
234
+ const registry = factory();
235
+ await expect(registry.revoke("unknown-claim-id", "test")).rejects.toThrow(ManifestNotFoundError);
236
+ });
237
+ test("lookup on unknown name returns empty array from listVersions", async () => {
238
+ const registry = factory();
239
+ const versions = await registry.listVersions("unknown.agent.name");
240
+ expect(versions).toEqual([]);
241
+ });
242
+ });
243
+ };
244
+ // ─── Apply contract to InMemoryManifestRegistry ────────────────────────────
245
+ manifestRegistryPortContract(() => new InMemoryManifestRegistry());
246
+ //# sourceMappingURL=manifest-registry.contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-registry.contract.test.js","sourceRoot":"","sources":["../../src/ports/manifest-registry.contract.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAIL,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,wBAAwB;IACpB,SAAS,GAAG,IAAI,GAAG,EAGxB,CAAC;IACI,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,0BAA0B;IAExE,KAAK,CAAC,QAAQ,CACZ,QAAkB,EAClB,QAAoD;QAEpD,qDAAqD;QACrD,IACE,QAAQ,CAAC,IAAI,KAAK,YAAY;YAC9B,QAAQ,CAAC,eAAe,KAAK,YAAY,EACzC,CAAC;YACD,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,iDAAiD;qBAC/D;iBACF;aACF,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,mBAAmB;wBACzB,WAAW,EAAE,kCAAkC,MAAM,CAAC,CAAC,CAAC,EAAE;qBAC3D;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEzC,gCAAgC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,kBAAkB;wBACxB,WAAW,EAAE,+BAA+B,GAAG,EAAE;qBAClD;iBACF;aACF,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,GAAG,QAAQ;YACX,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAEhC,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,OAAO;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAAe;QACxC,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,IAAI,CAAC,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAExC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgB,EAAE,MAAc;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,qBAAqB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC;YACN,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;YACrB,CAAC,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,CAAC,CAAC,aAAa,GAAG,MAAM,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY;QAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aAC/C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;aAC3C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,iBAAiB;QACjB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAChD,IAAI,GAAG,KAAK,CAAC;oBAAE,OAAO,GAAG,CAAC;YAC5B,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAkB;QACtC,sEAAsE;QACtE,MAAM,MAAM,GAAG,kBAAkB,CAAC;QAClC,MAAM,SAAS,GAAG,iBAAiB,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,OAAO,EAChB,2BAA2B,CAC5B,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,6BAA6B,CACrC,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,OAAO,EAChB,wBAAwB,CACzB,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,SAAS,YAAY,CAAC,YAA+B,EAAE;IACrD,OAAO;QACL,IAAI,EAAE,2BAA2B;QACjC,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE,MAAM;QACZ,eAAe,EAAE,QAAQ;QACzB,YAAY,EAAE,CAAC,cAAc,CAAC;QAC9B,UAAU,EAAE;YACV,aAAa,EAAE,CAAC,OAAO,CAAC;YACxB,WAAW,EAAE,CAAC,eAAe,CAAC;YAC9B,mBAAmB,EAAE,UAAU;SAChC;QACD,OAAO,EAAE;YACP,mBAAmB,EAAE,EAAE;YACvB,cAAc,EAAE,KAAK;SACtB;QACD,cAAc,EACZ,kEAAkE;QACpE,SAAS,EACP,kIAAkI;QACpI,YAAY,EAAE,cAAc;QAC5B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAC1C,OAAmC,EACnC,EAAE;IACF,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAEhC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;YAErC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACzE,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC5B,IAAI,EAAE,YAAY;gBAClB,eAAe,EAAE,YAAY;aAC9B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAEpD,8BAA8B;YAC9B,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1C,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAEhC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;YAEhC,iCAAiC;YACjC,IAAI,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvE,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAEjC,SAAS;YACT,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAE7C,oCAAoC;YACpC,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;YACnE,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAE3B,6BAA6B;YAC7B,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC9C,MAAM,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;YAED,wBAAwB;YACxB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,2BAA2B,CAAC,CAAC;YACxE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACvE,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAE3B,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YAE9C,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE1C,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CACtC,2BAA2B,EAC3B,OAAO,CACR,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CACtC,2BAA2B,EAC3B,OAAO,CACR,CAAC;YAEF,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YACpE,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,YAAY,CAAC;gBAC5B,SAAS,EAAE,SAAS,EAAE,kBAAkB;aACzC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9D,6BAA6B,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YACzE,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACvE,qBAAqB,CACtB,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC9E,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,8EAA8E;AAE9E,4BAA4B,CAAC,GAAG,EAAE,CAAC,IAAI,wBAAwB,EAAE,CAAC,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * ManifestRegistryPort — agent manifest registration and lifecycle management (S1 spec).
3
+ *
4
+ * Implements: manifest registration with Ed25519 signatures, lifecycle states
5
+ * (active/deprecated/revoked), version monotonicity, and tier-based compliance gating.
6
+ *
7
+ * Invariants enforced: I-S1-1..12 (capabilities, tier constraints, versioning).
8
+ * Errors: ManifestNotFoundError, ManifestSignatureInvalidError, ManifestVersionConflictError,
9
+ * ManifestComplianceConflictError (from S5 Cedar G-3).
10
+ */
11
+ export type Tier = "dev" | "test" | "pilot" | "production" | "internal" | "legacy";
12
+ export declare const SUPPORTED_TIERS: Tier[];
13
+ export type ComplianceMode = "strict" | "audit_only";
14
+ export interface Manifest {
15
+ readonly name: string;
16
+ readonly version: string;
17
+ readonly tier: Tier;
18
+ readonly compliance_mode: ComplianceMode;
19
+ readonly capabilities: readonly string[];
20
+ readonly compliance: {
21
+ readonly jurisdictions: readonly string[];
22
+ readonly legal_bases: readonly string[];
23
+ readonly data_classification: string;
24
+ };
25
+ readonly runtime: {
26
+ readonly max_compute_seconds: number;
27
+ readonly max_llm_tokens: number;
28
+ };
29
+ readonly ed25519_pubkey: string;
30
+ readonly signature: string;
31
+ readonly manifestHash: string;
32
+ }
33
+ export type RegistrationStatus = "registered" | "partial" | "failed";
34
+ export interface ComplianceError {
35
+ readonly code: string;
36
+ readonly description: string;
37
+ }
38
+ export interface RegistrationResult {
39
+ readonly claim_id: string;
40
+ readonly status: RegistrationStatus;
41
+ readonly manifest_id?: string;
42
+ readonly errors?: readonly ComplianceError[];
43
+ }
44
+ export interface RegisterOptions {
45
+ readonly operatorId?: string;
46
+ readonly timestamp?: Date;
47
+ }
48
+ export interface LookupResult {
49
+ readonly manifest: Manifest | null;
50
+ readonly status?: "active" | "deprecated" | "revoked";
51
+ readonly deprecated_at?: Date;
52
+ readonly revoked_at?: Date;
53
+ readonly revocation_reason?: string;
54
+ }
55
+ export interface ManifestRegistryPort {
56
+ /**
57
+ * Register a manifest with Ed25519 signature validation.
58
+ * Validates I-S1-1..12 invariants before persisting.
59
+ * Rejects I-S1-2 violation: tier='production' + mode='audit_only'.
60
+ * Returns claim_id (signed Claim artifact) or ComplianceErrors.
61
+ */
62
+ register(manifest: Manifest, options?: RegisterOptions): Promise<RegistrationResult>;
63
+ /**
64
+ * Look up a manifest by name + version.
65
+ * Returns null if not found or revoked.
66
+ * Does not include errors list (use getValidationErrors for detailed checks).
67
+ */
68
+ lookup(name: string, version: string): Promise<Manifest | null>;
69
+ /**
70
+ * Revoke a manifest by claim_id.
71
+ * After revocation, lookup() returns null.
72
+ * Emits revocation event (audit trail).
73
+ * Returns void on success; throws ManifestNotFoundError if claim_id invalid.
74
+ */
75
+ revoke(claim_id: string, reason: string): Promise<void>;
76
+ /**
77
+ * List all versions of a manifest by name, sorted by semver.
78
+ * Returns versions in ascending order (0.1.0 < 1.0.0).
79
+ * Returns empty array if name not found.
80
+ */
81
+ listVersions(name: string): Promise<readonly string[]>;
82
+ /**
83
+ * Validate a manifest signature against its ed25519_pubkey.
84
+ * Recomputes manifestHash and checks signature.
85
+ * Returns true if valid; throws ManifestSignatureInvalidError if invalid.
86
+ */
87
+ verifySignature(manifest: Manifest): Promise<boolean>;
88
+ }
89
+ export declare class ManifestNotFoundError extends Error {
90
+ readonly name: string;
91
+ readonly version: string;
92
+ constructor(name: string, version: string);
93
+ }
94
+ export declare class ManifestSignatureInvalidError extends Error {
95
+ readonly name: string;
96
+ readonly version: string;
97
+ readonly cause?: unknown | undefined;
98
+ constructor(name: string, version: string, cause?: unknown | undefined);
99
+ }
100
+ export declare class ManifestVersionConflictError extends Error {
101
+ readonly name: string;
102
+ readonly version: string;
103
+ readonly existingStatus: string;
104
+ constructor(name: string, version: string, existingStatus: string);
105
+ }
106
+ export declare class ManifestComplianceConflictError extends Error {
107
+ readonly name: string;
108
+ readonly version: string;
109
+ readonly violation: string;
110
+ constructor(name: string, version: string, violation: string);
111
+ }
112
+ export declare class ManifestValidationError extends Error {
113
+ readonly violations: readonly ComplianceError[];
114
+ constructor(violations: readonly ComplianceError[]);
115
+ }
116
+ //# sourceMappingURL=manifest-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-registry.d.ts","sourceRoot":"","sources":["../../src/ports/manifest-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * ManifestRegistryPort — agent manifest registration and lifecycle management (S1 spec).
3
+ *
4
+ * Implements: manifest registration with Ed25519 signatures, lifecycle states
5
+ * (active/deprecated/revoked), version monotonicity, and tier-based compliance gating.
6
+ *
7
+ * Invariants enforced: I-S1-1..12 (capabilities, tier constraints, versioning).
8
+ * Errors: ManifestNotFoundError, ManifestSignatureInvalidError, ManifestVersionConflictError,
9
+ * ManifestComplianceConflictError (from S5 Cedar G-3).
10
+ */
11
+ export const SUPPORTED_TIERS = [
12
+ "dev",
13
+ "test",
14
+ "pilot",
15
+ "production",
16
+ "internal",
17
+ "legacy",
18
+ ];
19
+ // ─── Typed errors ─────────────────────────────────────────────────────────────
20
+ export class ManifestNotFoundError extends Error {
21
+ name;
22
+ version;
23
+ constructor(name, version) {
24
+ super(`Manifest not found: ${name}@${version}`);
25
+ this.name = name;
26
+ this.version = version;
27
+ this.name = "ManifestNotFoundError";
28
+ Object.setPrototypeOf(this, new.target.prototype);
29
+ }
30
+ }
31
+ export class ManifestSignatureInvalidError extends Error {
32
+ name;
33
+ version;
34
+ cause;
35
+ constructor(name, version, cause) {
36
+ super(`Manifest signature invalid for ${name}@${version}`);
37
+ this.name = name;
38
+ this.version = version;
39
+ this.cause = cause;
40
+ this.name = "ManifestSignatureInvalidError";
41
+ Object.setPrototypeOf(this, new.target.prototype);
42
+ }
43
+ }
44
+ export class ManifestVersionConflictError extends Error {
45
+ name;
46
+ version;
47
+ existingStatus;
48
+ constructor(name, version, existingStatus) {
49
+ super(`Manifest version conflict: ${name}@${version} already registered as ${existingStatus}`);
50
+ this.name = name;
51
+ this.version = version;
52
+ this.existingStatus = existingStatus;
53
+ this.name = "ManifestVersionConflictError";
54
+ Object.setPrototypeOf(this, new.target.prototype);
55
+ }
56
+ }
57
+ export class ManifestComplianceConflictError extends Error {
58
+ name;
59
+ version;
60
+ violation;
61
+ constructor(name, version, violation) {
62
+ super(`Compliance violation for ${name}@${version}: ${violation}`);
63
+ this.name = name;
64
+ this.version = version;
65
+ this.violation = violation;
66
+ this.name = "ManifestComplianceConflictError";
67
+ Object.setPrototypeOf(this, new.target.prototype);
68
+ }
69
+ }
70
+ export class ManifestValidationError extends Error {
71
+ violations;
72
+ constructor(violations) {
73
+ super(`Manifest validation failed with ${violations.length} violation(s)`);
74
+ this.violations = violations;
75
+ this.name = "ManifestValidationError";
76
+ Object.setPrototypeOf(this, new.target.prototype);
77
+ }
78
+ }
79
+ //# sourceMappingURL=manifest-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest-registry.js","sourceRoot":"","sources":["../../src/ports/manifest-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAYH,MAAM,CAAC,MAAM,eAAe,GAAW;IACrC,KAAK;IACL,MAAM;IACN,OAAO;IACP,YAAY;IACZ,UAAU;IACV,QAAQ;CACT,CAAC;AAyGF,iFAAiF;AAEjF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAClB;IAA8B;IAA1D,YAA4B,IAAY,EAAkB,OAAe;QACvE,KAAK,CAAC,uBAAuB,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QADtB,SAAI,GAAJ,IAAI,CAAQ;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAEvE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;QACpC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,6BAA8B,SAAQ,KAAK;IAEpC;IACA;IACA;IAHlB,YACkB,IAAY,EACZ,OAAe,EACf,KAAe;QAE/B,KAAK,CAAC,kCAAkC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC;QAJ3C,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,+BAA+B,CAAC;QAC5C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,4BAA6B,SAAQ,KAAK;IAEnC;IACA;IACA;IAHlB,YACkB,IAAY,EACZ,OAAe,EACf,cAAsB;QAEtC,KAAK,CACH,8BAA8B,IAAI,IAAI,OAAO,0BAA0B,cAAc,EAAE,CACxF,CAAC;QANc,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,mBAAc,GAAd,cAAc,CAAQ;QAKtC,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,+BAAgC,SAAQ,KAAK;IAEtC;IACA;IACA;IAHlB,YACkB,IAAY,EACZ,OAAe,EACf,SAAiB;QAEjC,KAAK,CAAC,4BAA4B,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC,CAAC;QAJnD,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAQ;QACf,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,iCAAiC,CAAC;QAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACpB;IAA5B,YAA4B,UAAsC;QAChE,KAAK,CAAC,mCAAmC,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;QADjD,eAAU,GAAV,UAAU,CAA4B;QAEhE,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ObservabilityPort contract tests — validate port interface compliance.
3
+ *
4
+ * Tests verify:
5
+ * - startSpan returns a valid Span with all methods
6
+ * - recordEvent accepts all 5 severity levels
7
+ * - recordMetric accepts gauge, counter, histogram types
8
+ * - flush() resolves successfully
9
+ * - NoopObservabilityPort satisfies the interface
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=observability.contract.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability.contract.test.d.ts","sourceRoot":"","sources":["../../src/ports/observability.contract.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}