@noodleseed/one 0.121.0 → 0.123.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 (343) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/catalog-data-hosted-observability.d.ts.map +1 -1
  5. package/dist/commands/catalog-data-hosted-observability.js +33 -0
  6. package/dist/commands/catalog-data-hosted-observability.js.map +1 -1
  7. package/dist/commands/deploy-version-resolution.js +1 -1
  8. package/dist/commands/deploy-version-resolution.js.map +1 -1
  9. package/dist/commands/knowledge.d.ts +7 -0
  10. package/dist/commands/knowledge.d.ts.map +1 -0
  11. package/dist/commands/knowledge.js +129 -0
  12. package/dist/commands/knowledge.js.map +1 -0
  13. package/dist/commands/session.d.ts.map +1 -1
  14. package/dist/commands/session.js +5 -2
  15. package/dist/commands/session.js.map +1 -1
  16. package/dist/deploy.d.ts.map +1 -1
  17. package/dist/deploy.js +19 -2
  18. package/dist/deploy.js.map +1 -1
  19. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.d.ts.map +1 -1
  20. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js +4 -0
  21. package/node_modules/@noodle-borg/agent-kit/dist/curated/command-groups.js.map +1 -1
  22. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
  23. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  24. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  25. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +1 -0
  26. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  27. package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js +4 -4
  28. package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js +8 -8
  29. package/node_modules/@noodle-borg/agent-kit/dist/plugin-submission.js.map +1 -1
  30. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js +1 -1
  31. package/node_modules/@noodle-borg/agent-kit/dist/skill-operations-refs.js.map +1 -1
  32. package/node_modules/@noodle-borg/agent-kit/package.json +1 -1
  33. package/node_modules/@noodle-borg/assistant-gateway/dist/artifact-projection.d.ts +1 -1
  34. package/node_modules/@noodle-borg/assistant-gateway/dist/artifact-projection.d.ts.map +1 -1
  35. package/node_modules/@noodle-borg/assistant-gateway/dist/artifact-projection.js +7 -1
  36. package/node_modules/@noodle-borg/assistant-gateway/dist/artifact-projection.js.map +1 -1
  37. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-interactive.d.ts +1 -1
  38. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-interactive.d.ts.map +1 -1
  39. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-interactive.js.map +1 -1
  40. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-presentation.d.ts.map +1 -1
  41. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-presentation.js +1 -1
  42. package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-presentation.js.map +1 -1
  43. package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts +2 -0
  44. package/node_modules/@noodle-borg/assistant-gateway/dist/index.d.ts.map +1 -1
  45. package/node_modules/@noodle-borg/assistant-gateway/dist/index.js +2 -0
  46. package/node_modules/@noodle-borg/assistant-gateway/dist/index.js.map +1 -1
  47. package/node_modules/@noodle-borg/assistant-gateway/package.json +3 -1
  48. package/node_modules/@noodle-borg/deploy-client/dist/deploy-knowledge.d.ts +21 -0
  49. package/node_modules/@noodle-borg/deploy-client/dist/deploy-knowledge.d.ts.map +1 -0
  50. package/node_modules/@noodle-borg/deploy-client/dist/deploy-knowledge.js +115 -0
  51. package/node_modules/@noodle-borg/deploy-client/dist/deploy-knowledge.js.map +1 -0
  52. package/node_modules/@noodle-borg/deploy-client/dist/index.d.ts +4 -0
  53. package/node_modules/@noodle-borg/deploy-client/dist/index.d.ts.map +1 -0
  54. package/node_modules/@noodle-borg/deploy-client/dist/index.js +4 -0
  55. package/node_modules/@noodle-borg/deploy-client/dist/index.js.map +1 -0
  56. package/node_modules/@noodle-borg/deploy-client/package.json +34 -0
  57. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts +30 -9
  58. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.d.ts.map +1 -1
  59. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js +21 -6
  60. package/node_modules/@noodle-borg/developer-mcp/dist/contracts.js.map +1 -1
  61. package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts +2 -1
  62. package/node_modules/@noodle-borg/developer-mcp/dist/port.d.ts.map +1 -1
  63. package/node_modules/@noodle-borg/developer-mcp/dist/port.js.map +1 -1
  64. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js +3 -3
  65. package/node_modules/@noodle-borg/developer-mcp/dist/prompts.js.map +1 -1
  66. package/node_modules/@noodle-borg/developer-mcp/dist/resources.d.ts.map +1 -1
  67. package/node_modules/@noodle-borg/developer-mcp/dist/resources.js +10 -9
  68. package/node_modules/@noodle-borg/developer-mcp/dist/resources.js.map +1 -1
  69. package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts +4 -3
  70. package/node_modules/@noodle-borg/developer-mcp/dist/results.d.ts.map +1 -1
  71. package/node_modules/@noodle-borg/developer-mcp/dist/results.js +5 -19
  72. package/node_modules/@noodle-borg/developer-mcp/dist/results.js.map +1 -1
  73. package/node_modules/@noodle-borg/developer-mcp/dist/server.js +3 -3
  74. package/node_modules/@noodle-borg/developer-mcp/dist/server.js.map +1 -1
  75. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.d.ts.map +1 -1
  76. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js +6 -25
  77. package/node_modules/@noodle-borg/developer-mcp/dist/tools/apps.js.map +1 -1
  78. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts +16 -3
  79. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.d.ts.map +1 -1
  80. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js +22 -19
  81. package/node_modules/@noodle-borg/developer-mcp/dist/tools/context.js.map +1 -1
  82. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.d.ts.map +1 -1
  83. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js +3 -9
  84. package/node_modules/@noodle-borg/developer-mcp/dist/tools/deployments.js.map +1 -1
  85. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.d.ts.map +1 -1
  86. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js +15 -16
  87. package/node_modules/@noodle-borg/developer-mcp/dist/tools/diagnose.js.map +1 -1
  88. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.d.ts.map +1 -1
  89. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js +9 -17
  90. package/node_modules/@noodle-borg/developer-mcp/dist/tools/operations.js.map +1 -1
  91. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.d.ts.map +1 -1
  92. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js +7 -10
  93. package/node_modules/@noodle-borg/developer-mcp/dist/tools/rollback.js.map +1 -1
  94. package/node_modules/@noodle-borg/knowledge/dist/bm25.d.ts.map +1 -1
  95. package/node_modules/@noodle-borg/knowledge/dist/bm25.js +4 -0
  96. package/node_modules/@noodle-borg/knowledge/dist/bm25.js.map +1 -1
  97. package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts +41 -17
  98. package/node_modules/@noodle-borg/knowledge/dist/budget.d.ts.map +1 -1
  99. package/node_modules/@noodle-borg/knowledge/dist/budget.js +0 -0
  100. package/node_modules/@noodle-borg/knowledge/dist/budget.js.map +1 -1
  101. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts +4 -0
  102. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.d.ts.map +1 -1
  103. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js +28 -20
  104. package/node_modules/@noodle-borg/knowledge/dist/google-agent-search.js.map +1 -1
  105. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts +1 -0
  106. package/node_modules/@noodle-borg/knowledge/dist/index.d.ts.map +1 -1
  107. package/node_modules/@noodle-borg/knowledge/dist/index.js +1 -0
  108. package/node_modules/@noodle-borg/knowledge/dist/index.js.map +1 -1
  109. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts +22 -0
  110. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.d.ts.map +1 -0
  111. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js +102 -0
  112. package/node_modules/@noodle-borg/knowledge/dist/postgres-budget-store.js.map +1 -0
  113. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts +7 -4
  114. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.d.ts.map +1 -1
  115. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js +110 -25
  116. package/node_modules/@noodle-borg/knowledge/dist/postgres-revision-store.js.map +1 -1
  117. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts +35 -4
  118. package/node_modules/@noodle-borg/knowledge/dist/revision-store.d.ts.map +1 -1
  119. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js +73 -17
  120. package/node_modules/@noodle-borg/knowledge/dist/revision-store.js.map +1 -1
  121. package/node_modules/@noodle-borg/knowledge/package.json +4 -0
  122. package/node_modules/@noodle-borg/knowledge-operations/dist/codec.d.ts +12 -0
  123. package/node_modules/@noodle-borg/knowledge-operations/dist/codec.d.ts.map +1 -0
  124. package/node_modules/@noodle-borg/knowledge-operations/dist/codec.js +7 -0
  125. package/node_modules/@noodle-borg/knowledge-operations/dist/codec.js.map +1 -0
  126. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.d.ts +16 -0
  127. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.d.ts.map +1 -0
  128. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.js +41 -0
  129. package/node_modules/@noodle-borg/knowledge-operations/dist/dispatch.js.map +1 -0
  130. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.d.ts +40 -0
  131. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.d.ts.map +1 -0
  132. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.js +54 -0
  133. package/node_modules/@noodle-borg/knowledge-operations/dist/executor.js.map +1 -0
  134. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.d.ts +15 -0
  135. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.d.ts.map +1 -0
  136. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.js +50 -0
  137. package/node_modules/@noodle-borg/knowledge-operations/dist/google-identity.js.map +1 -0
  138. package/node_modules/@noodle-borg/knowledge-operations/dist/http.d.ts +16 -0
  139. package/node_modules/@noodle-borg/knowledge-operations/dist/http.d.ts.map +1 -0
  140. package/node_modules/@noodle-borg/knowledge-operations/dist/http.js +18 -0
  141. package/node_modules/@noodle-borg/knowledge-operations/dist/http.js.map +1 -0
  142. package/node_modules/@noodle-borg/knowledge-operations/dist/index.d.ts +18 -0
  143. package/node_modules/@noodle-borg/knowledge-operations/dist/index.d.ts.map +1 -0
  144. package/node_modules/@noodle-borg/knowledge-operations/dist/index.js +18 -0
  145. package/node_modules/@noodle-borg/knowledge-operations/dist/index.js.map +1 -0
  146. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.d.ts +29 -0
  147. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.d.ts.map +1 -0
  148. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.js +53 -0
  149. package/node_modules/@noodle-borg/knowledge-operations/dist/managed-google.js.map +1 -0
  150. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.d.ts +21 -0
  151. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.d.ts.map +1 -0
  152. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.js +28 -0
  153. package/node_modules/@noodle-borg/knowledge-operations/dist/paths.js.map +1 -0
  154. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.d.ts +60 -0
  155. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.d.ts.map +1 -0
  156. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.js +230 -0
  157. package/node_modules/@noodle-borg/knowledge-operations/dist/publication.js.map +1 -0
  158. package/node_modules/@noodle-borg/knowledge-operations/dist/routes.d.ts +38 -0
  159. package/node_modules/@noodle-borg/knowledge-operations/dist/routes.d.ts.map +1 -0
  160. package/node_modules/@noodle-borg/knowledge-operations/dist/routes.js +100 -0
  161. package/node_modules/@noodle-borg/knowledge-operations/dist/routes.js.map +1 -0
  162. package/node_modules/@noodle-borg/knowledge-operations/dist/search-port.d.ts +31 -0
  163. package/node_modules/@noodle-borg/knowledge-operations/dist/search-port.d.ts.map +1 -0
  164. package/node_modules/@noodle-borg/knowledge-operations/dist/search-port.js +36 -0
  165. package/node_modules/@noodle-borg/knowledge-operations/dist/search-port.js.map +1 -0
  166. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.d.ts +56 -0
  167. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.d.ts.map +1 -0
  168. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.js +129 -0
  169. package/node_modules/@noodle-borg/knowledge-operations/dist/service-wiring.js.map +1 -0
  170. package/node_modules/@noodle-borg/knowledge-operations/dist/staging-store.d.ts +38 -0
  171. package/node_modules/@noodle-borg/knowledge-operations/dist/staging-store.d.ts.map +1 -0
  172. package/node_modules/@noodle-borg/knowledge-operations/dist/staging-store.js +77 -0
  173. package/node_modules/@noodle-borg/knowledge-operations/dist/staging-store.js.map +1 -0
  174. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.d.ts +28 -0
  175. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.d.ts.map +1 -0
  176. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.js +66 -0
  177. package/node_modules/@noodle-borg/knowledge-operations/dist/status-routes.js.map +1 -0
  178. package/node_modules/@noodle-borg/knowledge-operations/package.json +34 -0
  179. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.d.ts.map +1 -1
  180. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js +22 -1
  181. package/node_modules/@noodle-borg/protocol/dist/handlers/tools.js.map +1 -1
  182. package/node_modules/@noodle-borg/protocol/dist/knowledge-tool.d.ts +28 -0
  183. package/node_modules/@noodle-borg/protocol/dist/knowledge-tool.d.ts.map +1 -0
  184. package/node_modules/@noodle-borg/protocol/dist/knowledge-tool.js +26 -0
  185. package/node_modules/@noodle-borg/protocol/dist/knowledge-tool.js.map +1 -0
  186. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts +5 -1
  187. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  188. package/node_modules/@noodle-borg/protocol/dist/mapping.js +12 -1
  189. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  190. package/node_modules/@noodle-borg/protocol/dist/v2/server.d.ts.map +1 -1
  191. package/node_modules/@noodle-borg/protocol/dist/v2/server.js +23 -2
  192. package/node_modules/@noodle-borg/protocol/dist/v2/server.js.map +1 -1
  193. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +28 -0
  194. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
  195. package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
  196. package/node_modules/@noodle-borg/runtime/dist/index.d.ts +1 -1
  197. package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
  198. package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
  199. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts +6 -4
  200. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.d.ts.map +1 -1
  201. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js +13 -16
  202. package/node_modules/@noodle-borg/service/dist/auth/developer-grant-guard.js.map +1 -1
  203. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts +3 -2
  204. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.d.ts.map +1 -1
  205. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js +66 -47
  206. package/node_modules/@noodle-borg/service/dist/developer-mcp/control-plane-adapter.js.map +1 -1
  207. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +15 -16
  209. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -1
  210. package/node_modules/@noodle-borg/service/dist/index.d.ts +2 -2
  211. package/node_modules/@noodle-borg/service/dist/index.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/service/dist/index.js +1 -1
  213. package/node_modules/@noodle-borg/service/dist/index.js.map +1 -1
  214. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts +0 -2
  215. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.d.ts.map +1 -1
  216. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js +0 -16
  217. package/node_modules/@noodle-borg/service/dist/oauth/consent-claims.js.map +1 -1
  218. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts +3 -28
  219. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.d.ts.map +1 -1
  220. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js +8 -67
  221. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-authorizer.js.map +1 -1
  222. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts +0 -4
  223. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.d.ts.map +1 -1
  224. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js +1 -14
  225. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-bootstrap.js.map +1 -1
  226. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts +1 -1
  227. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.d.ts.map +1 -1
  228. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js +45 -36
  229. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-flow.js.map +1 -1
  230. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts +2 -2
  231. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.d.ts.map +1 -1
  232. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js +20 -229
  233. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-page.js.map +1 -1
  234. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts +3 -2
  235. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.d.ts.map +1 -1
  236. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js +70 -36
  237. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant-store-postgres.js.map +1 -1
  238. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts +17 -6
  239. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.d.ts.map +1 -1
  240. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js +98 -26
  241. package/node_modules/@noodle-borg/service/dist/oauth/developer-grant.js.map +1 -1
  242. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.d.ts.map +1 -1
  243. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +0 -2
  244. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
  245. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js +1 -1
  246. package/node_modules/@noodle-borg/service/dist/oauth/upstream-consent.js.map +1 -1
  247. package/node_modules/@noodle-borg/service/dist/options.d.ts +3 -0
  248. package/node_modules/@noodle-borg/service/dist/options.d.ts.map +1 -1
  249. package/node_modules/@noodle-borg/service/dist/registry-compile.d.ts +2 -0
  250. package/node_modules/@noodle-borg/service/dist/registry-compile.d.ts.map +1 -1
  251. package/node_modules/@noodle-borg/service/dist/registry-compile.js +6 -0
  252. package/node_modules/@noodle-borg/service/dist/registry-compile.js.map +1 -1
  253. package/node_modules/@noodle-borg/service/dist/registry-recover.d.ts +26 -0
  254. package/node_modules/@noodle-borg/service/dist/registry-recover.d.ts.map +1 -0
  255. package/node_modules/@noodle-borg/service/dist/registry-recover.js +58 -0
  256. package/node_modules/@noodle-borg/service/dist/registry-recover.js.map +1 -0
  257. package/node_modules/@noodle-borg/service/dist/registry-rollback.d.ts +10 -0
  258. package/node_modules/@noodle-borg/service/dist/registry-rollback.d.ts.map +1 -1
  259. package/node_modules/@noodle-borg/service/dist/registry-rollback.js +25 -0
  260. package/node_modules/@noodle-borg/service/dist/registry-rollback.js.map +1 -1
  261. package/node_modules/@noodle-borg/service/dist/registry.d.ts +5 -0
  262. package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
  263. package/node_modules/@noodle-borg/service/dist/registry.js +36 -78
  264. package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
  265. package/node_modules/@noodle-borg/service/dist/routes/analytics.js +3 -3
  266. package/node_modules/@noodle-borg/service/dist/routes/analytics.js.map +1 -1
  267. package/node_modules/@noodle-borg/service/dist/routes/apps.d.ts.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/routes/apps.js +6 -27
  269. package/node_modules/@noodle-borg/service/dist/routes/apps.js.map +1 -1
  270. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts.map +1 -1
  271. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +38 -14
  272. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js.map +1 -1
  273. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.d.ts.map +1 -1
  274. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js +1 -1
  275. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-replay.js.map +1 -1
  276. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.d.ts.map +1 -1
  277. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js +1 -1
  278. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-stream.js.map +1 -1
  279. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts.map +1 -1
  280. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +1 -3
  281. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js.map +1 -1
  282. package/node_modules/@noodle-borg/service/dist/routes/assistant-knowledge.d.ts +32 -0
  283. package/node_modules/@noodle-borg/service/dist/routes/assistant-knowledge.d.ts.map +1 -0
  284. package/node_modules/@noodle-borg/service/dist/routes/assistant-knowledge.js +42 -0
  285. package/node_modules/@noodle-borg/service/dist/routes/assistant-knowledge.js.map +1 -0
  286. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
  287. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +11 -3
  288. package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
  289. package/node_modules/@noodle-borg/service/dist/routes/config-values.d.ts.map +1 -1
  290. package/node_modules/@noodle-borg/service/dist/routes/config-values.js +5 -8
  291. package/node_modules/@noodle-borg/service/dist/routes/config-values.js.map +1 -1
  292. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts +7 -6
  293. package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
  294. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +7 -6
  295. package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
  296. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js +1 -1
  297. package/node_modules/@noodle-borg/service/dist/routes/deploy-preflight.js.map +1 -1
  298. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.d.ts.map +1 -1
  299. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js +2 -7
  300. package/node_modules/@noodle-borg/service/dist/routes/deployment-package.js.map +1 -1
  301. package/node_modules/@noodle-borg/service/dist/routes/deployments.d.ts.map +1 -1
  302. package/node_modules/@noodle-borg/service/dist/routes/deployments.js +7 -20
  303. package/node_modules/@noodle-borg/service/dist/routes/deployments.js.map +1 -1
  304. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js +1 -1
  305. package/node_modules/@noodle-borg/service/dist/routes/diagnostics.js.map +1 -1
  306. package/node_modules/@noodle-borg/service/dist/routes/envs.d.ts.map +1 -1
  307. package/node_modules/@noodle-borg/service/dist/routes/envs.js +4 -8
  308. package/node_modules/@noodle-borg/service/dist/routes/envs.js.map +1 -1
  309. package/node_modules/@noodle-borg/service/dist/routes/logs.js +1 -1
  310. package/node_modules/@noodle-borg/service/dist/routes/logs.js.map +1 -1
  311. package/node_modules/@noodle-borg/service/dist/routes/rollback.js +1 -1
  312. package/node_modules/@noodle-borg/service/dist/routes/rollback.js.map +1 -1
  313. package/node_modules/@noodle-borg/service/dist/serve.d.ts.map +1 -1
  314. package/node_modules/@noodle-borg/service/dist/serve.js +4 -0
  315. package/node_modules/@noodle-borg/service/dist/serve.js.map +1 -1
  316. package/node_modules/@noodle-borg/service/dist/service.d.ts.map +1 -1
  317. package/node_modules/@noodle-borg/service/dist/service.js +11 -1
  318. package/node_modules/@noodle-borg/service/dist/service.js.map +1 -1
  319. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
  320. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +21 -0
  321. package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
  322. package/node_modules/@noodle-borg/service/package.json +3 -1
  323. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +1 -0
  324. package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
  325. package/node_modules/@noodle-borg/wire-contracts/dist/index.js +1 -0
  326. package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
  327. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.d.ts +134 -0
  328. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.d.ts.map +1 -0
  329. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.js +101 -0
  330. package/node_modules/@noodle-borg/wire-contracts/dist/knowledge.js.map +1 -0
  331. package/node_modules/@noodle-borg/wire-contracts/package.json +1 -0
  332. package/node_modules/@noodleseed/assistant/package.json +41 -16
  333. package/package.json +7 -2
  334. /package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-interactive.js +0 -0
  335. /package/node_modules/@noodle-borg/{service → assistant-gateway}/dist/assistant-presentation.d.ts +0 -0
  336. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-payload-size.d.ts +0 -0
  337. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-payload-size.d.ts.map +0 -0
  338. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-payload-size.js +0 -0
  339. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-payload-size.js.map +0 -0
  340. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-version.d.ts +0 -0
  341. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-version.d.ts.map +0 -0
  342. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-version.js +0 -0
  343. /package/{dist → node_modules/@noodle-borg/deploy-client/dist}/deploy-version.js.map +0 -0
