@vauban-org/agent-sdk 0.17.4 → 1.2.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 (506) hide show
  1. package/CONTRACT.md +6401 -813
  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 +327 -30
  39. package/dist/events/catalogue.d.ts.map +1 -1
  40. package/dist/events/catalogue.js +18 -0
  41. package/dist/events/catalogue.js.map +1 -1
  42. package/dist/events/index.d.ts +9 -0
  43. package/dist/events/index.d.ts.map +1 -1
  44. package/dist/events/index.js +9 -0
  45. package/dist/events/index.js.map +1 -1
  46. package/dist/events/schemas/agent.completed.v1.d.ts +4 -4
  47. package/dist/events/schemas/agent.failed.v1.d.ts +2 -2
  48. package/dist/events/schemas/agent.hitl_resolved.v1.d.ts +2 -2
  49. package/dist/events/schemas/agent.started.v1.d.ts +2 -2
  50. package/dist/events/schemas/brain.skill.extracted.v1.d.ts +4 -4
  51. package/dist/events/schemas/cc.cost.anomaly_detected.v1.d.ts +2 -2
  52. package/dist/events/schemas/cc.cost.recorded.v1.d.ts +4 -4
  53. package/dist/events/schemas/citadel.sprint.analyzed.v1.d.ts +55 -0
  54. package/dist/events/schemas/citadel.sprint.analyzed.v1.d.ts.map +1 -0
  55. package/dist/events/schemas/citadel.sprint.analyzed.v1.js +22 -0
  56. package/dist/events/schemas/citadel.sprint.analyzed.v1.js.map +1 -0
  57. package/dist/events/schemas/citadel.sprint.closed.v1.d.ts +2 -2
  58. package/dist/events/schemas/forge.inbox.reply_classified.v1.d.ts +33 -0
  59. package/dist/events/schemas/forge.inbox.reply_classified.v1.d.ts.map +1 -0
  60. package/dist/events/schemas/forge.inbox.reply_classified.v1.js +15 -0
  61. package/dist/events/schemas/forge.inbox.reply_classified.v1.js.map +1 -0
  62. package/dist/events/schemas/forge.lead.qualified.v1.d.ts +2 -2
  63. package/dist/events/schemas/forge.outreach.sent.v1.d.ts +4 -4
  64. package/dist/events/schemas/incident.detected.v1.d.ts +2 -2
  65. package/dist/events/schemas/vauban-finance.forecast.generated.v1.d.ts +21 -0
  66. package/dist/events/schemas/vauban-finance.forecast.generated.v1.d.ts.map +1 -0
  67. package/dist/events/schemas/vauban-finance.forecast.generated.v1.js +11 -0
  68. package/dist/events/schemas/vauban-finance.forecast.generated.v1.js.map +1 -0
  69. package/dist/events/schemas/vauban-finance.trade.executed.v1.d.ts +24 -0
  70. package/dist/events/schemas/vauban-finance.trade.executed.v1.d.ts.map +1 -0
  71. package/dist/events/schemas/vauban-finance.trade.executed.v1.js +12 -0
  72. package/dist/events/schemas/vauban-finance.trade.executed.v1.js.map +1 -0
  73. package/dist/events/schemas/vauban.goal.checked.v1.d.ts +21 -0
  74. package/dist/events/schemas/vauban.goal.checked.v1.d.ts.map +1 -0
  75. package/dist/events/schemas/vauban.goal.checked.v1.js +11 -0
  76. package/dist/events/schemas/vauban.goal.checked.v1.js.map +1 -0
  77. package/dist/events/schemas/vauban.rebalancing.checked.v1.d.ts +21 -0
  78. package/dist/events/schemas/vauban.rebalancing.checked.v1.d.ts.map +1 -0
  79. package/dist/events/schemas/vauban.rebalancing.checked.v1.js +11 -0
  80. package/dist/events/schemas/vauban.rebalancing.checked.v1.js.map +1 -0
  81. package/dist/events/schemas/vauban.tax.checked.v1.d.ts +21 -0
  82. package/dist/events/schemas/vauban.tax.checked.v1.d.ts.map +1 -0
  83. package/dist/events/schemas/vauban.tax.checked.v1.js +11 -0
  84. package/dist/events/schemas/vauban.tax.checked.v1.js.map +1 -0
  85. package/dist/events/schemas/vauban.vault.analyzed.v1.d.ts +59 -0
  86. package/dist/events/schemas/vauban.vault.analyzed.v1.d.ts.map +1 -0
  87. package/dist/events/schemas/vauban.vault.analyzed.v1.js +19 -0
  88. package/dist/events/schemas/vauban.vault.analyzed.v1.js.map +1 -0
  89. package/dist/events/schemas/vauban.vault.compounded.v1.d.ts +24 -0
  90. package/dist/events/schemas/vauban.vault.compounded.v1.d.ts.map +1 -0
  91. package/dist/events/schemas/vauban.vault.compounded.v1.js +12 -0
  92. package/dist/events/schemas/vauban.vault.compounded.v1.js.map +1 -0
  93. package/dist/identity/agent-persona.d.ts +73 -0
  94. package/dist/identity/agent-persona.d.ts.map +1 -0
  95. package/dist/identity/agent-persona.js +165 -0
  96. package/dist/identity/agent-persona.js.map +1 -0
  97. package/dist/identity/persona-prompt.d.ts +25 -0
  98. package/dist/identity/persona-prompt.d.ts.map +1 -0
  99. package/dist/identity/persona-prompt.js +71 -0
  100. package/dist/identity/persona-prompt.js.map +1 -0
  101. package/dist/identity/persona-schema.d.ts +120 -0
  102. package/dist/identity/persona-schema.d.ts.map +1 -0
  103. package/dist/identity/persona-schema.js +103 -0
  104. package/dist/identity/persona-schema.js.map +1 -0
  105. package/dist/index.d.ts +37 -2
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +29 -1
  108. package/dist/index.js.map +1 -1
  109. package/dist/loop/index.d.ts +1 -1
  110. package/dist/loop/index.d.ts.map +1 -1
  111. package/dist/loop/index.js.map +1 -1
  112. package/dist/loop/minimal-loop.js +293 -287
  113. package/dist/loop/sdk-loop.d.ts +1 -3
  114. package/dist/loop/sdk-loop.d.ts.map +1 -1
  115. package/dist/loop/sdk-loop.js +1 -1
  116. package/dist/loop/sdk-loop.js.map +1 -1
  117. package/dist/memory/episodic-rrf.d.ts +114 -0
  118. package/dist/memory/episodic-rrf.d.ts.map +1 -0
  119. package/dist/memory/episodic-rrf.js +148 -0
  120. package/dist/memory/episodic-rrf.js.map +1 -0
  121. package/dist/mesh/attenuation.d.ts +78 -0
  122. package/dist/mesh/attenuation.d.ts.map +1 -0
  123. package/dist/mesh/attenuation.js +141 -0
  124. package/dist/mesh/attenuation.js.map +1 -0
  125. package/dist/mesh/delegate.d.ts +96 -0
  126. package/dist/mesh/delegate.d.ts.map +1 -0
  127. package/dist/mesh/delegate.js +172 -0
  128. package/dist/mesh/delegate.js.map +1 -0
  129. package/dist/mesh/dispatcher.d.ts +119 -0
  130. package/dist/mesh/dispatcher.d.ts.map +1 -0
  131. package/dist/mesh/dispatcher.js +207 -0
  132. package/dist/mesh/dispatcher.js.map +1 -0
  133. package/dist/mesh/index.d.ts +12 -0
  134. package/dist/mesh/index.d.ts.map +1 -0
  135. package/dist/mesh/index.js +11 -0
  136. package/dist/mesh/index.js.map +1 -0
  137. package/dist/mesh/types.d.ts +30 -0
  138. package/dist/mesh/types.d.ts.map +1 -0
  139. package/dist/mesh/types.js +11 -0
  140. package/dist/mesh/types.js.map +1 -0
  141. package/dist/orchestration/ooda/skills.d.ts +104 -0
  142. package/dist/orchestration/ooda/skills.d.ts.map +1 -1
  143. package/dist/orchestration/ooda/skills.js +106 -0
  144. package/dist/orchestration/ooda/skills.js.map +1 -1
  145. package/dist/orchestration/ooda/types.d.ts +3 -8
  146. package/dist/orchestration/ooda/types.d.ts.map +1 -1
  147. package/dist/ports/bastion-action.contract.test.d.ts +11 -0
  148. package/dist/ports/bastion-action.contract.test.d.ts.map +1 -0
  149. package/dist/ports/bastion-action.contract.test.js +238 -0
  150. package/dist/ports/bastion-action.contract.test.js.map +1 -0
  151. package/dist/ports/bastion-action.d.ts +133 -0
  152. package/dist/ports/bastion-action.d.ts.map +1 -0
  153. package/dist/ports/bastion-action.js +73 -0
  154. package/dist/ports/bastion-action.js.map +1 -0
  155. package/dist/ports/brain.d.ts +31 -0
  156. package/dist/ports/brain.d.ts.map +1 -1
  157. package/dist/ports/brain.js +115 -1
  158. package/dist/ports/brain.js.map +1 -1
  159. package/dist/ports/citadel-action.contract.test.d.ts +11 -0
  160. package/dist/ports/citadel-action.contract.test.d.ts.map +1 -0
  161. package/dist/ports/citadel-action.contract.test.js +317 -0
  162. package/dist/ports/citadel-action.contract.test.js.map +1 -0
  163. package/dist/ports/citadel-action.d.ts +111 -0
  164. package/dist/ports/citadel-action.d.ts.map +1 -0
  165. package/dist/ports/citadel-action.js +62 -0
  166. package/dist/ports/citadel-action.js.map +1 -0
  167. package/dist/ports/compliance-contract.d.ts +123 -0
  168. package/dist/ports/compliance-contract.d.ts.map +1 -0
  169. package/dist/ports/compliance-contract.js +35 -0
  170. package/dist/ports/compliance-contract.js.map +1 -0
  171. package/dist/ports/db.d.ts +38 -0
  172. package/dist/ports/db.d.ts.map +1 -1
  173. package/dist/ports/db.js +88 -1
  174. package/dist/ports/db.js.map +1 -1
  175. package/dist/ports/delegation.contract.test.d.ts +9 -0
  176. package/dist/ports/delegation.contract.test.d.ts.map +1 -0
  177. package/dist/ports/delegation.contract.test.js +337 -0
  178. package/dist/ports/delegation.contract.test.js.map +1 -0
  179. package/dist/ports/delegation.d.ts +134 -0
  180. package/dist/ports/delegation.d.ts.map +1 -0
  181. package/dist/ports/delegation.js +105 -0
  182. package/dist/ports/delegation.js.map +1 -0
  183. package/dist/ports/event-bus.d.ts +29 -13
  184. package/dist/ports/event-bus.d.ts.map +1 -1
  185. package/dist/ports/event-bus.js +106 -1
  186. package/dist/ports/event-bus.js.map +1 -1
  187. package/dist/ports/federation.contract.test.d.ts +9 -0
  188. package/dist/ports/federation.contract.test.d.ts.map +1 -0
  189. package/dist/ports/federation.contract.test.js +279 -0
  190. package/dist/ports/federation.contract.test.js.map +1 -0
  191. package/dist/ports/federation.d.ts +140 -0
  192. package/dist/ports/federation.d.ts.map +1 -0
  193. package/dist/ports/federation.js +57 -0
  194. package/dist/ports/federation.js.map +1 -0
  195. package/dist/ports/index.d.ts +28 -2
  196. package/dist/ports/index.d.ts.map +1 -1
  197. package/dist/ports/index.js +17 -2
  198. package/dist/ports/index.js.map +1 -1
  199. package/dist/ports/llm-provider.d.ts +37 -0
  200. package/dist/ports/llm-provider.d.ts.map +1 -1
  201. package/dist/ports/llm-provider.js +99 -1
  202. package/dist/ports/llm-provider.js.map +1 -1
  203. package/dist/ports/logger.d.ts +27 -0
  204. package/dist/ports/logger.d.ts.map +1 -1
  205. package/dist/ports/logger.js +87 -0
  206. package/dist/ports/logger.js.map +1 -1
  207. package/dist/ports/manifest-registry.contract.test.d.ts +9 -0
  208. package/dist/ports/manifest-registry.contract.test.d.ts.map +1 -0
  209. package/dist/ports/manifest-registry.contract.test.js +246 -0
  210. package/dist/ports/manifest-registry.contract.test.js.map +1 -0
  211. package/dist/ports/manifest-registry.d.ts +116 -0
  212. package/dist/ports/manifest-registry.d.ts.map +1 -0
  213. package/dist/ports/manifest-registry.js +79 -0
  214. package/dist/ports/manifest-registry.js.map +1 -0
  215. package/dist/ports/observability.contract.test.d.ts +12 -0
  216. package/dist/ports/observability.contract.test.d.ts.map +1 -0
  217. package/dist/ports/observability.contract.test.js +260 -0
  218. package/dist/ports/observability.contract.test.js.map +1 -0
  219. package/dist/ports/observability.d.ts +98 -0
  220. package/dist/ports/observability.d.ts.map +1 -0
  221. package/dist/ports/observability.js +59 -0
  222. package/dist/ports/observability.js.map +1 -0
  223. package/dist/ports/outcome.d.ts +26 -0
  224. package/dist/ports/outcome.d.ts.map +1 -1
  225. package/dist/ports/outcome.js +62 -1
  226. package/dist/ports/outcome.js.map +1 -1
  227. package/dist/ports/privacy.contract.test.d.ts +12 -0
  228. package/dist/ports/privacy.contract.test.d.ts.map +1 -0
  229. package/dist/ports/privacy.contract.test.js +325 -0
  230. package/dist/ports/privacy.contract.test.js.map +1 -0
  231. package/dist/ports/privacy.d.ts +132 -0
  232. package/dist/ports/privacy.d.ts.map +1 -0
  233. package/dist/ports/privacy.js +83 -0
  234. package/dist/ports/privacy.js.map +1 -0
  235. package/dist/ports/tenant-context.contract.test.d.ts +14 -0
  236. package/dist/ports/tenant-context.contract.test.d.ts.map +1 -0
  237. package/dist/ports/tenant-context.contract.test.js +352 -0
  238. package/dist/ports/tenant-context.contract.test.js.map +1 -0
  239. package/dist/ports/tenant-context.d.ts +103 -0
  240. package/dist/ports/tenant-context.d.ts.map +1 -0
  241. package/dist/ports/tenant-context.js +48 -0
  242. package/dist/ports/tenant-context.js.map +1 -0
  243. package/dist/ports/vauban-finance-action.contract.test.d.ts +11 -0
  244. package/dist/ports/vauban-finance-action.contract.test.d.ts.map +1 -0
  245. package/dist/ports/vauban-finance-action.contract.test.js +260 -0
  246. package/dist/ports/vauban-finance-action.contract.test.js.map +1 -0
  247. package/dist/ports/vauban-finance-action.d.ts +106 -0
  248. package/dist/ports/vauban-finance-action.d.ts.map +1 -0
  249. package/dist/ports/vauban-finance-action.js +60 -0
  250. package/dist/ports/vauban-finance-action.js.map +1 -0
  251. package/dist/ports/workflow-runtime.d.ts +204 -0
  252. package/dist/ports/workflow-runtime.d.ts.map +1 -0
  253. package/dist/ports/workflow-runtime.js +72 -0
  254. package/dist/ports/workflow-runtime.js.map +1 -0
  255. package/dist/proof/cert-verify.d.ts +80 -0
  256. package/dist/proof/cert-verify.d.ts.map +1 -0
  257. package/dist/proof/cert-verify.js +178 -0
  258. package/dist/proof/cert-verify.js.map +1 -0
  259. package/dist/replay/replay.d.ts.map +1 -1
  260. package/dist/replay/replay.js +5 -1
  261. package/dist/replay/replay.js.map +1 -1
  262. package/dist/retry/index.d.ts +129 -0
  263. package/dist/retry/index.d.ts.map +1 -0
  264. package/dist/retry/index.js +156 -0
  265. package/dist/retry/index.js.map +1 -0
  266. package/dist/retry/presets.d.ts +39 -0
  267. package/dist/retry/presets.d.ts.map +1 -0
  268. package/dist/retry/presets.js +69 -0
  269. package/dist/retry/presets.js.map +1 -0
  270. package/dist/skill-loop/ab-runner.d.ts +67 -0
  271. package/dist/skill-loop/ab-runner.d.ts.map +1 -0
  272. package/dist/skill-loop/ab-runner.js +160 -0
  273. package/dist/skill-loop/ab-runner.js.map +1 -0
  274. package/dist/skill-loop/adoption.d.ts +67 -0
  275. package/dist/skill-loop/adoption.d.ts.map +1 -0
  276. package/dist/skill-loop/adoption.js +126 -0
  277. package/dist/skill-loop/adoption.js.map +1 -0
  278. package/dist/skill-loop/candidate.d.ts +45 -0
  279. package/dist/skill-loop/candidate.d.ts.map +1 -0
  280. package/dist/skill-loop/candidate.js +43 -0
  281. package/dist/skill-loop/candidate.js.map +1 -0
  282. package/dist/skill-loop/evaluator.d.ts +42 -0
  283. package/dist/skill-loop/evaluator.d.ts.map +1 -0
  284. package/dist/skill-loop/evaluator.js +184 -0
  285. package/dist/skill-loop/evaluator.js.map +1 -0
  286. package/dist/skill-loop/index.d.ts +27 -0
  287. package/dist/skill-loop/index.d.ts.map +1 -0
  288. package/dist/skill-loop/index.js +27 -0
  289. package/dist/skill-loop/index.js.map +1 -0
  290. package/dist/skill-loop/reflexion-replay.d.ts +87 -0
  291. package/dist/skill-loop/reflexion-replay.d.ts.map +1 -0
  292. package/dist/skill-loop/reflexion-replay.js +110 -0
  293. package/dist/skill-loop/reflexion-replay.js.map +1 -0
  294. package/dist/skill-loop/sign-off.d.ts +88 -0
  295. package/dist/skill-loop/sign-off.d.ts.map +1 -0
  296. package/dist/skill-loop/sign-off.js +146 -0
  297. package/dist/skill-loop/sign-off.js.map +1 -0
  298. package/dist/skill-loop/value-metric.d.ts +55 -0
  299. package/dist/skill-loop/value-metric.d.ts.map +1 -0
  300. package/dist/skill-loop/value-metric.js +69 -0
  301. package/dist/skill-loop/value-metric.js.map +1 -0
  302. package/dist/skill-loop/versioning.d.ts +36 -0
  303. package/dist/skill-loop/versioning.d.ts.map +1 -0
  304. package/dist/skill-loop/versioning.js +47 -0
  305. package/dist/skill-loop/versioning.js.map +1 -0
  306. package/dist/skill-manifest/anchor.d.ts +91 -0
  307. package/dist/skill-manifest/anchor.d.ts.map +1 -0
  308. package/dist/skill-manifest/anchor.js +331 -0
  309. package/dist/skill-manifest/anchor.js.map +1 -0
  310. package/dist/skill-manifest/builder.d.ts +47 -0
  311. package/dist/skill-manifest/builder.d.ts.map +1 -0
  312. package/dist/skill-manifest/builder.js +93 -0
  313. package/dist/skill-manifest/builder.js.map +1 -0
  314. package/dist/skill-manifest/index.d.ts +13 -0
  315. package/dist/skill-manifest/index.d.ts.map +1 -0
  316. package/dist/skill-manifest/index.js +9 -0
  317. package/dist/skill-manifest/index.js.map +1 -0
  318. package/dist/skill-manifest/types.d.ts +67 -0
  319. package/dist/skill-manifest/types.d.ts.map +1 -0
  320. package/dist/skill-manifest/types.js +16 -0
  321. package/dist/skill-manifest/types.js.map +1 -0
  322. package/dist/skill-manifest/verifier.d.ts +42 -0
  323. package/dist/skill-manifest/verifier.d.ts.map +1 -0
  324. package/dist/skill-manifest/verifier.js +136 -0
  325. package/dist/skill-manifest/verifier.js.map +1 -0
  326. package/dist/skills/brain-query.d.ts +4 -4
  327. package/dist/skills/brain-store.d.ts +6 -6
  328. package/dist/skills/errors.d.ts +15 -0
  329. package/dist/skills/errors.d.ts.map +1 -1
  330. package/dist/skills/errors.js +21 -0
  331. package/dist/skills/errors.js.map +1 -1
  332. package/dist/skills/hitl-request.d.ts +2 -2
  333. package/dist/skills/index.d.ts +3 -1
  334. package/dist/skills/index.d.ts.map +1 -1
  335. package/dist/skills/index.js +4 -1
  336. package/dist/skills/index.js.map +1 -1
  337. package/dist/skills/markdown/loader.d.ts +52 -0
  338. package/dist/skills/markdown/loader.d.ts.map +1 -0
  339. package/dist/skills/markdown/loader.js +93 -0
  340. package/dist/skills/markdown/loader.js.map +1 -0
  341. package/dist/skills/markdown/schema.d.ts +432 -0
  342. package/dist/skills/markdown/schema.d.ts.map +1 -0
  343. package/dist/skills/markdown/schema.js +121 -0
  344. package/dist/skills/markdown/schema.js.map +1 -0
  345. package/dist/skills/poc-md-loader/markdown-loader.d.ts +77 -0
  346. package/dist/skills/poc-md-loader/markdown-loader.d.ts.map +1 -0
  347. package/dist/skills/poc-md-loader/markdown-loader.js +125 -0
  348. package/dist/skills/poc-md-loader/markdown-loader.js.map +1 -0
  349. package/dist/skills/poc-md-loader/runner.d.ts +24 -0
  350. package/dist/skills/poc-md-loader/runner.d.ts.map +1 -0
  351. package/dist/skills/poc-md-loader/runner.js +57 -0
  352. package/dist/skills/poc-md-loader/runner.js.map +1 -0
  353. package/dist/skills/poc-md-loader/vitest.poc.config.d.ts +3 -0
  354. package/dist/skills/poc-md-loader/vitest.poc.config.d.ts.map +1 -0
  355. package/dist/skills/poc-md-loader/vitest.poc.config.js +13 -0
  356. package/dist/skills/poc-md-loader/vitest.poc.config.js.map +1 -0
  357. package/dist/skills/poc-md-loader/web-search/script.d.ts +33 -0
  358. package/dist/skills/poc-md-loader/web-search/script.d.ts.map +1 -0
  359. package/dist/skills/poc-md-loader/web-search/script.js +75 -0
  360. package/dist/skills/poc-md-loader/web-search/script.js.map +1 -0
  361. package/dist/skills/record-outcome.d.ts +4 -4
  362. package/dist/skills/send-email.d.ts.map +1 -1
  363. package/dist/skills/send-email.js +15 -3
  364. package/dist/skills/send-email.js.map +1 -1
  365. package/dist/skills/slack-notify.d.ts +4 -4
  366. package/dist/skills/starknet-balance.d.ts +1 -1
  367. package/dist/skills/telegram-notify.d.ts +4 -4
  368. package/dist/skills/web-search.d.ts +1 -1
  369. package/dist/testing/contracts/event-bus.contract.d.ts.map +1 -1
  370. package/dist/testing/contracts/event-bus.contract.js +14 -12
  371. package/dist/testing/contracts/event-bus.contract.js.map +1 -1
  372. package/dist/testing/index.d.ts +3 -0
  373. package/dist/testing/test-brain-port.d.ts +4 -0
  374. package/dist/testing/test-brain-port.d.ts.map +1 -1
  375. package/dist/testing/test-brain-port.js +75 -20
  376. package/dist/testing/test-brain-port.js.map +1 -1
  377. package/dist/testing/test-event-bus.d.ts.map +1 -1
  378. package/dist/testing/test-event-bus.js +89 -36
  379. package/dist/testing/test-event-bus.js.map +1 -1
  380. package/dist/trace/schema.d.ts +1 -1
  381. package/dist/trace/schema.d.ts.map +1 -1
  382. package/dist/trace/schema.js +1 -1
  383. package/dist/trace/schema.js.map +1 -1
  384. package/dist/verify/formal/index.d.ts +44 -0
  385. package/dist/verify/formal/index.d.ts.map +1 -0
  386. package/dist/verify/formal/index.js +98 -0
  387. package/dist/verify/formal/index.js.map +1 -0
  388. package/dist/verify/formal/policy.d.ts +105 -0
  389. package/dist/verify/formal/policy.d.ts.map +1 -0
  390. package/dist/verify/formal/policy.js +159 -0
  391. package/dist/verify/formal/policy.js.map +1 -0
  392. package/dist/verify/formal/result.d.ts +50 -0
  393. package/dist/verify/formal/result.d.ts.map +1 -0
  394. package/dist/verify/formal/result.js +21 -0
  395. package/dist/verify/formal/result.js.map +1 -0
  396. package/dist/verify/formal/solver.d.ts +67 -0
  397. package/dist/verify/formal/solver.d.ts.map +1 -0
  398. package/dist/verify/formal/solver.js +184 -0
  399. package/dist/verify/formal/solver.js.map +1 -0
  400. package/dist/verify/formal/spec-language.d.ts +80 -0
  401. package/dist/verify/formal/spec-language.d.ts.map +1 -0
  402. package/dist/verify/formal/spec-language.js +219 -0
  403. package/dist/verify/formal/spec-language.js.map +1 -0
  404. package/docs/attestation.md +199 -0
  405. package/docs/identity.md +193 -0
  406. package/package.json +22 -1
  407. package/src/adapters/llm/anthropic-direct.ts +51 -0
  408. package/src/adapters/llm/cascade.ts +64 -19
  409. package/src/adapters/llm/litellm.ts +49 -0
  410. package/src/compute/difficulty-estimator.ts +111 -0
  411. package/src/compute/strategies/mixture-of-agents.ts +150 -0
  412. package/src/compute/strategies/tree-of-thoughts.ts +293 -0
  413. package/src/compute/strategies/two-phase-orient.ts +147 -0
  414. package/src/container/protocol.ts +243 -0
  415. package/src/container/runtime.ts +424 -0
  416. package/src/db/migrations/026_formal_verify_results.sql +30 -0
  417. package/src/events/catalogue.ts +54 -0
  418. package/src/events/index.ts +9 -0
  419. package/src/events/schemas/citadel.sprint.analyzed.v1.ts +23 -0
  420. package/src/events/schemas/forge.inbox.reply_classified.v1.ts +15 -0
  421. package/src/events/schemas/vauban-finance.forecast.generated.v1.ts +11 -0
  422. package/src/events/schemas/vauban-finance.trade.executed.v1.ts +12 -0
  423. package/src/events/schemas/vauban.goal.checked.v1.ts +11 -0
  424. package/src/events/schemas/vauban.rebalancing.checked.v1.ts +11 -0
  425. package/src/events/schemas/vauban.tax.checked.v1.ts +11 -0
  426. package/src/events/schemas/vauban.vault.analyzed.v1.ts +21 -0
  427. package/src/events/schemas/vauban.vault.compounded.v1.ts +12 -0
  428. package/src/identity/agent-persona.ts +203 -0
  429. package/src/identity/persona-prompt.ts +84 -0
  430. package/src/identity/persona-schema.ts +127 -0
  431. package/src/index.ts +338 -1
  432. package/src/loop/index.ts +0 -1
  433. package/src/loop/sdk-loop.ts +5 -8
  434. package/src/memory/episodic-rrf.ts +224 -0
  435. package/src/mesh/attenuation.ts +190 -0
  436. package/src/mesh/delegate.ts +254 -0
  437. package/src/mesh/dispatcher.ts +301 -0
  438. package/src/mesh/index.ts +39 -0
  439. package/src/mesh/types.ts +31 -0
  440. package/src/orchestration/ooda/skills.ts +177 -0
  441. package/src/orchestration/ooda/types.ts +3 -9
  442. package/src/ports/bastion-action.contract.test.ts +355 -0
  443. package/src/ports/bastion-action.ts +198 -0
  444. package/src/ports/brain.ts +177 -15
  445. package/src/ports/citadel-action.contract.test.ts +430 -0
  446. package/src/ports/citadel-action.ts +174 -0
  447. package/src/ports/compliance-contract.ts +191 -0
  448. package/src/ports/db.ts +98 -0
  449. package/src/ports/delegation.contract.test.ts +428 -0
  450. package/src/ports/delegation.ts +211 -0
  451. package/src/ports/event-bus.ts +133 -18
  452. package/src/ports/federation.contract.test.ts +355 -0
  453. package/src/ports/federation.ts +190 -0
  454. package/src/ports/index.ts +186 -1
  455. package/src/ports/llm-provider.ts +123 -0
  456. package/src/ports/logger.ts +104 -0
  457. package/src/ports/manifest-registry.contract.test.ts +324 -0
  458. package/src/ports/manifest-registry.ts +188 -0
  459. package/src/ports/observability.contract.test.ts +315 -0
  460. package/src/ports/observability.ts +150 -0
  461. package/src/ports/outcome.ts +69 -0
  462. package/src/ports/privacy.contract.test.ts +413 -0
  463. package/src/ports/privacy.ts +207 -0
  464. package/src/ports/tenant-context.contract.test.ts +454 -0
  465. package/src/ports/tenant-context.ts +150 -0
  466. package/src/ports/vauban-finance-action.contract.test.ts +335 -0
  467. package/src/ports/vauban-finance-action.ts +166 -0
  468. package/src/ports/workflow-runtime.ts +327 -0
  469. package/src/proof/cert-verify.ts +249 -0
  470. package/src/replay/replay.ts +11 -8
  471. package/src/retry/index.ts +227 -0
  472. package/src/retry/presets.ts +75 -0
  473. package/src/skill-loop/ab-runner.ts +196 -0
  474. package/src/skill-loop/adoption.ts +188 -0
  475. package/src/skill-loop/candidate.ts +75 -0
  476. package/src/skill-loop/evaluator.ts +238 -0
  477. package/src/skill-loop/index.ts +51 -0
  478. package/src/skill-loop/reflexion-replay.ts +173 -0
  479. package/src/skill-loop/sign-off.ts +247 -0
  480. package/src/skill-loop/value-metric.ts +120 -0
  481. package/src/skill-loop/versioning.ts +75 -0
  482. package/src/skill-manifest/anchor.ts +401 -0
  483. package/src/skill-manifest/builder.ts +129 -0
  484. package/src/skill-manifest/index.ts +18 -0
  485. package/src/skill-manifest/types.ts +72 -0
  486. package/src/skill-manifest/verifier.ts +198 -0
  487. package/src/skills/errors.ts +30 -2
  488. package/src/skills/index.ts +19 -0
  489. package/src/skills/markdown/loader.ts +129 -0
  490. package/src/skills/markdown/schema.ts +144 -0
  491. package/src/skills/poc-md-loader/e2e-parity.test.ts +237 -0
  492. package/src/skills/poc-md-loader/markdown-loader.ts +161 -0
  493. package/src/skills/poc-md-loader/runner.ts +82 -0
  494. package/src/skills/poc-md-loader/vitest.poc.config.ts +13 -0
  495. package/src/skills/poc-md-loader/web-search/SKILL.md +42 -0
  496. package/src/skills/poc-md-loader/web-search/script.ts +109 -0
  497. package/src/skills/send-email.ts +15 -3
  498. package/src/testing/contracts/event-bus.contract.ts +16 -14
  499. package/src/testing/test-brain-port.ts +98 -24
  500. package/src/testing/test-event-bus.ts +104 -43
  501. package/src/trace/schema.ts +1 -1
  502. package/src/verify/formal/index.ts +154 -0
  503. package/src/verify/formal/policy.ts +253 -0
  504. package/src/verify/formal/result.ts +52 -0
  505. package/src/verify/formal/solver.ts +235 -0
  506. package/src/verify/formal/spec-language.ts +274 -0