@@ -11,22 +11,25 @@
11
11
  */
12
12
  import type { Pool } from 'pg';
13
13
  import type { KnowledgeScope } from './ir.js';
14
- import { type KnowledgeRevision } from './ports.js';
15
- import type { KnowledgeRevisionStore, LeaseTicket, RevisionRecord, StageRevisionInput } from './revision-store.js';
14
+ import { type KnowledgeRevision, type StagedDocument } from './ports.js';
15
+ import { type DocumentTextCodec, type KnowledgeRevisionStore, type LeaseTicket, type RevisionRecord, type StageRevisionInput } from './revision-store.js';
16
16
  export declare class PostgresKnowledgeRevisionStore implements KnowledgeRevisionStore {
17
17
  #private;
18
- constructor(pool: Pool);
18
+ constructor(pool: Pool, codec?: DocumentTextCodec);
19
19
  ensureSchema(): Promise<void>;
20
20
  stage(input: StageRevisionInput): Promise<KnowledgeRevision>;
21
21
  acquireLease(scope: KnowledgeScope, componentName: string, holder: string): Promise<LeaseTicket>;
22
22
  releaseLease(ticket: LeaseTicket): Promise<void>;
23
23
  activate(scope: KnowledgeScope, componentName: string, revisionId: string, deploymentId: string): Promise<void>;
24
24
  pin(revisionId: string, deploymentId: string): Promise<void>;
25
- rollback(deploymentId: string): Promise<KnowledgeRevision | undefined>;
25
+ rollback(deploymentId: string): Promise<readonly KnowledgeRevision[]>;
26
26
  collectGarbage(): Promise<number>;
27
27
  active(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
28
28
  record(revisionId: string): Promise<RevisionRecord | undefined>;
29
29
  delete(revisionId: string): Promise<void>;
30
+ findByContentHash(scope: KnowledgeScope, componentName: string, contentHash: string): Promise<KnowledgeRevision | undefined>;
31
+ stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
32
+ documents(revisionId: string): Promise<readonly StagedDocument[]>;
30
33
  private rowScope;
31
34
  private toRevision;
32
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-revision-store.d.ts","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAgB7B,qBAAa,8BAA+B,YAAW,sBAAsB;;gBAG/D,IAAI,EAAE,IAAI;IAIhB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B7B,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8B5D,YAAY,CAChB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,QAAQ,CACZ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAmCV,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAwCtE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IASnC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAoB/D,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/C,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQnB"}
1
+ {"version":3,"file":"postgres-revision-store.d.ts","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAAkB,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AACzF,OAAO,EACL,KAAK,iBAAiB,EAEtB,KAAK,sBAAsB,EAC3B,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAgB7B,qBAAa,8BAA+B,YAAW,sBAAsB;;gBAI/D,IAAI,EAAE,IAAI,EAAE,KAAK,GAAE,iBAA6C;IAKtE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA6D7B,KAAK,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8B5D,YAAY,CAChB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,CAAC;IAmBjB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhD,QAAQ,CACZ,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAmCV,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5D,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,iBAAiB,EAAE,CAAC;IAsCrE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,MAAM,CACV,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IASnC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAoB/D,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYzC,iBAAiB,CACrB,KAAK,EAAE,cAAc,EACrB,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC;IASnC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCvF,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IA+BvE,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,UAAU;CAQnB"}
@@ -1,10 +1,13 @@
1
1
  import { knowledgeScopeKey } from './ir.js';
2
2
  import { KnowledgeError } from './ports.js';
3
+ import { identityDocumentTextCodec, } from './revision-store.js';
3
4
  const LEASE_TIMEOUT_MS = 60_000;
4
5
  export class PostgresKnowledgeRevisionStore {
5
6
  #pool;
6
- constructor(pool) {
7
+ #codec;
8
+ constructor(pool, codec = identityDocumentTextCodec) {
7
9
  this.#pool = pool;
10
+ this.#codec = codec;
8
11
  }
9
12
  async ensureSchema() {
10
13
  await this.#pool.query(`
@@ -23,9 +26,29 @@ export class PostgresKnowledgeRevisionStore {
23
26
  `);
24
27
  await this.#pool.query(`
25
28
  CREATE TABLE IF NOT EXISTS knowledge_deployment_pins (
26
- deployment_id text PRIMARY KEY,
27
- revision_id text NOT NULL REFERENCES knowledge_revisions (revision_id) ON DELETE CASCADE
29
+ deployment_id text NOT NULL,
30
+ revision_id text NOT NULL REFERENCES knowledge_revisions (revision_id) ON DELETE CASCADE,
31
+ PRIMARY KEY (deployment_id, revision_id)
28
32
  )
33
+ `);
34
+ // Pre-pin-per-component rows used deployment_id alone as the key; widen in place.
35
+ await this.#pool.query(`
36
+ DO $$ BEGIN
37
+ IF EXISTS (
38
+ SELECT 1 FROM information_schema.table_constraints
39
+ WHERE table_name = 'knowledge_deployment_pins'
40
+ AND constraint_type = 'PRIMARY KEY'
41
+ AND constraint_name = 'knowledge_deployment_pins_pkey'
42
+ ) AND NOT EXISTS (
43
+ SELECT 1 FROM information_schema.key_column_usage
44
+ WHERE table_name = 'knowledge_deployment_pins'
45
+ AND constraint_name = 'knowledge_deployment_pins_pkey'
46
+ AND column_name = 'revision_id'
47
+ ) THEN
48
+ ALTER TABLE knowledge_deployment_pins DROP CONSTRAINT knowledge_deployment_pins_pkey;
49
+ ALTER TABLE knowledge_deployment_pins ADD PRIMARY KEY (deployment_id, revision_id);
50
+ END IF;
51
+ END $$;
29
52
  `);
30
53
  await this.#pool.query(`
31
54
  CREATE TABLE IF NOT EXISTS knowledge_publication_leases (
@@ -33,6 +56,17 @@ export class PostgresKnowledgeRevisionStore {
33
56
  holder text NOT NULL,
34
57
  acquired_at timestamptz NOT NULL DEFAULT now()
35
58
  )
59
+ `);
60
+ // Sealed revision text (ADR 0202 D5 as amended): lets any stateless instance rebuild the
61
+ // bundled BM25 index for the active revision. Ciphertext only; the codec owner holds keys.
62
+ await this.#pool.query(`
63
+ CREATE TABLE IF NOT EXISTS knowledge_revision_documents (
64
+ revision_id text NOT NULL REFERENCES knowledge_revisions (revision_id) ON DELETE CASCADE,
65
+ path text NOT NULL,
66
+ ciphertext bytea NOT NULL,
67
+ bytes integer NOT NULL,
68
+ PRIMARY KEY (revision_id, path)
69
+ )
36
70
  `);
37
71
  }
38
72
  async stage(input) {
@@ -95,7 +129,7 @@ export class PostgresKnowledgeRevisionStore {
95
129
  ]);
96
130
  await client.query(`INSERT INTO knowledge_deployment_pins (deployment_id, revision_id)
97
131
  VALUES ($1, $2)
98
- ON CONFLICT (deployment_id) DO UPDATE SET revision_id = $2`, [deploymentId, revisionId]);
132
+ ON CONFLICT (deployment_id, revision_id) DO NOTHING`, [deploymentId, revisionId]);
99
133
  await client.query('COMMIT');
100
134
  }
101
135
  catch (error) {
@@ -107,36 +141,29 @@ export class PostgresKnowledgeRevisionStore {
107
141
  }
108
142
  }
109
143
  async pin(revisionId, deploymentId) {
110
- const result = await this.#pool.query(`INSERT INTO knowledge_deployment_pins (deployment_id, revision_id)
144
+ await this.#pool.query(`INSERT INTO knowledge_deployment_pins (deployment_id, revision_id)
111
145
  VALUES ($1, $2)
112
- ON CONFLICT (deployment_id) DO UPDATE SET revision_id = $2
113
- RETURNING revision_id`, [deploymentId, revisionId]);
114
- if (result.rows[0] === undefined)
115
- throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
146
+ ON CONFLICT (deployment_id, revision_id) DO NOTHING`, [deploymentId, revisionId]);
116
147
  }
117
148
  async rollback(deploymentId) {
118
149
  const client = await this.#pool.connect();
119
150
  try {
120
151
  await client.query('BEGIN');
121
152
  const pinned = await client.query('SELECT revision_id FROM knowledge_deployment_pins WHERE deployment_id = $1', [deploymentId]);
122
- const revisionId = pinned.rows[0]?.revision_id;
123
- if (revisionId === undefined) {
124
- await client.query('COMMIT');
125
- return undefined;
126
- }
127
- const target = await client.query('SELECT * FROM knowledge_revisions WHERE revision_id = $1', [revisionId]);
128
- if (target.rows[0] === undefined) {
129
- await client.query('COMMIT');
130
- return undefined;
153
+ const restored = [];
154
+ for (const pin of pinned.rows) {
155
+ const target = await client.query('SELECT * FROM knowledge_revisions WHERE revision_id = $1', [pin.revision_id]);
156
+ const row = target.rows[0];
157
+ if (row === undefined)
158
+ continue;
159
+ const scope = this.rowScope(row);
160
+ await client.query(`UPDATE knowledge_revisions SET state = 'retired'
161
+ WHERE org = $1 AND app = $2 AND env = $3 AND component_name = $4 AND state = 'active' AND revision_id <> $5`, [scope.org, scope.app, scope.env, row.component_name, pin.revision_id]);
162
+ await client.query(`UPDATE knowledge_revisions SET state = 'active' WHERE revision_id = $1`, [pin.revision_id]);
163
+ restored.push(this.toRevision(row));
131
164
  }
132
- const scope = this.rowScope(target.rows[0]);
133
- await client.query(`UPDATE knowledge_revisions SET state = 'retired'
134
- WHERE org = $1 AND app = $2 AND env = $3 AND component_name = $4 AND state = 'active' AND revision_id <> $5`, [scope.org, scope.app, scope.env, target.rows[0].component_name, revisionId]);
135
- await client.query(`UPDATE knowledge_revisions SET state = 'active' WHERE revision_id = $1`, [
136
- revisionId,
137
- ]);
138
165
  await client.query('COMMIT');
139
- return this.toRevision(target.rows[0]);
166
+ return restored;
140
167
  }
141
168
  catch (error) {
142
169
  await client.query('ROLLBACK').catch(() => undefined);
@@ -185,6 +212,64 @@ export class PostgresKnowledgeRevisionStore {
185
212
  }
186
213
  await this.#pool.query('DELETE FROM knowledge_revisions WHERE revision_id = $1', [revisionId]);
187
214
  }
215
+ async findByContentHash(scope, componentName, contentHash) {
216
+ const result = await this.#pool.query(`SELECT * FROM knowledge_revisions
217
+ WHERE org = $1 AND app = $2 AND env = $3 AND component_name = $4 AND content_hash = $5`, [scope.org, scope.app, scope.env, componentName, contentHash]);
218
+ return result.rows[0] === undefined ? undefined : this.toRevision(result.rows[0]);
219
+ }
220
+ async stageDocuments(revisionId, documents) {
221
+ const client = await this.#pool.connect();
222
+ try {
223
+ await client.query('BEGIN');
224
+ const revision = await client.query('SELECT revision_id FROM knowledge_revisions WHERE revision_id = $1 FOR UPDATE', [revisionId]);
225
+ if (revision.rows[0] === undefined) {
226
+ await client.query('ROLLBACK');
227
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
228
+ }
229
+ await client.query('DELETE FROM knowledge_revision_documents WHERE revision_id = $1', [
230
+ revisionId,
231
+ ]);
232
+ for (const document of documents) {
233
+ const plaintext = Buffer.from(document.text, 'utf8');
234
+ await client.query(`INSERT INTO knowledge_revision_documents (revision_id, path, ciphertext, bytes)
235
+ VALUES ($1, $2, $3, $4)`, [
236
+ revisionId,
237
+ document.descriptor.path,
238
+ await this.#codec.seal(plaintext),
239
+ plaintext.length,
240
+ ]);
241
+ }
242
+ await client.query('COMMIT');
243
+ }
244
+ catch (error) {
245
+ await client.query('ROLLBACK').catch(() => undefined);
246
+ throw error;
247
+ }
248
+ finally {
249
+ client.release();
250
+ }
251
+ }
252
+ async documents(revisionId) {
253
+ const revision = await this.#pool.query('SELECT * FROM knowledge_revisions WHERE revision_id = $1', [revisionId]);
254
+ const row = revision.rows[0];
255
+ if (row === undefined) {
256
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
257
+ }
258
+ const rows = await this.#pool.query('SELECT path, ciphertext FROM knowledge_revision_documents WHERE revision_id = $1', [revisionId]);
259
+ const byPath = new Map(rows.rows.map((text) => [text.path, text.ciphertext]));
260
+ if (byPath.size === 0 && row.documents.length > 0) {
261
+ throw new KnowledgeError('store', `revision ${revisionId} has no staged document text`);
262
+ }
263
+ const documents = [];
264
+ for (const descriptor of row.documents) {
265
+ const ciphertext = byPath.get(descriptor.path);
266
+ if (ciphertext === undefined) {
267
+ throw new KnowledgeError('store', `revision ${revisionId} is missing text for ${descriptor.path}`);
268
+ }
269
+ documents.push({ descriptor, text: (await this.#codec.open(ciphertext)).toString('utf8') });
270
+ }
271
+ return documents;
272
+ }
188
273
  rowScope(row) {
189
274
  return { org: row.org, app: row.app, env: row.env };
190
275
  }
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-revision-store.js","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"postgres-revision-store.js","sourceRoot":"","sources":["../src/postgres-revision-store.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import type { KnowledgeScope } from './ir.js';
2
- import type { KnowledgeRevision } from './ports.js';
2
+ import type { KnowledgeRevision, StagedDocument } from './ports.js';
3
+ /**
4
+ * Seals document text at rest and opens it for BM25 rebuilds (ADR 0202 D5 as amended: the
5
+ * managed-bundled tier persists revision text sealed in the revision store so a stateless
6
+ * instance can rebuild the active index). The service injects its secret-box codec; tests
7
+ * and non-durable stores may use the identity codec.
8
+ */
9
+ export interface DocumentTextCodec {
10
+ seal(plaintext: Buffer): Buffer | Promise<Buffer>;
11
+ open(sealed: Buffer): Buffer | Promise<Buffer>;
12
+ }
13
+ export declare const identityDocumentTextCodec: DocumentTextCodec;
3
14
  export interface StageRevisionInput {
4
15
  readonly scope: KnowledgeScope;
5
16
  readonly componentName: string;
@@ -29,31 +40,51 @@ export interface KnowledgeRevisionStore {
29
40
  activate(scope: KnowledgeScope, componentName: string, revisionId: string, deploymentId: string): Promise<void>;
30
41
  /** Mark a deployment as pinning the revision it activated. */
31
42
  pin(revisionId: string, deploymentId: string): Promise<void>;
32
- /** Rollback reselects the revision the target deployment pinned; returns it when reselved. */
33
- rollback(deploymentId: string): Promise<KnowledgeRevision | undefined>;
43
+ /** Rollback reselects every revision the target deployment pinned (one per component). */
44
+ rollback(deploymentId: string): Promise<readonly KnowledgeRevision[]>;
34
45
  /** Remove revisions that are neither active nor pinned. Returns the removed count. */
35
46
  collectGarbage(): Promise<number>;
36
47
  /** Active revision for a scope/component, if any. */
37
48
  active(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
38
49
  /** A specific revision by id (diagnostics/status only). */
39
50
  record(revisionId: string): Promise<RevisionRecord | undefined>;
51
+ /** The staged/active revision holding exactly this content set, for idempotent reuse. */
52
+ findByContentHash(scope: KnowledgeScope, componentName: string, contentHash: string): Promise<KnowledgeRevision | undefined>;
40
53
  /** Delete a revision record; refuses an active or pinned one. */
41
54
  delete(revisionId: string): Promise<void>;
55
+ /**
56
+ * Persist the revision's sealed document text so any instance can rebuild the bundled
57
+ * index (ADR 0202 D5 as amended). Idempotent full replacement per revision.
58
+ */
59
+ stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
60
+ /**
61
+ * The staged text for a revision. Throws `KnowledgeError` when the revision is unknown or
62
+ * its text was never staged — a rebuild must fail loudly, never index an empty corpus.
63
+ */
64
+ documents(revisionId: string): Promise<readonly StagedDocument[]>;
42
65
  }
43
66
  export declare function documentsContentHash(documentHashes: readonly string[]): string;
44
67
  export declare class InMemoryKnowledgeRevisionStore implements KnowledgeRevisionStore {
45
68
  private readonly records;
46
69
  private readonly leases;
47
70
  private readonly deploymentPins;
71
+ /** revisionId → path → sealed text; sealed even in memory so the codec path is exercised. */
72
+ private readonly sealedText;
73
+ private readonly codec;
74
+ constructor(codec?: DocumentTextCodec);
48
75
  stage(input: StageRevisionInput): Promise<KnowledgeRevision>;
49
76
  acquireLease(scope: KnowledgeScope, componentName: string, holder: string): Promise<LeaseTicket>;
50
77
  releaseLease(ticket: LeaseTicket): Promise<void>;
51
78
  activate(scope: KnowledgeScope, componentName: string, revisionId: string, deploymentId: string): Promise<void>;
52
79
  pin(revisionId: string, deploymentId: string): Promise<void>;
53
- rollback(deploymentId: string): Promise<KnowledgeRevision | undefined>;
80
+ private pinRevision;
81
+ rollback(deploymentId: string): Promise<readonly KnowledgeRevision[]>;
54
82
  collectGarbage(): Promise<number>;
55
83
  active(scope: KnowledgeScope, componentName: string): Promise<KnowledgeRevision | undefined>;
56
84
  record(revisionId: string): Promise<RevisionRecord | undefined>;
57
85
  delete(revisionId: string): Promise<void>;
86
+ findByContentHash(scope: KnowledgeScope, componentName: string, contentHash: string): Promise<KnowledgeRevision | undefined>;
87
+ stageDocuments(revisionId: string, documents: readonly StagedDocument[]): Promise<void>;
88
+ documents(revisionId: string): Promise<readonly StagedDocument[]>;
58
89
  }
59
90
  //# sourceMappingURL=revision-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"revision-store.d.ts","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revision-store.d.ts","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,10 @@
10
10
  import { createHash } from 'node:crypto';
11
11
  import { knowledgeScopeKey } from './ir.js';
12
12
  import { KnowledgeError } from './ports.js';
13
+ export const identityDocumentTextCodec = {
14
+ seal: (plaintext) => plaintext,
15
+ open: (sealed) => sealed,
16
+ };
13
17
  export function documentsContentHash(documentHashes) {
14
18
  return createHash('sha256').update(documentHashes.join('\n')).digest('hex');
15
19
  }
@@ -18,6 +22,12 @@ export class InMemoryKnowledgeRevisionStore {
18
22
  records = new Map();
19
23
  leases = new Map();
20
24
  deploymentPins = new Map();
25
+ /** revisionId → path → sealed text; sealed even in memory so the codec path is exercised. */
26
+ sealedText = new Map();
27
+ codec;
28
+ constructor(codec = identityDocumentTextCodec) {
29
+ this.codec = codec;
30
+ }
21
31
  async stage(input) {
22
32
  const scopeKey = knowledgeScopeKey(input.scope, input.componentName);
23
33
  const existing = [...this.records.values()].find((record) => knowledgeScopeKey(record.revision.scope, record.revision.componentName) === scopeKey &&
@@ -62,39 +72,49 @@ export class InMemoryKnowledgeRevisionStore {
62
72
  }
63
73
  record.state = 'active';
64
74
  record.pins.add(deploymentId);
65
- this.deploymentPins.set(deploymentId, revisionId);
75
+ this.pinRevision(deploymentId, revisionId);
66
76
  }
67
77
  async pin(revisionId, deploymentId) {
68
78
  const record = this.records.get(revisionId);
69
79
  if (record === undefined)
70
80
  throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
71
81
  record.pins.add(deploymentId);
72
- this.deploymentPins.set(deploymentId, revisionId);
82
+ this.pinRevision(deploymentId, revisionId);
83
+ }
84
+ pinRevision(deploymentId, revisionId) {
85
+ const pins = this.deploymentPins.get(deploymentId) ?? new Set();
86
+ pins.add(revisionId);
87
+ this.deploymentPins.set(deploymentId, pins);
73
88
  }
74
89
  async rollback(deploymentId) {
75
- const revisionId = this.deploymentPins.get(deploymentId);
76
- if (revisionId === undefined)
77
- return undefined;
78
- const record = this.records.get(revisionId);
79
- if (record === undefined)
80
- return undefined;
81
- const scopeKey = knowledgeScopeKey(record.revision.scope, record.revision.componentName);
82
- for (const candidate of this.records.values()) {
83
- if (candidate.state === 'active' &&
84
- knowledgeScopeKey(candidate.revision.scope, candidate.revision.componentName) ===
85
- scopeKey &&
86
- candidate.revision.revisionId !== revisionId) {
87
- candidate.state = 'retired';
90
+ const revisionIds = this.deploymentPins.get(deploymentId);
91
+ if (revisionIds === undefined)
92
+ return [];
93
+ const restored = [];
94
+ for (const revisionId of revisionIds) {
95
+ const record = this.records.get(revisionId);
96
+ if (record === undefined)
97
+ continue;
98
+ const scopeKey = knowledgeScopeKey(record.revision.scope, record.revision.componentName);
99
+ for (const candidate of this.records.values()) {
100
+ if (candidate.state === 'active' &&
101
+ knowledgeScopeKey(candidate.revision.scope, candidate.revision.componentName) ===
102
+ scopeKey &&
103
+ candidate.revision.revisionId !== revisionId) {
104
+ candidate.state = 'retired';
105
+ }
88
106
  }
107
+ record.state = 'active';
108
+ restored.push(record.revision);
89
109
  }
90
- record.state = 'active';
91
- return record.revision;
110
+ return restored;
92
111
  }
93
112
  async collectGarbage() {
94
113
  let removed = 0;
95
114
  for (const [revisionId, record] of this.records) {
96
115
  if (record.state !== 'active' && record.pins.size === 0) {
97
116
  this.records.delete(revisionId);
117
+ this.sealedText.delete(revisionId);
98
118
  removed += 1;
99
119
  }
100
120
  }
@@ -123,6 +143,42 @@ export class InMemoryKnowledgeRevisionStore {
123
143
  throw new KnowledgeError('store', 'cannot delete a deployment-pinned revision');
124
144
  }
125
145
  this.records.delete(revisionId);
146
+ this.sealedText.delete(revisionId);
147
+ }
148
+ async findByContentHash(scope, componentName, contentHash) {
149
+ const scopeKey = knowledgeScopeKey(scope, componentName);
150
+ const record = [...this.records.values()].find((candidate) => candidate.contentHash === contentHash &&
151
+ knowledgeScopeKey(candidate.revision.scope, candidate.revision.componentName) === scopeKey);
152
+ return record?.revision;
153
+ }
154
+ async stageDocuments(revisionId, documents) {
155
+ if (!this.records.has(revisionId)) {
156
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
157
+ }
158
+ const sealed = new Map();
159
+ for (const document of documents) {
160
+ sealed.set(document.descriptor.path, await this.codec.seal(Buffer.from(document.text, 'utf8')));
161
+ }
162
+ this.sealedText.set(revisionId, sealed);
163
+ }
164
+ async documents(revisionId) {
165
+ const record = this.records.get(revisionId);
166
+ if (record === undefined) {
167
+ throw new KnowledgeError('not-found', `revision ${revisionId} is not staged`);
168
+ }
169
+ const sealed = this.sealedText.get(revisionId);
170
+ if (sealed === undefined && record.revision.documents.length > 0) {
171
+ throw new KnowledgeError('store', `revision ${revisionId} has no staged document text`);
172
+ }
173
+ const documents = [];
174
+ for (const descriptor of record.revision.documents) {
175
+ const ciphertext = sealed?.get(descriptor.path);
176
+ if (ciphertext === undefined) {
177
+ throw new KnowledgeError('store', `revision ${revisionId} is missing text for ${descriptor.path}`);
178
+ }
179
+ documents.push({ descriptor, text: (await this.codec.open(ciphertext)).toString('utf8') });
180
+ }
181
+ return documents;
126
182
  }
127
183
  }
128
184
  //# sourceMappingURL=revision-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"revision-store.js","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"revision-store.js","sourceRoot":"","sources":["../src/revision-store.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,10 @@
17
17
  "./conformance": {
18
18
  "types": "./dist/conformance.d.ts",
19
19
  "import": "./dist/conformance.js"
20
+ },
21
+ "./limits": {
22
+ "types": "./dist/limits.d.ts",
23
+ "import": "./dist/limits.js"
20
24
  }
21
25
  },
22
26
  "files": [
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Bridges the service's async string secret box to the revision store's byte codec, so sealed
3
+ * knowledge text shares the platform's KMS/static master-key custody instead of a second
4
+ * encryption scheme. Structurally typed: no dependency on the service or runtime packages.
5
+ */
6
+ import type { DocumentTextCodec } from '@noodle-borg/knowledge';
7
+ export interface StringSecretBox {
8
+ seal(plaintext: string): Promise<unknown>;
9
+ open(sealed: never): Promise<string>;
10
+ }
11
+ export declare function secretBoxDocumentCodec(box: StringSecretBox): DocumentTextCodec;
12
+ //# sourceMappingURL=codec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.d.ts","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,iBAAiB,CAO9E"}
@@ -0,0 +1,7 @@
1
+ export function secretBoxDocumentCodec(box) {
2
+ return {
3
+ seal: async (plaintext) => Buffer.from(JSON.stringify(await box.seal(plaintext.toString('base64'))), 'utf8'),
4
+ open: async (sealed) => Buffer.from(await box.open(JSON.parse(sealed.toString('utf8'))), 'base64'),
5
+ };
6
+ }
7
+ //# sourceMappingURL=codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codec.js","sourceRoot":"","sources":["../src/codec.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,sBAAsB,CAAC,GAAoB;IACzD,OAAO;QACL,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;QACnF,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CACrB,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAU,CAAC,EAAE,QAAQ,CAAC;KACtF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Knowledge route dispatch. The service injects its auth and HTTP-posture callbacks; every
3
+ * knowledge decision (paths, gating, validation, staging) stays in this package.
4
+ */
5
+ import type { IncomingMessage, ServerResponse } from 'node:http';
6
+ import { type KnowledgeRouteDeps } from './routes.js';
7
+ export interface KnowledgeDispatchDeps {
8
+ /** Tenant control-plane auth; resolves false when the response was already written. */
9
+ readonly authorize: (req: IncomingMessage, res: ServerResponse, org: string) => Promise<unknown | false>;
10
+ readonly routeDeps: KnowledgeRouteDeps;
11
+ readonly applySecurityHeaders: (res: ServerResponse) => void;
12
+ /** Returns true when the request was already rejected (e.g. HTTPS enforcement). */
13
+ readonly enforceHttps: (req: IncomingMessage, res: ServerResponse) => boolean;
14
+ }
15
+ export declare function dispatchKnowledgeRequest(req: IncomingMessage, res: ServerResponse, url: URL, deps: KnowledgeDispatchDeps): boolean;
16
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../src/dispatch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjE,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,qBAAqB;IACpC,uFAAuF;IACvF,QAAQ,CAAC,SAAS,EAAE,CAClB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7D,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC;CAC/E;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CA2BT"}