@@ -0,0 +1,317 @@
1
+ /**
2
+ * CitadelActionPort contract tests.
3
+ *
4
+ * Applied to any CitadelActionPort implementation. Tests tiered access control,
5
+ * state transitions, and governance claim emission.
6
+ *
7
+ * Source: vauban-gouvernance/rules/ai/tiered-gates.md + MASTER-PLAN-v5.md §1.3
8
+ */
9
+ import { describe, expect, test } from "vitest";
10
+ import { CitadelTierViolationError, CitadelTaskRefNotFoundError, CitadelSprintNotActiveError, CitadelInvalidStateTransitionError, } from "./citadel-action.js";
11
+ function makeActionContext(overrides = {}) {
12
+ return {
13
+ agentId: "test-agent-001",
14
+ agentTier: "T3",
15
+ runId: crypto.randomUUID(),
16
+ ...overrides,
17
+ };
18
+ }
19
+ function makeSprintInput(overrides = {}) {
20
+ return {
21
+ name: "Sprint Test",
22
+ goal: "Test sprint",
23
+ project_slug: "test-project",
24
+ start_date: new Date().toISOString(),
25
+ end_date: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000).toISOString(),
26
+ ...overrides,
27
+ };
28
+ }
29
+ function makeTaskRef(overrides = {}) {
30
+ return {
31
+ ref: "test-project:sprint-1:task-001",
32
+ project: "test-project",
33
+ sprint: "sprint-1",
34
+ task_id: "task-001",
35
+ ...overrides,
36
+ };
37
+ }
38
+ function makeVerificationEvidence(overrides = {}) {
39
+ return {
40
+ passed: true,
41
+ evidence_text: "Verification scenario executed successfully",
42
+ evidence_hash: "abcd1234efgh5678ijkl9012mnop3456",
43
+ ...overrides,
44
+ };
45
+ }
46
+ function makeDecisionInput(overrides = {}) {
47
+ return {
48
+ decision: "Adopt new architecture",
49
+ context: "Performance issues in current stack",
50
+ options: ["Refactor current", "Migrate to new stack", "Hybrid approach"],
51
+ chosen: "Hybrid approach",
52
+ rationale: "Balance performance and migration cost",
53
+ ...overrides,
54
+ };
55
+ }
56
+ export const citadelActionPortContract = (factory) => {
57
+ describe("CitadelActionPort contract", () => {
58
+ test("createSprint requires T2+ tier", async () => {
59
+ const port = factory();
60
+ const input = makeSprintInput();
61
+ const ctx = makeActionContext({ agentTier: "T1" });
62
+ await expect(port.createSprint(input, ctx)).rejects.toThrow(CitadelTierViolationError);
63
+ });
64
+ test("createSprint succeeds for T2+ agents", async () => {
65
+ const port = factory();
66
+ const input = makeSprintInput();
67
+ const ctx = makeActionContext({ agentTier: "T2" });
68
+ const sprintRef = await port.createSprint(input, ctx);
69
+ expect(sprintRef.sprint_id).toBeDefined();
70
+ expect(sprintRef.project_slug).toBe(input.project_slug);
71
+ expect(sprintRef.name).toBe(input.name);
72
+ });
73
+ test("updateTaskStatus transitions task state", async () => {
74
+ const port = factory();
75
+ const taskRef = makeTaskRef();
76
+ const ctx = makeActionContext({ agentTier: "T2" });
77
+ // Transition todo → in_progress
78
+ await port.updateTaskStatus(taskRef, "in_progress", ctx);
79
+ // No throw = success
80
+ // Transition in_progress → done
81
+ await port.updateTaskStatus(taskRef, "done", ctx);
82
+ // No throw = success
83
+ });
84
+ test("updateTaskStatus blocks invalid transitions", async () => {
85
+ const port = factory();
86
+ const taskRef = makeTaskRef();
87
+ const ctx = makeActionContext({ agentTier: "T2" });
88
+ // Walk valid path: todo → in_progress → done
89
+ await port.updateTaskStatus(taskRef, "in_progress", ctx);
90
+ await port.updateTaskStatus(taskRef, "done", ctx);
91
+ // Now try invalid: done → in_progress (must throw)
92
+ await expect(port.updateTaskStatus(taskRef, "in_progress", ctx)).rejects.toMatchObject({
93
+ name: "CitadelInvalidStateTransitionError",
94
+ current_status: "done",
95
+ requested_status: "in_progress",
96
+ });
97
+ });
98
+ test("sealSprint requires T3+ tier", async () => {
99
+ const port = factory();
100
+ const evidence = makeVerificationEvidence();
101
+ const ctx = makeActionContext({ agentTier: "T2" });
102
+ await expect(port.sealSprint("sprint-1", evidence, ctx)).rejects.toThrow(CitadelTierViolationError);
103
+ });
104
+ test("sealSprint succeeds for T3+ agents with evidence", async () => {
105
+ const port = factory();
106
+ const evidence = makeVerificationEvidence({ passed: true });
107
+ const ctx = makeActionContext({ agentTier: "T3" });
108
+ const claim = await port.sealSprint("sprint-1", evidence, ctx);
109
+ expect(claim.sprint_id).toBe("sprint-1");
110
+ expect(claim.sealed_at).toBeDefined();
111
+ expect(claim.sealed_by_agent).toBe(ctx.agentId);
112
+ expect(claim.verification_evidence_hash).toBe(evidence.evidence_hash);
113
+ });
114
+ test("sealSprint fails if sprint not active", async () => {
115
+ const port = factory();
116
+ const evidence = makeVerificationEvidence();
117
+ const ctx = makeActionContext({ agentTier: "T3" });
118
+ try {
119
+ // Attempting to seal a sprint that is not in active status
120
+ await port.sealSprint("sprint-999", evidence, ctx);
121
+ }
122
+ catch (err) {
123
+ if (err instanceof CitadelSprintNotActiveError) {
124
+ expect(err.sprint_id).toBe("sprint-999");
125
+ }
126
+ }
127
+ });
128
+ test("sealSprint emits SealedSprintClaim with anchor_id", async () => {
129
+ const port = factory();
130
+ const evidence = makeVerificationEvidence();
131
+ const ctx = makeActionContext({ agentTier: "T3" });
132
+ const claim = await port.sealSprint("sprint-1", evidence, ctx);
133
+ // anchor_id is optional (Phase 1+ deferred), but test should verify if present
134
+ if (claim.anchor_id) {
135
+ expect(claim.anchor_id.length).toBeGreaterThan(0);
136
+ }
137
+ });
138
+ test("recordDecision requires T2+ tier", async () => {
139
+ const port = factory();
140
+ const decision = makeDecisionInput();
141
+ const ctx = makeActionContext({ agentTier: "T1" });
142
+ await expect(port.recordDecision(decision, ctx)).rejects.toThrow(CitadelTierViolationError);
143
+ });
144
+ test("recordDecision succeeds for T2+ agents", async () => {
145
+ const port = factory();
146
+ const decision = makeDecisionInput();
147
+ const ctx = makeActionContext({ agentTier: "T2" });
148
+ const claim = await port.recordDecision(decision, ctx);
149
+ expect(claim.decision_id).toBeDefined();
150
+ expect(claim.created_at).toBeDefined();
151
+ expect(claim.archived_to_brain).toBeDefined();
152
+ });
153
+ test("recordDecision T3+ triggers cascade hook", async () => {
154
+ const port = factory();
155
+ const decision = makeDecisionInput({
156
+ decision: "ADR-ECO-NNN: Architectural Decision",
157
+ });
158
+ const ctx = makeActionContext({ agentTier: "T3" });
159
+ const claim = await port.recordDecision(decision, ctx);
160
+ // T3+ should trigger cascade (optional, implementation-specific)
161
+ // Just verify claim is returned
162
+ expect(claim.decision_id).toBeDefined();
163
+ });
164
+ test("tier violation error includes required and actual tier", async () => {
165
+ const port = factory();
166
+ const input = makeSprintInput();
167
+ const ctx = makeActionContext({ agentTier: "T1" });
168
+ try {
169
+ await port.createSprint(input, ctx);
170
+ }
171
+ catch (err) {
172
+ if (err instanceof CitadelTierViolationError) {
173
+ expect(err.required_tier).toBe("T2");
174
+ expect(err.actual_tier).toBe("T1");
175
+ expect(err.operation).toBeDefined();
176
+ }
177
+ }
178
+ });
179
+ test("task not found error includes task ref", async () => {
180
+ const port = factory();
181
+ const taskRef = makeTaskRef({ ref: "nonexistent:sprint-1:task-999" });
182
+ const ctx = makeActionContext({ agentTier: "T2" });
183
+ try {
184
+ await port.updateTaskStatus(taskRef, "done", ctx);
185
+ }
186
+ catch (err) {
187
+ if (err instanceof CitadelTaskRefNotFoundError) {
188
+ expect(err.task_ref).toContain("nonexistent");
189
+ }
190
+ }
191
+ });
192
+ test("sprint not active error includes current status", async () => {
193
+ const port = factory();
194
+ const evidence = makeVerificationEvidence();
195
+ const ctx = makeActionContext({ agentTier: "T3" });
196
+ try {
197
+ await port.sealSprint("completed-sprint", evidence, ctx);
198
+ }
199
+ catch (err) {
200
+ if (err instanceof CitadelSprintNotActiveError) {
201
+ expect(err.sprint_id).toBe("completed-sprint");
202
+ expect(err.current_status).toBeDefined();
203
+ }
204
+ }
205
+ });
206
+ test("T4 agents can seal sprints", async () => {
207
+ const port = factory();
208
+ const evidence = makeVerificationEvidence();
209
+ const ctx = makeActionContext({ agentTier: "T4" });
210
+ try {
211
+ const claim = await port.sealSprint("sprint-1", evidence, ctx);
212
+ expect(claim.sealed_by_agent).toBe(ctx.agentId);
213
+ }
214
+ catch (err) {
215
+ // May fail for other reasons (sprint not found), but not tier violation
216
+ if (err instanceof CitadelTierViolationError) {
217
+ throw new Error("T4 should not have tier violation");
218
+ }
219
+ }
220
+ });
221
+ });
222
+ };
223
+ // ─── Mock implementation ──────────────────────────────────────────────────
224
+ class MockCitadelActionPort {
225
+ sprintStates = new Map();
226
+ taskStates = new Map();
227
+ constructor() {
228
+ // Pre-populate some sprint states
229
+ this.sprintStates.set("sprint-1", {
230
+ status: "active",
231
+ tasks: new Map([
232
+ ["test-project:sprint-1:task-001", "todo"],
233
+ ["test-project:sprint-1:task-002", "in_progress"],
234
+ ]),
235
+ });
236
+ this.sprintStates.set("completed-sprint", {
237
+ status: "completed",
238
+ tasks: new Map(),
239
+ });
240
+ }
241
+ async createSprint(input, ctx) {
242
+ // T2+ only
243
+ if (ctx.agentTier === "T1") {
244
+ throw new CitadelTierViolationError(`T1 agents cannot create sprints`, "T2", ctx.agentTier, "createSprint");
245
+ }
246
+ const sprintId = `sprint-${Math.floor(Math.random() * 10000)}`;
247
+ this.sprintStates.set(sprintId, {
248
+ status: "planned",
249
+ tasks: new Map(),
250
+ });
251
+ return {
252
+ sprint_id: sprintId,
253
+ project_slug: input.project_slug,
254
+ name: input.name,
255
+ created_at: new Date(),
256
+ };
257
+ }
258
+ async updateTaskStatus(ref, status, ctx) {
259
+ // Check if task exists
260
+ if (!this.taskStates.has(ref.ref) && !ref.ref.startsWith("test-project")) {
261
+ throw new CitadelTaskRefNotFoundError(ref.ref);
262
+ }
263
+ // Get current status
264
+ const currentStatus = this.taskStates.get(ref.ref) || "todo";
265
+ // Validate state transitions
266
+ const validTransitions = {
267
+ todo: ["in_progress", "blocked", "rejected"],
268
+ in_progress: ["done", "blocked", "rejected"],
269
+ done: ["blocked", "rejected"],
270
+ blocked: ["in_progress", "rejected"],
271
+ rejected: [],
272
+ };
273
+ if (!validTransitions[currentStatus]?.includes(status)) {
274
+ throw new CitadelInvalidStateTransitionError(currentStatus, status);
275
+ }
276
+ this.taskStates.set(ref.ref, status);
277
+ }
278
+ async sealSprint(sprintId, evidence, ctx) {
279
+ // T3+ only
280
+ if (ctx.agentTier !== "T3" && ctx.agentTier !== "T4") {
281
+ throw new CitadelTierViolationError(`${ctx.agentTier} agents cannot seal sprints`, "T3", ctx.agentTier, "sealSprint");
282
+ }
283
+ // Check if sprint exists and is active
284
+ const sprintState = this.sprintStates.get(sprintId);
285
+ if (!sprintState) {
286
+ throw new CitadelSprintNotActiveError(sprintId, "not_found");
287
+ }
288
+ if (sprintState.status !== "active") {
289
+ throw new CitadelSprintNotActiveError(sprintId, sprintState.status);
290
+ }
291
+ // Update sprint status to completed
292
+ sprintState.status = "completed";
293
+ return {
294
+ sprint_id: sprintId,
295
+ sealed_at: new Date(),
296
+ verification_evidence_hash: evidence.evidence_hash,
297
+ sealed_by_agent: ctx.agentId,
298
+ anchor_id: `anchor-${crypto.randomUUID()}`,
299
+ };
300
+ }
301
+ async recordDecision(decision, ctx) {
302
+ // T2+ only
303
+ if (ctx.agentTier === "T1") {
304
+ throw new CitadelTierViolationError(`T1 agents cannot record decisions`, "T2", ctx.agentTier, "recordDecision");
305
+ }
306
+ const cascade = ctx.agentTier === "T3" || ctx.agentTier === "T4";
307
+ return {
308
+ decision_id: `decision-${crypto.randomUUID()}`,
309
+ created_at: new Date(),
310
+ archived_to_brain: true,
311
+ cascade_triggered: cascade,
312
+ };
313
+ }
314
+ }
315
+ // ─── Default contract application ──────────────────────────────────────────
316
+ citadelActionPortContract(() => new MockCitadelActionPort());
317
+ //# sourceMappingURL=citadel-action.contract.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citadel-action.contract.test.js","sourceRoot":"","sources":["../../src/ports/citadel-action.contract.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * CitadelActionPort — host adapter for Citadel governance operations.
3
+ *
4
+ * Implements tiered access control (T1-T4) per BYOA (Bring Your Own Agent) framework.
5
+ * Only T3+ agents can seal sprints, T1 is read-only, T4 requires on-chain signing.
6
+ *
7
+ * Source: MASTER-PLAN-v5.md §1.3 (CC service layer) + vauban-gouvernance/rules/ai/tiered-gates.md
8
+ */
9
+ export type AgentTier = "T1" | "T2" | "T3" | "T4";
10
+ export type TaskStatus = "todo" | "in_progress" | "done" | "blocked" | "rejected";
11
+ export interface SprintInput {
12
+ readonly name: string;
13
+ readonly goal?: string;
14
+ readonly start_date?: string;
15
+ readonly end_date?: string;
16
+ readonly project_slug: string;
17
+ }
18
+ export interface TaskRef {
19
+ readonly ref: string;
20
+ readonly project: string;
21
+ readonly sprint: string;
22
+ readonly task_id: string;
23
+ }
24
+ export interface VerificationEvidence {
25
+ readonly passed: boolean;
26
+ readonly evidence_text: string;
27
+ readonly evidence_hash: string;
28
+ }
29
+ export interface DecisionInput {
30
+ readonly decision: string;
31
+ readonly context: string;
32
+ readonly options: readonly string[];
33
+ readonly chosen: string;
34
+ readonly rationale: string;
35
+ readonly tags?: readonly string[];
36
+ }
37
+ export interface ActionContext {
38
+ readonly agentId: string;
39
+ readonly agentTier: AgentTier;
40
+ readonly runId: string;
41
+ readonly tenantId?: string;
42
+ }
43
+ export interface SprintRef {
44
+ readonly sprint_id: string;
45
+ readonly project_slug: string;
46
+ readonly name: string;
47
+ readonly created_at: Date;
48
+ }
49
+ export interface SealedSprintClaim {
50
+ readonly sprint_id: string;
51
+ readonly sealed_at: Date;
52
+ readonly verification_evidence_hash: string;
53
+ readonly sealed_by_agent: string;
54
+ readonly anchor_id?: string;
55
+ }
56
+ export interface DecisionClaim {
57
+ readonly decision_id: string;
58
+ readonly created_at: Date;
59
+ readonly archived_to_brain: boolean;
60
+ readonly cascade_triggered?: boolean;
61
+ }
62
+ export interface CitadelActionPort {
63
+ /**
64
+ * Create a new sprint in a project.
65
+ * T2+ only. T1 throws CitadelTierViolationError.
66
+ */
67
+ createSprint(input: SprintInput, ctx: ActionContext): Promise<SprintRef>;
68
+ /**
69
+ * Update task status within a sprint.
70
+ * T2+ can transition: todo→in_progress, in_progress→done, *→blocked.
71
+ * T3+ can seal (→done with verification).
72
+ */
73
+ updateTaskStatus(ref: TaskRef, status: TaskStatus, ctx: ActionContext): Promise<void>;
74
+ /**
75
+ * Seal a completed sprint with verification evidence.
76
+ * T3+ only. Emits SealedSprintClaim (anchor to L3 deferred Phase 1+).
77
+ * Verification evidence hash proves execution of verification_scenario.
78
+ */
79
+ sealSprint(sprintId: string, evidence: VerificationEvidence, ctx: ActionContext): Promise<SealedSprintClaim>;
80
+ /**
81
+ * Record a decision to governance layer.
82
+ * T2+ can record. T3+ triggers optional ADR cascade hook.
83
+ * Returns DecisionClaim with Brain archive status.
84
+ */
85
+ recordDecision(decision: DecisionInput, ctx: ActionContext): Promise<DecisionClaim>;
86
+ }
87
+ export declare class CitadelTierViolationError extends Error {
88
+ readonly required_tier: AgentTier;
89
+ readonly actual_tier: AgentTier;
90
+ readonly operation: string;
91
+ readonly cause?: unknown | undefined;
92
+ constructor(message: string, required_tier: AgentTier, actual_tier: AgentTier, operation: string, cause?: unknown | undefined);
93
+ }
94
+ export declare class CitadelTaskRefNotFoundError extends Error {
95
+ readonly task_ref: string;
96
+ readonly cause?: unknown | undefined;
97
+ constructor(task_ref: string, cause?: unknown | undefined);
98
+ }
99
+ export declare class CitadelSprintNotActiveError extends Error {
100
+ readonly sprint_id: string;
101
+ readonly current_status: string;
102
+ readonly cause?: unknown | undefined;
103
+ constructor(sprint_id: string, current_status: string, cause?: unknown | undefined);
104
+ }
105
+ export declare class CitadelInvalidStateTransitionError extends Error {
106
+ readonly current_status: TaskStatus;
107
+ readonly requested_status: TaskStatus;
108
+ readonly cause?: unknown | undefined;
109
+ constructor(current_status: TaskStatus, requested_status: TaskStatus, cause?: unknown | undefined);
110
+ }
111
+ //# sourceMappingURL=citadel-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citadel-action.d.ts","sourceRoot":"","sources":["../../src/ports/citadel-action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * CitadelActionPort — host adapter for Citadel governance operations.
3
+ *
4
+ * Implements tiered access control (T1-T4) per BYOA (Bring Your Own Agent) framework.
5
+ * Only T3+ agents can seal sprints, T1 is read-only, T4 requires on-chain signing.
6
+ *
7
+ * Source: MASTER-PLAN-v5.md §1.3 (CC service layer) + vauban-gouvernance/rules/ai/tiered-gates.md
8
+ */
9
+ // ─── Typed errors ─────────────────────────────────────────────────────────
10
+ export class CitadelTierViolationError extends Error {
11
+ required_tier;
12
+ actual_tier;
13
+ operation;
14
+ cause;
15
+ constructor(message, required_tier, actual_tier, operation, cause) {
16
+ super(message);
17
+ this.required_tier = required_tier;
18
+ this.actual_tier = actual_tier;
19
+ this.operation = operation;
20
+ this.cause = cause;
21
+ this.name = "CitadelTierViolationError";
22
+ Object.setPrototypeOf(this, new.target.prototype);
23
+ }
24
+ }
25
+ export class CitadelTaskRefNotFoundError extends Error {
26
+ task_ref;
27
+ cause;
28
+ constructor(task_ref, cause) {
29
+ super(`Task not found: ${task_ref}`);
30
+ this.task_ref = task_ref;
31
+ this.cause = cause;
32
+ this.name = "CitadelTaskRefNotFoundError";
33
+ Object.setPrototypeOf(this, new.target.prototype);
34
+ }
35
+ }
36
+ export class CitadelSprintNotActiveError extends Error {
37
+ sprint_id;
38
+ current_status;
39
+ cause;
40
+ constructor(sprint_id, current_status, cause) {
41
+ super(`Sprint ${sprint_id} is not active (status: ${current_status}). Cannot seal.`);
42
+ this.sprint_id = sprint_id;
43
+ this.current_status = current_status;
44
+ this.cause = cause;
45
+ this.name = "CitadelSprintNotActiveError";
46
+ Object.setPrototypeOf(this, new.target.prototype);
47
+ }
48
+ }
49
+ export class CitadelInvalidStateTransitionError extends Error {
50
+ current_status;
51
+ requested_status;
52
+ cause;
53
+ constructor(current_status, requested_status, cause) {
54
+ super(`Invalid state transition: ${current_status} → ${requested_status}`);
55
+ this.current_status = current_status;
56
+ this.requested_status = requested_status;
57
+ this.cause = cause;
58
+ this.name = "CitadelInvalidStateTransitionError";
59
+ Object.setPrototypeOf(this, new.target.prototype);
60
+ }
61
+ }
62
+ //# sourceMappingURL=citadel-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citadel-action.js","sourceRoot":"","sources":["../../src/ports/citadel-action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAmHH,6EAA6E;AAE7E,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAGhC;IACA;IACA;IACA;IALlB,YACE,OAAe,EACC,aAAwB,EACxB,WAAsB,EACtB,SAAiB,EACjB,KAAe;QAE/B,KAAK,CAAC,OAAO,CAAC,CAAC;QALC,kBAAa,GAAb,aAAa,CAAW;QACxB,gBAAW,GAAX,WAAW,CAAW;QACtB,cAAS,GAAT,SAAS,CAAQ;QACjB,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAElC;IACA;IAFlB,YACkB,QAAgB,EAChB,KAAe;QAE/B,KAAK,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;QAHrB,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAElC;IACA;IACA;IAHlB,YACkB,SAAiB,EACjB,cAAsB,EACtB,KAAe;QAE/B,KAAK,CACH,UAAU,SAAS,2BAA2B,cAAc,iBAAiB,CAC9E,CAAC;QANc,cAAS,GAAT,SAAS,CAAQ;QACjB,mBAAc,GAAd,cAAc,CAAQ;QACtB,UAAK,GAAL,KAAK,CAAU;QAK/B,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAED,MAAM,OAAO,kCAAmC,SAAQ,KAAK;IAEzC;IACA;IACA;IAHlB,YACkB,cAA0B,EAC1B,gBAA4B,EAC5B,KAAe;QAE/B,KAAK,CAAC,6BAA6B,cAAc,MAAM,gBAAgB,EAAE,CAAC,CAAC;QAJ3D,mBAAc,GAAd,cAAc,CAAY;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAY;QAC5B,UAAK,GAAL,KAAK,CAAU;QAG/B,IAAI,CAAC,IAAI,GAAG,oCAAoC,CAAC;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * ComplianceContractPort — runtime compliance gate for the Vauban Integration Spine.
3
+ *
4
+ * Implements the G-2 Cedar pivot from S5 spec:
5
+ * - pre-step: block or warn before capability invocation
6
+ * - post-step: audit trail after invocation
7
+ * - validateManifest: conflict detection at registration
8
+ *
9
+ * Cedar policy bundles: eu.gdpr / eu.mica / eu.tfr (V0 scope per S5 Q5.1).
10
+ */
11
+ export type Jurisdiction = "FR.v1" | "EU.v1" | "CH.v1" | "UK.v1" | "SG.v1";
12
+ export declare const SUPPORTED_JURISDICTIONS_V0: Jurisdiction[];
13
+ export type LegalBasisRef = "gdpr.art6_1_a" | "gdpr.art6_1_b" | "gdpr.art6_1_c" | "gdpr.art6_1_f" | "mica.art14" | "tfr.art4" | "cjeu.c520_21";
14
+ export type LegalBasisDomain = "processing" | "retention" | "transfer" | "consent";
15
+ export interface LegalBasisDecl {
16
+ domain: LegalBasisDomain;
17
+ basis: LegalBasisRef;
18
+ scope?: Jurisdiction[];
19
+ }
20
+ export type DataClass = "public" | "internal" | "confidential" | "secret";
21
+ export type EnforcementLevel = "block" | "warn" | "log";
22
+ export type RuleSource = "declared" | "normative";
23
+ export interface ComplianceRule {
24
+ readonly id: string;
25
+ readonly source: RuleSource;
26
+ readonly jurisdiction: Jurisdiction;
27
+ readonly legal_ref: LegalBasisRef;
28
+ readonly enforcement: EnforcementLevel;
29
+ readonly rationale: string;
30
+ readonly authority?: string;
31
+ }
32
+ export type ComplianceMode = "strict" | "audit_only";
33
+ export interface ComplianceContract {
34
+ readonly jurisdictions: Jurisdiction[];
35
+ readonly legal_bases: LegalBasisDecl[];
36
+ readonly data_class: DataClass;
37
+ readonly mode: ComplianceMode;
38
+ readonly tier: string;
39
+ readonly rules: ComplianceRule[];
40
+ readonly retention: string;
41
+ readonly audit_format?: "json" | "pdf";
42
+ }
43
+ export interface CapabilityInvocation {
44
+ readonly action: string;
45
+ readonly tenantId: string;
46
+ readonly dataClass: DataClass;
47
+ readonly legalBasis?: LegalBasisRef;
48
+ readonly jurisdiction?: Jurisdiction;
49
+ readonly requiresConsent?: boolean;
50
+ readonly requiresVerifiedHuman?: boolean;
51
+ readonly stepIndex?: number;
52
+ readonly workflowRunId?: string;
53
+ }
54
+ export interface TenantContext {
55
+ readonly tenantId: string;
56
+ readonly glacisMode: "verified" | "degraded_verified" | "unverified";
57
+ readonly verifiedHuman: boolean;
58
+ readonly jurisdictions: Jurisdiction[];
59
+ }
60
+ export interface ComplianceViolation {
61
+ readonly ruleId: string;
62
+ readonly articleRef: string;
63
+ readonly description: string;
64
+ readonly severity: "block" | "warn";
65
+ readonly remediationHint?: string;
66
+ }
67
+ export type ComplianceGate = {
68
+ readonly decision: "proceed";
69
+ readonly warnings: ComplianceViolation[];
70
+ } | {
71
+ readonly decision: "block";
72
+ readonly violation: ComplianceViolation;
73
+ };
74
+ export interface ComplianceAuditResult {
75
+ readonly decision: "proceed" | "block" | "warn";
76
+ readonly violations: ComplianceViolation[];
77
+ readonly auditClaimEmitted: boolean;
78
+ readonly evaluatedRules: number;
79
+ }
80
+ export interface PolicyConflict {
81
+ readonly rule1Id: string;
82
+ readonly rule2Id: string;
83
+ readonly description: string;
84
+ readonly status: "CONFLICT" | "CONFLICT_UNDETERMINED";
85
+ }
86
+ export interface ManifestValidationResult {
87
+ readonly valid: boolean;
88
+ readonly conflicts: PolicyConflict[];
89
+ readonly missingLegalBases: string[];
90
+ readonly jurisdictionWarnings: string[];
91
+ readonly evaluationTimeMs: number;
92
+ }
93
+ export interface ComplianceContractPort {
94
+ /**
95
+ * Pre-step gate — called before any capability invocation.
96
+ * In 'strict' mode: block on first violation.
97
+ * In 'audit_only' mode: never block, accumulate warnings.
98
+ */
99
+ preStep(invocation: CapabilityInvocation, contract: ComplianceContract, ctx: TenantContext): Promise<ComplianceGate>;
100
+ /**
101
+ * Post-step audit — called after capability invocation to emit audit claims.
102
+ * Always runs regardless of pre-step outcome.
103
+ */
104
+ postStep(invocation: CapabilityInvocation, contract: ComplianceContract, ctx: TenantContext): Promise<ComplianceAuditResult>;
105
+ /**
106
+ * Manifest validation — called at registration, before any workflow runs.
107
+ * Cedar conflict detection per G-3. Timeout → CONFLICT_UNDETERMINED (not fail).
108
+ */
109
+ validateManifest(contract: ComplianceContract, opts?: {
110
+ timeoutMs?: number;
111
+ }): Promise<ManifestValidationResult>;
112
+ }
113
+ export declare class CompliancePolicyError extends Error {
114
+ readonly ruleId: string;
115
+ readonly cause?: unknown | undefined;
116
+ constructor(message: string, ruleId: string, cause?: unknown | undefined);
117
+ }
118
+ export declare class ComplianceEvaluationTimeoutError extends Error {
119
+ readonly timeoutMs: number;
120
+ readonly cause?: unknown | undefined;
121
+ constructor(timeoutMs: number, cause?: unknown | undefined);
122
+ }
123
+ //# sourceMappingURL=compliance-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-contract.d.ts","sourceRoot":"","sources":["../../src/ports/compliance-contract.ts"],"names":[],"mappings":"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"}